/* Tema Bootstrap com as cores do design system BRMaioli */
:root {
    --bs-primary:          #1349A0;
    --bs-primary-rgb:      19, 73, 160;
    --bs-font-sans-serif:  'Inter', system-ui, -apple-system, sans-serif;
    --bs-border-radius:    0.5rem;
    --bs-border-radius-lg: 0.75rem;
    --bs-body-bg:          #F8FAFC;
    --bs-body-color:       #334155;
    --bs-secondary-color:  #64748B;
    --bs-border-color:     #CBD5E1;

    --shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -1px rgba(0,0,0,.06);
}

/* Bootstrap redeclara --bs-dropdown-bg localmente em .dropdown-menu (valor
   var(--bs-body-bg)) — uma definição em :root não sobrescreve porque a
   declaração direta no próprio elemento sempre vence a herdada de um
   ancestral. Precisa sobrescrever no mesmo escopo que o Bootstrap usa.
   Demais variáveis alinham o account menu ao padrão do macrofinanceiro
   (mesmo tamanho de fonte, espaçamento e paleta de cinzas do design system). */
.dropdown-menu {
    --bs-dropdown-bg: #FFFFFF;
    --bs-dropdown-border-radius: 0.75rem;
    --bs-dropdown-link-color: #334155;
    --bs-dropdown-link-hover-color: #0F172A;
    --bs-dropdown-font-size: 0.875rem;
    --bs-dropdown-item-padding-y: 0.625rem;
    --bs-dropdown-item-padding-x: 1rem;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.08), 0 4px 6px -2px rgba(0,0,0,0.04);
}

body {
    font-family: var(--bs-font-sans-serif);
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
}

/* Sobrescreve shadow-sm do Bootstrap — padrão original (0.075 alpha) fica
   imperceptível no fundo #F8FAFC em monitores com contraste reduzido */
.shadow-sm {
    box-shadow: 0 1px 3px 2px rgba(0, 0, 0, .10), 0 2px 8px rgba(0, 0, 0, .08) !important;
}

/* Cards de formulário centralizados */
.shadow-card {
    box-shadow: var(--shadow-md);
    border-radius: var(--bs-border-radius-lg);
}

/* Avatar circular no account menu */
.avatar-circle {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: #1349A0;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    user-select: none;
    border: none;
}

/* .btn:hover do Bootstrap (sem variante de cor) tem a mesma especificidade
   e aplica background transparent, sobrepondo o azul do avatar — precisa
   de regra própria de hover para manter a identidade do design system */
.avatar-circle:hover,
.avatar-circle:focus {
    background-color: #0B2C60;
    color: #fff;
}

/* Botão primário com override das variáveis */
.btn-primary {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: #0B2C60;
    border-color: #0B2C60;
}

/* Botão secundário (outline) — Bootstrap embute cores fixas em btn-outline-primary,
   por isso precisa do mesmo override manual do btn-primary */
.btn-outline-primary {
    color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

/* Botão destrutivo */
.btn-danger {
    background-color: #DC2626;
    border-color: #DC2626;
    color: #fff;
}

.btn-danger:hover,
.btn-danger:focus {
    background-color: #991B1B;
    border-color: #991B1B;
    color: #fff;
}

/* Alert / Mensagem de sistema — Bootstrap usa borda fina uniforme com cores
   próprias; o design system pede borda de destaque à esquerda (4px) e a
   paleta semântica BRMaioli */
.alert {
    border: none;
    border-left: 4px solid transparent;
    font-size: 0.875rem;
}

.alert-success {
    background-color: #F0FDF4;
    border-left-color: #16A34A;
    color: #15803D;
}

.alert-warning {
    background-color: #FFFBEB;
    border-left-color: #D97706;
    color: #B45309;
}

.alert-danger {
    background-color: #FEF2F2;
    border-left-color: #DC2626;
    color: #B91C1C;
}

.alert-info {
    background-color: #F2F6FD;
    border-left-color: #1349A0;
    color: #0B2C60;
}

/* Navbar */
.navbar {
    box-shadow: 0 1px 3px rgba(0,0,0,.08);
}

/* Account menu dropdown */
.dropdown-menu .account-menu-info {
    background-color: #FFFFFF;
    cursor: default;
    padding: 0.75rem 1rem;
}

.account-menu-info .fw-semibold {
    color: #0F172A;
}

.dropdown-item {
    border-radius: 4px;
    transition: background-color 0.12s ease, color 0.12s ease;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: #F1F5F9;
}

/* Em mobile, itens com área de toque confortável (alinhado ao macrofinanceiro) */
@media (max-width: 767.98px) {
    .dropdown-menu .dropdown-item {
        padding-top: 1rem;
        padding-bottom: 1rem;
    }
}

.dropdown-item.text-danger:hover,
.dropdown-item.text-danger:focus {
    background-color: #F1F5F9;
    color: #DC2626;
}

/* Indicador de força de senha */
.forca-fraca { background: #ef4444; }
.forca-media { background: #f59e0b; }
.forca-forte { background: #22c55e; }

/* h:selectOneRadio (Mojarra) renderiza uma <table> com o <input type="radio">
   e o <label> colados no mesmo <td>; o Bootstrap não estiliza essa estrutura,
   então o texto fica grudado no botão. Dá respiro entre o radio e o rótulo e
   um espaçamento vertical entre as opções empilhadas (layout="pageDirection"). */
.form-check table input[type="radio"] + label {
    margin-left: 0.5rem;
    font-weight: 500;
    cursor: pointer;
}

.form-check table td {
    padding-block: 0.25rem;
}
