@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f3eee4;--card:#fff;--ink:#1c1c1c;--muted:#7a756c;--sage:#8fbc8f;--peach:#f3d6c8;--terracotta:#e07a5f;--periwinkle:#7b8cde;--sun:#f4c430;--line:#e6e0d4;--shadow:0 8px 24px #1c1c1c0f;--radius:20px;color:var(--ink);background:#d9d0c2;font-family:Plus Jakarta Sans,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}button{font:inherit;cursor:pointer}button:active{transform:scale(.98)}.boot-screen{height:100%}.boot-stage{grid-template-columns:1.18fr 1.2fr;gap:16px;padding:20px;display:grid}.boot-scene{background:var(--paper);border-radius:22px;min-width:0;min-height:0;position:relative;overflow:hidden}.boot-art{object-fit:cover;object-position:32% 48%;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.boot-art-fade{pointer-events:none;background:linear-gradient(to right, transparent 40%, var(--paper) 92%), linear-gradient(to top, transparent 72%, color-mix(in srgb, var(--paper) 70%, transparent) 100%), linear-gradient(to bottom, transparent 82%, color-mix(in srgb, var(--paper) 45%, transparent) 100%);position:absolute;inset:0}.boot-card{text-align:center;justify-content:center;place-self:stretch stretch;align-items:center;gap:12px;width:auto;padding:28px 32px}.boot-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:13px;font-weight:700}.boot-mark{background:color-mix(in srgb, var(--sage) 55%, white);color:#234623;border-radius:99px;place-items:center;width:96px;height:96px;animation:1.6s ease-in-out infinite boot-pulse;display:grid;box-shadow:0 10px 24px #50785038}.boot-mark.is-error{background:color-mix(in srgb, var(--terracotta) 55%, white);color:#5c2418;box-shadow:none;animation:none}.boot-card h1{letter-spacing:-.03em;margin:2px 0 0;font-size:28px;font-weight:700}.boot-card p{color:var(--muted);max-width:28ch;margin:0;font-size:18px;line-height:1.4}.boot-card p.boot-error{color:var(--terracotta)}.boot-family{gap:8px;margin-top:4px;display:flex}.boot-dot{border-radius:50%;width:10px;height:10px;animation:1.2s ease-in-out infinite boot-dot}.boot-dot.sage{background:var(--sage)}.boot-dot.terracotta{background:var(--terracotta);animation-delay:.15s}.boot-dot.periwinkle{background:var(--periwinkle);animation-delay:.3s}@keyframes boot-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes boot-dot{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.boot-mark,.boot-dot{animation:none}}.listen-overlay{z-index:30;background:#1c19147a;place-items:center;padding:24px;animation:.32s cubic-bezier(.22,1,.36,1) both listen-veil-in;display:grid;position:fixed;inset:0}.listen-overlay.chip{z-index:50;pointer-events:none;background:0 0;place-items:start end;width:auto;height:auto;padding:0;animation:none;inset:16px 16px auto auto}.listen-overlay.chip .listen-card{pointer-events:auto;background:color-mix(in srgb, var(--paper) 92%, white);box-shadow:var(--shadow);border-radius:999px;flex-direction:row;gap:10px;padding:6px 14px 6px 6px}.listen-overlay.chip .listen-stage{width:52px;height:52px}.listen-overlay.chip .listen-mic{width:44px;height:44px;box-shadow:0 6px 16px #50785047, 0 0 0 3px color-mix(in srgb, var(--sage) 28%, transparent)}.listen-overlay.chip .listen-halo{width:52px;height:52px}.listen-overlay.chip .listen-ring{display:none}.listen-overlay.chip .listen-status{color:var(--ink);text-shadow:none;margin:0;font-size:15px}.listen-overlay.leaving{animation:.24s ease-in both listen-veil-out}.listen-card{flex-direction:column;align-items:center;animation:.38s cubic-bezier(.22,1,.36,1) both listen-stage-in;display:flex}.listen-overlay.leaving .listen-card{animation:.22s ease-in both listen-stage-out}.listen-stage{--level:.32;place-items:center;width:min(72vmin,400px);height:min(72vmin,400px);display:grid;position:relative}.listen-ring,.listen-halo,.listen-mic{grid-area:1/1;place-self:center}.listen-ring{border:3px solid color-mix(in srgb, var(--sage) 88%, white);width:34%;height:34%;box-shadow:0 0 18px color-mix(in srgb, var(--sage) 45%, transparent);opacity:0;pointer-events:none;border-radius:50%;animation:2.2s ease-out infinite listen-bloom}.listen-ring:first-child{animation-delay:0s}.listen-ring:nth-child(2){animation-delay:.72s}.listen-ring:nth-child(3){animation-delay:1.44s}.listen-overlay.connecting .listen-ring{border-style:dashed;animation-duration:3s}.listen-overlay.error .listen-mic{background:color-mix(in srgb, var(--terracotta) 58%, white);color:#5c2418;box-shadow:0 14px 36px #5c241838, 0 0 0 6px color-mix(in srgb, var(--terracotta) 24%, transparent);animation:none}.listen-overlay.error .listen-halo{background:color-mix(in srgb, var(--terracotta) 28%, transparent)}.listen-halo{background:color-mix(in srgb, var(--sage) 32%, transparent);width:168px;height:168px;transform:scale(calc(1 + var(--level) * .42));pointer-events:none;border-radius:50%;transition:transform 90ms linear,background .18s}.listen-overlay.speaking .listen-halo{background:color-mix(in srgb, var(--peach) 40%, var(--sage))}.listen-mic{background:color-mix(in srgb, var(--sage) 62%, white);color:#234623;width:132px;height:132px;box-shadow:0 14px 36px #5078504d, 0 0 0 6px color-mix(in srgb, var(--sage) 28%, transparent);z-index:1;border:0;border-radius:50%;place-items:center;animation:1.6s ease-in-out infinite listen-breathe;display:grid}.listen-mic:focus-visible{outline-offset:6px;outline:3px solid #f3eee4}.listen-status{color:#f3eee4;letter-spacing:.01em;text-align:center;text-shadow:0 2px 14px #1c19148c;margin:8px 0 0;font-size:22px;font-weight:600}.listen-hint{color:#f3eee4ad;text-align:center;text-shadow:0 1px 10px #1c191480;margin:4px 0 0;font-size:16px;font-weight:500}@keyframes listen-veil-in{0%{opacity:0}to{opacity:1}}@keyframes listen-veil-out{0%{opacity:1}to{opacity:0}}@keyframes listen-stage-in{0%{opacity:0;transform:translateY(12px)scale(.86)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes listen-stage-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.92)}}@keyframes listen-bloom{0%{transform:scale(calc(.95 + var(--level) * .12));opacity:calc(.5 + var(--level) * .35)}to{transform:scale(calc(2.3 + var(--level) * .45));opacity:0}}@keyframes listen-breathe{0%,to{box-shadow:0 14px 36px #5078504d, 0 0 0 6px color-mix(in srgb, var(--sage) 28%, transparent)}50%{box-shadow:0 18px 40px #5078505c, 0 0 0 14px color-mix(in srgb, var(--sage) 8%, transparent)}}@media (prefers-reduced-motion:reduce){.listen-overlay,.listen-card,.listen-ring,.listen-halo,.listen-mic{transition:none!important;animation:none!important}.listen-ring{opacity:.38}.listen-ring:first-child{transform:scale(1.15)}.listen-ring:nth-child(2){transform:scale(1.55)}.listen-ring:nth-child(3){transform:scale(1.95)}}@media (width<=480px){.listen-mic{width:112px;height:112px}.listen-halo{width:144px;height:144px}}.talk{flex-direction:column;flex-shrink:0;justify-self:center;align-items:center;min-width:min-content;display:flex;overflow:visible}.talk-btn{background:color-mix(in srgb, var(--sage) 55%, white);color:#234623;border:0;border-radius:99px;flex-shrink:0;place-items:center;display:grid;box-shadow:0 10px 24px #50785038}.talk-hub{margin:auto 0}.talk-hub .talk-btn{width:120px;height:120px}.talk-companion .talk-btn{width:96px;height:96px}.talk-sticky{z-index:12;position:fixed;bottom:84px;right:16px}.talk-sticky .talk-btn{width:88px;height:88px;box-shadow:0 12px 28px #50785047}.talk-label{color:var(--muted);text-align:center;margin:6px 0 4px;font-size:15px;font-weight:600}.talk.connecting .talk-btn{outline:3px dashed var(--sage);outline-offset:4px}.talk.active .talk-btn{box-shadow:0 0 0 4px var(--sage), 0 10px 24px #50785038;animation:1.4s ease-in-out infinite talk-pulse}.talk.active.speaking .talk-btn{box-shadow:0 0 0 4px color-mix(in srgb, var(--sage) 55%, white), 0 10px 24px #50785038;animation:1.8s ease-in-out infinite talk-pulse-soft}.talk.error .talk-btn{background:color-mix(in srgb, var(--terracotta) 55%, white);color:#5c2418}.talk-btn:focus-visible{outline:3px solid var(--sage);outline-offset:4px}@keyframes talk-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes talk-pulse-soft{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.companion{background:var(--paper);height:100%;color:var(--ink);display:grid;overflow:auto}.companion.laptop,.companion.mobile{grid-template-columns:1fr}.c-nav-btn{min-height:48px;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:14px;align-items:center;gap:10px;padding:0 12px;font-size:16px;font-weight:600;display:flex}.c-nav-btn.on{background:color-mix(in srgb, var(--sage) 28%, white);color:var(--ink)}.companion-main{min-width:0;padding:24px 28px 40px;container-type:inline-size}.c-top{justify-content:space-between;align-items:end;gap:16px;margin-bottom:20px;display:flex}.c-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:700}.c-household{letter-spacing:-.03em;margin:4px 0 0;font-size:28px}.c-members{margin-top:10px}.c-top-meta{text-align:right}.c-top-time{letter-spacing:-.03em;font-size:28px;font-weight:700}.c-top-date,.c-top-weather{color:var(--muted);font-size:15px;font-weight:500}.c-forecast{color:var(--muted);justify-content:flex-end;gap:10px;margin-top:4px;font-size:13px;font-weight:600;display:flex}.c-weather-hint{max-width:280px;color:var(--terracotta);margin-top:6px;margin-left:auto;font-size:13px;font-weight:600;line-height:1.3}.c-banner{margin:0 0 16px}.companion-grid{align-items:start;gap:16px;display:grid}@container (width>=560px){.companion-grid{grid-template-columns:minmax(260px,.9fr) minmax(0,1.15fr)}}.c-col,.c-stack,.c-mobile-body{flex-direction:column;gap:16px;display:flex}.c-card{background:var(--card);box-shadow:var(--shadow);border-radius:22px;min-width:0;padding:18px 20px;overflow:visible}.c-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.c-head .c-title{flex:1}.c-title{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:700}.c-sub{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px;font-size:13px;font-weight:700}.c-insight{margin:8px 0 12px;font-size:17px;font-weight:600;line-height:1.35}.c-chips{flex-direction:column;gap:8px;display:flex}.c-chips.wrap{flex-flow:wrap}.c-chip{background:var(--paper);border:0;border-radius:999px;min-height:40px;padding:8px 14px;font-size:14px;font-weight:600}.c-chip.on,.c-chip.ready{background:color-mix(in srgb, var(--sage) 40%, white)}.c-empty{color:var(--muted);margin:0;font-size:16px;line-height:1.4}.c-tools{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.c-tool{background:var(--paper);border-radius:14px;padding:10px 12px}.c-tool-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.c-tool-name{font-family:ui-monospace,Cascadia Mono,monospace;font-size:14px;font-weight:700}.c-tool-when{color:var(--muted);font-size:13px}.c-tool-result{margin:4px 0 0;font-size:15px;line-height:1.35}.c-week{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px;display:grid}.c-card .week-nav{margin:4px 0 8px}.c-card .week{margin-bottom:12px}.c-agenda,.c-rows,.c-groups{flex-direction:column;gap:6px;display:flex}.c-event{background:color-mix(in srgb, var(--peach) 55%, white);border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.c-event-title{font-size:16px;font-weight:700}.c-event-meta,.c-prep{color:#6b5348;margin-top:2px;font-size:14px}.c-event-clash{color:#b45b45;margin-top:2px;font-size:13px;font-weight:600}.c-activity{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.c-activity-row{align-items:baseline;gap:8px;font-size:15px;line-height:1.35;display:flex}.c-activity-actor{flex:none;font-weight:700}.c-activity-action{color:var(--muted)}.c-event-side{flex-direction:column;align-items:end;gap:6px;display:flex}.c-form{flex-direction:column;gap:12px;display:flex;container-type:inline-size}.c-form-row{grid-template-columns:1fr;gap:10px;display:grid}.c-form-row-2{grid-template-columns:1fr 1fr}@container (width>=420px){.c-form-row{grid-template-columns:repeat(3,minmax(0,1fr))}.c-form-row-2{grid-template-columns:1fr 1fr}}.c-people{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.c-person{flex-direction:column;gap:4px;display:flex}.c-person-id{align-items:center;gap:8px;font-size:15px;line-height:1.35;display:flex}.c-person-edit{grid-template-columns:56px minmax(0,1fr) auto;align-items:end;gap:6px;display:grid}.c-person-edit input{min-height:36px;font-size:14px}.c-person-save{border-radius:10px;min-width:56px;min-height:36px;padding:0 10px;font-size:13px}.c-field{color:var(--muted);border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;font-size:14px;font-weight:600;display:flex}.c-field legend{color:var(--muted);margin-bottom:6px;font-size:14px;font-weight:600}.c-field input,.c-field select{border:1px solid var(--line);min-height:48px;font:inherit;color:var(--ink);background:var(--paper);border-radius:12px;width:100%;padding:0 12px}.c-form-msg{color:var(--muted);margin:0;font-size:15px}.c-row{grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:4px;min-height:52px;display:grid}.c-row.done .row-title,.c-row.done .row-due{color:var(--muted)}.c-toggle,.c-text-btn{color:var(--muted);background:0 0;border:0;min-height:40px;padding:4px 0;font-size:14px;font-weight:600}.c-group{flex-direction:column;gap:2px;padding-top:8px;display:flex}.c-group-head{align-items:center;gap:8px;margin-bottom:4px;font-size:15px;font-weight:700;display:flex}.c-high{background:var(--peach);color:#6b5348;vertical-align:middle;border-radius:999px;margin-right:8px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.c-reassign select{border:1px solid var(--line);min-width:118px;min-height:44px;font:inherit;background:var(--paper);color:var(--ink);border-radius:12px;padding:0 8px;font-size:14px;font-weight:600}.c-note{background:var(--paper);border-radius:14px;flex-direction:column;gap:8px;margin-bottom:10px;padding:12px;font-size:15px;display:flex}.c-note.warn{background:color-mix(in srgb, var(--peach) 70%, white)}.c-note p{margin:0}.c-inv{flex-direction:column;gap:8px;display:flex}.c-inv-row{border-bottom:1px solid var(--line);justify-content:space-between;padding:8px 0;font-size:16px;font-weight:600;display:flex}.avatar.muted{background:var(--muted)}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.c-transcript{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.c-line{background:var(--muted-fill,#f6f1e8);border-radius:12px;margin:0;padding:8px 10px;font-size:15px;line-height:1.35}.c-line.assistant{background:color-mix(in srgb, var(--sage) 18%, white)}.c-line-who{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-size:11px;font-weight:700;display:block}.c-tabbar{z-index:11;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--paper) 88%, white);border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:4px;display:grid;position:fixed;bottom:0;left:0;right:0}.c-nav-btn:focus-visible,.c-chip:focus-visible,.c-toggle:focus-visible,.c-text-btn:focus-visible,.c-reassign select:focus-visible,.c-field input:focus-visible,.c-field select:focus-visible{outline:3px solid var(--sage);outline-offset:2px}.c-tabbar .c-nav-btn{flex-direction:column;justify-content:center;gap:2px;min-height:56px;padding:6px 4px;font-size:12px}.companion.mobile .companion-main{padding:16px 16px 180px}.companion.mobile .c-household{font-size:22px}.companion.mobile .c-form-row{grid-template-columns:1fr}.companion.mobile .c-top{align-items:start}@media (width<=520px){.c-event{flex-direction:column;align-items:start}.c-event-side{align-items:start}.c-row{grid-template-columns:48px minmax(0,1fr)}.c-reassign{grid-column:2;margin:0 0 8px}}.frame{place-items:center;height:100%;padding:16px;display:grid;overflow:hidden}.frame.ambient .stage-wrap:after{content:"";pointer-events:none;z-index:8;border-radius:inherit;background:#1c19144d;position:absolute;inset:0}.frame.ambient .list .row:not(:first-child),.frame.ambient .more{display:none}.frame.ambient .todo-art{opacity:.55}.stage-wrap{aspect-ratio:16/9;width:min(100%,177.778dvh - 56.8889px);max-height:calc(100dvh - 32px);box-shadow:var(--shadow);background:var(--paper);border-radius:28px;position:relative;overflow:hidden;container-type:inline-size}.stage{transform-origin:0 0;background:var(--paper);grid-template:"todo cluster weather assistant"1.06fr"todo reminders shopping family"1fr/1.18fr 1.62fr .76fr .9fr;gap:16px;width:1440px;height:810px;padding:20px;display:grid;position:absolute;inset:0}.card{background:var(--card);box-shadow:var(--shadow);border-radius:22px;flex-direction:column;min-width:0;min-height:0;padding:18px 20px;display:flex;position:relative;overflow:hidden}.todo{grid-area:todo;padding-bottom:0}.todo:after{content:"";pointer-events:none;background:linear-gradient(to top left,#efe8dc 55%,#0000);width:150px;height:44px;position:absolute;bottom:0;right:0}.cluster{grid-area:cluster;grid-template-columns:1.05fr 1.2fr;gap:8px 16px;padding:20px 22px;display:grid}.weather{grid-area:weather}.assistant{text-align:center;z-index:1;grid-area:assistant;align-items:center;overflow:hidden}.reminders{grid-area:reminders}.shopping{grid-area:shopping}.family{grid-area:family}.card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.card-head-left{color:var(--ink);align-items:center;gap:8px;min-width:0;display:flex}.card-title{letter-spacing:-.02em;white-space:nowrap;margin:0;font-size:22px;font-weight:700}.cal-title{margin-bottom:6px}.week-nav{justify-content:space-between;align-items:center;gap:8px;width:100%;min-width:0;margin:0 0 8px;display:flex}.week-btn{background:color-mix(in srgb, var(--sage) 28%, white);width:36px;min-width:36px;height:36px;color:var(--ink);border:0;border-radius:10px;flex-shrink:0;place-items:center;padding:0;display:grid}.week-range{text-align:center;min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:15px;font-weight:600;overflow:hidden}.badge{background:color-mix(in srgb, var(--sage) 42%, white);color:#2f5c2f;border-radius:99px;place-items:center;min-width:28px;height:28px;padding:0 8px;font-size:14px;font-weight:700;display:grid}.list{flex-direction:column;flex:1;gap:4px;display:flex;overflow:hidden}.row{grid-template-columns:48px 1fr;align-items:center;gap:2px;min-height:52px;display:grid}.row.family-row{grid-template-columns:48px 28px 1fr;gap:8px}.row.reminder{grid-template-columns:48px 1fr 44px;gap:4px}.row.done .row-title,.row.done .row-due{color:var(--muted)}.row-remove{width:44px;height:44px;color:var(--muted);background:0 0;border:0;border-radius:12px;place-items:center;padding:0;display:grid}.row-body{min-width:0}.row-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:17px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.row-due{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:15px;overflow:hidden}.row-due.overdue{color:var(--terracotta)}.check{background:0 0;border:0;flex-shrink:0;place-items:center;width:48px;height:48px;padding:0;display:grid}.check-mark{width:24px;height:24px;color:var(--ink);border:2px solid #d4cdc0;border-radius:99px;place-items:center;display:grid}.check.on .check-mark{background:var(--sage);border-color:var(--sage);color:#fff}.icon-well{border:0;border-radius:99px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.icon-well.sky{color:#4d6fa8;background:#d7e4f7}.icon-well.peach{background:var(--peach);color:var(--terracotta)}.icon-well.sage{background:color-mix(in srgb, var(--sage) 40%, white);color:#3f6b3f}.more{color:var(--muted);text-align:left;background:0 0;border:0;border-radius:10px;width:fit-content;min-height:36px;padding:6px 8px 4px 48px;font-size:15px;font-weight:600}.more:hover,.more:focus-visible{color:var(--ink)}.list.expanded{overflow:auto}.todo.expanded .todo-art{display:none}.row.shop .shop-body{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.row.shop .row-title{-webkit-line-clamp:unset;flex:1;-webkit-box-orient:unset;white-space:nowrap;text-overflow:ellipsis;min-width:0;display:block}.row-qty{color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:15px;font-weight:600}.row.done .row-qty{color:var(--muted)}.todo-art{object-fit:cover;object-position:30% 42%;transform-origin:20% 40%;pointer-events:none;width:calc(100% + 40px);height:260px;margin:8px 0 0 -20px;display:block;transform:scale(1.22);-webkit-mask-image:linear-gradient(#0000,#000 36px);mask-image:linear-gradient(#0000,#000 36px)}.clock-col{flex-direction:column;min-width:0;display:flex}.clock-time{letter-spacing:-.04em;white-space:nowrap;align-items:baseline;gap:8px;font-size:64px;font-weight:700;line-height:.95;display:flex}.clock-ampm{letter-spacing:0;font-size:22px;font-weight:700}.clock-date{color:var(--muted);margin-top:8px;font-size:20px;font-weight:500}.cal-col{flex-direction:column;min-width:0;display:flex}.week{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.day{text-align:center;color:inherit;background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:52px;padding:6px 0 8px;display:flex}.day.today{background:color-mix(in srgb, var(--sage) 38%, white)}.day.selected:not(.today){background:color-mix(in srgb, var(--peach) 55%, white)}.day-name{color:var(--muted);letter-spacing:.02em;font-size:11px;font-weight:600}.day-num{margin-top:2px;font-size:16px;font-weight:700}.dot{background:var(--terracotta);border-radius:99px;width:6px;height:6px;margin:5px auto 0}.dot.off{background:0 0}.event-chip{background:var(--peach);border-radius:16px;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:auto;padding:12px 14px;display:grid}.event-chip.empty{background:color-mix(in srgb, var(--paper) 80%, white);grid-template-columns:minmax(0,1fr)}.event-chip.empty .event-title,.event-chip.empty .event-meta{color:var(--muted)}.event-more{color:#6b5348;margin-top:2px;font-size:13px;font-weight:600}.event-icon{background:color-mix(in srgb, var(--peach) 40%, white);color:#b45b45;border-radius:99px;place-items:center;width:32px;height:32px;display:grid}.event-text{min-width:0}.event-title{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700;line-height:1.2;overflow:hidden}.event-meta{color:#6b5348;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:14px;overflow:hidden}.event-clash{color:color-mix(in srgb, #6b5348 55%, var(--muted));white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:13px;font-weight:600;overflow:hidden}.event-prep{color:#6b5348;white-space:nowrap;font-size:14px;font-weight:700}.avatars{gap:4px;display:flex}.avatar{color:#fff;border-radius:99px;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:grid}.weather-icon{color:var(--sun);margin:10px 0 6px}.weather-icon.wet{color:#6a8aaa}.weather-temp{letter-spacing:-.03em;font-size:44px;font-weight:700;line-height:1}.weather-cond{color:var(--muted);margin-top:8px;font-size:16px}.weather-city{color:var(--muted);align-items:center;gap:4px;margin-top:auto;font-size:15px;display:flex}.insight{text-align:center;margin:4px 0 0;font-size:15px;font-weight:600;line-height:1.3}.chips{flex-direction:row;flex-shrink:0;gap:6px;width:100%;margin-top:2px;display:flex}.chip{background:var(--paper);border:0;border-radius:999px;flex:1;min-width:0;min-height:32px;padding:6px 8px;font-size:12px;font-weight:600}.chip.ready{background:var(--peach);place-items:center;display:grid}.chip:disabled{opacity:.55}.assist-note{color:var(--muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:100%;margin:4px 0 0;font-size:11px;font-weight:600;line-height:1.2;overflow:hidden}.assist-note.error{color:#8a3a2a}.check:focus-visible,.chip:focus-visible,.icon-well:focus-visible,.more:focus-visible,.btn:focus-visible,.settings-btn:focus-visible{outline:3px solid var(--sage);outline-offset:2px}.status{color:var(--muted);text-align:center;margin-top:8px;font-size:14px}.settings-btn{background:color-mix(in srgb, var(--sage) 28%, white);width:44px;height:44px;color:var(--ink);border:0;border-radius:12px;place-items:center;margin-top:auto;display:grid}.overlay{z-index:40;background:#1c1c1c59;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.sheet{background:var(--card);width:min(720px,100%);max-height:min(80vh,720px);box-shadow:var(--shadow);border-radius:24px;flex-direction:column;gap:12px;padding:24px;display:flex}.sheet h2{margin:0;font-size:24px}.prompt{color:var(--ink);margin:0;font-size:18px}.explain{color:var(--muted);max-height:4.2em;margin:0;font-size:16px;line-height:1.35;overflow:hidden}.sheet-list{flex-direction:column;gap:8px;display:flex;overflow:auto}.plan-row{grid-template-columns:28px 1fr auto;align-items:center;gap:10px;font-size:18px;display:grid}.plan-due{color:var(--muted);align-items:center;gap:8px;font-size:16px;display:flex}.conflict{color:var(--terracotta);font-size:16px}.sheet-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;display:grid}.sheet.sheet-settings{border-radius:22px;gap:10px;width:min(880px,100%);max-height:min(86vh,720px);padding:16px 18px 18px}.sheet-settings-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet.sheet-settings h2{letter-spacing:-.02em;font-size:18px}.sheet.sheet-settings .c-title{font-size:16px}.settings-close{background:var(--paper);width:36px;height:36px;color:var(--ink);border:0;border-radius:12px;place-items:center;display:grid}.sheet-settings-grid{grid-template-columns:1fr 1fr;align-items:start;gap:12px;min-height:0;display:grid;overflow:auto}.sheet-settings .c-card{box-shadow:none;background:var(--paper);padding:12px 14px}.sheet-settings .c-title{font-size:16px}.sheet-settings .c-head{margin-bottom:6px}.sheet-settings .c-activity-actor,.sheet-settings .c-person-id{font-size:14px}.sheet-settings .c-activity-action{font-size:12px}.sheet-settings .c-field{gap:3px;font-size:11px}.sheet-settings .c-field input,.sheet-settings .c-field select{border-radius:10px;min-height:32px;padding:0 8px;font-size:13px}.sheet-settings .c-person-edit .c-field-label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.sheet-settings .c-person-edit .c-field{gap:0}.sheet-settings .c-form,.sheet-settings .c-people{gap:6px}.sheet-settings .c-person{gap:2px}.sheet-settings .btn{border-radius:12px;min-height:36px;font-size:14px}.sheet-settings .btn.c-person-save{min-width:52px;min-height:32px;font-size:13px}.sheet-settings .sheet-actions .btn{min-height:40px}.sheet-settings .c-activity,.sheet-settings .c-activity-row{font-size:13px}.btn{border:0;border-radius:16px;min-height:56px;font-size:18px;font-weight:600}.btn.approve{background:var(--sage)}.btn.dismiss{background:var(--paper)}.error{color:var(--terracotta);font-size:16px}
