:root{--bg: #f6f4ef;--surface: #ffffff;--text: #1f2a24;--muted: #66706a;--border: #e3e0d8;--accent: #2f6b4f;--accent-soft: #e4efe8;--error: #a33a2b;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45;color:var(--text);background:var(--bg)}@media(prefers-color-scheme:dark){:root{--bg: #141816;--surface: #1d2320;--text: #e8ece9;--muted: #9aa49e;--border: #2d3531;--accent: #7cc4a0;--accent-soft: #23352c;--error: #f08d7e}}*{box-sizing:border-box}body{margin:0;background:var(--bg)}.page{max-width:720px;margin:0 auto;padding:24px 16px 48px}.header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}h1{margin:0;font-size:2rem;letter-spacing:-.02em}.subtitle{margin:2px 0 0;color:var(--muted)}.nav{display:flex;gap:6px}.nav button{min-width:44px;height:40px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:1rem;cursor:pointer}.nav button:hover:not(:disabled){border-color:var(--accent)}.nav button:disabled{opacity:.45;cursor:default}.nav button:focus-visible,.dish a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.days{list-style:none;margin:0;padding:0;display:grid;gap:10px}.day{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.day.past{opacity:.6}.day-date{display:flex;flex-direction:column;align-items:flex-start}.weekday{font-weight:600}.date{color:var(--muted);font-size:.9rem}.badge{margin-top:6px;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.75rem;font-weight:600}.day-meal{align-self:center;min-width:0}.dish{margin:0;font-size:1.1rem;font-weight:500;overflow-wrap:anywhere}.dish a{color:inherit;text-decoration-color:var(--accent);text-underline-offset:3px}.notes{margin:2px 0 0;color:var(--muted);font-size:.9rem}.empty{margin:0;color:var(--muted);font-style:italic}.placeholder{display:block;width:60%;height:1.1rem;border-radius:6px;background:var(--border)}.error{padding:12px 16px;border-radius:12px;border:1px solid var(--error);color:var(--error)}@media(max-width:520px){.header{flex-direction:column;align-items:stretch}.nav{justify-content:space-between}.nav button{flex:1}.day{grid-template-columns:1fr;gap:6px}.day-date{flex-direction:row;align-items:baseline;gap:8px}.badge{margin:0 0 0 auto}}
