:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#17324a;background:#eef4f8;--blue:#0d3556;--sky:#438fca;--orange:#f38a22;--line:#d8e3eb;--muted:#63798c}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(145deg,#e8f1f7,#f8fafc)}main{min-height:100vh}.hidden{display:none!important}.login-card{width:min(430px,calc(100% - 28px));margin:7vh auto;background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:0 20px 60px #17324a20}.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:.15em;color:var(--blue)}.brand span{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--sky),var(--blue));letter-spacing:0}.brand.compact{font-size:.78rem}.brand.compact span{width:30px;height:30px}.eyebrow{margin:28px 0 5px;color:#3980b7;font-weight:800;letter-spacing:.12em;font-size:.72rem}h1{margin:0;font-size:clamp(1.8rem,5vw,2.5rem);line-height:1.1}h2{font-size:1.15rem}.muted{color:var(--muted)}form{display:grid;gap:15px;margin-top:28px}label{display:grid;gap:7px;font-weight:750;font-size:.86rem}input{width:100%;height:48px;border:1px solid #bfcfdb;border-radius:11px;padding:0 14px;font:inherit;outline:none}input:focus{border-color:var(--sky);box-shadow:0 0 0 4px #438fca1c}button{border:0;border-radius:11px;padding:13px 18px;background:var(--sky);color:#fff;font:inherit;font-weight:800;cursor:pointer}.secondary{background:#fff;color:#275a80;border:1px solid #c6d6e2}.message{min-height:20px;color:#c14439;margin:0}.secure{display:block;margin-top:22px;color:#537285}.app{width:min(1180px,100%);margin:auto;padding:24px}.app>header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.app>header h1{font-size:1.45rem;margin-top:14px}.app>header p{margin:4px 0}.statusbar{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;margin-bottom:8px}.statusbar>div,.statusbar>button{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px 16px}.statusbar strong,.statusbar span{display:block}.statusbar strong{font-size:1.35rem}.statusbar span{font-size:.76rem;color:var(--muted)}.updated{text-align:right;color:var(--muted);font-size:.75rem;margin:8px 2px}#map{height:min(58vh,580px);min-height:360px;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 30px #17324a12;background:#dce7ee}.unit-list{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px}.unit-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px}.unit-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.unit-head h3{margin:0}.dot{width:10px;height:10px;border-radius:50%;background:#9cacb7;box-shadow:0 0 0 4px #9cacb720}.dot.online{background:#25a368;box-shadow:0 0 0 4px #25a36820}.dot.stale{background:#e0962d;box-shadow:0 0 0 4px #e0962d20}.unit-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.unit-card dt{font-size:.7rem;color:var(--muted)}.unit-card dd{margin:2px 0 0;font-weight:750}.unit-card a{display:block;text-align:center;text-decoration:none;color:#2872a9;font-weight:800;border-top:1px solid #edf1f4;padding-top:12px}.empty{grid-column:1/-1;text-align:center;padding:35px;background:#fff;border:1px dashed #bfcfdb;border-radius:14px;color:var(--muted)}.unit-marker{background:var(--orange);color:white;border:3px solid white;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 3px 10px #0004}.unit-marker span{display:grid;place-items:center;width:30px;height:30px;transform:rotate(45deg);font-size:.65rem;font-weight:900}@media(max-width:780px){.app{padding:14px}.unit-list{grid-template-columns:1fr}.statusbar{grid-template-columns:1fr 1fr}.statusbar button{grid-column:1/-1}#map{min-height:52vh}.login-card{padding:26px 22px}}
