/**
 * Estilização do Painel Administrativo TemaPrev
 * Desenvolvido por: Leandro Kywdery (https://conectsistemas.com.br)
 * Data/Hora: 11/07/2026 às 15:00
 */

/* Importar fontes Outfit e Inter */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');

/* Redefinição e Layout Geral */
.temaprev-dashboard-wrapper {
    font-family: 'Inter', sans-serif;
    color: #1e293b;
    background-color: #f8fafc;
    padding: 20px;
    margin-left: -20px;
    margin-right: -20px;
    margin-top: -20px;
    min-height: calc(100vh - 32px);
}

.temaprev-dashboard-wrapper * {
    box-sizing: border-box;
}

/* Cabeçalho do Dashboard */
.db-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
    background: #fff;
    padding: 15px 24px;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.db-title-area {
    display: flex;
    align-items: center;
    gap: 15px;
}

.db-menu-icon {
    font-size: 24px;
    color: #475569;
    cursor: pointer;
}

.db-title-area h1 {
    font-family: 'Outfit', sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #0f172a;
    margin: 0;
}

.db-title-area p {
    font-size: 13px;
    color: #64748b;
    margin: 4px 0 0 0;
}

.db-user-area {
    display: flex;
    align-items: center;
    gap: 20px;
}

.db-view-frontend-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: #76b82a;
    color: #fff !important;
    text-decoration: none !important;
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    transition: background-color 0.2s;
}

.db-view-frontend-btn:hover {
    background-color: #639d22;
}

.db-notification-icons {
    display: flex;
    gap: 15px;
}

.db-icon-btn {
    position: relative;
    background: #f1f5f9;
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #475569;
    transition: background 0.2s;
}

.db-icon-btn:hover {
    background: #e2e8f0;
}

.db-icon-btn .badge {
    position: absolute;
    top: -2px;
    right: -2px;
    background: #76b82a;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
}

.db-profile-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 5px;
    border-radius: 8px;
    transition: background 0.2s;
}

.db-profile-btn:hover {
    background: #f1f5f9;
}

.db-avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    object-fit: cover;
}

.db-profile-info {
    text-align: left;
}

.db-profile-info .name {
    font-weight: 600;
    font-size: 14px;
    color: #0f172a;
    display: block;
}

.db-profile-info .role {
    font-size: 11px;
    color: #64748b;
    display: block;
}

.db-chevron {
    color: #64748b;
}

/* Barra de Filtro de Período */
.db-filter-bar {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 20px;
}

.period-selector {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    padding: 8px 16px;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    border: 1px solid #e2e8f0;
}

.period-selector select {
    border: none;
    background: none;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    cursor: pointer;
    outline: none;
    padding-right: 20px;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right center;
}

/* Grid de Indicadores de Topo */
.db-kpi-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.kpi-card {
    background: #fff;
    border-radius: 12px;
    padding: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    border: 1px solid #e2e8f0;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.kpi-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.kpi-icon-wrapper {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.kpi-icon-wrapper.color-green { background: #f0fdf4; color: #16a34a; }
.kpi-icon-wrapper.color-blue { background: #eff6ff; color: #2563eb; }
.kpi-icon-wrapper.color-purple { background: #faf5ff; color: #7c3aed; }
.kpi-icon-wrapper.color-orange { background: #fff7ed; color: #ea580c; }
.kpi-icon-wrapper.color-teal { background: #f0fdfa; color: #0d9488; }

.kpi-title {
    font-size: 11px;
    font-weight: 500;
    color: #64748b;
    margin: 0;
}

.kpi-value {
    font-family: 'Outfit', sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 4px;
    z-index: 2;
}

.kpi-trend {
    font-size: 11px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 16px;
    z-index: 2;
}

.kpi-trend.up { color: #16a34a; }
.kpi-trend.down { color: #dc2626; }

.kpi-sparkline {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40px;
    z-index: 1;
}

/* Gráficos e Colunas Intermediárias */
.db-row-3col {
    display: grid;
    grid-template-columns: 4fr 3fr 3.5fr;
    gap: 20px;
    margin-bottom: 24px;
}

.chart-card {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    border: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
}

.chart-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.chart-title {
    font-family: 'Outfit', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    margin: 0;
}

.chart-dropdown {
    border: 1px solid #e2e8f0;
    padding: 4px 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 500;
    color: #64748b;
    outline: none;
    cursor: pointer;
}

.chart-body {
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

/* Rosca / Donut de Distribuição de Benefícios */
.donut-layout {
    display: flex;
    align-items: center;
    width: 100%;
    justify-content: space-between;
    gap: 20px;
}

.donut-chart-container {
    position: relative;
    width: 120px;
    height: 120px;
}

.donut-center-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.donut-center-text span {
    font-size: 10px;
    color: #64748b;
    display: block;
    text-transform: uppercase;
}

.donut-center-text strong {
    font-family: 'Outfit', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #0f172a;
}

.donut-legend {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.legend-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.legend-color {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    margin-top: 4px;
}

.legend-color.green { background: #76b82a; }
.legend-color.purple { background: #7c3aed; }

.legend-text .label {
    font-size: 12px;
    font-weight: 600;
    color: #334155;
    display: block;
}

.legend-text .sub {
    font-size: 11px;
    color: #64748b;
}

.donut-timestamp {
    position: absolute;
    bottom: -15px;
    left: 0;
    font-size: 9px;
    color: #94a3b8;
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Calendário de Pagamentos */
.cal-card-body {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.cal-month-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    margin-bottom: 16px;
}

.cal-nav-arrow {
    background: none;
    border: none;
    color: #64748b;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    align-items: center;
}

.cal-month-label {
    font-size: 13px;
    font-weight: 600;
    color: #334155;
}

.cal-boxes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 16px;
}

.cal-box {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px;
    text-align: center;
}

.cal-box-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-bottom: 8px;
}

.cal-box-icon {
    display: flex;
    align-items: center;
}

.cal-box-icon.green { color: #16a34a; }
.cal-box-icon.blue { color: #2563eb; }

.cal-box-title {
    font-size: 11px;
    font-weight: 600;
    color: #475569;
    margin: 0;
}

.cal-box-sub {
    font-size: 9px;
    color: #64748b;
    display: block;
    margin-bottom: 4px;
}

.cal-box-date {
    font-family: 'Outfit', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #16a34a;
    display: block;
}

.cal-box-date.blue { color: #2563eb; }

.cal-box-day {
    font-size: 10px;
    color: #64748b;
    display: block;
}

.cal-btn-full {
    display: block;
    text-align: center;
    border: 1px solid #e2e8f0;
    padding: 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    color: #475569;
    text-decoration: none;
    transition: background 0.2s;
}

.cal-btn-full:hover {
    background: #f1f5f9;
}

/* Tooltip do Gráfico de Evolução de Patrimônio */
.chart-tooltip {
    position: absolute;
    background: #0f172a;
    color: #fff;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 11px;
    z-index: 10;
    pointer-events: none;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.chart-tooltip::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 4px 4px 0;
    border-style: solid;
    border-color: #0f172a transparent transparent;
    display: block;
    width: 0;
}

/* Segunda Linha de Gráficos e Atendimentos */
.db-row-3col-line2 {
    display: grid;
    grid-template-columns: 4fr 3.5fr 2.5fr;
    gap: 20px;
    margin-bottom: 24px;
}

/* Atendimentos Recentes */
.atendimentos-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}

.atendimento-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f8fafc;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
}

.atendimento-item-left {
    display: flex;
    align-items: center;
    gap: 10px;
}

.atendimento-number {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #e2e8f0;
    color: #475569;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.atendimento-number.color-1 { background: #dcfce7; color: #15803d; }
.atendimento-number.color-2 { background: #dbeafe; color: #1d4ed8; }
.atendimento-number.color-3 { background: #faf5ff; color: #6b21a8; }
.atendimento-number.color-4 { background: #fef3c7; color: #b45309; }

.atendimento-text .title {
    font-size: 12px;
    font-weight: 600;
    color: #334155;
    display: block;
}

.atendimento-text .protocol {
    font-size: 10px;
    color: #64748b;
    display: block;
}

.atendimento-item-right {
    text-align: right;
}

.atendimento-status {
    font-size: 9px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 4px;
    text-transform: uppercase;
    display: inline-block;
    margin-bottom: 4px;
}

.atendimento-status.concluído { background: #dcfce7; color: #15803d; }
.atendimento-status.analise { background: #e0f2fe; color: #0369a1; }
.atendimento-status.andamento { background: #fef3c7; color: #b45309; }

.atendimento-date {
    font-size: 9px;
    color: #94a3b8;
    display: block;
}

.chart-header-link {
    font-size: 12px;
    font-weight: 600;
    color: #76b82a;
    text-decoration: none;
}

.chart-header-link:hover {
    text-decoration: underline;
}

/* Linha Final: Ações Rápidas e Avisos */
.db-row-2col-bottom {
    display: grid;
    grid-template-columns: 7fr 3fr;
    gap: 20px;
    margin-bottom: 20px;
}

/* Ações Rápidas */
.actions-grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 10px;
    width: 100%;
}

.action-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px 6px;
    text-align: center;
    text-decoration: none;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 90px;
}

.action-card:hover {
    transform: translateY(-2px);
    border-color: #76b82a;
    background: #fff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.action-card-icon {
    width: 32px;
    height: 32px;
    color: #76b82a;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.action-card-title {
    font-size: 10px;
    font-weight: 600;
    color: #475569;
    line-height: 1.2;
    display: block;
}

/* Avisos e Comunicados */
.alert-card-wrapper {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}

.alert-card {
    background: #fffbeb;
    border: 1px solid #fef3c7;
    border-radius: 8px;
    padding: 15px;
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.alert-icon {
    color: #d97706;
    margin-top: 2px;
}

.alert-content .title {
    font-size: 12px;
    font-weight: 700;
    color: #92400e;
    display: block;
    margin-bottom: 4px;
}

.alert-content .text {
    font-size: 11px;
    color: #b45309;
    line-height: 1.4;
    display: block;
    margin-bottom: 8px;
}

.alert-content .link {
    font-size: 11px;
    font-weight: 600;
    color: #92400e;
    text-decoration: underline;
}

.alert-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
}

.alert-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #cbd5e1;
    cursor: pointer;
}

.alert-dot.active {
    background: #76b82a;
    width: 14px;
    border-radius: 3px;
}

/* Rodapé do Dashboard */
.db-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid #e2e8f0;
    padding-top: 15px;
    margin-top: 30px;
    font-size: 11px;
    color: #94a3b8;
}

.db-footer-left {
    margin: 0;
}

.db-footer-right {
    margin: 0;
}

/* Responsividade do Painel */
@media (max-width: 1200px) {
    .db-kpi-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .db-row-3col {
        grid-template-columns: 1fr;
    }
    .db-row-3col-line2 {
        grid-template-columns: 1fr;
    }
    .db-row-2col-bottom {
        grid-template-columns: 1fr;
    }
    .actions-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 768px) {
    .db-kpi-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .db-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }
    .db-user-area {
        width: 100%;
        justify-content: space-between;
    }
    .actions-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .db-kpi-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   ESTILOS EXCLUSIVOS DO MÓDULO DE CADASTROS (TEMA PREV)
   Leandro Kywdery (https://conectsistemas.com.br) - 11/07/2026 às 15:32
   ========================================================================== */

/* Correção e estilização das abas */
.nav-tab-wrapper {
    border-bottom: 2px solid #e2e8f0 !important;
    margin-bottom: 24px !important;
    display: flex !important;
    gap: 8px !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
}

.nav-tab {
    font-family: 'Outfit', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #64748b !important;
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    border-bottom: none !important;
    padding: 8px 18px !important;
    border-top-left-radius: 8px !important;
    border-top-right-radius: 8px !important;
    text-decoration: none !important;
    transition: all 0.2s !important;
    margin: 0 !important;
}

.nav-tab:hover {
    color: #0f172a !important;
    background: #e2e8f0 !important;
}

.nav-tab-active,
.nav-tab-active:hover {
    color: #fff !important;
    background: #76b82a !important;
    border-color: #76b82a !important;
}

/* Dashboard de Cadastros - 6 Cards */
.cadastros-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 10px;
    margin-bottom: 25px;
}

.cadastro-db-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    transition: transform 0.2s, border-color 0.2s;
}

.cadastro-db-card:hover {
    transform: translateY(-2px);
    border-color: #76b82a;
}

.cadastro-db-info {
    text-align: left;
}

.cadastro-db-title {
    font-family: 'Outfit', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #334155;
    margin: 0 0 6px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.cadastro-db-value {
    font-family: 'Outfit', sans-serif;
    font-size: 26px;
    font-weight: 700;
    color: #021b39;
    margin: 0 0 4px 0;
}

.cadastro-db-subtext {
    font-size: 11px;
    color: #16a34a;
    font-weight: 600;
    margin: 0;
}

.cadastro-db-btn {
    background-color: #76b82a;
    color: #fff !important;
    border-radius: 6px;
    padding: 8px 14px;
    font-size: 11px;
    font-weight: 700;
    text-decoration: none !important;
    transition: background 0.2s;
}

.cadastro-db-btn:hover {
    background-color: #639d22;
}

/* Filtros Superiores de Segurados */
.temaprev-filters-panel {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 24px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.temaprev-filters-row {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
    gap: 16px !important;
    margin-bottom: 16px !important;
    width: 100% !important;
}

.filter-group {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    text-align: left !important;
    width: 100% !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
}

.filter-group label {
    font-family: 'Outfit', sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #475569 !important;
    margin-bottom: 4px !important;
    white-space: nowrap !important;
    display: block !important;
}

.filter-group input[type="text"],
.filter-group input[type="password"],
.filter-group input[type="email"],
.filter-group input[type="number"],
.filter-group input[type="date"],
.filter-group select,
.filter-group textarea {
    width: 100% !important;
    max-width: 100% !important;
    height: 40px !important;
    box-sizing: border-box !important;
    padding: 8px 12px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    color: #1e293b !important;
    background-color: #f8fafc !important;
    outline: none !important;
    display: block !important;
    transition: border-color 0.2s, background-color 0.2s !important;
}

.filter-group textarea {
    height: auto !important;
    min-height: 100px !important;
}

.filter-group input:focus,
.filter-group select:focus,
.filter-group textarea:focus {
    border-color: #76b82a !important;
    background-color: #fff !important;
}

.temaprev-action-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.temaprev-btn-group {
    display: flex;
    gap: 10px;
}

.temaprev-btn {
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #475569;
    transition: all 0.2s;
    text-decoration: none !important;
}

.temaprev-btn:hover {
    background: #f8fafc;
    color: #1e293b;
}

.temaprev-btn.primary {
    background-color: #76b82a;
    color: #fff;
    border-color: #76b82a;
}

.temaprev-btn.primary:hover {
    background-color: #639d22;
}

/* Layout de Formulário do Segurado Inteligente */
.segurado-form-layout {
    display: grid;
    grid-template-columns: 8fr 4fr;
    gap: 24px;
    margin-top: 15px;
    margin-bottom: 40px;
}

.segurado-form-panel {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    text-align: left;
}

.segurado-sidebar-panel {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    position: sticky;
    top: 20px;
    height: fit-content;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    text-align: center;
}

/* Painel de Conformidade e Resumos */
.sidebar-resumo-photo {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    margin: 0 auto 12px auto;
    object-fit: cover;
    border: 3px solid #76b82a;
}

.sidebar-resumo-name {
    font-family: 'Outfit', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #021b39;
    margin: 0;
}

.sidebar-resumo-info-list {
    list-style: none;
    padding: 0;
    margin: 15px 0 0 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-align: left;
}

.sidebar-resumo-info-list li {
    font-size: 11px;
    color: #64748b;
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #f1f5f9;
    padding-bottom: 6px;
    margin: 0;
}

.sidebar-resumo-info-list li strong {
    color: #1e293b;
}

/* Barra de Qualidade do Cadastro */
.qualidade-cadastro-box {
    text-align: left;
}

.qualidade-label-row {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    font-weight: 700;
    color: #334155;
    margin-bottom: 6px;
}

.qualidade-bar-bg {
    width: 100%;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 10px;
}

.qualidade-bar-fill {
    height: 100%;
    background: #76b82a;
    border-radius: 4px;
    width: 82%;
    transition: width 0.3s;
}

.qualidade-pendencias-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 11px;
}

.qualidade-pendencias-list li {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
}

.qualidade-pendencias-list li span {
    font-size: 12px;
}

.qualidade-pendencias-list li.done { color: #16a34a; }
.qualidade-pendencias-list li.pending { color: #dc2626; }

/* Barra de Ações Fixa */
.form-action-bar {
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    padding: 15px 24px;
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    position: sticky;
    bottom: 0;
    z-index: 100;
    margin-left: -24px;
    margin-right: -24px;
    margin-bottom: -24px;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
}

/* Indicador de Confiabilidade */
.confiabilidade-box {
    text-align: center;
}

.confiabilidade-speedometer {
    position: relative;
    width: 100px;
    height: 50px;
    overflow: hidden;
    margin: 0 auto 10px auto;
}

.speedometer-arc {
    width: 100px;
    height: 100px;
    border: 12px solid #e2e8f0;
    border-radius: 50%;
    border-bottom-color: transparent;
    border-right-color: transparent;
    transform: rotate(45deg);
}

.speedometer-needle {
    position: absolute;
    width: 2px;
    height: 40px;
    background: #021b39;
    bottom: 0;
    left: 50%;
    transform-origin: bottom center;
    transform: rotate(70deg); /* 98% de rotação */
    transition: transform 0.5s;
}

.confiabilidade-val {
    font-family: 'Outfit', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #021b39;
    margin: 0;
}

.confiabilidade-label {
    font-size: 11px;
    font-weight: 600;
    color: #16a34a;
}

/* Formulário de Etapas */
.form-steps-nav {
    display: flex;
    justify-content: space-between;
    margin-bottom: 24px;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 12px;
}

.form-step-item {
    font-size: 11px;
    font-weight: 700;
    color: #94a3b8;
    cursor: pointer;
    padding-bottom: 4px;
    border-bottom: 2px solid transparent;
}

.form-step-item.active {
    color: #76b82a;
    border-bottom-color: #76b82a;
}

.form-step-section {
    display: none;
}

.form-step-section.active {
    display: block;
}

/* Responsividade de Cadastros */
@media (max-width: 992px) {
    .cadastros-dashboard-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .segurado-form-layout {
        grid-template-columns: 1fr;
    }
    .temaprev-filters-row {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .cadastros-dashboard-grid {
        grid-template-columns: 1fr;
    }
    .temaprev-filters-row {
        grid-template-columns: 1fr;
    }
}

/* Estilos para o Modal de Detalhes */
.temaprev-modal {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(15, 23, 42, 0.6) !important;
    z-index: 99999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease !important;
}

.temaprev-modal.active {
    opacity: 1 !important;
    pointer-events: auto !important;
}

.temaprev-modal-content {
    background: #ffffff !important;
    border-radius: 16px !important;
    width: 100% !important;
    max-width: 600px !important;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
    padding: 30px !important;
    position: relative !important;
    transform: scale(0.9) !important;
    transition: transform 0.3s ease !important;
    text-align: left !important;
}

.temaprev-modal.active .temaprev-modal-content {
    transform: scale(1) !important;
}

.temaprev-modal-close {
    position: absolute !important;
    top: 15px !important;
    right: 20px !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    color: #94a3b8 !important;
    cursor: pointer !important;
    transition: color 0.2s !important;
}

.temaprev-modal-close:hover {
    color: #1e293b !important;
}

.modal-details-title {
    font-family: 'Outfit', sans-serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #021b39 !important;
    margin: 0 0 15px 0 !important;
    border-bottom: 2px solid #76b82a !important;
    padding-bottom: 10px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}

.modal-details-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
    margin-top: 15px !important;
}

.modal-details-field {
    display: flex !important;
    flex-direction: column !important;
}

.modal-details-field span.label {
    font-size: 11px !important;
    color: #64748b !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
}

.modal-details-field span.value {
    font-size: 14px !important;
    color: #1e293b !important;
    font-weight: 500 !important;
    margin-top: 2px !important;
}

/* Detalhes do segurado com foto maior */
.modal-segurado-header {
    display: flex !important;
    align-items: center !important;
    gap: 20px !important;
    margin-bottom: 20px !important;
}

.modal-segurado-photo {
    width: 90px !important;
    height: 90px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    border: 3px solid #76b82a !important;
}

.modal-segurado-info {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}

.modal-segurado-info h4 {
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #021b39 !important;
}

.modal-segurado-info span {
    font-size: 13px !important;
    color: #64748b !important;
}

/* Estilos de Benefícios e Assistente de Concessão */
.timeline-pareceres div {
    font-size: 13px !important;
    color: #1e293b !important;
}

.sidebar-resumo-painel h4 {
    font-family: 'Outfit', sans-serif !important;
}

#assistente-alertas div {
    transition: all 0.3s ease !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
}

#assistente-alertas div strong {
    font-weight: 700 !important;
}

/* Estilos de Ações ao passar o mouse (WordPress Style) */
.row-actions {
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity 0.15s ease-in-out, visibility 0.15s ease-in-out !important;
    margin-top: 5px !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
}

.temaprev-table tr:hover .row-actions {
    opacity: 1 !important;
    visibility: visible !important;
}

.row-actions span a {
    text-decoration: none !important;
    font-weight: 600 !important;
}

.row-actions span.divider {
    color: #cbd5e1 !important;
    margin: 0 4px !important;
}

/* ==========================================
   MÓDULO PROVA DE VIDA - ESTILOS ADICIONAIS
   ========================================== */
.pv-subtabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 12px;
}

.pv-subtab-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #475569;
    cursor: pointer;
    text-decoration: none !important;
    transition: all 0.2s ease;
}

.pv-subtab-btn:hover {
    background: #f1f5f9;
    color: #0f172a;
}

.pv-subtab-btn.active {
    background: #021b39;
    color: #ffffff !important;
    border-color: #021b39;
}

.pv-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.pv-badge.pendente { background: #fef3c7; color: #d97706; }
.pv-badge.agendada { background: #e0f2fe; color: #0284c7; }
.pv-badge.analise { background: #f3e8ff; color: #7c3aed; }
.pv-badge.realizada { background: #dcfce7; color: #15803d; }
.pv-badge.indeferida { background: #fee2e2; color: #b91c1c; }
.pv-badge.vencida { background: #ffedd5; color: #ea580c; }
.pv-badge.bloqueada { background: #f1f5f9; color: #64748b; border: 1px solid #cbd5e1; }
.pv-badge.isenta { background: #ccfbf1; color: #0f766e; }

/* Checklist Validação */
.pv-validation-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-top: 15px;
}

.pv-validation-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.pv-validation-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 700;
    font-size: 13px;
    color: #1e293b;
}

.pv-validation-options {
    display: flex;
    gap: 10px;
}

.pv-validation-btn {
    flex: 1;
    text-align: center;
    padding: 6px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    background: #fff;
    color: #64748b;
    transition: all 0.15s ease;
}

.pv-validation-btn.validado.active { background: #22c55e; color: #fff; border-color: #22c55e; }
.pv-validation-btn.pendente.active { background: #eab308; color: #fff; border-color: #eab308; }
.pv-validation-btn.rejeitado.active { background: #ef4444; color: #fff; border-color: #ef4444; }

/* Drag and Drop Zone */
.pv-upload-zone {
    border: 2px dashed #cbd5e1;
    border-radius: 12px;
    padding: 30px;
    text-align: center;
    background: #f8fafc;
    cursor: pointer;
    transition: all 0.2s ease;
}

.pv-upload-zone:hover {
    border-color: #76b82a;
    background: rgba(118, 184, 42, 0.03);
}

.pv-upload-icon {
    font-size: 32px;
    margin-bottom: 8px;
    color: #94a3b8;
}

.pv-file-list {
    margin-top: 15px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pv-file-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    background: #f1f5f9;
    border-radius: 8px;
    font-size: 12px;
}

.pv-file-info {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
}

.pv-file-actions {
    display: flex;
    gap: 10px;
}

.pv-file-actions a {
    color: #475569;
    text-decoration: none;
    font-weight: 700;
}

.pv-file-actions a:hover {
    color: #021b39;
}

/* Calendário */
.pv-calendar-container {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    padding: 20px;
}

.pv-calendar-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.pv-calendar-nav {
    display: flex;
    gap: 8px;
    align-items: center;
}

.pv-calendar-view-select {
    padding: 6px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
}

.pv-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
}

.pv-calendar-day-name {
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    padding: 10px;
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
}

.pv-calendar-day {
    min-height: 100px;
    border-right: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
    padding: 8px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pv-calendar-day:nth-child(7n) {
    border-right: none;
}

.pv-calendar-day.other-month {
    background: #f8fafc;
    color: #94a3b8;
}

.pv-calendar-day-number {
    font-weight: 700;
    font-size: 12px;
    margin-bottom: 4px;
}

.pv-calendar-event {
    padding: 3px 6px;
    border-radius: 4px;
    font-size: 9px;
    font-weight: 700;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pv-calendar-event.pendente { background: #fef3c7; color: #d97706; }
.pv-calendar-event.agendada { background: #e0f2fe; color: #0284c7; }
.pv-calendar-event.realizada { background: #dcfce7; color: #15803d; }
.pv-calendar-event.vencida { background: #fee2e2; color: #b91c1c; }

/* Timeline Histórico */
.pv-timeline {
    position: relative;
    border-left: 2px solid #e2e8f0;
    padding-left: 20px;
    margin-left: 10px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.pv-timeline-item {
    position: relative;
}

.pv-timeline-dot {
    position: absolute;
    left: -26px;
    top: 2px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #cbd5e1;
}

.pv-timeline-dot.green { background: #22c55e; }
.pv-timeline-dot.red { background: #ef4444; }
.pv-timeline-dot.blue { background: #3b82f6; }
.pv-timeline-dot.yellow { background: #eab308; }

.pv-timeline-time {
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
    display: block;
}

.pv-timeline-text {
    font-size: 13px;
    color: #1e293b;
    margin-top: 2px;
}

/* Modais de Bloqueio */
.pv-form-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 15px;
    text-align: left;
}

.pv-form-group label {
    font-size: 12px;
    font-weight: 700;
    color: #334155;
}

.pv-form-group input, .pv-form-group select, .pv-form-group textarea {
    padding: 10px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-size: 13px;
    outline: none;
    transition: border-color 0.15s ease;
}

.pv-form-group input:focus, .pv-form-group select:focus, .pv-form-group textarea:focus {
    border-color: #76b82a;
}

/* ==========================================
   MÓDULO AGENDAMENTOS - ESTILOS ADICIONAIS
   ========================================== */
.service-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    color: #fff !important;
}

.service-badge.aposentadoria { background: #7c3aed; }
.service-badge.pensao { background: #2563eb; }
.service-badge.revisao { background: #ea580c; }
.service-badge.provavida { background: #16a34a; }
.service-badge.juridico { background: #dc2626; }
.service-badge.financeiro { background: #eab308; }
.service-badge.outros { background: #64748b; }

.agd-status {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.agd-status.agendado { background: #fef3c7; color: #d97706; }
.agd-status.confirmado { background: #e0f2fe; color: #0284c7; }
.agd-status.aguardando { background: #f3e8ff; color: #7c3aed; }
.agd-status.atendimento { background: #ffe4e6; color: #e11d48; border: 1px solid #fda4af; animation: agdPulse 1.5s infinite; }
.agd-status.concluido { background: #dcfce7; color: #15803d; }
.agd-status.cancelado { background: #fee2e2; color: #b91c1c; }
.agd-status.remarcado { background: #ffedd5; color: #ea580c; }
.agd-status.ausente { background: #f1f5f9; color: #64748b; }

@keyframes agdPulse {
    0% { opacity: 1; }
    50% { opacity: 0.6; }
    100% { opacity: 1; }
}

/* Fila de Espera */
.waiting-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.waiting-item {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.waiting-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.waiting-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    text-align: left;
}

.waiting-priority {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 4px;
    width: fit-content;
}

.waiting-priority.alta { background: #fee2e2; color: #ef4444; }
.waiting-priority.media { background: #ffedd5; color: #f97316; }
.waiting-priority.normal { background: #f1f5f9; color: #64748b; }

/* Painel de Atendimento Ativo */
.pv-atendimento-panel {
    background: #fff;
    border: 1px solid #e11d48;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 12px rgba(225, 29, 72, 0.08);
}

.atd-counter {
    font-family: monospace;
    font-size: 28px;
    font-weight: 700;
    color: #e11d48;
    background: #fff5f5;
    padding: 8px 16px;
    border-radius: 8px;
    border: 1px solid #fecdd3;
    display: inline-block;
    margin: 10px 0;
}

/* Agenda Semanal e Diária */
.pv-calendar-weekly-grid {
    display: grid;
    grid-template-columns: 80px repeat(5, 1fr);
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
}

.weekly-header-cell {
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    border-right: 1px solid #e2e8f0;
    padding: 12px;
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
}

.weekly-hour-label {
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    border-right: 1px solid #e2e8f0;
    padding: 15px 8px;
    font-weight: 700;
    font-size: 11px;
    color: #64748b;
    text-align: center;
}

.weekly-slot-cell {
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
    border-right: 1px solid #e2e8f0;
    min-height: 50px;
    padding: 4px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.weekly-slot-cell:hover {
    background: #f8fafc;
    cursor: pointer;
}

.weekly-event-card {
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 9px;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
    cursor: grab;
    text-align: left;
}

.weekly-event-card:active {
    cursor: grabbing;
}

/* ==========================================
   MÓDULO FOLHA DE BENEFÍCIOS - ESTILOS
   ========================================== */
.folha-numeric {
    text-align: right;
    font-family: monospace;
    font-size: 13px;
    font-weight: 600;
}

/* Contracheque Premium (Estilo Holerite) */
.contracheque-box {
    background: #fff;
    border: 2px solid #021b39;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    font-family: "Outfit", sans-serif;
    color: #0f172a;
    max-width: 650px;
    margin: 0 auto;
}

.contracheque-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 15px;
    margin-bottom: 20px;
}

.contracheque-logo h3 {
    margin: 0;
    color: #021b39;
    font-size: 18px;
    font-weight: 800;
}

.contracheque-logo p {
    margin: 2px 0 0 0;
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 700;
}

.contracheque-title {
    text-align: right;
}

.contracheque-title h4 {
    margin: 0;
    color: #76b82a;
    font-size: 16px;
    font-weight: 800;
}

.contracheque-title p {
    margin: 2px 0 0 0;
    font-size: 13px;
    font-weight: 700;
    color: #021b39;
}

.contracheque-seg-info {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 15px;
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 20px;
    font-size: 12px;
    text-align: left;
}

.contracheque-seg-info div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.contracheque-seg-info label {
    font-size: 10px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
}

.contracheque-seg-info strong {
    color: #0f172a;
}

.contracheque-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
    font-size: 12px;
}

.contracheque-table th {
    background: #021b39;
    color: #fff;
    padding: 10px;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 10px;
}

.contracheque-table td {
    padding: 10px;
    border-bottom: 1px solid #e2e8f0;
}

.contracheque-table tr:last-child td {
    border-bottom: 2px solid #021b39;
}

.contracheque-totals {
    display: grid;
    grid-template-columns: 1fr 1fr 1.2fr;
    gap: 10px;
    margin-bottom: 25px;
    text-align: right;
}

.contracheque-total-card {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 12px;
}

.contracheque-total-card.liquid {
    background: #ecfdf5;
    border-color: #a7f3d0;
}

.contracheque-total-card label {
    display: block;
    font-size: 9px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.contracheque-total-card span {
    font-size: 16px;
    font-weight: 800;
    color: #0f172a;
}

.contracheque-total-card.liquid span {
    color: #059669;
}

.contracheque-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px dashed #cbd5e1;
    padding-top: 20px;
    font-size: 11px;
    color: #64748b;
    text-align: left;
}

.contracheque-qr {
    text-align: center;
}

.contracheque-qr-box {
    width: 65px;
    height: 65px;
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    margin-bottom: 4px;
}

/* ==========================================
   MÓDULO ARRECADAÇÃO - ESTILOS
   ========================================== */

/* Guia de Recolhimento Previdenciário Oficial */
.guia-recolhimento-box {
    background: #fff;
    border: 2px solid #021b39;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    font-family: "Outfit", sans-serif;
    color: #0f172a;
    max-width: 700px;
    margin: 0 auto;
}

.guia-recolhimento-head {
    display: grid;
    grid-template-columns: 1.5fr 2fr 1fr;
    gap: 15px;
    border-bottom: 2px solid #021b39;
    padding-bottom: 15px;
    margin-bottom: 20px;
    align-items: center;
}

.guia-recolhimento-logo h3 {
    margin: 0;
    color: #021b39;
    font-size: 16px;
    font-weight: 800;
}

.guia-recolhimento-logo p {
    margin: 2px 0 0 0;
    font-size: 10px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 700;
}

.guia-recolhimento-doc {
    text-align: center;
    border-left: 1px solid #cbd5e1;
    border-right: 1px solid #cbd5e1;
    padding: 0 10px;
}

.guia-recolhimento-doc h4 {
    margin: 0;
    font-size: 14px;
    color: #021b39;
    font-weight: 800;
}

.guia-recolhimento-doc span {
    font-size: 12px;
    font-weight: 700;
    color: #76b82a;
}

.guia-recolhimento-venc {
    text-align: right;
}

.guia-recolhimento-venc label {
    display: block;
    font-size: 9px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
}

.guia-recolhimento-venc strong {
    font-size: 14px;
    color: #021b39;
}

.guia-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-bottom: 20px;
}

.guia-field-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px;
    text-align: left;
}

.guia-field-card.total {
    background: #f0fdf4;
    border-color: #a7f3d0;
}

.guia-field-card label {
    display: block;
    font-size: 9px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.guia-field-card strong {
    font-size: 13px;
    color: #0f172a;
}

.guia-field-card.total strong {
    color: #15803d;
    font-size: 16px;
    font-weight: 800;
}

/* Área Drag and Drop de Importação de Arquivos */
.import-drag-drop {
    border: 2px dashed #7c3aed;
    background: #fdfaff;
    border-radius: 12px;
    padding: 40px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.import-drag-drop:hover {
    background: #f5f0ff;
    border-color: #6d28d9;
}

.import-drag-drop-icon {
    font-size: 40px;
    margin-bottom: 12px;
    display: block;
}

.import-drag-drop p {
    margin: 5px 0;
    font-size: 13px;
    color: #475569;
}

.import-drag-drop strong {
    color: #7c3aed;
}

/* Boleto/Guia Pix & Código de Barras */
.guia-payment-methods {
    display: grid;
    grid-template-columns: 1.5fr 3.5fr;
    gap: 20px;
    border-top: 1px dashed #cbd5e1;
    padding-top: 20px;
    margin-top: 20px;
    align-items: center;
    text-align: left;
}

.guia-pix-container {
    text-align: center;
}

.guia-pix-qr {
    width: 90px;
    height: 90px;
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    margin: 0 auto 5px auto;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 44px;
}

.guia-barcode-area {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 15px;
    font-family: monospace;
    font-size: 12px;
    color: #334155;
    letter-spacing: 1px;
}

/* ==========================================
   MÓDULO INVESTIMENTOS - ESTILOS
   ========================================== */

/* Barra de Progresso de Enquadramento CMN */
.enquadramento-bar-container {
    background: #e2e8f0;
    border-radius: 20px;
    height: 12px;
    position: relative;
    margin-top: 10px;
    overflow: hidden;
}

.enquadramento-bar-fill {
    height: 100%;
    border-radius: 20px;
    background: #3b82f6;
    transition: width 0.3s ease;
}

.enquadramento-bar-fill.normal {
    background: #10b981;
}

.enquadramento-bar-fill.alert {
    background: #f97316;
}

.enquadramento-bar-fill.danger {
    background: #ef4444;
}

.enquadramento-bar-limit-line {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #b91c1c;
    border-left: 1px dashed #fff;
    z-index: 2;
}

/* Cards de Rentabilidade Comparada */
.rentabilidade-grid-comparativa {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}

.rentabilidade-card-comp {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 15px;
    text-align: left;
    box-shadow: 0 2px 10px rgba(0,0,0,0.02);
}

.rentabilidade-card-comp h4 {
    margin: 0;
    font-size: 11px;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 700;
}

.rentabilidade-card-comp .yield-val {
    font-size: 20px;
    font-weight: 800;
    color: #0f172a;
    margin: 8px 0;
}

.rentabilidade-card-comp .bench-compare {
    font-size: 10px;
    font-weight: 600;
}

.rentabilidade-card-comp .bench-compare.positive {
    color: #16a34a;
}

.rentabilidade-card-comp .bench-compare.negative {
    color: #dc2626;
}

/* Tags de Artigos e Segmentos CMN */
.segmento-tag {
    font-size: 10px;
    font-weight: 700;
    background: #f1f5f9;
    color: #334155;
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid #cbd5e1;
    display: inline-block;
}

.segmento-tag.rf {
    background: #eff6ff;
    color: #1d4ed8;
    border-color: #bfdbfe;
}

.segmento-tag.rv {
    background: #fdf2f8;
    color: #be185d;
    border-color: #fbcfe8;
}

.segmento-tag.est {
    background: #f0fdf4;
    color: #15803d;
    border-color: #bbf7d0;
}

/* Listagem de Regulamentos e Documentos do Fundo */
.regulamento-preview-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 12px 15px;
    margin-bottom: 10px;
    text-align: left;
}

.regulamento-preview-card.pdf::before {
    content: "📄";
    font-size: 20px;
    margin-right: 12px;
}

/* ==========================================
   MÓDULO ATUÁRIA - ESTILOS
   ========================================== */

/* Grid de Provisões Matemáticas e Reservas */
.provisao-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}

.provisao-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 20px;
    text-align: left;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.provisao-card h4 {
    margin: 0 0 10px 0;
    font-size: 12px;
    color: #475569;
    text-transform: uppercase;
    font-weight: 700;
}

.provisao-card .val {
    font-size: 22px;
    font-weight: 800;
    color: #0f172a;
}

/* Indicadores de Resultado Atuarial (Déficit/Superávit) */
.deficit-indicator {
    padding: 15px 20px;
    border-radius: 10px;
    font-weight: 700;
    text-align: left;
    margin-bottom: 20px;
    border: 1px solid;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.deficit-indicator.deficit {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #991b1b;
}

.deficit-indicator.superavit {
    background: #f0fdf4;
    border-color: #bbf7d0;
    color: #166534;
}

.deficit-indicator h4 {
    margin: 0;
    font-size: 13px;
    text-transform: uppercase;
}

.deficit-indicator .val {
    font-size: 20px;
    font-weight: 800;
}

/* Tábuas Atuariais */
.tabua-tag {
    font-size: 10px;
    font-weight: 700;
    background: #f8fafc;
    color: #475569;
    padding: 4px 8px;
    border-radius: 6px;
    border: 1px solid #cbd5e1;
    display: inline-block;
    margin-right: 5px;
}

/* ==========================================
   MÓDULO COMPREV - ESTILOS
   ========================================== */

/* Badges de Regimes Previdenciários */
.regime-badge {
    font-size: 10px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 5px;
    border: 1px solid;
    display: inline-block;
}

.regime-badge.rgps {
    background: #eff6ff;
    color: #1d4ed8;
    border-color: #bfdbfe;
}

.regime-badge.rpps {
    background: #f5f3ff;
    color: #6d28d9;
    border-color: #ddd6fe;
}

/* Alerta de Processos Glosados */
.glosa-alerta-box {
    background: #fff5f5;
    border: 1px solid #fca5a5;
    border-radius: 8px;
    padding: 15px;
    color: #991b1b;
    margin-bottom: 20px;
    text-align: left;
}

.glosa-alerta-box h5 {
    margin: 0 0 5px 0;
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
}

.glosa-alerta-box p {
    margin: 0;
    font-size: 11px;
    opacity: 0.9;
}

/* Preview de Documentos CTC */
.ctc-file-preview {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px 15px;
    margin-top: 10px;
    text-align: left;
}

/* ==========================================
   MÓDULO GESTÃO PREVIDENCIÁRIA - ESTILOS
   ========================================== */

/* Grid de Regularidade Geral */
.gp-regularidade-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}

.gp-regularidade-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 15px;
    text-align: left;
    position: relative;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.gp-regularidade-card h4 {
    margin: 0 0 5px 0;
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 700;
}

.gp-regularidade-card .status-txt {
    font-size: 15px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Bolinha de conformidade animada */
.gp-pulsar-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}

.gp-pulsar-dot.success {
    background: #10b981;
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4);
    animation: gpPulseGreen 2s infinite;
}

.gp-pulsar-dot.warning {
    background: #f59e0b;
    box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.4);
    animation: gpPulseOrange 2s infinite;
}

.gp-pulsar-dot.danger {
    background: #ef4444;
    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4);
    animation: gpPulseRed 2s infinite;
}

@keyframes gpPulseGreen {
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(16, 185, 129, 0); }
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
}

@keyframes gpPulseOrange {
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(245, 158, 11, 0); }
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); }
}

@keyframes gpPulseRed {
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(239, 68, 68, 0); }
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}








