.codeConnect { margin-bottom: 30px; }
.downloadButtons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.downloadItem { display: flex; flex-direction: column; gap: 6px; }
.installerBuild { color: #93a9c9; font-size: 12px; text-align: center; }
.inventory { display: grid; gap: 7px; margin: 14px 0; padding: 12px; border-radius: 10px; background: #071224; color: #9bb0cf; font-size: 12px; }
.inventory span { display: flex; justify-content: space-between; gap: 12px; }
.inventory b { color: #dce9ff; }
.download { display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; color: #fff; font-weight: 750; padding: 12px 16px; text-decoration: none; }
.download.primary { background: #1677ff; }
.download.secondary { background: #132641; border: 1px solid #31517c; }
.download:hover { filter: brightness(1.12); }
.installerMenu { position: relative; }
.installerMenu > summary { list-style: none; cursor: pointer; border: 1px solid #31517c; border-radius: 9px; background: #132641; color: #fff; font-weight: 750; padding: 11px 16px; }
.installerMenu > summary::-webkit-details-marker { display: none; }
.installerMenu > summary::after { content: " ▾"; color: #8fc4ff; }
.installerMenu[open] > summary::after { content: " ▴"; }
.installerPanel { position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; width: min(520px, calc(100vw - 48px)); display: grid; gap: 18px; padding: 20px; border: 1px solid #31517c; border-radius: 14px; background: #0a1629; box-shadow: 0 22px 60px #000a; }
.installerPanel section + section { border-top: 1px solid #1c365d; padding-top: 16px; }
.installerPanel section > small { display: block; margin-top: 4px; color: #93a9c9; }
.codeRow { display: flex; gap: 10px; }
.codeRow input { margin: 0; font-size: 18px; letter-spacing: .12em; }
.codeRow button { min-width: 120px; }
.deviceActions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.deviceActions button { flex: 1 1 150px; }
.codeConnect .error { margin-bottom: 0; }
@media (max-width: 600px) { .codeRow, .downloadButtons { flex-direction: column; } .download { width: 100%; } }
.googleSignin { display: flex; justify-content: center; width: 100%; border-radius: 9px; background: #1677ff; color: #fff; font-weight: 750; padding: 12px 16px; text-decoration: none; }
.accountBar,.accountActions { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.accountBar { margin-bottom: 16px; color: #9bb0cf; }
header > .brand, header > .headerTools { display: flex; align-items: center; gap: 16px; }
.headerTools .installerPanel { left: auto; right: 0; }
.headerTools .installerPanel small { border-left: 0; padding-left: 0; }
.accountBar { justify-content: flex-end; }
.adminUsers { margin: 20px 0; }
.userAdd { display: flex; gap: 10px; }
.userAdd input { margin: 0; }
.adminUser { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid #1c365d; padding: 14px 0; }
.adminUser div { display: flex; flex-direction: column; gap: 4px; }
.adminUser small { color: #8faad0; text-transform: capitalize; }
.ownerBadge { color: #67f3b2; font-size: 12px; font-weight: 800; text-transform: uppercase; }
@media (max-width: 600px) { .userAdd { flex-direction: column; } .accountBar { align-items: flex-start; } .accountActions { flex-direction: column; align-items: flex-end; } .headerTools .installerPanel small { display: block; } }

.fileManager{width:min(1050px,94vw);height:min(760px,88vh);padding:0;background:#050b16;color:#eef5ff;border:1px solid #315d91;border-radius:18px}
.fileToolbar{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:18px 24px}
.fileToolbar input{min-width:0}.uploadButton{display:inline-flex;align-items:center;padding:0 18px;border-radius:10px;background:#183252;border:1px solid #35679e;cursor:pointer;font-weight:700}
.fileEntries{padding:0 24px 24px;overflow:auto;max-height:600px}.fileEntry{display:grid;grid-template-columns:minmax(220px,1fr) 110px auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #173251}
.fileName{background:none;border:0;text-align:left;color:#dcecff;padding:6px}.fileEntry>div{display:flex;gap:8px;justify-content:flex-end}
@media(max-width:700px){.fileToolbar{grid-template-columns:1fr}.fileEntry{grid-template-columns:1fr}.fileEntry>div{justify-content:flex-start}}

.portalNav{display:flex;align-items:center;gap:6px}.portalNav[hidden]{display:none}.navLink{background:transparent;border:1px solid transparent;color:#a9bdd8;padding:9px 13px;border-radius:9px;font-weight:700}.navLink:hover,.navLink.active{color:#fff;background:#132b49;border-color:#315d91}
.portalPage{padding-top:24px}.pageHeading{margin-bottom:24px}.pageHeading h2{font-size:clamp(30px,4vw,46px);margin:5px 0 8px}.pageHeading p{color:#9eb3cf}.pageCardHead{display:flex;align-items:center;justify-content:space-between;gap:20px}
@media(max-width:850px){.headerTools{flex-wrap:wrap}.portalNav{order:2;width:100%;overflow-x:auto}.navLink{white-space:nowrap}}

.fleetOverview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:8px 0 26px}.fleetOverview>div,.metricGrid>div{background:linear-gradient(145deg,#0b1a30,#0a1425);border:1px solid #1e3d66;border-radius:14px;padding:16px}.fleetOverview small,.metricGrid small{display:block;color:#8299b9;font-size:11px;font-weight:800;letter-spacing:.08em}.fleetOverview strong{display:block;font-size:28px;margin-top:7px}.warningText{color:#ffc857}.dangerText{color:#ff6b7d}.deviceTools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.deviceTools input,.deviceTools select{width:auto;min-width:170px;margin:0;background:#09162a;color:#ddecff;border:1px solid #2a4f7e;border-radius:9px;padding:10px}.deviceTop{display:flex;justify-content:space-between;gap:12px;align-items:center}.healthScore{color:#62e6a7;background:#0b3228;border:1px solid #176548;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.healthScore.risk{color:#ffd078;background:#34270d;border-color:#70551a}.metricGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.metricGrid>div{padding:11px}.metricGrid strong{display:block;margin-top:5px;color:#eff6ff}.alertList,.healthyState{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.alertList span{background:#34270d;color:#ffd078;border:1px solid #70551a;border-radius:8px;padding:6px 9px;font-size:12px}.healthyState{color:#62e6a7;font-size:13px}.deviceDetails{margin:14px 0;border-top:1px solid #18385e;border-bottom:1px solid #18385e;padding:12px 0}.deviceDetails summary{cursor:pointer;color:#9fc8ff;font-weight:750}.detailColumns{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-top:14px}.detailColumns h4{margin:0 0 9px}.detailColumns span{display:flex;justify-content:space-between;gap:10px;color:#9bb0cf;font-size:12px;padding:5px 0}.detailColumns b{color:#dce9ff}.device[hidden]{display:none}
@media(max-width:900px){.fleetOverview,.metricGrid{grid-template-columns:repeat(2,1fr)}.detailColumns{grid-template-columns:1fr}}@media(max-width:560px){.fleetOverview{grid-template-columns:1fr 1fr}.deviceTools{align-items:stretch}.deviceTools>*{width:100%!important}}

button.warning{background:#3b2b0c;border:1px solid #7b5b1b;color:#ffd578}button.warning:hover{background:#4b360e}
