*{box-sizing:border-box} :root{color-scheme:dark;--bg:#0b1217;--panel:#121e25;--panel2:#192831;--line:#293b44;--text:#eff7f5;--muted:#9db0b5;--green:#20c58a;--amber:#f2bd58;--red:#f07878}
body{margin:0;background:radial-gradient(circle at 80% 0,#17332e 0,transparent 30%),var(--bg);font:15px/1.5 Inter,system-ui,Segoe UI,Arial,sans-serif;color:var(--text)}
.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100% - 1180px)/2));background:#0b1419dd;position:sticky;top:0;z-index:5;backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:12px}.brandmark{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#28d49a,#087b61);display:grid;place-items:center;font-size:25px;font-weight:900;color:#06241b}.brand strong{letter-spacing:1px}.brand strong span{color:var(--green)}.brand small{display:block;color:var(--muted);font-size:11px}
.top-status{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px}.top-status i{width:8px;height:8px;border-radius:50%;background:#718087}.top-status.connected i{background:var(--green);box-shadow:0 0 12px var(--green)}
.wrap{max-width:1180px;margin:auto;padding:28px 20px 50px}.hero{display:flex;align-items:center;justify-content:space-between;padding:16px 2px 24px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--green);font-weight:800;margin:0 0 7px}.hero h1{font-size:clamp(24px,4vw,36px);margin:0;letter-spacing:-1px}.muted{color:var(--muted);margin:6px 0}.hero-chip,.pill{border:1px solid #286a56;color:#74e6ba;background:#123329;border-radius:30px;padding:7px 12px;font-size:11px;font-weight:800;letter-spacing:1px}
.notice{border:1px solid #755d2d;background:#302817;color:#f4d99e;padding:14px 16px;border-radius:13px;font-size:13px;margin-bottom:18px}.grid{display:grid;grid-template-columns:1.25fr .85fr;gap:16px;margin-bottom:16px}.panel{background:linear-gradient(150deg,#15232a,#101a20);border:1px solid var(--line);border-radius:18px;padding:20px;margin-bottom:16px;box-shadow:0 12px 35px #0002}.grid .panel{margin-bottom:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.panel h2{font-size:19px;margin:0}.panel label{display:block;color:#b7c7c9;font-size:12px;margin:13px 0 6px}
input{width:100%;background:#0b151a;border:1px solid #30434b;border-radius:9px;padding:11px 12px;color:var(--text);outline:none;font:inherit;font-size:13px}input:focus{border-color:var(--green)}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hint{font-size:11px;color:var(--muted)}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:17px}.btn{border:0;border-radius:10px;padding:11px 16px;font-weight:800;font-size:12px;cursor:pointer;transition:.15s}.btn:disabled{opacity:.35;cursor:not-allowed}.primary{background:var(--green);color:#06231a}.secondary{background:#25443e;color:#a9f2d5}.ghost{background:#26353b;color:#dce9e7;border:1px solid #40535a}.danger-outline{background:#351f23;color:#ffaaaa;border:1px solid #713d43}.full{width:100%;margin-top:9px}.device-line{font-size:12px;color:var(--muted);margin-top:14px;overflow-wrap:anywhere}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric{background:#0d181e;border:1px solid #263941;border-radius:13px;padding:14px}.metric span,.metric small{display:block;color:var(--muted);font-size:11px}.metric strong{display:block;font-size:27px;letter-spacing:-1px;margin:5px 0;color:#f3fbf8}
.scan-message{background:#0d181e;border-radius:10px;padding:11px;margin:14px 0;color:var(--muted);font-size:12px}.fault-item,.history-item{padding:12px;border:1px solid var(--line);border-radius:11px;margin-top:9px;background:#0e191e}.fault-item strong{color:#ff9c9c}.fault-item p,.history-item p{font-size:12px;color:var(--muted);margin:4px 0}.empty{color:var(--muted);font-size:12px;padding:12px 0}footer{color:#72868c;font-size:11px;text-align:center;padding:22px 0}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);background:#e9fff7;color:#073525;padding:11px 17px;border-radius:10px;font-weight:700;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:10}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.topbar{padding:0 15px}.wrap{padding:18px 13px 35px}.grid{grid-template-columns:1fr}.hero{align-items:flex-start;gap:10px;flex-direction:column}.metrics{grid-template-columns:repeat(2,1fr)}.panel{padding:16px}.two{grid-template-columns:1fr}.top-status{font-size:11px}}
