:root{--navy:#113a5c;--orange:#f26a21;--red:#c91c24;--red-dark:#8f1017;--green:#17833e;--yellow:#e6a500;--bg:#eef2f5;--text:#17212b;--muted:#667381;--card:#fff;--line:#dce3e8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif}.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 28px;background:linear-gradient(120deg,#0d314f,#174f75);color:#fff;box-shadow:0 3px 14px #0002;position:sticky;top:0;z-index:500}.identity{display:flex;align-items:center;gap:18px}.identity h1{margin:0;text-transform:uppercase;font-size:24px;letter-spacing:.7px}.identity p{margin:4px 0 0;opacity:.88}.logo-row{display:flex;align-items:center;gap:8px}.logo-row img{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:12px;padding:3px}.logo-row img:nth-child(2){width:66px;height:66px}.logo-row.compact{justify-content:center}.logo-row.compact img{width:70px;height:70px}.logo-row.compact img:nth-child(2){width:82px;height:82px}.header-actions{display:flex;align-items:center;gap:10px}.badge{padding:8px 12px;border-radius:999px;font-size:13px;font-weight:700;background:#1e7b48}.badge.muted{background:#61717f}.ghost{background:#ffffff18;border:1px solid #ffffff70;color:#fff;border-radius:9px;padding:8px 12px;cursor:pointer}main{max-width:1540px;margin:auto;padding:24px}.active-alert{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(110deg,#9f1117,#d71920);color:#fff;border-radius:18px;padding:22px 26px;margin-bottom:20px;box-shadow:0 8px 24px #b40e1f33}.active-alert h2{margin:4px 0 6px;font-size:28px}.active-alert p{margin:0 0 8px}.eyebrow{font-size:12px;letter-spacing:1.6px;font-weight:800;opacity:.72}.meta{font-size:13px;opacity:.85}.danger,.primary{border:0;background:var(--red);color:#fff;font-weight:800;padding:12px 18px;border-radius:10px;cursor:pointer}.active-alert .danger{background:#fff;color:var(--red-dark);white-space:nowrap}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.summary-card{background:#fff;border-radius:15px;padding:18px 20px;box-shadow:0 4px 16px #142c4210;border-left:6px solid var(--navy)}.summary-card span{color:var(--muted);font-size:13px;font-weight:700}.summary-card strong{display:block;font-size:34px;margin-top:4px}.summary-card.ready{border-left-color:var(--green)}.summary-card.warning{border-left-color:var(--yellow)}.summary-card.offline{border-left-color:#7a8791}.content-grid{display:grid;grid-template-columns:360px 1fr;gap:18px}.panel{background:var(--card);border-radius:18px;box-shadow:0 4px 18px #142c4212;padding:20px}.panel-title{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:15px}.panel-title h2{margin:3px 0 0;font-size:20px}.send-panel label{display:block;font-size:13px;font-weight:800;margin:13px 0 6px}.send-panel input,.send-panel select,.send-panel textarea,.login-card input,.search{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font:inherit;background:#fff}.send-panel textarea{resize:vertical}.sar-button{width:190px;height:190px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:22px auto 4px;border:10px solid #9b1319;background:radial-gradient(circle at 35% 30%,#ef4c52,#c41018 62%,#8c0b10);color:#fff;box-shadow:0 9px 0 #751016,0 15px 25px #9d0c173c;cursor:pointer}.sar-button:active{transform:translateY(6px);box-shadow:0 3px 0 #751016,0 8px 14px #9d0c173c}.sar-button span{font-size:50px;font-weight:900;letter-spacing:3px}.sar-button small{font-size:12px;font-weight:800}.map-panel{min-height:560px}#map{height:485px;border-radius:13px;background:#dfe6ea}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend span{display:flex;gap:5px;align-items:center}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.green{background:var(--green)}.dot.red{background:var(--red)}.dot.gray{background:#77838c}.table-panel{margin-top:18px}.search{max-width:250px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:#53616d;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.status-pill{display:inline-block;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800}.status-pill.ready{background:#dff4e6;color:#13743a}.status-pill.wait{background:#fde3e5;color:#a8111c}.status-pill.online{background:#dcecf8;color:#185d8c}.status-pill.offline{background:#e8ecef;color:#58636c}.login-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#08283f,#174f75);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.login-card{width:min(430px,100%);background:#fff;border-radius:22px;padding:28px;box-shadow:0 25px 70px #0006;text-align:center}.login-card h1{font-size:24px;text-transform:uppercase;margin:14px 0 4px;color:var(--navy)}.login-card p{margin:0 0 20px;color:var(--muted)}.login-card label{text-align:left;display:block;font-weight:800;font-size:13px;margin-bottom:6px}.login-card .primary{width:100%;margin:14px 0 8px}.login-card small{color:var(--muted)}.toast{position:fixed;right:24px;bottom:24px;background:#17212b;color:#fff;padding:13px 18px;border-radius:12px;box-shadow:0 8px 24px #0004;z-index:3000}.hidden{display:none!important}.leaflet-popup-content{min-width:210px}.popup-name{font-weight:900;font-size:15px;color:var(--navy)}.popup-grid{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;margin-top:8px;font-size:12px}.marker-ready,.marker-wait,.marker-offline,.marker-office{width:22px;height:22px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px #0007}.marker-ready{background:var(--green)}.marker-wait{background:var(--red)}.marker-offline{background:#7a8791}.marker-office{background:var(--orange);border-radius:4px;transform:rotate(45deg)}@media(max-width:980px){.content-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,1fr)}.topbar{align-items:flex-start}.identity h1{font-size:18px}.identity p{font-size:12px}.logo-row img{width:40px;height:40px}.logo-row img:nth-child(2){width:46px;height:46px}.header-actions{flex-direction:column;align-items:flex-end}.send-panel{order:1}.map-panel{order:2}}@media(max-width:600px){main{padding:12px}.topbar{padding:10px 12px}.identity{gap:8px}.identity h1{font-size:14px}.identity p{display:none}.logo-row{gap:3px}.logo-row img{width:32px;height:32px;border-radius:6px}.logo-row img:nth-child(2){width:36px;height:36px}.badge{display:none}.summary-grid{gap:8px}.summary-card{padding:12px}.summary-card strong{font-size:25px}.active-alert{align-items:flex-start;flex-direction:column}.panel{padding:14px}.map-panel{min-height:470px}#map{height:400px}.legend{display:none}.search{max-width:150px}.sar-button{width:160px;height:160px}.sar-button span{font-size:42px}}
.system-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.system-strip>div{background:#fff;border-radius:12px;padding:12px 14px;box-shadow:0 3px 12px #142c420c;border-top:3px solid var(--navy)}.system-strip span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:800;letter-spacing:.6px}.system-strip strong{display:block;margin-top:4px;font-size:14px;color:var(--navy)}.two-column-lower{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:18px}.small-button{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:8px;padding:7px 10px;font-weight:700;cursor:pointer}.audit-list{max-height:380px;overflow:auto}.audit-item{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.audit-item strong,.audit-item span{display:block}.audit-item strong{font-size:13px;color:var(--navy)}.audit-item span,.audit-item time{font-size:11px;color:var(--muted)}.muted-text{color:var(--muted)}.login-card label+input{margin-bottom:10px}@media(max-width:980px){.system-strip{grid-template-columns:repeat(2,1fr)}.two-column-lower{grid-template-columns:1fr}}@media(max-width:600px){.system-strip{grid-template-columns:1fr 1fr}.system-strip strong{font-size:12px}}

/* Self-contained map UI (no third-party JavaScript). */
#map{position:relative;overflow:hidden;touch-action:none;cursor:grab;user-select:none}#map.dragging{cursor:grabbing}.era-map-tiles,.era-map-markers{position:absolute;inset:0;overflow:hidden}.era-map-tile{position:absolute;width:256px;height:256px;max-width:none;pointer-events:none}.era-map-markers{pointer-events:none}.era-map-marker{position:absolute;width:22px;height:22px;margin-left:-11px;margin-top:-11px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px #0007;padding:0;pointer-events:auto;cursor:pointer;z-index:5}.era-map-marker.marker-ready{background:var(--green)}.era-map-marker.marker-wait{background:var(--red)}.era-map-marker.marker-offline{background:#7a8791}.era-map-marker.marker-office{background:var(--orange);border-radius:4px;transform:rotate(45deg)}.era-map-controls{position:absolute;left:10px;top:10px;z-index:20;display:flex;flex-direction:column;box-shadow:0 2px 8px #0003}.era-map-controls button{width:36px;height:36px;border:1px solid #bcc7cf;background:#fff;color:var(--navy);font-size:24px;font-weight:800;cursor:pointer}.era-map-controls button:first-child{border-radius:8px 8px 0 0}.era-map-controls button:last-child{border-radius:0 0 8px 8px}.era-map-attrib{position:absolute;right:4px;bottom:3px;background:#ffffffd9;padding:2px 5px;border-radius:4px;font-size:10px;z-index:20;color:#4a5964}.era-map-attrib a{color:#335f7f}.era-map-popup{position:absolute;z-index:30;transform:translate(-50%,-100%);width:250px;max-width:calc(100% - 20px);background:#fff;border-radius:10px;padding:12px;box-shadow:0 8px 28px #0005;pointer-events:auto}.era-map-popup:after{content:"";position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);border:8px solid transparent;border-top-color:#fff;border-bottom:0}.popup-name{font-weight:900;font-size:15px;color:var(--navy)}.popup-grid{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;margin-top:8px;font-size:12px}
