.btp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#080a0fb3;display:flex;align-items:center;justify-content:center;z-index:100}.btp{width:min(420px,90vw);background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:14px}.btp h3{margin:0}.btp-empty{margin:0;color:var(--muted);font-size:14px}.btp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:40vh;overflow-y:auto}.btp-list button{width:100%;text-align:left;font:inherit;font-weight:600;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}.btp-list button:hover{border-color:var(--accent)}.btp-actions{display:flex;justify-content:flex-end}.btp-cancel{font:inherit;font-weight:600;padding:8px 18px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer}@font-face{font-family:Saira Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./saira-condensed-vietnamese-500-normal-BO-iw4YA.woff2) format("woff2"),url(./saira-condensed-vietnamese-500-normal-CtjeXiCW.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:Saira Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./saira-condensed-latin-ext-500-normal-CIzImMjU.woff2) format("woff2"),url(./saira-condensed-latin-ext-500-normal-CgTVcJE5.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:Saira Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./saira-condensed-latin-500-normal-DIdKjHXc.woff2) format("woff2"),url(./saira-condensed-latin-500-normal-BGC7F_dX.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:Saira Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./saira-condensed-vietnamese-600-normal-DdheDV3O.woff2) format("woff2"),url(./saira-condensed-vietnamese-600-normal-Cx33h9T1.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:Saira Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./saira-condensed-latin-ext-600-normal-DwjIBGFg.woff2) format("woff2"),url(./saira-condensed-latin-ext-600-normal-BQ2ZMbdg.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:Saira Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./saira-condensed-latin-600-normal-0taFJMb7.woff2) format("woff2"),url(./saira-condensed-latin-600-normal-CJ-Ib_yI.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:Saira Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(./saira-condensed-vietnamese-700-normal-DTNtv3pg.woff2) format("woff2"),url(./saira-condensed-vietnamese-700-normal-C4pgqYLY.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:Saira Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(./saira-condensed-latin-ext-700-normal-rfs_OqX7.woff2) format("woff2"),url(./saira-condensed-latin-ext-700-normal-DPP8JZfq.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:Saira Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(./saira-condensed-latin-700-normal-BpDqMSKw.woff2) format("woff2"),url(./saira-condensed-latin-700-normal-Br1WwvhS.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}.hud{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:50}.hud-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.hud-canvas canvas{display:block}.hud-controls{position:absolute;top:21vh;right:4.5vw;display:flex;gap:8px;z-index:51}.hud-controls button{font:inherit;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.09em;padding:8px 18px;border-radius:var(--radius-sm);border:none;background:var(--accent-gradient);color:var(--accent-foreground);cursor:pointer;opacity:.92;transition:opacity .14s ease,transform .14s var(--ease-bounce)}.hud-controls button:hover{opacity:1;transform:translateY(-1px)}.hud-controls button.ghost{background:#182625d1;color:var(--text);border:1px solid var(--border)}.hud-controls button.ghost.danger{color:#ffd0cb;border-color:#e0574a80}.hud-gear{position:absolute;right:2vw;top:71%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;z-index:51}.hud-gear-btn{font:inherit;font-size:20px;line-height:1;width:58px;height:58px;border-radius:var(--radius);border:1px solid var(--border);background:#182625d9;color:var(--primary);cursor:pointer;transition:border-color .12s ease,transform .12s var(--ease-bounce)}.hud-gear-btn:hover{border-color:var(--accent);transform:scale(1.05)}.hud-gear-btn:active{transform:scale(.96)}.hud-gear-value{display:flex;flex-direction:column;align-items:center;padding:6px 0 8px}.hud-gear-num{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text);line-height:1}.hud-gear-label{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.hud-intensity .hud-gear-num{font-size:26px}.hud-intensity-pct{font-size:15px;font-weight:700;color:var(--muted);margin-left:1px}.hud-intensity-biased{color:var(--accent)}.hud-banner{position:absolute;top:18vh;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:12px 18px;border-radius:var(--radius);background:#111d1ceb;border:1px solid rgba(224,87,74,.5);color:#ffd0cb;font-size:15px;z-index:52}.hud-banner button{font:inherit;font-weight:700;padding:8px 18px;border-radius:var(--radius-sm);border:none;background:var(--accent-gradient);color:var(--accent-foreground);cursor:pointer}.hud-banner button.ghost{background:#182625d1;color:var(--text);border:1px solid var(--border);font-weight:600}.hud-banner button:disabled{opacity:.6;cursor:default}.brand-logo{display:inline-flex;align-items:center;gap:10px;color:var(--accent)}.brand-logo-mark{display:block;border-radius:22%;flex:none}.brand-logo-text{font-weight:800;letter-spacing:-.02em;color:var(--text);line-height:1}.brand-logo-rider{font-weight:700;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.login-shell{display:grid;place-items:center;min-height:100%;padding:24px}.login-card{width:100%;max-width:390px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 24px 60px -24px #0009,var(--glow);padding:34px;display:flex;flex-direction:column}.login-mark{margin-bottom:18px;box-shadow:var(--glow)}.login-card .eyebrow{margin:0}.login-title{margin:4px 0 0;font-size:44px;line-height:1;font-weight:800;letter-spacing:-.02em}.login-sub{margin:10px 0 24px;color:var(--muted);font-size:14px}.login-card label{font-size:13px;color:var(--muted);margin-bottom:6px}.login-card input{margin-bottom:16px}.login-error{margin:0 0 16px;color:#ffd0cb;background:#e0574a24;border:1px solid rgba(224,87,74,.45);padding:10px 12px;border-radius:var(--radius-sm);font-size:13px}.login-card button{font:inherit;font-weight:800;padding:13px;border-radius:var(--radius);border:none;background:var(--accent-gradient);color:var(--accent-foreground);cursor:pointer;box-shadow:var(--glow);transition:transform .12s var(--ease-bounce),box-shadow .16s ease,filter .16s ease}.login-card button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--glow-strong);filter:saturate(1.06) brightness(1.03)}.login-card button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.login-foot{margin:20px 0 0;text-align:center;color:var(--muted);font-size:12px;font-family:ui-monospace,monospace}.dpills{display:flex;align-items:center;gap:8px;min-width:0}.dpill{font:inherit;display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px 0 12px;border-radius:999px;border:1px solid var(--hairline);background:#ffffff08;color:var(--text);white-space:nowrap;cursor:pointer;transition:border-color .16s ease,background .16s ease}.dpill:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--accent);background:#00a6a414}.dpill[aria-disabled=true]{cursor:default}.dpill:disabled{cursor:default;opacity:.6}.dpill-dot{width:8px;height:8px;flex:none;border-radius:50%;background:#54625f}.dpill-connected .dpill-dot{background:var(--success);box-shadow:0 0 8px #22c08ab3}.dpill-connecting .dpill-dot{background:var(--warning);animation:dpill-pulse 1s ease-in-out infinite}@keyframes dpill-pulse{50%{opacity:.35}}.dpill-label{font-size:13px;font-weight:600}.dpill-value{font-size:13px;color:var(--accent-2);max-width:140px;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.dpill-connected .dpill-value{color:var(--muted)}.dpill-connecting .dpill-value{color:var(--warning)}@media(prefers-reduced-motion:reduce){.dpill-connecting .dpill-dot{animation:none}}@media(max-width:560px){.dpill-value{display:none}.dpill{padding:0 12px 0 10px}}.devbar-warn{max-width:calc(1440px - (2*clamp(16px,3.5vw,48px)));margin:16px auto 0;padding:10px 14px;width:calc(100% - (2*clamp(16px,3.5vw,48px)));border-radius:10px;font-size:13px;color:#fbd38d;background:#e0a93c14;border:1px solid rgba(224,169,60,.3)}.rcard{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0;padding:10px 10px 16px;border-radius:18px;border:1px solid var(--hairline);background:var(--glass);box-shadow:var(--shadow-float);transition:transform .2s var(--ease-out),border-color .18s ease,box-shadow .22s ease}.rcard:hover{transform:translateY(-3px);border-color:var(--hairline-strong);box-shadow:var(--shadow-float),0 18px 40px -24px #00a6a473}.rcard.is-selected{border-color:transparent;box-shadow:0 0 0 2px var(--accent),var(--glow-strong)}.rcard-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;padding:0;border:none;border-radius:inherit;background:transparent;cursor:pointer}.rcard-hit:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}.rcard.is-loading .rcard-hit{cursor:progress}.rcard-art{position:relative;aspect-ratio:220 / 120;border-radius:12px;background:radial-gradient(rgba(229,237,236,.06) 1px,transparent 1.2px) 0 0 / 14px 14px,#050a0a80;overflow:hidden}.rcard-art-ph{position:absolute;top:0;right:0;bottom:0;left:0}.rcard-badge{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);background:#0b1211b8;border:1px solid var(--hairline);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.rcard-check{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;color:var(--accent-foreground);background:var(--accent-gradient);box-shadow:var(--glow)}.rcard-check svg{width:14px;height:14px}.rcard-spinner{position:absolute;top:50%;left:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;border:2.5px solid rgba(229,237,236,.15);border-top-color:var(--accent);animation:spin .8s linear infinite}.rcard.is-loading .rcard-art>svg{opacity:.35}.rcard-profile{height:36px;padding:0 2px}.rcard-profile .eprof{height:36px}.rcard-profile-ph{height:100%;border-radius:6px}.rcard-text{display:flex;flex-direction:column;gap:4px;padding:0 6px;min-width:0}.rcard-title{margin:0;font-family:var(--font-display);font-weight:600;font-size:21px;line-height:1.1;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rcard-sub{margin:0;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rcard-stats{display:flex;align-items:baseline;gap:16px;margin-top:6px;font-size:13px;color:var(--muted)}.rcard-stats b{font-family:var(--font-display);font-weight:600;font-size:19px;color:var(--text);font-variant-numeric:tabular-nums}.rcard-up{width:9px;height:9px;margin-left:4px;color:var(--muted)}.rcard-error{margin:4px 0 0;font-size:12px;color:#f3a79e}.rcard-del{position:absolute;z-index:2;right:10px;bottom:12px;display:grid;place-items:center;width:32px;height:32px;padding:0;border-radius:10px;border:1px solid var(--hairline);background:#0b121199;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .16s ease,color .16s ease,border-color .16s ease}.rcard-del svg{width:16px;height:16px}.rcard:hover .rcard-del,.rcard:focus-within .rcard-del{opacity:1}.rcard-del:hover{color:var(--danger);border-color:#e0574a80}@media(hover:none){.rcard-del{opacity:1}}.rcard-confirm{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:20px;border-radius:inherit;background:#0b1211eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:rcard-fade .16s ease}.rcard-confirm p{margin:0;font-size:14px;line-height:1.45;color:var(--muted)}.rcard-confirm strong{color:var(--text)}.rcard-confirm-actions{display:flex;gap:8px}.rcard-confirm-actions button{flex:1}.rcard-confirm-del{font:inherit;font-weight:700;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid rgba(224,87,74,.6);background:#e0574a29;color:#ffb4ab;cursor:pointer;transition:background .15s ease}.rcard-confirm-del:hover:not(:disabled){background:#e0574a47}@keyframes rcard-fade{0%{opacity:0}}.rcard-skeleton{min-height:260px}.addcard{position:relative;display:flex;flex-direction:column;min-height:260px;border-radius:18px;border:1.5px dashed rgba(116,216,209,.25);background:#00a6a408;transition:border-color .18s ease,background .18s ease}.addcard:hover,.addcard.is-drag{border-color:var(--accent);background:#00a6a414}.addcard.is-error{border-color:#e0574a8c}.addcard-hit{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px 20px;font:inherit;color:inherit;text-align:center;border:none;border-radius:inherit;background:none;cursor:pointer}.addcard-hit:disabled{cursor:progress}.addcard-icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:6px;border-radius:50%;color:var(--primary);background:#00a6a424;border:1px solid rgba(0,166,164,.35);transition:transform .2s var(--ease-out)}.addcard-icon svg{width:24px;height:24px}.addcard:hover .addcard-icon{transform:scale(1.06)}.addcard-spinner{position:static;margin:0 0 12px;width:40px;height:40px}.addcard-title{font-family:var(--font-display);font-weight:600;font-size:21px}.addcard-sub{max-width:220px;font-size:13px;color:var(--muted);overflow-wrap:anywhere}.addcard-error{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0 12px 12px;padding:10px 12px;border-radius:10px;background:#e0574a1a;border:1px solid rgba(224,87,74,.3)}.addcard-error p{margin:0;font-size:13px;line-height:1.4;color:#f3c2bc;overflow-wrap:anywhere}.addcard-error strong{color:#ffd9d4}.addcard-error .hero-link{padding:0;font-size:13px}@media(max-width:620px){.rcard-title,.addcard-title{font-size:18px}.rcard-stats{gap:10px}.rcard-stats b{font-size:16px}.addcard,.rcard-skeleton{min-height:200px}}.hero{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:28px;padding:clamp(20px,2.6vw,36px);border-radius:24px;border:1px solid var(--hairline);background:var(--glass);box-shadow:var(--shadow-float);overflow:hidden}.hero:before{content:"";position:absolute;inset:-40% auto auto -10%;width:70%;height:120%;z-index:-1;background:radial-gradient(closest-side,rgba(0,166,164,.14),transparent);pointer-events:none}.hero-body{display:grid;grid-template-columns:minmax(260px,460px) minmax(0,1fr);gap:clamp(24px,3.5vw,56px);align-items:center}.hero-preset .hero-body{grid-template-columns:minmax(0,1fr)}.hero-map{position:relative;aspect-ratio:1;border-radius:20px;border:1px solid var(--hairline);background:radial-gradient(circle at 50% 50%,rgba(0,166,164,.1),transparent 70%),radial-gradient(rgba(229,237,236,.07) 1px,transparent 1.2px) 0 0 / 20px 20px,#050a0a73;overflow:hidden}.rshape{display:block;width:100%;height:100%}.rshape-start{fill:var(--accent);stroke:#e9fffd;stroke-width:2}.rshape-finish{fill:var(--bg);stroke:#e9fffd;stroke-width:2}.rshape-card .rshape-start,.rshape-card .rshape-finish{stroke-width:1.4}.rshape-empty text{fill:var(--muted);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.hero-map-wrap{display:flex;flex-direction:column;gap:10px;min-width:0}.hero-map-legend{display:flex;padding:0 4px;gap:14px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.hero-map-legend span{display:inline-flex;align-items:center;gap:6px}.hero-map-legend i{width:9px;height:9px;border-radius:50%;border:1.5px solid #e9fffd}.hero-map-legend .lg-start{background:var(--accent)}.hero-map-legend .lg-finish{background:var(--bg)}.hero-map-loop{margin-left:auto}.hero-info{display:flex;flex-direction:column;gap:18px;min-width:0}.hero-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}.hero-place{font-size:14px;color:var(--muted)}.hero-title{margin:-4px 0 0;font-family:var(--font-display);font-weight:700;font-size:clamp(40px,4.6vw,68px);line-height:.95;letter-spacing:.005em;color:var(--text);overflow-wrap:anywhere}.hero-blurb{margin:0;max-width:60ch;font-size:16px;line-height:1.55;color:#b4c4c1}.hero-stats{display:flex;flex-wrap:wrap;gap:14px 40px;padding:18px 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.hero-stat{display:flex;flex-direction:column;gap:4px}.hero-stat-label{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.hero-stat-value{font-family:var(--font-display);font-weight:600;font-size:46px;line-height:1;color:var(--text);font-variant-numeric:tabular-nums}.hero-stat-unit{margin-left:4px;font-size:17px;font-weight:500;color:var(--muted)}.hero-note{margin:0;font-size:13px;color:var(--warning)}.hero-actions{display:flex;flex-direction:column;gap:12px;padding-top:4px}.hero-buttons{display:flex;flex-wrap:wrap;gap:12px}.hero-btn{font:inherit;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 28px;border-radius:14px;font-size:16px;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:transform .18s var(--ease-out),box-shadow .2s ease,filter .18s ease,border-color .18s ease}.hero-btn svg{width:15px;height:15px}.hero-btn-primary{border:none;color:var(--accent-foreground);background:var(--accent-gradient);box-shadow:var(--glow)}.hero-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--glow-strong);filter:saturate(1.06) brightness(1.04)}.hero-btn-secondary{color:var(--text);border:1px solid var(--hairline-strong);background:#ffffff08}.hero-btn-secondary:hover:not(:disabled){transform:translateY(-2px);border-color:var(--accent);color:var(--primary)}.hero-btn:active:not(:disabled){transform:translateY(0) scale(.985)}.hero-btn:disabled{cursor:not-allowed;color:var(--muted);background:#ffffff08;border:1px solid var(--hairline);box-shadow:none}.hero-hint{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:0;font-size:14px;color:var(--muted)}.hero-hint-dot{width:7px;height:7px;border-radius:50%;background:var(--warning);box-shadow:0 0 8px #e0a93c99}.hero-hint-ready{display:block;line-height:1.5}.hero-hint-ready strong{color:var(--text);font-weight:600}.hero-hint-warn{color:var(--warning)}.hero-link{font:inherit;font-weight:600;padding:2px 4px;border:none;border-radius:6px;background:none;color:var(--accent-2);cursor:pointer;text-decoration:underline;text-decoration-color:#19b6d866;text-underline-offset:3px;transition:color .15s ease}.hero-link:hover{color:var(--primary)}.hero-profile{position:relative;display:flex;flex-direction:column;gap:8px}.eprof{display:block;width:100%}.hero-profile .eprof{height:140px}.hero-profile-alt{position:absolute;top:0;left:0;bottom:30px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;font-family:var(--font-display);font-size:13px;font-weight:500;color:var(--muted)}.hero-profile-alt span{padding:1px 6px;border-radius:6px;background:#0b121199}.hero-profile-axis{display:flex;justify-content:space-between;padding-top:8px;border-top:1px solid var(--hairline);font-family:var(--font-display);font-size:13px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}@media(max-width:1100px){.hero-body{grid-template-columns:minmax(220px,340px) minmax(0,1fr)}.hero-stat-value{font-size:38px}.hero-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 28px}}@media(max-width:720px){.hero{border-radius:20px}.hero-body{grid-template-columns:minmax(0,1fr)}.hero-map{aspect-ratio:4 / 3}.hero-stat-value{font-size:34px}.hero-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.hero-btn{flex:1 1 100%}.hero-profile .eprof{height:100px}}.rs{display:flex;flex-direction:column;gap:20px}.rs-feedback{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 16px;padding:16px 18px;border:1px solid var(--hairline);border-radius:var(--radius);background:linear-gradient(135deg,#00a6a41a,#19b6d808)}.rs-feedback-label{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.rs-feedback-value{grid-row:span 2;font-family:var(--font-display);font-weight:600;font-size:40px;line-height:1;color:var(--text);font-variant-numeric:tabular-nums}.rs-feedback-value small{font-size:15px;font-weight:500;color:var(--muted);margin-left:4px}.rs-feedback-meta{font-size:13px;color:var(--primary);font-variant-numeric:tabular-nums}.rs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 16px}.rs-field{display:flex;flex-direction:column;gap:7px}.rs-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.rs-input{display:flex;align-items:center;gap:8px}.rs-input input{width:100%;min-width:0;background:#ffffff05;font-variant-numeric:tabular-nums}.rs-unit{color:var(--muted);font-size:13px;white-space:nowrap}.rs-toggle{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;font-weight:600;background:transparent;border:none;border-radius:6px;color:var(--muted);cursor:pointer;padding:2px 0;transition:color .15s ease}.rs-toggle svg{width:12px;height:12px;transition:transform .18s ease}.rs-toggle[aria-expanded=true] svg{transform:rotate(90deg)}.rs-toggle:hover{color:var(--text)}.rs-toggle:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}.topbar{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--hairline);background:#0b1211b8;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1440px;height:64px;margin:0 auto;padding:0 clamp(16px,3.5vw,48px)}.topbar-right{display:flex;align-items:center;gap:12px;min-width:0}.umenu{position:relative}.umenu-btn{font:inherit;display:flex;align-items:center;gap:10px;height:40px;padding:0 10px 0 4px;border-radius:999px;border:1px solid var(--hairline);background:#ffffff08;color:var(--text);cursor:pointer;transition:border-color .16s ease,background .16s ease}.umenu-btn:hover,.umenu-btn[aria-expanded=true]{border-color:var(--hairline-strong);background:#ffffff0d}.umenu-avatar{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--accent-foreground);background:var(--accent-gradient)}.umenu-who{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;min-width:0}.umenu-name{font-size:13px;font-weight:600;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.umenu-org{font-size:11px;color:var(--muted);max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.umenu-chev{width:12px;height:12px;color:var(--muted);transition:transform .18s ease}.umenu-btn[aria-expanded=true] .umenu-chev{transform:rotate(180deg)}.umenu-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:30;display:flex;flex-direction:column;min-width:240px;padding:6px;border-radius:14px;border:1px solid var(--hairline);background:#111d1cf7;box-shadow:0 20px 50px -20px #000c;animation:umenu-in .16s var(--ease-out);transform-origin:top right}@keyframes umenu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.umenu-head{display:flex;flex-direction:column;gap:2px;padding:10px 12px 12px;margin-bottom:4px;border-bottom:1px solid var(--hairline)}.umenu-head .umenu-name,.umenu-head .umenu-org{max-width:260px}.umenu-item{font:inherit;display:block;width:100%;padding:10px 12px;border:none;border-radius:9px;background:none;color:var(--text);font-size:14px;text-align:left;text-decoration:none;cursor:pointer;transition:background .14s ease,color .14s ease}.umenu-item:hover{background:#ffffff0d}.umenu-sep{height:1px;margin:4px 6px;background:var(--hairline)}.umenu-danger:hover{color:var(--danger)}.drawer-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none}.drawer-root.is-open{pointer-events:auto}.drawer-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#03080899;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;transition:opacity .22s ease}.drawer-root.is-open .drawer-overlay{opacity:1}.drawer{position:absolute;top:0;right:0;bottom:0;display:flex;flex-direction:column;gap:20px;width:min(460px,100vw);padding:28px;overflow-y:auto;border-left:1px solid var(--hairline);background:linear-gradient(180deg,#132120,#0f1a19);box-shadow:-30px 0 60px -30px #000c;transform:translate(100%);transition:transform .24s var(--ease-out)}.drawer:focus{outline:none}.drawer-root.is-open .drawer{transform:translate(0)}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.drawer-title{margin:6px 0 0;font-family:var(--font-display);font-weight:600;font-size:32px;line-height:1}.drawer-lede{margin:-6px 0 0;font-size:14px;line-height:1.5;color:var(--muted)}.icon-btn{display:grid;place-items:center;width:36px;height:36px;flex:none;padding:0;border-radius:10px;border:1px solid var(--hairline);background:#ffffff08;color:var(--muted);cursor:pointer;transition:color .15s ease,border-color .15s ease}.icon-btn svg{width:16px;height:16px}.icon-btn:hover{color:var(--text);border-color:var(--hairline-strong)}@media(max-width:760px){.umenu-who{display:none}.umenu-btn{padding-right:8px}}@media(max-width:480px){.topbar-brand .brand-logo-text{display:none}.drawer{padding:20px 16px}}.wp{display:flex;flex-direction:column;gap:18px}.wp-workout{display:flex;flex-direction:column;gap:18px;padding:clamp(18px,2vw,28px);border-radius:20px;border:1px solid var(--hairline);background:var(--glass);box-shadow:var(--shadow-float)}.wp-controls{display:flex;gap:24px;flex-wrap:wrap}.wp-field{display:flex;align-items:center;gap:8px}.wp-field label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.wp-field input{font:inherit;padding:8px 10px;border-radius:10px;border:1px solid var(--hairline);background:#ffffff05;color:var(--text);color-scheme:dark}.wp-field input[type=number]{width:110px}.wp-controls button{font:inherit;font-weight:600;padding:8px 16px;border-radius:10px;border:1px solid rgba(0,166,164,.55);background:#00a6a424;color:var(--primary);cursor:pointer;transition:background .15s ease,border-color .15s ease}.wp-controls button:hover:not(:disabled){background:#00a6a43d}.wp-controls button.ghost{background:transparent;color:var(--text);border-color:var(--hairline)}.wp-controls button:disabled{opacity:.4;cursor:not-allowed}.wp-msg{display:grid;place-items:center;align-content:center;min-height:140px;background:var(--glass);border:1px solid var(--hairline);border-radius:20px;text-align:center;padding:24px}.wp-error h3{margin:0 0 6px;font-family:var(--font-display);font-weight:600;font-size:22px;color:#ffcfc9}.wp-error p{margin:0 0 14px;color:var(--muted)}.wp-retry{font:inherit;font-weight:600;padding:8px 18px;border-radius:10px;border:1px solid var(--hairline-strong);background:transparent;color:var(--primary);cursor:pointer}.wp-empty h3{margin:0 0 6px;font-family:var(--font-display);font-weight:600;font-size:24px}.wp-empty p{margin:0;color:var(--muted)}.wp-note{font-size:13px;margin-top:8px!important}.wp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 32px;flex-wrap:wrap}.wp-head-text{min-width:0}.wp-head h2{margin:8px 0 0;font-family:var(--font-display);font-size:clamp(32px,3.4vw,48px);font-weight:700;line-height:.98;overflow-wrap:anywhere}.wp-meta{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:14px}.wp-start{display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:100%}.wp-start-btn{max-width:min(440px,100%)}.wp-start-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-stats{display:flex;flex-wrap:wrap;gap:14px 44px;padding:16px 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.wp-stat{display:flex;flex-direction:column;gap:4px}.wp-stat-label{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.wp-stat-value{font-family:var(--font-display);font-weight:600;font-size:38px;line-height:1;font-variant-numeric:tabular-nums}.wp-stat-unit{margin-left:4px;font-size:16px;font-weight:500;color:var(--muted)}.wp-profile{display:flex;flex-direction:column;gap:8px}.wp-axis{display:flex;justify-content:space-between;padding:0 8px;font-family:var(--font-display);font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.disc{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;border:1px solid var(--hairline);background:#19b6d81a;color:var(--accent-2)}.disc-bike{background:#00a6a41f;color:var(--primary);border-color:#00a6a466}.wp-warn{background:#3a2d1d;border:1px solid #854d0e;color:#fcd34d;padding:10px 14px;border-radius:10px;font-size:13px}.profile-bar{display:flex;align-items:flex-end;gap:1px;height:160px;padding:8px;background:#050a0a66;border:1px solid var(--hairline);border-radius:14px}.profile-block{border-radius:2px 2px 0 0;transition:opacity .1s}.profile-block:hover{opacity:.8}.profile-block.active{outline:2px solid #e6edf3;outline-offset:-1px;box-shadow:0 0 12px #e6edf366}.wp-steps li.active{background:#00a6a41f;box-shadow:inset 3px 0 0 var(--accent)}.wp-steps{margin:0;padding:0;list-style:none;border:1px solid var(--hairline);border-radius:14px;overflow:hidden}.wp-steps li{display:grid;grid-template-columns:4px 28px 1fr auto auto;gap:14px;align-items:center;padding:10px 16px;background:#050a0a4d;border-top:1px solid var(--hairline);font-size:14px}.wp-steps li:first-child{border-top:none}.wp-steps li.rest{color:var(--muted)}.wp-step-n{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.wp-step-swatch{align-self:stretch;border-radius:2px}.wp-rep{margin-left:10px;padding:2px 8px;border-radius:999px;border:1px solid var(--hairline);color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em;white-space:nowrap}@media(max-width:640px){.wp-start{align-items:stretch;width:100%}.wp-steps li{grid-template-columns:4px 22px 1fr auto}.wp-step-dur{display:none}}.wp-step-dur{font-variant-numeric:tabular-nums;color:var(--muted)}.wp-step-target{font-variant-numeric:tabular-nums;font-weight:600;min-width:90px;text-align:right}.sum{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px 22px;display:flex;flex-direction:column;gap:18px}.sum-head h2{margin:2px 0 4px;font-size:26px}.sum-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(--accent);font-weight:600}.sum-when{color:var(--muted);font-size:14px}.sum-note{margin:0;padding:10px 12px;border-radius:8px;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);font-size:14px}.sum-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:14px 10px}.sum-graph{width:100%;border-radius:10px;border:1px solid var(--border)}.sum-stat{display:flex;flex-direction:column;gap:2px}.sum-stat-value{font-size:24px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.sum-stat-unit{font-size:13px;font-weight:400;color:var(--muted);margin-left:4px}.sum-stat-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.sum-uploads{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.sum-gate{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2)}.sum-gate-strava{display:inline-flex;align-items:center;gap:8px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.sum-gate-strava input{accent-color:var(--accent);width:16px;height:16px;margin:0}.sum-gate-count{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.sum-gate button{font:inherit;font-size:13px;font-weight:700;padding:7px 14px;border-radius:var(--radius-sm);border:none;background:var(--accent-gradient);color:var(--accent-foreground);cursor:pointer;margin-left:auto}.sum-chip{padding:5px 12px;border-radius:999px;font-size:13px;border:1px solid var(--border);background:var(--bg)}.sum-ok{color:#4ade80;border-color:color-mix(in srgb,#22c08a 45%,transparent);background:color-mix(in srgb,#22c08a 12%,transparent)}.sum-warn{color:#fbbf24;border-color:color-mix(in srgb,#e0a93c 45%,transparent);background:color-mix(in srgb,#e0a93c 12%,transparent)}.sum-err{color:#ffcfc9;border-color:color-mix(in srgb,#e0574a 45%,transparent);background:color-mix(in srgb,#e0574a 12%,transparent)}.sum-muted{color:var(--muted)}.sum-error{color:#ffcfc9;font-size:13px}.sum-actions{display:flex;gap:10px;border-top:1px solid var(--border);padding-top:16px}.ride :focus-visible,.drawer-root :focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.msec{display:flex;flex-direction:column;gap:20px;min-width:0}.msec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}.msec-title{margin:0;font-family:var(--font-display);font-weight:600;font-size:30px;line-height:1.05;letter-spacing:.01em;color:var(--text)}.msec-sub{margin:6px 0 0;font-size:14px;color:var(--muted)}.msec-fine{margin:-4px 0 0;font-size:12px;color:var(--muted)}.chip{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--hairline);background:#ffffff08;white-space:nowrap}.chip-accent{color:var(--primary);border-color:#00a6a466;background:#00a6a41f}.chips{display:flex;flex-wrap:wrap;gap:8px}.fchip{font:inherit;font-size:13px;font-weight:600;height:34px;padding:0 16px;border-radius:999px;border:1px solid var(--hairline);background:#ffffff05;color:var(--muted);cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease}.fchip:hover{color:var(--text);border-color:var(--hairline-strong)}.fchip.is-on{color:var(--primary);border-color:#00a6a48c;background:#00a6a424}.rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:18px}.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.tcard{font:inherit;color:inherit;text-align:left;display:flex;flex-direction:column;gap:10px;padding:14px 16px 12px;border-radius:var(--radius);border:1px solid var(--hairline);background:var(--glass);cursor:pointer;transition:transform .2s var(--ease-out),border-color .18s ease,box-shadow .2s ease}.tcard .eprof{width:100%;height:34px;display:block}.tcard:hover{transform:translateY(-2px);border-color:var(--hairline-strong)}.tcard.is-selected{border-color:transparent;box-shadow:0 0 0 2px var(--accent),var(--glow)}.tcard-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.tcard-name{font-family:var(--font-display);font-weight:600;font-size:19px}.tcard-peak{font-size:12px;color:var(--muted)}.tcard-peak b{font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--text)}.mnotice{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:12px 12px 12px 16px;border-radius:var(--radius);border:1px solid rgba(224,87,74,.35);background:#e0574a14;font-size:14px;color:#f3c2bc}.rempty{grid-column:span 2;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:20px 24px;border-radius:18px;color:var(--muted);font-size:14px;line-height:1.5}.rempty p{margin:0;max-width:420px}.rempty .rempty-title{font-family:var(--font-display);font-weight:600;font-size:20px;color:var(--text)}@media(max-width:620px){.rempty{grid-column:auto;padding:4px 4px 0}.msec-title{font-size:26px}.rgrid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.tgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.shimmer{background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.05) 50%,transparent 80%) 0 0 / 200% 100%,#ffffff05;animation:menu-shimmer 1.4s linear infinite}@keyframes menu-shimmer{0%{background-position:200% 0,0 0}to{background-position:-200% 0,0 0}}@media(prefers-reduced-motion:reduce){.ride *,.ride *:before,.ride *:after,.drawer-root,.drawer-root *{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ride .rcard:hover,.ride .tcard:hover,.ride .hero-btn:hover{transform:none!important}}.ride{min-height:100%}.ride-main{display:flex;flex-direction:column;gap:56px;width:100%;max-width:1440px;margin:0 auto;padding:32px clamp(16px,3.5vw,48px) 96px}.ride-summary-wrap{width:100%;max-width:880px;margin:0 auto;padding-top:12px}.ride-picker{border:1px solid var(--hairline);border-radius:var(--radius);background:var(--glass);padding:14px 18px}.ride-picker>summary{cursor:pointer;color:var(--muted);font-size:14px;font-weight:600;-webkit-user-select:none;user-select:none;border-radius:6px;transition:color .15s ease}.ride-picker>summary:hover{color:var(--text)}.ride-picker[open]>summary{margin-bottom:14px}.resume-card{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:18px 20px;margin-bottom:-24px;border:1px solid rgba(0,166,164,.55);border-radius:18px;background:linear-gradient(100deg,#00a6a42e,#19b6d80d 60%),var(--panel);box-shadow:var(--glow)}.resume-icon{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;color:var(--primary);background:#00a6a429}.resume-icon svg{width:24px;height:24px}.resume-text{display:flex;flex-direction:column;gap:3px;line-height:1.35;flex:1;min-width:220px}.resume-text strong{font-family:var(--font-display);font-weight:600;font-size:22px}.resume-text span{font-size:14px;color:var(--muted)}.resume-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.resume-btn{font:inherit;font-size:15px;font-weight:700;padding:12px 24px;border-radius:12px;border:none;color:var(--accent-foreground);background:var(--accent-gradient);cursor:pointer;box-shadow:var(--glow);transition:transform .16s var(--ease-out),box-shadow .16s ease}.resume-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--glow-strong)}.resume-btn:disabled{opacity:.6;cursor:default}@media(max-width:620px){.ride-main{gap:44px;padding-top:20px}}.debug{max-width:880px;margin:0 auto;padding:24px 20px 48px;display:flex;flex-direction:column;gap:20px}.debug-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.debug-head h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.02em}.debug-head .sub{color:var(--muted);font-weight:500;font-size:18px}.phase{margin:4px 0 0;color:var(--accent);font-size:13px}.statuses{display:flex;gap:8px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--border);font-size:13px;text-transform:capitalize}.badge .dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.badge-connected .dot{background:#22c08a}.badge-connecting .dot{background:#e0a93c;animation:pulse 1s infinite}.badge-disconnected .dot{background:#6b7280}@keyframes pulse{50%{opacity:.3}}.warn{background:#2c1512;border:1px solid #7a2b26;color:#ffcfc9;padding:12px 16px;border-radius:10px;font-size:14px}.warn code{background:#0000004d;padding:1px 5px;border-radius:4px}.device-name{margin:0;color:var(--muted);font-size:14px}.hr-sources{margin:0;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.hr-sources strong{color:var(--primary)}.controls{display:flex;gap:10px;flex-wrap:wrap}button{font:inherit;font-weight:600;padding:10px 18px;border-radius:10px;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer}button:hover:not(:disabled){filter:brightness(1.1)}button:disabled{opacity:.4;cursor:not-allowed}button.ghost{background:transparent;color:var(--text);border-color:var(--border)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:14px;overflow:hidden}@media(max-width:640px){.metrics{grid-template-columns:repeat(2,1fr)}}.metric{background:var(--panel);padding:22px 16px;text-align:center}.metric-value{font-size:52px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.metric-unit{font-size:16px;font-weight:500;color:var(--muted);margin-left:4px}.metric-label{margin-top:10px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.erg{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px}.erg>label{display:block;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}.erg-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.erg-row input{font:inherit;width:120px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-variant-numeric:tabular-nums;font-size:18px}.erg-unit{color:var(--muted);margin-right:6px}.erg-current{margin:14px 0 0;color:var(--muted);font-size:14px}.erg-current .dist{color:var(--muted)}.logbox{background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden}.logbox-head{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.log{margin:0;padding:8px;list-style:none;max-height:280px;overflow-y:auto;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.log li{display:flex;gap:12px;padding:4px 8px;border-radius:6px}.log-t{color:var(--muted);flex-shrink:0}.log-ack .log-msg{color:#4ade80}.log-error .log-msg{color:#f87171}.log-empty{color:var(--muted);justify-content:center}.debug-foot{text-align:center;color:var(--muted);font-size:12px;font-family:ui-monospace,monospace}:root{color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--bg: #0b1211;--panel: #111d1c;--panel-2: #182625;--border: #22322f;--text: #e5edec;--muted: #7f9491;--accent: #00a6a4;--accent-2: #19b6d8;--primary: #74d8d1;--brand: #004c4d;--accent-foreground: #04211f;--danger: #e0574a;--success: #22c08a;--warning: #e0a93c;--accent-gradient: linear-gradient(100deg, var(--accent), var(--accent-2));--glow: 0 10px 30px -12px rgba(0, 166, 164, .45);--glow-strong: 0 14px 34px -10px rgba(0, 166, 164, .55);--radius-lg: 20px;--radius: 14px;--radius-sm: 10px;--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 0 0 1px rgba(255, 255, 255, .02);--hairline: rgba(229, 237, 236, .08);--hairline-strong: rgba(116, 216, 209, .28);--glass: linear-gradient(180deg, rgba(24, 38, 37, .78), rgba(17, 29, 28, .62));--shadow-float: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 24px 48px -28px rgba(0, 0, 0, .7);--ease-out: cubic-bezier(.2, .8, .2, 1);--font-display: "Saira Condensed", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 100% -10%,rgba(0,166,164,.06),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(25,182,216,.05),transparent 55%),var(--bg);background-attachment:fixed;color:var(--text);-webkit-font-smoothing:antialiased}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:700;color:var(--accent);margin:0}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.btn-primary{font:inherit;font-weight:700;color:var(--accent-foreground);background:var(--accent-gradient);border:none;border-radius:var(--radius);padding:12px 22px;cursor:pointer;transition:transform .12s var(--ease-bounce),box-shadow .16s ease,filter .16s ease}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--glow);filter:saturate(1.06) brightness(1.03)}.btn-primary:active:not(:disabled){transform:translateY(0) scale(.99)}.btn-primary:disabled{background:var(--panel-2);color:var(--muted);border:1px solid var(--border);cursor:default}button.ghost{font:inherit;font-weight:600;padding:9px 16px;border-radius:var(--radius-sm);background:transparent;color:var(--text);border:1px solid var(--border);cursor:pointer;transition:border-color .16s ease,color .16s ease,background .16s ease}button.ghost:hover{border-color:var(--accent);color:var(--primary)}button.ghost.danger:hover{border-color:var(--danger);color:var(--danger)}input,select{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;transition:border-color .14s ease,box-shadow .14s ease}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #00a6a42e}::selection{background:#00a6a44d}.auth-loading{display:grid;place-items:center;min-height:100%}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
