:root{--bg:#faf6f0;--surface:#fff;--surface-sunken:#f3ede4;--text:#241d18;--text-muted:#6f6258;--border:#e6ddd1;--accent:#c2512a;--accent-strong:#a8431f;--accent-soft:#fbe9df;--on-accent:#fff;--danger:#b3261e;--danger-soft:#fbe6e4;--info-soft:#eef3e6;--info-text:#3d4f24;--shadow:0 1px 2px #3c28140f, 0 6px 20px #3c28140f;--radius:16px;--radius-small:10px;--nav-height:60px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#191614;--surface:#23201d;--surface-sunken:#2c2824;--text:#f2ebe3;--text-muted:#a99d91;--border:#3a342f;--accent:#e8794f;--accent-strong:#f08c65;--accent-soft:#3d2a21;--on-accent:#1d120c;--danger:#f2877f;--danger-soft:#40221f;--info-soft:#2a3120;--info-text:#c9dba9;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}h1,h2,h3,p,ul,ol{margin:0}h1{letter-spacing:-.01em;text-wrap:balance;font-size:1.75rem;line-height:1.2}h2{font-size:1.125rem;line-height:1.3}a{color:var(--accent-strong)}ul,ol{padding:0;list-style:none}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--text-muted)}.clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.shell{min-height:100dvh}.topbar{z-index:10;padding:calc(env(safe-area-inset-top) + 12px) 16px 12px;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar:before{z-index:-1;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);content:"";position:absolute;inset:0}.brand{color:var(--text);letter-spacing:-.01em;font-size:1.125rem;font-weight:700;text-decoration:none}.nav{padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--border);background:var(--surface);display:flex;position:fixed;bottom:0;left:0;right:0}.nav-link{height:var(--nav-height);color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.75rem;font-weight:500;text-decoration:none;display:flex}.nav-link.active{color:var(--accent-strong)}.content{max-width:960px;padding:8px 16px calc(var(--nav-height) + env(safe-area-inset-bottom) + 24px);gap:16px;margin:0 auto;display:grid}@media (width>=720px){.topbar{border-bottom:1px solid var(--border);padding-inline:24px}.nav{background:0 0;border:0;gap:4px;padding:0;position:static}.nav-link{border-radius:999px;flex-direction:row;flex:none;gap:8px;height:auto;padding:8px 14px;font-size:.9375rem}.nav-link.active{background:var(--accent-soft)}.content{padding:24px 24px 48px}}.page-head,.section-head,.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.page-head,.section-head{justify-content:space-between}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);padding:20px}.stack,.form,.empty{gap:16px;display:grid}.chip{background:var(--surface-sunken);color:var(--text-muted);border-radius:999px;padding:2px 10px;font-size:.8125rem;font-weight:500;display:inline-block}.button{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{border-color:var(--text-muted)}.button:disabled{cursor:default;opacity:.5}.button-primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.button-primary:hover{border-color:var(--accent-strong);background:var(--accent-strong)}.button-quiet{color:var(--text-muted);background:0 0;border-color:#0000}.button-danger{color:var(--danger)}.button-small{min-height:36px;padding:0 14px;font-size:.875rem}.link-button{color:var(--accent-strong);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.back-link{color:var(--text-muted);justify-self:start;align-items:center;gap:4px;font-weight:500;text-decoration:none;display:inline-flex}.message{border-radius:var(--radius-small);padding:12px 16px}.message p+.button{margin-top:8px}.message-error{background:var(--danger-soft);color:var(--danger)}.message-info{background:var(--info-soft);color:var(--info-text)}.message.row{justify-content:space-between}.empty{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;justify-items:center;padding:48px 16px}.divider{color:var(--text-muted);align-items:center;gap:12px;font-size:.875rem;display:flex}.divider:before,.divider:after{background:var(--border);content:"";flex:1;height:1px}.field{border:0;gap:6px;min-width:0;margin:0;padding:0;display:grid}.field>span,.field>legend{padding:0;font-size:.9375rem;font-weight:600}.field>legend{margin-bottom:6px}.field em{color:var(--text-muted);font-style:normal;font-weight:400}.field small{color:var(--text-muted);font-size:.8125rem}input,textarea{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);width:100%;color:var(--text);font:inherit;padding:11px 14px;font-size:16px}textarea{resize:vertical}input:focus-visible,textarea:focus-visible{border-color:var(--accent);outline:2px solid var(--accent-soft);outline-offset:0}.field-narrow{max-width:180px}.field-row{flex-wrap:wrap;gap:12px;display:flex}.field-row>.field{flex:160px}.field-row>.field-narrow{flex:0 110px}fieldset.field{gap:12px}.form-actions{flex-wrap:wrap;gap:8px;display:flex}.segmented{background:var(--surface-sunken);border-radius:999px;gap:4px;padding:4px;display:flex}.segmented button{min-height:38px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;flex:1;padding:0 12px;font-size:.9375rem;font-weight:600}.segmented button[aria-selected=true],.segmented button[aria-pressed=true]{background:var(--surface);box-shadow:var(--shadow);color:var(--text)}.preview{border-radius:var(--radius-small);background:var(--surface-sunken);padding:12px 16px}.preview-title{color:var(--text-muted);margin-bottom:4px;font-size:.8125rem;font-weight:600}.recipe-form{max-width:640px}.auth-screen{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.auth-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;max-width:420px;box-shadow:var(--shadow);gap:16px;padding:28px 24px;display:grid}.auth-brand{color:var(--accent-strong)}.setup-steps{gap:8px;padding-left:20px;list-style:decimal;display:grid}.card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.recipe-card{height:100%;color:inherit;align-content:start;justify-items:start;gap:8px;text-decoration:none;transition:transform .15s,border-color .15s;display:grid}.recipe-card:hover{border-color:var(--accent);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.recipe-card{transition:none}.recipe-card:hover{transform:none}}.recipe{gap:20px;display:grid}.recipe-head{gap:12px;display:grid}.lead{color:var(--text-muted);font-size:1.0625rem}.recipe-body{align-items:start;gap:16px;display:grid}.recipe-body>.card{gap:16px;display:grid}@media (width>=720px){.recipe-body{grid-template-columns:minmax(260px,2fr) 3fr}}.stepper{background:var(--surface-sunken);border-radius:999px;align-items:center;gap:4px;padding:4px;display:flex}.stepper button{background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid}.stepper button:disabled{cursor:default;opacity:.4}.stepper label{align-items:baseline;gap:4px;padding:0 6px;font-size:.9375rem;display:flex}.stepper input{text-align:right;box-sizing:content-box;background:0 0;border:0;width:3ch;padding:0;font-weight:700}.scale-note{color:var(--text-muted);font-size:.875rem}.ingredient-list li{border-bottom:1px solid var(--border);grid-template-columns:6.5em 1fr;gap:12px;padding:8px 0;display:grid}.ingredient-list li:last-child{border-bottom:0}.ingredient-amount{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.step-list{counter-reset:step;gap:16px;display:grid}.step-list li{counter-increment:step;grid-template-columns:32px 1fr;gap:12px;display:grid}.step-list li:before{background:var(--accent-soft);width:32px;height:32px;color:var(--accent-strong);content:counter(step);border-radius:50%;place-items:center;font-size:.9375rem;font-weight:700;display:grid}.step-list p{padding-top:4px}mark{background:var(--accent-soft);color:inherit;border-radius:4px;padding:0 4px;font-weight:600}.recipe-source{border-top:1px solid var(--border);color:var(--text-muted);overflow-wrap:anywhere;padding-top:16px;font-size:.875rem}.plain-list{gap:12px;display:grid}.trash-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.trash-title{color:var(--text);font-weight:600}.member-list{gap:8px;display:grid}.member-list li{align-items:center;gap:8px;display:flex}.invite-code{border-radius:var(--radius-small);background:var(--surface-sunken);letter-spacing:.08em;padding:8px 14px;font-size:1.0625rem}.chip-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip-row-scroll{scrollbar-width:none;flex-wrap:nowrap;margin-inline:-16px;padding-inline:16px;overflow-x:auto}.chip-row-scroll>*{flex:none}.chip-accent{background:var(--accent-soft);color:var(--accent-strong)}.chip-button{border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--text);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:0 14px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.chip-button.chip-accent{background:var(--accent-soft);color:var(--accent-strong);border-color:#0000}.chip-button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.chip-button:disabled{cursor:default;opacity:.6}.search{display:block;position:relative}.search svg{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.search input{border-radius:999px;padding-left:46px}.result-count{font-size:.875rem}.recipe-card-wrap{position:relative}.recipe-card{padding-right:56px}.recipe-card-favorite{position:absolute;top:8px;right:8px}.favorite-button{width:44px;height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.favorite-button:hover{background:var(--surface-sunken)}.favorite-button.is-active{color:var(--accent)}.recipe-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.variant-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.variant-bar:empty{display:none}.segmented-wrap{border-radius:22px;flex-wrap:wrap}.segmented-wrap button{flex:0 auto;padding:0 16px}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inline-form input{flex:180px;width:auto;min-width:0}.comment-list{gap:16px;display:grid}.comment-meta{flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:.875rem;display:flex}.comment-body{white-space:pre-wrap;overflow-wrap:anywhere}.link-button:disabled{cursor:default;opacity:.5}.link-danger{color:var(--danger)}.collection-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px 0;display:flex}.collection-list li:last-child{border-bottom:0}.collection-name{color:var(--text);flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;text-decoration:none;display:inline-flex}summary{color:var(--accent-strong);cursor:pointer;font-weight:500}.snapshot{gap:12px;padding-top:12px;display:grid}.snapshot h3{font-size:1rem}.snapshot-lines{padding-left:22px;font-size:.9375rem;list-style:outside}.snapshot-steps{margin-top:8px;list-style:decimal}.check-list{gap:4px;margin-top:8px;padding-left:20px;list-style:outside;display:grid}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}.photo-grid li{aspect-ratio:3/4;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface-sunken);position:relative;overflow:hidden}.photo-grid img{object-fit:cover;width:100%;height:100%}.photo-remove{color:#fff;cursor:pointer;background:#0009;border:0;border-radius:50%;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:4px;right:4px}.recipe-photos{gap:12px;max-width:720px;display:grid}.recipe-photos img{border:1px solid var(--border);border-radius:var(--radius);width:100%;height:auto;display:block}.recipe-photo-placeholder{aspect-ratio:3/4;border-radius:var(--radius);background:var(--surface-sunken)}.icon-button{border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:50%;flex:none;place-items:center;display:grid}.icon-button-small{width:32px;height:32px}.week-switcher{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.week-label{text-align:center;flex:1;min-width:0;font-size:.9375rem;display:grid}.week-label .muted{font-size:.8125rem}.week-grid{gap:12px;display:grid}.day-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;box-shadow:var(--shadow);align-content:start;gap:10px;padding:14px;display:grid}.day-card.is-today{border-color:var(--accent)}.day-card h2{justify-content:space-between;align-items:baseline;gap:8px;font-size:1rem;display:flex}.day-card h2 .muted{font-size:.8125rem;font-weight:400}.slot{border-top:1px solid var(--border);gap:6px;padding-top:8px;display:grid}.slot-head{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:.8125rem;font-weight:600;display:flex}.plan-entry{border-radius:var(--radius-small);background:var(--accent-soft);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere;border:0;gap:2px;padding:8px 10px;font-size:.9375rem;display:grid}.plan-entry .muted{font-size:.8125rem}.plan-entry-title{font-weight:600}.plan-entry:has(.is-text){background:var(--surface-sunken)}.plan-entry-title.is-text{font-weight:400}@media (width>=1000px){.content:has(.week-grid){max-width:1400px}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day-card{padding:10px}.day-card h2{flex-direction:column;gap:0}}.dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(520px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--text);box-shadow:var(--shadow);padding:20px}.dialog::backdrop{background:#00000073}.pick-list{border:1px solid var(--border);border-radius:var(--radius-small);max-height:40dvh;display:grid;overflow-y:auto}.pick-list li+li{border-top:1px solid var(--border)}.pick-list button{width:100%;min-height:44px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:8px 14px}.pick-list button:hover{background:var(--surface-sunken)}.shopping-section{gap:4px;padding:14px 16px;display:grid}.shopping-section h2{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.8125rem}.shopping-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;display:flex}.shopping-row:last-child{border-bottom:0}.shopping-row label{cursor:pointer;flex:1;align-items:center;gap:12px;min-width:0;min-height:48px;padding:6px 0;display:flex}.shopping-row input[type=checkbox]{width:24px;height:24px;accent-color:var(--accent);flex:none;padding:0}.shopping-text{min-width:0;display:grid}.shopping-detail{text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.shopping-row.is-checked .shopping-name{color:var(--text-muted);text-decoration:line-through}.more-link{color:var(--text);align-items:center;gap:14px;text-decoration:none;display:flex}.more-link>span{display:grid}.more-link .muted{font-size:.875rem}.match-card{gap:8px;display:grid}.match-card>div:first-child{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.match-title{color:var(--text);font-size:1.0625rem;font-weight:700}.match-detail{font-size:.875rem}.content-plain{padding-bottom:32px}
