:root{--bg:#faf7f1;--surface:#fff;--surface-2:#f2eee5;--text:#22251f;--muted:#6b6f64;--border:#e3ddd0;--accent:#2f6b4f;--accent-soft:#e2efe7;--warn:#9a5b00;--warn-soft:#fbefd9;--star:#d99a00;--radius:12px;--shadow:0 1px 2px #0000000f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#161815;--surface:#1f221e;--surface-2:#272b26;--text:#e9ebe4;--muted:#a0a598;--border:#353a33;--accent:#7cc49c;--accent-soft:#23372b;--warn:#f0b95b;--warn-soft:#3a2f1b;--star:#f2c14e;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-underline-offset:2px}h1{margin:.5rem 0 .75rem;font-size:1.6rem;line-height:1.2}h2{margin:0 0 .5rem;font-size:1.15rem}h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:1rem 0 .25rem;font-size:.8rem}code{background:var(--surface-2);border-radius:4px;padding:0 .3em}.muted{color:var(--muted)}.lede{color:var(--muted);margin-top:-.25rem}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;padding:.6rem 16px;display:flex;position:sticky;top:0}.brand{color:var(--text);font-weight:700;text-decoration:none}nav{gap:.25rem;display:flex}nav a{color:var(--muted);border-radius:999px;padding:.35rem .7rem;font-weight:500;text-decoration:none}nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}main{max-width:760px;margin:0 auto;padding:.75rem 16px 2rem}footer{max-width:760px;color:var(--muted);margin:0 auto;padding:1rem 16px 2rem;font-size:.85rem}.back{margin:.25rem 0 0;font-size:.9rem}.back a{text-decoration:none}.section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:1rem 0;padding:1rem}.callout{background:var(--surface-2);border-radius:var(--radius);margin:.75rem 0;padding:.75rem 1rem}.callout p{margin:.25rem 0}.callout.accent{background:var(--accent-soft)}.github-links{margin-top:1.5rem;font-size:.9rem}.chip-row{flex-wrap:wrap;gap:.4rem;margin:.5rem 0;display:flex}.chip{background:var(--surface-2);color:var(--text);white-space:nowrap;border-radius:999px;padding:.15rem .6rem;font-size:.85rem;display:inline-block}.chip-accent{background:var(--accent);color:var(--bg);font-weight:600}.chip-warn{background:var(--warn-soft);color:var(--warn)}.toggle{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:.3rem .7rem;font-size:.85rem}.toggle.on{background:var(--accent);border-color:var(--accent);color:var(--bg)}.stars{color:var(--star);letter-spacing:.05em}.stars-off{color:var(--border)}.filters{gap:.5rem;display:grid}.filters input[type=search],.filters select{font:inherit;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:10px;padding:.55rem .75rem}.filter-selects{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.filter-selects label{color:var(--muted);gap:.2rem;font-size:.8rem;display:grid}.count{margin:.75rem 0 .25rem;font-size:.85rem}.empty{text-align:center;color:var(--muted);padding:2rem 0}.card-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.card{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);gap:.15rem;padding:.75rem 1rem;text-decoration:none;display:grid}.card:hover,.card:focus-visible{border-color:var(--accent)}.card-title{font-weight:600}.card-meta{flex-wrap:wrap;align-items:center;gap:.25rem .75rem;font-size:.85rem;display:flex}.card-sub{font-size:.85rem}.section .card-list{margin:.5rem 0}.week{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:3.25rem 1fr;align-items:start;gap:.75rem;padding:.75rem;display:grid}.day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.day-name{font-weight:700;line-height:1.2;display:grid}.day-name .muted{font-size:.8rem;font-weight:400}.day-body{gap:.2rem;min-width:0;display:grid}.day-title{font-weight:600}.day-note{font-size:.85rem}main:has(.week-calendar){max-width:1120px}@media (width>=800px){.week-calendar{grid-template-columns:repeat(var(--days,5), minmax(0, 1fr))}.week-calendar .day{grid-template-columns:1fr;align-content:start;gap:.5rem}.week-calendar .day-name{border-bottom:1px solid var(--border);align-items:baseline;gap:.4rem;padding-bottom:.4rem;display:flex}}.variety{margin:.6rem .25rem 0}.variety .warn-list{margin:.25rem 0 0}.ingredients,.bullets,.checklist,.ratings{margin:.25rem 0;padding-left:1.2rem}.ingredients li,.bullets li,.ratings li{margin:.2rem 0}.qty{font-weight:600}.steps{margin:.25rem 0;padding-left:1.4rem}.steps li{margin:.4rem 0;padding-left:.2rem}.checklist{padding-left:0;list-style:none}.checklist li{align-items:baseline;gap:.5rem;margin:.25rem 0;display:flex}.checklist li.done{color:var(--muted);text-decoration:line-through}.warn-list li{color:var(--warn)}.button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;justify-content:center;align-items:center;gap:.35rem;padding:.45rem .9rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{border-color:var(--accent)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}.button.danger{color:#b3261e;border-color:currentColor}.button:disabled{opacity:.55;cursor:default}.toggle.small{padding:.2rem .6rem;font-size:.8rem}.field{gap:.3rem;margin:.75rem 0;font-size:.9rem;font-weight:600;display:grid}.field input,.modal input[type=search]{font:inherit;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:10px;padding:.55rem .75rem;font-weight:400}.row{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:.5rem 0;display:flex}.error{color:#b3261e;font-weight:600}@media (prefers-color-scheme:dark){.error,.button.danger{color:#f2b8b5}}.small,.hint{font-size:.85rem}.title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.title-row h1{margin-bottom:.5rem}.sync{color:var(--muted);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .55rem;font-size:.8rem;text-decoration:none;display:inline-flex}.sync .dot{background:var(--border);border-radius:50%;width:.5rem;height:.5rem}.sync-live .dot{background:var(--accent)}.sync-saving .dot,.sync-loading .dot{background:var(--star)}.sync-error{color:var(--warn);border-color:var(--warn)}.sync-error .dot{background:var(--warn)}.banner{background:var(--warn-soft);color:var(--warn);padding:.5rem 16px;font-size:.9rem}.checklist li{display:block}.checklist label{cursor:pointer;align-items:flex-start;gap:.6rem;padding:.35rem 0;display:flex}.checklist input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--accent);flex:none;margin-top:.15rem}.checklist li.done label{color:var(--muted);text-decoration:line-through}.week-switch{justify-content:space-between;align-items:center;gap:.5rem;margin:0 0 .75rem;display:flex}.planner-day .day-body{gap:.4rem}.pick{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:var(--surface-2);border:1px dashed var(--border);border-radius:10px;gap:.15rem;padding:.55rem .7rem;display:grid}.pick:hover,.pick.selected{border-color:var(--accent);border-style:solid}.modal-backdrop{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border-radius:16px 16px 0 0;align-content:start;gap:.6rem;width:100%;max-width:640px;max-height:88vh;padding:1rem 16px 1.5rem;display:grid;overflow:auto}@media (width>=700px){.modal-backdrop{align-items:center}.modal{border-radius:16px}}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-head h2{margin:0}.pick-list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.pick-list .pick{background:var(--surface);border-style:solid}.other{border-top:1px solid var(--border);padding-top:.5rem}.star-input{gap:.1rem;display:inline-flex}.star-input button{cursor:pointer;color:var(--border);background:0 0;border:0;padding:.1rem;font-size:1.8rem;line-height:1}.star-input button.on{color:var(--star)}.rate{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.5rem}.checklist li:has(.claim){align-items:flex-start;gap:.5rem;display:flex}.checklist li:has(.claim) label{flex:1}.claim{white-space:nowrap;flex:none;margin-top:.3rem}.day-notes{font:inherit;resize:vertical;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:8px;padding:.35rem .55rem;font-size:.85rem}.tonight-card{border-color:var(--accent);background:var(--accent-soft);margin-bottom:.75rem}.tonight-card .card-sub{color:var(--accent);font-weight:600}.steps.big li{cursor:pointer;margin:.8rem 0;font-size:1.15rem;line-height:1.55}.steps li.done{color:var(--muted);text-decoration:line-through}textarea.paste{border:1px solid var(--border);background:var(--surface);width:100%;min-height:12rem;color:var(--text);border-radius:10px;padding:.6rem .75rem;font:400 .85rem/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}.confirm{align-items:center;gap:.5rem;margin:.5rem 0 .75rem;font-weight:600;display:flex}
