@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
  /* Cores Escuras */
  --bg-dark: #0f172a;
  --card-bg-dark: #1e293b;
  --text-dark: #e2e8f0;
  --text-muted-dark: #94a3b8;
  --border-dark: #334155;

  /* Cores Claras */
  --bg-light: #f1f5f9;
  --card-bg-light: #ffffff;
  --text-light: #0f172a;
  --text-muted-light: #64748b;
  --border-light: #e2e8f0;

  /* Cores de Destaque */
  --primary-accent: #A78BFA;
  --primary-accent-darker: #8B5CF6;
  --primary-btn: #4F46E5;
  --primary-btn-hover: #4338CA;
  
  /* Espaçamentos responsivos */
  --card-padding-desktop: 2rem;
  --card-padding-mobile: 1rem;
}

/* Aplicação de Tema */
html.dark body {
  background-color: var(--bg-dark);
  color: var(--text-dark);
}

html.light body {
  background-color: var(--bg-light);
  color: var(--text-light);
}

body {
  font-family: 'Inter', sans-serif;
  transition: background-color 0.3s, color 0.3s;
}

.card {
  border-radius: 0.75rem;
  border: 1px solid;
  padding: var(--card-padding-mobile);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
  transition: background-color 0.3s, border-color 0.3s;
}

@media (min-width: 640px) {
  .card {
    padding: var(--card-padding-desktop);
  }
}

html.dark .card {
  background-color: var(--card-bg-dark);
  border-color: var(--border-dark);
}

html.light .card {
  background-color: var(--card-bg-light);
  border-color: var(--border-light);
}

.app-wrapper {
  max-width: 1200px;
  margin: 1rem auto;
  padding: 0.5rem;
}

@media (min-width: 640px) {
  .app-wrapper {
    margin: 2rem auto;
    padding: 1rem;
  }
}

.logo {
  background-color: var(--primary-accent);
  color: var(--bg-dark);
}

html.dark textarea,
html.dark input[type="number"] {
  background-color: var(--bg-dark);
  border-color: var(--border-dark);
}

html.light textarea,
html.light input[type="number"] {
  background-color: #f8fafc;
  border-color: var(--border-light);
}

textarea:focus,
input[type="number"]:focus {
  border-color: var(--primary-accent) !important;
  outline: none;
  box-shadow: 0 0 0 2px var(--primary-accent-darker);
}

.csv-upload-label:hover {
  text-decoration: underline;
}

.csv-upload-label {
  color: var(--primary-accent);
}

html.dark a,
html.dark .text-muted {
  color: var(--text-muted-dark);
}

html.light a,
html.light .text-muted {
  color: var(--text-muted-light);
}

a:hover {
  color: var(--primary-accent-darker);
}

html.dark #modal-box {
  background-color: var(--card-bg-dark);
  border: 1px solid var(--border-dark);
}

html.light #modal-box {
  background-color: var(--card-bg-light);
  border: 1px solid var(--border-light);
}

html.dark .history-item {
  background-color: #334155;
}

html.light .history-item {
  background-color: #f1f5f9;
}

html.dark .history-id {
  border-color: var(--border-dark);
}

html.light .history-id {
  border-color: var(--border-light);
}

html.dark .winner-card {
  background-color: var(--card-bg-dark);
  border-color: var(--border-dark);
}

html.light .winner-card {
  background-color: #f9fafb;
  border-color: var(--border-light);
}

html.dark .winner-name {
  color: #c4b5fd;
}

html.light .winner-name {
  color: #6d28d9;
}

#countdown-timer {
  animation: pulse 1s infinite;
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.1);
  }

  100% {
    transform: scale(1);
  }
}

#modal-overlay {
  background-color: rgba(0, 0, 0, 0.7);
}

/* Ajustes responsivos */
@media (max-width: 640px) {
  #countdown-timer {
    font-size: 8rem;
  }
  
  .history-item {
    padding: 0.75rem;
  }
  
  #history-list {
    max-height: 300px;
  }
  
  .winner-card {
    padding: 1rem;
  }
}

/* Ajustes para telas muito pequenas */
@media (max-width: 380px) {
  body {
    font-size: 14px;
  }
  
  .card {
    padding: 0.75rem;
  }
  
  #countdown-timer {
    font-size: 6rem;
  }
}

/* Fix para botões em tela pequena */
@media (max-width: 640px) {
  #draw-button, 
  #draw-again-button, 
  #download-log-button {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    font-size: 1rem;
  }
  
  .flex.items-center.justify-center.gap-3.text-2xl {
    gap: 0.5rem;
    font-size: 1.25rem;
  }
  
  input[type="number"] {
    width: 60px;
  }
}