:root{ --paper:#F1EDE1; --card:#FBF9F1; --ink:#2E3A46; --ink-soft:#5A6672; --rust:#A6432E; --line:#D8CFB6; --gold:#B98A2E; }
*{box-sizing:border-box;}
body{ margin:0; background:var(--paper); color:var(--ink); font-family:Georgia,"Source Serif 4",serif; line-height:1.6; padding:2.5rem 1.2rem 5rem; }
.wrap{ max-width:680px; margin:0 auto; }
h1{ font-size:1.7rem; margin:0 0 .2rem; }
.topline{ display:flex; justify-content:space-between; align-items:baseline; }
.sub{ color:var(--ink-soft); font-style:italic; margin:0 0 2rem; }
a{ color:var(--rust); }
.back{ display:inline-block; margin-bottom:1.5rem; font-size:.85rem; }
form{ background:var(--card); border:1px solid var(--line); border-radius:3px; padding:1.8rem; margin-bottom:2rem; }
label{ display:block; font-weight:bold; margin:1.1rem 0 .3rem; font-size:.92rem; }
form > label:first-of-type{ margin-top:0; }
label.inline{ display:inline-flex; gap:.4rem; align-items:center; font-weight:normal; margin:0; }
input[type=text], input[type=password], input[type=number], select, textarea{
  width:100%; padding:.6rem .7rem; border:1px solid var(--line); border-radius:2px; font-family:inherit; font-size:.95rem; background:#fff; color:var(--ink);
}
textarea{ min-height:120px; resize:vertical; }
.hint{ color:var(--ink-soft); font-size:.8rem; margin:.25rem 0 0; }
.grid{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:.8rem; }
@media (max-width:560px){ .grid{ grid-template-columns:1fr; } }
button, .btn{
  font-family:inherit; font-size:.85rem; cursor:pointer; text-decoration:none; display:inline-block;
  background:var(--paper); color:var(--ink); border:1px solid var(--line); border-radius:2px; padding:.4rem .8rem;
}
button:hover, .btn:hover{ border-color:var(--rust); }
button.primary{ margin-top:1.5rem; background:var(--rust); color:#fff; border:0; padding:.7rem 1.4rem; font-size:.95rem; }
button.danger{ color:var(--rust); border-color:var(--rust); background:none; }
.cancel{ margin-left:1rem; font-size:.9rem; }
.msg{ padding:.8rem 1rem; border-radius:2px; margin-bottom:1.2rem; font-size:.9rem; }
.msg.error{ background:#f3d9d3; color:#7a2a1a; }
.msg.success{ background:#dfe8d4; color:#3d5c2a; }
.photo-current{ display:flex; gap:1rem; align-items:center; margin-bottom:.6rem; }
.photo-current img{ width:120px; height:80px; object-fit:cover; border:1px solid var(--line); }
.ing-editor{ display:flex; flex-direction:column; gap:.4rem; }
.ing-row{ display:grid; grid-template-columns:70px 90px 1fr auto; gap:.4rem; align-items:center; }
.ing-row.head{ grid-template-columns:1fr auto; }
.ing-row.head input{ font-weight:bold; background:#f6f1e1; }
.ing-row .ctl{ display:flex; gap:.2rem; }
.ing-row .ctl button{ padding:.3rem .5rem; }
.row-actions{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.6rem; }
@media (max-width:560px){ .ing-row{ grid-template-columns:60px 80px 1fr; } .ing-row .ctl{ grid-column:1 / -1; } }
.existing h2{ font-size:1.1rem; }
.item{ background:var(--card); border:1px solid var(--line); border-radius:2px; padding:.9rem 1.1rem; margin-bottom:.7rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.item .name{ font-weight:bold; }
.item .cat{ color:var(--ink-soft); font-size:.82rem; }
.item-actions{ display:flex; gap:.5rem; align-items:center; }
.item-actions form{ padding:0; margin:0; background:none; border:none; }

input[type=url]{ width:100%; padding:.6rem .7rem; border:1px solid var(--line); border-radius:2px; font-family:inherit; font-size:.95rem; background:#fff; color:var(--ink); }
.import-box{ background:var(--card); border:1px dashed var(--rust); border-radius:3px; padding:1.2rem 1.8rem 1rem; margin-bottom:1.5rem; }
.import-box label{ margin-top:0; }
.import-row{ display:flex; gap:.5rem; }
.import-row button{ white-space:nowrap; background:var(--rust); color:#fff; border:0; }
.import-row button[disabled]{ opacity:.6; cursor:wait; }
.import-msg-error{ color:#7a2a1a; }
