/* ============================================================
   _tw-utilities.css — subset estático do Tailwind v3
   Substitui https://cdn.tailwindcss.com (removido em 2026-06).
   Contém SOMENTE as classes utilitárias realmente usadas em
   index.html e js/** (HTML gerado por template strings).
   Valores idênticos à escala padrão do Tailwind v3.
   Carregado ANTES dos demais CSS pra que overrides existentes
   continuem vencendo a cascata.
   Obs: .hidden e .sr-only já existem em _reset.css — não duplicar.
   ============================================================ */

/* --- Posicionamento / layout --- */
.absolute { position: absolute; }

.flex { display: flex; }
.grid { display: grid; }

.items-center { align-items: center; }

.flex-1 { flex: 1 1 0%; }
.flex-shrink-0 { flex-shrink: 0; }

/* --- Espaçamento --- */

.gap-2 { gap: 0.5rem; }

.mt-2 { margin-top: 0.5rem; }
.p-1 { padding: 0.25rem; }
.p-2 { padding: 0.5rem; }

/* --- Dimensões --- */

.h-6 { height: 1.5rem; }

.w-6 { width: 1.5rem; }

.min-h-\[16px\] { min-height: 16px; }

/* --- Tipografia --- */
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }

.font-semibold { font-weight: 600; }

/* --- Cores de texto --- */

.text-amber-200 { color: #fde68a; }

.text-green-400 { color: #4ade80; }

.text-red-400 { color: #f87171; }

/* --- Fundos --- */
.bg-transparent { background-color: transparent; }

/* --- Bordas ---
   Sem o preflight do Tailwind (border-style: solid global),
   .border precisa declarar o style explicitamente. */
.border { border-width: 1px; border-style: solid; }
.border-0 { border-width: 0; }

.rounded { border-radius: 0.25rem; }

/* --- Efeitos / interação --- */
.opacity-0 { opacity: 0; }
.opacity-50 { opacity: 0.5; }
.opacity-70 { opacity: 0.7; }
.cursor-pointer { cursor: pointer; }
.cursor-not-allowed { cursor: not-allowed; }

/* --- Transições --- */

.transition-opacity {
    transition-property: opacity;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.transition-transform {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

/* --- Variantes hover/focus --- */
.hover\:bg-red-500\/20:hover { background-color: rgb(239 68 68 / 0.2); }
.hover\:text-red-400:hover { color: #f87171; }
.focus\:border-blue-500:focus { border-color: #3b82f6; }

/* --- Variantes group-hover (.group é só marcador, sem regra própria) --- */
.group:hover .group-hover\:opacity-100 { opacity: 1; }
/* Teclado: o que aparece no hover também aparece quando o foco entra no grupo */
.group:focus-within .group-hover\:opacity-100 { opacity: 1; }
.group:hover .group-hover\:scale-110 { transform: scale(1.1); }
.group:hover .group-hover\:text-white { color: #fff; }

/* --- Responsivo --- */
@media (min-width: 768px) {
    .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
