:root{--bg:#f7f3ee;--surface:#fff;--text:#221f1b;--muted:#7a7166;--border:#e6ded3;--accent:#c2562e;--accent-soft:#f6e3da;--on-accent:#fff;--danger:#b3261e;--busy:#d8cdbf;--money-in:#2f7d32;--series-in:#2a78d6;--series-out:#c2562e;--radius:12px;--tabbar-h:64px;--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#1b1916;--surface:#262320;--text:#efe9e1;--muted:#a39a8e;--border:#3a3530;--accent:#e07a52;--accent-soft:#3d2a21;--on-accent:#fff;--danger:#f2877f;--busy:#4d463f;--money-in:#7cc47f;--series-in:#3987e5;--series-out:#d95926;--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);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.5}a{color:var(--accent)}h1,h2,h3{margin:0;line-height:1.2}input,textarea,button{font:inherit;color:inherit}.splash,.app{min-height:100dvh}.main{max-width:720px;padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 24px);margin:0 auto}.page{padding:16px}.tabbar{height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--surface);border-top:1px solid var(--border);z-index:10;display:flex;position:fixed;inset:auto 0 0}.tab{color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;max-width:50%;font-size:12px;text-decoration:none;display:flex;overflow:hidden}.tab span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tab.active{color:var(--accent)}.btn{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0 16px;font-size:15px;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.6}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.btn-on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.btn-danger{color:var(--danger)}.chips{scrollbar-width:none;gap:8px;padding:2px 0;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;flex:none;padding:6px 12px;font-size:14px;text-decoration:none}.wrap-chips{flex-wrap:wrap;overflow:visible}.chip-input{align-items:center;gap:4px;display:inline-flex}.field .chip-input input{width:3.5em;color:inherit;text-align:right;background:0 0;border:0;padding:0;font-size:16px}.field .chip-input input:focus{box-shadow:none;outline:none}.chip-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.field{flex-direction:column;gap:4px;min-width:0;margin-bottom:16px;display:flex}.field>span{font-size:15px;font-weight:600}.field small{color:var(--muted);margin-top:-2px;font-size:13px}.field input,.field textarea,.search{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;padding:10px 12px;font-size:16px}.field textarea{resize:vertical;line-height:1.45}.field input:focus,.field textarea:focus,.search:focus{outline:2px solid var(--accent);outline-offset:-1px}.field-row{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.error{color:var(--danger)}.muted{color:var(--muted)}.login{place-items:center;min-height:100dvh;padding:16px;display:grid}.login-card{flex-direction:column;width:100%;max-width:360px;display:flex}.login-card img{align-self:center}.login-card h1{text-align:center;margin:12px 0 24px}.list-header{z-index:5;background:var(--bg);flex-direction:column;gap:10px;margin:-16px -16px 8px;padding:12px 16px 10px;display:flex;position:sticky;top:0}.list-header .chips{margin:0 -16px;padding:2px 16px}.recipe-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.recipe-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;align-items:center;gap:12px;padding:10px;text-decoration:none;display:flex}.thumb{object-fit:cover;border-radius:8px;flex:none;width:64px;height:64px}.thumb-empty{background:var(--accent-soft);color:var(--accent);place-items:center;font-size:26px;font-weight:700;display:grid}.recipe-row-body{min-width:0}.recipe-row-title{font-weight:600;line-height:1.3}.fav-mark{color:var(--accent)}.recipe-row-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.empty{text-align:center;color:var(--muted);padding:48px 0}.hero{aspect-ratio:4/3;object-fit:cover;width:calc(100% + 32px);margin:-16px -16px 16px;display:block}.recipe-title{margin-bottom:8px;font-size:28px}.recipe-desc{color:var(--muted);margin:0 0 12px}.meta-grid{flex-wrap:wrap;gap:8px 20px;margin:12px 0;display:flex}.meta-grid dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px}.meta-grid dd{margin:0;font-weight:600}.actions{flex-wrap:wrap;gap:8px;margin:16px 0 8px;display:flex}.recipe h2{margin:28px 0 8px;font-size:21px}.check-section h3{color:var(--muted);margin:16px 0 4px;font-size:16px}.check-list{margin:0;padding-left:0;list-style:none}.check-list li{border-bottom:1px solid var(--border);cursor:pointer;padding:10px 0;transition:opacity .15s}.check-list li.done{opacity:.4;text-decoration:line-through}.check-steps{counter-reset:step}.check-steps li{counter-increment:step;grid-template-columns:32px 1fr;display:grid}.check-steps li:before{content:counter(step);color:var(--accent);font-weight:700}.notes{white-space:pre-wrap}.recipe-footer{flex-direction:column;align-items:flex-start;gap:16px;margin-top:32px;display:flex}.form-actions{justify-content:flex-end;gap:8px;display:flex}.form-title{margin-bottom:16px}.btn-small{min-height:34px;padding:0 12px;font-size:14px}.banner{border-radius:var(--radius);background:var(--accent-soft);margin-bottom:16px;padding:10px 12px;font-size:15px}.segmented{background:var(--border);border-radius:999px;margin-bottom:16px;padding:3px;display:flex}.segmented button{cursor:pointer;background:0 0;border:0;border-radius:999px;flex:1;min-height:38px;font-size:15px}.segmented button.on{background:var(--surface);font-weight:600}.import-more{border-top:1px solid var(--border);margin-top:32px;padding-top:16px}.import-more p{margin:0 0 8px}.image-preview{margin-bottom:16px;position:relative}.image-preview img{aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius);background:var(--border);width:100%;display:block}.image-preview .btn{position:absolute;bottom:8px;right:8px}.jobs{margin-top:24px}.jobs-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.jobs-header p{margin:0;font-size:14px}.job-list{margin:0;padding:0;list-style:none}.job{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.job-body{flex-direction:column;flex:1;min-width:0;display:flex}.job-title{font-weight:600;text-decoration:none}.job-url{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.job-note{font-size:13px}.status{text-align:center;background:var(--border);width:92px;color:var(--muted);border-radius:999px;flex:none;padding:2px 0;font-size:12px;font-weight:600}.status-running{background:var(--accent-soft);color:var(--accent)}.status-done{color:#2d6a2f;background:#dcefdc}.status-failed{color:var(--danger);background:#f8dcda}@media (prefers-color-scheme:dark){.status-done{color:#8fd18f;background:#1f3a21}.status-failed{background:#432220}}.weather-places{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.weather-places .btn{text-align:left;justify-content:flex-start;width:100%}.settings-section{border-bottom:1px solid var(--border);padding:16px 0 24px}.settings-section h2{margin-bottom:8px;font-size:19px}.settings-section p{margin:0 0 12px}.settings-actions{flex-wrap:wrap;gap:8px;display:flex}.connector-status{align-items:center;gap:8px;font-size:15px;display:flex}.dot{background:var(--border);border-radius:50%;flex:none;width:10px;height:10px}.dot-on{background:#3a9a3e}.new-link{border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);margin-bottom:12px;padding:12px}.copy-row{gap:8px;margin-bottom:12px;display:flex}.copy-row input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex:1;min-width:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.steps{margin:0 0 12px;padding-left:20px}.steps li{margin-bottom:6px}.settings-section h3{margin:16px 0 6px;font-size:16px}.photo-picker{align-items:center;gap:10px;margin-bottom:12px;display:flex}.btn-disabled{opacity:.6;pointer-events:none}.cook{background:var(--bg);padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px);z-index:20;flex-direction:column;display:flex;position:fixed;inset:0}.cook-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 12px;display:flex}.cook-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.cook-icon-btn{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;width:40px;height:40px;font-size:20px}.cook-pill{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;flex:none;min-height:36px;padding:0 14px;font-size:15px}a.cook-pill{color:inherit;align-items:center;text-decoration:none;display:inline-flex}.cook-pill.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.meal-switcher{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.meal-switcher.in-cook{border-bottom:1px solid var(--border);flex:none;margin:0;padding:8px 12px}.meal-switcher-name{color:var(--muted);font-size:13px}.meal-switcher .chip{white-space:nowrap}.cook-body{touch-action:pan-y;flex:1;width:100%;max-width:720px;margin:0 auto;padding:20px 20px 12px;overflow-y:auto}.cook-progress{gap:4px;margin-bottom:16px;display:flex}.cook-progress span{background:var(--border);border-radius:2px;flex:1;height:4px}.cook-progress span.on{background:var(--accent)}.cook-count{color:var(--muted);margin:0 0 12px;font-size:15px;font-weight:600}.cook-step{margin:0;font-size:clamp(22px,6vw,32px);line-height:1.4}.cook-bowls{gap:10px;margin:20px 0 0;padding:0;list-style:none;display:grid}.cook-bowls li{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:2px;padding:10px 12px;font-size:15px;display:grid}.cook-bowls span{color:var(--muted)}.prep-loading{text-align:center;padding:40px 0}.prep-section h2{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:8px 0 4px;font-size:13px}.prep-section+.prep-section{margin-top:20px}.prep-list li{gap:2px;display:grid}.prep-title{justify-content:space-between;gap:8px;font-weight:600;display:flex}.prep-step{color:var(--muted);flex:none;font-size:13px;font-weight:400}.prep-line{color:var(--muted);font-size:15px}.cook-footer{gap:12px;width:100%;max-width:720px;margin:0 auto;padding:12px 16px;display:flex}.cook-nav{flex:1;min-height:56px;font-size:18px}.cook-nav:disabled{opacity:.4}.cook-wake{text-align:center;min-height:18px;color:var(--muted);margin:0;font-size:12px}.cook-sheet-backdrop{z-index:30;background:#0006;align-items:flex-end;display:flex;position:fixed;inset:0}.cook-sheet{width:100%;max-height:75dvh;padding:8px 20px calc(20px + env(safe-area-inset-bottom,0px));background:var(--surface);border-radius:16px 16px 0 0;overflow-y:auto}.cook-sheet-header{background:var(--surface);justify-content:space-between;align-items:center;padding-top:8px;display:flex;position:sticky;top:-8px}.cook-sheet h3{color:var(--muted);margin:12px 0 0;font-size:15px}.cook-sheet .check-list li{font-size:18px}.inline-form{width:100%;margin:12px 0 4px}.checkbox{align-items:center;gap:8px;margin-bottom:16px;display:flex}.checkbox input{width:20px;height:20px}.people{margin:0 0 16px;padding:0;list-style:none}.person{border-bottom:1px solid var(--border);padding:12px 0}.person-row{align-items:center;gap:8px;display:flex}.person-info{flex:1;min-width:0}.person-email{text-overflow:ellipsis;font-size:14px;overflow:hidden}.person-danger{margin-top:12px}.badge{background:var(--accent-soft);color:var(--accent);vertical-align:2px;border-radius:999px;margin-left:6px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.small{font-size:13px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:14px}.ingredients-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;margin:28px 0 8px;display:flex}.recipe .ingredients-header h2{margin:0}.servings{align-items:center;gap:8px;font-size:15px;display:flex}.servings-label{color:var(--muted)}.servings-value{text-align:center;min-width:28px;font-size:17px;font-weight:700}.stepper{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:50%;width:34px;height:34px;font-size:20px;line-height:1}.stepper:disabled{opacity:.4}.servings .chips .chip{padding:4px 10px}.timer-chip{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);font:inherit;white-space:nowrap;cursor:pointer;border-radius:999px;margin:0 2px;padding:1px 8px;font-weight:600;display:inline}.timer-tray{top:env(safe-area-inset-top,0px);z-index:40;background:var(--bg);border-bottom:1px solid var(--border);gap:6px;padding:6px 12px;display:flex;position:fixed;left:0;right:0;overflow-x:auto}html.has-timers .main{padding-top:52px}html.has-timers .cook{padding-top:calc(env(safe-area-inset-top,0px) + 52px)}.timer-pill{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:8px;max-width:260px;min-height:38px;padding:0 12px;font-size:14px;display:flex}.timer-time{font-variant-numeric:tabular-nums;font-weight:700}.timer-label{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);overflow:hidden}.timer-pill.done{border-color:var(--danger);background:var(--danger);color:#fff;animation:1s ease-in-out infinite pulse}.timer-pill.done .timer-label{color:#fff}@keyframes pulse{50%{opacity:.6}}.week-summary{margin:-8px 0 12px}.week-actions{margin:16px 0 8px}.plan-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:10px;padding:8px 6px 8px 10px;display:flex}.plan-row.cooked .recipe-row-title{color:var(--muted);text-decoration:line-through}.plan-link{min-width:0;color:inherit;flex:1;align-items:center;gap:10px;text-decoration:none;display:flex}.thumb-small{width:48px;height:48px;font-size:20px}.check-circle{border:2px solid var(--border);background:var(--surface);width:28px;height:28px;color:var(--on-accent);cursor:pointer;border-radius:50%;flex:none;place-items:center;font-size:15px;font-weight:700;display:inline-grid}.check-circle.on{border-color:var(--accent);background:var(--accent)}.add-item{align-items:flex-start;gap:8px;margin-bottom:16px;display:flex}.add-item textarea{resize:none;max-height:40vh;font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex:1;min-width:0;padding:10px 12px;font-size:16px;line-height:1.35}.aisle h2{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:16px 0 4px;font-size:13px}.aisle-header{justify-content:space-between;align-items:center;margin-top:20px;display:flex}.grocery-list{margin:0;padding:0;list-style:none}.grocery{border-bottom:1px solid var(--border);align-items:center;display:flex}.grocery-main{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;min-height:52px;padding:8px 0;font-size:17px;display:flex}.grocery-text{flex-direction:column;display:flex}.grocery-buy{font-weight:600}.grocery-lines{color:var(--muted);font-size:14px}.grocery-recipe{color:var(--muted);font-size:12px}.grocery.done .grocery-text{color:var(--muted);text-decoration:line-through}.clear-all{margin-top:28px}.picker .picker-group{margin-bottom:12px}.picker-group-header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.picker-group-header h3{margin:12px 0 4px}.picker-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:10px 0;font-size:16px;display:flex}.picker-item input{flex:none;width:20px;height:20px;margin-top:2px}.picker-footer{background:var(--surface);padding:12px 0 4px;position:sticky;bottom:-20px}.picker-footer .btn{width:100%;min-height:50px}.check-list li>span{display:block}.photo-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:6px;display:grid}.photo-thumb{aspect-ratio:3/4;border-radius:var(--radius);background:var(--border);position:relative;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%}.photo-remove{color:#fff;cursor:pointer;background:#0000008c;border:0;border-radius:50%;width:32px;height:32px;position:absolute;top:6px;right:6px}.photo-add{aspect-ratio:3/4;border:2px dashed var(--border);border-radius:var(--radius);flex-direction:column;justify-content:center;gap:10px;padding:12px;display:flex}.photo-add .btn{text-align:center;width:100%;min-height:52px}.photo-add-empty{aspect-ratio:auto;flex-direction:row;grid-column:1/-1;padding:20px 12px}.photo-add-empty .btn{flex:1;width:auto}.collage{background:var(--border);gap:2px;display:grid;overflow:hidden}.collage img{object-fit:cover;width:100%;height:100%;min-height:0}.collage-2,.collage-3{grid-template-columns:1fr 1fr}.collage-3 img:first-child{grid-row:span 2}.collage-4{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.collage-empty{background:var(--accent-soft);color:var(--accent);place-items:center;font-size:26px;font-weight:700;display:grid}.recipe-row .collage.thumb{padding:0}.meal-hero{aspect-ratio:16/9;width:calc(100% + 32px);margin:-16px -16px 16px;font-size:64px}.meals-new{margin-top:16px}.meal-rows{margin:4px 0 12px;padding:0;list-style:none}.meal-row{border-bottom:1px solid var(--border);padding:8px 0}.meal-row-top{align-items:center;gap:8px;display:flex}.meal-row-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.meal-row-top .cook-icon-btn{width:34px;height:34px;font-size:17px}.meal-row-top .cook-icon-btn:disabled{opacity:.3}.meal-row-amounts{align-items:center;margin-top:6px;padding-left:58px}.meal-row-amounts .chip{padding:3px 10px}.meal-search{margin:6px 0 0;padding:0;list-style:none}.meal-search-item{border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:10px;width:100%;min-height:44px;padding:6px 4px;font-size:16px;display:flex}.meal-search-plus{background:var(--accent);width:26px;height:26px;color:var(--on-accent);border-radius:50%;place-items:center;font-weight:700;display:grid}.meal-choices{margin:8px 0 16px;padding:0;list-style:none}.meal-choice{border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:12px 0;font-size:16px;display:flex}.meal-new{width:100%;min-height:50px}.meal-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--accent-soft);padding:10px 10px 4px}.meal-group-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.meal-group-title{min-width:0;color:var(--text);flex:1;font-size:17px;font-weight:700;text-decoration:none}.meal-group .recipe-list{gap:6px;margin-bottom:6px}.plan-row.in-meal{padding-right:10px}.notes-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.notes-section{margin-bottom:24px}.notes-section-title{margin:8px 0 4px;font-size:20px}.notes-section .aisle h2{margin-top:12px}.notes-fold{margin:10px 0 4px}.note-list{margin:0;padding:0;list-style:none}.note-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;display:flex}.note-link{min-width:0;min-height:56px;color:inherit;flex:1;align-items:center;gap:12px;padding:8px 0;text-decoration:none;display:flex}.note-text{flex-direction:column;flex:1;min-width:0;display:flex}.note-title{font-weight:600;line-height:1.3}.note-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.note-meta.overdue{color:var(--danger)}.note-row.done .note-title{color:var(--muted);text-decoration:line-through}.note-thumb{object-fit:cover;border-radius:8px;flex:none;width:44px;height:44px}.field-row-2{grid-template-columns:repeat(2,1fr)}.field-row .field{margin-bottom:8px}.field input:disabled{opacity:.5}.field-hint{margin:-2px 0 16px;font-size:13px;display:block}.note-photo{margin-bottom:16px;position:relative}.note-photo img{object-fit:contain;border-radius:var(--radius);background:var(--border);width:100%;max-height:60vh;display:block}.note-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:28px;padding-top:12px;display:flex}.note-footer p{margin:0}.note-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin:0 0 4px;font-size:12px;font-weight:600}.note-view-title{overflow-wrap:anywhere;margin:0 0 8px;font-size:26px}.note-view-title.done{color:var(--muted);text-decoration:line-through}.note-when{margin:0 0 12px;font-weight:600}.note-when .overdue{color:var(--danger)}.note-location{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;padding:10px 12px;display:flex}.note-location .btn{flex-shrink:0}.note-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 16px}.note-view .actions{margin-top:8px}.capture-alt{margin-top:16px}.field input[type=date],.field input[type=time]{appearance:none;min-height:46px}.field select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;min-height:46px;font:inherit;color:inherit;padding:10px 12px;font-size:16px}.household-people{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.household-person{border-bottom:1px solid var(--border);grid-template-columns:1fr auto auto;align-items:center;gap:6px;padding-bottom:10px;display:grid}.household-person input,.household-person select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;min-height:42px;font:inherit;color:inherit;padding:8px 10px;font-size:16px}.household-nicknames{grid-column:1/-1}.household-people>.btn{align-self:flex-start}.find-title{margin:-8px 0 2px;font-weight:600}.find-summary{margin:0 0 16px}.find-travel{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:-8px 0 16px;display:flex}.find-travel .chips{flex-wrap:wrap}.find-options{flex-direction:column;gap:10px;margin:0 0 8px;padding:0;list-style:none;display:flex}.find-option{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.find-option:active{border-color:var(--accent)}.find-day{font-weight:700}.find-window{color:var(--accent);font-weight:600}.find-reason{color:var(--muted);font-size:14px}.find-reason.warn,.tag-who.warn{color:var(--danger)}.slot-banner{border-radius:var(--radius);background:var(--accent-soft);flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:16px;padding:12px 14px;display:flex}.slot-banner p{margin:0}.slot-banner .btn{margin-top:6px}.slot-picked{font-weight:600}.slot-why{font-size:14px}.day-view{border-top:1px solid var(--border);width:100%;margin-top:10px;padding-top:10px;display:block}.day-allday{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.day-lanes{grid-template-columns:max-content minmax(0,1fr);grid-auto-rows:16px;gap:3px 8px;display:grid}.day-lane{display:contents}.day-name{color:var(--muted);grid-column:1;font-size:12px;line-height:16px}.day-name.on{color:var(--text);font-weight:700}.day-track,.day-trip,.day-axis{grid-column:2;position:relative}.day-track{background:repeating-linear-gradient(to right, transparent 0, transparent calc(100% / var(--hours) - 1px), var(--border) calc(100% / var(--hours) - 1px), var(--border) calc(100% / var(--hours))), var(--bg);border-radius:4px;overflow:hidden}.day-track>span,.day-trip>span{position:absolute;top:0;bottom:0}.day-busy{background:var(--busy);border-radius:3px}.day-school{background:repeating-linear-gradient(135deg, var(--busy) 0 3px, transparent 3px 7px)}.day-trip{pointer-events:none;margin:-2px 0}.day-visit{background:var(--accent);opacity:.7;border-radius:3px}.day-travel{background:var(--accent-soft);border:1px solid var(--accent);opacity:.6;border-radius:3px}.day-window{border:1px dashed var(--accent);border-radius:4px}.day-axis{height:14px;color:var(--muted);font-size:10px;line-height:14px}.day-axis>span{position:absolute;transform:translate(-50%)}.day-axis>span:first-child{transform:none}.day-axis>span:last-child{transform:translate(-100%)}.day-list{flex-direction:column;gap:2px;margin-top:8px;font-size:13px;display:flex}.day-row{color:var(--muted);grid-template-columns:7.5em minmax(0,1fr);gap:8px;display:grid}.day-row.mine{color:var(--accent);font-weight:600}.day-time{font-variant-numeric:tabular-nums;white-space:nowrap}.day-what{color:var(--text);overflow-wrap:anywhere}.day-row.mine .day-what{color:var(--accent)}.day-who{color:var(--muted);font-weight:400}.find-shift{justify-content:space-between;margin:8px 0;display:flex}.find-notes{margin:12px 0;padding-left:18px}.find-calendar{margin:16px 0}.tag-list{margin:8px 0 0;padding:0;list-style:none}.tag-row{border-bottom:1px solid var(--border);padding:8px 0}.tag-row-main{grid-template-columns:1fr auto;align-items:center;gap:2px 8px;display:grid}.tag-title{overflow-wrap:anywhere;min-width:0;font-weight:600}.tag-who{color:var(--muted);grid-column:1;font-size:14px}.tag-row-main .btn{grid-area:1/2/span 2}.tag-edit{margin-top:8px}.tag-edit .chips{flex-wrap:wrap}.reminders-settings{border-top:1px solid var(--border);margin:16px 0;padding-top:12px}.reminders-settings h3{margin-bottom:4px;font-size:16px}.color-picks{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.color-pick{cursor:pointer;border:2px solid #0000;border-radius:50%;width:34px;height:34px}.color-pick.on{border-color:var(--surface);box-shadow:0 0 0 2px var(--text)}.color-pick-none{border-color:var(--border);background:var(--surface);border-radius:999px;width:auto;padding:0 12px;font-size:13px}.color-pick-none.on{border-color:var(--text);box-shadow:none}.repeat-options{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:10px;margin:-6px 0 16px;padding:12px;display:flex}.repeat-options select,.repeat-options input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);min-height:42px;font:inherit;color:inherit;padding:8px 10px;font-size:16px}.repeat-every{align-items:center;gap:8px;display:flex}.repeat-every input{text-align:center;width:64px}.weekday-picks{gap:6px;display:flex}.weekday-picks .chip{text-align:center;flex:1;min-width:0;padding:8px 0}.repeat-ends{gap:8px;display:flex}.repeat-ends>*{flex:1;min-width:0}.tab-add,.tab-add .tab-add-button{overflow:visible}.tab-add-button{background:var(--accent);width:44px;height:44px;color:var(--on-accent);border-radius:50%;place-items:center;margin-top:-18px;display:grid;box-shadow:0 2px 8px #0000002e}.tab-add.active{color:var(--accent)}.today-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.today-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0;font-size:13px;font-weight:700}.today-header h1{font-size:26px}.avatar{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-weight:700;text-decoration:none;display:grid}.day-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:12px;overflow:hidden}.day-card-head{border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);align-items:baseline;gap:8px;margin:0;padding:10px 12px;font-size:13px;display:flex}.day-card-date{text-transform:none;letter-spacing:0;font-weight:400}.day-card-today{border-color:var(--accent);border-width:1px 1px 1px 4px}.day-card-today .day-card-head{color:var(--accent)}.day-card .agenda-row:last-child{border-bottom:0}.day-card .agenda-row{padding-right:12px}.agenda-empty{margin:0;padding:14px 12px}.agenda-list{margin:0;padding:0;list-style:none}.agenda-row{border-bottom:1px solid var(--border);border-left:3px solid #0000;align-items:center;gap:12px;min-height:52px;padding:8px 0 8px 10px;display:flex}.agenda-row.now{border-left-color:var(--accent);background:var(--accent-soft)}.agenda-row.past{opacity:.5}.agenda-row.theirs .agenda-title{color:var(--muted);font-weight:400}.owner-tag{background:var(--border);color:var(--muted);vertical-align:1px;border-radius:999px;margin-left:6px;padding:0 7px;font-size:12px;font-weight:600;line-height:18px;display:inline-block}.agenda-body-btn{font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.agenda-row{flex-wrap:wrap}.free-row{border-left-style:dashed;border-left-color:var(--accent);min-height:40px}.free-row .agenda-time,.free-row .agenda-title{color:var(--accent)}.free-row .agenda-title{font-weight:500}.free-actions{flex-basis:100%;gap:8px;margin:0 0 4px 80px;display:flex}.agenda-row.draggable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.agenda-row.dragging{z-index:2;background:var(--surface);border-left-color:var(--accent);cursor:grabbing;position:relative;box-shadow:0 6px 20px #00000040}.drag-time{color:var(--accent);font-weight:700}.toast{left:50%;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px);z-index:20;border-radius:var(--radius);background:var(--text);width:max-content;max-width:calc(100vw - 32px);color:var(--surface);align-items:center;gap:16px;padding:10px 16px;font-size:14px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #00000040}.toast span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.toast .link-btn{color:inherit;flex:none;font-weight:700;text-decoration:underline}.agenda-meta.clash{color:var(--danger)}.day-card-action{text-transform:none;letter-spacing:0;color:var(--danger);margin-left:auto;padding:0;font-size:13px;font-weight:600}.sort-day{border-bottom:1px solid var(--border);background:var(--bg);padding:10px 12px 12px}.sort-day>.muted{margin:0 0 6px}.sort-day-list{margin:0 0 10px;padding:0;list-style:none}.sort-day-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:8px 0;display:flex}.sort-day-text{flex-direction:column;flex:1;min-width:0;display:flex}.sort-day-move{color:var(--accent);margin-top:2px;font-size:14px;font-weight:600}.lock-btn{border:1px solid var(--accent);background:var(--surface);min-width:92px;min-height:32px;color:var(--accent);cursor:pointer;border-radius:999px;flex:none;padding:0 12px;font-size:13px;font-weight:600}.lock-btn.on{border-color:var(--text);background:var(--text);color:var(--surface)}.lock-btn:disabled{opacity:.5;cursor:default}.sort-day-row.locked .sort-day-move{color:var(--muted);font-weight:400}.clash-warning{border:1px solid var(--danger);border-radius:var(--radius);background:var(--surface);margin:0 0 12px;padding:10px 12px}.clash-warning p{margin:0 0 8px}.clash-warning p:last-child{margin-bottom:0}.agenda-row .tag-edit{flex-basis:100%;margin:0 0 4px 80px}.agenda-time{font-variant-numeric:tabular-nums;width:68px;color:var(--muted);flex:none;font-size:14px}.agenda-body{min-width:0;color:inherit;flex-direction:column;flex:1;text-decoration:none;display:flex}.agenda-title{font-weight:600;line-height:1.3}.agenda-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.agenda-meta.overdue{color:var(--danger)}.missed{border-color:var(--danger)}.missed .day-card-head{color:var(--danger)}.missed-row{border-left-color:var(--danger);align-items:flex-start}.missed-row .agenda-time,.missed-row .check-circle{margin-top:2px}.missed-row .agenda-title{color:inherit;text-decoration:none}.missed-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.missed-actions .btn{min-height:32px;padding:0 12px;font-size:13px}.weather-line{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin:0 0 16px;font-size:14px;display:flex}.weather-line-wet{border-radius:var(--radius);background:var(--accent-soft);padding:10px 12px}.weather-wet{color:var(--text);font-weight:600}.weather-chance{color:var(--muted);font-weight:400}.today-cards{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;display:grid}.today-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;color:inherit;flex-direction:column;gap:2px;padding:12px;text-decoration:none;display:flex}.today-card-label{color:var(--muted);font-size:13px}.today-card-value{font-size:18px;font-weight:700}.today-card-detail{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.settings-index{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.settings-link{border-bottom:1px solid var(--border);color:inherit;flex-direction:column;padding:14px 28px 14px 0;text-decoration:none;display:flex;position:relative}.settings-link:after{content:"›";color:var(--muted);font-size:22px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.settings-link-title{font-weight:600}.settings-link-detail{color:var(--muted);font-size:14px}.back-link{margin-bottom:8px;font-size:15px;text-decoration:none;display:inline-block}.settings-page .settings-section{border-bottom:0;padding-top:0}.settings-page .settings-section>h2:first-child{display:none}.notes-search{margin-bottom:12px}.today-date{cursor:pointer;display:inline-block;position:relative}.today-date-caret{color:var(--muted);vertical-align:middle;margin-left:6px;font-size:16px}.today-date input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.plan-count{margin:16px 0}.plan-modes{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.plan-mode{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer;flex-direction:column;gap:2px;padding:12px;display:flex}.plan-mode.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.plan-picker{margin-bottom:8px}.plan-picked{border-radius:var(--radius);background:var(--accent-soft);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-bottom:8px;padding:10px 12px;display:flex}.plan-pick{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.plan-pick-row{align-items:center;gap:10px;padding:8px 8px 8px 10px;display:flex}.plan-link-btn{font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.plan-pick .recipe-row-meta{white-space:normal}.plan-swap{flex:none;min-height:34px;padding:0 12px;font-size:14px}.plan-similar{background:var(--accent-soft);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;margin:0 10px 10px;padding:8px 10px;font-size:14px;display:flex}.plan-draft{border-top:1px solid var(--border);padding:0 12px 12px;font-size:15px}.plan-draft h3{margin:12px 0 4px;font-size:15px}.plan-draft ul,.plan-draft ol{margin:0;padding-left:20px}.plan-shared{margin:24px 0 8px}.plan-shared>ul{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.plan-shared-head{flex-wrap:wrap;justify-content:space-between;gap:4px 12px;display:flex}.plan-shared-name{font-weight:600}.plan-shared-name:first-letter{text-transform:uppercase}.plan-shared-total{color:var(--accent);font-weight:600}.plan-shared-uses{margin:2px 0 0;padding-left:18px;font-size:14px}.week-empty-actions{justify-content:center}.notes-filter{margin:4px 0 12px}.chip-count{opacity:.7;margin-left:6px;font-size:12px}.today-todos{margin-bottom:10px;padding-bottom:4px}.today-todos-head{color:inherit;justify-content:space-between;align-items:baseline;text-decoration:none;display:flex}.today-todos .note-row:last-child{border-bottom:0}.today-todos .note-link{min-height:44px}.today-todos>a.today-card-detail{padding:4px 0 8px;text-decoration:none}.notes-section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.notes-sort .chip{padding:3px 10px;font-size:13px}.note-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:10px}.note-group-head{align-items:center;gap:12px;padding-right:12px;display:flex}.note-group-toggle{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:12px;display:flex}.note-group-caret{width:1em;color:var(--muted)}.note-group-name{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.note-group-count{background:var(--border);min-width:22px;color:var(--muted);text-align:center;border-radius:999px;flex:none;padding:1px 7px;font-size:12px}.note-group-head .link-btn{font-size:13px}.note-group .note-list{border-top:1px solid var(--border);padding:0 12px}.note-group .note-row:last-child{border-bottom:0}.tidy-up{right:16px;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px);z-index:20;position:fixed;box-shadow:0 2px 8px #0003}.page.has-tidy{padding-bottom:72px}.money-warnings{margin:6px 0;padding-left:20px}.money-institution h4{color:var(--muted);margin:16px 0 6px;font-size:15px}.money-accounts{margin:0 0 8px;padding:0;list-style:none}.money-account{border-top:1px solid var(--border);padding:10px 0}.money-account-head{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;display:flex}.money-account-name{overflow-wrap:anywhere;min-width:0;font-weight:600}.money-account-meta{flex-wrap:wrap;align-items:center;gap:4px 10px;margin:6px 0;display:flex}.money-account-meta select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:4px 8px;font-size:14px}.money-import-btn{margin-top:2px}.money-import{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-top:8px;padding:12px}.money-import input[type=file]{max-width:100%;margin-bottom:12px}.money-import-preview p{margin:0 0 8px}.money-samples{font-variant-numeric:tabular-nums;margin:0 0 12px;padding:0;font-size:14px;list-style:none}.money-samples li{gap:10px;padding:3px 0;display:flex}.money-sample-desc{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.kitchen-scrim{z-index:9;position:fixed;inset:0}.kitchen-menu{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;width:180px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);left:max(8px,30% - 90px);box-shadow:0 6px 24px #0000002e}.kitchen-menu a{min-height:46px;color:var(--text);border-radius:8px;align-items:center;gap:10px;padding:0 12px;font-size:16px;text-decoration:none;display:flex}.kitchen-menu a.active,.kitchen-menu a.on{background:var(--accent-soft);color:var(--accent)}.money-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.money-month{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.money-totals{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.money-totals>div{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);flex-direction:column;padding:10px 12px;display:flex}.money-totals strong{font-variant-numeric:tabular-nums;font-size:18px}.money-filters{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.money-filters input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;color:var(--text);flex:100%;padding:10px 12px;font-size:16px}.money-filters select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;color:var(--text);flex:1 1 0;padding:8px 10px;font-size:15px}.money-day-title{color:var(--muted);margin:16px 0 4px;font-size:14px;font-weight:600}.money-list,.money-review,.money-categories{margin:0;padding:0;list-style:none}.money-list>li{border-bottom:1px solid var(--border)}.money-row{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.money-row-main{flex-direction:column;min-width:0;display:flex}.money-row-merchant{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.money-amount{font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:6px;display:flex}.money-in{color:var(--money-in)}.money-look{background:var(--accent);border-radius:50%;width:8px;height:8px}.money-editor{padding:4px 0 14px}.money-editor .muted.small{overflow-wrap:anywhere;margin:0 0 10px}.sort-picker .chips{flex-wrap:wrap;margin-bottom:8px}.sort-picker>p{margin:0 0 10px}.money-review-item{border-bottom:1px solid var(--border);padding:14px 0}.money-review-item>p{overflow-wrap:anywhere;margin:4px 0 10px}.money-category{border-bottom:1px solid var(--border);padding:6px 0}.money-category-row,.money-category-add{align-items:center;gap:10px;display:flex}.money-category-row input:not([type]),.money-category-add input:not([type]){min-width:0;color:var(--text);background:0 0;border:1px solid #0000;border-radius:8px;flex:1;padding:8px 10px;font-size:16px}.money-category-row input:not([type]):focus,.money-category-add input:not([type]){border-color:var(--border);background:var(--surface)}.money-category-add{margin-top:12px}.money-category .checkbox,.money-category-add .checkbox{margin:0;font-size:14px}.money-category-delete{flex-wrap:wrap;gap:8px;padding:6px 0 4px;display:flex}.money-category-delete select{border:1px solid var(--border);background:var(--surface);min-width:0;color:var(--text);border-radius:8px;flex:200px;padding:6px 8px}.money-hero{margin:4px 0 8px}.money-hero-value{letter-spacing:-.01em;font-size:48px;font-weight:700;line-height:1.1}.money-verdict{margin:4px 0 8px;font-size:16px}.money-section-title{margin:28px 0 4px;font-size:20px}.money-totals>div .muted.small{font-size:12px}.money-overview .money-totals{margin-top:16px}.money-cats h3{color:var(--muted);justify-content:space-between;margin:18px 0 4px;font-size:14px;font-weight:600;display:flex}.money-cats ul{margin:0;padding:0;list-style:none}.money-cat{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;flex-direction:column;gap:4px;padding:8px 0;display:flex}.money-cat-head{justify-content:space-between;gap:12px;display:flex}.money-cat-head span:last-child{font-variant-numeric:tabular-nums}.money-cat-track{background:var(--border);border-radius:4px;height:8px;display:flex;position:relative}.money-cat-fill{background:var(--series-out);border-radius:4px;flex:none;height:100%;display:block}.money-cat-usual{background:var(--text);border-radius:1px;width:2px;height:14px;margin-left:-1px;position:absolute;top:-3px}.chart{margin:8px 0 4px}.chart-readout{min-height:22px;color:var(--muted);margin:0 0 4px;font-size:14px}.chart-readout strong{color:var(--text)}.chart-frame{width:100%}.chart-frame svg{display:block;overflow:visible}.chart-grid{stroke:var(--border);stroke-width:1px}.chart-tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart-tick-on{fill:var(--text);font-weight:600}.chart-end{fill:var(--muted);font-size:12px}.chart-line{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.chart-line-out{stroke:var(--series-out)}.chart-line-typical{stroke:var(--muted)}.chart-crosshair{stroke:var(--muted);stroke-width:1px}.chart-dot{stroke:var(--bg);stroke-width:2px}.chart-dot-out{fill:var(--series-out)}.chart-dot-typical{fill:var(--muted)}.chart-bar-in{fill:var(--series-in)}.chart-bar-out{fill:var(--series-out)}.chart-month.partial .chart-bar{opacity:.35}.chart-selected{fill:var(--accent-soft)}.chart-hit{fill:#0000;cursor:pointer;touch-action:pan-y}.chart-legend{flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:13px;display:flex}.chart-legend>span{align-items:center;gap:6px;display:inline-flex}.key{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.key-line{border-radius:1px;width:14px;height:2px}.key-in{background:var(--series-in)}.key-out{background:var(--series-out)}.key-typical{background:var(--muted)}.key-tick{background:var(--text);border-radius:1px;width:2px;height:12px;margin:0 2px -1px}.chart-table{margin-top:12px;font-size:14px}.chart-table summary{color:var(--muted);cursor:pointer}.chart-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:8px}.chart-table th,.chart-table td{border-bottom:1px solid var(--border);text-align:right;padding:4px 0}.chart-table th:first-child,.chart-table td:first-child{text-align:left}.chart-table th{color:var(--muted);font-weight:600}.money-header-links{gap:8px;display:flex}.money-plan-warning{border-radius:var(--radius);background:var(--accent-soft);margin:12px 0 0;padding:10px 12px;font-size:15px}.budget-ledger{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:16px 0 8px;padding:14px 16px}.budget-line{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding:4px 0;display:flex}.budget-subtotal{border-top:1px solid var(--border);margin:4px 0;padding-top:8px;font-weight:600}.budget-verdict{border-top:1px solid var(--border);gap:8px;margin:10px 0 8px;padding-top:10px;font-weight:600;display:flex}.budget-over span{color:var(--danger)}.budget-ok span{color:var(--money-in)}.budget-section{border-bottom:1px solid var(--border);padding:18px 0 8px}.budget-section h2{justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 6px;font-size:19px;display:flex}.budget-section h2 span,.budget-group h3 span{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.budget-group h3,.budget-suggested h3{color:var(--muted);justify-content:space-between;margin:14px 0 2px;font-size:14px;display:flex}.budget-suggested{border-radius:var(--radius);background:var(--accent-soft);margin:10px 0;padding:4px 12px 8px}.budget-list{margin:0;padding:0;list-style:none}.budget-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.budget-list li:last-child{border-bottom:0}.budget-list li>span:first-child{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.budget-list li>span:last-child{font-variant-numeric:tabular-nums;flex:none}.budget-bill-end{align-items:center;gap:8px;display:flex}.budget-ignored{margin:8px 0 12px;font-size:15px}.budget-ignored summary{color:var(--muted);cursor:pointer}.budget-amount-form{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.budget-amount-form input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;color:var(--text);flex:140px;padding:10px 12px;font-size:16px}.budget-input{color:var(--muted);align-items:center;gap:2px;display:flex}.budget-input input{border:1px solid var(--border);background:var(--surface);width:84px;color:var(--text);text-align:right;font-variant-numeric:tabular-nums;border-radius:8px;padding:8px 10px;font-size:16px}.budget-add{margin-top:12px}.money-recap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:4px 0 16px;padding:14px 16px}.money-recap-empty{padding:10px 12px}.money-recap-eyebrow{color:var(--muted);font-size:13px;font-weight:600}.money-recap-headline{margin:4px 0 8px;font-size:17px;font-weight:600}.money-recap ul{margin:0 0 10px;padding-left:20px}.money-recap li{margin:4px 0}.money-recap-foot{justify-content:space-between;align-items:center;gap:12px;display:flex}.budget-flag{background:var(--accent-soft);color:var(--text);vertical-align:1px;border-radius:999px;margin-left:6px;padding:0 6px;font-size:12px;font-weight:600;display:inline-block}.money-cat-oneoff{background:var(--muted);opacity:.55;border-radius:0 4px 4px 0;flex:none;height:100%;margin-left:2px;display:block}.chart-bar-oneoff{fill:var(--muted);opacity:.55}.key-oneoff{background:var(--muted);opacity:.55}.chart-target{stroke:var(--text);stroke-width:1.5px}.chart-target-label{fill:var(--text);font-size:11px;font-weight:600}.key-target{background:var(--text)}.money-oneoff-toggle{margin:10px 0;font-size:15px}.category-subtitle{margin:22px 0 6px;font-size:16px}.category-bars,.category-days{margin:0;padding:0;list-style:none}.category-bars li{flex-direction:column;gap:4px;padding:6px 0;display:flex}.category-bar-head{justify-content:space-between;gap:12px;display:flex}.category-bar-head span:last-child,.category-day-value{font-variant-numeric:tabular-nums}.category-days li{grid-template-columns:40px 1fr 104px;align-items:center;gap:10px;padding:4px 0;font-size:14px;display:grid}.category-day-name{color:var(--muted)}.category-day-value{text-align:right}.category-oneoffs{margin-top:8px}.watching{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:0 0 16px;padding:12px 14px 4px}.watching-title{color:var(--muted);margin:0 0 4px;font-size:13px;font-weight:600}.watching ul{margin:0;padding:0;list-style:none}.watching li+li{border-top:1px solid var(--border)}.watching-row{color:var(--text);flex-direction:column;gap:5px;padding:10px 0;text-decoration:none;display:flex}.watching-head{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;display:flex}.watch-meter{background:var(--border);border-radius:4px;height:8px;display:block;overflow:hidden}.watch-meter>span{background:var(--series-out);border-radius:4px;height:100%;display:block}.watch-over>span{background:var(--accent)}.watch-panel{border-bottom:1px solid var(--border);margin-top:8px;padding-bottom:8px}.watch-steps{gap:6px;margin:10px 0 14px;padding:0;list-style:none;display:flex;overflow-x:auto}.watch-steps li{border:1px solid var(--border);min-width:64px;color:var(--muted);border-radius:10px;flex-direction:column;align-items:center;padding:6px 8px;font-size:13px;display:flex}.watch-steps li strong{color:var(--text);font-variant-numeric:tabular-nums}.watch-steps li.on{border-color:var(--accent);background:var(--accent-soft)}.watch-steps li.done{opacity:.6}.watch-week{flex-direction:column;gap:5px;margin:6px 0 10px;display:flex}.watch-weeks{margin:0 0 12px;padding:0;font-size:14px;list-style:none}.watch-weeks li{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;grid-template-columns:1fr auto 64px;gap:10px;padding:4px 0;display:grid}.watch-weeks li span:last-child{text-align:right}.budget-watched{font-variant-numeric:tabular-nums;text-decoration:none}.shelf{margin-top:14px}.shelf-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.shelf-header h2{margin:0;font-size:17px}.shelf-header .link-btn{flex:none;font-size:14px}.shelf-row{scroll-snap-type:x proximity;scrollbar-width:none;gap:12px;margin:0 -16px;padding:0 16px 4px;scroll-padding:0 16px;list-style:none;display:flex;overflow-x:auto}.shelf-row::-webkit-scrollbar{display:none}.shelf-row li{scroll-snap-align:start;flex:none;width:132px}.recipe-card{color:var(--text);flex-direction:column;gap:4px;text-decoration:none;display:flex}.recipe-card-img{border-radius:var(--radius);object-fit:cover;width:132px;height:132px}.recipe-card-img.thumb-empty{font-size:40px}.recipe-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.recipe-card-meta{color:var(--muted);font-size:13px}.recipe-count{margin:0 0 6px}.category-pick{margin-top:8px}.category-pick-name{color:var(--muted);margin-bottom:4px;font-size:13px;display:block}.category-options{margin:12px 0 16px}
