/* ==============================
   TEMAS — requisicoes_ifsc_gpb
   ============================== */

:root {
  --primary:       #1CBB9B;
  --primary-dark:  #169C80;
  --primary-light: #ccfaf2;
  --danger:        #dc2626;
  --bg:            #F2F4F8;
  --surface:       #ffffff;
  --surface-2:     #f9fafb;
  --surface-hover: #f3f4f6;
  --border:        #e5e7eb;
  --text:          #333333;
  --text-2:        #6b7280;
  --text-muted:    #9ca3af;
  --shadow:        0 2px 8px rgba(0,0,0,0.07);
  --focus-ring:    rgba(28,187,155,0.25);
}

[data-theme="ifsc"] {
  --primary:       #32a041;
  --primary-dark:  #288034;
  --primary-light: #dcfce7;
  --danger:        #c8191e;
  --focus-ring:    rgba(50,160,65,0.20);
}

[data-theme="noturno"] {
  --primary:       #1CBB9B;
  --primary-dark:  #169C80;
  --primary-light: #0d3d32;
  --danger:        #ef4444;
  --bg:            #0f172a;
  --surface:       #1e293b;
  --surface-2:     #263246;
  --surface-hover: #2d3a4f;
  --border:        #334155;
  --text:          #f1f5f9;
  --text-2:        #94a3b8;
  --text-muted:    #64748b;
  --shadow:        0 2px 8px rgba(0,0,0,0.35);
  --focus-ring:    rgba(28,187,155,0.30);
}

/* ==============================
   CLASSES SEMÂNTICAS DE TEMA
   ============================== */

.theme-header {
  background-color: var(--primary) !important;
}

.theme-btn-primary {
  background-color: var(--primary) !important;
  color: #fff !important;
}
.theme-btn-primary:hover {
  background-color: var(--primary-dark) !important;
}

.theme-text-primary {
  color: var(--primary) !important;
}

.theme-focus:focus {
  --tw-ring-color: var(--focus-ring) !important;
  border-color: var(--primary) !important;
}

/* Sidebar active state (usa classes brand- do Tailwind) */
[data-theme] .bg-brand-DEFAULT {
  background-color: var(--primary) !important;
}
[data-theme] .bg-brand-DEFAULT\/10 {
  background-color: color-mix(in srgb, var(--primary) 12%, transparent) !important;
}
[data-theme] .text-brand-DEFAULT {
  color: var(--primary) !important;
}

/* ==============================
   TEMA NOTURNO — overrides Tailwind
   ============================== */

[data-theme="noturno"] body,
[data-theme="noturno"] .gradient-bg {
  background-color: var(--bg) !important;
}

/* Superfícies brancas / cards */
[data-theme="noturno"] .bg-white {
  background-color: var(--surface) !important;
}
[data-theme="noturno"] .bg-gray-50 {
  background-color: var(--surface-2) !important;
}
[data-theme="noturno"] .bg-gray-100 {
  background-color: var(--surface-hover) !important;
}

/* Texto */
[data-theme="noturno"] .text-gray-900,
[data-theme="noturno"] .text-gray-800 {
  color: var(--text) !important;
}
[data-theme="noturno"] .text-gray-700,
[data-theme="noturno"] .text-gray-600 {
  color: var(--text-2) !important;
}
[data-theme="noturno"] .text-gray-500,
[data-theme="noturno"] .text-gray-400 {
  color: var(--text-muted) !important;
}

/* Bordas */
[data-theme="noturno"] .border-gray-100,
[data-theme="noturno"] .border-gray-200,
[data-theme="noturno"] .border-gray-50 {
  border-color: var(--border) !important;
}
[data-theme="noturno"] .divide-gray-100 > * + * {
  border-color: var(--border) !important;
}

/* Sombras */
[data-theme="noturno"] .shadow-sm,
[data-theme="noturno"] .shadow-md,
[data-theme="noturno"] .shadow-xl {
  box-shadow: var(--shadow) !important;
}

/* Inputs e formulários */
[data-theme="noturno"] input,
[data-theme="noturno"] select,
[data-theme="noturno"] textarea {
  background-color: var(--surface-2) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
[data-theme="noturno"] input::placeholder,
[data-theme="noturno"] textarea::placeholder {
  color: var(--text-muted) !important;
}

/* Badges e tags */
[data-theme="noturno"] .bg-gray-100.text-gray-600 {
  background-color: var(--surface-hover) !important;
  color: var(--text-2) !important;
}

/* Background hardcoded do layout admin */
[data-theme="noturno"] .bg-\[#F2F4F8\] {
  background-color: var(--bg) !important;
}

/* ==============================
   IFSC THEME — override cores hardcoded #1CBB9B
   ============================== */

[data-theme="ifsc"] .bg-\[\#1CBB9B\] {
  background-color: var(--primary) !important;
}
[data-theme="ifsc"] .text-\[\#1CBB9B\] {
  color: var(--primary) !important;
}
[data-theme="ifsc"] .border-\[\#1CBB9B\],
[data-theme="ifsc"] .border-\[\#1CBB9B\]\/10,
[data-theme="ifsc"] .border-\[\#1CBB9B\]\/20 {
  border-color: var(--primary) !important;
}
[data-theme="ifsc"] .hover\:bg-\[\#169C80\]:hover,
[data-theme="ifsc"] .hover\:bg-\[\#1CBB9B\]:hover {
  background-color: var(--primary-dark) !important;
}
[data-theme="ifsc"] .hover\:text-\[\#169C80\]:hover {
  color: var(--primary-dark) !important;
}
[data-theme="ifsc"] .hover\:border-\[\#1CBB9B\]:hover {
  border-color: var(--primary) !important;
}
[data-theme="ifsc"] .focus\:ring-\[\#1CBB9B\]:focus {
  --tw-ring-color: var(--primary) !important;
}
[data-theme="ifsc"] .group:focus-within .group-focus-within\:text-\[\#1CBB9B\] {
  color: var(--primary) !important;
}
[data-theme="ifsc"] .type-card.selected,
[data-theme="ifsc"] .type-card:hover {
  border-color: var(--primary) !important;
}

/* ==============================
   NOTURNO — formulário público (.glass, type-card, step dots)
   ============================== */

[data-theme="noturno"] .glass {
  background: var(--surface) !important;
}
[data-theme="noturno"] .type-card {
  background-color: var(--surface-2) !important;
  border-color: var(--border) !important;
}
[data-theme="noturno"] .type-card:hover,
[data-theme="noturno"] .type-card.selected {
  background-color: var(--surface) !important;
}

/* Pontos inativos da barra de progresso */
[data-theme="noturno"] #step-dot-2,
[data-theme="noturno"] #step-dot-3 {
  background-color: var(--surface-2) !important;
  border-color: var(--border) !important;
  color: var(--text-muted) !important;
}

/* Linha de fundo da barra de progresso */
[data-theme="noturno"] .bg-gray-200 {
  background-color: var(--border) !important;
}

/* Hover states do dark mode */
[data-theme="noturno"] .hover\:bg-gray-50:hover {
  background-color: var(--surface-hover) !important;
}
[data-theme="noturno"] .hover\:bg-gray-100:hover {
  background-color: var(--surface-hover) !important;
}
[data-theme="noturno"] .hover\:text-gray-900:hover {
  color: var(--text) !important;
}

/* Seções de upload/anexo */
[data-theme="noturno"] .border-dashed {
  border-color: var(--border) !important;
}

/* ==============================
   NOTURNO — área administrativa
   ============================== */

/* Header escuro no dark mode */
[data-theme="noturno"] .theme-header {
  background-color: #0f1e1a !important;
}

/* bg-gray-50/80 (variante estática) */
[data-theme="noturno"] .bg-gray-50\/80 {
  background-color: var(--surface-2) !important;
}

/* Cabeçalho de tabela (usa bg-gray-50/50 com transparência) */
[data-theme="noturno"] .bg-gray-50\/50 {
  background-color: var(--surface-2) !important;
}

/* Hover de linhas de tabela */
[data-theme="noturno"] .hover\:bg-gray-50\/80:hover {
  background-color: var(--surface-hover) !important;
}

/* Borda gray-300 em formulários admin */
[data-theme="noturno"] .border-gray-300 {
  border-color: var(--border) !important;
}

/* brand-dark = #169C80 → usa primary no dark */
[data-theme="noturno"] .text-brand-dark {
  color: var(--primary) !important;
}

/* brand-light/* → teal semitransparente (ícones, avatares, badges concluído) */
[data-theme="noturno"] .bg-brand-light\/10 {
  background-color: color-mix(in srgb, var(--primary) 15%, transparent) !important;
}
[data-theme="noturno"] .bg-brand-light\/20 {
  background-color: color-mix(in srgb, var(--primary) 22%, transparent) !important;
}
[data-theme="noturno"] .hover\:bg-brand-light\/10:hover {
  background-color: color-mix(in srgb, var(--primary) 15%, transparent) !important;
}
[data-theme="noturno"] .hover\:bg-brand-light\/20:hover {
  background-color: color-mix(in srgb, var(--primary) 22%, transparent) !important;
}

/* Bordas brand no dark */
[data-theme="noturno"] .border-brand-light\/30,
[data-theme="noturno"] .hover\:border-brand-light\/30:hover,
[data-theme="noturno"] .hover\:border-brand-light\/50:hover,
[data-theme="noturno"] .hover\:border-brand-DEFAULT\/50:hover {
  border-color: rgba(28, 187, 155, 0.40) !important;
}

/* ── Badges de status: amarelo ─────────────────── */
[data-theme="noturno"] .bg-yellow-50 {
  background-color: rgba(161, 98, 7, 0.20) !important;
}
[data-theme="noturno"] .bg-yellow-100 {
  background-color: rgba(161, 98, 7, 0.25) !important;
}
[data-theme="noturno"] .text-yellow-600,
[data-theme="noturno"] .text-yellow-700 {
  color: #fbbf24 !important;
}
[data-theme="noturno"] .hover\:text-yellow-700:hover {
  color: #fbbf24 !important;
}
[data-theme="noturno"] .border-yellow-100 {
  border-color: rgba(202, 138, 4, 0.25) !important;
}
[data-theme="noturno"] .border-yellow-200 {
  border-color: rgba(202, 138, 4, 0.35) !important;
}
[data-theme="noturno"] .hover\:bg-yellow-100:hover {
  background-color: rgba(161, 98, 7, 0.25) !important;
}

/* ── Badges de status: azul ────────────────────── */
[data-theme="noturno"] .bg-blue-50 {
  background-color: rgba(37, 99, 235, 0.15) !important;
}
[data-theme="noturno"] .text-blue-700,
[data-theme="noturno"] .text-blue-600,
[data-theme="noturno"] .text-blue-500,
[data-theme="noturno"] .text-blue-400 {
  color: #60a5fa !important;
}
[data-theme="noturno"] .border-blue-100 {
  border-color: rgba(59, 130, 246, 0.30) !important;
}
[data-theme="noturno"] .hover\:bg-blue-50:hover {
  background-color: rgba(37, 99, 235, 0.15) !important;
}
[data-theme="noturno"] .hover\:text-blue-600:hover {
  color: #60a5fa !important;
}

/* ── Badges de status: verde ───────────────────── */
[data-theme="noturno"] .bg-green-50 {
  background-color: rgba(22, 163, 74, 0.15) !important;
}
[data-theme="noturno"] .bg-green-100 {
  background-color: rgba(22, 163, 74, 0.20) !important;
}
[data-theme="noturno"] .bg-green-200 {
  background-color: rgba(74, 222, 128, 0.30) !important;
}
[data-theme="noturno"] .text-green-800,
[data-theme="noturno"] .text-green-700,
[data-theme="noturno"] .text-green-600 {
  color: #4ade80 !important;
}
[data-theme="noturno"] .border-green-100 {
  border-color: rgba(22, 163, 74, 0.25) !important;
}
[data-theme="noturno"] .border-green-200 {
  border-color: rgba(22, 163, 74, 0.30) !important;
}

/* ── Badges de status: vermelho ────────────────── */
[data-theme="noturno"] .bg-red-50 {
  background-color: rgba(220, 38, 38, 0.15) !important;
}
[data-theme="noturno"] .bg-red-100 {
  background-color: rgba(220, 38, 38, 0.20) !important;
}
[data-theme="noturno"] .text-red-700,
[data-theme="noturno"] .text-red-600,
[data-theme="noturno"] .text-red-500,
[data-theme="noturno"] .text-red-400 {
  color: #f87171 !important;
}
[data-theme="noturno"] .hover\:text-red-600:hover,
[data-theme="noturno"] .hover\:text-red-500:hover {
  color: #f87171 !important;
}
[data-theme="noturno"] .border-red-100 {
  border-color: rgba(220, 38, 38, 0.25) !important;
}
[data-theme="noturno"] .border-red-200 {
  border-color: rgba(220, 38, 38, 0.30) !important;
}
[data-theme="noturno"] .hover\:bg-red-50:hover {
  background-color: rgba(220, 38, 38, 0.15) !important;
}

/* Teal com opacidade (request_details) */
[data-theme="noturno"] .bg-\[\#1CBB9B\]\/5 {
  background-color: rgba(28, 187, 155, 0.12) !important;
}
[data-theme="noturno"] .border-\[\#1CBB9B\]\/10 {
  border-color: rgba(28, 187, 155, 0.25) !important;
}

/* Anel branco ao redor dos ícones de timeline */
[data-theme="noturno"] .ring-white {
  --tw-ring-color: var(--surface) !important;
}

/* ==============================
   BOTÕES DE TEMA
   ============================== */

.theme-switcher {
  display: flex;
  align-items: center;
  gap: 2px;
}

.theme-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1.1rem;
  padding: 3px 5px;
  border-radius: 6px;
  opacity: 0.65;
  transition: opacity 0.15s, background 0.15s;
  line-height: 1;
}
.theme-btn:hover {
  opacity: 1;
  background: rgba(255,255,255,0.15);
}
.theme-btn.active {
  opacity: 1;
  background: rgba(255,255,255,0.25);
}
