@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(./space-grotesk-latin-400-normal-CJ-V5oYT.woff2)format("woff2"),url(./space-grotesk-latin-400-normal-BnQMeOim.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(./space-grotesk-latin-600-normal-DjKNqYRj.woff2)format("woff2"),url(./space-grotesk-latin-600-normal-BflQw4A9.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(./jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2"),url(./jetbrains-mono-latin-600-normal-BfsvjouI.woff)format("woff")}:root{--bg:#0b0d10;--surface:#14181d;--surface-2:#1d232a;--line:#2a323b;--text:#f1f4f7;--muted:#9aa4af;--accent:#c8ff4d;--accent-ink:#0b0d10;--warn:#ffb547;--danger:#ff6b78;--drop:#4df0c8;--fail:#ff8fb0;--calm:#5cc8ff;--calm-ink:#0b0d10;--done:#26330f;--done-row:#c8ff4d14;--focus:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--radius:12px;--tap:48px;--nav-h:60px;--font-sans:"Space Grotesk", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font-sans);-webkit-tap-highlight-color:transparent;font-size:15px;line-height:1.35}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);margin:0}body{overscroll-behavior:none}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}h1{letter-spacing:-.02em;margin:0;font-size:1.47rem;font-weight:600}h2{margin:0 0 6px;font-size:1.07rem;font-weight:600}h3{margin:0;font-size:1rem;font-weight:600}small,.muted{color:var(--muted)}.page{padding:calc(var(--safe-area-inset-top,env(safe-area-inset-top)) + 8px) 16px calc(var(--nav-h) + 80px);max-width:640px;margin:0 auto}.page.full{padding-bottom:150px}.header{justify-content:space-between;align-items:center;gap:6px;min-height:48px;margin-bottom:8px;display:flex}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.grow{flex:1;min-width:0}.stack{flex-direction:column;gap:10px;display:flex}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.card+.card{margin-top:8px}.card.tap{cursor:pointer}.card.tap:active{background:var(--surface-2)}.btn{min-height:var(--tap);border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:1rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.98)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.danger{color:var(--danger)}.btn.ghost{background:0 0;border-color:#0000}.btn.small{border-radius:8px;min-height:36px;padding:0 12px;font-size:.87rem}.btn.block{width:100%}.btn:disabled{opacity:.4}.icon-btn{cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1rem;display:inline-flex}.icon-btn:active{background:var(--surface-2)}input.field,select.field,textarea.field{width:100%;min-height:var(--tap);background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:0 12px}textarea.field{resize:vertical;min-height:56px;padding:8px 10px}input.field:focus,select.field:focus,textarea.field:focus{outline:2px solid var(--accent);outline-offset:-1px}label.lbl{color:var(--muted);margin:8px 0 3px;font-size:.87rem;display:block}.chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;min-height:36px;padding:0 14px;font-size:.87rem;display:inline-flex}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:600}.chips{scrollbar-width:none;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.stat-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.stat{background:var(--surface-2);border-radius:8px;padding:8px 10px}.stat b{font-variant-numeric:tabular-nums;font-size:1.07rem;display:block}.stat span{color:var(--muted);font-size:.8rem}.nav{height:calc(var(--nav-h) + var(--safe-area-inset-bottom,env(safe-area-inset-bottom)));padding-bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom));border-top:1px solid var(--line);z-index:20;background:#0b0d10f5;grid-template-columns:repeat(6,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.nav a{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:.8rem;display:flex}.nav a.active{color:var(--accent);font-weight:600}.nav a svg{width:22px;height:22px}.nav a.active svg{stroke-width:2.4px}.resume{font-variant-numeric:tabular-nums;left:12px;right:12px;bottom:calc(var(--nav-h) + var(--safe-area-inset-bottom,env(safe-area-inset-bottom)) + 8px);z-index:19;justify-content:flex-start;position:fixed}.ex-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:8px;padding:8px 8px 6px}.ex-card.superset{border-color:var(--ss,var(--accent))}.ex-title{color:var(--text);cursor:pointer;padding-left:4px;font-size:1rem;font-weight:600}.set-head,.set-row{grid-template-columns:26px minmax(50px,1fr) 1fr .85fr 32px 40px;align-items:center;gap:4px;display:grid}.set-head{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;font-weight:600;font-family:var(--font-num);padding:2px}.set-row{border-radius:6px;padding:1px 2px}.set-row.done{background:var(--done-row)}.set-type{width:26px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0;font-size:.85rem;font-weight:700}.set-type.warmup{color:var(--warn)}.set-type.drop{color:var(--drop)}.set-type.failure{color:var(--fail)}.prev{color:var(--muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;font-size:.8rem;overflow:hidden}.num{text-align:center;background:var(--surface-2);border:1px solid #0000;border-radius:8px;width:100%;min-width:0;height:40px;padding:0;font-size:1rem;font-weight:600}.set-row .num{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;height:34px}.set-row.done .num{background:0 0;border-bottom-color:#0000}.num:focus{outline:2px solid var(--accent)}.check{border:1.5px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;width:40px;height:34px;padding:0;font-size:1.05rem}.set-row.done .check{background:var(--accent);color:var(--accent-ink);border-color:#0000}.rpe{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;padding:0 0 4px 48px;font-size:.8rem;display:flex}.rpe button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;min-width:40px;height:36px;font-size:.8rem}.rpe button.on{background:var(--accent);color:var(--accent-ink)}.pr-badge{color:var(--warn);font-variant-numeric:tabular-nums;background:#ffb54724;border-radius:6px;align-items:center;gap:3px;margin-left:6px;padding:2px 6px;font-size:.8rem;font-weight:700;display:inline-flex}.pr-badge svg{width:12px;height:12px}.dock{z-index:30;padding:6px 8px calc(var(--safe-area-inset-bottom,env(safe-area-inset-bottom)) + 6px);background:linear-gradient(to top, var(--bg) 70%, transparent);flex-direction:column;gap:6px;display:flex;position:fixed;bottom:0;left:0;right:0}.rest{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;align-items:center;gap:2px;padding:4px 6px 6px 12px;display:flex;position:relative;overflow:hidden}.rest-time{color:var(--accent);font-variant-numeric:tabular-nums;flex:none;margin-right:8px;font-size:1.6rem;font-weight:600;line-height:1}.rest-label{min-width:0;color:var(--muted);flex:1;font-size:.8rem}.rest .btn.small{flex:none;padding:0 8px}.rest .btn.small.primary{margin-left:4px;padding:0 12px}.rest-bar{background:var(--line);height:3px;position:absolute;bottom:0;left:0;right:0}.rest-bar div{background:var(--accent);height:100%;transition:width .25s linear}.music{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;min-height:52px;padding:4px 6px;display:flex}.music img,.music .art{object-fit:cover;background:var(--surface-2);border-radius:8px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.music .t{font-size:.93rem;font-weight:600}.music .a{color:var(--muted);font-size:.8rem}.sheet-backdrop{z-index:50;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:640px;max-height:92vh;padding:12px 16px calc(var(--safe-area-inset-bottom,env(safe-area-inset-bottom)) + 16px);border-radius:20px 20px 0 0;overflow-y:auto}.sheet h2{margin-bottom:12px}.list-item{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:10px;min-height:52px;padding:6px 2px;display:flex}.list-item:active{background:var(--surface-2)}.avatar{background:var(--surface-2);width:36px;height:36px;color:var(--accent);border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.cal{text-align:center;grid-template-columns:repeat(7,1fr);justify-items:center;gap:2px;display:grid}.cal .dow{color:var(--muted);padding:4px 0;font-size:.8rem}.cal button{cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:50%;width:40px;height:40px;font-size:.85rem}.cal button.has{background:var(--accent);color:var(--accent-ink);font-weight:700}.cal button.today{outline:2px solid var(--accent)}.cal button.out{opacity:.3}.cal button.out.has{color:var(--accent);outline:1px solid var(--accent);background:0 0}.banner{border-radius:12px;padding:10px 12px;font-size:.9rem}.banner.warn{color:var(--warn);background:#3a2c10}.banner.ok{background:var(--done);color:var(--accent)}.empty{text-align:center;color:var(--muted);padding:32px 8px}.toast{top:calc(var(--safe-area-inset-top,env(safe-area-inset-top)) + 12px);background:var(--surface-2);width:max-content;max-width:calc(100vw - 24px);color:var(--text);border:1px solid var(--line);z-index:60;border-radius:12px;padding:10px 16px;font-weight:600;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0006}.rpe-cell{width:100%;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:0;font-size:.85rem;line-height:1;display:flex}.rpe-cell.set{color:var(--text);font-weight:600}.rpe-picker{grid-template-columns:repeat(4,1fr);gap:4px;padding:4px 2px 6px;display:grid}.rpe-picker button{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;min-height:48px;padding:6px 0;line-height:1.1;display:flex}.rpe-picker button b{font-size:1rem;font-family:var(--font-num)}.rpe-picker button small{color:var(--muted);font-size:.8rem}.rpe-picker button.on{background:var(--accent);color:var(--accent-ink);border-color:#0000}.rpe-picker button.on small{color:var(--accent-ink)}svg.lucide{stroke-width:1.75px;flex:none;width:1.15em;height:1.15em}.icon-btn svg.lucide{width:22px;height:22px}.check svg.lucide,.btn svg.lucide{width:18px;height:18px}.tone-warn{color:var(--warn)}.tone-ok{color:var(--accent)}.tone-danger{color:var(--danger)}.note{align-items:flex-start;gap:6px;margin:4px 0;font-size:.85rem;display:flex}.note svg.lucide{width:14px;height:14px;margin-top:1px}.nowrap{white-space:nowrap}.pr-group{border-top:1px solid var(--line);padding:6px 0}.pr-group:first-of-type{border-top:none}.pr-group>small{margin-bottom:2px;display:block}.pr-group .row{padding:2px 0;font-size:.85rem}.empty-action{text-align:center;color:var(--muted);padding:20px 4px}.empty-action p{margin:0 0 12px}.check{color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.w-stats{font-variant-numeric:tabular-nums;gap:14px;margin:6px 0;font-size:.85rem;font-weight:600;display:flex}::selection{color:var(--text);background:#c8ff4d4d}input,textarea{caret-color:var(--accent)}.num,.prev,.rest-time,.cal,.list-item small{font-variant-numeric:tabular-nums}button:focus-visible,a:focus-visible,.chip:focus-visible{box-shadow:var(--focus);outline:none}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.empty-action .btn{color:var(--text)}.past .set-row.done .check{color:var(--accent);background:0 0}.resume .ellipsis{min-width:0}body:before{content:"";height:var(--safe-area-inset-top,env(safe-area-inset-top));background:var(--bg);z-index:50;position:fixed;top:0;left:0;right:0}:root{--font-num:"JetBrains Mono", ui-monospace, monospace;--up:#c8ff4d}.set-row input,.num,.rest-time,.w-stats,.stat b,.prev,.rpe-cell,.set-type,.cal{font-family:var(--font-num)}.set-row input{font-weight:600}.tone-up{color:var(--up)}.prev svg.lucide{vertical-align:-1px;width:12px;height:12px;margin-left:2px}.w-stats svg.lucide{width:13px;height:13px}@keyframes set-flash{0%{background:#c8ff4d3d}to{background:var(--done-row)}}@keyframes set-flash-pr{0%{box-shadow:inset 0 0 0 1px var(--warn);background:#ffb54752}to{background:var(--done-row);box-shadow:inset 0 0 0 1px #0000}}@keyframes check-pop{0%{transform:scale(.8)}60%{transform:scale(1.12)}to{transform:scale(1)}}.set-row.flash{animation:.7s ease-out set-flash}.set-row.flash.pr{animation:.9s ease-out set-flash-pr}.set-row.flash .check{animation:.3s ease-out check-pop}.set-row.flash.pr .check{background:var(--warn);color:#2a1d00}@media (prefers-reduced-motion:reduce){.set-row.flash,.set-row.flash .check{animation:none}}.tod{border-collapse:collapse;width:100%;margin-top:8px;font-size:.85rem}.tod th{text-align:right;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;font-weight:600;font-family:var(--font-num);padding:0 0 4px}.tod td{text-align:right;border-top:1px solid var(--line);white-space:nowrap;padding:5px 0}.tod td:first-child,.tod th:first-child{text-align:left}.tod td:first-child small{color:var(--muted)}.tod td.n{font-family:var(--font-num)}.heat-scroll{scrollbar-width:none;direction:rtl;overflow-x:auto}.heat-scroll>*{direction:ltr}.heat-scroll::-webkit-scrollbar{display:none}.heat-months,.heat{gap:2px;width:max-content;display:flex}.heat-months span{width:11px;color:var(--muted);white-space:nowrap;height:16px;font-size:.8rem;overflow:visible}.heat-col{flex-direction:column;gap:2px;display:flex}.heat-cell{border:none;border-radius:2px;width:11px;height:11px;padding:0;display:inline-block}.heat-cell.s0{background:var(--surface-2)}.heat-cell.s1{background:#c8ff4d38}.heat-cell.s2{background:#c8ff4d73}.heat-cell.s3{background:#c8ff4db3}.heat-cell.s4{background:var(--accent)}.heat-cell.sx{background:0 0}button.heat-cell:not(:disabled){cursor:pointer}.heat-legend{align-items:center;gap:3px;margin-top:8px}.heat-legend small{margin:0 3px}.lvl{border-top:1px solid var(--line);cursor:pointer;margin-top:6px;padding:8px 0 6px}.lvl-name{color:var(--muted);font-size:.8rem}.lvl-name.l2{color:var(--accent)}.lvl-name.l3,.lvl-name.l4{color:var(--warn)}.lvl-bar{background:var(--surface-2);border-radius:3px;height:6px;margin-top:6px;position:relative}.lvl-fill{background:var(--accent);border-radius:3px;position:absolute;inset:0 auto 0 0}.lvl-tick{background:var(--line);width:1px;position:absolute;top:-2px;bottom:-2px}.lvl-scale{height:17px;margin-top:2px;position:relative}.lvl-scale span{color:var(--muted);font-size:.8rem;font-family:var(--font-num);white-space:nowrap;position:absolute;transform:translate(-50%)}.lvl-scale span:last-child{transform:translate(-100%)}.trend-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.trend{background:var(--surface-2);cursor:pointer;border-radius:12px;min-width:0;padding:8px}.trend b{font-family:var(--font-num)}.trend-delta{font-size:.8rem;font-family:var(--font-num)}.band-bar{background:var(--surface-2);border-radius:3px;height:6px;margin-top:4px;position:relative}.band{background:#c8ff4d24;border-left:1px solid #c8ff4d80;border-right:1px solid #c8ff4d80;position:absolute;top:-2px;bottom:-2px}.band-fill{background:var(--muted);border-radius:3px;position:absolute;inset:0 auto 0 0}.band-fill.ok{background:var(--up)}.band-fill.high{background:var(--warn)}.item{border-bottom:1px solid var(--line);padding:12px 0}.item h3{font-size:1.07rem}.btn.go{color:var(--accent);background:0 0;border:0;min-height:44px;padding:0 8px;font-size:.93rem}.btn.go svg.lucide{fill:currentColor;width:16px;height:16px}.btn{border-color:#0000}.btn.small:not(.primary):not(.danger):not(.go){color:var(--muted);background:0 0}.btn.small:not(.primary):not(.danger):not(.go):active{color:var(--text)}.card{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;padding:12px 0}.ex-card{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;margin-bottom:4px;padding:10px 0 8px}.stat{background:0 0;padding:0}.music{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0}.trend{background:0 0;padding-left:0;padding-right:0}.resume{min-height:48px}.resume .ellipsis{text-align:left;flex:1}.resume-time{font-family:var(--font-num);white-space:nowrap}.btn.block:not(.primary),.btn.danger{background:0 0;border:0}.calm{--accent:var(--calm);--accent-ink:var(--calm-ink);--done-row:#5cc8ff14;--focus:0 0 0 2px var(--bg), 0 0 0 4px var(--calm)}.nav a.nav-calm.active{color:var(--calm)}.rec-week{margin:-4px 0 6px;font-size:.87rem}.rec-week b{color:var(--text);font-family:var(--font-num);font-weight:600}.rec-h{margin:20px 0 2px}.rec-thumb{object-fit:cover;background:var(--surface-2);border-radius:8px;flex:none;width:40px;height:40px}.rec-caution{color:var(--warn);font-size:.8rem;display:block}.num-inline{font-family:var(--font-num);color:var(--muted);white-space:nowrap;font-size:.87rem}.player{z-index:40;background:var(--bg);padding:calc(var(--safe-area-inset-top,env(safe-area-inset-top)) + 4px) 16px calc(var(--safe-area-inset-bottom,env(safe-area-inset-bottom)) + 12px);flex-direction:column;display:flex;position:fixed;inset:0}.player-top{justify-content:space-between;align-items:center;min-height:48px;display:flex}.player-pos{font-family:var(--font-num);color:var(--muted);font-size:.87rem}.player-body{flex-direction:column;flex:1;align-items:stretch;width:100%;max-width:480px;min-height:0;margin:0 auto;display:flex;overflow-y:auto}.player-photo{aspect-ratio:1;object-fit:cover;background:var(--surface);border-radius:12px;width:100%;max-height:38vh;margin:4px 0 12px;transition:opacity .3s}.player-photo.dim{opacity:.45}.player-kicker{color:var(--accent);font-size:.87rem;font-weight:600}.player-title{margin:2px 0 6px;font-size:1.47rem}.player-cue{color:var(--text);margin:0 0 6px}.player-clock{font-family:var(--font-num);color:var(--accent);font-variant-numeric:tabular-nums;margin-top:8px;font-size:3.2rem;font-weight:600;line-height:1.05}.player-clock.small{margin:0;font-size:2rem}.player-bar{border-radius:2px;height:4px;margin:8px 0 4px;position:static}.player-sub{margin-top:4px;font-size:.87rem}.player-next{text-align:center;margin:8px 0 0;font-size:.87rem}.player-phases,.player-source{font-size:.8rem}.player-source{margin-top:auto;padding-top:16px}.player-stepper{margin:18px 0 6px}.player-times{font-family:var(--font-num);color:var(--muted);font-size:.8rem}.player-controls{justify-content:center;align-items:center;gap:28px;padding-top:10px;display:flex}.player-main{background:var(--accent);width:64px;height:64px;color:var(--accent-ink);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.player-main svg{fill:currentColor;width:28px;height:28px}.player-done{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.player-done .btn{min-width:160px;margin-top:16px}.player-body.breath{justify-content:center;align-items:center}.breath-stage{aspect-ratio:1;place-items:center;width:min(78vw,320px);display:grid;position:relative}.breath-ring{border:1px solid var(--line);border-radius:50%;position:absolute;inset:0}.breath-circle{border:1.5px solid var(--calm);will-change:transform;background:radial-gradient(circle at 50% 40%,#5cc8ff59,#5cc8ff1f);border-radius:50%;position:absolute;inset:0}.breath-circle.glow{animation:6s ease-in-out infinite calm-glow}@keyframes calm-glow{0%,to{transform:scale(.55)}50%{transform:scale(.62)}}.breath-label{text-align:center;padding:0 22%;position:relative}.breath-phase{font-size:1.27rem;font-weight:600}@media (prefers-reduced-motion:reduce){.breath-circle{transition:none!important}.breath-circle.glow{animation:none}}@media (min-width:1000px){.page.wide{max-width:1180px;padding-left:32px;padding-right:32px}.kpi-grid{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.kpi-grid>.card{margin:0}.nav{border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:12px 12px 0 0;max-width:720px;margin:0 auto}}
