*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#0e0e10;color:#f3f3f6;font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#8eb6ff}img{max-width:100%}[hidden]{display:none!important}.app{min-height:100vh;max-width:1300px;margin:auto}.top{padding:12px 18px;background:#15151b;border-bottom:1px solid #2b2b35;position:sticky;top:0;z-index:10}.top-row,.brand,.meta,.tabs,.row,.status-chip{display:flex;align-items:center;gap:12px}.top-row{justify-content:space-between}.brand{font-weight:800;font-size:20px}.brand img,.logo{width:34px;height:34px;object-fit:contain}.logo.lg{width:76px;height:76px}.ver,.sn{font-size:12px;color:#9293a4}.status-chip{font-size:12px;color:#b5b7c7}.dot{width:8px;height:8px;border-radius:50%;background:#777}.tabs{overflow-x:auto;gap:4px;padding:8px 10px;background:#15151b;border-bottom:1px solid #2b2b35;scrollbar-width:none}.tabs button{border:0;border-radius:10px;padding:9px 12px;background:transparent;color:#a5a5b5;white-space:nowrap;display:flex;align-items:center;gap:7px}.tabs button.active,.tabs button:hover{background:#292936;color:white}.tab-ic{width:17px;height:17px}.main{padding:20px;max-width:1100px;margin:auto}.view{display:none}.view.active{display:block}.center{text-align:center;margin:auto;max-width:780px}.center h2,h1,h2,h3{line-height:1.2}.lead,.help,.note{color:#a8a9b8}.btn,button.btn{background:#6778ed;color:white;border:1px solid #7788fa;border-radius:10px;padding:10px 16px;font-weight:600}.btn.ghost{background:#23232d;border-color:#414151;color:#eee}.btn.danger{background:#612b35;border-color:#87424e}.btn.sm{padding:5px 10px;font-size:12px}.row{flex-wrap:wrap}.gate-shot{height:190px;display:flex;align-items:center;justify-content:center;overflow:hidden}.ring-stage{display:flex;gap:14px;justify-content:center;align-items:center}.ring-tile{width:100px;margin:0;text-align:center}.ring-tile img{max-height:135px;object-fit:contain}.ring-tile figcaption{font-size:12px;color:#aaa}.pick{display:flex;justify-content:center;gap:8px;margin:20px auto}.pick-strip{display:flex;overflow:auto;gap:8px;padding:8px;max-width:100%}.pick-card{min-width:105px;max-width:140px;background:#1b1b24;color:#e8e8f0;border:1px solid #353543;border-radius:12px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px}.pick-card img{height:80px;object-fit:contain}.pick-card.is-on{border-color:#7a8bff;background:#282a42}.pick-side{display:none}.scan-state{display:flex;align-items:center;justify-content:center;gap:12px}.scan-ring{width:12px;height:12px;border-radius:50%;background:#6e7ff5}.gate-links{margin:20px}.link-quiet{background:none;border:0;color:#aaa;text-decoration:underline}.card,.panel,.box,.section,.tile,.modal-content{background:#1b1b23;border:1px solid #32323e;border-radius:14px;padding:16px;margin:10px 0}input,select,textarea{background:#242430;color:#fff;border:1px solid #48485a;border-radius:8px;padding:9px;max-width:100%}label{color:#c5c5d1}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.muted,small{color:#a5a5b2}hr{border:0;border-top:1px solid #343441}table{width:100%;border-collapse:collapse}td,th{padding:9px;border-bottom:1px solid #353541;text-align:left}#vexBoot{background:#0e0e10}.vex-boot{display:flex;min-height:100vh;flex-direction:column;justify-content:center;align-items:center;gap:14px}.vex-boot-mark img{width:64px}.vex-boot-word{font-size:28px;font-weight:800}.vex-boot-bar{width:130px;height:4px;background:#292934;border-radius:5px;overflow:hidden}.vex-boot-bar i{display:block;width:40%;height:100%;background:#7180f5;animation:load 1.3s infinite alternate}.vex-boot-note{color:#aaa}@keyframes load{to{transform:translateX(190%)}}@media(max-width:650px){.main{padding:12px}.top{padding:9px}.tabs button{padding:8px}.tab-ic{width:15px}.gate-shot{height:155px}.ring-tile{min-width:72px;width:72px}.ring-tile img{max-height:105px}.pick-card{min-width:95px}.top-row{gap:5px}.brand{font-size:17px}}

/* Vexora self-hosted: cohesive dark dashboard and mobile responsive layout */
:root{color-scheme:dark;--bg:#0c0e13;--surface:#161922;--surface2:#1d2230;--border:#303747;--text:#f4f6fa;--muted:#9ca6b8;--accent:#53c8ed;--accent2:#6882fa}
html{scroll-behavior:smooth}body{background:radial-gradient(ellipse 850px 520px at 50% -160px,#1c2a3f 0%,#0d1017 70%);color:var(--text)}
.app{max-width:1440px}.top{background:rgba(16,19,27,.94);backdrop-filter:blur(18px);border-bottom-color:#293240}.brand{letter-spacing:.35px}.brand .ver{background:#252c3a;padding:3px 7px;border-radius:6px}.status-chip{background:#202735;border:1px solid #364052;border-radius:100px;padding:6px 11px}.tabs{background:#121721;border-bottom-color:#293342;gap:8px;padding:10px max(14px,calc((100vw - 1160px)/2))}.tabs button{border:1px solid transparent;transition:background .2s,color .2s;padding:11px 15px;font-weight:650}.tabs button.active{background:linear-gradient(140deg,#203c50,#24324b);color:#eaf9ff;border-color:#427089;box-shadow:inset 0 0 0 1px #1c3545}.tabs button:hover{background:#242e40}.tab-ic{width:19px;height:19px}.main{max-width:1180px;padding:28px 22px 80px}.page-head{margin:4px 0 24px}.page-head h1,.page-head h2{font-size:clamp(24px,3vw,34px);margin:0 0 9px;letter-spacing:-.7px}.page-head p{color:var(--muted)}
.card,.panel,.box,.section,.tile,.modal-content{background:linear-gradient(155deg,#1b202b,#151922);border:1px solid #30394a;border-radius:18px;padding:21px;margin:12px 0;box-shadow:0 10px 30px #0002}.card h3{font-size:17px;margin:0 0 14px}.card.fold{overflow:hidden}.card.fold>.actions{margin-top:16px}.card.fold h3{line-height:1.45}
.btn,button.btn{background:linear-gradient(125deg,#2c89b0,#4259b4);border-color:#4a8eae;border-radius:11px;padding:11px 16px;box-shadow:0 4px 16px #14375444;transition:filter .15s,transform .15s}.btn:hover{filter:brightness(1.15)}.btn:active{transform:scale(.98)}.btn.ghost{background:#252c39;border-color:#3d485b}.btn.danger{background:#592d38}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.row.wrap{flex-wrap:wrap}
input,select,textarea{background:#111823;border:1px solid #3c485a;border-radius:10px;padding:11px 12px;min-height:40px;color:#f1f5fa}input:focus,select:focus,textarea:focus{outline:2px solid #3f9bc3;outline-offset:1px}label{font-size:13px;font-weight:650;color:#b6c2d3}.help,.note,.lead{color:#a8b5c8}.note{font-size:13px}.warn{color:#ffae9e}.kv{display:grid;gap:12px}.ctrl{display:flex;flex-direction:column;gap:7px;margin:12px 0}.ctrl .val{color:#9ecde4;font-size:13px}.stats,.trip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.stat{background:#111720;border:1px solid #2a3545;border-radius:13px;padding:15px;min-width:0}.stat .n{font-size:clamp(21px,3vw,30px);font-weight:800;letter-spacing:-.6px;color:#eff8ff}.stat .l{font-size:12px;color:#9aaabd;margin-top:5px}.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px}.cluster{display:grid;gap:16px}.gauge,.readout{background:linear-gradient(135deg,#192535,#111722);border:1px solid #304359;border-radius:20px;padding:22px}.speed{font-size:clamp(42px,7vw,76px);font-weight:850;letter-spacing:-3px}.watts{color:#8cd8f1}.trip,.bat{border-radius:14px}.pick{margin:24px auto}.pick-strip{gap:12px}.pick-card{min-width:145px;max-width:180px;min-height:150px;background:linear-gradient(145deg,#222a37,#161b25);border:1px solid #3b485a;border-radius:17px;padding:15px 10px;box-shadow:0 7px 20px #0003;justify-content:space-between}.pick-card img{height:95px;width:145px;object-fit:contain;filter:drop-shadow(0 12px 9px #0008)}.pick-card b{font-size:13px}.pick-card.is-on{border-color:#4fc5ed;background:linear-gradient(145deg,#1a3b51,#192333);box-shadow:0 0 0 1px #2c7596}.gate-shot{height:225px;overflow:visible}.ring-stage{gap:5px}.ring-tile{width:130px}.ring-tile img{max-height:155px;filter:drop-shadow(0 9px 8px #0008)}.center h2{font-size:clamp(24px,4vw,36px);letter-spacing:-.6px}.scan-state{padding:14px}.scan-ring{background:#3ed5e2;box-shadow:0 0 0 5px #3ed5e219}.found-card{background:#1c2531;border:1px solid #385268;border-radius:14px;padding:15px;display:flex;align-items:center;gap:12px}.found-card img{width:95px}.found-meta{flex:1;text-align:left}.pick-which{margin:12px}.overlay{position:fixed;inset:0;z-index:300;background:#04070bce;backdrop-filter:blur(9px);align-items:center;justify-content:center;padding:16px;overflow:auto}.sheet{width:min(100%,560px);max-height:90vh;overflow:auto;background:linear-gradient(160deg,#202937,#121820);border:1px solid #415166;border-radius:22px;padding:clamp(18px,4vw,32px);box-shadow:0 30px 90px #0009}.sheet h2{font-size:25px}.sheet .actions{margin-top:20px}.legal-sheet .logo{width:58px;height:58px}.modal{position:fixed;inset:0;z-index:200;background:#03070bc7;display:flex;align-items:center;justify-content:center;padding:15px}.view h1,.view h2,.view h3{letter-spacing:-.3px}a{text-decoration-color:#6889b9}button:disabled{opacity:.45;cursor:not-allowed}table{display:block;overflow-x:auto;white-space:nowrap}th{color:#c2d0e1;background:#202836}td{color:#e1e8f1}hr{border-color:#303b4b}
@media(min-width:850px){.cluster{grid-template-columns:1fr 1fr}.top{padding:14px 26px}.main{padding-top:30px}.pick-strip{flex-wrap:wrap;justify-content:center}}
@media(max-width:650px){.main{padding:18px 12px 80px}.top{padding:10px 12px}.brand{font-size:17px}.brand .logo{width:29px;height:29px}.status-chip{font-size:11px;padding:5px 8px}.tabs{padding:9px 10px;gap:5px}.tabs button{padding:10px 11px;font-size:12px}.tab-ic{width:17px;height:17px}.card,.panel,.box,.section,.tile{padding:16px;border-radius:15px}.pick-strip{justify-content:flex-start;max-width:100%;overflow-x:auto}.pick-card{min-width:132px;min-height:140px}.pick-card img{height:82px;width:120px}.ring-tile{min-width:78px;width:78px}.ring-tile img{max-height:100px}.gate-shot{height:165px;overflow:hidden}.stats,.trip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.actions .btn{flex:1 1 auto;text-align:center}.sheet{padding:20px}.top-row{gap:8px}}
