:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f6f2;--surface:#fff;--surface-2:#f0efea;--border:#e3e1da;--text:#1d1d1b;--text-2:#5d5c56;--muted:#8a8880;--accent:#2f6b5b;--accent-soft:#e2efe9;--on-accent:#fff;--warn:#8a5a00;--warn-soft:#fbefd5;--danger:#b3261e;--alex:#2a78d6;--abbie:#eb6834;--alex-soft:#e3eefb;--abbie-soft:#fde9e0;--shadow:0 1px 2px #0000000f, 0 2px 8px #0000000a;--raised:#fff;--radius:14px;--tabbar-h:58px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#171716;--surface:#212120;--surface-2:#2a2a28;--border:#353532;--text:#f0efec;--text-2:#c3c2b7;--muted:#8f8e86;--accent:#6cbba3;--accent-soft:#1f3530;--on-accent:#10201b;--warn:#e7b65a;--warn-soft:#3a2e17;--danger:#f2817a;--alex:#3987e5;--abbie:#d95926;--alex-soft:#1c2b40;--abbie-soft:#3b2219;--shadow:0 0 0 transparent;--raised:#3b3b38}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#171716;--surface:#212120;--surface-2:#2a2a28;--border:#353532;--text:#f0efec;--text-2:#c3c2b7;--muted:#8f8e86;--accent:#6cbba3;--accent-soft:#1f3530;--on-accent:#10201b;--warn:#e7b65a;--warn-soft:#3a2e17;--danger:#f2817a;--alex:#3987e5;--abbie:#d95926;--alex-soft:#1c2b40;--abbie-soft:#3b2219;--shadow:0 0 0 transparent;--raised:#3b3b38}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.4}body.sheet-open{overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;padding:10px 12px;font-size:16px}input:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{margin:0}.muted{color:var(--muted)}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.splash,.loading{min-height:40vh;color:var(--muted);place-items:center;display:grid}.app{min-height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}.content{max-width:640px;margin:0 auto;padding:12px 16px 24px}.week-header{z-index:5;max-width:640px;padding:calc(8px + env(safe-area-inset-top)) 8px 8px;margin:0 auto;margin-top:calc(-1 * env(safe-area-inset-top));background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);align-items:center;gap:8px;display:flex;position:sticky;top:0}.week-title{text-align:center;flex:1}.week-range{font-size:17px;font-weight:650}.week-sub{color:var(--text-2);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.icon-btn{width:44px;height:44px;color:var(--text-2);border-radius:22px;font-size:28px;line-height:1}.icon-btn:active{background:var(--surface-2)}.link{color:var(--accent);font-weight:550}.tabbar{z-index:10;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);justify-content:space-around;display:flex;position:fixed;inset:auto 0 0}.tab{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;font-size:11px;display:flex}.tab span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tab svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.tab.active{color:var(--accent);font-weight:600}.login{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding:24px 16px;display:flex}.login-icon{width:88px;height:88px;box-shadow:var(--shadow);border-radius:20px}.login form{flex-direction:column;gap:10px;width:100%;max-width:320px;margin-top:8px;display:flex}.error{color:var(--danger);text-align:center;margin:0}.btn{background:var(--surface-2);border-radius:12px;min-height:44px;padding:10px 16px;font-weight:600}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.5}.pill{background:var(--surface-2);color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:550;display:inline-flex}.pill.accent{background:var(--accent-soft);color:var(--accent)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:4px 10px;font-size:14px;font-weight:600;line-height:1.1;display:inline-flex}.chip small{color:var(--muted);font-size:11px;font-weight:400}.chips.days{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.chips.days .chip{min-width:0;padding:4px 0}.chip.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.chip.selected small{color:inherit}.segmented{background:var(--surface-2);border-radius:12px;gap:3px;padding:3px;display:flex}.segmented button{min-height:40px;color:var(--text-2);border-radius:9px;flex:1;font-weight:600}.segmented button.selected{background:var(--raised);color:var(--text);box-shadow:var(--shadow)}.segmented button.selected.alex{box-shadow:inset 0 -3px 0 var(--alex), var(--shadow)}.segmented button.selected.abbie{box-shadow:inset 0 -3px 0 var(--abbie), var(--shadow)}.dot,.swatch{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.swatch{border-radius:3px}.dot.alex,.swatch.alex{background:var(--alex)}.dot.abbie,.swatch.abbie{background:var(--abbie)}.summary{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border-left:4px solid var(--accent);padding:14px 16px}.summary.alex{border-left-color:var(--alex)}.summary.abbie{border-left-color:var(--abbie)}.summary-top{justify-content:space-between;align-items:baseline;display:flex}.summary h2{font-size:20px}.summary-count{color:var(--text-2);font-weight:600}.summary-sub{color:var(--text-2);margin:6px 0 0;font-size:14px}.progress{background:var(--surface-2);border-radius:3px;height:6px;margin-top:10px;overflow:hidden}.progress div{background:var(--accent);border-radius:3px;height:100%;transition:width .3s}.summary.alex .progress div{background:var(--alex)}.summary.abbie .progress div{background:var(--abbie)}.group{margin-top:20px}.group h3,.day h3{text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);align-items:center;gap:6px;margin:0 4px 8px;font-size:13px;font-weight:650;display:flex}.tasks{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:0;list-style:none;overflow:hidden}.task{align-items:flex-start;gap:4px;padding:4px 12px 4px 4px;display:flex}.task+.task{border-top:1px solid var(--border)}.check{flex:none;place-items:center;width:44px;height:44px;display:grid;position:relative}.check:before{content:"";border:2px solid var(--muted);border-radius:50%;width:24px;height:24px;position:absolute}.check.alex:before{border-color:var(--alex)}.check.abbie:before{border-color:var(--abbie)}.check.shared:before{border-color:var(--accent)}.task.done .check:before{background:var(--accent);border-color:var(--accent)}.task.done .check.alex:before{background:var(--alex);border-color:var(--alex)}.task.done .check.abbie:before{background:var(--abbie);border-color:var(--abbie)}.check svg{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;position:relative}.task-body{text-align:left;flex-direction:column;flex:1;gap:2px;min-width:0;padding:10px 0;display:flex}.task-title{align-items:center;gap:6px;font-weight:550;display:flex}.task.done .task-title{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}.task-detail{color:var(--muted);font-size:13px}.task-meta{flex-wrap:wrap;gap:4px;display:flex}.task-meta:empty{display:none}.task-est{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;padding-top:11px;font-size:13px}.legend{flex-wrap:wrap;align-items:center;gap:14px;margin:4px 4px 12px;font-size:14px;display:flex}.legend>span{align-items:center;gap:6px;display:inline-flex}.day{margin-bottom:16px}.day.today h3{color:var(--accent)}.empty{color:var(--muted);background:var(--surface);border-radius:var(--radius);border:1px dashed var(--border);margin:0;padding:8px 16px;font-size:14px}.unplanned{margin-top:12px}.unplanned summary{cursor:pointer;align-items:center;gap:8px;padding:10px 4px;font-weight:600;display:flex}.unplanned summary::-webkit-details-marker{display:none}.unplanned summary:before{content:"›";width:12px;color:var(--muted);font-size:20px;line-height:1;transition:transform .15s}.unplanned[open] summary:before{transform:rotate(90deg)}.unplanned summary{list-style:none}.sheet-backdrop{z-index:20;background:#00000059;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:640px;max-height:90dvh;padding:8px 16px calc(16px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation:.2s rise;overflow-y:auto}.sheet-handle{background:var(--border);border-radius:3px;width:36px;height:5px;margin:0 auto 12px}.sheet-head h2{font-size:20px}.sheet-head p{margin:4px 0 8px}.sheet-body{flex-direction:column;gap:18px;margin-top:18px;display:flex}.field{flex-direction:column;gap:8px;display:flex}.field p{margin:0;font-size:14px}.field-label{color:var(--text-2);font-size:13px;font-weight:650}.inline{align-items:center;gap:10px;display:flex}.inline input{width:96px}.inline span{font-size:14px}.done-box{background:var(--accent-soft);border-radius:12px;padding:12px 14px}.done-box p{margin:4px 0 0}.sheet-actions{gap:10px;display:flex}.sheet-actions .btn{flex:1}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(40px)}}@media (prefers-reduced-motion:reduce){.sheet,.sheet-backdrop,.progress div{transition:none;animation:none}}.toast{z-index:30;left:50%;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 12px);background:var(--text);max-width:calc(100% - 32px);color:var(--bg);border-radius:12px;padding:10px 16px;font-size:14px;font-weight:550;position:fixed;transform:translate(-50%);box-shadow:0 4px 16px #0003}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;padding:16px}.card h2{margin-bottom:4px;font-size:17px}.card p{margin:4px 0 12px}.card ol{margin:0 0 12px;padding-left:20px}.row-actions{gap:10px;display:flex}.row-actions .btn{flex:1}.reminder-list{color:var(--text-2);margin:14px 0 0;padding:0;font-size:14px;list-style:none}.reminder-list li{border-top:1px solid var(--border);gap:10px;padding:6px 0;display:flex}.reminder-list strong{min-width:112px;color:var(--text);font-weight:600}.chart{margin:8px 0 0}.chart-legend{flex-wrap:wrap;align-items:center;gap:4px 14px;margin-bottom:6px;font-size:14px;display:flex}.chart-legend>span{align-items:center;gap:6px;display:inline-flex}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .grid{stroke:var(--border);stroke-width:1px;stroke-dasharray:2 3}.chart .baseline{stroke:var(--muted);stroke-width:1px}.chart .axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.chart .hit{fill:#0000}.chart .bar-group.active .hit{fill:var(--surface-2)}.chart .bar.alex{fill:var(--alex)}.chart .bar.abbie{fill:var(--abbie)}.table-toggle{margin-top:10px;font-size:14px}.table-toggle summary{cursor:pointer;color:var(--accent);padding:6px 0;font-weight:550}.table-toggle table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.table-toggle th,.table-toggle td{text-align:left;border-top:1px solid var(--border);vertical-align:top;padding:6px 4px}.stat-list{margin:8px 0 0;padding:0;list-style:none}.stat-list li{border-top:1px solid var(--border);grid-template-columns:1fr auto;gap:2px 10px;padding:10px 0;display:grid}.stat-name{font-weight:550}.stat-nums{font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;font-size:14px;display:flex}.stat-samples{font-size:12px}.delta{font-size:13px;font-weight:650}.delta.up{color:var(--warn)}.delta.down{color:var(--accent)}
