﻿@charset "UTF-8";
/* ==============================================
   GLOBAL.CSS - Reset e utilitarios
   ============================================== */

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

:root {
    --vinho-escuro: #4a0e0e;
    --vinho-medio: #6b1d1d;
    --vinho-claro: rgba(107, 29, 29, 0.3);
    --vinho-fraco: rgba(107, 29, 29, 0.1);
    --vinho-gradiente: linear-gradient(135deg, #4a0e0e 0%, #6b1d1d 50%, #4a0e0e 100%);
    --branco: #FFFFFF;
    --branco-fosco: rgba(255, 255, 255, 0.95);
    --preto: #171717;
    --cinza-escuro: #252525;
    --gold: #D4AF37;
    --danger: #E74C3C;
    --success: #2ECC71;
    --warning: #F39C12;
    --info: #3498DB;
    --sombra: 0 20px 50px rgba(74, 14, 14, 0.2);
    --transicao: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --sidebar-width: 250px;
    --sidebar-collapsed: 70px;
}

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--vinho-fraco); border-radius: 10px; }
::-webkit-scrollbar-thumb { background: var(--vinho-claro); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--vinho-medio); }

a { text-decoration: none; color: inherit; }

button {
    cursor: pointer;
    font-family: inherit;
    -webkit-tap-highlight-color: transparent;
}

img { max-width: 100%; display: block; }

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

@keyframes spin { to { transform: rotate(360deg); } }

@keyframes flutuar {
    0%   { transform: translateY(0); }
    50%  { transform: translateY(-20px); }
    100% { transform: translateY(0); }
}

.button-loading {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid #fff;
    border-top: 2px solid transparent;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    vertical-align: middle;
    margin: 0 auto;
}

.btn-loading { display: flex; align-items: center; justify-content: center; }

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

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