:root{color:#172018;font-synthesis:none;text-rendering:optimizelegibility;background:#f3f6ee;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{width:min(1240px,100vw - 28px);margin:0 auto;padding:24px 0 52px}.loading{color:#d58a1f;place-items:center;min-height:100vh;display:grid}.topbar{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px;display:flex}.top-actions{align-items:center;gap:8px;display:flex}.language-switch{background:#cfd8c9;border:1px solid #cfd8c9;border-radius:8px;gap:1px;display:inline-flex;overflow:hidden}.language-switch button{color:#4d5a50;background:#fbfff7;border:0;min-width:42px;min-height:36px;font-size:.78rem;font-weight:760}.language-switch button.active{color:#fbfff7;background:#203326}.eyebrow{color:#647066;margin:0 0 4px;font-size:.82rem}h1,h2,h3,p{margin:0}h1{letter-spacing:0;font-size:clamp(2.1rem,6vw,4.6rem);font-weight:760;line-height:.95}.icon-button,.icon-mini,.check-button{color:#28352c;background:#fbfff7;border:1px solid #cfd8c9;border-radius:8px;place-items:center;display:inline-grid}.icon-button{width:38px;height:38px}.summary-band{background:#cbd5c4;border:1px solid #cbd5c4;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:12px;display:grid;overflow:hidden}.summary-band div{background:#fbfff7;flex-direction:column;gap:7px;min-width:0;padding:15px 16px;display:flex}.summary-band span{color:#66736a;font-size:.82rem}.summary-band strong{font-size:1.05rem}.input-deck{gap:8px;margin-bottom:12px;display:grid}.quick-add{grid-template-columns:136px minmax(220px,1fr) 116px 116px 104px;gap:8px;display:grid}.routine-form{grid-template-columns:136px minmax(220px,1fr) 116px 116px 126px 116px}.form-label{color:#4d5a50;background:#eef4e8;border:1px solid #cbd5c4;border-radius:8px;align-items:center;min-height:42px;padding:0 11px;font-weight:720;display:flex}.quick-add input,.quick-add select,.quick-add button,.tabs button{color:#172018;background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;min-height:42px}.quick-add input,.quick-add select{width:100%;padding:0 11px}.quick-add button,.tabs button{justify-content:center;align-items:center;gap:8px;font-weight:680;display:inline-flex}.quick-add button{background:#ffd166;border-color:#d79b20}.tabs{gap:8px;margin-bottom:14px;display:flex}.tabs button{padding:0 16px}.tabs button.active{color:#fbfff7;background:#203326;border-color:#203326}.day-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.person-panel,.week-timeline{background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;min-width:0}.person-panel>header{background:#eef4e8;border-bottom:1px solid #dfe7db;align-items:center;gap:9px;padding:16px;display:flex}.member-dot{border-radius:50%;flex:none;width:12px;height:12px}.person-panel h2{font-size:1.08rem}.person-panel h3{color:#5f6c64;text-transform:uppercase;padding:14px 16px 8px;font-size:.78rem}.todo-stack,.routine-stack{gap:0;padding:6px 16px 14px;display:grid}.todo-row,.routine-row{border-top:1px solid #e2e8de;align-items:center;gap:9px;min-width:0;min-height:48px;padding:8px 0;display:grid}.todo-row{grid-template-columns:34px minmax(0,1fr) 72px 30px 30px 30px}.routine-row{grid-template-columns:28px minmax(140px,1fr) 96px 96px 118px 30px 30px}.routine-row input,.routine-row select{color:#172018;background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;width:100%;min-height:32px;padding:0 8px;font-size:.78rem}.todo-row strong,.routine-row strong{overflow-wrap:anywhere;display:block}.todo-row span,.routine-row span{color:#6a756d;font-size:.78rem}.todo-row.done strong{color:#647066;text-decoration:line-through}.check-button,.icon-mini{width:28px;height:28px}.empty-line{color:#7b857e;padding:12px 0}.status-pill{color:#475249;background:#edf2e9;border-radius:999px;justify-content:center;align-items:center;min-width:58px;min-height:26px;font-size:.76rem;font-weight:720;display:inline-flex}.status-pill.doing{color:#1d4ed8;background:#dbeafe}.status-pill.done{color:#15803d;background:#dcfce7}.status-pill.skipped{color:#475569;background:#f1f5f9}.week-timeline{overflow:auto hidden}.week-head{z-index:3;background:#eef4e8;border-bottom:1px solid #dfe7db;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex;position:relative}.week-head>div:first-child{min-width:min(100%,320px)}.week-head h2{font-size:1rem}.week-head p{color:#637068;white-space:pre-line;margin-top:5px}.free-legend{color:#325143;align-items:center;gap:8px;font-size:.84rem;font-weight:700;display:inline-flex}.free-legend span{background:#c8f7dc;border:1px solid #76d29d;border-radius:999px;width:28px;height:12px}.week-calendar{z-index:1;min-width:1192px;display:flex;position:relative}.time-gutter{z-index:5;background:#fbfff7;border-right:1px solid #dfe7db;flex:0 0 72px;position:sticky;left:0}.time-gutter-head{background:#fbfff7;border-bottom:1px solid #dfe7db;height:46px}.time-axis{background:#fbfff7;position:relative}.time-axis span{color:#68746b;font-variant-numeric:tabular-nums;font-size:.72rem;line-height:1;position:absolute;right:11px;transform:translateY(-50%)}.week-days{flex:1 0 1120px;min-width:1120px}.week-date-row,.week-grid{grid-template-columns:repeat(7,minmax(160px,1fr));display:grid}.week-day-head{background:#fbfff7;border-bottom:1px solid #dfe7db;border-right:1px solid #dfe7db;justify-content:space-between;align-items:center;min-width:0;height:46px;padding:0 12px;display:flex}.week-day-head strong{font-size:.83rem}.week-day-head span{color:#6b766e;font-variant-numeric:tabular-nums;font-size:.76rem;font-weight:680}.week-day{border-right:1px solid #dfe7db;min-width:0}.mini-axis{background:repeating-linear-gradient(#0000 0 45px,#e2e8de 46px),#fbfff7;position:relative;overflow:hidden}.free-block,.timeline-block{border-radius:5px;position:absolute;left:7px;right:7px}.free-block{z-index:1;background:#bbf7d052;border:1px solid #4ade806b}.timeline-block{z-index:2;background:#fff;border:1px solid #94a3b861;border-left:4px solid #94a3b8;padding:6px 7px;transition:background .14s,box-shadow .14s,transform .14s,min-height .14s;overflow:hidden;box-shadow:0 2px 6px #1f292314}.timeline-block.left{right:calc(50% + 3px)}.timeline-block.right{left:calc(50% + 3px)}.timeline-block.routine{color:#475569;background:#f1f5f9bd}.timeline-block.doing{background:#dbeafe}.timeline-block.done{background:#dcfce7}.timeline-block.todo{background:#fff7db;border-color:#d977066b}.timeline-block:hover,.timeline-block:focus-within{z-index:8;background:#fff;min-height:54px;overflow:visible;transform:translateY(-2px);box-shadow:0 14px 30px #1f29232e}.timeline-block strong{text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;line-height:1.2;display:block;overflow:hidden}.timeline-block:hover strong{white-space:normal}.timeline-block span{color:#66736a;font-variant-numeric:tabular-nums;font-size:.68rem}.icon-button.active{color:#fbfff7;background:#203326;border-color:#203326}.note-form{grid-template-columns:30px minmax(220px,1fr) 116px}.note-icon{color:#d58a1f;place-self:center}.settings-panel{background:#eef4e8;border:1px solid #cbd5c4;border-radius:8px;gap:12px;margin-bottom:12px;padding:16px;display:grid}.settings-panel>label{gap:5px;display:grid}.settings-panel label>span{color:#4d5a50;font-size:.82rem;font-weight:700}.settings-panel input{color:#172018;background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;min-height:40px;padding:0 11px}.settings-times{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.settings-times label{gap:5px;display:grid}.settings-toggles{flex-wrap:wrap;gap:16px;display:flex}.toggle{align-items:center;gap:8px;display:inline-flex}.toggle input{width:18px;height:18px;min-height:0}.settings-panel>button{background:#ffd166;border:1px solid #d79b20;border-radius:8px;justify-self:start;align-items:center;gap:8px;min-height:40px;padding:0 18px;font-weight:680;display:inline-flex}.week-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;display:flex}.recap-button{color:#fbfff7;background:#203326;border:1px solid #203326;border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:0 14px;font-weight:680;display:inline-flex}.recap-button:disabled{opacity:.6;cursor:default}.recap-card{background:#fbfff7;border-bottom:1px solid #dfe7db;padding:14px 16px}.recap-card h3{color:#5f6c64;text-transform:uppercase;margin-bottom:8px;font-size:.78rem}.recap-card pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-family:inherit;font-size:.9rem;line-height:1.5}.sleep-report{background:#fbfff7;border-bottom:1px solid #dfe7db;gap:10px;padding:13px 16px 15px;display:grid}.sleep-report header{align-items:center;gap:8px;display:flex}.sleep-report header strong{font-size:.88rem}.sleep-report header span{color:#647066;font-size:.78rem;font-weight:680}.sleep-report-grid{grid-template-columns:repeat(auto-fit,minmax(142px,1fr));gap:8px;display:grid}.sleep-chip{background:#f8fbf4;border:1px solid #dfe7db;border-radius:8px;gap:4px;min-width:0;padding:8px 9px;display:grid}.sleep-chip.met{background:#f0fdf4;border-color:#86efac}.sleep-chip.late_sleep,.sleep-chip.late_wake,.sleep-chip.short_gap{background:#fffbeb;border-color:#facc15}.sleep-chip.missing_schedule,.sleep-chip.missing_signal{background:#f8fafc;border-color:#cbd5e1}.sleep-chip span,.sleep-chip small{color:#66736a;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.sleep-chip strong{font-variant-numeric:tabular-nums;font-size:.82rem}.score-strip{color:#5a4410;background:linear-gradient(90deg,#fff2cf,#fbfff7);border:1px solid #d79b20;border-radius:8px;align-items:center;gap:8px;width:100%;margin-bottom:12px;padding:10px 14px;font-weight:700;display:flex}.score-chip{font-variant-numeric:tabular-nums;align-items:center;gap:5px;display:inline-flex}.score-chip.today{color:#5a4410;background:#ffd166;border-radius:999px;margin-left:auto;padding:2px 10px}.score-view{gap:14px;display:grid}.score-hero{background:#cbd5c4;border:1px solid #cbd5c4;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.hero-stat{color:#28352c;text-align:center;background:#fbfff7;flex-direction:column;align-items:center;gap:4px;padding:18px 12px;display:flex}.hero-stat.streak{color:#c2410c;background:#fff5ec}.hero-stat strong{font-variant-numeric:tabular-nums;font-size:1.7rem}.hero-stat span{color:#66736a;font-size:.76rem}.hero-stat.streak span{color:#c2410c}.score-hint{color:#66736a;font-size:.84rem}.score-bars{background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;align-items:flex-end;gap:6px;height:120px;padding:12px 14px 6px;display:flex}.score-bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:5px;height:100%;display:flex}.score-bar{background:#ffd166;border:1px solid #e0ad33;border-radius:4px 4px 0 0;width:100%;min-height:3px}.score-bar-col span{color:#8a938b;font-variant-numeric:tabular-nums;font-size:.64rem}.member-today{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.member-today-row{color:#8a938b;background:#f3f6ee;border:1px solid #cbd5c4;border-radius:8px;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.member-today-row.active{color:#28352c;background:#fbfff7}.member-today-row span{font-variant-numeric:tabular-nums;font-weight:720}.rewards-block{background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;padding:14px}.rewards-block h3{color:#5f6c64;text-transform:uppercase;align-items:center;gap:7px;margin-bottom:12px;font-size:.82rem;display:flex}.reward-form{grid-template-columns:minmax(0,1fr) 110px 128px;gap:8px;margin-bottom:10px;display:grid}.reward-form input{color:#172018;background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;min-height:40px;padding:0 11px}.reward-form button{background:#ffd166;border:1px solid #d79b20;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:40px;font-weight:680;display:inline-flex}.reward-row{border-top:1px solid #e2e8de;grid-template-columns:18px minmax(0,1fr) auto auto 30px;align-items:center;gap:10px;padding:11px 0;display:grid}.reward-row strong{overflow-wrap:anywhere}.reward-row.claimed strong{color:#647066;text-decoration:line-through}.reward-cost{color:#6a756d;font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:.82rem;display:inline-flex}.reward-claim{color:#fbfff7;background:#203326;border:1px solid #203326;border-radius:999px;min-height:32px;padding:0 14px;font-weight:680}.reward-claim:disabled{color:#9aa69d;cursor:default;background:#eef4e8;border-color:#cbd5c4}.reward-claimed{color:#15803d;align-items:center;gap:4px;font-size:.8rem;font-weight:700;display:inline-flex}.date-nav{align-items:center;gap:10px;margin-bottom:12px;display:flex}.date-nav strong{font-variant-numeric:tabular-nums;font-size:.98rem}.today-button{color:#28352c;background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;min-height:38px;padding:0 14px;font-weight:680}.all-view{gap:12px;display:grid}.hist-filters{background:#eef4e8;border:1px solid #cbd5c4;border-radius:8px;flex-wrap:wrap;align-items:end;gap:8px;padding:14px;display:flex}.hist-filters label{color:#4d5a50;gap:4px;font-size:.78rem;display:grid}.hist-filters input,.hist-filters select{color:#172018;background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;min-height:40px;padding:0 11px}.hist-filters>input{flex:160px}.hist-filters button{background:#ffd166;border:1px solid #d79b20;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 16px;font-weight:680;display:inline-flex}.stats-band{background:#cbd5c4;border:1px solid #cbd5c4;border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;display:grid;overflow:hidden}.stats-band div{background:#fbfff7;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.stats-band span{color:#66736a;font-size:.8rem}.stats-band strong{font-variant-numeric:tabular-nums;font-size:1.05rem}.hist-list{background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;display:grid;overflow:hidden}.hist-row{border-top:1px solid #e2e8de;grid-template-columns:92px 12px minmax(0,1fr) 96px 64px;align-items:center;gap:10px;padding:11px 14px;display:grid}.hist-row:first-child{border-top:0}.hist-row strong{overflow-wrap:anywhere}.hist-date,.hist-time{color:#6a756d;font-variant-numeric:tabular-nums;font-size:.78rem}.hist-row.done strong{color:#647066;text-decoration:line-through}button.week-day-head{font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%}button.week-day-head:hover{background:#eef4e8}button.week-day-head.is-today strong{color:#c2410c}.now-line{z-index:5;pointer-events:none;border-top:2px solid #ef4444;height:0;position:absolute;left:0;right:0}.now-line span{background:#ef4444;border-radius:50%;width:7px;height:7px;position:absolute;top:-4px;left:0}.week-day.is-today h3{color:#c2410c}.routine-form-v2{background:#eef4e8;border:1px solid #cbd5c4;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.routine-form-v2>input{color:#172018;background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;min-height:40px;padding:0 11px}.routine-form-v2>input[type=text],.routine-form-v2>input:not([type]){flex:180px}.routine-form-v2>button{background:#ffd166;border:1px solid #d79b20;border-radius:8px;align-items:center;gap:6px;min-height:40px;padding:0 16px;font-weight:680;display:inline-flex}.recurrence-picker{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.weekday-toggles{gap:3px;display:inline-flex}.weekday-toggles button{color:#6a756d;background:#fbfff7;border:1px solid #cbd5c4;border-radius:7px;width:30px;height:34px;font-size:.78rem;font-weight:700}.weekday-toggles button.on{color:#fbfff7;background:#203326;border-color:#203326}.interval-field{color:#4d5a50;align-items:center;gap:5px;font-size:.82rem;display:inline-flex}.interval-field input{color:#172018;background:#fbfff7;border:1px solid #cbd5c4;border-radius:7px;width:48px;min-height:34px;padding:0 8px}.routine-group{margin-bottom:4px}.routine-group-head{color:#5f6c64;text-transform:uppercase;letter-spacing:.03em;padding:8px 16px 2px;font-size:.72rem}.routine-group-head.sleep{color:#6d28d9}.routine-row-edit{border-top:1px solid #e2e8de;gap:6px;padding:9px 0;display:grid}.routine-row-head{align-items:center;gap:8px;display:flex}.routine-row-head strong{overflow-wrap:anywhere}.routine-row-head span{color:#6a756d;margin-left:auto;font-size:.76rem}.routine-row-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.routine-row-controls input[type=time]{background:#fbfff7;border:1px solid #cbd5c4;border-radius:7px;min-height:34px;padding:0 8px}.lead-field{gap:6px}.lead-field input{color:#172018;background:#fbfff7;border:1px solid #cbd5c4;border-radius:7px;width:60px;min-height:32px;padding:0 8px}.sleep-view{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.sleep-person{background:#fbfff7;border:1px solid #cbd5c4;border-radius:8px;overflow:hidden}.sleep-person>header{background:#f3f0fb;border-bottom:1px solid #dfe7db;align-items:center;gap:9px;padding:14px 16px;display:flex}.sleep-stats{background:#e6e2f2;border-bottom:1px solid #dfe7db;grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.sleep-stats div{text-align:center;background:#fbfff7;flex-direction:column;gap:4px;padding:12px 10px;display:flex}.sleep-stats span{color:#66736a;font-size:.72rem}.sleep-stats strong{font-variant-numeric:tabular-nums;font-size:1rem}.sleep-rows{display:grid}.sleep-row{border-top:1px solid #eceaf6;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 16px;display:grid}.sleep-row strong{font-variant-numeric:tabular-nums;font-size:.9rem}.sleep-date{color:#8a938b;font-variant-numeric:tabular-nums;font-size:.76rem}.sleep-row small{color:#8a938b;font-size:.72rem}.sleep-row.late_sleep,.sleep-row.late_wake,.sleep-row.short_gap{background:#fff7ed}.sleep-row.met{background:#f0fdf4}@media (width<=860px){.app-shell{width:min(100vw - 22px,1240px);padding-top:18px}.topbar{align-items:flex-start}.top-actions{flex-direction:column-reverse;align-items:flex-end}.summary-band,.quick-add,.routine-form,.note-form,.settings-times,.reward-form,.day-list{grid-template-columns:1fr}.quick-add button{width:100%}.todo-row{grid-template-columns:34px minmax(0,1fr) 68px}.routine-row{grid-template-columns:28px minmax(0,1fr) 30px 30px}.routine-row input,.routine-row select{grid-column:span 2}.hist-row{grid-template-columns:78px 12px minmax(0,1fr) 58px}.hist-row .hist-time,.todo-row .icon-mini{display:none}}
