@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-hebrew-wght-normal-DdnsCkLr.woff2)format("woff2-variations");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-ext-wght-normal-CYrqKuxd.woff2)format("woff2-variations");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:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-wght-normal-DM6njrJ3.woff2)format("woff2-variations");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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");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}:root{--bg:#0b1210;--panel:#0e1612bd;--panel-solid:#111b16f0;--panel-border:#d6ffe21a;--text:#f1f7f2;--muted:#a3b5a9;--accent:#8fdc4a;--accent-hover:#a8ea6d;--accent-text:#102405;--ok:#34d399;--ok-text:#04221a;--warn:#ffb547;--font-display:"Fredoka Variable", "Nunito Variable", system-ui, sans-serif;color:var(--text);font-family:Nunito Variable,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3,.brand,.menu-title,.world-name,.profile-card-name,.route-card h3,.workout-card h3,.activity-name,.avatar,button.primary{font-family:var(--font-display);font-weight:600}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}#viewport{position:fixed;inset:0}#viewport canvas{display:block}[hidden],body.in-menu .hud,body:not(.riding) .hud{display:none!important}.panel{background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(8px);border-radius:14px;position:fixed}label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px;display:block}b{font-variant-numeric:tabular-nums;font-weight:700}small{color:var(--muted);margin-left:3px;font-size:12px}.metrics{grid-template-columns:1fr 1fr;gap:10px 18px;min-width:250px;padding:14px 18px;display:grid;top:16px;left:16px}.metrics[data-count="1"]{grid-template-columns:1fr;min-width:0}.metrics [role=button]{cursor:pointer;border-radius:10px;margin:-4px -8px;padding:4px 8px}.metrics [role=button]:hover,.metrics [role=button].picking{background:#ffffff14}.metrics [role=button]:focus-visible,.metrics [role=button].picking{outline:2px solid var(--accent);outline-offset:-2px}.metrics label{white-space:nowrap}.metrics .power[data-field=power] label{display:none}.metrics .power b{font-size:inherit;font-weight:800}.metrics .power label{margin-bottom:6px}.metrics .power{font-variant-numeric:tabular-nums;grid-column:1/-1;margin-bottom:2px;font-size:56px;font-weight:800;line-height:1}.metrics .power small{font-size:20px}.metrics>:not(.power) b{font-size:22px}.metrics[data-count="2"]>:not(.power) b{font-size:34px}.grade{font-variant-numeric:tabular-nums;background:var(--panel);border:1px solid var(--panel-border);border-radius:999px;padding:6px 16px;font-size:26px;font-weight:800;transition:background-color .4s;position:fixed;bottom:142px;right:16px}.stats{gap:10px;min-width:210px;padding:14px 18px;display:grid;top:16px;right:16px}.stats b{font-size:22px}.riders{border-top:1px solid var(--panel-border);gap:4px;padding-top:8px;font-size:13px;display:grid}.riders:empty{display:none}.riders div{justify-content:space-between;gap:12px;display:flex}.riders .me{font-weight:700}.riders i{border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.profile{height:110px;padding:6px;bottom:16px;left:16px;right:16px}.profile canvas{width:100%;height:100%;display:block}#workout-graph,body.workout-mode #profile{display:none}body.workout-mode #workout-graph{display:block}body.workout-mode .free-only,body.hud-layout-2.workout-mode .metrics,body.workout-mode .stats,body.workout-mode .grade,.w-clock{display:none}body.workout-mode .profile{gap:12px;display:flex}body.workout-mode .profile canvas{flex:1;min-width:0}body.workout-mode .w-clock{flex-direction:column;justify-content:center;min-width:84px;padding-left:10px;display:flex}.w-clock b{font-family:var(--font-display);font-size:24px;font-weight:600}.w-clock small{margin:0}.workout-column{box-sizing:border-box;background:#0e1612d1;flex-direction:column;gap:12px;width:min(380px,100vw - 32px);padding:14px;display:flex;top:16px;bottom:198px;left:16px;overflow:hidden}.wc-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.wc-tile{background:#ffffff0d;border:2px solid #0000;border-radius:12px;flex-direction:column;gap:4px;padding:10px 12px;transition:border-color .3s;display:flex}.wc-tile b{font-family:var(--font-display);font-size:50px;font-weight:600;line-height:1}.wc-tile small{font-family:Nunito Variable,system-ui,sans-serif;font-size:15px}.wc-target{background:color-mix(in srgb, var(--zone,#8a94a6) 18%, transparent);border-color:color-mix(in srgb, var(--zone,#8a94a6) 65%, transparent)}.workout-column[data-compliance=good] .wc-tile:first-child{border-color:var(--ok)}.workout-column[data-compliance=close] .wc-tile:first-child{border-color:var(--warn)}.workout-column[data-compliance=off] .wc-tile:first-child{border-color:#e5484d}.wc-metrics{color:var(--muted);grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;font-size:12px;display:grid}.wc-metrics b{color:var(--text);font-size:18px;display:block}.wc-step{background:#ffffff0f;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.wc-step-head{justify-content:space-between;align-items:center;font-size:15px;font-weight:800;display:flex}.wc-step-head b{font-family:var(--font-display);font-size:30px;font-weight:600;line-height:1}.wc-progress{background:#ffffff1a;border-radius:999px;height:8px;overflow:hidden}.wc-progress span{width:0;height:100%;display:block}.wc-step-foot{min-height:20px;color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.wc-controls{align-items:center;gap:8px;font-size:13px;display:flex}.wc-controls button{padding:5px 12px}.wc-controls [data-w=skip]{margin-left:auto}.wc-next-head{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:baseline;padding:0 2px;font-size:11px;font-weight:800;display:flex}.wc-next-head b{color:var(--text);letter-spacing:0;font-size:13px}.wc-list{flex-direction:column;flex:1;gap:4px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.wc-list li{background:#ffffff08;border-radius:8px;grid-template-columns:6px minmax(0,1fr) auto 48px;align-items:center;gap:10px;padding:7px 10px;font-size:14px;font-weight:700;display:grid}.wc-list li>span:first-of-type{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.wc-list li>span:nth-of-type(2){color:#c9d6cd;font-size:13px;font-weight:600}.wc-list li b{text-align:right;font-size:13px}.wc-list i{border-radius:3px;width:6px;height:24px}.wc-list .wc-last{color:var(--muted);display:block}@media (height<=680px){.wc-next-head,.wc-list{display:none}}.step-card{background:#0e1612d1;flex-direction:column;gap:10px;width:min(420px,100vw - 32px);padding:14px 18px 16px;display:flex;top:16px;left:50%;transform:translate(-50%)}.sc-head{align-items:center;gap:8px;display:flex}.sc-zone{border-radius:6px;padding:2px 8px;font-size:12px;font-weight:800}.sc-label{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.06em;text-transform:uppercase;flex:1;min-width:0;font-size:14px;font-weight:800;overflow:hidden}.sc-main{justify-content:space-between;align-items:flex-end;display:flex}.sc-target,.sc-remaining b{font-family:var(--font-display);font-weight:600;line-height:1}.sc-target{font-size:56px}.sc-target small{font-family:Nunito Variable,system-ui,sans-serif;font-size:18px}.sc-remaining{text-align:right}.sc-remaining b{font-size:40px}.step-card .wc-controls [data-w=skip]{margin-left:auto}.step-list{background:#0e1612cc;flex-direction:column;gap:8px;width:330px;max-height:calc(100vh - 158px);padding:14px 14px 12px;display:flex;top:16px;right:16px}.sl-head{justify-content:space-between;align-items:flex-start;gap:8px;padding:0 4px 4px;display:flex}.sl-head>div{min-width:0;color:var(--muted);flex-direction:column;gap:2px;font-size:12px;display:flex}#wa-title{font-family:var(--font-display);color:var(--text);font-size:18px;font-weight:600}.sl-left{flex-shrink:0;align-items:flex-end}.sl-left b{color:var(--text);font-size:18px;font-weight:800}.sl-done{color:var(--muted);padding:2px 8px;font-size:12px}.sl-done:before{content:"✓ ";color:var(--accent);font-weight:800}.sl-rows{flex-direction:column;gap:6px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.sl-rows li{background:#ffffff08;border-radius:10px;flex-shrink:0;align-items:center;gap:10px;padding:8px 12px;display:flex;position:relative}.sl-rows li i{text-align:center;border-radius:6px;min-width:20px;padding:2px 7px;font-size:11px;font-style:normal;font-weight:800}.sl-rows li>span{flex-direction:column;flex:1;min-width:0;font-size:14px;font-weight:700;display:flex}.sl-rows li small{white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.sl-rows li b{font-size:14px}.sl-rows .sl-current{background:linear-gradient(90deg, #ffffff24 var(--progress,0%), #ffffff0f var(--progress,0%));border:1px solid #ffffff40;padding:10px 12px}.sl-rows .sl-current>span{font-size:15px;font-weight:800}.sl-rows .sl-current b{font-family:var(--font-display);font-size:22px;font-weight:600}@media (width<=1100px){.step-list{display:none!important}}.workout-panel{text-align:center;border-width:2px;width:min(380px,100vw - 32px);padding:12px 16px;transition:border-color .3s;top:16px;left:50%;transform:translate(-50%)}.workout-panel[data-compliance=good]{border-color:var(--ok)}.workout-panel[data-compliance=close]{border-color:var(--warn)}.workout-panel[data-compliance=off]{border-color:#e5484d}.w-head{text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;display:flex}.w-chips{gap:6px;display:flex}.w-cadence{text-transform:none;background:#ffffff1f;border-radius:999px;padding:2px 8px;font-size:11px}.w-cadence[data-compliance=good]{background:var(--ok);color:var(--ok-text)}.w-cadence[data-compliance=close]{background:var(--warn);color:#2b1a00}.w-cadence[data-compliance=off]{color:#fff;background:#e5484d}.w-erg{background:var(--ok);color:var(--ok-text);border-radius:999px;padding:2px 8px;font-size:11px}.w-erg.off{background:var(--warn);color:#2b1a00}.w-target{justify-content:center;align-items:baseline;gap:4px;margin:4px 0;display:flex}.w-target b{font-size:52px;line-height:1}.w-remaining{font-variant-numeric:tabular-nums;margin-left:16px;font-size:26px;font-weight:700}.w-next{color:var(--muted);font-size:13px}.w-controls{justify-content:center;align-items:center;gap:8px;margin-top:8px;font-size:13px;display:flex}.w-controls button{padding:5px 12px}.hud-buttons{z-index:15;gap:8px;display:flex;position:fixed;bottom:142px;left:16px}.icon-button{background:var(--panel);width:44px;height:44px;padding:0;font-size:20px}.icon-button.text{letter-spacing:.04em;width:auto;min-width:52px;padding:0 12px;font-size:13px;font-weight:800}#btn-erg.on,#btn-res.on,.mode-switch #mode-erg.on,.mode-switch #mode-res.on{background:var(--ok);color:var(--ok-text);border-color:#0000}button,.button{appearance:none;border:1px solid var(--panel-border);color:var(--text);font:inherit;text-transform:none;letter-spacing:0;cursor:pointer;background:#ffffff1a;border-radius:10px;padding:9px 14px;font-size:14px;font-weight:600}button:hover:not(:disabled),.button:hover{background:#ffffff2e}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);color:var(--accent-text);border-color:#0000;padding:12px 28px;font-size:17px}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.link{color:var(--muted);background:0 0;border:none;text-decoration:underline}.setup{z-index:12;width:330px;padding:6px 18px 18px;transition:transform .25s;top:16px;bottom:142px;left:16px;overflow-y:auto;transform:translate(calc(-100% - 24px))}.setup.open{transform:none}.setup h2{letter-spacing:.08em;text-transform:uppercase;margin:18px 0 8px;font-size:13px}.setup p{margin:6px 0;font-size:13px}.setup .row{margin-bottom:8px}.row{flex-wrap:wrap;gap:8px;display:flex}.row.center{justify-content:center}.field{text-transform:none;letter-spacing:0;color:var(--text);justify-content:space-between;align-items:center;gap:10px;margin:8px 0;font-size:13px;display:flex}.field span{align-items:center;gap:6px;display:flex}.field input[type=range]{accent-color:var(--accent);flex:1}output{text-align:right;font-variant-numeric:tabular-nums;min-width:48px}.muted{color:var(--muted)}.warning{color:var(--warn);text-align:center;max-width:720px;margin:16px auto 0}.overlay{z-index:10;background:#060b0959;place-items:center;display:grid;position:fixed;inset:0}.card{background:var(--panel-solid);border:1px solid var(--panel-border);text-align:center;border-radius:18px;max-width:min(460px,100vw - 32px);padding:28px 36px}.card h1{margin:0 0 4px;font-size:32px}.card .hint{color:var(--muted);margin-top:18px;font-size:12px}.card dl{text-align:left;grid-template-columns:auto auto;gap:6px 20px;width:fit-content;margin:18px auto 22px;display:grid}.card dt{color:var(--muted)}.card dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.toast{background:var(--panel-solid);border:1px solid var(--panel-border);z-index:30;text-align:center;border-radius:10px;max-width:min(640px,100vw - 32px);padding:10px 16px;font-size:14px;position:fixed;bottom:150px;left:50%;transform:translate(-50%)}.screens{z-index:20;-webkit-backdrop-filter:blur(3px);background:linear-gradient(#070d0a8c 0%,#070d0adb 100%);position:fixed;inset:0;overflow-y:auto}.screen{max-width:1040px;margin:0 auto;padding:48px 24px 64px}.screen-head{text-align:center;margin-bottom:32px;position:relative}.screen-head h1{margin:8px 0 6px;font-size:36px}.screen-head .back{position:absolute;top:0;left:0}.brand{letter-spacing:.3em;text-transform:uppercase;color:var(--accent);font-size:15px;font-weight:800}.brand span{color:var(--text)}.screen-actions{justify-content:center;margin-top:32px;display:flex}.tiles{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.tile{background:var(--panel-solid);border:2px solid var(--panel-border);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:6px;padding:28px 22px 22px;transition:border-color .3s;display:flex;position:relative}.tile.connected{border-color:var(--ok)}.tile .badge{text-transform:uppercase;letter-spacing:.08em;background:var(--accent);color:var(--accent-text);border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700;position:absolute;top:12px;right:12px}.tile .badge.optional{color:var(--muted);background:#ffffff1f}.tile-icon{font-size:40px}.tile h3{margin:4px 0 0;font-size:19px}.tile-hint{color:var(--muted);min-height:3.6em;margin:0;font-size:13px}.tile-status{margin:6px 0 0;font-size:14px;font-weight:600}.tile.connected .tile-status{color:var(--ok)}.tile-value{font-variant-numeric:tabular-nums;min-height:1.4em;margin:0;font-size:15px}.tile button{min-width:140px;margin-top:auto}.menu-cards{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.menu-card{text-align:left;background:var(--panel-solid);border:2px solid var(--panel-border);border-radius:18px;flex-direction:column;align-items:flex-start;gap:8px;padding:28px 24px;transition:transform .15s,border-color .15s;display:flex}.menu-card:hover:not(:disabled){border-color:var(--accent);background:var(--panel-solid);transform:translateY(-3px)}.menu-icon{font-size:40px}.menu-title{font-size:22px;font-weight:800}.menu-text{color:var(--muted);font-size:14px;font-weight:400}.world-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;display:grid}.world-card{text-align:left;cursor:pointer;color:#fff;text-shadow:0 1px 6px #00000080;border:2px solid #0000;border-radius:18px;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:6px;min-height:210px;padding:20px;transition:transform .15s,border-color .15s;display:flex;position:relative;overflow:hidden}.world-card:before{content:"";background:linear-gradient(#0000 30%,#0000008c 100%);position:absolute;inset:0}.world-card>*{position:relative}.world-card:hover:not(:disabled){border-color:#fff;transform:translateY(-3px)}.world-card:disabled{opacity:1;cursor:default;filter:saturate(.55)brightness(.8)}.world-icon{font-size:44px;top:16px;right:18px;position:absolute!important}.world-name{font-size:21px;font-weight:800}.world-text{opacity:.9;font-size:13px;font-weight:400}.world-badge{background:var(--accent);color:var(--accent-text);text-shadow:none;border-radius:999px;margin-top:6px;padding:4px 10px;font-size:12px;font-weight:700}.world-card:disabled .world-badge{color:#fff;background:#00000073}.world-gpx{background:var(--panel-solid);border:2px dashed var(--panel-border);text-transform:none;letter-spacing:0;font-size:14px}.world-gpx:before{display:none}.workout-list{gap:16px;display:grid}.workout-card{background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:18px;grid-template-columns:1fr 280px auto;align-items:center;gap:20px;padding:20px 24px;display:grid}.workout-card h3{margin:0 0 4px;font-size:20px}.workout-card p{margin:4px 0;font-size:14px}.workout-meta{font-variant-numeric:tabular-nums;font-weight:700}.workout-preview{background:#ffffff0a;border-radius:8px;width:100%;height:60px}.profile-form{grid-template-columns:1fr 1fr;gap:16px 20px;max-width:560px;margin:0 auto;display:grid}.profile-form label{gap:6px;display:grid}.profile-form input,.profile-form select{font:inherit;border:1px solid var(--panel-border);color:var(--text);text-transform:none;letter-spacing:0;background:#00000059;border-radius:10px;padding:10px 12px;font-size:16px}.profile-form .zones,.profile-form .screen-actions{grid-column:1/-1}.zones{background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:14px;gap:6px;padding:14px 18px;display:grid}.zones h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:13px}.zone{grid-template-columns:14px 1fr auto;align-items:center;gap:10px;font-size:14px;display:grid}.zone i{border-radius:3px;width:12px;height:12px}.zone b{font-variant-numeric:tabular-nums}@media (width<=760px){.metrics{min-width:0;padding:10px 12px}.metrics .power{font-size:38px}.metrics>:not(.power) b,.metrics[data-count="2"]>:not(.power) b,.stats b{font-size:17px}.grade{font-size:22px}.stats{min-width:0;padding:10px 12px}.setup{width:calc(100vw - 32px)}.tiles,.menu-cards,.workout-card,.profile-form{grid-template-columns:1fr}.screen-head .back{margin-bottom:12px;position:static}.workout-panel{top:auto;bottom:190px}}.menu-cards.secondary{grid-template-columns:repeat(2,1fr);margin-top:18px}.menu-card.small{flex-direction:row;align-items:center;gap:16px;padding:18px 22px}.menu-card.small .menu-icon{font-size:30px}.menu-card.small .menu-title{font-size:18px}.menu-card.small>span:not(.menu-icon){display:block}.menu-card.small .menu-text{display:none}.settings-form{gap:18px;max-width:720px;margin:0 auto;display:grid}.settings-form fieldset{border:1px solid var(--panel-border);background:var(--panel-solid);border-radius:16px;margin:0;padding:8px 20px}.settings-form legend{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 6px;font-size:12px;font-weight:700}.setting{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;gap:20px;padding:14px 0;display:flex}.setting:last-child{border-bottom:none}.setting>span:first-child{gap:3px;display:grid}.setting b{font-size:15px}.setting small{margin:0;font-size:13px}.segmented{border:1px solid var(--panel-border);background:#00000059;border-radius:10px;flex-shrink:0;padding:3px;display:inline-flex}.segmented label{text-transform:none;letter-spacing:0;color:var(--text);cursor:pointer;font-size:14px}.segmented input{opacity:0;pointer-events:none;position:absolute}.segmented span{white-space:nowrap;border-radius:8px;padding:7px 12px;display:block}.segmented input:checked+span{background:var(--accent);color:var(--accent-text);font-weight:700}.segmented input:focus-visible+span{outline-offset:1px;outline:2px solid #fff}.range{align-items:center;gap:10px;display:flex}.range input{accent-color:var(--accent);width:180px}.switch{flex-shrink:0;width:48px;height:28px;position:relative}.switch input{opacity:0;cursor:pointer;z-index:1;margin:0;position:absolute;inset:0}.switch span{background:#ffffff2e;border-radius:999px;transition:background .2s;position:absolute;inset:0}.switch span:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:after{transform:translate(20px)}.switch input:focus-visible+span{outline-offset:2px;outline:2px solid #fff}.settings-form select{font:inherit;border:1px solid var(--panel-border);color:var(--text);background:#00000059;border-radius:10px;padding:8px 12px;font-size:15px}.activity-list{gap:12px;max-width:820px;margin:0 auto;display:grid}.activity-list .empty{text-align:center;color:var(--muted)}.activity-card{text-align:left;background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:16px;gap:6px;padding:16px 20px;display:grid}.activity-card:hover:not(:disabled){border-color:var(--accent);background:var(--panel-solid)}.activity-card-head{color:var(--muted);justify-content:space-between;font-size:12px;font-weight:600;display:flex}.activity-kind{text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.activity-name{font-size:18px;font-weight:800}.activity-card-stats{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:4px;display:grid}.activity-card-stats span{display:grid}.activity-card-stats small{margin:0}.activity-card-stats b{font-size:16px}.screen.wide{max-width:1180px}.activity-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin:-12px 0 24px;display:flex}button.danger{color:#ff8b8b;border-color:#ff8b8b66}.stat-tiles{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:18px;display:grid}.stat-tile{background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:14px;gap:4px;padding:12px 14px;display:grid}.stat-label{color:var(--muted);font-size:12px}.stat-value{font-size:22px;font-weight:700}.viz-card{background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:16px;min-width:0;margin-bottom:18px;padding:16px 18px}.viz-card h2{margin:0 0 4px;font-size:16px}.viz-card .small{margin:0 0 10px;font-size:13px}.viz-row{grid-template-columns:1fr 1fr;gap:18px;display:grid}.ts-stack{border-radius:10px;outline:none;position:relative}.ts-stack:focus-visible{box-shadow:0 0 0 2px #fff9}.ts-panel+.ts-panel{margin-top:6px}.ts-head{justify-content:space-between;align-items:center;padding-left:44px;font-size:13px;display:flex}.ts-title{color:var(--text);font-weight:600}.ts-legend{color:var(--muted);gap:14px;font-size:12px;display:flex}.ts-legend i,.chart-tooltip i{vertical-align:middle;border-radius:1px;width:14px;height:2px;margin-right:6px;display:inline-block}.ts-canvas{touch-action:none;width:100%;height:86px;display:block}.ts-canvas.with-axis{height:104px}.chart-tooltip{pointer-events:none;border:1px solid var(--panel-border);z-index:2;background:#080e0bf2;border-radius:10px;min-width:150px;padding:8px 10px;font-size:13px;position:absolute;top:24px}.tt-time{color:var(--muted);margin-bottom:4px;font-size:12px}.tt-row{white-space:nowrap;grid-template-columns:20px auto 1fr;align-items:center;gap:4px;display:grid}.tt-row b{font-variant-numeric:tabular-nums}.tt-row span{color:var(--muted);margin-left:6px}.curve-wrap{border-radius:10px;outline:none;position:relative}.curve-wrap:focus-visible{box-shadow:0 0 0 2px #fff9}.curve-canvas{touch-action:none;width:100%;height:220px;display:block}.zone-bars{gap:10px;margin-top:12px;display:grid}.zone-bar{border-radius:6px;outline:none;grid-template-columns:130px 1fr;align-items:center;gap:10px;font-size:13px;display:grid}.zone-bar:hover .zone-bar-fill,.zone-bar:focus-visible .zone-bar-fill{filter:brightness(1.15)}.zone-bar:focus-visible{box-shadow:0 0 0 2px #fff9}.zone-bar-label{color:var(--text)}.zone-bar-track{align-items:center;gap:8px;min-width:0;display:flex}.zone-bar-fill{border-radius:0 4px 4px 0;min-width:2px;max-width:calc(100% - 92px);height:18px}.zone-bar-value{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:12px;font-size:13px}.data-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--panel-border);padding:6px 8px;font-weight:600}.data-table td{border-bottom:1px solid #ffffff0a;padding:6px 8px}.w-zone{border-radius:6px;align-self:center;margin-right:6px;padding:3px 7px;font-size:12px;font-weight:800}@media (width<=760px){.menu-cards.secondary,.viz-row{grid-template-columns:1fr}.setting{flex-direction:column;align-items:flex-start}.activity-card-stats{grid-template-columns:repeat(2,1fr)}}.route-list{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.route-card{background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:18px;flex-direction:column;gap:10px;padding:20px;display:flex}.route-head{align-items:center;gap:12px;display:flex}.route-icon{font-size:34px}.route-kind{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:700}.route-card h3{margin:2px 0 0;font-size:19px}.route-text{min-height:3.6em;margin:0;font-size:14px}.route-profile{background:#ffffff0a;border-radius:8px;width:100%;height:72px}.route-stats{grid-template-columns:1fr 1fr;gap:8px 12px;display:grid}.route-stats span{display:grid}.route-stats small{margin:0}.route-stats b{font-size:17px}.route-card button{margin-top:auto}.pedal-hint{color:var(--accent);margin:18px 0 4px;font-size:18px;font-weight:700;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.pedal-hint{animation:none}}.end-button{color:#ff9b9e;border-color:#e5484d99}.end-button.armed{color:#fff;background:#e5484d;border-color:#0000}@media (width<=760px){.route-list{grid-template-columns:1fr}}.remember-hint{text-align:center;max-width:720px;margin:16px auto 0;font-size:13px}.dev-badge{z-index:40;color:#2b2200;letter-spacing:.04em;pointer-events:none;background:#ffd23f;border-radius:0 0 8px 8px;padding:3px 12px;font-size:11px;font-weight:800;position:fixed;top:0;left:50%;transform:translate(-50%)}.photo-flash{opacity:0;pointer-events:none;z-index:25;background:#fff;position:fixed;inset:0}.photo-flash.on{animation:.45s ease-out flash}@keyframes flash{0%{opacity:.55}to{opacity:0}}@media (prefers-reduced-motion:reduce){.photo-flash.on{animation:none}}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.photo-thumb img{aspect-ratio:16/9;object-fit:cover;border-radius:10px;width:100%;display:block}.photo-thumb:hover img,.photo-thumb:focus-visible img{outline:2px solid #fff}.strava-box{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:0 auto 18px;display:flex}.strava-box:empty{display:none}.strava-box p{flex-basis:100%;margin:0}button.strava-button{color:#fff;background:#fc4c02;border-color:#0000;font-weight:700}button.strava-button:hover:not(:disabled){background:#e34402}.strava-done{color:var(--ok);font-weight:700}.strava-link{color:#fc4c02;font-weight:700}.strava-note,.small{font-size:13px}body.hud-hide-metrics .metrics,body.hud-hide-stats .stats,body.hud-hide-riders .riders,body.hud-hide-grade .grade,body.hud-hide-profile .profile,body.hud-hide-steps .step-list{display:none!important}body.hud-hide-profile .hud-buttons,body.hud-hide-profile .grade{bottom:16px}body.hud-hide-profile .step-list{max-height:calc(100vh - 32px)}body.hud-hide-profile .setup{bottom:72px}.field-picker{z-index:14;width:230px;max-height:calc(100vh - 32px);padding:8px;overflow-y:auto}.field-picker h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:8px 8px 4px;font-size:11px}.field-picker button{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:7px 10px;font-size:14px;display:block}.field-picker button:hover{background:#ffffff14}.field-picker button[aria-pressed=true]{background:var(--accent);color:var(--accent-text);font-weight:700}.layout-picker{grid-template-columns:repeat(6,48px);gap:8px;display:grid}.layout-picker button{aspect-ratio:3/4;border:1px solid var(--panel-border);cursor:pointer;background:#00000040;border-radius:10px;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:3px;padding:5px;display:grid}.layout-picker button i{background:#ffffff40;border-radius:3px}.layout-picker button i.wide{grid-column:1/-1}.layout-picker button[aria-pressed=true]{border-color:var(--accent)}.layout-picker button[aria-pressed=true] i{background:var(--accent)}.hud-editor{gap:6px;padding-bottom:8px;display:grid}.hud-editor h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:10px 0 2px;font-size:12px}.hud-row{text-transform:none;letter-spacing:0;min-height:36px;color:var(--text);justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.hud-mode{color:var(--muted);margin-top:-4px}.hud-row select{font:inherit;border:1px solid var(--panel-border);min-width:150px;color:var(--text);background:#00000059;border-radius:10px;padding:6px 10px;font-size:14px}.hud-reset{justify-self:start;margin-top:6px}.setup{flex-direction:column;gap:4px;padding:14px 18px 16px;display:flex;bottom:198px}.menu-block{border-bottom:1px solid var(--panel-border);padding-bottom:10px}.menu-block h2{margin:4px 0 8px}.menu-block #menu-title{letter-spacing:0;text-transform:none;margin-bottom:2px;font-size:16px}.menu-block>p{margin:0 0 8px}.menu-grid{grid-template-columns:1fr 1fr;gap:8px 14px;margin:0;display:grid}.menu-grid dt{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:11px}.menu-grid dd{font-variant-numeric:tabular-nums;margin:1px 0 0;font-size:15px;font-weight:700}.menu-grid.single{grid-template-columns:1fr}.menu-grid.single>dd{font-size:14px}.zone-strip{background:#ffffff0f;border-radius:4px;gap:2px;height:14px;display:flex;overflow:hidden}.zone-strip span{min-width:3px}.zone-legend{color:var(--muted);font-variant-numeric:tabular-nums;grid-template-columns:repeat(4,auto);justify-content:start;gap:4px 12px;margin-top:8px;font-size:12px;display:grid}.zone-legend i{border-radius:2px;width:8px;height:8px;margin-right:5px;display:inline-block}.menu-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.erg-row{justify-content:center;align-items:center;gap:6px;margin:6px 0 2px;display:flex}.erg-row button{padding:6px 10px}.erg-row .w-target{margin:0 8px}.typeable{cursor:text;border-radius:8px;padding:0 4px}.typeable:hover,.typeable:focus-visible{background:#ffffff14;outline:none}.typeable-input{width:3.4ch;font:inherit;text-align:center;color:var(--text);border:2px solid var(--accent);appearance:textfield;background:#00000059;border-radius:8px;outline:none;padding:0 4px;font-size:52px;font-weight:800;line-height:1}.typeable-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.typeable-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}body.workout-mode .res-panel{top:auto;bottom:142px}.mode-switch{margin-bottom:10px;display:flex}.mode-switch button{background:0 0;border:none;border-radius:8px;flex:1;padding:7px 12px}.mode-switch button.on{background:var(--accent);color:var(--accent-text);font-weight:700}.menu-block-head{justify-content:space-between;align-items:baseline;display:flex}.menu-block-head button.link{padding:0;font-size:13px}.gear-box{border-radius:999px;align-items:center;gap:6px;padding:4px;display:flex;position:fixed;bottom:142px;right:130px}.gear-box button{border-radius:50%;width:36px;height:36px;padding:0;font-size:14px}.gear-value{font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;padding:0 4px;display:flex}.gear-value small{text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:10px}.gear-value b{text-align:right;min-width:1.4em;font-size:24px}.gear-value span{color:var(--muted);font-size:13px}.gear-box.calibrating .gear-value b{color:var(--muted)}.setting.disabled{opacity:.5}.tabs{border:1px solid var(--panel-border);background:#00000059;border-radius:12px;justify-content:center;gap:4px;max-width:720px;margin:0 auto 22px;padding:4px;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-radius:9px;flex:1;padding:9px 12px}.tabs button:hover:not(.active){color:var(--text);background:#ffffff14}.tabs button.active{background:var(--accent);color:var(--accent-text);font-weight:700}.tab-panel>legend{display:none}.settings-form fieldset.tab-panel{padding-top:8px}.tab-panel .profile-form{max-width:720px}.menu-cards.secondary.single{grid-template-columns:1fr;max-width:340px;margin-left:auto;margin-right:auto}@media (width<=760px){.tabs{justify-content:flex-start;overflow-x:auto}.tabs button{flex:none}}.profile-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;max-width:900px;margin:0 auto;display:grid}.profile-card{background:var(--panel-solid);border:2px solid var(--panel-border);border-radius:18px;flex-direction:column;align-items:center;gap:8px;padding:26px 16px 22px;transition:transform .15s,border-color .15s;display:flex}.profile-card:hover:not(:disabled){border-color:var(--accent);background:var(--panel-solid);transform:translateY(-3px)}.profile-card.add,.profile-card.guest-card{border-style:dashed}.profile-card-name{font-size:18px;font-weight:800}.profile-card-text{color:var(--muted);text-align:center;min-height:1.3em;font-size:13px;font-weight:400}.avatar{color:#fff;text-shadow:0 1px 3px #00000059;background:#ffffff1f;border-radius:50%;place-items:center;width:72px;height:72px;font-size:26px;font-weight:800;display:grid}.avatar.small{vertical-align:middle;width:26px;height:26px;margin-right:6px;font-size:11px;display:inline-grid}.profile-card.add .avatar{font-size:38px;font-weight:400}.home-profile{color:var(--muted);margin:8px 0 0}.home-profile button.link{font-size:inherit;padding:0}.link-button{cursor:pointer;color:var(--muted);text-transform:none;letter-spacing:0;font-size:14px;text-decoration:underline}.swatches{gap:10px;margin-top:6px;display:flex}.swatch{border:3px solid #0000;border-radius:50%;width:32px;height:32px;padding:0}.swatch[aria-pressed=true]{border-color:#fff;box-shadow:0 0 0 2px #0006}.field-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px}.profile-form .wide{grid-column:1/-1}.profile-data{background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:16px;max-width:720px;margin:22px auto 0;padding:8px 20px}.profile-data h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:8px 0 0;font-size:12px}.profile-guest-hint{text-align:center;margin-top:20px}.guest-banner{z-index:2;text-align:center;color:#2b2200;background:#f2c230;padding:9px 16px;font-size:14px;font-weight:600;position:sticky;top:0}body:not(.guest) .guest-only,body.guest .not-guest{display:none!important}.menu-cards{grid-template-columns:repeat(4,1fr)}.calendar-bar{justify-content:center;align-items:center;gap:12px;margin-bottom:16px;display:flex}.calendar-bar h2{text-align:center;text-transform:capitalize;min-width:220px;margin:0;font-size:22px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal-weekday{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-bottom:4px;font-size:12px;font-weight:700}.cal-day{text-align:left;background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:10px;flex-direction:column;align-items:stretch;gap:4px;min-height:96px;padding:6px;display:flex;overflow:hidden}.cal-day:hover:not(:disabled){border-color:var(--accent);background:var(--panel-solid)}.cal-day.other-month{opacity:.45}.cal-day.today{border:2px solid var(--accent)}.cal-num{font-size:13px;font-weight:700}.cal-chip{white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:3px 6px;font-size:11px;font-weight:600;display:block;overflow:hidden}.cal-chip.planned{color:var(--text);border-left:3px solid var(--accent);background:#8fdc4a2e}.cal-chip.planned.done{border-left-color:var(--ok);background:#34d39933}.cal-chip.ride{color:var(--muted);background:#ffffff14}.day-dialog{border:1px solid var(--panel-border);background:var(--panel-solid);width:min(520px,100vw - 32px);color:var(--text);border-radius:18px;padding:22px 24px}.day-dialog::backdrop{background:#060b0999}.day-dialog h2{text-transform:capitalize;margin:0 0 14px}.day-row{border-bottom:1px solid var(--panel-border);align-items:center;gap:8px;padding:8px 0;display:flex}.day-row>span,.day-row>button.link{text-align:left;flex:1}.day-row button.primary{padding:7px 14px;font-size:14px}.day-add{gap:8px;margin:16px 0;display:flex}.day-add select{font:inherit;border:1px solid var(--panel-border);color:var(--text);background:#00000059;border-radius:10px;flex:1;padding:8px 10px}.day-add button.primary{padding:8px 14px;font-size:14px}.today-plan{background:#8fdc4a1f;border:1px solid #8fdc4a73;border-radius:14px;justify-content:center;align-items:center;gap:16px;max-width:640px;margin:-12px auto 24px;padding:12px 18px;display:flex}.today-label{font-weight:700}.today-plan button.primary{padding:8px 18px;font-size:15px}.import-row{margin:-14px 0 18px}.workout-buttons{flex-direction:column;gap:8px;display:flex}.imported-badge{vertical-align:middle;color:var(--muted);background:#ffffff1f;border-radius:999px;padding:2px 8px;font-family:Nunito Variable,system-ui,sans-serif;font-size:11px;font-weight:700}@media (width<=900px){.menu-cards{grid-template-columns:repeat(2,1fr)}.cal-day{min-height:64px}.cal-chip{font-size:10px}}.import-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.route-picker{align-items:center;gap:10px;font-weight:700;display:flex}.route-picker select{font:inherit;border:1px solid var(--panel-border);background:var(--panel-solid);color:var(--text);border-radius:10px;padding:8px 10px;font-weight:600}.perf-overlay{z-index:50;color:#b8f28a;pointer-events:none;background:#000000b8;border-radius:8px;margin:0;padding:8px 10px;font:12px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;position:fixed;bottom:120px;left:8px}.real-toggle{max-width:900px;color:var(--muted);align-items:center;gap:8px;margin:14px auto 0;font-size:14px;display:flex}.map-credits{z-index:5;color:#ffffffbf;text-shadow:0 1px 2px #0009;pointer-events:none;font-size:10px;position:fixed;bottom:4px;right:12px}.category-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.category-card{text-align:left;background:var(--panel-solid);border:2px solid var(--panel-border);border-radius:18px;flex-direction:column;align-items:flex-start;gap:6px;min-height:170px;padding:22px 22px 18px;transition:transform .15s,border-color .15s;display:flex;position:relative;overflow:hidden}.category-card:before{content:"";background:var(--zone);height:6px;position:absolute;inset:0 0 auto}.category-card:hover{border-color:var(--zone);background:var(--panel-solid);transform:translateY(-3px)}.category-icon{font-size:34px}.category-name{font-size:21px;font-weight:800}.category-text{color:var(--muted);flex:1;font-size:13px}.category-count{background:color-mix(in srgb, var(--zone) 25%, transparent);color:var(--text);border-radius:999px;margin-top:4px;padding:3px 10px;font-size:12px;font-weight:700}.workout-list .workout-card{border-left:5px solid var(--zone,var(--panel-border))}.workout-add{cursor:pointer;text-transform:none;letter-spacing:0;color:var(--text);grid-template-columns:auto 1fr;transition:border-color .15s;border:2px dashed var(--panel-border)!important}.workout-add:hover{border-color:var(--accent)!important}.workout-add-plus{background:var(--accent);width:56px;height:56px;color:var(--accent-text);border-radius:14px;place-items:center;font-size:34px;font-weight:800;display:grid}.setup-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:26px 0 10px;font-size:16px}.choice-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.choice-grid.worlds{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.choice-grid.atmospheres{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.choice-tile{aspect-ratio:1;text-align:center;background:var(--panel-solid);border:2px solid var(--panel-border);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:12px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;position:relative}.choice-tile:hover{border-color:var(--accent);background:var(--panel-solid);transform:translateY(-2px)}.choice-tile.selected{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent)}.choice-tile.selected:after{content:"✓";background:var(--accent);width:24px;height:24px;color:var(--accent-text);text-shadow:none;border-radius:50%;place-items:center;font-size:14px;font-weight:800;display:grid;position:absolute;top:8px;right:10px}.choice-icon{font-size:34px}.choice-title{font-size:15px;font-weight:800}.choice-text{color:var(--muted);font-size:12px}.choice-text:empty{display:none}.world-tile{aspect-ratio:4/3;color:#fff;text-shadow:0 1px 6px #0000008c}.world-tile .choice-icon{font-size:48px}.world-tile .choice-title{font-size:19px}.world-tile .choice-text{color:#ffffffe6}.world-tile:not(.selected){filter:saturate(.7)brightness(.85)}.world-tile:hover{filter:none;border-color:#fff}button.primary.big{padding:14px 40px;font-size:18px}@media (width<=900px){.category-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.category-grid{grid-template-columns:1fr}.category-card{min-height:0}}.screen-head h1:focus{outline:none}@media (width<=600px){.choice-grid.worlds{grid-template-columns:repeat(2,1fr)}.choice-grid.worlds .world-tile{aspect-ratio:1}}.editor-meta{grid-template-columns:2fr 1fr;gap:12px 16px;margin-bottom:18px;display:grid}.editor-meta .editor-field:last-child{grid-column:1/-1}.editor-field{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);flex-direction:column;gap:6px;font-size:12px;font-weight:700;display:flex}.editor-field input,.editor-field textarea{font:inherit;text-transform:none;letter-spacing:0;color:var(--text);border:1px solid var(--panel-border);background:var(--panel-solid);resize:vertical;border-radius:10px;padding:9px 12px;font-size:15px;font-weight:600}.editor-field input.invalid{border-color:#e5484d}.field-with-hint{flex-direction:column;gap:4px;display:flex}.field-error{color:#ff8a8d;text-transform:none;letter-spacing:0;font-size:11px}.editor-toolbar{background:var(--panel-solid);border:1px solid var(--panel-border);border-bottom:none;border-radius:14px 14px 0 0;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;display:flex}.editor-toolbar button{padding:7px 12px;font-size:13px}.editor-toolbar .zone-add{border:none;min-width:40px;font-weight:800}.editor-toolbar-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-right:4px;font-size:12px;font-weight:700}.editor-toolbar-spacer{flex:1}.timeline{border:1px solid var(--panel-border);-webkit-user-select:none;user-select:none;touch-action:none;background:#080c0aeb;position:relative;overflow-x:auto}.timeline svg{display:block}.timeline-step polygon{cursor:pointer;opacity:.88;stroke:#080c0ae6;stroke-width:1px}.timeline-step:hover polygon{opacity:1}.timeline-step.selected polygon{opacity:1;stroke:#fff;stroke-width:2.5px}.timeline-handle{stroke:#0000;stroke-width:12px}.timeline-handle.side{cursor:ew-resize}.timeline-handle.top{cursor:ns-resize}.timeline-handles.selected .timeline-handle.side,.timeline-handle:hover{stroke:#ffffff59;stroke-width:4px}.timeline.dragging,.timeline.dragging *{cursor:grabbing}.timeline-text{fill:#0a0e0cd9;pointer-events:none;font-size:11px;font-weight:700}.timeline-text.strong{fill:var(--text);font-size:12px}.timeline-ftp{stroke:#ffffff59;stroke-dasharray:4 4}.timeline-ftp-label,.timeline-tick{fill:var(--muted);font-size:10px}.timeline-axis{stroke:#fff3}.timeline-empty{pointer-events:none;place-items:center;margin:0;display:grid;position:absolute;inset:0}.editor-summary{background:var(--panel-solid);border:1px solid var(--panel-border);border-top:none;border-radius:0 0 14px 14px;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:10px 14px;display:flex}.editor-summary>span:not(.muted){flex-direction:column;display:flex}.editor-summary small{color:var(--muted);font-size:11px}.editor-summary b{font-variant-numeric:tabular-nums;font-size:17px}.editor-shortcuts{margin-left:auto;font-size:11px}.editor-panel{background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:14px;margin-top:16px;padding:16px 18px}.editor-panel h2{margin:0 0 12px;font-size:16px}.editor-fields{flex-wrap:wrap;align-items:flex-start;gap:12px 18px;display:flex}.editor-fields input{width:110px}.target-input{align-items:center;gap:6px;display:flex}.target-input input{width:80px}.target-input small{text-transform:none}.editor-equivalent{align-self:flex-end;margin:0 0 10px}.segmented.small button{padding:8px 12px;font-size:13px}.segmented button.on{background:var(--accent);color:var(--accent-text)}.editor-actions{flex-wrap:wrap;align-items:flex-end;gap:12px 18px;margin-top:14px;display:flex}.zone-chips{gap:4px;display:flex}.zone-chips button{border:none;min-width:38px;padding:7px 8px;font-weight:800}.editor-buttons{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.editor-buttons button{padding:8px 12px;font-size:13px}.editor-buttons .repeat{align-items:center;gap:4px;display:flex}.editor-buttons .repeat input{width:56px;font:inherit;border:1px solid var(--panel-border);background:var(--panel-solid);color:var(--text);border-radius:10px;padding:7px 8px}.editor-save{gap:10px}.workout-buttons .link{font-size:13px}@media (width<=700px){.editor-meta{grid-template-columns:1fr}.editor-shortcuts{display:none}}body.finished .hud{display:none}body.finished .toast{top:24px;bottom:auto}.overlay.finish{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#060b09b8;place-items:normal;padding:32px 16px 48px;animation:.35s ease-out finish-in;display:block;overflow-y:auto}@keyframes finish-in{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){.overlay.finish{animation:none}}.finish-panel{max-width:1040px;margin:0 auto}.finish-head{text-align:center;margin-bottom:22px}.finish-icon{background:color-mix(in srgb, var(--accent) 18%, transparent);border:2px solid color-mix(in srgb, var(--accent) 55%, transparent);border-radius:50%;place-items:center;width:72px;height:72px;margin-bottom:8px;font-size:38px;display:inline-grid}.finish-head h1{font-family:var(--font-display);margin:0 0 4px;font-size:40px}.finish-result{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:14px;display:grid}.finish-progress{background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:16px;gap:6px;padding:14px 18px;display:grid}.finish-progress-head{justify-content:space-between;align-items:baseline;font-weight:700;display:flex}.finish-progress-head b{font-variant-numeric:tabular-nums;font-size:24px}.finish-bar{background:#ffffff14;border-radius:999px;height:10px;overflow:hidden}.finish-bar span{border-radius:inherit;background:var(--accent);height:100%;display:block}.finish-bar.target span{background:var(--ok)}.finish-tiles{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.finish-tiles .stat-tile.big{padding:16px 18px}.finish-tiles .stat-tile.big .stat-value{font-family:var(--font-display);font-size:34px;line-height:1.1}.efforts{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px;display:grid}.effort{border:1px solid var(--panel-border);background:#ffffff0a;border-radius:12px;gap:2px;padding:12px 14px;display:grid;position:relative}.effort.record{background:#f5c5421a;border-color:#f5c542}.effort-time{color:var(--muted);font-size:12px}.effort b{font-variant-numeric:tabular-nums;font-size:24px}.effort small{color:var(--muted)}.effort-badge{color:#2b2200;background:#f5c542;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800;position:absolute;top:10px;right:10px}.finish-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}.finish-actions button{min-width:160px}@media (width<=800px){.finish-tiles{grid-template-columns:repeat(2,1fr)}.finish-head h1{font-size:30px}}@media (width<=700px){.finish .viz-row{grid-template-columns:1fr}}.finish .guest-only{text-align:center}.garmin-import{text-align:center;flex-direction:column;align-items:center;gap:6px;margin:0 auto 18px;display:flex}.garmin-import p{max-width:460px;margin:0}.alpha-badge{letter-spacing:.08em;vertical-align:middle;color:#2b1a00;background:var(--warn);cursor:help;border-radius:999px;margin-left:8px;padding:1px 7px;font-family:Nunito Variable,system-ui,sans-serif;font-size:10px;font-weight:800;display:inline-block}.alpha-note{text-align:center;max-width:560px;margin:18px auto 0}.app-footer{text-align:center;color:var(--muted);opacity:.8;margin:40px auto 8px;font-size:11px}.probe{text-align:left;margin-top:16px}.probe-actions{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.probe pre{white-space:pre-wrap;-webkit-user-select:text;user-select:text;background:#0006;border-radius:10px;max-height:260px;padding:10px 12px;font-size:12px;overflow:auto}
