
    /* Filter only the basemap tiles; preserve imagery and hazard overlay colors. */
    .f4h-osm-dark {
      filter: invert(100%) hue-rotate(180deg) brightness(0.85) contrast(0.9);
    }

    :root {
      --bg-base: #060911;
      --bg-panel: #0d1322;
      --bg-panel-elevated: #131b2e;
      --border-panel: rgba(255, 255, 255, 0.08);
      --border-accent: rgba(56, 189, 248, 0.4);
      --text-main: #f8fafc;
      --text-muted: #94a3b8;
      --accent-cyan: #38bdf8;
      --accent-blue: #3b82f6;
      --accent-emerald: #10b981;
      --accent-amber: #f59e0b;
      --accent-red: #ef4444;
      --accent-purple: #a855f7;
    }

    body {
      font-family: 'Inter', sans-serif;
      background-color: var(--bg-base);
      color: var(--text-main);
      overflow-x: hidden;
      line-height: 1.6;
    }

    .font-mono {
      font-family: 'JetBrains Mono', monospace;
    }

    /* Command Header */
    .command-header {
      background: rgba(13, 19, 34, 0.94);
      backdrop-filter: blur(14px);
      border-bottom: 1px solid var(--border-panel);
      z-index: 1020;
    }

    /* Telemetry KPI Cards */
    .kpi-card {
      background: var(--bg-panel);
      border: 1px solid var(--border-panel);
      border-radius: 12px;
      padding: 1rem 1.25rem;
      position: relative;
      overflow: hidden;
      transition: all 0.2s ease;
    }

    .kpi-card:hover {
      border-color: var(--border-accent);
      transform: translateY(-2px);
    }

    .kpi-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 4px;
      height: 100%;
      background: var(--accent-cyan);
    }

    .kpi-card.blue::before { background: var(--accent-blue); }
    .kpi-card.emerald::before { background: var(--accent-emerald); }
    .kpi-card.amber::before { background: var(--accent-amber); }
    .kpi-card.red::before { background: var(--accent-red); }

    /* Map Dashboard Panel */
    .dashboard-panel {
      background: var(--bg-panel);
      border: 1px solid var(--border-panel);
      border-radius: 14px;
      overflow: hidden;
      box-shadow: 0 16px 40px rgba(0, 0, 0, 0.55);
      position: relative;
    }

    #map {
      height: 640px;
      width: 100%;
      background: #080d1a;
      z-index: 1;
    }

    /* Floating Weather Controls Box on Map */
    .weather-map-controls {
      position: absolute;
      top: 16px;
      right: 16px;
      z-index: 1000;
      background: rgba(13, 19, 34, 0.92);
      backdrop-filter: blur(14px);
      border: 1px solid var(--border-panel);
      border-radius: 12px;
      padding: 12px 16px;
      box-shadow: 0 10px 30px rgba(0,0,0,0.5);
      max-width: 310px;
      font-size: 0.85rem;
    }

    .weather-control-item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 8px;
    }

    .weather-control-item:last-child {
      margin-bottom: 0;
    }

    /* Floating Timeline Player Card */
    .timeline-player-card {
      background: rgba(13, 19, 34, 0.95);
      backdrop-filter: blur(16px);
      border: 1px solid rgba(56, 189, 248, 0.3);
      border-radius: 12px;
      padding: 14px 18px;
      box-shadow: 0 12px 32px rgba(0, 0, 0, 0.6);
    }

    .timeline-range-input {
      -webkit-appearance: none;
      appearance: none;
      width: 100%;
      height: 6px;
      border-radius: 4px;
      background: #1e293b;
      outline: none;
      cursor: pointer;
    }

    .timeline-range-input::-webkit-slider-thumb {
      -webkit-appearance: none;
      appearance: none;
      width: 18px;
      height: 18px;
      border-radius: 50%;
      background: var(--accent-cyan);
      border: 2px solid #fff;
      box-shadow: 0 0 10px rgba(56, 189, 248, 0.8);
      cursor: grab;
      transition: transform 0.15s ease;
    }

    .timeline-range-input::-webkit-slider-thumb:hover {
      transform: scale(1.2);
    }


.timeline-player{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.timeline-player .track{flex:1;min-width:180px}.frame-label{display:flex;justify-content:space-between;gap:8px;font-size:.75rem;color:#94a3b8;margin-bottom:4px}.timeline-player select{width:76px}.weather-map-controls{width:280px}.layer-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.legend-row{display:flex;gap:18px;flex-wrap:wrap;font-size:.75rem;color:#94a3b8}.sidebar-panel{background:var(--bg-panel);border:1px solid var(--border-panel);border-radius:14px;padding:20px}.sidebar-panel p,.sidebar-panel label{font-size:.82rem}.sidebar-panel input[type=file]{max-width:100%;font-size:.75rem}.sidebar-panel h2{font-size:1rem}.source-label{letter-spacing:.1em;font-size:.7rem;font-weight:700;color:#38bdf8}.explorer-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.explorer-tabs button[aria-pressed=true]{background:#0dcaf0;color:#081320}.explorer-frame{width:100%;height:75vh;min-height:500px;border:1px solid var(--border-panel);border-radius:10px;background:white}.muted{color:var(--text-muted)}.leaflet-control-attribution{color:#182233}.leaflet-control-attribution a{color:#14608c}a{color:#38bdf8}button:focus-visible,a:focus-visible{outline:3px solid #38bdf8;outline-offset:3px}.map-toolbar{display:flex;gap:8px;flex-wrap:wrap}.map-caption{font-size:.75rem;color:#94a3b8}.program-list{font-size:.85rem;padding-left:18px}.program-list li{margin-bottom:6px}#mangrove-dashboard:fullscreen{overflow:auto;border-radius:0}#mangrove-dashboard:fullscreen #map{height:calc(100vh - 220px);min-height:350px}@media(max-width:991px){#map{height:560px}}@media(max-width:575px){#map{height:440px}.weather-map-controls{position:static;max-width:none;width:auto;margin:8px;box-shadow:none}.timeline-player-card{padding:12px}.timeline-player .track{flex-basis:100%;order:1}.timeline-player .track~label{font-size:.8rem}.kpi-card{padding:12px}.kpi-card .fs-4{font-size:1.15rem!important}.explorer-frame{min-height:620px}}@media(prefers-reduced-motion:reduce){.kpi-card{transition:none}.kpi-card:hover{transform:none}}

@media(min-width:992px){aside .sidebar-panel:last-child{max-height:570px;overflow:auto}}

.kpi-card .fs-4{font-size:1.25rem!important}.kpi-card .text-uppercase{font-size:.7rem}.sidebar-panel details p{color:var(--text-muted)}

.kpi-card .d-flex{flex-wrap:wrap}.kpi-card .font-mono{overflow-wrap:anywhere}@media(max-width:575px){.kpi-card .fs-4{font-size:1rem!important}.kpi-card .badge{font-size:.65rem}.kpi-card .small{font-size:.75rem}}
