/* ============================================
   Theme System - Light & Dark Mode
   ============================================ */

/* Dark Theme Variables */
[data-theme="dark"] {
  --color-primary: #3B82F6;
  --color-primary-light: #60A5FA;
  --color-primary-dark: #2563EB;
  --color-secondary: #F59E0B;
  --color-accent: #D97706;

  --color-text: #F3F4F6;
  --color-text-secondary: #D1D5DB;
  --color-text-muted: #9CA3AF;

  --color-bg: #111827;
  --color-bg-secondary: #1F2937;
  --color-bg-tertiary: #374151;

  --color-border: #374151;
  --color-shadow: rgba(0, 0, 0, 0.3);
}

/* Theme Toggle Button Styles */
.theme-toggle {
  position: relative;
  width: 40px;
  height: 40px;
}

.sun-icon {
  display: block;
}

.moon-icon {
  display: none;
}

[data-theme="dark"] .sun-icon {
  display: none;
}

[data-theme="dark"] .moon-icon {
  display: block;
}

/* Smooth theme transition */
body,
.header,
.footer,
.nav-link,
.btn,
input,
textarea,
.card {
  transition:
    background-color 300ms ease,
    color 300ms ease,
    border-color 300ms ease;
}

/* Image brightness adjustment for dark mode */
[data-theme="dark"] img:not([data-no-theme]) {
  opacity: 0.9;
  filter: brightness(0.9);
}

/* Code blocks in dark mode */
[data-theme="dark"] pre,
[data-theme="dark"] code {
  background: var(--color-bg-tertiary);
  color: var(--color-text);
  border-color: var(--color-border);
}

/* Form inputs in dark mode */
[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select {
  background: var(--color-bg-secondary);
  color: var(--color-text);
  border-color: var(--color-border);
}

[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder {
  color: var(--color-text-muted);
}

/* Cards and surfaces */
.card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--spacing-6);
  box-shadow: var(--shadow-base);
}

[data-theme="dark"] .card {
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
}

/* Scrollbar theming */
::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

::-webkit-scrollbar-track {
  background: var(--color-bg-secondary);
}

::-webkit-scrollbar-thumb {
  background: var(--color-text-muted);
  border-radius: var(--radius-base);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--color-text-secondary);
}

/* Selection color */
::selection {
  background: var(--color-secondary);
  color: var(--color-bg);
}

/* Focus visible for keyboard navigation */
:focus-visible {
  outline: 2px solid var(--color-secondary);
  outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  :root {
    --color-border: #000;
  }

  [data-theme="dark"] {
    --color-border: #FFF;
  }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Print styles */
@media print {
  [data-theme="dark"] {
    --color-bg: #FFF;
    --color-text: #000;
  }

  .header,
  .footer,
  .navbar-actions,
  .theme-toggle,
  .language-selector {
    display: none !important;
  }
}
