:root{--bg:#f6f7ef;--surface:#fff;--surface-2:#e9f0e2;--ink:#1c2a1e;--muted:#5d6e60;--line:#dbe5d3;--accent:#2f7d4f;--accent-ink:#fff;--accent-soft:#d6ebdb;--quick:#9a5b00;--quick-soft:#fdefc4;--lock:#6741d9;--lock-soft:#ece6ff;--shadow:0 1px 2px #142d190f, 0 6px 18px #142d1912;--radius:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111811;--surface:#1a231b;--surface-2:#232f24;--ink:#e8f0e3;--muted:#9db0a0;--line:#2e3c30;--accent:#5fbf86;--accent-ink:#0c1a10;--accent-soft:#1e3a28;--quick:#f2b94b;--quick-soft:#3b2e0f;--lock:#b197fc;--lock-soft:#2e2547;--shadow:0 1px 2px #00000059, 0 6px 18px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111811;--surface:#1a231b;--surface-2:#232f24;--ink:#e8f0e3;--muted:#9db0a0;--line:#2e3c30;--accent:#5fbf86;--accent-ink:#0c1a10;--accent-soft:#1e3a28;--quick:#f2b94b;--quick-soft:#3b2e0f;--lock:#b197fc;--lock-soft:#2e2547;--shadow:0 1px 2px #00000059, 0 6px 18px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5}h1,h2,.brand,.main-name{font-family:Bricolage Grotesque,Inter,system-ui,sans-serif}a{color:inherit}.shell{flex-direction:column;max-width:1180px;min-height:100vh;margin:0 auto;padding:0 16px;display:flex}main{flex:1}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 0;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:8px;font-size:20px;font-weight:800;text-decoration:none;display:flex}.brand-mark{background:var(--accent);color:var(--accent-ink);border-radius:9px;padding:2px 9px;transform:rotate(-3deg)}.top-right{align-items:center;gap:8px;display:flex}.theme-toggle{background:var(--surface);width:44px;height:44px;color:var(--ink);border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.tabs{background:var(--surface);border:1px solid var(--line);border-radius:999px;gap:4px;padding:4px;display:flex}.tab{color:var(--muted);border-radius:999px;padding:7px 16px;font-size:15px;font-weight:600;text-decoration:none}.tab:hover{color:var(--ink)}.tab.active{background:var(--ink);color:var(--bg)}.page{padding:8px 0 40px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}h1{letter-spacing:-.02em;margin:0 0 6px;font-size:clamp(30px,5vw,44px);line-height:1.05}.lede{color:var(--muted);margin:0}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:10px;padding:8px 14px;font-size:14px;font-weight:600;transition:transform 80ms,background .15s}button:hover:not(:disabled){background:var(--accent-soft)}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,.tab:focus-visible,.rule:focus-within{outline:3px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;border-radius:12px;padding:12px 20px;font-size:16px}button.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}button.huge{border-radius:14px;padding:16px 28px;font-size:20px}button.ghost{background:0 0}.rules{flex-wrap:wrap;gap:8px;margin:20px 0;display:flex}.rule{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 8px;font-size:14px;font-weight:600;display:inline-flex}.rule.on{color:var(--ink)}.rule input{opacity:0;width:1px;height:1px;position:absolute}.switch{background:var(--line);border-radius:999px;flex:none;width:30px;height:18px;transition:background .15s;position:relative}.switch:after{content:"";background:var(--surface);border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.rule.on .switch{background:var(--accent)}.rule.on .switch:after{transform:translate(12px)}.days{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.slot{border:2px dashed var(--line);border-radius:calc(var(--radius) + 4px);flex-direction:column;gap:8px;min-width:0;padding:10px;transition:border-color .12s,background .12s;display:flex}.slot.locked{border-style:solid;border-color:var(--lock);background:var(--lock-soft)}.slot.drop-target{border-color:var(--accent);background:var(--accent-soft);border-style:solid}.slot-head{justify-content:space-between;align-items:center;gap:8px;padding:2px 4px 0;display:flex}.slot h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:13px;font-weight:700}.icon-btn{background:var(--surface);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:12px}.icon-btn.on{background:var(--lock);color:var(--surface);border-color:var(--lock)}.icon-btn.on:hover:not(:disabled){background:var(--lock);filter:brightness(1.12)}.block{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;gap:10px;min-width:0;padding:14px;display:flex}.block.out{background:var(--surface-2)}.block.movable{cursor:grab}.block.lifted{opacity:.35}.block-top{align-items:center;gap:8px;min-height:22px;display:flex}.handle{color:var(--muted);cursor:grab;touch-action:none;border-radius:6px;margin:-2px 0 -2px -4px;padding:2px 4px;font-size:18px;line-height:1}.handle:hover{background:var(--surface-2)}.drag-ghost{z-index:50;pointer-events:none;cursor:grabbing;opacity:.96;position:fixed;transform:rotate(-1.5deg);box-shadow:0 18px 40px #0f281640}.dragging-page,.dragging-page *{cursor:grabbing!important}.day-actions{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.count{background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:4px;padding:4px 4px 4px 14px;font-size:14px;font-weight:600;display:inline-flex}.count-label{margin-right:6px}.count button{border-radius:50%;width:28px;height:28px;padding:0;font-size:16px;line-height:1}.count input{text-align:center;width:40px;font:inherit;color:var(--ink);border:1px solid var(--line);appearance:textfield;background:0 0;border-radius:8px;padding:3px 0;font-weight:700}.count input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.count input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.rules-note{color:var(--muted);align-self:center;font-size:13px}.head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.head-actions>button:not(.primary){border-radius:12px;padding:12px 18px;font-size:16px}.overlay{z-index:60;background:#0a190f73;justify-content:center;align-items:flex-start;padding:24px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.dialog{background:var(--surface);color:var(--ink);border-radius:20px;width:100%;max-width:640px;padding:22px;box-shadow:0 24px 60px #0000004d}.dialog-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dialog h2{margin:0 0 4px;font-size:28px}.export{flex-wrap:wrap;gap:8px;margin:16px 0 8px;display:flex}.status{color:var(--quick);margin:0 0 8px;font-size:14px}.store h3{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:18px 0 6px;font-size:13px}.store ul{margin:0;padding:0;list-style:none}.store li{border-bottom:1px solid var(--line)}.store label{cursor:pointer;align-items:center;gap:10px;padding:8px 2px;display:flex}.store input{width:18px;height:18px;accent-color:var(--accent);flex:none}.store .item{flex:1}.store .qty{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.store li.got .item,.store li.got .qty{opacity:.5;text-decoration:line-through}.label-check{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.footnote{color:var(--muted);margin:14px 0 0;font-size:13px}@media print{body.print-shopping .shell{display:none}body.print-shopping .overlay{background:0 0;padding:0;position:static}body.print-shopping .dialog{box-shadow:none;color:#000;background:#fff;max-width:none;padding:0}body.print-shopping .no-print{display:none}}.meal-name{min-width:0}.main-name{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:22px;font-weight:800;line-height:1.15}.side-names{color:var(--muted);margin-top:2px;font-size:15px}.meal-name.big .main-name{font-size:clamp(30px,6vw,44px)}.meal-name.big .side-names{font-size:18px}.badges{gap:6px;display:flex}.badge{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}.badge.quick{background:var(--quick-soft);color:var(--quick)}.how{border-top:1px solid var(--line);padding-top:8px;font-size:14px}.how summary{cursor:pointer;color:var(--accent);font-weight:600}.how dl{margin:8px 0 0}.how dt{margin-top:8px;font-weight:700}.how dd{color:var(--muted);margin:2px 0 0}.tonight{text-align:center;padding-top:24px}.tonight-controls{flex-direction:column;align-items:center;gap:14px;margin:28px 0;display:flex}.tonight-card{text-align:left;background:var(--surface);border:1px solid var(--line);max-width:620px;box-shadow:var(--shadow);border-radius:22px;flex-direction:column;gap:12px;margin:0 auto;padding:24px;animation:.25s ease-out pop;display:flex}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.tonight-card{animation:none}}.foot{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:16px;padding:24px 0 32px;font-size:13px;display:flex}.onion-word{cursor:pointer;border-radius:4px;display:inline-block}.onion-word:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.onion-word.shake{animation:.3s nope}@keyframes nope{0%,to{transform:none}25%{transform:translate(-2px)rotate(-4deg)}75%{transform:translate(2px)rotate(4deg)}}.onion-layer{pointer-events:none;z-index:100;position:fixed;inset:0;overflow:hidden}.flying-onion{filter:drop-shadow(0 10px 14px #1428194d);will-change:transform;position:absolute;top:0;left:0}@media (prefers-reduced-motion:reduce){.onion-word.shake{animation:none}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.machine-wrap{justify-content:center;align-items:center;gap:6px;max-width:560px;margin:28px auto 0;display:flex}.machine{background:linear-gradient(#3a8f5c 0%,#22603b 100%);border-radius:28px;flex:1;max-width:480px;padding:16px 18px 22px;box-shadow:inset 0 3px #ffffff40,inset 0 -6px #0003,0 18px 40px #1446284d}.marquee{justify-content:center;align-items:center;gap:10px;margin-bottom:14px;display:flex}.marquee-text{letter-spacing:.08em;color:#f6f7ef;background:#1c2a1e;border-radius:10px;padding:4px 14px;font-family:Bricolage Grotesque,system-ui,sans-serif;font-size:22px;font-weight:800;box-shadow:inset 0 0 0 2px #ffd43b}.bulbs{background-image:radial-gradient(circle,#ffd43b 3.5px,#0000 4px);background-position:50%;background-repeat:repeat-x;background-size:15px 10px;flex:1;max-width:90px;height:10px}.machine.won .bulbs,.machine.busted .bulbs{animation:.4s steps(2,end) 5 blink}@keyframes blink{50%{opacity:.25}}.reels{background:#1c2a1e;border-radius:18px;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px;display:grid;position:relative;box-shadow:inset 0 4px 10px #00000080}.reel{background:linear-gradient(#cfd9c8 0%,#fbfcf6 22% 78%,#cfd9c8 100%);border-radius:12px;height:104px;position:relative;overflow:hidden}.reel-item{justify-content:center;align-items:center;height:104px;font-size:60px;line-height:1;display:flex}.reel-strip{will-change:transform}.payline{pointer-events:none;background:#c98a0099;border-radius:2px;height:3px;position:absolute;top:50%;left:4px;right:4px;transform:translateY(-50%)}.machine.won .reel{animation:.5s 2 win}@keyframes win{50%{box-shadow:0 0 0 4px #ffd43b,0 0 22px #ffd43b}}.machine.busted .reels{animation:.45s shake}@keyframes shake{20%{transform:translate(-8px)rotate(-1deg)}40%{transform:translate(8px)rotate(1deg)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.lever{cursor:pointer;background:0 0;border:none;flex:none;align-self:center;width:34px;height:170px;padding:0;position:relative}.lever:hover:not(:disabled){background:0 0}.lever:disabled{opacity:1;cursor:default}.lever:before{content:"";background:#495057;border-radius:0 8px 8px 0;width:16px;height:34px;position:absolute;bottom:30px;left:4px}.lever-stick{transform-origin:50% 100%;background:linear-gradient(90deg,#ced4da,#868e96);border-radius:4px;width:8px;height:104px;transition:transform .18s;position:absolute;bottom:50px;left:12px}.lever-knob{background:radial-gradient(circle at 35% 35%,#ff8787,#e03131 60%,#a51111);border-radius:50%;width:26px;height:26px;transition:transform .18s;position:absolute;bottom:140px;left:3px;box-shadow:0 3px 6px #0000004d}.lever.pulled .lever-stick{transform:scaleY(-.55)}.lever.pulled .lever-knob{transform:translateY(110px)}.tonight-switches{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.rule.rig{opacity:.75;padding:4px 12px 4px 6px;font-size:12px}.rule.rig.on{opacity:1}.tonight-card.sad{text-align:center;align-items:center}.sad-face{font-size:88px;line-height:1;animation:.6s ease-out droop}@keyframes droop{0%{opacity:0;transform:translateY(-20px)scale(.6)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.machine.won .reel,.machine.busted .reels,.machine.won .bulbs,.machine.busted .bulbs,.sad-face{animation:none}.lever-stick,.lever-knob{transition:none}}.tab{align-items:center;gap:6px;display:inline-flex}.tab-count{background:var(--accent);color:var(--accent-ink);border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:800;display:inline-flex}button.in-cart{background:var(--quick-soft);color:var(--quick);opacity:1;border-color:#0000}button.danger{color:#fff;background:#e03131;border-color:#0000}button.danger:hover:not(:disabled){background:#c92a2a}.cart-note{color:var(--quick);margin:-8px 0 16px;font-size:14px}.cart-note a{font-weight:600}.button-link{background:var(--accent);color:var(--accent-ink);border-radius:12px;padding:12px 20px;font-weight:600;text-decoration:none;display:inline-block}.empty-cart{text-align:center;color:var(--muted);padding:48px 16px}.empty-icon{margin-bottom:8px;font-size:64px;line-height:1}.cart-weeks{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin:24px 0 0;padding:0;list-style:none;display:grid}.cart-week{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:16px}.cart-week-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.cart-week h2{margin:0;font-size:22px}.cart-week-meta{color:var(--muted);font-size:13px}.cart-week-actions{gap:6px;display:flex}.cart-days{margin:0;padding:0;list-style:none}.cart-days li{border-top:1px solid var(--line);align-items:baseline;gap:10px;padding:6px 0;font-size:14px;display:flex}.cart-days li.out{color:var(--muted)}.cart-day{text-transform:uppercase;letter-spacing:.06em;width:32px;color:var(--muted);flex:none;font-size:12px;font-weight:700}.cart-icon{text-align:center;flex:none;width:22px}.cart-meal{min-width:0;font-weight:600}.cart-sides{color:var(--muted);font-weight:400}@media (width<=560px){.head-actions{width:100%}.head-actions button{flex:1}.brand{font-size:18px}.reel,.reel-item{height:84px}.reel-item{font-size:46px}.marquee-text{font-size:18px}}
