/* ================================================================
   CBRN WATCH — Scoped Design System v10.0
   ================================================================
   Namespace: cbrn-* / ta-* / ews-* / intel-* / atlas-* / iran-*
   
   All classes are scoped to prevent collision with parent BioR
   framework or third-party CSS. Class naming conventions:
     - Layout:      app-layout, content-area, sidebar, top-bar
     - Cards:       card, kpi-card, panel-card, banner-card, stat-card
     - Threat:      ta-banner, ta-domain-*, ta-ring-*, ta-threats-*
     - EWS:         ews-ticker, ews-status-dot, ews-classification, ews-pulse-*
     - Intel:       intel-card, ic-*
     - Atlas:       atlas-*, atlas-fcard, atlas-bl-btn
     - Iran:        iran-*, iran-bl-btn, iran-crit-item
     - Detection:   det-*
     - AI:          ai-*
   
   CSS Custom Properties (Design Tokens):
     --primary, --bg-primary, --text-primary, --border-subtle, etc.
     --cbrn-nuclear, --cbrn-bio, --cbrn-chem, --cbrn-rad
     --threat-critical, --threat-high, --threat-elevated
   
   No generic class names (e.g., .container, .wrapper, .header)
   are used — all are project-scoped to prevent collisions.
   ================================================================ */
/* Powered by BioR Universal Design System v2.2 — GREEN EDITION */

/* ══════════════════════════════════════════════════════════════════════
   BioR Design System Bridge — Override BioR global resets so CBRN's
   scoped theme tokens take precedence. Map BioR component classes
   (.bior-card, .bior-kpi, .bior-panel, etc.) to CBRN theme tokens
   for seamless dark/light theme support with no white-on-white issues.
   ══════════════════════════════════════════════════════════════════════ */

/* --- Override BioR's body reset: use CBRN theme tokens --- */
body {
  background: var(--bg-primary, #f8faf9);
  color: var(--text-primary, #1a1a2e);
}

/* --- Map BioR card components to CBRN tokens (dark mode default) --- */
.bior-card,
.bior-kpi,
.bior-panel,
.bior-card-strategy,
.bior-card-featured,
.bior-card-metric,
.bior-card-progress,
.bior-card-action,
.bior-card-media,
.bior-card-list {
  background: var(--bg-card) !important;
  border-color: rgba(0,168,107,0.10) !important;
  color: var(--text-primary) !important;
  box-shadow: var(--shadow-xs) !important;
}
.bior-card:hover,
.bior-kpi:hover,
.bior-panel:hover,
.bior-card-strategy:hover,
.bior-card-featured:hover,
.bior-card-metric:hover,
.bior-card-action:hover,
.bior-card-media:hover {
  border-color: rgba(0,168,107,0.18) !important;
  box-shadow: var(--shadow-md) !important;
}

/* BioR card inner text elements — ensure dark mode readability */
.bior-card-strategy .card-title,
.bior-card-metric .metric-value,
.bior-card-progress .progress-title,
.bior-card-action .action-title,
.bior-card-media .media-title,
.bior-card-list .list-title,
.bior-card-list .list-item .item-title,
.bior-card-featured .card-title {
  color: var(--text-primary) !important;
}
.bior-card-strategy .card-subtitle,
.bior-card-strategy .card-body,
.bior-card-metric .metric-label,
.bior-card-metric .metric-trend,
.bior-card-progress .progress-detail,
.bior-card-action .action-desc,
.bior-card-media .media-desc,
.bior-card-media .media-meta,
.bior-card-list .list-item .item-desc,
.bior-card-list .list-item .item-meta {
  color: var(--text-secondary, #4B5563) !important;
}

/* BioR badges — use CBRN-aware color overrides for dark mode */
.bior-badge { color: var(--text-primary) !important; }

/* BioR buttons — ensure visibility in dark mode */
.bior-btn-sec {
  background: var(--bg-elevated) !important;
  border-color: var(--border-medium) !important;
  color: var(--text-primary) !important;
}
.bior-btn-sec:hover {
  background: rgba(0,232,143,0.08) !important;
  border-color: var(--border-bright) !important;
}

/* BioR inputs/selects — use CBRN input tokens */
.bior-input,
.bior-select {
  background: var(--bg-input, rgba(0,232,143,0.03)) !important;
  border-color: var(--border-medium) !important;
  color: var(--text-primary) !important;
}
.bior-input:focus,
.bior-select:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(0,232,143,0.12) !important;
}
.bior-input::placeholder { color: var(--text-muted) !important; }

/* BioR tables — ensure dark mode readability */
.bior-table thead { background: rgba(0,232,143,0.04) !important; }
.bior-table th { color: var(--text-muted) !important; }
.bior-table td { color: var(--text-primary) !important; border-color: var(--border-subtle) !important; }
.bior-table tbody tr:hover { background: rgba(0,232,143,0.04) !important; }

/* BioR tabs — use CBRN accent */
.bior-tab { color: var(--text-muted) !important; }
.bior-tab:hover { color: var(--text-secondary) !important; background: var(--bg-elevated) !important; }
.bior-tab.active { background: rgba(0,232,143,0.15) !important; color: var(--primary) !important; border-color: rgba(0,232,143,0.3) !important; }

/* BioR empty state */
.bior-empty i { color: var(--text-muted) !important; }
.bior-empty p { color: var(--text-muted) !important; }

/* BioR breadcrumb */
.bior-breadcrumb { color: var(--text-muted) !important; }
.bior-breadcrumb a { color: var(--text-muted) !important; }
.bior-breadcrumb a:hover { color: var(--primary) !important; }

/* BioR glass utility — dark mode */
.bior-glass {
  background: rgba(0,232,143,0.025) !important;
  border-color: rgba(0,232,143,0.10) !important;
}

/* BioR skeleton — dark mode shimmer */
.bior-skeleton {
  background: linear-gradient(90deg,rgba(0,232,143,0.02) 25%,rgba(0,232,143,0.05) 50%,rgba(0,232,143,0.02) 75%) !important;
  background-size: 200% 100% !important;
}

/* BioR modal — dark mode */
.bior-modal-overlay { background: rgba(0,0,0,0.7) !important; }
.bior-modal {
  background: linear-gradient(135deg,#ffffff 0%,#f8faf9 100%) !important;
  border-color: rgba(0,168,107,0.15) !important;
  color: var(--text-primary) !important;
}

/* BioR toast — keep semantic colors */
.bior-toast { border-color: var(--border-subtle) !important; }

/* BioR scrollbar — dark mode */
.bior-scroll::-webkit-scrollbar-thumb { background: rgba(0,168,107,0.15) !important; }
.bior-scroll::-webkit-scrollbar-thumb:hover { background: rgba(0,168,107,0.25) !important; }

/* BioR KPI accent colors — map ::before pseudo-element */
.bior-kpi::before { background: rgba(0,232,143,0.18) !important; }
.bior-kpi.accent-green::before { background: linear-gradient(90deg,#00e88f,#34ffa8) !important; }
.bior-kpi.accent-red::before { background: linear-gradient(90deg,#ef4444,#f87171) !important; }
.bior-kpi.accent-blue::before { background: linear-gradient(90deg,#3b82f6,#60a5fa) !important; }
.bior-kpi.accent-amber::before { background: linear-gradient(90deg,#f59e0b,#fbbf24) !important; }
.bior-kpi.accent-purple::before { background: linear-gradient(90deg,#8b5cf6,#a78bfa) !important; }

/* --- LIGHT THEME: Map BioR components to CBRN light tokens --- */

/* BioR pill in CBRN dark mode — ensure visibility */
.bior-pill-main {
  background: rgba(255,255,255,0.95) !important;
  border-color: rgba(0,168,107,0.08) !important;
}
.bior-pill-dropdown {
  background: rgba(10,15,26,0.96) !important;
  border-color: rgba(0,168,107,0.08) !important;
}
/* BioR pill in CBRN light mode */

/* --- Print: BioR components should be white --- */
@media print {
  .bior-card, .bior-kpi, .bior-panel { background: #fff !important; border: 1px solid #ddd !important; box-shadow: none !important; color: #000 !important; }
}
/* ── BioR Card Style Bridge for CBRN WATCH Components ──────────────
   Maps CBRN's exec cards, news cards, live news timeline, and all
   overview/intelligence components to BioR card design patterns:
   proper background, border, shadow, border-radius, and text colours
   in BOTH dark and light themes. Fixes invisible text issues.
   ─────────────────────────────────────────────────────────────────── */

/* === DARK THEME (default): Exec Intel Cards use BioR card patterns === */
.exec-intel-card,
.exec-brief-card,
.exec-action-card {
  background: var(--bg-card);
  border: 1px solid rgba(0,232,143,0.10);
  border-radius: 16px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.20), 0 0 0 1px rgba(0,232,143,0.04);
}
.exec-intel-card:hover,
.exec-brief-card:hover,
.exec-action-card:hover {
  border-color: rgba(0,232,143,0.25);
  box-shadow: 0 4px 16px rgba(0,0,0,0.30), 0 0 0 1px rgba(0,232,143,0.08);
}

/* Exec card headers — always visible */
.exec-card-header {
  border-bottom: 1px solid rgba(0,232,143,0.06);
  padding-bottom: 10px;
  margin-bottom: 12px;
}
.exec-card-title {
  font-size: 13px;
  font-weight: 800;
  color: var(--text-primary, #1a1a2e);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.exec-card-title i {
  opacity: 0.9;
}

/* --- Live News Timeline items: DARK mode readable text --- */
.live-news-item-title {
  color: #1F2937;
  font-weight: 600;
}
.live-news-item-title a {
  color: #1F2937;
  text-decoration: none;
}
.live-news-item-title:hover,
.live-news-item-title a:hover {
  color: #00e88f;
}
.live-news-item-source {
  color: #6B7280;
  font-weight: 700;
}
.live-news-item-time {
  color: #9CA3AF;
}
.live-news-item::before {
  border-color: var(--bg-primary, #f8faf9);
}

/* --- News Cards (OSINT Feed tab): Light mode text visibility --- */
.news-card-source {
  color: #6B7280;
}
.news-card-time {
  color: #9CA3AF;
}
.news-card-title {
  color: #111827;
}
.news-card-desc {
  color: #4B5563;
}
.news-card-footer {
  border-top-color: rgba(0,168,107,0.08);
}
.news-card-geo {
  color: #9CA3AF;
}
.news-card-score-value {
  color: #111827;
}

/* --- Generic .card elements: BioR-compatible styling (light) --- */
.card {
  color: var(--text-primary, #1a1a2e);
}
.card h3,
.card h4 {
  color: var(--text-primary, #1a1a2e);
}

/* === LIGHT THEME: Full text visibility overrides === */

/* Exec intel cards — BioR light card pattern */

/* Exec card headers — light theme */

/* Live news timeline items — light theme readability */

/* Reference Source button — light theme */

/* News cards (OSINT Feed tab) — light theme */

/* Featured/breaking news card — light theme */

/* Generic .card — light theme BioR pattern */

/* News stats banner + toolbar — light theme */

/* Banners — light theme */

/* Timeline and Detection and AI tab text — light theme */

/* Exec detect components — light theme */

/* Situation banner badge — light */

/* Print overrides for news */
@media print {
  .news-card { background: #fff !important; border: 1px solid #ddd !important; color: #000 !important; box-shadow: none !important; }
  .news-card-title, .news-card-source, .news-card-time, .news-card-desc { color: #000 !important; }
  .live-news-item-title, .live-news-item-source, .live-news-item-time { color: #000 !important; }
}

/* End BioR Design System Bridge */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap');
:root {
  /* ═══ BioR GREEN THEME — Premium Design Tokens v11.4 ═══ */
  --primary: #00e88f;
  --primary-light: #34ffa8;
  --primary-dark: #00A86B;
  --primary-darker: #006241;
  --primary-rgb: 0,232,143;
  --ews-green-500:#00e88f;--ews-green-400:#00A86B;--ews-green-300:#6ee7b7;
  --ews-amber-500:#f59e0b;--ews-amber-400:#fbbf24;--ews-red-500:#ef4444;--ews-red-400:#f87171;
  --ews-cyan-500:#06b6d4;--ews-cyan-400:#22d3ee;--ews-blue-500:#3b82f6;

  /* Surfaces — Clean Light Theme */
  --bg-primary: #f8faf9;
  --bg-secondary: #f0f4f2;
  --bg-card: rgba(255,255,255,0.92);
  --bg-card-hover: rgba(255,255,255,0.98);
  --bg-elevated: rgba(0,168,107,0.04);
  --bg-input: rgba(0,168,107,0.02);

  /* Borders — clean light green-tinted */
  --border-subtle: rgba(0,168,107,0.10);
  --border-medium: rgba(0,168,107,0.18);
  --border-bright: rgba(0,168,107,0.35);

  /* Text — clean light hierarchy */
  --text-primary: #1a1a2e;
  --text-secondary: #4B5563;
  --text-muted: #9CA3AF;
  --text-dim: #D1D5DB;
  color-scheme:light;

  /* CBRN Domain Colors */
  --cbrn-nuclear:#f59e0b;--cbrn-bio:#00e88f;--cbrn-chem:#a855f7;--cbrn-rad:#3b82f6;
  --cbrn-nuclear-bg:rgba(245,158,11,0.08);--cbrn-bio-bg:rgba(0,232,143,0.08);
  --cbrn-chem-bg:rgba(168,85,247,0.08);--cbrn-rad-bg:rgba(59,130,246,0.08);

  /* Threat Level Colors */
  --threat-critical:#ef4444;--threat-high:#f59e0b;--threat-elevated:#eab308;
  --threat-moderate:#00e88f;--threat-low:#6b83a8;

  /* Typography Scale — A++++ Consistent Size System */
  --text-2xs: 8px;
  --text-xs: 9px;
  --text-sm: 11px;
  --text-base: 13px;
  --text-md: 13.5px;
  --text-lg: 15px;
  --text-xl: 16px;
  --text-2xl: 20px;
  --text-3xl: 24px;
  --text-4xl: 30px;

  /* Spacing Scale */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;

  /* Layout */
  --sidebar-width:230px;--sidebar-collapsed:56px;--header-height:56px;--ticker-height:32px;

  /* Refined Shadow System — Light */
  --shadow-xs: 0 1px 3px rgba(0,0,0,0.06), 0 0 1px rgba(0,168,107,0.04);
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.07), 0 0 2px rgba(0,168,107,0.05);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.08), 0 1px 4px rgba(0,168,107,0.05);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.10), 0 2px 8px rgba(0,168,107,0.06);
  --shadow-xl: 0 16px 48px rgba(0,0,0,0.12), 0 4px 12px rgba(0,168,107,0.08);

  /* Green Glow Effects — Light */
  --glow-xs: 0 0 6px rgba(0,168,107,0.08);
  --glow-sm: 0 0 12px rgba(0,168,107,0.08);
  --glow-md: 0 4px 16px rgba(0,168,107,0.10);
  --glow-lg: 0 8px 28px rgba(0,168,107,0.10);
  --glow-xl: 0 12px 40px rgba(0,168,107,0.12);

  /* Z-Index Token System (normalized scale) */
  --z-base: 0;
  --z-content: 1;
  --z-elevated: 2;
  --z-dropdown: 20;
  --z-sticky: 30;
  --z-sidebar: 40;
  --z-collapse-btn: 50;
  --z-tooltip: 100;
  --z-map-tile: 200;
  --z-map-overlay: 400;
  --z-map-loading: 500;
  --z-map-marker: 600;
  --z-map-popup: 700;
  --z-map-coord: 800;
  --z-map-control: 999;
  --z-panel: 999;
  --z-atlas-autocomplete: 1000;
  --z-atlas-detail-overlay: 1099;
  --z-atlas-detail: 1100;
  --z-overlay: 9998;
  --z-shortcut: 9999;
  --z-pill: 9999;
  --z-toast: 9999;
  --z-landing: 10000;
  --z-pdf-export: 10000;
  --z-cbrn-toast: 10000;
  --z-mobile-nav: 100000;
  --z-skip-nav: 100001;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:#f8faf9;color:#1a1a2e;min-height:100vh;overflow-x:hidden;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;letter-spacing:-0.008em}
/* Premium ambient glow — deeper, more immersive */
body::before{content:'';position:fixed;top:-350px;left:50%;transform:translateX(-50%);width:1100px;height:700px;background:radial-gradient(ellipse at center,rgba(0,168,107,0.03) 0%,rgba(0,168,107,0.01) 35%,transparent 60%);pointer-events:none;z-index:0}
/* Refined micro-grid overlay — subtler */
body::after{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(0,168,107,0.015) 1px,transparent 1px),linear-gradient(90deg,rgba(0,168,107,0.015) 1px,transparent 1px);background-size:80px 80px;pointer-events:none;z-index:0;opacity:0.3}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}

/* Scrollbars */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(0,168,107,0.15);border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:rgba(0,168,107,0.25)}
.scroll-thin::-webkit-scrollbar{width:4px}

/* ── LAYOUT ────────────────────────────────────── */
.app-layout{display:flex;min-height:100vh}
.content-area{flex:1;margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column;transition:margin-left .3s cubic-bezier(.22,1,.36,1)}
body.sidebar-collapsed .content-area{margin-left:var(--sidebar-collapsed)}

/* ── SIDEBAR ───────────────────────────────────── */
.sidebar{width:var(--sidebar-width);background:linear-gradient(180deg,#ffffff 0%,#f0faf5 40%,#e8f5ef 70%,#dff0e8 100%);position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:var(--z-sidebar);display:flex;flex-direction:column;border-right:1px solid rgba(0,168,107,0.12);overflow:hidden;transition:width .3s cubic-bezier(.22,1,.36,1);box-shadow:2px 0 16px rgba(0,0,0,0.04),1px 0 0 rgba(0,168,107,0.08)}
body.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed);overflow:visible}
.sidebar::before{content:'';position:absolute;width:400px;height:400px;background:radial-gradient(circle,rgba(0,168,107,0.06) 0%,rgba(0,168,107,0.02) 40%,transparent 70%);top:-100px;left:-100px;animation:sidebarBlob 10s ease-in-out infinite;pointer-events:none;z-index:0}
.sidebar::after{content:'';position:absolute;width:350px;height:350px;background:radial-gradient(circle,rgba(0,168,107,0.04) 0%,rgba(0,168,107,0.01) 40%,transparent 70%);bottom:-80px;right:-80px;animation:sidebarBlob2 13s ease-in-out infinite;pointer-events:none;z-index:0}
@keyframes sidebarBlob{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(15px,-10px) scale(1.05)}}
@keyframes sidebarBlob2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-10px,-15px) scale(1.08)}}
.sidebar-brand{padding:14px 16px;border-bottom:1px solid rgba(0,168,107,0.10);flex-shrink:0;position:relative;z-index:2;transition:padding .3s ease}
body.sidebar-collapsed .sidebar-brand{padding:10px 9px}
.sidebar-brand-logo{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#00A86B,#00c77b);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;box-shadow:0 4px 12px rgba(0,168,107,0.2),0 0 12px rgba(0,168,107,0.1);flex-shrink:0}
.sidebar-brand-text{transition:opacity .2s ease,width .2s ease;overflow:hidden;white-space:nowrap}
body.sidebar-collapsed .sidebar-brand-text{opacity:0;width:0;pointer-events:none}
.sidebar-brand-status{transition:opacity .2s ease,max-height .2s ease;overflow:hidden}
body.sidebar-collapsed .sidebar-brand-status{opacity:0;max-height:0;pointer-events:none;margin:0;padding:0}
.sidebar-nav{flex:1;overflow-y:auto;padding:8px 0;position:relative;z-index:2}
.sidebar-section{padding:0 8px;margin-bottom:2px;transition:padding .3s ease}
body.sidebar-collapsed .sidebar-section{padding:0 4px}
.sidebar-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#9CA3AF;padding:14px 10px 4px;transition:opacity .2s ease,font-size .2s ease}
body.sidebar-collapsed .sidebar-section-label{font-size:9px;text-align:center;padding:12px 2px 3px;letter-spacing:0;opacity:0.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:13.5px;font-weight:500;color:#4B5563;cursor:pointer;transition:all .25s ease;border-left:3px solid transparent;position:relative;z-index:2}
body.sidebar-collapsed .sidebar-item{justify-content:center;gap:0;padding:9px 6px;border-left:none;border-radius:8px}
.sidebar-item:hover{background:rgba(0,168,107,0.08);color:#1a1a2e;border-left-color:rgba(0,168,107,0.6)}
body.sidebar-collapsed .sidebar-item:hover{border-left-color:transparent}
.sidebar-item.active{background:rgba(0,168,107,0.10);color:#00704A;font-weight:600;border-left-color:#00A86B;box-shadow:inset 0 0 12px rgba(0,168,107,0.04)}
body.sidebar-collapsed .sidebar-item.active{border-left-color:transparent;box-shadow:0 0 8px rgba(0,168,107,0.1)}
.sidebar-item.active::before{display:none}
.sidebar-item i{width:16px;text-align:center;font-size:13px;flex-shrink:0;opacity:0.7}
body.sidebar-collapsed .sidebar-item i{font-size:15px;width:auto;opacity:0.85}
.sidebar-item:hover i,.sidebar-item.active i{opacity:1}
.sidebar-item-label{transition:opacity .2s ease,width .2s ease;overflow:hidden;white-space:nowrap}
body.sidebar-collapsed .sidebar-item-label{opacity:0;width:0;position:absolute;pointer-events:none}
.sidebar-badge{margin-left:auto;background:rgba(0,168,107,0.10);color:#00704A;font-size:12px;font-weight:700;padding:1px 6px;border-radius:10px;transition:opacity .2s ease}
body.sidebar-collapsed .sidebar-badge{opacity:0;width:0;overflow:hidden;padding:0;margin:0}
.sidebar-footer{padding:12px 16px;border-top:1px solid rgba(0,168,107,0.10);flex-shrink:0;position:relative;z-index:2;transition:opacity .2s ease,padding .2s ease}
body.sidebar-collapsed .sidebar-footer{opacity:0;padding:0;max-height:0;overflow:hidden;border:none}

/* Collapse toggle button */
.sidebar-collapse-btn{position:absolute;bottom:14px;right:-14px;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#00A86B,#008050);border:2px solid #fff;color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:var(--z-collapse-btn);box-shadow:0 2px 12px rgba(0,232,143,0.3);transition:transform .3s ease,background .3s ease}
.sidebar-collapse-btn:hover{background:linear-gradient(135deg,#008050,#006241);transform:scale(1.1);box-shadow:0 4px 16px rgba(0,168,107,0.25)}
body.sidebar-collapsed .sidebar-collapse-btn{right:-14px;transform:rotate(180deg)}
body.sidebar-collapsed .sidebar-collapse-btn:hover{transform:rotate(180deg) scale(1.1)}

/* ── SIDEBAR WORKSPACE HEADERS ─────────────────── */
.sidebar-workspace{padding:0 8px;margin-bottom:2px;position:relative;z-index:2}
body.sidebar-collapsed .sidebar-workspace{padding:0 4px}
.sidebar-workspace-header{display:flex;align-items:center;gap:8px;padding:10px 10px 6px;cursor:pointer;border-radius:8px;transition:all .25s ease;user-select:none}
.sidebar-workspace-header:hover{background:rgba(0,168,107,0.06)}
.sidebar-ws-icon{width:24px;height:24px;border-radius:6px;background:rgba(0,168,107,0.08);display:flex;align-items:center;justify-content:center;color:#00A86B;font-size:12px;flex-shrink:0;transition:all .25s ease}
.sidebar-workspace-header:hover .sidebar-ws-icon,.sidebar-workspace-header.ws-active .sidebar-ws-icon{background:rgba(0,168,107,0.15);color:#008050}
.sidebar-ws-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6B7280;transition:all .25s ease;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-workspace-header:hover .sidebar-ws-label,.sidebar-workspace-header.ws-active .sidebar-ws-label{color:#1a1a2e}
.sidebar-workspace-header.ws-active .sidebar-ws-label{color:#00704A}
.sidebar-ws-chevron{font-size:10px;color:#9CA3AF;transition:transform .3s ease,color .25s ease;flex-shrink:0}
.sidebar-workspace-header.expanded .sidebar-ws-chevron{transform:rotate(180deg)}
.sidebar-workspace-header:hover .sidebar-ws-chevron{color:#4B5563}

/* Workspace items container — collapse/expand animation */
.sidebar-workspace-items{overflow:hidden;max-height:500px;transition:max-height .35s cubic-bezier(.22,1,.36,1),opacity .25s ease;opacity:1;padding:0 0 4px}
.sidebar-workspace-items.collapsed{max-height:0;opacity:0;padding:0}

/* Admin divider */
.sidebar-admin-divider{height:1px;margin:8px 16px;background:rgba(0,168,107,0.08)}
body.sidebar-collapsed .sidebar-admin-divider{margin:6px 8px}

/* Workspace sub-divider (e.g., between maps and country profiles) */
.sidebar-ws-divider{height:1px;margin:4px 12px;background:rgba(0,168,107,0.06)}

/* Admin workspace styling */
.sidebar-workspace-admin .sidebar-ws-icon{background:rgba(0,0,0,0.04);color:#9CA3AF}
.sidebar-workspace-admin .sidebar-workspace-header:hover .sidebar-ws-icon{background:rgba(0,0,0,0.06);color:#6B7280}

/* Collapsed sidebar: hide workspace labels and chevrons, show only icons */
body.sidebar-collapsed .sidebar-ws-label{opacity:0;width:0;position:absolute;pointer-events:none}
body.sidebar-collapsed .sidebar-ws-chevron{display:none}
body.sidebar-collapsed .sidebar-workspace-header{justify-content:center;padding:8px 4px}
body.sidebar-collapsed .sidebar-workspace-items{max-height:500px;opacity:1;padding:0}
body.sidebar-collapsed .sidebar-workspace-items.collapsed{max-height:500px !important;opacity:1 !important}
body.sidebar-collapsed .sidebar-ws-divider{display:none}
body.sidebar-collapsed .sidebar-admin-divider{display:none}

/* Collapsed sidebar: workspace header tooltip */
body.sidebar-collapsed .sidebar-workspace-header[onclick]{position:relative}
body.sidebar-collapsed .sidebar-workspace-header:hover::after{content:attr(data-ws-tooltip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#fff;color:#00704A;font-size:13px;font-weight:600;padding:5px 10px;border-radius:6px;white-space:nowrap;z-index:100;box-shadow:0 4px 12px rgba(0,0,0,0.08);pointer-events:none;border:1px solid rgba(0,168,107,0.15)}

/* Collapsed tooltip on hover */
.sidebar-item[data-tooltip]{position:relative}
body.sidebar-collapsed .sidebar-item[data-tooltip]:hover::after{content:attr(data-tooltip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#fff;color:#00704A;font-size:13px;font-weight:600;padding:5px 10px;border-radius:6px;white-space:nowrap;z-index:100;box-shadow:0 4px 12px rgba(0,0,0,0.08);pointer-events:none;border:1px solid rgba(0,168,107,0.15)}
body.sidebar-collapsed .sidebar-item[data-tooltip]:hover::before{content:'';position:absolute;left:calc(100% + 4px);top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:#fff;z-index:100;pointer-events:none}

/* ── SIDEBAR PLATFORM BRIEFING ITEM ──────────────── */
.sidebar-briefing-item{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:6px 8px 4px;border-radius:10px;cursor:pointer;transition:all .3s ease;background:rgba(0,168,107,0.05);border:1px solid rgba(0,168,107,0.12);position:relative;z-index:2;overflow:hidden}
.sidebar-briefing-item::after{content:'';position:absolute;inset:-1px;border-radius:10px;background:linear-gradient(135deg,rgba(0,168,107,0.1),rgba(0,168,107,0.03),rgba(0,168,107,0.08));opacity:0;transition:opacity .4s ease;z-index:-1;pointer-events:none}
.sidebar-briefing-item:hover::after{opacity:1}
.sidebar-briefing-item:hover{background:rgba(0,168,107,0.10);border-color:rgba(0,168,107,0.22);box-shadow:0 0 10px rgba(0,168,107,0.06)}
.sidebar-briefing-icon{width:28px;height:28px;border-radius:7px;background:rgba(0,168,107,0.10);display:flex;align-items:center;justify-content:center;color:#00A86B;font-size:13px;flex-shrink:0;transition:all .25s ease}
.sidebar-briefing-item:hover .sidebar-briefing-icon{background:rgba(0,168,107,0.15);box-shadow:0 0 8px rgba(0,168,107,0.08)}
.sidebar-briefing-text{display:flex;flex-direction:column;gap:1px;overflow:hidden;min-width:0;flex:1}
.sidebar-briefing-title{font-size:12.5px;font-weight:700;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}
.sidebar-briefing-item:hover .sidebar-briefing-title{color:#00704A}
.sidebar-briefing-desc{font-size:9.5px;color:#9CA3AF;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.02em;line-height:1.3}
.sidebar-briefing-item:hover .sidebar-briefing-desc{color:#6B7280}
.sidebar-briefing-arrow{font-size:10px;color:rgba(0,168,107,0.4);flex-shrink:0;transition:all .25s ease;margin-left:auto}
.sidebar-briefing-item:hover .sidebar-briefing-arrow{color:#00A86B;transform:translateX(2px)}
/* Collapsed sidebar: briefing item compact mode */
body.sidebar-collapsed .sidebar-briefing-item{justify-content:center;padding:8px 6px;margin:4px 4px 2px;gap:0}
body.sidebar-collapsed .sidebar-briefing-text{opacity:0;width:0;position:absolute;pointer-events:none}
body.sidebar-collapsed .sidebar-briefing-arrow{opacity:0;width:0;position:absolute;pointer-events:none}
body.sidebar-collapsed .sidebar-briefing-item[data-tooltip]:hover::after{content:attr(data-tooltip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#fff;color:#00704A;font-size:13px;font-weight:600;padding:5px 10px;border-radius:6px;white-space:nowrap;z-index:100;box-shadow:0 4px 12px rgba(0,0,0,0.08);pointer-events:none;border:1px solid rgba(0,168,107,0.15)}
body.sidebar-collapsed .sidebar-briefing-item[data-tooltip]:hover::before{content:'';position:absolute;left:calc(100% + 4px);top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:#fff;z-index:100;pointer-events:none}
/* Light theme */

/* ── SIDEBAR BRAND — A++++ Extracted ──────────────── */
.sidebar-brand-row{display:flex;align-items:center;gap:10px}
.sidebar-brand-name{font-size:14px;font-weight:800;color:#1a1a2e;letter-spacing:.02em}
.sidebar-brand-subtitle{font-size:var(--text-xs);color:#9CA3AF;letter-spacing:.08em;text-transform:uppercase}
.sidebar-brand-status{margin-top:10px;padding:6px 8px;border-radius:6px;background:rgba(0,168,107,0.04);border:1px solid rgba(0,168,107,0.10);transition:opacity .2s ease,max-height .2s ease;overflow:hidden}
.sidebar-status-row{display:flex;justify-content:space-between;align-items:center}
.sidebar-status-label{font-size:var(--text-xs);font-weight:700;color:#6B7280;text-transform:uppercase;letter-spacing:.06em}
.sidebar-clock{font-size:10px;color:#6B7280;margin-top:2px}

/* ── SIDEBAR FOOTER — A++++ Animated ──────────────── */
.sidebar-footer-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.sidebar-footer-label{font-size:var(--text-xs);color:#9CA3AF;text-transform:uppercase;letter-spacing:.06em}
.sidebar-footer-oal{font-size:10px;font-weight:800;color:#fbbf24;transition:color .5s ease}
.sidebar-footer-bar{height:3px;border-radius:2px;background:rgba(0,168,107,0.08);overflow:hidden;position:relative}
.sidebar-footer-bar::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(0,168,107,0.10),transparent);animation:barShimmer 3s ease-in-out infinite;pointer-events:none}
@keyframes barShimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.sidebar-footer-bar-fill{height:100%;width:60%;border-radius:2px;background:linear-gradient(90deg,#00A86B,#fbbf24);transition:width 1s ease,background 1s ease}
.sidebar-footer-version{font-size:var(--text-xs);color:#9CA3AF;margin-top:8px}

/* ── MOBILE RESPONSIVE — A++++ Breakpoints ────────── */
@media(max-width:1100px){
  .topbar-domains{gap:var(--space-1)}
  .topbar-domain-pill{padding:3px 6px;min-width:38px}
  .topbar-domain-score{font-size:12px}
}
@media(max-width:900px){
  .topbar-domains{display:none}
  .topbar-divider{display:none}
  .exec-hero-stats{gap:var(--space-1)}
  .exec-hero-stat{min-width:60px;padding:var(--space-1) var(--space-2)}
  .exec-hero-stat-value{font-size:14px}
}
@media(max-width:768px){
  .top-bar{padding:0 var(--space-3);gap:var(--space-2)}
  .topbar-posture-level{font-size:14px}
  .topbar-score-ring{width:36px;height:36px}
  .topbar-score-value{font-size:var(--text-base)}
  .topbar-ops-group{gap:var(--space-2)}
  .exec-hero-main{flex-direction:column;text-align:center}
  .exec-hero-stats{flex-wrap:wrap}
  .exec-hero-stat{min-width:55px;flex:0 0 auto}
  .exec-domains{grid-template-columns:repeat(2,1fr) !important}
  .exec-brief-row{grid-template-columns:1fr !important}
  .exec-intel-row{grid-template-columns:1fr !important}
  .exec-nav-tiles{grid-template-columns:repeat(3,1fr) !important}
  .sidebar-briefing-desc{display:none}
}
@media(max-width:480px){
  .topbar-ops-item:not(:last-child){display:none}
  .exec-hero-stat{min-width:48px;padding:var(--space-1) var(--space-1)}
  .exec-hero-stat-value{font-size:13px}
  .exec-hero-stat-label{font-size:8px}
  .exec-nav-tiles{grid-template-columns:repeat(2,1fr) !important}
}

/* Mobile overlay */
.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:var(--z-sticky);opacity:0;transition:opacity .3s ease}
.mobile-overlay.visible{display:block;opacity:1}

/* ── TOP BAR — A++++ Command Strip ────────────────── */
.top-bar{height:var(--header-height);border-bottom:1px solid rgba(0,168,107,0.08);background:rgba(255,255,255,0.95);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);box-shadow:0 1px 0 rgba(0,168,107,0.05),0 2px 12px rgba(0,0,0,0.04);gap:var(--space-4)}

/* Posture Group */
.topbar-posture-group{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}
.topbar-posture-info{display:flex;flex-direction:column}
.topbar-posture-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.topbar-posture-level{font-size:var(--text-xl);font-weight:800;letter-spacing:.02em;line-height:1.2}
.topbar-score-ring{width:44px;height:44px;border-radius:50%;border:2px solid var(--border-medium);display:flex;align-items:center;justify-content:center;transition:border-color .5s ease,box-shadow .5s ease;position:relative}
.topbar-score-ring::after{content:'';position:absolute;inset:-3px;border-radius:50%;border:1px solid rgba(0,232,143,0.06);pointer-events:none}
.topbar-score-value{font-weight:800;font-size:var(--text-lg);color:var(--primary)}
.topbar-divider{width:1px;height:28px;background:var(--border-subtle);flex-shrink:0}

/* Domain Pills — A++++ Elevated */
.topbar-domains{display:flex;gap:var(--space-2);align-items:center;flex-shrink:0}
.topbar-domain-pill{text-align:center;padding:var(--space-1) var(--space-3);border-radius:8px;transition:all .3s ease;cursor:default;position:relative;overflow:hidden;min-width:46px}
.topbar-domain-pill::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .3s ease;border-radius:8px}
.topbar-domain-pill:hover::before{opacity:1}
.topbar-domain-pill:hover{transform:translateY(-1px)}
.topbar-domain-pill[data-domain="nuclear"]{background:rgba(245,158,11,0.06);border:1px solid rgba(245,158,11,0.18)}
.topbar-domain-pill[data-domain="nuclear"]::before{background:radial-gradient(circle at 50% 120%,rgba(245,158,11,0.12),transparent 70%)}
.topbar-domain-pill[data-domain="nuclear"] .topbar-domain-label{color:var(--cbrn-nuclear)}
.topbar-domain-pill[data-domain="nuclear"] .topbar-domain-score{color:var(--cbrn-nuclear)}
.topbar-domain-pill[data-domain="biological"]{background:rgba(0,168,107,0.06);border:1px solid rgba(0,168,107,0.18)}
.topbar-domain-pill[data-domain="biological"]::before{background:radial-gradient(circle at 50% 120%,rgba(0,232,143,0.12),transparent 70%)}
.topbar-domain-pill[data-domain="biological"] .topbar-domain-label{color:var(--cbrn-bio)}
.topbar-domain-pill[data-domain="biological"] .topbar-domain-score{color:var(--cbrn-bio)}
.topbar-domain-pill[data-domain="chemical"]{background:rgba(168,85,247,0.06);border:1px solid rgba(168,85,247,0.18)}
.topbar-domain-pill[data-domain="chemical"]::before{background:radial-gradient(circle at 50% 120%,rgba(168,85,247,0.12),transparent 70%)}
.topbar-domain-pill[data-domain="chemical"] .topbar-domain-label{color:var(--cbrn-chem)}
.topbar-domain-pill[data-domain="chemical"] .topbar-domain-score{color:var(--cbrn-chem)}
.topbar-domain-pill[data-domain="radiological"]{background:rgba(59,130,246,0.06);border:1px solid rgba(59,130,246,0.18)}
.topbar-domain-pill[data-domain="radiological"]::before{background:radial-gradient(circle at 50% 120%,rgba(59,130,246,0.12),transparent 70%)}
.topbar-domain-pill[data-domain="radiological"] .topbar-domain-label{color:var(--cbrn-rad)}
.topbar-domain-pill[data-domain="radiological"] .topbar-domain-score{color:var(--cbrn-rad)}
.topbar-domain-label{font-size:var(--text-2xs);font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.topbar-domain-score{font-weight:800;font-size:var(--text-base);line-height:1.3;transition:all .4s ease}

/* Ops Group */
.topbar-ops-group{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}
.topbar-ops-item{text-align:right}
.topbar-ops-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.topbar-ops-value-row{display:flex;align-items:center;gap:var(--space-1);justify-content:flex-end}
.topbar-ops-value{font-weight:700;font-size:12px;color:var(--text-primary)}
.topbar-briefing-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:rgba(0,168,107,0.06);border:1px solid rgba(0,168,107,0.15);color:var(--primary-dark);font-size:var(--text-base);font-weight:700;cursor:pointer;transition:all .25s ease}
.topbar-briefing-btn:hover{background:rgba(0,168,107,0.12);border-color:rgba(0,168,107,0.30);box-shadow:0 0 8px rgba(0,168,107,0.08);transform:scale(1.05)}

/* Light theme top bar */

/* ── ALERT TICKER — A++++ Severity-Coded ──────────── */
.ews-ticker{height:var(--ticker-height);background:linear-gradient(90deg,rgba(239,68,68,0.02),rgba(0,168,107,0.01),rgba(239,68,68,0.02));border-bottom:1px solid rgba(0,168,107,0.05);overflow:hidden;display:flex;align-items:center;padding:0 var(--space-6);gap:var(--space-3)}
.ews-ticker-label{font-size:var(--text-sm);font-weight:800;letter-spacing:.1em;color:var(--ews-red-400);text-transform:uppercase;white-space:nowrap;flex-shrink:0;display:flex;align-items:center;gap:var(--space-1)}
.ews-ticker-scroll{flex:1;overflow:hidden;position:relative;height:100%;display:flex;align-items:center}
.ews-ticker-content{display:flex;gap:40px;animation:tickerScroll 60s linear infinite;white-space:nowrap}
.ews-ticker-content span{font-size:var(--text-base);color:var(--text-muted);font-weight:500;transition:color .3s ease}
.ews-ticker-content .ticker-critical{color:var(--ews-red-400);font-weight:700;text-shadow:0 0 8px rgba(239,68,68,0.2)}
.ews-ticker-content .ticker-high{color:var(--ews-amber-400);font-weight:600;text-shadow:0 0 6px rgba(245,158,11,0.15)}
.ews-ticker-content .ticker-elevated{color:var(--ews-cyan-400);font-weight:500}
.ews-ticker-count{font-size:var(--text-sm);font-weight:800;color:var(--text-muted);background:rgba(239,68,68,0.06);border:1px solid rgba(239,68,68,0.12);padding:1px 8px;border-radius:10px;flex-shrink:0;min-width:28px;text-align:center;transition:all .3s ease}
.ews-ticker-count.has-incidents{color:var(--ews-red-400);background:rgba(239,68,68,0.1);border-color:rgba(239,68,68,0.25);animation:tickerCountPulse 3s ease-in-out infinite}
@keyframes tickerCountPulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 8px rgba(239,68,68,0.15)}}
@keyframes tickerScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ── CARDS — Premium Glass-morphism v11.4 ─────────────────── */
.card{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,168,107,0.10);border-radius:18px;transition:all .4s cubic-bezier(0.22,1,0.36,1);position:relative;overflow:hidden;box-shadow:var(--shadow-xs)}
.card:hover{border-color:rgba(0,168,107,0.20);box-shadow:var(--shadow-md)}
.card-header{padding:14px 18px;border-bottom:1px solid rgba(0,168,107,0.06);display:flex;align-items:center;justify-content:space-between}
.card-body{padding:18px}

/* ── KPI ACCENT CARDS — Premium v11.4 ────── */
.kpi-card{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,168,107,0.10);border-radius:18px;transition:all .4s cubic-bezier(0.22,1,0.36,1);position:relative;overflow:hidden;box-shadow:var(--shadow-xs)}
.kpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:18px 18px 0 0;background:rgba(0,168,107,0.15);transition:all .4s ease}
.kpi-card::after{content:'';position:absolute;top:-30px;right:-30px;width:120px;height:120px;background:radial-gradient(circle,rgba(0,168,107,0.03),transparent 70%);pointer-events:none;opacity:0;transition:opacity .4s ease}
.kpi-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(0,168,107,0.20);background:var(--bg-card-hover)}
.kpi-card:hover::after{opacity:1}
.kpi-card.accent-green::before{background:linear-gradient(90deg,#00A86B,#00c77b)}
.kpi-card.accent-green:hover{border-color:rgba(0,168,107,0.25);box-shadow:0 8px 24px rgba(0,168,107,0.08)}
.kpi-card.accent-red::before{background:linear-gradient(90deg,#ef4444,#f87171)}
.kpi-card.accent-red:hover{border-color:rgba(239,68,68,0.25);box-shadow:0 12px 40px rgba(239,68,68,0.08)}
.kpi-card.accent-blue::before{background:linear-gradient(90deg,#3b82f6,#60a5fa)}
.kpi-card.accent-blue:hover{border-color:rgba(59,130,246,0.25);box-shadow:0 12px 40px rgba(59,130,246,0.08)}
.kpi-card.accent-amber::before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.kpi-card.accent-amber:hover{border-color:rgba(245,158,11,0.25);box-shadow:0 12px 40px rgba(245,158,11,0.08)}
.kpi-card.accent-purple::before{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}
.kpi-card.accent-purple:hover{border-color:rgba(139,92,246,0.25);box-shadow:0 12px 40px rgba(139,92,246,0.08)}

/* ── PANEL CARD — Premium v11.4 ──────────── */
.panel-card{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,168,107,0.10);border-radius:18px;transition:all .4s cubic-bezier(0.22,1,0.36,1);box-shadow:var(--shadow-xs)}
.panel-card:hover{border-color:rgba(0,168,107,0.18)}

/* ── BANNER CARD — Premium v11.4 ── */
.banner-card{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,168,107,0.10);border-radius:18px;border-left:4px solid #00A86B;transition:all .4s ease;padding:18px;box-shadow:var(--shadow-xs);position:relative;overflow:hidden}
.banner-card::after{content:'';position:absolute;top:0;left:0;width:80px;height:100%;background:linear-gradient(90deg,rgba(0,168,107,0.02),transparent);pointer-events:none}
.banner-card:hover{border-color:rgba(0,168,107,0.18);border-left-color:#00A86B;box-shadow:var(--shadow-md)}
.banner-card.accent-red{border-left-color:#ef4444}
.banner-card.accent-amber{border-left-color:#f59e0b}
.banner-card.accent-blue{border-left-color:#3b82f6}
.banner-card.accent-purple{border-left-color:#a855f7}

/* ── ALERT BANNER — Premium v11.4 ─── */
.alert-banner{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,168,107,0.08);border-radius:18px;transition:all .4s ease;padding:16px;box-shadow:var(--shadow-xs)}
.alert-banner.alert-critical{border-color:rgba(239,68,68,0.25);background:rgba(239,68,68,0.06)}
.alert-banner.alert-warning{border-color:rgba(245,158,11,0.25);background:rgba(245,158,11,0.06)}

/* ── GLASS UTILITY — Premium v11.4 ───────────── */
.glass{background:rgba(255,255,255,0.65);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);border:1px solid rgba(0,168,107,0.08)}

/* ── EWS SECTION HEADERS — Premium v11.4 ──────────────────────── */
h3.text-sm.font-semibold{color:#6B7280;font-size:13px;letter-spacing:.08em;font-weight:700}

/* ── EXEC HERO STATS — A++++ Mini-Card System ─────── */
.exec-hero-stats{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center;margin-top:var(--space-4)}
.exec-hero-stat{background:rgba(0,168,107,0.04);border:1px solid rgba(0,168,107,0.10);border-radius:12px;padding:var(--space-2) var(--space-4);text-align:center;transition:all .3s ease;position:relative;overflow:hidden;min-width:72px;flex:1;max-width:120px}
.exec-hero-stat::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(0,168,107,0.15),transparent);opacity:0;transition:opacity .3s ease}
.exec-hero-stat:hover{background:rgba(0,168,107,0.06);border-color:rgba(0,168,107,0.18);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,168,107,0.04)}
.exec-hero-stat:hover::before{opacity:1}
.exec-hero-stat-value{font-size:var(--text-xl);font-weight:800;color:var(--primary);line-height:1.2;transition:all .4s ease}
.exec-hero-stat-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-top:2px}

/* ── STAT CARDS — Premium Glass v11.4 ─────────────────── */
.stat-card{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,168,107,0.10);border-radius:18px;padding:20px;transition:all .4s cubic-bezier(0.22,1,0.36,1);position:relative;overflow:hidden;border-left:3px solid #00A86B;box-shadow:var(--shadow-xs)}
.stat-card::after{content:'';position:absolute;top:-20px;right:-20px;width:140px;height:140px;background:radial-gradient(circle,rgba(0,168,107,0.03),transparent 70%);pointer-events:none;transition:opacity .4s ease;opacity:0.5}
.stat-card:hover{border-color:rgba(0,168,107,0.20);transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.stat-card:hover::after{opacity:1}
.stat-number{font-size:30px;font-weight:900;letter-spacing:-0.04em;font-variant-numeric:tabular-nums;line-height:1;color:#00A86B}
.stat-label{font-size:11px;color:#9CA3AF;font-weight:700;margin-top:5px;text-transform:uppercase;letter-spacing:.06em}

/* ── BADGES ────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:5px;font-size:12px;font-weight:700;letter-spacing:.02em}
.badge-green{background:rgba(0,168,107,0.1);color:#00A86B}
.badge-amber{background:rgba(245,158,11,0.1);color:#d97706}
.badge-red{background:rgba(239,68,68,0.1);color:#dc2626}
.badge-blue{background:rgba(59,130,246,0.1);color:#2563eb}
.badge-purple{background:rgba(168,85,247,0.1);color:#7c3aed}
.badge-gray{background:rgba(107,114,128,0.1);color:#6B7280}

/* ── PROGRESS BARS ─────────────────────────────── */
.progress-bar{height:4px;background:rgba(0,168,107,0.06);border-radius:3px;overflow:hidden}
.progress-fill{height:100%;border-radius:3px;transition:width 1.4s cubic-bezier(0.22,1,0.36,1)}
.progress-fill-green{background:linear-gradient(90deg,#00e88f,#00e88f)}
.progress-fill-amber{background:linear-gradient(90deg,#fbbf24,#f59e0b)}
.progress-fill-red{background:linear-gradient(90deg,#f87171,#ef4444)}
.ring-indicator{width:7px;height:7px;border-radius:50%;display:inline-block}

/* ── BUTTONS ───────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;border:1px solid transparent}
.btn-primary{background:linear-gradient(135deg,#00A86B,#008050);color:#fff;border-color:rgba(0,168,107,0.35);box-shadow:0 2px 8px rgba(0,168,107,0.15)}
.btn-primary:hover{box-shadow:0 4px 16px rgba(0,168,107,0.25);filter:brightness(1.05)}
.btn-outline{background:rgba(0,168,107,0.03);color:#4B5563;border-color:rgba(0,168,107,0.15)}
.btn-outline:hover{border-color:#00A86B;color:#00A86B;background:rgba(0,168,107,0.06)}
.btn-sm{padding:4px 10px;font-size:13px}

/* ── FORM ELEMENTS ─────────────────────────────── */
select,input,textarea{background:#fff;border:1.5px solid rgba(0,168,107,0.15);color:#1a1a2e;border-radius:8px;font-family:'Inter',sans-serif;font-size:13px}
select:focus,input:focus,textarea:focus{border-color:#00A86B;outline:none;box-shadow:0 0 0 3px rgba(0,168,107,0.08);background:#fff}
select option{background:#fff}

/* ── TABLE ─────────────────────────────────────── */
table{border-collapse:collapse;width:100%}
table thead tr{border-color:rgba(0,168,107,0.08)}
table th{color:#6B7280;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
table td{color:#1a1a2e;border-color:rgba(0,168,107,0.06);font-size:13px}

/* ── TAB HEADERS — A++++ Unified Component ────────── */
.tab-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) 0;margin-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle)}
.tab-header-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xl);font-weight:800;color:var(--text-primary);text-transform:uppercase;letter-spacing:.03em}
.tab-header-title i{color:var(--primary);opacity:0.8;font-size:var(--text-lg)}
.tab-header-desc{font-size:var(--text-base);color:var(--text-muted);font-weight:400;margin-top:var(--space-1)}
.tab-header-actions{display:flex;align-items:center;gap:var(--space-2)}

/* Back Navigation — A++++ Consistent */
.back-nav{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) 0;font-size:var(--text-base)}
.back-nav-btn{display:inline-flex;align-items:center;gap:var(--space-1);background:rgba(0,168,107,0.04);border:1px solid rgba(0,168,107,0.12);border-radius:8px;color:var(--text-secondary);font-size:var(--text-base);font-weight:600;padding:var(--space-1) var(--space-3);cursor:pointer;transition:all .2s ease}
.back-nav-btn:hover{background:rgba(0,168,107,0.08);border-color:rgba(0,168,107,0.20);color:var(--primary-dark)}
.back-nav-btn i{font-size:11px}
.back-nav-sep{color:var(--text-dim);margin:0 var(--space-1)}
.back-nav-current{color:var(--text-primary);font-weight:700}

/* Overview threats section spacing */
.overview-threats-section{margin-top:var(--space-4)}

/* ── TAB SYSTEM ────────────────────────────────── */
.tab-content{display:none}
.tab-content.active-tab{display:block;animation:fadeIn .4s ease}
.tab-content.hidden{display:none}

/* ── CARD HOVER — A++++ Unified Lift + Glow ───────── */
.card:hover,.kpi-card:hover,.panel-card:hover,.exec-intel-card:hover,.exec-brief-card:hover,.exec-action-card:hover,.exec-domain-card:hover,.ta-domain-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:rgba(0,168,107,0.18)}
.exec-nav-tile{transition:all .3s cubic-bezier(.22,1,.36,1)}
.exec-nav-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgba(0,168,107,0.20)}

/* ── MAP PULSE ANIMATIONS ──────────────────────── */
@keyframes mapPulse{0%{opacity:1;box-shadow:0 0 0 0 rgba(239,68,68,0.4)}70%{opacity:.8;box-shadow:0 0 0 10px rgba(239,68,68,0)}100%{opacity:1;box-shadow:0 0 0 0 rgba(239,68,68,0)}}
.map-pulse-critical{animation:mapPulse 2s ease-in-out infinite}
.map-pulse-high{animation:mapPulse 3s ease-in-out infinite}

/* ── LOADING & EMPTY STATES — A++++ Unified ───────── */
.cbrn-skeleton{background:linear-gradient(90deg,rgba(0,168,107,0.03) 25%,rgba(0,168,107,0.08) 50%,rgba(0,168,107,0.03) 75%);background-size:200% 100%;animation:skeletonShimmer 1.8s ease-in-out infinite;border-radius:8px;min-height:16px}
@keyframes skeletonShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.cbrn-loading-pulse{animation:cbrnLoadPulse 1.5s ease-in-out infinite;opacity:0.6}
@keyframes cbrnLoadPulse{0%,100%{opacity:0.6;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}
.cbrn-loading-mini{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);color:var(--text-muted);padding:var(--space-3)}
.cbrn-loading-mini i{color:var(--primary);opacity:0.6}
.exec-empty-state{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);color:var(--text-muted);padding:var(--space-5);justify-content:center;font-style:italic}
.exec-empty-state i{color:var(--primary);opacity:0.5;font-size:var(--text-lg)}
.ticker-loading{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-base)}
.ticker-loading i{color:var(--primary)}

/* Score value transition animation */
.score-updated{animation:scoreFlash .6s ease}
@keyframes scoreFlash{0%{opacity:1}30%{opacity:0.4;transform:scale(0.95)}100%{opacity:1;transform:scale(1)}}

/* ── ANIMATIONS ────────────────────────────────── */

/* ── MICRO-ANIMATIONS — A++++ Score & Data Transitions ── */
.data-transition{transition:all .4s cubic-bezier(.22,1,.36,1)}
.score-ring-pulse{animation:scoreRingPulse .8s ease}
@keyframes scoreRingPulse{0%{box-shadow:0 0 0 0 rgba(0,232,143,0.3)}70%{box-shadow:0 0 0 8px rgba(0,232,143,0)}100%{box-shadow:0 0 0 0 rgba(0,232,143,0)}}
.value-bump{animation:valueBump .5s cubic-bezier(.22,1,.36,1)}
@keyframes valueBump{0%{transform:scale(1)}40%{transform:scale(1.08)}100%{transform:scale(1)}}
.fade-slide-in{animation:fadeSlideIn .5s cubic-bezier(.22,1,.36,1)}
@keyframes fadeSlideIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* Gradient text — refined */
.gradient-text{background:linear-gradient(135deg,var(--primary),var(--primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

.fade-in{animation:fadeIn .5s cubic-bezier(0.22,1,0.36,1)}
@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.pulse{animation:ewsPulse 2s ease-in-out infinite}
@keyframes ewsPulse{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes scanLine{0%{transform:translateY(-100%)}100%{transform:translateY(100vh)}}

/* EWS Threat Pulse — for critical/high cards */
.ews-pulse-critical{animation:ewsThreatPulse 3s ease-in-out infinite;border-color:rgba(239,68,68,0.3)}
@keyframes ewsThreatPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}50%{box-shadow:0 0 20px 2px rgba(239,68,68,0.1)}}
.ews-pulse-high{animation:ewsThreatHigh 4s ease-in-out infinite;border-color:rgba(245,158,11,0.3)}
@keyframes ewsThreatHigh{0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,0)}50%{box-shadow:0 0 16px 2px rgba(245,158,11,0.08)}}

/* Blinking alert dot */
.ews-blink{animation:ewsBlink 1.5s ease-in-out infinite}
@keyframes ewsBlink{0%,100%{opacity:1}50%{opacity:0.2}}

/* Glow for critical items */
.glow-critical{box-shadow:0 0 15px rgba(239,68,68,.12)}

/* ── THREAT ASSESSMENT — Premium v11.4 ─────── */
.ta-banner{background:var(--bg-card);backdrop-filter:blur(28px) saturate(1.5);-webkit-backdrop-filter:blur(28px) saturate(1.5);border:1px solid rgba(0,232,143,0.08);border-radius:22px;padding:0;overflow:hidden;position:relative;transition:all .4s cubic-bezier(.22,1,.36,1);box-shadow:var(--shadow-sm)}
.ta-banner:hover{border-color:rgba(0,232,143,0.25);box-shadow:var(--shadow-lg)}
.ta-banner-accent{position:absolute;top:0;left:0;width:5px;height:100%;border-radius:20px 0 0 20px;transition:background .5s ease}
.ta-banner-glow{position:absolute;top:-50%;right:-20%;width:300px;height:300px;border-radius:50%;opacity:0.06;pointer-events:none;transition:all 1s ease}
.ta-banner-inner{display:flex;align-items:center;gap:20px;padding:20px 24px;position:relative;z-index:2}
.ta-banner-ring{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;border:3px solid currentColor;transition:all .5s ease}
.ta-banner-ring-score{font-size:24px;font-weight:900;letter-spacing:-.02em}
.ta-banner-ring::after{content:'';position:absolute;inset:-6px;border-radius:50%;border:2px solid currentColor;opacity:0.15;animation:taRingPulse 3s ease-in-out infinite}
@keyframes taRingPulse{0%,100%{transform:scale(1);opacity:0.15}50%{transform:scale(1.08);opacity:0.08}}
.ta-banner-info{flex:1;min-width:0}
.ta-banner-level{font-size:22px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;line-height:1.1}
.ta-banner-desc{font-size:13.5px;color:#6B7280;line-height:1.5;margin-top:4px;max-width:600px}
.ta-banner-meta{display:flex;gap:16px;margin-top:8px;flex-wrap:wrap}
.ta-banner-meta-item{display:flex;align-items:center;gap:5px;font-size:12px;color:#9CA3AF;font-weight:600}
.ta-banner-meta-item i{font-size:11px;opacity:0.7}

/* CBRN Domain Strip */
.ta-domains{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
@media(max-width:768px){.ta-domains{grid-template-columns:repeat(2,1fr)}}
.ta-domain-card{background:var(--bg-card);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid rgba(0,232,143,0.06);border-radius:18px;padding:20px;position:relative;overflow:hidden;transition:all .4s cubic-bezier(.22,1,.36,1);cursor:default;box-shadow:var(--shadow-xs)}
.ta-domain-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.ta-domain-card::after{content:'';position:absolute;top:0;right:0;width:100px;height:100px;background:radial-gradient(circle,rgba(0,232,143,0.03),transparent 70%);pointer-events:none;opacity:0;transition:opacity .3s ease}
.ta-domain-card:hover::after{opacity:1}
.ta-domain-card-accent{position:absolute;top:0;left:0;width:4px;height:100%;border-radius:16px 0 0 16px}
.ta-domain-card-glow{position:absolute;top:-30px;right:-30px;width:100px;height:100px;border-radius:50%;opacity:0.06;pointer-events:none}
.ta-domain-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ta-domain-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.ta-domain-name{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.1}
.ta-domain-level{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:0.7;margin-top:1px}
.ta-domain-score{margin-left:auto;font-size:28px;font-weight:900;letter-spacing:-.03em;line-height:1}
.ta-domain-bar{height:4px;border-radius:2px;background:rgba(0,168,107,0.08);margin:8px 0;overflow:hidden}
.ta-domain-bar-fill{height:100%;border-radius:2px;transition:width 1.2s cubic-bezier(.22,1,.36,1)}
.ta-domain-detail{font-size:12px;color:#6B7280;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ta-domain-signals{display:flex;align-items:center;gap:5px;margin-top:6px;font-size:11.5px;color:#9CA3AF;font-weight:600}
.ta-domain-signals i{font-size:10px;opacity:0.6}

/* Active Threats List */
.ta-threats-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.ta-threats-count{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:800;letter-spacing:.04em}

/* Signal Sources Breakdown */
.ta-ring-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(0,168,107,0.06)}
.ta-ring-row:last-child{border-bottom:none}
.ta-ring-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.ta-ring-info{flex:1;min-width:0}
.ta-ring-label{font-size:13px;font-weight:700;color:#374151}
.ta-ring-desc{font-size:11px;color:#9CA3AF}
.ta-ring-bar{height:6px;border-radius:3px;background:rgba(0,168,107,0.08);flex:1;min-width:60px;max-width:140px;overflow:hidden}
.ta-ring-bar-fill{height:100%;border-radius:3px;transition:width 1s ease}
.ta-ring-count{font-size:13px;font-weight:800;min-width:28px;text-align:right}
.ta-ring-sources{display:flex;gap:3px;flex-shrink:0}
.ta-ring-src-logo{width:18px;height:18px;border-radius:4px;object-fit:contain;background:rgba(0,168,107,0.04);border:1px solid rgba(0,168,107,0.10);padding:1px}

/* Gradient text */
.gradient-text{background:linear-gradient(135deg,#00e88f,#34ffa8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* Skeleton loader — BioR Dark shimmer */
.skeleton{background:linear-gradient(90deg,rgba(0,232,143,0.02) 25%,rgba(0,232,143,0.05) 50%,rgba(0,232,143,0.02) 75%);background-size:200% 100%;animation:skeletonPulse 1.5s ease-in-out infinite;border-radius:10px}

/* ── GREEN AMBIENT GLOW ON ACTIVE ELEMENTS ─── */
.sidebar-brand-logo{box-shadow:0 0 30px rgba(0,232,143,0.35),0 0 60px rgba(0,232,143,0.1),inset 0 1px 0 rgba(255,255,255,0.20)}
@keyframes skeletonPulse{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ── LEAFLET OVERRIDES ─────────────────────────── */
.leaflet-container{background:#e8f0ec !important}
.leaflet-popup-content-wrapper{background:rgba(255,255,255,0.97) !important;backdrop-filter:blur(12px) !important;-webkit-backdrop-filter:blur(12px) !important;color:#1a1a2e !important;border:1px solid rgba(0,168,107,0.12) !important;border-radius:14px !important;box-shadow:0 8px 30px rgba(0,0,0,0.1) !important;padding:0 !important;font-family:'Inter',system-ui,sans-serif !important}
.leaflet-popup-content{margin:14px 16px !important;font-size:13px !important;line-height:1.5 !important}
.leaflet-popup-tip{background:rgba(255,255,255,0.97) !important;border:1px solid rgba(0,168,107,0.10) !important;box-shadow:none !important}
.leaflet-popup-close-button{color:#9CA3AF !important;font-size:18px !important;padding:6px 8px !important;right:4px !important;top:4px !important}
.leaflet-popup-close-button:hover{color:#00e88f !important}
.leaflet-control-zoom{border:none !important;border-radius:10px !important;overflow:hidden !important;box-shadow:0 4px 16px rgba(0,0,0,0.08) !important}
.leaflet-control-zoom a{background:rgba(255,255,255,0.95) !important;backdrop-filter:blur(12px) !important;color:#1a1a2e !important;border-color:rgba(0,168,107,0.1) !important;width:36px !important;height:36px !important;line-height:36px !important;font-size:16px !important;transition:all .2s ease !important}
.leaflet-control-zoom a:hover{background:rgba(0,232,143,0.15) !important;border-color:rgba(0,232,143,0.3) !important;color:#00e88f !important}
.leaflet-control-layers{background:rgba(255,255,255,0.97) !important;backdrop-filter:blur(12px) !important;border:1px solid rgba(0,168,107,0.12) !important;color:#374151 !important;border-radius:12px !important;box-shadow:0 4px 16px rgba(0,0,0,0.3) !important}

/* ── GEOLAYER PANEL ────────────────────────────── */
#geolayer-panel{background:rgba(255,255,255,0.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,168,107,0.12);border-radius:16px;box-shadow:0 4px 16px rgba(0,0,0,0.3)}
#geolayer-panel button{background:rgba(0,168,107,0.04);color:#4B5563;border-radius:8px}
#geolayer-panel button:hover{background:rgba(0,168,107,0.12);color:#00A86B}

/* ── CBRN TEXT COLORS ──────────────────────────── */
.text-yellow-400{color:var(--cbrn-nuclear)}
.text-green-400{color:var(--cbrn-bio)}
.text-purple-400{color:var(--cbrn-chem)}
.text-blue-400{color:var(--cbrn-rad)}
.text-red-400{color:var(--ews-red-400)}
.text-orange-400{color:#fb923c}
.text-orange-500{color:#f97316}
.text-cyan-400,.text-emerald-400,.text-emerald-600{color:#00A86B}
.text-amber-400{color:var(--ews-amber-400)}
.text-indigo-400{color:#818cf8}
.text-violet-400{color:#c084fc}
.text-rose-400{color:#fb7185}

/* ── ICON BG WRAPPERS ──────────────────────────── */
.bg-yellow-500\/20{background:var(--cbrn-nuclear-bg)}
.bg-green-500\/20{background:var(--cbrn-bio-bg)}
.bg-purple-500\/20{background:var(--cbrn-chem-bg)}
.bg-blue-500\/20{background:var(--cbrn-rad-bg)}
.bg-red-500\/20{background:rgba(239,68,68,0.08)}
.bg-orange-500\/20{background:rgba(249,115,22,0.08)}
.bg-cyan-500\/20,.bg-emerald-500\/20{background:rgba(0,168,107,0.08)}
.bg-violet-500\/20,.bg-rose-500\/20,.bg-sky-500\/20{background:rgba(139,92,246,0.08)}

/* Threat filter buttons */
.bg-yellow-500\/30:hover{background:rgba(245,158,11,0.15)}
.bg-green-500\/30:hover{background:rgba(0,168,107,0.15)}
.bg-purple-500\/30:hover{background:rgba(168,85,247,0.15)}
.bg-red-500\/5{background:rgba(239,68,68,0.05)}
.bg-amber-500\/10{background:rgba(245,158,11,0.06)}

/* ── OPERATIONAL STATUS INDICATORS ─────────────── */
.ews-status-dot{width:6px;height:6px;border-radius:50%;display:inline-block}
.ews-status-dot.online{background:#00e88f;box-shadow:0 0 8px rgba(0,232,143,0.6),0 0 16px rgba(0,232,143,0.2)}
.ews-status-dot.degraded{background:#f59e0b;box-shadow:0 0 6px rgba(245,158,11,0.5)}
.ews-status-dot.offline{background:#ef4444;box-shadow:0 0 6px rgba(239,68,68,0.5)}

/* ── CLASSIFICATION BANNER + TLP MARKINGS ──────── */
.ews-classification{background:rgba(0,232,143,0.08);border:1px solid rgba(0,232,143,0.2);text-align:center;padding:4px 6px;font-size:11px;font-weight:800;letter-spacing:.15em;color:#00e88f;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}
/* TLP (Traffic Light Protocol) marking badges */
.tlp-white{background:#fff;color:#000;border:1px solid #ccc;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;cursor:help}
.tlp-green{background:#33cc00;color:#fff;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;cursor:help}
.tlp-amber{background:#ffc000;color:#000;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;cursor:help}
.tlp-red{background:#cc0000;color:#fff;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;cursor:help}

/* ── MOBILE ────────────────────────────────────── */
.mobile-menu-btn{display:none}
@media(max-width:1024px){
  .sidebar{transform:translateX(-100%);width:var(--sidebar-width) !important}
  .sidebar.open{transform:translateX(0);box-shadow:4px 0 30px rgba(0,0,0,0.12)}
  body.sidebar-collapsed .sidebar{transform:translateX(-100%);width:var(--sidebar-width) !important}
  body.sidebar-collapsed .sidebar.open{transform:translateX(0)}
  .content-area{margin-left:0 !important}
  body.sidebar-collapsed .content-area{margin-left:0 !important}
  .mobile-menu-btn{display:flex}
  .sidebar-collapse-btn{display:none}
  /* On mobile, always show full sidebar when opened */
  body.sidebar-collapsed .sidebar.open .sidebar-brand-text{opacity:1;width:auto}
  body.sidebar-collapsed .sidebar.open .sidebar-brand-status{opacity:1;max-height:100px}
  body.sidebar-collapsed .sidebar.open .sidebar-item-label{opacity:1;width:auto;position:static}
  body.sidebar-collapsed .sidebar.open .sidebar-badge{opacity:1;width:auto;padding:1px 6px;margin-left:auto}
  body.sidebar-collapsed .sidebar.open .sidebar-footer{opacity:1;padding:12px 16px;max-height:200px;border-top:1px solid rgba(0,168,107,0.10)}
  body.sidebar-collapsed .sidebar.open .sidebar-section-label{font-size:11px;text-align:left;padding:14px 10px 4px;letter-spacing:.1em;opacity:1}
  body.sidebar-collapsed .sidebar.open .sidebar-item{justify-content:flex-start;gap:10px;padding:7px 10px;border-left:3px solid transparent}
  body.sidebar-collapsed .sidebar.open .sidebar-item i{font-size:13px;width:16px}
}
@media(max-width:768px){.page-content{padding:12px}.top-bar{padding:0 12px}.stat-number{font-size:20px}.ews-ticker{display:none}}

/* ── TAILWIND UTILITY OVERRIDES for EWS ────────── */
.text-gray-500{color:#6B7280}
.text-gray-600{color:#4B5563}
.text-gray-700{color:#374151}
.text-gray-800{color:#1F2937}
.bg-gray-50{background:#F9FAFB}
.bg-gray-100{background:#F3F4F6}
.bg-white{background:#ffffff}
.bg-emerald-600{background:linear-gradient(135deg,#00A86B,#008F5B)}
.hover\:bg-emerald-700:hover{background:#006241}
.hover\:bg-gray-200:hover{background:rgba(0,232,143,0.08)}
.hover\:bg-gray-50:hover{background:rgba(0,232,143,0.04)}
.border-gray-200{border-color:rgba(0,232,143,0.08)}
.border-gray-100{border-color:rgba(0,232,143,0.05)}

/* ── IRAN MAP BUTTONS ─────────────────────── */
.iran-bl-btn{background:rgba(0,168,107,0.03);color:#4B5563;border:1px solid rgba(0,232,143,0.12);cursor:pointer;transition:all .15s ease;font-family:'Inter',sans-serif;font-weight:500}
.iran-bl-btn:hover{border-color:rgba(0,232,143,0.35);color:#1F2937;background:rgba(0,232,143,0.08)}
.iran-bl-btn.active{background:linear-gradient(135deg,#00e88f,#00A86B);color:#fff;border-color:rgba(0,232,143,0.5);box-shadow:0 0 12px rgba(0,232,143,0.25)}

/* ── IRAN CRITICAL LIST ITEMS ─────────────────── */
.iran-crit-item{background:rgba(0,232,143,0.04);backdrop-filter:blur(8px);border:1px solid rgba(0,232,143,0.12);cursor:pointer;transition:all .15s ease;border-radius:10px}
.iran-crit-item:hover{background:rgba(0,232,143,0.08);box-shadow:0 2px 10px rgba(0,232,143,0.1)}
.iran-site-item{cursor:pointer;transition:all .15s ease;border:1px solid transparent;border-radius:8px}
.iran-site-item:hover{background:rgba(0,232,143,0.04);border-color:rgba(0,232,143,0.12)}

/* Page content — Premium v11.4 */
.page-content{padding:24px 28px;max-width:1480px}

/* ── INTEL CARD SYSTEM — Premium Glass v11.4 ──── */
.intel-card{
  background:var(--bg-card);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);
  border:1px solid rgba(0,232,143,0.06);border-radius:16px;padding:0;
  transition:all .4s cubic-bezier(0.22,1,0.36,1);position:relative;overflow:hidden;
  box-shadow:var(--shadow-xs)
}
.intel-card::after{content:'';position:absolute;top:0;right:0;width:120px;height:120px;background:radial-gradient(circle,rgba(0,232,143,0.025),transparent 70%);pointer-events:none;opacity:0;transition:opacity .4s ease}
.intel-card:hover{
  border-color:rgba(0,232,143,0.24);
  box-shadow:var(--shadow-md);
  transform:translateY(-3px)
}
.intel-card:hover::after{opacity:1}
/* Left accent strip */
.intel-card .ic-accent{position:absolute;top:0;left:0;width:3px;height:100%;border-radius:16px 0 0 16px}

/* Source banner — top strip */
.intel-card .ic-source-bar{
  display:flex;align-items:center;gap:8px;padding:10px 14px 8px 14px;
  border-bottom:1px solid rgba(0,168,107,0.06);background:rgba(0,168,107,0.02)
}
.intel-card .ic-source-logo{
  width:32px;height:32px;border-radius:8px;flex-shrink:0;object-fit:contain;
  box-shadow:0 1px 4px rgba(0,0,0,0.06);background:rgba(0,168,107,0.04);padding:3px
}
.intel-card .ic-source-initials{
  width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:13px;font-weight:800;letter-spacing:-.02em;color:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,0.1)
}
.intel-card .ic-source-info{flex:1;min-width:0}
.intel-card .ic-source-name{font-size:13px;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.04em;line-height:1.2}
.intel-card .ic-signal-origin{font-size:10.5px;color:#9CA3AF;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:1px}
.intel-card .ic-signal-origin .ic-ring-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.intel-card .ic-time{font-size:11px;color:#9CA3AF;font-weight:500;font-family:'JetBrains Mono',monospace;display:flex;align-items:center;gap:3px}
.intel-card .ic-badges{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto;align-items:center}
/* Domain classifier tag */
.intel-card .ic-domain{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:5px;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}

/* Severity dot indicator */
.intel-card .ic-sev-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.intel-card .ic-sev-dot.sev-critical{background:#ef4444;box-shadow:0 0 6px rgba(239,68,68,0.5);animation:ewsBlink 1.5s ease-in-out infinite}
.intel-card .ic-sev-dot.sev-high{background:#f59e0b;box-shadow:0 0 6px rgba(245,158,11,0.4)}
.intel-card .ic-sev-dot.sev-elevated{background:#f97316;box-shadow:0 0 4px rgba(249,115,22,0.3)}
.intel-card .ic-sev-dot.sev-moderate{background:#00A86B}

/* Body */
.intel-card .ic-body{padding:12px 14px 10px 14px}
.intel-card .ic-title{font-size:13.5px;font-weight:700;color:#1F2937;line-height:1.5;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;letter-spacing:-0.01em}
.intel-card .ic-desc{font-size:13px;color:#6B7280;line-height:1.6;margin-bottom:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* Confidence / progress bar */
.intel-card .ic-conf-bar{height:3px;background:rgba(0,168,107,0.08);border-radius:2px;margin:8px 0 4px;overflow:hidden}
.intel-card .ic-conf-fill{height:100%;border-radius:2px;transition:width 1s cubic-bezier(0.22,1,0.36,1)}

/* Footer — metas + link */
.intel-card .ic-footer{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:6px 12px 8px;border-top:1px solid rgba(0,168,107,0.06)
}
.intel-card .ic-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.02em;backdrop-filter:blur(4px)}
.intel-card .ic-meta{font-size:11px;color:#6B7280;font-family:'JetBrains Mono',monospace;display:flex;align-items:center;gap:3px}
.intel-card .ic-meta i{font-size:10px;color:#9CA3AF}
.intel-card .ic-geo{font-size:11px;color:#00A86B;font-weight:600;display:flex;align-items:center;gap:3px}
.intel-card .ic-geo i{font-size:10px}
.intel-card .ic-link{
  display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;
  color:#fff;margin-left:auto;padding:5px 12px;border-radius:6px;
  background:linear-gradient(135deg,#00e88f,#00A86B);border:1px solid rgba(0,232,143,0.4);
  opacity:1;transition:all .25s ease;letter-spacing:.02em;
  text-transform:uppercase;box-shadow:0 2px 8px rgba(0,232,143,0.25);cursor:pointer;
  white-space:nowrap;text-decoration:none
}
.intel-card:hover .ic-link{opacity:1}
.intel-card .ic-link:hover{background:linear-gradient(135deg,#00A86B,#006241);box-shadow:0 3px 12px rgba(0,232,143,0.4);transform:translateY(-1px)}
.intel-card .ic-link i{font-size:12px}

/* ═══ UNIVERSAL SOURCE REFERENCE BUTTON ═══ */
/* Used on ALL cards: news, alerts, predictions, atlas, Iran, intel, etc. */
.source-ref-btn{
  display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;
  color:#fff;padding:5px 12px;border-radius:8px;cursor:pointer;
  background:linear-gradient(135deg,#3b82f6,#2563eb);border:1px solid rgba(59,130,246,0.3);
  text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;
  box-shadow:0 2px 8px rgba(59,130,246,0.2);transition:all .25s cubic-bezier(0.22,1,0.36,1);
  text-decoration:none;line-height:1.2
}
.source-ref-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 16px rgba(59,130,246,0.35);transform:translateY(-1px)}
.source-ref-btn i{font-size:11px}
.source-ref-btn.ref-green{background:linear-gradient(135deg,#00e88f,#00A86B);border-color:rgba(0,232,143,0.4);box-shadow:0 2px 8px rgba(0,232,143,0.3)}
.source-ref-btn.ref-green:hover{background:linear-gradient(135deg,#00A86B,#006241);box-shadow:0 3px 12px rgba(0,232,143,0.45)}
.source-ref-btn.ref-amber{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:rgba(245,158,11,0.4);box-shadow:0 2px 6px rgba(245,158,11,0.25)}
.source-ref-btn.ref-amber:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 3px 10px rgba(245,158,11,0.4)}
.source-ref-btn.ref-red{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:rgba(239,68,68,0.4);box-shadow:0 2px 6px rgba(239,68,68,0.25)}
.source-ref-btn.ref-red:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 3px 10px rgba(239,68,68,0.4)}
.source-ref-btn.ref-purple{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:rgba(139,92,246,0.4);box-shadow:0 2px 6px rgba(139,92,246,0.25)}
.source-ref-btn.ref-purple:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 3px 10px rgba(139,92,246,0.4)}

/* Source button row — always visible at card bottom */
.ic-source-row{
  display:flex;align-items:center;gap:6px;padding:6px 12px 8px;
  border-top:1px solid rgba(0,168,107,0.06);margin-top:auto;flex-wrap:wrap
}
.ic-source-row .source-label{font-size:11px;color:#9CA3AF;text-transform:uppercase;letter-spacing:.04em;font-weight:600}

/* Non-intel-card source buttons (atlas, iran, timeline, etc.) */
.ref-btn-row{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap}
.ref-btn-row .source-ref-btn{font-size:11px;padding:4px 10px}
.intel-card a{text-decoration:none;color:inherit}

/* Severity pulse animations */
.intel-card.ic-critical{border-color:rgba(239,68,68,0.25);animation:icPulseCrit 3s ease-in-out infinite}
.intel-card.ic-high{border-color:rgba(245,158,11,0.2);box-shadow:0 1px 4px rgba(245,158,11,0.06)}
@keyframes icPulseCrit{0%,100%{box-shadow:0 1px 3px rgba(0,0,0,0.04)}50%{box-shadow:0 0 16px rgba(239,68,68,0.12),0 0 4px rgba(239,68,68,0.08)}}

/* ── BACK TO HUB NAV — Premium v11.4 ─────────────────── */
.back-nav{display:flex;align-items:center;gap:10px;margin-bottom:20px;padding:12px 20px;background:var(--bg-card);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid rgba(0,232,143,0.07);border-radius:14px;box-shadow:var(--shadow-xs)}
.back-nav-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 16px;border-radius:10px;font-size:13px;font-weight:700;color:#00e88f;background:rgba(0,232,143,0.06);border:1px solid rgba(0,232,143,0.18);cursor:pointer;transition:all .25s cubic-bezier(0.22,1,0.36,1);text-decoration:none}
.back-nav-btn:hover{background:rgba(0,232,143,0.12);border-color:rgba(0,232,143,0.35);box-shadow:0 3px 12px rgba(0,232,143,0.15);transform:translateX(-2px)}
.back-nav-btn i{font-size:13px;transition:transform .2s ease}
.back-nav-btn:hover i{transform:translateX(-2px)}
.back-nav-sep{color:#D1D5DB;font-size:14px}
.back-nav-current{font-size:14px;font-weight:700;color:#1F2937;letter-spacing:-0.01em}

/* ── RESPONSIVE: SMALL SCREENS ───────────────── */
@media (max-width: 640px) {
  canvas { max-height: 280px !important; }
}
@media (max-width: 480px) {
  .page-content { padding: 12px; }
}

/* ── PRINT STYLES ─────────────────────────────── */
@media print {
  body { background: white !important; color: black !important; font-size: 10pt !important; }
  .sidebar { display: none !important; }
  .content-area { margin-left: 0 !important; }
  .top-bar { display: none !important; }
  .ews-ticker { display: none !important; }
  .no-print { display: none !important; }
  .card { border: 1px solid #e2e8f0 !important; box-shadow: none !important; break-inside: avoid; background: white !important; backdrop-filter: none !important; }
  .page-content { padding: 0 !important; max-width: 100% !important; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 7pt; color: #00A86B; word-break: break-all; }
  a[href^="javascript:"]::after, a[href^="#"]::after { content: ""; }
  .fade-in, .fade-in-up, .scale-in { animation: none !important; opacity: 1 !important; }
  .stagger-1,.stagger-2,.stagger-3,.stagger-4,.stagger-5,.stagger-6 { animation: none !important; opacity: 1 !important; }
  @page { margin: 1.5cm; size: A4; }
  h2, h3 { page-break-after: avoid; }
}

/* ── SMOOTH TRANSITIONS ──────────────────────── */
* { transition-property: color, background-color, border-color, box-shadow; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.22,1,0.36,1); }
canvas, svg, svg *, .animate-spin, input[type="range"], .leaflet-pane, .leaflet-pane * { transition: none !important; }

/* ── ATLAS TAB ────────────────────────────────── */
.atlas-country-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:8px;font-size:13px;font-weight:600;border:1px solid rgba(0,168,107,0.12);background:rgba(0,168,107,0.03);color:#4B5563;cursor:pointer;transition:all .2s ease}
.atlas-country-btn:hover{border-color:#06b6d4;color:#06b6d4}
.atlas-country-btn.active{background:rgba(6,182,212,0.1);border-color:#06b6d4;color:#06b6d4}
.atlas-country-count{font-size:11px;font-weight:800;background:rgba(0,168,107,0.06);padding:1px 5px;border-radius:4px;font-family:'JetBrains Mono',monospace}
.atlas-cat-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:8px;font-size:13px;font-weight:600;border:1px solid rgba(0,168,107,0.12);background:rgba(0,168,107,0.03);color:#4B5563;cursor:pointer;transition:all .2s ease;letter-spacing:0.01em}
.atlas-cat-btn:hover,.atlas-cat-btn.active{background:color-mix(in srgb,var(--cat-color,#06b6d4) 12%,transparent);border-color:var(--cat-color,#06b6d4);color:var(--cat-color,#06b6d4)}
.atlas-threat-btn{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid rgba(0,168,107,0.12);background:rgba(0,168,107,0.03);color:#4B5563;cursor:pointer;transition:all .15s}
.atlas-threat-btn:hover,.atlas-threat-btn.active{background:color-mix(in srgb,var(--thr-color,#06b6d4) 12%,transparent);border-color:var(--thr-color,#06b6d4);color:var(--thr-color,#06b6d4)}
.atlas-bl-btn{font-size:13px;padding:5px 10px;border:1px solid rgba(0,168,107,0.12);background:rgba(0,168,107,0.03);color:#4B5563;cursor:pointer;border-radius:7px;transition:all .2s ease;font-weight:500}
.atlas-bl-btn:hover,.atlas-bl-btn.active{background:rgba(6,182,212,0.1);border-color:#06b6d4;color:#06b6d4}
.atlas-fcard{padding:12px 14px;border-radius:10px;border:1px solid rgba(0,168,107,0.08);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);background:rgba(0,168,107,0.02)}
.atlas-fcard:hover{border-color:#06b6d4;box-shadow:0 2px 8px rgba(6,182,212,0.1);transform:translateX(2px)}
.atlas-fcard.active{border-color:#06b6d4;background:rgba(6,182,212,0.04);box-shadow:0 2px 12px rgba(6,182,212,0.15)}
.atlas-fcard .atlas-fcard-cat{width:4px;border-radius:2px;flex-shrink:0;align-self:stretch}
.atlas-treaty-ok{color:#00A86B;font-weight:700}
.atlas-treaty-partial{color:#f59e0b;font-weight:700}
.atlas-treaty-no{color:#ef4444;font-weight:700}
@keyframes atlasPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,0.5)}50%{box-shadow:0 0 0 8px rgba(239,68,68,0)}}
@keyframes mapPulse{0%,100%{opacity:0.85}50%{opacity:0.5}}
.map-facility-critical path{stroke-width:3}
/* Ensure Leaflet SVG marker paths are always visible */
.leaflet-overlay-pane svg path.leaflet-interactive{opacity:1 !important;visibility:visible !important}
.atlas-marker-critical{animation:atlasPulse 2s ease-in-out infinite}
/* MarkerCluster custom styling */
.marker-cluster-small{background:rgba(6,182,212,0.25);border:2px solid rgba(6,182,212,0.6)}
.marker-cluster-small div{background:rgba(6,182,212,0.7);color:#fff;font-weight:700;font-size:13px;font-family:'JetBrains Mono',monospace}
.marker-cluster-medium{background:rgba(245,158,11,0.25);border:2px solid rgba(245,158,11,0.6)}
.marker-cluster-medium div{background:rgba(245,158,11,0.7);color:#fff;font-weight:700;font-size:13px;font-family:'JetBrains Mono',monospace}
.marker-cluster-large{background:rgba(239,68,68,0.25);border:2px solid rgba(239,68,68,0.6)}
.marker-cluster-large div{background:rgba(239,68,68,0.7);color:#fff;font-weight:700;font-size:13px;font-family:'JetBrains Mono',monospace}
.atlas-prox-ring{fill:none;pointer-events:none}
.atlas-prox-label{background:rgba(0,0,0,0.6);color:#fff;border:none;font-size:11px;padding:2px 6px;border-radius:4px;font-family:'JetBrains Mono',monospace;box-shadow:none;pointer-events:none}

/* ── ATLAS A+++ ENHANCEMENTS ──────────────────── */

/* Country Stats Dashboard */
.atlas-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.atlas-stat-card{padding:10px 12px;border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-card);transition:all .25s ease;position:relative;overflow:hidden}
.atlas-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,0.08)}
.atlas-stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:10px 10px 0 0}
.atlas-stat-card .stat-value{font-size:20px;font-weight:800;line-height:1.1}
.atlas-stat-card .stat-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}
.atlas-stat-card .stat-bar{height:4px;border-radius:2px;background:var(--bg-elevated);margin-top:6px;overflow:hidden}
.atlas-stat-card .stat-bar-fill{height:100%;border-radius:2px;transition:width .8s cubic-bezier(.4,0,.2,1)}

/* Mini donut chart */
.atlas-donut{width:64px;height:64px;position:relative}
.atlas-donut svg{transform:rotate(-90deg)}
.atlas-donut-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}

/* Comparison Panel */
.atlas-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.atlas-compare-card{border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-card);padding:12px;position:relative}
.atlas-compare-card .compare-remove{position:absolute;top:6px;right:8px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px}
.atlas-compare-card .compare-remove:hover{color:#ef4444}
.atlas-compare-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:12px;border-bottom:1px solid var(--border-subtle)}
.atlas-compare-row:last-child{border-bottom:none}
.atlas-compare-row .cmp-label{color:var(--text-muted)}
.atlas-compare-row .cmp-value{font-weight:600;color:var(--text-primary)}

/* Search Suggestions */
.atlas-suggestions{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border-subtle);border-top:none;border-radius:0 0 8px 8px;max-height:240px;overflow-y:auto;z-index:var(--z-dropdown);box-shadow:0 8px 24px rgba(0,0,0,0.12);display:none}
.atlas-suggestions.visible{display:block}
.atlas-suggestion{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:13px;transition:background .15s;border-bottom:1px solid rgba(0,0,0,0.03)}
.atlas-suggestion:hover{background:var(--bg-elevated)}
.atlas-suggestion:last-child{border-bottom:none}
.atlas-suggestion .sug-cat{font-size:11px;font-weight:700;padding:1px 5px;border-radius:3px}
.atlas-suggestion .sug-match{color:var(--primary);font-weight:700}

/* Facility cards enhanced */
.atlas-fcard{position:relative;transition:all .25s cubic-bezier(.4,0,.2,1)}
.atlas-fcard::after{content:'';position:absolute;inset:0;border-radius:8px;opacity:0;transition:opacity .2s;pointer-events:none;background:linear-gradient(135deg,rgba(6,182,212,0.03),rgba(59,130,246,0.02))}
.atlas-fcard:hover::after{opacity:1}
.atlas-fcard .fcard-actions{opacity:0;transition:opacity .2s;display:flex;gap:4px}
.atlas-fcard:hover .fcard-actions{opacity:1}
.fcard-action-btn{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:4px;padding:2px 6px;font-size:11px;color:var(--text-muted);cursor:pointer;transition:all .15s}
.fcard-action-btn:hover{border-color:var(--primary);color:var(--primary)}

/* Top countries bar */
.atlas-top-countries{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
.atlas-top-country{flex-shrink:0;padding:8px 12px;border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-card);cursor:pointer;transition:all .25s;text-align:center;min-width:80px}
.atlas-top-country:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.06);border-color:#06b6d4}
.atlas-top-country.selected{border-color:#06b6d4;background:rgba(6,182,212,0.06)}
.atlas-top-country .tc-flag{font-size:18px;line-height:1}
.atlas-top-country .tc-count{font-size:14px;font-weight:800;color:var(--text-primary);font-family:'JetBrains Mono',monospace}
.atlas-top-country .tc-name{font-size:11px;color:var(--text-muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Heatmap toggle */
.atlas-heatmap-gradient{height:8px;border-radius:4px;background:linear-gradient(90deg,#00A86B,#eab308,#f97316,#ef4444);flex:1}

/* Export dropdown */
.atlas-export-menu{position:absolute;top:100%;right:0;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,0.12);z-index:var(--z-sticky);min-width:160px;display:none;padding:4px}
.atlas-export-menu.visible{display:block}
.atlas-export-item{padding:6px 12px;font-size:13px;cursor:pointer;border-radius:6px;display:flex;align-items:center;gap:8px;color:var(--text-secondary);transition:all .15s}
.atlas-export-item:hover{background:var(--bg-elevated);color:var(--text-primary)}
.atlas-export-item i{width:14px;text-align:center}

/* ── SKELETON / SHIMMER LOADING ────────────────── */
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-elevated) 37%,var(--bg-card) 63%);background-size:800px 100%;animation:shimmer 1.8s ease-in-out infinite;border-radius:6px}
.skeleton-line{height:12px;margin-bottom:8px;border-radius:4px}
.skeleton-line.w-75{width:75%}.skeleton-line.w-50{width:50%}.skeleton-line.w-90{width:90%}.skeleton-line.w-60{width:60%}
.skeleton-card{padding:12px;border-radius:8px;border:1px solid var(--border-subtle);margin-bottom:8px}
.skeleton-circle{width:40px;height:40px;border-radius:50%}
.skeleton-block{height:200px;border-radius:8px}

/* ── AUTO-REFRESH COUNTDOWN ────────────────────── */
.refresh-ring{position:relative;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center}
.refresh-ring svg{transform:rotate(-90deg)}
.refresh-ring-track{fill:none;stroke:var(--border-subtle);stroke-width:2.5}
.refresh-ring-progress{fill:none;stroke:var(--primary);stroke-width:2.5;stroke-linecap:round;transition:stroke-dashoffset 1s linear}
.refresh-ring-text{position:absolute;font-size:10px;font-weight:700;color:var(--text-muted)}
.refresh-paused .refresh-ring-progress{stroke:var(--ews-amber-500)}

/* ── LIGHT THEME (BioR Green Light) ────────────────────── */

/* Cards — white glass with subtle green border */

/* KPI cards */

/* Sidebar — keep green gradient but lighten slightly */

/* Top bar — white glass */

/* Stat numbers — green in light mode */

/* Glass & nav */

/* Buttons */

/* Tabs */

/* Atlas & Iran buttons */

/* Text overrides */

/* Forms */

/* Tables */

/* Gradient text */

/* Intel cards */

/* Threat Assessment */

/* Map */

/* Utility bg/border overrides */

/* Badges */

/* Scrollbar, skeleton, etc */

/* Header search & notification */

/* Theme toggle */

/* Version footer */

/* Modal */

/* Toast */

/* Classification banner */

/* Cross-ref & reliability */

/* Mobile bottom nav */

/* Shortcut panel & kbd */

/* EWS status dots keep same colors */
/* BioR pill in light mode */

/* Heatmap gradient stays the same */
/* Atlas stat card light */

/* Theme toggle button */
.theme-toggle{width:32px;height:32px;border-radius:8px;border:1px solid rgba(0,232,143,0.12);background:rgba(0,232,143,0.03);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:13px}
.theme-toggle:hover{border-color:#00e88f;color:#00e88f;background:rgba(0,232,143,0.08)}

/* ── KEYBOARD SHORTCUT HINT ────────────────────── */
.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:4px;background:var(--bg-elevated);border:1px solid var(--border-subtle);font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:var(--text-muted);line-height:1}
.shortcut-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:var(--z-shortcut);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.shortcut-overlay.visible{opacity:1;pointer-events:auto}
.shortcut-panel{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:24px;width:400px;max-width:90vw;box-shadow:0 24px 64px rgba(0,0,0,0.3)}
.shortcut-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;color:var(--text-secondary)}
.shortcut-row .kbd{margin-left:8px}

/* ── TOAST NOTIFICATION ────────────────────────── */
.toast{position:fixed;bottom:24px;right:24px;padding:10px 16px;border-radius:8px;background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-primary);font-size:13px;font-weight:500;box-shadow:0 8px 24px rgba(0,0,0,0.15);z-index:var(--z-toast);transform:translateY(20px);opacity:0;transition:all .3s ease;display:flex;align-items:center;gap:8px}
.toast.visible{transform:translateY(0);opacity:1}
.toast-icon{font-size:14px}
.toast.toast-success .toast-icon{color:#00A86B}
.toast.toast-info .toast-icon{color:#3b82f6}
.toast.toast-warn .toast-icon{color:#f59e0b}

/* ══════════════════════════════════════════════════
   v9.0 UPGRADES — Stat Cards, Live Ticker, Geofence,
   Cross-Ref, Reliability, Mobile Nav
   ══════════════════════════════════════════════════ */

/* ── COMMAND STAT CARDS — Premium v11.4 ─────────────────────────── */
.stat-card{position:relative;display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;background:rgba(0,232,143,0.03);border:1px solid rgba(0,232,143,0.08);overflow:hidden;transition:all .4s cubic-bezier(0.22,1,0.36,1)}
.stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(0,232,143,0.10);border-color:rgba(0,232,143,0.25)}
.stat-card-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;position:relative}
.stat-card-icon::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.15),transparent 60%);pointer-events:none;border-radius:12px}
.stat-card-facilities .stat-card-icon{background:rgba(6,182,212,0.12);color:#06b6d4}
.stat-card-countries .stat-card-icon{background:rgba(59,130,246,0.12);color:#3b82f6}
.stat-card-threats .stat-card-icon{background:rgba(239,68,68,0.12);color:#ef4444}
.stat-card-sources .stat-card-icon{background:rgba(0,232,143,0.15);color:#00e88f}
.stat-card-body{flex:1;min-width:0}
.stat-card-value{font-size:24px;font-weight:900;line-height:1;color:var(--text-primary);letter-spacing:-0.03em}
.stat-card-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600;margin-top:2px}
.stat-sparkline{position:absolute;right:8px;bottom:4px;opacity:0.25;pointer-events:none}

/* ── LIVE INCIDENT TICKER ───────────────────────── */
.ews-ticker-count{font-size:12px;font-weight:700;color:#ef4444;background:rgba(239,68,68,0.08);padding:2px 8px;border-radius:6px;margin-right:8px;flex-shrink:0}
.ticker-incident{display:inline-flex;align-items:center;gap:6px;margin-right:32px;white-space:nowrap}
.ticker-sev{font-size:10px;font-weight:800;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.04em}
.ticker-sev-critical{background:rgba(239,68,68,0.2);color:#ef4444}
.ticker-sev-high{background:rgba(249,115,22,0.2);color:#f97316}
.ticker-sev-elevated{background:rgba(245,158,11,0.2);color:#f59e0b}
.ticker-sev-moderate{background:rgba(0,168,107,0.2);color:#00A86B}
.ticker-flag{font-size:13px}
.ticker-title{font-size:13px;font-weight:500}
.ticker-time{font-size:11px;color:#9CA3AF}
.ticker-src-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;background:rgba(59,130,246,0.2);color:#3b82f6;font-size:10px;cursor:pointer;text-decoration:none;transition:all .2s ease;flex-shrink:0}
.ticker-src-btn:hover{background:rgba(59,130,246,0.4);transform:scale(1.15)}
.ticker-loading{color:#9CA3AF;font-size:13px}

/* ── GEOFENCE ALERT ZONES ───────────────────────── */
.geofence-drawing{cursor:crosshair}
.geofence-drawing .leaflet-container{cursor:crosshair !important}
#geofence-draw-btn.active{background:#ef4444;color:#fff;border-color:#ef4444}
.geofence-zone{fill-opacity:0.1;stroke-width:2;stroke-dasharray:8 4}
@keyframes geofencePulse{0%{opacity:1;transform:scale(1)}50%{opacity:0.6;transform:scale(1.05)}100%{opacity:1;transform:scale(1)}}
.geofence-alert .leaflet-marker-icon{animation:geofencePulse 1.5s ease-in-out infinite}
.map-marker-pulse{animation:markerPulse 2s ease-in-out infinite}
@keyframes markerPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,0.4)}50%{box-shadow:0 0 0 12px rgba(239,68,68,0)}}

/* ── CROSS-REFERENCE INTEL ──────────────────────── */
.crossref-item{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:6px;border-left:3px solid rgba(0,232,143,0.10);transition:all .2s;cursor:pointer}
.crossref-item:hover{background:rgba(0,232,143,0.04);border-left-color:#f59e0b}
.crossref-item.direct{border-left-color:#ef4444}
.crossref-item.contextual{border-left-color:#3b82f6}
.crossref-badge{font-size:9px;font-weight:800;padding:1px 4px;border-radius:3px;text-transform:uppercase}
.crossref-badge-direct{background:rgba(239,68,68,0.12);color:#ef4444}
.crossref-badge-contextual{background:rgba(59,130,246,0.12);color:#3b82f6}

/* ── SOURCE RELIABILITY LEADERBOARD ─────────────── */
.rel-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;transition:all .2s;border:1px solid transparent}
.rel-row:hover{background:rgba(0,232,143,0.04);border-color:rgba(0,232,143,0.10)}
.rel-rank{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0}
.rel-rank-1{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff}
.rel-rank-2{background:linear-gradient(135deg,#d1d5db,#9ca3af);color:#fff}
.rel-rank-3{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}
.rel-tier{font-size:13px;font-weight:800;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rel-tier-A{background:rgba(0,232,143,0.15);color:#00e88f}
.rel-tier-B{background:rgba(59,130,246,0.15);color:#3b82f6}
.rel-tier-C{background:rgba(245,158,11,0.15);color:#f59e0b}
.rel-tier-D{background:rgba(239,68,68,0.15);color:#ef4444}
.rel-tier-F{background:rgba(107,114,128,0.15);color:#6b7280}
.rel-score-bar{height:6px;border-radius:3px;background:var(--bg-elevated);overflow:hidden;flex:1;min-width:60px}
.rel-score-fill{height:100%;border-radius:3px;transition:width .5s ease}

/* ── MOBILE BOTTOM NAV ──────────────────────────── */
.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:var(--z-mobile-nav);background:rgba(255,255,255,0.97);border-top:1px solid rgba(0,232,143,0.10);padding:4px 0;padding-bottom:env(safe-area-inset-bottom,4px);justify-content:space-around}
.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;border:none;background:none;color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer;transition:color .2s;text-transform:uppercase;letter-spacing:.04em}
.mobile-nav-item i{font-size:16px}
.mobile-nav-item.active{color:#00e88f}
.mobile-nav-item:active{transform:scale(0.92)}

/* ── MOBILE RESPONSIVE ──────────────────────────── */
@media(max-width:768px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.mobile-open{transform:translateX(0)}
  .content-area{margin-left:0 !important}
  .mobile-bottom-nav{display:flex}
  .page-content{padding-bottom:70px}
  .top-bar{padding:0 12px;flex-wrap:wrap;gap:6px;height:auto;padding-top:8px;padding-bottom:8px}
  .stat-card{padding:10px 12px}
  .stat-card-value{font-size:18px}
  .stat-card-icon{width:32px;height:32px;font-size:13px}
  .stat-sparkline{display:none}
  .ews-ticker{font-size:12px}
  footer{display:none}
  .sidebar-collapse-btn{display:none}
  .mobile-menu-btn{display:flex !important}
  #tab-atlas .grid.lg\\:grid-cols-5{grid-template-columns:1fr}
  #tab-atlas #atlas-map{height:50vh !important;min-height:300px !important}
  #atlas-card-list{max-height:300px !important;min-height:200px !important}
  #map-wrapper #map{height:calc(100vh - 190px) !important;max-height:calc(100vh - 80px) !important}
  #map-wrapper{position:relative;z-index:1}
  #tab-map,#tab-atlas{padding-bottom:60px}
  .leaflet-top,.leaflet-bottom{z-index:999 !important}
  .grid.md\\:grid-cols-4{grid-template-columns:repeat(2,1fr)}
  .grid.lg\\:grid-cols-3{grid-template-columns:1fr}
}
@media(max-width:480px){
  .grid.md\\:grid-cols-4,.grid.grid-cols-2{grid-template-columns:repeat(2,1fr)}
  .stat-card{gap:8px;padding:8px 10px}
  .stat-card-value{font-size:16px}
  .stat-card-label{font-size:10px}
  .stat-card-icon{width:28px;height:28px;font-size:13px;border-radius:8px}
  .top-bar > div:first-child > div:not(.mobile-menu-btn){display:none}
  #overall-score-ring{width:36px !important;height:36px !important}
  #overall-score{font-size:13px !important}
}

/* Light theme additions for v9 */

/* ══════════════════════════════════════════════════
   BioR.tech Enhanced Features — v10.0
   Button shimmer, page transitions, gauge animations,
   version footer, enhanced header search
   ══════════════════════════════════════════════════ */

/* ── BUTTON SHIMMER ANIMATION ─────────────────── */
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(0,168,107,0.10),transparent);
  transition:left 0.5s ease;
}
.btn-primary:hover::after{left:100%}

/* ── PAGE TRANSITIONS ─────────────────────────── */
.page-transition{animation:pageSlideIn 0.35s cubic-bezier(0.4,0,0.2,1)}
@keyframes pageSlideIn{
  from{opacity:0;transform:translateY(12px) scale(0.995)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

/* ── ANIMATED GAUGE RINGS ─────────────────────── */
.gauge-ring{animation:gaugeIn 1.2s cubic-bezier(0.4,0,0.2,1) forwards}
@keyframes gaugeIn{from{stroke-dashoffset:213.6}}

/* ── RISK BAR ANIMATION ──────────────────────── */
.risk-bar-animate{animation:riskBarGrow 0.8s cubic-bezier(0.4,0,0.2,1) forwards}
@keyframes riskBarGrow{from{width:0%}}

/* ── TAB BUTTON GLOW ─────────────────────────── */
.tab-btn{transition:all 0.25s ease;backdrop-filter:blur(4px)}
.tab-btn.active{
  background:rgba(0,232,143,0.15);color:#00e88f;
  border-color:rgba(0,232,143,0.4);box-shadow:0 0 18px rgba(0,232,143,0.12);
}

/* ── HEADER SEARCH EXPANDING ─────────────────── */
.header-search{
  background:rgba(0,232,143,0.04);border:1px solid rgba(0,232,143,0.12);
  border-radius:12px;padding:6px 12px 6px 36px;color:#1F2937;
  font-size:13px;font-family:'Inter',sans-serif;outline:none;
  width:200px;transition:all 0.3s ease;
}
.header-search:focus{
  width:280px;border-color:rgba(0,232,143,0.5);
  background:rgba(0,232,143,0.06);box-shadow:0 0 0 3px rgba(0,232,143,0.1),0 0 20px rgba(0,232,143,0.05);
}
.header-search::placeholder{color:#9CA3AF}

/* ── NOTIFICATION BELL ANIMATION ─────────────── */
.notif-btn{
  position:relative;width:34px;height:34px;border-radius:10px;
  background:rgba(0,232,143,0.04);border:1px solid rgba(0,232,143,0.12);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all 0.25s ease;color:#6B7280;
}
.notif-btn:hover{background:rgba(0,232,143,0.10);color:#00e88f;border-color:rgba(0,232,143,0.3)}
.notif-count{
  position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;
  border-radius:8px;background:#ef4444;color:#fff;font-size:11px;
  font-weight:700;display:flex;align-items:center;justify-content:center;
  padding:0 4px;border:2px solid #fff;line-height:1;
  animation:notifPop 0.3s cubic-bezier(0.4,0,0.2,1);
}
@keyframes notifPop{from{transform:scale(0)}to{transform:scale(1)}}

/* ── VERSION FOOTER ──────────────────────────── */
.version-footer{
  position:fixed;bottom:0;left:0;right:0;
  background:rgba(255,255,255,0.95);backdrop-filter:blur(12px);
  border-top:1px solid rgba(0,232,143,0.06);
  padding:6px 20px;display:flex;align-items:center;justify-content:center;
  font-size:12px;color:rgba(0,232,143,0.25);
  z-index:40;pointer-events:none;
}

/* ── MODAL — Dark Glass ──────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(8px);z-index:var(--z-collapse-btn);display:flex;align-items:center;justify-content:center;animation:overlayIn 0.2s ease-out}
.modal-content{
  background:linear-gradient(135deg,#ffffff 0%,#f8faf9 100%);
  border:1px solid rgba(0,168,107,0.15);border-radius:20px;
  max-width:720px;width:90%;max-height:85vh;overflow-y:auto;
  box-shadow:0 20px 60px rgba(0,0,0,0.5),0 0 40px rgba(0,232,143,0.05);
  animation:modalIn 0.3s cubic-bezier(0.4,0,0.2,1);
}
@keyframes overlayIn{from{opacity:0}to{opacity:1}}
@keyframes modalIn{from{opacity:0;transform:scale(0.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* WATCHCON Badge */
.watchcon-badge{font-size:12px;font-weight:800;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--primary);color:#fff;line-height:1}

/* ═══════════════════════════════════════════════════════════
   NEWS FEED REDESIGN v11.2 — Organized, Grid-based, Sortable
   ═══════════════════════════════════════════════════════════ */

/* ── NEWS STATS BANNER — Premium v11.4 ── */
.news-stats-banner{
  display:grid;grid-template-columns:repeat(6,1fr);gap:2px;
  background:var(--bg-card);backdrop-filter:blur(24px) saturate(1.5);
  -webkit-backdrop-filter:blur(24px) saturate(1.5);
  border:1px solid rgba(0,232,143,0.10);border-radius:18px;
  box-shadow:var(--shadow-sm);overflow:hidden;position:relative
}
.news-stats-banner::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#f59e0b,#00e88f,#a855f7,#3b82f6,#ef4444,#00e88f);opacity:0.6}
.news-stat-item{
  display:flex;align-items:center;gap:12px;padding:18px 16px;
  position:relative;transition:background .3s ease;
  border-right:1px solid rgba(0,232,143,0.04)
}
.news-stat-item:last-child{border-right:none}
.news-stat-item:hover{background:rgba(0,232,143,0.04)}
.news-stat-icon{
  width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;position:relative;overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.20),0 2px 8px rgba(0,0,0,0.06)
}
.news-stat-icon::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.15),transparent 60%);pointer-events:none;border-radius:14px}
.news-stat-value{font-size:22px;font-weight:900;color:#1F2937;line-height:1.1;letter-spacing:-0.03em;font-variant-numeric:tabular-nums}
.news-stat-label{font-size:10.5px;color:#6B7280;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-top:2px}

@media(max-width:1024px){.news-stats-banner{grid-template-columns:repeat(3,1fr)}.news-stat-item{border-bottom:1px solid rgba(0,232,143,0.04)}}
@media(max-width:640px){.news-stats-banner{grid-template-columns:repeat(2,1fr)}.news-stat-item{padding:14px 12px}}

/* ── NEWS TOOLBAR — Premium v11.4 ── */
.news-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:14px 20px;background:var(--bg-card);backdrop-filter:blur(24px) saturate(1.5);
  -webkit-backdrop-filter:blur(24px) saturate(1.5);
  border:1px solid rgba(0,232,143,0.08);border-radius:14px;box-shadow:var(--shadow-xs);
  position:relative
}
.news-toolbar::after{content:'';position:absolute;bottom:0;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,rgba(0,232,143,0.08),transparent)}
.news-toolbar-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.news-toolbar-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}

/* Category filter pills — Premium v11.4 */
.news-filter-pills{display:flex;gap:6px;flex-wrap:wrap}
.news-pill{
  display:inline-flex;align-items:center;gap:5px;padding:7px 16px;border-radius:10px;
  font-size:13px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(0.22,1,0.36,1);
  background:rgba(0,168,107,0.03);border:1px solid rgba(0,168,107,0.10);color:#6B7280;white-space:nowrap;position:relative;overflow:hidden
}
.news-pill::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.03),transparent 60%);opacity:0;transition:opacity .3s ease;pointer-events:none}
.news-pill:hover{background:rgba(0,232,143,0.07);border-color:rgba(0,232,143,0.22);color:#1F2937;transform:translateY(-1px)}
.news-pill:hover::before{opacity:1}
.news-pill.active{background:rgba(0,232,143,0.10);border-color:rgba(0,232,143,0.35);color:#00e88f;font-weight:700;box-shadow:0 0 16px rgba(0,232,143,0.12),inset 0 0 12px rgba(0,232,143,0.04)}
.news-pill[data-cat="nuclear"].active{background:rgba(245,158,11,0.10);border-color:rgba(245,158,11,0.35);color:#f59e0b;box-shadow:0 0 16px rgba(245,158,11,0.10)}
.news-pill[data-cat="biological"].active{background:rgba(0,168,107,0.10);border-color:rgba(0,168,107,0.35);color:#00A86B;box-shadow:0 0 16px rgba(0,168,107,0.10)}
.news-pill[data-cat="chemical"].active{background:rgba(168,85,247,0.10);border-color:rgba(168,85,247,0.35);color:#a855f7;box-shadow:0 0 16px rgba(168,85,247,0.10)}
.news-pill[data-cat="radiological"].active{background:rgba(59,130,246,0.10);border-color:rgba(59,130,246,0.35);color:#3b82f6;box-shadow:0 0 16px rgba(59,130,246,0.10)}
.news-pill i{font-size:12px}
.news-pill .pill-count{font-size:11px;font-weight:800;opacity:0.6;font-family:'JetBrains Mono',monospace}

/* Sort control — Premium v11.4 */
.news-sort-control{display:flex;align-items:center;gap:8px}
.news-sort-label{font-size:11px;color:#6B7280;font-weight:700;display:flex;align-items:center;gap:4px;text-transform:uppercase;letter-spacing:.06em}
.news-sort-label i{font-size:11px;color:rgba(0,232,143,0.5)}
.news-sort-select{
  background:#fff;border:1px solid rgba(0,168,107,0.15);color:#1F2937;font-size:13px;font-weight:600;padding:6px 12px;border-radius:10px;
  cursor:pointer;font-family:'Inter',sans-serif;outline:none;transition:all .2s ease
}
.news-sort-select:hover{border-color:rgba(0,232,143,0.2)}
.news-sort-select:focus{border-color:rgba(0,232,143,0.35);box-shadow:0 0 0 3px rgba(0,232,143,0.08)}
.news-sort-select option{background:#fff;color:#1F2937}

/* View toggle buttons — Premium v11.4 */
.news-view-toggle{display:flex;gap:2px;background:rgba(0,168,107,0.03);border-radius:10px;padding:3px;border:1px solid rgba(0,168,107,0.08)}
.news-view-btn{
  width:32px;height:30px;display:flex;align-items:center;justify-content:center;
  border-radius:8px;border:none;cursor:pointer;transition:all .25s cubic-bezier(0.22,1,0.36,1);
  color:#9CA3AF;background:transparent;font-size:13px
}
.news-view-btn:hover{color:#4B5563;background:rgba(0,168,107,0.06);transform:scale(1.05)}
.news-view-btn.active{color:#00e88f;background:rgba(0,232,143,0.14);box-shadow:0 0 12px rgba(0,232,143,0.12),inset 0 0 8px rgba(0,232,143,0.05)}

/* ── NEWS GRID VIEW — Premium v11.4 ── */
.news-grid-view{
  display:grid;grid-template-columns:repeat(2,1fr);gap:16px
}
@media(max-width:900px){.news-grid-view{grid-template-columns:1fr}}

/* Stagger animation for grid cards */
.news-grid-view .news-card{animation:newsCardIn .5s cubic-bezier(0.22,1,0.36,1) both}
.news-grid-view .news-card:nth-child(1){animation-delay:0s}
.news-grid-view .news-card:nth-child(2){animation-delay:.04s}
.news-grid-view .news-card:nth-child(3){animation-delay:.08s}
.news-grid-view .news-card:nth-child(4){animation-delay:.12s}
.news-grid-view .news-card:nth-child(5){animation-delay:.16s}
.news-grid-view .news-card:nth-child(6){animation-delay:.2s}
@keyframes newsCardIn{from{opacity:0;transform:translateY(16px) scale(0.98)}to{opacity:1;transform:translateY(0) scale(1)}}

/* ── NEWS LIST VIEW — Premium v11.4 ── */
.news-list-view{display:flex;flex-direction:column;gap:10px}
.news-list-view .news-card{flex-direction:row;align-items:stretch;border-radius:14px}
.news-list-view .news-card-accent{width:3px;height:auto;position:absolute;top:0;left:0;bottom:0;border-radius:14px 0 0 14px}
.news-list-view .news-card-thumb{display:none}
.news-list-view .news-card-body{flex:1}
.news-list-view .news-card-header{border-bottom:none;padding-bottom:4px}

/* ── NEWS TIMELINE VIEW — Premium v11.4 ── */
.news-timeline-view{
  display:flex;flex-direction:column;gap:0;position:relative;
  padding-left:32px
}
.news-timeline-view::before{
  content:'';position:absolute;left:12px;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,rgba(0,232,143,0.35),rgba(0,232,143,0.10),rgba(0,232,143,0.03));
  border-radius:2px
}
.news-timeline-view .news-card{position:relative;margin-bottom:14px}
.news-timeline-view .news-card::before{
  content:'';position:absolute;left:-24px;top:18px;width:10px;height:10px;
  border-radius:50%;background:#00A86B;border:2px solid #fff;z-index:2;
  box-shadow:0 0 10px rgba(0,232,143,0.35);transition:transform .2s ease,box-shadow .2s ease
}
.news-timeline-view .news-card:hover::before{transform:scale(1.4);box-shadow:0 0 16px rgba(0,232,143,0.5)}
.news-timeline-view .news-card[data-cat="nuclear"]::before{background:#f59e0b;box-shadow:0 0 10px rgba(245,158,11,0.35)}
.news-timeline-view .news-card[data-cat="biological"]::before{background:#00A86B;box-shadow:0 0 10px rgba(0,168,107,0.30)}
.news-timeline-view .news-card[data-cat="chemical"]::before{background:#a855f7;box-shadow:0 0 10px rgba(168,85,247,0.35)}
.news-timeline-view .news-card[data-cat="radiological"]::before{background:#3b82f6;box-shadow:0 0 10px rgba(59,130,246,0.35)}

/* ── NEWS CARD — Premium Redesign v11.4 ── */
.news-card{
  background:var(--bg-card);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);
  border:1px solid rgba(0,232,143,0.06);
  border-radius:16px;overflow:hidden;transition:all .4s cubic-bezier(0.22,1,0.36,1);
  position:relative;display:flex;flex-direction:column;box-shadow:var(--shadow-xs)
}
.news-card::after{content:'';position:absolute;top:0;right:0;width:150px;height:150px;background:radial-gradient(circle,rgba(0,232,143,0.03),transparent 70%);pointer-events:none;opacity:0;transition:opacity .4s ease}
.news-card:hover{
  border-color:rgba(0,232,143,0.22);transform:translateY(-4px);
  box-shadow:var(--shadow-lg)
}
.news-card:hover::after{opacity:1}

/* Category accent top bar — Premium v11.4 */
.news-card-accent{height:3px;width:100%;flex-shrink:0;position:relative}
.news-card-accent::after{content:'';position:absolute;inset:0;background:inherit;filter:blur(6px);opacity:0.4;pointer-events:none}

/* Card header: source + time + category badge — Premium v11.4 */
.news-card-header{
  display:flex;align-items:center;gap:8px;padding:12px 16px 10px;
  border-bottom:1px solid rgba(0,168,107,0.06);background:rgba(0,168,107,0.02)
}
.news-card-source-logo{
  width:26px;height:26px;border-radius:8px;flex-shrink:0;object-fit:contain;
  background:rgba(0,168,107,0.06);padding:2px;box-shadow:0 1px 4px rgba(0,0,0,0.2)
}
.news-card-source-initials{
  width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:11px;font-weight:800;color:#fff;box-shadow:0 1px 4px rgba(0,0,0,0.2)
}
.news-card-source{font-size:12px;font-weight:700;color:#4B5563;text-transform:uppercase;letter-spacing:.04em;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.news-card-time{font-size:11px;font-weight:500;color:#9CA3AF;font-family:'JetBrains Mono',monospace;display:flex;align-items:center;gap:3px;white-space:nowrap}
.news-card-time i{font-size:10px;color:rgba(0,232,143,0.4)}
.news-card-cat-badge{
  display:inline-flex;align-items:center;gap:3px;padding:3px 10px;border-radius:8px;
  font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;
  backdrop-filter:blur(4px)
}

/* Card body: title + description — Premium v11.4 */
.news-card-body{padding:12px 16px 10px;flex:1}
.news-card-title{
  font-size:14.5px;font-weight:700;color:#1F2937;line-height:1.5;margin-bottom:6px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  letter-spacing:-0.01em;transition:color .2s ease
}
.news-card:hover .news-card-title{color:#111827}
.news-card-desc{
  font-size:13px;color:#6B7280;line-height:1.65;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}

/* Card footer: tags + score + link — Premium v11.4 */
.news-card-footer{
  display:flex;align-items:center;gap:8px;padding:10px 16px 12px;
  border-top:1px solid rgba(0,168,107,0.04);margin-top:auto;flex-wrap:wrap;
  background:rgba(0,0,0,0.08)
}
.news-card-tags{display:flex;gap:4px;flex:1;flex-wrap:wrap;min-width:0}
.news-card-tag{
  display:inline-flex;align-items:center;gap:2px;padding:3px 8px;border-radius:6px;
  font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;
  backdrop-filter:blur(4px)
}
.news-card-score{
  display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;
  font-family:'JetBrains Mono',monospace
}
.news-card-score-bar{width:44px;height:4px;background:rgba(0,168,107,0.08);border-radius:3px;overflow:hidden}
.news-card-score-fill{height:100%;border-radius:3px;transition:width .8s cubic-bezier(0.22,1,0.36,1)}
.news-card-link{
  display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;
  color:#fff;padding:6px 14px;border-radius:8px;text-decoration:none;
  background:linear-gradient(135deg,#00e88f,#00A86B);border:1px solid rgba(0,232,143,0.30);
  text-transform:uppercase;letter-spacing:.04em;transition:all .3s cubic-bezier(0.22,1,0.36,1);
  white-space:nowrap;box-shadow:0 2px 10px rgba(0,232,143,0.20)
}
.news-card-link:hover{background:linear-gradient(135deg,#00A86B,#006241);box-shadow:0 4px 20px rgba(0,232,143,0.35);transform:translateY(-1px)}
.news-card-link i{font-size:10px}

/* Score color variants — Premium v11.4 */
.news-card-score.score-high{color:#ef4444;text-shadow:0 0 8px rgba(239,68,68,0.2)}
.news-card-score.score-medium{color:#f59e0b;text-shadow:0 0 6px rgba(245,158,11,0.15)}
.news-card-score.score-low{color:#00A86B}

/* Location badge in footer — Premium v11.4 */
.news-card-geo{
  display:inline-flex;align-items:center;gap:3px;font-size:11px;color:#00A86B;
  font-weight:600;padding:3px 8px;border-radius:6px;background:rgba(0,168,107,0.08);
  border:1px solid rgba(0,168,107,0.12);transition:all .2s ease
}
.news-card:hover .news-card-geo{background:rgba(0,168,107,0.12);border-color:rgba(0,168,107,0.25)}
.news-card-geo i{font-size:9px}

/* Load more button — Premium v11.4 */
.news-load-more{text-align:center;padding:24px 0}
.news-load-more-btn{
  display:inline-flex;align-items:center;gap:8px;padding:12px 32px;border-radius:14px;
  font-size:13px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(0.22,1,0.36,1);
  background:rgba(0,232,143,0.05);border:1px solid rgba(0,232,143,0.16);
  color:#00e88f;text-transform:uppercase;letter-spacing:.05em;position:relative;overflow:hidden
}
.news-load-more-btn::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,232,143,0.05),transparent 60%);opacity:0;transition:opacity .3s ease}
.news-load-more-btn:hover{background:rgba(0,232,143,0.10);border-color:rgba(0,232,143,0.30);box-shadow:0 4px 24px rgba(0,232,143,0.12);transform:translateY(-2px)}
.news-load-more-btn:hover::before{opacity:1}
.news-load-more-btn i{font-size:12px}

/* ── LIVE NEWS TIMELINE (Overview Dashboard) — Premium v11.4 ── */
.live-news-timeline{display:flex;flex-direction:column;gap:0;position:relative;padding-left:24px}
.live-news-timeline::before{
  content:'';position:absolute;left:7px;top:4px;bottom:4px;width:2px;
  background:linear-gradient(180deg,rgba(0,232,143,0.30),rgba(0,232,143,0.08),rgba(0,232,143,0.02));
  border-radius:2px
}
.live-news-item{
  position:relative;padding:10px 12px 10px 0;margin-bottom:2px;
  border-radius:8px;transition:background .2s ease
}
.live-news-item:hover{background:rgba(0,232,143,0.025)}
.live-news-item::before{
  content:'';position:absolute;left:-20px;top:16px;width:8px;height:8px;
  border-radius:50%;background:#00A86B;border:2px solid #fff;z-index:2;
  box-shadow:0 0 8px rgba(0,232,143,0.3);transition:transform .2s ease
}
.live-news-item:hover::before{transform:scale(1.3)}
.live-news-item[data-cat="nuclear"]::before{background:#f59e0b;box-shadow:0 0 8px rgba(245,158,11,0.3)}
.live-news-item[data-cat="biological"]::before{background:#00A86B;box-shadow:0 0 6px rgba(0,168,107,0.2)}
.live-news-item[data-cat="chemical"]::before{background:#a855f7;box-shadow:0 0 8px rgba(168,85,247,0.3)}
.live-news-item[data-cat="radiological"]::before{background:#3b82f6;box-shadow:0 0 8px rgba(59,130,246,0.3)}

.live-news-item-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.live-news-item-source{font-size:11px;font-weight:700;color:#6B7280;text-transform:uppercase;letter-spacing:.04em}
.live-news-item-time{font-size:10px;font-weight:600;color:#9CA3AF;font-family:'JetBrains Mono',monospace;margin-left:auto;letter-spacing:.02em}
.live-news-item-badge{
  display:inline-flex;padding:2px 7px;border-radius:6px;font-size:9px;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase
}
.live-news-item-title{
  font-size:13.5px;font-weight:600;color:#374151;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  cursor:pointer;transition:color .2s ease
}
.live-news-item-title:hover{color:#00e88f}
.live-news-item-title a{text-decoration:none;color:inherit}

/* Reference Source button — BioR Universal Source Reference pattern */
.live-news-item-ref{
  margin-top:4px;display:flex;align-items:center
}
.live-news-item-ref a{
  display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;
  color:#00e88f;background:rgba(0,232,143,0.06);border:1px solid rgba(0,232,143,0.12);
  padding:3px 10px;border-radius:6px;text-decoration:none;letter-spacing:.02em;
  transition:all .2s ease;text-transform:uppercase
}
.live-news-item-ref a:hover{
  background:rgba(0,232,143,0.12);border-color:rgba(0,232,143,0.30);
  color:#34ffa8;transform:translateX(2px)
}
.live-news-item-ref a i{font-size:9px;opacity:0.7}

/* ── FEATURED / BREAKING NEWS CARD — Premium v11.4 ── */
.news-card-featured{
  grid-column:1/-1;
  background:linear-gradient(135deg,rgba(255,255,255,0.97),rgba(248,250,252,0.95));
  border:1px solid rgba(239,68,68,0.18);border-radius:18px;
  position:relative;overflow:hidden;box-shadow:var(--shadow-md),0 0 30px rgba(239,68,68,0.05)
}
.news-card-featured::before{content:'';position:absolute;top:-50px;right:-50px;width:300px;height:300px;background:radial-gradient(circle,rgba(239,68,68,0.05) 0%,rgba(0,232,143,0.03) 40%,transparent 70%);pointer-events:none}
.news-card-featured .news-card-accent{height:4px}
.news-card-featured .news-card-title{font-size:18px;-webkit-line-clamp:3;letter-spacing:-0.02em;font-weight:800}
.news-card-featured .news-card-desc{-webkit-line-clamp:3;font-size:13.5px;color:#6B7280}
.news-card-featured .news-card-body{padding:14px 20px 12px}
.news-card-featured .news-card-header{padding:14px 20px 12px}
.news-card-featured .news-card-footer{padding:12px 20px 14px}
.news-card-featured:hover{border-color:rgba(239,68,68,0.30);box-shadow:var(--shadow-xl),0 0 40px rgba(239,68,68,0.08)}
.news-card-featured::after{
  content:'BREAKING';position:absolute;top:16px;right:16px;
  font-size:10px;font-weight:900;letter-spacing:.14em;color:#ef4444;
  padding:4px 12px;border-radius:8px;background:rgba(239,68,68,0.10);
  border:1px solid rgba(239,68,68,0.25);animation:breakingPulse 2s ease-in-out infinite;
  box-shadow:0 0 12px rgba(239,68,68,0.15);z-index:2
}
@keyframes breakingPulse{0%,100%{opacity:1;box-shadow:0 0 12px rgba(239,68,68,0.15)}50%{opacity:0.7;box-shadow:0 0 20px rgba(239,68,68,0.25)}}

/* ── EMPTY STATE — Premium v11.4 ── */
.news-empty{
  text-align:center;padding:60px 20px;grid-column:1/-1;
  color:#9CA3AF;background:var(--bg-card);
  border:1px dashed rgba(0,232,143,0.10);border-radius:18px
}
.news-empty i{font-size:36px;margin-bottom:14px;display:block;opacity:0.25;color:#00e88f}
.news-empty-text{font-size:13px;font-weight:500;letter-spacing:.01em}

/* ══════════════════════════════════════════════════
   v12.1 — DETECTION SIGNAL BANNER (top of overview)
   Most critical at-a-glance threat detection summary
   ══════════════════════════════════════════════════ */

/* Banner container */
.detect-signal-banner{
  margin-bottom:16px;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,rgba(255,255,255,0.98),rgba(248,250,249,0.96));
  border:1px solid rgba(0,232,143,0.12);
  box-shadow:0 4px 24px rgba(0,0,0,0.08),0 0 0 1px rgba(0,232,143,0.06);
  position:relative;transition:border-color .5s,box-shadow .5s
}
.detect-signal-banner::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,#00e88f,#f59e0b,#a855f7,#3b82f6,#00e88f);
  background-size:200% 100%;animation:detectGradientSweep 4s linear infinite
}
@keyframes detectGradientSweep{0%{background-position:0% 0}100%{background-position:200% 0}}

/* States */
.detect-signal-banner.ds-normal{border-color:rgba(0,232,143,0.15)}
.detect-signal-banner.ds-normal::before{background:linear-gradient(90deg,#00e88f,#34ffa8,#00e88f);background-size:200% 100%;animation:detectGradientSweep 4s linear infinite}
.detect-signal-banner.ds-watch{border-color:rgba(234,179,8,0.20);box-shadow:0 4px 24px rgba(234,179,8,0.08),0 0 0 1px rgba(234,179,8,0.08)}
.detect-signal-banner.ds-watch::before{background:linear-gradient(90deg,#eab308,#fbbf24,#eab308);background-size:200% 100%;animation:detectGradientSweep 3s linear infinite}
.detect-signal-banner.ds-warning{border-color:rgba(249,115,22,0.25);box-shadow:0 4px 24px rgba(249,115,22,0.10),0 0 0 1px rgba(249,115,22,0.10)}
.detect-signal-banner.ds-warning::before{background:linear-gradient(90deg,#f97316,#fb923c,#f97316);background-size:200% 100%;animation:detectGradientSweep 2.5s linear infinite}
.detect-signal-banner.ds-critical{border-color:rgba(239,68,68,0.30);box-shadow:0 4px 24px rgba(239,68,68,0.12),0 0 0 1px rgba(239,68,68,0.12);animation:detectCriticalPulse 2s ease-in-out infinite}
.detect-signal-banner.ds-critical::before{background:linear-gradient(90deg,#ef4444,#f87171,#ef4444);background-size:200% 100%;animation:detectGradientSweep 1.5s linear infinite}
@keyframes detectCriticalPulse{0%,100%{box-shadow:0 4px 24px rgba(239,68,68,0.12),0 0 0 1px rgba(239,68,68,0.12)}50%{box-shadow:0 4px 32px rgba(239,68,68,0.22),0 0 0 2px rgba(239,68,68,0.20)}}

/* Header row */
.detect-signal-header{
  display:flex;align-items:center;gap:16px;padding:16px 20px 12px;flex-wrap:wrap
}
.detect-signal-title-group{display:flex;align-items:center;gap:12px;flex-shrink:0}
.detect-signal-icon-wrap{
  width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:20px;
  background:linear-gradient(135deg,rgba(0,232,143,0.15),rgba(0,232,143,0.05));color:#00e88f;position:relative;flex-shrink:0
}
.detect-signal-pulse{position:absolute;inset:-3px;border-radius:16px;border:2px solid rgba(0,232,143,0.3);animation:dsPulseRing 2s ease-out infinite;pointer-events:none}
@keyframes dsPulseRing{0%{transform:scale(1);opacity:0.6}100%{transform:scale(1.15);opacity:0}}
.detect-signal-banner.ds-critical .detect-signal-icon-wrap{background:linear-gradient(135deg,rgba(239,68,68,0.2),rgba(239,68,68,0.08));color:#ef4444}
.detect-signal-banner.ds-critical .detect-signal-pulse{border-color:rgba(239,68,68,0.4)}
.detect-signal-banner.ds-warning .detect-signal-icon-wrap{background:linear-gradient(135deg,rgba(249,115,22,0.2),rgba(249,115,22,0.08));color:#f97316}
.detect-signal-banner.ds-warning .detect-signal-pulse{border-color:rgba(249,115,22,0.4)}
.detect-signal-banner.ds-watch .detect-signal-icon-wrap{background:linear-gradient(135deg,rgba(234,179,8,0.2),rgba(234,179,8,0.08));color:#eab308}
.detect-signal-banner.ds-watch .detect-signal-pulse{border-color:rgba(234,179,8,0.4)}

.detect-signal-label{font-size:11px;font-weight:800;color:#6B7280;text-transform:uppercase;letter-spacing:.10em}
.detect-signal-verdict{font-size:20px;font-weight:900;color:#00e88f;line-height:1.1;letter-spacing:.01em}
.detect-signal-banner.ds-critical .detect-signal-verdict{color:#ef4444}
.detect-signal-banner.ds-warning .detect-signal-verdict{color:#f97316}
.detect-signal-banner.ds-watch .detect-signal-verdict{color:#eab308}

/* Metrics row */
.detect-signal-metrics{display:flex;gap:20px;flex:1;justify-content:center;flex-wrap:wrap}
.detect-signal-metric{text-align:center;min-width:70px}
.detect-signal-metric-label{font-size:10px;font-weight:700;color:#6B7280;text-transform:uppercase;letter-spacing:.06em}
.detect-signal-metric-value{font-size:16px;font-weight:800;color:var(--text-primary);margin-top:2px}

/* Detail button */
.detect-signal-detail-btn{
  width:38px;height:38px;border-radius:10px;border:1px solid rgba(0,232,143,0.15);background:rgba(0,232,143,0.06);
  color:#00e88f;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s;flex-shrink:0
}
.detect-signal-detail-btn:hover{background:rgba(0,232,143,0.15);border-color:rgba(0,232,143,0.30);transform:translateX(2px)}

/* Domain mini-cards row */
.detect-signal-domains{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 20px 16px
}
.detect-signal-domain{
  display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;
  background:rgba(0,0,0,0.02);border:1px solid rgba(0,0,0,0.06);transition:all .3s
}
.detect-signal-domain:hover{background:rgba(0,168,107,0.04);border-color:rgba(0,168,107,0.12)}
.detect-signal-domain i{font-size:14px;flex-shrink:0}
.detect-signal-domain-name{font-size:12px;font-weight:700;color:#4B5563;text-transform:uppercase;letter-spacing:.04em;flex:1;white-space:nowrap}
.detect-signal-domain-level{font-size:12px;font-weight:800;padding:2px 6px;border-radius:5px;background:rgba(0,232,143,0.10);color:#00e88f;white-space:nowrap}
.detect-signal-domain-alg{font-size:11px;color:#9CA3AF;white-space:nowrap}

/* Domain level colors */
.detect-signal-domain-level.ds-level-normal{background:rgba(0,232,143,0.10);color:#00e88f}
.detect-signal-domain-level.ds-level-watch{background:rgba(234,179,8,0.12);color:#eab308}
.detect-signal-domain-level.ds-level-warning{background:rgba(249,115,22,0.12);color:#f97316}
.detect-signal-domain-level.ds-level-critical{background:rgba(239,68,68,0.12);color:#ef4444}

/* Light theme */
.light-theme .detect-signal-banner{background:linear-gradient(135deg,rgba(255,255,255,0.97),rgba(248,250,252,0.95));border-color:rgba(0,168,107,0.15);box-shadow:0 4px 24px rgba(0,0,0,0.06)}
.light-theme .detect-signal-label{color:rgba(0,0,0,0.40)}
.light-theme .detect-signal-metric-label{color:rgba(0,0,0,0.40)}
.light-theme .detect-signal-metric-value{color:#111827}
.light-theme .detect-signal-domain{background:rgba(0,0,0,0.03);border-color:rgba(0,0,0,0.06)}
.light-theme .detect-signal-domain-name{color:rgba(0,0,0,0.55)}
.light-theme .detect-signal-domain-alg{color:rgba(0,0,0,0.35)}

/* Mobile: 2x2 grid for domains, stacked metrics */
@media(max-width:768px){
  .detect-signal-header{flex-direction:column;align-items:flex-start;gap:12px;padding:14px 16px 10px}
  .detect-signal-metrics{justify-content:flex-start;gap:12px}
  .detect-signal-metric{min-width:55px}
  .detect-signal-metric-value{font-size:14px}
  .detect-signal-verdict{font-size:16px}
  .detect-signal-icon-wrap{width:40px;height:40px;font-size:16px}
  .detect-signal-domains{grid-template-columns:repeat(2,1fr);gap:6px;padding:0 16px 14px}
  .detect-signal-domain{padding:8px 10px;gap:6px}
  .detect-signal-detail-btn{position:absolute;top:14px;right:14px}
}

/* ══════════════════════════════════════════════════
   v12.0 UPGRADE — KPI Tiles, Domain Threat Strip,
   Situation Banner, Mobile Nav Enhancements
   ══════════════════════════════════════════════════ */

/* ── KPI TILES v12 — Color-coded compact grid ───── */
.kpi-tiles-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.kpi-tile{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;background:var(--bg-card);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid rgba(0,232,143,0.08);overflow:hidden;transition:all .4s cubic-bezier(0.22,1,0.36,1)}
.kpi-tile:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(0,0,0,0.2)}
.kpi-tile-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;position:relative}
.kpi-tile-icon::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.15),transparent 60%);pointer-events:none;border-radius:12px}
.kpi-tile-body{flex:1;min-width:0}
.kpi-tile-value{font-size:22px;font-weight:900;line-height:1;color:var(--text-primary);letter-spacing:-0.03em}
.kpi-tile-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600;margin-top:2px}
.kpi-tile-sparkline{position:absolute;right:8px;bottom:4px;opacity:0.25;pointer-events:none}

/* Facilities — Green accent */
.kpi-tile-facilities{border-left:3px solid #00e88f}
.kpi-tile-facilities .kpi-tile-icon{background:rgba(0,232,143,0.12);color:#00e88f}
.kpi-tile-facilities:hover{border-color:rgba(0,232,143,0.35);box-shadow:0 8px 28px rgba(0,232,143,0.10)}

/* Countries — Blue accent */
.kpi-tile-countries{border-left:3px solid #3b82f6}
.kpi-tile-countries .kpi-tile-icon{background:rgba(59,130,246,0.12);color:#3b82f6}
.kpi-tile-countries:hover{border-color:rgba(59,130,246,0.35);box-shadow:0 8px 28px rgba(59,130,246,0.10)}

/* Threats — Red accent + pulse when active */
.kpi-tile-threats{border-left:3px solid #ef4444}
.kpi-tile-threats .kpi-tile-icon{background:rgba(239,68,68,0.12);color:#ef4444}
.kpi-tile-threats:hover{border-color:rgba(239,68,68,0.35);box-shadow:0 8px 28px rgba(239,68,68,0.10)}
.kpi-tile-threats.has-threats{animation:kpiThreatPulse 2.5s ease-in-out infinite}
.kpi-tile-threats.has-threats .kpi-tile-value{color:#ef4444}
@keyframes kpiThreatPulse{0%,100%{border-color:rgba(239,68,68,0.35);box-shadow:0 0 0 0 rgba(239,68,68,0.2)}50%{border-color:rgba(239,68,68,0.6);box-shadow:0 0 20px rgba(239,68,68,0.15)}}

/* Sources — Purple accent + amber warning when 0 */
.kpi-tile-sources{border-left:3px solid #a855f7}
.kpi-tile-sources .kpi-tile-icon{background:rgba(168,85,247,0.12);color:#a855f7}
.kpi-tile-sources:hover{border-color:rgba(168,85,247,0.35);box-shadow:0 8px 28px rgba(168,85,247,0.10)}
.kpi-tile-sources.no-sources{border-left-color:#f59e0b}
.kpi-tile-sources.no-sources .kpi-tile-icon{background:rgba(245,158,11,0.15);color:#f59e0b}
.kpi-tile-sources.no-sources .kpi-tile-value{color:#f59e0b}

/* ── DOMAIN THREAT STRIP v12 ────────────────────── */
.domain-threat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px 20px}
.domain-strip-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:var(--bg-card);border:1px solid var(--border-subtle);transition:all .3s ease;position:relative;overflow:hidden}
.domain-strip-item:hover{border-color:var(--border-medium);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.domain-strip-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.domain-strip-info{flex:1;min-width:0}
.domain-strip-name{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;line-height:1}
.domain-strip-level{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-top:1px}
.domain-strip-score{font-size:16px;font-weight:900;letter-spacing:-0.03em;flex-shrink:0}
.domain-strip-bar{position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(0,168,107,0.06)}
.domain-strip-bar-fill{height:100%;border-radius:0 0 10px 10px;transition:width 1s cubic-bezier(0.22,1,0.36,1)}

/* ── SITUATION BANNER v12 ───────────────────────── */
.situation-banner{background:var(--bg-card);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid var(--border-subtle);border-left:3px solid var(--primary);border-radius:14px;padding:14px 18px;margin-bottom:16px;transition:all .3s ease}
.situation-banner:hover{border-color:var(--border-medium)}
.situation-banner-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.situation-banner-left{display:flex;align-items:center;gap:8px}
.situation-banner-icon{font-size:14px;color:var(--primary)}
.situation-banner-title{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--primary)}
.situation-banner-time{font-size:11px;color:var(--text-muted)}
.situation-banner-badge{font-size:12px;font-weight:800;padding:3px 10px;border-radius:6px;text-transform:uppercase;letter-spacing:.06em;transition:all .3s ease}
.situation-banner-badge.badge-critical{background:rgba(239,68,68,0.15);color:#ef4444;border:1px solid rgba(239,68,68,0.25)}
.situation-banner-badge.badge-high{background:rgba(245,158,11,0.15);color:#f59e0b;border:1px solid rgba(245,158,11,0.25)}
.situation-banner-badge.badge-elevated{background:rgba(234,179,8,0.15);color:#eab308;border:1px solid rgba(234,179,8,0.25)}
.situation-banner-badge.badge-guarded{background:rgba(0,232,143,0.15);color:#00e88f;border:1px solid rgba(0,232,143,0.25)}
.situation-banner-badge.badge-low{background:rgba(107,131,168,0.15);color:#6b83a8;border:1px solid rgba(107,131,168,0.25)}
.situation-banner-text{font-size:13px;line-height:1.6;color:var(--text-secondary)}

/* ── MOBILE BOTTOM NAV v12 — Green pill + badge ─── */
.mobile-nav-item{position:relative}
.mobile-nav-item.active{color:#00e88f}
.mobile-nav-item.active::before{content:'';position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:20px;height:3px;border-radius:3px;background:#00e88f;box-shadow:0 0 8px rgba(0,232,143,0.4)}
.mobile-nav-badge{position:absolute;top:2px;right:4px;min-width:14px;height:14px;border-radius:7px;background:#ef4444;color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 3px;border:1.5px solid #ffffff;line-height:1;animation:badgePop 0.3s cubic-bezier(0.4,0,0.2,1)}
@keyframes badgePop{from{transform:scale(0)}to{transform:scale(1)}}

/* ── v12 MOBILE RESPONSIVE ──────────────────────── */
@media(max-width:768px){
  .kpi-tiles-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .domain-threat-strip{grid-template-columns:repeat(2,1fr);gap:6px;padding:6px 12px}
  .kpi-tile{padding:10px 12px}
  .kpi-tile-value{font-size:18px}
  .kpi-tile-icon{width:32px;height:32px;font-size:13px}
  .kpi-tile-sparkline{display:none}
  .domain-strip-score{font-size:13px}
  .domain-strip-icon{width:24px;height:24px;font-size:12px}
}
@media(max-width:480px){
  .kpi-tiles-grid{grid-template-columns:repeat(2,1fr);gap:6px}
  .domain-threat-strip{grid-template-columns:repeat(2,1fr);gap:4px;padding:4px 8px}
  .kpi-tile{gap:8px;padding:8px 10px}
  .kpi-tile-value{font-size:16px}
  .kpi-tile-label{font-size:10px}
  .kpi-tile-icon{width:28px;height:28px;font-size:13px;border-radius:8px}
  .domain-strip-item{padding:6px 8px;gap:6px}
  .domain-strip-score{font-size:13px}
  .domain-strip-name{font-size:11px}
}

/* ── v12 LIGHT THEME ADDITIONS ──────────────────── */

/* ══════════════════════════════════════════════════════════════
   v13.0 EXECUTIVE DECISION-MAKER DASHBOARD
   Focused layout: Hero → Domains → Brief + Actions → Intel → Nav
   ══════════════════════════════════════════════════════════════ */

/* ── EXECUTIVE HERO — Threat Level at a Glance ── */
.exec-hero{
  position:relative;background:var(--bg-card);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);
  border:1px solid rgba(0,232,143,0.08);border-radius:18px;padding:28px 32px;margin-bottom:20px;overflow:hidden;
  box-shadow:0 4px 40px rgba(0,0,0,0.12);transition:all .4s cubic-bezier(0.22,1,0.36,1)
}
.exec-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),#3b82f6,#a855f7,#f59e0b);opacity:0.6}
.exec-hero-main{display:flex;align-items:center;gap:28px;margin-bottom:20px;flex-wrap:wrap}
.exec-hero-score-ring{position:relative;width:110px;height:110px;flex-shrink:0}
.exec-hero-score-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.exec-hero-score-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.exec-hero-score-value{font-size:32px;font-weight:900;color:var(--text-primary);letter-spacing:-0.03em;line-height:1}
.exec-hero-score-label{font-size:10px;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:2px}
.exec-hero-info{flex:1;min-width:0}
.exec-hero-level{font-size:28px;font-weight:900;letter-spacing:-0.02em;line-height:1.1;margin-bottom:6px}
.exec-hero-watchcon{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.exec-hero-watchcon-badge{font-size:13px;font-weight:800;padding:4px 14px;border-radius:8px;background:rgba(0,232,143,0.1);color:#00e88f;border:1px solid rgba(0,232,143,0.2);letter-spacing:.04em}
.exec-hero-time{font-size:13px;color:var(--text-muted);letter-spacing:.02em}
.exec-hero-brief{font-size:13px;line-height:1.6;color:var(--text-secondary);max-width:600px}
.exec-hero-stats{display:flex;gap:4px;flex-wrap:wrap}
.exec-hero-stat{flex:1;min-width:80px;text-align:center;padding:10px 8px;border-radius:12px;background:rgba(0,168,107,0.03);border:1px solid var(--border-subtle);transition:all .25s ease}
.exec-hero-stat:hover{border-color:var(--border-medium);background:rgba(0,232,143,0.03)}
.exec-hero-stat-value{font-size:20px;font-weight:900;color:var(--text-primary);letter-spacing:-0.02em;line-height:1}
.exec-hero-stat-label{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:3px}

/* ── EXECUTIVE DOMAIN CARDS — 4-column clickable ── */
.exec-domains{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.exec-domain-card{
  position:relative;display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:14px;
  background:var(--bg-card);backdrop-filter:blur(16px);border:1px solid var(--border-subtle);cursor:pointer;
  overflow:hidden;transition:all .35s cubic-bezier(0.22,1,0.36,1)
}
.exec-domain-card:hover{transform:translateY(-4px);border-color:var(--border-medium);box-shadow:0 12px 32px rgba(0,0,0,0.15)}
.exec-domain-card:active{transform:translateY(-1px)}
.exec-domain-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.exec-domain-body{display:flex;align-items:center;justify-content:space-between}
.exec-domain-name{font-size:13px;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.exec-domain-score{font-size:24px;font-weight:900;letter-spacing:-0.03em}
.exec-domain-level{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.exec-domain-bar{height:4px;border-radius:4px;background:rgba(0,168,107,0.06);overflow:hidden;margin-top:2px}
.exec-domain-bar-fill{height:100%;border-radius:4px;transition:width 1.2s cubic-bezier(0.22,1,0.36,1)}
.exec-domain-signal{font-size:11px;color:var(--text-muted);line-height:1.3;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.exec-domain-arrow{position:absolute;top:16px;right:14px;font-size:12px;color:var(--text-muted);opacity:0;transition:all .25s}
.exec-domain-card:hover .exec-domain-arrow{opacity:1;transform:translateX(3px)}

/* ── EXECUTIVE BRIEF + ACTION ROW ── */
.exec-brief-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.exec-brief-card,.exec-action-card{
  padding:20px;border-radius:14px;background:var(--bg-card);backdrop-filter:blur(16px);
  border:1px solid var(--border-subtle);display:flex;flex-direction:column;
  transition:all .3s ease;overflow:hidden
}
.exec-brief-card:hover,.exec-action-card:hover{border-color:var(--border-medium)}
.exec-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.exec-card-title{font-size:13px;font-weight:800;color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:8px}
.exec-card-title i{font-size:13px}
.exec-brief-text{font-size:13px;line-height:1.7;color:var(--text-secondary);flex:1;margin-bottom:12px}
.exec-brief-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px solid var(--border-subtle)}
.exec-drill-link{
  display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;
  color:#00e88f;background:rgba(0,232,143,0.06);border:1px solid rgba(0,232,143,0.15);
  padding:5px 12px;border-radius:8px;cursor:pointer;transition:all .2s;text-decoration:none
}
.exec-drill-link:hover{background:rgba(0,232,143,0.12);border-color:rgba(0,232,143,0.3);transform:translateX(2px)}
.exec-drill-link i:last-child{transition:transform .2s}
.exec-drill-link:hover i:last-child{transform:translateX(3px)}
.exec-action-count{font-size:14px;font-weight:900;padding:4px 12px;border-radius:8px;background:rgba(239,68,68,0.1);color:#ef4444;min-width:30px;text-align:center}
.exec-action-list{flex:1;max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.exec-empty-state{display:flex;align-items:center;gap:10px;justify-content:center;padding:24px;color:var(--text-muted);font-size:13px;font-weight:600;border:1px dashed var(--border-subtle);border-radius:10px;background:rgba(0,232,143,0.02)}
.exec-empty-state i{font-size:18px;color:#00e88f;opacity:0.5}

/* ── EXECUTIVE INTEL ROW — News + Detection ── */
.exec-intel-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.exec-intel-card{
  padding:20px;border-radius:14px;background:var(--bg-card);backdrop-filter:blur(16px);
  border:1px solid var(--border-subtle);display:flex;flex-direction:column;
  transition:all .3s ease;overflow:hidden
}
.exec-intel-card:hover{border-color:var(--border-medium)}
.exec-news-feed{max-height:320px;overflow-y:auto;flex:1}
.exec-detect-summary{margin-bottom:16px}
.exec-detect-verdict{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;background:rgba(0,232,143,0.04);border:1px solid rgba(0,232,143,0.1);margin-bottom:12px}
.exec-detect-verdict-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}
.exec-detect-verdict-value{font-size:18px;font-weight:900;color:#00e88f;letter-spacing:0.02em}
.exec-detect-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.exec-detect-stat{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-radius:8px;background:rgba(0,168,107,0.02);border:1px solid var(--border-subtle)}
.exec-detect-stat-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.exec-detect-stat-value{font-size:13px;font-weight:800;color:var(--text-primary)}
.exec-predictions-compact{max-height:200px;overflow-y:auto}

/* ── EXECUTIVE NAV TILES — Quick-access grid ── */
.exec-nav-tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:8px}
.exec-nav-tile{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  padding:16px 8px;border-radius:12px;background:var(--bg-card);border:1px solid var(--border-subtle);
  cursor:pointer;transition:all .3s cubic-bezier(0.22,1,0.36,1);text-decoration:none
}
.exec-nav-tile:hover{transform:translateY(-3px);border-color:rgba(0,232,143,0.3);box-shadow:0 8px 24px rgba(0,0,0,0.12);background:rgba(0,232,143,0.04)}
.exec-nav-tile i{font-size:18px;color:#00e88f;transition:transform .25s}
.exec-nav-tile:hover i{transform:scale(1.15)}
.exec-nav-tile span{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.exec-nav-tile:hover span{color:var(--text-primary)}

/* ── Empty State & Loading Placeholders ── */
.cbrn-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;border:1px dashed rgba(100,116,139,0.15);border-radius:12px;background:rgba(0,168,107,0.02)}
.cbrn-empty-state i.empty-icon{font-size:40px;color:rgba(0,168,107,0.2);margin-bottom:16px}
.cbrn-empty-state .empty-title{font-size:15px;font-weight:700;color:var(--text-primary);margin-bottom:6px}
.cbrn-empty-state .empty-desc{font-size:13px;color:var(--text-muted);max-width:400px;line-height:1.6;margin-bottom:16px}
.cbrn-empty-state .empty-status{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.cbrn-empty-state .empty-status.scanning{background:rgba(0,232,143,0.08);color:#00e88f;border:1px solid rgba(0,232,143,0.15)}
.cbrn-empty-state .empty-status.offline{background:rgba(239,68,68,0.08);color:#ef4444;border:1px solid rgba(239,68,68,0.15)}
.cbrn-empty-state .empty-status.building{background:rgba(59,130,246,0.08);color:#3b82f6;border:1px solid rgba(59,130,246,0.15)}
.cbrn-empty-state .empty-status.awaiting{background:rgba(245,158,11,0.08);color:#f59e0b;border:1px solid rgba(245,158,11,0.15)}
.cbrn-empty-state .empty-action{margin-top:8px}
.cbrn-loading-pulse{animation:cbrn-pulse 2s ease-in-out infinite}
@keyframes cbrn-pulse{0%,100%{opacity:0.4}50%{opacity:1}}
.cbrn-loading-mini{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:600;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase}
.cbrn-loading-mini i{font-size:14px;color:#00e88f;opacity:0.6}
.light-theme .cbrn-loading-mini i{color:#00a86b}
.light-theme .cbrn-empty-state{background:rgba(241,245,249,0.5);border-color:rgba(148,163,184,0.2)}
.light-theme .cbrn-empty-state i.empty-icon{color:rgba(0,168,107,0.2)}

/* ── Geo-Dataset Selector Bar ── */
.geo-dataset-bar{display:flex;align-items:center;gap:6px;padding:6px 12px;margin-bottom:10px;background:rgba(6,182,212,0.03);border:1px solid rgba(6,182,212,0.08);border-radius:10px;overflow-x:auto;flex-wrap:wrap}
.geo-dataset-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);white-space:nowrap;display:flex;align-items:center;gap:4px}
.geo-dataset-label i{font-size:11px;color:rgba(6,182,212,0.5)}
.geo-dataset-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;color:var(--text-muted);background:transparent;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:all .2s}
.geo-dataset-btn:hover{background:rgba(6,182,212,0.06);border-color:rgba(6,182,212,0.15);color:#06b6d4}
.geo-dataset-btn.active{background:rgba(6,182,212,0.1);border-color:rgba(6,182,212,0.2);color:#06b6d4}
.geo-dataset-btn i{font-size:12px}
.geo-dataset-sep{color:rgba(6,182,212,0.15);font-size:13px}
.geo-flag{font-size:13px;line-height:1}

/* ── Pipeline Flow Bar (Detection ↔ AI cross-link) ── */
.pipeline-flow-bar{display:flex;align-items:center;gap:6px;padding:8px 14px;margin-bottom:12px;background:rgba(0,232,143,0.03);border:1px solid rgba(0,232,143,0.08);border-radius:10px;overflow-x:auto}
.pipeline-flow-step{display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:6px;font-size:12px;font-weight:600;color:var(--text-muted);white-space:nowrap;transition:all .2s}
.pipeline-flow-step i{font-size:12px}
.pipeline-flow-step span{font-size:12px}
.pipeline-flow-step.active{color:rgba(0,232,143,0.5)}
.pipeline-flow-step.current{background:rgba(0,232,143,0.1);color:#00e88f;border:1px solid rgba(0,232,143,0.2)}
.pipeline-flow-step.clickable{cursor:pointer;border:1px solid transparent}
.pipeline-flow-step.clickable:hover{background:rgba(0,232,143,0.06);border-color:rgba(0,232,143,0.15);color:#00e88f}
.pipeline-flow-arrow{color:rgba(0,232,143,0.2);font-size:10px}

/* ── Section Divider (for merged panels) ── */
.exec-section-divider{display:flex;align-items:center;gap:12px;margin:20px 0 8px}
.exec-section-divider-line{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(0,232,143,0.15),transparent)}
.exec-section-divider-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(0,232,143,0.6);white-space:nowrap;display:flex;align-items:center;gap:6px}
.exec-section-divider-label i{font-size:11px}

/* ── v13 RESPONSIVE — Executive Dashboard ── */
@media(max-width:1024px){
  .exec-domains{grid-template-columns:repeat(2,1fr)}
  .exec-brief-row,.exec-intel-row{grid-template-columns:1fr}
  .exec-nav-tiles{grid-template-columns:repeat(3,1fr)}
  .exec-hero-main{gap:20px}
}
@media(max-width:768px){
  .exec-hero{padding:20px 16px;border-radius:14px}
  .exec-hero-main{flex-direction:column;align-items:flex-start;gap:14px}
  .exec-hero-score-ring{width:80px;height:80px}
  .exec-hero-score-value{font-size:24px}
  .exec-hero-level{font-size:22px}
  .exec-hero-brief{font-size:13px}
  .exec-hero-stats{gap:3px}
  .exec-hero-stat{min-width:60px;padding:8px 6px}
  .exec-hero-stat-value{font-size:16px}
  .exec-domains{grid-template-columns:repeat(2,1fr);gap:8px}
  .exec-domain-card{padding:12px}
  .exec-domain-score{font-size:20px}
  .exec-brief-row,.exec-intel-row{grid-template-columns:1fr;gap:12px}
  .exec-nav-tiles{grid-template-columns:repeat(3,1fr);gap:8px}
  .exec-nav-tile{padding:12px 6px}
  .exec-nav-tile i{font-size:15px}
}
@media(max-width:480px){
  .exec-domains{grid-template-columns:1fr 1fr;gap:6px}
  .exec-domain-card{padding:10px}
  .exec-domain-score{font-size:18px}
  .exec-hero-stats{gap:2px}
  .exec-hero-stat{min-width:55px;padding:6px 4px}
  .exec-hero-stat-value{font-size:14px}
  .exec-hero-stat-label{font-size:9px}
  .exec-nav-tiles{grid-template-columns:repeat(2,1fr);gap:6px}
}

/* ── v13 LIGHT THEME — Executive Dashboard ── */

/* ============================================================
   SIGNAL DETECTION v14.0 — BioR Design System Integration
   Elevated detection UI: verdict banners, algorithm cards,
   sparklines, drilldowns, alert timeline, source health
   ============================================================ */

/* ── Detection Labels (theme-aware) ── */
.det-label{color:#6b7280}
.det-text-primary{color:#1f2937}
.det-text-secondary{color:#4b5563}

/* ── Verdict Banner ── */
.det-verdict-banner-card{padding:20px;position:relative;overflow:hidden;border:1px solid rgba(0,168,107,0.12);border-radius:18px;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,0.04)}
.det-verdict-banner-card::before{content:'';position:absolute;top:0;right:0;width:200px;height:200px;background:radial-gradient(circle,rgba(0,168,107,0.06) 0%,transparent 70%);border-radius:50%;transform:translate(30%,-30%);pointer-events:none}
.det-verdict-inner{display:flex;flex-wrap:wrap;align-items:center;gap:16px;position:relative}
.det-verdict-primary{display:flex;align-items:center;gap:12px}
.det-verdict-metrics{display:flex;flex-wrap:wrap;gap:16px;flex:1}
.det-metric-cell{min-width:70px}
.det-verdict-controls{display:flex;gap:6px;align-items:center;margin-left:auto}
.det-verdict-icon-wrap{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;transition:all 0.3s ease}
.det-verdict-icon-normal{background:rgba(0,168,107,0.12)}
.det-verdict-icon-watch{background:rgba(234,179,8,0.15)}
.det-verdict-icon-warning{background:rgba(249,115,22,0.15)}
.det-verdict-icon-critical{background:rgba(239,68,68,0.15)}

/* ── Level border colors for verdict banner ── */
.det-level-normal{border-color:rgba(0,168,107,0.2)}
.det-level-watch{border-color:rgba(234,179,8,0.3)}
.det-level-warning{border-color:rgba(249,115,22,0.3)}
.det-level-critical{border-color:rgba(239,68,68,0.35);box-shadow:0 0 20px rgba(239,68,68,0.1)}

/* ── Pulse animation for critical/warning ── */
@keyframes detPulse{0%{box-shadow:0 0 0 0 rgba(239,68,68,0.15)}70%{box-shadow:0 0 0 12px rgba(239,68,68,0)}100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}}
.det-pulse{animation:detPulse 2s ease-in-out infinite}

/* ── Detection Select & Buttons ── */
.det-select{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:5px 10px;font-size:13px;color:#374151;cursor:pointer;transition:border-color 0.2s}
.det-select:hover{border-color:rgba(0,168,107,0.3)}
.det-btn-analyze{font-size:13px;padding:5px 14px;border-radius:10px;background:linear-gradient(135deg,#00A86B,#059669);color:#fff;border:none;cursor:pointer;font-weight:600;transition:all 0.2s}
.det-btn-analyze:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,168,107,0.25)}
.det-btn-secondary{font-size:12px;padding:5px 10px;border-radius:8px;background:rgba(0,168,107,0.06);color:#00A86B;border:1px solid rgba(0,168,107,0.15);cursor:pointer;transition:all 0.2s}
.det-btn-secondary:hover{background:rgba(0,168,107,0.12);border-color:rgba(0,168,107,0.25)}
.det-btn-active{background:rgba(0,168,107,0.15);border-color:#00A86B}

/* ── Algorithm Cards Grid (5 columns for 5 algos) ── */
.det-algo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.det-algo-card{padding:10px;border-radius:12px;border:1px solid #e5e7eb;background:rgba(255,255,255,0.5);transition:all 0.25s ease}
.det-algo-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.06)}
.det-algo-normal{border-color:#374151;background:rgba(255,255,255,0.5)}
.det-algo-watch{border-color:rgba(234,179,8,0.3);background:rgba(234,179,8,0.03)}
.det-algo-warning{border-color:rgba(249,115,22,0.3);background:rgba(249,115,22,0.04)}
.det-algo-critical{border-color:rgba(239,68,68,0.3);background:rgba(239,68,68,0.04);animation:detPulse 3s ease-in-out infinite}
.det-algo-level-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em}
.det-algo-formula{font-size:11px;color:#9ca3af;margin-top:4px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── Ensemble Summary ── */
.det-ensemble-summary{margin-top:12px;padding:10px 12px;border-radius:12px;border:1px solid rgba(0,168,107,0.12);background:rgba(0,168,107,0.02)}
.det-confidence-bar-wrap{margin-top:6px;width:100%;background:#f3f4f6;border-radius:999px;height:6px;overflow:hidden}
.det-confidence-bar{height:6px;border-radius:999px;transition:width 0.6s cubic-bezier(0.22,1,0.36,1)}

/* ── Entropy Note ── */
.det-entropy-note{margin-top:8px;padding:8px;border-radius:10px;background:rgba(139,92,246,0.03);border:1px solid rgba(139,92,246,0.12)}

/* ── Channel Distribution Bars ── */
.det-channel-bar{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:8px;background:rgba(249,250,251,0.8)}
.det-bar-track{width:100%;background:#f3f4f6;border-radius:999px;height:5px;overflow:hidden}
.det-bar-fill{height:5px;border-radius:999px;transition:width 0.5s cubic-bezier(0.22,1,0.36,1)}

/* ── Sparkline Row ── */
.det-sparkline-row{height:36px;margin-bottom:8px;border-radius:8px;overflow:hidden;background:rgba(249,250,251,0.4)}

/* ── Category Card with drilldown ── */
.det-category-card{transition:all 0.3s ease}
.det-drilldown-btn{width:24px;height:24px;border-radius:8px;border:1px solid #e5e7eb;background:rgba(249,250,251,0.8);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;transition:all 0.2s}
.det-drilldown-btn:hover{background:rgba(0,168,107,0.08);border-color:rgba(0,168,107,0.2);color:#00A86B}
.det-drilldown{margin-top:12px;border-top:1px solid #e5e7eb;padding-top:12px}
.det-drill-stat{display:flex;justify-content:space-between;padding:4px 8px;border-radius:8px;background:rgba(249,250,251,0.8);border:1px solid #f3f4f6}

/* ── Alert Timeline ── */
.det-alert-timeline-card{padding:14px 18px}
.det-alert-timeline-scroll{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
.det-timeline-item{padding:8px 12px;border-radius:10px;border-left:3px solid transparent;transition:all 0.2s}
.det-timeline-watch{background:rgba(234,179,8,0.04);border-left-color:#eab308}
.det-timeline-warning{background:rgba(249,115,22,0.04);border-left-color:#f97316}
.det-timeline-critical{background:rgba(239,68,68,0.05);border-left-color:#ef4444;animation:detPulse 3s ease-in-out infinite}

/* ── Source Health ── */
.det-source-health-item{display:flex;align-items:center;padding:5px 8px;border-radius:8px;transition:all 0.2s}
.det-source-active{background:rgba(249,250,251,0.8)}
.det-source-inactive{background:rgba(239,68,68,0.02);border:1px dashed rgba(239,68,68,0.15)}

/* ── Blind Spots ── */
.det-blind-spot-ok{display:flex;align-items:center;padding:12px;border-radius:12px;background:rgba(0,168,107,0.04);border:1px solid rgba(0,168,107,0.12)}
.det-blind-spot-item{display:flex;align-items:flex-start;gap:0;padding:8px 10px;border-radius:10px;background:rgba(239,68,68,0.03);border:1px solid rgba(239,68,68,0.1)}

/* ── Narrative ── */
#det-narrative-text{white-space:pre-wrap;font-family:'JetBrains Mono',monospace;font-size:12px;line-height:1.6;padding:12px;border-radius:10px;background:rgba(249,250,251,0.8);border:1px solid #f3f4f6;max-height:400px;overflow-y:auto}

/* ── Methodology Cards ── */
.det-method-card{padding:16px;border-radius:14px;border:1px solid #e5e7eb;background:rgba(255,255,255,0.5);transition:all 0.2s}
.det-method-card:hover{border-color:rgba(0,168,107,0.2);box-shadow:0 4px 16px rgba(0,0,0,0.04)}

/* ── Print overrides ── */
@media print{
  .det-verdict-banner-card{break-inside:avoid}
  .det-pulse{animation:none!important}
  .det-btn-analyze,.det-btn-secondary,.det-select,.det-drilldown-btn{display:none!important}
}

/* ============================================================
   SIGNAL DETECTION v14.0 — DARK THEME
   ============================================================ */
body:not(.light-theme) .det-label{color:#6B7280}
body:not(.light-theme) .det-text-primary{color:#374151}
body:not(.light-theme) .det-text-secondary{color:#d1d5db}
body:not(.light-theme) .det-verdict-banner-card{background:var(--bg-card,#111827);border-color:rgba(0,232,143,0.1);box-shadow:0 4px 20px rgba(0,0,0,0.3)}
body:not(.light-theme) .det-verdict-banner-card::before{background:radial-gradient(circle,rgba(0,232,143,0.06) 0%,transparent 70%)}
body:not(.light-theme) .det-select{background:rgba(0,168,107,0.05);border-color:rgba(255,255,255,0.1);color:#d1d5db}
body:not(.light-theme) .det-btn-secondary{background:rgba(0,232,143,0.06);color:#00e88f;border-color:rgba(0,232,143,0.15)}
body:not(.light-theme) .det-algo-card{background:rgba(0,168,107,0.03);border-color:rgba(0,168,107,0.08)}
body:not(.light-theme) .det-algo-normal{background:rgba(0,168,107,0.03);border-color:rgba(0,168,107,0.08)}
body:not(.light-theme) .det-algo-watch{background:rgba(234,179,8,0.06);border-color:rgba(234,179,8,0.2)}
body:not(.light-theme) .det-algo-warning{background:rgba(249,115,22,0.06);border-color:rgba(249,115,22,0.2)}
body:not(.light-theme) .det-algo-critical{background:rgba(239,68,68,0.06);border-color:rgba(239,68,68,0.25)}
body:not(.light-theme) .det-algo-formula{color:#9CA3AF}
body:not(.light-theme) .det-ensemble-summary{background:rgba(0,232,143,0.04);border-color:rgba(0,232,143,0.1)}
body:not(.light-theme) .det-confidence-bar-wrap{background:rgba(0,168,107,0.06)}
body:not(.light-theme) .det-entropy-note{background:rgba(139,92,246,0.06);border-color:rgba(139,92,246,0.15)}
body:not(.light-theme) .det-channel-bar{background:rgba(0,168,107,0.04)}
body:not(.light-theme) .det-bar-track{background:rgba(0,168,107,0.06)}
body:not(.light-theme) .det-sparkline-row{background:rgba(0,168,107,0.02)}
body:not(.light-theme) .det-drilldown-btn{background:rgba(0,168,107,0.05);border-color:rgba(255,255,255,0.1);color:#6B7280}
body:not(.light-theme) .det-drilldown-btn:hover{background:rgba(0,232,143,0.1);border-color:rgba(0,232,143,0.2);color:#00e88f}
body:not(.light-theme) .det-drilldown{border-top-color:rgba(255,255,255,0.08)}
body:not(.light-theme) .det-drill-stat{background:rgba(0,168,107,0.04);border-color:rgba(0,168,107,0.06)}
body:not(.light-theme) .det-alert-timeline-card{background:var(--bg-card,#111827);border-color:rgba(0,232,143,0.1)}
body:not(.light-theme) .det-timeline-watch{background:rgba(234,179,8,0.06)}
body:not(.light-theme) .det-timeline-warning{background:rgba(249,115,22,0.06)}
body:not(.light-theme) .det-timeline-critical{background:rgba(239,68,68,0.08)}
body:not(.light-theme) .det-source-active{background:rgba(0,168,107,0.04)}
body:not(.light-theme) .det-source-inactive{background:rgba(239,68,68,0.04);border-color:rgba(239,68,68,0.15)}
body:not(.light-theme) .det-blind-spot-ok{background:rgba(0,232,143,0.04);border-color:rgba(0,232,143,0.1)}
body:not(.light-theme) .det-blind-spot-item{background:rgba(239,68,68,0.06);border-color:rgba(239,68,68,0.12)}
body:not(.light-theme) #det-narrative-text{background:rgba(0,168,107,0.03);border-color:rgba(0,168,107,0.06);color:#d1d5db}
body:not(.light-theme) .det-method-card{background:rgba(0,168,107,0.03);border-color:rgba(0,168,107,0.08)}
body:not(.light-theme) .det-method-card:hover{border-color:rgba(0,232,143,0.15)}

/* ══════════════════════════════════════════════════
   FIX v15.1: Bottom Nav stability over Map/Atlas tabs
   Leaflet internally uses z-index 400-1000+. The nav
   must sit above all Leaflet panes and controls.
   Using isolation:isolate to contain Leaflet stacking.
   ══════════════════════════════════════════════════ */
/* Force bottom nav above everything including fullscreen map */
.mobile-bottom-nav{z-index:var(--z-mobile-nav);position:fixed}
/* Contain Leaflet's stacking context inside tab panels using CSS isolation */
#tab-map{position:relative;z-index:1;isolation:isolate}
#tab-atlas{position:relative;z-index:1;isolation:isolate}
/* Ensure map wrappers don't escape their stacking context */
#map-wrapper{position:relative;z-index:1;isolation:isolate}
#atlas-map{z-index:1}
/* Cap Leaflet controls so they never exceed panel z-index */
#tab-map .leaflet-top,#tab-map .leaflet-bottom,
#tab-atlas .leaflet-top,#tab-atlas .leaflet-bottom{z-index:999 !important}
#tab-map .leaflet-control,#tab-atlas .leaflet-control{z-index:999 !important}
/* Leaflet map panes must stay inside their container */
#tab-map .leaflet-pane,#tab-atlas .leaflet-pane{z-index:auto !important}
#tab-map .leaflet-tile-pane,#tab-atlas .leaflet-tile-pane{z-index:200 !important}
#tab-map .leaflet-overlay-pane,#tab-atlas .leaflet-overlay-pane{z-index:400 !important}
#tab-map .leaflet-marker-pane,#tab-atlas .leaflet-marker-pane{z-index:600 !important}
#tab-map .leaflet-popup-pane,#tab-atlas .leaflet-popup-pane{z-index:700 !important}
/* Prevent geolayer panel from escaping */
#geolayer-panel{z-index:999}
#map-legend{z-index:var(--z-panel)}
/* Mobile: ensure map tabs leave room for bottom nav */
@media(max-width:768px){
  #tab-map .page-content,#tab-atlas .page-content{padding-bottom:70px}
  #tab-map,#tab-atlas{padding-bottom:60px;overflow:visible !important}
  #map-wrapper{overflow:hidden;border-radius:10px}
  #map-wrapper #map{max-height:calc(100vh - 140px) !important}
  #atlas-map{max-height:calc(100vh - 200px) !important}
  .mobile-bottom-nav{display:flex !important}
}

/* ══════════════════════════════════════════════════
   v15.1: Signal Cards — Individual detected signals
   grouped by CBRN category for analyst review
   ══════════════════════════════════════════════════ */
.sig-category-card{overflow:hidden}
.sig-card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;transition:background .2s}
.sig-card-header:hover{background:rgba(0,168,107,0.03)}
.sig-chevron{color:var(--text-muted);font-size:13px;transition:transform .3s ease}
.sig-card-body{padding:0 12px 12px}
.sig-header-nuclear{border-left:3px solid #f59e0b}
.sig-header-biological{border-left:3px solid #00A86B}
.sig-header-chemical{border-left:3px solid #a855f7}
.sig-header-radiological{border-left:3px solid #3b82f6}
.sig-header-general{border-left:3px solid #6b7280}
.sig-empty{padding:12px;text-align:center;color:var(--text-muted);font-size:13px}
.sig-item{padding:10px 12px;margin-bottom:6px;border-radius:8px;background:rgba(249,250,251,0.8);border:1px solid rgba(0,168,107,0.08);transition:background .2s,border-color .2s}
.sig-item:hover{background:rgba(0,168,107,0.04);border-color:rgba(0,168,107,0.15)}
.sig-item:last-child{margin-bottom:0}
.sig-item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:4px}
.sig-item-title{font-size:13px;font-weight:600;color:var(--text-primary);line-height:1.4;flex:1}
.sig-item-strength{font-size:16px;font-weight:800;font-family:'JetBrains Mono',monospace;min-width:32px;text-align:right}
.sig-item-desc{font-size:12px;color:var(--text-muted);line-height:1.5;margin-bottom:6px;max-height:40px;overflow:hidden;text-overflow:ellipsis}
.sig-item-meta{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}
.sig-tag{display:inline-flex;align-items:center;gap:3px;font-size:11px;padding:2px 6px;border-radius:4px;background:rgba(0,168,107,0.04);color:var(--text-muted);border:1px solid rgba(0,168,107,0.08);white-space:nowrap}
.sig-tag i{font-size:10px;opacity:0.7}
.sig-tag-suppressed{background:rgba(239,68,68,0.08);color:#f87171;border-color:rgba(239,68,68,0.15)}
.sig-tag-source{background:rgba(99,102,241,0.08);color:#818cf8;border-color:rgba(99,102,241,0.15)}
.sig-item-bar{height:3px;border-radius:2px;background:rgba(0,168,107,0.08);overflow:hidden;margin-top:4px}
.sig-item-bar-fill{height:100%;border-radius:2px;transition:width .5s ease}
/* Light theme */
/* v18.1: Enhanced signal card styles */
.sig-item-title-link{color:var(--text-primary);text-decoration:none;transition:color .2s}
.sig-item-title-link:hover{color:#22d3ee;text-decoration:underline}
.sig-link-icon{font-size:9px;opacity:0.5;margin-left:4px;vertical-align:super}
.sig-item-title-link:hover .sig-link-icon{opacity:1}
.sig-item-source-row{display:flex;align-items:center;gap:6px;padding:6px 0 4px;margin-bottom:4px;border-bottom:1px solid rgba(0,168,107,0.06);flex-wrap:wrap}
.sig-favicon{width:16px;height:16px;border-radius:2px;flex-shrink:0}
.sig-source-name{font-size:12px;font-weight:600;color:#22d3ee}
.sig-source-sep{color:#D1D5DB;font-size:10px}
.sig-source-time{font-size:11px;color:var(--text-muted);display:inline-flex;align-items:center;gap:3px}
.sig-source-time i{font-size:9px;opacity:0.6}
.sig-source-rel{font-size:11px;display:inline-flex;align-items:center;gap:3px;font-weight:500}
.sig-source-rel i{font-size:9px}
.sig-source-link{font-size:11px;color:#22d3ee;text-decoration:none;display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;background:rgba(34,211,238,0.08);border:1px solid rgba(34,211,238,0.15);transition:all .2s;margin-left:auto;font-weight:500;white-space:nowrap}
.sig-source-link:hover{background:rgba(34,211,238,0.15);border-color:rgba(34,211,238,0.3);color:#67e8f9}
.sig-source-link i{font-size:9px}
/* Light theme overrides */

/* ══════════════════════════════════════════════════════════════════════════
   PHASE 8 — COMPREHENSIVE MOBILE RESPONSIVENESS
   Breakpoints: 1024px (tablet), 768px (large mobile), 480px (small mobile), 375px (tiny)
   ══════════════════════════════════════════════════════════════════════════ */

/* ── BOTTOM NAVIGATION BAR (mobile only) ─────────────────────────────── */
.mobile-bottom-nav {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 56px;
  background: #ffffff;
  border-top: 1px solid rgba(0,232,143,0.12);
  z-index: 50;
  align-items: stretch;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.mobile-bottom-nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  cursor: pointer;
  color:#9CA3AF;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: color .2s ease;
  padding: 6px 2px;
  -webkit-tap-highlight-color: transparent;
  border: none;
  background: none;
}
.mobile-bottom-nav-item i {
  font-size: 16px;
  transition: color .2s ease;
}
.mobile-bottom-nav-item.active,
.mobile-bottom-nav-item:active {
  color: #00e88f;
}
.mobile-bottom-nav-item.active i {
  color: #00e88f;
}

/* ── TABLET (≤1024px) ────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  /* Show bottom nav, add padding so content isn't hidden behind it */
  .mobile-bottom-nav { display: flex; }
  .content-area { padding-bottom: 60px; }

  /* Top bar adjustments */
  .top-bar { padding: 0 10px; gap: 6px; }
  .top-bar-domains { gap: 4px; }
  .top-bar-domain { padding: 3px 7px; font-size: 12px; }

  /* Command overview stat row */
  .ews-stats-row { flex-wrap: wrap; gap: 6px; }
  .ews-stat-item { min-width: 80px; }

  /* Domain cards — 2 columns on tablet */
  .domain-cards-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Intel report form */
  .intel-form-row { flex-direction: column; }
  .intel-form-row > * { width: 100% !important; }

  /* Treaty scoreboard — horizontal scroll */
  .treaty-scoreboard-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .treaty-scoreboard-table { min-width: 520px; }

  /* Country map filter buttons — wrap */
  .country-filter-bar { flex-wrap: wrap; gap: 4px; }
  .country-filter-btn { font-size: 12px; padding: 4px 8px; }

  /* QA metrics grid */
  .qa-metrics-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Signal detection panel */
  .sig-panel-header { flex-wrap: wrap; gap: 6px; }
}

/* ── LARGE MOBILE (≤768px) ───────────────────────────────────────────── */
@media (max-width: 768px) {
  /* Page padding */
  .page-content { padding: 10px !important; }

  /* Top bar — hide some elements */
  .ews-ticker { display: none !important; }
  .top-bar-time { display: none; }
  .top-bar { height: 44px; padding: 0 8px; }

  /* EWS hero section */
  .ews-hero { padding: 16px !important; }
  .ews-hero-left { gap: 10px; }
  .ews-threat-gauge { width: 64px !important; height: 64px !important; }
  .ews-threat-score { font-size: 22px !important; }
  .ews-threat-label { font-size: 16px !important; }
  .ews-threat-sub { font-size: 12px; }

  /* Domain cards — 2 columns, smaller */
  .domain-cards-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
  .domain-card { padding: 12px !important; }
  .domain-card-score { font-size: 22px !important; }
  .domain-card-label { font-size: 12px; }

  /* Stats row below hero */
  .ews-stats-row { grid-template-columns: repeat(3, 1fr) !important; gap: 6px; }
  .ews-stat-value { font-size: 16px !important; }
  .ews-stat-label { font-size: 11px; }

  /* Situation brief + action required — stack vertically */
  .ews-brief-action-row { flex-direction: column !important; gap: 10px; }
  .ews-brief-box, .ews-action-box { width: 100% !important; }

  /* OSINT feed cards */
  .news-card { padding: 12px !important; }
  .news-card-title { font-size: 13px; }

  /* Intel reports */
  .intel-list-header { flex-wrap: wrap; gap: 6px; }
  .intel-search-row { flex-direction: column; gap: 6px; }
  .intel-search-row input,
  .intel-search-row select { width: 100% !important; }

  /* Treaty monitor */
  .treaty-cards-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 8px; }
  .treaty-card { padding: 12px !important; }
  .treaty-violation-item { padding: 10px !important; }
  .treaty-violation-badges { flex-wrap: wrap; gap: 4px; }

  /* Trend charts — full width */
  .trend-charts-grid { grid-template-columns: 1fr !important; }

  /* Behavioral intel */
  .behavioral-grid { grid-template-columns: 1fr !important; }

  /* Source health table */
  .source-health-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .source-health-table { min-width: 480px; }

  /* Map controls */
  .map-controls { flex-wrap: wrap; gap: 4px; }
  .map-control-btn { font-size: 12px; padding: 4px 8px; }

  /* Sensor network */
  .sensor-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Timeline */
  .timeline-item { padding-left: 28px !important; }
  .timeline-dot { left: 6px !important; }

  /* Facility atlas filter */
  .atlas-filter-row { flex-wrap: wrap; gap: 4px; }

  /* QA metrics */
  .qa-metrics-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .qa-coverage-grid { grid-template-columns: 1fr !important; }

  /* OAL status panel */
  .oal-panel { padding: 12px !important; }
  .oal-level-display { flex-direction: column; gap: 8px; }
}

/* ── SMALL MOBILE (≤480px) ───────────────────────────────────────────── */
@media (max-width: 480px) {
  /* Domain cards — 1 column on very small screens */
  .domain-cards-grid { grid-template-columns: 1fr !important; }

  /* Stats row — 2 columns */
  .ews-stats-row { grid-template-columns: repeat(2, 1fr) !important; }

  /* Top bar domains — hide on tiny screens */
  .top-bar-domains { display: none !important; }
  .top-bar-right { gap: 4px; }

  /* Treaty cards — 1 column */
  .treaty-cards-grid { grid-template-columns: 1fr !important; }

  /* Sensor grid — 1 column */
  .sensor-grid { grid-template-columns: 1fr !important; }

  /* QA metrics — 1 column */
  .qa-metrics-grid { grid-template-columns: 1fr !important; }

  /* Intel form */
  .intel-form-grid { grid-template-columns: 1fr !important; }

  /* Country map — smaller site list */
  .country-site-list { max-height: 200px !important; }
  .country-site-item { padding: 8px !important; }

  /* Buttons — full width in action areas */
  .panel-action-row { flex-direction: column; gap: 6px; }
  .panel-action-row .btn { width: 100%; justify-content: center; }

  /* Page content padding */
  .page-content { padding: 8px !important; }

  /* Hero gauge — smaller */
  .ews-threat-gauge { width: 52px !important; height: 52px !important; }
  .ews-threat-score { font-size: 18px !important; }
  .ews-threat-label { font-size: 14px !important; }

  /* Signal detection */
  .sig-panel-stats { flex-direction: column; gap: 4px; }
  .sig-stat-item { width: 100%; }

  /* AI intelligence */
  .ai-intel-header { flex-direction: column; gap: 6px; }
  .ai-intel-meta { flex-wrap: wrap; }
}

/* ── TINY (≤375px) ───────────────────────────────────────────────────── */
@media (max-width: 375px) {
  .page-content { padding: 6px !important; }
  .domain-card-score { font-size: 18px !important; }
  .ews-hero { padding: 10px !important; }
  .mobile-bottom-nav-item { font-size: 10px; }
  .mobile-bottom-nav-item i { font-size: 14px; }
}

/* ── TOUCH IMPROVEMENTS (all touch devices) ──────────────────────────── */
@media (hover: none) and (pointer: coarse) {
  /* Larger tap targets */
  .sidebar-item { min-height: 40px; }
  .btn { min-height: 36px; }
  .news-filter-btn { min-height: 32px; }
  .country-filter-btn { min-height: 32px; }
  .treaty-filter-btn { min-height: 32px; }

  /* Remove hover effects that don't work on touch */
  .news-card:hover { transform: none; }
  .domain-card:hover { transform: none; }
  .intel-report-item:hover { transform: none; }

  /* Smooth scrolling for all scrollable areas */
  .country-site-list,
  .news-feed-list,
  .intel-list,
  .sig-list,
  .treaty-scoreboard-table-wrap,
  .source-health-table-wrap {
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
  }
}

/* ── LIGHT THEME MOBILE OVERRIDES ────────────────────────────────────── */

/* ═══ MAP UX OVERHAUL — Enhanced Popups, Detail Panel, Navigation ═══ */

/* Popup card typography — readable sizes */
.cbrn-popup{font-family:'Inter',system-ui,sans-serif;min-width:280px;max-width:360px}
.cbrn-popup-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,0.08)}
.cbrn-popup-flag{font-size:22px;flex-shrink:0}
.cbrn-popup-title{font-weight:700;font-size:14px;color:#111827;line-height:1.3}
.cbrn-popup-subtitle{font-size:13px;color:#6B7280;margin-top:2px}
.cbrn-popup-badge{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:6px;font-size:13px;font-weight:700;letter-spacing:0.02em}
.cbrn-popup-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cbrn-popup-desc{font-size:13px;color:#4B5563;line-height:1.55;margin-bottom:10px}
.cbrn-popup-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-bottom:10px}
.cbrn-popup-field{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:3px 0;border-bottom:1px solid rgba(0,168,107,0.04)}
.cbrn-popup-field-label{color:#6B7280;white-space:nowrap}
.cbrn-popup-field-value{color:#374151;font-weight:600;text-align:right}
.cbrn-popup-coords{font-size:13px;color:#9CA3AF;font-family:'JetBrains Mono',monospace;margin-bottom:8px}
.cbrn-popup-sources{font-size:13px;color:#9CA3AF;margin-bottom:10px}
.cbrn-popup-actions{display:flex;gap:6px;flex-wrap:wrap;padding-top:10px;border-top:1px solid rgba(0,0,0,0.08)}
.cbrn-popup-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .2s ease;text-decoration:none}
.cbrn-popup-btn-primary{background:linear-gradient(135deg,#00e88f,#00A86B);color:#fff;box-shadow:0 2px 8px rgba(0,232,143,0.25)}
.cbrn-popup-btn-primary:hover{box-shadow:0 4px 16px rgba(0,232,143,0.4);transform:translateY(-1px)}
.cbrn-popup-btn-secondary{background:rgba(0,168,107,0.06);color:#374151;border:1px solid rgba(0,0,0,0.08)}
.cbrn-popup-btn-secondary:hover{background:rgba(0,168,107,0.1);color:#065f46;border-color:rgba(0,168,107,0.2)}

/* Light theme popup overrides */

/* Enhanced detail slide panel */
.atlas-detail-panel{position:fixed;top:0;right:0;width:420px;max-width:90vw;height:100vh;background:rgba(255,255,255,0.97);backdrop-filter:blur(20px) saturate(1.3);-webkit-backdrop-filter:blur(20px) saturate(1.3);border-left:1px solid rgba(0,232,143,0.1);z-index:var(--z-atlas-detail);transform:translateX(100%);transition:transform .35s cubic-bezier(.22,1,.36,1);overflow-y:auto;box-shadow:-8px 0 40px rgba(0,0,0,0.5);display:flex;flex-direction:column}
.atlas-detail-panel.open{transform:translateX(0)}
.atlas-detail-panel-header{position:sticky;top:0;z-index:2;padding:16px 20px;background:rgba(248,250,252,0.95);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,232,143,0.08);display:flex;align-items:center;justify-content:space-between}
.atlas-detail-panel-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:#0e7490}
.atlas-detail-panel-close{background:none;border:none;color:#6B7280;cursor:pointer;font-size:16px;padding:4px;border-radius:6px;transition:all .2s}
.atlas-detail-panel-close:hover{color:#fff;background:rgba(0,168,107,0.08)}
.atlas-detail-panel-body{padding:20px;flex:1}
.atlas-detail-panel-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:var(--z-atlas-detail-overlay);opacity:0;visibility:hidden;transition:all .3s ease}
.atlas-detail-panel-overlay.open{opacity:1;visibility:visible}

/* Detail panel content styling */
.detail-section{margin-bottom:20px}
.detail-section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#9CA3AF;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.detail-section-title i{color:#06b6d4;font-size:12px}
.detail-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.detail-field{padding:10px 12px;border-radius:8px;background:rgba(0,168,107,0.03);border:1px solid rgba(0,168,107,0.05)}
.detail-field-label{font-size:13px;color:#6B7280;margin-bottom:3px}
.detail-field-value{font-size:13px;font-weight:600;color:#374151}
.detail-description{font-size:13px;color:#374151;line-height:1.65;padding:12px;border-radius:8px;background:rgba(0,168,107,0.02);border:1px solid rgba(0,168,107,0.04)}
.detail-note{padding:10px 14px;border-radius:8px;background:rgba(245,158,11,0.08);border:1px solid rgba(245,158,11,0.15);font-size:13px;color:#fbbf24}
.detail-ref-grid{display:flex;gap:8px;flex-wrap:wrap}
.detail-ref-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid rgba(0,0,0,0.08);background:rgba(0,168,107,0.04);color:#4B5563;transition:all .2s;text-decoration:none}
.detail-ref-btn:hover{border-color:rgba(0,232,143,0.3);color:#00e88f;background:rgba(0,232,143,0.06)}
.detail-ref-btn i{font-size:13px}

/* Light theme detail panel */

/* Map coordinate display */
.map-coord-display{position:absolute;bottom:8px;right:8px;z-index:var(--z-map-coord);background:rgba(255,255,255,0.92);backdrop-filter:blur(10px);color:#374151;font-size:13px;padding:4px 10px;border-radius:6px;font-family:'JetBrains Mono',monospace;border:1px solid rgba(0,168,107,0.06);pointer-events:none;transition:all .2s}

/* Enhanced map legend */
.map-legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;font-size:13px;color:#6B7280}
.map-legend-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:#9CA3AF}
.map-legend-item{display:inline-flex;align-items:center;gap:5px}
.map-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}

/* Atlas threat filter buttons — match cat buttons size */
.atlas-threat-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:8px;font-size:13px;font-weight:600;border:1px solid rgba(0,0,0,0.08);background:rgba(0,168,107,0.04);color:#4B5563;cursor:pointer;transition:all .2s ease}
.atlas-threat-btn:hover,.atlas-threat-btn.active{background:color-mix(in srgb,var(--thr-color,#06b6d4) 12%,transparent);border-color:var(--thr-color,#06b6d4);color:var(--thr-color,#06b6d4)}

/* Improved marker cluster icons */
.marker-cluster-small{background:rgba(6,182,212,0.25) !important}
.marker-cluster-small div{background:rgba(6,182,212,0.8) !important;color:#fff !important;font-weight:700 !important;font-size:13px !important;font-family:'JetBrains Mono',monospace !important;width:34px !important;height:34px !important;line-height:34px !important;border-radius:50% !important}
.marker-cluster-medium{background:rgba(245,158,11,0.25) !important}
.marker-cluster-medium div{background:rgba(245,158,11,0.8) !important;color:#fff !important;font-weight:700 !important;font-size:13px !important;font-family:'JetBrains Mono',monospace !important;width:38px !important;height:38px !important;line-height:38px !important;border-radius:50% !important}
.marker-cluster-large{background:rgba(239,68,68,0.25) !important}
.marker-cluster-large div{background:rgba(239,68,68,0.8) !important;color:#fff !important;font-weight:700 !important;font-size:13px !important;font-family:'JetBrains Mono',monospace !important;width:42px !important;height:42px !important;line-height:42px !important;border-radius:50% !important}

/* ========== v17.0 UPGRADES ========== */

/* --- Skeleton Loaders --- */
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.skeleton{background:linear-gradient(90deg,rgba(0,0,0,0.04) 25%,rgba(0,0,0,0.08) 50%,rgba(0,0,0,0.04) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px;min-height:20px}
.skeleton-card{height:120px;border-radius:12px;margin-bottom:10px}
.skeleton-line{height:14px;border-radius:4px;margin-bottom:8px}
.skeleton-line.w-75{width:75%}
.skeleton-line.w-50{width:50%}
.skeleton-line.w-25{width:25%}
.skeleton-circle{width:40px;height:40px;border-radius:50%}
.skeleton-map{height:400px;border-radius:12px}

/* --- Smooth Tab Transitions --- */
@keyframes tabFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.tab-content.active-tab{animation:tabFadeIn 0.35s cubic-bezier(0.4,0,0.2,1) forwards}
.tab-content{opacity:0;transition:opacity 0.2s ease}
.tab-content.active-tab{opacity:1}

/* --- Atlas Search Autocomplete --- */
.atlas-search-wrapper{position:relative;flex:1}
.atlas-autocomplete{position:absolute;top:100%;left:0;right:0;z-index:var(--z-atlas-autocomplete);background:rgba(255,255,255,0.98);backdrop-filter:blur(12px);border:1px solid rgba(0,168,107,0.12);border-radius:0 0 10px 10px;max-height:300px;overflow-y:auto;display:none;box-shadow:0 8px 30px rgba(0,0,0,0.1)}
.atlas-autocomplete.open{display:block}
.atlas-ac-item{padding:10px 14px;cursor:pointer;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(0,168,107,0.04);transition:background 0.15s}
.atlas-ac-item:hover,.atlas-ac-item.active{background:rgba(0,232,143,0.08)}
.atlas-ac-item .ac-flag{font-size:16px}
.atlas-ac-item .ac-name{font-size:13px;font-weight:600;color:#374151}
.atlas-ac-item .ac-meta{font-size:11px;color:#6B7280;margin-left:auto;display:flex;align-items:center;gap:6px}
.atlas-ac-item .ac-type{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}
.atlas-ac-item .ac-type.nuclear{background:rgba(239,68,68,0.15);color:#ef4444}
.atlas-ac-item .ac-type.missile{background:rgba(245,158,11,0.15);color:#f59e0b}
.atlas-ac-item .ac-type.c4isr{background:rgba(59,130,246,0.15);color:#3b82f6}
.atlas-ac-item .ac-type.chemical{background:rgba(168,85,247,0.15);color:#a855f7}
.atlas-ac-item .ac-type.biological{background:rgba(34,197,94,0.15);color:#22c55e}
.atlas-ac-item .ac-type.radiological{background:rgba(6,182,212,0.15);color:#06b6d4}

/* --- Improved Loading Overlay --- */
.atlas-loading-overlay{position:absolute;inset:0;z-index:var(--z-map-loading);background:rgba(255,255,255,0.85);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;border-radius:12px;transition:opacity 0.4s ease}
.atlas-loading-overlay.hidden{opacity:0;pointer-events:none}
.atlas-loading-spinner{width:40px;height:40px;border:3px solid rgba(0,168,107,0.15);border-top-color:#00A86B;border-radius:50%;animation:spin 0.8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.atlas-loading-text{font-size:13px;color:#4B5563;font-weight:500;letter-spacing:.02em}

/* --- Light Theme Map/Atlas Polish --- */

/* --- Light Theme Cards & Intel --- */

/* --- Mobile Improvements --- */
@media(max-width:768px){
  .atlas-slide-panel{width:100% !important;max-width:100% !important}
  .atlas-slide-overlay{background:rgba(0,0,0,0.6) !important}
  .atlas-autocomplete{max-height:200px}
  .atlas-fcard{padding:12px !important}
  .atlas-fcard .fcard-name{font-size:14px !important}
  .cbrn-popup-title{font-size:14px !important}
  .cbrn-popup-desc{font-size:12px !important}
  .atlas-top-country{min-width:60px !important;padding:6px 8px !important}
  .atlas-filter-btn{padding:5px 10px !important;font-size:11px !important}
  #atlas-search{font-size:14px !important;padding:10px 14px !important}
}
@media(max-width:480px){
  .atlas-slide-panel{font-size:13px !important}
  .atlas-slide-panel h3{font-size:16px !important}
  .atlas-top-countries{gap:4px !important}
  .atlas-top-country{min-width:50px !important;font-size:10px !important}
  .atlas-bl-btn{padding:4px 8px !important;font-size:10px !important}
}

/* --- Facility Export Button --- */
.export-dossier-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:rgba(0,232,143,0.1);color:#00e88f;border:1px solid rgba(0,232,143,0.2);border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all 0.2s;text-transform:uppercase;letter-spacing:.03em}
.export-dossier-btn:hover{background:rgba(0,232,143,0.2);border-color:rgba(0,232,143,0.4);transform:translateY(-1px)}

/* --- Card Hover Lift Effect --- */
.atlas-fcard,.intel-card,.card{transition:transform 0.2s cubic-bezier(0.4,0,0.2,1),box-shadow 0.2s ease,border-color 0.2s ease}
.atlas-fcard:hover,.intel-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,0.3)}

/* --- Pulse animation for live indicators --- */
@keyframes livePulse{0%,100%{opacity:1}50%{opacity:0.4}}
.live-dot{width:8px;height:8px;border-radius:50%;background:#00e88f;animation:livePulse 2s ease-in-out infinite;display:inline-block}

/* --- Improved scrollbar for atlas cards --- */
#atlas-card-list::-webkit-scrollbar{width:6px}
#atlas-card-list::-webkit-scrollbar-track{background:transparent}
#atlas-card-list::-webkit-scrollbar-thumb{background:rgba(0,232,143,0.15);border-radius:3px}
#atlas-card-list::-webkit-scrollbar-thumb:hover{background:rgba(0,232,143,0.3)}

/* --- Notification toast --- */
@keyframes toastIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes toastOut{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}
.cbrn-toast{position:fixed;top:80px;right:20px;z-index:var(--z-cbrn-toast);padding:14px 20px;border-radius:10px;background:rgba(255,255,255,0.97);backdrop-filter:blur(12px);border:1px solid rgba(0,168,107,0.12);color:#1a1a2e;font-size:13px;font-weight:500;display:flex;align-items:center;gap:10px;box-shadow:0 8px 24px rgba(0,0,0,0.08);animation:toastIn 0.3s ease forwards;max-width:380px}
.cbrn-toast.out{animation:toastOut 0.3s ease forwards}
.cbrn-toast i{color:#00e88f;font-size:16px}

/* ═══ GLOSSARY & TERMINOLOGY v18.0 ═══ */
#tab-glossary .glossary-term:hover { border-color: var(--ews-green-500); }
#tab-glossary .glossary-term { transition: border-color 0.2s, box-shadow 0.2s; }
#tab-glossary .glossary-term:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
#glossary-search:focus { outline: none; border-color: var(--ews-green-500); box-shadow: 0 0 0 2px rgba(34,211,238,0.15); }
.gl-cat-btn:hover { background: var(--bg-hover); }

/* ═══ PDF EXPORT STYLES ═══ */
.pdf-export-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(8px);z-index:var(--z-pdf-export);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:all .3s ease}
.pdf-export-overlay.active{opacity:1;pointer-events:all}
.pdf-export-modal{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;padding:28px;max-width:480px;width:90%;box-shadow:0 24px 80px rgba(0,0,0,0.4)}
.pdf-export-modal h3{font-size:18px;font-weight:800;margin-bottom:16px;color:var(--text-primary)}
.pdf-export-option{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-elevated);cursor:pointer;transition:all .25s ease;margin-bottom:10px}
.pdf-export-option:hover{border-color:#00e88f;background:rgba(0,232,143,0.06);transform:translateX(4px)}
.pdf-export-option i{font-size:20px;color:#00e88f;width:28px;text-align:center}
.pdf-export-option-info{flex:1}
.pdf-export-option-title{font-size:14px;font-weight:700;color:var(--text-primary)}
.pdf-export-option-desc{font-size:12px;color:var(--text-muted);margin-top:2px}
.pdf-export-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer}
/* ═══ EXPORT TOPBAR BUTTON ═══ */
.topbar-export-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:8px;background:rgba(0,232,143,0.1);border:1px solid rgba(0,232,143,0.2);color:#00e88f;font-size:12px;font-weight:700;cursor:pointer;transition:all .25s ease;text-transform:uppercase;letter-spacing:.04em}
.topbar-export-btn:hover{background:rgba(0,232,143,0.2);border-color:#00e88f;transform:translateY(-1px)}
/* ═══ KPI CARD IMPROVEMENTS ═══ */
.exec-hero-stat{position:relative}
.exec-hero-stat-trend{font-size:11px;font-weight:700;margin-top:2px}
.exec-hero-stat-trend.up{color:#ef4444}
.exec-hero-stat-trend.down{color:#22c55e}
.exec-hero-stat-trend.stable{color:#64748b}
.exec-domain-card{position:relative}
.exec-domain-badge{position:absolute;top:8px;right:8px;font-size:10px;font-weight:800;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.04em}
.exec-domain-badge.critical{background:rgba(239,68,68,0.15);color:#ef4444}
.exec-domain-badge.high{background:rgba(245,158,11,0.15);color:#f59e0b}
.exec-domain-badge.elevated{background:rgba(234,179,8,0.15);color:#eab308}
.exec-domain-badge.moderate{background:rgba(59,130,246,0.15);color:#3b82f6}
.exec-domain-badge.low{background:rgba(34,197,94,0.15);color:#22c55e}
.exec-domain-delta{font-size:11px;font-weight:700;margin-top:4px}
.exec-domain-delta .up{color:#ef4444}
.exec-domain-delta .down{color:#22c55e}
.exec-domain-delta .stable{color:#64748b}
/* ═══ OVERVIEW SECTION HEADERS ═══ */
.overview-section-export{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;background:rgba(0,232,143,0.08);border:1px solid rgba(0,232,143,0.15);color:#00e88f;font-size:11px;font-weight:700;cursor:pointer;transition:all .2s ease;margin-left:auto}
.overview-section-export:hover{background:rgba(0,232,143,0.15);border-color:#00e88f}

/* ═══ Country Fullscreen Map ═══ */
.country-fullscreen {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  border-radius: 0;
  margin: 0;
}

/* ═══ Key Intel Cards ═══ */
.card[style*="border-left:3px"] {
  transition: transform 0.2s, box-shadow 0.2s;
}
.card[style*="border-left:3px"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* ═══ Source Links ═══ */
.card a[href][target="_blank"] {
  transition: background 0.2s, border-color 0.2s;
}
.card a[href][target="_blank"]:hover {
  border-color: rgba(128,128,128,0.3);
}

/* ═══ Country Map Labels ═══ */
.leaflet-div-icon {
  background: transparent !important;
  border: none !important;
}

/* ═══════════════════════════════════════════════════════════
   AI CHAT INTELLIGENCE PANEL — v21.0
   ═══════════════════════════════════════════════════════════ */

/* Floating Action Button */
.ai-chat-fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9998;
  width: auto;
  height: 48px;
  padding: 0 20px;
  border-radius: 24px;
  border: none;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  font-family: 'Inter', sans-serif;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(99,102,241,0.4), 0 0 0 0 rgba(99,102,241,0.3);
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
  animation: ai-fab-pulse 3s ease-in-out infinite;
}
.ai-chat-fab:hover {
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 8px 30px rgba(99,102,241,0.5);
}
.ai-chat-fab i { font-size: 18px; }
@keyframes ai-fab-pulse {
  0%, 100% { box-shadow: 0 4px 20px rgba(99,102,241,0.4), 0 0 0 0 rgba(99,102,241,0.3); }
  50% { box-shadow: 0 4px 20px rgba(99,102,241,0.4), 0 0 0 8px rgba(99,102,241,0); }
}
.ai-chat-fab.hidden { display: none; }

/* Overlay */
.ai-chat-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(4px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.ai-chat-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

/* Chat Panel */
.ai-chat-panel {
  position: fixed;
  top: 0;
  right: -520px;
  width: 500px;
  max-width: 100vw;
  height: 100vh;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  background: #f8fafc;
  border-left: 1px solid rgba(99,102,241,0.12);
  box-shadow: -8px 0 30px rgba(0,0,0,0.08);
  transition: right 0.35s cubic-bezier(0.4,0,0.2,1);
}
.ai-chat-panel.open {
  right: 0;
}

/* Header */
.ai-chat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  background: linear-gradient(135deg, rgba(99,102,241,0.15), rgba(139,92,246,0.1));
  border-bottom: 1px solid rgba(99,102,241,0.15);
  flex-shrink: 0;
}
.ai-chat-header-left {
  display: flex;
  align-items: center;
  gap: 12px;
}
.ai-chat-avatar {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 18px;
  box-shadow: 0 2px 12px rgba(99,102,241,0.3);
}
.ai-chat-title {
  font-size: 15px;
  font-weight: 800;
  color: #1e293b;
  font-family: 'Inter', sans-serif;
  letter-spacing: 0.3px;
}
.ai-chat-subtitle {
  font-size: 11px;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 4px;
}
.ai-chat-status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #22c55e;
  display: inline-block;
  animation: ai-status-blink 2s ease-in-out infinite;
}
@keyframes ai-status-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}
.ai-chat-header-actions {
  display: flex;
  gap: 4px;
}
.ai-chat-header-actions button {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(0,0,0,0.03);
  color: #64748b;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  transition: all 0.2s;
}
.ai-chat-header-actions button:hover {
  background: rgba(0,0,0,0.06);
  color: #1e293b;
}

/* Context Bar */
.ai-chat-context-bar {
  padding: 8px 20px;
  background: rgba(99,102,241,0.06);
  border-bottom: 1px solid rgba(99,102,241,0.08);
  font-size: 11px;
  color: #818cf8;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* Messages Area */
.ai-chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  scroll-behavior: smooth;
}
.ai-chat-messages::-webkit-scrollbar { width: 4px; }
.ai-chat-messages::-webkit-scrollbar-track { background: transparent; }
.ai-chat-messages::-webkit-scrollbar-thumb { background: rgba(99,102,241,0.3); border-radius: 4px; }

/* Welcome Screen */
.ai-chat-welcome {
  text-align: center;
  padding: 30px 10px;
}
.ai-chat-welcome-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(99,102,241,0.2), rgba(139,92,246,0.15));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  color: #818cf8;
}
.ai-chat-welcome h3 {
  font-size: 18px;
  font-weight: 800;
  color: #1e293b;
  margin-bottom: 8px;
  font-family: 'Inter', sans-serif;
}
.ai-chat-welcome p {
  font-size: 13px;
  color: #64748b;
  line-height: 1.6;
  max-width: 380px;
  margin: 0 auto 20px;
}

/* Suggested Questions */
.ai-chat-suggested {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-width: 420px;
  margin: 0 auto;
}
.ai-chat-suggested-title {
  font-size: 11px;
  font-weight: 700;
  color: #818cf8;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 6px;
  justify-content: center;
}
.ai-chat-suggested button {
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid rgba(99,102,241,0.15);
  background: rgba(99,102,241,0.06);
  color: #4338ca;
  font-size: 12px;
  font-family: 'Inter', sans-serif;
  cursor: pointer;
  text-align: left;
  transition: all 0.2s;
  line-height: 1.4;
}
.ai-chat-suggested button:hover {
  background: rgba(99,102,241,0.15);
  border-color: rgba(99,102,241,0.3);
  color: #3730a3;
  transform: translateX(4px);
}

/* Message Bubbles */
.ai-chat-msg {
  display: flex;
  gap: 10px;
  max-width: 100%;
  animation: ai-msg-in 0.3s ease-out;
}
@keyframes ai-msg-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.ai-chat-msg.user {
  flex-direction: row-reverse;
}
.ai-chat-msg-avatar {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  flex-shrink: 0;
  margin-top: 2px;
}
.ai-chat-msg.assistant .ai-chat-msg-avatar {
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  color: #fff;
}
.ai-chat-msg.user .ai-chat-msg-avatar {
  background: linear-gradient(135deg, #059669, #10b981);
  color: #fff;
}
.ai-chat-msg-content {
  flex: 1;
  min-width: 0;
}
.ai-chat-msg-bubble {
  padding: 12px 16px;
  border-radius: 14px;
  font-size: 13px;
  line-height: 1.65;
  font-family: 'Inter', sans-serif;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.ai-chat-msg.assistant .ai-chat-msg-bubble {
  background: #f1f5f9;
  border: 1px solid rgba(99,102,241,0.1);
  color: #1e293b;
  border-top-left-radius: 4px;
}
.ai-chat-msg.user .ai-chat-msg-bubble {
  background: rgba(5,150,105,0.08);
  border: 1px solid rgba(16,185,129,0.15);
  color: #065f46;
  border-top-right-radius: 4px;
}
.ai-chat-msg-time {
  font-size: 10px;
  color: #64748b;
  margin-top: 4px;
  padding: 0 4px;
}
.ai-chat-msg.user .ai-chat-msg-time {
  text-align: right;
}

/* Markdown in AI messages */
.ai-chat-msg-bubble h1, .ai-chat-msg-bubble h2, .ai-chat-msg-bubble h3 {
  font-weight: 800;
  margin: 12px 0 6px;
  color: #4338ca;
}
.ai-chat-msg-bubble h1 { font-size: 16px; }
.ai-chat-msg-bubble h2 { font-size: 15px; }
.ai-chat-msg-bubble h3 { font-size: 14px; }
.ai-chat-msg-bubble p { margin: 6px 0; }
.ai-chat-msg-bubble ul, .ai-chat-msg-bubble ol {
  padding-left: 20px;
  margin: 6px 0;
}
.ai-chat-msg-bubble li { margin: 3px 0; }
.ai-chat-msg-bubble strong { color: #4338ca; font-weight: 700; }
.ai-chat-msg-bubble em { color: #6d28d9; }
.ai-chat-msg-bubble code {
  background: rgba(99,102,241,0.15);
  padding: 1px 5px;
  border-radius: 4px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: #4338ca;
}
.ai-chat-msg-bubble pre {
  background: rgba(0,168,107,0.04);
  border: 1px solid rgba(99,102,241,0.15);
  border-radius: 8px;
  padding: 12px;
  overflow-x: auto;
  margin: 8px 0;
}
.ai-chat-msg-bubble pre code {
  background: none;
  padding: 0;
  font-size: 12px;
  color: #1e293b;
}
.ai-chat-msg-bubble table {
  width: 100%;
  border-collapse: collapse;
  margin: 8px 0;
  font-size: 12px;
}
.ai-chat-msg-bubble th {
  background: rgba(99,102,241,0.12);
  padding: 6px 10px;
  text-align: left;
  font-weight: 700;
  color: #4338ca;
  border-bottom: 1px solid rgba(99,102,241,0.2);
}
.ai-chat-msg-bubble td {
  padding: 5px 10px;
  border-bottom: 1px solid rgba(0,168,107,0.04);
  color: #334155;
}
.ai-chat-msg-bubble blockquote {
  border-left: 3px solid #6366f1;
  padding: 6px 12px;
  margin: 8px 0;
  background: rgba(99,102,241,0.06);
  border-radius: 0 6px 6px 0;
  color: #4338ca;
  font-style: italic;
}
.ai-chat-msg-bubble a {
  color: #818cf8;
  text-decoration: underline;
}
.ai-chat-msg-bubble hr {
  border: none;
  border-top: 1px solid rgba(99,102,241,0.15);
  margin: 10px 0;
}

/* Typing Indicator */
.ai-chat-typing {
  display: flex;
  gap: 10px;
  animation: ai-msg-in 0.3s ease-out;
}
.ai-chat-typing-bubble {
  padding: 14px 18px;
  border-radius: 14px 14px 14px 4px;
  background: #f1f5f9;
  border: 1px solid rgba(99,102,241,0.1);
  display: flex;
  align-items: center;
  gap: 4px;
}
.ai-chat-typing-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #818cf8;
  animation: ai-typing-bounce 1.4s ease-in-out infinite;
}
.ai-chat-typing-dot:nth-child(2) { animation-delay: 0.2s; }
.ai-chat-typing-dot:nth-child(3) { animation-delay: 0.4s; }
@keyframes ai-typing-bounce {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
  30% { transform: translateY(-6px); opacity: 1; }
}

/* Input Area */
.ai-chat-input-area {
  padding: 16px 20px;
  background: rgba(241,245,249,0.8);
  border-top: 1px solid rgba(99,102,241,0.1);
  flex-shrink: 0;
}
.ai-chat-input-row {
  display: flex;
  gap: 8px;
  align-items: flex-end;
}
.ai-chat-input-row textarea {
  flex: 1;
  resize: none;
  border: 1px solid rgba(99,102,241,0.2);
  border-radius: 12px;
  padding: 10px 14px;
  font-size: 13px;
  font-family: 'Inter', sans-serif;
  line-height: 1.5;
  background: #fff;
  color: #1e293b;
  outline: none;
  max-height: 120px;
  min-height: 42px;
  transition: border-color 0.2s;
}
.ai-chat-input-row textarea::placeholder { color: #64748b; }
.ai-chat-input-row textarea:focus { border-color: rgba(99,102,241,0.5); }
#ai-chat-send-btn {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: none;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  color: #fff;
  font-size: 15px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  flex-shrink: 0;
}
#ai-chat-send-btn:hover { transform: scale(1.05); box-shadow: 0 4px 15px rgba(99,102,241,0.4); }
#ai-chat-send-btn:disabled { opacity: 0.4; cursor: not-allowed; transform: none; }
.ai-chat-input-hint {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 6px;
  font-size: 10px;
  color: #475569;
}
.ai-chat-input-hint kbd {
  background: rgba(99,102,241,0.1);
  padding: 1px 5px;
  border-radius: 3px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  color: #818cf8;
  border: 1px solid rgba(99,102,241,0.15);
}
.ai-chat-model-badge {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #6366f1;
  font-weight: 600;
}

/* Source Citation */
.ai-chat-sources {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(99,102,241,0.1);
}
.ai-chat-sources-title {
  font-size: 10px;
  font-weight: 700;
  color: #818cf8;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}
.ai-chat-source-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 10px;
  background: rgba(99,102,241,0.1);
  color: #4338ca;
  margin: 2px 3px 2px 0;
  border: 1px solid rgba(99,102,241,0.1);
}

/* Mobile responsive */
@media (max-width: 640px) {
  .ai-chat-panel { width: 100vw; right: -100vw; }
  .ai-chat-fab { bottom: 70px; right: 12px; padding: 0 14px; height: 44px; font-size: 13px; }
  .ai-chat-fab-label { display: none; }
}

/* Light theme */

/* ═══ v22 NEWS FEED ENHANCEMENT ═══ */
.news-card-sentiment{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px}
.news-card-sentiment.positive{background:rgba(0,232,143,0.12);color:#00e88f}
.news-card-sentiment.negative{background:rgba(239,68,68,0.12);color:#ef4444}
.news-card-sentiment.neutral{background:rgba(107,114,128,0.12);color:#9ca3af}
.news-card-reading{font-size:11px;color:var(--text-muted);display:inline-flex;align-items:center;gap:4px}
.news-card-share{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
.news-card-share button{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:6px;transition:all .2s}
.news-card-share button:hover{color:#00e88f;background:rgba(0,232,143,0.08)}
.news-card-verification{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:12px}
.news-card-verification.verified{background:rgba(0,232,143,0.15);color:#00e88f;border:1px solid rgba(0,232,143,0.3)}
.news-card-verification.confirmed{background:rgba(0,168,107,0.15);color:#00A86B;border:1px solid rgba(0,168,107,0.3)}
.news-card-verification.reported{background:rgba(245,158,11,0.15);color:#f59e0b;border:1px solid rgba(245,158,11,0.3)}
.news-card-verification.unverified{background:rgba(107,114,128,0.15);color:#9ca3af;border:1px solid rgba(107,114,128,0.3)}
.news-card-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;padding-top:6px;border-top:1px solid var(--border-subtle)}
.news-card-country-flag{font-size:14px}
.news-card-impact{font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px}
.news-card-impact.high{background:rgba(239,68,68,0.15);color:#ef4444}
.news-card-impact.medium{background:rgba(245,158,11,0.15);color:#f59e0b}
.news-card-impact.low{background:rgba(0,232,143,0.15);color:#00e88f}

/* ═══ v22 NOTIFICATION SYSTEM ═══ */
.notif-center{position:fixed;top:0;right:-420px;width:400px;height:100vh;background:var(--bg-card);border-left:1px solid var(--border-subtle);z-index:10000;transition:right .35s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;box-shadow:-8px 0 32px rgba(0,0,0,0.3)}
.notif-center.open{right:0}
.notif-center-header{padding:16px 20px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}
.notif-center-header h3{font-size:16px;font-weight:700;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:8px}
.notif-center-header .notif-count{background:#ef4444;color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:12px;min-width:20px;text-align:center}
.notif-center-actions{display:flex;gap:8px}
.notif-center-actions button{background:none;border:1px solid var(--border-subtle);color:var(--text-muted);cursor:pointer;font-size:12px;padding:4px 10px;border-radius:6px;transition:all .2s}
.notif-center-actions button:hover{color:#00e88f;border-color:#00e88f}
.notif-list{flex:1;overflow-y:auto;padding:8px}
.notif-item{padding:12px 16px;border-radius:10px;margin-bottom:6px;border-left:3px solid transparent;cursor:pointer;transition:all .2s;position:relative}
.notif-item:hover{background:var(--bg-elevated)}
.notif-item.unread{background:rgba(0,232,143,0.04);border-left-color:#00e88f}
.notif-item.critical{border-left-color:#ef4444}
.notif-item.high{border-left-color:#f97316}
.notif-item.elevated{border-left-color:#eab308}
.notif-item-title{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:4px;display:flex;align-items:center;gap:6px}
.notif-item-title .notif-level{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;text-transform:uppercase}
.notif-item-body{font-size:12px;color:var(--text-secondary);line-height:1.5}
.notif-item-time{font-size:11px;color:var(--text-muted);margin-top:4px}
.notif-item .notif-dot{position:absolute;top:14px;right:12px;width:8px;height:8px;border-radius:50%;background:#00e88f}
.notif-bell{position:relative;cursor:pointer}
.notif-bell .notif-badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:9px;font-weight:700;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-body)}
.notif-empty{text-align:center;padding:60px 20px;color:var(--text-muted)}
.notif-empty i{font-size:48px;margin-bottom:16px;display:block;opacity:0.3}
.notif-prefs{padding:16px 20px;border-top:1px solid var(--border-subtle)}
.notif-prefs label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer;margin-bottom:6px}
.notif-prefs input[type=checkbox]{accent-color:#00e88f}
.notif-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.3);z-index:9999;opacity:0;pointer-events:none;transition:opacity .3s}
.notif-overlay.open{opacity:1;pointer-events:auto}

/* ═══ v22 FACILITY COMPARISON MODE ═══ */
.compare-panel{position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:2px solid #06b6d4;z-index:8000;transform:translateY(100%);transition:transform .35s cubic-bezier(.22,1,.36,1);box-shadow:0 -8px 32px rgba(0,0,0,0.3);max-height:50vh;overflow-y:auto}
.compare-panel.open{transform:translateY(0)}
.compare-panel-header{padding:12px 20px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--bg-card);z-index:1}
.compare-panel-header h3{font-size:14px;font-weight:700;color:#06b6d4;margin:0;display:flex;align-items:center;gap:8px}
.compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;padding:16px 20px}
.compare-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:12px;padding:16px;position:relative}
.compare-card-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}
.compare-card-name{font-size:14px;font-weight:700;color:var(--text-primary)}
.compare-card-country{font-size:12px;color:var(--text-muted)}
.compare-card-remove{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px}
.compare-card-remove:hover{color:#ef4444}
.compare-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:12px}
.compare-row-label{color:var(--text-muted);font-weight:600}
.compare-row-value{color:var(--text-primary);font-weight:500;text-align:right}
.compare-row-value.threat-critical{color:#ef4444;font-weight:700}
.compare-row-value.threat-high{color:#f97316;font-weight:700}
.compare-row-value.threat-elevated{color:#eab308;font-weight:700}
.compare-row-value.threat-moderate{color:#3b82f6}
.compare-row-value.threat-low{color:#22c55e}
.compare-bar{height:6px;border-radius:3px;background:var(--bg-body);margin-top:4px;overflow:hidden}
.compare-bar-fill{height:100%;border-radius:3px;transition:width .6s ease}

/* ═══ v22 AUTHENTICATION & ROLES ═══ */
.auth-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:20000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
.auth-modal-overlay.open{opacity:1;pointer-events:auto}
.auth-modal{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;width:400px;max-width:90vw;padding:32px;box-shadow:0 24px 64px rgba(0,0,0,0.4)}
.auth-modal h2{font-size:20px;font-weight:700;color:var(--text-primary);margin:0 0 4px;text-align:center}
.auth-modal .auth-subtitle{font-size:13px;color:var(--text-muted);text-align:center;margin-bottom:24px}
.auth-field{margin-bottom:16px}
.auth-field label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}
.auth-field input{width:100%;padding:10px 14px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-size:14px;font-family:var(--font-body);outline:none;transition:border-color .2s}
.auth-field input:focus{border-color:#00e88f}
.auth-btn{width:100%;padding:12px;background:linear-gradient(135deg,#00e88f,#00A86B);color:#0a0f14;font-size:14px;font-weight:700;border:none;border-radius:8px;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.04em}
.auth-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,232,143,0.3)}
.auth-divider{text-align:center;color:var(--text-muted);font-size:12px;margin:16px 0;position:relative}
.auth-divider::before,.auth-divider::after{content:'';position:absolute;top:50%;width:40%;height:1px;background:var(--border-subtle)}
.auth-divider::before{left:0}
.auth-divider::after{right:0}
.auth-role-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:12px;text-transform:uppercase}
.auth-role-badge.admin{background:rgba(239,68,68,0.15);color:#ef4444;border:1px solid rgba(239,68,68,0.3)}
.auth-role-badge.analyst{background:rgba(0,232,143,0.15);color:#00e88f;border:1px solid rgba(0,232,143,0.3)}
.auth-role-badge.viewer{background:rgba(107,114,128,0.15);color:#9ca3af;border:1px solid rgba(107,114,128,0.3)}
.auth-user-info{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:8px;cursor:pointer;transition:background .2s}
.auth-user-info:hover{background:var(--bg-elevated)}
.auth-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#00e88f,#06b6d4);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#0a0f14}
.auth-user-name{font-size:12px;font-weight:600;color:var(--text-primary)}
.auth-user-menu{position:absolute;top:100%;right:0;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;padding:6px;min-width:180px;box-shadow:0 8px 24px rgba(0,0,0,0.3);display:none;z-index:100}
.auth-user-menu.open{display:block}
.auth-user-menu-item{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px;color:var(--text-secondary);border-radius:6px;cursor:pointer;transition:all .2s}
.auth-user-menu-item:hover{background:var(--bg-elevated);color:var(--text-primary)}
.auth-user-menu-item.danger:hover{color:#ef4444}

/* ═══ v22 ENHANCED DAILY BRIEF ═══ */
.brief-key-takeaways{background:rgba(0,232,143,0.05);border:1px solid rgba(0,232,143,0.15);border-radius:12px;padding:16px;margin:16px 0}
.brief-key-takeaways h4{font-size:14px;font-weight:700;color:#00e88f;margin:0 0 12px;display:flex;align-items:center;gap:8px}
.brief-takeaway{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-subtle)}
.brief-takeaway:last-child{border-bottom:none}
.brief-takeaway-num{width:24px;height:24px;border-radius:50%;background:#00e88f;color:#0a0f14;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.brief-takeaway-text{font-size:13px;color:var(--text-primary);line-height:1.5}
.brief-action-items{background:rgba(239,68,68,0.05);border:1px solid rgba(239,68,68,0.15);border-radius:12px;padding:16px;margin:16px 0}
.brief-action-items h4{font-size:14px;font-weight:700;color:#ef4444;margin:0 0 12px;display:flex;align-items:center;gap:8px}
.brief-action{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-subtle)}
.brief-action:last-child{border-bottom:none}
.brief-action-priority{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;flex-shrink:0}
.brief-action-priority.urgent{background:rgba(239,68,68,0.15);color:#ef4444}
.brief-action-priority.important{background:rgba(245,158,11,0.15);color:#f59e0b}
.brief-action-priority.routine{background:rgba(0,232,143,0.15);color:#00e88f}
.brief-action-text{font-size:13px;color:var(--text-primary);line-height:1.5}
.brief-section-header{font-size:15px;font-weight:700;color:var(--text-primary);margin:20px 0 10px;padding-bottom:6px;border-bottom:2px solid rgba(0,232,143,0.2);display:flex;align-items:center;gap:8px}
.brief-timestamp{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:6px;margin-bottom:16px}
.brief-auto-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:12px;background:rgba(139,92,246,0.15);color:#8b5cf6;border:1px solid rgba(139,92,246,0.3)}

/* ═══ v22 TREND PREDICTION ═══ */
.trend-prediction-panel{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;padding:20px;margin:16px 0}
.trend-prediction-panel h4{font-size:15px;font-weight:700;color:var(--text-primary);margin:0 0 16px;display:flex;align-items:center;gap:8px}
.trend-pred-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.trend-pred-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:10px;padding:14px;position:relative;overflow:hidden}
.trend-pred-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:10px 10px 0 0}
.trend-pred-card.up::before{background:linear-gradient(90deg,#ef4444,#f97316)}
.trend-pred-card.down::before{background:linear-gradient(90deg,#22c55e,#00e88f)}
.trend-pred-card.stable::before{background:linear-gradient(90deg,#3b82f6,#06b6d4)}
.trend-pred-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.trend-pred-value{font-size:24px;font-weight:800;margin-bottom:4px}
.trend-pred-value.up{color:#ef4444}
.trend-pred-value.down{color:#22c55e}
.trend-pred-value.stable{color:#3b82f6}
.trend-pred-direction{font-size:12px;display:flex;align-items:center;gap:4px}
.trend-pred-direction.up{color:#ef4444}
.trend-pred-direction.down{color:#22c55e}
.trend-pred-direction.stable{color:#3b82f6}
.trend-pred-confidence{font-size:11px;color:var(--text-muted);margin-top:6px;display:flex;align-items:center;gap:4px}
.trend-pred-confidence-bar{flex:1;height:4px;border-radius:2px;background:var(--bg-body);overflow:hidden}
.trend-pred-confidence-fill{height:100%;border-radius:2px;background:#00e88f}
.trend-forecast-table{width:100%;border-collapse:collapse;margin-top:16px;font-size:12px}
.trend-forecast-table th{text-align:left;padding:8px 12px;background:var(--bg-elevated);color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-subtle)}
.trend-forecast-table td{padding:8px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}
.trend-forecast-table tr:hover{background:var(--bg-elevated)}
.trend-ci{font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}

/* ============================================================
   v23.0 — AI INTELLIGENCE DEEP-DIVE STYLES
   ============================================================ */

/* Collapsible sections */
.ai-section { margin-bottom: 16px; border-radius: 12px; overflow: hidden; transition: all 0.3s ease; }
.ai-section .ai-section-header { display: flex; align-items: center; gap: 8px; padding: 14px 16px; cursor: pointer; user-select: none; transition: background 0.2s; }
.ai-section .ai-section-header:hover { background: rgba(0,168,107,0.05); }
.ai-section .ai-section-header .ai-section-chevron { transition: transform 0.3s ease; font-size: 11px; color: #6b7280; }
.ai-section .ai-section-header .ai-section-chevron.collapsed { transform: rotate(-90deg); }
.ai-section .ai-section-body { padding: 0 16px 16px; transition: max-height 0.4s ease, opacity 0.3s ease; overflow: hidden; }
.ai-section .ai-section-body.collapsed { max-height: 0 !important; opacity: 0; padding: 0 16px; }
.ai-section-meta { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.ai-section-meta .ai-section-timestamp { font-size: 10px; color: #6b7280; font-family: 'JetBrains Mono', monospace; }
.ai-section-meta .ai-section-export { font-size: 10px; padding: 2px 8px; border-radius: 6px; background: rgba(0,168,107,0.1); color: #00A86B; border: 1px solid rgba(0,168,107,0.2); cursor: pointer; transition: all 0.2s; }
.ai-section-meta .ai-section-export:hover { background: rgba(0,168,107,0.2); }

/* NATO Source Reliability Matrix */
.nato-matrix { display: grid; grid-template-columns: auto repeat(6, 1fr); gap: 2px; font-size: 11px; }
.nato-matrix .nato-header { padding: 6px 8px; text-align: center; font-weight: 700; font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; border-radius: 4px; }
.nato-matrix .nato-row-label { padding: 6px 8px; font-weight: 600; font-size: 11px; display: flex; align-items: center; gap: 4px; border-radius: 4px; }
.nato-matrix .nato-cell { padding: 6px; text-align: center; border-radius: 4px; font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; cursor: default; transition: all 0.2s; }
.nato-matrix .nato-cell:hover { transform: scale(1.1); z-index: 1; }
.nato-cell.high { background: rgba(239,68,68,0.15); color: #ef4444; }
.nato-cell.med-high { background: rgba(249,115,22,0.15); color: #f97316; }
.nato-cell.medium { background: rgba(245,158,11,0.15); color: #f59e0b; }
.nato-cell.med-low { background: rgba(234,179,8,0.15); color: #eab308; }
.nato-cell.low { background: rgba(0,168,107,0.15); color: #00A86B; }
.nato-cell.none { background: rgba(107,114,128,0.1); color: #6b7280; }

/* ACH Table */
.ach-table { width: 100%; border-collapse: separate; border-spacing: 2px; font-size: 11px; }
.ach-table th { padding: 8px; text-align: center; font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 700; border-radius: 4px; }
.ach-table td { padding: 6px 8px; text-align: center; border-radius: 4px; transition: all 0.2s; }
.ach-table td:first-child { text-align: left; font-weight: 600; }
.ach-table .ach-consistent { background: rgba(0,168,107,0.12); color: #00A86B; }
.ach-table .ach-inconsistent { background: rgba(239,68,68,0.12); color: #ef4444; }
.ach-table .ach-neutral { background: rgba(107,114,128,0.08); color: #6b7280; }
.ach-table .ach-very-inconsistent { background: rgba(239,68,68,0.25); color: #ef4444; font-weight: 700; }
.ach-prob-bar { height: 6px; border-radius: 3px; background: rgba(107,114,128,0.15); overflow: hidden; margin-top: 4px; }
.ach-prob-fill { height: 100%; border-radius: 3px; transition: width 0.6s ease; }

/* Intelligence Cycle */
.intel-cycle { display: flex; align-items: center; justify-content: center; gap: 4px; padding: 12px 0; flex-wrap: wrap; }
.intel-cycle-step { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 14px; border-radius: 10px; transition: all 0.3s; cursor: default; min-width: 80px; }
.intel-cycle-step:hover { transform: translateY(-2px); }
.intel-cycle-step.active { box-shadow: 0 0 0 2px rgba(0,168,107,0.3); }
.intel-cycle-step .cycle-icon { width: 32px; height: 32px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 14px; }
.intel-cycle-step .cycle-label { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.3px; }
.intel-cycle-step .cycle-status { font-size: 9px; font-family: 'JetBrains Mono', monospace; }
.intel-cycle-arrow { color: #6b7280; font-size: 10px; }

/* Warning Indicators */
.warning-indicator { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; border-left: 3px solid; margin-bottom: 6px; transition: all 0.2s; }
.warning-indicator:hover { transform: translateX(2px); }
.warning-indicator.triggered { border-left-color: #ef4444; background: rgba(239,68,68,0.06); }
.warning-indicator.elevated { border-left-color: #f59e0b; background: rgba(245,158,11,0.06); }
.warning-indicator.normal { border-left-color: #00A86B; background: rgba(0,168,107,0.06); }
.warning-indicator.unknown { border-left-color: #6b7280; background: rgba(107,114,128,0.06); }
.indicator-status { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.indicator-status.triggered { background: #ef4444; box-shadow: 0 0 6px rgba(239,68,68,0.5); animation: pulse-red 2s infinite; }
.indicator-status.elevated { background: #f59e0b; box-shadow: 0 0 6px rgba(245,158,11,0.4); }
.indicator-status.normal { background: #00A86B; }
.indicator-status.unknown { background: #6b7280; }
@keyframes pulse-red { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }

/* PIR Cards */
.pir-card { padding: 10px 12px; border-radius: 8px; border: 1px solid rgba(107,114,128,0.15); margin-bottom: 6px; transition: all 0.2s; }
.pir-card:hover { border-color: rgba(0,168,107,0.3); }
.pir-priority { font-size: 9px; font-weight: 700; padding: 2px 6px; border-radius: 4px; text-transform: uppercase; letter-spacing: 0.5px; }
.pir-priority.critical { background: rgba(239,68,68,0.15); color: #ef4444; }
.pir-priority.high { background: rgba(249,115,22,0.15); color: #f97316; }
.pir-priority.medium { background: rgba(245,158,11,0.15); color: #f59e0b; }
.pir-priority.low { background: rgba(0,168,107,0.15); color: #00A86B; }

/* Intelligence Timeline */
.intel-timeline { position: relative; padding-left: 24px; }
.intel-timeline::before { content: ''; position: absolute; left: 8px; top: 0; bottom: 0; width: 2px; background: linear-gradient(to bottom, rgba(0,168,107,0.3), rgba(107,114,128,0.1)); }
.timeline-event { position: relative; padding: 8px 12px; margin-bottom: 8px; border-radius: 8px; transition: all 0.2s; }
.timeline-event:hover { transform: translateX(2px); }
.timeline-event::before { content: ''; position: absolute; left: -20px; top: 14px; width: 10px; height: 10px; border-radius: 50%; border: 2px solid; }
.timeline-event.critical::before { border-color: #ef4444; background: rgba(239,68,68,0.3); }
.timeline-event.high::before { border-color: #f97316; background: rgba(249,115,22,0.3); }
.timeline-event.medium::before { border-color: #f59e0b; background: rgba(245,158,11,0.3); }
.timeline-event.low::before { border-color: #00A86B; background: rgba(0,168,107,0.3); }

/* Collection Gaps */
.collection-gap { padding: 10px 12px; border-radius: 8px; border: 1px dashed; margin-bottom: 6px; }
.collection-gap.critical { border-color: rgba(239,68,68,0.4); background: rgba(239,68,68,0.04); }
.collection-gap.significant { border-color: rgba(249,115,22,0.4); background: rgba(249,115,22,0.04); }
.collection-gap.minor { border-color: rgba(245,158,11,0.4); background: rgba(245,158,11,0.04); }

/* Source Diversity */
.source-diversity-ring { width: 80px; height: 80px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.source-diversity-score { font-size: 22px; font-weight: 800; font-family: 'JetBrains Mono', monospace; }

/* Radar Chart Container */
.radar-chart-container { height: 280px; display: flex; align-items: center; justify-content: center; }

/* Dark theme overrides for AI tab */
body.dark .ai-section { background: #1a1f2e; border: 1px solid rgba(0,168,107,0.06); }
body.dark .nato-matrix .nato-header { background: rgba(255,255,255,0.05); color: #9ca3af; }
body.dark .nato-matrix .nato-row-label { background: rgba(255,255,255,0.03); color: #d1d5db; }
body.dark .ach-table th { background: rgba(255,255,255,0.05); color: #9ca3af; }
body.dark .ach-table td:first-child { color: #d1d5db; }
body.dark .intel-cycle-step { background: rgba(255,255,255,0.04); }
body.dark .warning-indicator { background: rgba(255,255,255,0.02); }
body.dark .pir-card { background: rgba(255,255,255,0.02); border-color: rgba(0,168,107,0.06); }
body.dark .timeline-event { background: rgba(255,255,255,0.03); }
body.dark .collection-gap { background: rgba(255,255,255,0.02); }

/* Light theme adjustments */
.ai-section { background: #fff; border: 1px solid rgba(0,0,0,0.06); }
.nato-matrix .nato-header { background: rgba(0,0,0,0.03); color: #6b7280; }
.nato-matrix .nato-row-label { background: rgba(0,0,0,0.02); color: #374151; }


/* ── LIGHT-ONLY THEME — Additional Overrides ──────────── */
.cbrn-toast{background:rgba(255,255,255,0.95);border-color:rgba(0,168,107,0.12);color:#1a1a2e;box-shadow:0 8px 30px rgba(0,0,0,0.1)}
.cbrn-toast i{color:#00A86B}

/* Export buttons */
.topbar-export-btn{background:rgba(0,168,107,0.06);border-color:rgba(0,168,107,0.15);color:#00A86B}
.topbar-export-btn:hover{background:rgba(0,168,107,0.10);border-color:rgba(0,168,107,0.25)}

/* Theme toggle — hidden in light-only mode */

/* ════════════════════════════════════════════════════════════════
   UTILITY CLASSES — extracted from inline styles
   ════════════════════════════════════════════════════════════════ */

/* ── Color Utilities ──────────────────────────────────────────── */
.u-text-secondary { color: var(--text-secondary); }
.u-color-green { color: #00A86B; }
.u-color-red { color: #ef4444; }
.u-color-amber { color: #f59e0b; }
.u-color-blue { color: #3b82f6; }
.u-color-emerald { color: #22c55e; }
.u-color-purple { color: #a855f7; }
.u-color-cyan { color: #06b6d4; }
.u-color-orange { color: #f97316; }
.u-color-yellow { color: #eab308; }
.u-color-violet { color: #8b5cf6; }
.u-color-teal { color: #10b981; }
.u-color-primary { color: var(--primary); }
.u-color-danger { color: #ff1744; }

/* ── Typography ───────────────────────────────────────────────── */
.u-text-sm { font-size: 11px; }
.u-text-lg { font-size: 16px; }
.u-text-xl { font-size: 20px; }
.u-text-2xl { font-size: 24px; }

/* ── Layout ───────────────────────────────────────────────────── */
.u-hidden { display: none; }
.u-text-center { text-align: center; }
.u-p-5 { padding: 20px; }
.u-mr-1 { margin-right: 6px; }

/* ── Components ───────────────────────────────────────────────── */
.u-icon-box { width: 24px; height: 24px; border-radius: 4px; }
.u-link-bordered { text-decoration: none; border: 1px solid rgba(128,128,128,0.15); }
.u-btn-filter { font-size: 12px; padding: 4px 12px; border-radius: 4px; background: var(--bg-tertiary); color: var(--text-secondary); border: 1px solid var(--border-color); cursor: pointer; }
.u-btn-tiny { font-size: 9px; padding: 2px 6px; border-radius: 4px; background: #f3f4f6; border: none; cursor: pointer; color: #374151; }
.u-btn-mini { font-size: 10px; padding: 3px 10px; border-radius: 6px; border: 1px solid #e5e7eb; background: #fff; color: #6b7280; font-weight: 600; cursor: pointer; }

/* ── Labels ───────────────────────────────────────────────────── */
.u-label-muted { font-size: 10px; color: #6B7280; text-transform: uppercase; }
.u-heading-cyan { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #06b6d4; }

/* ── Background Colors ────────────────────────────────────────── */
.u-bg-amber { background: rgba(245,158,11,0.12); color: #f59e0b; }
.u-bg-blue { background: rgba(59,130,246,0.12); color: #3b82f6; }
.u-bg-purple { background: rgba(168,85,247,0.12); color: #a855f7; }
.u-bg-green { background: rgba(0,168,107,0.06); color: #00A86B; }
.u-bg-green-strong { background: rgba(0,168,107,0.12); color: #00A86B; }
.u-bg-violet { background: rgba(139,92,246,0.12); color: #8b5cf6; }

/* ── Border Accents ───────────────────────────────────────────── */
.u-border-l-yellow { border-left: 3px solid #eab308; }

/* ════════════════════════════════════════════════════════════════
   ACCESSIBILITY — skip-nav, focus-visible, reduced motion
   ════════════════════════════════════════════════════════════════ */

/* Skip-to-content link — visually hidden until focused */
.skip-to-content {
  position: absolute;
  top: -100%;
  left: 16px;
  z-index: var(--z-skip-nav);
  padding: 12px 24px;
  background: var(--primary, #00e88f);
  color: #fff;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 0 0 8px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  transition: top 0.2s ease;
}
.skip-to-content:focus {
  top: 0;
  outline: none;
}

/* Focus-visible — consistent keyboard focus ring for all interactive elements */
:focus-visible {
  outline: 2px solid var(--primary, #00e88f);
  outline-offset: 2px;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--primary, #00e88f);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Remove default outline for mouse users */
:focus:not(:focus-visible) {
  outline: none;
}

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ════════════════════════════════════════════════════════════════
   Z-INDEX TOKEN SYSTEM — normalized scale
   ════════════════════════════════════════════════════════════════
   Layer 0:  Base content           --z-base (0), --z-content (1)
   Layer 1:  In-card elements        --z-elevated (2)
   Layer 2:  Dropdowns, tooltips     --z-dropdown (20), --z-sticky (30)
   Layer 3:  Sidebar, collapse btn   --z-sidebar (40), --z-collapse-btn (50)
   Layer 4:  Map internals           --z-tooltip (100) .. --z-map-control (999)
   Layer 5:  Panels                  --z-panel (999), --z-atlas-autocomplete (1000)
   Layer 6:  Slide panels, overlays  --z-atlas-detail-overlay (1099), --z-atlas-detail (1100)
   Layer 7:  Navigation pill, toast  --z-overlay (9998), --z-pill/--z-toast (9999)
   Layer 8:  Landing, PDF export     --z-landing (10000), --z-cbrn-toast (10000)
   Layer 9:  Mobile nav              --z-mobile-nav (100000)
   Layer 10: Skip-nav                --z-skip-nav (100001)
   ════════════════════════════════════════════════════════════════ */

#theme-toggle{display:none !important}

/* ══════════════════════════════════════════════════════════════
   UTILITY CLASSES — Phase 2 extraction (P2.4)
   ══════════════════════════════════════════════════════════════ */

/* ── Layout Utilities ────────────────────────────────────────── */
.u-flex { display: flex; }
.u-flex-col { display: flex; flex-direction: column; }
.u-flex-between { display: flex; justify-content: space-between; align-items: center; }
.u-flex-center { display: flex; align-items: center; justify-content: center; }
.u-items-center { align-items: center; }
.u-gap-2 { gap: 2px; }
.u-gap-4 { gap: 4px; }
.u-gap-6 { gap: 6px; }
.u-gap-8 { gap: 8px; }
.u-gap-10 { gap: 10px; }
.u-gap-12 { gap: 12px; }
.u-ml-auto { margin-left: auto; }

/* ── Spacing ─────────────────────────────────────────────────── */
.u-p-4 { padding: 4px; }
.u-p-8 { padding: 8px; }
.u-p-12 { padding: 12px; }
.u-p-16 { padding: 16px; }
.u-p-20 { padding: 20px; }
.u-p-24 { padding: 24px; }
.u-px-12 { padding-left: 12px; padding-right: 12px; }
.u-py-4 { padding-top: 4px; padding-bottom: 4px; }
.u-mb-4 { margin-bottom: 4px; }
.u-mb-8 { margin-bottom: 8px; }
.u-mb-12 { margin-bottom: 12px; }
.u-mb-16 { margin-bottom: 16px; }
.u-mr-4 { margin-left: 4px; }
.u-mr-6 { margin-right: 6px; }
.u-mt-16 { margin-top: 16px; }
.u-mt-48 { margin-top: 3rem; }

/* ── Typography ──────────────────────────────────────────────── */
.u-text-2xs { font-size: 8px; }
.u-text-xs { font-size: 9px; }
.u-text-xs-plus { font-size: 10px; }
.u-text-sm { font-size: 11px; }
.u-text-md { font-size: 12px; }
.u-text-base { font-size: 13px; }
.u-text-lg { font-size: 14px; }
.u-text-xl { font-size: 16px; }
.u-text-2xl { font-size: 20px; }
.u-text-3xl { font-size: 22px; }
.u-text-4xl { font-size: 24px; }
.u-text-5xl { font-size: 28px; }
.u-fw-500 { font-weight: 500; }
.u-fw-600 { font-weight: 600; }
.u-fw-700 { font-weight: 700; }
.u-fw-800 { font-weight: 800; }
.u-uppercase { text-transform: uppercase; letter-spacing: 0.06em; }
.u-text-center { text-align: center; }

/* ── Colors ──────────────────────────────────────────────────── */
.u-color-primary { color: var(--primary, #00e88f); }
.u-color-text { color: var(--text-primary); }
.u-color-muted { color: var(--text-muted, #9CA3AF); }
.u-color-secondary { color: var(--text-secondary, #6B7280); }
.u-color-green { color: #00A86B; }
.u-color-red { color: #ef4444; }
.u-color-amber { color: #f59e0b; }
.u-color-blue { color: #3b82f6; }
.u-color-purple { color: #a855f7; }
.u-color-cyan { color: #06b6d4; }
.u-color-pink { color: #ec4899; }
.u-color-orange { color: #f97316; }
.u-color-lime { color: #22c55e; }
.u-color-crimson { color: #ff1744; }

/* ── Borders ─────────────────────────────────────────────────── */
.u-border-l-purple { border-left: 3px solid #a855f7; }
.u-border-l-orange { border-left: 3px solid #f97316; }
.u-border-l-cyan { border-left: 3px solid #06b6d4; }
.u-border-l-green { border-left: 3px solid #00A86B; }
.u-border-l-red { border-left: 3px solid #ef4444; }
.u-border-l-blue { border-left: 3px solid #3b82f6; }
.u-border-l-amber { border-left: 3px solid #f59e0b; }

/* ── Card / Component Utilities ──────────────────────────────── */
.u-section-label {
  font-size: 9px;
  font-weight: 700;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 4px;
}
.u-category-header {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.u-mini-btn {
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 6px;
  border: 1px solid #d1d5db;
  background: #fff;
  cursor: pointer;
  color: #374151;
}
.u-mini-btn-bold {
  font-size: 10px;
  padding: 3px 10px;
  border-radius: 6px;
  border: 1px solid #d1d5db;
  background: #fff;
  cursor: pointer;
  color: #374151;
  font-weight: 600;
}
.u-filter-btn {
  font-size: 12px;
  padding: 4px 12px;
  border-radius: 4px;
  background: var(--bg-tertiary);
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
  cursor: pointer;
}
.u-close-btn {
  background: none;
  border: none;
  color: #9CA3AF;
  cursor: pointer;
  font-size: 12px;
  margin-left: auto;
}
.u-close-btn-lg {
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 16px;
}
.u-progress-bar-green { width: 0%; background: linear-gradient(90deg, #00e88f, #34ffa8); }
.u-progress-bar-blue { width: 0%; background: linear-gradient(90deg, #3b82f6, #60a5fa); }
.u-progress-bar-amber { width: 0%; background: linear-gradient(90deg, #f59e0b, #fbbf24); }
.u-progress-bar-purple { width: 0%; background: linear-gradient(90deg, #a855f7, #c084fc); }
.u-map-container { height: 700px; border-radius: 8px; z-index: var(--z-content, 1); }
.u-scroll-container { max-height: 420px; overflow-y: auto; }
.u-primary-badge { background: var(--primary); color: #1a1a2e; }
.u-source-link {
  text-decoration: none;
  border: 1px solid rgba(128,128,128,0.15);
}
.u-separator {
  border-bottom: 1px solid var(--border-subtle);
  margin-bottom: 8px;
  padding-bottom: 4px;
  font-size: 10px;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.u-footer {
  text-align: center;
  padding: 12px 20px;
  color: #9CA3AF;
  font-size: 10px;
  border-top: 1px solid #E5E7EB;
  margin-top: 8px;
}
.u-muted-xs { font-size: 10px; color: #9CA3AF; margin-left: 8px; }
.u-dot-label { font-size: 8px; margin-left: 4px; opacity: 0.5; }
.u-meta-label { font-size: 12px; color: var(--text-muted); font-weight: 600; text-transform: uppercase; margin-right: 4px; }
@keyframes skeleton-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* v15.5.3: OAL Badge in topbar */
.topbar-oal-badge {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(0,168,107,0.1);
  border: 1px solid rgba(0,168,107,0.3);
  margin-right: 8px;
  transition: all 0.3s ease;
}
.topbar-oal-badge.oal-1 { background: rgba(0,168,107,0.1); border-color: rgba(0,168,107,0.3); }
.topbar-oal-badge.oal-2 { background: rgba(234,179,8,0.1); border-color: rgba(234,179,8,0.3); }
.topbar-oal-badge.oal-3 { background: rgba(249,115,22,0.1); border-color: rgba(249,115,22,0.3); }
.topbar-oal-badge.oal-4 { background: rgba(245,158,11,0.15); border-color: rgba(245,158,11,0.4); }
.topbar-oal-badge.oal-5 { background: rgba(239,68,68,0.15); border-color: rgba(239,68,68,0.4); }
.topbar-oal-label { font-size: 9px; text-transform: uppercase; letter-spacing: 0.5px; opacity: 0.7; color: #94a3b8; }
.topbar-oal-value { font-size: 14px; font-weight: 700; color: #00A86B; }
.topbar-oal-badge.oal-2 .topbar-oal-value { color: #eab308; }
.topbar-oal-badge.oal-3 .topbar-oal-value { color: #f97316; }
.topbar-oal-badge.oal-4 .topbar-oal-value { color: #f59e0b; }
.topbar-oal-badge.oal-5 .topbar-oal-value { color: #ef4444; }
