:root{--verde:#228c6b;--verde-dark:#1a6e54;--verde-soft:#e8f3ef;--verde-ink:#0b3d2e;--red:#c73330;--amber:#d48c1a;--green:#29854d;--bg:#f5f7f6;--card:#ffffff;--ink:#16201c;--ink-soft:#5c6b65;--line:#e2e8e5;--s-xs:4px;--s-s:8px;--s-m:16px;--s-l:24px;--s-xl:32px;--r-card:14px;--r-control:10px;--shadow:0 1px 2px rgba(16,32,28,0.06),0 4px 12px rgba(16,32,28,0.04)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-feature-settings:"tnum" 1}.app-header{background:linear-gradient(135deg,var(--verde-dark),var(--verde));color:#fff;padding:var(--s-m) var(--s-l)}.app-header-inner{max-width:1100px;margin:0 auto;gap:var(--s-l);flex-wrap:wrap}.app-brand,.app-header-inner{display:flex;align-items:center}.app-brand{font-size:19px;font-weight:800;letter-spacing:-.01em;gap:var(--s-s)}.app-brand small{font-weight:500;opacity:.8;font-size:13px;letter-spacing:0}.app-nav{display:flex;gap:var(--s-xs);flex-wrap:wrap;-webkit-margin-start:auto;margin-inline-start:auto}.app-nav a{color:#fff;text-decoration:none;font-weight:600;font-size:14px;padding:7px 12px;border-radius:999px}.app-nav a:hover{background:rgba(255,255,255,.16)}main{max-width:1100px;margin:0 auto;padding:var(--s-l)}h1{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:0 0 var(--s-m)}h2{font-size:15px;color:var(--ink)}h2,h3{font-weight:700;margin:0 0 var(--s-s)}h3{font-size:14px;color:var(--verde-ink)}p{margin:0 0 var(--s-s)}a{color:var(--verde-dark)}section{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-m);margin-bottom:var(--s-m);box-shadow:var(--shadow)}section>section{box-shadow:none}article,section>section{margin-bottom:var(--s-s)}article{border:1px solid var(--line);border-radius:var(--r-control);padding:var(--s-m);background:#fcfdfd}article:last-child{margin-bottom:0}button{font:inherit;font-weight:650;color:#fff;background:var(--verde);border:1px solid transparent;border-radius:var(--r-control);padding:9px 16px;cursor:pointer;min-height:40px}button:hover:not(:disabled){background:var(--verde-dark)}button:disabled{background:#dfe6e3;color:#8c9a94;cursor:not-allowed}button.primary{background:var(--verde);color:#fff;border-color:transparent}button.primary:hover:not(:disabled){background:var(--verde-dark)}button[type=button]:not(.primary){background:var(--verde-soft);color:var(--verde-dark);border-color:#cfe4dc}button[type=button]:not(.primary):hover:not(:disabled){background:#dcebe5}input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--r-control);padding:9px 11px;min-height:40px;max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--verde);outline-offset:1px;border-color:var(--verde)}label{display:inline-flex;flex-direction:column;gap:var(--s-xs);font-size:13px;color:var(--ink-soft)}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:start;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}td,th{padding:var(--s-s);border-bottom:1px solid var(--line)}td{vertical-align:top}tr:last-child td{border-bottom:0}.sev-amber,.sev-green,.sev-red,.sev-unpriced{display:inline-block;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap}.sev-red{background:#fbe9e8;color:var(--red)}.sev-amber{background:#fdf1de;color:#9a6206}.sev-green{background:#e6f4ea;color:var(--green)}.sev-unpriced{background:#eef1f0;color:var(--ink-soft)}[role=alert]{background:#fbe9e8;color:var(--red);border:1px solid #f3cfcd;border-radius:var(--r-control);padding:var(--s-s) var(--s-m);font-weight:600}.muted{color:var(--ink-soft);font-size:13px}.row{align-items:center;flex-wrap:wrap}.row,.stack{display:flex;gap:var(--s-s)}.stack{flex-direction:column}.empty{color:var(--ink-soft);padding:var(--s-l);text-align:center}@media (max-width:640px){main{padding:var(--s-m)}.app-nav{-webkit-margin-start:0;margin-inline-start:0;width:100%}}.meal-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--s-m);padding:var(--s-s) 0;border-bottom:1px solid var(--line)}.meal-row:last-child{border-bottom:0}.meal-text{flex:1 1;margin:0}.meal-text strong{text-transform:capitalize}.meal-row>button{flex:none}.meal-row [role=group]{flex:1 0 100%;background:var(--verde-soft);border:1px solid #cfe4dc;border-radius:var(--r-control);padding:var(--s-m);margin-top:var(--s-s);display:flex;flex-direction:column;gap:var(--s-s)}.meal-row [role=group]>div{display:flex;gap:var(--s-s);flex-wrap:wrap;align-items:flex-end}.meal-row [role=group] input{min-width:200px}.page-hero{background:linear-gradient(135deg,var(--verde-dark),var(--verde));color:#fff;border-radius:var(--r-card);padding:var(--s-l);margin-bottom:var(--s-m);box-shadow:var(--shadow)}.page-hero h1{color:#fff;margin:0}.page-hero .sub{color:rgba(255,255,255,.85);margin:var(--s-xs) 0 0;font-size:14px}.page-hero .row{margin-top:var(--s-s)}.avatar{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;flex:none;letter-spacing:.02em}.avatar,.pill{border-radius:999px}.pill{display:inline-block;font-size:12px;font-weight:700;padding:2px 10px;white-space:nowrap}.pill-draft{background:#fdf1de;color:#9a6206}.pill-approved{background:#e6f4ea;color:var(--green)}.pill-superseded{background:#eef1f0;color:var(--ink-soft)}.pill-hero{background:rgba(255,255,255,.18);color:#fff}.card-link{display:flex;align-items:center;gap:var(--s-m);background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-m);margin-bottom:var(--s-s);box-shadow:var(--shadow);text-decoration:none;color:var(--ink)}.card-link:hover{border-color:var(--verde)}.card-link .grow{flex:1 1;min-width:0}.card-link .title{font-weight:700}.card-link .chevron{color:var(--ink-soft);font-size:18px}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;display:flex;gap:var(--s-m);padding:var(--s-s) 0 var(--s-s) 26px}.timeline li:before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:var(--line)}.timeline li:first-child:before{top:14px}.timeline li:last-child:before{bottom:auto;height:14px}.timeline .dot{position:absolute;left:2px;top:14px;width:12px;height:12px;border-radius:999px;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}.timeline .dish{width:40px;height:40px;border-radius:12px;flex:none;display:flex;align-items:center;justify-content:center;font-size:20px}.timeline .meal-head{display:flex;align-items:baseline;gap:var(--s-s);flex-wrap:wrap}.timeline .meal-head strong{font-size:14px}.timeline .grow{flex:1 1;min-width:0}.log-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:var(--s-s);gap:var(--s-s)}.log-card{border:1px solid var(--line);border-radius:var(--r-control);background:#fcfdfd;padding:var(--s-s) var(--s-m);margin:0}.log-card img{width:100%;height:160px;object-fit:cover;border-radius:8px;margin-top:var(--s-s)}.log-marks{display:flex;flex-wrap:wrap;gap:var(--s-xs);margin:var(--s-xs) 0 0;padding:0;list-style:none}.log-marks li{font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px}.log-marks .ate{background:#e6f4ea;color:var(--green)}.log-marks .skipped{background:#fdf1de;color:#9a6206;text-decoration:line-through}.log-marks .instead{font-weight:500;opacity:.75;text-decoration:none}.login-wrap{max-width:440px;margin:6vh auto 0}.login-hero{background:linear-gradient(135deg,var(--verde-dark),var(--verde));border-radius:var(--r-card) var(--r-card) 0 0;color:#fff;padding:var(--s-xl) var(--s-l)}.login-hero h1{color:#fff;margin:0 0 var(--s-xs);font-size:28px}.login-hero p{color:rgba(255,255,255,.88);margin:0;font-size:14px}.login-sheet{background:var(--card);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r-card) var(--r-card);padding:var(--s-l);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--s-m)}.login-sheet label{width:100%}.login-sheet input{width:100%;font-size:17px}.login-sheet button{width:100%}.esc-sev{width:40px;height:40px;border-radius:12px;flex:none;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff}