/* =====================================================================
   AZO2 :: Tokens de design (cores, tipografia, espaçamentos)
   Paleta derivada da marca: coral "azo" + gradiente verde-água/lima do ícone.
   ===================================================================== */

:root {
    /* Marca */
    --azo-coral: #E33666;
    --azo-coral-escuro: #C0234F;
    --azo-coral-suave: #FDE9EF;
    /* Degradê da logo (tela de abertura do app): rosa no topo, coral na base */
    --azo-gradiente-marca: linear-gradient(180deg, #E12975 0%, #E33666 45%, #E54A49 100%);
    --azo-teal: #2A9D8F;
    --azo-teal-claro: #7ECDC0;
    --azo-lima: #BFDC86;
    --azo-gradiente: linear-gradient(135deg, #7ECDC0 0%, #BFDC86 100%);

    /* Superfícies */
    --azo-fundo: #F4F6F9;
    --azo-superficie: #FFFFFF;
    --azo-superficie-2: #F8FAFC;
    --azo-borda: #E4E8EE;
    --azo-texto: #1F2937;
    --azo-texto-2: #5B6472;
    --azo-texto-3: #8A93A2;

    /* Menu lateral */
    --azo-menu-largura: 264px;
    --azo-menu-largura-recolhido: 72px;
    --azo-topo-altura: 60px;
    --azo-menu-fundo: #FFFFFF;
    --azo-menu-texto: #3E4756;
    --azo-menu-icone: #8A93A2;
    --azo-menu-hover: #F4F6F9;
    --azo-menu-ativo-fundo: var(--azo-coral-suave);
    --azo-menu-ativo-texto: var(--azo-coral-escuro);

    /* Estados */
    --azo-sucesso: #16A34A;
    --azo-alerta: #D97706;
    --azo-perigo: #DC2626;
    --azo-info: #0284C7;

    /* Forma */
    --azo-raio: 20px;
    --azo-raio-sm: 12px;
    --azo-sombra: 0 1px 3px rgba(16, 24, 40, .06);
    --azo-sombra-lg: 0 12px 32px rgba(16, 24, 40, .14);
    --azo-foco: 0 0 0 .2rem rgba(227, 54, 102, .25);

    --azo-fonte: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    /* Integração com o Bootstrap 5 */
    --bs-primary: #E33666;
    --bs-primary-rgb: 227, 54, 102;
    --bs-link-color: #C0234F;
    --bs-link-color-rgb: 192, 35, 79;
    --bs-link-hover-color: #9A1C40;
    --bs-link-hover-color-rgb: 135, 36, 74;
    --bs-body-font-family: var(--azo-fonte);
    --bs-body-font-size: 1rem;
    --bs-body-color: var(--azo-texto);
    --bs-body-bg: var(--azo-superficie);
    --bs-border-color: var(--azo-borda);
    --bs-border-radius: var(--azo-raio-sm);
    --bs-focus-ring-color: rgba(227, 54, 102, .25);
}

/* Tema escuro (opcional, ativado pelo usuário no menu do perfil) */
:root[data-bs-theme="dark"] {
    --azo-fundo: #0F141B;
    --azo-superficie: #171D26;
    --azo-superficie-2: #1D2430;
    --azo-borda: #2A3340;
    --azo-texto: #E5E9F0;
    --azo-texto-2: #AEB6C2;
    --azo-texto-3: #7E8896;
    --azo-coral-suave: rgba(227, 54, 102, .16);
    --azo-menu-fundo: #131922;
    --azo-menu-texto: #C9D1DC;
    --azo-menu-icone: #7E8896;
    --azo-menu-hover: #1D2430;
    --azo-menu-ativo-texto: #FF8DAA;
    --azo-sombra: 0 1px 3px rgba(0, 0, 0, .4);
    --azo-sombra-lg: 0 12px 32px rgba(0, 0, 0, .5);
    --bs-body-color: var(--azo-texto);
    --bs-body-bg: var(--azo-superficie);
    --bs-border-color: var(--azo-borda);
    --bs-link-color: #FF8DAA;
    --bs-link-hover-color: #FFB8C9;
}

html, body {
    font-family: var(--azo-fonte);
    background-color: var(--azo-fundo);
    color: var(--azo-texto);
    -webkit-font-smoothing: antialiased;
}

body, td, th { font-family: var(--azo-fonte); font-size: 14px; }

/* Foco visível para navegação por teclado (acessibilidade) */
:focus-visible {
    outline: 2px solid var(--azo-coral) !important;
    outline-offset: 2px;
}
.form-control:focus, .form-select:focus {
    border-color: #F0899F;
    box-shadow: var(--azo-foco);
}

/* Botões principais na cor da marca */
.btn-primary, .btn-warning {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--azo-coral);
    --bs-btn-border-color: var(--azo-coral);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--azo-coral-escuro);
    --bs-btn-hover-border-color: var(--azo-coral-escuro);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #9A1C40;
    --bs-btn-active-border-color: #9A1C40;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #F1A3B6;
    --bs-btn-disabled-border-color: #F1A3B6;
    --bs-btn-focus-shadow-rgb: 227, 54, 102;
}

/* Mensagens flutuantes (alertaMsg): viram notificações discretas no canto da tela */
.alertaMsg {
    position: fixed !important;
    top: 16px !important;
    right: 16px !important;
    left: auto !important;
    width: auto !important;
    max-width: min(440px, calc(100vw - 32px));
    padding: 14px 18px 14px 46px !important;
    border-radius: var(--azo-raio) !important;
    box-shadow: var(--azo-sombra-lg);
    font-size: 14px !important;
    line-height: 1.45;
    text-align: left !important;
    z-index: 200000 !important;
    animation: azoToastEntrada .25s ease-out;
}
.alertaMsg::before {
    font-family: "bootstrap-icons";
    position: absolute;
    left: 16px;
    top: 13px;
    font-size: 18px;
    content: "\f431";
}
.alertaMsg.alert-success::before { content: "\f26b"; }
.alertaMsg.alert-danger::before { content: "\f333"; }
.alertaMsg.alert-warning::before { content: "\f33b"; }
.alertaMsg.alertaMsg-conteudo { top: calc(var(--azo-topo-altura) + 12px) !important; }
.alertaMsg.alert-success { background-color: var(--azo-sucesso) !important; }
.alertaMsg.alert-danger { background-color: var(--azo-perigo) !important; }
.alertaMsg.alert-info { background-color: var(--azo-info) !important; }
.alertaMsg.alert-warning { background-color: var(--azo-alerta) !important; }
.alertaMsg p[align] { text-align: left; }

@keyframes azoToastEntrada {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: none; }
}

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