*{box-sizing:border-box;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif}
body{margin:0;background:#0b0f14;color:#eef2f6}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#121826;border-bottom:1px solid #1f2a37}
.brand{display:flex;align-items:center;gap:10px}
.badge{background:#dc2626;padding:4px 8px;border-radius:8px;font-weight:700}
h1{margin:0;font-size:20px;color:#cbd5e1}
.conn{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
input{padding:6px 8px;border-radius:8px;border:1px solid #334155;background:#0f1720;color:#e5e7eb;min-width:220px}
button{padding:8px 12px;border-radius:10px;border:0;background:#2563eb;color:#fff;font-weight:600;cursor:pointer}
button:hover{opacity:.9}
.tag{padding:4px 8px;border-radius:8px;background:#334155;color:#cbd5e1}
.tag.ok{background:#065f46}
.tag.err{background:#7f1d1d}
.tag.warn{background:#854d0e}
main{padding:16px;display:grid;gap:16px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:16px}
.card{background:#0f1720;border:1px solid #1f2a37;border-radius:14px;padding:14px}
.card.wide{grid-column:1/-1}
.big{font-size:32px;font-weight:800;margin:6px 0}
.bar{height:10px;background:#1f2a37;border-radius:6px;overflow:hidden}
.barfill{height:100%;background:#22c55e;width:0%}
.row{display:flex;align-items:center;gap:12px}
.row.duo{justify-content:space-between}
.switch{position:relative;display:inline-block;width:48px;height:28px}
.switch input{display:none}
.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#374151;border-radius:999px;transition:.2s}
.slider:before{position:absolute;content:'';height:22px;width:22px;left:3px;top:3px;background:#e5e7eb;border-radius:50%;transition:.2s}
input:checked + .slider{background:#10b981}
input:checked + .slider:before{transform:translateX(20px)}
.console{background:#0f1720;border:1px solid #1f2a37;padding:10px;border-radius:10px;max-height:220px;overflow:auto}
#map{width:100%;height:360px;border-radius:12px;margin-top:8px;border:1px solid #1f2a37}
/* Ambulance icon styling */
.amb-marker{background:transparent;border:none;}
.amb{font-size:28px; line-height:1; filter: drop-shadow(0 1px 1px rgba(0,0,0,.6)); transform: rotate(var(--rot,0deg)); transform-origin: 50% 50%;}
footer{padding:12px 16px;color:#94a3b8}
@media (max-width: 1100px){.cards{grid-template-columns:repeat(2,minmax(260px,1fr))}}
@media (max-width: 640px){.cards{grid-template-columns:1fr}}
