/* AUTO-GENERATED light-theme overrides for hardcoded dark surfaces.
   Regenerate: node scratch/gen-light.js <project dir> */

[data-theme="light"] .theme-toggle-btn:hover {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .hero-desc strong {
  color: var(--text-primary) !important;
}

[data-theme="light"] .occ-stat-box:hover {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .disruption-drawer {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .autocomplete-list,
[data-theme="light"] .combobox-dropdown {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .combobox-dropdown::-webkit-scrollbar-track {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .combobox-section-header {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .board-restore-station-btn:hover {
  color: var(--text-primary) !important;
}

[data-theme="light"] .dep-platform {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .departure-row:hover .dep-platform {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .platform-main {
  color: var(--text-primary) !important;
}

[data-theme="light"] .board-mode-switcher {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .schematic-map-wrapper {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .map-toolbar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .map-tool-btn {
  color: var(--text-primary) !important;
}

[data-theme="light"] .map-station-modal {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .station-focus-card {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .dual-track-wrapper.horizontal-schematic-mode {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .horizontal-schematic-toolbar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .schematic-direction-badge {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .schematic-direction-badge.dir-hulu {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .schematic-direction-badge.dir-hilir {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .schematic-direction-badge .dir-target {
  color: var(--text-primary) !important;
}

[data-theme="light"] .schematic-direction-badge .dir-train-count {
  color: var(--text-primary) !important;
}

[data-theme="light"] .schematic-scroll-hint-bar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .track-diagram-container.horizontal-diagram-scroll::-webkit-scrollbar-track {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .rail-chevron-flow {
  color: var(--text-primary) !important;
}

[data-theme="light"] .schematic-station-node {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .schematic-station-name {
  color: var(--text-primary) !important;
}

[data-theme="light"] .schematic-train-card {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .train-card-badge {
  color: var(--text-primary) !important;
}

[data-theme="light"] .radar-multimoda-bar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .mm-chip {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

[data-theme="light"] .mm-chip:hover {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

[data-theme="light"] .mm-chip.active {
  color: var(--text-primary) !important;
}

[data-theme="light"] .mm-whoosh:hover,
[data-theme="light"] .mm-whoosh.active {
  color: var(--text-primary) !important;
}

[data-theme="light"] .mm-intercity:hover,
[data-theme="light"] .mm-intercity.active {
  color: var(--text-primary) !important;
}

[data-theme="light"] .mm-airport:hover,
[data-theme="light"] .mm-airport.active {
  color: var(--text-primary) !important;
}

[data-theme="light"] .mm-sukabumi:hover,
[data-theme="light"] .mm-sukabumi.active {
  color: var(--text-primary) !important;
}

[data-theme="light"] .mm-bandung:hover,
[data-theme="light"] .mm-bandung.active {
  color: var(--text-primary) !important;
}

[data-theme="light"] .mm-mrt:hover,
[data-theme="light"] .mm-mrt.active {
  color: var(--text-primary) !important;
}

[data-theme="light"] .mm-lrt:hover,
[data-theme="light"] .mm-lrt.active {
  color: var(--text-primary) !important;
}

[data-theme="light"] .radar-graphical-map-wrapper {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .graphical-map-container-box {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .graphical-map-container-box::-webkit-scrollbar-track {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .cyber-hud-card {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .hud-pill-restore-btn {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .hud-pill-restore-btn:hover {
  color: var(--text-primary) !important;
}

[data-theme="light"] .hud-train-id {
  color: var(--text-primary) !important;
}

[data-theme="light"] .radar-map-toolbar-bar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .radar-live-line-badge {
  color: var(--text-primary) !important;
}

[data-theme="light"] .radar-line-pill.active {
  color: var(--text-primary) !important;
}

@media (max-width: 900px) {
[data-theme="light"] .cyber-hud-card {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}
}

@media (max-width: 900px) {
[data-theme="light"] .graphical-map-container-box {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}
}

[data-theme="light"] .intercity-map-wrapper {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .map-toolbar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .map-title-tag {
  color: var(--text-primary) !important;
}

[data-theme="light"] .hud-close-btn:hover {
  color: var(--text-primary) !important;
}

[data-theme="light"] .mading-visual-title {
  color: var(--text-primary) !important;
}

[data-theme="light"] .mading-empty-state {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .empty-title {
  color: var(--text-primary) !important;
}

[data-theme="light"] .intercity-map-wrapper {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .intercity-map-header {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .java-map-scroll-stage {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .java-map-scroll-stage::-webkit-scrollbar-track {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .mobile-map-hint {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .mading-excerpt-text {
  color: var(--text-primary) !important;
}

[data-theme="light"] .mading-source-cta-box {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .mading-source-cta-title {
  color: var(--text-primary) !important;
}

[data-theme="light"] .mading-btn-external:hover {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-stat-box {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-stat-val {
  color: var(--text-primary) !important;
}

[data-theme="light"] .busway-map-wrapper {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .busway-multimoda-bar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-chip:hover {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-chip.active {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-code {
  color: var(--text-primary) !important;
}

[data-theme="light"] .busway-halte-drawer {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .bw-bus-id-tag {
  color: var(--text-primary) !important;
}

[data-theme="light"] .radar-geo-map-wrapper {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .geo-map-toolbar-bar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .geo-title-text {
  color: var(--text-primary) !important;
}

[data-theme="light"] .geo-tool-btn:hover {
  color: var(--text-primary) !important;
}

[data-theme="light"] .geo-tool-btn.active {
  color: var(--text-primary) !important;
}

[data-theme="light"] .leaflet-map-surface {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .geo-st-node {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .geo-train-badge {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .geo-train-label {
  color: var(--text-primary) !important;
}

[data-theme="light"] .custom-geo-popup .leaflet-popup-content-wrapper {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
  color: var(--text-primary) !important;
}

[data-theme="light"] .custom-geo-popup .leaflet-popup-tip {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .geo-popup-title {
  color: var(--text-primary) !important;
}

[data-theme="light"] .geo-popup-btn {
  color: var(--text-primary) !important;
}

[data-theme="light"] .busway-view-mode-bar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-toggle-btn:hover {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-stat-box {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-stat-val {
  color: var(--text-primary) !important;
}

[data-theme="light"] .busway-multimoda-bar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-chip:hover {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-chip.active {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-schematic-wrapper {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .bw-schematic-toolbar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-halte-node {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-schematic-bus-card {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .bw-bus-card-badge {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-bus-card-dir {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-timetable-panel {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-tt-field select {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-timetable-table th {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-route-pill {
  color: var(--text-primary) !important;
}

[data-theme="light"] .busway-graphical-map-wrapper {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .busway-map-container-box {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-finder-card {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .bw-finder-corridor-filter-bar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-active-corridor-tag {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-count-badge {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-select-box {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-preset-row {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-route-empty-box {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-route-summary-banner {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .bw-summary-title {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-summary-stat {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-summary-stat .stat-val {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-transit-step-card {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-step-number-badge {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-step-instruction {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-step-pill strong {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-step-stops-container {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-stop-chip.is-start,
[data-theme="light"] .bw-stop-chip.is-end {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-directory-card {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .bw-dir-card-title {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-dir-card-meta .meta-val {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-dir-terminals {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-dir-terminals .term-name {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-dir-filter-context-bar {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-btn-pick-corridor {
  color: var(--text-primary) !important;
}

[data-theme="light"] .bw-stop-chip.is-hub {
  color: var(--text-primary) !important;
}

[data-theme="light"] .busway-halte-drawer {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

[data-theme="light"] .bw-drawer-header {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

[data-theme="light"] .bw-btn-action-secondary {
  color: var(--text-primary) !important;
}

@media (max-width: 480px) {
  [data-theme="dark"] body {
    background: var(--bg-primary);
    color: var(--text-primary);
  }

  [data-theme="dark"] header {
    background: var(--glass-bg);
    border-color: var(--border-color);
    box-shadow: var(--shadow-md);
  }

  [data-theme="dark"] .brand-title,
  [data-theme="dark"] .brand-subtitle,
  [data-theme="dark"] .occ-stat-number {
    color: var(--text-primary);
  }

  [data-theme="dark"] .live-status-pill {
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(16, 185, 129, 0.3);
    color: #34d399;
  }

  [data-theme="dark"] .telemetry-server-pill,
  [data-theme="dark"] .header-status .live-clock-badge,
  [data-theme="dark"] .lang-switch-group,
  [data-theme="dark"] .theme-toggle-btn {
    background: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
    box-shadow: var(--shadow-sm);
  }

  [data-theme="dark"] .lang-switch-opt {
    color: var(--text-secondary);
  }

  [data-theme="dark"] .lang-switch-opt.active {
    background: rgba(56, 189, 248, 0.12);
    color: var(--text-primary);
    box-shadow: inset 0 0 0 1px rgba(56, 189, 248, 0.22);
  }

  [data-theme="dark"] .hero .hero-tag {
    background: rgba(56, 189, 248, 0.1);
    border-color: rgba(56, 189, 248, 0.22);
    color: var(--accent-sky);
  }

  [data-theme="dark"] .occ-stat-box {
    background: var(--bg-card);
    border-color: var(--border-color);
    box-shadow: var(--shadow-card);
    color: var(--text-primary);
  }

  [data-theme="dark"] .occ-stat-desc {
    color: var(--text-secondary);
  }

  [data-theme="dark"] .meta-pill {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-secondary);
  }

  [data-theme="dark"] .disruption-control-bar {
    background: var(--bg-card);
    border-color: var(--border-color);
    box-shadow: var(--shadow-card);
  }

  [data-theme="dark"] .main-nav-dock {
    background: var(--glass-bg);
    border-color: var(--border-color);
    box-shadow: var(--shadow-md);
  }

  [data-theme="dark"] .main-nav-dock .tab-btn,
  [data-theme="dark"] .main-nav-dock .tab-btn:hover,
  [data-theme="dark"] .main-nav-dock .tab-btn.active {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    box-shadow: none;
    color: var(--text-primary);
  }

  [data-theme="dark"] .main-nav-dock .tab-btn.active {
    background: linear-gradient(135deg, rgba(2, 132, 199, 0.24), rgba(6, 182, 212, 0.14));
    border-color: var(--border-highlight);
  }

  [data-theme="dark"] .main-nav-dock .tab-icon-box {
    background: rgba(56, 189, 248, 0.1);
    border-color: var(--border-color);
    color: var(--text-primary);
    box-shadow: none;
  }

  [data-theme="dark"] .main-nav-dock [data-tab="board"] .tab-icon-box {
    background: rgba(56, 189, 248, 0.1);
  }

  [data-theme="dark"] .main-nav-dock .tab-btn.active .tab-icon-box {
    background: rgba(56, 189, 248, 0.18);
    border-color: var(--border-highlight);
  }

  [data-theme="dark"] .main-nav-dock .tab-main-title {
    color: var(--text-primary);
  }

  [data-theme="dark"] .tab-btn.active::after {
    background: linear-gradient(90deg, var(--accent-sky), var(--accent-cyan));
  }
}
