:root{--navy:#0b2f55;--blue:#175a9c;--light:#f5f7fb;--line:#d8e0ea;--text:#17212b;--muted:#667085;--white:#fff;--red:#b42318}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--light);color:var(--text)}.hidden{display:none!important}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#092744,#175a9c)}.login-card{width:min(420px,100%);background:#fff;border-radius:18px;padding:34px;box-shadow:0 24px 70px rgba(0,0,0,.25)}.brand-mark{width:58px;height:58px;border-radius:14px;background:var(--navy);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:18px}.eyebrow{letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:700;color:#5c7188;margin:0 0 6px}.login-card h1{margin:0 0 6px;font-size:30px;color:var(--navy)}.login-subtitle{margin:0 0 22px;color:var(--muted)}label{display:block;margin:12px 0 6px;font-weight:700;font-size:13px}input,select{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;background:#fff}button{border:0;border-radius:8px;padding:10px 14px;font-weight:700;cursor:pointer;background:var(--blue);color:#fff}button:hover{filter:brightness(.96)}.login-card button{width:100%;margin-top:18px;padding:12px}.error{color:var(--red);min-height:20px;margin:10px 0 0;font-weight:700}.security-note{font-size:12px;color:var(--muted);margin:20px 0 0}.topbar{background:#fff;border-bottom:1px solid var(--line);padding:18px 22px;display:flex;gap:20px;align-items:center;justify-content:space-between}.topbar h1{margin:0;font-size:28px;color:var(--navy)}.topbar p{margin:4px 0 0;color:var(--muted)}.stats{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.stats div{background:var(--light);border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-width:105px}.stats strong{display:block;font-size:22px;color:var(--navy)}.stats span{display:block;color:var(--muted);font-size:12px}.logout-btn{background:#6b7280}.layout{display:grid;grid-template-columns:330px 1fr;min-height:calc(100vh - 94px)}.sidebar{padding:16px;background:#fff;border-right:1px solid var(--line);overflow:auto}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:14px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions{display:grid;gap:10px}.actions button:nth-child(2){background:var(--navy)}.note p{color:var(--muted);font-size:13px;line-height:1.4}.content{display:grid;grid-template-rows:58vh 1fr;min-width:0}#map{width:100%;height:100%;border-bottom:1px solid var(--line)}.table-wrap{background:#fff;overflow:auto}.table-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);gap:16px}.table-header h2{margin:0;color:var(--navy)}#tableCount{color:var(--muted)}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:10px 12px;border-bottom:1px solid #edf1f5;text-align:left;vertical-align:top}th{position:sticky;top:0;background:#f8fafc;color:#344054;z-index:1}tr:hover td{background:#f8fafc}.popup-title{font-weight:800;color:var(--navy);font-size:15px;margin-bottom:4px}.popup-line{margin:3px 0}.leaflet-popup-content{min-width:230px}@media(max-width:900px){.topbar{display:block}.stats{justify-content:flex-start;margin-top:14px}.layout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.content{grid-template-rows:55vh 1fr}.grid2{grid-template-columns:1fr}}

.legend div { display:flex; align-items:center; gap:8px; margin-top:8px; font-size:13px; }
.legend span { width:12px; height:12px; border-radius:50%; display:inline-block; border:1px solid #fff; box-shadow:0 0 0 1px rgba(0,0,0,.15); }
.status-pill { display:inline-block; color:#fff; border-radius:999px; padding:3px 9px; font-size:12px; font-weight:700; margin:4px 0 8px; }
.table-status { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; vertical-align:middle; }
.tool-note{color:var(--muted);font-size:13px;line-height:1.35;margin:8px 0 12px}.secondary-btn{width:100%;margin-top:10px;background:#6b7280}.leaflet-control-layers{box-shadow:0 8px 24px rgba(0,0,0,.18);border:0!important;border-radius:10px!important}.leaflet-control-layers-expanded{padding:10px 12px;background:#fff}.leaflet-control-layers label{margin:4px 0;font-size:13px}.popup-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.popup-actions a,.popup-actions button{display:inline-block;text-decoration:none;background:var(--blue);color:#fff;border-radius:7px;padding:6px 9px;font-size:12px;font-weight:700}.popup-actions button{border:0;cursor:pointer}.popup-actions a:nth-child(2){background:var(--navy)}

/* JMI branded marker clusters: keep all clusters blue so colors only indicate customer status on individual pins. */
.jmi-cluster{background:transparent;border:0;}
.jmi-cluster-inner{
  background:#2563eb;
  color:#fff;
  border:3px solid rgba(255,255,255,.95);
  box-shadow:0 3px 12px rgba(0,0,0,.32);
  border-radius:999px;
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:13px;
}
.jmi-cluster-medium .jmi-cluster-inner{font-size:14px;}
.jmi-cluster-large .jmi-cluster-inner{font-size:15px;}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:transparent;}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:#2563eb;color:#fff;}
