* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --cor-primaria: #2563eb;
    --cor-secundaria: #1d4ed8;
    --verde: #16a34a;
    --amarelo: #ca8a04;
    --vermelho: #dc2626;
    --bg: #f4f7fb;
    --card: #ffffff;
    --texto: #222;
    --texto-sec: #666;
    --borda: #e5e7eb;
    --sombra: 0 8px 25px rgba(0, 0, 0, .08);
}

body.dark {
    --bg: #111827;
    --card: #1f2937;
    --texto: #f9fafb;
    --texto-sec: #d1d5db;
    --borda: #374151;
    --sombra: 0 10px 25px rgba(0, 0, 0, .35);
}

body {
    background: var(--bg);
    color: var(--texto);
    font-family: "Poppins", sans-serif;
    transition: .3s;
}

button, input, select, textarea { font: inherit; }

:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .38);
    outline-offset: 3px;
}

.oculto { display: none; }

@keyframes fade {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--cor-primaria); border-radius: 20px; }
::-webkit-scrollbar-thumb:hover { background: var(--cor-secundaria); }
