:root{--bg: #0b1026;--bg-deep: #060917;--card: #141b3a;--card-raised: #1a2248;--card-border: #232c55;--text: #e8ecf8;--muted: #8a93b8;--muted-soft: rgba(138,147,184,.12);--accent: #f97316;--accent-soft: rgba(249,115,22,.15);--accent-press: #c2410c;--on-accent: #0b1026;--done: #4ade80;--miss: var(--card-border);--font: system-ui, -apple-system, "Segoe UI", sans-serif;--fs-xs: 11px;--fs-sm: 12.5px;--fs-base: 15px;--fs-input: 16px;--fs-title: 17px;--fs-stat: 28px;--fs-stat-lg: 40px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--r-input: 10px;--r-card: 14px;--r-pill: 99px;--tap-min: 44px;--cb-size: 22px;--focus-ring: 2px solid var(--accent);--t-fast: .12s ease;--t-base: .15s ease}[data-theme=light]{--bg: #f4f5fa;--bg-deep: #e9ebf4;--card: #ffffff;--card-raised: #ffffff;--card-border: #d9deef;--text: #1a2142;--muted: #5c6689;--muted-soft: rgba(92,102,137,.12);--accent: #ea580c;--accent-soft: rgba(234,88,12,.12);--accent-press: #c2410c;--on-accent: #ffffff;--done: #16a34a}@media(prefers-reduced-motion:reduce){:root{--t-fast: 0ms;--t-base: 0ms}}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}button{font-family:var(--font);color:inherit}:focus-visible{outline:var(--focus-ring);outline-offset:-1px}.app{max-width:560px;margin:0 auto;min-height:100dvh}.screen{display:flex;flex-direction:column;gap:14px;padding:var(--sp-4);padding-bottom:calc(96px + env(safe-area-inset-bottom))}.screen-msg{min-height:100dvh;display:grid;place-items:center;color:var(--muted)}.sub{color:var(--muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.muted-copy{color:var(--muted);font-size:var(--fs-sm);line-height:1.5}.screen-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding-top:var(--sp-1)}.screen-head h1{font-size:var(--fs-title);font-weight:700;letter-spacing:.01em}.brand{display:flex;align-items:center;gap:var(--sp-3)}.head-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.stat{font-size:var(--fs-stat);font-weight:800;font-variant-numeric:tabular-nums}.badge{font-size:var(--fs-xs);padding:3px 9px;border-radius:var(--r-pill);letter-spacing:.04em}.badge-local{background:var(--accent-soft);color:var(--accent)}.badge-cloud{background:var(--muted-soft);color:var(--done)}.pill-btn{background:none;border:1px solid var(--card-border);border-radius:var(--r-pill);color:var(--muted);font-size:var(--fs-sm);padding:6px 12px;min-height:32px;cursor:pointer;transition:border-color var(--t-base),color var(--t-base),background var(--t-base)}.pill-btn.on,.pill-btn:hover{border-color:var(--accent);color:var(--accent)}.pill-btn.on{background:var(--accent-soft)}.privacy-pill{display:inline-flex;align-items:center;gap:5px;background:var(--muted-soft);border-radius:var(--r-pill);color:var(--muted);font-size:var(--fs-sm);padding:6px 12px;white-space:nowrap}.close-btn{background:none;border:none;color:var(--muted);font-size:18px;min-width:var(--tap-min);min-height:var(--tap-min);cursor:pointer}.btn-accent{background:var(--accent);color:var(--on-accent);border:none;border-radius:var(--r-input);font-size:var(--fs-base);font-weight:600;padding:10px 16px;min-height:var(--tap-min);cursor:pointer;transition:background var(--t-fast)}.btn-accent:active{background:var(--accent-press)}.btn-accent:disabled{background:var(--card-border);color:var(--muted);cursor:default}.btn-accent.full{width:100%}.btn-accent.big{min-height:48px}.btn-outline{width:100%;background:none;border:1px solid var(--card-border);border-radius:var(--r-input);color:var(--text);font-size:var(--fs-base);padding:12px 16px;min-height:48px;cursor:pointer;transition:border-color var(--t-base);text-align:center}.btn-outline:hover{border-color:var(--accent)}.btn-outline.set{border-color:var(--accent);color:var(--accent)}.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--r-card);padding:14px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2)}.card-head h2{font-size:var(--fs-base);font-weight:700}.progress{color:var(--muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.empty{color:var(--muted);font-size:var(--fs-sm);line-height:1.5;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-1) 0}.empty .btn-accent{align-self:flex-start}.progressbar{height:4px;background:var(--card-border);border-radius:var(--r-pill);overflow:hidden;margin-bottom:var(--sp-2)}.progressbar-fill{height:100%;background:var(--accent);border-radius:var(--r-pill);transition:width var(--t-base)}.task-list{list-style:none;display:flex;flex-direction:column}.task{width:100%;display:flex;align-items:center;gap:var(--sp-3);background:none;border:none;border-radius:var(--r-input);padding:11px var(--sp-2);min-height:var(--tap-min);cursor:pointer;text-align:left;transition:background var(--t-fast)}.task:hover{background:var(--muted-soft)}.cb{width:var(--cb-size);height:var(--cb-size);flex-shrink:0;border:2px solid var(--muted);border-radius:7px;display:inline-flex;align-items:center;justify-content:center;color:var(--on-accent);transition:background var(--t-fast),border-color var(--t-fast)}.task.done .cb{background:var(--accent);border-color:var(--accent)}.cb-urgent{border-color:var(--accent);color:var(--accent);font-weight:800;font-size:14px}.task-title{flex:1;font-size:var(--fs-base);line-height:1.35}.task.done .task-title{color:var(--muted);text-decoration:line-through}.task-time{color:var(--muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.see-all,.add-task-row{background:none;border:none;color:var(--muted);font-size:var(--fs-sm);padding:var(--sp-2);min-height:var(--tap-min);cursor:pointer;text-align:left;width:100%;transition:color var(--t-base)}.see-all:hover,.add-task-row:hover{color:var(--text)}.add-row{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.add-row input{flex:1}input[type=text],textarea{background:var(--bg);border:1px solid var(--card-border);border-radius:var(--r-input);padding:12px 14px;color:var(--text);font-size:var(--fs-input);font-family:var(--font);transition:border-color var(--t-base)}input[type=text]:focus,textarea:focus{outline:none;border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--muted);font-size:var(--fs-sm)}.text-input{width:100%}.banner{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--r-card);padding:14px;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.banner-text{font-size:var(--fs-base);line-height:1.4}.banner-text strong{color:var(--accent)}.banner button{background:var(--accent);color:var(--on-accent);border:none;border-radius:var(--r-pill);font-weight:600;font-size:var(--fs-sm);padding:0 18px;min-height:var(--tap-min);cursor:pointer;white-space:nowrap}.open-prompt{display:flex;align-items:center;gap:var(--sp-2);background:var(--card);border:1px solid var(--card-border);border-left:3px solid var(--accent);border-radius:var(--r-card);padding:var(--sp-3) 14px;font-size:var(--fs-sm);line-height:1.4}.open-prompt span{flex:1}.open-prompt button{background:none;border:none;color:var(--muted);font-size:15px;min-width:var(--tap-min);min-height:var(--tap-min);cursor:pointer}.push-toggle{align-self:flex-start;background:none;border:1px solid var(--card-border);border-radius:var(--r-pill);color:var(--muted);font-size:var(--fs-sm);padding:8px 14px;min-height:36px;cursor:pointer}.push-err{color:var(--accent);font-size:var(--fs-sm);line-height:1.35}.score-rows{display:flex;flex-direction:column;gap:var(--sp-3)}.score-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-base);min-height:48px}.yesno{display:flex;gap:6px;flex-shrink:0}.yesno button{background:none;border:1px solid var(--card-border);border-radius:var(--r-pill);color:var(--muted);font-size:var(--fs-sm);font-weight:600;min-width:52px;min-height:36px;cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.yesno button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.yesno button.no.on{background:var(--muted-soft);border-color:var(--muted);color:var(--text)}.score-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);cursor:pointer;text-align:left;width:100%}.score-summary>span{display:flex;flex-direction:column;gap:2px}.stat-lg{font-size:var(--fs-stat-lg);font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.streak{align-items:flex-end}.streak-num{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}.range-toggle{display:flex;gap:6px}.range-toggle button{background:none;border:1px solid var(--card-border);border-radius:var(--r-pill);color:var(--muted);font-size:var(--fs-sm);padding:6px 12px;min-height:32px;cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.range-toggle button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.history-week{display:flex;justify-content:space-between;padding:var(--sp-3) var(--sp-1)}.history-day{display:flex;flex-direction:column;align-items:center;gap:6px}.dot{width:26px;height:26px;border-radius:50%;border:2px solid var(--miss)}.dot.full{background:var(--accent);border-color:var(--accent)}.dot.partial{background:var(--accent-soft);border-color:var(--accent)}.dot.today{border-style:dashed;border-color:var(--muted)}.history-month{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;padding:var(--sp-3) 0}.history-month .cell{aspect-ratio:1;border-radius:6px;border:2px solid var(--miss)}.history-month .cell.full{background:var(--accent);border-color:var(--accent)}.history-month .cell.partial{background:var(--accent-soft);border-color:var(--accent)}.history-month .cell.today{border-style:dashed;border-color:var(--muted)}.part-list{display:flex;flex-direction:column;gap:var(--sp-2)}.part-btn{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:64px;background:none;border:1.5px solid var(--card-border);border-radius:var(--r-card);padding:var(--sp-3);cursor:pointer;text-align:left;transition:border-color var(--t-base),background var(--t-base)}.part-btn.on{border-color:var(--accent);background:var(--accent-soft)}.part-glyph{width:34px;height:34px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--muted-soft);border-radius:var(--r-input);font-size:17px}.part-text{display:flex;flex-direction:column;gap:2px}.part-text strong{font-size:var(--fs-base);font-weight:700}.composer-details{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-3)}.quiet-confirm{color:var(--done);font-size:var(--fs-sm);margin-top:var(--sp-3)}.entry-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-4)}.entry{display:flex;flex-direction:column;gap:5px}.entry-head{display:flex;align-items:center;gap:var(--sp-2)}.part-chip{background:var(--accent-soft);color:var(--accent);border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px}.entry-situation{font-size:14px;line-height:1.4}.entry .see-all{min-height:32px;padding:var(--sp-1) 0}.sheet{min-height:100dvh;background:var(--card-raised);display:flex;flex-direction:column;gap:14px;padding:var(--sp-4);padding-bottom:calc(var(--sp-5) + env(safe-area-inset-bottom))}.sheet .card{background:var(--card)}.capture-input{width:100%;font-size:18px;background:var(--bg);resize:none}.capture-urgent{display:flex;align-items:center;gap:var(--sp-3)}.urgent-pill{min-height:var(--tap-min);font-weight:700}.capture-buckets{display:flex;flex-direction:column;gap:var(--sp-2)}.chip-row{display:flex;gap:var(--sp-2);flex-wrap:wrap}.chip{background:none;border:1px solid var(--card-border);border-radius:var(--r-pill);color:var(--muted);font-size:var(--fs-sm);font-weight:600;padding:0 16px;min-height:40px;cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.captured-list{list-style:none;display:flex;flex-direction:column}.captured-row{display:flex;align-items:center;gap:var(--sp-3);padding:10px var(--sp-1);min-height:var(--tap-min)}.tabbar{position:fixed;bottom:0;left:0;right:0;max-width:560px;margin:0 auto;display:flex;align-items:stretch;background:var(--bg);border-top:1px solid var(--card-border);padding:var(--sp-2) var(--sp-2) calc(8px + env(safe-area-inset-bottom))}.tab,.tab-spacer,.tab-capture-slot{flex:1}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;color:var(--muted);min-height:48px;cursor:pointer;transition:color var(--t-fast)}.tab span{font-size:10.5px;font-weight:600}.tab.active{color:var(--accent)}.tab-capture-slot{display:flex;align-items:flex-start;justify-content:center}.tab-capture{width:54px;height:54px;margin-top:-18px;border-radius:50%;background:var(--accent);color:var(--on-accent);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--t-fast)}.tab-capture:active{background:var(--accent-press)}.ob-list{display:flex;flex-direction:column;gap:var(--sp-4)}.ob-q{display:flex;flex-direction:column;gap:var(--sp-2)}.ob-label{font-size:var(--fs-base);line-height:1.4}.ob-nav{display:flex;gap:var(--sp-2)}.ob-nav .btn-outline{width:auto;padding:12px 20px;flex-shrink:0}
