:root{--canvas: #FFFFFF;--surface: #FFFDFA;--ink: #1A1714;--ink-muted: #6B635B;--hairline: #ECE5DC;--accent: #B85C38;--accent-hover: #A24E2E;--accent-soft: #F3E2D8;--now: #E2563F;--rail: #F4ECE3;--hover: #F4EDE4;--focus-ring: rgba(184, 92, 56, .38);--ok: #2F7D52;--danger: #B23B2E;--danger-soft: #F6E3DF;--shadow: 0 1px 2px rgba(26, 23, 20, .05), 0 6px 20px rgba(26, 23, 20, .06);--font-sans: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--fs-display: 28px;--fs-title: 18px;--fs-body: 15px;--fs-meta: 13px;--radius-sm: 8px;--radius-md: 11px;--radius-lg: 14px;--radius-xl: 18px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.5;background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.agenda-item .time,.tg-hourlabel,.tg-block-time,.tg-daynum,.day-num,.invite-code,.qty-val,.allowance-amt,.meal-week-nav .cal-arrows strong,.cal-nav,.seg,.day-heading time{font-variant-numeric:tabular-nums}h1{font-size:var(--fs-display);font-weight:800;margin:0;letter-spacing:-.01em}h3{font-size:var(--fs-title);font-weight:700;margin:0 0 4px}.center{min-height:100vh;display:grid;place-items:center;padding:24px}.muted{color:var(--ink-muted);margin:2px 0 0}.error{color:var(--accent)}.notice{color:var(--ok);font-size:var(--fs-body)}.empty{color:var(--ink-muted);padding:40px 0;text-align:center;font-size:var(--fs-body)}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:20px}input{width:100%;padding:12px 15px;border:1px solid var(--hairline);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--fs-body);margin:6px 0;background:var(--surface);color:var(--ink)}input:focus{outline:2px solid var(--focus-ring);outline-offset:0;border-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{padding:10px 17px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);font-family:var(--font-sans);font-size:var(--fs-body);color:var(--ink);cursor:pointer;transition:background .12s,border-color .12s,opacity .12s}button:hover{background:var(--hover)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}button.primary:hover{background:var(--accent-hover)}button.link{border:none;background:none;color:var(--accent)}button.ghost{border:none;background:none;color:var(--ink-muted)}.brand{color:var(--ink);font-size:var(--fs-display);font-weight:800;text-transform:uppercase;letter-spacing:.18em;margin:0}.brand-logo{display:block;margin:0 auto 8px}.auth{width:360px;display:flex;flex-direction:column;box-shadow:var(--shadow)}.auth .brand,.auth>.muted{text-align:center}.onboard{width:420px;display:grid;gap:16px;text-align:center}.onboard .card{text-align:left;box-shadow:var(--shadow)}.app-shell{display:flex;min-height:100vh}.sidebar{width:268px;flex-shrink:0;background:var(--rail);border-right:1px solid var(--hairline);padding:26px 18px;display:flex;flex-direction:column;gap:10px;position:sticky;top:0;height:100vh}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 8px 16px}.sidebar-brand-word{color:var(--ink);font-size:var(--fs-title);font-weight:800;text-transform:uppercase;letter-spacing:.16em}.sidebar-nav{display:flex;flex-direction:column;gap:16px}.sidebar-group{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:13px;border:none;background:none;text-align:left;text-decoration:none;padding:12px 14px;border-radius:var(--radius-md);font-size:var(--fs-body);font-weight:500;color:var(--ink)}.nav-item:hover{background:#1a17140a}.nav-item.active{background:var(--accent);color:#fff;font-weight:600}.nav-item.active:hover{background:var(--accent)}.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;opacity:.85}.nav-icon svg{width:22px;height:22px;display:block}.nav-item.active .nav-icon{opacity:1}.nav-count{margin-left:auto;min-width:20px;text-align:center;background:var(--accent);color:#fff;font-size:var(--fs-meta);font-weight:700;border-radius:var(--radius-pill);padding:1px 7px}.nav-item.active .nav-count{background:#ffffff47}.sidebar-label{font-size:var(--fs-meta);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);padding:0 8px 6px}.sidebar-people .person-toggle{margin:0 4px}.person-toggle{display:flex;align-items:center;gap:11px;border:none;background:none;padding:9px 10px;border-radius:var(--radius-md);font-size:var(--fs-body);color:var(--ink)}.person-toggle:hover{background:#1a17140a}.person-toggle.off{color:var(--ink-muted)}.person-dot{width:14px;height:14px;border-radius:50%;border:2px solid;flex-shrink:0}.person-toggle.off .person-name{text-decoration:line-through}.sidebar-bottom{margin-top:auto;padding-top:14px;border-top:1px solid var(--hairline);display:flex;flex-direction:column;gap:2px}.main{flex:1;min-width:0;overflow-x:hidden;position:relative}.screen{max-width:none;margin:0;padding:26px 52px 40px}.screen-upcoming,.chores-screen{max-width:1160px;margin-inline:auto}.screen-head{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;margin-bottom:26px;padding-right:64px}.screen-head h1{font-size:var(--fs-title);font-weight:800;text-transform:uppercase;letter-spacing:.16em;line-height:28px}.head-actions{display:flex;align-items:center;gap:12px}.weather-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--ink);font-size:14px;white-space:nowrap}.weather-icon{font-size:16px;line-height:1}.weather-temp{font-weight:700}.weather-label{color:var(--ink-muted)}@media (max-width: 560px){.weather-label{display:none}}.quickadd{margin:4px 0 22px}.quickadd-row{display:flex;gap:10px}.quickadd-row input{margin:0;flex:1;box-shadow:var(--shadow)}.quickadd-preview{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px;padding:0 4px}.qa-title{font-weight:600}.qa-chip{font-size:var(--fs-meta);color:var(--ink-muted);background:var(--surface);border:1px solid var(--hairline);padding:3px 9px;border-radius:var(--radius-pill)}.agenda{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.agenda-item{display:flex;align-items:center;gap:16px;padding:18px 22px;background:var(--surface);border:1px solid var(--hairline);border-left:5px solid var(--ink-muted);border-radius:var(--radius-lg);box-shadow:var(--shadow);font-size:var(--fs-body)}.agenda-item .time{width:96px;color:var(--ink-muted);font-weight:600;font-size:var(--fs-body);flex-shrink:0}.agenda-item .title{flex:1;font-weight:600;display:flex;align-items:center;gap:8px}.agenda-item .title .box{color:var(--ink-muted);border:none;background:none;font:inherit;line-height:1;cursor:pointer;flex-shrink:0;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:flex-end;padding:0;margin:-14px -2px -14px -26px}.agenda-item .title .box:hover{color:var(--accent)}.agenda-item .title .done{text-decoration:line-through;color:var(--ink-muted)}.agenda-item .loc{color:var(--ink-muted);font-weight:400}.agenda-item .drive{color:var(--ink-muted);font-weight:400;white-space:nowrap}a.loc{text-decoration:none;cursor:pointer}a.loc:hover{color:var(--accent);text-decoration:underline}@media (max-width: 639px){.agenda-item{flex-wrap:wrap;row-gap:6px}.agenda-item .title{flex:1 1 calc(100% - 112px);flex-wrap:wrap;row-gap:2px}}.chip{color:var(--accent);border-color:var(--accent);font-size:var(--fs-meta);padding:6px 12px}.dots{display:flex;gap:3px}.screen-upcoming{display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden;padding-bottom:24px}.upcoming-title{display:inline-flex;align-items:baseline;gap:8px;border:none;background:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.upcoming-title:hover .upcoming-year{color:var(--accent-hover)}.upcoming-heading{margin:0;font:inherit;display:inline-flex;align-items:center}.upcoming-title{min-height:44px;display:inline-flex;align-items:center;gap:8px}.upcoming-title span:first-child,.upcoming-year{font-size:var(--fs-title);font-weight:800;text-transform:uppercase;letter-spacing:.16em;line-height:28px}.upcoming-year{color:var(--accent)}.upcoming-expand{color:var(--ink-muted);font-size:var(--fs-meta);margin-left:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.week-date-nav{display:flex;align-items:center;gap:2px}.week-nav-btn{flex-shrink:0;border:none;background:none;padding:0;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;line-height:1;color:var(--ink-muted);cursor:pointer;border-radius:var(--radius-sm)}.week-nav-btn:hover{background:var(--hover);color:var(--ink)}.week-date-nav .week-date-strip{flex:1;min-width:0}.week-date-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:4px 0 8px}.week-day-cell{display:flex;flex-direction:column;align-items:center;gap:6px;border:none;background:none;padding:6px 4px;border-radius:var(--radius-md);cursor:pointer;font:inherit;color:inherit}.week-day-cell:hover{background:var(--hover)}.week-day-label{font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--ink-muted)}.week-day-num{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font-size:16px;font-weight:700;line-height:1}.week-day-cell.selected .week-day-num{background:var(--accent);color:#fff}.week-day-cell.today:not(.selected) .week-day-num{box-shadow:inset 0 0 0 1.5px var(--now)}.week-day-dots{display:flex;align-items:center;justify-content:center;gap:2px;min-height:6px}.week-day-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.week-agenda-divider{height:1px;background:var(--hairline);margin:0 0 4px;flex-shrink:0}.week-agenda-scroll{flex:1;min-height:0;overflow-y:auto;margin-right:-8px;padding-right:8px}.upcoming-day{margin-top:24px}.upcoming-day:first-of-type{margin-top:8px}.day-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--fs-body);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 12px;padding-bottom:9px;border-bottom:1px solid var(--hairline)}.day-heading.is-today{color:var(--now)}.day-heading time{font-weight:700;letter-spacing:.04em}.day-weather{padding:4px 10px;font-size:var(--fs-meta);text-transform:none;letter-spacing:normal}.day-weather .weather-icon{font-size:14px}.empty-day{color:var(--ink-muted);font-size:var(--fs-body);margin:0 0 8px}.avatar{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;flex-shrink:0}.calendar .screen-head{align-items:center}.cal-nav{display:flex;align-items:center;gap:16px}.cal-arrows{display:flex;align-items:center;gap:4px}.cal-arrows button{min-width:44px;min-height:44px;padding:6px 12px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.today-btn{font-weight:600}.seg{display:inline-flex;background:var(--rail);border:1px solid var(--hairline);border-radius:var(--radius-md);padding:3px;gap:2px}.seg button{border:none;background:none;padding:8px 18px;border-radius:var(--radius-sm);font-weight:500;font-size:var(--fs-body)}.seg button.active{background:var(--surface);color:var(--accent);font-weight:700;box-shadow:var(--shadow)}.cal-members{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 18px}.member-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 14px 6px 12px;border-radius:var(--radius-pill);font-size:var(--fs-body);font-weight:600;border:1px solid var(--hairline);background:var(--surface);color:var(--ink)}.member-chip:hover{background:var(--hover)}.member-chip-dot{width:11px;height:11px;border-radius:50%;border:2px solid;flex-shrink:0}.member-chip.off{color:var(--ink-muted);background:none}.member-chip.off{text-decoration:line-through;text-decoration-color:var(--ink-muted)}.member-chip-all{border:none;background:none;color:var(--accent);font-size:var(--fs-meta);font-weight:600;padding:5px 6px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);overflow:hidden;height:calc(100vh - 248px);min-height:540px}.month-grid .dow{text-align:center;color:var(--ink-muted);font-size:var(--fs-meta);font-weight:600;padding:12px 0}.month-grid .day{min-height:0;border:none;border-top:1px solid var(--hairline);border-radius:0;padding:8px;display:flex;flex-direction:column;align-items:stretch;gap:4px;text-align:left;cursor:pointer;overflow:hidden}.month-grid .day:hover{background:var(--hover)}.month-grid .day.blank{cursor:default}.month-grid .day.blank:hover{background:none}.month-grid .day.past{opacity:.55}.month-grid .day.past:hover{opacity:.8}.day-num{font-size:var(--fs-body);font-weight:600;color:var(--ink-muted);align-self:flex-start;padding:1px 2px}.day.today .day-num{background:var(--now);color:#fff;border-radius:50%;width:24px;height:24px;display:grid;place-items:center}.day-events{display:flex;flex-direction:column;gap:4px;overflow:hidden}.day-pill{font-size:var(--fs-meta);font-weight:600;padding:3px 9px;border-radius:var(--radius-sm);border-left:4px solid currentColor;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-more{font-size:var(--fs-meta);color:var(--ink-muted);padding:0 2px}.timegrid{border:1px solid var(--hairline);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);box-shadow:var(--shadow);display:flex;flex-direction:column;height:calc(100vh - 250px);min-height:460px}.tg-gutter{width:56px;flex-shrink:0}.tg-header{display:flex;border-bottom:1px solid var(--hairline)}.tg-dayhead{flex:1;border:none;border-left:1px solid var(--hairline);background:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px}.tg-dayhead:first-of-type{border-left:none}.tg-dayhead:hover{background:var(--hover)}.tg-dow{font-size:var(--fs-meta);color:var(--ink-muted);font-weight:600}.tg-daynum{font-size:var(--fs-body);font-weight:700;width:26px;height:26px;display:grid;place-items:center;border-radius:50%}.tg-daynum.today{background:var(--now);color:#fff}.tg-allday{display:flex;border-bottom:1px solid var(--hairline);max-height:88px;overflow-y:auto}.tg-allday-label{font-size:var(--fs-meta);color:var(--ink-muted);text-align:right;padding:6px 6px 0 0}.tg-allday-col{flex:1;border-left:1px solid var(--hairline);padding:4px;display:flex;flex-direction:column;gap:3px;min-width:0}.tg-allday-col:first-of-type{border-left:none}.tg-allday-chip{font-size:var(--fs-meta);font-weight:600;padding:2px 9px;border-radius:var(--radius-pill);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-scroll{flex:1;overflow-y:auto}.tg-body{display:flex;position:relative;height:100%}.tg-hours{position:relative}.tg-hourlabel{position:absolute;right:6px;font-size:var(--fs-meta);color:var(--ink-muted)}.tg-col{flex:1;position:relative;border-left:1px solid var(--hairline);min-width:0}.tg-col:first-of-type{border-left:none}.tg-hourline{position:absolute;left:0;right:0;border-top:1px solid var(--hairline);opacity:.55}.tg-block{position:absolute;border-radius:var(--radius-sm);border-left:3px solid;padding:2px 5px;overflow:hidden;display:flex;flex-direction:column;line-height:1.15;min-height:18px}.tg-block-title{font-size:var(--fs-meta);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-block-time{font-size:var(--fs-meta);opacity:.85}.tg-now{position:absolute;left:0;right:0;height:2px;background:var(--now);z-index:2}.tg-now:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--now);animation:now-breath 4s ease-in-out infinite}@keyframes now-breath{0%,to{box-shadow:0 0 #e2563f73}50%{box-shadow:0 0 0 5px #e2563f00}}@media (prefers-reduced-motion: reduce){.tg-now:before{animation:none}}.lists-layout{display:flex;gap:28px;align-items:flex-start}.lists-rail{width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:2px}.lists-rail-head{padding:4px 8px 8px}.list-tab{display:flex;align-items:center;gap:10px;border:none;background:none;padding:9px 11px;border-radius:var(--radius-md);text-align:left;font-size:var(--fs-body);font-weight:500}.list-tab:hover{background:#1a17140a}.list-tab.active{background:var(--surface);border:1px solid var(--hairline);box-shadow:var(--shadow);font-weight:600}.list-tab-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-tab-count{font-size:var(--fs-meta);color:var(--ink-muted);background:var(--rail);border-radius:var(--radius-pill);padding:1px 8px}.list-tab.active .list-tab-count{background:var(--canvas)}.lists-new{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;padding:0 4px}.lists-new button{font-size:var(--fs-meta);padding:7px 11px}.list-detail{flex:1;min-width:0}.staples{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.staple{font-size:var(--fs-meta);padding:6px 12px;border-radius:var(--radius-pill);color:var(--ink-muted)}.staple:hover{color:var(--accent);border-color:var(--accent)}.aisle{margin-bottom:18px}.aisle-head{font-size:var(--fs-meta);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 8px 2px}.checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.checklist li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-md)}.checklist li:hover{background:#1a171408}.checklist li.checked .check-text{color:var(--ink-muted);text-decoration:line-through}.checklist .check{border:none;background:none;font-size:var(--fs-title);padding:0;color:var(--accent);line-height:1}.checklist .check-text{flex:1;cursor:pointer;font-size:var(--fs-body)}.checklist .remove{border:none;background:none;color:var(--ink-muted);font-size:var(--fs-title);line-height:1;padding:0 4px;opacity:0}.checklist li:hover .remove{opacity:1}.checklist .remove:hover{color:var(--accent)}.settings-card{max-width:560px;margin-bottom:18px;box-shadow:var(--shadow)}.location-form{display:flex;flex-direction:column;gap:12px;margin-top:12px}.location-field{display:flex;flex-direction:column;gap:4px;flex:1}.location-field>span{font-size:var(--fs-meta);font-weight:600;color:var(--ink-muted)}.location-coords{display:flex;gap:12px}.kiosk-links-row{display:flex;gap:12px;flex-wrap:wrap}.kiosk-links-row .location-field{min-width:160px}.location-actions{display:flex;align-items:center;gap:12px}.location-error{color:var(--danger);font-size:var(--fs-meta);margin:0}.location-field select{padding:9px 11px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit}.tz-hint{margin:2px 0 0;font-size:var(--fs-meta)}.font-field{gap:6px}.font-preview{margin:2px 0 0;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--rail);color:var(--ink);font-size:var(--fs-title);line-height:1.3}.font-download{margin:0;font-size:var(--fs-meta)}.font-download a{color:var(--accent)}.theme-options{display:flex;flex-direction:column;gap:8px;margin-top:12px}.theme-option{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;transition:border-color .12s,background .12s}.theme-option:hover{background:var(--hover)}.theme-option.active{border-color:var(--accent);background:var(--accent-soft)}.theme-option input{width:auto;margin:0;flex-shrink:0;accent-color:var(--accent)}.theme-swatch{flex-shrink:0;width:38px;height:38px;border-radius:var(--radius-sm);border:1px solid var(--hairline);display:grid;place-items:center;font-size:var(--fs-meta);font-weight:800}.theme-option-text{display:flex;flex-direction:column;gap:1px;min-width:0}.theme-option-label{font-size:var(--fs-body);font-weight:600;color:var(--ink)}.theme-option-desc{margin:0;font-size:var(--fs-meta)}.theme-photo-picker .chip-toggle{background-size:cover;background-position:center}.invite-row{display:flex;align-items:center;gap:12px;margin-top:12px}.invite-code{flex:1;font-family:var(--font-mono);font-size:var(--fs-title);letter-spacing:.08em;background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--radius-md);padding:11px 14px}.member-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:4px}.member-list li{display:flex;align-items:center;gap:12px;padding:8px 0}.member-name{flex:1;font-weight:600}.member-role{font-size:var(--fs-meta);color:var(--ink-muted);background:var(--rail);border-radius:var(--radius-pill);padding:3px 11px}.guest-list li.guest-item{flex-direction:column;align-items:stretch;gap:8px;padding:12px 0;border-top:1px solid var(--hairline)}.guest-head{display:flex;align-items:center;gap:12px}.guest-scope{padding-left:4px}.guest-scope-list{list-style:none;padding:0;margin:6px 0 10px;display:flex;flex-direction:column;gap:6px}.guest-scope-list label{display:flex;align-items:center;gap:10px;cursor:pointer}.guest-scope-list input[type=checkbox]{width:16px;height:16px}.facts-add{display:flex;flex-direction:column;gap:8px;margin-top:12px}.facts-input{width:100%;box-sizing:border-box;resize:vertical;min-height:44px;padding:9px 11px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit}.facts-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.facts-add-row{display:flex;align-items:center;gap:8px}.facts-category{flex:1;min-width:0;padding:9px 11px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit}.facts-category:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.facts-groups{margin-top:16px;display:flex;flex-direction:column;gap:16px}.facts-group-head,.facts-suggested-head{font-size:var(--fs-meta);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:0 0 6px}.facts-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.facts-item{display:flex;align-items:flex-start;gap:12px;padding:8px 0;border-top:1px solid var(--hairline)}.facts-item:first-child{border-top:none}.facts-text{flex:1;line-height:1.4}.facts-cat-tag{display:inline-block;margin-right:8px;font-size:var(--fs-meta);font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-pill);padding:1px 9px}.facts-item-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.facts-pending{margin-top:16px;padding:14px;border-radius:var(--radius-md);background:var(--accent-soft);border:1px solid var(--hairline)}.facts-pending .facts-list{margin-top:10px}.facts-item-pending{border-top-color:#b85c382e}.facts-item-pending:first-child{border-top:none}.birthday-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:8px}.birthday-row{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--surface);border:1px solid var(--hairline);border-left:5px solid var(--ink-muted);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.birthday-row.clickable{cursor:pointer}.birthday-row.clickable:hover{background:var(--hover)}.birthday-cake{font-size:26px;line-height:1;width:32px;text-align:center}.birthday-main{flex:1;display:flex;flex-direction:column;gap:2px}.birthday-name{font-weight:600}.birthday-when,.birthday-edit{font-size:var(--fs-meta)}.bday-countdown{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.bday-cd-label{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;font-size:var(--fs-meta);font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-muted)}.bday-cd-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bday-cd-chip{display:inline-flex;align-items:baseline;gap:8px;padding:6px 12px;background:var(--surface);border:1px solid var(--hairline);border-left:4px solid var(--accent);border-radius:var(--radius-pill)}.bday-cd-chip.is-today{background:var(--accent-soft);border-color:var(--accent)}.bday-cd-cake{font-size:var(--fs-body);line-height:1}.bday-cd-name{font-weight:600;color:var(--ink)}.bday-cd-when{font-size:var(--fs-meta);color:var(--ink-muted)}.bday-cd-more{font-size:var(--fs-meta);color:var(--ink-muted);font-weight:600}.bday-countdown-reminder{width:100%;text-align:left;cursor:pointer;padding:10px 14px;margin:0;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg)}.bday-countdown-reminder:hover{border-color:var(--accent);background:var(--hover)}.bday-countdown-kiosk{flex:0 0 auto;padding:12px 18px;background:var(--kiosk-panel);border:1px solid var(--kiosk-border);border-radius:var(--radius-xl)}.bday-countdown-kiosk .bday-cd-name{font-size:var(--fs-title)}.bday-countdown-kiosk .bday-cd-when{font-size:var(--fs-body)}.bday-countdown-kiosk .bday-cd-cake{font-size:var(--fs-title)}.bday-countdown-kiosk .bday-cd-chip{padding:8px 16px}.cal-head-right{display:flex;align-items:center;gap:12px}.agenda-item.clickable{cursor:pointer}.agenda-item.clickable:hover{background:var(--hover)}.repeat-mark{color:var(--ink-muted);font-weight:400}.tg-block.clickable,.tg-allday-chip.clickable,.day-pill{cursor:pointer}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a171452;display:grid;place-items:center;padding:24px;z-index:50}.modal{position:relative;width:100%;max-width:460px;max-height:88vh;overflow-y:auto;box-shadow:0 12px 48px #1a171438}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.modal-close{border:none;background:none;font-size:var(--fs-title);line-height:1;color:var(--ink-muted);padding:2px 8px}.settings-modal{max-width:820px;height:88vh;display:flex;flex-direction:column}.settings-modal .modal-head{flex:0 0 auto}.settings-modal-body{display:flex;gap:22px;flex:1;min-height:0}.settings-tabs{flex:0 0 176px;display:flex;flex-direction:column;gap:2px;border-right:1px solid var(--hairline);padding-right:14px;overflow-y:auto}.settings-tab{text-align:left;border:none;background:none;padding:9px 12px;border-radius:var(--radius-sm);font:inherit;font-weight:600;font-size:var(--fs-body);color:var(--ink-muted);cursor:pointer}.settings-tab:hover{background:var(--hover);color:var(--ink)}.settings-tab.active{background:var(--accent-soft);color:var(--accent)}.settings-panel{flex:1;min-width:0;overflow-y:auto;padding:2px 4px 2px 0}.settings-panel .settings-card{max-width:none;margin:0;padding:22px 0;background:none;border:none;border-radius:0;box-shadow:none}.settings-panel .settings-card:first-child{padding-top:4px}.settings-panel .settings-card:last-child{padding-bottom:4px}.settings-panel .settings-card+.settings-card{border-top:1px solid var(--hairline)}.settings-panel .settings-card h3{margin-top:0}@media (max-width: 639px){.settings-modal{height:auto;max-height:88vh}.settings-modal-body{flex-direction:column;gap:12px}.settings-tabs{flex:0 0 auto;flex-direction:row;gap:6px;overflow-x:auto;border-right:none;border-bottom:1px solid var(--hairline);padding:0 0 10px;-webkit-overflow-scrolling:touch}.settings-tab{flex:0 0 auto;white-space:nowrap}}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:var(--fs-meta);font-weight:600;color:var(--ink-muted)}.field.inline{flex-direction:row;align-items:center;gap:6px}.field.inline>span{font-weight:400}.field-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.field-row .field{flex:1;min-width:110px}.check-field{display:flex;align-items:center;gap:8px;font-size:var(--fs-body);font-weight:500}.check-field input{width:auto}textarea{width:100%;border:1px solid var(--hairline);border-radius:var(--radius-md);padding:10px 12px;font:inherit;resize:vertical}select{width:100%;border:1px solid var(--hairline);border-radius:var(--radius-md);padding:10px 12px;font:inherit;background:var(--surface)}.seg-inline{align-self:flex-start}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip-toggle{font-size:var(--fs-meta);padding:6px 12px;border-radius:var(--radius-pill);border:1px solid var(--hairline)}.chip-toggle.on{color:#fff;font-weight:600;background:var(--accent);border-color:var(--accent)}.entry-emoji{margin-right:4px;font-style:normal;color:initial;line-height:1}.emoji-field{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.emoji-palette{display:flex;flex-wrap:wrap;gap:4px}.emoji-option{font-size:var(--fs-title);line-height:1;padding:4px 6px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--accent-soft)}.emoji-option:hover{border-color:var(--hairline)}.emoji-option.on{border-color:var(--accent);background:var(--surface);box-shadow:var(--shadow)}.emoji-input{width:96px;font-size:var(--fs-body)}.emoji-clear{border:none;background:none;color:var(--accent);font-size:var(--fs-meta);font-weight:600;padding:2px 4px}.composer{gap:10px}.composer-title{border:none;background:none;padding:4px 2px;margin:2px 0 4px;font-size:var(--fs-title);font-weight:700;letter-spacing:-.01em;width:100%;border-bottom:1px solid var(--hairline);border-radius:0}.composer-title:focus{outline:none;border-bottom-color:var(--accent)}.composer-title::placeholder{color:var(--ink-muted);font-weight:600}.composer-row{display:flex;gap:12px;align-items:flex-start}.composer-icon{width:20px;flex-shrink:0;text-align:center;font-size:var(--fs-body);padding-top:7px;opacity:.7}.composer-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.composer-toggles{display:flex;flex-wrap:wrap;gap:16px;margin-left:32px}.more-toggle{border:none;background:none;color:var(--ink-muted);font-size:var(--fs-body);font-weight:600;padding:4px 2px}.more-toggle:hover{color:var(--accent)}.reminder-row{display:flex;gap:8px;align-items:center}.reminder-row select{flex:1}.reminder-row select:last-of-type{flex:0 0 auto;width:auto}.reminder-remove{border:none;background:none;color:var(--ink-muted);font-size:var(--fs-title);line-height:1;padding:0 4px;flex-shrink:0}.reminder-remove:hover{color:var(--accent)}.reminder-add{align-self:flex-start;border:none;background:none;color:var(--accent);font-size:var(--fs-meta);font-weight:600;padding:2px}.composer-toast{position:absolute;left:50%;bottom:18px;transform:translate(-50%);background:var(--ink);color:var(--surface);font-weight:600;font-size:var(--fs-body);padding:9px 18px;border-radius:var(--radius-pill);box-shadow:var(--shadow);z-index:2}.modal-actions{display:flex;align-items:center;gap:8px;margin-top:4px}.modal-actions .spacer{flex:1}button.danger{color:var(--accent);border-color:var(--accent)}button.danger:hover{background:var(--danger-soft)}.member-list li{display:flex;align-items:center;gap:10px}.member-edit{display:flex;align-items:center;gap:8px;flex:1}.member-edit input[type=text]{flex:1;min-width:80px}.member-list input[type=color]{width:34px;height:34px;flex-shrink:0;padding:2px;border-radius:var(--radius-sm);cursor:pointer}.member-edit select{width:auto}.member-name-edit{flex:1}.member-driver{display:flex;align-items:center;gap:4px;font-size:var(--fs-meta);color:var(--ink-muted);white-space:nowrap}.member-driver input[type=checkbox]{width:auto}.list-item-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.qty-step{display:inline-flex;align-items:center;gap:4px}.qty-step button{padding:2px 8px;border-radius:var(--radius-sm);font-weight:700}.qty-val{min-width:18px;text-align:center;font-variant-numeric:tabular-nums}.item-assignee{font-size:var(--fs-meta);padding:4px 8px}.newlist-form{display:flex;gap:6px;margin-top:8px}.newlist-form input{flex:1}.undo-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--ink);color:#fff;border-radius:var(--radius-md);margin-bottom:12px}.undo-bar button{background:none;border:none;color:#fff;font-weight:700;text-decoration:underline}.connection-list{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}.connection-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--radius-md)}.connection-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.connection-provider{font-weight:600;display:flex;align-items:center;gap:6px}.connection-emoji{font-style:normal;line-height:1}.connection-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.link-action{border:none;background:none;color:var(--accent);font-weight:600;cursor:pointer}.connection-edit{margin-top:8px}.connect-form-actions{display:flex;gap:8px;justify-content:flex-end}.connection-row .muted{font-size:var(--fs-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connect-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.connect-actions a.primary{display:inline-block;padding:9px 15px;border-radius:var(--radius-md);font-size:var(--fs-body);font-weight:600;text-decoration:none;background:var(--accent);color:#fff;border:1px solid var(--accent)}.connect-actions a.primary:hover{background:var(--accent-hover)}.connect-form{display:grid;gap:8px;margin-top:12px;padding:12px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--hover)}.connect-form input{width:100%}.link-danger{border:none;background:none;color:var(--danger);font-weight:600;cursor:pointer}.integration-error{color:var(--danger);font-size:var(--fs-meta);margin:6px 0 0}.inbox-toast{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--hover);border:1px solid var(--hairline);border-radius:var(--radius-md);padding:10px 14px;margin-bottom:16px;font-size:var(--fs-body)}.inbox-intro{max-width:620px;margin-bottom:18px;box-shadow:var(--shadow)}.inbox-intro-lead{font-size:var(--fs-body);font-weight:700;margin:0 0 4px}.inbox-intro .muted{margin:0 0 12px}.inbox-address{display:flex;align-items:center;gap:10px;background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--radius-md);padding:10px 12px;margin-bottom:10px}.inbox-address code{flex:1;font-family:var(--font-mono);font-size:var(--fs-body);color:var(--ink);overflow:hidden;text-overflow:ellipsis}.inbox-guard{font-size:var(--fs-meta);color:var(--ink-muted);margin:0}.inbox-list{list-style:none;display:flex;flex-direction:column;gap:12px}.inbox-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:16px 18px;display:flex;flex-direction:column;gap:12px}.inbox-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.inbox-type{display:flex;align-items:center;gap:7px;font-weight:700;font-size:var(--fs-body)}.inbox-type-icon{font-size:var(--fs-body)}.inbox-flag{font-size:var(--fs-meta);font-weight:600;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-pill);padding:1px 9px}.inbox-from{margin-left:auto;color:var(--ink-muted);font-size:var(--fs-meta);max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inbox-fields{display:flex;flex-direction:column;gap:10px}.inbox-fields input{width:100%}.inbox-hint{font-size:var(--fs-meta);margin:0}.inbox-excerpt{margin:0;font-style:italic}.inbox-error{font-size:var(--fs-meta);margin:0}.inbox-actions{display:flex;justify-content:flex-end;gap:10px}.meals-screen .seg{margin-left:auto}.meal-week-nav{justify-content:space-between;margin-bottom:14px}.meal-week-nav .cal-arrows strong{min-width:130px;text-align:center}.meal-days{display:flex;flex-direction:column;gap:4px}.meal-day{padding:8px 10px;border-radius:var(--radius-md);border:1.5px solid transparent}.meal-day.today{border-color:var(--hairline);background:var(--hover)}.meal-day-head{display:flex;align-items:center;justify-content:space-between}.meal-day-label{font-size:var(--fs-meta);font-weight:700;letter-spacing:.3px;color:var(--ink-muted)}.meal-day.today .meal-day-label{color:var(--accent)}.meal-add{border:none;background:none;font-size:var(--fs-title);line-height:1;color:var(--ink-muted);padding:0 6px}.meal-empty{border:none;background:none;color:var(--ink-muted);font-size:var(--fs-body);padding:4px 0;text-align:left;cursor:pointer}.meal-card{display:flex;gap:8px;align-items:flex-start;background:var(--rail);border-radius:var(--radius-md);padding:10px 8px 10px 14px;margin-top:6px}.meal-card-body{flex:1;min-width:0}.meal-card-title{font-size:var(--fs-body);font-weight:600}.meal-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:5px}.cat-chip{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-meta);font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-pill);padding:3px 9px;text-decoration:none}.meal-source{font-size:var(--fs-meta);color:var(--ink-muted);text-decoration:none}.meal-source:hover{text-decoration:underline}.meal-ings{font-size:var(--fs-meta);color:var(--ink-muted);margin-top:3px}.meal-card-actions{display:flex;gap:2px;flex-shrink:0}.meal-card-actions button{border:none;background:none;color:var(--ink-muted);font-size:var(--fs-body);padding:4px 6px;border-radius:var(--radius-sm)}.meal-card-actions button:hover{background:var(--surface);color:var(--accent)}.meal-editor-row{display:flex;gap:12px}.meal-editor-row .field{flex:1}.add-recipe{margin-bottom:16px}.add-recipe-row{display:flex;gap:8px}.add-recipe-row input{flex:1}.add-recipe-status{font-size:var(--fs-meta);color:var(--ink-muted);margin-top:6px}.recipe-collections{margin-bottom:14px}.recipe-badge{font-size:.85em;margin-left:6px;vertical-align:baseline}.recipe-search{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:14px}.recipe-search-input{flex:1 1 220px;min-width:0;margin:0}.recipe-search-opt{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-meta);color:var(--ink-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.recipe-search-opt input{margin:0}.recipe-section{margin-bottom:18px}.recipe-section-head{font-size:var(--fs-meta);font-weight:700;letter-spacing:.4px;color:var(--ink-muted);margin-bottom:8px}.recipe-section-head .count{color:var(--accent)}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.recipe-show-more{margin-top:8px;border:none;background:none;padding:0;color:var(--accent);font-size:var(--fs-meta);font-weight:600;cursor:pointer}.recipe-show-more:hover{text-decoration:underline}.recipe-card{display:flex;gap:12px;align-items:flex-start;text-align:left;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:12px;cursor:pointer}.recipe-card:hover{border-color:var(--accent)}.recipe-thumb{width:56px;height:56px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.recipe-thumb.placeholder{display:flex;align-items:center;justify-content:center;font-size:var(--fs-title);background:var(--rail)}.recipe-card-text{display:flex;flex-direction:column;gap:3px;min-width:0}.recipe-card-title{font-size:var(--fs-body);font-weight:700}.recipe-card-desc{font-size:var(--fs-meta);color:var(--ink-muted);font-style:italic}.recipe-card-bits{font-size:var(--fs-meta);color:var(--ink-muted)}.recipe-modal .recipe-hero{width:100%;height:180px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:10px}.recipe-desc{color:var(--ink-muted);font-style:italic;margin:0 0 12px}.recipe-sub{font-size:var(--fs-body);margin:16px 0 8px}.recipe-ings{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.recipe-ings li{font-size:var(--fs-body)}.recipe-steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px}.recipe-steps li{font-size:var(--fs-body)}.allowance-bar{margin:0 0 22px}.allowance-row{display:flex;flex-wrap:wrap;gap:22px;margin-top:8px}.allowance-chip{display:flex;flex-direction:column;gap:8px}.allowance-head{display:flex;align-items:center;gap:9px;border:none;background:none;padding:4px 6px;margin:-4px -6px;border-radius:var(--radius-md);cursor:pointer;text-align:left}.allowance-head:hover{background:var(--hover)}.allowance-chip.open .allowance-head{background:var(--accent-soft)}.allowance-meta{display:flex;flex-direction:column;line-height:1.2}.allowance-name{font-size:var(--fs-meta);color:var(--ink-muted)}.allowance-amt{font-size:var(--fs-body);font-weight:700}.allowance-manage{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-md);box-shadow:var(--shadow)}.allowance-manage .link{align-self:flex-start}.allowance-adjust{display:flex;align-items:center;gap:6px}.allowance-adjust .ghost{border:1px solid var(--hairline);border-radius:var(--radius-sm);width:30px;height:30px;display:grid;place-items:center;font-size:var(--fs-body);padding:0;color:var(--ink)}.allowance-adjust .ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.allowance-adjust .ghost:disabled{opacity:.4}.chore-composer{margin:4px 0 22px}.chore-composer .quickadd-row input{margin:0;flex:1;box-shadow:var(--shadow)}.chore-composer-opts{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}.chore-composer-opts select{font-size:var(--fs-meta);padding:7px 10px}.dollar-field{display:inline-flex;align-items:center;gap:4px;color:var(--ink-muted)}.dollar-input{width:72px;margin:0}.auto-approve{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-meta);color:var(--ink-muted)}.auto-approve input{width:auto;margin:0}.chore-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.chore-row{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:12px 14px}.chore-row .avatar-empty{background:var(--rail);color:var(--ink-muted)}.chore-main{display:flex;flex-direction:column;flex:1;min-width:0}.chore-title{font-weight:600;font-size:var(--fs-body)}.chore-sub{font-size:var(--fs-meta);color:var(--ink-muted);margin-top:2px}.chore-row.state-approved .chore-title{color:var(--ink-muted);text-decoration:line-through}.chore-action{flex-shrink:0;white-space:nowrap;cursor:pointer;min-height:44px;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:var(--fs-meta)}.chore-action:hover{background:var(--accent);color:#fff}.chore-check{color:var(--accent);font-weight:700;font-size:var(--fs-title)}.chore-row .remove{border:none;background:none;color:var(--ink-muted);font-size:var(--fs-title);line-height:1;padding:0 4px}.chore-row .remove:hover{color:var(--accent)}.assignee-picker{position:relative;flex-shrink:0;display:inline-flex}.assignee-trigger{border:none;background:none;padding:0;margin:0;cursor:pointer;display:inline-flex;border-radius:50%;line-height:0}.assignee-trigger:hover{box-shadow:0 0 0 2px var(--accent-soft)}.assignee-empty{display:inline-grid;place-items:center;border-radius:50%;background:var(--rail);color:var(--ink-muted);border:1px dashed var(--hairline);font-size:var(--fs-meta);line-height:1}.assignee-menu{position:absolute;z-index:40;top:calc(100% + 6px);left:0;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:6px;min-width:180px;display:flex;flex-direction:column;gap:2px}.list-item-meta .assignee-menu{left:auto;right:0}.assignee-option{display:flex;align-items:center;gap:8px;width:100%;border:none;background:none;padding:7px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-body);color:var(--ink);text-align:left}.assignee-option:hover{background:var(--hover)}.assignee-option.active{background:var(--accent-soft);font-weight:600}.quickadd-fab{position:fixed;bottom:24px;right:24px;z-index:45;width:52px;height:52px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:26px;line-height:1;box-shadow:0 6px 20px #b85c3859;cursor:pointer;display:grid;place-items:center;transition:background .12s,transform .12s}.quickadd-fab:hover{background:var(--accent-hover);transform:translateY(-1px)}.quickadd-modal{width:560px;max-width:92vw}.quickadd-modal .quickadd{margin:0}.quickadd-hint{font-size:var(--fs-meta);margin:8px 4px 0}.assistant-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a17142e;z-index:50;display:flex;justify-content:flex-end}.assistant-panel{width:380px;max-width:92vw;height:100%;background:var(--surface);border-left:1px solid var(--hairline);box-shadow:-8px 0 32px #1a17141f;padding:22px 22px calc(22px + env(safe-area-inset-bottom,0px));overflow-y:auto;display:flex;flex-direction:column;gap:14px;animation:assistant-in .16s ease-out}@keyframes assistant-in{0%{transform:translate(16px);opacity:.6}to{transform:none;opacity:1}}@media (prefers-reduced-motion: reduce){.assistant-panel{animation:none}}.assistant-head{display:flex;align-items:center;justify-content:space-between}.assistant-head strong{font-size:var(--fs-title)}.assistant-input{width:100%;padding:12px 14px;border:1px solid var(--hairline);border-radius:var(--radius-md);font-size:var(--fs-body);background:var(--canvas);color:var(--ink)}.assistant-input:focus{outline:2px solid var(--focus-ring);border-color:transparent}.assistant-preview{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--accent-soft);border-radius:var(--radius-md)}.assistant-preview-label{margin:0;font-size:var(--fs-meta);font-weight:600;color:var(--ink)}.assistant-preview .quickadd-preview{margin:0}.assistant-preview .primary{align-self:flex-start}.assistant-suggest{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.assistant-suggest .sidebar-label{padding:0}.assistant-chip{border:1px solid var(--hairline);background:var(--surface);border-radius:var(--radius-pill);padding:8px 14px;font-size:var(--fs-body);font-weight:500;text-align:left}.assistant-chip:hover{border-color:var(--accent);color:var(--accent)}@media (max-width: 639px){.quickadd-fab{bottom:calc(80px + env(safe-area-inset-bottom,0px));right:16px}.assistant-scrim{align-items:flex-end}.assistant-panel{width:100%;max-width:100%;height:auto;max-height:88vh;border-left:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0}}.screensaver-photos{width:100%;box-sizing:border-box;resize:vertical;min-height:96px;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--hairline);background:var(--surface);color:var(--ink);font-size:var(--fs-meta);font-family:inherit;line-height:1.5}.nav-label{white-space:nowrap}.nav-more-tab,.more-backdrop{display:none}@media (max-width: 639px){.sidebar{position:fixed;inset:auto 0 0 0;top:auto;height:auto;width:100%;flex-direction:row;gap:2px;align-items:stretch;padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));border-right:none;border-top:1px solid var(--hairline);background:var(--surface);z-index:40;overflow-x:auto}.sidebar-brand,.sidebar-label,.nav-web-only{display:none}.sidebar-group{display:contents}.sidebar-people,.sidebar-bottom{display:none}.sidebar-nav .nav-item:not(.nav-primary){display:none}.nav-more-tab{display:flex}.sidebar{overflow-x:visible}.sidebar-nav{flex-direction:row;flex:4;gap:0}.nav-more-tab{flex:1}.nav-item{flex:1;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;border-radius:var(--radius-md);font-size:var(--fs-meta);font-weight:600;min-width:56px;position:relative}.nav-icon{font-size:var(--fs-title);width:auto;opacity:1}.nav-label{font-size:var(--fs-meta)}.nav-item.active{background:none;color:var(--accent)}.nav-item.active:hover{background:var(--hover)}.nav-count{position:absolute;top:2px;right:50%;transform:translate(18px);margin:0;min-width:16px;padding:0 5px;font-size:var(--fs-meta)}.main{padding-bottom:68px}.screen{padding:20px 16px 24px}.screen-head{flex-wrap:wrap}h1{font-size:var(--fs-title)}.calendar .screen-head,.cal-head-right{flex-wrap:wrap;gap:10px}.cal-nav{gap:10px}.quickadd-row{flex-wrap:wrap}.seg button{padding:7px 12px}.timegrid{height:calc(100vh - 250px);min-height:360px}.lists-layout{flex-direction:column}.lists-rail{width:100%;flex-direction:row;flex-wrap:wrap}.modal-backdrop{align-items:flex-end;padding:0}.modal{max-width:100%;max-height:92vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}.more-backdrop{display:flex;align-items:flex-end;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#1a171457}.more-sheet{width:100%;background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:14px 16px calc(18px + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow);max-height:82vh;overflow-y:auto}.more-sheet .sidebar-label{display:block;padding:0}.more-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.more-dest{position:relative;min-height:44px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border:none;border-radius:var(--radius-md);background:var(--rail);color:var(--ink);font-weight:600;font-size:var(--fs-meta)}.more-dest:hover{background:var(--hover)}.more-people{margin-top:16px}.more-people .sidebar-label{padding-bottom:8px}.more-people-row{display:flex;flex-wrap:wrap;gap:8px}.more-people-row .person-toggle{margin:0;width:auto;min-height:44px}.more-links{display:flex;gap:20px;margin-top:16px;padding-top:14px;border-top:1px solid var(--hairline)}.more-links a{color:var(--ink-muted);font-weight:600;font-size:var(--fs-body);text-decoration:none}.more-links a:hover{color:var(--accent)}}body.kiosk{--font-sans: "Nunito Sans", "Avenir Next", "Trebuchet MS", "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fs-display: 42px;--fs-title: 25px;--fs-body: 20px;--fs-meta: 16px;--kiosk-head-h: 84px;--kiosk-nav-h: 0px;--kiosk-nav-w: 96px;--kiosk-bg: #FFFFFF;--kiosk-panel: #FFFFFF;--kiosk-panel-soft: #F1F6F4;--kiosk-panel-warm: #F9F1E9;--kiosk-border: #DCE5E1;--kiosk-border-strong: #C7D7D0;--kiosk-blue: #DDEEF3;--kiosk-blue-strong: #5E8795;--kiosk-green: #DDEEE4;--kiosk-green-strong: #4D8060;--kiosk-yellow: #F8E9B7;--kiosk-shadow: 0 8px 22px rgba(33, 45, 42, .07);--kiosk-ink: #22302D;--kiosk-ink-soft: #34433F;--kiosk-ink-muted: #65736F;--kiosk-ink-accent: #225C55;background:var(--kiosk-bg);font-family:var(--font-sans)}.app-shell.kiosk{min-height:100vh;background:var(--kiosk-bg)}.app-shell.kiosk .main{padding-top:var(--kiosk-head-h);padding-bottom:var(--kiosk-nav-h);padding-left:var(--kiosk-nav-w)}.app-shell.kiosk .main .screen-head{display:none}.app-shell.kiosk .screen-upcoming{height:calc(100dvh - var(--kiosk-nav-h) - var(--kiosk-head-h));max-height:calc(100dvh - var(--kiosk-nav-h) - var(--kiosk-head-h))}.app-shell.kiosk .main>.screen:not(.kiosk-calendar):not(.kiosk-weather){min-height:calc(100dvh - var(--kiosk-head-h) - var(--kiosk-nav-h));padding:28px 34px 22px}.kiosk-head{position:fixed;top:0;right:0;left:var(--kiosk-nav-w);z-index:40;height:var(--kiosk-head-h);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:0 34px;background:#f7f8f4f5;border-bottom:1px solid var(--kiosk-border)}.kiosk-head-family{min-width:0;overflow:hidden;color:var(--kiosk-ink);font-size:var(--fs-title);font-weight:800;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.kiosk-head-center{justify-self:center;display:flex;align-items:center;gap:26px}.kiosk-head-datetime{display:flex;flex-direction:row;align-items:baseline;gap:14px;white-space:nowrap;line-height:1.16}.kiosk-head-date{color:var(--kiosk-ink);font-size:var(--fs-title);font-weight:760;white-space:nowrap}.kiosk-head-time{color:var(--kiosk-ink-muted);font-size:var(--fs-body);font-weight:650;font-variant-numeric:tabular-nums}.kiosk-head-weather{justify-self:end;display:flex;align-items:center;gap:10px;padding:8px 14px;border:1px solid var(--kiosk-border);border-radius:8px;background:var(--kiosk-blue);color:var(--kiosk-ink)}.kiosk-head-weather-icon{font-size:32px;line-height:1}.kiosk-head-weather-temp{font-size:var(--fs-title);font-weight:760;font-variant-numeric:tabular-nums}.kiosk-nav{position:fixed;left:14px;top:14px;bottom:14px;z-index:41;width:calc(var(--kiosk-nav-w) - 28px);display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) calc(8px + env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) calc(8px + env(safe-area-inset-left,0px));overflow-y:auto;border:1px solid var(--kiosk-border);border-radius:12px;background:#fffffff5;box-shadow:var(--kiosk-shadow)}.kiosk-nav-brand{flex:0 0 auto;display:grid;place-items:center;padding:8px 0 12px;margin-bottom:auto;border:0;border-radius:8px;background:transparent}.kiosk-nav-brand img{display:block}.kiosk-nav:after{content:"";margin-top:auto}.kiosk-nav-item{flex:0 0 auto;min-height:64px;display:flex;align-items:center;justify-content:center;padding:10px 8px;border:1px solid var(--kiosk-border);border-radius:8px;background:transparent;color:var(--kiosk-ink-soft)}.kiosk-nav-item:hover{background:var(--kiosk-panel-soft)}.kiosk-nav-item.active{border-color:var(--kiosk-border-strong);background:var(--kiosk-panel-soft);color:var(--kiosk-ink-accent)}.kiosk-nav-icon{display:inline-flex;align-items:center;justify-content:center}.kiosk-nav-icon svg{width:32px;height:32px;display:block}.kiosk-nav-label{display:none}.kiosk-calendar,.kiosk-weather{height:calc(100dvh - var(--kiosk-nav-h) - var(--kiosk-head-h));max-height:calc(100dvh - var(--kiosk-nav-h) - var(--kiosk-head-h));padding:24px 30px 20px;box-sizing:border-box}.kiosk-calendar{display:flex;flex-direction:column;gap:16px}.kiosk-cal-controls{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.kiosk-span-toggle.seg{flex:0 0 auto;padding:4px;border:1px solid var(--kiosk-border);border-radius:8px;background:#fff}.kiosk-span-toggle.seg button{border-radius:6px}.kiosk-period-nav{flex:0 0 auto;display:flex;align-items:center;gap:8px}.kiosk-period-nav>button{width:48px;height:48px;display:grid;place-items:center;padding:0;border:1px solid var(--kiosk-border);border-radius:8px;background:#fff;color:var(--kiosk-ink);font-size:var(--fs-title);line-height:1}.kiosk-period-nav>button:hover{border-color:var(--kiosk-border-strong);color:var(--kiosk-ink-accent)}.kiosk-period-label{min-width:9.5em;padding:9px 16px;border:1px solid var(--kiosk-border);border-radius:8px;background:#fff;color:var(--kiosk-ink);font-size:var(--fs-body);font-weight:720;font-variant-numeric:tabular-nums;text-align:center}.kiosk-period-label:disabled{cursor:default}.kiosk-period-label:not(:disabled):hover{border-color:var(--kiosk-border-strong);color:var(--kiosk-ink-accent)}.kiosk-carousel{flex:1 1 auto;min-height:0;display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 8px;scroll-snap-type:x mandatory}.kiosk-day-card{flex:1 1 calc((100% - (var(--kiosk-span) - 1) * 16px) / var(--kiosk-span));min-width:240px;min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--kiosk-border);border-radius:8px;background:var(--kiosk-panel);box-shadow:var(--kiosk-shadow);scroll-snap-align:start}.kiosk-day-card.is-today{border-color:#e4ad7a;background:#fffdf9}.bday-countdown-kiosk{border-color:var(--kiosk-border);border-radius:8px;background:var(--kiosk-panel);box-shadow:var(--kiosk-shadow)}.kiosk-day-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px;border-bottom:1px solid var(--kiosk-border);background:var(--kiosk-panel-soft)}.kiosk-day-date{min-width:0;display:flex;flex-direction:column}.kiosk-day-name{color:var(--kiosk-ink);font-size:var(--fs-title);font-weight:800;letter-spacing:0;line-height:1.1}.kiosk-day-card.is-today .kiosk-day-name{color:var(--accent)}.kiosk-day-num{color:var(--kiosk-ink-muted);font-size:var(--fs-meta);font-weight:650;font-variant-numeric:tabular-nums}.kiosk-day-weather{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:#fff}.kiosk-weather-icon{font-size:31px;line-height:1}.kiosk-weather-temp{font-size:var(--fs-title);font-weight:760;font-variant-numeric:tabular-nums}.kiosk-day-events{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px}.kiosk-day-events .empty-day{margin:0;padding:10px 4px;color:var(--kiosk-ink-muted);font-size:var(--fs-body)}.kiosk-agenda{list-style:none;display:flex;flex-direction:column;gap:10px;margin:0;padding:0}.kiosk-agenda-item{display:flex;flex-direction:column;gap:5px;padding:11px 12px;border:1px solid var(--rail);border-left-width:5px;border-radius:8px;background:#f8f6f1}.kiosk-agenda-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.kiosk-agenda-time{color:var(--kiosk-ink-muted);font-size:var(--fs-meta);font-weight:720;font-variant-numeric:tabular-nums}.kiosk-agenda-title{min-width:0;display:flex;align-items:center;gap:8px;font-size:var(--fs-title);font-weight:650;line-height:1.2}.kiosk-agenda-title .done{color:var(--kiosk-ink-muted);text-decoration:line-through}.kiosk-agenda-people{flex-shrink:0;display:flex;gap:4px}.kiosk-day-meals{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;border-top:1px solid var(--kiosk-border);background:#fbfaf6}.kiosk-meal-btn{min-height:84px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;border:1px solid #E8CBB4;border-radius:8px;background:var(--kiosk-panel-warm);color:var(--kiosk-ink);text-align:left}.kiosk-meal-btn:hover:not(:disabled){border-color:#d99765;background:#fbebdd}.kiosk-meal-btn:disabled{opacity:1;color:var(--kiosk-ink-muted);cursor:default}.kiosk-meal-btn:disabled:hover{border-color:#e8cbb4;background:var(--kiosk-panel-warm)}.kiosk-meal-label{color:var(--accent);font-size:var(--fs-meta);font-weight:800;letter-spacing:0;text-transform:uppercase}.kiosk-meal-title{display:flex;align-items:baseline;gap:6px;font-size:var(--fs-body);font-weight:700;line-height:1.2}.kiosk-meal-empty{color:var(--kiosk-ink-muted);font-size:var(--fs-body);font-weight:520}.kiosk-meal-emoji{font-size:1.1em}.kiosk-meal-picker{display:flex;flex-direction:column;max-height:min(80vh,760px)}.kiosk-picker-current{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:12px 14px;border-radius:8px;background:var(--accent-soft);font-size:var(--fs-body)}.kiosk-picker-current strong{font-weight:720}.kiosk-picker-current button{flex:0 0 auto;padding:8px 14px;border-radius:8px;border:1px solid var(--hairline);background:var(--surface);color:var(--ink);font-weight:650}.kiosk-picker-search{flex:0 0 auto;width:100%;margin-bottom:12px;padding:12px 14px;border-radius:8px;border:1px solid var(--hairline);background:var(--surface);color:var(--ink);font-size:var(--fs-body)}.kiosk-picker-list{min-height:0;display:flex;flex-direction:column;gap:8px;overflow-y:auto;list-style:none;margin:0;padding:0}.kiosk-picker-item{width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--hairline);border-radius:8px;background:var(--surface);color:var(--ink);text-align:left}.kiosk-picker-item:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.kiosk-picker-emoji{flex:0 0 auto;font-size:28px;line-height:1}.kiosk-picker-title{font-size:var(--fs-body);font-weight:650}.app-shell.kiosk .quickadd-row input,.app-shell.kiosk .add-recipe-row input,.app-shell.kiosk .recipe-search-input{border-color:var(--kiosk-border);background:#fff;box-shadow:none}.app-shell.kiosk button{min-height:48px;border:1px solid var(--kiosk-border);border-radius:8px;background:var(--kiosk-panel);box-shadow:none}.app-shell.kiosk button:hover:not(:disabled){border-color:var(--kiosk-border-strong);background:var(--kiosk-panel-soft)}.app-shell.kiosk button.primary{border-color:#3f766a;background:#3f766a;color:#fff}.app-shell.kiosk button.primary:hover:not(:disabled){background:#35675d}.app-shell.kiosk button.link,.app-shell.kiosk button.ghost,.app-shell.kiosk button.remove,.app-shell.kiosk .checklist .check,.app-shell.kiosk .checklist .remove{border:1px solid var(--kiosk-border);background:var(--kiosk-panel)}.app-shell.kiosk .chores-screen,.app-shell.kiosk .meals-screen,.app-shell.kiosk .lists-screen{overflow-y:auto}.app-shell.kiosk .allowance-bar,.app-shell.kiosk .chore-composer,.app-shell.kiosk .meal-week-nav,.app-shell.kiosk .recipes>.seg,.app-shell.kiosk .recipe-search,.app-shell.kiosk .add-recipe,.app-shell.kiosk .lists-rail,.app-shell.kiosk .list-pane{border:1px solid var(--kiosk-border);border-radius:8px;background:var(--kiosk-panel);box-shadow:var(--kiosk-shadow)}.app-shell.kiosk .allowance-bar,.app-shell.kiosk .chore-composer,.app-shell.kiosk .add-recipe,.app-shell.kiosk .recipe-search,.app-shell.kiosk .list-pane{padding:18px}.app-shell.kiosk .allowance-bar{margin-bottom:18px}.app-shell.kiosk .chore-composer{margin:0 0 18px}.app-shell.kiosk .chore-composer .quickadd-row{align-items:stretch}.app-shell.kiosk .chore-composer-opts{margin-top:14px}.app-shell.kiosk .chore-list{gap:12px}.app-shell.kiosk .chore-row{padding:16px 18px;border-color:var(--kiosk-border);border-radius:8px;background:var(--kiosk-panel);box-shadow:none}.app-shell.kiosk .chore-title{font-weight:720}.app-shell.kiosk .chore-sub{color:var(--kiosk-ink-muted)}.app-shell.kiosk .chore-assignee-static{width:38px;display:grid;place-items:center}.app-shell.kiosk .avatar.placeholder{width:34px;height:34px;background:#dde5e0;color:var(--kiosk-ink-muted)}.app-shell.kiosk .allowance-head:disabled{opacity:1;cursor:default}.app-shell.kiosk .meal-plan{min-height:100%}.app-shell.kiosk .meal-week-nav{margin-bottom:18px;padding:12px 14px}.app-shell.kiosk .meal-week-nav .cal-arrows strong{min-width:160px}.app-shell.kiosk .meal-days{display:grid;grid-template-columns:repeat(7,minmax(148px,1fr));gap:12px;align-items:stretch}.app-shell.kiosk .meal-day{min-height:300px;padding:14px;border:1px solid var(--kiosk-border);border-radius:8px;background:var(--kiosk-panel);box-shadow:none}.app-shell.kiosk .meal-day.today{border-color:#e4ad7a;background:#fffdf9}.app-shell.kiosk .meal-day-head{gap:10px}.app-shell.kiosk .meal-day-label{font-size:var(--fs-body);font-weight:800;letter-spacing:0}.app-shell.kiosk .meal-add{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#eef3f0}.app-shell.kiosk .meal-empty{width:100%;margin-top:12px;padding:14px;border:1px dashed var(--kiosk-border);border-radius:8px;background:#f8faf8}.app-shell.kiosk .meal-card{margin-top:12px;padding:13px;border:1px solid var(--kiosk-border);border-radius:8px;background:#f8f6f1}.app-shell.kiosk .meal-card-kiosk{width:100%;min-height:74px;text-align:left;cursor:pointer}.app-shell.kiosk .meal-card-kiosk:disabled{opacity:1;cursor:default}.app-shell.kiosk .meal-card-kiosk .meal-card-meta{margin-top:8px}.app-shell.kiosk .recipes>.seg{display:inline-flex;margin-bottom:16px;padding:5px;border-radius:8px}.app-shell.kiosk .recipes>.seg button{border-radius:6px}.app-shell.kiosk .recipe-search{margin-bottom:18px}.app-shell.kiosk .add-recipe{margin-bottom:20px}.app-shell.kiosk .recipe-starting-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;padding:14px;border:1px solid var(--kiosk-border);border-radius:8px;background:var(--kiosk-panel)}.app-shell.kiosk .recipe-starting-filter button{min-width:52px;padding:9px 12px;font-weight:760}.app-shell.kiosk .recipe-starting-filter button.active{border-color:#3f766a;background:var(--kiosk-green);color:var(--kiosk-ink-accent)}.app-shell.kiosk .recipe-section{margin-bottom:22px}.app-shell.kiosk .recipe-section-head{margin:0 0 10px 4px;letter-spacing:0}.app-shell.kiosk .recipe-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.app-shell.kiosk .recipe-card{padding:14px;border-color:var(--kiosk-border);border-radius:8px;background:var(--kiosk-panel);box-shadow:none}.app-shell.kiosk .recipe-card:hover{border-color:var(--kiosk-border-strong);transform:translateY(-1px)}.app-shell.kiosk .recipe-thumb{width:72px;height:72px;border-radius:8px}.app-shell.kiosk .modal.recipe-modal{width:94vw;max-width:94vw;height:94vh;max-height:94vh;padding:28px;border-radius:8px}.app-shell.kiosk .recipe-modal .recipe-hero{height:min(34vh,360px);border-radius:8px}.app-shell.kiosk .recipe-modal .modal-head h2{font-size:var(--fs-display);line-height:1.08}.app-shell.kiosk .recipe-modal .recipe-sub{margin-top:22px;font-size:var(--fs-title)}.app-shell.kiosk .recipe-modal .recipe-ings,.app-shell.kiosk .recipe-modal .recipe-steps{font-size:var(--fs-body);line-height:1.45}.app-shell.kiosk .lists-layout{min-height:calc(100dvh - var(--kiosk-head-h) - var(--kiosk-nav-h) - 50px);align-items:stretch;gap:18px}.app-shell.kiosk .lists-rail{width:270px;padding:16px 12px}.app-shell.kiosk .list-tab{padding:13px 14px;border-radius:8px}.app-shell.kiosk .list-tab.active{border-color:var(--kiosk-border-strong);background:var(--kiosk-panel-soft);box-shadow:none}.app-shell.kiosk .lists-new{padding:0 4px 4px}.app-shell.kiosk .list-detail{display:flex;min-width:0}.app-shell.kiosk .list-pane{width:100%;overflow-y:auto}.app-shell.kiosk .quickadd{margin-top:0}.app-shell.kiosk .staples{margin-bottom:22px}.app-shell.kiosk .staple{border-color:var(--kiosk-border);background:#fff}.app-shell.kiosk .aisle{margin-bottom:22px}.app-shell.kiosk .checklist{gap:6px}.app-shell.kiosk .checklist li{padding:13px 14px;border-radius:8px;background:#f8faf8}.app-shell.kiosk .checklist li:hover{background:var(--kiosk-panel-soft)}.app-shell.kiosk .checklist .check{font-size:var(--fs-title)}.app-shell.kiosk .checklist .remove{opacity:.52}.kiosk-weather{display:flex;flex-direction:column;gap:14px}.kw-top{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.kw-location{margin:0 0 10px;color:var(--kiosk-ink-muted);font-size:var(--fs-meta);font-weight:760}.kw-now-row{display:flex;align-items:center;gap:20px}.kw-now-icon{font-size:76px;line-height:1}.kw-now-temp{display:flex;align-items:flex-start;gap:6px}.kw-now-temp strong{color:var(--kiosk-ink);font-size:92px;font-weight:780;line-height:.94;letter-spacing:-2px;font-variant-numeric:tabular-nums}.kw-now-unit{padding-top:6px;color:var(--kiosk-ink-muted);font-size:var(--fs-title);font-weight:700}.kw-now-details{margin:0 0 0 12px;display:flex;flex-direction:column;gap:4px}.kw-now-details div{display:flex;gap:6px;white-space:nowrap}.kw-now-details dt{color:var(--kiosk-ink-muted);font-size:var(--fs-meta);font-weight:650}.kw-now-details dd{margin:0;color:var(--kiosk-ink-soft);font-size:var(--fs-meta);font-weight:760;font-variant-numeric:tabular-nums}.kw-masthead{flex:0 0 auto;text-align:right}.kw-masthead h1{margin:0;color:var(--kiosk-ink);font-size:var(--fs-display);font-weight:800;line-height:1.05}.kw-masthead p{margin:2px 0 0;color:var(--kiosk-ink-muted);font-size:var(--fs-body);font-weight:650}.kw-tabs-row{flex:0 0 auto;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-bottom:1px solid var(--kiosk-border)}.kw-tabs{display:flex;gap:28px}.kw-mode.seg{flex:0 0 auto;margin-bottom:6px;padding:4px;border:1px solid var(--kiosk-border);border-radius:8px;background:#fff}.kw-mode.seg button{min-width:88px;padding:8px 14px;border-radius:6px}.app-shell.kiosk .kw-tabs button{padding:8px 2px 10px;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;box-shadow:none;color:var(--kiosk-ink-muted);font-size:var(--fs-body);font-weight:700}.app-shell.kiosk .kw-tabs button:hover{background:transparent;color:var(--kiosk-ink-soft)}.app-shell.kiosk .kw-tabs button.active{border-bottom-color:#f0a93b;color:var(--kiosk-ink)}.kw-chart{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;margin:0}.kw-chart-band{position:relative;flex:1 1 auto;min-height:150px}.kw-chart-band svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.kw-chart-value{position:absolute;transform:translate(-50%,calc(-100% - 8px));color:var(--kiosk-ink-soft);font-size:var(--fs-meta);font-weight:780;font-variant-numeric:tabular-nums}.kw-chart-times{flex:0 0 auto;display:flex;padding-top:8px;border-top:1px solid var(--kiosk-border)}.kw-chart-times time{flex:1 1 0;min-width:0;text-align:center;color:var(--kiosk-ink-muted);font-size:var(--fs-meta);font-weight:650;font-variant-numeric:tabular-nums}.kw-metrics{flex:0 0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kw-metric{min-width:0;padding:12px 16px;border:1px solid var(--kiosk-border);border-radius:12px;background:var(--kiosk-panel)}.kw-metric span,.kw-metric small{display:block;overflow-wrap:anywhere;color:var(--kiosk-ink-muted);font-size:var(--fs-meta)}.kw-metric span{font-weight:760;text-transform:uppercase}.kw-metric strong{display:block;margin-top:2px;color:var(--kiosk-ink);font-size:var(--fs-title);font-weight:800;line-height:1.1}.kw-metric small{margin-top:2px}.kw-days{flex:0 0 auto;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}.app-shell.kiosk .kw-day{min-width:0;display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 8px;border:1px solid transparent;border-radius:12px;background:transparent;box-shadow:none}.app-shell.kiosk .kw-day:hover:not(:disabled){background:var(--kiosk-panel-soft)}.app-shell.kiosk .kw-day.is-active{border-color:var(--kiosk-border);background:var(--kiosk-panel-soft)}.kw-day-name{color:var(--kiosk-ink-soft);font-size:var(--fs-body);font-weight:760}.kw-day-icon{font-size:46px;line-height:1}.kw-day-temps{display:flex;align-items:baseline;gap:8px;font-variant-numeric:tabular-nums}.kw-day-temps strong{color:var(--kiosk-ink);font-size:var(--fs-body);font-weight:800}.kw-day-temps span{color:var(--kiosk-ink-muted);font-size:var(--fs-meta);font-weight:700}.kw-week{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:12px}.app-shell.kiosk .kw-week-day{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:18px 10px;border:1px solid var(--kiosk-border);border-radius:12px;background:var(--kiosk-panel);box-shadow:none;text-align:center}.app-shell.kiosk .kw-week-day:hover:not(:disabled){background:var(--kiosk-panel-soft)}.app-shell.kiosk .kw-week-day.is-active{border-color:var(--kiosk-border-strong);background:var(--kiosk-panel-soft)}.kw-week-head strong{display:block;color:var(--kiosk-ink);font-size:var(--fs-title);font-weight:800;line-height:1.1}.kw-week-head span{color:var(--kiosk-ink-muted);font-size:var(--fs-meta);font-weight:650}.kw-week .kw-day-icon{font-size:56px}.kw-week-label{color:var(--kiosk-ink-soft);font-size:var(--fs-body);font-weight:650;line-height:1.2;overflow-wrap:anywhere}.kw-week-meta{display:flex;flex-direction:column;gap:4px;color:var(--kiosk-ink-muted);font-size:var(--fs-meta);font-weight:650}.kiosk-weather-empty{height:100%;display:grid;place-items:center;color:var(--kiosk-ink-muted);font-size:var(--fs-title);font-weight:650}.kiosk-scroll-buttons{position:fixed;right:24px;top:50%;z-index:55;display:flex;flex-direction:column;gap:10px;transform:translateY(-50%);pointer-events:none}.kiosk-scroll-stack{display:flex;gap:8px;padding:8px;border:1px solid var(--kiosk-border);border-radius:12px;background:#fffffff0;box-shadow:var(--kiosk-shadow);pointer-events:auto}.kiosk-scroll-stack.vertical{flex-direction:column}.kiosk-scroll-stack.horizontal{flex-direction:row}.kiosk-scroll-buttons button{width:58px;height:58px;min-height:58px;display:grid;place-items:center;padding:0;border:1px solid var(--kiosk-border);border-radius:8px;background:var(--kiosk-panel);color:var(--kiosk-ink);font-size:25px;font-weight:800;line-height:1}.kiosk-scroll-buttons button:disabled{opacity:.32;cursor:default}.kiosk-screensaver{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:block;overflow:hidden;background:#0c0f0e;animation:kiosk-ss-in .6s ease both}@keyframes kiosk-ss-in{0%{opacity:0}to{opacity:1}}.kiosk-ss-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:1fr 1fr;gap:2px}.kiosk-ss-grid.single{grid-template-columns:1fr}.kiosk-ss-pane{position:relative;overflow:hidden;background:#0c0f0e}.kiosk-ss-photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;animation:kiosk-ss-photo-in .9s ease both}@keyframes kiosk-ss-photo-in{0%{opacity:0;transform:scale(1.03)}to{opacity:1;transform:scale(1)}}.kiosk-ss-clock{position:absolute;left:40px;bottom:36px;z-index:1;display:flex;flex-direction:column;gap:2px;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.7);pointer-events:none}.kiosk-ss-time{font-size:64px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.kiosk-ss-date{font-size:22px;font-weight:650;opacity:.9}.kiosk-ss-hint{position:absolute;right:40px;bottom:40px;z-index:1;color:#fff;font-size:18px;font-weight:650;opacity:.55;text-shadow:0 2px 18px rgba(0,0,0,.7);pointer-events:none}@media (max-width: 639px){body.kiosk{--kiosk-head-h: 66px;--kiosk-nav-h: 0px;--kiosk-nav-w: 64px}.app-shell.kiosk .main>.screen:not(.kiosk-calendar):not(.kiosk-weather){min-height:calc(100dvh - var(--kiosk-head-h) - var(--kiosk-nav-h));padding:16px}.app-shell.kiosk .screen-upcoming,.kiosk-calendar,.kiosk-weather{height:calc(100dvh - var(--kiosk-nav-h) - var(--kiosk-head-h));max-height:calc(100dvh - var(--kiosk-nav-h) - var(--kiosk-head-h))}.kiosk-calendar,.kiosk-weather{padding:16px 12px 10px;gap:12px}.kiosk-head{grid-template-columns:minmax(0,1fr) auto auto;padding:0 64px 0 16px;gap:12px}.kiosk-head-center{gap:14px}.kiosk-head-family,.kiosk-head-date{font-size:18px}.kiosk-head-time{font-size:15px}.kiosk-head-weather-icon{font-size:28px}.kiosk-head-weather{padding:5px 8px}.kiosk-nav{left:8px;top:8px;bottom:8px;width:calc(var(--kiosk-nav-w) - 16px);gap:8px}.kiosk-nav-item{min-height:50px;padding:8px 4px}.kiosk-nav-icon svg{width:22px;height:22px}.kiosk-cal-controls,.kw-top{align-items:stretch;flex-direction:column-reverse}.kiosk-period-nav>button{width:42px;height:42px}.kiosk-period-label{min-width:7.5em;font-size:15px}.kw-masthead{text-align:left}.kw-now-row{flex-wrap:wrap;gap:12px}.kw-now-icon{font-size:52px}.kw-now-temp strong{font-size:60px;letter-spacing:-1px}.kw-now-details{margin-left:0;flex-basis:100%}.kw-chart-times time:nth-child(2n){visibility:hidden}.kw-tabs-row{flex-direction:column-reverse;align-items:stretch}.kw-mode.seg{align-self:flex-end}.kw-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.kw-days{display:flex;overflow-x:auto;padding-bottom:6px}.kw-day{min-width:96px}.kw-day-icon{font-size:36px}.kw-week{display:flex;overflow-x:auto}.app-shell.kiosk .kw-week-day{min-width:190px}.app-shell.kiosk .meal-days{display:flex;overflow-x:auto;padding-bottom:6px}.app-shell.kiosk .meal-day{min-width:240px;min-height:280px}.app-shell.kiosk .lists-layout{flex-direction:column;min-height:auto}.app-shell.kiosk .lists-rail{width:100%;flex-direction:row;overflow-x:auto}.app-shell.kiosk .lists-rail-head,.app-shell.kiosk .lists-new{display:none}.kiosk-ss-grid{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.kiosk-ss-grid.single{grid-template-rows:1fr}.kiosk-ss-clock{left:20px;bottom:20px}.kiosk-ss-time{font-size:40px}.kiosk-ss-date{font-size:16px}.kiosk-ss-hint{right:20px;bottom:22px;font-size:14px}.kiosk-scroll-buttons{right:12px}.kiosk-scroll-buttons button{width:48px;height:48px;min-height:48px}}@media (min-width: 640px) and (max-width: 1199px){.app-shell.kiosk .meal-days{grid-template-columns:repeat(4,minmax(180px,1fr))}.kw-now-temp strong{font-size:72px}.kw-day-icon{font-size:38px}.kw-week{display:flex;overflow-x:auto}.app-shell.kiosk .kw-week-day{min-width:210px}}.kiosk-links{display:flex;flex-direction:column;gap:18px}.kiosk-links-head h1{margin:0;color:var(--kiosk-ink);font-size:var(--fs-display);font-weight:800;line-height:1.05}.kiosk-links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.kiosk-link-card{display:flex;flex-direction:column;justify-content:center;gap:8px;min-height:132px;padding:20px 22px;border:1px solid var(--kiosk-border);border-radius:10px;background:var(--kiosk-panel);box-shadow:var(--kiosk-shadow);color:var(--kiosk-ink);text-decoration:none;transition:border-color .12s ease,transform .12s ease}.kiosk-link-card:hover{border-color:var(--kiosk-border-strong);transform:translateY(-1px)}.kiosk-link-label{font-size:var(--fs-title);font-weight:800;line-height:1.1;overflow-wrap:anywhere}.kiosk-link-url{color:var(--kiosk-ink-muted);font-size:var(--fs-meta);overflow-wrap:anywhere}.kiosk-links-empty{padding:40px;border:1px dashed var(--kiosk-border-strong);border-radius:10px;background:var(--kiosk-panel);color:var(--kiosk-ink-muted);font-size:var(--fs-body);text-align:center}body[data-theme=high-contrast]{--canvas: #FFFFFF;--surface: #FFFFFF;--ink: #000000;--ink-muted: #1C1C1C;--hairline: #000000;--accent: #8F3413;--accent-hover: #6E260C;--accent-soft: #F2DACE;--now: #C81E00;--rail: #F2F2F2;--hover: #E4E4E4;--focus-ring: rgba(0, 0, 0, .9);--ok: #0A6B2E;--danger: #9A1B10;--danger-soft: #F6D9D5;--shadow: none}body[data-theme=high-contrast] .card,body[data-theme=high-contrast] input,body[data-theme=high-contrast] button{border-width:2px}body[data-theme=high-contrast] :focus-visible{outline:3px solid var(--focus-ring)!important;outline-offset:2px!important}body[data-theme=high-contrast] .muted,body[data-theme=high-contrast] .ink-muted{color:var(--ink-muted)}body[data-theme=mono]{--canvas: #FFFFFF;--surface: #FFFFFF;--ink: #111111;--ink-muted: #5B5B5B;--hairline: #D5D5D5;--accent: #1D1D1D;--accent-hover: #000000;--accent-soft: #ECECEC;--now: #000000;--rail: #F5F5F5;--hover: #EDEDED;--focus-ring: rgba(0, 0, 0, .55);--ok: #3A3A3A;--danger: #2B2B2B;--danger-soft: #E6E6E6;--shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 6px 20px rgba(0, 0, 0, .08)}body[data-theme=mono] .settings-tab.active{background:var(--accent-soft);color:var(--ink)}body[data-theme=photo]{--canvas: transparent;--surface: rgba(255, 255, 255, .74);--ink: #17130F;--ink-muted: #4E463E;--hairline: rgba(120, 108, 96, .28);--accent: #A24E2E;--accent-hover: #8A4023;--accent-soft: rgba(184, 92, 56, .16);--now: #E2563F;--rail: rgba(255, 255, 255, .58);--hover: rgba(255, 255, 255, .5);--focus-ring: rgba(162, 78, 46, .55);--ok: #2F7D52;--danger: #B23B2E;--danger-soft: rgba(178, 59, 46, .16);--shadow: 0 2px 8px rgba(40, 32, 26, .12), 0 12px 40px rgba(40, 32, 26, .18);background-color:#dfe7ee;background-image:var(--photo-bg, none);background-size:cover;background-position:center;background-attachment:fixed;background-repeat:no-repeat}body[data-theme=photo] .app-shell,body[data-theme=photo] .main{background:transparent}body[data-theme=photo] .card,body[data-theme=photo] .sidebar,body[data-theme=photo] .modal,body[data-theme=photo] .seg,body[data-theme=photo] input{-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}body.kiosk[data-theme=high-contrast]{--kiosk-bg: #FFFFFF;--kiosk-panel: #FFFFFF;--kiosk-panel-soft: #F0F0F0;--kiosk-panel-warm: #F0F0F0;--kiosk-border: #000000;--kiosk-border-strong: #000000;--kiosk-blue: #DCEAF0;--kiosk-blue-strong: #0B4A5E;--kiosk-green: #DBECE1;--kiosk-green-strong: #0A5A34;--kiosk-yellow: #F3E4A6;--kiosk-shadow: none;--kiosk-ink: #000000;--kiosk-ink-soft: #000000;--kiosk-ink-muted: #000000;--kiosk-ink-accent: #000000}body.kiosk[data-theme=mono]{--kiosk-bg: #FFFFFF;--kiosk-panel: #FFFFFF;--kiosk-panel-soft: #F2F2F2;--kiosk-panel-warm: #F2F2F2;--kiosk-border: #D5D5D5;--kiosk-border-strong: #B8B8B8;--kiosk-blue: #EAEAEA;--kiosk-blue-strong: #3A3A3A;--kiosk-green: #EAEAEA;--kiosk-green-strong: #3A3A3A;--kiosk-yellow: #E4E4E4;--kiosk-shadow: 0 8px 22px rgba(0, 0, 0, .08);--kiosk-ink: #1A1A1A;--kiosk-ink-soft: #2E2E2E;--kiosk-ink-muted: #5A5A5A;--kiosk-ink-accent: #1A1A1A}body.kiosk[data-theme=photo]{--kiosk-bg: transparent;--kiosk-panel: rgba(255, 255, 255, .78);--kiosk-panel-soft: rgba(255, 255, 255, .62);--kiosk-panel-warm: rgba(255, 255, 255, .62);--kiosk-border: rgba(120, 108, 96, .3);--kiosk-border-strong: rgba(120, 108, 96, .42);--kiosk-shadow: 0 8px 26px rgba(40, 32, 26, .2);--kiosk-ink: #1E1B18;--kiosk-ink-soft: #332E29;--kiosk-ink-muted: #4E463E;--kiosk-ink-accent: #1E1B18}body.kiosk[data-theme=photo] .app-shell.kiosk{background:transparent}body.kiosk[data-theme=photo] .kiosk-head{background:#f7f8f4ad}body.kiosk[data-theme=photo] .kiosk-nav{background:#ffffffad}body.kiosk[data-theme=photo] .kiosk-head,body.kiosk[data-theme=photo] .kiosk-nav{-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}
