:root{--u:1vh}.tv-root{--tv-bg:#0a0a0c;--tv-card:#14141a;--tv-line:#2d2d39;--tv-fg:#f3f3f6;--tv-dim:#aaaab6;--tv-muted:#6f6f80;background:var(--tv-bg);color:var(--tv-fg);font-family:var(--font-body);padding:calc(var(--u) * 3) 3vw;cursor:none;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.tv-root .muted{color:var(--tv-muted)}.tv-root .tabular{font-variant-numeric:tabular-nums}.tv-center{justify-content:center;align-items:center;gap:calc(var(--u) * 2.4);text-align:center;flex-direction:column;flex:1;display:flex}.tv-brand{font-family:var(--font-display);font-size:calc(var(--u) * 3);letter-spacing:.3em;text-transform:uppercase;color:var(--tv-muted)}.tv-kicker{font-size:calc(var(--u) * 2.6);letter-spacing:.18em;text-transform:uppercase;color:var(--tv-dim)}.tv-code{font-family:var(--font-display);font-size:calc(var(--u) * 16);letter-spacing:.08em;line-height:1}.tv-line{font-size:calc(var(--u) * 3);color:var(--tv-dim)}.tv-line strong{color:var(--tv-fg)}.tv-big{font-family:var(--font-display);font-size:calc(var(--u) * 17 * var(--fit,1));line-height:1}.tv-unit{font-size:.45em}.tv-big-text{font-size:calc(var(--u) * 7 * var(--fit,1));line-height:1.3}.tv-big.tv-tails{line-height:1.3}.tv-grid{flex:1;gap:2.5vw;min-height:0;display:grid}.tv-grid.tv-n1{grid-template-columns:minmax(0,1fr)}.tv-grid.tv-n2{grid-template-columns:repeat(2,minmax(0,1fr))}.tv-grid.tv-n3{grid-template-columns:repeat(3,minmax(0,1fr))}.tv-person{--who:#f25c1f;background:var(--tv-card);border:calc(var(--u) * .35) solid color-mix(in oklab, var(--who) 45%, var(--tv-card));border-top:calc(var(--u) * 1) solid var(--who);border-radius:calc(var(--u) * 2);padding:calc(var(--u) * 2) 2.4vw calc(var(--u) * 2.4);row-gap:calc(var(--u) * .6);grid-template:"name day"8fr"when when"5.5fr"exercise exercise"11fr"above above"6fr"kicker kicker"4.5fr"big big"34fr"bar bar"3fr"below below"8fr"chips chips"10fr"last last"10fr/minmax(0,1fr) minmax(0,1.4fr);min-width:0;min-height:0;display:grid}.tv-cell{align-items:center;min-width:0;min-height:0;display:flex;container-type:size}.tv-n3 .tv-person{grid-template-rows:7fr 9fr 12fr 6.5fr 5fr 25fr 3fr 8fr 11fr 10fr}.tv-a-name{grid-area:name}.tv-a-day{grid-area:day}.tv-a-when{grid-area:when}.tv-a-exercise{grid-area:exercise}.tv-a-above{grid-area:above}.tv-a-kicker{grid-area:kicker}.tv-a-big{grid-area:big}.tv-a-bar{grid-area:bar}.tv-a-below{grid-area:below}.tv-a-last{grid-area:last}.tv-chips{grid-area:chips}.tv-fit{width:100%;font-size:min(calc(var(--fill) * 100cqh), calc(100cqw / (var(--units) * var(--em))));white-space:nowrap;line-height:1.2}.tv-fit-wrap{white-space:normal;overflow-wrap:normal;font-size:max(min(calc(var(--fill) * 100cqh), calc(100cqw / (var(--units) * var(--em)))), min(calc(var(--fill) * 50cqh), calc(100cqw / (var(--units) * .56 * var(--em)))))}.tv-fit-display{font-family:var(--font-display);line-height:1.3}.tv-fit-kicker{letter-spacing:.18em}.tv-right{text-align:right}.tv-dim{color:var(--tv-dim)}.tv-strong{color:var(--tv-fg);font-weight:600}.tv-quiet{color:var(--tv-muted);font-weight:400}.tv-late{color:#f59e0b}.tv-a-name .tv-fit{color:var(--who)}.tv-decision{color:var(--who);font-weight:700}.tv-resting .tv-bigline{color:var(--tv-fg)}.tv-up .tv-bigline{color:var(--who);animation:1.2s ease-in-out infinite tv-pulse}.tv-up{box-shadow:0 0 0 calc(var(--u) * .5) var(--who) inset}.tv-done .tv-a-kicker .tv-fit{color:#4ade80}@keyframes tv-pulse{50%{opacity:.55}}.tv-bar{border-radius:calc(var(--u) * 1);background:var(--tv-line);width:100%;height:60%;overflow:hidden}.tv-bar span{background:var(--who);height:100%;transition:width .25s linear;display:block}.tv-chips{grid-template-columns:repeat(var(--chip-cols), minmax(0, calc(var(--u) * 30)));grid-template-rows:repeat(var(--chip-rows), minmax(0, 1fr));gap:calc(var(--u) * .8) .8vw;min-width:0;min-height:0;display:grid}.tv-chip{border-radius:calc(var(--u) * 1);border:1px dashed var(--tv-line);color:var(--tv-muted);font-variant-numeric:tabular-nums;padding:0 .8vw}.tv-chip.done{border:1px solid var(--who);color:var(--tv-fg);background:color-mix(in oklab, var(--who) 18%, transparent)}.tv-a-last{border-top:1px solid var(--tv-line)}.tv-foot{font-size:calc(var(--u) * 2.2);color:var(--tv-muted);min-height:calc(var(--u) * 3);padding-top:calc(var(--u) * 1.2);justify-content:center;gap:2vw;display:flex}.tv-warn{color:#f59e0b}@media (prefers-reduced-motion:reduce){.tv-up .tv-bigline{animation:none}}.tv-person.tv-celebrate,.tv-n3 .tv-person.tv-celebrate{box-shadow:0 0 0 calc(var(--u) * .5) var(--who) inset;grid-template:"name"12fr"kicker"6fr"big"40fr"below"12fr"last"10fr/minmax(0,1fr)}.tv-celebrate .tv-fit{text-align:center}.tv-celebrate .tv-bigline{color:var(--who)}.tv-celebrate .tv-a-last{border-top:0}.tv-fireworks{pointer-events:none;z-index:5;width:100vw;height:100vh;position:fixed;top:0;bottom:0;left:0;right:0}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{height:100%}body,#root{min-height:100%}button,input,select,textarea{font:inherit;color:inherit;background:0 0;border:0}button{cursor:pointer;-webkit-tap-highlight-color:transparent}input,textarea{-webkit-appearance:none;appearance:none}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0a0c;--bg-elev-1:#14141a;--bg-elev-2:#1d1d26;--bg-elev-3:#262631;--line:#2d2d39;--line-soft:#1c1c25;--fg:#f3f3f6;--fg-dim:#aaaab6;--fg-muted:#6f6f80;--accent:#f25c1f;--accent-soft:#f25c1f33;--good:#4ade80;--bad:#ef4444;--warn:#f59e0b;--profile-1:#f25c1f;--profile-2:#5cc8ff;--profile-active:var(--profile-1);--profile-active-soft:color-mix(in oklab, var(--profile-active) 22%, transparent);--profile-other:var(--profile-2);--font-display:"Oswald", "Impact", "Bebas Neue", system-ui, sans-serif;--font-body:"Inter Tight", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--tap:44px;--radius-1:8px;--radius-2:14px;--radius-3:22px;--shadow-1:0 1px 0 #ffffff0a inset, 0 6px 18px #00000059;--shadow-2:0 1px 0 #ffffff0d inset, 0 12px 28px #00000073;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f6f4;--bg-elev-1:#fff;--bg-elev-2:#f0eee8;--bg-elev-3:#e6e3da;--line:#d8d4c8;--line-soft:#ece9df;--fg:#131318;--fg-dim:#4f4f5a;--fg-muted:#80808e;--shadow-1:0 1px 0 #00000005 inset, 0 6px 18px #00000014;--shadow-2:0 1px 0 #00000005 inset, 0 12px 28px #0000001f}html{background:var(--bg);color:var(--fg);-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-feature-settings:"ss01", "cv11", "tnum";background:radial-gradient(1200px 600px at 80% -10%, color-mix(in oklab, var(--profile-active) 8%, transparent), transparent 60%), radial-gradient(900px 500px at -10% 110%, color-mix(in oklab, var(--profile-other) 6%, transparent), transparent 60%), var(--bg);min-height:100dvh;padding-left:var(--safe-left);padding-right:var(--safe-right);background-attachment:fixed;font-size:16px;line-height:1.4;overflow-x:clip}#root{flex-direction:column;min-height:100dvh;display:flex}input,textarea,select{background:var(--bg-elev-1);border:1px solid var(--line);border-radius:var(--radius-1);color:var(--fg);width:100%;padding:10px 12px;font-size:16px}input[type=checkbox],input[type=radio]{-webkit-appearance:auto;appearance:auto;width:22px;height:22px;accent-color:var(--profile-active);flex:none;padding:0}input:focus,textarea:focus,select:focus{border-color:var(--profile-active);box-shadow:0 0 0 3px var(--profile-active-soft);outline:none}.display{font-family:var(--font-display);letter-spacing:.01em;text-transform:uppercase}.tabular{font-variant-numeric:tabular-nums}.dim{color:var(--fg-dim)}.muted{color:var(--fg-muted)}.app{flex-direction:column;min-height:100dvh;display:flex}.app-main{padding:12px 14px calc(80px + var(--safe-bottom));flex:1;width:100%;max-width:720px;margin:0 auto}.app-main.app-main-flush-top{padding-top:calc(var(--safe-top) + 16px)}.safe-top-mask{height:var(--safe-top);z-index:200;pointer-events:none;background:radial-gradient(1200px 600px at 80% -10%, color-mix(in oklab, var(--profile-active) 8%, transparent), transparent 60%), radial-gradient(900px 500px at -10% 110%, color-mix(in oklab, var(--profile-other) 6%, transparent), transparent 60%), var(--bg);background-attachment:fixed;position:fixed;top:0;left:0;right:0}.app-banner{padding:calc(var(--safe-top) + 10px) 14px 10px;text-align:center;font-size:13px;font-weight:700;line-height:1.35;position:sticky;top:0}.app-banner+.app-banner{padding-top:10px}.app-banner-warn{z-index:80;background:var(--warn);color:#0a0a0c}.app-banner-sync{z-index:80;background:var(--bg-elev-3);color:var(--fg-dim);padding-top:calc(var(--safe-top) + 6px);padding-bottom:6px;font-size:12px;font-weight:600}.app-banner-sync+.app-banner,.app-banner+.app-banner-sync{padding-top:6px}.app-banner-bad{z-index:80;background:var(--bad);color:#0a0a0c;font-weight:600}.app-banner-update{z-index:81;background:var(--profile-active);color:#0a0a0c;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.topbar{z-index:30;padding:calc(var(--safe-top) + 8px) 14px 8px;background:linear-gradient(to bottom, var(--bg) 60%, color-mix(in oklab, var(--bg) 70%, transparent));-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar-title{font-family:var(--font-display);letter-spacing:.06em;flex:1;font-size:22px}.pills{background:var(--bg-elev-2);border:1px solid var(--line);border-radius:999px;flex-wrap:wrap;gap:2px;max-width:100%;padding:3px;display:inline-flex}.pills .pill{min-width:78px;height:36px;color:var(--fg-dim);letter-spacing:.02em;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;font-weight:600;transition:background .12s,color .12s,transform .12s;display:inline-flex}.pills .pill.active{background:var(--pill-bg,var(--profile-active));color:var(--pill-fg,#0a0a0c);transform:translateY(-1px)}.pills.chips{background:0 0;border:none;flex-wrap:wrap;gap:8px;padding:0}.pills.chips .pill{background:var(--bg-elev-2);border:1px solid var(--line);min-width:0}.pills.chips .pill.active{background:var(--pill-bg,var(--profile-active));border-color:#0000}.btn{min-height:var(--tap);border-radius:var(--radius-2);letter-spacing:.02em;background:var(--bg-elev-2);border:1px solid var(--line);color:var(--fg);justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:600;transition:transform 80ms,background .12s,opacity .12s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--profile-active);color:#0a0a0c;border-color:#0000;font-weight:700}.btn-primary:disabled{background:var(--bg-elev-3);color:var(--fg-muted)}.btn-ghost{border-color:var(--line-soft);color:var(--fg-dim);background:0 0}.btn-danger{border-color:var(--bad);color:var(--bad);background:0 0}.btn-block{width:100%}.btn-xl{border-radius:var(--radius-3);min-height:64px;font-size:18px}.card{background:var(--bg-elev-1);border:1px solid var(--line);border-radius:var(--radius-2);box-shadow:var(--shadow-1);padding:16px}.card+.card{margin-top:12px}.card-title{font-family:var(--font-display);letter-spacing:.08em;color:var(--fg-dim);margin-bottom:10px;font-size:16px}.card-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.stepper{grid-template-columns:var(--tap) 1fr var(--tap);background:var(--bg-elev-2);border:1px solid var(--line);border-radius:var(--radius-2);align-items:center;height:76px;display:grid;overflow:hidden}.stepper button{width:100%;height:100%;color:var(--fg);background:0 0;justify-content:center;align-items:center;font-size:24px;font-weight:700;transition:background .12s;display:flex}.stepper button:active{background:color-mix(in oklab, var(--profile-active) 18%, transparent)}.stepper-value{text-align:center;font-family:var(--font-display);letter-spacing:.02em;color:var(--fg);font-size:34px;line-height:1}.stepper-unit{font-family:var(--font-body);color:var(--fg-dim);letter-spacing:.06em;text-transform:uppercase;margin-top:4px;font-size:14px}.badge{letter-spacing:.08em;text-transform:uppercase;background:var(--bg-elev-3);color:var(--fg-dim);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.badge-ready{background:color-mix(in oklab, var(--good) 18%, var(--bg-elev-1));color:var(--good)}.badge-buffer{background:color-mix(in oklab, var(--warn) 18%, var(--bg-elev-1));color:var(--warn)}.badge-stall{background:color-mix(in oklab, var(--bad) 18%, var(--bg-elev-1));color:var(--bad)}.badge-pr{background:color-mix(in oklab, var(--profile-active) 20%, var(--bg-elev-1));color:var(--profile-active)}.bottom-nav{left:0;right:0;bottom:var(--kb-inset);z-index:40;padding-bottom:var(--safe-bottom);background:color-mix(in oklab, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line-soft);grid-template-columns:repeat(4,1fr);display:grid;position:fixed}.bottom-nav .nav-item{height:64px;color:var(--fg-muted);letter-spacing:.05em;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;display:flex}.bottom-nav .nav-item.active{color:var(--profile-active)}.bottom-nav .nav-icon{width:22px;height:22px}.day-grid{grid-template-columns:1fr;gap:10px;display:grid}@media (min-width:520px){.day-grid{grid-template-columns:1fr 1fr 1fr}}.day-card{background:var(--bg-elev-1);border:1px solid var(--line);border-radius:var(--radius-2);flex-direction:column;gap:6px;min-height:140px;padding:16px;display:flex;position:relative;overflow:hidden}.day-card:before{content:"";background:radial-gradient(circle, var(--profile-active-soft), transparent 65%);pointer-events:none;width:200px;height:200px;position:absolute;top:-40%;bottom:auto;left:auto;right:-20%}.day-card-kicker{font-family:var(--font-display);letter-spacing:.16em;color:var(--profile-active);font-size:12px}.day-card-title{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;font-size:28px;line-height:1}.day-card-meta{z-index:1;flex-wrap:wrap;gap:8px;margin-top:auto;display:flex;position:relative}.exercise{background:var(--bg-elev-1);border:1px solid var(--line);border-radius:var(--radius-2);box-shadow:var(--shadow-1);flex-direction:column;gap:12px;padding:16px;display:flex}.exercise-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.exercise-name{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;font-size:22px;line-height:1.05}.exercise-target{color:var(--fg-dim);letter-spacing:.06em;text-transform:uppercase;margin-top:4px;font-size:12px}.exercise-hint{color:var(--fg-muted);font-size:13px;font-style:italic}.set-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.set-list{gap:6px;display:grid}.set-row{border-radius:var(--radius-1);background:var(--bg-elev-2);border:1px solid var(--line-soft);font-variant-numeric:tabular-nums;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.set-row.current{border-color:var(--profile-active);box-shadow:0 0 0 1px var(--profile-active-soft)}.set-row.done{color:var(--fg-dim)}.set-num{font-family:var(--font-display);color:var(--fg-muted);font-size:16px}@keyframes pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.pop{animation:.22s ease-out pop}@keyframes pulseAccent{0%,to{box-shadow:0 0 0 0 var(--profile-active-soft)}50%{box-shadow:0 0 0 10px #0000}}.pulse{animation:1.5s ease-in-out infinite pulseAccent}.flash-overlay{z-index:80;background:color-mix(in oklab, var(--good) 32%, transparent);pointer-events:none;justify-content:center;align-items:center;animation:1.6s ease-out forwards flashFade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.flash-overlay span{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--fg);text-shadow:0 2px 24px #00000080;font-size:13vw}@keyframes flashFade{0%{opacity:0}10%{opacity:1}55%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.flash-overlay{opacity:1;animation:none}}.train-actionbar{left:0;right:0;bottom:var(--kb-inset);z-index:36;padding:10px 14px calc(10px + var(--safe-bottom));background:color-mix(in oklab, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);flex-direction:column;gap:8px;max-width:720px;margin:0 auto;display:flex;position:fixed}.train-actionbar-meta{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.train-actionbar-name{font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;font-size:16px}.train-actionbar-btn{flex-direction:column;gap:1px;min-height:60px;line-height:1.05}.train-actionbar-btn-main{font-size:18px;font-weight:800}.train-actionbar-btn-value{opacity:.92;font-size:14px;font-weight:600}.train-actionbar-end{align-self:stretch;min-height:40px}.train-topbar .btn{white-space:nowrap}:root{--actionbar-h:calc(158px + var(--safe-bottom));--kb-inset:0px}.feel-float{left:14px;right:14px;bottom:calc(var(--actionbar-h) + 12px + var(--kb-inset));z-index:35;background:var(--bg-elev-2);border:1px solid var(--profile-active);border-radius:var(--radius-3);max-width:692px;box-shadow:var(--shadow-2);margin:0 auto;padding:12px 16px;position:fixed}.rest-timer{left:14px;right:14px;bottom:calc(var(--actionbar-h) + 12px + var(--kb-inset));z-index:35;background:var(--bg-elev-2);border:1px solid var(--line);border-radius:var(--radius-3);box-shadow:var(--shadow-2);align-items:center;gap:14px;padding:14px 18px;display:flex;position:fixed}.kicker.feel-question{color:var(--profile-active);text-align:center;font-size:clamp(15px,4.7vw,20px)}.feel-row{min-height:clamp(38px,11vw,48px)}.feel-answer{text-align:left;font-size:clamp(16px,5vw,22px);font-weight:700}.feel-name{white-space:nowrap;opacity:.75;font-size:clamp(14px,4.4vw,19px)}.rest-timer .rest-time{font-size:clamp(36px,10vw,42px)}@media (max-height:600px){.kicker.feel-question{font-size:15px}.feel-row{min-height:38px}.feel-answer{font-size:16px}.feel-name{font-size:14px}.rest-timer .rest-time{font-size:36px}.rest-timer{padding-top:10px;padding-bottom:10px;gap:6px!important}}.rest-timer{max-height:calc(100dvh - var(--actionbar-h) - 12px - var(--kb-inset) - 8px - env(safe-area-inset-top));overflow-y:auto}.rest-time{font-family:var(--font-display);letter-spacing:.04em;min-width:100px;color:var(--profile-active);font-size:36px}.rest-timer.alarming{border-color:var(--profile-active);animation:1.1s ease-in-out infinite restPulse}@keyframes restPulse{0%,to{box-shadow:0 0 0 0 color-mix(in oklab, var(--profile-active) 60%, transparent)}50%{box-shadow:0 0 0 7px color-mix(in oklab, var(--profile-active) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.rest-timer.alarming{animation:none}}.ex-history{background:var(--bg-elev-2);border:1px solid var(--line-soft);border-radius:var(--radius-1);padding:8px 12px}.ex-history-title{text-transform:uppercase;letter-spacing:.08em;color:var(--fg-dim);margin-bottom:6px;font-size:11px}.ex-history-target{text-transform:none;letter-spacing:0;color:var(--fg-muted)}.ex-history-empty{font-size:13px}.ex-history-row{flex-direction:column;gap:1px;padding:5px 0;font-size:15px;display:flex}.ex-history-row+.ex-history-row{border-top:1px solid var(--line-soft)}.ex-history-head{align-items:baseline;gap:8px;display:flex}.ex-history-body{align-items:baseline;gap:10px;min-width:0;display:flex}.ex-history-when{color:var(--fg-muted);flex:none;font-size:12px}.ex-history-weight{font-variant-numeric:tabular-nums;min-width:56px;color:var(--fg-dim);flex:none}.ex-history-sets{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.ex-history-rep{font-variant-numeric:tabular-nums}.ex-history-rep.rep-low{color:var(--bad);font-weight:700}.ex-history-rep.rep-high{color:var(--good);font-weight:700}.ex-history-dot{color:var(--line);margin-right:4px}.ex-history-feel{margin-left:2px;font-size:.78em;line-height:1}.ex-history-day{text-align:right;margin-left:auto;font-size:11px}.chart-wrap{width:100%;height:220px;position:relative}.calendar{grid-template-columns:repeat(7,1fr);gap:4px;font-size:11px;display:grid}.calendar-cell{aspect-ratio:1;background:var(--bg-elev-2);color:var(--fg-muted);border:1px solid #0000;border-radius:6px;justify-content:flex-start;align-items:flex-start;padding:2px 4px;display:flex}.calendar-cell.upper{background:color-mix(in oklab, var(--profile-active) 35%, var(--bg-elev-2));color:var(--fg)}.calendar-cell.lower{background:color-mix(in oklab, var(--profile-other) 35%, var(--bg-elev-2));color:var(--fg)}.calendar-cell.full{background:color-mix(in oklab, var(--good) 35%, var(--bg-elev-2));color:var(--fg)}.calendar-cell.today{border-color:var(--profile-active)}.calendar-dow{text-align:center;font-family:var(--font-display);letter-spacing:.1em;color:var(--fg-muted);padding:2px 0;font-size:12px}.welcome{flex-direction:column;align-items:stretch;gap:18px;max-width:460px;margin:0 auto;padding:24px 18px;display:flex}.welcome-hero{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;text-align:center;font-size:56px;line-height:1}.welcome-sub{text-align:center;color:var(--fg-dim);letter-spacing:.02em}.swatch-row{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.swatch{aspect-ratio:1;cursor:pointer;border:2px solid #0000;border-radius:999px}.swatch.selected{border-color:var(--fg);transform:scale(1.05)}.toast-host{left:0;right:0;bottom:calc(140px + var(--safe-bottom));z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed}.toast{background:var(--bg-elev-3);color:var(--fg);box-shadow:var(--shadow-2);border:1px solid var(--line);border-radius:999px;padding:10px 16px;font-size:14px;animation:.2s ease-out pop}.toast.good{background:color-mix(in oklab, var(--good) 26%, var(--bg-elev-3));color:var(--fg);border-color:color-mix(in oklab, var(--good) 50%, var(--line))}.toast.bad{background:color-mix(in oklab, var(--bad) 26%, var(--bg-elev-3));color:var(--fg);border-color:color-mix(in oklab, var(--bad) 50%, var(--line))}.row{align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.col{flex-direction:column;gap:10px;display:flex}.col.tight{gap:4px}.grow{flex:1}.gap-sm{gap:6px}.gap-md{gap:12px}.gap-lg{gap:18px}.center{text-align:center}.hr{background:var(--line-soft);border:0;height:1px;margin:12px 0}.kicker{font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--fg-muted);font-size:11px}.weight-display{font-family:var(--font-display);letter-spacing:.02em;font-size:64px;line-height:1}.subtle-divider{border-top:1px dashed var(--line-soft);margin-top:10px;padding-top:10px}.checkmark{background:var(--good);border-radius:999px;width:18px;height:18px;display:inline-block;position:relative}.checkmark:after{content:"";border-left:2px solid var(--bg);border-bottom:2px solid var(--bg);position:absolute;top:4px;bottom:4px;left:4px;right:4px;transform:rotate(-45deg)}@supports (height:100svh){#root{min-height:100svh}.bottom-nav{padding-bottom:var(--safe-bottom)}}.sound-check{border-color:color-mix(in oklab, var(--profile-active) 45%, var(--line))}.train-actionbar-locked{background:var(--bg-elev-3);color:var(--fg-muted);border-color:var(--line)}.train-actionbar-locked .train-actionbar-btn-value{opacity:1}.idle-overlay{height:100vh;z-index:90;background:color-mix(in oklab, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(6px);justify-content:center;align-items:center;height:100dvh;padding:24px;animation:.16s ease-out idleFade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.idle-card{background:var(--bg-elev-1);border:1px solid var(--profile-active);border-radius:var(--radius-3);width:100%;max-width:420px;max-height:86vh;overscroll-behavior:contain;max-height:86dvh;box-shadow:var(--shadow-2);text-align:center;padding:22px;overflow-y:auto}@keyframes idleFade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.idle-overlay{animation:none}}.howto-trigger{letter-spacing:.03em;min-height:32px;color:var(--fg-dim);background:var(--bg-elev-2);border:1px solid var(--line-soft);cursor:pointer;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin-top:8px;padding:4px 12px;font-size:13px;font-weight:600;transition:color .12s,border-color .12s;display:inline-flex}.howto-trigger:hover,.howto-trigger:active{color:var(--profile-active);border-color:var(--profile-active)}.howto-trigger span{font-size:10px}.howto-overlay{height:100vh;z-index:95;background:color-mix(in oklab, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(6px);justify-content:center;align-items:flex-end;height:100dvh;animation:.16s ease-out idleFade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.howto-sheet{background:var(--bg-elev-1);border:1px solid var(--line);border-top:2px solid var(--profile-active);border-radius:var(--radius-3) var(--radius-3) 0 0;padding:0 20px calc(20px + env(safe-area-inset-bottom,0px));width:100%;max-width:520px;max-height:82vh;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:88dvh;box-shadow:var(--shadow-2);animation:.2s ease-out sheetUp;overflow-y:auto}@keyframes sheetUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.howto-head{z-index:1;background:var(--bg-elev-1);justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;padding:20px 0 10px;display:flex;position:sticky;top:0}.howto-title{font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;font-size:22px;line-height:1.05}.howto-close{background:var(--bg-elev-2);border:1px solid var(--line-soft);width:36px;height:36px;color:var(--fg-dim);cursor:pointer;border-radius:999px;flex:none;font-size:14px}.howto-close:hover{color:var(--fg);border-color:var(--line)}.howto-steps{gap:9px;margin:0 0 16px;padding-left:24px;list-style:decimal;display:grid}.howto-steps li{color:var(--fg-dim);font-size:15px;line-height:1.45}.howto-steps li::marker{color:var(--profile-active);font-family:var(--font-display)}.howto-links{gap:8px;display:grid}.howto-foot{text-align:center;margin-top:12px;font-size:12px}@media (min-width:560px){.howto-overlay{align-items:center}.howto-sheet{border-radius:var(--radius-3);border:1px solid var(--profile-active)}}@media (prefers-reduced-motion:reduce){.howto-overlay,.howto-sheet{animation:none}}.settings-menu{background:var(--bg-elev-1);border:1px solid var(--line);border-radius:var(--radius-2);flex-direction:column;display:flex;overflow:hidden}.settings-menu-row{width:100%;min-height:60px;color:inherit;text-align:left;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;gap:12px;padding:12px 14px;display:flex}.settings-menu-row+.settings-menu-row{border-top:1px solid var(--line)}.settings-menu-row:active{background:var(--bg-elev-2)}.settings-menu-icon{text-align:center;flex:none;width:28px;font-size:20px}.settings-menu-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.settings-menu-title{font-size:16px;font-weight:600}.settings-menu-summary{color:var(--fg-muted);font-size:13px}.settings-menu-chevron{color:var(--fg-muted);flex:none;font-size:22px}.settings-back{color:var(--profile-active);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;margin-bottom:-8px;padding:8px 0;font-size:16px}.finish-chip{background:var(--bg-elev-2);border:1px solid var(--line);color:var(--fg);font:inherit;cursor:pointer;border-radius:999px;align-self:flex-start;margin-top:8px;padding:6px 12px;font-size:14px}.skip-trigger{min-height:36px;color:var(--fg-muted);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:8px 0;font-size:13px;text-decoration:underline}.program-trigger{vertical-align:baseline;min-height:0;margin-left:8px;padding:0;font-size:12px;display:inline}.skipped-card{flex-direction:column;gap:10px;display:flex}.skipped-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.legal p,.legal li{font-size:15px;line-height:1.5}.legal ul{gap:6px;margin:0;padding-left:18px;display:grid}.front-points{gap:10px;margin:0;padding:0;list-style:none;display:grid}.front-points li{color:var(--fg-dim);border-left:3px solid var(--profile-active);padding-left:14px;font-size:15px;line-height:1.45}.front-points strong{color:var(--fg)}.link-button{min-height:0;color:var(--profile-active);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline;display:inline}.fireworks-overlay{pointer-events:none;z-index:50;width:100vw;height:100vh;position:fixed;top:0;bottom:0;left:0;right:0}.celebrate-icon{margin-top:6px;font-size:44px;line-height:1.2;animation:.7s cubic-bezier(.2,1.4,.4,1) both celebrate-in}.celebrate h1{animation:.7s cubic-bezier(.2,1.4,.4,1) .12s both celebrate-in}@keyframes celebrate-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.celebrate-icon,.celebrate h1{animation:none}}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/oswald-cyrillic-ext-700-normal-CtkJES1U.woff2)format("woff2"),url(/assets/oswald-cyrillic-ext-700-normal-VKAui8kQ.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/oswald-cyrillic-700-normal-BO0IwMyy.woff2)format("woff2"),url(/assets/oswald-cyrillic-700-normal-DxuP1Pb9.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/oswald-vietnamese-700-normal-_DkZZ6ID.woff2)format("woff2"),url(/assets/oswald-vietnamese-700-normal-BxFoeH7J.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/oswald-latin-ext-700-normal-BKErdSR5.woff2)format("woff2"),url(/assets/oswald-latin-ext-700-normal-CJSSDThd.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/oswald-latin-700-normal-vy6hmKSr.woff2)format("woff2"),url(/assets/oswald-latin-700-normal-UmC9Ev9x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-cyrillic-ext-400-normal-CKO3cWyd.woff2)format("woff2"),url(/assets/inter-tight-cyrillic-ext-400-normal-DiHHcP5k.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-cyrillic-400-normal-G7BuwYWK.woff2)format("woff2"),url(/assets/inter-tight-cyrillic-400-normal-DPRou3KO.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-greek-ext-400-normal-C3GMUg_S.woff2)format("woff2"),url(/assets/inter-tight-greek-ext-400-normal-DMqR5RoS.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-greek-400-normal-Br_GQm5W.woff2)format("woff2"),url(/assets/inter-tight-greek-400-normal-BLLSFQTx.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-vietnamese-400-normal-CqzIqjuX.woff2)format("woff2"),url(/assets/inter-tight-vietnamese-400-normal-kSDs3Vd1.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-latin-ext-400-normal-DN7wyBvd.woff2)format("woff2"),url(/assets/inter-tight-latin-ext-400-normal-BQQeeQrv.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2)format("woff2"),url(/assets/inter-tight-latin-400-normal-BLrFJfvD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-cyrillic-ext-600-normal-B4SKDMEv.woff2)format("woff2"),url(/assets/inter-tight-cyrillic-ext-600-normal-_3ga77Eo.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-cyrillic-600-normal-BERwQ0yl.woff2)format("woff2"),url(/assets/inter-tight-cyrillic-600-normal-BeTasGgk.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-greek-ext-600-normal-CiDI6ET5.woff2)format("woff2"),url(/assets/inter-tight-greek-ext-600-normal-5gKW7MDU.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-greek-600-normal-BIqmcc-q.woff2)format("woff2"),url(/assets/inter-tight-greek-600-normal-67HAlfW-.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-vietnamese-600-normal-FGgebaLI.woff2)format("woff2"),url(/assets/inter-tight-vietnamese-600-normal-BCXZ1BbA.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-latin-ext-600-normal-BgMgWFts.woff2)format("woff2"),url(/assets/inter-tight-latin-ext-600-normal-BvYdOF2O.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-latin-600-normal-BgSTtRxb.woff2)format("woff2"),url(/assets/inter-tight-latin-600-normal-D7bG6gX1.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-cyrillic-ext-700-normal-D_7NT8eF.woff2)format("woff2"),url(/assets/inter-tight-cyrillic-ext-700-normal-BFcoPt71.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-cyrillic-700-normal-DtWWjp29.woff2)format("woff2"),url(/assets/inter-tight-cyrillic-700-normal-DDZiLR3d.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-greek-ext-700-normal-D0RkHJEE.woff2)format("woff2"),url(/assets/inter-tight-greek-ext-700-normal-mW3dmpoD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-greek-700-normal-RgALSHS4.woff2)format("woff2"),url(/assets/inter-tight-greek-700-normal-DU8XoIeX.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-vietnamese-700-normal-Cn_DV52A.woff2)format("woff2"),url(/assets/inter-tight-vietnamese-700-normal-DwHBAXeT.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-latin-ext-700-normal-BpKPOkj3.woff2)format("woff2"),url(/assets/inter-tight-latin-ext-700-normal-CrlzIQ10.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-latin-700-normal-BZKd_v_8.woff2)format("woff2"),url(/assets/inter-tight-latin-700-normal-DvYAVZQd.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
