/* -------------------------------------------------------------------------- */
/* Estilos customizados do painel                                             */
/* -------------------------------------------------------------------------- */
/* Objetivo: complementar o Bootstrap com um visual de painel SaaS limpo e    */
/* profissional, mantendo a leitura confortável em longas jornadas.           */

/* ============================== Geral/Layout ============================== */
body {
    background-color: #f7f9fb; /* Tom claro suave reduz fadiga visual. */
    font-size: 15px;
    color: #1f2d3d;
}

.conteudo-principal {
    padding-top: 100px; /* Espaço para navbar fixa sem ocultar conteúdo. */
    padding-bottom: 48px;
}

@media (min-width: 1200px) {
    .conteudo-principal {
        max-width: 1180px; /* Largura controlada facilita leitura de tabelas densas. */
    }
}

.login-wrapper {
    min-height: calc(100vh - 120px);
}

.login-card {
    max-width: 460px;
    width: 100%;
    border: 0;
}

.flash-container .alert {
    margin-bottom: 10px;
}

/* ================================ Navbar ================================= */
.navbar {
    min-height: 64px; /* Altura confortável para cliques em desktop e mobile. */
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}

.navbar .nav-link {
    font-weight: 600;
    color: rgba(255, 255, 255, 0.85);
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
    color: #fff;
}

/* ================================ Cards ================================== */
.sombra-suave {
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08); /* Sombra suave cria hierarquia visual sem distrair. */
    border: 0;
    border-radius: 12px;
}

.card-header {
    border-bottom: 0;
}

.resumo-card {
    border-left: 4px solid #e3e9f2; /* Linha sutil ajuda a diferenciar cards. */
}

.resumo-card--clicavel {
    cursor: pointer;
    transition: transform 0.1s ease, box-shadow 0.2s ease;
}

.resumo-card--clicavel:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 44px rgba(0, 0, 0, 0.12);
}

.resumo-card--ativo {
    border-left-color: #5c7cfa; /* Realce para reforçar o filtro selecionado. */
    background: linear-gradient(90deg, rgba(92, 124, 250, 0.08), #fff);
}

.resumo-icone {
    font-size: 1.6rem;
    background: #eef3ff;
    padding: 10px 12px;
    border-radius: 10px;
}

.texto-label {
    letter-spacing: 0.06em;
    font-size: 0.78rem;
    color: #6c7a91;
}

/* ================================ Tabelas ================================ */
.table td, .table th {
    vertical-align: middle;
}

.table-hover tbody tr:hover {
    background-color: #eef3ff; /* Realce sutil para facilitar leitura de linhas densas. */
}

.table thead th {
    font-weight: 700;
    color: #41506b;
}

.table-sm td, .table-sm th {
    padding: 0.65rem 0.75rem;
}

@media (max-width: 576px) {
    .table td, .table th {
        padding: 0.5rem;
    }
}

/* =============================== Formulários ============================ */
label.form-label {
    font-weight: 600;
    color: #2f3c50;
}

.form-control, .form-select {
    border-radius: 10px;
}

.form-text {
    color: #6c757d;
}

/* Espaçamento consistente entre grupos de campo. */
.row.g-3 > [class^="col"] {
    margin-top: 0;
}

/* ================================ Badges ================================ */
.badge.bg-soft-primary {
    background-color: #e8f1ff;
}

.badge.bg-soft-dark {
    background-color: #e7e7e7;
}

/* ================================ Utilitários ============================ */
.texto-menor {
    font-size: 0.92rem;
}

.texto-muted {
    color: #7a889d;
}

.linha-dupla {
    line-height: 1.35;
}

.alert-info.sombra-suave {
    box-shadow: none; /* Evita sombra dupla em alerts, mantendo hierarquia visual. */
}

.tabela-dashboard tbody tr td {
    border-top: 1px solid #f0f3f8;
}
