:root{--bg:#0E1A2B;--panel:#16263C;--panel-2:#1C3049;--line:#27415E;--line-soft:#1F3550;--ink:#E8F0F8;--ink-soft:#8FA9C4;--ink-dim:#5C7893;--blue:#4DA3FF;--cyan:#57E3FF;--brass:#D9A44A;--good:#46C08A;--warn:#E0B14C;--alert:#E06D5A;--on-accent:#0B1522;--disp:"Avenir Next","Futura",system-ui,sans-serif;--body:"Hiragino Kaku Gothic ProN",system-ui,sans-serif}:root[data-theme=light]{--bg:#F4F7FB;--panel:#FFFFFF;--panel-2:#EAF1F8;--line:#C4D2E2;--line-soft:#DBE5F0;--ink:#15263C;--ink-soft:#45607C;--ink-dim:#647B94;--blue:#1E6FD9;--cyan:#0E90B8;--brass:#A9791C;--good:#268C5D;--warn:#A87E1A;--alert:#C24A36;--on-accent:#FFFFFF}.tabular{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.disp{font-family:var(--disp);text-transform:uppercase;letter-spacing:.15em}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;min-height:100dvh}a{color:inherit;text-decoration:none}.screen{display:flex;flex-direction:column;min-height:100dvh;max-width:480px;margin:0 auto;padding:18px 16px calc(72px + env(safe-area-inset-bottom))}.greet{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.greet .hi{font-size:22px;font-weight:600;letter-spacing:.01em}.greet .sub{margin-top:4px;color:var(--ink-soft);font-size:13px}.micbtn{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--cyan);color:var(--on-accent)}.today-body{flex:1 1 auto;padding-top:18px}.skeleton-note{color:var(--ink-dim);font-size:13px}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:8px 6px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--panel) 92%,transparent);border-top:1px solid var(--line-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tabbar .tab{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;color:var(--ink-dim)}.tabbar .tab.on{color:var(--blue)}.today-routines{margin-top:8px}.tr-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.tr-label{color:var(--ink-soft);font-size:12px}.tr-progress{color:var(--cyan);font-size:20px;font-weight:600}.tr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.tr-row{border:1px solid var(--line-soft);border-radius:12px;background:var(--panel)}.tr-row.done{background:var(--panel-2);border-color:var(--line)}.tr-link{display:flex;align-items:center;justify-content:space-between;padding:14px 16px}.tr-name{font-size:15px}.tr-row.done .tr-name{color:var(--ink-soft)}.tr-slot{font-size:11px;color:var(--ink-dim)}.tr-tally{margin-top:20px;color:var(--ink-soft);font-size:13px}.tr-tally-num{color:var(--brass);font-size:22px;font-weight:700;margin-right:4px}.home-hint{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;margin-bottom:12px;border:1px solid var(--line-soft);border-radius:10px;background:var(--panel)}.home-hint-text{margin:0;font-size:12px;color:var(--ink-soft)}.home-hint-close{flex:none;background:transparent;border:none;color:var(--ink-dim);font-size:16px;line-height:1;cursor:pointer}.screen.run{gap:20px;align-items:center}.run-head{width:100%;display:flex;align-items:baseline;justify-content:space-between}.run-step-count{color:var(--ink-soft);font-size:13px}.run-name{font-size:22px;font-weight:600;margin:8px 0 0}.run-ring{width:240px;height:240px;border-radius:50%;display:grid;place-items:center;margin:12px 0}.run-ring-inner{width:208px;height:208px;border-radius:50%;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.run-ring-inner .run-step-name{font-size:16px;color:var(--ink)}.run-remaining{font-size:44px;font-weight:700;color:var(--cyan)}.run-end{justify-content:center;text-align:center}.run-end-copy{color:var(--ink);font-size:16px}.run-back{margin-top:8px;text-align:center}.run-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.run-step{display:flex;justify-content:space-between;padding:12px 14px;border:1px solid var(--line-soft);border-radius:10px}.run-step-sec{color:var(--ink-dim)}.run-skip-copy{color:var(--ink-soft);font-size:14px}.run-actions{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.run-actions .btn{padding:14px;border-radius:12px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);font-size:13px;cursor:pointer}.run-actions .btn.btn-primary{background:var(--blue);color:var(--on-accent);border-color:var(--blue);font-weight:600}.run-actions .btn:disabled{opacity:.5}.pc-only{display:none}.sp-only{display:block}@media (min-width:1024px){.pc-only{display:block}}.chips,.segments{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.chip,.seg{padding:6px 12px;border-radius:999px;border:1px solid var(--line-soft);background:var(--panel);color:var(--ink-soft);font-size:12px;cursor:pointer}.chip.on,.seg.on{background:var(--blue);color:var(--on-accent);border-color:var(--blue);font-weight:600}.bucket-add{display:flex;gap:8px;margin:8px 0 14px}.bucket-add-input{flex:1 1;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-size:14px}.bucket-add .btn-primary{width:auto;padding:10px 16px}.bucket-list,.life-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.life-list{flex-direction:column-reverse}.bucket-card,.life-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid var(--line-soft);border-radius:12px;background:var(--panel)}.bucket-meta,.life-age{color:var(--ink-dim);font-size:12px}.bucket-card.brass,.life-item.brass{border-color:var(--brass);background:color-mix(in srgb,var(--brass) 12%,var(--panel))}.bucket-card.brass .bucket-title,.life-item.brass .life-title{color:var(--brass)}.asset-card{margin:8px 0 16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.asset-line{color:var(--ink-soft);font-size:13px}.asset-cur{color:var(--ink);font-size:20px;font-weight:700;margin-right:6px}.asset-monthly{margin-top:6px;color:var(--cyan);font-size:15px}.asset-monthly .tabular{font-size:20px;font-weight:700}.asset-reached{margin-top:6px;color:var(--good);font-weight:600}.roadmap-wrap{max-width:980px;margin:24px auto 0;padding:0 24px}.roadmap-track{position:relative;height:170px;background:var(--panel-2);border:1px solid var(--line-soft);border-radius:10px;overflow:hidden;margin-bottom:12px}.roadmap-axis{position:absolute;left:0;right:0;top:50%;height:2px;background:linear-gradient(90deg,var(--blue),var(--cyan))}.roadmap-yr{top:calc(50% + 10px);font-size:9px;letter-spacing:.1em;color:var(--ink-dim)}.roadmap-marker,.roadmap-yr{position:absolute;transform:translateX(-50%)}.roadmap-marker{top:0;bottom:0;padding:0 16px;background:transparent;border:none;cursor:pointer}.roadmap-dot{position:absolute;top:50%;left:50%;width:11px;height:11px;border-radius:50%;background:var(--bg);border:2px solid var(--cyan);transform:translate(-50%,-50%)}.roadmap-label{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;text-align:center;font-size:11px;font-weight:700;color:var(--ink)}.roadmap-marker.up .roadmap-label{top:14%}.roadmap-marker.down .roadmap-label{top:62%}.roadmap-label-by{display:block;font-size:8.5px;letter-spacing:.05em;color:var(--ink-dim);font-weight:400}.roadmap-now{position:absolute;top:0;bottom:0;transform:translateX(-50%)}.roadmap-now-dot{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px rgba(87,227,255,.8);transform:translate(-50%,-50%)}.roadmap-now-label{position:absolute;top:14%;left:50%;transform:translateX(-50%);white-space:nowrap;text-align:center;font-size:11px;font-weight:700;color:var(--cyan)}.roadmap-now-label small{display:block;font-size:8px;letter-spacing:.15em;color:var(--ink-dim);font-weight:400}.roadmap-edit{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.roadmap-edit-input{width:72px;margin-left:8px;padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}.screen.capture{gap:14px}.capture-text{width:100%;min-height:40vh;padding:14px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;resize:vertical}.capture-actions{display:flex;gap:10px}.capture-actions .btn-primary{width:100%}.capture-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.capture-item{padding:12px 14px;border:1px solid var(--line-soft);border-radius:12px;background:var(--panel)}.capture-body{font-size:15px;margin-bottom:8px}.capture-chips{display:flex;flex-wrap:wrap;gap:6px}.capture-chips .chip{padding:4px 10px;border-radius:999px;border:1px solid var(--line-soft);background:var(--panel-2);color:var(--ink-soft);font-size:11px;cursor:pointer}.capture-chips .chip.on{background:var(--cyan);color:var(--on-accent);border-color:var(--cyan);font-weight:600}.review-h2{font-size:13px;color:var(--ink-soft);margin:8px 0 10px}.review-cap-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.review-cap{display:flex;gap:12px;padding:12px 14px;border-left:2px solid var(--line);background:var(--panel);border-radius:0 10px 10px 0}.review-cap-time{flex:none;color:var(--ink-dim);font-size:12px}.review-cap-text{font-size:14px;white-space:pre-wrap}.review-diary-head{display:flex;align-items:baseline;justify-content:space-between;margin-top:18px}.review-voice-diary{font-size:12px;color:var(--blue)}.review-diary-text{white-space:pre-wrap;font-size:14px;line-height:1.7;color:var(--ink);margin:6px 0 0}.digest{margin-top:18px}.digest-block{margin-bottom:12px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:10px;background:var(--panel)}.digest-h3{margin:0 0 6px;font-size:12px;color:var(--cyan)}.digest-block ul{margin:0;padding-left:18px;font-size:14px}.digest-goal{font-size:14px;color:var(--ink-soft)}.review-paste{margin-top:20px}.digest-paste-text{width:100%;min-height:96px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-family:var(--body);font-size:13px;resize:vertical}.digest-paste .btn-primary{width:100%;margin-top:8px}.digest-error{color:var(--alert);font-size:12px;margin:6px 0}.sidenav-wrap{max-width:980px;margin:16px auto 0;padding:0 24px}.sidenav{display:flex;gap:8px;border-bottom:1px solid var(--line-soft);padding-bottom:10px}.sidenav-item{font-size:12px;color:var(--ink-soft);padding:6px 10px;border-radius:8px}.sidenav-item.on{color:var(--blue);background:var(--panel)}.newroutine-btn{background:var(--blue);color:var(--on-accent);font-size:24px;line-height:1}.gantt{display:flex;flex-direction:column;gap:10px;margin-top:14px}.gantt-row{display:grid;grid-template-columns:96px 1fr;align-items:center;grid-gap:10px;gap:10px}.gantt-name{font-size:13px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-track{position:relative;height:24px;background:var(--panel);border-radius:6px;overflow:hidden}.gantt-plan{position:absolute;top:8px;height:8px;background:color-mix(in srgb,var(--blue) 30%,transparent);border-radius:4px}.gantt-done{top:6px;height:12px;background:var(--cyan)}.gantt-done,.gantt-gap{position:absolute;border-radius:3px}.gantt-gap{top:0;height:24px;background:color-mix(in srgb,var(--alert) 18%,transparent);display:flex;align-items:center;justify-content:center}.gantt-gap-label{font-size:9px;color:var(--alert)}.modal-backdrop{position:fixed;inset:0;background:rgba(6,12,22,.7);display:grid;place-items:center;z-index:50;padding:20px}.modal{width:100%;max-width:360px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px}.modal-title{font-size:16px;margin:0}.modal-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-soft)}.modal-field input{padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:14px}.dow{display:flex;gap:4px}.dow .chip{padding:6px 0;flex:1 1;border-radius:8px;border:1px solid var(--line-soft);background:var(--panel-2);color:var(--ink-soft);font-size:12px;cursor:pointer}.dow .chip.on{background:var(--blue);color:var(--on-accent);border-color:var(--blue)}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal-actions .btn,.modal-actions .btn-primary{width:auto;padding:8px 16px;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);cursor:pointer}.modal-actions .btn-primary{background:var(--blue);color:var(--on-accent);border-color:var(--blue);font-weight:600}.dashboard{margin-top:14px}.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.kpi{padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:var(--panel);text-align:center}.kpi-num{font-size:26px;font-weight:700;color:var(--cyan)}.kpi-label{font-size:10px;color:var(--ink-dim)}.heat-block{margin:16px 0}.heat-caption{font-size:11px;color:var(--ink-soft);margin-bottom:8px}.heatmap-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px;margin-bottom:4px}.heat-wd{text-align:center;font-size:9px;font-family:var(--disp);letter-spacing:.05em;color:var(--ink-dim)}.heat-wd.sun{color:color-mix(in srgb,var(--alert) 70%,var(--ink-dim))}.heat-wd.sat{color:color-mix(in srgb,var(--blue) 70%,var(--ink-dim))}.heatmap{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.heat{aspect-ratio:1;border-radius:3px;background:var(--panel-2);display:flex;align-items:flex-start;justify-content:flex-start}.heat-blank{background:transparent}.heat-day{font-size:8.5px;line-height:1;padding:2px 0 0 3px;color:var(--ink-soft);opacity:.8}.heat-3 .heat-day,.heat-4 .heat-day{color:var(--bg);opacity:.85}.heat-1{background:color-mix(in srgb,var(--cyan) 25%,var(--panel-2))}.heat-2{background:color-mix(in srgb,var(--cyan) 45%,var(--panel-2))}.heat-3{background:color-mix(in srgb,var(--cyan) 70%,var(--panel-2))}.heat-4{background:var(--cyan)}.heat-legend{display:flex;align-items:center;gap:4px;margin-top:10px;font-size:10px;color:var(--ink-dim);flex-wrap:wrap}.heat-legend-label{font-family:var(--disp);letter-spacing:.05em}.heat-swatch{width:13px;height:13px;aspect-ratio:auto;border-radius:3px;display:inline-block}.heat-legend-note{margin-left:8px;color:var(--ink-dim)}.goal-bar-row{display:grid;grid-template-columns:120px 1fr 40px;align-items:center;grid-gap:10px;gap:10px;margin-bottom:8px}.goal-bar-title{font-size:12px;color:var(--ink-soft)}.goal-bar{height:8px;background:var(--panel-2);border-radius:4px;overflow:hidden}.goal-bar-fill{height:100%;background:var(--brass)}.goal-bar-pc{font-family:var(--disp);font-size:10.5px;text-align:right;color:var(--ink)}.today-gcal{margin-top:20px}.gcal-card{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:10px;background:var(--panel)}.gcal-error{border-color:color-mix(in srgb,var(--alert) 40%,var(--line));color:var(--alert)}.gcal-link{color:var(--blue);font-size:12px;margin-left:auto}.gcal-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.gcal-ev{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:var(--panel)}.gcal-dot{width:8px;height:8px;border-radius:50%;flex:none}.gcal-dot-blue{background:var(--blue)}.gcal-dot-cyan{background:var(--cyan)}.gcal-time{color:var(--ink-dim);font-size:12px}.gcal-summary{font-size:14px}.theme-toggle{position:fixed;top:calc(10px + env(safe-area-inset-top));right:12px;z-index:40;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line-soft);background:color-mix(in srgb,var(--panel) 85%,transparent);color:var(--ink-soft);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.save-error{border-radius:8px;border:1px solid color-mix(in srgb,var(--alert) 45%,var(--line));background:color-mix(in srgb,var(--alert) 12%,transparent);color:var(--alert)}.save-error,.save-ok{margin:8px 0;padding:8px 12px;font-size:13px}.save-ok{border-radius:8px;border:1px solid color-mix(in srgb,var(--good) 40%,var(--line));background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good)}.smbg-add{display:flex;align-items:flex-end;gap:8px;margin:12px 0}.smbg-add-field{display:flex;flex-direction:column;gap:4px;flex:1 1}.smbg-add-label{font-size:10px;color:var(--ink-dim);font-family:var(--disp);letter-spacing:.05em}.smbg-add-input{padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-size:14px;width:100%}.smbg-add .btn-primary{width:auto;padding:10px 16px;align-self:stretch}.week-dots{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;margin:14px 0}.week-dot{display:flex;flex-direction:column;align-items:center;gap:5px}.week-dot-wd{font-size:9px;color:var(--ink-dim);font-family:var(--disp)}.week-dot-mark{width:12px;height:12px;border-radius:50%;background:var(--panel-2);border:1px solid var(--line-soft)}.week-dot.on .week-dot-mark{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 6px rgba(87,227,255,.5)}.smbg-chart{margin:14px 0}.smbg-chart-cap{font-size:11px;color:var(--ink-soft);margin-bottom:6px}.smbg-spark{width:100%;height:48px;display:block}.smbg-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.smbg-item{display:flex;align-items:baseline;gap:8px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:10px;background:var(--panel)}.smbg-val{font-size:18px;font-weight:600;color:var(--cyan)}.smbg-unit{font-size:10px;color:var(--ink-dim)}.smbg-timing{font-size:12px;color:var(--ink-soft)}.smbg-at{margin-left:auto}.health-disclaimer,.smbg-at{font-size:11px;color:var(--ink-dim)}.health-disclaimer{margin:18px 0 8px;line-height:1.6;border-top:1px solid var(--line-soft);padding-top:12px}.signin{display:grid;place-items:center;min-height:100dvh;padding:24px}.signin-card{text-align:center;max-width:320px}.signin-card h1{font-size:28px;color:var(--ink)}.signin-card p{color:var(--ink-soft);font-size:14px;margin-bottom:20px}.btn-primary{width:100%;padding:12px 16px;border:none;border-radius:12px;background:var(--blue);color:var(--on-accent);font-size:15px;font-weight:600;cursor:pointer}