.light-theme {
  --primary-color: #667eea;
  --primary-dark: #764ba2;
  --bg-primary: #fff;
  --bg-secondary: #f5f5f5;
  --text-primary: #333;
  --text-secondary: #666;
  --border-color: #e9ecef;
}

.dark-theme {
  --primary-color: #667eea;
  --primary-dark: #764ba2;
  --bg-primary: #1e1e1e;
  --bg-secondary: #2d2d2d;
  --text-primary: #fff;
  --text-secondary: #b0b0b0;
  --border-color: #404040;
  --bg-elevated: #252525;
  --chart-grid-color: rgba(255, 255, 255, 0.12);
  --tooltip-bg: rgba(18, 18, 18, 0.96);
  --lab-header-bg: var(--lab-header-dark-bg);
  --lab-footer-bg: var(--lab-footer-dark-bg);
}

#themeToggleBtn,
[data-theme-toggle] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-width: 44px;
  min-height: 36px;
  padding: 0.35rem 0.7rem !important;
  background: rgba(255, 255, 255, 0.78) !important;
  border: 1px solid rgba(6, 35, 94, 0.28) !important;
  border-radius: 999px !important;
  box-shadow: 0 2px 8px rgba(6, 35, 94, 0.12);
  color: #06235e !important;
  cursor: pointer;
}

#themeToggleBtn::after,
[data-theme-toggle]::after {
  content: "Tema";
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1;
}

#themeToggleBtn:hover,
[data-theme-toggle]:hover {
  transform: translateY(-1px);
  background: var(--white) !important;
  border-color: rgba(55, 97, 180, 0.55) !important;
  box-shadow: 0 4px 12px rgba(6, 35, 94, 0.18);
  color: #3761b4 !important;
}

#themeToggleBtn:focus-visible,
[data-theme-toggle]:focus-visible,
.control-btn:focus-visible,
.sidebar-close-btn:focus-visible,
input:focus-visible {
  outline: 3px solid rgba(55, 97, 180, 0.35);
  outline-offset: 3px;
}

.dark-theme body,
.dark-theme .container-main,
.dark-theme .bg-light,
.dark-theme .bg-white {
  background-color: var(--bg-primary) !important;
  color: var(--text-primary) !important;
}

.dark-theme .bg-lab {
  background: var(--lab-header-bg) !important;
}

.dark-theme header.maps-header {
  background-color: #1f5b88 !important;
}

.dark-theme #themeToggleBtn,
.dark-theme [data-theme-toggle] {
  background: rgba(12, 28, 48, 0.88) !important;
  border-color: rgba(163, 191, 250, 0.45) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.28);
  color: #e8f1ff !important;
}

.dark-theme #themeToggleBtn:hover,
.dark-theme [data-theme-toggle]:hover {
  background: rgba(28, 45, 72, 0.96) !important;
  border-color: #a3bffa !important;
  color: var(--white) !important;
}

.dark-theme .navbar .btn-outline-lab,
.dark-theme .navbar .nav-link {
  background-color: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.48) !important;
  color: #f8fbff !important;
}

.dark-theme .navbar .btn-outline-lab:hover,
.dark-theme .navbar .btn-outline-lab:focus,
.dark-theme .navbar .nav-link:hover,
.dark-theme .navbar .nav-link:focus {
  background-color: rgba(255, 255, 255, 0.2) !important;
  border-color: rgba(255, 255, 255, 0.82) !important;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.18);
  color: var(--white) !important;
}

.dark-theme h1,
.dark-theme h2,
.dark-theme h3,
.dark-theme h4,
.dark-theme h5,
.dark-theme h6 {
  color: var(--text-primary) !important;
}

.dark-theme p,
.dark-theme li {
  color: #e0e0e0 !important;
}

.dark-theme a {
  color: #a3bffa;
}

.dark-theme a:hover {
  color: #c3d4ff;
}

.dark-theme .text-muted,
.dark-theme .text-secondary,
.dark-theme .text-dark {
  color: var(--text-secondary) !important;
}

.dark-theme .card,
.dark-theme .modal-content,
.dark-theme .modal-header,
.dark-theme .modal-body,
.dark-theme .modal-footer,
.dark-theme .documentation-content,
.dark-theme .chart-modal-content,
.dark-theme .chart-container,
.dark-theme .sidebar,
.dark-theme .controls-container,
.dark-theme .control-btn,
.dark-theme .feature-card,
.dark-theme .team-group,
.dark-theme .partners-section,
.dark-theme .partner-logo,
.dark-theme .theme-surface,
.dark-theme .doc-warning,
.dark-theme .video-card,
.dark-theme .videos-container,
.dark-theme .publication-item,
.dark-theme .contact-info,
.dark-theme .stat-card,
.dark-theme .parameter-item,
.dark-theme .variable-selector-wrapper,
.dark-theme .height-selector-wrapper,
.dark-theme .colorbar-container,
.dark-theme .domain-indicators-container,
.dark-theme .parameters-editor {
  background: var(--bg-secondary) !important;
  border-color: var(--border-color) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.28) !important;
  color: var(--text-primary) !important;
}

.dark-theme .feature-card,
.dark-theme .project-card-modern {
  border-top-color: #a3bffa !important;
}

.dark-theme .feature-icon {
  background: linear-gradient(135deg, rgba(102, 126, 234, 0.22) 0%, rgba(176, 224, 230, 0.14) 100%) !important;
  color: #a3bffa !important;
}

.dark-theme .partner-logo:hover,
.dark-theme .feature-card:hover,
.dark-theme .team-group:hover {
  background: var(--bg-elevated) !important;
}

.dark-theme .feature-card p,
.dark-theme .alert-card p,
.dark-theme .explanation-content p,
.dark-theme .explanation-content li,
.dark-theme .footer-notice p,
.dark-theme .publication-item,
.dark-theme .project-card-modern p {
  color: #d8dee9 !important;
}

.dark-theme .team-group a,
.dark-theme .team-group a.text-dark {
  color: #c3d4ff !important;
}

.dark-theme .team-group a:hover {
  color: var(--white) !important;
}

.dark-theme .modern-footer {
  background: var(--lab-footer-bg) !important;
  color: #f4f8ff !important;
}

.dark-theme .modern-footer img[alt="LabMiM"] {
  filter: brightness(1.28) contrast(1.06) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35)) !important;
}

.dark-theme .documentation-tabs {
  background-color: var(--bg-primary) !important;
  border-color: var(--border-color) !important;
}

.dark-theme .doc-tab {
  color: var(--text-secondary) !important;
}

.dark-theme .doc-tab.active {
  background-color: var(--bg-secondary) !important;
  border-bottom-color: var(--primary-color) !important;
  color: var(--primary-color) !important;
}

.dark-theme .doc-var-card {
  background-color: var(--bg-secondary) !important;
  border-color: var(--border-color) !important;
}

.dark-theme input,
.dark-theme select,
.dark-theme textarea,
.dark-theme .form-control,
.dark-theme .variable-select,
.dark-theme .parameter-input {
  background-color: var(--bg-primary) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.dark-theme input::placeholder,
.dark-theme textarea::placeholder,
.dark-theme .parameter-input::placeholder {
  color: #777 !important;
}

.dark-theme table,
.dark-theme .table,
.dark-theme .table-custom {
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.dark-theme .table td,
.dark-theme .table th {
  border-color: var(--border-color) !important;
}

.dark-theme .sidebar-header h3,
.dark-theme .info-section-title,
.dark-theme .info-label,
.dark-theme .slider-wrapper label,
.dark-theme .variable-selector-wrapper label,
.dark-theme .height-selector-wrapper label,
.dark-theme .domain-label,
.dark-theme .doc-tab-content h4,
.dark-theme .chart-modal-header h2,
.dark-theme .chart-title,
.dark-theme .parameter-label {
  color: var(--text-primary) !important;
}

.dark-theme .info-value,
.dark-theme .slider-time,
.dark-theme .parameters-toggle-label,
.dark-theme .stat-card-value {
  color: #a3bffa !important;
}

.dark-theme .info-section,
.dark-theme .sidebar-header,
.dark-theme .colorbar-unit,
.dark-theme .chart-header,
.dark-theme .documentation-tabs {
  border-color: var(--border-color) !important;
}

.dark-theme .variable-specific {
  background: linear-gradient(135deg, #242936 0%, #1f2937 100%) !important;
}

.dark-theme .colorbar-labels,
.dark-theme .colorbar-unit,
.dark-theme .stat-card-unit,
.dark-theme .parameter-unit,
.dark-theme .parameter-hint,
.dark-theme .chart-no-data {
  color: var(--text-secondary) !important;
}

.dark-theme .chart-modal-body,
.dark-theme .chart-modal-body > div[id^="chartContainer"] {
  background-color: #161b22 !important;
}

.dark-theme #timeSeriesLoadingOverlay {
  background: rgba(30, 30, 30, 0.88) !important;
  color: var(--text-primary) !important;
}

.dark-theme #timeSeriesLoadingOverlay > div:last-child {
  color: var(--text-primary) !important;
}

.dark-theme .chart-export-btn,
.dark-theme .chart-export-button {
  border-color: #a3bffa !important;
  color: #a3bffa !important;
}

.dark-theme .chart-modal-close,
.dark-theme .modal-custom-close,
.dark-theme .close {
  color: var(--text-secondary) !important;
}

.dark-theme .chart-modal-close:hover,
.dark-theme .modal-custom-close:hover {
  background-color: var(--bg-primary) !important;
  color: var(--text-primary) !important;
}

.dark-theme .leaflet-tile {
  filter: brightness(0.68) contrast(1.12) saturate(0.8);
}

.dark-theme .leaflet-control,
.dark-theme .leaflet-control a {
  background-color: var(--bg-secondary) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.variable-solar {
  --variable-accent: #ff6b00;
  --variable-light: #ffe4cc;
}

.variable-wind {
  --variable-accent: #06c;
  --variable-light: #cce5ff;
}

.variable-temperature {
  --variable-accent: #d62828;
  --variable-light: #ffe0e0;
}

.variable-humidity {
  --variable-accent: #2a9d8f;
  --variable-light: #d0ede9;
}

.variable-rain {
  --variable-accent: #457b9d;
  --variable-light: #d4dce8;
}

.variable-solar .sidebar-header,
.variable-wind .sidebar-header,
.variable-temperature .sidebar-header,
.variable-humidity .sidebar-header,
.variable-rain .sidebar-header {
  background: linear-gradient(135deg, var(--variable-accent), var(--primary-dark));
}

.variable-solar .info-section-title,
.variable-wind .info-section-title,
.variable-temperature .info-section-title,
.variable-humidity .info-section-title,
.variable-rain .info-section-title {
  color: var(--variable-accent);
}

.dark-theme .wind-layer-toggle label:not(:has(input:checked)) {
  background: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.28) !important;
}

@media (prefers-contrast: more) {
  .info-item {
    border: 2px solid #333;
  }

  .control-btn {
    border-width: 2px;
  }

  .sidebar-header {
    border-bottom-width: 3px;
  }
}
