@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/archivo-vietnamese-400-normal-BF4g3tCF.woff2) format("woff2"),url(/assets/archivo-vietnamese-400-normal-FGOLYM1a.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/archivo-latin-ext-400-normal-B5tPZzqW.woff2) format("woff2"),url(/assets/archivo-latin-ext-400-normal-DrmqtLj6.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/archivo-latin-400-normal-C81ewxNO.woff2) format("woff2"),url(/assets/archivo-latin-400-normal-Bl602Mgc.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-vietnamese-600-normal-anCjMumA.woff2) format("woff2"),url(/assets/archivo-vietnamese-600-normal-C8xBVdfP.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-latin-ext-600-normal-Dm61iqcg.woff2) format("woff2"),url(/assets/archivo-latin-ext-600-normal-D7uErJuz.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-latin-600-normal-3BBy0ZsW.woff2) format("woff2"),url(/assets/archivo-latin-600-normal-DwYieO8P.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-vietnamese-700-normal-nuAQAQa7.woff2) format("woff2"),url(/assets/archivo-vietnamese-700-normal-Bz2vkKqq.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-latin-ext-700-normal-DD_nkw6b.woff2) format("woff2"),url(/assets/archivo-latin-ext-700-normal-CgyfnKjw.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-latin-700-normal-D9cHMWGj.woff2) format("woff2"),url(/assets/archivo-latin-700-normal-lT5TFe7H.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/archivo-vietnamese-800-normal-DHDgv4cm.woff2) format("woff2"),url(/assets/archivo-vietnamese-800-normal-BKe5Z8rz.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/archivo-latin-ext-800-normal-BC6piDwP.woff2) format("woff2"),url(/assets/archivo-latin-ext-800-normal-B9NTbsU1.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/archivo-latin-800-normal-cB6v3kRN.woff2) format("woff2"),url(/assets/archivo-latin-800-normal-DZa_k145.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-vietnamese-700-normal-VsvP8OcS.woff2) format("woff2"),url(/assets/archivo-narrow-vietnamese-700-normal-CB0yIOvF.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-latin-ext-700-normal-DCLoHMFv.woff2) format("woff2"),url(/assets/archivo-narrow-latin-ext-700-normal-C4q0W15T.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-latin-700-normal-DtADLsoy.woff2) format("woff2"),url(/assets/archivo-narrow-latin-700-normal-DxmyBkwC.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground: #121417;--surface: #1b1e22;--surface-2: #24282d;--line: #30353b;--text: #f4f1ea;--text-2: #a9aeb4;--text-3: #878d94;--over: #ff7a66;--under: #8fc3ff;--yellow: #ffd400;--yellow-ink: #121417;--ok: #4cc38a;--warn: #f2b31b;--bad: #ef5a45;--cat-flat: #5b8fa8;--cat-4: #3fa34d;--cat-3: #e9b824;--cat-2: #f2762b;--cat-1: #d6402b;--cat-hc: #a3247a;--narrow: "Archivo Narrow", "Arial Narrow", sans-serif;--sans: "Archivo", system-ui, sans-serif;--r: 6px;--r-lg: 10px;--gutter: clamp(16px, 2.2vw, 28px);--ease: cubic-bezier(.16, 1, .3, 1);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--text);font:400 16px/1.45 var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}::selection{background:var(--yellow);color:var(--yellow-ink)}:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-underline-offset:3px}h1,h2,h3,p{margin:0}.num{font-family:var(--narrow);font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.01em}.label{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 22px;border-radius:var(--r);border:0;font-weight:700;font-size:17px;text-decoration:none;transition:background-color .16s var(--ease),transform .12s var(--ease)}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:var(--yellow);color:var(--yellow-ink)}.btn-primary:hover:not(:disabled){background:#ffe14d}.btn-secondary{background:var(--surface-2);color:var(--text)}.btn-secondary:hover:not(:disabled){background:#2d3238}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){color:var(--text)}.btn-danger{background:transparent;color:var(--bad)}.btn:disabled{opacity:.45}.icon-btn{width:48px;height:48px;display:grid;place-items:center;border-radius:var(--r);border:0;background:transparent}.band{display:flex;align-items:center;gap:14px;min-height:64px;padding:8px var(--gutter);padding-top:max(8px,env(safe-area-inset-top));background:var(--yellow);color:var(--yellow-ink)}.band h1{min-width:0;font:800 19px/1.1 var(--sans);text-transform:uppercase;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.band .meta{font-weight:600;font-size:15px;white-space:nowrap}.band .spacer{flex:1}.band .icon-btn{color:var(--yellow-ink)}.band .icon-btn:hover{background:#12141714}.band :focus-visible{outline-color:var(--yellow-ink)}.wordmark{font:700 22px/1 var(--narrow);text-transform:uppercase;letter-spacing:.02em;display:flex;align-items:center;gap:8px}.wordmark svg{display:block}.pills{display:flex;gap:6px}.pill{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 12px;border-radius:var(--r);border:0;background:var(--yellow-ink);color:var(--yellow);font-size:14px;font-weight:700;white-space:nowrap;text-decoration:none}.pill .dot{width:8px;height:8px;border-radius:50%;background:currentColor}.pill[data-status=connected] .dot{background:var(--ok)}.pill[data-status=reconnecting] .dot,.pill[data-status=connecting] .dot{background:var(--warn);animation:blink 1s steps(2) infinite}.pill[data-status=lost]{background:var(--bad);color:var(--yellow-ink)}.pill[data-status=idle]{background:#12141724;color:var(--yellow-ink)}.pill[data-status=idle] .dot{background:transparent;border:2px solid currentColor}@keyframes blink{50%{opacity:.25}}.seg{display:inline-flex;padding:3px;border-radius:8px;background:var(--yellow-ink)}.seg button{min-height:40px;min-width:70px;padding:0 14px;border:0;border-radius:5px;background:transparent;color:var(--yellow);font-weight:800;font-size:14px;letter-spacing:.04em;text-transform:uppercase}.seg button[aria-pressed=true]{background:var(--yellow);color:var(--yellow-ink)}.seg button:disabled{color:#6b6a55}.page{min-height:100%;display:flex;flex-direction:column}.content{width:100%;max-width:1180px;margin:0 auto;padding:28px var(--gutter) 48px}.notice{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--r);background:var(--surface);color:var(--text-2);font-size:15px}.notice svg{flex:none;color:var(--warn)}.notice b{color:var(--text)}.profile{position:relative}.profile .plot>svg{display:block;width:100%;height:100%}.profile .plot{position:relative}.profile .ticks{position:relative;height:24px;border-top:1px solid var(--line);font:500 12px var(--narrow);color:var(--text-3);font-variant-numeric:tabular-nums}.profile .ticks span{position:absolute;top:0;padding-top:7px;transform:translate(-50%);white-space:nowrap}.profile .ticks span:before{content:"";position:absolute;left:50%;top:0;width:1px;height:5px;background:var(--line)}.profile .ticks span.first{transform:none}.profile .ticks span.first:before{left:0}.profile .ticks span.last{transform:translate(-100%)}.profile .ticks span.last:before{left:auto;right:0}.summit{position:absolute;transform:translate(-50%,calc(-100% - 6px));min-width:22px;height:20px;padding:0 5px;border-radius:3px;display:grid;place-items:center;font:800 12px/1 var(--sans);color:var(--ground);box-shadow:0 1px 3px #0006}.kite{position:absolute;z-index:2;transform:translate(-50%,calc(-100% - 12px));color:var(--cat-1);filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}.kite svg{display:block;fill:currentColor}.kite:after{content:"";position:absolute;left:50%;top:16px;width:1px;height:12px;background:var(--cat-1)}.flag{position:absolute;top:0;transform:translate(-1.5px);pointer-events:none}.flag{height:100%}.flag .pole{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--text)}.flag .cloth{position:absolute;top:0;white-space:nowrap;padding:6px 10px 6px 9px;background:var(--text);color:var(--ground);font:800 14px/1 var(--sans);letter-spacing:.02em;border-radius:0 3px 3px 0;text-transform:uppercase}.flag .cloth.left{right:0;border-radius:3px 0 0 3px}.flag .cloth i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:7px;vertical-align:-1px;font-style:normal}.today{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding:24px;border-radius:var(--r-lg);background:var(--surface)}.today-head{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap}.today-head .title{flex:1;min-width:240px}.today-head h2{font:800 clamp(28px,3.4vw,40px)/1.05 var(--sans);letter-spacing:-.01em;margin-top:6px;text-wrap:balance}.facts{display:flex;gap:28px}.facts div{display:flex;flex-direction:column}.facts b{font:700 34px/1 var(--narrow);font-variant-numeric:tabular-nums}.facts span{font-size:13px;color:var(--text-2);margin-top:4px}.today .desc{color:var(--text-2);max-width:70ch;font-size:15px;white-space:pre-line}.today-actions{display:flex;gap:12px;flex-wrap:wrap}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:40px 0 12px}.section-head h2{font:800 15px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--text-2)}.rows{display:flex;flex-direction:column;border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:92px minmax(0,1.3fr) minmax(120px,1fr) 80px;align-items:center;gap:20px;padding:14px 4px;min-height:76px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;width:100%;transition:background-color .16s var(--ease)}.row:hover{background:var(--surface)}.row .date{font:700 15px var(--narrow);text-transform:uppercase;color:var(--text-2);letter-spacing:.03em}.row .date.is-today{color:var(--yellow)}.row .name{font-weight:700;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .sub{font-size:14px;color:var(--text-2)}.row .mini{height:44px}.row .dur{font:700 22px var(--narrow);text-align:right;font-variant-numeric:tabular-nums}.empty{padding:48px 24px;text-align:center;color:var(--text-2);border:1px dashed var(--line);border-radius:var(--r-lg)}.empty h3{color:var(--text);font-size:20px;margin-bottom:6px}.signin{min-height:100%;display:grid;grid-template-rows:auto 1fr}.signin-body{display:grid;place-items:center;padding:32px var(--gutter)}.signin-card{width:100%;max-width:560px;display:flex;flex-direction:column;gap:22px}.signin-card h2{font:800 clamp(30px,4vw,44px)/1.05 var(--sans);text-wrap:balance}.signin-card p{color:var(--text-2);font-size:17px;max-width:52ch}.check{display:flex;gap:14px;align-items:flex-start;padding:16px;border-radius:var(--r);background:var(--surface);cursor:pointer}.check input{width:22px;height:22px;accent-color:var(--yellow);margin:2px 0 0;flex:none}.check b{display:block}.check span{color:var(--text-2);font-size:15px}.error{color:var(--bad);font-weight:600}.devices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.8vw,22px)}.device-card{display:flex;flex-direction:column;border-radius:var(--r-lg);overflow:hidden;border:2px solid var(--line);background:var(--surface);transition:border-color .2s var(--ease),background-color .2s var(--ease)}.device-card:hover{border-color:#4a5058}.device-card[data-status=connected]{border-color:var(--yellow);background:#1e1d16}.device-card[data-status=lost]{border-color:var(--bad)}.device{position:relative;flex:1;width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-height:clamp(300px,52vh,520px);padding:28px;border:0;background:transparent;text-align:left;transition:transform .12s var(--ease)}.device:active:not(:disabled){transform:scale(.99)}.device:focus-visible{outline-offset:-4px}.device .glyph{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--text)}.device[data-status=connected] .glyph{background:var(--yellow);color:var(--yellow-ink)}.device h2{font:800 26px/1.1 var(--sans)}.device .state{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:var(--text-2)}.device .state .dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--text-3)}.device[data-status=connected] .state{color:var(--ok)}.device[data-status=connected] .state .dot{background:var(--ok);border-color:var(--ok)}.device[data-status=connecting] .state,.device[data-status=reconnecting] .state{color:var(--warn)}.device[data-status=connecting] .state .dot,.device[data-status=reconnecting] .state .dot{border-color:var(--warn);background:var(--warn);animation:blink 1s steps(2) infinite}.device[data-status=lost] .state{color:var(--bad)}.device .reading{margin-top:auto;display:flex;align-items:baseline;gap:8px}.device .reading b{font:700 clamp(56px,7vw,84px)/.9 var(--narrow);font-variant-numeric:tabular-nums}.device .reading span{color:var(--text-2);font-weight:600}.device .hint{margin-top:auto;color:var(--text-2);font-size:15px}.device .devname{color:var(--text-2);font-size:15px;margin-top:-8px}.device-foot{display:flex;gap:8px;flex-wrap:wrap;padding:0 28px 24px}.chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border-radius:var(--r);border:0;background:var(--surface-2);color:var(--text-2);font-size:14px;font-weight:600}.chip:hover{color:var(--text)}.devices-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.devices-head h2{font:800 clamp(28px,3.4vw,40px)/1.05 var(--sans)}.devices-head p{color:var(--text-2);margin-top:6px}.ride{height:100%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.ride-main{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,.8fr);padding:clamp(12px,2.5vh,28px) var(--gutter) 8px;gap:var(--gutter);min-height:0}.col{display:flex;flex-direction:column;justify-content:center;min-width:0}.col+.col{border-left:1px solid var(--line);padding-left:var(--gutter)}.target{font:700 clamp(96px,min(15vw,25vh),232px)/.86 var(--narrow);color:var(--yellow);font-variant-numeric:tabular-nums;letter-spacing:-.02em;display:flex;align-items:baseline}.target small{font-size:.24em;color:var(--text-2);margin-left:.15em;letter-spacing:0}.target.free{color:var(--text);font-size:clamp(64px,min(9vw,15vh),140px)}.actual{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:18px;color:var(--text-2)}.actual b{font:700 36px/1 var(--narrow);color:var(--text);font-variant-numeric:tabular-nums}.delta{font:700 16px var(--narrow);padding:3px 8px;border-radius:4px;background:var(--surface-2)}.delta[data-state=under]{color:var(--under)}.delta[data-state=over]{color:var(--over)}.delta[data-state=on]{color:var(--ok)}.remaining{font:700 clamp(72px,min(10vw,17vh),156px)/.9 var(--narrow);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.remaining.last10{color:var(--yellow)}.interval-name{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-weight:700;font-size:17px}.interval-name i{width:14px;height:14px;border-radius:3px;flex:none}.next{margin-top:16px;font-size:16px;color:var(--text-2)}.next b{color:var(--text);font:700 22px var(--narrow);font-variant-numeric:tabular-nums}.metric+.metric{margin-top:clamp(10px,2.4vh,24px)}.metric .v{font:700 clamp(48px,min(6vw,10vh),84px)/.95 var(--narrow);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:6px}.metric .v small{font-size:.32em;color:var(--text-2);font-weight:600}.metric .t{font-size:15px;color:var(--text-2);margin-top:2px}.metric .t b{color:var(--yellow);font-weight:700}.metric .t[data-state=off] b{color:var(--bad)}.gear{display:flex;align-items:center;gap:10px;margin-top:8px}.gear .icon-btn{width:56px;height:56px;background:var(--surface-2)}.gear .v{min-width:2ch;text-align:center}.ride-profile{padding:0 var(--gutter) max(14px,env(safe-area-inset-bottom))}.ride-profile .profile{height:clamp(150px,34vh,300px)}.ride-tools{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;min-height:48px}.ride-tools .label{display:flex;gap:16px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:var(--gutter);background:#0a0b0dd1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade .22s var(--ease)}@keyframes fade{0%{opacity:0}}.sheet{width:100%;max-width:480px;display:flex;flex-direction:column;gap:12px;padding:28px;border-radius:var(--r-lg);background:var(--surface);box-shadow:0 24px 60px #00000080}.sheet h2{font:800 30px/1.1 var(--sans);margin-bottom:4px}.sheet p{color:var(--text-2);margin-bottom:8px}.cue{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:var(--r);background:var(--yellow);color:var(--yellow-ink);font-weight:800;font-size:14px;letter-spacing:.04em;text-transform:uppercase;animation:pulse 1.6s var(--ease) infinite}.cue a{color:inherit;margin-left:6px}@keyframes pulse{50%{opacity:.7}}.summary-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:20px 0 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.summary-stats div{padding:16px 0}.summary-stats div+div{padding-left:20px;border-left:1px solid var(--line)}.summary-stats b{display:block;font:700 clamp(36px,4.4vw,52px)/1 var(--narrow);font-variant-numeric:tabular-nums}.summary-stats span{font-size:14px;color:var(--text-2)}.status{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px}.status[data-s=uploaded]{color:var(--ok)}.status[data-s=failed]{color:var(--bad)}.status[data-s=queued],.status[data-s=uploading]{color:var(--warn)}.status[data-s=local]{color:var(--text-2)}.ride-row{grid-template-columns:110px minmax(0,1fr) 110px minmax(150px,auto);cursor:default}.ride-row:hover{background:transparent}.settings{display:flex;flex-direction:column;gap:28px;max-width:640px}.field{display:flex;flex-direction:column;gap:10px}.field>span:first-child{font-weight:700}.field .help{color:var(--text-2);font-size:15px}.radio-row{display:flex;gap:8px;flex-wrap:wrap}.radio-row label{display:inline-flex;align-items:center;min-height:48px;padding:0 16px;border-radius:var(--r);background:var(--surface);cursor:pointer;font-weight:600;border:2px solid transparent}.radio-row input{position:absolute;opacity:0;pointer-events:none}.radio-row label:has(input:checked){border-color:var(--yellow);color:var(--yellow)}.radio-row label:has(input:focus-visible){outline:3px solid var(--yellow);outline-offset:2px}.input{min-height:52px;width:160px;padding:0 14px;border-radius:var(--r);border:2px solid var(--line);background:var(--surface);color:var(--text);font:700 22px var(--narrow);caret-color:var(--yellow)}.input:focus{border-color:var(--yellow);outline:none}.tools-pills{display:none}.tools-pills .pill{background:var(--surface-2);color:var(--text);height:36px}.tools-pills .pill[data-status=idle]{background:transparent;color:var(--text-3);box-shadow:inset 0 0 0 1px var(--line)}.tools-pills .pill[data-status=lost]{background:var(--bad);color:var(--yellow-ink)}@media(max-width:1000px){.ride .band .meta,.ride .band-pills .num{display:none}.ride .band-pills .pill{padding:0 10px}}@media(max-width:760px){.ride .band-pills{display:none}.ride .tools-pills{display:flex}.ride-tools{flex-wrap:wrap;gap:8px}.ride-tools .btn{min-height:44px;padding:0 10px}}@media(orientation:portrait)and (min-width:641px){.ride{grid-template-rows:auto auto minmax(0,1fr)}.ride-main{padding-top:32px;padding-bottom:24px}.ride-profile{display:flex;flex-direction:column;min-height:0}.ride-profile .profile{flex:1;height:auto;min-height:200px}}@media(max-width:900px){.ride-main{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.col.metrics{grid-column:1 / -1;flex-direction:row;gap:28px;border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:12px;justify-content:flex-start;flex-wrap:wrap}.metric+.metric{margin-top:0}.devices{grid-template-columns:1fr}.device{min-height:0;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"g h" "g s" "g n" "g r";column-gap:18px;row-gap:4px;align-items:center;padding:18px}.device .glyph{grid-area:g;width:64px;height:64px}.device h2{grid-area:h;font-size:22px}.device .state{grid-area:s}.device .devname{grid-area:n;margin-top:0;font-size:14px}.device .hint{grid-area:r;margin-top:4px;font-size:14px}.device .reading{grid-area:r;margin-top:6px}.device .reading b{font-size:48px}.device .reading span{white-space:nowrap}.device-foot{padding:0 18px 16px}.summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-stats div:nth-child(3){padding-left:0;border-left:0}}@media(max-width:640px){.profile .ticks span.near-end{display:none}.band{gap:8px}.band .meta.hide-sm,.pills.hide-sm{display:none}.row{grid-template-columns:64px minmax(0,1fr) 64px}.row .mini{display:none}.ride-row{grid-template-columns:minmax(0,1fr) auto}.ride-row .date,.ride-row .dur{display:none}.facts{gap:20px}.ride{height:auto;min-height:100%;overflow:visible}.ride .band h1{white-space:normal;font-size:16px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ride-tools .label{order:-1;width:100%}.ride-main{grid-template-columns:1fr}.ride-profile .profile{height:200px}.band .icon-btn{width:44px;height:44px}.col+.col{border-left:0;padding-left:0}.col.interval{border-top:1px solid var(--line);padding-top:10px}.seg button{min-width:56px;padding:0 10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.profile{height:100%}.featured-profile{height:clamp(140px,24vh,220px)}.summit.light{color:#fff}
