:root{color:#24231f;background:#f2efe7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}.app-shell--account{--account-bg: #fbf8ff;--account-surface: #fff;--account-surface-low: #f4f2ff;--account-surface-high: #e8e6fa;--account-outline: #c4c5d7;--account-ink: #191a28;--account-muted: #444655;--account-primary: #2346d5;width:100%;min-height:100dvh;margin:0;display:block;overflow:visible;border:0;border-radius:0;color:var(--account-ink);background:var(--account-bg);box-shadow:none}.app-shell--account>.app-header,.app-shell--account>.app-navigation,.app-shell--account>.app-footer{display:none}.app-shell--account>.app-content{width:100%;padding:0}.account-page{position:relative;width:min(390px,100%);min-height:100dvh;margin:0 auto;padding-bottom:calc(176px + env(safe-area-inset-bottom));overflow-x:clip;color:var(--account-ink);background:var(--account-bg);box-shadow:0 0 32px #191a280f;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.account-header{position:sticky;z-index:20;top:0;padding:30px 20px 18px;background:#fbf8fff5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.account-header__topline,.account-header__identity,.account-card__title-row,.account-sheet__header,.account-sheet__actions,.account-notification-card__actions{display:flex;align-items:center}.account-header__topline,.account-card__title-row,.account-sheet__header{justify-content:space-between}.account-header__topline{align-items:flex-start;gap:12px}.account-header__identity{flex:0 0 auto;gap:8px}.account-eyebrow{margin:0 0 4px;color:var(--account-primary);font-size:.72rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.account-header h1{margin:0;font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1.65rem,7vw,1.9rem);line-height:1.18;letter-spacing:-.025em}.account-header>p{margin:12px 0 0;color:var(--account-muted);font-size:.88rem;line-height:1.45}.account-avatar{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;border-radius:50%;font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:.95rem;font-weight:750}.account-avatar--primary{color:#fff;background:var(--account-primary)}.account-signout{min-width:44px;min-height:44px;padding:8px;border:0;color:var(--account-muted);background:transparent;font-size:.78rem;font-weight:700;cursor:pointer}.account-content{display:flex;flex-direction:column;gap:24px;padding:16px 20px 0}.account-card,.account-notification-banner,.account-state-card{border:1px solid var(--account-outline);border-radius:12px;background:var(--account-surface);box-shadow:0 2px 9px #191a280a}.account-card{display:flex;flex-direction:column;gap:16px;padding:20px}.account-card hr{width:100%;margin:0;border:0;border-top:1px solid rgba(196,197,215,.55)}.account-card__heading,.account-profile-card__person,.account-couple-card__people,.account-notification-banner>div,.account-reminder-rules>div,.account-couple-details>div,.account-permission-dialog__header{display:flex;align-items:flex-start;gap:14px}.account-card__heading>div:last-child{min-width:0;flex:1}.account-card__icon,.account-state-card__icon,.account-reminder-rules>div>span,.account-couple-details>div>span,.account-notification-banner>div>span,.account-permission-dialog__header>span{display:grid;width:44px;height:44px;flex:0 0 44px;place-items:center;border-radius:50%;color:var(--account-primary);background:var(--account-surface-low)}.account-card h2,.account-notification-banner h2,.account-sheet h2,.account-permission-dialog h2,.account-state-card h2{margin:0;color:var(--account-ink);font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:1rem;line-height:1.35}.account-card p,.account-card span,.account-notification-banner p,.account-state-card p{color:var(--account-muted)}.account-card p,.account-notification-banner p{margin:4px 0 0;font-size:.85rem;line-height:1.45}.account-status{flex:0 0 auto;min-height:26px;padding:5px 8px;border-radius:6px;font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.account-status--success,.account-status--permitted{color:#137333!important;background:#e6f4ea}.account-status--blocked,.account-status--not_granted{color:#8a5d00!important;background:#fff3cd}.account-status--loading,.account-status--unsupported,.account-status--neutral{color:var(--account-muted)!important;background:var(--account-surface-low)}.account-profile-card__person,.account-couple-card__people{align-items:center}.account-profile-card__person>div,.account-couple-card__people>div:last-child{display:flex;min-width:0;flex-direction:column;gap:2px}.account-profile-card__person strong,.account-couple-card__people strong{color:var(--account-ink);font-size:.96rem}.account-profile-card__person span,.account-profile-card__person small,.account-couple-card__people span{overflow-wrap:anywhere;font-size:.78rem;line-height:1.4}.account-couple-card__avatars{position:relative;width:68px;height:48px;flex:0 0 68px}.account-couple-card__avatars span{position:absolute;top:0;display:grid;width:48px;height:48px;place-items:center;border:2px solid #fff;border-radius:50%;color:#fff;background:var(--account-primary);font-size:.75rem;font-weight:800}.account-couple-card__avatars span:last-child{left:24px;background:#20884b}.account-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:11px 18px;border:0;border-radius:10px;font-weight:750;cursor:pointer}.account-button:disabled,.account-signout:disabled{opacity:.56;cursor:wait}.account-button--soft,.account-button--quiet{color:var(--account-primary);background:var(--account-surface-low)}.account-button--primary{color:#fff;background:var(--account-primary)}.account-button--warning{width:100%;color:#fff;background:#9b6900}.account-notification-banner{display:flex;flex-direction:column;gap:12px;padding:16px;border-color:#ffe69c;background:#fff3cd}.account-notification-banner>div>span{color:#9b6900;background:#fff}.account-reminder-rules,.account-couple-details{display:flex;flex-direction:column;gap:0}.account-reminder-rules>div,.account-couple-details>div{padding:14px 0;border-bottom:1px solid rgba(196,197,215,.45)}.account-reminder-rules>div:last-child,.account-couple-details>div:last-child{border-bottom:0}.account-reminder-rules>div>span,.account-couple-details>div>span{width:40px;height:40px;flex-basis:40px}.account-reminder-rules p,.account-couple-details p{display:flex;margin:0;flex-direction:column;gap:3px}.account-reminder-rules strong,.account-couple-details strong{color:var(--account-ink)}.account-notification-card__privacy,.account-notification-card__note,.account-sheet__note,.account-permission-dialog__callout{padding:14px;border-radius:10px;background:var(--account-surface-low);font-size:.8rem!important;line-height:1.45}.account-notification-card__actions,.account-sheet__actions{justify-content:flex-end;flex-wrap:wrap;gap:10px}.account-feedback{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-left:4px solid #137333;border-radius:8px;color:#164f2a;background:#e6f4ea;font-size:.82rem}.account-feedback--error{border-left-color:#ba1a1a;color:#93000a;background:#ffdad6}.account-feedback button{min-width:44px;min-height:44px;border:0;color:inherit;background:transparent;font-weight:700}.account-fab{position:fixed;z-index:24;right:max(20px,calc((100vw - 390px)/2 + 20px));bottom:calc(94px + env(safe-area-inset-bottom));display:inline-flex;min-height:56px;align-items:center;gap:8px;padding:13px 20px;border:0;border-radius:999px;color:#fff;background:var(--account-primary);box-shadow:0 8px 24px #2346d54d;font-weight:750;cursor:pointer}.app-shell--account .today-bottom-navigation{width:min(390px,100%);border-color:var(--account-outline);background:#fbf8fff7}.app-shell--account .today-bottom-navigation__link.is-active{color:var(--account-primary)}.account-overlay{position:fixed;z-index:100;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:0;background:#191a2870;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.account-overlay--center{align-items:center;padding:20px}.account-sheet{width:min(390px,100%);max-height:min(90dvh,760px);overflow-y:auto;padding:10px 20px calc(24px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;color:var(--account-ink);background:var(--account-surface);box-shadow:0 -14px 44px #191a2838}.account-sheet__handle{display:block;width:34px;height:4px;margin:0 auto 18px;border-radius:999px;background:var(--account-outline)}.account-sheet__header{min-height:48px;gap:16px;margin-bottom:18px}.account-sheet__header>button{display:grid;width:44px;height:44px;flex:0 0 44px;place-items:center;border:0;border-radius:50%;color:var(--account-muted);background:var(--account-surface-low);cursor:pointer}.account-edit-form{display:flex;flex-direction:column;gap:12px}.account-edit-form label{display:flex;flex-direction:column;gap:6px;color:var(--account-ink);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.account-edit-form input{min-height:48px;padding:11px 13px;border:1px solid var(--account-outline);border-radius:12px;color:var(--account-ink);background:var(--account-bg);font-size:.94rem;font-weight:500;letter-spacing:normal;text-transform:none}.account-edit-form>small{color:var(--account-muted);line-height:1.45}.account-quick-add__list{display:flex;flex-direction:column;gap:12px}.account-quick-add__list a{display:grid;min-height:92px;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;align-content:center;padding:15px;border:1px solid var(--account-outline);border-radius:12px;color:var(--account-ink);background:var(--account-bg);text-decoration:none}.account-quick-add__list svg{grid-row:1 / 3;align-self:center;color:var(--account-primary)}.account-quick-add__list strong{font-size:.94rem}.account-quick-add__list span{color:var(--account-muted);font-size:.8rem}.account-permission-dialog{width:min(420px,100%);max-height:calc(100dvh - 40px);overflow-y:auto;padding:24px;border-radius:20px;color:var(--account-ink);background:var(--account-surface);box-shadow:0 18px 54px #191a2847}.account-permission-dialog__header{align-items:center;margin-bottom:18px}.account-permission-dialog p{color:var(--account-muted);font-size:.88rem;line-height:1.55}.account-permission-dialog__callout{color:#6e4c00;background:#fff3cd}.account-state-card{margin:36px 20px;padding:24px;text-align:center}.account-state-card__icon{margin:0 auto 14px}.account-state-card .account-button{width:100%;margin-top:12px}@media(max-width:370px){.account-header,.account-content,.account-sheet{padding-right:16px;padding-left:16px}.account-header__identity{align-items:flex-end;flex-direction:column-reverse}.account-card__title-row{align-items:flex-start;flex-direction:column;gap:6px}.account-couple-card__people{align-items:flex-start;flex-direction:column}}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 12% 2%,rgba(255,255,255,.95),transparent 27rem),#f2efe7}button,a,input,textarea,select{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid rgba(181,109,67,.38);outline-offset:2px}textarea:focus-visible,select:focus-visible{outline:3px solid rgba(181,109,67,.38);outline-offset:2px}a{color:inherit}code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.app-shell{width:min(1120px,calc(100% - 24px));min-height:calc(100vh - 24px);margin:12px auto;display:grid;grid-template-rows:auto auto 1fr auto;overflow:hidden;background:#fffdf8eb;border:1px solid rgba(45,44,38,.1);border-radius:24px;box-shadow:0 20px 60px #443d2d14}.app-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px;border-bottom:1px solid rgba(45,44,38,.08)}.app-header__identity,.app-header__status,.route-state__topline{display:flex;align-items:center;gap:12px}.app-header__mark{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;color:#fffdf8;background:#2e5146;font-size:.78rem;font-weight:800;letter-spacing:.08em}.app-header__eyebrow,.route-state__eyebrow,.technical-state__eyebrow{margin:0 0 4px;color:#6f6b60;font-size:.74rem;font-weight:750;letter-spacing:.11em;text-transform:uppercase}.app-header__name{margin:0;font-size:1.12rem;font-weight:760}.status-chip{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border:1px solid rgba(46,81,70,.18);border-radius:999px;color:#2e5146;background:#edf4f0;font-size:.72rem;font-weight:760;letter-spacing:.04em}.status-chip--muted{color:#6b665a;border-color:#6b665a29;background:#f3f0e8}.status-chip--success{color:#235b48;border-color:#235b4833;background:#eaf6f0}.status-chip--warning{color:#80571a;border-color:#80571a2e;background:#fff4d8}.app-navigation{display:flex;gap:8px;padding:12px 18px;overflow-x:auto;border-bottom:1px solid rgba(45,44,38,.08)}.app-navigation__link{flex:0 0 auto;padding:9px 12px;border-radius:10px;color:#68645b;text-decoration:none;font-size:.88rem;font-weight:650;transition:background .14s ease,color .14s ease}.app-navigation__link:hover,.app-navigation__link:focus-visible{color:#243e36;background:#eef2ed;outline:none}.app-navigation__link.is-active{color:#fffdf8;background:#2e5146}.app-content{display:grid;align-items:center;padding:clamp(28px,7vw,88px) clamp(22px,7vw,84px)}.access-page{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);align-items:center;gap:clamp(28px,7vw,88px)}.access-intro h1,.account-page h1{margin:8px 0 18px;color:#262620;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.5rem,7vw,4.8rem);font-weight:500;letter-spacing:-.045em;line-height:.98}.access-intro>p:last-child,.account-page__heading p{color:#625f56;line-height:1.65}.access-card,.profile-card{padding:clamp(22px,4vw,38px);border:1px solid rgba(45,44,38,.1);border-radius:20px;background:#fffdf8;box-shadow:0 16px 48px #443d2d14}.access-card h2,.profile-drawer h2{margin:0 0 18px;font-family:Georgia,Times New Roman,serif;font-size:1.8rem;font-weight:500}.access-card__hint{margin:0;color:#6f6b60;font-size:.9rem;line-height:1.55}.access-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:24px;padding:5px;border-radius:12px;background:#f2efe7}.access-tabs button{min-height:40px;border:0;border-radius:9px;color:#69645b;background:transparent;cursor:pointer;font-size:.82rem;font-weight:720}.access-tabs button.is-active{color:#fffdf8;background:#2e5146}.access-form{display:grid;gap:17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-field{display:grid;gap:7px}.form-field label{color:#393730;font-size:.82rem;font-weight:760}.form-field input{width:100%;min-height:46px;padding:10px 12px;border:1px solid rgba(45,44,38,.2);border-radius:10px;color:#262620;background:#fff}.form-field input[aria-invalid=true]{border-color:#a44435}.form-field small{color:#777267;line-height:1.4}.form-error{color:#9b3e31;font-size:.78rem;line-height:1.4}.password-field{position:relative}.password-field input{padding-right:82px}.password-field__toggle{position:absolute;top:4px;right:4px;min-height:38px!important;padding:7px 9px!important}.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:10px 15px;border:1px solid transparent;border-radius:10px;cursor:pointer;font-weight:740}.button:disabled{cursor:wait;opacity:.62}.button--primary{color:#fffdf8;background:#2e5146}.button--secondary{color:#2e5146;border-color:#2e514640;background:#edf4f0}.button--quiet{min-height:36px;color:#554f45;border-color:#2d2c261f;background:transparent}.form-feedback{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;padding:12px 14px;border-left:3px solid #39745e;border-radius:8px;color:#24513f;background:#eaf6f0;line-height:1.5}.form-feedback--error{color:#82382e;border-left-color:#a94b3d;background:#fff0ec}.account-page{display:grid;gap:24px}.linking-page{display:grid;grid-template-columns:minmax(0,.85fr) minmax(340px,1.15fr);align-items:start;gap:clamp(28px,7vw,80px)}.linking-intro{position:sticky;top:28px}.linking-intro h1,.linking-page--complete h1{margin:8px 0 18px;color:#262620;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.8rem,7vw,5.2rem);font-weight:500;letter-spacing:-.05em;line-height:.96}.linking-intro>p:last-child,.linking-page--complete>p{max-width:52ch;color:#625f56;line-height:1.7}.linking-panel,.invitation-card,.couple-card{padding:clamp(22px,4vw,38px);border:1px solid rgba(45,44,38,.1);border-radius:20px;background:#fffdf8;box-shadow:0 16px 48px #443d2d14}.linking-panel h2,.invitation-card h2,.couple-card h2,.linking-choice h2{margin:0 0 12px;font-family:Georgia,Times New Roman,serif;font-size:1.8rem;font-weight:500}.linking-choice{display:grid;gap:14px}.choice-button{display:grid;gap:5px;width:100%;padding:18px;border:1px solid rgba(46,81,70,.2);border-radius:14px;color:#2e5146;background:#f2f7f4;cursor:pointer;text-align:left}.choice-button:hover,.choice-button:focus-visible{border-color:#2e51468c;background:#eaf3ee}.choice-button strong{font-size:1rem}.choice-button span,.delivery-note,.rate-note,.copy-feedback{color:#6f6b60;font-size:.86rem;line-height:1.5}.linking-actions,.invitation-card__header,.couple-card__heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.linking-actions--wrap{justify-content:flex-start;flex-wrap:wrap}.refresh-link{margin-top:22px}.invitation-code{margin:22px 0;padding:18px;border:1px dashed rgba(46,81,70,.32);border-radius:14px;color:#23483d;background:#edf4f0;font-family:SFMono-Regular,Consolas,monospace;font-size:clamp(2rem,8vw,3.6rem);font-weight:850;letter-spacing:.18em;text-align:center}.invitation-code-field input{font-family:SFMono-Regular,Consolas,monospace;font-size:1.5rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.invitation-meta{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.invitation-meta div{padding:12px;border-radius:10px;background:#f5f2eb}.invitation-meta dt{color:#777267;font-size:.7rem;font-weight:760;letter-spacing:.06em;text-transform:uppercase}.invitation-meta dd{margin:5px 0 0;font-weight:650}.linking-page--complete{display:block;width:min(760px,100%)}.couple-occupancy{display:flex;align-items:center;gap:18px;margin:26px 0;padding:18px;border-radius:16px;background:#edf4f0}.couple-occupancy span{display:grid;width:64px;height:64px;place-items:center;border-radius:50%;color:#fffdf8;background:#2e5146;font-weight:850}.couple-occupancy p{margin:0;font-weight:750}.couple-card{box-shadow:none}.couple-members{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0;list-style:none}.couple-members li{display:flex;align-items:center;gap:12px;padding:14px;border-radius:12px;background:#f5f2eb}.couple-members li>span{display:grid;width:40px;height:40px;place-items:center;border-radius:12px;color:#fffdf8;background:#b56d43;font-family:Georgia,Times New Roman,serif;font-size:1.2rem}.couple-members div,.couple-members small{display:grid;gap:3px}.couple-members small{color:#777267}.account-page__heading,.profile-drawer__header,.profile-drawer__actions{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.account-page__heading h1{font-size:clamp(2.6rem,6vw,4rem)}.profile-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px}.profile-card__avatar{display:grid;width:72px;height:72px;place-items:center;border-radius:22px;color:#fffdf8;background:#b56d43;font-family:Georgia,Times New Roman,serif;font-size:2rem}.profile-card dl{display:grid;grid-template-columns:1fr 1fr;gap:18px 32px;margin:0}.profile-card dl div{min-width:0}.profile-card dt{color:#777267;font-size:.72rem;font-weight:760;letter-spacing:.06em;text-transform:uppercase}.profile-card dd{overflow-wrap:anywhere;margin:4px 0 0;color:#2e2c27;font-weight:650}.drawer-backdrop{position:fixed;z-index:30;inset:0;display:flex;justify-content:flex-end;background:#1f1f1a59}.profile-drawer{width:min(500px,100%);height:100%;overflow-y:auto;padding:clamp(24px,5vw,42px);background:#fffdf8;box-shadow:-16px 0 48px #1f1f1a24}.profile-drawer__header{margin-bottom:28px}.profile-drawer__actions{justify-content:flex-end;margin-top:8px}.route-state{width:min(650px,100%)}.route-state__topline{justify-content:space-between;margin-bottom:28px}.route-state__number{color:#b56d43;font-size:.78rem;font-weight:850;letter-spacing:.15em}.route-state h1,.technical-state h1{max-width:14ch;margin:8px 0 18px;color:#262620;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.5rem,8vw,5rem);font-weight:500;letter-spacing:-.045em;line-height:.98}.route-state>p:not(.route-state__eyebrow,.route-state__note),.technical-state__card>p:not(.technical-state__eyebrow,.technical-state__reference){max-width:58ch;color:#625f56;font-size:clamp(1rem,2.4vw,1.12rem);line-height:1.65}.route-state__note{display:inline-block;margin-top:18px;padding:12px 14px;border-left:3px solid #d29a72;color:#6b5c50;background:#fbf3ea;font-size:.9rem;line-height:1.5}.route-state__link{display:inline-flex;margin-top:14px;padding:11px 15px;border-radius:11px;color:#fffdf8;background:#2e5146;text-decoration:none;font-weight:720}.agenda-page,.commitment-form-page,.commitment-detail-page,.today-calendar,.tasks-page,.task-form-page,.task-detail-page{width:min(920px,100%);margin:0 auto}.calendar-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:30px}.calendar-heading h1,.commitment-detail-page>h1,.today-calendar h1,.tasks-page h1,.task-detail-page h1{margin:5px 0 8px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.4rem,6vw,4.4rem);font-weight:500;letter-spacing:-.045em;line-height:1}.calendar-heading p:last-child,.today-calendar>p{max-width:58ch;color:#69645b;line-height:1.6}.calendar-toolbar,.calendar-period,.calendar-actions-row,.detail-badges{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.calendar-toolbar{justify-content:space-between;padding:8px;border:1px solid rgba(45,44,38,.1);border-radius:15px;background:#f7f4ed}.calendar-segment,.calendar-filters{display:flex;gap:5px;overflow-x:auto}.calendar-segment button,.calendar-filters button{min-height:38px;padding:8px 13px;border:0;border-radius:9px;color:#625f56;background:transparent;cursor:pointer;font-weight:700;white-space:nowrap}.calendar-segment button.is-active,.calendar-filters button.is-active{color:#fffdf8;background:#2e5146}.calendar-filters{margin:14px 0;padding-bottom:5px}.calendar-range-label{color:#777267;font-size:.78rem;font-weight:720;letter-spacing:.04em}.calendar-list{display:grid;gap:10px;margin-top:20px}.calendar-item{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(180px,1.3fr) minmax(130px,.7fr) auto;align-items:center;gap:16px;width:100%;padding:16px 18px;border:1px solid rgba(45,44,38,.11);border-left:4px solid #2e5146;border-radius:14px;color:#2d2b26;background:#fffdf8;cursor:pointer;text-align:left}.calendar-item:hover,.calendar-item:focus-visible{border-color:#2e51466b;box-shadow:0 8px 24px #443d2d12}.calendar-item--busy{border-left-color:#9b9589;background:repeating-linear-gradient(-45deg,#f7f4ed,#f7f4ed 8px,#f1eee6 8px 16px)}.calendar-item span,.calendar-item em{color:#777267;font-size:.82rem;font-style:normal}.calendar-item em{padding:5px 8px;border-radius:999px;color:#80571a;background:#fff0c7;font-weight:750}.calendar-empty{display:grid;gap:9px;margin-top:24px;padding:36px;border:1px dashed rgba(45,44,38,.2);border-radius:16px;color:#6f6b60;text-align:center}.calendar-empty strong{color:#393730;font-size:1.15rem}.calendar-skeleton{height:66px;border-radius:14px;background:linear-gradient(90deg,#eeeae1 25%,#f7f4ed,#eeeae1 75%);background-size:200% 100%}.calendar-drawer{width:min(540px,100%);height:100%;overflow-y:auto;padding:clamp(25px,5vw,44px);background:#fffdf8;box-shadow:-16px 0 48px #1f1f1a24}.calendar-drawer header{display:flex;justify-content:space-between;gap:16px}.calendar-drawer h2,.detail-card h2,.confirmation-dialog h2{font-family:Georgia,Times New Roman,serif;font-size:1.7rem;font-weight:500}.privacy-note{padding:13px 15px;border-left:3px solid #b56d43;border-radius:9px;color:#6b5c50;background:#fbf3ea;line-height:1.55}.commitment-form{display:grid;gap:20px;padding:clamp(22px,4vw,38px);border:1px solid rgba(45,44,38,.1);border-radius:20px;background:#fffdf8}.commitment-form textarea,.commitment-form select{width:100%;padding:11px 12px;border:1px solid rgba(45,44,38,.2);border-radius:10px;color:#262620;background:#fff;resize:vertical}.visibility-field{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0;padding:0;border:0}.visibility-field legend{margin-bottom:9px;font-size:.82rem;font-weight:760}.visibility-field label{display:flex;gap:10px;padding:13px;border:1px solid rgba(45,44,38,.14);border-radius:11px;cursor:pointer}.visibility-field span,.visibility-field small{display:grid;gap:4px}.visibility-field small{color:#777267;font-weight:400;line-height:1.35}.all-day-toggle{display:flex;align-items:center;gap:9px;font-weight:720}.button--danger{color:#fff;background:#9b3e31}.confirmation-dialog{width:min(460px,calc(100% - 28px));margin:auto;padding:28px;border-radius:18px;background:#fffdf8;box-shadow:0 22px 70px #1f1f1a38}.detail-card{padding:clamp(22px,4vw,38px);border:1px solid rgba(45,44,38,.1);border-radius:20px;background:#fffdf8}.detail-interval{margin:24px 0;font-size:1.12rem;font-weight:720}.detail-section{margin:24px 0;padding-top:4px;border-top:1px solid rgba(45,44,38,.09)}.detail-section h2{margin-bottom:7px;font-size:1.2rem}.authorship{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0}.authorship div{padding:13px;border-radius:11px;background:#f5f2eb}.authorship dt{color:#777267;font-size:.7rem;font-weight:760;letter-spacing:.05em;text-transform:uppercase}.authorship dd{margin:5px 0 0;font-weight:650}.task-groups,.today-task-grid{display:grid;gap:18px}.task-group,.today-task-group{padding:clamp(17px,3vw,25px);border:1px solid rgba(45,44,38,.1);border-radius:18px;background:#fffdf8}.task-group>header,.commitment-tasks__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.task-group>header h2,.today-task-group h2,.task-group__toggle strong{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.55rem;font-weight:500}.task-group>header>span{display:grid;min-width:32px;min-height:32px;place-items:center;border-radius:999px;color:#2e5146;background:#edf4f0;font-size:.78rem;font-weight:800}.task-list{display:grid;gap:9px;margin-top:14px}.task-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:13px;padding:15px;border:1px solid rgba(45,44,38,.1);border-radius:13px;background:#fdfbf6}.task-row--completed{color:#716d64;background:#f5f2eb}.task-row--completed .task-row__title{text-decoration:line-through;text-decoration-thickness:1px}.task-check{display:grid;width:30px;height:30px;place-items:center;padding:0;border:2px solid #2e5146;border-radius:9px;color:#fffdf8;background:#2e5146;cursor:pointer;font-size:.9rem;font-weight:900}.task-check[aria-pressed=false]{background:transparent}.task-check--locked{color:#817c72;border-color:#c9c4b9;background:#eeeae1;cursor:default}.task-row__content,.task-group__toggle>span:first-child{display:grid;gap:6px;min-width:0}.task-row__title{overflow-wrap:anywhere;color:#2b2a25;font-weight:780;text-decoration:none}.task-row__title:hover{text-decoration:underline}.task-row__content>span,.task-row__meta,.task-parent-link,.task-group__toggle small{color:#777267;font-size:.8rem}.task-row__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-parent-link{color:#2e5146;font-weight:700}.task-row--compact{padding:12px}.task-inline-state{margin:14px 0 0;padding:12px;border-radius:10px;color:#6f6b60;background:#f5f2eb}.task-inline-state button{padding:0;border:0;color:#2e5146;background:transparent;cursor:pointer;font-weight:750;text-decoration:underline}.task-group__toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:18px;padding:0;border:0;color:inherit;background:transparent;cursor:pointer;text-align:left}.task-group__toggle>span:last-child{color:#2e5146;font-size:.82rem;font-weight:750}.task-load-more{margin-top:16px}.today-task-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin:26px 0}.today-task-group{padding:16px}.today-task-group h2{font-size:1.25rem}.commitment-tasks__heading h2,.commitment-tasks__heading p{margin:0 0 7px}.app-footer{display:flex;justify-content:space-between;gap:16px;padding:14px 22px;color:#777267;border-top:1px solid rgba(45,44,38,.08);font-size:.72rem}.technical-state{min-height:100vh;display:grid;place-items:center;padding:24px}.technical-state__card{width:min(680px,100%);padding:clamp(28px,7vw,64px);border:1px solid rgba(45,44,38,.1);border-radius:24px;background:#fffdf8;box-shadow:0 20px 60px #443d2d14}.technical-state__eyebrow{margin-top:24px}.technical-state__reference{margin-top:22px;color:#716c61;font-size:.82rem}.technical-state__list{margin:22px 0 0;padding:16px 18px 16px 36px;border-radius:12px;color:#6b5c50;background:#fbf3ea}.shopping-page,.shopping-form-page,.shopping-unavailable{width:min(940px,100%);margin:0 auto}.shopping-page h1,.shopping-form-page h1,.shopping-unavailable h1{margin:5px 0 8px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.5rem,6vw,4.6rem);font-weight:500;letter-spacing:-.05em;line-height:.98}.shopping-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:22px;padding:7px;overflow-x:auto;border:1px solid rgba(45,44,38,.1);border-radius:16px;background:#f5f2eb}.shopping-tabs a{display:flex;min-width:116px;min-height:48px;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:11px;color:#68645b;text-decoration:none;font-size:.83rem;font-weight:740}.shopping-tabs a:hover,.shopping-tabs a:focus-visible{color:#243e36;background:#ecefe9}.shopping-tabs a.is-active{color:#fffdf8;background:#2e5146;box-shadow:0 8px 20px #2e51462e}.shopping-tabs small,.shopping-section>header>span,.shopping-section__toggle b{display:grid;min-width:27px;min-height:27px;place-items:center;border-radius:999px;color:#2e5146;background:#edf4f0;font-size:.72rem;font-weight:850}.shopping-tabs a.is-active small{color:#2e5146;background:#fffdf8}.shopping-sections{display:grid;gap:16px}.shopping-section{padding:clamp(18px,3vw,28px);border:1px solid rgba(45,44,38,.1);border-radius:20px;background:#fffdf8;box-shadow:0 12px 34px #443d2d0b}.shopping-section>header,.shopping-section__toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:18px}.shopping-section>header p,.shopping-section__toggle small{margin:0 0 4px;color:#8a7563;font-size:.68rem;font-weight:820;letter-spacing:.1em;text-transform:uppercase}.shopping-section h2,.shopping-section__toggle strong{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.65rem;font-weight:500}.shopping-section__toggle{padding:0;border:0;color:inherit;background:transparent;cursor:pointer;text-align:left}.shopping-section__toggle>span{display:flex;align-items:center;gap:10px}.shopping-section__toggle>span:first-child{display:grid;gap:1px}.shopping-section__toggle>span:last-child{color:#2e5146;font-size:.8rem;font-weight:760}.shopping-items{display:grid;gap:9px;margin-top:18px}.shopping-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;border:1px solid rgba(45,44,38,.1);border-radius:14px;background:#fdfbf6}.shopping-item--purchased{color:#726f67;background:#f4f1ea}.shopping-item--purchased strong{text-decoration:line-through;text-decoration-thickness:1px}.shopping-item--focused{border-color:#b56d43;box-shadow:0 0 0 3px #b56d4321}.shopping-check{display:grid;width:32px;height:32px;place-items:center;padding:0;border:2px solid #2e5146;border-radius:10px;color:#fffdf8;background:transparent;cursor:pointer;font-weight:900}.shopping-check[aria-pressed=true]{background:#2e5146}.shopping-check:disabled{cursor:wait;opacity:.55}.shopping-item__content{display:grid;gap:4px;min-width:0}.shopping-item__content strong{overflow-wrap:anywhere;color:#2b2a25}.shopping-item__content span{color:#777267;font-size:.8rem}.shopping-empty,.shopping-inline-state,.shopping-unavailable{display:grid;gap:7px;margin-top:18px;padding:24px;border:1px dashed rgba(45,44,38,.18);border-radius:14px;color:#6f6b60;background:#faf7f1}.shopping-inline-state--error{margin-bottom:18px;color:#82382e;border-color:#a94b3d4d;background:#fff0ec}.shopping-inline-state button{width:fit-content;padding:0;border:0;color:#2e5146;background:transparent;cursor:pointer;font-weight:760;text-decoration:underline}.shopping-purchased-content{padding-top:2px}.shopping-clear{margin-top:18px}.shopping-skeleton{height:280px;border-radius:20px;background:linear-gradient(90deg,#eeeae1 25%,#f8f5ef,#eeeae1 75%);background-size:200% 100%}.shopping-list-options{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.shopping-list-options a{padding:9px 12px;border:1px solid rgba(46,81,70,.2);border-radius:999px;color:#2e5146;background:#edf4f0;text-decoration:none;font-size:.82rem;font-weight:740}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.habits-page,.habit-form-page,.habits-unavailable{display:grid;gap:22px}.habit-hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:28px;overflow:hidden;border-radius:24px;color:#f8fbf8;background:radial-gradient(circle at 86% 4%,rgba(243,184,112,.28),transparent 18rem),linear-gradient(135deg,#274d42,#3e6658);box-shadow:0 18px 36px #274d4229}.habit-hero:after{position:absolute;right:30px;bottom:-62px;width:180px;height:180px;border:1px solid rgba(255,255,255,.12);border-radius:50%;content:""}.habit-hero>*{position:relative;z-index:1}.habit-hero .route-state__eyebrow{color:#f8fbf8b8}.habit-hero h1,.habit-form-page h1,.habits-unavailable h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,5vw,3.6rem);font-weight:500;letter-spacing:-.045em}.habit-hero p:last-child{max-width:580px;margin:8px 0 0;color:#f8fbf8d1}.habit-tabs{display:inline-grid;grid-template-columns:repeat(2,minmax(130px,1fr));width:fit-content;padding:4px;border:1px solid rgba(46,81,70,.14);border-radius:999px;background:#eee9df}.habit-tabs button{padding:9px 18px;border:0;border-radius:999px;color:#686358;background:transparent;cursor:pointer}.habit-tabs button.is-active{color:#fffdf8;background:#2e5146;box-shadow:0 5px 14px #2e514629}.habit-complete-banner{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid rgba(46,81,70,.15);border-radius:18px;color:#24483e;background:#edf5ef}.habit-complete-banner>span{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;color:#fff;background:#3b6c59;font-weight:800}.habit-complete-banner p,.habit-list__heading p,.today-habits__heading p{margin:3px 0 0;color:#6f6b60;font-size:.86rem}.habit-list{display:grid;gap:12px}.habit-list__heading,.today-habits__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:4px}.habit-list__heading h2,.today-habits__heading h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.7rem;font-weight:500}.habit-list__heading>span,.today-habits__heading>span{padding:6px 10px;border-radius:999px;color:#2e5146;background:#edf4f0;font-size:.78rem;font-weight:750}.habit-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:18px 20px;border:1px solid rgba(45,44,38,.1);border-left:5px solid #c5bfb2;border-radius:18px;background:#ffffffd1;box-shadow:0 8px 24px #443d2d0d}.habit-card--reached{border-left-color:#4b8069}.habit-card--exceeded{border-left-color:#c17b45}.habit-card--focused{outline:3px solid rgba(181,109,67,.26);outline-offset:2px}.habit-card__main,.habit-card__title-row{min-width:0}.habit-card__title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.habit-card h3{margin:2px 0 0;overflow-wrap:anywhere;font-size:1.08rem}.habit-card__schedule{margin:0;color:#7a756a;font-size:.73rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.habit-state{flex:none;padding:4px 8px;border-radius:999px;color:#686358;background:#eeeae1;font-size:.7rem;font-weight:760}.habit-state--reached{color:#2e5b49;background:#e4f0e8}.habit-state--exceeded{color:#8b4e24;background:#f7e8dc}.habit-progress{display:grid;grid-template-columns:minmax(90px,1fr) auto;align-items:center;gap:12px;margin-top:13px}.habit-progress__track{height:8px;overflow:hidden;border-radius:999px;background:#e8e3d9}.habit-progress__track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6d9786,#2e5146);transition:width .18s ease}.habit-progress strong{color:#555147;font-size:.79rem}.habit-card__meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:10px;color:#7a756a;font-size:.76rem}.habit-card__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.habit-step{display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(46,81,70,.18);border-radius:50%;color:#2e5146;background:#f3f6f3;font-size:1.35rem;font-weight:700;cursor:pointer}.habit-step--add{color:#fff;background:#2e5146}.habit-step:disabled{opacity:.5;cursor:wait}.habit-empty,.habit-inline-state,.habits-unavailable{padding:22px;border:1px dashed rgba(46,81,70,.22);border-radius:18px;color:#5e5a50;background:#f5f2eab8}.habit-empty{display:grid;justify-items:start;gap:6px}.habit-empty>span{color:#b56d43;font-size:2rem}.habit-empty p,.habit-inline-state span{margin:0}.habit-inline-state{display:flex;align-items:center;justify-content:space-between;gap:14px}.habit-inline-state--error{border-color:#8f393040;color:#793c35;background:#fbefed}.habit-inline-state button{border:0;color:inherit;background:transparent;font-weight:750;text-decoration:underline;cursor:pointer}.habit-skeleton{min-height:150px;border-radius:18px;background:linear-gradient(100deg,#ebe7de 20%,#f8f6f0 42%,#ebe7de 66%);background-size:220% 100%;animation:calendar-shimmer 1.3s linear infinite}.habit-reminder-boundary{display:flex;flex-wrap:wrap;gap:4px 10px;padding:13px 16px;border-radius:14px;color:#716b60;background:#eeeae2;font-size:.8rem}.habit-form{display:grid;gap:20px;max-width:720px;padding:24px;border:1px solid rgba(45,44,38,.1);border-radius:22px;background:#ffffffc2}.habit-weekdays,.habit-reminder-controls{margin:0;padding:0;border:0}.habit-weekdays legend,.habit-reminder-controls legend{margin-bottom:9px;font-size:.82rem;font-weight:750}.habit-weekdays>div{display:grid;grid-template-columns:repeat(7,44px);gap:8px}.habit-weekdays label{position:relative;cursor:pointer}.habit-weekdays input{position:absolute;opacity:0}.habit-weekdays label>span:first-of-type{display:grid;width:44px;height:44px;place-items:center;border:1px solid rgba(46,81,70,.18);border-radius:50%;color:#5f5a50;background:#f5f2eb;font-size:.78rem;font-weight:800}.habit-weekdays input:checked+span{color:#fff;background:#2e5146}.habit-weekdays input:focus-visible+span{outline:3px solid rgba(181,109,67,.38);outline-offset:2px}.habit-goal-field{max-width:180px}.habit-reminder-controls{padding:16px;border:1px dashed rgba(45,44,38,.18);border-radius:14px;color:#858075;background:#f3f0e9}.habit-reminder-controls label{display:flex;align-items:center;gap:10px}.habit-reminder-controls p{margin:8px 0 0;font-size:.78rem}.today-habits{display:grid;gap:12px;margin-top:26px;padding-top:24px;border-top:1px solid rgba(45,44,38,.1)}.today-habits__list{display:grid;gap:10px}.habit-card--compact{padding:14px 16px}.app-shell--today{--today-background: #fbf8ff;--today-surface: #fff;--today-surface-low: #f4f2ff;--today-surface-high: #e8e6fa;--today-outline: #c4c5d7;--today-ink: #191a28;--today-muted: #5f6070;--today-primary: #2346d5;--today-secondary: #006c4f;--today-error: #ba1a1a;display:block;width:100%;min-height:100vh;margin:0;overflow:visible;border:0;border-radius:0;background:var(--today-background);box-shadow:none}.app-shell--today>.app-header,.app-shell--today>.app-navigation,.app-shell--today>.app-footer{display:none}.app-shell--today .app-content{display:block;padding:0}.today-page{width:min(780px,100%);min-height:100vh;margin:0 auto;padding:28px 22px calc(178px + env(safe-area-inset-bottom));color:var(--today-ink);background:var(--today-background);font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,sans-serif}.today-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 0 24px}.today-date{margin:0 0 7px;color:#4c4d5d;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.78rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.today-hero h1{margin:0;font-family:inherit;font-size:clamp(2rem,7vw,2.65rem);font-weight:700;letter-spacing:-.045em;line-height:1.05}.today-avatar{display:grid;width:52px;height:52px;flex:none;place-items:center;border-radius:50%;color:var(--today-primary);background:#e7e8ff;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:700;text-decoration:none}.today-reminder-slot:empty{display:none}.today-reminder-slot>.notification-banner--compact{display:flex;width:100%;max-width:none;min-height:68px;align-items:center;gap:14px;margin:0 0 27px;padding:13px 15px;border:0;border-radius:8px;background:var(--today-surface-high)}.notification-banner--compact .notification-banner__icon{width:24px;height:24px;flex:none;color:#797a8b}.notification-banner--compact .notification-banner__icon path{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.notification-banner--compact>div:first-of-type{margin-right:auto}.notification-banner--compact .notification-banner__compact-detail{display:none}.notification-banner--compact .notification-banner__actions{flex:none}.notification-banner--compact .button--primary{min-height:44px;padding-inline:12px;color:var(--today-primary);background:transparent;text-transform:uppercase}.today-sections{display:grid;gap:28px}.today-section{display:grid;gap:11px;min-width:0;padding:0;border:0;background:transparent;box-shadow:none}.today-section__heading{display:flex;align-items:center;gap:10px}.today-section__heading h2{margin:0;font-family:inherit;font-size:clamp(1.27rem,4.5vw,1.55rem);font-weight:700;letter-spacing:-.025em}.today-section__heading>span{display:grid;min-width:26px;height:26px;padding:0 7px;place-items:center;border-radius:999px;color:#4f5061;background:var(--today-surface-high);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.76rem;font-weight:700}.today-section--overdue .today-section__heading>span{color:#9d1717;background:#ffd9d6}.today-card-list{display:grid;gap:9px}.today-card{width:100%;min-width:0;margin:0;padding:14px 16px;border:1px solid var(--today-outline);border-radius:8px;color:var(--today-ink);background:var(--today-surface);text-align:left}.today-task-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px}.today-task-card.is-completed{opacity:.72}.today-task-card.is-completed .today-card__title{text-decoration:line-through}.today-check{display:grid;width:44px;height:44px;place-items:center;border:1.5px solid var(--today-outline);border-radius:50%;color:#fff;background:transparent;cursor:pointer}.today-check[aria-pressed=true]{border-color:var(--today-secondary);background:var(--today-secondary)}.today-check.is-locked{color:#858697;background:var(--today-surface-low)}.today-check:disabled,.today-habit-card button:disabled{opacity:.42;cursor:wait}.today-card__content{min-width:0}.today-card__title{display:flex;max-width:100%;min-height:44px;align-items:center;padding:0;border:0;color:var(--today-ink);background:transparent;font:inherit;font-size:1rem;font-weight:600;overflow-wrap:anywhere;text-align:left;cursor:pointer}.today-card__title:hover,.today-card__title:focus-visible,.today-commitment-card:hover,.today-commitment-card:focus-visible,.today-quick-add__option:hover,.today-quick-add__option:focus-visible{outline:3px solid rgba(35,70,213,.2);outline-offset:2px}.today-card p,.today-card small,.today-commitment-card p,.today-commitment-card small{display:block;margin:3px 0 0;color:var(--today-muted);font-size:.79rem;line-height:1.35}.today-card__due{display:flex!important;align-items:center;gap:5px}.today-card__due.is-overdue,.today-drawer__date.is-overdue{color:var(--today-error)}.today-card__chip{align-self:center;padding:4px 8px;border-radius:999px;color:#4f5061;background:var(--today-surface-high);font-size:.68rem;font-weight:700}.today-section--commitments .today-card-list{gap:0;padding:4px 0;border:1px solid var(--today-outline);border-radius:8px;background:var(--today-surface)}.today-commitment-card{position:relative;display:grid;width:100%;min-width:0;grid-template-columns:84px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:78px;padding:10px 14px;border:0;color:var(--today-ink);background:transparent;font:inherit;text-align:left}button.today-commitment-card{cursor:pointer}.today-commitment-card:before{position:absolute;z-index:1;top:50%;left:96px;width:9px;height:9px;border:2px solid var(--today-surface);border-radius:50%;background:var(--today-primary);content:"";transform:translate(-50%,-50%)}.today-commitment-card:not(:last-child):after{position:absolute;top:50%;bottom:-50%;left:95px;width:2px;background:var(--today-outline);content:""}.today-commitment-card .today-card__content{min-height:56px;padding:10px 12px;border-radius:8px;background:var(--today-surface-low)}.today-commitment-card.is-busy .today-card__content{background:repeating-linear-gradient(135deg,#f1f0f7,#f1f0f7 9px,#e9e8f1 9px 18px)}.today-card__time{color:#4f5061;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.76rem;font-weight:700}.today-habit-card{display:grid;gap:12px}.today-habit-card__header,.today-habit-card__actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.today-habit-card__header>span{color:#464755;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.75rem;font-weight:700}.today-progress{width:100%;height:5px;overflow:hidden;border-radius:999px;background:var(--today-surface-high)}.today-progress span{display:block;height:100%;border-radius:inherit;background:var(--today-secondary);transition:width .18s ease}.today-habit-card__actions button{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;padding:8px 12px;border:0;border-radius:999px;color:#4f5061;background:var(--today-surface-high);font-weight:700;cursor:pointer}.today-habit-card__actions .today-habit-add{gap:5px;min-width:126px;color:#003729;background:#54fdc4}.today-section__empty{margin:0;padding:13px 15px;border:1px dashed var(--today-outline);border-radius:8px;color:var(--today-muted);background:#ffffff7a}.today-completed{padding:0;border:1px solid var(--today-outline);border-radius:8px;background:var(--today-surface)}.today-completed summary{display:flex;min-height:62px;align-items:center;gap:10px;padding:14px 16px;list-style:none;cursor:pointer}.today-completed summary::-webkit-details-marker{display:none}.today-completed summary .today-section__heading{flex:1}.today-completed[open] summary>.today-icon{transform:rotate(180deg)}.today-completed>.today-card-list,.today-completed>.today-section__empty{margin:0 14px 14px}.today-empty,.today-error,.today-loading,.today-unavailable,.today-stale-warning,.today-all-done{border-radius:8px}.today-empty{display:grid;min-height:min(58vh,520px);align-content:center;justify-items:center;gap:12px;padding:32px 20px;text-align:center}.today-empty__icon{display:grid;width:96px;height:96px;margin-bottom:20px;place-items:center;border-radius:50%;color:#8492e8;background:#efedff}.today-empty strong{font-size:1.8rem;letter-spacing:-.035em}.today-empty p,.today-error span{max-width:440px;margin:0;color:var(--today-muted);line-height:1.55}.today-error,.today-unavailable{display:grid;justify-items:start;gap:10px;padding:20px;border:1px solid #f1aaa4;color:#810d0d;background:#fff1ef}.today-loading{display:grid;grid-template-columns:1fr;gap:10px;min-height:240px;align-content:center;padding:20px;color:var(--today-muted)}.today-loading>span{height:54px;border-radius:8px;background:linear-gradient(100deg,#e8e6fa 20%,#f7f5ff 42%,#e8e6fa 66%);background-size:220% 100%;animation:calendar-shimmer 1.3s linear infinite}.today-stale-warning{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding:13px 16px;border:1px solid #f1aaa4;color:#810d0d;background:#fff1ef}.today-stale-warning button{min-height:44px;border:0;color:inherit;background:transparent;font-weight:700;text-decoration:underline;cursor:pointer}.today-page>.form-feedback{margin:0 0 20px;border-left-color:var(--today-secondary);background:#e8fff5}.today-all-done{margin:0;padding:10px 13px;color:#00513b;background:#d9ffef;font-size:.82rem;font-weight:700}.today-fab{position:fixed;z-index:24;right:max(20px,calc((100vw - 780px)/2 + 20px));bottom:calc(94px + env(safe-area-inset-bottom));display:inline-flex;min-height:56px;align-items:center;gap:9px;padding:13px 22px;border:0;border-radius:999px;color:#fff;background:var(--today-primary);box-shadow:0 8px 24px #2346d547;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.today-bottom-navigation{position:fixed;z-index:23;bottom:0;left:50%;display:grid;width:min(780px,100%);min-height:calc(78px + env(safe-area-inset-bottom));grid-template-columns:repeat(5,minmax(0,1fr));padding:7px 10px env(safe-area-inset-bottom);border-top:1px solid var(--today-outline);background:#fbf8fff7;box-shadow:0 -8px 28px #191a280a;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transform:translate(-50%)}.today-bottom-navigation__link{display:flex;min-width:0;min-height:64px;align-items:center;justify-content:center;flex-direction:column;gap:4px;border-radius:8px;color:#50515f;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.69rem;font-weight:650;text-decoration:none}.today-bottom-navigation__link.is-active{color:var(--today-primary)}.today-sheet-backdrop{z-index:40;align-items:center;justify-content:flex-end;flex-direction:column;background:#191a286b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.today-quick-add,.today-drawer{width:min(780px,100%);max-height:90vh;overflow-y:auto;padding:12px 28px calc(30px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;color:var(--today-ink);background:var(--today-background);box-shadow:0 -12px 42px #191a2833}.today-sheet__handle{width:72px;height:6px;margin:0 auto 3px;border-radius:999px;background:var(--today-surface-high)}.today-quick-add>header,.today-drawer>header{display:flex;min-height:50px;align-items:center;justify-content:space-between;gap:16px}.today-quick-add>header{justify-content:flex-end}.today-sheet__close{display:grid;width:48px;height:48px;place-items:center;border:0;border-radius:50%;color:#4f5061;background:var(--today-surface-low);cursor:pointer}.today-sheet__eyebrow,.today-drawer__kind{color:#6e6f7f;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.73rem;font-weight:750;letter-spacing:.13em;text-transform:uppercase}.today-drawer__kind{display:inline-flex;padding:6px 10px;border-radius:3px;color:#fff;background:#465df0;letter-spacing:.05em}.today-quick-add h2,.today-drawer h2{margin:6px 0 22px;font-family:inherit;font-size:clamp(1.75rem,7vw,2.4rem);line-height:1.12;letter-spacing:-.04em;overflow-wrap:anywhere}.today-sheet__eyebrow{margin:14px 0 0;text-align:center}.today-quick-add h2{text-align:center}.today-quick-add__options{display:grid;gap:10px}.today-quick-add__option{display:grid;min-height:82px;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:16px;padding:12px 14px;border:1px solid rgba(196,197,215,.6);border-radius:12px;color:var(--today-ink);background:var(--today-surface);text-decoration:none}.today-quick-add__option>span:last-child{display:grid;gap:4px}.today-quick-add__option small{color:var(--today-muted)}.today-quick-add__icon{display:grid;width:54px;height:54px;place-items:center;border-radius:10px;color:var(--today-primary);background:#eff0ff}.today-quick-add__option.is-task .today-quick-add__icon{color:#292a38;background:#e6e5f7}.today-quick-add__option.is-shopping .today-quick-add__icon{color:#83002a;background:#ffd9dd}.today-quick-add__option.is-habit .today-quick-add__icon{color:#004c38;background:#54fdc4}.today-drawer__date{display:flex;align-items:center;gap:7px;margin:-12px 0 20px}.today-drawer__facts{display:grid;gap:8px;padding:15px;border:1px solid #dddafe;border-radius:8px;background:var(--today-surface-low)}.today-drawer__facts p{display:flex;align-items:center;gap:9px;margin:0;color:var(--today-muted)}.today-drawer__privacy{margin:16px 0 0;color:var(--today-muted);font-size:.78rem}.today-drawer__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px;padding-top:20px;border-top:1px solid var(--today-outline)}.today-drawer__actions .button{min-height:52px;border-radius:999px;text-transform:uppercase}.today-drawer__actions .button--primary{background:var(--today-primary)}.today-drawer__actions .button--secondary{color:var(--today-ink);border-color:#5e5f70;background:transparent}@media(max-width:640px){.habit-hero,.habit-card,.habit-card__title-row,.habit-inline-state{align-items:stretch}.habit-hero,.habit-list__heading,.today-habits__heading,.habit-card__title-row,.habit-inline-state{flex-direction:column}.habit-card{grid-template-columns:1fr}.habit-card__actions{justify-content:flex-start;flex-wrap:wrap}.habit-progress{grid-template-columns:1fr}.habit-weekdays>div{grid-template-columns:repeat(4,44px)}.habit-tabs{width:100%}.habit-form{padding:18px}.today-stale-warning{align-items:stretch;flex-direction:column}.today-task-card{grid-template-columns:auto minmax(0,1fr)}.today-task-card .today-card__chip{grid-column:2;justify-self:start}.today-commitment-card{grid-template-columns:72px minmax(0,1fr);gap:12px;padding-inline:10px}.today-commitment-card:before{left:82px}.today-commitment-card:not(:last-child):after{left:81px}.today-commitment-card .today-card__chip{grid-column:2}.today-page{padding:24px 18px calc(174px + env(safe-area-inset-bottom))}.today-hero h1{font-size:clamp(1.95rem,9vw,2.45rem)}.today-avatar{width:48px;height:48px}.today-quick-add,.today-drawer{padding-inline:20px}.app-shell{width:100%;min-height:100vh;margin:0;border:0;border-radius:0}.app-header,.app-footer{align-items:flex-start;flex-direction:column}.app-header__status{padding-left:56px}.app-footer{gap:6px}.access-page,.linking-page,.form-grid,.profile-card,.profile-card dl,.couple-members,.invitation-meta{grid-template-columns:1fr}.linking-intro{position:static}.profile-card{align-items:stretch}.account-page__heading{flex-direction:column}.calendar-heading,.calendar-toolbar{align-items:stretch;flex-direction:column}.calendar-item{grid-template-columns:1fr;gap:6px}.visibility-field,.authorship,.today-task-grid{grid-template-columns:1fr}.commitment-tasks__heading{align-items:stretch;flex-direction:column}.shopping-tabs{grid-template-columns:repeat(5,minmax(116px,1fr))}.shopping-item{grid-template-columns:auto minmax(0,1fr)}.shopping-item>.button{grid-column:2;justify-self:start}}.notification-banner{align-items:center;background:linear-gradient(120deg,#1b5c521f,#d0914a1a);border:1px solid rgba(27,92,82,.24);border-radius:18px;display:flex;gap:20px;justify-content:space-between;margin:18px auto 0;max-width:1180px;padding:16px 18px;width:calc(100% - 40px)}.pwa-status{align-items:center;border:1px solid rgba(27,92,82,.24);border-radius:18px;display:flex;gap:20px;justify-content:space-between;margin:18px auto 0;max-width:1180px;padding:14px 18px;width:calc(100% - 40px)}.pwa-status>div{display:grid;gap:4px}.pwa-status span{color:var(--color-ink-muted)}.pwa-status--offline{background:#fff2d7;border-color:#d0914a;color:#6f451d}.pwa-status--update{background:#edf8f5}.pwa-status--warning{background:#fff7ea}.notification-banner>div:first-child,.notification-settings__heading>div{display:grid;gap:4px}.notification-banner span,.notification-settings p{color:var(--color-ink-muted)}.notification-banner__actions,.notification-settings__actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.notification-settings{background:var(--color-surface);border:1px solid var(--color-border);border-radius:22px;box-shadow:var(--shadow-soft);display:grid;gap:18px;padding:24px;scroll-margin-top:24px}.notification-settings__heading{align-items:flex-start;display:flex;gap:20px;justify-content:space-between}.notification-settings__heading h2{margin:0}.notification-status{background:#8f6f391f;border-radius:999px;color:var(--color-ink);font-size:.82rem;font-weight:700;padding:7px 11px;white-space:nowrap}.notification-status--permitted{background:#1b5c5224;color:#15574e}.notification-status--blocked,.notification-status--unsupported{background:#a03f361f;color:#8a332d}.notification-settings__note{font-size:.9rem;margin:0}.reminder-fieldset,.habit-reminder-controls{background:#ffffff94;border:1px solid var(--color-border);border-radius:16px;display:grid;gap:12px;padding:16px}.reminder-fieldset:disabled{opacity:.72}.reminder-fieldset p,.habit-reminder-controls p{color:var(--color-ink-muted);margin:0}.reminder-options{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.reminder-options label,.habit-reminder-row{align-items:center;display:flex;gap:10px}.habit-reminder-list{display:grid;gap:8px}.habit-reminder-row input,.reminder-fieldset select{min-width:160px}.reminder-summary__list{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.reminder-summary__list li{background:var(--color-surface-soft, #f5f3ff);border-radius:999px;color:var(--color-text, #282434);font-size:.875rem;padding:.35rem .65rem}.reminder-summary__note{color:var(--color-text-muted, #686274);font-size:.875rem;margin-top:.625rem}@media(max-width:760px){.pwa-status,.notification-banner,.notification-settings__heading{align-items:stretch;flex-direction:column}}.app-shell--agenda{--today-background: #fbf8ff;--today-surface: #ffffff;--today-surface-low: #f4f2ff;--today-surface-high: #e8e6fa;--today-outline: #c4c5d7;--today-ink: #191a28;--today-muted: #5f6070;--today-primary: #2346d5;--agenda-background: #fbf8ff;--agenda-surface: #ffffff;--agenda-surface-low: #f4f2ff;--agenda-surface-high: #e8e6fa;--agenda-outline: #c4c5d7;--agenda-ink: #191a28;--agenda-muted: #5f6070;--agenda-primary: #2346d5;--agenda-primary-soft: #e0e4ff;--agenda-secondary: #006c4f;display:block;width:100%;min-height:100vh;margin:0;overflow:visible;border:0;border-radius:0;background:var(--agenda-background);box-shadow:none}.app-shell--agenda>.app-header,.app-shell--agenda>.app-navigation,.app-shell--agenda>.app-footer,.app-shell--agenda>.pwa-status{display:none}.app-shell--agenda .app-content{display:block;padding:0}.agenda-page{width:min(780px,100%);min-height:100vh;margin:0 auto;overflow-x:hidden;padding:24px 22px calc(178px + env(safe-area-inset-bottom));color:var(--agenda-ink);background:var(--agenda-background);font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,sans-serif}.agenda-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding-bottom:18px}.agenda-period-heading{margin:0 0 3px;color:var(--agenda-muted);font-size:.78rem;font-weight:720;letter-spacing:.04em}.agenda-hero h1{margin:0;font-family:inherit;font-size:clamp(2rem,7vw,2.6rem);font-weight:700;letter-spacing:-.045em;line-height:1.05}.agenda-avatar{display:grid;width:48px;height:48px;flex:none;place-items:center;border-radius:50%;color:#fff;background:#4361ee;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.82rem;font-weight:750;text-decoration:none}.agenda-controls{display:grid;gap:12px;margin-inline:-10px;padding:11px 10px 14px;border-top:1px solid rgba(196,197,215,.7);border-bottom:1px solid rgba(196,197,215,.7)}.agenda-view-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:10px;background:var(--agenda-surface-low)}.agenda-view-switch button,.agenda-period-navigation button,.agenda-filters button,.agenda-empty button,.agenda-stale-warning button,.agenda-state button{min-height:44px;border:0;color:var(--agenda-muted);background:transparent;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}.agenda-view-switch button{border-radius:8px}.agenda-view-switch button.is-active{color:var(--agenda-primary);background:var(--agenda-surface);box-shadow:0 1px 4px #191a2814}.agenda-period-navigation{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center}.agenda-period-navigation button:first-child,.agenda-period-navigation button:last-child{color:var(--agenda-ink);font-size:1.6rem;font-weight:500}.agenda-period-navigation button:nth-child(2){color:var(--agenda-ink)}.agenda-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.agenda-filters button{min-width:0;min-height:44px;padding:5px 6px;overflow:hidden;border:1px solid var(--agenda-outline);border-radius:999px;text-overflow:ellipsis;white-space:nowrap}.agenda-filters button.is-active{border-color:var(--agenda-primary);color:#fff;background:var(--agenda-primary)}.agenda-content{padding-top:18px}.agenda-conflict{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;margin-bottom:14px;padding:10px 12px;border-radius:8px;color:#6d211d;background:#ffd9d4}.agenda-conflict>span{display:grid;width:28px;height:28px;place-items:center;border:1px solid currentColor;border-radius:50%;font-weight:800}.agenda-conflict p,.agenda-conflict strong,.agenda-conflict small{display:block;margin:0}.agenda-conflict small{margin-top:2px;color:#744b48;font-size:.74rem}.agenda-timeline{display:grid;position:relative}.agenda-timeline:before{position:absolute;top:14px;bottom:14px;left:75px;width:1px;background:var(--agenda-outline);content:""}.agenda-timeline__row{display:grid;position:relative;grid-template-columns:62px minmax(0,1fr);gap:22px;padding:7px 0}.agenda-timeline__row>time,.agenda-week__slot>time,.agenda-month__item>time{padding-top:14px;color:var(--agenda-ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.72rem;font-weight:650;white-space:nowrap}.agenda-timeline__row>time:after{position:absolute;left:70px;width:11px;height:11px;margin-top:2px;border:3px solid var(--agenda-background);border-radius:50%;background:var(--agenda-primary);content:""}.agenda-event{display:grid;min-width:0;min-height:76px;grid-template-columns:4px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 13px;overflow:hidden;border:1px solid transparent;border-radius:11px;color:var(--agenda-ink);background:var(--agenda-surface-low);font:inherit;text-align:left;cursor:pointer}.agenda-event:hover,.agenda-event:focus-visible{border-color:var(--agenda-primary);box-shadow:0 5px 15px #2346d51f}.agenda-event__accent{width:3px;height:100%;border-radius:999px;background:var(--agenda-primary)}.agenda-event__content{display:grid;min-width:0;gap:4px}.agenda-event__content strong,.agenda-event__content small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-event__content strong{font-size:.92rem}.agenda-event__content small{color:var(--agenda-muted);font-size:.72rem}.agenda-event__badge{padding:4px 6px;border-radius:999px;color:var(--agenda-muted);background:var(--agenda-surface-high);font-size:.63rem}.agenda-event--busy{border-color:#c4c5d7cc;background:repeating-linear-gradient(-45deg,#f3f1fb,#f3f1fb 8px,#ebe9f5 8px 16px)}.agenda-event--busy .agenda-event__accent{background:#9b9cac}.agenda-event.has-conflict{box-shadow:inset 0 0 0 1px #ba1a1a29}.agenda-now{display:grid;position:relative;z-index:2;grid-column:1 / -1;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:22px;min-height:28px;color:var(--agenda-primary);font-size:.68rem;font-weight:750}.agenda-now i{display:block;height:2px;background:var(--agenda-primary)}.agenda-week__hint{display:flex;align-items:center;gap:6px;margin:0 0 10px;color:var(--agenda-muted);font-size:.72rem}.agenda-week__hint svg{transform:rotate(-90deg)}.agenda-week__scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--agenda-outline);border-radius:10px;background:var(--agenda-surface);scrollbar-width:thin}.agenda-week__grid{display:grid;width:max-content;min-width:100%;grid-template-columns:repeat(7,minmax(138px,1fr))}.agenda-week__day{min-height:530px;border-right:1px solid var(--agenda-outline)}.agenda-week__day:last-child{border-right:0}.agenda-week__day>header{display:grid;min-height:62px;place-items:center;padding:7px;border-bottom:1px solid var(--agenda-outline);background:var(--agenda-surface-low)}.agenda-week__day>header span{color:var(--agenda-muted);font-size:.67rem;text-transform:uppercase}.agenda-week__day>header strong{color:var(--agenda-primary);font-size:1.15rem}.agenda-week__day>div{display:grid;align-content:start;gap:10px;padding:10px 7px}.agenda-week__slot{display:grid;gap:4px}.agenda-week__slot>time{padding:0;color:var(--agenda-muted);font-size:.65rem}.agenda-event.is-compact{min-height:68px;grid-template-columns:3px minmax(0,1fr);gap:7px;padding:8px}.agenda-event.is-compact .agenda-event__badge{display:none}.agenda-event.is-compact .agenda-event__content strong{font-size:.75rem}.agenda-event.is-compact .agenda-event__content small{font-size:.62rem}.agenda-week__free{padding-top:8px;color:#9a9baa;font-size:.68rem;text-align:center}.agenda-month{display:grid;gap:14px}.agenda-month__calendar{padding:12px;border:1px solid var(--agenda-outline);border-radius:10px;background:var(--agenda-surface)}.agenda-month__weekdays,.agenda-month__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.agenda-month__weekdays span{padding:5px 0 9px;color:var(--agenda-muted);font-size:.59rem;font-weight:800;text-align:center}.agenda-month__days>span,.agenda-month__days>button{display:grid;min-width:0;min-height:48px;place-items:center;padding:4px 2px;border:0;border-radius:8px;color:var(--agenda-ink);background:transparent;font:inherit;font-size:.75rem}.agenda-month__days>span.is-outside{color:#b2b1bd}.agenda-month__days>button{cursor:pointer}.agenda-month__days>button.is-selected{color:#fff;background:var(--agenda-primary)}.agenda-month__days button i{display:flex;min-height:5px;gap:2px}.agenda-month__days button b{width:4px;height:4px;border-radius:50%;background:var(--agenda-primary)}.agenda-month__days button.is-selected b{background:#fff}.agenda-month__days button b.is-busy{background:#9b2c45}.agenda-month__summary{display:grid;gap:10px;padding:13px;border-radius:10px;background:var(--agenda-surface-low)}.agenda-month__summary h2{margin:0;font-family:inherit;font-size:.85rem;font-weight:650}.agenda-month__summary>p{margin:8px 0;color:var(--agenda-muted);font-size:.8rem}.agenda-month__item{display:grid;grid-template-columns:60px minmax(0,1fr);gap:10px}.agenda-month__item>time{padding-top:13px;font-size:.67rem}.agenda-loading,.agenda-state,.agenda-empty{display:grid;justify-items:center;gap:10px;min-height:280px;align-content:center;color:var(--agenda-muted);text-align:center}.agenda-loading{grid-template-columns:repeat(3,10px)}.agenda-loading>span{width:10px;height:10px;border-radius:50%;background:var(--agenda-primary-soft)}.agenda-loading p{grid-column:1 / -1;margin:2px 0 0;font-size:.8rem}.agenda-empty{padding-top:18px}.agenda-empty__icon{display:grid;width:150px;height:150px;place-items:center;border-radius:50%;color:#8793e6;background:var(--agenda-surface-low)}.agenda-empty strong{max-width:30ch;color:var(--agenda-ink);font-size:clamp(1.25rem,5vw,1.7rem);line-height:1.15}.agenda-empty button{display:inline-flex;align-items:center;gap:7px;padding:0 16px;border:1px solid var(--agenda-outline);border-radius:999px;color:var(--agenda-ink);background:var(--agenda-surface-high)}.agenda-state--error{min-height:250px;padding:24px;border-radius:10px;background:#fff0ee}.agenda-state--error strong{color:#76201c}.agenda-state--error .button,.agenda-state--error button{min-width:150px;padding-inline:18px;border-radius:999px;color:#fff;background:var(--agenda-primary)}.agenda-stale-warning{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:10px 12px;border-radius:8px;color:#634f00;background:#fff2b3;font-size:.76rem}.agenda-stale-warning button{flex:none;color:inherit;text-decoration:underline}.agenda-fab{position:fixed;z-index:24;right:max(20px,calc((100vw - 780px)/2 + 20px));bottom:calc(94px + env(safe-area-inset-bottom));display:inline-flex;min-height:56px;align-items:center;gap:9px;padding:13px 22px;border:0;border-radius:999px;color:#fff;background:var(--agenda-primary);box-shadow:0 8px 24px #2346d547;font:inherit;font-weight:700;cursor:pointer}.agenda-sheet-backdrop{z-index:40;align-items:center;justify-content:flex-end;flex-direction:column;background:#191a286b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.agenda-quick-add,.agenda-drawer{width:min(780px,100%);max-height:90vh;overflow-y:auto;padding:12px 28px calc(30px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;color:var(--agenda-ink);background:var(--agenda-background);box-shadow:0 -12px 42px #191a2833}.agenda-sheet__handle{width:72px;height:6px;margin:0 auto 3px;border-radius:999px;background:var(--agenda-surface-high)}.agenda-quick-add>header,.agenda-drawer>header{display:flex;min-height:50px;align-items:center;justify-content:space-between;gap:16px}.agenda-quick-add>header{justify-content:flex-end}.agenda-sheet__close{display:grid;width:48px;height:48px;place-items:center;border:0;border-radius:50%;color:#4f5061;background:var(--agenda-surface-low);cursor:pointer}.agenda-quick-add>p,.agenda-drawer>header>span{color:#6e6f7f;font-size:.72rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.agenda-quick-add>p{margin:12px 0 0;text-align:center}.agenda-drawer>header>span{color:#8a001f}.agenda-quick-add h2,.agenda-drawer h2{margin:6px 0 22px;font-family:inherit;font-size:clamp(1.75rem,7vw,2.4rem);letter-spacing:-.04em;line-height:1.12;overflow-wrap:anywhere}.agenda-quick-add h2{text-align:center}.agenda-quick-add__options{display:grid;gap:10px}.agenda-quick-add__option{display:grid;min-height:82px;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:16px;padding:12px 14px;border:1px solid rgba(196,197,215,.6);border-radius:12px;color:var(--agenda-ink);background:var(--agenda-surface);text-decoration:none}.agenda-quick-add__option>span:first-child{display:grid;width:54px;height:54px;place-items:center;border-radius:10px;color:var(--agenda-primary);background:#eff0ff}.agenda-quick-add__option.is-task>span:first-child{color:#292a38;background:#e6e5f7}.agenda-quick-add__option.is-shopping>span:first-child{color:#83002a;background:#ffd9dd}.agenda-quick-add__option.is-habit>span:first-child{color:#004c38;background:#54fdc4}.agenda-quick-add__option>span:last-child{display:grid;gap:4px}.agenda-quick-add__option small{color:var(--agenda-muted)}.agenda-drawer__facts{display:grid;gap:8px;padding:15px;border:1px solid #dddafe;border-radius:10px;background:var(--agenda-surface)}.agenda-drawer__facts p{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;margin:0}.agenda-drawer__facts p>svg{color:var(--agenda-primary)}.agenda-drawer__facts p>span{display:grid;gap:2px;font-size:.84rem}.agenda-drawer__facts small{color:var(--agenda-muted);font-size:.67rem}.agenda-drawer__privacy,.agenda-drawer__notes{margin:16px 0 0;color:var(--agenda-muted);font-size:.78rem}.agenda-drawer__notes{display:grid;gap:3px}.agenda-drawer__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:22px}.agenda-drawer__actions .button{display:inline-flex;min-height:52px;align-items:center;justify-content:center;gap:7px;border-radius:9px}.agenda-drawer__actions .button--primary{background:var(--agenda-primary)}.agenda-drawer__actions .button--secondary{color:var(--agenda-ink);border-color:transparent;background:var(--agenda-surface-high)}.agenda-drawer__actions .agenda-drawer__map{grid-column:1 / -1;min-height:44px;color:var(--agenda-primary);background:transparent}@media(max-width:420px){.agenda-page{padding-inline:12px}.agenda-filters{gap:4px}.agenda-filters button{padding-inline:3px;font-size:.66rem}.agenda-timeline__row{grid-template-columns:55px minmax(0,1fr);gap:17px}.agenda-timeline:before{left:62px}.agenda-timeline__row>time:after{left:57px}.agenda-now{grid-template-columns:55px minmax(0,1fr);gap:17px}.agenda-event__badge{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}.app-shell--access{--t01-bg: #fbf8ff;--t01-surface: #ffffff;--t01-surface-low: #f4f2ff;--t01-surface-mid: #eeecff;--t01-surface-high: #e8e6fa;--t01-outline: #c4c5d7;--t01-ink: #191a28;--t01-muted: #444655;--t01-primary: #2346d5;--t01-primary-soft: #dee1ff;--t01-success: #006c4f;--t01-success-soft: #51fac1;--t01-error: #93000a;--t01-error-soft: #ffdad6;width:100%;min-height:100dvh;margin:0;overflow:visible;border:0;border-radius:0;color:var(--t01-ink);background:radial-gradient(circle at 100% 0%,rgba(222,225,255,.65),transparent 35%),radial-gradient(circle at 0% 100%,rgba(81,250,193,.28),transparent 38%),var(--t01-bg);box-shadow:none}.app-shell--access>.app-header,.app-shell--access>.app-navigation,.app-shell--access>.app-footer{display:none}.app-shell--access>.app-content{display:block;width:100%;padding:0}.app-shell--access .t01-page{position:relative;display:block;width:min(100%,780px);min-height:100dvh;margin:0 auto;overflow-x:clip;color:var(--t01-ink);background:transparent;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.app-shell--access .t01-brand-header{position:sticky;z-index:20;top:0;display:grid;min-height:64px;grid-template-columns:44px 1fr 44px;align-items:center;padding:env(safe-area-inset-top) 20px 0;border-bottom:1px solid rgba(196,197,215,.72);background:#fbf8fff0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-shell--access .access-page .t01-brand-header:not(:has(.t01-brand-header__back)){border-bottom-color:transparent;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.app-shell--access .t01-brand-header__name{color:var(--t01-primary);font-family:Plus Jakarta Sans,Inter,ui-sans-serif,sans-serif;font-size:1rem;font-weight:750;letter-spacing:-.02em;text-align:center}.app-shell--access .t01-brand-header__back{display:grid;width:44px;min-height:44px;place-items:center;padding:0;border:0;border-radius:50%;color:var(--t01-ink);background:transparent;cursor:pointer;font-size:1.25rem}.app-shell--access .t01-canvas{display:flex;width:min(100%,430px);min-height:calc(100dvh - 64px);margin:0 auto;flex-direction:column;justify-content:center;gap:24px;padding:24px 20px calc(28px + env(safe-area-inset-bottom))}.app-shell--access .t01-page--bare .t01-canvas{min-height:100dvh}.app-shell--access [tabindex="-1"]:focus{outline:none}.app-shell--access .t01-canvas--access{width:min(100%,420px)}.app-shell--access .t01-welcome{text-align:center}.app-shell--access .t01-welcome h1,.app-shell--access .t01-form-card>h1,.app-shell--access .t01-state-card>h1,.app-shell--access .linking-panel h1,.app-shell--access .linking-intro h1,.app-shell--access .invitation-card h1,.app-shell--access .linking-page--complete h1{margin:0;color:var(--t01-ink);font-family:Plus Jakarta Sans,Inter,ui-sans-serif,sans-serif;font-size:clamp(1.75rem,7vw,2rem);font-weight:700;letter-spacing:-.035em;line-height:1.2}.app-shell--access .t01-welcome h1{color:var(--t01-primary);font-size:clamp(1.45rem,6vw,1.75rem)}.app-shell--access .t01-welcome p{margin:8px 0 0;color:var(--t01-muted);font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:1rem}.app-shell--access .access-card,.app-shell--access .linking-panel,.app-shell--access .invitation-card{width:100%;padding:24px;border:1px solid rgba(196,197,215,.8);border-radius:12px;color:var(--t01-ink);background:#ffffffd1;box-shadow:0 8px 32px #191a280d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-shell--access .t01-form-card,.app-shell--access .t01-state-card{display:flex;flex-direction:column;gap:20px}.app-shell--access .t01-form-card>h1{margin-bottom:4px;text-align:center}.app-shell--access .access-card__hint,.app-shell--access .linking-intro p,.app-shell--access .linking-panel>p,.app-shell--access .t01-invite-outcome>p{margin:0;color:var(--t01-muted);font-size:.875rem;line-height:1.5}.app-shell--access .access-form{display:grid;gap:14px}.app-shell--access .form-field{display:grid;gap:6px}.app-shell--access .form-field label,.app-shell--access .t01-eyebrow{margin:0;color:var(--t01-muted);font-family:Inter,ui-sans-serif,sans-serif;font-size:.7rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.app-shell--access .form-field input{width:100%;min-height:52px;padding:12px 14px;border:1px solid var(--t01-outline);border-radius:8px;color:var(--t01-ink);background:#ffffffe6;font:inherit}.app-shell--access .form-field input::placeholder{color:#747686}.app-shell--access .form-field input[aria-invalid=true]{border-color:var(--t01-error)}.app-shell--access .form-field input:focus-visible,.app-shell--access button:focus-visible,.app-shell--access a:focus-visible{outline:3px solid rgba(35,70,213,.28);outline-offset:2px}.app-shell--access .form-field small,.app-shell--access .t01-field-note,.app-shell--access .delivery-note,.app-shell--access .rate-note,.app-shell--access .copy-feedback{margin:0;color:var(--t01-muted);font-size:.78rem;line-height:1.45}.app-shell--access .t01-field-note{margin-top:-8px}.app-shell--access .form-error{color:var(--t01-error);font-size:.78rem;line-height:1.4}.app-shell--access .password-field{position:relative}.app-shell--access .password-field input{padding-right:84px}.app-shell--access .password-field__toggle{position:absolute;top:4px;right:4px;min-width:68px;min-height:44px!important;padding:6px 10px;border:0;color:var(--t01-primary);background:transparent;font-size:.78rem}.app-shell--access .button{min-height:48px;border-radius:999px;font-family:Plus Jakarta Sans,Inter,sans-serif;font-weight:700}.app-shell--access .button--primary{color:#fff;background:var(--t01-primary)}.app-shell--access .button--secondary{color:var(--t01-primary);border-color:#2346d552;background:var(--t01-surface-low)}.app-shell--access .button--quiet{color:var(--t01-primary);border-color:transparent;background:transparent}.app-shell--access .t01-text-action{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:8px 10px;border:0;border-radius:999px;color:var(--t01-primary);background:transparent;cursor:pointer;font:inherit;font-size:.82rem}.app-shell--access .t01-text-action--leading{width:max-content;max-width:100%;justify-content:flex-start;margin:-4px 0 0 -10px}.app-shell--access .t01-privacy-note{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;padding:14px;border:1px solid rgba(35,70,213,.3);border-radius:8px;color:var(--t01-muted);background:var(--t01-surface-low)}.app-shell--access .t01-privacy-note p{margin:0;font-size:.78rem;line-height:1.45}.app-shell--access .t01-privacy-note__icon{display:grid;width:22px;height:22px;place-items:center;color:var(--t01-primary);font-size:1rem}.app-shell--access .t01-state-icon{display:grid;width:52px;height:52px;flex:0 0 52px;place-items:center;border-radius:50%;color:var(--t01-primary);background:var(--t01-primary-soft);font-size:1.35rem;font-weight:800}.app-shell--access .t01-state-icon--success{color:var(--t01-primary);box-shadow:0 0 28px #2346d529}.app-shell--access .t01-state-icon--error{color:var(--t01-error);background:var(--t01-error-soft)}.app-shell--access .t01-state-icon--neutral{color:var(--t01-muted);background:var(--t01-surface-high)}.app-shell--access .form-feedback{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:12px 14px;border:1px solid rgba(0,108,79,.2);border-left:3px solid var(--t01-success);border-radius:8px;color:var(--t01-success);background:#51fac124;font-size:.82rem;line-height:1.45}.app-shell--access .form-feedback--error{color:var(--t01-error);border-color:#93000a33;border-left-color:var(--t01-error);background:var(--t01-error-soft)}.app-shell--access .form-feedback--compact{margin-bottom:14px}.app-shell--access .t01-live-state{margin:0;color:var(--t01-muted)}.app-shell--access .linking-page,.app-shell--access .linking-page--complete{display:block;width:min(100%,780px)}.app-shell--access .linking-flow{display:grid;gap:20px}.app-shell--access .linking-intro{position:static;display:grid;gap:10px}.app-shell--access .linking-choice{display:grid;gap:14px}.app-shell--access .linking-choice>div:first-child{display:grid;gap:8px;margin-bottom:2px}.app-shell--access .choice-button{display:grid;gap:5px;width:100%;min-height:72px;padding:14px 16px;border:1px solid var(--t01-outline);border-radius:12px;color:var(--t01-ink);background:var(--t01-surface-low);cursor:pointer;text-align:left}.app-shell--access .choice-button:hover,.app-shell--access .choice-button:focus-visible{border-color:var(--t01-primary);background:var(--t01-primary-soft)}.app-shell--access .choice-button strong{font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:.95rem}.app-shell--access .choice-button span{color:var(--t01-muted);font-size:.78rem;line-height:1.4}.app-shell--access .linking-actions,.app-shell--access .invitation-card__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.app-shell--access .linking-actions--wrap{justify-content:flex-start;flex-wrap:wrap}.app-shell--access .linking-actions .button{flex:1 1 132px}.app-shell--access .linking-panel--accept{display:grid;gap:14px}.app-shell--access .linking-panel--accept>.access-form{margin-top:8px}.app-shell--access .t01-invite-outcome{display:grid;gap:14px}.app-shell--access .t01-invite-outcome h2{margin:0;color:var(--t01-ink);font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:1.75rem;line-height:1.2}.app-shell--access .invitation-card{display:grid;gap:16px;padding:0;border:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.app-shell--access .invitation-card__header{align-items:flex-start}.app-shell--access .invitation-card__header>div{display:grid;gap:6px}.app-shell--access .invitation-card__recipient{margin:0;color:var(--t01-muted);font-size:.88rem}.app-shell--access .invitation-code{margin:0;padding:16px;border:1px dashed rgba(35,70,213,.45);border-radius:12px;color:var(--t01-primary);background:var(--t01-surface-low);font-family:SFMono-Regular,Consolas,monospace;font-size:clamp(1.65rem,10vw,2.5rem);font-weight:800;letter-spacing:.16em;text-align:center}.app-shell--access .invitation-code-field input{font-family:SFMono-Regular,Consolas,monospace;font-size:1.2rem;font-weight:750;letter-spacing:.16em;text-transform:uppercase}.app-shell--access .invitation-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.app-shell--access .invitation-meta div{padding:12px;border-radius:8px;background:var(--t01-surface-low)}.app-shell--access .invitation-meta dt{color:var(--t01-muted);font-size:.66rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.app-shell--access .invitation-meta dd{margin:5px 0 0;font-size:.82rem;font-weight:650}.app-shell--access .refresh-link{width:100%;margin-top:12px}.app-shell--access .t01-canvas--complete{align-items:center;text-align:center}.app-shell--access .t01-canvas--complete>.t01-state-icon{width:72px;height:72px;flex-basis:72px;font-size:1.8rem}.app-shell--access .couple-occupancy{position:relative;display:block;width:100%;margin:0;padding:34px 20px 20px;border:1px solid rgba(196,197,215,.7);border-radius:12px;background:var(--t01-surface)}.app-shell--access .couple-occupancy__status{position:absolute;top:12px;right:12px;width:auto;height:auto;padding:5px 9px;border-radius:999px;color:var(--t01-muted);background:var(--t01-surface-high);font-size:.68rem;font-weight:750}.app-shell--access .couple-occupancy__people{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:24px}.app-shell--access .couple-occupancy__people:before{position:absolute;top:31px;left:50%;width:84px;height:2px;background:var(--t01-outline);content:"";transform:translate(-50%)}.app-shell--access .couple-person{position:relative;z-index:1;display:grid;justify-items:center;gap:10px;min-width:0}.app-shell--access .couple-person__avatar{display:grid;width:64px;height:64px;place-items:center;border:3px solid var(--t01-surface);border-radius:50%;font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:1.5rem;font-weight:700}.app-shell--access .couple-person__avatar--1{color:#fff0f1;background:#cf2e59}.app-shell--access .couple-person__avatar--2{color:#007152;background:var(--t01-success-soft)}.app-shell--access .couple-person strong{max-width:100%;overflow-wrap:anywhere;font-size:.8rem;font-weight:500}.app-shell--access .t01-canvas--complete>.button,.app-shell--access .t01-canvas--complete>.t01-text-action{width:100%}@media(max-width:370px){.app-shell--access .t01-brand-header,.app-shell--access .t01-canvas{padding-inline:12px}.app-shell--access .access-card,.app-shell--access .linking-panel{padding:18px}.app-shell--access .invitation-meta{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.app-shell--access *,.app-shell--access *:before,.app-shell--access *:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell--tasks{--today-background: #fbf8ff;--today-surface: #ffffff;--today-surface-low: #f4f2ff;--today-surface-high: #e8e6fa;--today-outline: #c4c5d7;--today-ink: #191a28;--today-muted: #5f6070;--today-primary: #2346d5;--tasks-background: #fbf8ff;--tasks-surface: #ffffff;--tasks-surface-low: #f4f2ff;--tasks-surface-high: #e8e6fa;--tasks-outline: #c4c5d7;--tasks-ink: #191a28;--tasks-muted: #5f6070;--tasks-primary: #2346d5;--tasks-primary-soft: #dee1ff;--tasks-secondary: #006c4f;--tasks-secondary-soft: #d9ffef;--tasks-error: #ba1a1a;--tasks-error-soft: #ffdad6;display:block;width:100%;min-height:100vh;margin:0;overflow:visible;border:0;border-radius:0;background:var(--tasks-background);box-shadow:none}.app-shell--tasks>.app-header,.app-shell--tasks>.app-navigation,.app-shell--tasks>.app-footer{display:none}.app-shell--tasks .app-content{display:block;padding:0}.tasks-page{width:min(780px,100%);min-height:100vh;margin:0 auto;overflow-x:hidden;padding:24px 22px calc(178px + env(safe-area-inset-bottom));color:var(--tasks-ink);background:var(--tasks-background);font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,sans-serif}.tasks-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 18px;padding-bottom:18px;border-bottom:1px solid #e2e1f4}.tasks-hero>div>p,.tasks-hero>div>h1,.tasks-hero>p{margin:0}.tasks-hero>div>p{margin-bottom:4px;color:var(--tasks-primary);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.68rem;font-weight:760;letter-spacing:.12em;text-transform:uppercase}.tasks-page .tasks-hero h1{margin:0;color:var(--tasks-ink);font-family:inherit;font-size:clamp(1.75rem,7vw,2.15rem);font-weight:700;letter-spacing:-.04em;line-height:1.05}.tasks-hero>p{grid-column:1 / -1;color:var(--tasks-muted);font-size:.82rem;line-height:1.45}.tasks-avatar{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;color:#fff;background:var(--tasks-primary);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.76rem;font-weight:750;text-decoration:none}.tasks-content{display:grid;gap:18px;padding-top:18px}.tasks-page .task-groups{display:grid;gap:24px}.tasks-page .task-group{padding:0;border:0;border-radius:0;background:transparent}.tasks-page .task-group>header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}.tasks-page .task-group>header>div{display:grid;gap:2px}.tasks-page .task-group>header h2,.tasks-page .task-group__toggle strong{margin:0;color:var(--tasks-ink);font-family:inherit;font-size:1rem;font-weight:700}.tasks-page .task-group--overdue>header h2{color:var(--tasks-error)}.tasks-page .task-group--today>header h2{color:var(--tasks-primary)}.tasks-page .task-group>header small,.tasks-page .task-group__toggle small{color:var(--tasks-muted);font-size:.69rem;line-height:1.35}.tasks-page .task-group>header>span{display:grid;min-width:28px;min-height:24px;place-items:center;padding-inline:8px;border-radius:999px;color:var(--tasks-primary);background:var(--tasks-primary-soft);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.67rem;font-weight:750}.tasks-page .task-group--overdue>header>span{color:#fff;background:var(--tasks-error)}.tasks-page .task-list{position:relative;display:grid;gap:6px;margin-top:0}.tasks-page .task-list:before{position:absolute;z-index:0;top:20px;bottom:20px;left:21px;width:2px;border-radius:999px;background:#2346d521;content:""}.tasks-page .task-group--overdue .task-list:before{background:#ba1a1a29}.tasks-page .task-row--timeline{position:relative;z-index:1;display:grid;min-width:0;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 10px;border:1px solid rgba(196,197,215,.58);border-radius:9px;background:var(--tasks-surface)}.tasks-page .task-row--timeline:focus{outline:3px solid rgba(35,70,213,.28);outline-offset:2px}.tasks-page .task-row--timeline.task-row--completed{background:#f4f2ffbf}.tasks-page .task-row__control{display:grid;width:44px;min-height:44px;place-items:center}.tasks-page .task-row--timeline .task-check{display:grid;width:44px;height:44px;place-items:center;padding:0;border:0;border-radius:50%;color:var(--tasks-primary);background:var(--tasks-surface-low);cursor:pointer}.tasks-page .task-row--timeline .task-check:before{width:22px;height:22px;border:1.5px solid #747686;border-radius:50%;content:""}.tasks-page .task-row--timeline .task-check--completed{color:#006c4f;background:#d9ffef;cursor:default}.tasks-page .task-row--timeline .task-check--completed:before,.tasks-page .task-row--timeline .task-check--locked:before{display:none}.tasks-page .task-row--timeline .task-check--locked{color:#747686;background:#eeecff;font-size:1.25rem;cursor:default}.tasks-page .task-row--timeline .task-row__content{display:grid;min-width:0;gap:4px}.tasks-page .task-row--timeline .task-row__title{display:flex;min-height:44px;align-items:center;margin-block:-11px;padding-block:11px;overflow:hidden;color:var(--tasks-ink);font-size:.9rem;font-weight:650;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.tasks-page .task-row--timeline .task-row__due{color:var(--tasks-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.7rem;font-weight:600}.tasks-page .task-group--overdue .task-row__due{color:var(--tasks-error)}.tasks-page .task-row--timeline .task-row__meta{display:flex;min-width:0;align-items:center;gap:5px;flex-wrap:wrap}.tasks-page .task-row__visibility,.tasks-page .task-row__recurrence,.tasks-page .task-row--timeline .task-parent-link{display:inline-flex;min-height:22px;align-items:center;padding:3px 7px;border-radius:4px;color:#0031c4;background:var(--tasks-primary-soft);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.58rem;font-weight:700;letter-spacing:.035em;line-height:1.25;text-decoration:none;text-transform:uppercase}.tasks-page .task-row--timeline .task-parent-link{min-height:44px;margin-block:-11px;padding-block:11px;color:#00513b;background:#51fac1}.tasks-page .task-row__recurrence{color:#444655;background:#e2e1f4}.tasks-page .task-row__actions{display:flex;min-height:44px;align-items:center;gap:2px}.tasks-page .task-row__detail,.tasks-page .task-row__restore{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;border:0;border-radius:50%;color:var(--tasks-primary);background:transparent;text-decoration:none;cursor:pointer}.tasks-page .task-row__detail{font-size:1.65rem;font-weight:400}.tasks-page .task-row__restore{flex-direction:column;font-size:.55rem;font-weight:700}.tasks-page .task-group--completed{overflow:hidden;border:1px solid rgba(196,197,215,.58);border-radius:9px;background:var(--tasks-surface-low)}.tasks-page .task-group__toggle{display:grid;width:100%;min-height:58px;grid-template-columns:34px minmax(0,1fr) 44px;align-items:center;gap:8px;padding:7px 8px 7px 12px;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.tasks-page .task-group__toggle>span:nth-child(2){display:grid;gap:1px}.tasks-page .task-group__toggle>span:last-child{display:grid;min-width:44px;min-height:44px;place-items:center;color:var(--tasks-primary);font-size:1.1rem}.tasks-page .task-group__completed-icon{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;color:var(--tasks-muted);background:#e2e1f4}.tasks-page .task-group__completed-content{display:grid;gap:10px;padding:0 8px 8px}.tasks-page .task-inline-state,.tasks-unavailable{margin:8px 0 0;padding:13px;border-radius:8px;color:var(--tasks-muted);background:var(--tasks-surface-low);font-size:.78rem;line-height:1.45}.tasks-page .task-inline-state--error,.tasks-unavailable{display:grid;gap:5px;color:#93000a;background:var(--tasks-error-soft)}.tasks-page .task-inline-state--stale{color:#5e4500;background:#fff4d8}.tasks-page .task-inline-state button,.tasks-page .task-load-more{min-height:44px;padding:8px 12px;border:0;border-radius:7px;color:var(--tasks-primary);background:transparent;font-weight:700;cursor:pointer}.tasks-page .task-load-more{justify-self:center;border:1px solid var(--tasks-outline);background:var(--tasks-surface)}.tasks-loading{display:grid;gap:7px}.tasks-loading>span{display:block;height:68px;border-radius:9px;background:linear-gradient(100deg,#f4f2ff 20%,#e8e6fa,#f4f2ff 64%);background-size:200% 100%;animation:tasks-shimmer 1.2s linear infinite}@keyframes tasks-shimmer{to{background-position-x:-200%}}.tasks-refreshing{display:inline-block;margin:0 0 6px;color:var(--tasks-muted);font-size:.68rem}.tasks-empty{display:flex;min-height:min(54vh,500px);align-items:center;justify-content:center;flex-direction:column;padding:48px 22px;text-align:center}.tasks-empty__icon{display:grid;width:96px;height:96px;margin-bottom:22px;place-items:center;border:1px solid rgba(196,197,215,.42);border-radius:50%;color:var(--tasks-primary);background:#eeecff}.tasks-empty strong{font-size:1.05rem;font-weight:650}.tasks-empty p{max-width:310px;margin:8px 0 0;color:var(--tasks-muted);font-size:.78rem;line-height:1.5}.tasks-feedback{position:fixed;z-index:26;right:max(18px,calc((100vw - 780px)/2 + 18px));bottom:calc(164px + env(safe-area-inset-bottom));left:max(18px,calc((100vw - 780px)/2 + 18px));display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px 9px 15px;border-radius:8px;color:#f1efff;background:#2e2f3e;box-shadow:0 8px 24px #191a283d;font-size:.78rem;font-weight:600}.tasks-feedback.is-error{background:#93000a}.tasks-feedback button{min-width:72px;min-height:44px;padding:6px 10px;border:0;border-radius:6px;color:#bac3ff;background:transparent;font-size:.68rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.tasks-fab{position:fixed;z-index:24;right:max(20px,calc((100vw - 780px)/2 + 20px));bottom:calc(94px + env(safe-area-inset-bottom));display:inline-flex;min-height:56px;align-items:center;gap:8px;padding:12px 20px;border:0;border-radius:16px;color:#fff;background:var(--tasks-primary);box-shadow:0 8px 24px #2346d545;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.78rem;font-weight:700;cursor:pointer}.tasks-sheet-backdrop{z-index:40;align-items:center;justify-content:flex-end;flex-direction:column;background:#191a2873;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.tasks-quick-add{width:min(430px,100%);max-height:90vh;overflow-y:auto;padding:12px 28px calc(30px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;color:var(--tasks-ink);background:var(--tasks-background);box-shadow:0 -12px 42px #191a2833}.tasks-sheet__handle{width:64px;height:5px;margin:0 auto 2px;border-radius:999px;background:var(--tasks-outline)}.tasks-quick-add>header{display:flex;min-height:50px;align-items:center;justify-content:space-between;gap:12px}.tasks-quick-add>header p{margin:0;color:var(--tasks-primary);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.67rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.tasks-sheet__close{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:50%;color:var(--tasks-ink);background:transparent;cursor:pointer}.tasks-quick-add h2{margin:0 0 14px;font-family:inherit;font-size:1.75rem;letter-spacing:-.045em;line-height:1.05}.tasks-quick-add__options{display:grid;gap:10px}.tasks-quick-add__option{display:grid;min-height:82px;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:16px;padding:12px 14px;border-radius:9px;color:var(--tasks-ink);background:#eeecff;text-decoration:none}.tasks-quick-add__option>span:first-child{display:grid;width:54px;height:54px;place-items:center;border-radius:50%;color:var(--tasks-primary);background:#dee1ff}.tasks-quick-add__option.is-task>span:first-child{color:#006c4f;background:#51fac1}.tasks-quick-add__option.is-shopping>span:first-child{color:#93000a;background:#ffdad6}.tasks-quick-add__option.is-habit>span:first-child{color:#444655;background:#e2e1f4}.tasks-quick-add__option>span:last-child{display:grid;gap:2px}.tasks-quick-add__option strong{font-size:.9rem}.tasks-quick-add__option small{color:var(--tasks-muted);font-size:.7rem}.tasks-unavailable{margin:24px 0}.tasks-unavailable p{margin:0}@media(max-width:520px){.tasks-page{padding-inline:12px}.tasks-page .task-row--timeline{grid-template-columns:44px minmax(0,1fr) 44px;gap:7px;padding-inline:7px}.tasks-page .task-row__restore span{display:none}.tasks-page .task-row__actions{flex-direction:column}.tasks-page .task-row--completed .task-row__actions{min-height:88px}}@media(prefers-reduced-motion:reduce){.tasks-loading>span{animation:none}}.app-shell--shopping{--today-background: #fbf8ff;--today-surface: #ffffff;--today-surface-low: #f4f2ff;--today-surface-high: #e8e6fa;--today-outline: #c4c5d7;--today-ink: #191a28;--today-muted: #5f6070;--today-primary: #2346d5;--shopping-background: #fbf8ff;--shopping-surface: #ffffff;--shopping-surface-low: #f4f2ff;--shopping-surface-high: #e8e6fa;--shopping-outline: #c4c5d7;--shopping-ink: #191a28;--shopping-muted: #5f6070;--shopping-primary: #2346d5;--shopping-primary-soft: #dee1ff;--shopping-secondary: #006c4f;--shopping-error: #ba1a1a;--shopping-error-soft: #ffdad6;display:block;width:100%;min-height:100vh;margin:0;overflow:visible;border:0;border-radius:0;background:var(--shopping-background);box-shadow:none}.app-shell--shopping>.app-header,.app-shell--shopping>.app-navigation,.app-shell--shopping>.app-footer{display:none}.app-shell--shopping .app-content{display:block;padding:0}.app-shell--shopping .shopping-page,.app-shell--shopping .shopping-unavailable{width:min(780px,100%);min-height:100vh;margin:0 auto;overflow-x:hidden;padding:20px 20px calc(178px + env(safe-area-inset-bottom));color:var(--shopping-ink);background:var(--shopping-background);font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,sans-serif}.shopping-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 18px;padding-bottom:16px}.shopping-hero>div>p,.shopping-hero>div>h1,.shopping-hero>p{margin:0}.shopping-hero>div>p{margin-bottom:3px;color:var(--shopping-primary);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.68rem;font-weight:760;letter-spacing:.11em;text-transform:uppercase}.app-shell--shopping .shopping-hero h1,.app-shell--shopping .shopping-unavailable h1{margin:0;color:var(--shopping-ink);font-family:inherit;font-size:clamp(1.75rem,7vw,2.15rem);font-weight:700;letter-spacing:-.04em;line-height:1.05}.shopping-hero>p{grid-column:1 / -1;color:var(--shopping-muted);font-size:.78rem;line-height:1.45}.shopping-avatar{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;color:#fff;background:var(--shopping-primary);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.76rem;font-weight:750;text-decoration:none}.app-shell--shopping .shopping-tabs{display:flex;gap:8px;margin:0 -20px;padding:12px 20px;overflow-x:auto;border:solid var(--shopping-outline);border-width:1px 0;border-radius:0;background:var(--shopping-surface);scrollbar-width:none;scroll-snap-type:x proximity}.app-shell--shopping .shopping-tabs::-webkit-scrollbar{display:none}.app-shell--shopping .shopping-tabs a{display:inline-flex;min-width:max-content;min-height:44px;align-items:center;justify-content:center;padding:9px 16px;border:1px solid var(--shopping-outline);border-radius:999px;color:var(--shopping-muted);background:var(--shopping-background);font-size:.76rem;font-weight:500;scroll-snap-align:start;text-decoration:none}.app-shell--shopping .shopping-tabs a:hover,.app-shell--shopping .shopping-tabs a:focus-visible{color:var(--shopping-primary);background:var(--shopping-primary-soft)}.app-shell--shopping .shopping-tabs a.is-active{color:#fff;border-color:var(--shopping-primary);background:var(--shopping-primary);box-shadow:none;font-weight:700}.shopping-shared-notice{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:8px;margin:14px 0 0;padding:11px 13px;border:1px solid rgba(196,197,215,.55);border-radius:8px;color:var(--shopping-muted);background:var(--shopping-surface-low)}.shopping-shared-notice svg{margin-top:1px}.shopping-shared-notice p{margin:0;font-size:.68rem;line-height:1.45}.shopping-content{padding-top:18px}.app-shell--shopping .shopping-sections{display:grid;gap:24px}.app-shell--shopping .shopping-section{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.app-shell--shopping .shopping-section>header{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:8px}.app-shell--shopping .shopping-section>header h2{margin:0;color:var(--shopping-ink);font-family:inherit;font-size:1rem;font-weight:650}.app-shell--shopping .shopping-section>header>span{display:inline;min-width:0;min-height:0;padding:0;color:var(--shopping-muted);background:transparent;font-size:.7rem;font-weight:500}.app-shell--shopping .shopping-items{display:grid;gap:8px;margin:0}.app-shell--shopping .shopping-item{display:grid;min-width:0;min-height:64px;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:6px;padding:7px 8px;border:1px solid rgba(196,197,215,.58);border-radius:9px;color:var(--shopping-ink);background:var(--shopping-surface)}.app-shell--shopping .shopping-item:focus,.app-shell--shopping .shopping-item--focused{border-color:var(--shopping-primary);outline:3px solid rgba(35,70,213,.2);outline-offset:2px;box-shadow:none}.app-shell--shopping .shopping-item--purchased{color:var(--shopping-muted);background:#f4f2ffb8;opacity:.78}.app-shell--shopping .shopping-item--purchased strong{text-decoration:line-through;text-decoration-thickness:1px}.app-shell--shopping .shopping-check{display:grid;width:44px;height:44px;place-items:center;padding:0;border:0;border-radius:50%;color:#fff;background:transparent;cursor:pointer}.app-shell--shopping .shopping-check:before{width:22px;height:22px;border:1.5px solid #747686;border-radius:50%;content:""}.app-shell--shopping .shopping-check[aria-pressed=true]{color:#fff;background:transparent}.app-shell--shopping .shopping-check[aria-pressed=true]:before{display:none}.app-shell--shopping .shopping-check[aria-pressed=true]>svg{width:24px;height:24px;padding:3px;border-radius:50%;background:var(--shopping-secondary)}.app-shell--shopping .shopping-check:disabled{cursor:wait;opacity:.5}.shopping-item__edit{display:grid;min-width:0;min-height:48px;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:8px;color:inherit;text-decoration:none}.shopping-item__edit>span:last-child{display:grid;min-width:32px;min-height:44px;place-items:center;color:var(--shopping-muted);font-size:1.45rem}.app-shell--shopping .shopping-item__content{display:grid;min-width:0;gap:2px}.app-shell--shopping .shopping-item__content strong{overflow:hidden;color:inherit;font-size:.82rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.app-shell--shopping .shopping-item__content small{overflow:hidden;color:var(--shopping-muted);font-size:.68rem;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.app-shell--shopping .shopping-section--purchased{overflow:hidden;border:1px solid rgba(196,197,215,.6);border-radius:9px;background:var(--shopping-surface)}.app-shell--shopping .shopping-section__toggle{display:flex;width:100%;min-height:56px;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 6px 14px;border:0;color:var(--shopping-ink);background:transparent;cursor:pointer}.app-shell--shopping .shopping-section__toggle strong{margin:0;font-family:inherit;font-size:.82rem;font-weight:650}.app-shell--shopping .shopping-section__toggle>span{display:grid;min-width:44px;min-height:44px;place-items:center;color:var(--shopping-primary)}.app-shell--shopping .shopping-purchased-content{display:grid;gap:10px;padding:0 8px 10px}.app-shell--shopping .shopping-clear{width:fit-content;min-height:44px;margin:0;padding:8px 2px;border:0;color:var(--shopping-primary);background:transparent;font-size:.75rem;font-weight:650;cursor:pointer}.app-shell--shopping .shopping-empty{display:flex;min-height:min(48vh,430px);align-items:center;justify-content:center;flex-direction:column;gap:0;margin:0;padding:42px 20px;border:0;border-radius:0;color:var(--shopping-ink);background:transparent;text-align:center}.shopping-empty__icon,.shopping-unavailable__icon{display:grid;width:92px;height:92px;margin-bottom:20px;place-items:center;border-radius:50%;color:#8793e6;background:var(--shopping-surface-low)}.app-shell--shopping .shopping-empty strong{font-size:1rem;font-weight:650}.app-shell--shopping .shopping-empty p{max-width:290px;margin:8px 0 0;color:var(--shopping-muted);font-size:.72rem;line-height:1.55}.app-shell--shopping .shopping-inline-state{display:grid;gap:7px;margin:8px 0 18px;padding:13px;border:0;border-radius:8px;color:var(--shopping-muted);background:var(--shopping-surface-low);font-size:.76rem;line-height:1.45}.app-shell--shopping .shopping-inline-state--error{color:#93000a;background:var(--shopping-error-soft)}.app-shell--shopping .shopping-inline-state--error.is-stale{color:#5e4500;background:#fff4d8}.app-shell--shopping .shopping-inline-state button{min-height:44px;padding:8px 0;color:inherit;font-weight:700;text-align:left;text-decoration:underline}.app-shell--shopping .shopping-skeleton{display:grid;height:auto;gap:8px;border-radius:0;background:transparent}.app-shell--shopping .shopping-skeleton>span{display:block;height:64px;border-radius:9px;background:linear-gradient(100deg,#f4f2ff 20%,#e8e6fa,#f4f2ff 64%);background-size:200% 100%;animation:shopping-shimmer 1.2s linear infinite}@keyframes shopping-shimmer{to{background-position-x:-200%}}.shopping-feedback{position:fixed;z-index:26;right:max(18px,calc((100vw - 780px)/2 + 18px));bottom:calc(164px + env(safe-area-inset-bottom));left:max(18px,calc((100vw - 780px)/2 + 18px));display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px 8px 14px;border-radius:7px;color:#f1efff;background:#2e2f3e;box-shadow:0 8px 24px #191a283d;font-size:.72rem;font-weight:600}.shopping-feedback.is-error{background:#93000a}.shopping-feedback button{min-width:72px;min-height:44px;padding:6px 10px;border:0;color:#bac3ff;background:transparent;font-size:.65rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}.shopping-fab{position:fixed;z-index:24;right:max(20px,calc((100vw - 780px)/2 + 20px));bottom:calc(94px + env(safe-area-inset-bottom));display:inline-flex;min-height:56px;align-items:center;gap:8px;padding:12px 20px;border:0;border-radius:16px;color:#fff;background:var(--shopping-primary);box-shadow:0 8px 24px #2346d545;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.78rem;font-weight:700;cursor:pointer}.shopping-sheet-backdrop,.shopping-confirmation-backdrop{z-index:40;background:#191a2873;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.shopping-sheet-backdrop{align-items:center;justify-content:flex-end;flex-direction:column}.shopping-quick-add{width:min(430px,100%);max-height:90vh;overflow-y:auto;padding:12px 20px calc(30px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;color:var(--shopping-ink);background:var(--shopping-background);box-shadow:0 -12px 42px #191a2833}.shopping-sheet__handle{width:54px;height:5px;margin:0 auto 2px;border-radius:999px;background:var(--shopping-outline)}.shopping-quick-add>header{display:flex;min-height:50px;align-items:center;justify-content:space-between;gap:12px}.shopping-quick-add>header p{margin:0;color:var(--shopping-secondary);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.67rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.shopping-sheet__close{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:50%;color:var(--shopping-ink);background:var(--shopping-surface-low);cursor:pointer}.shopping-quick-add h2{margin:0 0 14px;font-size:1.18rem;font-weight:650;letter-spacing:-.025em}.shopping-quick-add__options{display:grid;gap:8px}.shopping-quick-add__option{display:grid;min-height:72px;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(196,197,215,.58);border-radius:14px;color:var(--shopping-ink);background:var(--shopping-surface-low);text-decoration:none}.shopping-quick-add__option>span:first-child{display:grid;width:48px;height:48px;place-items:center;border-radius:10px;color:var(--shopping-primary);background:var(--shopping-primary-soft)}.shopping-quick-add__option.is-task>span:first-child{color:var(--shopping-secondary);background:#d9ffef}.shopping-quick-add__option.is-shopping>span:first-child{color:#93000a;background:#ffdad6}.shopping-quick-add__option.is-habit>span:first-child{color:#444655;background:#e2e1f4}.shopping-quick-add__option>span:last-child{display:grid;gap:2px}.shopping-quick-add__option strong{font-size:.82rem}.shopping-quick-add__option small{color:var(--shopping-muted);font-size:.66rem;line-height:1.4}.shopping-confirmation-backdrop{display:flex;align-items:center;justify-content:center;padding:24px}.shopping-confirmation{display:grid;width:min(370px,100%);gap:8px;padding:24px;border-radius:10px;color:var(--shopping-ink);background:var(--shopping-surface);box-shadow:0 18px 44px #191a2840;text-align:center}.shopping-confirmation__icon{display:grid;width:48px;height:48px;margin:0 auto 6px;place-items:center;border-radius:50%;color:var(--shopping-error);background:var(--shopping-error-soft)}.shopping-confirmation h2,.shopping-confirmation p,.shopping-confirmation small{margin:0}.shopping-confirmation h2{font-size:1rem}.shopping-confirmation p,.shopping-confirmation small{color:var(--shopping-muted);font-size:.7rem;line-height:1.5}.shopping-confirmation__error{color:var(--shopping-error)!important}.shopping-confirmation>div{display:grid;gap:8px;margin-top:12px}.shopping-confirmation .button{min-height:48px;justify-content:center;border-radius:6px}.shopping-confirmation .button--danger{color:#fff;background:var(--shopping-error)}.shopping-confirmation .button--quiet{border:1px solid var(--shopping-outline);color:var(--shopping-ink);background:var(--shopping-surface)}.app-shell--shopping .shopping-unavailable{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;text-align:center}.app-shell--shopping .shopping-unavailable__icon{margin-bottom:10px;color:var(--shopping-error);background:var(--shopping-error-soft)}.app-shell--shopping .shopping-unavailable>p{max-width:460px;margin:0;color:var(--shopping-muted)}.app-shell--shopping .shopping-list-options{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:12px}.app-shell--shopping .shopping-list-options a{display:inline-flex;min-height:44px;align-items:center;padding:8px 13px;border:1px solid var(--shopping-outline);color:var(--shopping-primary);background:var(--shopping-surface)}@media(max-width:520px){.app-shell--shopping .shopping-page,.app-shell--shopping .shopping-unavailable{padding-inline:12px}.app-shell--shopping .shopping-tabs{margin-inline:-12px;padding-inline:12px}}@media(prefers-reduced-motion:reduce){.app-shell--shopping .shopping-skeleton>span{animation:none}}.app-shell--habits{--today-background: #fbf8ff;--today-surface: #ffffff;--today-surface-low: #f4f2ff;--today-surface-high: #e8e6fa;--today-outline: #c4c5d7;--today-ink: #191a28;--today-muted: #5f6070;--today-primary: #2346d5;--habits-background: #fbf8ff;--habits-surface: #ffffff;--habits-surface-low: #f4f2ff;--habits-surface-high: #e8e6fa;--habits-outline: #c4c5d7;--habits-ink: #191a28;--habits-muted: #5f6070;--habits-primary: #2346d5;--habits-primary-soft: #dee1ff;--habits-secondary: #006c4f;--habits-secondary-soft: #d9ffef;--habits-error: #93000a;--habits-error-soft: #ffdad6;display:block;width:100%;min-height:100vh;margin:0;overflow:visible;border:0;border-radius:0;background:var(--habits-background);box-shadow:none}.app-shell--habits>.app-header,.app-shell--habits>.app-navigation,.app-shell--habits>.app-footer{display:none}.app-shell--habits .app-content{display:block;padding:0}.app-shell--habits .habits-page{display:block;width:min(780px,100%);min-height:100vh;margin:0 auto;overflow-x:hidden;padding:20px 20px calc(178px + env(safe-area-inset-bottom));color:var(--habits-ink);background:var(--habits-background);font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,sans-serif}.habits-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 18px;padding-bottom:18px}.habits-hero p,.habits-hero h1,.habits-hero span{margin:0}.habits-hero p{margin-bottom:3px;color:var(--habits-primary);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.68rem;font-weight:760;letter-spacing:.09em;text-transform:uppercase}.app-shell--habits .habits-hero h1{color:var(--habits-ink);font-family:inherit;font-size:clamp(1.75rem,7vw,2.15rem);font-weight:700;letter-spacing:-.04em;line-height:1.05}.habits-hero span{display:block;margin-top:4px;color:var(--habits-muted);font-size:.76rem;line-height:1.45}.habits-avatar{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;color:#fff;background:var(--habits-primary);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.76rem;font-weight:750;text-decoration:none}.app-shell--habits .habit-tabs{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0 0 16px;padding:4px;border:0;border-radius:8px;background:var(--habits-surface-low)}.app-shell--habits .habit-tabs button{min-width:0;min-height:44px;overflow:hidden;padding:8px 10px;border:0;border-radius:6px;color:var(--habits-muted);background:transparent;font-size:.72rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.app-shell--habits .habit-tabs button.is-active{color:var(--habits-primary);background:var(--habits-surface);box-shadow:0 2px 7px #191a2814;font-weight:700}.habits-content{display:grid;gap:14px}.habits-summary{display:grid;gap:13px;padding:16px;border:1px solid rgba(196,197,215,.7);border-radius:12px;background:var(--habits-surface)}.habits-summary h2,.habits-summary p{margin:0}.habits-summary h2{font-size:.92rem;font-weight:650}.habits-summary p{margin-top:3px;color:var(--habits-muted);font-size:.68rem}.habits-summary__track,.app-shell--habits .habit-progress__track{height:5px;overflow:hidden;border-radius:999px;background:var(--habits-surface-high)}.habits-summary__track span{display:block;height:100%;border-radius:inherit;background:var(--habits-primary)}.habits-partner-notice{display:grid;grid-template-columns:24px minmax(0,1fr);gap:9px;padding:12px 14px;border-left:3px solid var(--habits-primary);border-radius:4px;color:var(--habits-primary);background:var(--habits-surface-low)}.habits-partner-notice strong{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.66rem;letter-spacing:.07em;text-transform:uppercase}.habits-partner-notice p{margin:3px 0 0;color:var(--habits-muted);font-size:.67rem;line-height:1.45}.app-shell--habits .habit-complete-banner{display:flex;align-items:center;gap:10px;padding:11px 13px;border:0;border-radius:8px;color:#00513b;background:var(--habits-secondary-soft)}.app-shell--habits .habit-complete-banner>span{width:28px;height:28px;color:#fff;background:var(--habits-secondary)}.app-shell--habits .habit-complete-banner strong{font-size:.74rem}.app-shell--habits .habit-complete-banner p{margin:2px 0 0;color:#00513b;font-size:.65rem}.habits-feedback{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px 7px 12px;border-radius:7px;color:#f1efff;background:#2e2f3e;box-shadow:0 6px 18px #191a282e;font-size:.67rem;font-weight:600}.habits-feedback.is-error{background:var(--habits-error)}.habits-feedback button{min-width:72px;min-height:44px;padding:6px 8px;border:0;color:#bac3ff;background:transparent;font-size:.63rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}.app-shell--habits .habit-list{display:grid;gap:10px}.app-shell--habits .habit-list__heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 0}.app-shell--habits .habit-list__heading h2{margin:0;color:var(--habits-ink);font-family:inherit;font-size:.93rem;font-weight:650}.app-shell--habits .habit-list__heading>span{padding:0;color:var(--habits-muted);background:transparent;font-size:.68rem;font-weight:500}.app-shell--habits .habit-card{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid rgba(196,197,215,.68);border-radius:10px;color:var(--habits-ink);background:var(--habits-surface);box-shadow:none}.app-shell--habits .habit-card--reached,.app-shell--habits .habit-card--exceeded{border-color:#27e0a99e}.app-shell--habits .habit-card--focused,.app-shell--habits .habit-card:focus{border-color:var(--habits-primary);outline:3px solid rgba(35,70,213,.2);outline-offset:2px}.app-shell--habits .habit-card__main{min-width:0}.app-shell--habits .habit-card__title-row{display:flex;align-items:start;justify-content:space-between;gap:10px}.app-shell--habits .habit-card h3{margin:2px 0 0;color:var(--habits-ink);font-size:.8rem;font-weight:650;line-height:1.35}.app-shell--habits .habit-card__schedule{margin:0;color:var(--habits-muted);font-size:.62rem;font-weight:500;letter-spacing:0;text-transform:none}.habit-card__title-actions{display:flex;min-height:30px;align-items:center;gap:4px}.app-shell--habits .habit-state{display:grid;width:22px;height:22px;place-items:center;padding:0;border-radius:50%;color:#fff;background:var(--habits-secondary);font-size:.66rem}.habit-card__edit{display:inline-flex;min-width:44px;min-height:44px;align-items:center;padding:6px 4px;color:var(--habits-primary);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.59rem;font-weight:750;letter-spacing:.04em;text-decoration:none;text-transform:uppercase}.app-shell--habits .habit-progress{display:grid;grid-template-columns:minmax(76px,1fr) auto;align-items:center;gap:10px;margin-top:9px}.app-shell--habits .habit-progress__track span{display:block;height:100%;border-radius:inherit;background:var(--habits-secondary)}.app-shell--habits .habit-progress strong{color:var(--habits-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.68rem;font-weight:700}.app-shell--habits .habit-card__meta{display:flex;gap:3px 10px;margin-top:7px;color:var(--habits-muted);font-size:.61rem}.habit-card__copy-label{color:var(--habits-secondary);font-weight:700}.app-shell--habits .habit-card__state-text{color:var(--color-primary-strong);font-weight:800}.app-shell--habits .habit-card__actions{display:flex;min-width:92px;align-items:center;justify-content:flex-end;gap:4px}.app-shell--habits .habit-step{display:grid;width:44px;height:44px;place-items:center;padding:0;border:0;border-radius:50%;color:var(--habits-muted);background:var(--habits-surface-high);font-size:1rem}.app-shell--habits .habit-step--add{color:#fff;background:var(--habits-primary)}.app-shell--habits .habit-card--reached .habit-step--add,.app-shell--habits .habit-card--exceeded .habit-step--add{background:var(--habits-secondary)}.app-shell--habits .habit-card__copy{display:inline-flex;width:100%;min-height:44px;align-items:center;justify-content:center;padding:8px 12px;border-radius:7px;color:var(--habits-primary);background:var(--habits-primary-soft);font-size:.66rem;font-weight:700;text-decoration:none}.app-shell--habits .habit-card:has(.habit-card__copy){grid-template-columns:1fr}.app-shell--habits .habit-card:has(.habit-card__copy) .habit-card__actions{width:100%}.habits-empty{display:flex;min-height:min(50vh,440px);align-items:center;justify-content:center;flex-direction:column;padding:40px 20px;text-align:center}.habits-empty__icon{display:grid;width:88px;height:88px;margin-bottom:20px;place-items:center;border-radius:50%;color:#8a8b9b;background:#efedff;font-size:2.6rem;line-height:1}.habits-empty strong{font-size:.96rem;font-weight:650}.habits-empty p{max-width:300px;margin:7px 0 0;color:var(--habits-muted);font-size:.7rem;line-height:1.55}.habits-inline-state{display:grid;gap:7px;padding:14px;border-radius:8px;color:var(--habits-muted);background:var(--habits-surface-low);font-size:.75rem;line-height:1.45}.habits-inline-state--error{color:var(--habits-error);background:var(--habits-error-soft)}.habits-inline-state--error.is-stale{color:#5e4500;background:#fff4d8}.habits-inline-state button{min-height:44px;padding:8px 0;border:0;color:inherit;background:transparent;font-weight:700;text-align:left;text-decoration:underline}.habits-skeleton{display:grid;gap:8px}.habits-skeleton>span{height:112px;border-radius:10px;background:linear-gradient(100deg,#f4f2ff 20%,#e8e6fa,#f4f2ff 64%);background-size:200% 100%;animation:shopping-shimmer 1.2s linear infinite}.habits-fab{position:fixed;z-index:24;right:max(20px,calc((100vw - 780px)/2 + 20px));bottom:calc(94px + env(safe-area-inset-bottom));display:inline-flex;min-height:56px;align-items:center;gap:8px;padding:12px 20px;border:0;border-radius:999px;color:#fff;background:var(--habits-primary);box-shadow:0 4px 14px #2346d54d;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.72rem;font-weight:700;cursor:pointer}.habits-sheet-backdrop{z-index:40;align-items:center;justify-content:flex-end;flex-direction:column;background:#191a2873;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.habits-quick-add{width:min(430px,100%);max-height:90vh;overflow-y:auto;padding:10px 20px calc(30px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;color:var(--habits-ink);background:var(--habits-background);box-shadow:0 -8px 30px #191a2833}.habits-sheet__handle{width:54px;height:5px;margin:0 auto 2px;border-radius:999px;background:var(--habits-outline)}.habits-quick-add>header{display:flex;min-height:50px;align-items:center;justify-content:space-between;gap:12px}.habits-quick-add>header p{margin:0;color:var(--habits-primary);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.66rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.habits-sheet__close{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:50%;color:var(--habits-ink);background:transparent;cursor:pointer}.habits-quick-add h2{margin:0 0 15px;font-size:1.45rem;font-weight:700;letter-spacing:-.035em}.habits-quick-add__options{display:grid;gap:8px}.habits-quick-add__option{display:grid;min-height:72px;grid-template-columns:46px minmax(0,1fr) 20px;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:var(--habits-ink);background:var(--habits-surface-low);text-decoration:none}.habits-quick-add__option>span:first-child{display:grid;width:44px;height:44px;place-items:center;border-radius:10px;color:var(--habits-primary);background:var(--habits-primary-soft)}.habits-quick-add__option.is-task>span:first-child{color:var(--habits-secondary);background:var(--habits-secondary-soft)}.habits-quick-add__option.is-shopping>span:first-child{color:var(--habits-error);background:#ffd9dd}.habits-quick-add__option.is-habit>span:first-child{color:var(--habits-primary);background:#e2e1f4}.habits-quick-add__option>span:nth-child(2){display:grid;gap:2px}.habits-quick-add__option strong{font-size:.78rem}.habits-quick-add__option small{color:var(--habits-muted);font-size:.64rem;line-height:1.35}.habits-quick-add__option>span:last-child{color:var(--habits-muted);font-size:1.25rem}@media(max-width:520px){.app-shell--habits .habits-page{padding-inline:12px}.app-shell--habits .habit-card{grid-template-columns:minmax(0,1fr) auto;align-items:center}.app-shell--habits .habit-card__actions{justify-content:flex-end}.app-shell--habits .habit-progress{grid-template-columns:minmax(70px,1fr) auto}}@media(prefers-reduced-motion:reduce){.habits-skeleton>span{animation:none}}.app-shell--maintenance{--maintenance-background: #fbf8ff;--maintenance-surface: #fff;--maintenance-surface-low: #f4f2ff;--maintenance-surface-mid: #eeecff;--maintenance-surface-high: #e8e6fa;--maintenance-outline: #c4c5d7;--maintenance-ink: #191a28;--maintenance-muted: #5f6070;--maintenance-primary: #2346d5;--maintenance-primary-soft: #dee1ff;--maintenance-secondary: #006c4f;--maintenance-danger: #ba1a1a;display:block;width:100%;min-height:100vh;margin:0;overflow:visible;border:0;border-radius:0;color:var(--maintenance-ink);background:var(--maintenance-background);box-shadow:none}.app-shell--maintenance>.app-header,.app-shell--maintenance>.app-navigation,.app-shell--maintenance>.app-footer,.app-shell--maintenance>.pwa-status{display:none}.app-shell--maintenance .app-content{display:block;padding:0}.app-shell--maintenance .commitment-form-page,.app-shell--maintenance .task-form-page,.app-shell--maintenance .shopping-form-page,.app-shell--maintenance .habit-form-page{display:block;width:100%;min-height:100vh;margin:0;color:var(--maintenance-ink);background:var(--maintenance-background);font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,sans-serif}.maintenance-header{position:sticky;z-index:35;top:0;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;min-height:64px;padding:8px max(16px,calc((100vw - 680px)/2));border-bottom:1px solid var(--maintenance-outline);background:#fbf8fff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.maintenance-header__back,.maintenance-header__avatar{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;text-decoration:none}.maintenance-header__back{justify-self:start;color:var(--maintenance-muted);font-size:2rem;line-height:1}.maintenance-header__back:hover,.maintenance-header__back:focus-visible{background:var(--maintenance-surface-low)}.maintenance-header__title{min-width:0;text-align:center}.maintenance-header__title p{margin:0 0 2px;color:var(--maintenance-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.64rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.maintenance-header__title h1{margin:0;overflow:hidden;font-family:inherit;font-size:1.08rem;font-weight:700;letter-spacing:-.02em;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.maintenance-header__avatar{justify-self:end;color:#fff;background:#4361ee;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.68rem;font-weight:800}.maintenance-content{width:min(680px,100%);margin:0 auto;padding:18px 20px calc(132px + env(safe-area-inset-bottom))}.maintenance-type-section{margin-bottom:22px}.maintenance-type-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.maintenance-type-option{display:flex;min-height:48px;align-items:center;justify-content:center;gap:8px;padding:10px;border:1px solid var(--maintenance-outline);border-radius:10px;color:var(--maintenance-muted);background:var(--maintenance-surface-low);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.76rem;font-weight:700;text-align:center;text-decoration:none;transition:background .16s ease,color .16s ease,transform .16s ease}.maintenance-type-option:hover,.maintenance-type-option:focus-visible{color:var(--maintenance-primary);background:var(--maintenance-surface-mid)}.maintenance-type-option:active{transform:scale(.98)}.maintenance-type-option.is-active{color:#fff;border-color:var(--maintenance-primary);background:var(--maintenance-primary)}.maintenance-type-option--purchase.is-active{border-color:var(--maintenance-secondary);background:var(--maintenance-secondary)}.maintenance-type-section>p{margin:9px 0 0;color:var(--maintenance-muted);font-size:.72rem;line-height:1.45;text-align:center}.maintenance-type-lock,.maintenance-context-note{display:flex;align-items:flex-start;gap:12px;margin:0 0 20px;padding:14px;border:1px solid var(--maintenance-outline);border-radius:12px;color:var(--maintenance-ink);background:var(--maintenance-surface-mid)}.maintenance-type-lock__icon{display:grid;width:36px;height:36px;flex:none;place-items:center;border-radius:10px;color:var(--maintenance-primary);background:var(--maintenance-primary-soft)}.maintenance-type-lock>span:last-child{display:grid;gap:3px}.maintenance-type-lock small{color:var(--maintenance-muted);font-size:.76rem;line-height:1.45}.maintenance-context-note{color:var(--maintenance-muted);background:var(--maintenance-surface-low);font-size:.8rem;line-height:1.55}.app-shell--maintenance .form-feedback{margin:0 0 18px;border:1px solid rgba(0,108,79,.25);border-left:4px solid var(--maintenance-secondary);border-radius:10px;color:#00513b;background:#e8fff5}.app-shell--maintenance .form-feedback--error{border-color:#ba1a1a40;border-left-color:var(--maintenance-danger);color:#93000a;background:#ffdad6}.app-shell--maintenance .maintenance-form{display:grid;width:100%;max-width:none;gap:20px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.app-shell--maintenance .form-field{gap:7px}.app-shell--maintenance .form-field label,.app-shell--maintenance .visibility-field legend,.app-shell--maintenance .habit-weekdays legend,.app-shell--maintenance .habit-reminder-controls legend,.shopping-list-picker legend{color:var(--maintenance-ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.7rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.app-shell--maintenance .form-field input,.app-shell--maintenance .commitment-form textarea,.app-shell--maintenance .commitment-form select,.app-shell--maintenance .habit-form input,.app-shell--maintenance .habit-form select{min-height:48px;border-color:var(--maintenance-outline);border-radius:8px;color:var(--maintenance-ink);background:var(--maintenance-surface)}.app-shell--maintenance .form-field input:focus-visible,.app-shell--maintenance textarea:focus-visible,.app-shell--maintenance select:focus-visible,.app-shell--maintenance button:focus-visible,.app-shell--maintenance a:focus-visible{outline:3px solid rgba(35,70,213,.35);outline-offset:2px}.maintenance-field--lead input{min-height:54px!important;font-size:1rem}.maintenance-card{display:grid;gap:16px;padding:16px;border:1px solid var(--maintenance-outline);border-radius:12px;background:var(--maintenance-surface)}.maintenance-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.maintenance-card h2,.maintenance-summary h2{margin:0;font-family:inherit;font-size:1rem;font-weight:700}.app-shell--maintenance .form-grid{gap:10px}.app-shell--maintenance .all-day-toggle{min-height:44px;color:var(--maintenance-muted);font-size:.78rem}.app-shell--maintenance .visibility-field{display:grid;grid-template-columns:1fr;gap:8px}.app-shell--maintenance .visibility-field label{min-height:62px;align-items:center;border-color:var(--maintenance-outline);border-radius:12px;background:var(--maintenance-surface)}.app-shell--maintenance .visibility-field label:has(input:checked){border:2px solid var(--maintenance-primary);color:#001159;background:var(--maintenance-primary-soft)}.app-shell--maintenance .visibility-field small{color:var(--maintenance-muted)}.maintenance-disclosure{overflow:hidden;border:1px solid var(--maintenance-outline);border-radius:12px;background:var(--maintenance-surface)}.maintenance-disclosure>summary{display:flex;min-height:52px;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;color:var(--maintenance-muted);cursor:pointer;font-size:.82rem;font-weight:700;list-style:none}.maintenance-disclosure>summary::-webkit-details-marker{display:none}.maintenance-disclosure[open]>summary{border-bottom:1px solid var(--maintenance-outline);color:var(--maintenance-primary);background:var(--maintenance-surface-low)}.maintenance-disclosure__content{display:grid;gap:18px;padding:16px}.app-shell--maintenance .reminder-fieldset,.app-shell--maintenance .habit-reminder-controls{gap:10px;padding:14px;border-color:var(--maintenance-outline);border-radius:12px;background:var(--maintenance-surface-low)}.app-shell--maintenance .reminder-options{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell--maintenance .reminder-options label{min-height:44px;padding:8px;border:1px solid var(--maintenance-outline);border-radius:8px;background:var(--maintenance-surface);font-size:.75rem}.app-shell--maintenance .privacy-note{margin:0;border-left-color:var(--maintenance-primary);color:var(--maintenance-muted);background:var(--maintenance-surface-low);font-size:.78rem}.maintenance-timezone{opacity:.82}.shopping-list-picker{display:grid;gap:10px;margin:0;padding:0;border:0}.shopping-list-picker>div{display:flex;flex-wrap:wrap;gap:8px}.shopping-list-picker label{position:relative;min-height:44px;cursor:pointer}.shopping-list-picker input{position:absolute;opacity:0}.shopping-list-picker span{display:flex;min-height:44px;align-items:center;padding:9px 13px;border:1px solid var(--maintenance-outline);border-radius:10px;color:var(--maintenance-muted);background:var(--maintenance-surface);font-size:.76rem;font-weight:650}.shopping-list-picker input:checked+span{color:#fff;border-color:var(--maintenance-primary);background:var(--maintenance-primary)}.shopping-list-picker input:focus-visible+span{outline:3px solid rgba(35,70,213,.35);outline-offset:2px}.app-shell--maintenance .habit-weekdays>div{grid-template-columns:repeat(7,minmax(36px,1fr));gap:6px}.app-shell--maintenance .habit-weekdays label>span:first-of-type{width:100%;min-width:40px;height:44px;border-color:var(--maintenance-outline);color:var(--maintenance-muted);background:var(--maintenance-surface)}.app-shell--maintenance .habit-weekdays input:checked+span{color:#fff;border-color:var(--maintenance-primary);background:var(--maintenance-primary)}.app-shell--maintenance .habit-goal-field{max-width:none}.app-shell--maintenance .habit-reminder-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.app-shell--maintenance .habit-reminder-row input{width:100%;min-width:0}.maintenance-summary{display:grid;gap:14px;padding:17px;border:1px solid var(--maintenance-outline);border-radius:12px;background:linear-gradient(135deg,var(--maintenance-surface-low),var(--maintenance-surface-mid))}.maintenance-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;margin:0}.maintenance-summary dl>div{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;column-gap:6px}.maintenance-summary svg{grid-row:1 / span 2;margin-top:2px;color:var(--maintenance-primary)}.maintenance-summary dt{color:var(--maintenance-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.62rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.maintenance-summary dd{min-width:0;margin:2px 0 0;overflow-wrap:anywhere;font-size:.78rem;line-height:1.4}.maintenance-summary>p{margin:0;padding-top:12px;border-top:1px solid rgba(196,197,215,.7);color:var(--maintenance-muted);font-size:.72rem;line-height:1.45}.maintenance-delete{min-height:44px;justify-self:start;padding:10px 14px;border:1px solid rgba(186,26,26,.35);border-radius:999px;color:var(--maintenance-danger);background:transparent;cursor:pointer;font-weight:700}.maintenance-action-bar{position:fixed;z-index:40;right:0;bottom:0;left:0;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--maintenance-outline);background:#fffffff0;box-shadow:0 -4px 20px #191a280d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.maintenance-action-bar>div{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr);gap:12px;width:min(640px,100%);margin:0 auto}.maintenance-action-bar__cancel,.maintenance-action-bar__primary{display:inline-flex;min-height:52px;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:999px;font-size:.82rem;font-weight:750;text-decoration:none}.maintenance-action-bar__cancel{color:var(--maintenance-primary);border:1px solid var(--maintenance-primary);background:transparent}.maintenance-action-bar__primary{border:1px solid var(--maintenance-primary);color:#fff;background:var(--maintenance-primary);box-shadow:0 4px 14px #2346d53d;cursor:pointer}.maintenance-action-bar__primary:disabled{cursor:wait;opacity:.65}.app-shell--maintenance .drawer-backdrop{z-index:70;align-items:flex-end;background:#191a286b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.app-shell--maintenance .confirmation-dialog{width:min(560px,100%);margin:auto auto 0;padding:26px 20px calc(24px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;color:var(--maintenance-ink);background:var(--maintenance-surface);box-shadow:0 -8px 32px #191a2826;text-align:center}.app-shell--maintenance .confirmation-dialog:before{display:block;width:44px;height:4px;margin:-12px auto 22px;border-radius:999px;background:var(--maintenance-outline);content:""}.app-shell--maintenance .confirmation-dialog h2{margin:0 0 10px;font-family:inherit;font-size:1.25rem;font-weight:700}.app-shell--maintenance .confirmation-dialog p{color:var(--maintenance-muted);line-height:1.5}.app-shell--maintenance .confirmation-dialog .calendar-actions-row{justify-content:center;margin-top:20px}.maintenance-state,.app-shell--maintenance .app-content>[role=status],.app-shell--maintenance .app-content>.calendar-empty,.app-shell--maintenance .app-content>.shopping-unavailable,.app-shell--maintenance .app-content>.habits-unavailable{display:grid;width:min(520px,calc(100% - 40px));min-height:280px;place-content:center;justify-items:center;gap:10px;margin:12vh auto 0;padding:28px;border:1px solid var(--maintenance-outline);border-radius:18px;color:var(--maintenance-muted);background:var(--maintenance-surface);text-align:center}.maintenance-state h1{margin:4px 0 0;color:var(--maintenance-ink);font-family:inherit;font-size:1.2rem}.maintenance-state p{margin:0;line-height:1.55}.maintenance-state a{display:inline-flex;min-height:44px;align-items:center;margin-top:8px;padding:10px 16px;border-radius:999px;color:#fff;background:var(--maintenance-primary);font-weight:700;text-decoration:none}@media(min-width:760px){.maintenance-header{padding-inline:calc((100vw - 680px)/2)}.maintenance-type-selector{grid-template-columns:repeat(4,minmax(0,1fr))}.app-shell--maintenance .visibility-field{grid-template-columns:repeat(3,minmax(0,1fr))}.app-shell--maintenance .confirmation-dialog{margin-bottom:24px;border-radius:26px}}@media(max-width:430px){.maintenance-content{padding-inline:14px}.app-shell--maintenance .form-grid,.maintenance-summary dl{grid-template-columns:1fr}.maintenance-action-bar{padding-inline:14px}.maintenance-action-bar>div{grid-template-columns:minmax(0,.8fr) minmax(0,1.45fr)}}@media(prefers-reduced-motion:reduce){.maintenance-type-option{transition:none}}.app-shell--detail{--today-background: #fbf8ff;--today-surface: #ffffff;--today-surface-low: #f4f2ff;--today-surface-high: #e8e6fa;--today-outline: #c4c5d7;--today-ink: #191a28;--today-muted: #555767;--today-primary: #2346d5;--detail-secondary: #006c4f;--detail-secondary-soft: #d7f9eb;--detail-danger: #ba1a1a;--detail-danger-soft: #ffdad6;width:100%;max-width:none;min-height:100vh;margin:0;overflow:visible;border:0;border-radius:0;color:var(--today-ink);background:var(--today-background);box-shadow:none}.app-shell--detail>.app-header,.app-shell--detail>.app-navigation,.app-shell--detail>.app-footer,.app-shell--detail>.pwa-status{display:none}.app-shell--detail .app-content{display:block;padding:0}.t07-detail-page{width:min(780px,100%);min-height:100vh;margin:0 auto;color:var(--today-ink);background:var(--today-background);font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,sans-serif}.t07-header{position:sticky;z-index:18;top:0;display:flex;min-height:80px;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid rgba(196,197,215,.5);background:#fffffff2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.t07-header__identity{display:flex;min-width:0;align-items:center;gap:12px}.t07-header__identity>div{display:grid;min-width:0;gap:1px}.t07-header__identity span{color:var(--today-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.68rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.t07-header__identity strong{overflow:hidden;color:var(--today-ink);font-size:1.15rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.t07-header__back,.t07-avatar{display:grid;flex:0 0 auto;place-items:center;text-decoration:none}.t07-header__back{width:48px;height:48px;border-radius:50%;color:var(--today-ink)}.t07-header__back:hover{background:var(--today-surface-low)}.t07-avatar{width:44px;height:44px;border:2px solid var(--today-surface);border-radius:50%;color:#fff;background:#4361ee;box-shadow:0 0 0 1px #2346d51f;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.78rem;font-weight:750;letter-spacing:.02em}.t07-detail-content{min-height:calc(100vh - 80px);padding-bottom:calc(102px + env(safe-area-inset-bottom))}.t07-detail-page--with-actions .t07-detail-content{padding-bottom:calc(180px + env(safe-area-inset-bottom))}.t07-detail{display:grid;gap:22px;padding:24px 20px}.t07-detail>h1{max-width:24ch;margin:0;color:var(--today-ink);font-family:inherit;font-size:clamp(1.9rem,8vw,2.4rem);font-weight:650;letter-spacing:-.04em;line-height:1.12;overflow-wrap:anywhere}.t07-badges{display:flex;flex-wrap:wrap;gap:8px}.t07-badges>span{display:inline-flex;min-height:30px;align-items:center;gap:5px;padding:6px 11px;border-radius:999px;color:var(--today-muted);background:#e7e5f7;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.67rem;font-weight:720;letter-spacing:.025em}.t07-badges>.is-today{color:#00513b;background:var(--detail-secondary-soft)}.t07-facts{display:grid;gap:12px}.t07-fact,.t07-facts .reminder-summary--compact{display:grid;min-width:0;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px;margin:0;padding:15px 16px;border:0;border-radius:12px;color:var(--today-ink);background:var(--today-surface-low)}.t07-facts--plain .t07-fact,.t07-facts--plain .reminder-summary--compact{padding:10px 0;background:transparent}.t07-fact__icon,.reminder-summary__icon{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;color:var(--today-primary);background:#e8e9ff}.t07-facts--plain .t07-fact__icon,.t07-facts--plain .reminder-summary__icon{color:var(--today-muted);background:var(--today-surface-high)}.t07-fact>div,.reminder-summary--compact>div{min-width:0}.t07-fact small,.reminder-summary--compact h2{display:block;margin:0 0 3px;color:var(--today-muted);font-family:inherit;font-size:.72rem;font-weight:500;line-height:1.4}.t07-fact__value,.reminder-summary--compact p,.reminder-summary--compact li{margin:0;color:var(--today-ink);font-size:.9rem;font-weight:500;line-height:1.5}.t07-fact__value{display:grid;gap:2px}.t07-fact__value strong{font-weight:600}.t07-fact__value>span{color:var(--today-muted)}.t07-fact a{display:inline-block;min-height:44px;margin-top:4px;padding:11px 0;color:var(--today-primary);font-size:.82rem;font-weight:700;text-decoration:none}.reminder-summary--compact .reminder-summary__list{display:flex;flex-wrap:wrap;gap:3px 10px;margin:0;padding:0;list-style:none}.reminder-summary--compact .reminder-summary__note{margin-top:4px;color:var(--today-muted);font-size:.68rem}.t07-permission{margin:0;padding:4px 16px 3px;color:var(--today-muted);font-size:.82rem;line-height:1.55}.t07-copy-section,.t07-related-section{margin:0 -20px;padding:22px 20px;border-top:1px solid rgba(196,197,215,.42)}.t07-related-section{background:#ffffffb8}.t07-copy-section h2,.t07-related-section h2,.t07-section-heading h2{margin:0 0 9px;color:var(--today-ink);font-family:inherit;font-size:1rem;font-weight:650}.t07-copy-section p,.t07-section-heading p{margin:0;color:var(--today-muted);font-size:.78rem;line-height:1.55}.t07-section-heading{margin-bottom:14px}.t07-preparation-list{display:grid;gap:9px}.t07-preparation-list .task-row{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:10px;padding:12px;border:1px solid rgba(196,197,215,.7);border-radius:11px;background:var(--today-surface)}.t07-preparation-list .task-check{width:44px;min-width:44px;height:44px;border-radius:50%}.t07-preparation-list .task-row__content{min-width:0}.t07-preparation-list .task-row__title{color:var(--today-ink);font-size:.82rem;font-weight:650}.t07-preparation-list .task-row__content>span,.t07-preparation-list .task-row__meta{color:var(--today-muted);font-size:.68rem}.t07-add-related{display:flex;min-height:48px;align-items:center;justify-content:center;gap:8px;margin-top:11px;padding:10px 14px;border:1px dashed var(--today-outline);border-radius:11px;color:var(--today-muted);background:transparent;font-size:.78rem;font-weight:650;text-decoration:none}.t07-feedback,.t07-inline-loading,.t07-inline-error,.t07-empty-related{margin:0 0 10px;padding:11px 13px;border-radius:9px;color:#00513b;background:#e8fff5;font-size:.75rem}.t07-feedback.is-error,.t07-inline-error{color:#93000a;background:var(--detail-danger-soft)}.t07-inline-error{display:flex;align-items:center;justify-content:space-between;gap:10px}.t07-inline-error button{min-height:44px;padding:8px 10px;border:0;border-radius:8px;color:#93000a;background:#fff;font-weight:700}.t07-empty-related{color:var(--today-muted);background:var(--today-surface-low)}.t07-responsibility{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px;padding:15px;border-radius:12px;background:var(--today-surface-low)}.t07-responsibility>span{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;color:var(--today-primary);background:#e8e9ff}.t07-responsibility strong{font-size:.86rem}.t07-responsibility p,.t07-responsibility small{display:block;margin:3px 0 0;color:var(--today-muted);font-size:.69rem;line-height:1.48}.t07-parent-card{display:grid;min-height:88px;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px;border:1px solid rgba(196,197,215,.72);border-radius:12px;color:var(--today-ink);background:var(--today-surface-low);text-decoration:none}.t07-parent-card>span:first-child{display:grid;width:48px;height:48px;place-items:center;border-radius:10px;color:#00513b;background:#51fac1}.t07-parent-card>span:nth-child(2){display:grid;min-width:0;gap:6px}.t07-parent-card strong{overflow-wrap:anywhere;font-size:.9rem}.t07-parent-card small{color:var(--today-primary);font-size:.7rem;font-weight:700}.t07-inheritance-note{display:flex;align-items:center;gap:8px;margin:12px 0 0;padding:12px;border:1px solid rgba(196,197,215,.45);border-radius:9px;color:var(--today-muted);background:var(--today-surface);font-size:.72rem}.t07-action-bar{position:fixed;z-index:24;right:0;bottom:calc(78px + env(safe-area-inset-bottom));left:0;padding:12px 20px;border-top:1px solid rgba(196,197,215,.55);background:#fffffff7;box-shadow:0 -4px 18px #191a280a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.t07-action-bar>div{display:flex;width:min(740px,100%);align-items:stretch;gap:10px;margin:0 auto}.t07-primary-action,.t07-secondary-action,.t07-danger-action{display:inline-flex;min-height:52px;align-items:center;justify-content:center;gap:8px;border-radius:12px;font-size:.78rem;font-weight:720;text-decoration:none}.t07-primary-action,.t07-secondary-action{flex:1 1 0;padding:10px 12px}.t07-primary-action{border:1px solid var(--today-primary);color:#fff;background:var(--today-primary)}.t07-secondary-action{border:1px solid transparent;color:var(--today-ink);background:#e9e7fb}.t07-danger-action{width:54px;flex:0 0 54px;border:1px solid rgba(186,26,26,.62);color:var(--detail-danger);background:#fff}.t07-primary-action:disabled,.t07-secondary-action:disabled,.t07-danger-action:disabled{cursor:wait;opacity:.65}.t07-private-card{display:grid;width:min(520px,calc(100% - 40px));justify-items:center;gap:14px;margin:max(12vh,72px) auto 0;padding:28px 24px;border-radius:18px;background:#efedff;box-shadow:0 2px 5px #191a280d;text-align:center}.t07-private-card__lock{display:grid;width:64px;height:64px;place-items:center;border-radius:50%;color:var(--today-muted);background:#e2e1f4}.t07-private-card h1{margin:4px 0 12px;color:var(--today-ink);font-size:2rem;font-weight:700;letter-spacing:-.04em}.t07-private-card .t07-fact{width:100%;grid-template-columns:28px minmax(0,1fr);align-items:center;justify-items:center;padding:13px;background:#ffffffbf}.t07-private-card .t07-fact__icon{width:28px;height:28px;color:var(--today-muted);background:transparent}.t07-private-card .t07-fact__value{font-size:.92rem}.t07-loading,.t07-state{display:grid;width:min(520px,calc(100% - 40px));min-height:300px;place-content:center;justify-items:center;gap:12px;margin:10vh auto 0;padding:28px;border:1px solid rgba(196,197,215,.65);border-radius:18px;background:var(--today-surface);text-align:center}.t07-loading>span{width:100%;height:42px;border-radius:9px;background:linear-gradient(90deg,var(--today-surface-low),var(--today-surface-high),var(--today-surface-low));background-size:220% 100%;animation:t07-loading 1.5s ease-in-out infinite}.t07-loading p{margin:4px 0 0;color:var(--today-muted);font-size:.78rem}.t07-state>span{display:grid;width:64px;height:64px;place-items:center;border-radius:50%;color:var(--today-primary);background:#e8e9ff}.t07-state h1{margin:2px 0 0;font-size:1.15rem}.t07-state p{max-width:38ch;margin:0;color:var(--today-muted);font-size:.78rem;line-height:1.55}.t07-state button{min-height:44px;margin-top:5px;padding:10px 16px;border:0;border-radius:999px;color:#fff;background:var(--today-primary);font-weight:700}.t07-dialog-backdrop{z-index:60;align-items:flex-end;justify-content:center;background:#191a286e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.t07-delete-dialog{width:min(560px,100%);padding:14px 24px calc(24px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;color:var(--today-ink);background:#fff;box-shadow:0 -8px 32px #191a282b;text-align:center}.t07-dialog-handle{display:block;width:44px;height:4px;margin:0 auto 24px;border-radius:999px;background:var(--today-outline)}.t07-delete-dialog h2{margin:0 0 10px;font-family:inherit;font-size:1.15rem;font-weight:650}.t07-delete-dialog>p{margin:0 auto 22px;color:var(--today-muted);font-size:.83rem;line-height:1.55}.t07-delete-dialog>div{display:grid;gap:10px}.t07-delete-dialog button{min-height:52px;padding:12px 18px;border:0;border-radius:999px;color:#93000a;background:var(--detail-danger-soft);font-size:.86rem;font-weight:650}.t07-delete-dialog button.is-cancel{color:var(--today-primary);background:transparent}.t07-dialog-error{padding:10px;border-radius:8px;color:#93000a!important;background:var(--detail-danger-soft)}.app-shell--detail a:focus-visible,.app-shell--detail button:focus-visible{outline:3px solid rgba(35,70,213,.38);outline-offset:2px}@keyframes t07-loading{0%{background-position:100% 0}to{background-position:-100% 0}}@media(min-width:760px){.t07-detail{padding-inline:48px}.t07-copy-section,.t07-related-section{margin-inline:-48px;padding-inline:48px}.t07-delete-dialog{margin-bottom:24px;border-radius:28px}}@media(max-width:430px){.t07-header,.t07-detail{padding-inline:14px}.t07-copy-section,.t07-related-section{margin-inline:-14px;padding-inline:14px}.t07-action-bar{padding-inline:12px}.t07-primary-action,.t07-secondary-action{padding-inline:8px;font-size:.7rem}.t07-danger-action{width:52px;flex-basis:52px}}@media(prefers-reduced-motion:reduce){.t07-loading>span{animation:none}}.app-shell--account .account-page{display:block;gap:0}.app-shell--account .account-header h1{margin:0;color:var(--account-ink);font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1.65rem,7vw,1.9rem);font-weight:700;line-height:1.18;letter-spacing:-.025em}
