:root{--color-bg: #f4f0ea;--color-bg-subtle: #ebe6de;--color-surface: #faf7f2;--color-surface-raised: #fffdf9;--color-ink: #2a2622;--color-ink-secondary: #6b645c;--color-ink-tertiary: #938b82;--color-line: #e4ddd4;--color-line-strong: #d0c8bd;--color-accent: #6e5a4b;--color-accent-hover: #5a493c;--color-accent-soft: #efe6dc;--color-sage: #5f6f62;--color-sage-soft: #e4ebe4;--color-danger: #8a4f44;--color-danger-soft: #f3e6e3;--color-focus: #6e5a4b;--color-overlay: rgba(42, 38, 34, .36);--font-serif: "Cormorant Garamond", "Times New Roman", serif;--font-sans: "Outfit", "Segoe UI", sans-serif;--text-display: 2.25rem;--text-title: 1.75rem;--text-heading: 1.25rem;--text-body: 1rem;--text-small: .875rem;--text-micro: .75rem;--leading-tight: 1.2;--leading-snug: 1.35;--leading-body: 1.55;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem;--space-9: 3rem;--space-10: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(42, 38, 34, .04);--shadow-md: 0 2px 10px rgba(42, 38, 34, .06);--sidebar-width: 248px;--bottom-nav-height: 68px;--content-max: 1080px;--touch: 44px;--ease: .18s ease}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}html,body,#root{overflow-x:clip;max-width:100%}html{background:var(--color-bg)}body{margin:0;color:var(--color-ink);background:var(--color-bg);font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--leading-body);font-weight:400;-webkit-font-smoothing:antialiased}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.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}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-5);border:1px solid transparent;border-radius:var(--radius-md);background:var(--color-accent);color:#fffdf9;font-size:var(--text-small);font-weight:500;letter-spacing:.04em;text-transform:uppercase;transition:background var(--ease),border-color var(--ease),color var(--ease)}.btn:hover{background:var(--color-accent-hover)}.btn-secondary{background:transparent;border-color:var(--color-line-strong);color:var(--color-ink)}.btn-secondary:hover{background:var(--color-accent-soft)}.btn-ghost{background:transparent;color:var(--color-ink-secondary);padding-inline:var(--space-3)}.btn-ghost:hover{color:var(--color-ink);background:var(--color-accent-soft)}.btn-danger{background:transparent;border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-soft)}.btn-block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.card{background:var(--color-surface-raised);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6)}.card-quiet{background:var(--color-surface)}.card-label{font-size:var(--text-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink-tertiary);font-weight:500}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field-label{font-size:var(--text-small);font-weight:500;color:var(--color-ink-secondary)}.field-input,.field-select,.field-textarea{width:100%;min-height:var(--touch);padding:0 var(--space-4);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-surface-raised)}.field-textarea{min-height:96px;padding:var(--space-3) var(--space-4);resize:vertical}.field-input:focus,.field-select:focus,.field-textarea:focus{border-color:var(--color-accent)}.check{display:flex;align-items:flex-start;gap:var(--space-3);min-height:var(--touch)}.check-box{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;margin:11px 0 0;flex:0 0 22px;border:1.5px solid var(--color-line-strong);border-radius:var(--radius-sm);background:var(--color-surface-raised)}.check-box:checked{background:var(--color-accent);border-color:var(--color-accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.2 6.4 11.2 12.5 4.8' stroke='%23fffdf9' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:14px;background-position:center;background-repeat:no-repeat}.check-copy{padding-top:10px;min-width:0}.check-title{display:block;font-weight:500}.check-meta{display:block;color:var(--color-ink-tertiary);font-size:var(--text-small)}.toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--touch)}.toggle-switch{position:relative;width:48px;height:28px;flex:0 0 48px;border:0;border-radius:999px;background:var(--color-line-strong);padding:0}.toggle-switch[aria-checked=true]{background:var(--color-accent)}.toggle-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform var(--ease)}.toggle-switch[aria-checked=true] .toggle-knob{transform:translate(20px)}.toggle-state{font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-tertiary)}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-line)}.tab{min-height:var(--touch);padding:0 var(--space-4);border:0;background:transparent;color:var(--color-ink-tertiary);letter-spacing:.1em;text-transform:uppercase;font-size:var(--text-small);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px}.tab[aria-selected=true]{color:var(--color-ink);border-bottom-color:var(--color-ink)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--color-overlay);display:flex;align-items:flex-end;justify-content:center;padding:0}.modal{width:100%;max-height:min(92vh,760px);overflow:auto;background:var(--color-surface-raised);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-6)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.modal-title{font-family:var(--font-serif);font-size:var(--text-title);font-weight:500;line-height:var(--leading-tight)}.modal-form{display:flex;flex-direction:column;gap:var(--space-5)}@media(min-width:768px){.modal-backdrop{align-items:center;padding:var(--space-6)}.modal{max-width:480px;border-radius:var(--radius-lg)}}.empty{text-align:center;padding:var(--space-8) var(--space-4)}.empty-title{font-family:var(--font-serif);font-size:clamp(1.25rem,5vw,1.5rem);font-weight:500;overflow-wrap:break-word}.empty-copy{margin-top:var(--space-2);color:var(--color-ink-secondary)}.empty .btn{margin-top:var(--space-5)}.progress-track{height:6px;background:var(--color-bg-subtle);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--color-sage);border-radius:inherit}.chip-row{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1);-webkit-overflow-scrolling:touch}.chip{flex:0 0 auto;min-height:36px;padding:0 var(--space-4);border:1px solid var(--color-line-strong);border-radius:999px;background:transparent;color:var(--color-ink-secondary);font-size:var(--text-small);letter-spacing:.04em;text-transform:uppercase}.chip[aria-pressed=true],.chip-active{background:var(--color-ink);border-color:var(--color-ink);color:#fffdf9}.toast{position:fixed;left:50%;bottom:calc(var(--bottom-nav-height) + var(--space-4) + env(safe-area-inset-bottom));transform:translate(-50%);z-index:50;min-height:40px;padding:var(--space-2) var(--space-5);background:var(--color-ink);color:#fffdf9;border-radius:var(--radius-md);font-size:var(--text-small);letter-spacing:.02em;white-space:nowrap}@media(min-width:768px){.toast{bottom:var(--space-6)}}.page-kicker{font-size:var(--text-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--color-ink-tertiary);font-weight:500}.page-title{font-family:var(--font-serif);font-size:clamp(2rem,4vw,2.75rem);font-weight:500;line-height:var(--leading-tight);margin-top:var(--space-2)}.page-subtitle{margin-top:var(--space-2);color:var(--color-ink-secondary);max-width:36rem}.app-shell{min-height:100vh;min-height:100dvh}.sidebar{display:none}.brand{display:flex;flex-direction:column;gap:var(--space-1);padding:0 var(--space-2) var(--space-7)}.brand-mark{font-family:var(--font-serif);font-size:1.35rem;font-weight:500;letter-spacing:.01em;line-height:var(--leading-tight)}.brand-sub{font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-tertiary)}.nav-list{display:flex;flex-direction:column;gap:2px}.nav-link{display:flex;align-items:center;gap:var(--space-3);min-height:42px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-ink-secondary);font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500}.nav-link:hover,.nav-link-active{color:var(--color-ink);background:var(--color-accent-soft)}.nav-rule{height:1px;background:var(--color-line);margin:var(--space-5) 0}.content{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-6) var(--space-4) calc(var(--bottom-nav-height) + var(--space-7) + env(safe-area-inset-bottom))}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;min-height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--color-surface-raised);border-top:1px solid var(--color-line)}.bottom-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:var(--bottom-nav-height);border:0;background:transparent;color:var(--color-ink-tertiary);font-size:.625rem;letter-spacing:.04em;text-transform:uppercase;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-inline:2px}.bottom-item-active{color:var(--color-ink)}.more-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35}.more-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);border:0;width:100%}.more-panel{position:absolute;left:0;right:0;bottom:0;background:var(--color-surface-raised);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-5) var(--space-5) calc(var(--space-6) + env(safe-area-inset-bottom))}.more-title{font-size:var(--text-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink-tertiary);margin-bottom:var(--space-3)}.more-link{display:flex;align-items:center;min-height:var(--touch);border-bottom:1px solid var(--color-line);font-size:var(--text-small);letter-spacing:.08em;text-transform:uppercase}.more-link:last-child{border-bottom:0}@media(min-width:768px){.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;position:sticky;top:0;height:100vh;height:100dvh;padding:var(--space-7) var(--space-5);border-right:1px solid var(--color-line);background:var(--color-surface)}.sidebar-foot{margin-top:auto}.content{padding:var(--space-8) var(--space-7) var(--space-10)}.bottom-nav,.more-sheet{display:none}}@media(min-width:1024px){.app-shell{grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.sidebar{padding:var(--space-8) var(--space-6)}.content{padding:var(--space-9) var(--space-8) var(--space-10)}}.home-grid{display:grid;gap:var(--space-5);margin-top:var(--space-7)}.progress-hero{display:flex;flex-direction:column;gap:var(--space-5)}.progress-percent{font-family:var(--font-serif);font-size:clamp(3.5rem,10vw,5rem);line-height:.9;font-weight:500}.progress-rows{display:grid;gap:var(--space-3)}.progress-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);align-items:center;font-size:var(--text-small);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-secondary)}.progress-value{color:var(--color-ink);font-variant-numeric:tabular-nums}.muted-dash{color:var(--color-ink-tertiary)}.routine-card-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-5)}.routine-card-head .btn{padding-inline:0}.routine-card-title{font-family:var(--font-serif);font-size:1.5rem;font-weight:500}.step-list{display:flex;flex-direction:column;gap:var(--space-1)}.step-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-3);align-items:start;padding:var(--space-2) 0;border-bottom:1px solid var(--color-line)}.step-row:last-child{border-bottom:0}.step-index{width:28px;padding-top:12px;font-size:var(--text-micro);letter-spacing:.08em;color:var(--color-ink-tertiary);font-variant-numeric:tabular-nums}.week-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:var(--space-3);align-items:center;margin-top:var(--space-4);font-size:var(--text-small)}.week-label{color:var(--color-ink-secondary)}.week-count{color:var(--color-ink);font-variant-numeric:tabular-nums;min-width:2.5rem;text-align:right}.placeholder-page{padding-top:var(--space-8);max-width:28rem}.placeholder-page p{margin-top:var(--space-3);color:var(--color-ink-secondary)}.routine-toolbar{display:flex;justify-content:stretch;margin:var(--space-5) 0}.routine-toolbar .btn{width:100%}@media(min-width:768px){.routine-toolbar{justify-content:flex-end}.routine-toolbar .btn{width:auto}}.manage-step{display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--space-3);align-items:start;padding:var(--space-4) 0;border-bottom:1px solid var(--color-line)}.manage-step:last-child{border-bottom:0}.manage-index{font-size:var(--text-micro);letter-spacing:.08em;color:var(--color-ink-tertiary);padding-top:4px}.manage-name{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink);font-weight:500}.manage-title{font-family:var(--font-serif);font-size:1.35rem;font-weight:500;margin-top:4px}.manage-product{margin-top:var(--space-1);color:var(--color-ink-secondary);font-size:var(--text-small)}.optional-tag{display:inline-block;margin-top:var(--space-2);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-tertiary)}.step-actions{display:flex;flex-wrap:wrap;gap:var(--space-1);grid-column:1 / -1}.icon-btn{width:var(--touch);height:var(--touch);display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-ink-secondary)}.icon-btn:hover:not(:disabled){background:var(--color-accent-soft);color:var(--color-ink)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.manage-step[draggable=true]{cursor:grab}.category-grid{display:grid;gap:var(--space-2)}.category-choice{min-height:var(--touch);text-align:left;padding:0 var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface)}.category-choice:hover,.category-choice[aria-pressed=true]{border-color:var(--color-ink);background:var(--color-accent-soft)}.day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2)}.day-chip{min-height:40px;padding:0;border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:transparent;font-size:.75rem}.day-chip[aria-pressed=true]{background:var(--color-ink);border-color:var(--color-ink);color:#fffdf9}.products-head{display:flex;flex-direction:column;gap:var(--space-5)}.products-head .page-subtitle{margin-bottom:0}.product-grid{display:grid;gap:var(--space-4);margin-top:var(--space-6)}.product-card{display:block;text-align:left;width:100%;border:1px solid var(--color-line);background:var(--color-surface-raised);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.product-card:hover{border-color:var(--color-line-strong)}.product-brand{font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-tertiary)}.product-name{font-family:var(--font-serif);font-size:1.4rem;font-weight:500;margin-top:var(--space-2)}.product-meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-top:var(--space-4);font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-secondary)}.product-archived{opacity:.72}.detail-stack{display:grid;gap:var(--space-6);margin-top:var(--space-7)}.detail-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.detail-block h2{font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-tertiary);font-weight:500}.detail-block p,.detail-block li{margin-top:var(--space-2)}.detail-block ul{margin:var(--space-2) 0 0;padding-left:1.1rem}.used-in{display:flex;flex-wrap:wrap;gap:var(--space-5)}@media(min-width:768px){.routine-card-head{flex-direction:row;justify-content:space-between;align-items:flex-start}.manage-step{grid-template-columns:36px minmax(0,1fr) auto}.step-actions{grid-column:auto;justify-content:flex-end}.products-head{flex-direction:row;justify-content:space-between;align-items:flex-end}.home-grid{grid-template-columns:1fr 1fr}.home-wide{grid-column:1 / -1}.product-grid{grid-template-columns:1fr 1fr}}@media(min-width:1024px){.home-grid{gap:var(--space-6)}}.checkin-page{max-width:640px}.checkin-form{display:grid;gap:var(--space-5);margin-top:var(--space-7)}.checkin-section{margin:0;padding:0;border:0;min-width:0}.checkin-question{font-family:var(--font-serif);font-size:1.35rem;font-weight:500;line-height:var(--leading-snug);color:var(--color-ink);margin-bottom:var(--space-5);padding:0}.choice-grid{display:flex;flex-wrap:wrap;gap:var(--space-2)}.choice-chip{min-height:var(--touch);padding:0 var(--space-4);border:1px solid var(--color-line-strong);border-radius:999px;background:var(--color-surface);color:var(--color-ink-secondary);font-size:var(--text-small);font-weight:500}.choice-chip:hover{border-color:var(--color-ink);color:var(--color-ink)}.choice-chip-selected{background:var(--color-ink);border-color:var(--color-ink);color:#fffdf9;box-shadow:inset 0 0 0 1px #fffdf9}.comfort-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-2)}.comfort-btn{min-height:var(--touch);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-ink-secondary);font-size:1rem;font-weight:500;font-variant-numeric:tabular-nums}.comfort-btn:hover{border-color:var(--color-ink);color:var(--color-ink)}.comfort-btn-selected{background:var(--color-ink);border-color:var(--color-ink);color:#fffdf9;box-shadow:inset 0 0 0 1px #fffdf9}#checkin-note{min-height:88px;max-height:120px;resize:none}.checkin-error{color:var(--color-danger);font-size:var(--text-small);margin:0}.checkin-success{padding:var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-sage-soft)}.checkin-success-title{font-family:var(--font-serif);font-size:1.35rem;font-weight:500}@media(min-width:768px){.checkin-form{gap:var(--space-6)}}.device-grid{display:grid;gap:var(--space-4);margin-top:var(--space-6)}.device-card{border:1px solid var(--color-line);background:var(--color-surface-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.device-card-main{display:block;padding:var(--space-5)}.device-card-main:hover .product-name{color:var(--color-accent)}.device-meta-block{margin-top:var(--space-4)}.device-meta-block p:last-child{margin-top:var(--space-1)}.device-card-actions{padding:0 var(--space-5) var(--space-5)}.usage-history{list-style:none;margin:var(--space-3) 0 0;padding:0}.usage-history li{display:flex;justify-content:space-between;gap:var(--space-4);min-height:40px;align-items:center;border-bottom:1px solid var(--color-line);color:var(--color-ink-secondary)}.usage-history li:last-child{border-bottom:0}@media(min-width:768px){.device-grid{grid-template-columns:1fr 1fr}}.calendar-page{max-width:1100px}.calendar-layout{display:grid;gap:var(--space-7);margin-top:var(--space-7)}.calendar-month-nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:0;border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-sm);overflow:hidden}.calendar-nav-btn{min-height:48px;padding:0 var(--space-4);border:0;border-radius:0;background:transparent;color:var(--color-ink-secondary);font-size:var(--text-small);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.calendar-nav-btn:hover{background:var(--color-accent-soft);color:var(--color-ink)}.calendar-month-title{font-family:var(--font-serif);font-size:clamp(1.35rem,3.5vw,1.7rem);font-weight:500;text-align:center;line-height:var(--leading-tight);margin:0;padding:var(--space-3) var(--space-2);border-left:1px solid var(--color-line);border-right:1px solid var(--color-line)}.calendar-today-row{display:flex;justify-content:center;margin:var(--space-3) 0 var(--space-5)}.calendar-today-row .btn{min-height:36px;font-size:.75rem;letter-spacing:.08em}.calendar-summary,.calendar-panel{min-width:0}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1);justify-items:stretch;align-items:stretch}.calendar-weekday{text-align:center;font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-tertiary);padding-bottom:var(--space-2)}.calendar-cell-slot{display:flex;min-width:0;width:100%;min-height:58px;border:1px solid transparent;border-radius:var(--radius-md);box-sizing:border-box}.calendar-cell-slot.is-empty{pointer-events:none;border-color:transparent}.calendar-cell-slot.is-today{background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-line-strong)}.calendar-cell-slot.is-selected{border-color:var(--color-ink);background:var(--color-surface-raised);box-shadow:var(--shadow-sm)}.calendar-cell-slot.is-selected.is-today{background:var(--color-accent-soft)}.calendar-cell-slot:not(.is-empty):hover{background:var(--color-accent-soft)}.calendar-cell-slot.is-selected:hover{background:var(--color-surface-raised)}.calendar-cell-slot.is-selected.is-today:hover{background:var(--color-accent-soft)}.calendar-cell{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;width:100%;max-width:100%;min-width:0;min-height:100%;margin:0;padding:var(--space-2) 2px var(--space-2);border:0;border-radius:inherit;background:transparent;color:var(--color-ink);box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none}.calendar-cell-future{color:var(--color-ink-tertiary)}.calendar-day-number{font-size:.9375rem;font-weight:500;font-variant-numeric:tabular-nums;line-height:1}.calendar-indicators{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;max-width:100%;min-height:12px;line-height:1;overflow:hidden}.cal-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--color-ink);font-style:normal;font-weight:400}.cal-mark-routine,.cal-mark-checkin,.cal-mark-device{width:8px;height:8px;flex:0 0 8px;font-size:0;line-height:0;box-sizing:border-box;position:relative;top:auto;overflow:hidden}.cal-mark-routine{border:0;background:transparent;transform:none}.cal-mark-routine:after{content:"";width:5px;height:5px;border-radius:.5px;background:var(--color-ink);transform:rotate(45deg)}.cal-mark-checkin{border:1.5px solid var(--color-ink);border-radius:50%;background:transparent}.cal-mark-device{width:7px;height:7px;flex:0 0 7px;border:0;border-radius:1px;background:var(--color-ink)}.calendar-legend{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);margin-top:var(--space-5);font-size:var(--text-small);color:var(--color-ink-secondary)}.calendar-legend>span{display:inline-flex;align-items:center;gap:var(--space-2)}.calendar-summary-stack{display:grid;gap:var(--space-4)}.calendar-summary-rows{display:grid;gap:var(--space-4);margin-top:var(--space-4)}.calendar-device-list{list-style:none;margin:var(--space-4) 0 0;padding:0}.calendar-device-list li{display:flex;justify-content:space-between;gap:var(--space-3);min-height:40px;align-items:center;border-bottom:1px solid var(--color-line);color:var(--color-ink-secondary)}.calendar-device-list li:last-child{border-bottom:0}@media(min-width:768px){.calendar-layout{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:start;gap:var(--space-7)}.calendar-summary{position:sticky;top:var(--space-6)}.calendar-cell-slot{min-height:64px}.calendar-cell{padding:var(--space-3) var(--space-1) var(--space-2)}}@media(min-width:1024px){.calendar-layout{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:var(--space-8)}.calendar-cell-slot{min-height:72px}}.insights-page{max-width:1100px}.insights-range{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-6) 0 var(--space-5)}.insights-range-btn{min-height:40px;padding:0 var(--space-4);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:transparent;color:var(--color-ink-secondary);font-size:var(--text-small);letter-spacing:.08em;text-transform:uppercase}.insights-range-btn[aria-pressed=true]{background:var(--color-surface-raised);border-color:var(--color-ink);color:var(--color-ink);box-shadow:var(--shadow-sm)}.insights-empty-banner{margin-bottom:var(--space-5)}.insights-overview{display:grid;grid-template-columns:1fr;gap:var(--space-3);margin-bottom:var(--space-6)}.insights-stat-card{min-width:0}.insights-stat-value{margin-top:var(--space-3);font-family:var(--font-serif);font-size:clamp(1.75rem,5vw,2.25rem);font-weight:500;line-height:var(--leading-tight);color:var(--color-ink)}.insights-stat-unit{font-family:var(--font-sans);font-size:var(--text-small);letter-spacing:.04em;text-transform:none;font-weight:400;color:var(--color-ink-secondary)}.insights-stat-secondary{margin-top:var(--space-2);font-size:var(--text-small);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-secondary)}.insights-stat-empty{margin-top:var(--space-3);color:var(--color-ink-secondary)}.insights-layout{display:grid;gap:var(--space-5)}.insights-main,.insights-aside{display:grid;gap:var(--space-5);min-width:0}.insights-section-title{margin-top:var(--space-2);margin-bottom:var(--space-5);font-family:var(--font-serif);font-size:clamp(1.25rem,3.5vw,1.5rem);font-weight:500;line-height:var(--leading-tight)}.insights-subhead{margin-bottom:var(--space-3);font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-tertiary);font-weight:500}.insights-stack{display:grid;gap:var(--space-6)}.insights-bar-list{display:grid;gap:var(--space-3)}.insights-bar-row{display:grid;gap:6px;min-width:0}.insights-bar-meta{display:flex;justify-content:space-between;gap:var(--space-3);align-items:baseline}.insights-bar-label{font-size:var(--text-small);color:var(--color-ink);min-width:0;overflow-wrap:anywhere}.insights-bar-value{flex:0 0 auto;font-size:var(--text-small);font-variant-numeric:tabular-nums;color:var(--color-ink-secondary)}.insights-bar-track{height:6px;background:var(--color-bg-subtle);border-radius:999px;overflow:hidden}.insights-bar-fill{height:100%;background:var(--color-ink);opacity:.55;border-radius:inherit;max-width:100%}.insights-footnote{margin-top:var(--space-4);font-size:var(--text-small);color:var(--color-ink-tertiary)}.insights-section-empty .page-subtitle{margin-top:var(--space-2)}.insights-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5)}.insights-reflect-fields{display:grid;gap:var(--space-5)}@media(min-width:480px){.insights-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.insights-stat-card:last-child{grid-column:1 / -1}}@media(min-width:768px){.insights-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.insights-stat-card:last-child{grid-column:auto}.insights-layout{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:start;gap:var(--space-7)}.insights-aside{position:sticky;top:var(--space-6)}}@media(min-width:1024px){.insights-layout{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:var(--space-8)}}.settings-page,.help-page{max-width:720px}.settings-stack,.help-stack{display:grid;gap:var(--space-5);margin-top:var(--space-7)}.settings-section-title,.help-section-title{margin-top:var(--space-2);margin-bottom:var(--space-3);font-family:var(--font-serif);font-size:clamp(1.25rem,3.5vw,1.5rem);font-weight:500;line-height:var(--leading-tight)}.settings-copy,.help-prose{color:var(--color-ink-secondary);line-height:var(--leading-body)}.settings-copy+.settings-copy,.help-prose p+p{margin-top:var(--space-3)}.settings-copy-strong{margin-top:var(--space-3);color:var(--color-ink)}.settings-field{margin-top:var(--space-5)}.settings-segment{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.settings-segment-btn{min-height:44px;padding:0 var(--space-5);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:transparent;color:var(--color-ink-secondary);font-size:var(--text-small);letter-spacing:.06em;text-transform:uppercase}.settings-segment-btn[aria-pressed=true]{background:var(--color-surface-raised);border-color:var(--color-ink);color:var(--color-ink);box-shadow:var(--shadow-sm)}.settings-actions,.settings-modal-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5)}.settings-modal-actions{justify-content:flex-end}.settings-danger .settings-section-title{color:var(--color-ink)}.help-accordion{display:grid;gap:var(--space-2);margin-top:var(--space-4)}.help-details{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.help-summary{list-style:none;cursor:pointer;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--text-body);font-weight:500;color:var(--color-ink)}.help-summary::-webkit-details-marker{display:none}.help-summary:after{content:"→";flex:0 0 auto;color:var(--color-ink-tertiary);transition:transform var(--ease)}.help-details[open] .help-summary:after{transform:rotate(90deg)}.help-details-body{padding:0 var(--space-4) var(--space-4);color:var(--color-ink-secondary)}.help-details-body p+p,.help-details-body p+ol,.help-details-body ol+p{margin-top:var(--space-3)}.help-steps{margin:0;padding-left:1.25rem;display:grid;gap:var(--space-2)}.help-steps a{text-decoration:underline;text-underline-offset:2px}.help-note{padding:var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-accent-soft)}.help-note .card-label{margin-bottom:var(--space-2)}.help-note p:last-child{color:var(--color-ink-secondary)}.help-version{margin-top:var(--space-4);font-size:var(--text-small);letter-spacing:.04em;color:var(--color-ink-tertiary)}
