*{box-sizing:border-box}html,body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f5f7fa;color:#172033}button,input,select,textarea{font:inherit}.hidden{display:none!important}.screen{min-height:100vh}.center-screen{display:grid;place-items:center;padding:24px}.login-card{width:min(460px,100%);background:#fff;border:1px solid #e5e9ef;border-radius:22px;padding:32px;box-shadow:0 18px 50px rgba(30,50,80,.08)}.brand-mark{width:54px;height:54px;border-radius:16px;background:#142b4a;color:#fff;display:grid;place-items:center;font-weight:800;font-size:18px;margin-bottom:18px}.brand-mark.small{width:40px;height:40px;border-radius:12px;margin:0}.login-card h1{font-size:26px;margin:0 0 6px}.muted,.footnote{color:#6a7485}.footnote{font-size:12px;margin-top:18px}.login-card form,.form-grid{display:grid;gap:12px}.login-card form{margin-top:26px}.login-card label,.field label{font-size:12px;font-weight:800;color:#566274;display:block;margin-bottom:6px}.login-card input,.field input,.field select,.field textarea{width:100%;border:1px solid #d9dfe7;border-radius:11px;padding:11px 12px;background:#fff;outline:none}.field textarea{min-height:90px;resize:vertical}.login-card input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#7487a2;box-shadow:0 0 0 3px rgba(116,135,162,.12)}button{border:0;border-radius:11px;padding:11px 14px;font-weight:700;cursor:pointer}.primary{background:#142b4a;color:#fff}.secondary{background:#eef2f7;color:#21344d}.danger-soft{background:#fff1f0;color:#9b342e}.ghost{background:transparent;color:#d7dfeb;width:100%;text-align:left;padding:9px 0}.small-btn{padding:8px 10px;font-size:12px}.icon-btn{background:#eef2f7;color:#334155;width:36px;height:36px;padding:0;font-size:22px}.toast{position:fixed;right:20px;top:20px;z-index:99;background:#172033;color:#fff;padding:12px 16px;border-radius:12px;box-shadow:0 12px 28px rgba(0,0,0,.15);max-width:420px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:245px;background:#10223a;color:#fff;padding:20px 16px;display:flex;flex-direction:column}.sidebar-brand{display:flex;gap:12px;align-items:center;padding:4px 4px 22px}.sidebar-brand strong{display:block;font-size:15px}.sidebar-brand span{display:block;color:#aebbd0;font-size:12px}.sidebar nav{display:grid;gap:5px}.nav-btn{background:transparent;color:#c5d0df;text-align:left;padding:11px 12px;border-radius:10px;font-weight:650}.nav-btn:hover,.nav-btn.active{background:#1b3556;color:#fff}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:14px}.user-mini{font-size:12px;color:#bec9d8;line-height:1.45;margin-bottom:6px}.main{margin-left:245px;min-height:100vh}.topbar{display:flex;justify-content:space-between;align-items:center;padding:24px 30px;background:#fff;border-bottom:1px solid #e6eaf0;position:sticky;top:0;z-index:10}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:#738096;font-weight:800;margin:0 0 3px}.topbar h2{margin:0;font-size:24px}.top-actions{display:flex;align-items:center;gap:10px}.badge{background:#e9eef5;color:#27405f;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;text-transform:capitalize}.content-wrap{padding:28px 30px 40px}.grid{display:grid;gap:16px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:#fff;border:1px solid #e5e9ef;border-radius:16px;padding:18px}.metric-value{font-size:30px;font-weight:800;margin:8px 0 2px}.metric-label{font-size:12px;color:#707b8c;font-weight:700}.section-title{display:flex;justify-content:space-between;align-items:center;margin:28px 0 12px;gap:12px}.section-title h3{margin:0;font-size:18px}.section-actions{display:flex;gap:8px;flex-wrap:wrap}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e9ef;border-radius:16px;overflow:hidden}.data-table th,.data-table td{text-align:left;padding:13px 14px;border-bottom:1px solid #edf0f4;font-size:13px}.data-table th{background:#f9fafc;color:#596579;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.click-row{cursor:pointer}.click-row:hover{background:#f8fafc}.level{font-weight:800;border-radius:999px;padding:5px 9px;display:inline-block;background:#eef2f6;text-transform:capitalize}.status-pill{font-weight:750;border-radius:999px;padding:5px 9px;display:inline-block;background:#f2f5f8;font-size:12px}.empty{padding:34px;text-align:center;color:#7b8797}.hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;background:#142b4a;color:#fff;border-radius:18px;padding:24px;margin-bottom:18px}.hero h3{margin:0 0 8px;font-size:23px}.hero p{margin:0;color:#c7d2e0;max-width:720px;line-height:1.55}.hero-actions{display:flex;gap:8px;flex-wrap:wrap}.hero-actions button{white-space:nowrap}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.feature-card h4{margin:0 0 7px}.feature-card p{font-size:13px;color:#6d7888;line-height:1.5;margin:0}.notice{background:#fff8df;border:1px solid #f0df9d;border-radius:14px;padding:14px 16px;color:#66531a;font-size:13px;margin-bottom:16px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#4a9a69;margin-right:6px}.client-head{display:grid;grid-template-columns:1.5fr repeat(3,minmax(120px,.7fr));gap:12px;margin-bottom:16px}.summary-box{background:#fff;border:1px solid #e5e9ef;border-radius:14px;padding:14px}.summary-box strong{display:block;font-size:12px;color:#6c7889;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.summary-box span{font-size:16px;font-weight:800}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tab-btn{background:#eef2f7;color:#32455e}.tab-btn.active{background:#142b4a;color:#fff}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.kv{display:grid;grid-template-columns:170px 1fr;gap:8px 16px;font-size:13px}.kv div:nth-child(odd){color:#697588;font-weight:700}.toggle-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #edf0f4}.toggle-row:last-child{border-bottom:0}.toggle-row input{width:20px;height:20px}.modal{position:fixed;inset:0;background:rgba(15,26,40,.5);display:grid;place-items:center;padding:20px;z-index:100}.modal-panel{width:min(680px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 20px 70px rgba(0,0,0,.25);padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head h3{margin:0}.form-grid.two{grid-template-columns:1fr 1fr}.actions-row{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.code-note{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f6f8fa;padding:8px;border-radius:8px;font-size:12px}.back-link{background:transparent;padding:0;color:#36577e;margin-bottom:12px}.inline-note{font-size:12px;color:#718096}.warning{background:#fff4e8;border:1px solid #f0cba2;border-radius:12px;padding:12px;color:#7a4a14;font-size:12px;margin:10px 0}@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.feature-grid,.three-col{grid-template-columns:repeat(2,1fr)}.client-head{grid-template-columns:1fr 1fr}}@media(max-width:760px){.sidebar{position:static;width:100%;min-height:auto}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar-footer{margin-top:18px}.main{margin-left:0}.topbar{position:static;padding:18px}.content-wrap{padding:18px}.metrics,.feature-grid,.two-col,.three-col,.client-head,.form-grid.two{grid-template-columns:1fr}.hero{display:block}.hero-actions{margin-top:16px}.top-actions{margin-left:10px}.kv{grid-template-columns:1fr}.kv div:nth-child(odd){margin-top:8px}}

.map-shell{background:#fff;border:1px solid #e5e9ef;border-radius:16px;padding:12px;overflow:hidden}
.map-container{height:470px;width:100%;border-radius:12px;background:#e9eef4}
.map-note{font-size:12px;color:#6f7a8a;line-height:1.5;margin-top:9px}
.location-health{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.health-item{background:#fff;border:1px solid #e5e9ef;border-radius:14px;padding:14px}
.health-item strong{display:block;font-size:11px;color:#6b7789;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.health-item span{font-size:15px;font-weight:800}
.location-warning{background:#fff4e8;border:1px solid #efc48f;color:#714410;border-radius:14px;padding:14px 16px;margin-bottom:14px}
.location-safe{background:#edf7f1;border:1px solid #cfe4d7;color:#315c42;border-radius:14px;padding:14px 16px;margin-bottom:14px}
.map-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:#687587;margin:10px 2px 0}
.map-legend span{display:flex;align-items:center;gap:6px}
.legend-line{width:22px;height:0;border-top:3px solid currentColor;display:inline-block}
.legend-dashed{border-top-style:dashed}
.location-list{display:grid;gap:8px}
.location-card{background:#fff;border:1px solid #e5e9ef;border-radius:13px;padding:12px;cursor:pointer}
.location-card:hover{background:#f8fafc}
.location-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.location-card p{margin:5px 0 0;font-size:12px;color:#6f7a8a}
@media(max-width:760px){.location-health{grid-template-columns:1fr 1fr}.map-container{height:380px}}


/* ============================================================
   Leaflet fallback layout.
   This keeps map panes/tiles usable even if the CDN stylesheet
   is delayed or partially blocked by a browser/network.
   ============================================================ */
.leaflet-container{
  position:relative;
  overflow:hidden;
  background:#dde4ec;
  outline:0;
  -webkit-tap-highlight-color:transparent;
}
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer{
  position:absolute;
  left:0;
  top:0;
}
.leaflet-map-pane,
.leaflet-pane{z-index:400}
.leaflet-tile-pane{z-index:200}
.leaflet-overlay-pane{z-index:400}
.leaflet-shadow-pane{z-index:500}
.leaflet-marker-pane{z-index:600}
.leaflet-tooltip-pane{z-index:650}
.leaflet-popup-pane{z-index:700}
.leaflet-map-pane canvas{z-index:100}
.leaflet-map-pane svg{z-index:200}
.leaflet-container .leaflet-tile{
  max-width:none!important;
  max-height:none!important;
  width:auto;
  padding:0;
  user-select:none;
  -webkit-user-drag:none;
}
.leaflet-tile-container{
  pointer-events:none;
}
.leaflet-top,
.leaflet-bottom{
  position:absolute;
  z-index:1000;
  pointer-events:none;
}
.leaflet-top{top:0}
.leaflet-right{right:0}
.leaflet-bottom{bottom:0}
.leaflet-left{left:0}
.leaflet-control{
  position:relative;
  z-index:800;
  pointer-events:auto;
  float:left;
  clear:both;
}
.leaflet-right .leaflet-control{float:right}
.leaflet-top .leaflet-control{margin-top:10px}
.leaflet-bottom .leaflet-control{margin-bottom:10px}
.leaflet-left .leaflet-control{margin-left:10px}
.leaflet-right .leaflet-control{margin-right:10px}
.leaflet-control-zoom{
  box-shadow:0 1px 5px rgba(0,0,0,.35);
  border-radius:4px;
  overflow:hidden;
}
.leaflet-control-zoom a{
  display:block;
  width:30px;
  height:30px;
  line-height:30px;
  background:#fff;
  color:#111;
  text-decoration:none;
  text-align:center;
  font-size:22px;
  border-bottom:1px solid #ccc;
}
.leaflet-control-zoom a:last-child{border-bottom:0}
.leaflet-control-attribution{
  background:rgba(255,255,255,.8);
  padding:2px 5px;
  color:#333;
  font-size:11px;
}
.leaflet-control-attribution a{
  color:#0078a8;
  text-decoration:none;
}
.leaflet-popup{
  position:absolute;
  text-align:center;
  margin-bottom:20px;
}
.leaflet-popup-content-wrapper{
  background:#fff;
  border-radius:10px;
  box-shadow:0 3px 14px rgba(0,0,0,.25);
  padding:1px;
}
.leaflet-popup-content{
  margin:12px 16px;
  line-height:1.4;
  text-align:left;
}
