:root{
  --blue:#15346e;--blue2:#1d428a;--soft:#eaf0fb;--ink:#10213f;--muted:#61708c;
  --border:#dbe4f0;--danger:#b42318;--warn:#b26a00;--ok:#198754;--bg:#f5f7fb;
  --shadow:0 18px 48px rgba(16,33,63,.08);
}
*{box-sizing:border-box}
body{margin:0;font-family:Roboto,system-ui,"Segoe UI",sans-serif;background:linear-gradient(180deg,#f8fbff,#f3f6fb);color:var(--ink)}
a{text-decoration:none}
.topbar{background:linear-gradient(120deg,var(--blue),var(--blue2));color:#fff;padding:14px 24px;display:flex;justify-content:space-between;gap:16px;align-items:center;box-shadow:0 12px 35px rgba(21,52,110,.24)}
.brand{display:flex;gap:14px;align-items:center}.brand-mark{width:58px;height:58px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.18);font-size:1.75rem}
.brand-title{font-weight:800;font-size:1.22rem}.brand-subtitle{opacity:.86;font-size:.9rem}
.topbar-actions{display:flex;gap:10px;align-items:center}.user-chip{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:9px 13px;font-size:.9rem}
.page-shell{max-width:1600px;margin:22px auto;padding:0 18px 30px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px}
.side-menu{position:sticky;top:18px;height:max-content;display:grid;gap:8px}.side-menu.card{padding:12px}
.side-menu a{border:1px solid var(--border);background:#fff;border-radius:14px;padding:9px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;font-weight:800;color:var(--ink);min-height:56px}
.side-menu a:hover,.side-menu a.active{background:linear-gradient(120deg,var(--blue),var(--blue2));color:#fff;border-color:var(--blue2)}
.menu-icon{width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:var(--soft);color:var(--blue);font-size:1.2rem}
.side-menu a:hover .menu-icon,.side-menu a.active .menu-icon{background:rgba(255,255,255,.16);color:#fff}
.menu-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card{background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow)}
.card-header{background:#f8fbff;border-bottom:1px solid var(--border);color:var(--blue);font-weight:800;border-radius:20px 20px 0 0!important}
.metric-card{border:0}.metric-card .display-6{color:var(--blue)}
.readiness-5{border-left:6px solid #6f2dbd}.readiness-4{border-left:6px solid #b42318}.readiness-3{border-left:6px solid #e5a000}.readiness-2{border-left:6px solid #1d7fa5}.readiness-1{border-left:6px solid #198754}
.btn{border-radius:12px;font-weight:700}.btn-primary,.btn-dark{background:linear-gradient(120deg,var(--blue),var(--blue2));border-color:var(--blue2)}
.btn-outline-dark{color:var(--blue);border-color:var(--blue)}.btn-outline-dark:hover{background:var(--blue)}
.btn-danger{background:#b42318;border-color:#b42318}
.form-control,.form-select{border:1px solid var(--border);border-radius:12px;padding:.7rem .8rem}.form-control:focus,.form-select:focus{border-color:var(--blue2);box-shadow:0 0 0 .2rem rgba(29,66,138,.13)}
.table{--bs-table-bg:transparent}.table th{white-space:nowrap;background:#f8fbff;color:var(--blue);font-size:.76rem;text-transform:uppercase;letter-spacing:.03em}
.badge{border-radius:999px}.nav-tabs{overflow-x:auto;flex-wrap:nowrap}.nav-tabs .nav-link{white-space:nowrap;color:var(--blue);font-weight:700}.nav-tabs .nav-link.active{color:var(--blue2);font-weight:800}
.modal-content{border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}.modal-header{background:#f8fbff}.modal-title{color:var(--blue);font-weight:800}
.icon-btn{width:40px;height:40px;min-width:40px;border:1px solid var(--border);border-radius:12px;background:#f8fbff;color:var(--blue);display:inline-flex;align-items:center;justify-content:center}
.map-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;background:#f8fbff;border-bottom:1px solid var(--border)}
.map-legend{display:flex;gap:8px;flex-wrap:wrap}.map-legend span{font-size:.78rem;padding:4px 8px;border-radius:999px;background:#fff;border:1px solid var(--border)}
.feature-list{max-height:620px;overflow:auto}.feature-row{padding:10px 0;border-bottom:1px solid var(--border)}
.live-dot{width:10px;height:10px;border-radius:50%;background:#198754;box-shadow:0 0 0 4px rgba(25,135,84,.12);display:inline-block}

/* Sentra-style login experience */
.login-screen{min-height:100vh;background:radial-gradient(circle at top left,rgba(29,66,138,.18),transparent 34%),linear-gradient(180deg,#f8fbff,#eef3fb)}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(320px,480px);gap:28px;align-items:center;max-width:1180px;margin:0 auto;padding:28px}
.login-brand-panel{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;border-radius:28px;padding:34px;box-shadow:0 24px 70px rgba(21,52,110,.28);min-height:560px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.login-brand-panel:after{content:"";position:absolute;right:-120px;bottom:-120px;width:340px;height:340px;border-radius:50%;background:rgba(255,255,255,.09)}
.login-brand-panel h1{font-size:clamp(2rem,4vw,3.5rem);line-height:1.05;margin:34px 0 18px;max-width:720px}.login-brand-panel p{font-size:1.08rem;line-height:1.6;max-width:660px;opacity:.9}
.login-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px;max-width:620px}.login-feature-grid span{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:13px 14px;font-weight:800}
.login-card{max-width:480px;width:100%;padding:28px;border-radius:24px}.login-logo-row{display:flex;align-items:center;gap:12px;margin-bottom:20px}.login-logo-row .brand-mark{background:linear-gradient(120deg,var(--blue),var(--blue2));color:#fff}
.login-help-row{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}.login-help-row a{color:var(--blue2);font-weight:800}
.login-buttons{display:flex;gap:12px;margin-top:20px}.login-buttons .btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px}
.notice{background:#ecfdf5;border:1px solid #bbf7d0;color:#166534;border-radius:12px;padding:12px;margin-bottom:14px}.alert{border-radius:12px}
.auth-label{display:grid;gap:7px;font-weight:700;font-size:.92rem;margin-bottom:14px}
.small-note{font-size:.84rem;color:var(--muted)}
.password-meter{height:7px;background:#edf1f7;border-radius:999px;overflow:hidden;margin-top:7px}.password-meter>span{height:100%;display:block;width:0;background:#b42318;transition:width .2s}
.brand-fire{position:relative;z-index:2}

@media(max-width:900px){
  .login-shell{grid-template-columns:1fr;padding:18px}.login-brand-panel{min-height:auto;padding:26px}.login-feature-grid{grid-template-columns:1fr}.login-card{max-width:none}
  .page-shell{max-width:none;margin:12px 0;padding:0 10px 24px;grid-template-columns:72px minmax(0,1fr);gap:10px}.side-menu.card{position:sticky;top:10px;padding:8px;border-radius:18px}
  .side-menu a{grid-template-columns:1fr;place-items:center;min-height:52px;width:52px;padding:5px}.side-menu .menu-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .side-menu .menu-icon{width:40px;height:40px}.content-stack{min-width:0}.topbar{align-items:flex-start;flex-direction:column}
}
@media(max-width:520px){.topbar{padding:12px}.page-shell{grid-template-columns:64px minmax(0,1fr);padding-left:6px;padding-right:6px}.side-menu a{width:48px;min-height:48px}.brand-mark{width:50px;height:50px}.login-buttons{flex-direction:column}}

.resource-marker{width:30px;height:30px;border-radius:50%;background:linear-gradient(120deg,var(--blue),var(--blue2));border:3px solid #fff;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;box-shadow:0 6px 18px rgba(16,33,63,.28)}
.stat{border:1px solid var(--border);border-radius:16px;padding:14px;background:#fff}.stat span{display:block;color:var(--muted);font-size:.82rem}.stat strong{display:block;color:var(--blue);font-size:1.35rem}.stat small{color:var(--muted)}
.layer-card{border:1px solid var(--border);border-radius:16px;padding:14px;background:#f8fbff}

.responder-marker{width:28px;height:28px;border-radius:50%;background:#198754;border:3px solid #fff;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(16,33,63,.25)}
.task-row{border:1px solid var(--border);border-left:5px solid #61708c;border-radius:14px;padding:12px;margin-bottom:10px;background:#fff}.task-critical{border-left-color:#b42318}.task-high{border-left-color:#b26a00}.task-normal{border-left-color:#1d428a}.task-low{border-left-color:#198754}
.proximity-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}

.header-icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.12);color:#fff;display:inline-flex;align-items:center;justify-content:center;position:relative}.header-count{position:absolute;right:-5px;top:-7px;background:#b42318;color:#fff;border-radius:999px;min-width:20px;height:20px;padding:0 5px;font-size:.7rem;display:flex;align-items:center;justify-content:center;font-weight:800}.user-chip{cursor:pointer;color:#fff}.duty-chip{border-radius:999px;border:1px solid rgba(255,255,255,.2);padding:8px 12px;font-weight:800}.duty-chip.on{background:#e6f4ea;color:#166534}.duty-chip.off{background:#fef3f2;color:#b42318}
.header-dropdown{position:fixed;right:18px;top:78px;width:min(92vw,390px);background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 22px 60px rgba(16,33,63,.2);z-index:1080;display:none;overflow:hidden}.header-dropdown.show{display:block}.header-dropdown-head{background:#f8fbff;color:var(--blue);font-weight:800;padding:12px 14px;border-bottom:1px solid var(--border)}.header-dropdown-body{max-height:420px;overflow:auto;padding:10px}.online-user-row,.header-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px;border-bottom:1px solid var(--border)}.header-item{display:block}.header-item.critical{border-left:4px solid #b42318;background:#fef3f2}.handover-pre{white-space:pre-wrap;font:inherit;background:#f8fbff;border:1px solid var(--border);border-radius:14px;padding:12px}.responder-screen{background:linear-gradient(180deg,#f8fbff,#eef3fb);min-height:100vh}.responder-shell{max-width:620px;margin:0 auto;padding:16px}.responder-card{margin-top:12px}.responder-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.responder-grid>div{border:1px solid var(--border);border-radius:14px;padding:12px;background:#f8fbff}.responder-grid span{display:block;color:var(--muted);font-size:.8rem}

.map-risk-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 12px;background:#f8fbff;border-bottom:1px solid var(--border);font-size:.8rem;color:var(--muted)}
.map-risk-legend span{display:inline-flex;align-items:center;gap:5px}.risk-key{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid rgba(16,33,63,.15)}.risk-key.level-1{background:#198754}.risk-key.level-2{background:#1d7fa5}.risk-key.level-3{background:#e5a000}.risk-key.level-4{background:#b42318}.risk-key.level-5{background:#6f2dbd}.incident-key{color:#d9480f;font-size:1rem}
.incident-flame-icon{background:transparent!important;border:0!important;overflow:visible!important}
.incident-flame-svg{display:block;filter:drop-shadow(0 5px 6px rgba(16,33,63,.32))}
.map-data-warning{position:absolute;z-index:800;background:#fff3cd;color:#664d03;border:1px solid #ffecb5;border-radius:10px;padding:7px 10px;margin:10px;font-size:.82rem;box-shadow:0 3px 10px rgba(16,33,63,.12)}
.incident-map-popup .badge{vertical-align:middle}

.risk-pulse-legend{display:inline-block;width:15px;height:15px;border-radius:50%;border:2px solid #b42318;box-shadow:0 0 0 3px rgba(180,35,24,.12)}
.asset-key{color:var(--blue2);font-size:1rem}

.leaflet-overlay-pane path.risk-pulse-4{
  animation:riskPulse4 3.4s ease-in-out infinite;
}
.leaflet-overlay-pane path.risk-pulse-5{
  animation:riskPulse5 2.8s ease-in-out infinite;
}
@keyframes riskPulse4{
  0%,100%{stroke-width:1.6;filter:drop-shadow(0 0 0 rgba(180,35,24,0))}
  50%{stroke-width:3.4;filter:drop-shadow(0 0 4px rgba(180,35,24,.50))}
}
@keyframes riskPulse5{
  0%,100%{stroke-width:1.8;filter:drop-shadow(0 0 1px rgba(111,45,189,.18))}
  50%{stroke-width:4.2;filter:drop-shadow(0 0 6px rgba(111,45,189,.68))}
}
@media (prefers-reduced-motion:reduce){
  .leaflet-overlay-pane path.risk-pulse-4,
  .leaflet-overlay-pane path.risk-pulse-5{animation:none!important}
}
.assigned-asset-icon{background:transparent!important;border:0!important}
.assigned-asset-marker{
  width:32px;height:32px;border-radius:10px;
  background:linear-gradient(120deg,var(--blue),var(--blue2));
  border:2px solid #fff;color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 5px 14px rgba(16,33,63,.28);
  font-size:.68rem;font-weight:900;letter-spacing:-.02em;
}
.leaflet-control-layers{
  border:1px solid var(--border)!important;
  border-radius:12px!important;
  box-shadow:0 8px 22px rgba(16,33,63,.14)!important;
  font-family:Roboto,system-ui,sans-serif;
}
.leaflet-control-layers-expanded{padding:9px 11px!important}

/* v0.7.4 - Leaflet inside Bootstrap incident tabs */
#singleIncidentMap{
  width:100%;
  min-height:680px;
  position:relative;
  display:block;
}
#tab-map.show #singleIncidentMap,
#tab-map.active #singleIncidentMap{
  width:100%;
}
#singleIncidentMap.leaflet-container{
  width:100%;
  height:680px;
  min-height:680px;
}
@media(max-width:900px){
  #singleIncidentMap,
  #singleIncidentMap.leaflet-container{
    height:560px;
    min-height:560px;
  }
}

/* v0.7.5 meaningful incident-map symbols */
.meaningful-marker{
  width:32px;height:32px;border-radius:10px;
  border:2px solid #fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 5px 14px rgba(16,33,63,.28);
  position:relative;
}
.meaningful-marker .map-symbol-svg{
  width:19px;height:19px;
  fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;
}
.meaningful-marker .map-symbol-svg circle,
.meaningful-marker .map-symbol-svg rect{fill:none}
.resource-marker.meaningful-marker{background:linear-gradient(120deg,var(--blue),var(--blue2));color:#fff}
.responder-marker.meaningful-marker{background:#198754;color:#fff}
.water-marker.meaningful-marker{background:#1d7fa5;color:#fff}
.infrastructure-marker.meaningful-marker{background:#5f3dc4;color:#fff}
.vulnerable-marker.meaningful-marker{background:#b26a00;color:#fff}
.direction-chip{
  position:absolute;right:-6px;bottom:-6px;
  width:18px;height:18px;border-radius:50%;
  background:#fff;color:var(--blue);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-size:.72rem;font-weight:900;
  box-shadow:0 2px 6px rgba(16,33,63,.18)
}
.layer-control-label{
  display:inline-flex;align-items:center;gap:7px;
  vertical-align:middle;
}
.layer-control-icon{
  width:24px;height:24px;border-radius:7px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#f8fbff;border:1px solid var(--border);color:var(--blue);
}
.layer-control-icon .map-symbol-svg{
  width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;
}
.leaflet-control-layers label{
  display:flex!important;align-items:center;gap:4px;
  margin:4px 0;
}
.leaflet-control-layers label input{
  margin-right:3px;
}

/* v0.7.6 compact incident-card actions */
.incident-action-icon{
  width:34px;height:34px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--border);
  border-radius:9px;
  background:#fff;
  color:var(--blue);
  text-decoration:none;
  flex:0 0 34px;
  padding:0!important;
}
.incident-action-icon:hover,
.incident-action-icon:focus{
  background:#eef6ff;
  color:var(--blue2);
  border-color:#b9d8f4;
}
.incident-action-icon i{font-size:.95rem;line-height:1}
.incident-actions,
td.incident-actions{
  white-space:nowrap;
  width:1%;
}
.incidents-card .table-responsive{
  overflow-x:visible;
}
.incidents-card table{
  width:100%;
  table-layout:auto;
}

/* v0.7.7 icon-only incident navigation */
.incident-icon-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  border-bottom:0;
  overflow:visible;
  padding:4px 0;
}
.incident-icon-tabs .nav-item{
  margin:0;
}
.incident-icon-tabs .incident-tab-icon{
  width:42px;
  height:42px;
  min-width:42px;
  padding:0;
  border:1px solid var(--border);
  border-radius:11px;
  background:#fff;
  color:var(--blue);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 2px 7px rgba(16,33,63,.06);
}
.incident-icon-tabs .incident-tab-icon i{
  font-size:1.12rem;
  line-height:1;
}
.incident-icon-tabs .incident-tab-icon:hover,
.incident-icon-tabs .incident-tab-icon:focus{
  background:#eef6ff;
  color:var(--blue2);
  border-color:#b9d8f4;
}
.incident-icon-tabs .incident-tab-icon.active{
  background:linear-gradient(120deg,var(--blue),var(--blue2));
  color:#fff;
  border-color:transparent;
  box-shadow:0 5px 14px rgba(29,66,138,.22);
}
.incident-icon-tabs .incident-tab-icon.active:hover{
  color:#fff;
}
@media(max-width:700px){
  .incident-icon-tabs{gap:6px}
  .incident-icon-tabs .incident-tab-icon{
    width:39px;height:39px;min-width:39px;
  }
}

/* v0.7.8 right-click operational map quick-add */
#singleIncidentMap{position:relative}
.map-context-menu{
  position:absolute;
  z-index:1200;
  display:none;
  width:235px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:0 14px 34px rgba(16,33,63,.22);
  padding:7px;
}
.map-context-menu.show{display:block}
.map-context-head{
  padding:8px 9px;
  font-size:.82rem;
  color:var(--muted);
  font-weight:700;
}
.map-context-menu button{
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  border:0;
  background:transparent;
  border-radius:9px;
  padding:8px 9px;
  text-align:left;
  color:var(--text);
}
.map-context-menu button:hover,
.map-context-menu button:focus{
  background:#eef6ff;
  color:var(--blue);
}
.map-context-menu button i{
  width:22px;
  text-align:center;
  color:var(--blue);
}
.map-context-separator{
  height:1px;
  background:var(--border);
  margin:5px 4px;
}

.agency-marker.meaningful-marker{background:#495057;color:#fff}

/* v1.0.2 National Resources capability-deficiency navigation alert */
.side-menu .menu-icon{position:relative}
.nav-warning-triangle{
  position:absolute;
  right:-8px;
  top:-8px;
  width:20px;
  height:20px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff3cd;
  color:#b54708;
  border:1px solid #f5c26b;
  box-shadow:0 2px 7px rgba(16,33,63,.18);
  font-size:.72rem;
  z-index:3;
}
.side-menu a.has-nav-warning{
  border-color:rgba(181,71,8,.28);
}
.nav-warning-inline{
  color:#b54708;
}
@media(min-width:901px){
  .nav-warning-inline{display:none}
}

.national-posture-bar{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:10px 14px;border-radius:14px;margin-bottom:16px;border:1px solid var(--border);background:#fff}.national-posture-bar a{margin-left:auto}.posture-normal{border-left:5px solid #198754}.posture-elevated{border-left:5px solid #e5a000}.posture-high{border-left:5px solid #d9480f}.posture-severe{border-left:5px solid #b42318}.posture-badge{padding:8px 12px;border-radius:999px;font-weight:800}.attention-row{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.attention-row:hover{background:#f8fbff}.attention-dot{width:11px;height:11px;border-radius:50%;margin-top:5px;flex:0 0 11px}.attention-dot-critical{background:#b42318}.attention-dot-warning{background:#e5a000}.attention-dot-action{background:#1d7fa5}.attention-card{text-decoration:none;color:inherit}.attention-critical{border-left:5px solid #b42318}.attention-warning{border-left:5px solid #e5a000}.attention-action{border-left:5px solid #1d7fa5}.national-incident-svg{filter:drop-shadow(0 4px 5px rgba(16,33,63,.30))}

/* v1.3.2 collapsible Attention Required dashboard card */
.attention-summary-card .card-header{
  min-height:52px;
}
.attention-summary-card .attention-toggle-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:94px;
  justify-content:center;
}
.attention-summary-card .attention-toggle-icon{
  transition:transform .2s ease;
}

.role-option-card{border:1px solid var(--border);border-radius:10px;padding:9px 10px 9px 34px;background:#fff}
.recipient-preview-list{max-height:280px;overflow:auto}
.recipient-preview-row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border)}
.recipient-preview-row:last-child{border-bottom:0}

/* v1.3.9 read-only alert delivery modal */
.alert-message-readonly{
  white-space:pre-wrap;
  line-height:1.55;
}
.alert-delivery-attempt .table th,
.alert-delivery-attempt .table td{
  vertical-align:middle;
}
.alert-delivery-attempt .table{
  font-size:.9rem;
}

/* v1.4.1 Integration Hub state indicators */
.integration-state-badge{display:inline-flex;align-items:center;gap:.42rem;padding:.32rem .62rem;border-radius:999px;font-size:.78rem;font-weight:800;line-height:1;border:1px solid transparent;white-space:nowrap}
.integration-state-badge.is-active{background:#e8f7ef;color:#157347;border-color:#b9e4ca}
.integration-state-badge.is-inactive{background:#fdecec;color:#b42318;border-color:#f4b7b3}
.integration-state-badge-sm{padding:.26rem .5rem;font-size:.74rem}
.integration-state-dot{width:.52rem;height:.52rem;border-radius:50%;display:inline-block;background:currentColor;box-shadow:0 0 0 2px rgba(255,255,255,.75)}
.integration-state-badge.is-active .integration-state-dot{animation:integration-active-pulse 2.4s ease-in-out infinite}
@keyframes integration-active-pulse{0%,100%{box-shadow:0 0 0 2px rgba(21,115,71,.12)}50%{box-shadow:0 0 0 5px rgba(21,115,71,.10)}}

/* v1.4.3 Integration Hub full-width data sources + modal editor */
.integration-source-table{min-width:1120px}
.integration-source-table td:first-child{min-width:280px}
#integrationSourceModal .modal-dialog{max-width:1050px}
#integrationSourceModal textarea.font-monospace,
#integrationSourceModal input.font-monospace{font-size:.88rem}

/* v1.4.5 Live Regional Weather Intelligence */
.weather-feed-badge{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:700;border-radius:999px;padding:3px 7px;border:1px solid transparent;white-space:nowrap}
.weather-feed-live{background:#e8f7ee;color:#146c43;border-color:#badbcc}.weather-feed-stale{background:#fff3cd;color:#856404;border-color:#ffecb5}.weather-feed-missing{background:#f1f3f5;color:#667085;border-color:#dee2e6}
.weather-day-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:100%}.weather-day-card{border:1px solid var(--border);border-radius:10px;padding:9px;background:#f8fbff;font-size:.78rem;line-height:1.55}.weather-day-card.is-today{border-color:#9bb8e9;background:#edf4ff}.weather-day-title{text-transform:uppercase;font-size:.7rem;font-weight:800;color:var(--muted)}.weather-temp{font-size:1.18rem;font-weight:800;color:#173b73;margin:2px 0}
.weather-driver{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 8px;font-size:.76rem;border:1px solid}.weather-driver-high{background:#fff0f0;color:#9f1d20;border-color:#f0b7b9}.weather-driver-medium{background:#fff8e6;color:#8a5b00;border-color:#f2d58b}.weather-driver-low{background:#eaf7ee;color:#176c42;border-color:#bddfca}
.weather-popup-live{color:#198754}.weather-popup-stale{color:#b58100}.weather-popup-missing{color:#6c757d}.weather-popup-status{font-size:.75rem;font-weight:700}
@media(max-width:767.98px){.weather-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-day-card:last-child:nth-child(odd){grid-column:1/-1;max-width:50%;width:100%;justify-self:center}}

/* v1.5.0 Official Fire Severity Index */
.fsi-panel{border:1px solid #dee2e6;border-radius:10px;padding:10px;background:#fff}
.fsi-feed-badge,.fsi-mini{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 7px;font-size:.72rem;font-weight:700;border:1px solid #dee2e6}
.fsi-feed-live{background:#e8f7ee;color:#146c43;border-color:#badbcc}.fsi-feed-stale{background:#fff3cd;color:#856404;border-color:#ffecb5}.fsi-feed-missing{background:#f1f3f5;color:#667085}
.fsi-day-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-width:100%}.fsi-day-card{border-radius:8px;padding:7px;text-align:center;border:1px solid #dee2e6}.fsi-day-title{font-size:.67rem;font-weight:800;text-transform:uppercase}.fsi-level-number{font-size:1.35rem;font-weight:900;line-height:1.15}.fsi-level-label{font-size:.65rem;font-weight:700}
.fsi-level-1{background:#eef7ee;color:#236b31;border-color:#bcd8c1}.fsi-level-2{background:#f2f7df;color:#586b17;border-color:#d6df9f}.fsi-level-3{background:#fff6cf;color:#775d00;border-color:#ecd77a}.fsi-level-4{background:#ffead1;color:#934b00;border-color:#efbd83}.fsi-level-5{background:#fde1e1;color:#9f1d20;border-color:#e9a7a9}
@media(max-width:575.98px){.fsi-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fsi-day-card:last-child:nth-child(odd){grid-column:1 / -1;max-width:50%;width:100%;justify-self:center}}

/* v1.5.1 OpenWeather Fire Weather Index */
.fwi-panel{border:1px solid #dee2e6;border-radius:10px;padding:10px;background:#fff}
.fwi-feed-badge,.fwi-mini{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 7px;font-size:.72rem;font-weight:700;border:1px solid #dee2e6}
.fwi-feed-live{background:#e8f7ee;color:#146c43;border-color:#badbcc}.fwi-feed-stale{background:#fff3cd;color:#856404;border-color:#ffecb5}.fwi-feed-missing{background:#f1f3f5;color:#667085}
.fwi-day-grid{display:grid;grid-template-columns:repeat(6,minmax(72px,1fr));gap:6px}.fwi-day-card{border-radius:8px;padding:7px;text-align:center;border:1px solid #dee2e6}.fwi-day-title{font-size:.67rem;font-weight:800;text-transform:uppercase}.fwi-value{font-size:1.25rem;font-weight:900;line-height:1.15}
.fwi-class-0{background:#eef7ee;color:#236b31;border-color:#bcd8c1}.fwi-class-1{background:#f2f7df;color:#586b17;border-color:#d6df9f}.fwi-class-2{background:#fff6cf;color:#775d00;border-color:#ecd77a}.fwi-class-3{background:#ffead1;color:#934b00;border-color:#efbd83}.fwi-class-4{background:#fde1e1;color:#9f1d20;border-color:#e9a7a9}.fwi-class-5{background:#eeddf5;color:#68217a;border-color:#cfa6dc}
@media(max-width:767.98px){.fwi-day-grid{grid-template-columns:repeat(3,minmax(72px,1fr))}}

/* v1.5.2 NASA FIRMS */
.satellite-fire-marker{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#6610f2;color:#fff;border:2px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.45);font-size:12px}
.satellite-key{color:#6610f2}.satellite-feed{font-weight:700}.satellite-feed-live{color:#198754}.satellite-feed-stale{color:#b58100}.satellite-feed-missing{color:#6c757d}

/* v1.5.3 Satellite Intelligence & Detection Clustering */
.cluster-key{color:#7b2cbf}
.satellite-cluster-marker{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;color:#fff;border:2px solid #fff;box-shadow:0 2px 7px rgba(0,0,0,.5);background:#6c757d}
.satellite-cluster-marker span{position:absolute;right:-4px;top:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#111;color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center}
.cluster-new{background:#6c757d}.cluster-monitoring{background:#0d6efd}.cluster-persistent{background:#fd7e14}.cluster-escalating{background:#dc3545;animation:clusterPulse 1.8s ease-in-out infinite}.cluster-linked-to-incident{background:#6f42c1}
@keyframes clusterPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(220,53,69,.35)}50%{transform:scale(1.08);box-shadow:0 0 0 8px rgba(220,53,69,0)}}
.satellite-status-new,.satellite-status-monitoring,.satellite-status-persistent,.satellite-status-escalating,.satellite-status-linked-to-incident{color:#fff}
.satellite-status-new{background:#6c757d}.satellite-status-monitoring{background:#0d6efd}.satellite-status-persistent{background:#fd7e14}.satellite-status-escalating{background:#dc3545}.satellite-status-linked-to-incident{background:#6f42c1}
.satellite-cluster-summary{border-left:4px solid #6f42c1;padding:7px 9px;background:#f8f6fc;border-radius:0 8px 8px 0}

/* v1.6.0 National Risk Fusion */
.fusion-hero{display:flex;justify-content:space-between;align-items:center;border-radius:12px;padding:12px 14px;border:1px solid #d8dee8;background:#f8fafc}
.fusion-score{font-size:2rem;font-weight:900;line-height:1}.fusion-score span{font-size:.85rem;font-weight:700}.fusion-level-label{font-size:1.1rem;font-weight:900}
.fusion-level-4{background:#fff5e8;border-color:#efc28b}.fusion-level-5{background:#fff0f0;border-color:#e7a5a7}
.fusion-components{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:7px}.fusion-component{font-size:.72rem}.fusion-bar{height:6px;background:#e9ecef;border-radius:8px;overflow:hidden;margin-top:3px}.fusion-bar span{display:block;height:100%;background:#315b96;border-radius:8px}
@media(max-width:1199px){.fusion-components{grid-template-columns:repeat(3,minmax(110px,1fr))}}@media(max-width:767px){.fusion-components{grid-template-columns:repeat(2,minmax(110px,1fr))}}


/* v1.6.0a — Risk Fusion component layout correction */
.fusion-components{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    width:100%;
}
.fusion-component{
    min-width:0;
    width:100%;
    padding:8px 10px;
    border:1px solid #e3e7ed;
    border-radius:8px;
    background:#fff;
    overflow:hidden;
}
.fusion-component .d-flex{
    min-width:0;
    gap:8px;
}
.fusion-component .d-flex > span{
    min-width:0;
    overflow-wrap:anywhere;
}
.fusion-component .d-flex > strong{
    flex:0 0 auto;
    white-space:nowrap;
}
.fusion-bar{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    overflow:hidden;
}
.fusion-bar span{
    max-width:100%;
}
@media (min-width:1200px){
    .fusion-components{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .fusion-component:nth-child(4),
    .fusion-component:nth-child(5){
        grid-column:auto;
    }
}
@media (max-width:991px){
    .fusion-components{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media (max-width:575px){
    .fusion-components{
        grid-template-columns:1fr;
    }
}

/* v1.7.0 Predictive National Wildfire Intelligence */
.forecast-level{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.76rem;font-weight:800;border:1px solid}
.forecast-level-1{background:#eef7ee;color:#236b31;border-color:#bcd8c1}.forecast-level-2{background:#f2f7df;color:#586b17;border-color:#d6df9f}.forecast-level-3{background:#fff6cf;color:#775d00;border-color:#ecd77a}.forecast-level-4{background:#ffead1;color:#934b00;border-color:#efbd83}.forecast-level-5{background:#fde1e1;color:#9f1d20;border-color:#e9a7a9}
.strategic-briefing{max-width:1050px;margin:0 auto;background:#fff;padding:28px;border:1px solid #e1e5ea;border-radius:10px}.strategic-briefing section{margin-bottom:28px}.briefing-item{padding:8px 0;border-bottom:1px solid #eceff3}
@media print{.no-print,.sidebar,.topbar{display:none!important}.strategic-briefing{max-width:none;border:0;padding:0}.main-content{margin:0!important;padding:0!important}}

/* v1.8.0 National Readiness & Mobilisation */
.readiness-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px;border:1px solid #d9e0e8;border-radius:14px;background:#f8fafc}
.readiness-outlooks{display:grid;grid-template-columns:repeat(3,110px);gap:8px}.readiness-outlooks>div{background:#fff;border:1px solid #e0e5eb;border-radius:10px;padding:10px;text-align:center}.readiness-outlooks small,.readiness-outlooks strong{display:block}
@media(max-width:767px){.readiness-hero{display:block}.readiness-outlooks{grid-template-columns:repeat(3,1fr);margin-top:15px}}

/* v1.9.0 Multi-Agency Coordination & Interoperability */
.agency-participant{padding:9px 10px;border:1px solid #e4e8ed;border-radius:9px;background:#fafbfd}
.agency-sitrep{padding:10px 12px;border-left:4px solid #315b96;background:#f8fafc;border-radius:0 8px 8px 0}
.offer-match{padding:9px 10px;border-left:4px solid #198754;background:#f4fbf7;border-radius:0 8px 8px 0}

/* v2.0.0 National Wildfire Intelligence & Decision Support */
.analyst-evidence,.exposure-kpi{height:100%;padding:10px;border:1px solid #e1e6ec;border-radius:9px;background:#f8fafc}
.analyst-evidence small,.analyst-evidence strong,.exposure-kpi small,.exposure-kpi strong{display:block}.analyst-evidence strong,.exposure-kpi strong{font-size:1.35rem;margin-top:2px}
.scenario-result{border-color:#9fb7d7}.scenario-result>.card-header{background:#f0f5fb}

/* v2.1.0 All-Hazards National Resilience COP */
.allhazards-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 22px;border:1px solid #d9e1ea;border-radius:14px;background:#f8fafc}
.allhazards-hero small,.allhazards-hero strong{display:block}.allhazards-hero strong{font-size:1.25rem}
.hazard-card{border-width:1px;transition:transform .12s ease,box-shadow .12s ease}.hazard-card:hover{transform:translateY(-2px);box-shadow:0 .35rem .8rem rgba(0,0,0,.08)}
.hazard-level-4{border-color:#efbd83}.hazard-level-5{border-color:#e9a7a9}
.hazard-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;font-size:.78rem}.hazard-metrics span{padding:5px 7px;border-radius:6px;background:#f5f7f9}
@media(max-width:767px){.allhazards-hero{display:block}.allhazards-hero>.d-flex{margin-top:15px;justify-content:space-between}}

/* v2.2.0 Dynamic Intelligence Escalation & Confidence */
.dynamic-intelligence{border:1px solid #dfe4ea;border-left-width:5px;border-radius:10px;padding:11px 13px;background:#f8fafc}
.dynamic-state-title{font-size:1.35rem;font-weight:900}.dynamic-score{font-size:1.55rem;font-weight:900;line-height:1}.dynamic-score span{font-size:.72rem}
.dynamic-state-stable{border-left-color:#6c757d}.dynamic-state-emerging{border-left-color:#0d6efd;background:#f3f8ff}.dynamic-state-rising{border-left-color:#ffc107;background:#fffaf0}.dynamic-state-escalating{border-left-color:#fd7e14;background:#fff5eb}.dynamic-state-critical{border-left-color:#dc3545;background:#fff1f2}
.dynamic-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.dynamic-metrics span{font-size:.72rem;padding:5px 7px;background:rgba(255,255,255,.75);border:1px solid #e4e8ed;border-radius:7px}
.intelligence-mini{display:inline-flex;padding:2px 6px;border-radius:999px;font-size:.68rem;font-weight:800;border:1px solid #dfe4ea}
.intelligence-state-stable{background:#f1f3f5;color:#495057}.intelligence-state-emerging{background:#e7f1ff;color:#084298}.intelligence-state-rising{background:#fff3cd;color:#664d03}.intelligence-state-escalating{background:#ffead1;color:#934b00}.intelligence-state-critical{background:#f8d7da;color:#842029}
@media(max-width:575px){.dynamic-metrics{grid-template-columns:1fr}}

/* v2.3.0 National Flood Intelligence */
.flood-key{color:#0d6efd}

/* v2.3.1a integration sync feedback */
.integration-sync-button:disabled{cursor:wait;opacity:.72}
#integrationSyncModal .modal-content{border:0;box-shadow:0 1rem 3rem rgba(0,0,0,.18)}

/* v2.3.2 Incident closure */
.closure-count{height:100%;padding:10px 8px;border:1px solid #e2e6ea;border-radius:9px;text-align:center;background:#f8f9fa}
.closure-count strong,.closure-count span{display:block}.closure-count strong{font-size:1.6rem;line-height:1.1}.closure-count span{font-size:.72rem;color:#6c757d;margin-top:3px}

/* v2.3.3 All-Hazards active incident highlighting */
.hazard-card-active{
  border:2px solid #dc3545;
  box-shadow:0 .45rem 1.1rem rgba(220,53,69,.14);
  background:linear-gradient(180deg,#fff8f8 0%,#ffffff 52%);
  position:relative;
}
.hazard-card-active::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  border-radius:12px 0 0 12px;
  background:#dc3545;
}
.hazard-card-inactive{opacity:.82}
.hazard-card-inactive:hover{opacity:1}
.active-incident-badge{letter-spacing:.02em}
.active-incident-pulse{
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  margin-right:6px;
  animation:nrcop-active-pulse 1.4s ease-in-out infinite;
}
.hazard-metric-active{
  background:#f8d7da!important;
  color:#842029;
  border:1px solid #f1aeb5;
}
@keyframes nrcop-active-pulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.35;transform:scale(.72)}
}
@media (prefers-reduced-motion: reduce){
  .active-incident-pulse{animation:none}
}

/* v2.3.4 National COP wide-area flood summary */
.wide-area-flood-card{border-color:#b8d7f2}
.wide-area-flood-card>.card-header{background:#f3f9fe}
.flood-stat{height:100%;padding:12px 13px;border:1px solid #dfe6ec;border-radius:10px;background:#fafcfd}
.flood-stat-primary{border-left:4px solid #0d6efd;background:#f4f9ff}
.flood-stat-warning{border-left:4px solid #fd7e14;background:#fff8ef}
.flood-stat-critical{border-left:4px solid #dc3545;background:#fff3f4}
.flood-forecast-level-3{border-left:4px solid #fd7e14;background:#fff8ef}
.flood-forecast-level-4{border-left:4px solid #dc3545;background:#fff3f4}
.flood-stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.025em;color:#6c757d;font-weight:700}
.flood-stat-value{font-size:1.55rem;line-height:1.15;font-weight:800;margin:.2rem 0}

/* v2.3.5 All-Hazards clickable cards + consolidated hazard picture */
.hazard-has-incidents{
  border:1px solid #d6dde5!important;
  border-top:4px solid #dc3545!important;
  box-shadow:0 .25rem .65rem rgba(0,0,0,.065)!important;
  background:#fff!important;
  opacity:1!important;
}
.hazard-no-incidents{border:1px solid #e1e6eb!important;opacity:.88}
.hazard-live-status,.hazard-clear-status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:.7rem;font-weight:700}
.hazard-live-status{background:#f8d7da;color:#842029}
.hazard-clear-status{background:#f1f3f5;color:#6c757d}
.hazard-live-dot{width:7px;height:7px;border-radius:50%;background:#dc3545;margin-right:6px}
.hazard-card-open{border-top:1px solid #edf0f3;padding-top:8px;font-size:.76rem;font-weight:700;color:#0d6efd;display:flex;justify-content:space-between;align-items:center}
.hazard-detail-kpi .bi{font-size:1.15rem;color:#6c757d}
.hazard-special-panel{border-color:#cddbe8}.flood-special-panel>.card-header{background:#f1f8fd}.wildfire-special-panel>.card-header{background:#fff5ee}
.hazard-special-stat{height:100%;padding:10px;border:1px solid #e2e7ec;border-radius:8px;background:#fff}
.hazard-special-stat small,.hazard-special-stat strong,.hazard-special-stat span{display:block}.hazard-special-stat strong{font-size:1.15rem;margin:.15rem 0}
.hazard-incident-panel{overflow:hidden}.hazard-incident-panel.severity-catastrophic,.hazard-incident-panel.severity-severe{border-top:4px solid #dc3545}.hazard-incident-panel.severity-major{border-top:4px solid #fd7e14}
.incident-overview-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.incident-overview-grid>div{padding:9px;border:1px solid #e5e9ed;border-radius:8px;background:#f8fafc}.incident-overview-grid small,.incident-overview-grid strong{display:block}.incident-overview-grid strong{margin-top:2px}
.section-heading{border-bottom:1px solid #e9ecef;padding-bottom:6px;margin-bottom:8px}
.hazard-detail-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #f0f1f2;padding:6px 0;font-size:.82rem}.hazard-detail-row span{color:#6c757d;text-align:right}
.hazard-update{border-left:3px solid #adb5bd;padding:7px 9px;margin-bottom:8px;background:#f8f9fa;border-radius:0 7px 7px 0;font-size:.82rem}
@media(max-width:991px){.incident-overview-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:575px){.incident-overview-grid{grid-template-columns:repeat(2,1fr)}}

/* v2.3.5a — stronger visual separation for hazards with live incidents */
.hazard-has-incidents{
  border:4px solid #dc3545!important;
  border-top:4px solid #dc3545!important;
  box-shadow:0 .4rem .9rem rgba(220,53,69,.18)!important;
  background:#fff!important;
  opacity:1!important;
}
.hazard-has-incidents:hover{
  border-color:#bb2d3b!important;
  box-shadow:0 .55rem 1.15rem rgba(220,53,69,.26)!important;
  transform:translateY(-2px);
}
.hazard-no-incidents{
  border:1px solid #e1e6eb!important;
  box-shadow:none!important;
  opacity:.84;
}

/* v2.3.7 Fusion configuration and regional FSI distribution */
.fusion-config-table td{vertical-align:middle}.fusion-config-table .input-group-text{min-width:78px;justify-content:center}
.fsi-distribution{border-top:1px solid #e6e9ed;padding-top:10px}
.fsi-dist-row{display:grid;grid-template-columns:145px 1fr 52px;gap:8px;align-items:center;font-size:.74rem;margin:5px 0}
.fsi-dist-row .progress{height:9px}.fsi-dist-row strong{text-align:right}
@media(max-width:575px){.fsi-dist-row{grid-template-columns:105px 1fr 45px}}

/* v2.3.7c Official FSI forecast layout */
.fsi-day-card{min-width:0;overflow:hidden}
.fsi-day-title,.fsi-level-label{white-space:normal;overflow-wrap:anywhere}

/* v2.3.9 Regional EFFIS impact */
.effis-impact-panel{border:1px solid #d7e6dc;border-radius:10px;padding:10px;background:#f5faf7}
.effis-impact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.effis-impact-grid>div{background:#fff;border:1px solid #dfe9e2;border-radius:8px;padding:7px 8px;min-width:0}
.effis-impact-grid span{display:block;font-size:.67rem;text-transform:uppercase;color:#6c757d;font-weight:700}
.effis-impact-grid strong{display:block;font-size:.95rem;white-space:nowrap}
@media(max-width:575.98px){.effis-impact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.weather-day-card{min-width:0;overflow:hidden}.weather-day-card>div{overflow-wrap:anywhere}

/* v2.4.0 Multi-Hazard National Risk */
.flood-risk-region-card{border-top:4px solid #4c86ad}.flood-level-4,.flood-level-5{border-top-color:#c43d3d}.flood-level-3{border-top-color:#d49a22}
.flood-fusion-panel{background:#f3f7fa;border:1px solid #d9e4eb;border-radius:10px;padding:10px}
.flood-component-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.flood-component-grid>div,.flood-mini{border:1px solid #dce5ea;background:#fff;border-radius:8px;padding:7px;min-width:0}.flood-component-grid span,.flood-mini span{display:block;font-size:.67rem;text-transform:uppercase;color:#677681;font-weight:700}.flood-component-grid strong,.flood-mini strong{font-size:1rem}.flood-mini small{display:block;color:#6c757d}
.flood-day-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.flood-day-card{border:1px solid #dce4e9;border-radius:8px;padding:7px;background:#f8fafb}.flood-day-card span,.flood-day-card small{display:block;font-size:.67rem;color:#6c757d}.flood-day-card strong{display:block}.flood-day-level-3{background:#fff7e3}.flood-day-level-4{background:#fff0f0;border-color:#efb8b8}
.flood-warning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.flood-mini.critical{background:#fff0f0;border-color:#efb6b6}.flood-mini.warning{background:#fff7e5;border-color:#f1d28d}
.flood-warning-list>div{font-size:.78rem;padding:4px 0;border-bottom:1px solid var(--border)}.flood-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.flood-source-grid>div{border:1px solid var(--border);border-radius:7px;padding:6px}.flood-source-grid strong,.flood-source-grid small{display:block;font-size:.72rem}.flood-source-state{font-size:.62rem;text-transform:uppercase;font-weight:800}.flood-source-live{color:#198754}.flood-source-stale{color:#a06a00}.flood-source-missing{color:#b02a37}
.all-hazard-region-card{border:1px solid var(--border)}.all-hazard-attention{border:3px solid #c83a3a}.all-hazard-compare{display:grid;grid-template-columns:1fr 1fr;gap:8px}.all-hazard-pane{border-radius:9px;padding:10px;border:1px solid var(--border)}.wildfire-pane{background:#fff7f3}.flood-pane{background:#f2f8fc}.all-hazard-score{font-size:2rem;font-weight:800}.all-hazard-score small{font-size:.75rem}
@media(max-width:767.98px){.flood-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.flood-warning-grid,.flood-component-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.all-hazard-compare{grid-template-columns:1fr}}

/* v2.4.2 multi-hazard predictive/readiness */
.readiness-flood{background:linear-gradient(135deg,#eaf5fb,#f7fbfd);border-color:#b9d8e9}
.predictive-hazard-toggle .btn{min-width:105px}
@media(max-width:767.98px){.readiness-outlooks{grid-template-columns:repeat(3,1fr)}}

/* v2.4.3c persistent hazard-toggle alignment */
.national-hazard-actions{margin-left:auto!important;justify-content:flex-end!important;text-align:right}
.national-hazard-toggle{flex:0 0 auto}
@media(max-width:767.98px){
 .national-hazard-actions{width:100%;justify-content:flex-end!important}
 .national-hazard-toggle{margin-left:auto}
}

/* v2.4.3d FIRMS status alignment */
.national-map-header-controls{flex:1 1 auto;min-width:0}
.national-firms-status{margin-right:auto!important;text-align:left;white-space:nowrap}
.national-map-header-controls .national-hazard-actions{margin-left:auto!important;width:auto}
@media(max-width:767.98px){
 .national-map-header-controls{width:100%}
 .national-firms-status{margin-right:auto!important}
 .national-map-header-controls .national-hazard-actions{width:auto!important;margin-left:auto!important}
}

/* v2.4.6 clickable National Coordination metrics */
.coordination-metric-link{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;background:var(--bs-body-bg)}
.coordination-metric-link:hover,.coordination-metric-link:focus{transform:translateY(-2px);box-shadow:0 .4rem 1rem rgba(0,0,0,.09);border-color:var(--bs-primary)!important;outline:none}
button.coordination-metric-link{color:inherit}
#active-incidents{scroll-margin-top:80px}

/* v2.5.0 strategic decision support */
.strategic-command-panel{border-width:2px}
.strategic-priority-row{transition:transform .12s ease,box-shadow .12s ease}
.strategic-priority-row:hover{transform:translateX(2px);box-shadow:0 .25rem .7rem rgba(0,0,0,.08)}

/* v3.0.0 National Resilience Intelligence Platform */
#scenarios,#sharing{scroll-margin-top:80px}

/* v3.0.1 Integration Hub health highlighting */
.integration-health-card{transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}
.integration-health-card.integration-health-failed{border:2px solid #dc3545!important;background:rgba(220,53,69,.06)}
.integration-health-card.integration-health-overdue{border:2px solid #f0ad4e!important;background:rgba(255,193,7,.08)}
.integration-health-card.integration-health-running{border-color:#0d6efd!important;background:rgba(13,110,253,.035)}
.integration-health-card.integration-health-inactive{opacity:.78}
.integration-health-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;white-space:nowrap;border:1px solid transparent}
.integration-health-badge-failed{background:#dc3545;color:#fff}
.integration-health-badge-overdue,.integration-health-badge-never{background:#fff3cd;color:#7a5200;border-color:#f0c36a}
.integration-health-badge-healthy{background:#d1e7dd;color:#0f5132;border-color:#a3cfbb}
.integration-health-badge-running{background:#cfe2ff;color:#084298;border-color:#9ec5fe}
.integration-health-badge-inactive{background:#e9ecef;color:#495057;border-color:#ced4da}
.integration-health-warning{padding:.45rem .6rem;border-radius:.4rem;background:rgba(255,255,255,.72);font-size:.8rem;font-weight:700;color:#842029}
.integration-health-overdue .integration-health-warning{color:#725100}
.integration-table-row.integration-health-failed>td{background:rgba(220,53,69,.055)}
.integration-table-row.integration-health-overdue>td{background:rgba(255,193,7,.06)}
.integration-table-warning{color:#dc3545;font-size:1.05rem}
.integration-table-row.integration-health-overdue .integration-table-warning{color:#c78100}
.integration-table-health-text{margin-top:.2rem}
.integration-table-row.integration-health-failed .integration-table-health-text{color:#b02a37}
.integration-table-row.integration-health-overdue .integration-table-health-text{color:#946200}

/* v3.2.1 National Coordination alignment */
.national-coordination-metrics>.col-lg-2,
.national-coordination-metrics>.col-lg-3,
.national-coordination-metrics>.col-md-4,
.national-coordination-metrics>.col-md-6{display:flex}
.national-coordination-metrics .coordination-metric-link{min-height:154px}
.national-metric-body{width:100%}
.national-metric-main{min-height:78px}
.national-metric-main>div:first-child{display:flex;flex-direction:column;justify-content:flex-start}
.national-metric-main .display-6{line-height:1.05;margin-top:.2rem}
.national-metric-footer{line-height:1.25}
.national-posture-column{min-height:150px;padding:.15rem 0}
.national-posture-label{min-height:34px;display:flex;align-items:flex-start}
.national-posture-value{line-height:1.05;min-height:52px;display:flex;align-items:flex-start}
#national-posture .progress{flex:0 0 auto}
@media(max-width:1199.98px){
 .national-posture-column{min-height:130px}
}

/* v3.3.0 Fusion evidence interrogation */
.evidence-interrogate-btn{white-space:normal;text-align:left;line-height:1.2}
.evidence-family-card{border-left-width:5px}
.evidence-family-supports{border-left-color:var(--bs-danger)}
.evidence-family-does-not-support{border-left-color:var(--bs-secondary)}
.evidence-family-missing{border-left-color:var(--bs-warning)}

/* v3.4.0 National Risk card data restoration */
.risk-data-at-glance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.risk-data-at-glance>div{border:1px solid var(--bs-border-color);border-radius:.5rem;padding:.5rem;min-width:0}
.risk-data-at-glance span,.risk-data-at-glance small{display:block;font-size:.72rem;color:var(--bs-secondary-color)}
.risk-data-at-glance strong{display:block;font-size:.95rem}
@media(max-width:575.98px){.risk-data-at-glance{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v3.5.0 flood catchment intelligence */
.catchment-intelligence-panel{border:1px solid var(--bs-border-color);border-left:5px solid #0d6efd;border-radius:.6rem;padding:.75rem;background:rgba(13,110,253,.035)}

/* v3.7.0 prediction assurance */
.prediction-assurance-strip{background:rgba(0,0,0,.02)}


/* v4.1.1 — independently scrollable navigation */
.side-menu{
    max-height:calc(100vh - 36px);
    overflow-y:auto;
    overflow-x:hidden;
    align-content:start;
    scrollbar-gutter:stable;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:#9aa8b3 transparent;
}
.side-menu::-webkit-scrollbar{width:7px}
.side-menu::-webkit-scrollbar-track{background:transparent}
.side-menu::-webkit-scrollbar-thumb{background:#9aa8b3;border-radius:10px}
.side-menu::-webkit-scrollbar-thumb:hover{background:#748591}
@media(max-width:900px){
    .side-menu{max-height:calc(100vh - 20px)}
}

/* v4.6.0 — Navigation & Operational UX */
.page-shell{transition:grid-template-columns .2s ease}
.nrcop-nav{padding:0!important;overflow:hidden!important;max-height:calc(100vh - 36px)!important;display:flex;flex-direction:column;min-width:0}
.nrcop-nav-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 10px 8px;border-bottom:1px solid #e5e9ed;flex:0 0 auto}
.nrcop-nav-title{display:flex;align-items:center;gap:8px;font-weight:800;letter-spacing:.03em;min-width:0}.nrcop-nav-title i{font-size:18px}.nrcop-nav-title span{white-space:nowrap}
.nrcop-nav-head-actions{display:flex;gap:4px}.nrcop-nav-icon-btn{width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:#566674;display:grid;place-items:center}.nrcop-nav-icon-btn:hover{background:#eef2f5;color:#17232d}
.nrcop-nav-scroll{overflow-y:auto;overflow-x:hidden;min-height:0;flex:1 1 auto;padding:8px 7px;scrollbar-width:thin;scrollbar-color:#9aa8b3 transparent;scrollbar-gutter:stable}
.nrcop-nav-scroll::-webkit-scrollbar{width:7px}.nrcop-nav-scroll::-webkit-scrollbar-thumb{background:#9aa8b3;border-radius:10px}
.nrcop-nav-section-label{padding:5px 8px;color:#7a8791;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.075em;white-space:nowrap}
.nrcop-nav-link,.nrcop-nav-group-toggle{width:100%;display:flex;align-items:center;gap:9px;border:0;text-decoration:none;color:#34434f;background:transparent;border-radius:8px;min-height:42px;padding:6px 8px;text-align:left;position:relative}
.nrcop-nav-link:hover,.nrcop-nav-group-toggle:hover{background:#f0f4f6;color:#17232d}.nrcop-nav-link.active{background:#e8f0f5;color:#17324d;font-weight:700;box-shadow:inset 3px 0 #17324d}
.nrcop-nav-link-icon{width:26px;min-width:26px;display:grid;place-items:center;font-size:16px}.nrcop-nav-link-copy{min-width:0;display:flex;flex-direction:column;line-height:1.12}.nrcop-nav-link-label{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nrcop-nav-link-copy small{font-size:10px;color:#82909a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.nrcop-nav-badge{margin-left:auto;font-size:9px;min-width:20px}.nrcop-nav-group{position:relative;margin-bottom:2px}.nrcop-nav-group-toggle{font-weight:700}.nrcop-nav-group-label{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nrcop-nav-group-badge{margin-left:auto;background:#e7ebee;color:#53616b;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:800}.nrcop-nav-chevron{font-size:11px;transition:transform .18s}.nrcop-nav-group.open>.nrcop-nav-group-toggle .nrcop-nav-chevron{transform:rotate(180deg)}
.nrcop-nav-group-panel{padding:2px 0 4px 11px}.nrcop-nav-group-panel[hidden]{display:none!important}.nrcop-nav-child-row{display:flex;align-items:center}.nrcop-nav-child-row .nrcop-nav-child{flex:1;min-width:0}.nrcop-nav-child{min-height:38px}.nrcop-nav-child .nrcop-nav-link-icon{font-size:14px}
.nrcop-nav-favourite{border:0;background:transparent;color:#9ba7b0;padding:6px 5px;border-radius:5px}.nrcop-nav-favourite:hover,.nrcop-nav-favourite.is-favourite{color:#9a7100;background:#fff6d9}.nrcop-nav-favourites-wrap{border-top:1px solid #edf0f2;margin-top:7px;padding-top:5px}
.nrcop-nav-footer{border-top:1px solid #e5e9ed;padding:6px;flex:0 0 auto}.nrcop-nav-footer-btn{display:flex;width:100%;gap:9px;align-items:center;border:0;background:transparent;color:#667580;border-radius:7px;padding:7px 8px;font-size:11px}.nrcop-nav-footer-btn:hover{background:#eef2f5;color:#17232d}
.nrcop-command-modal{box-shadow:0 22px 80px rgba(0,0,0,.25)}.nrcop-command-results{max-height:430px;overflow:auto}.nrcop-command-result{display:flex;align-items:center;gap:10px;width:100%;border:0;background:white;border-radius:8px;padding:9px 10px;text-align:left}.nrcop-command-result:hover,.nrcop-command-result.selected{background:#edf3f7}.nrcop-command-result-icon{width:30px;height:30px;background:#f1f4f6;border-radius:7px;display:grid;place-items:center}.nrcop-command-result-copy{flex:1;min-width:0}.nrcop-command-result-copy b{display:block}.nrcop-command-result-copy small{color:#78868f}.nrcop-command-star{color:#9a7100}
.page-shell.nav-collapsed{grid-template-columns:68px minmax(0,1fr)!important}.nav-collapsed .nrcop-nav{overflow:visible!important}.nav-collapsed .nrcop-nav-title span,.nav-collapsed .nrcop-nav-head-actions #navSearchBtn,.nav-collapsed .nrcop-nav-section-label,.nav-collapsed .nrcop-nav-link-copy,.nav-collapsed .nrcop-nav-badge,.nav-collapsed .nrcop-nav-group-label,.nav-collapsed .nrcop-nav-group-badge,.nav-collapsed .nrcop-nav-chevron,.nav-collapsed .nrcop-nav-favourite,.nav-collapsed .nrcop-nav-footer-btn span{display:none!important}
.nav-collapsed .nrcop-nav-head{justify-content:center;padding-left:4px;padding-right:4px}.nav-collapsed .nrcop-nav-title{display:none}.nav-collapsed .nrcop-nav-head-actions{display:block}.nav-collapsed .nrcop-nav-icon-btn{width:46px}
.nav-collapsed .nrcop-nav-link,.nav-collapsed .nrcop-nav-group-toggle{justify-content:center;padding:7px 5px}.nav-collapsed .nrcop-nav-link-icon{width:34px;min-width:34px}.nav-collapsed .nrcop-nav-group-panel{position:fixed;left:82px;width:300px;background:#fff;border:1px solid #dfe5e9;border-radius:9px;box-shadow:0 12px 38px rgba(0,0,0,.18);padding:7px;z-index:1050}.nav-collapsed .nrcop-nav-group-panel .nrcop-nav-link-copy,.nav-collapsed .nrcop-nav-group-panel .nrcop-nav-badge{display:flex!important}.nav-collapsed .nrcop-nav-group-panel .nrcop-nav-child{justify-content:flex-start}.nav-collapsed .nrcop-nav-footer{display:flex;justify-content:center}.nav-collapsed .nrcop-nav-footer-btn{width:46px;justify-content:center}
@media(max-width:900px){.page-shell.nav-collapsed{grid-template-columns:1fr!important}.nrcop-nav{max-height:none!important}.nav-collapsed .nrcop-nav{display:none}}


/* v4.7.0 — Interface Consistency & Operational Design System */
:root{
 --nrcop-radius:16px;
 --nrcop-section-gap:18px;
 --nrcop-header-bg:linear-gradient(135deg,rgba(21,52,110,.055),rgba(29,66,138,.015));
 --nrcop-guide-blue:#eef5fb;
 --nrcop-guide-amber:#fff8e8;
 --nrcop-guide-red:#fff0f0;
}
.content-stack{min-width:0}
.nrcop-page-header{
 background:var(--nrcop-header-bg);
 border:1px solid var(--border);
 border-radius:18px;
 padding:16px 18px;
 margin-bottom:16px!important;
 gap:16px!important;
 flex-wrap:wrap!important;
 min-height:84px;
}
.nrcop-page-header>div:first-child{min-width:260px;flex:1 1 360px}
.nrcop-page-header h1{
 color:var(--blue);
 font-weight:800;
 letter-spacing:-.02em;
 margin-bottom:3px!important;
}
.nrcop-page-header p{max-width:880px;line-height:1.45}
.nrcop-page-actions{
 display:flex;
 flex-wrap:wrap;
 gap:8px!important;
 align-items:center;
 justify-content:flex-end;
 margin-left:auto;
}
.nrcop-page-actions form{margin:0}
.nrcop-page-actions .btn{
 min-height:40px;
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:6px;
 white-space:nowrap;
}
.nrcop-guidance{
 border-radius:14px!important;
 border-width:1px!important;
 box-shadow:none!important;
 padding:12px 14px!important;
 line-height:1.48;
 margin-bottom:16px!important;
}
.alert-info.nrcop-guidance{background:var(--nrcop-guide-blue);border-color:#cbdfee;color:#27425b}
.alert-warning.nrcop-guidance{background:var(--nrcop-guide-amber);border-color:#edd8a8;color:#644d16}
.alert-danger.nrcop-guidance{background:var(--nrcop-guide-red);border-color:#edc4c4;color:#6f2929}
.alert-light.nrcop-guidance,.alert-secondary.nrcop-guidance{background:#f7f9fb;border-color:#dfe6eb;color:#44535f}
.nrcop-kpi-row{align-items:stretch}
.nrcop-kpi-card{
 border-radius:16px!important;
 box-shadow:0 8px 24px rgba(16,33,63,.055)!important;
 overflow:hidden;
 transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;
}
a.nrcop-kpi-card:hover,.nrcop-kpi-card:hover{
 border-color:#c4d2df;
 box-shadow:0 11px 30px rgba(16,33,63,.085)!important;
}
.nrcop-kpi-card .card-body{padding:15px 16px}
.nrcop-kpi-card .text-muted:first-child,.nrcop-kpi-card small.text-muted:first-child{
 font-size:.72rem;
 font-weight:700;
 letter-spacing:.035em;
 text-transform:uppercase;
 color:#6c7b87!important;
}
.nrcop-kpi-card .display-6{font-size:2rem;line-height:1.05;margin-top:4px}
.content-stack>.card,.content-stack>.row,.content-stack>.alert{margin-bottom:var(--nrcop-section-gap)}
.content-stack>.card:last-child{margin-bottom:0}
.content-stack .card-header{
 padding:12px 16px;
 min-height:47px;
 display:flex;
 flex-direction:column;
 justify-content:center;
}
.content-stack .card-header>strong{
 font-size:.93rem;
 letter-spacing:.005em;
}
.content-stack .card-header .small.text-muted{
 font-weight:400;
 line-height:1.35;
 margin-top:2px;
}
.content-stack .card-body{padding:16px}
.content-stack .table-responsive{border-radius:0 0 16px 16px}
.content-stack .table{font-size:.88rem}
.content-stack .table>thead>tr>th{
 padding:10px 12px;
 vertical-align:middle;
 border-bottom-width:1px;
}
.content-stack .table>tbody>tr>td{padding:10px 12px;vertical-align:middle}
.content-stack .badge{
 font-weight:700;
 letter-spacing:.01em;
 padding:.42em .7em;
}
.nrcop-context-pill{
 display:inline-flex;
 align-items:center;
 gap:6px;
 border:1px solid #9fb9d1;
 background:#edf5fb;
 color:#204d72;
 border-radius:999px;
 padding:7px 11px;
 font-size:.75rem;
 font-weight:800;
 letter-spacing:.05em;
}
.national-posture-bar{
 margin-bottom:14px;
 border-radius:14px!important;
}
.national-hazard-toggle .btn{min-width:96px}
.content-stack h2,.content-stack h3,.content-stack h4{letter-spacing:-.01em}

/* Consistent action priority: primary/dark action on the right, supporting actions remain quieter. */
.nrcop-page-actions>.btn-dark:last-child,
.nrcop-page-actions>a.btn-dark:last-child{box-shadow:0 7px 18px rgba(21,52,110,.14)}

/* Keep dense operational tables readable on smaller screens without breaking page width. */
@media(max-width:1200px){
 .nrcop-page-header{align-items:flex-start!important}
 .nrcop-page-actions{width:100%;justify-content:flex-start;margin-left:0}
}
@media(max-width:700px){
 .nrcop-page-header{padding:13px 14px;border-radius:14px}
 .nrcop-page-header>div:first-child{min-width:0;flex-basis:100%}
 .nrcop-page-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%}
 .nrcop-page-actions .btn,.nrcop-page-actions form,.nrcop-page-actions form .btn{width:100%}
 .nrcop-page-actions .btn-group{grid-column:1/-1;width:100%;display:grid;grid-template-columns:repeat(3,1fr)}
 .nrcop-page-actions .btn-group .btn{width:auto;min-width:0}
 .nrcop-kpi-card .display-6{font-size:1.7rem}
 .content-stack .card-body{padding:13px}
}
@media(max-width:460px){
 .nrcop-page-actions{grid-template-columns:1fr}
 .nrcop-page-actions .btn-group{grid-column:auto}
}

.content-stack .card.nrcop-has-focus{box-shadow:0 0 0 3px rgba(29,66,138,.10),var(--shadow)}


/* v4.8.0 — Incident Workspace & Command UX */
.incident-workspace-header{
 display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;
 background:linear-gradient(135deg,#17324d,#244b6b);color:#fff;border-radius:20px;padding:18px 20px;margin-bottom:14px;
 box-shadow:0 12px 30px rgba(21,52,110,.16)
}
.incident-workspace-title{flex:1 1 520px;min-width:280px}
.incident-workspace-kicker{font-size:.68rem;font-weight:800;letter-spacing:.1em;opacity:.82;margin-bottom:4px}
.incident-workspace-title h1{font-size:1.55rem;font-weight:800;margin:0 0 5px;letter-spacing:-.02em;color:#fff}
.incident-workspace-location{font-size:.88rem;opacity:.88;margin-bottom:10px}
.incident-workspace-badges{display:flex;flex-wrap:wrap;gap:6px}.incident-workspace-badges .badge{border:1px solid rgba(255,255,255,.18);padding:.5em .72em}
.incident-workspace-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;flex:0 1 520px}
.incident-workspace-actions .btn{min-height:40px;display:inline-flex;align-items:center;gap:6px}
.incident-workspace-header .btn-outline-primary,.incident-workspace-header .btn-outline-dark,.incident-workspace-header .btn-outline-secondary{background:rgba(255,255,255,.96);border-color:rgba(255,255,255,.85);color:#17324d}
.incident-workspace-header .btn-outline-primary:hover,.incident-workspace-header .btn-outline-dark:hover,.incident-workspace-header .btn-outline-secondary:hover{background:#fff;color:#10213f}

.incident-command-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:#dce5ec;border:1px solid #dce5ec;border-radius:15px;overflow:hidden;margin-bottom:12px}
.incident-command-metric{background:#fff;padding:10px 12px;min-width:0;display:flex;flex-direction:column;justify-content:center}
.incident-command-metric>span{font-size:.63rem;text-transform:uppercase;letter-spacing:.055em;font-weight:800;color:#71808b}
.incident-command-metric>strong{font-size:.85rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.incident-command-metric>small{font-size:.68rem;color:#7a8790;margin-top:2px}

.incident-quick-actions{display:flex;align-items:center;gap:6px;overflow-x:auto;padding:7px 8px;background:#f7f9fb;border:1px solid var(--border);border-radius:13px;margin-bottom:12px;scrollbar-width:thin}
.incident-quick-label{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#788691;padding:0 7px;white-space:nowrap}
.incident-quick-actions button,.incident-quick-actions a{border:1px solid #d7e0e6;background:#fff;color:#294354;border-radius:8px;padding:6px 9px;font-size:.76rem;font-weight:700;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.incident-quick-actions button:hover,.incident-quick-actions a:hover{background:#eaf2f7;border-color:#bdcfda;color:#17324d}

.incident-attention-panel{border:1px solid #e3c9a4;background:#fffaf1;border-radius:15px;margin-bottom:12px;overflow:hidden}
.incident-attention-head{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;background:#fff3d7;color:#704e11;font-size:.82rem}.incident-attention-head>span{font-size:.7rem;font-weight:800}
.incident-attention-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#eadfce}
.incident-attention-item{border:0;background:#fff;display:grid;grid-template-columns:28px minmax(0,1fr) 16px;gap:8px;text-align:left;align-items:center;padding:9px 11px;color:#354650}
.incident-attention-item:hover{background:#fbfdff}.incident-attention-item>i:first-child{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#f1f4f6}
.incident-attention-item span{display:flex;flex-direction:column;min-width:0}.incident-attention-item strong{font-size:.76rem}.incident-attention-item small{font-size:.68rem;color:#71808a;line-height:1.3}
.incident-attention-item.level-critical{box-shadow:inset 3px 0 #b42318}.incident-attention-item.level-critical>i:first-child{color:#b42318;background:#fff0ef}
.incident-attention-item.level-high{box-shadow:inset 3px 0 #d78b00}.incident-attention-item.level-watch{box-shadow:inset 3px 0 #3978a8}

.incident-workspace-nav{border:1px solid var(--border);background:#fff;border-radius:15px;margin-bottom:16px;overflow:hidden;position:sticky;top:8px;z-index:30;box-shadow:0 7px 24px rgba(16,33,63,.06)}
.incident-workspace-groups{display:flex;gap:2px;padding:6px 7px;background:#f5f8fa;border-bottom:1px solid var(--border);overflow-x:auto}
.incident-workspace-group{border:0;background:transparent;color:#5c6d78;border-radius:8px;padding:7px 9px;display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:800;white-space:nowrap}
.incident-workspace-group:hover{background:#e9eff3;color:#17324d}.incident-workspace-group.active{background:#17324d;color:#fff}
.incident-group-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#b42318;color:#fff;display:inline-grid;place-items:center;font-size:.6rem}
.incident-workspace-tabs{display:flex;gap:5px;padding:7px;overflow-x:auto;scrollbar-width:thin}
.incident-workspace-tab{border:1px solid #dce4e9;background:#fff;color:#455660;border-radius:9px;padding:7px 10px;display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:700;white-space:nowrap}
.incident-workspace-tab:hover{background:#f1f5f7;color:#17324d}.incident-workspace-tab.active{background:#e8f1f7;border-color:#aac2d3;color:#17324d;box-shadow:inset 0 -2px #17324d}
.incident-workspace-tab[hidden]{display:none!important}.incident-workspace-tab .badge{font-size:.58rem;padding:.3em .55em}

#tab-overview .card,#tab-command .card,#tab-jesip .card,#tab-plan .card,#tab-handover .card,#tab-resources .card,#tab-responders .card,#tab-tasks .card{border-radius:16px}
.incident-workspace-header+.alert{margin-bottom:12px}
.incident-status-help{font-size:.7rem;color:#71808a}

@media(max-width:1250px){.incident-command-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){
 .incident-workspace-header{padding:15px;border-radius:16px}.incident-workspace-actions{width:100%;justify-content:flex-start;flex-basis:100%}
 .incident-workspace-actions .btn{flex:1 1 auto}.incident-command-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
 .incident-attention-grid{grid-template-columns:1fr}.incident-workspace-nav{top:4px}
}
@media(max-width:520px){.incident-command-strip{grid-template-columns:1fr 1fr}.incident-workspace-title h1{font-size:1.25rem}.incident-workspace-actions{display:grid;grid-template-columns:1fr 1fr}.incident-workspace-actions .btn{width:100%}}

.incident-register-kpi{border:1px solid var(--border);background:#fff;cursor:pointer}
.incident-register-kpi:hover{border-color:#aec1cf;background:#f9fbfc}
#incidentRegisterTable tr[hidden]{display:none}
#incidentRegisterTable td{vertical-align:middle}


/* v4.8.1 — Header Alignment Standard */
.content-stack .card-header,
.nrcop-section-header,
.incident-workspace .card-header{
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    text-align:left;
}
.content-stack .card-header > :first-child,
.nrcop-section-header > :first-child,
.incident-workspace .card-header > :first-child{
    min-width:0;
    text-align:left;
}
.content-stack .card-header > strong:first-child,
.content-stack .card-header > span:first-child,
.content-stack .card-header > div:first-child,
.nrcop-section-title{
    text-align:left;
    margin-right:auto;
}
.content-stack .card-header .small.text-muted,
.content-stack .card-header small,
.nrcop-section-title .small,
.nrcop-section-title small{
    text-align:left;
}
.content-stack .card-header .btn,
.content-stack .card-header .btn-group,
.content-stack .card-header form,
.content-stack .card-header .nav,
.content-stack .card-header .dropdown,
.content-stack .card-header .header-actions,
.content-stack .card-header .nrcop-header-actions,
.nrcop-section-actions{
    margin-left:auto;
}
.content-stack .card-header .header-actions,
.content-stack .card-header .nrcop-header-actions,
.nrcop-section-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:7px;
}
.content-stack .card-header .nav,
.nrcop-section-header .nav{
    justify-content:flex-end;
    flex-wrap:wrap;
}
.content-stack .card-header.d-flex{
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
}
.incident-workspace-header{
    align-items:flex-start;
}
.incident-workspace-title{
    text-align:left;
    margin-right:auto;
}
.incident-workspace-actions{
    margin-left:auto;
    justify-content:flex-end;
    text-align:right;
}
.incident-attention-head{
    text-align:left;
}
.incident-attention-head > :last-child{
    margin-left:auto;
    text-align:right;
}
.nrcop-page-header{
    display:flex;
    flex-direction:row;
    align-items:flex-start;
    justify-content:space-between;
    text-align:left;
}
.nrcop-page-header > :first-child{
    margin-right:auto;
    text-align:left;
}
.nrcop-page-header .nrcop-page-actions{
    margin-left:auto;
    justify-content:flex-end;
    text-align:right;
}
@media(max-width:900px){
    .content-stack .card-header,
    .nrcop-section-header,
    .incident-workspace .card-header{
        flex-wrap:wrap;
        align-items:flex-start;
    }
    .content-stack .card-header .header-actions,
    .content-stack .card-header .nrcop-header-actions,
    .nrcop-section-actions{
        width:100%;
        margin-left:0;
        justify-content:flex-end;
    }
    .nrcop-page-header{
        flex-wrap:wrap;
    }
    .nrcop-page-header .nrcop-page-actions{
        width:100%;
        margin-left:0;
        justify-content:flex-end;
    }
    .incident-workspace-actions{
        width:100%;
        margin-left:0;
        justify-content:flex-end;
    }
}
@media(max-width:560px){
    .content-stack .card-header .header-actions,
    .content-stack .card-header .nrcop-header-actions,
    .nrcop-section-actions,
    .nrcop-page-header .nrcop-page-actions,
    .incident-workspace-actions{
        justify-content:flex-start;
        text-align:left;
    }
}

/* v4.9.0 — Satellite Detection Intelligence */
.satellite-detection-popup{min-width:310px;max-width:390px}
.satellite-popup-section{border-top:1px solid #e4e9ed;padding-top:8px;margin-top:8px}
.satellite-popup-label{display:block;font-size:.63rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#71808a;margin-bottom:3px}
.satellite-coordinate{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9rem;font-weight:800;color:#17324d}
.satellite-popup-warning{margin-top:9px;padding:7px 8px;border-radius:8px;background:#fff7e6;border:1px solid #ecd7aa;color:#694d13;font-size:.68rem;line-height:1.35}
.leaflet-popup-content .satellite-detection-popup .badge{white-space:nowrap}

/* v4.9.1 — Satellite coordinate visibility & interrogation */
.satellite-map-guidance{background:#f5f8fa;border-top:1px solid #e2e8ec;border-bottom:1px solid #e2e8ec;color:#415565}
.satellite-map-guidance strong{color:#17324d}
.satellite-detection-popup .satellite-coordinate,.leaflet-popup .satellite-coordinate{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:800;color:#17324d}

/* v4.11.0 satellite triage */
.satellite-triage-open{white-space:nowrap}.satellite-map-guidance a{font-weight:700;text-decoration:none}

/* v4.15.1 — Live National Operational Map */
#nationalMapLiveStatus{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-weight:700}
#nationalMapLiveStatus.text-success .bi{animation:nrcop-live-pulse 1.8s ease-in-out infinite}
@keyframes nrcop-live-pulse{0%,100%{opacity:.55}50%{opacity:1}}

/* v4.17.0 Predictive Capability & Strategic Cover */
.strategic-cover-marker{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.28);font-size:12px}
.strategic-cover-success{background:#198754;color:#fff}.strategic-cover-info{background:#0dcaf0;color:#10212b}.strategic-cover-warning{background:#ffc107;color:#302600}.strategic-cover-danger{background:#dc3545;color:#fff}

/* v4.20.0 National Resilience Executive Dashboard */
.executive-kpi{border-width:2px}.executive-kpi .display-6,.executive-kpi .h3{font-weight:800}
#executiveLiveStatus{white-space:nowrap}

/* v4.21.0 map configuration */
#operationalMapConfigModal .form-check-label{font-weight:500}

/* v4.21.1 — Full-screen map configuration modal/header hotfix */
.national-map-header-controls,
.national-hazard-actions{justify-content:flex-end}

/* v4.21.3 — operational-map stabilisation */
#operationalMapConfigModal,#satelliteTriageModal,#mapRotateWarningModal{z-index:1065!important}
.modal-backdrop{z-index:1050!important}

/* NRCOP v4.22.0 National Operational Intelligence Map */
.nrcop-location-search{width:min(360px,100%)}.nrcop-intelligence-panel{background:#fff;border:1px solid #dbe3ec;border-radius:10px;padding:12px;max-height:260px;overflow:auto}.nrcop-event-card{border-left:5px solid #dc3545;padding:8px 10px;margin-bottom:8px;background:#f8f9fa;border-radius:7px}.nrcop-event-card.conf-high{border-left-color:#dc3545}.nrcop-event-card.conf-medium{border-left-color:#fd7e14}.nrcop-event-card.conf-low{border-left-color:#6f42c1}.nrcop-evidence-ladder{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.nrcop-evidence-step{font-size:.7rem;padding:2px 6px;border-radius:10px;background:#e9ecef;color:#65707c}.nrcop-evidence-step.on{background:#0d6efd;color:#fff}.nrcop-feed-good{color:#198754}.nrcop-feed-warn{color:#b26a00}.nrcop-feed-bad{color:#dc3545}.nrcop-prediction-cone{stroke:#dc3545;stroke-dasharray:6 5;fill:#dc3545;fill-opacity:.08}.nrcop-time-window.active{font-weight:700}@media(max-width:700px){.nrcop-location-search{width:100%}}

.potential-event-icon{background:transparent;border:0}.potential-event-marker{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;color:#fff;border:3px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.35);font-size:1.05rem}.potential-event-marker span{position:absolute;right:-7px;top:-8px;min-width:22px;height:22px;padding:0 4px;border-radius:11px;background:#172033;color:#fff;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #fff}.potential-detected{background:#6f42c1}.potential-repeated{background:#fd7e14}.potential-corroborated{background:#dc3545}.potential-confirmed{background:#8b0000}.potential-event-popup{min-width:240px}

.nrcop-wind-icon{background:transparent;border:0;position:relative}.nrcop-wind-arrow{width:34px;height:34px;border-radius:50%;background:#0d6efd;color:#fff;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;font-size:1.15rem}.nrcop-wind-icon>span{position:absolute;right:-5px;bottom:-5px;background:#172033;color:#fff;border:2px solid #fff;border-radius:10px;padding:0 4px;font-size:.62rem;font-weight:700}

.potential-ongoing{background:#b00020;box-shadow:0 0 0 0 rgba(176,0,32,.55);animation:nrcopOperationalPulse 2s infinite}.potential-event-popup .badge.text-bg-danger{letter-spacing:.02em}@keyframes nrcopOperationalPulse{0%{box-shadow:0 0 0 0 rgba(176,0,32,.5)}70%{box-shadow:0 0 0 12px rgba(176,0,32,0)}100%{box-shadow:0 0 0 0 rgba(176,0,32,0)}}@media (prefers-reduced-motion:reduce){.potential-ongoing{animation:none}}

/* NRCOP v4.23.0 operational intelligence refinement */
.national-intelligence-toolbar .dropdown-menu{min-width:230px}.national-intelligence-toolbar .dropdown-item i{width:1.25rem}.nrcop-prediction-key{display:flex;gap:12px;flex-wrap:wrap;font-size:.75rem}.nrcop-prediction-swatch{display:inline-block;width:22px;height:10px;border:2px solid currentColor;border-radius:8px;vertical-align:middle;margin-right:4px}.nrcop-prediction-hour-1{color:#dc3545}.nrcop-prediction-hour-3{color:#fd7e14}.nrcop-prediction-hour-6{color:#6f42c1}.nrcop-model-card{border-left:4px solid #0d6efd;padding-left:10px}.nrcop-confidence-higher{color:#198754}.nrcop-confidence-moderate{color:#b26a00}.nrcop-confidence-lower{color:#dc3545}

.nrcop-wildfire-forecast-popup{min-width:250px}.leaflet-nrcopPredictionPane-pane path{cursor:pointer}

/* NRCOP v5.0 observation and flood intelligence */
.nrcop-live-satellite-icon{background:transparent;border:0}.nrcop-live-satellite{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--satellite-colour,#0d6efd);color:#fff;border:2px solid #fff;box-shadow:0 2px 9px rgba(0,0,0,.35);font-size:1.1rem}.nrcop-flood-warning-popup,.nrcop-ffc-popup{min-width:260px}.leaflet-floodSeverePane-pane path,.leaflet-floodWarningPane-pane path,.leaflet-floodAlertPane-pane path,.leaflet-ffcForecastPane-pane path{cursor:pointer}.nrcop-observation-summary{border-left:4px solid #0d6efd;padding-left:10px}

/* NRCOP v5.0.1 — official Environment Agency flood warning symbology */
.ea-flood-symbol-block{display:flex;align-items:center;gap:12px;padding:8px 10px;margin:-2px -2px 10px;border-radius:8px;background:#f8f9fa;border:1px solid #dee2e6}
.ea-flood-symbol{width:72px;height:60px;object-fit:contain;flex:0 0 72px}
.ea-flood-symbol-copy{min-width:0}
.ea-flood-symbol-label{font-size:1rem;font-weight:700;line-height:1.15}
.ea-flood-symbol-meaning{font-size:.76rem;line-height:1.25;margin-top:3px;color:#495057}
.ea-flood-symbol-block.ea-alert{border-left:5px solid #f28c00}
.ea-flood-symbol-block.ea-warning,.ea-flood-symbol-block.ea-severe{border-left:5px solid #e60016}
.ea-flood-popup-title{margin-bottom:3px}
@media(max-width:480px){.ea-flood-symbol{width:60px;height:50px;flex-basis:60px}.ea-flood-symbol-label{font-size:.92rem}}

/* NRCOP v5.0.2 — persistent operational-map information windows */
.nrcop-popup-close-footer{display:flex;justify-content:center;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid #dee2e6}
.nrcop-popup-close-btn{min-width:104px}
.nrcop-map-modal-footer{justify-content:center!important;position:relative}
.nrcop-map-modal-footer>.nrcop-map-modal-close{min-width:120px;margin-left:auto;margin-right:auto}
.nrcop-intelligence-panel-footer{display:flex;justify-content:center;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid #dee2e6}
.nrcop-intelligence-panel-close{min-width:110px}
.leaflet-popup{pointer-events:auto}

/* NRCOP v5.0.5 — raw NASA FIRMS indicators remain distinct from clusters */
.satellite-fire-icon{background:transparent!important;border:0!important}
.satellite-fire-marker{width:28px;height:28px;background:#e63900;color:#fff;border:3px solid #fff;box-shadow:0 0 0 2px rgba(230,57,0,.30),0 2px 8px rgba(0,0,0,.45);font-size:14px;position:relative}
.satellite-fire-marker .firms-raw-dot{position:absolute;right:-4px;top:-4px;width:9px;height:9px;border-radius:50%;background:#ffd60a;border:2px solid #fff}
.leaflet-firmsDetectionPane-pane{pointer-events:auto}
.leaflet-firmsDetectionPane-pane .leaflet-marker-icon{cursor:pointer}
.leaflet-firmsClusterPane-pane .leaflet-marker-icon{cursor:pointer}

.nrcop-hazard-intel-group{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;padding:.3rem .4rem;border-radius:.45rem}.nrcop-hazard-intel-wildfire{border-left:4px solid #dc3545;background:rgba(220,53,69,.045)}.nrcop-hazard-intel-flood{border-left:4px solid #0d6efd;background:rgba(13,110,253,.045)}.nrcop-hazard-intel-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.nrcop-hazard-intel-wildfire .nrcop-hazard-intel-label{color:#b02a37}.nrcop-hazard-intel-flood .nrcop-hazard-intel-label{color:#0a58ca}

/* NRCOP v5.2.0 — Flood Development Forecast */
.leaflet-nrcopFloodPredictionPane-pane path{cursor:pointer}
.nrcop-flood-prediction-popup{min-width:285px}
.nrcop-flood-prediction-popup ul{padding-left:1.15rem}
.nrcop-flood-prediction-key{display:flex;gap:.7rem;flex-wrap:wrap;font-size:.75rem}

/* NRCOP v5.2.4 — manually assessed potential flood events */
.potential-flood-event-icon{background:transparent!important;border:0!important}
.potential-flood-event-marker{width:40px;height:40px;border-radius:50%;background:#0d6efd;color:#fff;border:3px solid #fff;box-shadow:0 2px 9px rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;position:relative;font-size:18px}
.potential-flood-event-marker span{position:absolute;right:-7px;bottom:-5px;min-width:20px;height:20px;padding:0 4px;border-radius:10px;background:#fff;color:#0d6efd;border:2px solid #0d6efd;font-size:10px;display:flex;align-items:center;justify-content:center;font-weight:700}

/* NRCOP v5.2.5 — fullscreen event modal and popup-to-event workflow */
#nrcopAddHazardEventModal{z-index:1080!important}
body>.modal-backdrop{z-index:1070!important}
.nrcop-mark-hazard-event{white-space:normal;text-align:center}

/* NRCOP v5.2.7 — operational status modal foreground and single-close treatment */
#nrcopOperationalHoldModal{z-index:1090!important}
#nrcopOperationalHoldModal+.modal-backdrop,body>.modal-backdrop{z-index:1080!important}
#nrcopOperationalHoldModal .modal-dialog{z-index:1091}
#nrcopOperationalHoldModal .modal-footer{justify-content:center!important;gap:.75rem}
#nrcopOperationalHoldModal .nrcop-map-modal-close{min-width:120px}

/* NRCOP v5.3.0 — isolated official FRS corroboration trial */
.nrcop-frs-trial-banner{border-left:0;border-right:0;position:relative;z-index:1002}
.frs-trial-icon{background:transparent!important;border:0!important}
.frs-trial-marker{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;border:3px solid #fff;box-shadow:0 2px 9px rgba(0,0,0,.42);font-size:17px;position:relative}
.frs-trial-report{background:#6c757d}.frs-trial-likely{background:#f59f00}.frs-trial-matched{background:#198754}
.frs-trial-match-dot{position:absolute;right:-5px;top:-5px;width:12px;height:12px;border-radius:50%;background:#20c997;border:2px solid #fff}
.frs-trial-popup{min-width:300px}

/* NRCOP v5.3.1 — FRS trial sync modals must remain above fullscreen map */
#nrcopFrsTrialSyncResult,
#nrcopFrsTrialSyncError{z-index:1095!important}
body>.modal-backdrop{z-index:1090!important}

/* NRCOP v5.3.2 — universal fullscreen/trial modal foreground policy */
body>.modal{z-index:1110!important}
body>.modal.show{z-index:1120!important}
body>.modal-backdrop{z-index:1100!important}
.frs-intel-card .card-header{background:rgba(0,0,0,.025)}
.frs-intel-text{margin-top:.25rem;padding:.5rem .65rem;background:#f8f9fa;border:1px solid #e2e6ea;border-radius:.35rem;white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto}
#nrcopFrsTrialSourcesModal .modal-dialog{max-width:min(1400px,96vw)}
#nrcopFrsTrialSourcesModal .modal-body{background:#fff}

/* NRCOP v5.3.3 — visible FRS candidate provenance on map symbols */
.potential-event-marker.potential-frs-candidate{box-shadow:0 0 0 4px rgba(25,135,84,.26),0 2px 9px rgba(0,0,0,.42)}
.potential-frs-badge{position:absolute;left:50%;top:-12px;transform:translateX(-50%);background:#198754;color:#fff;border:2px solid #fff;border-radius:8px;padding:1px 5px;font-size:9px;line-height:13px;font-weight:800;letter-spacing:.04em;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.frs-event-corroboration{padding:.45rem .55rem;border:1px solid rgba(25,135,84,.45);border-left:4px solid #198754;border-radius:.35rem;background:rgba(25,135,84,.06)}
.frs-trial-marker{position:relative}
.frs-trial-text{position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);padding:0 4px;border-radius:6px;background:#fff;color:#212529;border:1px solid #6c757d;font-size:8px;font-weight:800;line-height:12px;letter-spacing:.05em;white-space:nowrap}
.frs-trial-map-key{background:rgba(255,255,255,.96);border:1px solid #ced4da;border-radius:.4rem;padding:.45rem .55rem;font-size:.72rem;line-height:1.65;box-shadow:0 1px 5px rgba(0,0,0,.15)}
.frs-key-symbol{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:19px;margin-right:.35rem;border-radius:8px;font-size:8px;font-weight:800;color:#fff;vertical-align:middle}
.frs-key-report{background:#6c757d}.frs-key-match{background:#198754}.frs-key-satellite{background:#dc3545;font-size:11px}

/* NRCOP v5.4.1 — modal top-layer and map intelligence ordering */
:fullscreen>.modal.show,
:-webkit-full-screen>.modal.show{display:block!important;position:fixed!important;inset:0!important;z-index:2147483646!important;pointer-events:auto!important}
:fullscreen>.modal-backdrop,
:-webkit-full-screen>.modal-backdrop{position:fixed!important;inset:0!important;z-index:2147483645!important}
.leaflet-firms-cluster-pane,.leaflet-firms-detection-pane{z-index:560!important}
.leaflet-potential-incident-pane{z-index:720!important}
.leaflet-frs-candidate-pane{z-index:740!important}

/* NRCOP v5.4.2 — persistent map modals */
.modal.show{pointer-events:auto!important}
.modal.show .modal-dialog{pointer-events:auto!important}
.modal-backdrop.show{pointer-events:auto!important}

/* NRCOP v5.4.3 — absolute map/modal stacking boundary */
#incidentMap,
#singleIncidentMap,
.leaflet-container{z-index:1!important}

.leaflet-pane{z-index:auto!important}
.leaflet-map-pane{z-index:10!important}
.leaflet-tile-pane{z-index:20!important}
.leaflet-overlay-pane{z-index:30!important}
.leaflet-shadow-pane{z-index:40!important}
.leaflet-marker-pane{z-index:50!important}
.leaflet-tooltip-pane{z-index:60!important}
.leaflet-popup-pane{z-index:70!important}
.leaflet-control-container{position:relative!important;z-index:80!important}

/* NRCOP custom intelligence panes stay ordered relative to each other,
   but all remain far below Bootstrap modals. */
.leaflet-firmsFootprintPane-pane{z-index:120!important}
.leaflet-ffcForecastPane-pane{z-index:130!important}
.leaflet-floodAlertPane-pane{z-index:140!important}
.leaflet-floodWarningPane-pane{z-index:150!important}
.leaflet-floodSeverePane-pane{z-index:160!important}
.leaflet-firmsClusterPane-pane{z-index:170!important}
.leaflet-firmsDetectionPane-pane{z-index:180!important}
.leaflet-nrcopFloodPredictionPane-pane{z-index:190!important}
.leaflet-nrcopPredictionPane-pane{z-index:200!important}
.leaflet-potentialIncidentPane-pane{z-index:220!important}
.leaflet-frsCandidatePane-pane{z-index:230!important}

/* Every map-page modal and its dialog are always above all Leaflet content. */
.modal.show{z-index:2147483646!important}
.modal.show .modal-dialog,
.modal.show .modal-content{position:relative!important;z-index:2147483647!important}
.modal-backdrop.show{z-index:2147483645!important}

/* NRCOP v5.4.4 — dedicated modal overlay host */
#nrcopModalOverlayHost{
 position:fixed!important;
 inset:0!important;
 z-index:2147483647!important;
 pointer-events:none!important;
 isolation:isolate!important;
}
#nrcopModalOverlayHost>.modal.show{
 position:fixed!important;
 inset:0!important;
 z-index:20!important;
 pointer-events:auto!important;
}
#nrcopModalOverlayHost>.modal-backdrop{
 position:absolute!important;
 inset:0!important;
 z-index:10!important;
 pointer-events:auto!important;
}
#nrcopModalOverlayHost .modal-dialog,
#nrcopModalOverlayHost .modal-content{
 position:relative!important;
 z-index:21!important;
 pointer-events:auto!important;
}

/* NRCOP v5.4.5 — Leaflet popups are the top-most MAP layer.
   Marker popup windows must always render above FRS candidates, incidents,
   FIRMS detections, clusters, predictions and all other map content. */
.leaflet-popup-pane{
 z-index:2000!important;
 pointer-events:auto!important;
}
.leaflet-popup{
 z-index:2001!important;
 pointer-events:auto!important;
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip-container,
.leaflet-popup-content,
.leaflet-popup-content button,
.leaflet-popup-content a,
.leaflet-popup-content input,
.leaflet-popup-content select,
.leaflet-popup-content textarea{
 position:relative;
 z-index:2002!important;
 pointer-events:auto!important;
}
.leaflet-tooltip-pane{z-index:1900!important}

/* Marker/intelligence panes remain below popup windows. */
.leaflet-frsCandidatePane-pane{z-index:740!important}
.leaflet-potentialIncidentPane-pane{z-index:720!important}
.leaflet-nrcopPredictionPane-pane{z-index:690!important}
.leaflet-nrcopFloodPredictionPane-pane{z-index:680!important}
.leaflet-firmsDetectionPane-pane{z-index:575!important}
.leaflet-firmsClusterPane-pane{z-index:560!important}
.leaflet-firmsFootprintPane-pane{z-index:445!important}

/* NRCOP v5.4.6 — FFC / Met Office flood forecast popup foreground */
.leaflet-popup-pane{
 z-index:5000!important;
 pointer-events:auto!important;
}
.leaflet-popup{
 z-index:5001!important;
 pointer-events:auto!important;
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip-container,
.leaflet-popup-content{
 z-index:5002!important;
 pointer-events:auto!important;
}
.leaflet-popup-content button,
.leaflet-popup-content a,
.leaflet-popup-content input,
.leaflet-popup-content select,
.leaflet-popup-content textarea{
 position:relative!important;
 z-index:5003!important;
 pointer-events:auto!important;
}

/* NRCOP v5.6.0 unified evidence timeline */
.nrcop-evidence-row{position:relative;padding-left:.25rem}.nrcop-evidence-row:last-child{border-bottom:0!important}
\n/* NRCOP v5.7.0 — evidence source provenance */\n.evidence-source-line{padding:.25rem .4rem;border-left:3px solid #6c757d;background:rgba(108,117,125,.055);border-radius:.2rem}\n.evidence-source-line a{font-weight:600}\n
/* NRCOP v5.7.1 — strict persistent modal close authorisation */
#nrcopModalOverlayHost>.modal.show{display:block!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}
#nrcopModalOverlayHost>.modal.show .modal-dialog,#nrcopModalOverlayHost>.modal.show .modal-content{pointer-events:auto!important}

/* NRCOP v5.8.0 — common warning/intelligence timeline */
.nrcop-warning-timeline{margin-top:.6rem;padding-top:.55rem;border-top:1px solid rgba(0,0,0,.12)}
.nrcop-timeline-row{padding:.18rem 0;line-height:1.35}
.nrcop-timeline-row+.nrcop-timeline-row{border-top:1px dotted rgba(0,0,0,.08)}

/* NRCOP v5.8.2 — restore flood warning popup styling */
.nrcop-flood-warning-popup{
 min-width:300px;
 max-width:420px;
 font-size:.88rem;
 line-height:1.4;
 color:#212529;
}
.nrcop-flood-warning-popup .ea-flood-popup-title{
 margin:0 -2px .45rem;
 padding:.5rem .65rem;
 border-radius:.4rem;
 font-size:1rem;
 line-height:1.2;
}
.nrcop-flood-warning-popup.nrcop-flood-alert .ea-flood-popup-title{
 background:rgba(242,140,0,.12);
 border-left:5px solid #f28c00;
 color:#8a4d00;
}
.nrcop-flood-warning-popup.nrcop-flood-warning .ea-flood-popup-title{
 background:rgba(230,0,22,.09);
 border-left:5px solid #e60016;
 color:#a00010;
}
.nrcop-flood-warning-popup.nrcop-flood-severe .ea-flood-popup-title{
 background:#7d0012;
 border-left:5px solid #e60016;
 color:#fff;
}
.nrcop-flood-warning-description{
 font-weight:600;
 margin:.35rem 0 .45rem;
}
.nrcop-flood-warning-popup .small{
 line-height:1.45;
}
.nrcop-flood-warning-timeline{
 margin:.75rem 0 .25rem!important;
 padding:.65rem .75rem!important;
 border:1px solid #d9dee3!important;
 border-left:4px solid #0d6efd!important;
 border-radius:.45rem;
 background:#f8fafc;
 box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.nrcop-flood-warning-timeline .nrcop-timeline-heading{
 font-size:.82rem;
 font-weight:700;
 color:#1f3f68;
 margin-bottom:.35rem;
}
.nrcop-flood-warning-timeline .nrcop-timeline-row{
 padding:.24rem 0;
 color:#2b3035;
}
.nrcop-flood-warning-timeline .nrcop-timeline-row .text-muted{
 color:#5f6b78!important;
 font-variant-numeric:tabular-nums;
}
.nrcop-flood-warning-timeline .nrcop-timeline-row+.nrcop-timeline-row{
 border-top:1px dotted #cfd6dd;
}
.nrcop-flood-warning-timeline .nrcop-timeline-provenance{
 margin-top:.45rem;
 padding-top:.4rem;
 border-top:1px solid #dde3e8;
 color:#5d6975;
 font-size:.75rem;
 font-weight:600;
}
.nrcop-flood-severe .nrcop-flood-warning-timeline{border-left-color:#7d0012!important}
.nrcop-flood-warning .nrcop-flood-warning-timeline{border-left-color:#e60016!important}
.nrcop-flood-alert .nrcop-flood-warning-timeline{border-left-color:#f28c00!important}

/* v5.8.11 - Google Authenticator screens aligned with the NRCOP login experience */
.mfa-login-card{max-width:480px}
.mfa-intro{color:var(--muted);line-height:1.55;margin:0 0 18px}
.mfa-qr-panel,.mfa-recovery-box{border:1px solid var(--border);background:#f8fbff;border-radius:16px;padding:16px;margin:0 0 16px}
.mfa-section-title{display:flex;align-items:center;gap:8px;color:var(--blue);font-weight:800;margin-bottom:10px}
.mfa-setup-steps{margin:0 0 14px;padding-left:21px;color:var(--ink);font-size:.9rem;line-height:1.55}
.mfa-setup-steps li+li{margin-top:4px}
.mfa-qr-wrap{display:flex;justify-content:center;margin:12px 0}
.mfa-qr-code{display:flex;align-items:center;justify-content:center;min-width:292px;min-height:292px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:15px;box-shadow:0 10px 28px rgba(16,33,63,.08)}
.mfa-qr-code canvas,.mfa-qr-code img,.mfa-qr-code svg{display:block;max-width:260px!important;width:100%;height:auto!important}
.mfa-privacy-note{display:flex;gap:7px;align-items:flex-start;line-height:1.45;margin-top:8px}
.mfa-manual-details{border:1px solid var(--border);border-radius:14px;background:#fff;margin:0 0 16px;overflow:hidden}
.mfa-manual-details summary{cursor:pointer;color:var(--blue);font-weight:800;padding:13px 14px;background:#f8fbff;list-style-position:inside}
.mfa-manual-body{padding:14px}.mfa-manual-body p{margin-top:0}
.mfa-detail-row{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;align-items:start;padding:7px 0;border-top:1px solid var(--border);font-size:.88rem}
.mfa-detail-row:first-of-type{border-top:0}.mfa-detail-row>span{color:var(--muted);font-weight:700}
.mfa-detail-row code{word-break:break-all;color:var(--ink)}
.mfa-secret-key{font-weight:800;letter-spacing:.04em}
.mfa-recovery-box p{margin:0 0 8px}.mfa-recovery-codes{display:block;word-break:break-word;line-height:1.65;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px}
.mfa-code-input{text-align:center;font-size:1.15rem;font-weight:800;letter-spacing:.08em}
.mfa-login-buttons .btn{width:100%}
@media(max-width:520px){
  .mfa-qr-code{min-width:0;min-height:0;width:100%;padding:10px}
  .mfa-detail-row{grid-template-columns:1fr;gap:4px}
}
