:root{--accent:#d9663b;--accent-ink:#a9461f;--accent-soft:#fbede6;--bg:#fffcf8;--card:#fff;--ink:#231a15;--muted:#6e6159;--line:#efe7df;--green-ink:#2b6a2e;--green-soft:#e8f3e8;--grey-soft:#f1ece7;--grey-ink:#5f524a;--error:#b42318;--serif:ui-serif, "New York", "Iowan Old Style", Georgia, serif;--rounded:ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, sans-serif;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--shadow:0 1px 2px #3c1e0a0f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans);color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{overflow-wrap:anywhere;margin:0}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.55}img{display:block}:focus-visible{outline:3px solid var(--accent-ink);outline-offset:2px}p{margin:0}.muted{color:var(--muted)}.error{color:var(--error);margin:.75rem 0}.label,.meal-label,.week-head h1 small,.print-list h1 small{letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);font-size:.72rem;font-weight:800;display:block}.topbar{z-index:5;max-width:40rem;padding:calc(env(safe-area-inset-top) + .25rem) .75rem .25rem;background:var(--bg);justify-content:space-between;align-items:center;margin:0 auto;display:flex;position:sticky;top:0}.topbar-title{letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);font-size:.78rem;font-weight:800}.icon-button,.icon-button-space{flex:none;width:44px;height:44px}.icon-button{color:var(--ink);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-button:active{background:var(--line)}dialog{color:var(--ink);background:var(--bg);border:0;padding:0}dialog::backdrop{background:#140c0861}.drawer{border-radius:0 30px 30px 0;width:min(76vw,22rem);max-width:none;height:100%;max-height:none;margin:0;animation:.22s ease-out slide-in;position:fixed;inset:0 auto 0 0;box-shadow:0 20px 50px #0003}.drawer .modal-body{height:100%;padding:calc(env(safe-area-inset-top) + 3.5rem) 1.4rem calc(env(safe-area-inset-bottom) + 1.4rem);flex-direction:column;display:flex}@keyframes slide-in{0%{transform:translate(-100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){.drawer,.sheet{animation:none}}.drawer-close{top:calc(env(safe-area-inset-top) + .6rem);position:absolute;right:.6rem}.drawer-nav a{border-bottom:1px solid var(--line);font-family:var(--rounded);color:var(--ink);padding:.85rem 0;font-size:1.4rem;font-weight:600;text-decoration:none;display:block}.drawer-nav a:last-child{border-bottom:0}.drawer-nav a[aria-current=page]{color:var(--accent-ink)}.drawer-art{aspect-ratio:4/5;object-fit:cover;border-radius:22px;width:100%;max-height:45vh;margin-top:auto}.sheet{border-radius:30px 30px 0 0;width:100%;max-width:40rem;max-height:85vh;margin:0 auto;animation:.2s ease-out slide-up;position:fixed;inset:auto 0 0;box-shadow:0 -20px 50px #00000026}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:none}}.sheet .modal-body{max-height:85vh;padding:.6rem 1rem calc(env(safe-area-inset-bottom) + 1.4rem);flex-direction:column;display:flex}.grab{background:#ddd2c9;border-radius:3px;flex:none;width:40px;height:5px;margin:0 auto .75rem}.sheet-title{font-family:var(--serif);margin:0 .4rem .25rem;font-size:1.5rem;line-height:1.15}.sheet-sub{color:var(--muted);margin:0 .4rem .75rem;font-size:.9rem;line-height:1.4}.sheet-scroll{min-height:0;overflow-y:auto}.sheet-empty,.empty-note{text-align:center;font-family:var(--serif);color:var(--muted);padding:2rem 1rem;font-size:1.1rem}.sheet-cancel{background:var(--card);border:0;border-radius:18px;flex:none;width:100%;min-height:3.2rem;margin-top:.6rem;font-size:1.05rem;font-weight:700}.actions{border-radius:18px;overflow:hidden}.action{background:var(--card);text-align:left;border:0;align-items:center;gap:.9rem;width:100%;min-height:3.2rem;padding:.85rem .8rem;font-size:1.05rem;font-weight:600;display:flex}.action+.action{border-top:1px solid var(--line)}.action svg{flex:none}.action small{color:var(--muted);margin-top:.15rem;font-size:.82rem;font-weight:500;display:block}.action-danger{color:var(--error)}.segmented{background:var(--grey-soft);border-radius:14px;flex:none;margin-bottom:.6rem;padding:3px;display:flex}.segmented button{min-height:2.5rem;color:var(--grey-ink);background:0 0;border:0;border-radius:11px;flex:1;font-size:.9rem;font-weight:700}.segmented button[aria-pressed=true]{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #00000014}.pick-list{margin:0;padding:0;list-style:none}.pick{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:0 0;align-items:center;gap:.75rem;padding:.5rem .25rem;text-decoration:none;display:flex}.pick-text{min-width:0}.pick-text b{font-family:var(--serif);font-size:1.06rem;font-weight:400;line-height:1.2;display:block}.pick-text small{color:var(--muted);font-size:.82rem}.pick-heart{color:var(--accent);flex:none;margin-left:auto}.pdf-choices{gap:.5rem;display:flex}.pdf-choices button{background:var(--card);border:0;border-radius:16px;flex:1;min-height:3.6rem;padding:.8rem .4rem;font-size:.95rem;font-weight:700}.pdf-choices small{color:var(--muted);margin-top:.15rem;font-size:.75rem;font-weight:500;display:block}.thumb{object-fit:cover;border-radius:14px;flex:none;width:52px;height:52px}.thumb-stub{color:var(--accent);background:#f6e4d9;justify-content:center;align-items:center;display:inline-flex}.thumb-stub svg{opacity:.85;width:50%;max-width:44px}.page{max-width:40rem;padding:0 1rem calc(env(safe-area-inset-bottom) + 2rem);margin:0 auto}.page-title,.week-head h1,.print-list h1{font-family:var(--serif);letter-spacing:-.01em;margin:.25rem .4rem .75rem;font-size:2rem;line-height:1.05}.page-title small{font-family:var(--sans);letter-spacing:0;color:var(--muted);margin-bottom:.15rem;font-size:.9rem;font-weight:400;display:block}.page-title span,.week-head h1 span,.print-list h1 span{display:block}.week-head{justify-content:space-between;align-items:flex-end;gap:.75rem;display:flex}.week-head h1{margin-bottom:.6rem;font-size:2.1rem}.week-head h1 small,.print-list h1 small{font-family:var(--sans);margin-bottom:.2rem}.round-button{border:1.5px solid var(--line);background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:44px;height:44px;margin:0 .4rem .75rem 0;display:inline-flex}.week-switch{margin:0 .4rem .75rem}.empty{background:var(--card);box-shadow:var(--shadow);border-radius:22px;margin:0 .4rem;padding:1.5rem 1rem}.empty p+p{margin-top:.35rem}.day-tabs,.chips{scrollbar-width:none;gap:6px;margin:0 -1rem .75rem;padding:0 1.4rem 2px;display:flex;overflow-x:auto}.day-tabs::-webkit-scrollbar{display:none}.chips::-webkit-scrollbar{display:none}.day-tabs button,.chips button{border:1.5px solid var(--line);background:0 0;border-radius:999px;flex:none;min-height:44px;padding:0 .9rem;font-size:.95rem;font-weight:700}.day-tabs button[aria-pressed=true],.chips button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.day-name{font-family:var(--serif);flex-wrap:wrap;align-items:baseline;gap:.4rem;margin:.1rem .4rem .6rem;font-size:1.4rem;font-weight:400;display:flex}.day-name span{font-family:var(--sans);color:var(--muted);font-size:.9rem}.kcal-chips{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 .4rem .75rem;display:flex}.kcal-chip{background:var(--accent-soft);color:var(--accent-ink);white-space:nowrap;border-radius:999px;padding:.3rem .65rem;font-size:.82rem;font-weight:600}.kcal-chip b{font-weight:800}.kcal-chips small{color:var(--muted);font-size:.78rem}.meals{flex-direction:column;gap:.5rem;display:flex}.meal{background:var(--card);box-shadow:var(--shadow);border-radius:22px;padding:.75rem}.meal-head,.person-head{align-items:center;gap:.5rem;min-height:44px;margin:-.4rem 0 0;display:flex}.person-head{margin:0}.person+.person{border-top:1px solid var(--line);margin-top:.4rem;padding-top:.4rem}.person-name{color:var(--muted);font-size:.78rem;font-weight:800}.person-kcal{color:var(--accent-ink);font-size:.78rem;font-weight:600}.tag{white-space:nowrap;border-radius:999px;padding:.18rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.tag-cook{background:var(--accent-soft);color:var(--accent-ink)}.tag-leftover{background:var(--green-soft);color:var(--green-ink)}.tag-optional{background:var(--grey-soft);color:var(--grey-ink)}.add-dish{width:44px;height:44px;color:var(--accent-ink);background:0 0;border:0;flex:none;margin:0 -.5rem 0 auto;font-size:1.1rem;font-weight:700;position:relative}.add-dish:before{content:"";border:1.5px solid var(--line);border-radius:50%;position:absolute;inset:8px}.dishes{margin:0;padding:0;list-style:none}.dishes li{align-items:center;gap:.5rem;display:flex}.dish-row{min-width:0;min-height:44px;color:var(--ink);flex:1;align-items:center;gap:.75rem;padding:.25rem 0;text-decoration:none;display:flex}.dish-name{font-family:var(--serif);font-size:1.06rem;line-height:1.2}.meal-kcal{color:var(--muted);margin:.35rem 0 0 64px;font-size:.8rem;font-weight:600}.meal-empty{color:var(--muted);padding:.2rem 0 .1rem;font-size:.92rem}.meal-out{box-shadow:none;background:0 0;border:1.5px dashed #d9cbbf;flex-direction:column;gap:.2rem;padding:1rem;display:flex}.meal-out b{font-family:var(--serif);font-size:1.1rem;font-weight:400}.print-only{display:none}.page-recipe{padding:0 0 calc(env(safe-area-inset-bottom) + 2rem)}.hero{position:relative}.hero-image{object-fit:cover;width:100%;height:min(400px,52vh)}.hero-stub{flex-direction:column;gap:.5rem;padding-bottom:7rem;display:flex}.hero-stub svg{width:72px;max-width:none}.hero-stub span{color:var(--accent-ink);font-size:.95rem}.hero-title{color:#fff;background:linear-gradient(#0000,#140c08d1);padding:5.5rem 1.4rem 1.4rem;position:absolute;inset:auto 0 0}.hero-title .label{color:#fff}.hero-title h1{font-family:var(--serif);margin:.25rem 0 0;font-size:1.9rem;line-height:1.08}.hero-favorite{color:var(--accent-ink);background:#fffffff0;border-radius:999px;align-items:center;gap:.3rem;padding:.5rem .65rem;font-size:.78rem;font-weight:800;display:inline-flex;position:absolute;top:.75rem;right:1rem}.facts{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;margin:0;display:grid}.facts div{text-align:center;flex-direction:column-reverse;padding:1rem .6rem;display:flex}.facts div+div{border-left:1px solid var(--line)}.facts dd{font-family:var(--serif);margin:0;font-size:1.35rem}.facts dt{color:var(--muted);font-size:.78rem}.recipe-kcal{margin:.9rem 1.4rem 0}.portion{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin:1.1rem 1.4rem;display:flex}.portion-text{font-family:var(--serif);font-size:1.3rem;line-height:1.2}.portion-text small{font-family:var(--sans);color:var(--muted);margin-top:.2rem;font-size:.82rem;display:block}.stepper{border:1.5px solid var(--ink);border-radius:999px;flex:none;align-items:center;display:flex}.stepper button{background:0 0;border:0;border-radius:50%;width:48px;height:48px;font-size:1.4rem;line-height:1}.stepper output{text-align:center;min-width:1.5rem;font-size:1.15rem;font-weight:800}.stepper-error{flex-basis:100%;margin:0}.plates{border:1.5px solid var(--line);border-radius:20px;margin:0 1.4rem;padding:.9rem 1rem}.plates-row{gap:.6rem;margin-top:.5rem;display:flex}.plates-row p{flex:1}.plates-row b{font-family:var(--serif);font-size:1.5rem;display:block}.plates-row small{color:var(--muted);font-size:.82rem;font-weight:600}.section-title{font-family:var(--serif);margin:1.5rem 1.4rem .6rem;font-size:1.6rem}.ingredients{grid-template-columns:1fr 1fr;gap:.6rem;margin:0 1.4rem;padding:0;list-style:none;display:grid}.ingredients li{background:var(--accent-soft);border-radius:18px;flex-direction:column;padding:.75rem .85rem;font-size:.9rem;line-height:1.3;display:flex}.ingredients b{color:var(--accent-ink);font-size:1.1rem;font-weight:800}.ingredients em{color:var(--muted);font-size:.78rem;font-style:normal}.steps{counter-reset:step;margin:0 1.4rem;padding:0;list-style:none}.steps li{border-bottom:1px solid var(--line);counter-increment:step;gap:1rem;padding:1rem 0;font-size:1.06rem;line-height:1.5;display:flex}.steps li:before{content:counter(step);width:1.9rem;font-family:var(--serif);color:var(--accent);flex:none;font-size:2.1rem;font-weight:700;line-height:1}.notes{color:#5a4d45;margin:1.1rem 1.4rem;font-size:.95rem;line-height:1.5}.notes p+p{margin-top:.4rem}.notes b{color:var(--ink)}.department{margin:0 .4rem .5rem}.department-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:baseline;padding:1rem 0 .4rem;display:flex}.department-head h2{font-family:var(--serif);margin:0;font-size:1.5rem}.department-head small{color:var(--muted);font-size:.8rem}.shopping{margin:0;padding:0;list-style:none}.shopping li{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:.15rem .75rem;padding:.75rem 0;font-size:1rem;display:grid}.shopping-quantity{text-align:right;font-weight:800}.shopping-quantity.check{color:var(--accent-ink)}.flag{letter-spacing:.06em;text-transform:uppercase;color:var(--green-ink);margin-left:.3rem;font-size:.7rem;font-weight:800}.pack-hint{color:var(--accent-ink);grid-column:1/-1;font-size:.82rem}.favorite-grid{grid-template-columns:1fr 1fr;gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.favorite-tile{color:var(--ink);text-decoration:none;display:block}.favorite-photo{aspect-ratio:1;object-fit:cover;border-radius:22px;width:100%;height:auto}.favorite-tile small{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);margin-top:.5rem;font-size:.7rem;font-weight:700;display:block}.favorite-tile b{font-family:var(--serif);margin-top:.1rem;font-size:1.06rem;font-weight:400;line-height:1.2;display:block}.login{padding-top:calc(env(safe-area-inset-top) + 2rem)}.login-art{border-radius:22px;width:10rem;margin:0 auto 1rem}.login .page-title{text-align:center}.login-form{flex-direction:column;gap:.75rem;margin:0 .4rem;display:flex}.login-form label{font-weight:600}.login-form input{border:1.5px solid var(--line);background:var(--card);border-radius:14px;padding:.8rem;font-size:1.1rem}.button-primary{background:var(--accent-ink);color:#fff;border:0;border-radius:18px;min-height:3.2rem;font-size:1.05rem;font-weight:700}.notice{bottom:calc(env(safe-area-inset-bottom) + .75rem);z-index:20;background:var(--ink);color:#fff;border-radius:18px;align-items:center;gap:.6rem;max-width:38rem;margin:0 auto;padding:.6rem .4rem .6rem 1rem;font-size:.9rem;line-height:1.35;display:flex;position:fixed;left:.75rem;right:.75rem;box-shadow:0 10px 30px #00000040}.notice p{flex:1}.notice b{font-size:.95rem;display:block}.notice-open{background:var(--accent-ink);color:#fff;border-radius:999px;align-items:center;min-height:44px;padding:0 .9rem;font-weight:800;text-decoration:none;display:inline-flex}.notice-close{color:#fff;background:0 0;border:0;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.notice :focus-visible{outline-color:#fff}.toast{left:1rem;right:1rem;bottom:calc(env(safe-area-inset-bottom) + 1.5rem);z-index:20;background:var(--ink);color:#fff;pointer-events:none;border-radius:14px;max-width:38rem;margin:0 auto;padding:.75rem 1rem;font-size:.9rem;position:fixed}.toast:empty{visibility:hidden}.notice~.toast{bottom:calc(env(safe-area-inset-bottom) + 6rem)}.notice~main,.notice~* main{padding-bottom:calc(env(safe-area-inset-bottom) + 7rem)}@media print{:root{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff}.topbar,button,dialog,.notice,.toast,.week-switch,.day-tabs,.chips,.person-empty{display:none!important}.page{max-width:none;padding:0}a{color:inherit;text-decoration:none}main[data-print=week]>:not(.print-week):not(.week-head),main[data-print=list]>:not(.print-list){display:none!important}main[data-print=week] .print-week,main[data-print=list] .print-list{display:block}.print-day{break-before:auto;margin-bottom:1rem}.meal,.department li,.ingredients li,.steps li,.plates{break-inside:avoid}.meal{box-shadow:none;border:1px solid var(--line)}.hero-image{height:8cm}.hero-stub{display:none}.hero-title{color:var(--ink);background:0 0;padding:.75rem 1.4rem 0;position:static}.hero-title .label{color:var(--accent-ink)}.hero-favorite{display:none}}
