/**
 * Dark Mode Toggle Button - Mobile Responsive Styles
 *
 * Two toggle buttons: one for mobile (in navbar-brand), one for desktop (in navbar-menu)
 * CSS shows/hides the appropriate one based on screen size.
 *
 * Based on header.css breakpoint at 1023.5px where navbar-menu
 * gets hidden via display: none on .navbar-menu:not(.is-active)
 */

/* Mobile-specific styles (screens smaller than 1024px) */
@media screen and (max-width: 1023.5px) {
  /* Show mobile toggle, hide desktop toggle */
  .theme-toggle-mobile {
    display: flex !important;
    position: fixed;
    top: 10px;
    right: 60px; /* Position to left of hamburger menu */
    z-index: calc(var(--z-index-navbar, 1000) + 1);
    background: transparent;
    padding: 0;
    align-items: center;
    justify-content: center;
  }

  .theme-toggle-desktop {
    display: none !important;
  }

  /* Style the mobile toggle button */
  #dark-mode-toggle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    padding: 8px;
    background-color: var(--navbar-background, #f5f5f5);
    border: 1px solid rgba(0, 0, 0, 0.1);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: all 0.2s ease;
  }

  #dark-mode-toggle:hover,
  #dark-mode-toggle:focus {
    transform: scale(1.1);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
  }

  #dark-mode-toggle:active {
    transform: scale(0.95);
  }

  /* Ensure icon fits properly in mobile button */
  #dark-mode-toggle .theme-icon {
    width: 100%;
    height: 100%;
    display: block;
  }

  /* Dark mode adjustments for mobile button background */
  body.dark-mode #dark-mode-toggle {
    background-color: var(--navbar-background-dark, #2d2d2d);
    border-color: rgba(255, 255, 255, 0.1);
  }

  /* Auto dark mode (system preference) */
  @media (prefers-color-scheme: dark) {
    body:not(.light-mode) #dark-mode-toggle {
      background-color: var(--navbar-background-dark, #2d2d2d);
      border-color: rgba(255, 255, 255, 0.1);
    }
  }
}

/* Desktop styles - normal navbar behavior */
@media screen and (min-width: 1024px) {
  /* Hide mobile toggle, show desktop toggle */
  .theme-toggle-mobile {
    display: none !important;
  }

  .theme-toggle-desktop {
    position: static;
    display: flex;
  }

  /* Standard desktop button styling - round like mobile */
  #dark-mode-toggle-desktop {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    padding: 8px;
    background-color: var(--navbar-background, #f5f5f5);
    border: 1px solid rgba(0, 0, 0, 0.1);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: all 0.2s ease;
  }

  #dark-mode-toggle-desktop:hover,
  #dark-mode-toggle-desktop:focus {
    transform: scale(1.1);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
  }

  #dark-mode-toggle-desktop:active {
    transform: scale(0.95);
  }

  #dark-mode-toggle-desktop .theme-icon {
    width: 24px;
    height: 24px;
  }

  /* Dark mode adjustments for desktop button */
  body.dark-mode #dark-mode-toggle-desktop {
    background-color: var(--navbar-background-dark, #2d2d2d);
    border-color: rgba(255, 255, 255, 0.1);
  }

  @media (prefers-color-scheme: dark) {
    body:not(.light-mode) #dark-mode-toggle-desktop {
      background-color: var(--navbar-background-dark, #2d2d2d);
      border-color: rgba(255, 255, 255, 0.1);
    }
  }
}

/* Accessibility - ensure buttons are keyboard accessible on all devices */
#dark-mode-toggle:focus,
#dark-mode-toggle-desktop:focus {
  outline: 2px solid var(--link-color, #007bff);
  outline-offset: 2px;
}

/* Touch target optimization for mobile (44px minimum) */
@media (pointer: coarse) {
  #dark-mode-toggle {
    min-width: 44px;
    min-height: 44px;
  }
}
