:root{--bg: #080f1c;--panel: #101d30;--panel-2: #192a42;--line: #2c4260;--text: #edf7ff;--muted: #a6bbd1;--accent: #67dbf4;--accent-2: #8dbbff;--warn: #f59e0b;--bad: #f87171;--good: #34d399;--radius: 20px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:18px;padding:12px 18px;background:#080f1cf0;backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:9px;font-weight:760;letter-spacing:-.02em;white-space:nowrap}.brand .ring{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--accent);color:#063627;font-size:17px}.tabs{display:flex;gap:4px;flex:1}.tabs button{background:transparent;color:var(--muted);border:0;padding:9px 14px;border-radius:10px;font-size:14px;cursor:pointer}.tabs button:hover{color:var(--text)}.tabs button.active{background:var(--panel-2);color:var(--text);font-weight:700}.streak{font-size:13px;color:var(--accent);font-weight:600;white-space:nowrap}main{max-width:860px;margin:0 auto;padding:22px 18px}.tab{display:none}.tab.active{display:block}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:14px;box-shadow:0 10px 28px #0000001f}.today-card{background:linear-gradient(145deg,rgba(136,223,189,.1),transparent 40%),var(--panel)}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}h2{font-size:18px;margin:0 0 6px;letter-spacing:-.025em}.today-card h2{font-size:23px;margin-top:2px}.section-kicker{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.muted{color:var(--muted);font-size:13px;font-weight:400}.hint{color:var(--muted);font-size:13px;line-height:1.45;margin:5px 0 16px}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}input,select,textarea,button{font:inherit}input[type=date],select{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:7px 10px}textarea{width:100%;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:10px;resize:vertical;margin:8px 0}button.primary{background:var(--accent);color:#06281d;border:0;border-radius:11px;padding:10px 16px;min-height:42px;font-weight:700;cursor:pointer}button.ghost{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:11px;padding:8px 12px;min-height:42px;cursor:pointer}button.primary:hover{filter:brightness(1.05)}button:disabled{opacity:.55;cursor:not-allowed}:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}.chip-group{margin:16px 0}.chip-group-head{display:flex;align-items:center;gap:10px;margin:0 0 8px}.chip-group h3{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0}.chips{display:flex;flex-wrap:wrap;gap:9px;align-items:flex-start}.chip{display:inline-flex;align-items:center;gap:7px;background:var(--panel-2);border:1px solid var(--line);color:var(--text);padding:10px 14px;min-height:44px;border-radius:999px;font-size:14px;cursor:pointer;user-select:none;transition:transform .05s ease,border-color .15s ease,background .15s ease}.chip:hover{border-color:var(--accent-2)}.chip:active{transform:scale(.95)}.chip.flash{background:var(--accent);color:#06281d;border-color:var(--accent)}.chip.on{background:#173f62;color:#d5f7ff;border-color:#3c92bf;font-weight:700}.chip.on .em{filter:grayscale(0)}.chip .em{font-size:16px}.chip-rm{background:var(--panel-2);border:1px solid var(--line);border-left:0;color:var(--bad);border-radius:0 999px 999px 0;padding:0 10px;font-size:12px;font-weight:700;cursor:pointer}.chip-rm:hover{background:#f8717126;border-color:var(--bad)}.chip-hide{background:var(--panel-2);border:1px solid var(--line);border-left:0;color:var(--muted);border-radius:0 999px 999px 0;padding:0 10px;font-size:12px;cursor:pointer}.chip-hide:hover{color:var(--text);border-color:var(--accent-2)}.chip-row:has(.chip-hide) .chip{border-radius:999px 0 0 999px}.flags-sub{margin-top:12px}.flags-sub .sub-h{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:0 0 2px}.wk-day-h{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:14px 0 2px}.wk-day-h:first-child{margin-top:0}.chip-wrap{display:inline-block}.chip-row{display:inline-flex;align-items:stretch}.chip-row .chip{border-radius:999px}.chip-row:has(.chip-caret) .chip,.chip-row:has(.chip-rm) .chip{border-radius:999px 0 0 999px}.chip-caret{background:var(--panel-2);border:1px solid var(--line);border-left:0;color:var(--muted);border-radius:0 999px 999px 0;padding:0 12px;min-width:36px;font-size:11px;cursor:pointer}.chip-caret:hover{color:var(--text);border-color:var(--accent-2)}.chip-menu{min-width:250px;margin-top:6px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px}.menu-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0}.menu-row .amt{width:76px}.unit-sel{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px}.tod-time{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:5px 7px}.sliders{display:grid;grid-template-columns:1fr 1fr;gap:14px}.slider{background:var(--panel-2);border:1px solid var(--line);border-radius:11px;padding:10px 12px}.slider label{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:6px}.slider .val{color:var(--text);font-weight:700}.slider input[type=range]{width:100%;accent-color:var(--accent)}.items{list-style:none;padding:0;margin:0}.items li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.items li:last-child{border-bottom:0}.items .time{color:var(--muted);font-size:12px;min-width:52px}.items .x{margin-left:auto;color:var(--muted);cursor:pointer;border:0;background:none}.items .src{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:1px 6px}.banner{background:#f59e0b1f;border:1px solid rgba(245,158,11,.38);color:#ffe4a5;padding:13px 15px;border-radius:14px;margin-bottom:14px;font-size:14px;line-height:1.45}.hidden{display:none}.stats{display:flex;gap:18px;margin-top:12px;flex-wrap:wrap}.stat{background:var(--panel-2);border:1px solid var(--line);border-radius:11px;padding:10px 14px;min-width:92px}.stat .k{font-size:12px;color:var(--muted)}.stat .v{font-size:20px;font-weight:700}.scan-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.scan{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:14px}.scan .q{font-size:13px;color:var(--muted);margin-bottom:8px}.scan .delta{font-size:26px;font-weight:800}.scan .delta.up{color:var(--good)}.scan .delta.down{color:var(--bad)}.scan .n{font-size:12px;color:var(--muted);margin-top:4px}.compare-builder{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}#compare-result .stat{display:inline-block;margin-right:10px}.body-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-bottom:12px}.body-form label{font-size:12px;color:var(--muted);display:block}.body-form input{width:100%;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:8px}.foot{max-width:860px;margin:8px auto 30px;padding:0 18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.sess-row{display:flex;align-items:center;gap:10px;margin:10px 0;flex-wrap:wrap}.sess-lbl{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);min-width:92px}.chip.mini{padding:6px 12px;font-size:13px}.addbtn{background:none;border:1px dashed var(--line);color:var(--muted);border-radius:999px;padding:6px 10px;font-size:12px;cursor:pointer}.addbtn:hover{color:var(--text);border-color:var(--accent-2)}.enh-detail{width:100%;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:8px;margin:6px 0}button.big{width:100%;padding:14px;font-size:16px;margin-top:12px}#sess-run{text-align:center}#sess-ring{font-size:64px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:2px;margin:10px 0}#sess-phase{text-transform:uppercase;letter-spacing:1px}.num{width:52px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px;text-align:center}.num.wide{width:74px}.u{font-size:12px;color:var(--muted);margin:0 8px 0 2px}.txt{flex:1;min-width:180px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:8px}.inline{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.sep{border:none;border-top:1px solid var(--line);margin:12px 0}#bin-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}#rate-chips .chip{min-width:34px;justify-content:center}.collapse-head{width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:11px 14px;cursor:pointer;font-size:14px}.collapse-head:hover{border-color:var(--accent-2)}.collapse-head .caret{transition:transform .15s ease;color:var(--muted)}.collapse-head.open .caret{transform:rotate(90deg)}.collapse-body{padding:12px 4px 4px}@media(max-width:760px){.sliders{grid-template-columns:1fr}.topbar{justify-content:space-between}.brand{font-size:17px}.streak{margin-left:auto;font-size:12px}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--panel);border-top:1px solid var(--line);gap:5px;justify-content:space-around;padding:8px 10px calc(8px + env(safe-area-inset-bottom))}.tabs button{flex:1;text-align:center;padding:10px 3px;min-height:44px;font-size:12px;border-radius:12px}.tabs button.active{background:#88dfbd2b;color:var(--accent)}main{padding:16px 14px calc(84px + env(safe-area-inset-bottom))}.card{padding:17px}.today-card .card-head{align-items:flex-start}.today-card .row-actions{width:100%}.today-card .row-actions input[type=date]{flex:1;min-width:140px}}@media(max-width:400px){.streak{display:none}.chip{padding-inline:11px}}.topbar{padding-top:max(12px,env(safe-area-inset-top));padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}.sync-banner{display:flex;align-items:center;gap:10px;max-width:824px;margin:14px auto 0;padding:10px 14px;border:1px solid var(--line);border-radius:13px;background:var(--panel);color:var(--text);font-size:13px;line-height:1.35}.sync-banner.hidden{display:none}.sync-dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:var(--warn)}.sync-banner[data-state=synced] .sync-dot{background:var(--good)}.sync-banner[data-state=offline] .sync-dot{background:var(--muted)}.sync-banner-action{margin-left:auto;border:0;background:none;color:var(--accent);font-size:13px;font-weight:750;white-space:nowrap;cursor:pointer}.sync-banner-action.hidden{display:none}@media(display-mode:standalone){#install-row{display:none!important}}[data-theme=light]{--bg: #f0f8ff;--panel: #ffffff;--panel-2: #eaf4ff;--line: #cbdfef;--text: #132d47;--muted: #526d87;--accent: #0969bf;--accent-2: #168fa9;--warn: #96530e;--bad: #dc2626;--good: #087a5a}[data-theme=light] .topbar{background:#fffffff0}[data-theme=light] .card{box-shadow:0 2px 4px #18312509,0 12px 30px #1831250e}[data-theme=light] .today-card{background:linear-gradient(145deg,rgba(8,122,90,.07),transparent 45%),var(--panel)}[data-theme=light] .chip.on{background:#dbf2ff;color:#075384;border-color:#90cbea}[data-theme=light] .chip.flash,[data-theme=light] button.primary{color:#fff}[data-theme=light] .banner{color:#77400b;background:#fff6e9;border-color:#e3bb82}[data-theme=light] .tabs button.active{color:var(--accent)}.iconbtn{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:9px;padding:6px 10px;cursor:pointer;font-size:15px;line-height:1}.iconbtn:hover{border-color:var(--accent-2)}.overlay{position:fixed;inset:0;background:#0000009e;display:flex;align-items:flex-start;justify-content:center;padding:max(24px,env(safe-area-inset-top)) 16px;z-index:50;overflow-y:auto}.overlay.hidden{display:none}.modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;width:100%;max-width:440px;max-height:calc(100dvh - 48px);overflow-y:auto;box-shadow:0 20px 50px #0006}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.set-row{display:flex;align-items:center;gap:10px;margin:12px 0;flex-wrap:wrap}.set-row>label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);min-width:84px}.native-sync{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.native-sync label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.device-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line)}.conflict-row{display:grid;gap:8px;padding:10px 0;border-top:1px solid var(--warn)}.login-page{min-height:100vh;display:grid;place-items:center}.login-main{width:min(440px,100%);padding:20px}.login-brand{margin:0 0 18px;font-size:22px}.login-main label{display:grid;gap:6px;margin:12px 0;color:var(--muted);font-size:13px}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;justify-content:center;padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:6px;background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -8px 30px #0000000a}.tabs button{flex:1;max-width:200px;min-height:48px;font-weight:650}.tabs button.active{color:var(--accent);background:var(--panel-2)}main{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.topbar .streak{margin-left:auto}.library-search{width:100%;padding:13px 16px;margin:14px 0 0;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);color:var(--text)}.today-card,[data-theme=light] .today-card{background:linear-gradient(145deg,#2aa6eb12,transparent 55%),var(--panel)}.session-section{margin:12px 0;border:1px solid var(--line);border-radius:14px;overflow:hidden}.session-section>summary{padding:14px 16px;cursor:pointer;font-weight:650}.session-section>div{padding:0 14px 14px}.session-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.session-quick button{display:grid;gap:5px;text-align:left;padding:14px}.session-quick small{color:var(--muted);font-weight:400}.control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:12px 0}.control-grid label{display:grid;gap:7px;font-size:13px;color:var(--muted)}.control-grid input,.control-grid select{width:100%;min-width:0}.control-grid input[type=number]{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--panel-2);color:var(--text)}.control-grid input[type=range]{accent-color:var(--accent)}.control-grid output{color:var(--text);font-size:12px}.control-grid label.hidden{display:none}.visual-stage{position:relative;isolation:isolate;overflow:hidden;background:#08111e;border-radius:18px;aspect-ratio:16/10;margin:18px 0}.evidence-preview{display:block;max-width:100%;max-height:360px;object-fit:contain;margin:12px 0}.evidence-preview.hidden{display:none}.visual-stage img,.visual-stage video{z-index:0;width:100%;height:100%;object-fit:contain;position:absolute;inset:0}.visual-words{position:absolute;transform:translate(-50%,-50%);color:#fff;font-size:clamp(20px,5vw,36px);padding:8px 12px;z-index:2;pointer-events:none;border-radius:10px;background:#0009;max-width:88%;text-align:center;overflow-wrap:anywhere}.mini-player{position:fixed;left:14px;right:14px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:25;display:flex;justify-content:space-between;align-items:center;gap:10px;max-width:824px;margin:auto;padding:10px 14px;border-radius:16px;border:1px solid var(--accent);background:var(--panel);box-shadow:0 8px 20px #0002}.program-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}.mini-player.hidden{display:none}@media(max-width:420px){.session-quick button{padding:11px;font-size:13px}.sess-row{gap:7px}.sess-lbl{min-width:72px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.focus-launch{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px;margin-bottom:12px;text-align:left}.focus-launch small,.focus-card summary small,.grouped-library summary small{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-top:5px}.focus-card{scroll-margin-top:90px}.focus-card>summary{cursor:pointer;font-weight:650}.focus-card label{display:grid;gap:7px;margin:12px 0}.focus-card label.inline{display:flex}.practice-today{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 22px}.practice-today>div{display:grid;gap:5px}.practice-today strong{font-size:23px}.practice-today small{color:var(--muted)}.practice-stat{flex:1;min-width:140px}.practice-stat h3{margin-top:0}.practice-stat strong{color:var(--accent)}.practice-metrics{display:flex;gap:18px;margin:12px 0}.practice-metrics span{display:grid;gap:5px;font-size:12px}.practice-metrics b{font-size:18px;color:var(--text)}.grouped-library{border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:16px}.grouped-library>summary{cursor:pointer;font-weight:650}.grouped-library .chips{margin-top:14px}.practice-note{border-left:3px solid var(--accent-2);padding:10px 14px;margin:8px 0}.practice-note summary{cursor:pointer;font-size:13px;font-weight:600}.media-library{margin-top:12px}.media-library summary{cursor:pointer;font-weight:600}.visual-fullscreen{position:absolute;right:12px;bottom:12px;z-index:3;background:#08111ecc;color:#fff;min-height:44px}.visual-error{position:absolute;left:10px;right:10px;top:10px;padding:10px;z-index:4;background:#08111ee8;color:#ffdfb1;font-size:13px}.visual-stage:fullscreen,.visual-stage.full-view{margin:0;border-radius:0;width:100%;height:100dvh;aspect-ratio:auto}.visual-stage.full-view{position:fixed;inset:0;z-index:100}.habit-row{padding:16px 0;border-bottom:1px solid var(--line)}.habit-row h3{font-size:16px;margin:0}.habit-row-head{display:flex;gap:12px;justify-content:space-between;align-items:center}.habit-row-head>span{color:var(--accent);font-size:14px;white-space:nowrap}.habit-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.habit-day{min-width:0;min-height:58px;padding:6px 2px;display:flex;flex-direction:column;gap:5px;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.habit-day small{font-size:10px}.habit-day span{font-size:20px;font-weight:700}.habit-done{color:var(--good);border-color:var(--good)}.habit-missed{color:var(--bad);border-color:var(--bad)}.habit-unknown{color:var(--muted);border-style:dashed}.habit-not_due{color:var(--muted);opacity:.65}.habit-row summary,#habit-checkin-rows summary{cursor:pointer;font-weight:600;min-height:44px;padding:12px 0}.habit-history{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:12px 0}.habit-date{min-width:0;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);padding:4px;font-size:12px}.habit-manage-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.habit-manage-row>span{min-width:0;overflow-wrap:anywhere}.habit-manage-row .row-actions{flex-wrap:nowrap}.habit-manage-row button{padding:10px;font-size:13px;min-height:44px}.habit-schedule{border:1px solid var(--line);border-radius:12px;display:flex;flex-wrap:wrap;gap:4px;padding:10px;margin:14px 0}.habit-schedule label{display:flex;align-items:center;gap:5px;min-height:44px;margin:0;padding:0 6px;font-size:13px}.habit-schedule input{width:auto;margin:0}.habit-check-actions label{min-width:180px}.error-text{color:var(--bad)}#habit-checkin-date{font-size:12px;color:var(--muted);font-weight:400}.screenshot-metric{border:1px solid var(--line);border-radius:12px;padding:12px;margin:14px 0}.screenshot-metric legend{font-size:12px;color:var(--muted);padding:0 5px}
