:root{--color-background:#f8f7f3;--color-surface:#fffefa;--color-surface-muted:#f2f1ed;--color-text:#17253b;--color-text-secondary:#667085;--color-text-soft:#89909a;--color-border:#e6e4df;--color-primary:#2f6655;--color-primary-strong:#245344;--color-primary-soft:#e4f0e9;--color-blush:#f7e8e2;--color-blush-ink:#9a5b45;--color-lavender:#eeebf7;--color-lavender-ink:#55557a;--color-sky:#e4f2f8;--color-sky-ink:#44728b;--color-overlay:#131d246b;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.375rem;--font-size-brand:1.625rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--line-height-tight:1.2;--line-height-base:1.45;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:.625rem;--radius-md:.875rem;--radius-lg:1rem;--radius-xl:1.375rem;--radius-pill:999px;--shadow-card:0 .125rem .75rem #1d2a340d;--shadow-nav:0 -.25rem 1.5rem #1d2a3412;--shadow-action:0 .35rem 1rem #24534447;--icon-sm:1rem;--icon-md:1.35rem;--icon-lg:1.65rem;--touch-target:2.75rem;--header-height:8.65rem;--bottom-nav-height:4.4rem;--content-max-width:31rem;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}.app-viewport{background:var(--color-background);min-height:100vh}.app-shell{background:var(--color-background);min-height:100vh;margin:0 auto;position:relative}.screen-header{min-height:calc(var(--header-height) + var(--safe-top));justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:calc(var(--safe-top) + var(--space-6)) var(--space-4) var(--space-4);background:linear-gradient(180deg, #fbfaf7 0%, var(--color-background) 100%);display:flex}.screen-header__copy{min-width:0}.brand{color:var(--color-primary-strong);font-size:var(--font-size-brand);font-weight:var(--font-weight-medium);letter-spacing:.28em;line-height:1;display:block}.screen-header h1{margin-top:var(--space-2);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight)}.screen-header p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.screen-header__actions{gap:var(--space-2);padding-top:var(--space-1);display:flex}.icon-button{width:var(--touch-target);height:var(--touch-target);color:var(--color-primary-strong);cursor:pointer;background:#f0efebdb;border:1px solid #e6e4df9e;border-radius:50%;place-items:center;padding:0;display:grid}.icon-button svg{width:var(--icon-lg);height:var(--icon-lg)}.screen-content{width:min(100%, var(--content-max-width));min-height:calc(100vh - var(--header-height));padding:0 var(--space-4) calc(var(--bottom-nav-height) + var(--safe-bottom) + var(--space-6));margin:0 auto}.bottom-nav{z-index:20;min-height:calc(var(--bottom-nav-height) + var(--safe-bottom));box-shadow:var(--shadow-nav);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffefaeb;border-top:1px solid #e6e4dfcc;position:fixed;bottom:0;left:0;right:0}.bottom-nav__inner{width:min(100%, var(--content-max-width));min-height:var(--bottom-nav-height);padding:0 var(--space-2) var(--safe-bottom);grid-template-columns:repeat(2,1fr) 1.12fr repeat(3,1fr);margin:0 auto;display:grid}.bottom-nav__item{min-width:0;min-height:var(--touch-target);padding-top:var(--space-2);color:var(--color-text-soft);flex-direction:column;justify-content:center;align-items:center;gap:.125rem;font-size:.68rem;text-decoration:none;display:flex}.bottom-nav__item svg{width:var(--icon-md);height:var(--icon-md)}.bottom-nav__item--active{color:var(--color-primary-strong);font-weight:var(--font-weight-semibold)}.bottom-nav__add{border:.3rem solid var(--color-background);color:#fff;background:var(--color-primary);width:3.55rem;height:3.55rem;box-shadow:var(--shadow-action);cursor:pointer;border-radius:50%;place-self:start center;place-items:center;margin-top:-1.15rem;padding:0;display:grid}.bottom-nav__add svg{width:1.85rem;height:1.85rem}.section-block{gap:var(--space-2);display:grid}.section-block__header{justify-content:space-between;align-items:center;display:flex}.section-block__header h2,.eyebrow{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.18em;text-transform:uppercase}.card-list,.screen-stack{gap:var(--space-3);display:grid}.card{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);display:flex}.card__body{flex:1;min-width:0}.card h3{margin-top:var(--space-1);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)}.card p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.icon-orb{width:2.85rem;height:2.85rem;color:var(--color-text-secondary);background:var(--color-surface-muted);border-radius:50%;flex:none;place-items:center;display:grid}.icon-orb svg{width:var(--icon-lg);height:var(--icon-lg)}.icon-orb--mint{color:var(--color-primary-strong);background:var(--color-primary-soft)}.icon-orb--blush{color:var(--color-blush-ink);background:var(--color-blush)}.icon-orb--lavender{color:var(--color-lavender-ink);background:var(--color-lavender)}.icon-orb--sky{color:var(--color-sky-ink);background:var(--color-sky)}.badge,.placeholder-badge{border-radius:var(--radius-pill);min-height:1.6rem;color:var(--color-text-secondary);background:var(--color-surface-muted);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;padding:.2rem .65rem;display:inline-flex}.badge--mint{color:var(--color-primary-strong);background:var(--color-primary-soft)}.badge--blush{color:var(--color-blush-ink);background:var(--color-blush)}.badge--lavender{color:var(--color-lavender-ink);background:var(--color-lavender)}.empty-state{padding:var(--space-6) var(--space-4);border-radius:var(--radius-lg);text-align:center;background:#fffefa94;border:1px dashed #d8d7d1;justify-items:center;display:grid}.empty-state strong{margin-top:var(--space-3);font-weight:var(--font-weight-medium)}.empty-state p{max-width:19rem;margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.sheet-layer{z-index:100;padding:var(--space-4);background:var(--color-overlay);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet{width:min(100%,30rem);padding:var(--space-8) var(--space-4) calc(var(--space-6) + var(--safe-bottom));border-radius:var(--radius-xl) var(--radius-xl) var(--radius-md) var(--radius-md);background:var(--color-surface);position:relative;box-shadow:0 1rem 3rem #141e2438}.bottom-sheet__handle{top:var(--space-2);border-radius:var(--radius-pill);background:#d1d0cb;width:2.5rem;height:.25rem;position:absolute;left:50%;transform:translate(-50%)}.bottom-sheet__close{top:var(--space-4);right:var(--space-4);width:var(--touch-target);height:var(--touch-target);color:var(--color-text-secondary);background:var(--color-surface-muted);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.bottom-sheet h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.bottom-sheet>p{max-width:23rem;margin-top:var(--space-1);padding-right:var(--space-8);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.action-grid{margin-top:var(--space-5);gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.action-placeholder{border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:5.5rem;font-size:var(--font-size-sm);background:var(--color-background);align-content:center;justify-items:center;display:grid}.action-placeholder small{color:var(--color-text-soft);font-size:var(--font-size-xs)}.action-placeholder__dot{width:1.6rem;height:1.6rem;margin-bottom:var(--space-2);background:var(--color-primary-soft);border-radius:50%}.bottom-sheet--voice{text-align:center}.bottom-sheet--voice>p{margin-left:auto;margin-right:auto;padding:0}.voice-placeholder{width:6rem;height:6rem;margin:0 auto var(--space-5);color:#fff;background:var(--color-primary);border:.75rem solid #edf4ef;border-radius:50%;place-items:center;display:grid}.voice-placeholder svg{width:2.5rem;height:2.5rem}.bottom-sheet--voice .placeholder-badge{margin-top:var(--space-5)}.auth-layout{min-height:100vh;padding:calc(var(--safe-top) + var(--space-6)) var(--space-4) calc(var(--safe-bottom) + var(--space-6));background:var(--color-background);place-items:center;display:grid}.auth-card{width:min(100%,25rem);padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-card)}.auth-card h1{margin-top:var(--space-8);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium)}.auth-card>p{margin-top:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.auth-card--status{text-align:center}.auth-form{margin-top:var(--space-6);gap:var(--space-3);display:grid}.auth-form label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.auth-form input{min-height:3rem;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background)}.auth-form input:focus{border-color:var(--color-primary);outline:3px solid #2f665529}.primary-button{min-height:3rem;margin-top:var(--space-2);padding:0 var(--space-4);border-radius:var(--radius-pill);color:#fff;background:var(--color-primary);font-weight:var(--font-weight-semibold);cursor:pointer}.primary-button:disabled{cursor:wait;opacity:.65}.form-error{color:#9b3d36;font-size:var(--font-size-sm)}.loading-dot{width:.75rem;height:.75rem;margin-top:var(--space-5);background:var(--color-primary);border-radius:50%;animation:1s ease-in-out infinite alternate loading-pulse;display:inline-block}@keyframes loading-pulse{to{opacity:.3;transform:scale(.72)}}@media (width>=42rem){.app-viewport{padding:var(--space-5) 0}.app-shell{width:min(100%, var(--content-max-width));min-height:calc(100vh - 2 * var(--space-5));border:1px solid #dedcd6;border-radius:1.8rem;overflow:hidden;box-shadow:0 1rem 3rem #2c2f2d1a}.bottom-nav{width:var(--content-max-width);border-left:1px solid #dedcd6;border-right:1px solid #dedcd6;left:50%;right:auto;transform:translate(-50%)}}.metric-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.metric-card{min-width:0;padding:var(--space-3) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:center;background:var(--color-surface);box-shadow:var(--shadow-card);justify-items:center;display:grid}.metric-card svg{width:var(--icon-md);height:var(--icon-md);margin-bottom:var(--space-1);color:var(--color-primary)}.metric-card span{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.metric-card strong{max-width:100%;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.soft-action{margin-top:var(--space-3);border-radius:var(--radius-pill);color:var(--color-blush-ink);background:var(--color-blush);font-size:var(--font-size-sm);padding:.38rem .85rem;display:inline-flex}.placeholder-lines{margin-top:var(--space-3);gap:var(--space-2);grid-template-columns:1fr .78fr .9fr;display:grid}.placeholder-lines span,.timeline-placeholder__line{border-radius:var(--radius-pill);background:#ebeae5;height:.55rem}.filter-row{margin:0 calc(var(--space-4) * -1);padding:0 var(--space-4) var(--space-1);scrollbar-width:none;gap:.35rem;display:flex;overflow-x:auto}.filter-row .filter-pill{min-height:2.3rem;padding:0 .68rem;font-size:.78rem}.filter-row::-webkit-scrollbar{display:none}.filter-pill,.segmented-control button{min-height:2.4rem;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text);background:var(--color-surface);white-space:nowrap;cursor:pointer}.filter-pill--active,.segmented-control button.is-selected{border-color:var(--color-primary);color:#fff;background:var(--color-primary)}.timeline-placeholder{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:var(--space-2);background:var(--color-surface);display:grid}.timeline-placeholder__row{align-items:center;gap:var(--space-3);grid-template-columns:2.8rem 1.25rem 1fr;min-height:3.75rem;display:grid}.timeline-placeholder__row+.timeline-placeholder__row{border-top:1px solid var(--color-border)}.timeline-placeholder__row svg{width:1rem;color:var(--color-text-soft)}.timeline-placeholder__time,.screen-footnote{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.screen-footnote{justify-content:center;align-items:center;gap:var(--space-2);display:flex}.screen-footnote svg{width:var(--icon-sm)}.status-line{align-items:center;gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-xs);display:flex}.card--flush{position:relative}.card--flush>.icon-orb{top:var(--space-3);left:var(--space-3);width:2.35rem;height:2.35rem;position:absolute}.card--flush>.card__body>.eyebrow{min-height:2.55rem;padding-left:3rem;line-height:2.35rem;display:block}.week-list{margin:var(--space-2) calc(var(--space-4) * -1) calc(var(--space-4) * -1)}.week-row{min-height:3.35rem;padding:var(--space-1) var(--space-3);border-top:1px solid var(--color-border);align-items:center;gap:var(--space-2);grid-template-columns:3.25rem minmax(0,1fr) auto;display:grid}.week-row--today{background:var(--color-primary-soft)}.week-row__day{line-height:1.05;display:grid}.week-row__day strong{font-size:var(--font-size-xs);letter-spacing:.1em}.week-row__day small{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:.65rem}.week-row__content{align-items:center;gap:var(--space-2);min-width:0;display:flex}.week-row__content svg{width:var(--icon-md);color:var(--color-primary)}.week-row__content span{font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.segmented-control{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.segmented-control button{min-width:0;padding:0 var(--space-2);font-size:var(--font-size-xs)}.progress-grid{gap:var(--space-3);display:grid}.card-heading-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.mini-chart{height:3.8rem;margin-top:var(--space-3);padding:var(--space-2) var(--space-2) 0;border-bottom:1px solid var(--color-border);align-items:flex-end;gap:var(--space-2);background:linear-gradient(#0000,#e4f0e952);display:flex}.mini-chart span{background:#9fbcaf;border-radius:.25rem .25rem 0 0;flex:1;min-height:.4rem}.settings-list{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden}.settings-row{width:100%;min-height:4.3rem;padding:var(--space-2) var(--space-3);align-items:center;gap:var(--space-3);text-align:left;cursor:pointer;background:0 0;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.settings-row+.settings-row{border-top:1px solid var(--color-border)}.settings-row>svg{width:var(--icon-sm);color:var(--color-text-soft)}.settings-row__copy{min-width:0;display:grid}.settings-row__copy strong{font-weight:var(--font-weight-medium)}.settings-row__copy small{color:var(--color-text-secondary);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width>=30rem){.progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-grid .card{min-width:0}}@media (width<=22rem){.brand{font-size:1.4rem}.screen-header__actions{gap:var(--space-1)}.icon-button{width:2.55rem;height:2.55rem}.bottom-nav__item{font-size:.62rem}}*{box-sizing:border-box}html{background:#eeece7;min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;color:var(--color-text);background:var(--color-background);font-family:var(--font-sans);font-size:var(--font-size-base);font-synthesis:none;line-height:var(--line-height-base);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0}button,input,textarea,select{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0}button:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #2f665561}h1,h2,h3,p{margin:0}svg{stroke-width:1.8px;flex:none}#root{min-height:100vh}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
