/*
  Seletor de tema (Figma 123:21).
  Medidas do Figma: 70 × 38, borda 1px texto-nav, padding 3px, gap 2px,
  opções 30 × 30 com raio 999, opção ativa preenchida com a cor texto.
*/

/* Sem JavaScript o tema não troca, então o botão não aparece.
   O script inline do <head> adiciona a classe "js" quando o JS roda. */
html:not(.js) .seletor-tema {
  display: none;
}

.seletor-tema {
  position: relative;
  display: inline-flex;
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--texto-nav);
  border-radius: var(--raio-999);
}

/* Área de toque: o botão tem 38px de altura no Figma. Este pseudo-elemento
   estende a área clicável para 44px sem mudar o desenho. */
.seletor-tema::before {
  content: "";
  position: absolute;
  inset: -4px -1px;
}

/* Indicador da opção ativa. Desliza com transform (sem reflow).
   Posição inicial: sol (tema claro). */
.seletor-tema::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 30px;
  height: 30px;
  border-radius: var(--raio-999);
  background-color: var(--texto);
}

/* Tema escuro: indicador sobre a lua (30px da opção + 2px de gap) */
.seletor-tema[aria-pressed="true"]::after {
  transform: translateX(32px);
}

.seletor-tema-opcao {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  color: var(--texto-nav);
}

/* Ícone da opção ativa usa a cor do fundo, sobre o indicador */
.seletor-tema[aria-pressed="false"] .seletor-tema-opcao-sol,
.seletor-tema[aria-pressed="true"] .seletor-tema-opcao-lua {
  color: var(--fundo);
}

@media (prefers-reduced-motion: no-preference) {
  .seletor-tema::after {
    transition: transform 0.3s ease, background-color 0.3s ease;
  }

  .seletor-tema-opcao {
    transition: color 0.3s ease;
  }
}

/* Abaixo de 1120px (menu do header), o próprio botão tem 44px de altura,
   o alvo de toque mínimo do projeto. As opções continuam com 30px,
   centralizadas, e o indicador acompanha o centro. */
@media (max-width: 1119.98px) {
  .seletor-tema {
    align-items: center;
    min-height: 44px;
  }

  .seletor-tema::after {
    top: calc(50% - 15px);
  }
}
