/* Vexora dark interface — app shell, scooter picker and tuning controls. */
:root{color-scheme:dark;--bg:#0b0c0f;--panel:#14161a;--panel2:#1b1e23;--line:#292d34;--text:#f3f5f7;--muted:#9ba2ad;--dim:#69717d;--accent:#c8f36a;--danger:#ff7272;--radius:18px;font-family:Montserrat,Inter,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}html{min-height:100%;background:var(--bg);scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -15%,#20242d 0,transparent 55%),var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{color:inherit}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{min-height:100vh}.top{position:sticky;top:0;z-index:30;padding:10px max(16px,calc((100vw - 1100px)/2));background:rgba(11,12,15,.9);border-bottom:1px solid rgba(255,255,255,.07);backdrop-filter:blur(18px)}.top-row{max-width:1100px;margin:auto;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:14px}.brand{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:800;letter-spacing:.02em}.brand .logo{width:30px;height:30px;object-fit:contain}.ver{font-size:10px;color:var(--muted);padding:4px 7px;border:1px solid var(--line);border-radius:99px}.meta,.status-chip{display:flex;align-items:center;gap:8px}.status-chip{font-size:12px;color:var(--muted)}.dot{width:8px;height:8px;background:#707781;border-radius:50%}.dot.on,.connected .dot{background:var(--accent);box-shadow:0 0 12px #c8f36666}.banner{max-width:1100px;margin:7px auto 0}.tabs{position:sticky;top:68px;z-index:25;display:flex;gap:5px;justify-content:center;max-width:1100px;margin:auto;padding:9px 14px;overflow-x:auto;scrollbar-width:none;background:rgba(11,12,15,.88);border-bottom:1px solid rgba(255,255,255,.06);backdrop-filter:blur(18px)}.tabs::-webkit-scrollbar{display:none}.tabs button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;white-space:nowrap;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--muted);font-weight:650;cursor:pointer;transition:.2s}.tabs button:hover{background:#ffffff0b;color:var(--text)}.tabs button.active{background:#202329;color:var(--text);border-color:#ffffff12}.tabs button.active:after{content:"";position:absolute}.tab-ic{width:17px;height:17px;fill:none}.main{max-width:1100px;margin:auto;padding:28px 20px 80px}.view{display:none;animation:fadein .24s ease}.view.active{display:block}@keyframes fadein{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:none}}.center{max-width:850px;margin:16px auto 0;padding:clamp(20px,4vw,36px);border:1px solid #ffffff12;border-radius:26px;background:linear-gradient(145deg,#171a20,#101216);box-shadow:0 24px 80px #0006;text-align:center;overflow:hidden}.center>.logo.lg{width:42px;height:42px;object-fit:contain;margin:0 auto 8px}.gate-shot{height:210px;margin:2px auto 6px;position:relative;display:flex;align-items:center;justify-content:center;perspective:800px}.gate-shot #gateShot{height:100%;max-width:min(88%,440px);object-fit:contain;filter:drop-shadow(0 24px 20px #0008);transition:transform .22s,opacity .18s}.gate-shot #gateShot[hidden]{display:none}.ring{display:none}.center h2,.page-head h2{margin:8px 0;font-size:clamp(22px,4vw,30px);letter-spacing:-.035em}.lead{color:var(--muted);line-height:1.65;margin:6px auto 16px;max-width:650px}.help,.note,.hint{color:var(--muted);font-size:12px;line-height:1.6}.scan-state{margin:8px auto 14px;display:flex;align-items:center;justify-content:center;gap:9px;color:var(--muted)}.scan-state .lead{margin:0;font-size:13px}.scan-ring{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px #c8f36a80}.row{display:flex;align-items:center;gap:9px}.row.wrap{flex-wrap:wrap}#idleActions{margin:18px auto 20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:10px 17px;border:1px solid transparent;border-radius:12px;background:var(--accent);color:#15190f;font-weight:750;font-size:13px;text-decoration:none;cursor:pointer;transition:transform .16s,background .16s,border-color .16s}.btn:hover:not(:disabled){transform:translateY(-1px);background:#d5ff7c}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{background:#ffffff08;border-color:#ffffff1c;color:var(--text)}.btn.ghost:hover:not(:disabled){background:#ffffff12}.btn.danger{background:#ef6767;color:#1b0e0e}.btn.sm{min-height:34px;padding:7px 12px;font-size:12px}.pick{max-width:740px;margin:24px auto 12px;display:flex;align-items:center;gap:8px}.pick-strip{width:100%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;overflow:visible}.pick-card{min-width:0;min-height:133px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;padding:8px 7px 12px;overflow:hidden;background:linear-gradient(160deg,#242830,#171a1f);border:1px solid #ffffff12;border-radius:15px;color:var(--muted);cursor:pointer;transition:transform .18s,border-color .18s,color .18s,background .18s}.pick-card:hover:not(:disabled){transform:translateY(-3px);color:var(--text);border-color:#ffffff35}.pick-card.is-on{background:linear-gradient(160deg,#30372a,#1b1f19);border-color:#c8f36a9c;color:var(--text);box-shadow:0 0 0 1px #c8f36220,0 12px 25px #0003}.pick-card img{height:88px;width:100%;object-fit:contain;filter:drop-shadow(0 8px 6px #0008);transition:transform .2s}.pick-card:hover img{transform:scale(1.06)}.pick-card b{font-size:11px;line-height:1.2;text-align:center;color:inherit}.pick-card:disabled{opacity:.48;cursor:not-allowed}.pick-soon{position:absolute;top:7px;right:6px;font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#d4d8df;background:#ffffff12;border-radius:99px;padding:3px 5px}.pick-chev{position:absolute;right:8px;bottom:9px;color:var(--accent)}.pick-side{display:flex;flex-direction:column;gap:6px}.pick-nav{width:27px;height:29px;border:1px solid var(--line);border-radius:8px;background:#ffffff08;color:var(--muted);cursor:pointer}.pick-which{display:flex;justify-content:center;align-items:center;gap:8px;margin:12px 0;color:var(--muted);font-size:12px}.pick-which[hidden]{display:none}.pick-which .pick-on{border-color:var(--accent);color:var(--accent)}.found-card{display:flex;align-items:center;gap:12px;max-width:440px;margin:12px auto;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);text-align:left}.found-card img{width:60px;height:54px;object-fit:contain}.found-meta{flex:1;display:grid;gap:4px}.found-sn{font-size:11px;color:var(--muted)}.gate-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:18px}.link-quiet,.linklike{border:0;background:none;color:var(--muted);font-size:12px;cursor:pointer;text-decoration:none}.link-quiet:hover,.linklike:hover{color:var(--text)}.gate-apk{display:flex;align-items:center;gap:6px}.pi{width:15px;height:15px}.page-head{margin:0 auto 18px;text-align:center}.page-head h2{margin:0 0 5px}.page-head .lead{margin:0 auto}.card{margin:12px 0;padding:20px;border:1px solid #ffffff12;border-radius:var(--radius);background:linear-gradient(145deg,#17191e,#131519);box-shadow:0 12px 32px #0002}.card h3{font-size:15px;margin:0 0 12px}.card.fold>h3{cursor:pointer}.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cols .card{margin:0}.view .row{margin-top:10px}.view input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),.view select,.view textarea{max-width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#0e1013;color:var(--text)}.view input[type=range]{accent-color:var(--accent)}.view label{color:var(--muted);font-size:12px}.view .ctrl{padding:12px;border:1px solid var(--line);border-radius:12px;background:#101216}.view .ctrl label{display:block;margin-bottom:8px}.view .ctrl input{width:100%}.overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:#050608d9;backdrop-filter:blur(12px)}.overlay[hidden]{display:none!important}.overlay[style*="display: none"]{display:none!important}.sheet{width:min(100%,500px);max-height:90vh;overflow:auto;padding:26px;border:1px solid #ffffff1c;border-radius:22px;background:#17191e;box-shadow:0 24px 90px #000b}.sheet h2{margin:0 0 10px}.sheet .logo{display:block;width:42px;height:42px;object-fit:contain;margin:0 auto 14px}.legal-body{color:var(--muted);line-height:1.7}.legal-body p{margin:10px 0}.legal-agree{display:flex;gap:10px;align-items:flex-start;margin:16px 0}.legal-agree input{accent-color:var(--accent)}.warn{color:#ff9a80;font-size:12px}.consent{position:fixed;z-index:900;bottom:16px;left:16px;right:16px;display:flex;justify-content:center}.consent[hidden]{display:none}.consent-card{width:min(100%,570px);padding:16px;border:1px solid var(--line);border-radius:16px;background:#191b20;box-shadow:0 12px 50px #0009}.consent-card p{color:var(--muted);margin:7px 0 12px}.foot{display:flex;justify-content:space-between;gap:12px;padding:18px 0;color:var(--muted);font-size:11px}.foot-links{display:flex;gap:8px}.status-chip{padding:7px 10px;border:1px solid var(--line);border-radius:99px}.cluster,.gauge{max-width:520px;margin:0 auto}.gauge{position:relative}.gauge svg{width:100%;height:auto}.g-track,.g-ptrack{fill:none;stroke:#30343b;stroke-width:9;stroke-linecap:round}.g-fill,.g-pfill{fill:none;stroke:var(--accent);stroke-width:9;stroke-linecap:round}.g-ptrack,.g-pfill{stroke-width:4}.g-ptrack{stroke:#3a3d42}.g-tick{stroke:#555b65;stroke-width:2}.g-lab{fill:#aab0ba;font-size:8px}.readout{position:absolute;left:0;right:0;top:48%;text-align:center}.speed{font-size:58px;font-weight:750;letter-spacing:-.06em}.speed small,.watts small{font-size:13px;color:var(--muted);letter-spacing:0}.watts{color:var(--accent);font-weight:700}.sess,.meta-line{text-align:center;color:var(--muted)}.trip-grid,.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.trip-grid>div,.stat{padding:13px;border:1px solid var(--line);border-radius:12px;background:#ffffff06}.trip-grid b,.stat b{display:block;font-size:18px}.trip-grid span,.stat span{font-size:11px;color:var(--muted)}.steps-list,.bullets{padding-left:22px;color:var(--muted);line-height:1.8}.faq details{padding:12px 0;border-bottom:1px solid var(--line);color:var(--muted)}.faq summary{color:var(--text);cursor:pointer}.log{height:220px;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:12px;background:#090a0c;font:12px/1.6 ui-monospace,monospace;color:#bac2cd}.view table{width:100%;border-collapse:collapse}.view th,.view td{padding:9px;border-bottom:1px solid var(--line);text-align:left}.view th{color:var(--muted);font-size:10px;text-transform:uppercase}.view img{max-width:100%}.tab-ink{display:none}.vex-bar{position:fixed;top:0;left:0;z-index:1200;height:2px;background:var(--accent);box-shadow:0 0 12px var(--accent);pointer-events:none;transition:width .3s}.vex-in{animation:fadein .3s both;animation-delay:calc(var(--i,0)*20ms)}.danger{--accent:#ff7777}.sheet.danger{border-color:#903e43}.pair-visual{height:80px;display:grid;place-items:center}.spin{width:48px;height:48px;animation:spin 1.2s linear infinite}.track{fill:none;stroke:#34383e;stroke-width:4}.arc{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-dasharray:50 70}@keyframes spin{to{transform:rotate(360deg)}}.bar{height:7px;background:#30343b;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;width:0;background:var(--accent);border-radius:inherit}.flashConfirm .warn{margin:10px 0}.consent button{margin:2px}
@media(max-width:760px){.main{padding:18px 12px 70px}.top{padding:8px 12px}.tabs{top:64px;justify-content:flex-start;padding:7px 9px}.tabs button{padding:0 12px;min-width:max-content;font-size:12px}.pick{display:block}.pick-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 12px;scrollbar-width:thin}.pick-card{flex:0 0 126px;scroll-snap-align:center}.pick-side{display:none}.gate-shot{height:175px}.center{padding:20px 14px;border-radius:20px}.cols{grid-template-columns:1fr}.card{padding:16px}.speed{font-size:48px}.trip-grid,.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.brand{font-size:14px}.brand .logo{width:26px;height:26px}.ver{display:none}.gate-shot{height:145px}.pick-card{flex-basis:112px;min-height:122px}.pick-card img{height:78px}#idleActions{gap:7px}#idleActions .btn{padding:9px 12px;font-size:12px}.row.wrap{gap:7px}.sheet{padding:20px}.trip-grid,.stats{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
