/**
 * Estilos para Tema Light/Dark
 * CSS Variables e estilos de transição
 */

:root {
  /* Tema Dark (padrão) */
  --color-primary-main: #ebe8e9;
  --color-primary-dark: #081023;
  --color-primary-accent: #1A489F;
  --color-primary-highlight: #B52626;

  --color-text-primary: #ebe8e9;
  --color-text-primary-dark: #081023;
  --color-text-secondary: #919FA9;
  --color-text-disabled: #616D72;
  --color-text-inverse: #000000;
  --color-text-inverse-light: #FFFFFF; /* Sempre branco para botões coloridos */

  --color-background-default: #000000;
  --color-background-light: #ebe8e9;
  --color-background-paper: #151819;
  --color-background-elevated: #212527;
  --color-background-overlay: rgba(0, 0, 0, 0.9);
  --color-background-overlay-light: rgba(0, 0, 0, 0.5);

  --color-border-default: #616D72;
  --color-border-light: #919FA9;
  --color-border-dark: #3E4549;
  --color-border-accent: #1A489F;
  --color-border-highlight: #B52626;

  /* Transição suave entre temas */
  transition: background-color 0.4s ease-out, color 0.4s ease-out, border-color 0.4s ease-out;
}

html[data-theme="dark"] {
  --color-background-default: #000000;
}

html[data-theme="dark"] body {
  background-color: #000000;
}

html[data-theme="light"] body {
  background-color: #ffffff;
}

/* Tema Light */
html[data-theme="light"],
[data-theme="light"] {
  --color-text-primary: #081023;
  --color-text-primary-dark: #ebe8e9;
  --color-text-secondary: #616D72;
  --color-text-disabled: #919FA9;
  --color-text-inverse: #FFFFFF;
  --color-text-inverse-light: #FFFFFF; /* Sempre branco para botões coloridos */

  --color-background-default: #FFFFFF;
  --color-chrome-surface: #3d4349;
  --color-background-light: #FFFFFF;
  --color-background-paper: #FFFFFF;
  --color-background-elevated: #f5f5f5;
  --color-background-overlay: rgba(255, 255, 255, 0.9);
  --color-background-overlay-light: rgba(0, 0, 0, 0.5);

  --color-border-default: #bdbdbd;
  --color-border-light: #e0e0e0;
  --color-border-dark: #616D72;
}

/* Aplicar cores aos elementos base */
body {
  background-color: var(--color-background-default);
  color: var(--color-text-primary);
  transition: background-color 0.4s ease-out, color 0.4s ease-out;
}

/* Botão de Toggle de Tema */
.theme-toggle {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 10000;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--color-border-default);
  background-color: var(--color-background-paper);
  color: var(--color-text-primary);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.4s ease-out;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.theme-toggle:hover {
  border-color: var(--color-primary-accent);
  background-color: var(--color-primary-accent);
  color: var(--color-text-inverse-light);
  box-shadow: 0 0 20px rgba(26, 72, 159, 0.5);
  transform: scale(1.05);
}

.theme-toggle:active {
  transform: scale(0.95);
}

.theme-toggle svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
}

/* Aplicar transições suaves em elementos que mudam de cor */
* {
  transition: background-color 0.4s ease-out,
              color 0.4s ease-out,
              border-color 0.4s ease-out,
              box-shadow 0.4s ease-out;
}

/* Exceções para elementos que não devem ter transição */
img,
svg,
video,
iframe,
canvas {
  transition: none;
}
