:root {
  --bg:#fafaf8; --fg:#1d2421; --accent:#2f6f4f; --accent2:#245c41;
  --muted:#6b7280; --card:#fff; --line:#e5e7eb; --danger:#b4452f; --chip:#eef5ef;
}
* { box-sizing:border-box; }
body { margin:0; font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
       background:var(--bg); color:var(--fg); }
header { padding:16px 22px; border-bottom:1px solid var(--line); display:flex;
         align-items:center; justify-content:space-between; background:#fff; position:sticky; top:0; z-index:5; }
header b { font-size:18px; }
#userbar { color:var(--muted); font-size:14px; }
#userbar a { color:var(--accent); cursor:pointer; margin-left:12px; }
main { max-width:820px; margin:0 auto; padding:24px 18px 80px; }
h1 { font-size:24px; margin:.1em 0 .5em; }
h2 { font-size:18px; margin:1.2em 0 .4em; }
h3 { font-size:15px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; margin:1.4em 0 .3em; }
.card { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:20px; margin-bottom:16px; }
label { display:block; font-weight:600; font-size:14px; margin:14px 0 4px; }
input, select, textarea { width:100%; padding:10px 12px; border:1px solid var(--line);
  border-radius:9px; font:inherit; background:#fff; }
textarea { min-height:84px; resize:vertical; }
.row { display:flex; gap:12px; } .row > * { flex:1; }
button { font:inherit; font-weight:600; border:0; border-radius:9px; padding:11px 18px;
  background:var(--accent); color:#fff; cursor:pointer; }
button:hover { background:var(--accent2); }
button.secondary { background:#eef0ee; color:var(--fg); }
button.secondary:hover { background:#e2e6e2; }
button:disabled { opacity:.55; cursor:default; }
.muted { color:var(--muted); } .err { color:var(--danger); font-size:14px; }
.pill { display:inline-block; background:var(--chip); color:var(--accent); border-radius:999px;
  padding:2px 10px; font-size:12px; margin-left:6px; }
.cat { font-size:13px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em;
  margin:16px 0 4px; border-bottom:1px solid var(--line); padding-bottom:3px; }
.item { display:flex; align-items:baseline; gap:8px; padding:5px 0; }
.item .q { color:var(--muted); font-size:14px; }
.item .loc { color:var(--accent); font-size:13px; margin-left:auto; white-space:nowrap; }
.day { border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:12px; }
.day h4 { margin:0 0 8px; font-size:16px; }
.meal { padding:3px 0; } .meal b { font-weight:600; }
.toolbar { display:flex; gap:10px; flex-wrap:wrap; margin:8px 0 20px; }
.total { font-size:20px; font-weight:700; }
.spinner { display:inline-block; width:16px; height:16px; border:2px solid #cbd5cf;
  border-top-color:var(--accent); border-radius:50%; animation:spin .8s linear infinite; vertical-align:-3px; }
@keyframes spin { to { transform:rotate(360deg); } }
@media print {
  header, .toolbar, #userbar, .no-print { display:none !important; }
  .card { border:0; padding:0; } main { padding:0; }
}
