:root {
    /* Teal Padrão (Verde Mar) */
    --p-50: #f0fdfa; --p-100: #ccfbf1; --p-200: #99f6e4; --p-300: #5eead4;
    --p-400: #2dd4bf; --p-500: #14b8a6; --p-600: #0d9488; --p-700: #0f766e;
    --p-800: #115e59; --p-900: #134e4a;
    
    /* Slate Padrão (Fundo Claro) */
    --bg-50: #f8fafc; --bg-100: #f1f5f9; --bg-200: #e2e8f0; --bg-300: #cbd5e1;
    --bg-400: #94a3b8; --bg-500: #64748b; --bg-600: #475569; --bg-700: #334155;
    --bg-800: #1e293b; --bg-900: #0f172a;
}

/* TEMA DARK: Apenas inverte a escala do Slate de ponta a ponta! */
body.tema-dark {
    --bg-50: #0f172a; --bg-100: #1e293b; --bg-200: #334155; --bg-300: #475569;
    --bg-400: #64748b; --bg-500: #94a3b8; --bg-600: #cbd5e1; --bg-700: #e2e8f0;
    --bg-800: #f1f5f9; --bg-900: #f8fafc;
}

   /* Hacks para as caixinhas brancas acompanharem o Dark Mode */
body.tema-dark, body.tema-dark .bg-slate-50 { background-color: var(--bg-50) !important; }
body.tema-dark .bg-white { background-color: var(--bg-100) !important; border-color: var(--bg-200) !important; }

/* NOVO HACK: Impede a película dos pop-ups de virar um holofote branco */
body.tema-dark .fixed.inset-0.bg-slate-900 { 
    background-color: rgba(15, 23, 42, 0.95) !important; 
}

/* HACK ANTI-BALADA: Impede a tela de piscar ao arrastar a foto no celular */
.cropper-container, .cropper-container * {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
}

/* HACK CHECKBOX: Força as caixinhas a usarem a cor do tema escolhido e não a do celular */
input[type="checkbox"], input[type="radio"] {
    accent-color: var(--p-500) !important;
}

/* Cor Lima  */
body.cor-lima {
    --p-50: #f7fee7; --p-100: #ecfccb; --p-200: #d9f99d; --p-300: #bef264;
    --p-400: #a3e635; --p-500: #84cc16; --p-600: #65a30d; --p-700: #4d7c0f;
    --p-800: #3f6212; --p-900: #365314;
}

/* Cor Roxa */
body.cor-roxa {
    --p-50: #faf5ff; --p-100: #f3e8ff; --p-200: #e9d5ff; --p-300: #d8b4fe;
    --p-400: #c084fc; --p-500: #a855f7; --p-600: #9333ea; --p-700: #7e22ce;
    --p-800: #6b21a8; --p-900: #581c87;
}

/* Cor Azul */
body.cor-azul {
    --p-50: #eff6ff; --p-100: #dbeafe; --p-200: #bfdbfe; --p-300: #93c5fd;
    --p-400: #60a5fa; --p-500: #3b82f6; --p-600: #2563eb; --p-700: #1d4ed8;
    --p-800: #1e40af; --p-900: #1e3a8a;
}

/* Animação de Zoom + Fade para a Logo de Abertura */
.zoom-fade-in {
    animation: zoomFade 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

@keyframes zoomFade {
    0% {
        opacity: 0;
        transform: scale(0.85);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* Animações da Gaveta (Accordion) para Salas Recorrentes */
.gaveta-conteudo {
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
}
.gaveta-aberta {
    max-height: 3000px; /* Um valor alto o suficiente para caber muitos gastos */
    opacity: 1;
}
.seta-giratoria {
    transition: transform 0.3s ease;
}
.seta-giratoria.aberta {
    transform: rotate(180deg);
}
/* Esconder setinhas de input type="number" */
.hide-arrows::-webkit-outer-spin-button,
.hide-arrows::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.hide-arrows[type=number] {
    -moz-appearance: textfield;
    appearance: textfield; /* <--- O VS Code queria essa linha aqui! */
}

/* HACK NATIVO: Impede o clique longo (salvar/abrir imagem) no celular e arrastar no PC */
img {
    -webkit-touch-callout: none; 
    -webkit-user-select: none;   
    -moz-user-select: none;      
    -ms-user-select: none;       
    user-select: none;           
    -webkit-user-drag: none;     
}

/* A ARMA SECRETA PRO ANDROID CHROME: A foto fica "intangível" para o dedo, exceto na tela do Cropper! */
img:not(#cropImage) {
    pointer-events: none;
}

/* INLINE-D1: estado inicial do indicador de pull-to-refresh sem style= inline */
.tdq-ptr-inicial {
    transform: translateY(-100px);
}
