:root{color:#222;font-synthesis:none;text-rendering:optimizelegibility;background:#fafafa;font-family:Arial,sans-serif}*{box-sizing:border-box}body{background:#fafafa;min-width:1000px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}.app-shell{width:min(1520px,100%);margin:0 auto;padding:24px 32px 40px}.app-shell.stage-setup{grid-template-columns:190px minmax(0,1fr);align-items:start;gap:24px;width:min(1720px,100%);display:grid}.app-content{min-width:0}.app-sidebar{background:#fff;border:2px solid #111;border-radius:22px;flex-direction:column;min-height:calc(100vh - 36px);padding:14px 10px;display:flex;position:sticky;top:18px;box-shadow:0 14px 36px #00000014}.sidebar-brand{border-bottom:1px solid #ddd;align-items:center;gap:8px;padding:3px 7px 16px;display:flex}.sidebar-brand img{object-fit:contain;mix-blend-mode:multiply;width:28px;height:28px}.sidebar-brand strong{font-size:21px}.app-sidebar nav{gap:6px;margin-top:14px;display:grid}.app-sidebar nav button{text-align:left;color:#666;background:0 0;border:0;border-radius:12px;gap:3px;padding:11px 10px;display:grid}.app-sidebar nav button span{letter-spacing:.08em;font-size:11.5px;font-weight:950}.app-sidebar nav button small{font-size:10px;font-weight:700;line-height:1.25}.app-sidebar nav button:hover{color:#111;background:#f2f2f2}.app-sidebar nav button.active{color:#111;background:#ffd600;box-shadow:inset 0 -3px #0000001a}.language-switch{gap:6px;display:grid}.language-switch>span{color:#5c5c5c;letter-spacing:.1em;font-size:10px;font-weight:900}.language-switch>div{background:#fff;border:1.5px solid #111;border-radius:999px;gap:4px;width:max-content;padding:3px;display:inline-flex}.language-switch button{color:#555;letter-spacing:.08em;cursor:pointer;background:0 0;border:0;border-radius:999px;min-width:38px;padding:5px 9px;font-size:11.5px;font-weight:900}.language-switch button:hover{color:#111;background:#f2f2f2}.language-switch button.active{color:#111;background:#ffd600}.sidebar-language{border-top:1px solid #ddd;margin-top:auto;padding:14px 7px 4px}.sidebar-build{color:#777;letter-spacing:.02em;padding:8px 7px 0;font-size:11px;font-weight:700}.bluetooth-unsupported{background:#fff6f0;border:2px solid #fc5200;gap:8px;margin-bottom:16px;display:grid}.bluetooth-unsupported p{margin:0;line-height:1.5}.bluetooth-unsupported button{justify-self:start}.profile-language{border-top:1px solid #eee;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:14px;font-size:13px;font-weight:700;display:flex}.profile-language .language-switch>span{display:none}.screen-only:not(.is-active),.screen-subpanel:not(.is-active){display:none!important}.current-screen-heading{text-align:right;justify-items:end;gap:3px;display:grid}.current-screen-heading span{color:#8a7400;letter-spacing:.14em;font-size:11.5px;font-weight:950}.current-screen-heading strong{font-size:14px}.workspace-screen{min-height:560px}.workspace-heading{justify-content:space-between;align-items:end;gap:24px;margin:8px 0 18px;display:flex}.workspace-heading p{color:#777;text-align:right;max-width:460px;font-size:11px;font-weight:700;line-height:1.45}.selected-workout-summary{background:linear-gradient(90deg,#fff7bf,#fff);border:2px solid #111;border-radius:14px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:10px;padding:10px 13px;display:flex}.selected-workout-summary div{grid-template-columns:auto auto;align-items:baseline;gap:3px 10px;display:grid}.selected-workout-summary span{color:#8a7400;letter-spacing:.14em;grid-column:1/-1;font-size:9px;font-weight:950}.selected-workout-summary strong{font-size:14px}.selected-workout-summary small{color:#666;font-size:10.5px;font-weight:800}.selected-workout-summary button{color:#ffd600;letter-spacing:.08em;background:#111;border:2px solid #111;border-radius:999px;padding:7px 12px;font-size:10px;font-weight:950}.topbar{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px;display:flex}h1,h2,p{margin:0}h1{letter-spacing:-.04em;font-size:34px;line-height:1}h2{margin-top:4px;font-size:20px}.brand-lockup{white-space:nowrap;align-items:center;gap:8px;line-height:1;display:flex}.brand-logo{object-fit:contain;mix-blend-mode:multiply;width:32px;height:32px}.brand-word{color:#222;letter-spacing:normal;font-family:Arial,sans-serif;font-size:24px;font-weight:700}.ride-stage-label{color:#8a7400;letter-spacing:.14em;border-left:1px solid #ccc;margin-left:4px;padding-left:12px;font-size:10.5px;font-weight:950}.eyebrow{color:#8a7400;letter-spacing:.18em;font-size:11px;font-weight:800}.metrics{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.metric{background:#fff;border:1px solid #ddd;border-radius:14px;min-width:108px;padding:10px 12px}.metric span{color:#777;letter-spacing:.12em;font-size:11px;font-weight:800;display:block}.metric strong{white-space:nowrap;margin-top:3px;font-size:22px;line-height:1.05;display:block}.metric.alert{background:#fff0f0;border-color:#d62d2d;box-shadow:inset 0 0 0 1px #d62d2d}.metric.alert span,.metric.alert strong{color:#c51f1f}.update-banner{background:linear-gradient(90deg,#fff7bf,#fff);border:2px solid #111;border-radius:15px;justify-content:space-between;align-items:center;gap:18px;margin:-4px 0 14px;padding:11px 13px;display:flex;box-shadow:0 8px 24px #00000014}.update-banner>div:first-child{gap:2px;display:grid}.update-banner span{color:#8a7400;letter-spacing:.14em;font-size:10px;font-weight:950}.update-banner strong{font-size:14px}.update-banner small{color:#666;font-size:10.5px;font-weight:700}.update-banner-actions{flex:none;gap:7px;display:flex}.update-banner-actions button{color:#ffd600;letter-spacing:.06em;background:#111;border:2px solid #111;border-radius:999px;padding:8px 12px;font-size:10px;font-weight:950}.update-banner-actions button.secondary{color:#555;background:#fff;border-color:#aaa}.update-banner-actions button:disabled{opacity:.5}.cadence-coach-cue{z-index:80;color:#fff;letter-spacing:.1em;pointer-events:none;background:#c91f1f;border:2px solid #ff5b4d;border-radius:999px;padding:12px 22px;font-size:14px;font-weight:950;animation:2.5s forwards cadence-cue-fade;position:fixed;top:86px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #8c000047}@keyframes cadence-cue-fade{0%{opacity:0;transform:translate(-50%,-8px)}12%,70%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-5px)}}.app-shell.stage-active{height:100vh;max-height:100vh;padding:12px 20px;overflow:hidden}.stage-active .app-content{grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px;height:100%;display:grid}.stage-active .topbar{align-items:center;gap:16px;margin:0}.stage-active .metrics{flex:1;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;display:grid}.stage-active .metric{border-radius:10px;min-width:0;padding:7px 9px}.stage-active .metric span{font-size:10.5px}.stage-active .metric strong{text-overflow:ellipsis;font-size:clamp(15px,1.55vw,20px);overflow:hidden}.stage-active .mode-switcher{margin:0}.stage-active .mode-switcher button{padding:7px 10px}.stage-active .game-card{border-radius:16px;height:100%;min-height:0}.stage-active .game-canvas{aspect-ratio:auto;width:100%;height:100%;max-height:none}.stage-active .ride-recorder{border-radius:13px;grid-template-columns:minmax(150px,1.1fr) repeat(6,minmax(62px,.5fr)) auto;gap:8px;margin:0;padding:8px 10px}.stage-active .recorder-title strong{font-size:13px}.stage-active .recorder-title small{display:none}.stage-active .recorder-metric strong{font-size:13px}.stage-active .recorder-actions .export-button{display:none}.stage-active .record-button{min-width:90px}.ride-summary-screen{color:#fff;background:#111;border:3px solid #111;border-radius:24px;min-height:min(620px,100vh - 130px);padding:clamp(22px,4vw,52px);box-shadow:0 24px 70px #0003}.ride-summary-heading{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.ride-summary-heading h1{color:#fff;margin-top:8px;font-size:clamp(34px,5vw,64px)}.ride-summary-heading p{color:#aaa;margin-top:8px;font-size:12px;font-weight:800}.ride-summary-heading-actions{gap:8px;display:flex}.ride-summary-heading-actions button,.ride-summary-actions button{color:#111;letter-spacing:.06em;background:#ffd600;border:2px solid #ffd600;border-radius:999px;padding:11px 16px;font-size:11.5px;font-weight:950}.ride-summary-heading-actions .secondary{color:#fff;background:0 0;border-color:#666}.ride-summary-metrics{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:clamp(28px,6vh,64px);display:grid}.ride-summary-metric{background:#191919;border:1px solid #444;border-radius:18px;padding:20px}.ride-summary-metric span{color:#888;letter-spacing:.14em;font-size:10.5px;font-weight:950;display:block}.ride-summary-metric strong{color:#ffd600;margin-top:7px;font-size:clamp(24px,3.2vw,42px);display:block}.ride-summary-actions{flex-wrap:wrap;gap:9px;margin-top:28px;display:flex}.ride-summary-actions .cover-action{color:#ffd600;background:0 0;border-color:#ffd600}.ride-summary-actions .strava-action{color:#fff;background:#fc4c02;border-color:#fc4c02}.ride-summary-actions button:disabled{opacity:.45}.export-compatibility-note{color:#999;max-width:760px;margin-top:12px;font-size:11px;font-weight:700;line-height:1.5}.ride-summary-message{color:#ff9b70;margin-top:16px;font-size:12px;font-weight:800}.ride-summary-message.connected{color:#65d693}@media (height<=760px){.app-shell.stage-active{gap:6px;padding-block:8px}.stage-active .brand-logo{width:26px;height:26px}.stage-active .brand-word{font-size:20px}.stage-active .mode-switcher button{padding-block:5px}.stage-active .ride-recorder{padding-block:6px}}.game-card{background:#111;border:3px solid #111;border-radius:22px;position:relative;overflow:hidden;box-shadow:0 20px 50px #00000024}.game-canvas{aspect-ratio:2;width:100%;max-height:calc(100vh - 355px);position:relative}.game-canvas canvas{display:block;width:100%!important;height:100%!important}.game-audio-controls{z-index:6;gap:6px;display:flex;position:absolute;top:12px;right:12px}.game-control-button{color:#aaa;letter-spacing:.08em;background:#111111e6;border:2px solid #111;border-radius:999px;padding:7px 10px;font-size:10.5px;font-weight:900}.game-control-button.is-on{color:#111;background:#ffd600;border-color:#ffd600}.game-control-button.pause{color:#fff;border-color:#fff}.game-control-button.pause:disabled{color:#777;opacity:.65;border-color:#777}.mode-switcher{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;display:grid}.mode-switcher button{color:#777;background:#fff;border:2px solid #111;border-radius:14px;justify-content:center;align-items:center;gap:9px;padding:10px 14px;display:flex}.mode-switcher span{letter-spacing:.08em;font-size:12px;font-weight:950}.mode-switcher small{font-size:11.5px;font-weight:700}.mode-switcher button.active{color:#111;background:#ffd600;border-color:#111;box-shadow:inset 0 -4px #0000001f}.mode-switcher button.coming-soon{opacity:.42}.ride-control-switch button:disabled{cursor:not-allowed;opacity:.62}.ride-control-switch{justify-content:flex-end;align-items:stretch;gap:7px;margin:0 0 10px;display:flex}.ride-control-switch>div{flex-direction:column;justify-content:center;margin-right:auto;display:flex}.ride-control-switch>div span{color:#8a7400;letter-spacing:.15em;font-size:10px;font-weight:900}.ride-control-switch>div strong{letter-spacing:.06em;margin-top:2px;font-size:11px}.ride-control-switch button{color:#777;letter-spacing:.07em;background:#fff;border:2px solid #bbb;border-radius:11px;min-width:158px;padding:7px 12px;font-size:11.5px;font-weight:950}.ride-control-switch button small{letter-spacing:0;margin-top:2px;font-size:10px;font-weight:700;display:block}.ride-control-switch button.active{color:#111;background:#ffd600;border-color:#111;box-shadow:inset 0 -3px #0000001a}.ride-control-switch .new-ride-button{color:#ffd600;background:#111;border-color:#111;min-width:142px;margin-left:20px}.ride-control-switch .new-ride-button:disabled{color:#888;background:#eee;border-color:#ddd}.game-hint{color:#ffd600;background:#111;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:900;position:absolute;bottom:14px;right:16px}.start-overlay{z-index:4;color:#fff;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(90deg,#111111a3,#11111147,#111111a3);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.start-kicker{letter-spacing:.15em;text-shadow:0 2px 9px #111;font-size:11px;font-weight:900}.game-start-button{color:#111;letter-spacing:-.03em;background:#ffd600;border:4px solid #111;border-radius:24px;width:190px;height:80px;font-size:32px;font-weight:950;transform:translateY(-4px);box-shadow:0 9px #111,0 16px 30px #00000047}.game-start-button.erg{white-space:nowrap;font-size:25px}.game-start-button.resume{letter-spacing:-.02em;white-space:nowrap;width:230px;padding-inline:14px;font-size:22px}.game-start-button:hover{transform:translateY(-1px);box-shadow:0 6px #111,0 12px 24px #00000040}.game-start-button:active{transform:translateY(4px);box-shadow:0 1px #111}.game-start-button:disabled{opacity:.45;cursor:default;transform:translateY(-4px);box-shadow:0 9px #111}.start-overlay small{text-shadow:0 2px 8px #111;font-size:11px;font-weight:700}.pause-overlay{z-index:5;text-align:center;color:#fff;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#11111194;place-content:center;gap:5px;display:grid;position:absolute;inset:0}.pause-overlay strong{color:#ffd600;letter-spacing:.08em;font-size:42px;font-weight:950}.pause-overlay small{font-size:11px;font-weight:800}.click-heads-up{z-index:4;color:#111;background:#fffffff0;border:2px solid #111;border-radius:14px;flex-direction:column;align-items:center;min-width:214px;padding:7px 10px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #00000029}.click-heads-up span{color:#8a7400;letter-spacing:.14em;font-size:9px;font-weight:950}.click-heads-up strong{margin-top:2px;font-size:16px}.click-heads-up small{color:#666;margin-top:1px;font-size:10px;font-weight:900}.virtual-control-row{grid-template-columns:34px minmax(112px,auto) 34px;align-items:center;gap:6px;margin-top:4px;display:grid}.virtual-control-row button{color:#ffd600;background:#111;border:2px solid #111;border-radius:9px;width:34px;height:30px;padding:0;font-size:22px;font-weight:950;line-height:1}.virtual-control-row button:active{color:#111;background:#ffd600}.virtual-control-row button:disabled{color:#999;background:#ddd;border-color:#bbb}.virtual-control-row strong{text-align:center;margin:0}.workout-agenda{z-index:4;color:#fff;background:#111111eb;border:2px solid #111;border-radius:15px;width:300px;position:absolute;top:12px;left:12px;overflow:hidden;box-shadow:0 12px 30px #00000040}.workout-agenda>header{color:#111;background:#ffd600;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;display:flex}.workout-agenda>header span{letter-spacing:.14em;font-size:9px;font-weight:950;display:block}.workout-agenda>header strong{margin-top:2px;font-size:11px;display:block}.workout-agenda>header b{font-size:16px}.workout-agenda-list{gap:2px;padding:5px;display:grid}.workout-agenda-list>div{color:#172033;background:var(--interval-zone-background), #fff;border-radius:7px;grid-template-columns:22px 66px 48px 1fr;align-items:center;gap:5px;min-height:28px;padding:3px 6px;display:grid;box-shadow:inset 0 0 0 1px #ffffff29}.workout-agenda-list>div>span{border:1px solid #17203373;border-radius:50%;place-items:center;width:19px;height:19px;font-size:10px;font-weight:900;display:grid}.workout-agenda-list>div strong{color:inherit;font-size:11.5px}.workout-agenda-list>div em{color:inherit;font-size:11.5px;font-style:normal;font-weight:900}.workout-agenda-list>div small{justify-self:end;font-size:10px;font-weight:800}.workout-agenda-list>div.complete{opacity:.38}.workout-agenda-list>div.current{color:#111;filter:saturate(1.08);min-height:40px;padding-block:6px;box-shadow:inset 0 0 0 2px #111111ad,0 3px 9px #0003}.workout-agenda-list>div.current strong,.workout-agenda-list>div.current em{font-size:12px}.workout-agenda-list>div.current small{font-size:10.5px}.workout-agenda-list>div.current>span{color:#fff;background:#111;border-color:#111}.workout-agenda-list>div.current em{color:#111}.workout-agenda>footer{color:#ffd600;letter-spacing:.12em;border-top:1px solid #444;padding:7px 11px 8px;font-size:10px;font-weight:950}.workout-builder{background:#fff;border:2px solid #111;border-radius:18px;margin-top:12px;padding:16px}.workout-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 20px;display:flex}.workout-heading p{color:#777;margin-top:4px;font-size:11px}.workout-power-unit{background:#fffdf0;border:2px solid #111;border-radius:14px;justify-items:center;gap:4px;padding:7px 9px;display:grid}.workout-power-unit>span{color:#5c5c5c;letter-spacing:.12em;font-size:9px;font-weight:950}.workout-power-unit>div{background:#111;border:2px solid #111;border-radius:999px;grid-template-columns:1fr 1fr;width:142px;padding:2px;display:grid}.workout-power-unit button{color:#fff;background:0 0;border:0;border-radius:999px;padding:6px 10px;font-size:11.5px;font-weight:950}.workout-power-unit button.active{color:#111;background:#ffd600}.workout-power-unit button:disabled{opacity:.45}.workout-power-unit>small{color:#5c5c5c;text-align:center;max-width:230px;font-size:9px;font-weight:850;line-height:1.25}.workout-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.workout-actions button{letter-spacing:.06em;border:2px solid #111;border-radius:999px;padding:9px 14px;font-size:11.5px;font-weight:900}.workout-actions .start-workout{color:#111;background:#ffd600}.workout-actions .stop-workout{color:#fff;background:#c62d28;border-color:#c62d28}.workout-actions button:disabled{opacity:.35}.workout-file-input{display:none}.workout-export-control{background:#fff;border:2px solid #111;border-radius:999px;grid-template-columns:auto minmax(150px,1fr);align-items:center;gap:6px;padding:3px 4px 3px 11px;display:grid}.workout-export-control>span{letter-spacing:.08em;font-size:9px;font-weight:950}.workout-export-control select{color:#111;background:#f1f1f1;border:0;border-radius:999px;outline:none;min-width:160px;padding:5px 8px;font-size:10.5px;font-weight:900}.workout-export-control:has(select:focus){outline:3px solid #ffd60059}.workout-export-control:has(select:disabled){opacity:.35}.workout-file-message{color:#444;background:#fff9d9;border-left:4px solid #ffd600;margin-top:10px;padding:7px 10px;font-size:11.5px;font-weight:750}.workout-export-note{color:#315b42;background:#edf9f1;border-left:4px solid #168243;margin-top:8px;padding:7px 10px;font-size:10.5px;font-weight:800}.workout-export-note.fixed{color:#6d5200;background:#fff8dc;border-color:#c58a00}.workout-presets{grid-template-columns:repeat(5,minmax(150px,1fr));gap:7px;margin-top:14px;display:grid}.workout-presets button{text-align:left;color:#333;background:#fafafa;border:2px solid #ddd;border-radius:12px;min-height:66px;padding:9px 10px}.workout-presets button strong{font-size:11px;font-weight:950;display:block}.workout-presets button span{color:#5c5c5c;margin-top:5px;font-size:10px;font-weight:800;line-height:1.3;display:block}.workout-presets button.active{background:#ffd600;border-color:#111;box-shadow:inset 0 -3px #0000001a}.workout-presets button.active span{color:#333}.workout-presets button:disabled{cursor:default;opacity:.5}.preset-note{color:#5c5c5c;margin-top:8px;font-size:10.5px}.saved-workout-heading{justify-content:space-between;align-items:end;gap:16px;margin-top:18px;display:flex}.saved-workout-heading p{color:#5c5c5c;margin-top:3px;font-size:10.5px}.workout-save-controls{gap:7px;display:flex}.workout-save-controls input{color:#111;background:#fff;border:2px solid #bbb;border-radius:999px;width:min(280px,32vw);padding:9px 13px;font-size:11.5px;font-weight:800}.workout-save-controls input:focus{border-color:#111;outline:3px solid #ffd60059}.workout-save-controls button{color:#ffd600;letter-spacing:.06em;background:#111;border:2px solid #111;border-radius:999px;padding:9px 14px;font-size:10.5px;font-weight:950}.workout-save-controls button:disabled,.workout-save-controls input:disabled{opacity:.45}.saved-workout-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px;margin-top:9px;display:grid}.saved-workout-card{color:#333;background:#fafafa;border:2px solid #ddd;border-radius:12px;min-height:66px;position:relative;overflow:hidden}.saved-workout-card.active{background:#ffd600;border-color:#111;box-shadow:inset 0 -3px #0000001a}.saved-workout-load{text-align:left;width:100%;min-height:62px;color:inherit;background:0 0;border:0;padding:9px 38px 9px 10px}.saved-workout-load strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:950;display:block;overflow:hidden}.saved-workout-load span{color:#5c5c5c;margin-top:5px;font-size:10px;font-weight:800;line-height:1.3;display:block}.saved-workout-unit{color:#8a7400;letter-spacing:.06em;border:1px solid;border-radius:999px;margin-left:7px;padding:1px 5px;font-size:9px;font-weight:950;display:inline-block}.saved-workout-card.active .saved-workout-load span{color:#333}.saved-workout-delete{color:#777;background:#e9e9e9;border:0;border-radius:50%;place-items:center;width:24px;height:24px;font-size:17px;line-height:1;display:grid;position:absolute;top:8px;right:8px}.saved-workout-card.active .saved-workout-delete{color:#ffd600;background:#111}.saved-workout-load:disabled,.saved-workout-delete:disabled{cursor:default;opacity:.45}.saved-workout-empty{color:#666;border:1px dashed #ccc;border-radius:10px;margin-top:9px;padding:10px 12px;font-size:10.5px;font-weight:700}.workout-zone-legend{flex-wrap:wrap;justify-content:flex-end;gap:5px 10px;margin-top:14px;display:flex}.workout-zone-legend span{color:#666;letter-spacing:.05em;align-items:center;gap:5px;font-size:10px;font-weight:900;display:flex}.workout-zone-legend span:before{background:var(--zone-color);content:"";border:1px solid #00000040;border-radius:3px;width:9px;height:9px}.workout-chart{background:repeating-linear-gradient(0deg,#f1f1f1 0 1px,#0000 1px 30px);border-bottom:4px solid #111;align-items:flex-end;gap:3px;height:126px;margin-top:7px;padding:0 4px;display:flex}.workout-bar{min-width:28px;max-width:240px;position:relative}.workout-bar svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.workout-bar span,.workout-bar em,.workout-bar small{z-index:1;color:#172033;text-shadow:0 1px 2px #ffffffe6;white-space:nowrap;font-style:normal;font-weight:950;position:absolute;left:50%;transform:translate(-50%)}.workout-bar span{font-size:9px;top:7px}.workout-bar em{letter-spacing:.08em;font-size:7px;top:22px}.workout-bar small{font-size:8px;bottom:5px}.interval-list{grid-template-columns:repeat(auto-fit,minmax(520px,1fr));gap:7px;margin-top:12px;display:grid}.interval-row{border:1px solid #ddd;border-radius:10px;grid-template-columns:minmax(24px,auto) minmax(100px,.8fr) minmax(180px,1.5fr) minmax(105px,.8fr) 24px;align-items:end;gap:7px;padding:8px;display:grid}.interval-row>strong{color:#ffd600;background:#111;border-radius:999px;place-self:center start;place-items:center;min-width:24px;height:24px;padding:0 6px;font-size:11.5px;display:grid}.interval-row label{color:#666;letter-spacing:.08em;font-size:10px;font-weight:900;position:relative}.interval-row label>span{align-items:baseline;gap:3px;display:flex}.interval-row .duration-field-heading,.interval-row .power-field-heading{justify-content:space-between;align-items:center}.interval-row .duration-field-heading select,.interval-row .power-field-heading select{color:#777;font:inherit;letter-spacing:.06em;cursor:pointer;background:0 0;border:0;padding:0;font-weight:900}.interval-row .duration-field-heading select:disabled,.interval-row .power-field-heading select:disabled{cursor:default}.interval-row input[type=number]{border:1px solid #bbb;border-radius:6px;width:100%;margin-top:3px;padding:6px;font-weight:800}.interval-row label i{color:#5c5c5c;font-size:10px;font-style:normal}.power-inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.power-inputs>span:only-child{grid-column:1/-1}.power-inputs small{color:#666;letter-spacing:.06em;margin-top:3px;font-size:9px;display:block}.power-inputs .power-conversion{color:#8a7400;letter-spacing:.03em;font-weight:900}.cadence-field-heading{min-height:16px;align-items:center!important}.cadence-field-heading input[type=checkbox]{accent-color:#111;width:13px;height:13px;margin:0 2px 0 0}.optional-target{color:gray;border:1px dashed #ccc;border-radius:6px;place-items:center;min-height:30px;margin-top:3px;font-size:10px;display:grid}.interval-row>button{color:#777;background:#eee;border:0;border-radius:6px;width:24px;height:28px;font-size:18px}.repeat-block{background:#fffdf0;border:2px solid #111;border-radius:14px;grid-column:1/-1;overflow:hidden}.repeat-block>header{background:#ffd600;border-bottom:2px solid #111;grid-template-columns:1fr 115px auto auto auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.repeat-block>header>div span{letter-spacing:.14em;font-size:9px;font-weight:950;display:block}.repeat-block>header>div strong{margin-top:2px;font-size:13px;display:block}.repeat-block>header label{color:#555;letter-spacing:.1em;font-size:9px;font-weight:950}.repeat-block>header label span{color:#111;align-items:center;gap:4px;margin-top:2px;font-size:14px;display:flex}.repeat-block>header input{background:#fff;border:2px solid #111;border-radius:7px;width:64px;padding:5px;font-weight:900}.repeat-block>header button{letter-spacing:.05em;border:2px solid #111;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:950}.repeat-block .add-block-interval{color:#ffd600;background:#111}.repeat-block .remove-block{color:#555;background:0 0;border-color:#8a7400}.repeat-block>header button:disabled{opacity:.4}.repeat-block-intervals{grid-template-columns:repeat(auto-fit,minmax(520px,1fr));gap:7px;padding:10px;display:grid}.repeat-block-intervals .interval-row{background:#fff}.repeat-block>footer{color:#6d5c00;letter-spacing:.08em;border-top:1px solid #e6d98d;padding:7px 12px;font-size:10px;font-weight:900}.repeat-block.nested{background:#fff;border-style:dashed;border-width:2px}.repeat-block.nested>header{background:#fff3a6}.repeat-block.nested .repeat-block-intervals .interval-row{background:#fffdf0}.erg-message{color:#555;background:#fff9d9;border-left:4px solid #ffd600;margin-top:10px;padding:7px 10px;font-size:11px;font-weight:700}.erg-message.error{color:#84241f;background:#fff0ef;border-color:#c62d28}.tribro-alert-backdrop{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#111111a3;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.tribro-alert{text-align:center;color:#111;background:#fff;border:3px solid #111;border-radius:24px;width:min(420px,100%);padding:26px;box-shadow:0 24px 80px #0000006b}.tribro-alert-icon{background:#ffd600;border-radius:18px;place-items:center;width:64px;height:64px;margin:0 auto;display:grid}.tribro-alert-icon img{object-fit:contain;mix-blend-mode:multiply;width:48px;height:48px}.tribro-alert>span{color:#8a7400;letter-spacing:.16em;margin-top:11px;font-size:10.5px;font-weight:950;display:block}.tribro-alert strong{margin-top:6px;font-size:24px;display:block}.tribro-alert p{color:#555;margin-top:10px;font-size:14px;font-weight:700;line-height:1.45}.tribro-alert button{color:#111;letter-spacing:.08em;background:#ffd600;border:2px solid #111;border-radius:12px;width:100%;margin-top:20px;padding:11px;font-size:13px;font-weight:950}.bluetooth-selector{width:min(520px,100%)}.bluetooth-device-list{gap:10px;max-height:320px;margin-top:18px;display:grid;overflow-y:auto}.bluetooth-device-list button{text-align:left;background:#fff;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:14px 16px;display:flex}.bluetooth-device-list button:hover{background:#ffd600}.bluetooth-device-list button strong{margin:0;font-size:16px}.bluetooth-device-list button small{color:#5c5c5c;font-size:11.5px}.new-ride-confirmation .confirmation-actions,.power-unit-confirmation .confirmation-actions,.workout-import-preview .confirmation-actions{grid-template-columns:1fr 1.3fr;gap:8px;margin-top:20px;display:grid}.new-ride-confirmation .confirmation-actions button,.power-unit-confirmation .confirmation-actions button,.workout-import-preview .confirmation-actions button{margin-top:0}.new-ride-confirmation .confirmation-actions .secondary,.power-unit-confirmation .confirmation-actions .secondary,.workout-import-preview .confirmation-actions .secondary{color:#555;background:#fff;border-color:#bbb}.power-unit-confirmation p b{color:#111}.workout-import-preview{text-align:left;width:min(620px,100%);max-height:calc(100vh - 48px);overflow-y:auto}.workout-import-preview strong{overflow-wrap:anywhere}.workout-import-file{color:#666;overflow-wrap:anywhere;margin-top:3px;font-size:12px;font-weight:700;display:block}.workout-import-facts{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;display:grid}.workout-import-facts div{border:2px solid #111;border-radius:12px;padding:8px 10px}.workout-import-facts dt{color:#8a7400;letter-spacing:.12em;font-size:10px;font-weight:950}.workout-import-facts dd{margin:3px 0 0;font-size:17px;font-weight:950}.workout-import-chart{height:96px;margin-top:14px;overflow:hidden}.workout-import-chart .workout-bar{min-width:4px}.workout-import-chart .workout-bar span,.workout-import-chart .workout-bar em,.workout-import-chart .workout-bar small{display:none}.tribro-alert p.workout-import-ftp{color:#333;background:#fff9d9;border-left:4px solid #ffd600;padding:8px 10px;font-size:13px}.workout-import-convert{color:#333;cursor:pointer;align-items:flex-start;gap:9px;margin-top:10px;font-size:13px;font-weight:750;line-height:1.4;display:flex}.workout-import-convert input{margin-top:3px}.workout-import-warnings{color:#6d4c00;background:#fff4e0;border-radius:10px;margin:10px 0 0;padding:8px 10px 8px 26px;font-size:12px;font-weight:750;line-height:1.45}.tribro-alert p.workout-import-replace{color:#666;font-size:12px}.power-unit-confirmation .power-unit-token{white-space:nowrap}.ride-recovery small{color:#5c5c5c;margin-top:8px;font-size:11.5px;font-weight:800;display:block}.ride-recovery .confirmation-actions{grid-template-columns:.8fr 1.4fr;gap:8px;margin-top:20px;display:grid}.ride-recovery .confirmation-actions button{margin-top:0}.ride-recovery .confirmation-actions .secondary{color:#555;background:#fff;border-color:#bbb}.strava-share small{color:#168243;margin-top:10px;font-size:11px;font-weight:800;display:block}.strava-share .share-actions{grid-template-columns:.8fr 1.1fr 1.3fr;gap:8px;margin-top:20px;display:grid}.strava-share .share-actions button{margin-top:0}.strava-share .share-actions .secondary{color:#555;background:#fff;border-color:#bbb}.strava-share .share-actions .cover-action{color:#111;background:#ffd600;border-color:#111}.strava-share .share-actions .strava-action{color:#fff;background:#fc4c02;border-color:#fc4c02}.sensor-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;display:grid;position:relative}.sensor-card{background:#fff;border:1px solid #ddd;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:13px 15px;display:grid}.sensor-card>div:first-child{min-width:0}.sensor-card strong{margin-top:3px;display:block}.sensor-card small{color:#5c5c5c;letter-spacing:.08em;margin-top:4px;font-size:11.5px;font-weight:800;display:block}.sensor-card .live-signal{color:#168243}.pair-button{color:#ffd600;letter-spacing:.06em;white-space:nowrap;background:#111;border:2px solid #111;border-radius:999px;min-width:0;max-width:116px;padding:9px 10px;font-size:10.5px;font-weight:900}.pair-button.connected{color:#111;background:#ffd600;border-color:#ffd600}.sensor-actions{flex:none;align-items:center;gap:7px;display:flex}.sensor-menu{position:relative}.sensor-menu summary{color:#333;cursor:pointer;letter-spacing:1px;background:#fff;border:1px solid #ccc;border-radius:50%;place-items:center;width:32px;height:32px;font-size:11px;font-weight:900;list-style:none;display:grid}.sensor-menu summary::-webkit-details-marker{display:none}.sensor-menu[open] summary{background:#f4f4f4;border-color:#111}.sensor-menu-popover{z-index:20;background:#fff;border:1px solid #d8d8d8;border-radius:12px;width:190px;position:absolute;top:calc(100% + 7px);right:0;overflow:hidden;box-shadow:0 12px 30px #00000029}.sensor-menu-popover button{color:#111;cursor:pointer;text-align:left;letter-spacing:.06em;background:#fff;border:0;width:100%;padding:12px 14px;font-size:11.5px;font-weight:900}.sensor-menu-popover button:hover{background:#fff7c2}.sensor-menu-popover button+button{border-top:1px solid #eee}.sensor-menu-popover .disconnect{color:#a32828}.sensor-error{color:#555;background:#fff9d9;border-left:4px solid #ffd600;grid-column:1/-1;padding:8px 12px;font-size:12px}.click-v2-hint{color:#333;background:#fff9d9;border-left:4px solid #ffd600;border-radius:0 12px 12px 0;grid-column:1/-1;justify-content:space-between;align-items:flex-start;gap:16px;padding:12px 14px;font-size:13px;display:flex}.click-v2-hint strong{margin-bottom:4px;display:block}.click-v2-hint p{color:#555;margin:4px 0 0;line-height:1.45}.click-v2-hint button{color:#111;letter-spacing:.06em;cursor:pointer;background:#fff;border:2px solid #111;border-radius:999px;flex:none;padding:7px 12px;font-size:11px;font-weight:800}@media (width<=640px){.click-v2-hint{flex-direction:column}}.ride-recorder{background:#fff;border:2px solid #111;border-radius:18px;grid-template-columns:minmax(180px,1.3fr) repeat(6,minmax(68px,.5fr)) auto;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;display:grid}.ride-recorder.is-recording{box-shadow:inset 5px 0 #ffd600}.recorder-title{align-items:center;gap:10px;display:flex}.recorder-title strong{margin-top:3px;display:block}.record-dot{background:#bbb;border-radius:50%;width:11px;height:11px}.is-recording .record-dot{background:#e3342f;box-shadow:0 0 0 5px #e3342f1f}.recorder-metric span{color:#5c5c5c;letter-spacing:.1em;font-size:10.5px;font-weight:800;display:block}.recorder-metric strong{margin-top:3px;font-size:16px;display:block}.recorder-actions{gap:8px;display:flex}.record-button,.export-button{letter-spacing:.06em;white-space:nowrap;border:2px solid #111;border-radius:999px;padding:9px 12px;font-size:11.5px;font-weight:900}.record-button{color:#111;background:#ffd600}.record-button.stop{color:#fff;background:#c62d28;border-color:#c62d28}.export-button{color:#ffd600;background:#111}.export-button.strava{color:#fff;background:#fc4c02;border-color:#fc4c02}.export-button.cover{color:#111;background:#ffd600;border-color:#111}.record-button:disabled,.export-button:disabled{opacity:.35}.strava-message{color:#a43a0d;text-align:right;margin:5px 16px 0;font-size:11px;font-weight:800}.strava-message.connected{color:#168243}.control-grid{grid-template-columns:1fr;gap:16px;margin-top:12px;display:grid}.control-grid .panel{min-height:520px}.control-grid .simulator-panel,.control-grid .controller-panel{align-content:start}.control-grid .controller-content{justify-content:center;min-height:360px}.control-grid .qr-code{width:220px;height:220px}.panel{background:#fff;border:1px solid #ddd;border-radius:18px;padding:18px}.panel-title{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.status-pill{color:#ffd600;letter-spacing:.1em;background:#111;border:0;border-radius:999px;padding:7px 10px;font-size:11.5px;font-weight:900}.status-pill.success{color:#111;background:#ffd600}.status-pill.warning{color:#ffd600;background:#111}.simulator-panel label{color:#555;grid-template-columns:1fr auto;gap:8px;margin-top:12px;font-size:13px;display:grid}.simulator-panel input{accent-color:#ffd600;grid-column:1/-1;width:100%}.simulator-panel input:disabled{opacity:.35}.profile-weights{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.simulator-panel .profile-weights label{border:1px solid #ddd;border-radius:12px;flex-direction:column;gap:5px;margin:0;padding:8px 10px;font-size:11px;font-weight:800;display:flex}.simulator-panel .profile-weights span{color:#777;align-items:center;gap:5px;display:flex}.simulator-panel .profile-weights input{color:#111;width:65px;font:inherit;background:0 0;border:0;border-bottom:2px solid #ffd600;grid-column:auto;padding:3px 0;font-size:16px;font-weight:900}.profile-note{color:#666;background:#fff9d9;border-left:4px solid #ffd600;margin-top:12px;padding:8px 10px;font-size:11.5px;font-weight:700;line-height:1.4}.controller-content{align-items:center;gap:16px;display:flex}.qr-code{background:#fff;border-radius:10px;width:108px;height:108px;padding:5px}.controller-content p{color:#444;line-height:1.4}.controller-content small{color:#888;word-break:break-all;text-wrap:balance;margin-top:8px;display:block}.connections-controller{margin-top:16px}.connections-controller .panel-title{margin-bottom:10px}.connections-controller .controller-content{min-height:0}.connections-controller .qr-code{width:124px;height:124px}.diagnostics-help{background:#191919;border:1px solid #444;border-radius:16px;justify-content:space-between;align-items:center;gap:18px;margin-top:22px;padding:14px 16px;display:flex}.diagnostics-help div{gap:4px;display:grid}.diagnostics-help strong{color:#fff;font-size:13px}.diagnostics-help span,.diagnostics-help small{color:#999;font-size:11.5px;font-weight:700}.diagnostics-help b{color:#fff;font-size:12px;font-weight:950}.diagnostics-help button{color:#ddd;letter-spacing:.06em;background:0 0;border:1px solid #777;border-radius:999px;flex:none;padding:9px 13px;font-size:10.5px;font-weight:900}.diagnostics-help button:disabled{opacity:.45}
