@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-400-normal-g7Dtegnw.woff2) format("woff2"),url(/assets/figtree-latin-400-normal-BD4aNku5.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/figtree-latin-500-normal-BWnGEVsr.woff2) format("woff2"),url(/assets/figtree-latin-500-normal-B_yy1phn.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-600-normal-Cv_xCTDl.woff2) format("woff2"),url(/assets/figtree-latin-600-normal-BM_oTo4n.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/figtree-latin-700-normal-th6qEP7c.woff2) format("woff2"),url(/assets/figtree-latin-700-normal-BCCt2T1q.woff) format("woff")}:root,[data-theme=light]{color-scheme:light;--bg: #fbf5ea;--surface: #fffdf8;--surface-2: #f3e6cf;--border: #e2d3bb;--border-strong: #94795e;--text: #2b2018;--text-muted: #6b5646;--primary: #b4532f;--primary-hover: #97432a;--primary-soft: #f7e0d4;--primary-soft-text: #97432a;--on-primary: #ffffff;--secondary: #5c6b35;--secondary-soft: #e6ebd5;--on-secondary: #ffffff;--accent: #e3a93b;--on-accent: #2b2018;--wood: #8a5a3b;--danger: #a8322a;--danger-soft: #f8e1dd;--on-danger: #ffffff;--success: #3f6b2e;--overlay: rgba(28, 22, 18, .94);--shadow-color: 43, 32, 24;--shadow: 0 1px 2px rgba(var(--shadow-color), .06), 0 6px 18px rgba(var(--shadow-color), .07);--nav-bg: rgba(255, 253, 248, .97)}[data-theme=dark]{color-scheme:dark;--bg: #1c1612;--surface: #28201a;--surface-2: #332920;--border: #4a3d31;--border-strong: #8a735c;--text: #f4eadb;--text-muted: #c4b29c;--primary: #e8845c;--primary-hover: #f09a76;--primary-soft: #4a2e22;--primary-soft-text: #f09a76;--on-primary: #1c1612;--secondary: #a9bb7e;--secondary-soft: #323a24;--on-secondary: #1c1612;--accent: #f2c15f;--on-accent: #1c1612;--wood: #c89a72;--danger: #f28b7b;--danger-soft: #3f2420;--on-danger: #1c1612;--success: #9ccb86;--overlay: rgba(8, 6, 4, .95);--shadow-color: 0, 0, 0;--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 6px 18px rgba(0, 0, 0, .3);--nav-bg: rgba(40, 32, 26, .97)}:root{--font-display: "Fraunces Variable", "Fraunces", Georgia, "Times New Roman", serif;--font-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-sm: 10px;--radius: 16px;--radius-lg: 22px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--tap: 44px;--ease: cubic-bezier(.22, 1, .36, 1);--ink: var(--text);--muted: var(--text-muted);--line: var(--border);--panel: var(--surface);--panel-strong: var(--surface);--accent-2: var(--secondary);--accent-deep: var(--primary-hover)}*{box-sizing:border-box}html,body,#root{min-height:100%}html{background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-body);font-size:1rem;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;line-height:1.15;color:var(--text)}:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:6px}::selection{background:var(--primary-soft);color:var(--text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.25rem;padding-top:calc(.7rem + env(safe-area-inset-top,0px));border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20}.brand{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-size:1.6rem;font-weight:650;letter-spacing:-.01em;line-height:1;color:var(--text);min-height:var(--tap)}.brand-word span,.brand>span{color:var(--primary)}.brand-mark{display:block;flex-shrink:0}.brand-mark-dark,[data-theme=dark] .brand-mark-light{display:none}[data-theme=dark] .brand-mark-dark{display:block}.nav{display:flex;flex-wrap:wrap;gap:.35rem}.nav a,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--tap);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);padding:.55rem 1rem;border-radius:var(--radius-sm);font-weight:600;line-height:1.2;cursor:pointer;text-align:center;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .12s var(--ease)}.nav a{border-color:transparent;background:transparent;color:var(--text-muted)}.nav a:hover{color:var(--text);background:var(--surface-2)}.nav a.active{color:var(--primary-soft-text);background:var(--primary-soft)}.btn:hover{background:var(--surface-2)}.btn:active{transform:scale(.98)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn.secondary,.btn.sage{background:var(--secondary);border-color:var(--secondary);color:var(--on-secondary)}.btn.ghost{background:transparent;border-color:transparent;color:var(--primary-soft-text)}.btn.ghost:hover{background:var(--primary-soft)}.btn.danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.btn.danger.solid{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.btn.icon-btn{width:var(--tap);min-width:var(--tap);padding:0;flex-shrink:0}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.btn.small,.bubble-actions .btn{min-height:36px;font-size:.9rem;padding:.3rem .75rem}main{width:min(1100px,100%);margin:0 auto;padding:1.25rem;animation:page-enter .35s var(--ease) both}.status-pill{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--text-muted);max-width:12.5rem;padding:.35rem .65rem;border-radius:var(--radius-sm);background:var(--surface-2)}.status-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}.status-label{color:var(--text);font-weight:700}.status-detail{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-dot{flex-shrink:0;width:.6rem;height:.6rem;border-radius:50%;background:var(--secondary)}.status-dot.local{background:var(--accent)}.status-dot.off{background:var(--danger)}.hero-panel{padding:1.1rem 0 1rem}.hero-panel h1{font-size:clamp(1.9rem,5vw,2.6rem);margin:0 0 .4rem}.hero-panel p{margin:0;color:var(--text-muted);max-width:38rem;font-size:1.05rem}.version-id{margin-top:.65rem!important;font-size:.8rem;letter-spacing:.04em}.section-label{margin:1.5rem 0 .6rem;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.search-row{display:flex;gap:.6rem;margin:1rem 0 .6rem}.quick-sorts{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0 0 1.15rem}.quick-sort{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:40px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:.9rem;font-weight:600;padding:.4rem .9rem;border-radius:var(--radius-pill);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.quick-sort:hover{background:var(--surface-2)}.quick-sort.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.quick-sort.active:nth-child(2){background:var(--secondary);border-color:var(--secondary);color:var(--on-secondary)}.quick-sort.clear{border-color:transparent;background:transparent;color:var(--text-muted);text-decoration:underline;text-underline-offset:3px;padding-left:.4rem}.quick-sort.clear:hover{color:var(--text)}.search-row input,.field input,.field textarea,.field select,.inline-form input,.step-edit textarea,.line-row input,.rename-form input,.add-item-row input,.account-delete-confirm input{flex:1;width:100%;min-height:var(--tap);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);padding:.7rem .95rem;font:inherit}.search-row input::placeholder,.field input::placeholder,.field textarea::placeholder,.inline-form input::placeholder,.step-edit textarea::placeholder,.line-row input::placeholder,.rename-form input::placeholder,.add-item-row input::placeholder{color:var(--text-muted);opacity:1}.search-row input:focus,.field input:focus,.field textarea:focus,.field select:focus,.inline-form input:focus,.step-edit textarea:focus,.line-row input:focus,.rename-form input:focus,.add-item-row input:focus,.account-delete-confirm input:focus{outline:3px solid var(--primary-soft);outline-offset:0;border-color:var(--primary)}.field{display:grid;gap:.35rem;margin-bottom:.9rem}.field label{font-size:.9rem;font-weight:600;color:var(--text)}.field input[type=file]{padding:.55rem;background:var(--surface-2)}.step-edit{margin-bottom:.8rem}input[type=checkbox],input[type=radio]{accent-color:var(--secondary)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.recipe-card{display:block;padding:0;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);transition:transform .18s var(--ease),border-color .15s ease;animation:rise .35s var(--ease) both;overflow:hidden;color:inherit;font:inherit}.recipe-card:hover{transform:translateY(-2px);border-color:var(--border-strong)}.recipe-card-cover{aspect-ratio:16 / 10;overflow:hidden;background:var(--surface-2)}.recipe-card-cover img{width:100%;height:100%;object-fit:cover;display:block}.recipe-card-body{padding:.95rem 1.05rem 1.05rem}.recipe-card h3{margin:0 0 .35rem;font-size:1.25rem}.recipe-card-stats{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin:.4rem 0 .35rem}.meta{color:var(--text-muted);font-size:.92rem}.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.7rem}.tag{font-size:.78rem;padding:.2rem .6rem;border-radius:var(--radius-pill);background:var(--secondary-soft);color:var(--text);font-weight:600}.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;padding:.1rem .55rem;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:.8rem;font-weight:700}.layout-split{display:grid;gap:1.25rem}@media(min-width:900px){.layout-split{grid-template-columns:1.1fr .9fr}}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1.1rem 1.2rem;box-shadow:var(--shadow)}.panel h2{margin:0 0 .8rem;font-size:1.35rem}.panel h3{font-size:1.1rem}.stack-top{margin-top:1rem}.stack-top-sm{margin-top:.85rem}.stack-bottom{margin-bottom:1rem}.stack-bottom-sm,.photo-tabs{margin-bottom:.75rem}.warn-hint{color:var(--primary-soft-text);font-weight:600;margin-bottom:.75rem}.danger-text{color:var(--danger)}.empty-state{text-align:center;padding:2rem 1rem;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface)}.empty-state h2,.empty-state h3{color:var(--text)}.notice{padding:.75rem .95rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);margin:.75rem 0}.notice.is-error{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.ingredient-list,.step-list{list-style:none;margin:0;padding:0}.ingredient-list li,.step-list li{padding:.6rem 0;border-bottom:1px solid var(--border)}.ingredient-list li:last-child,.step-list li:last-child{border-bottom:0}.step-list li{display:grid;grid-template-columns:2rem 1fr;gap:.5rem}.step-num{font-family:var(--font-display);font-weight:700;color:var(--primary)}.row-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.sticky-actions{position:sticky;bottom:0;z-index:5;display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 0;background:var(--bg);border-top:1px solid var(--border)}.chat-log{display:flex;flex-direction:column;gap:.7rem;max-height:50vh;overflow:auto;margin-bottom:.8rem}.chat-speak-bar{margin-bottom:.85rem;align-items:center;flex-wrap:wrap}.bubble{max-width:85%;padding:.75rem .95rem;border-radius:var(--radius);white-space:pre-wrap;line-height:1.5;color:var(--text)}.bubble-actions{margin-top:.55rem}.bubble.user{align-self:flex-end;background:var(--primary-soft);border-bottom-right-radius:6px}.bubble.bot{align-self:flex-start;background:var(--surface-2);border-bottom-left-radius:6px}.refs{margin-top:.4rem;font-size:.82rem;color:var(--text-muted)}.voice-btn.recording{background:var(--danger-soft);border-color:var(--danger);color:var(--danger);animation:pulse 1s ease infinite}.line-row{display:flex;align-items:stretch;gap:.35rem;margin-bottom:.5rem;padding:.15rem .2rem;border-radius:var(--radius-sm);transition:background .15s ease,opacity .15s ease}.line-row input{min-width:0}.line-row.drag-over{background:var(--secondary-soft);box-shadow:inset 0 0 0 2px var(--secondary)}.line-row.dragging{opacity:.45}.drag-handle{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--tap);min-height:var(--tap);margin:-.15rem 0;color:var(--text-muted);font-size:1.1rem;letter-spacing:-.12em;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none}.drag-handle:active{cursor:grabbing;color:var(--text)}.low-conf{outline:2px solid var(--accent);outline-offset:2px}.original-frame{width:100%;min-height:280px;border-radius:var(--radius-sm);border:1px solid var(--border);object-fit:contain;background:#1a1510}.import-photo-link{display:block}.import-photo{max-height:min(75vh,900px);cursor:zoom-in}.import-pdf-frame .import-photo{min-height:420px;cursor:default}.import-photo-panel{position:sticky;top:5rem;align-self:start}.import-photo-tools,.import-ocr-toggle{margin-top:.85rem}.import-ocr-text{white-space:pre-wrap;color:var(--text-muted);font-size:.88rem;margin-top:.75rem;max-height:220px;overflow:auto}@media(max-width:899px){.import-photo-panel{position:static}.import-photo{max-height:55vh}}.export-panel{margin:.5rem 0 1rem;padding:1.1rem 1.2rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);animation:rise .3s var(--ease) both}.export-panel h2{margin:0 0 .35rem;font-size:1.3rem}.export-panel>.meta{margin:0 0 .75rem}.export-url{margin:.65rem 0 0;word-break:break-all}.export-url a,.legal-page a,.login-legal a{color:var(--primary-soft-text);text-decoration:underline;text-underline-offset:2px}.export-note{margin:.55rem 0 0;color:var(--success);font-size:.92rem}.export-error{margin:.55rem 0 0;color:var(--danger);font-size:.92rem}.cache-note{color:var(--text-muted);font-size:.88rem}.share-shell main{width:min(900px,100%)}.share-landing{padding:.5rem 0 2.5rem}.share-brand{margin:0 0 1.25rem;font-size:clamp(2rem,6vw,2.8rem)}.share-hero{padding:.5rem 0 1.5rem}.share-hero h1{font-size:clamp(1.8rem,4.5vw,2.5rem);margin:0 0 .45rem}.share-lede{margin:0;color:var(--text-muted);max-width:32rem;font-size:1.05rem}.share-body{margin-top:.5rem}.share-cta{margin-top:1.75rem;padding:1.4rem 0 0;border-top:1px solid var(--border)}.share-cta h2{margin:0 0 .45rem;font-size:1.4rem}.share-cta p{margin:0 0 1rem;color:var(--text-muted);max-width:36rem}.recipe-stats{display:flex;flex-wrap:wrap;gap:1.25rem 2rem;margin-top:1rem}.recipe-stat-label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.35rem}.made-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.made-count{font-family:var(--font-display);font-size:1.8rem;font-weight:650;line-height:1;color:var(--text)}.made-count-label{color:var(--text-muted);margin-right:.25rem}.made-note{margin:.45rem 0 0}.star-rating{display:inline-flex;align-items:center;gap:.1rem;color:var(--accent)}.star-rating-sm{font-size:.95rem}.star-rating-md{font-size:1.35rem}.star-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:.1rem;margin:0;color:inherit;cursor:pointer;line-height:0;border-radius:6px}.star-rating-md .star-btn:not(.static){min-width:var(--tap);min-height:var(--tap);display:inline-grid;place-items:center}.star-btn.static{cursor:default}.star-btn:hover:not(:disabled){transform:scale(1.08)}.star-btn:disabled{opacity:.55;cursor:not-allowed}.star-icon{display:block}.star-btn:not(.on){color:var(--border-strong)}.star-btn.on{color:var(--accent)}.star-clear{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-muted);font-size:.85rem;font-weight:600;cursor:pointer;margin-left:.35rem;padding:.4rem;min-height:36px;text-decoration:underline;text-underline-offset:2px}.star-clear:disabled{opacity:.5;cursor:not-allowed}.cooking-photos-panel{margin:1rem 0}.cooking-photos-panel h3{margin:.85rem 0 .45rem;font-size:1rem}.photo-galleries{display:grid;gap:.75rem}.photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.55rem}.photo-gallery a,.photo-gallery .photo-open{display:block;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);aspect-ratio:1;background:var(--surface-2)}.photo-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s var(--ease)}.photo-gallery a:hover img,.photo-gallery .photo-open:hover img{transform:scale(1.04)}.photo-open{display:block;width:100%;padding:0;margin:0;border:0;background:none;color:inherit;font:inherit;cursor:zoom-in;-webkit-tap-highlight-color:transparent}.photo-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--overlay);overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;display:flex;align-items:center;justify-content:center}.photo-viewer.zoomed{display:block}.photo-viewer-bar{position:fixed;top:calc(env(safe-area-inset-top,0px) + .6rem);right:calc(env(safe-area-inset-right,0px) + .6rem);display:flex;gap:.5rem;z-index:1}.photo-viewer-img{display:block;max-width:100vw;max-height:100vh;max-height:100dvh;object-fit:contain;cursor:zoom-in}.photo-viewer.zoomed .photo-viewer-img{max-width:none;max-height:none;cursor:zoom-out}.photo-viewer-error{color:#f4eadb}.bottom-nav{display:none}@media(max-width:720px){.topbar{padding-left:1rem;padding-right:1rem}.topbar .nav{display:none}.brand{font-size:1.45rem}.status-pill{max-width:9rem}main{padding:1rem}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:.2rem;position:sticky;bottom:0;z-index:20;padding:.4rem .4rem calc(.4rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--nav-bg)}.bottom-nav a{display:grid;justify-items:center;gap:2px;min-height:56px;align-content:center;font-size:.75rem;font-weight:600;padding:.25rem .1rem;border-radius:var(--radius-sm);color:var(--text-muted)}.bottom-nav .tab-icon{display:grid;place-items:center;width:52px;height:30px;border-radius:var(--radius-pill);transition:background .15s ease}.bottom-nav a.active{color:var(--text)}.bottom-nav a.active .tab-icon{background:var(--primary-soft);color:var(--primary-soft-text)}}.login-shell{grid-template-rows:1fr}.login-main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:100dvh;padding:1.5rem;text-align:center}.login-stage{width:min(26rem,100%);text-align:center}.login-brand{display:inline-flex;flex-direction:column;gap:.6rem;margin:0 0 1.1rem;font-size:clamp(2.2rem,8vw,2.9rem)}.login-title{font-size:clamp(1.5rem,4.5vw,2rem);margin:0 0 .55rem}.login-lede{margin:0 0 1.35rem;color:var(--text-muted)}.login-actions{display:flex;flex-direction:column;gap:.65rem}.login-oauth{width:100%;justify-content:center;min-height:48px}.login-alert{margin:0 0 1rem;padding:.75rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--danger);background:var(--danger-soft);color:var(--danger);text-align:left;font-size:.92rem;line-height:1.4}.login-legal{margin:1.25rem 0 0;font-size:.88rem;color:var(--text-muted)}.topbar-end{display:flex;align-items:center;gap:.55rem;min-width:0}.account-chip{display:inline-flex;align-items:center;gap:.45rem;max-width:11rem;min-height:var(--tap);padding:.28rem .6rem .28rem .28rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.82rem;font-weight:650;min-width:0}.account-chip:hover{border-color:var(--border-strong)}.account-chip.active{border-color:var(--primary);background:var(--primary-soft)}.account-chip-avatar,.account-chip-initial{width:1.9rem;height:1.9rem;border-radius:50%;flex-shrink:0}.account-chip-avatar{object-fit:cover}.account-chip-initial,.account-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:var(--secondary);color:var(--on-secondary);font-weight:700}.account-chip-initial{font-size:.8rem}.account-chip-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-page .account-card,.account-page .account-danger{margin-top:1rem}.account-identity{display:flex;align-items:center;gap:.9rem;margin-bottom:1rem}.account-avatar{width:3.5rem;height:3.5rem;border-radius:50%;object-fit:cover;flex-shrink:0}.account-avatar-fallback{font-family:var(--font-display);font-size:1.35rem}.account-email{margin:0;font-weight:700;word-break:break-word}.account-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.85rem}.account-delete-confirm{display:flex;flex-direction:column;gap:.55rem;margin-top:.75rem}.account-delete-confirm input{max-width:16rem}.segmented{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;margin:0 0 .6rem;padding:4px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface-2);max-width:100%}.segment{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:40px;padding:.35rem 1rem;border-radius:var(--radius-pill);color:var(--text-muted);font-weight:600;cursor:pointer}.segment input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;margin:0;cursor:pointer}.segment:has(input:focus-visible){outline:3px solid var(--primary);outline-offset:1px}.segment.is-on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.legal-page{width:min(40rem,100%);margin:0 auto;padding:1.5rem 1.25rem 3rem}.legal-page h1{font-size:clamp(1.8rem,4vw,2.4rem);margin:.5rem 0 .75rem}@media(max-width:720px){.account-chip-email{display:none}.account-chip{padding:.2rem;max-width:none}}.check-list{list-style:none;margin:0;padding:0}.check-row{display:flex;align-items:center;gap:.65rem;min-height:52px;font-size:1.1rem;border-bottom:1px solid var(--border)}.check-row:last-child{border-bottom:0}.check-label{display:flex;align-items:center;gap:.8rem;flex:1;min-height:52px;cursor:pointer}.check-label input[type=checkbox],.check-box{width:24px;height:24px;flex-shrink:0;accent-color:var(--secondary);cursor:pointer}.check-row.is-done .check-text{color:var(--text-muted);text-decoration:line-through}.inline-form{display:flex;gap:.5rem;flex-wrap:wrap}.inline-form input{min-width:12rem}.toggle-row{display:flex;gap:.6rem;align-items:center;margin-bottom:.85rem;min-height:var(--tap);cursor:pointer}.toggle-row input[type=checkbox]{width:22px;height:22px}.picker-card{text-align:left;cursor:pointer}.picker-card.is-selected{border-color:var(--secondary);box-shadow:inset 0 0 0 2px var(--secondary);background:var(--secondary-soft)}.continue-card{display:grid;gap:.2rem;padding:1rem 1.15rem;margin-bottom:1rem;border-radius:var(--radius);border:1px solid var(--primary);background:var(--primary-soft);color:var(--text)}.continue-card:hover{border-width:2px;padding:calc(1rem - 1px) calc(1.15rem - 1px)}.continue-kicker{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--primary-soft-text)}.page>.panel+.panel,.page>.panel{margin-top:1rem}.is-current{border-color:var(--primary)!important}.list-card{position:relative;display:flex;align-items:flex-start;gap:.25rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);animation:rise .35s var(--ease) both;transition:border-color .15s ease}.list-card:hover{border-color:var(--border-strong)}.list-card:focus-within,.list-card:has(.options-menu-list){z-index:5}.list-card-link{flex:1;min-width:0;display:block;padding:1rem .25rem 1rem 1.1rem;min-height:var(--tap);color:inherit}.list-card-link h3{margin:0 0 .3rem;overflow-wrap:anywhere}.list-card>.options-menu{margin:.45rem .35rem 0 0}.list-card>.rename-form{flex:1;padding:1rem 1.1rem}.title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.title-row h1{min-width:0;overflow-wrap:anywhere}.title-row>.options-menu{margin-top:.2rem}.options-menu{position:relative;flex-shrink:0}.options-menu .icon-btn{color:var(--text-muted)}.options-menu .icon-btn[aria-expanded=true]{background:var(--surface-2);color:var(--text)}.options-menu-list{position:absolute;right:0;top:calc(100% + 4px);z-index:40;min-width:13rem;padding:.35rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);box-shadow:var(--shadow);display:grid;gap:2px;animation:rise .18s var(--ease) both}.options-menu-item{display:flex;align-items:center;gap:.65rem;width:100%;min-height:var(--tap);padding:0 .8rem;border:0;border-radius:8px;background:transparent;color:var(--text);font-weight:600;text-align:left;cursor:pointer}.options-menu-item:hover:not(:disabled){background:var(--surface-2)}.options-menu-item.is-danger{color:var(--danger)}.options-menu-item.is-danger:hover:not(:disabled){background:var(--danger-soft)}.options-menu-item:disabled{opacity:.5;cursor:not-allowed}.rename-form{display:grid;gap:.5rem;margin-bottom:.4rem}.rename-form label{font-size:.9rem;font-weight:600}.rename-form input{font-size:1.1rem}.rename-actions,.item-editor-actions{display:flex;flex-wrap:wrap;gap:.5rem}.check-row .icon-btn{color:var(--text-muted)}.check-row .icon-btn.danger-text{color:var(--danger)}.check-row .icon-btn.danger-text:hover{background:var(--danger-soft)}.check-row.is-editing{display:block;padding:.85rem 0}.item-editor-fields{display:grid;grid-template-columns:minmax(0,1fr) 5.5rem 6.5rem;gap:.5rem;margin-bottom:.7rem}.item-editor .field{display:grid;gap:.25rem;margin:0}.item-editor .field input{font-size:1rem}.item-editor-actions .btn.danger{margin-left:auto}.add-item-form>label{display:block;font-weight:600;margin-bottom:.45rem}.add-item-row{display:grid;grid-template-columns:minmax(0,1fr) 5rem 6rem auto;gap:.5rem}.list-footer-actions{margin-top:1.75rem}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));background:rgba(var(--shadow-color),.5);animation:page-enter .18s var(--ease) both}.dialog-card{width:min(26rem,100%);padding:1.4rem 1.4rem 1.2rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);animation:rise .22s var(--ease) both}.dialog-card h2{margin:0 0 .5rem;font-size:1.35rem;overflow-wrap:anywhere}.dialog-message{color:var(--text-muted)}.dialog-message p{margin:0}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}@media(max-width:520px){.add-item-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.add-item-row .add-item-name{grid-column:1 / -1}.item-editor-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.item-editor-name{grid-column:1 / -1}.dialog-backdrop{align-items:flex-end}.dialog-actions .btn{flex:1}}.toast{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.6rem .9rem;margin:.75rem 0;border-radius:var(--radius-sm);border:1px solid var(--secondary);background:var(--secondary-soft);color:var(--text)}.toast.is-error{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.choice-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin:1rem 0}.choice-card{display:flex;align-items:center;gap:1rem;min-height:112px;padding:1.1rem 1.2rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);color:var(--text);transition:transform .18s var(--ease),border-color .15s ease}.choice-card:hover{transform:translateY(-2px);border-color:var(--border-strong)}.choice-body{display:grid;gap:.25rem;flex:1}.choice-body strong{font-family:var(--font-display);font-size:1.25rem;font-weight:650}.choice-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;flex-shrink:0;background:var(--primary-soft);color:var(--primary-soft-text)}.choice-icon.is-sage{background:var(--secondary-soft);color:var(--secondary)}.choice-chevron{color:var(--text-muted);flex-shrink:0}.chip{display:inline-block;justify-self:start;padding:.15rem .65rem;border-radius:var(--radius-pill);font-size:.85rem;font-weight:700;background:var(--accent);color:var(--on-accent)}.capture-choices{display:grid;gap:.25rem 1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pulse{50%{transform:scale(1.03)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.kitchen-chip{display:inline-flex;align-items:center;min-height:var(--tap);max-width:10rem;padding:.28rem .8rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--secondary-soft);color:var(--text);font-size:.82rem;font-weight:650;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kitchen-chip:hover,.kitchen-chip:focus-visible{border-color:var(--border-strong)}.view-only-banner{margin:0;padding:.6rem 1rem;background:var(--primary-soft);color:var(--primary-soft-text);font-size:.9rem;font-weight:600;text-align:center;border-bottom:1px solid var(--border)}.household-switch{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:.75rem 0}.household-switch select{min-height:var(--tap);min-width:12rem}.household-title{align-items:center;gap:.5rem}.member-list{list-style:none;margin:.75rem 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.member-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;min-height:var(--tap);padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.member-avatar{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:50%;background:var(--primary-soft);color:var(--primary-soft-text);font-family:var(--font-display);font-weight:700}.member-text{display:flex;flex-direction:column;flex:1 1 10rem;min-width:0}.member-name{font-weight:700;overflow-wrap:anywhere}.member-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.member-actions select,.member-actions .btn{min-height:var(--tap)}.invite-box{margin-top:1rem;padding:1rem;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface)}.invite-box h3{margin:0 0 .6rem}.invite-result{margin-top:.9rem}.invite-code{display:inline-block;margin:.4rem 0 .6rem;padding:.5rem 1rem;border-radius:var(--radius-sm);background:var(--secondary-soft);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.5rem;font-weight:700;letter-spacing:.12em;-webkit-user-select:all;user-select:all}.invite-link{display:block;width:100%;min-height:var(--tap);font-size:.9rem}.household-toggle{margin-top:.9rem;min-height:var(--tap)}.join-page{width:min(36rem,100%);margin:0 auto}.join-page .panel{margin-top:1rem}.join-head{display:flex;align-items:center;gap:.9rem}.join-head h2{margin:0}.join-icon{display:inline-flex;align-items:center;justify-content:center;width:3.25rem;height:3.25rem;flex-shrink:0;border-radius:50%;background:var(--primary-soft);color:var(--primary-soft-text)}.invite-code-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.15rem;letter-spacing:.1em;text-transform:uppercase}.age-gate{margin:1rem 0 0;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.age-gate legend{padding:0 .3rem;font-weight:650}.age-gate select{min-height:var(--tap);flex:1 1 8rem}
