/* =====================================================================
   LaserSGE — NÚCLEO VISUAL (tokens) — biblioteca v2.0 (paleta v1.1; Cliente/ADM sobrescrevem em nucleo/identidade.css, padronização v1.2)
   Comum aos três ambientes (Site Comercial, Sistema do Cliente, ADM).
   Só variáveis, acessibilidade e status semânticos: nenhum componente de
   tela exclusivo de um ambiente entra aqui.
   ===================================================================== */
:root {
    /* Paleta aprovada */
    --sge-marinho: #0F223B;        /* menu lateral / barra de navegação */
    --sge-marinho-2: #17304F;      /* hover/realce sobre o marinho */
    --sge-texto: #14233B;          /* texto principal e títulos */
    --sge-texto-2: #475569;        /* texto secundário */
    --sge-verde: #087A43;          /* ação primária e item ativo */
    --sge-verde-hover: #066337;
    --sge-verde-claro: #E7F5EE;    /* fundo de item ativo/realce */
    --sge-verde-vivo: #65C52B;     /* só decorativo: nunca texto pequeno branco sobre ele */
    --sge-fundo: #F3F6FA;          /* fundo geral */
    --sge-superficie: #FFFFFF;     /* cartões e formulários */
    --sge-borda: #CBD5E1;
    --sge-borda-suave: #E2E8F0;
    --sge-ok-bg: #DCFCE7;   --sge-ok: #166534;
    --sge-aviso-bg: #FEF3C7; --sge-aviso: #92400E;
    --sge-erro-bg: #FEE2E2;  --sge-erro: #991B1B;
    --sge-info-bg: #E0ECFF;  --sge-info: #1E3A8A;
    --sge-neutro-bg: #E2E8F0; --sge-neutro: #334155;
    --sge-foco: #2563EB;

    --sge-raio: 10px;
    --sge-raio-sm: 8px;
    --sge-sombra: 0 1px 3px rgba(15, 34, 59, .08), 0 1px 2px rgba(15, 34, 59, .05);
    --sge-fonte: 'Inter', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;

    /* Bootstrap 5.3 lê estas variáveis (text-primary, bg-primary, links, bordas) */
    --bs-primary: #087A43;
    --bs-primary-rgb: 8, 122, 67;
    --bs-primary-text-emphasis: #066337;
    --bs-primary-bg-subtle: #E7F5EE;
    --bs-primary-border-subtle: #9FD3B8;
    --bs-link-color: #087A43;
    --bs-link-color-rgb: 8, 122, 67;
    --bs-link-hover-color: #066337;
    --bs-link-hover-color-rgb: 6, 99, 55;
    --bs-body-color: #14233B;
    --bs-body-color-rgb: 20, 35, 59;
    --bs-body-bg: #F3F6FA;
    --bs-border-color: #CBD5E1;
    --bs-secondary-color: #475569;
    --bs-focus-ring-color: rgba(37, 99, 235, .35);
    --bs-body-font-family: var(--sge-fonte);
}

/* Foco sempre visível (teclado) */
:focus-visible {
    outline: 3px solid var(--sge-foco);
    outline-offset: 2px;
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
    border-color: var(--sge-foco);
    box-shadow: 0 0 0 .2rem rgba(37, 99, 235, .25);
}
.form-check-input:checked { background-color: var(--sge-verde); border-color: var(--sge-verde); }

/* Ação primária verde (contraste do texto branco: 5,4:1) */
.btn-primary {
    --bs-btn-bg: var(--sge-verde);
    --bs-btn-border-color: var(--sge-verde);
    --bs-btn-hover-bg: var(--sge-verde-hover);
    --bs-btn-hover-border-color: var(--sge-verde-hover);
    --bs-btn-active-bg: var(--sge-verde-hover);
    --bs-btn-active-border-color: var(--sge-verde-hover);
    --bs-btn-disabled-bg: var(--sge-verde);
    --bs-btn-disabled-border-color: var(--sge-verde);
    --bs-btn-focus-shadow-rgb: 37, 99, 235;
}
.btn-outline-primary {
    --bs-btn-color: var(--sge-verde);
    --bs-btn-border-color: var(--sge-verde);
    --bs-btn-hover-bg: var(--sge-verde);
    --bs-btn-hover-border-color: var(--sge-verde);
    --bs-btn-active-bg: var(--sge-verde-hover);
    --bs-btn-active-border-color: var(--sge-verde-hover);
    --bs-btn-focus-shadow-rgb: 37, 99, 235;
}
.nav-pills { --bs-nav-pills-link-active-bg: var(--sge-verde); }
.pagination { --bs-pagination-active-bg: var(--sge-verde); --bs-pagination-active-border-color: var(--sge-verde); --bs-pagination-color: var(--sge-verde); }

/* Status semânticos: sempre com texto (e ponto), nunca só cor */
.status {
    display: inline-flex;
    align-items: center;
    gap: .4em;
    padding: .2em .65em;
    border-radius: 6px;
    font-size: .8rem;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}
.status::before {
    content: '';
    width: .55em;
    height: .55em;
    border-radius: 50%;
    background: currentColor;
    flex: none;
}
.status-ok     { background: var(--sge-ok-bg);     color: var(--sge-ok); }
.status-aviso  { background: var(--sge-aviso-bg);  color: var(--sge-aviso); }
.status-erro   { background: var(--sge-erro-bg);   color: var(--sge-erro); }
.status-info   { background: var(--sge-info-bg);   color: var(--sge-info); }
.status-neutro { background: var(--sge-neutro-bg); color: var(--sge-neutro); }

/* Utilitários de texto acessíveis */
.text-sge-2 { color: var(--sge-texto-2) !important; }
.visually-hidden-focusable:focus { background: #fff; padding: .5rem 1rem; z-index: 2000; }
