:root{--bg:#070a0f;--p:#0e131b;--p2:#131a24;--l:#1f2a38;--a:#2ea8ff;--a2:#ffb020;--ok:#2ee59d;--er:#ff4d5e;--wn:#ffb020;--t:#e9f0f7;--m:#8a97aa}
body.light{--bg:#f2f5fa;--p:#fff;--p2:#f4f7fb;--l:#d5dce8;--a:#0b64d9;--a2:#c26a00;--ok:#13805b;--er:#d62839;--wn:#c26a00;--t:#101828;--m:#566074}
*{box-sizing:border-box;margin:0}
html{-webkit-tap-highlight-color:transparent}
body{background:radial-gradient(900px 500px at 50% -10%,#10253b,var(--bg));color:var(--t);font:15px/1.5 "Segoe UI",system-ui,sans-serif;min-height:100vh;padding-bottom:24px}
body.light{background:linear-gradient(180deg,#fbfcfe,#e9eef7)}
button,input,select,textarea{font:inherit;color:inherit}
.hide{display:none!important}
.stage{text-align:center;padding:26px 14px 4px}
.logo{font-size:clamp(28px,7vw,48px);font-weight:900;letter-spacing:.22em;background:linear-gradient(90deg,#fff,var(--a) 50%,var(--a2));-webkit-background-clip:text;background-clip:text;color:transparent}
body.light .logo{background:linear-gradient(90deg,#0b2a55,var(--a) 55%,var(--a2));-webkit-background-clip:text;background-clip:text}
.sub{color:var(--m);font-size:12.5px;margin-top:2px;letter-spacing:.14em}
.car{width:min(620px,94vw);margin:14px auto 0}
.hero{position:relative;border-radius:16px;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,#0c2338,#05080d);border:1px solid #1b3a58;box-shadow:0 14px 40px #000a,inset 0 0 40px #0a2a4a}
.hero svg,.hero img{display:block;width:100%;height:auto}
.hero-tag{position:absolute;left:10px;bottom:8px;font:700 11px system-ui;letter-spacing:.14em;color:#bfe6ff;background:#05080dc0;padding:3px 10px;border-radius:99px;border:1px solid #2ea8ff88}
.hero-hud{position:absolute;inset:8px;pointer-events:none;border:1px solid transparent;background:linear-gradient(#2ea8ff,#2ea8ff) top left/18px 2px no-repeat,linear-gradient(#2ea8ff,#2ea8ff) top left/2px 18px no-repeat,linear-gradient(#2ea8ff,#2ea8ff) top right/18px 2px no-repeat,linear-gradient(#2ea8ff,#2ea8ff) top right/2px 18px no-repeat,linear-gradient(#2ea8ff,#2ea8ff) bottom left/18px 2px no-repeat,linear-gradient(#2ea8ff,#2ea8ff) bottom left/2px 18px no-repeat,linear-gradient(#2ea8ff,#2ea8ff) bottom right/18px 2px no-repeat,linear-gradient(#2ea8ff,#2ea8ff) bottom right/2px 18px no-repeat}
.laser{position:fixed;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,transparent,var(--a),#cfeaff,var(--a),transparent);box-shadow:0 0 16px 3px #2ea8ff99;animation:scan 3.6s ease-in-out infinite;pointer-events:none;z-index:50}
@keyframes scan{0%{top:-4px;opacity:0}8%{opacity:1}92%{opacity:1}100%{top:100vh;opacity:0}}
@media(prefers-reduced-motion:reduce){.laser,.blink-dot{animation:none}}
.box{background:var(--p);border:1px solid var(--l);border-radius:14px;padding:18px;max-width:430px;margin:16px auto;box-shadow:0 10px 30px #0006}
.wide{max-width:1100px}
label{display:block;color:var(--m);font-size:13px;font-weight:600;margin:10px 0 4px}
input,select,textarea{width:100%;background:var(--p2);border:1.5px solid var(--l);border-radius:10px;padding:11px;min-height:44px}
input[type=checkbox]{width:auto;min-height:0}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid #2ea8ff55;outline-offset:1px;border-color:var(--a)}
.btn{background:linear-gradient(135deg,#35b4ff,#0b64d9);color:#fff;border:0;border-radius:12px;padding:11px 16px;min-height:44px;font-weight:700;cursor:pointer;margin-top:10px}
.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.g{background:var(--p2);color:var(--t);border:1.5px solid var(--l);margin:6px 6px 0 0;padding:9px 14px}
.btn.fix{background:var(--a2);color:#241500;margin:0;padding:6px 12px;min-height:36px}
.btn.red{background:linear-gradient(135deg,#ff6b78,#d62839)}
.actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:12px}
.actions .btn{margin:0;padding:13px 10px}
.msg{color:var(--er);min-height:20px;margin-top:8px}
.hdr{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--l);background:var(--p)}
.brandbox{display:flex;align-items:center;gap:9px}.brandbox img{width:34px;height:34px;border-radius:9px}
.brand{font-weight:900;letter-spacing:.18em;font-size:15px;background:linear-gradient(90deg,#fff,var(--a));-webkit-background-clip:text;background-clip:text;color:transparent}
body.light .brand{background:linear-gradient(90deg,#0b2a55,var(--a));-webkit-background-clip:text;background-clip:text}
.status{display:flex;gap:6px;align-items:center}
.si{font-size:11px;font-weight:800;letter-spacing:.06em;padding:3px 9px;border-radius:7px;border:1.5px solid var(--l);color:var(--m)}
.si.on{color:var(--ok);border-color:var(--ok);background:#2ee59d14}.si.warn{color:var(--wn);border-color:var(--wn)}
#hz{font-size:11px;color:var(--m)}
.active-signal-badge{display:inline-flex;align-items:center;gap:8px;border:1.5px solid #f59e0b;padding:4px 11px;border-radius:99px;font-size:12px;font-weight:800;color:#ffb84d;background:#f59e0b14}
.blink-dot{width:10px;height:10px;background:#ff8a00;border-radius:50%;animation:po 1.3s infinite}
@keyframes po{0%{transform:scale(.9);box-shadow:0 0 0 0 #ff8a00b0}70%{transform:scale(1);box-shadow:0 0 0 10px #ff8a0000}100%{transform:scale(.9);box-shadow:0 0 0 0 #ff8a0000}}
nav{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid var(--l);overflow:auto;position:sticky;top:0;background:var(--bg);z-index:5}
nav button{background:none;border:0;color:var(--m);padding:9px 13px;border-radius:10px;cursor:pointer;white-space:nowrap;font-weight:600}
nav button.on{background:#12304d;color:#7cc8ff}body.light nav button.on{background:#e3f0ff;color:#0b4fc4}
main{padding:14px;max-width:1100px;margin:auto}
h3{margin:16px 0 6px;color:var(--a);font-size:14px;letter-spacing:.05em}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.card{background:var(--p);border:1px solid var(--l);border-radius:12px;padding:12px}
.card b{display:block;font-size:22px;color:var(--a)}.card small{color:var(--m)}
.card.warn{border-color:var(--wn)}.card.bad{border-color:var(--er)}
.launch{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.lc{background:linear-gradient(180deg,var(--p2),var(--p));border:1px solid var(--l);border-radius:14px;padding:14px 6px;text-align:center;cursor:pointer;font-weight:700;font-size:13px;color:var(--t)}
.lc span{display:block;font-size:28px;margin-bottom:4px}
.lc:active{transform:scale(.96)}
@media(min-width:760px){.launch{grid-template-columns:repeat(5,1fr)}}
.dtabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.dtabs button{background:var(--p2);border:1.5px solid var(--l);border-radius:99px;padding:6px 14px;color:var(--m);font-weight:700;cursor:pointer}
.dtabs button.on{border-color:var(--a);color:var(--a)}
.dw{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.dw.hud{transform:scaleX(-1)}
.wg{position:relative;background:radial-gradient(circle at 50% 40%,#11202f,var(--p));border:1px solid var(--l);border-radius:14px;padding:6px;text-align:center}
body.light .wg{background:var(--p)}
.wg canvas{width:100%;display:block}
.wg .wx{position:absolute;top:4px;right:6px;background:#ff4d5e;color:#fff;border:0;border-radius:50%;width:24px;height:24px;cursor:pointer}
.wg.alarm{border-color:var(--er);box-shadow:0 0 16px #ff4d5e66}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:12px}
@media(max-width:640px){.tiles{grid-template-columns:repeat(2,1fr);gap:9px}}
.tile{display:flex;flex-direction:column;gap:6px;text-align:left;min-height:98px;padding:12px;border-radius:14px;border:2px solid;cursor:pointer;font-size:14.5px;line-height:1.35}
.tile .tc{font-weight:800;font-size:12.5px;letter-spacing:.04em}.tile .tt{font-weight:600}
.tile.r{background:#3a1219;border-color:#ff4d5e;color:#ffc0c7}
.tile.o{background:#3a2a0c;border-color:#ffb020;color:#ffd88a}
.tile.b{background:#0e2a4a;border-color:#2ea8ff;color:#a9d8ff}
body.nok .tile.b,body.nok .lg.b{background:#0d3524;border-color:#2ee59d;color:#a8f0cf}
body.light .tile.r{background:#fde8ea;color:#7f1020}body.light .tile.o{background:#fff1dc;color:#6b3a00}body.light .tile.b{background:#e3f0ff;color:#0a3b8a}
.legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lg{font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px;border:1.5px solid}
.lg.r{background:#3a1219;border-color:#ff4d5e;color:#ffc0c7}.lg.o{background:#3a2a0c;border-color:#ffb020;color:#ffd88a}.lg.b{background:#0e2a4a;border-color:#2ea8ff;color:#a9d8ff}
.pill{display:inline-block;color:#fff;padding:3px 12px;border-radius:99px;font-size:12.5px;font-weight:700}
.score{font-size:40px;font-weight:800}
table{width:100%;border-collapse:collapse;margin-top:8px}
th,td{padding:8px;border-bottom:1px solid var(--l);text-align:left;vertical-align:top;font-size:14px}th{color:var(--m);font-weight:700;font-size:12px}
.tbl{overflow-x:auto}
.red{color:var(--er)}.green{color:var(--ok)}.amb{color:var(--wn)}
.lock{display:grid;place-items:center;height:100vh;color:var(--er);font-size:18px;text-align:center;padding:20px}
.modal{position:fixed;inset:0;background:#000b;display:grid;place-items:center;z-index:99;padding:14px;overflow:auto}.modal .box{margin:0;max-width:540px;width:100%}.modal p{margin-top:9px}
pre{background:var(--p2);border:1px solid var(--l);border-radius:10px;padding:10px;max-height:260px;overflow:auto;white-space:pre-wrap;font-size:12.5px;margin-top:8px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
details{background:var(--p);border:1px solid var(--l);border-radius:12px;padding:10px 14px;margin-top:10px}summary{cursor:pointer;font-weight:700;color:var(--a)}
@media(max-width:640px){.box{margin:10px}.btn.g{width:100%;margin-right:0}.two{grid-template-columns:1fr}}
@media print{.hdr,nav,.btn{display:none}}
