:root { --navy:#1f3a5f; --gold:#c9a227; --cream:#faf6ee; --ink:#22303f; --ok:#2e7d32; --warn:#b26a00; --line:#e3dccb; }
* { box-sizing:border-box; }
body { margin:0; font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif; background:var(--cream); color:var(--ink); }
main { max-width:1000px; margin:0 auto; padding:14px; }
nav.top { background:var(--navy); color:#fff; display:flex; justify-content:space-between; align-items:center; padding:10px 16px; position:sticky; top:0; z-index:5; }
nav.top a { color:#fff; text-decoration:none; margin-left:14px; font-weight:600; }
nav.top .brand { font-size:1.15rem; letter-spacing:.5px; margin:0; }
nav.top .adminlink { color:var(--gold); }
h1 { font-size:1.4rem; margin:.6em 0 .4em; } h2 { font-size:1.1rem; margin:1em 0 .4em; } h3 { margin:.2em 0 .4em; }
.muted { color:#6b7280; } .small { font-size:.85em; }
.card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:12px 14px; margin:10px 0; }
.narrow { max-width:420px; margin:40px auto; } .center { text-align:center; }
.flash { background:#fff8dc; border-bottom:2px solid var(--gold); padding:8px 16px; }
.flash p { margin:4px 0; }
.btn { background:#fff; border:1px solid var(--navy); color:var(--navy); padding:8px 14px; border-radius:8px; font-weight:600; cursor:pointer; text-decoration:none; display:inline-block; font-size:.95rem; }
.btn.primary { background:var(--navy); color:#fff; }
.btn.big { font-size:1.1rem; padding:12px 22px; }
.btn.subtle { border-color:#bbb; color:#555; } .btn.mini { padding:3px 8px; font-size:.8rem; }
input, select { padding:8px; border:1px solid #c9c9c9; border-radius:8px; font-size:1rem; max-width:100%; }
label { display:block; margin:8px 0; font-weight:600; } label input, label select { display:block; width:100%; margin-top:4px; font-weight:400; }
form { margin:0; }
.row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; } .spread { justify-content:space-between; } .wrap { flex-wrap:wrap; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:6px 14px; } .grid2 h2, .grid2 button { grid-column:1/-1; }
.chip { display:inline-block; background:#eef2f7; border-radius:20px; padding:2px 10px; font-size:.78rem; font-weight:700; letter-spacing:.4px; }
.chip.cook { background:var(--navy); color:#fff; } .chip.reheat { background:#d9e4f1; color:var(--navy); }
.chip.out, .chip.off { background:#eee; color:#666; } .chip.freezer { background:#d2ecf5; color:#085f74; }
.chip.ok { background:#e2f2e3; color:var(--ok); } .chip.warn { background:#fdf0d8; color:var(--warn); }
.chip.proposed { background:#fdf0d8; color:var(--warn); } .chip.approved { background:#e2f2e3; color:var(--ok); }
.chip.done { background:#eee; color:#666; } .chip.mini { font-size:.7rem; padding:1px 7px; }
.chip.store { background:#fff; border:1px solid var(--line); }
.weekgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(125px,1fr)); gap:8px; }
.weekgrid.small { grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); }
.daycard { background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px; min-height:86px; position:relative; }
.daycard.today { border:2px solid var(--gold); box-shadow:0 2px 8px rgba(201,162,39,.25); }
.dayhead { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.dayname { font-weight:800; color:var(--navy); }
.meal { font-weight:600; text-decoration:none; color:var(--ink); display:block; line-height:1.25; }
a.meal:hover { color:var(--navy); text-decoration:underline; }
.tonight { position:absolute; bottom:6px; right:8px; font-size:.65rem; font-weight:800; color:var(--gold); letter-spacing:1px; }
.treat { border-left:4px solid var(--gold); }
.warnbox { border-left:4px solid var(--warn); background:#fffaf0; }
.cal { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.calhead { font-weight:800; color:var(--navy); text-align:center; padding:4px 0; }
.calcell { background:#fff; border:1px solid var(--line); border-radius:8px; min-height:74px; padding:4px; font-size:.78rem; }
.calcell.dim { opacity:.45; } .calcell.today { border:2px solid var(--gold); }
.dnum { font-weight:700; color:#888; }
.ev { background:var(--navy); color:#fff; border-radius:5px; padding:1px 5px; margin-top:3px; line-height:1.2; }
.ev.rh { background:#d9e4f1; color:var(--navy); } .ev.treat { background:var(--gold); color:#fff; }
.tbl { width:100%; border-collapse:collapse; background:#fff; border-radius:10px; overflow:hidden; border:1px solid var(--line); }
.tbl th { background:var(--navy); color:#fff; text-align:left; padding:7px 9px; font-size:.85rem; }
.tbl td { padding:6px 9px; border-top:1px solid var(--line); font-size:.92rem; }
.tbl tr.review { background:#fffaf0; }
.cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:10px; }
.jar { border:1px dashed var(--navy); border-radius:8px; padding:8px 10px; margin:8px 0; }
.jar.subtle { border-color:#bbb; } .jar ul { margin:4px 0 0 18px; padding:0; }
.ing, .steps { padding-left:20px; } .ing li, .steps li { margin:5px 0; }
.qty { width:70px; text-align:center; }
.dayedit .daylabel { min-width:84px; }
.invrow { padding:8px 12px; }
.list .card { margin:6px 0; }
@media (max-width:640px) {
  .grid2 { grid-template-columns:1fr; }
  .weekgrid { grid-template-columns:repeat(2,1fr); }
  .tbl { display:block; overflow-x:auto; }
}
@media print {
  nav.top, .btn, .flash { display:none !important; }
  body { background:#fff; } .card { border:none; padding:4px 0; }
}
