:root{
  --primary:#1f7a3f; --on-primary:#fff; --primary-soft:#e3f1e7;
  --bg:#f6f4ee; --card:#fff; --text:#1b1f1b; --text2:#676f6a;
  --sep:#e6e3da; --warn:#b7791f; --warn-soft:#fbf0d4; --down:#c2410c; --down-soft:#fbe3d9;
}
@media (prefers-color-scheme:dark){:root{
  --primary:#4cc06a; --on-primary:#0b1a10; --primary-soft:#1c3324;
  --bg:#111311; --card:#1c1f1c; --text:#f3f3ee; --text2:#a7aea8;
  --sep:#2a2e2a; --warn:#e0a42a; --warn-soft:#3a2f14; --down:#fb8a4b; --down-soft:#3a2216;
}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
  font:17px/1.4 ui-rounded,"SF Pro Rounded",system-ui,-apple-system,"Segoe UI",sans-serif;
  max-width:640px;margin:0 auto;padding:0 20px 40px;-webkit-text-size-adjust:100%}
.top{display:flex;align-items:center;gap:14px;padding:28px 0 16px}
.logo{width:48px;height:48px;border-radius:12px;background:var(--primary);color:var(--on-primary);display:grid;place-items:center}
h1{font-size:1.8rem;line-height:1.1;margin:0;font-weight:700}
.sub{margin:2px 0 0;color:var(--text2);font-size:.95rem}
h2.section{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text2);margin:0 0 10px 4px;font-weight:600}
#list{margin-top:20px}
.card{background:var(--card);border-radius:20px;padding:16px;margin-top:12px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
label{display:block;font-weight:600;color:var(--text2);font-size:.9rem;margin:0 0 6px 2px}
select,input,button{font:inherit;width:100%;min-height:56px;padding:0 16px;border-radius:16px;margin:0}
select,input{border:1.5px solid var(--sep);background:var(--bg);color:var(--text);appearance:none;-webkit-appearance:none}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;padding-right:44px;font-weight:600}
select:focus,input:focus{outline:3px solid var(--primary-soft);border-color:var(--primary)}
form.card input{margin-bottom:10px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
button{border:0;background:var(--primary);color:var(--on-primary);font-weight:700;cursor:pointer;margin-top:4px}
button.secondary{background:var(--primary-soft);color:var(--primary)}
#publish{margin-top:20px;box-shadow:0 4px 14px rgba(31,122,63,.25)}
button:disabled{opacity:.5}
.rows{display:grid;gap:10px}
.row{background:var(--card);border-radius:20px;padding:14px 16px;display:grid;grid-template-columns:1fr minmax(110px,40%);gap:4px 14px;align-items:center;box-shadow:0 1px 2px rgba(0,0,0,.05);border:2px solid transparent}
.row .name{font-weight:700;font-size:1.1rem}
.row .unit{color:var(--text2);font-size:.85rem}
.row .prices{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.pill{display:inline-flex;gap:6px;align-items:baseline;background:var(--bg);border-radius:12px;padding:6px 10px;font-size:.85rem;color:var(--text2)}
.pill b{color:var(--text);font-size:1.05rem;font-variant-numeric:tabular-nums}
.pill.cur{background:var(--primary-soft)}
.pill.cur b{color:var(--primary)}
.row input{min-height:48px;text-align:right;font-weight:700;font-size:1.1rem;grid-row:1/3;grid-column:2}
.row.changed{border-color:var(--warn);background:var(--warn-soft)}
.row.saved{border-color:var(--primary);background:var(--primary-soft)}
.row.failed{border-color:var(--down);background:var(--down-soft)}
#msg{min-height:1.4em;font-weight:600;margin:14px 4px 0;color:var(--primary)}
#msg.err{color:var(--down)}
footer{margin-top:32px;font-size:.8rem;color:var(--text2);text-align:center}
