@import "tailwindcss";

:root {
  --background: #ffffff;
  --foreground: #171717;
  --color-background: #ffffff;
  --color-foreground: #171717;
  --font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto,
    Helvetica, Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
    "Liberation Mono", "Courier New", monospace;
}

@media (prefers-color-scheme: dark) {
  :root {
    --background: #0a0a0a;
    --foreground: #ededed;
  }
}

/* Base styles */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

body {
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans), Arial, Helvetica, sans-serif;
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "liga", "kern";
}

/* Responsive text sizing */
@media (max-width: 640px) {
  html {
    font-size: 14px;
  }
}

/* Container responsivo */
.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 640px) {
  .container {
    max-width: 640px;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}

@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}

/* Animações suaves - aplicadas seletivamente */
button, a, .transition-all, [class*="hover:"], [class*="transition"] {
  transition: all 0.2s ease-in-out;
}

/* Touch target size */
button, a, input, select, textarea {
  touch-action: manipulation;
}

/* Melhor legibilidade em telas pequenas */
@media (max-width: 640px) {
  p, li, div {
    word-break: break-word;
  }
}

/* Scrollbar personalizada */
@media (min-width: 768px) {
  ::-webkit-scrollbar {
    width: 8px;
  }

  ::-webkit-scrollbar-track {
    background: #f1f5f9;
  }

  ::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
  }

  ::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
  }
}

/* Esconde scrollbar em dispositivos móveis */
@media (max-width: 767px) {
  ::-webkit-scrollbar {
    width: 0px;
    background: transparent;
  }
}

/* Foco acessível */
input:focus {
  outline: none;
}

/* Melhorar visibilidade dos placeholders */
::placeholder {
  color: #4b5563 !important; /* text-gray-600 */
  opacity: 1;
}

/* Melhorar contraste de textos secundários */
.text-gray-400 {
  color: #6b7280 !important; /* text-gray-500 */
}

.text-gray-500 {
  color: #4b5563 !important; /* text-gray-600 */
}

/* Animação de loading */
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.animate-spin {
  animation: spin 1s linear infinite;
}

/* Configuração para elementos select - fundo branco e texto preto */
select {
  background-color: #ffffff !important;
  color: #000000 !important;
  border: 1px solid #d1d5db !important;
}

select option {
  background-color: #ffffff !important;
  color: #000000 !important;
}

/* Regras globais para evitar transparência em inputs */
input, textarea {
  color: #000000 !important;
  opacity: 1 !important;
}

input:focus, textarea:focus {
  color: #000000 !important;
  opacity: 1 !important;
}

/* Garantir que o texto digitado seja sempre visível */
input[type="text"], input[type="email"], input[type="password"], 
input[type="number"], input[type="tel"], input[type="url"], 
input[type="search"], textarea {
  color: #000000 !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* Melhorar renderização em navegadores */
*,
*::before,
*::after {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Classe utilitária para dropdowns sólidos (evita transparência/backdrop) */
.solid-dropdown {
  background-color: #ffffff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  opacity: 1 !important;
}
