﻿/* Dashboard Layout */
.dashboard-container {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.top-section,
.bottom-section {
    margin-top: 20px;
    display: grid;
    gap: 1.5rem;
}

.section-single-column {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    margin-top: 0.5rem;
}

.section-two-column {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    margin-top: 0.5rem;
}


/* Desktop */
@media (min-width: 992px) {
    .top-section,
    .bottom-section {
        grid-template-columns: repeat(3, 1fr);
    }

    .patrimonio-premium-top-section {
        grid-template-columns: minmax(230px, 0.86fr) minmax(330px, 1.16fr) minmax(240px, .82fr) minmax(330px, 1.18fr);
    }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 991.98px) {
    .top-section,
    .bottom-section {
        grid-template-columns: repeat(2, 1fr);
    }

    .top-section-one-column {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .patrimonio-operational-stack {
        height: auto !important;
        min-height: auto;
    }

    .patrimonio-operational-card {
        flex: 0 0 auto;
        min-height: 184px;
    }
}

/* Mobile */
@media (max-width: 767.98px) {
    .top-section,
    .bottom-section {
        grid-template-columns: 1fr;
    }

    /* Em coluna única o pai tem altura por conteúdo; min-height:100% não resolve no WebKit/iOS
       e gera espaço gigante. Deixa o card com altura de conteúdo no mobile. */
    .patrimonio-premium-chart-card {
        min-height: auto !important;
    }

    .patrimonio-operational-stack {
        height: auto !important;
        min-height: auto;
        gap: 0rem !important;
        margin-top: -1.2rem;
    }

    .patrimonio-premium-composition-card {
        margin-top: -.2rem;
    }

    .patrimonio-operational-card {
        flex: 0 0 auto;
        min-height: 184px;
    }
}

.bottom-section {
    margin-top: 10px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
}

/* ApexChart */
.apexcharts-legend-series .apexcharts-legend-text {
    padding-left: 22px !important;
    color: #b0b0b0 !important;
}

.apexcharts-menu-item {
    color: #6c757d !important;
}

.card-title-top10 {
    font-size: 15px !important;
}

/* Tema Escuro */
body.dark-theme .card-title {
    color: #edf4ff !important;
    font-size: .98rem !important;
}

/* Tema Claro */
body.light-theme .card-title {
    color: #6c757d !important;
    font-size: .98rem !important;
}

.card {
    margin-bottom: 0px;
    background: #fff;
    border-radius: 12px;
    padding: 1rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.card-calendario {
    padding: 0px !important;
}

.chart-card {
    position: relative;
    text-align: left;
}

/* Tema Escuro */
body.dark-theme .chart-card {
    border: .5px solid #3d4047 !important;
}

/* Tema Claro */
body.light-theme .chart-card {
    border: .5px solid #e3e6ed !important;
}

.chart-wrapper {
    position: relative;
    width: 300px;
    height: 300px;
    margin: 0 auto; /* Centraliza o gráfico na horizontal */
}

.chart-center-value {
    position: absolute;
    top: 44%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.1rem;
    font-weight: bold;
    color: #28a745;
    z-index: 10;
}

/* Card Stack e Mini-Card */
.card-stack {
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 1rem;
}

.mini-card {
    padding: 1rem;
    border-radius: 12px;
    text-align: left;
    box-shadow: none;
}

/* Tema Escuro */
body.dark-theme .mini-card {
    color: #f1f1f1;
    border: 0.5px solid #3d4047;
}

/* Tema Claro */
body.light-theme .mini-card {
    color: #1f1f1f;
    border: 0.5px solid #e3e6ed;
}

/* Texto secundário */
body.dark-theme .mini-card .small {
    color: #a1a1a1;
}

body.light-theme .mini-card .small {
    color: #6c757d;
}

/* Estilo base da tabela */
.table-card {
    border-radius: 0.5rem;
    overflow: hidden;
    font-size: 0.95rem;
}

.table-card table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}

/* Cabeçalho */
.table-card thead th {
    text-transform: uppercase;
    font-weight: 600;
    font-size: 0.95rem;
    padding: 0.8rem;
    text-align: left;
}

/* Linhas e células */
.table-card td {
    padding: 0.8rem;
    vertical-align: middle;
    font-size: 0.95rem;
    color: #6c757d !important
}

.table-card tbody tr {
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

/* Linha de totais */
.table-card .total-row {
    font-weight: bold;
}

/* Hover */
.table-card tbody tr:hover {
    background-color: rgba(255, 255, 255, 0.02);
    cursor: pointer;
}

/* Tema Escuro */
body.dark-theme .table-card {
    background-color: #1e1e2f;
    border: .5px solid #3d4047 !important;
    color: #dcdcdc !important;
}

body.dark-theme .table-card thead th {
    background-color: #2c2c3c;
    color: #b0b0b0 !important;
}

body.dark-theme .table-card td {
    color: #b0b0b0 !important;
}

body.dark-theme .table-card .total-row {
    background-color: #2c2c3c;
    color: #b0b0b0 !important;
}

/* Tema Claro */
body.light-theme .table-card {
    background-color: #ffffff;
    border: .5px solid #e3e6ed !important;
    color: #343a40 !important;
}

body.light-theme .table-card thead th {
    background-color: #f1f3f5;
    color: #6c757d !important;
}

body.light-theme .table-card .total-row {
    background-color: #f1f3f5;
    color: #212529 !important;
}

.table-card.table-mobile td,
.table-card.table-mobile th {
    white-space: nowrap;      /* impede quebra de texto */
}

/* BEGIN - Seção Medidor Objetivos Objetivos */

.objetivos-card {
    border: .5px solid #3d4047 !important;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1rem;
}

/* Tema Escuro */
body.dark-theme .objetivos-card {
    border: .5px solid #3d4047 !important;
}

/* Tema Claro */
body.light-theme .objetivos-card {
    border: .5px solid #e3e6ed !important;
}

.objetivo-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    margin-bottom: 0px;
}

.objetivo {
    padding: 10px 12px;
    border-radius: 8px;
    font-weight: 600;
    text-align: center;
}

.nome {
    background-color: #e3effa;
    color: #1c3553;
}

.valor {
    background-color: #dceffc;
    color: #0a2a49;
}

.meta {
    background-color: #edf4f9;
    color: #1e1e1e;
    cursor: pointer;
    position: relative;
}

.meta-input {
    width: 100%;
    padding: 3px;
    border-radius: 6px;
    border: 1px solid #ccc;
    font-size: 0.95rem;
    text-align: center;
}

.perc {
    color: white;
}

.legenda {
    display: flex;
    justify-content: flex-end; /* alinhamento à direita */
    gap: 16px;
    font-size: 0.9rem;
    font-weight: 500;
    padding-top: 2px;
    margin-right: 12px;
}

.legenda .red {
    color: #f25f5c;
}

.legenda .green {
    color: #3cb371;
}

.perc.red {
    background-color: #f56c6c;
}

.perc.green {
    background-color: #67c23a;
}

.label-meta {
    display: block;
    font-weight: bold;
    margin-bottom: 4px;
    font-size: 0.9rem;
}

.objetivo-mobile-card {
    padding: 14px;
    border-radius: 14px;
    margin-bottom: 12px;
    background: var(--bs-card-bg);
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

[data-bs-theme="dark"] .objetivo-mobile-card {
    box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

/* BEGIN - Seção Histórico Ano Proventos */

body.dark-theme .card-provento {
    background-color: #212529;
}

body.light-theme .card-provento {
    background-color: white;
}

/* BEGIN - Select Cards */

/* Tema Escuro */
body.dark-theme .select-card {
    background-color: #2c2c3c;
    color: #b0b0b0 !important;
    border: 0.5px solid #3d4047 !important;
}

/* Tema Claro */
body.light-theme .select-card {
    background-color: #fff;
    color: #6c757d !important;
    border: 0.5px solid #e3e6ed !important;
}

/* BEGIN - Span Title Cards */
.span-card {
    overflow-wrap: anywhere;
}

/* Tema Escuro */
body.dark-theme .span-card {
    color: #b0b0b0 !important;
}

/* Tema Claro */
body.light-theme .span-card {
    color: #6c757d !important;
}

/* BEGIN - Ajustes Mobile */

@media (prefers-color-scheme: dark) {
    .card {
        background: #1e1e2f;
        color: #eee;
    }

    .chart-center-value {
        color: #90ee90;
    }

    .table-card tr.total-row td {
        background-color: #2c2c3c;
    }

    .objetivo {
        background-color: #2a2a3a;
    }

    .dashboard-container {
        background-color: #121212;
    }
}

@media (max-width: 991.98px) {
    .objetivo-grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* Centralizar gráfico no Mobile e Tablet */
@media (max-width: 991.98px) {
    .grafico-container {
        display: flex;
        justify-content: center;
        width: 100%;
    }
}

/* Desktop */
@media (min-width: 992px) {
    .grafico-container-setor {
        max-width: 500px;
    }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 991.98px) {
    .grafico-container-setor {
        max-width: 400px;
        margin: 0 auto;
    }
}

/* Mobile */
@media (max-width: 767.98px) {
    .grafico-container-setor {
        max-width: 250px;
        margin: 0 auto;
    }
}

/* Tabela mobile */
.table-mobile {
    display: none;
}

@media (max-width: 767.98px) {
    .table-mobile {
        display: block;
    }
}

.legenda-bolinha {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-right: 8px;
    vertical-align: middle;
}

/* -----------------------------------
   BEGIN - Dashboard Carteira
-------------------------------------- */

body.dark-theme .custom-column-dash-carteira {
    background-color: darkslategray !important;
}

body.light-theme .custom-column-dash-carteira {
    background-color: aliceblue !important;
}

.top10-item {
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

/* -----------------------------------
   BEGIN - Dashboard Home User
-------------------------------------- */

/* -----------------------------------
   BEGIN - Dashboard Patrimônio Premium
-------------------------------------- */

.patrimonio-premium-page {
    padding-bottom: 0rem;
}

.patrimonio-premium-header {
    align-items: center;
    justify-content: space-between;
    padding-top: .5rem;
}

.patrimonio-premium-kicker {
    color: #8fb7ff;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .22rem;
    margin-bottom: .25rem;
    text-transform: uppercase;
}

.patrimonio-premium-label-a-mercado {
    font-size: .7rem;
}

.patrimonio-premium-check-a-mercado {
    margin-right: 0rem !important;
}

.patrimonio-premium-valor-rf-wrapper {
    align-items: flex-start;
    min-width: 211px;
}

.patrimonio-premium-valor-rf-wrapper.mobile {
    min-width: 174px;
}

.patrimonio-premium-valor-rf-segment {
    align-items: center;
    background: rgba(15, 23, 42, .78);
    border: 1px solid rgba(148, 163, 184, .18);
    border-radius: 10px;
    display: inline-flex;
    gap: .25rem;
    padding: .18rem;
}

.patrimonio-premium-valor-rf-btn {
    background: transparent;
    border: 0;
    border-radius: 8px;
    color: #aeb9c8;
    font-size: .72rem;
    font-weight: 800;
    line-height: 1;
    min-height: 27px;
    padding: .38rem .62rem;
    transition: background-color .18s ease, box-shadow .18s ease, color .18s ease;
    white-space: nowrap;
}

.patrimonio-premium-valor-rf-btn:hover {
    background: linear-gradient(135deg, #ffc000 0%, #ffd85a 100%);
    box-shadow: 0 6px 16px rgba(255, 192, 0, .24) !important;
    color: #111827 !important;
}

.patrimonio-premium-valor-rf-btn.is-loading {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-width: 58px;
}

.patrimonio-premium-valor-rf-btn:disabled {
    cursor: wait;
    opacity: .82;
}

.patrimonio-premium-total-card .patrimonio-premium-valor-rf-btn.is-active,
.patrimonio-premium-header .patrimonio-premium-valor-rf-btn.is-active {
    background: linear-gradient(135deg, #ffc000 0%, #ffd85a 100%) !important;
    box-shadow: 0 6px 16px rgba(255, 192, 0, .24) !important;
    color: #111827 !important;
}

.patrimonio-premium-valor-rf-wrapper.mobile .patrimonio-premium-valor-rf-segment {
    gap: .18rem;
    padding: .14rem;
}

.patrimonio-premium-valor-rf-wrapper.mobile .patrimonio-premium-valor-rf-btn {
    font-size: .64rem;
    min-height: 24px;
    padding: .3rem .42rem;
}

body.light-mode .patrimonio-premium-valor-rf-segment {
    background: rgba(241, 245, 249, .9);
    border-color: rgba(100, 116, 139, .22);
}

body.light-mode .patrimonio-premium-valor-rf-btn {
    color: #64748b;
}

body.light-mode .patrimonio-premium-valor-rf-btn:hover {
    background: rgba(100, 116, 139, .12);
    color: #1f2937;
}

body.light-mode .patrimonio-premium-valor-rf-btn.is-active {
    color: #111827;
}

.patrimonio-premium-card,
.patrimonio-premium-section-card {
    background: linear-gradient(180deg, #111827 0%, #0c1119 100%) !important;
    border: 1px solid rgba(148, 163, 184, 0.14) !important;
    border-radius: 8px !important;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.22) !important;
    color: #d7e2f0 !important;
}

.patrimonio-premium-chart-card {
    margin-top: 0rem;
}

.patrimonio-premium-total-card {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    justify-content: space-between;
    min-height: 100%;
}

.patrimonio-premium-total-header {
    color: #edf4ff;
    font-size: .88rem;
    font-weight: 900;
    letter-spacing: .02rem;
    text-transform: uppercase;
}

.patrimonio-premium-total-value {
    color: #ffffff;
    font-size: clamp(1.55rem, 1.9vw, 1rem);
    font-variant-numeric: tabular-nums;
    font-weight: 900;
    line-height: 1.15;
    margin-top: .75rem;
}

.patrimonio-premium-total-variation {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    font-size: .82rem;
    font-weight: 900;
    gap: .3rem;
    line-height: 1.2;
    margin-top: .25rem;
}

.patrimonio-premium-total-variation.is-positive {
    color: #22c55e;
}

.patrimonio-premium-total-variation.is-negative {
    color: #fb7185;
}

.patrimonio-premium-total-variation.is-neutral {
    color: #9fb0c5;
}

.patrimonio-premium-total-subtitle {
    color: #9fb0c5;
    font-size: .72rem;
    font-weight: 800;
}

.patrimonio-premium-total-profit-section {
    margin-top: .9rem;
}

.patrimonio-premium-total-profit-title {
    align-items: center;
    color: #edf4ff;
    display: inline-flex;
    font-size: .76rem;
    font-weight: 900;
    gap: .45rem;
    letter-spacing: .02rem;
    text-transform: uppercase;
}

.patrimonio-premium-total-profit-title i {
    color: #ffc000;
    font-size: .86rem;
}

.patrimonio-premium-total-profit {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: .55rem;
}

.patrimonio-premium-total-profit-item {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    min-width: 0;
}

.patrimonio-premium-total-profit-value {
    color: #d7e2f0;
    font-size: clamp(.92rem, .9vw, 1.08rem);
    font-variant-numeric: tabular-nums;
    font-weight: 900;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.patrimonio-premium-total-profit-item small {
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
    font-weight: 900;
    line-height: 1.25;
}

.patrimonio-premium-total-profit-item small.is-positive {
    color: #22c55e;
}

.patrimonio-premium-total-profit-item small.is-negative {
    color: #fb7185;
}

.patrimonio-premium-total-chart {
    margin-top: auto;
    min-height: 118px;
}

.patrimonio-premium-total-chart .apexcharts-canvas,
.patrimonio-premium-total-chart svg {
    overflow: visible;
}

.patrimonio-premium-composition-card {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    min-height: 100%;
}

.patrimonio-composition-header {
    align-items: center;
    display: flex;
    gap: .9rem;
    min-height: 86px;
}

.patrimonio-composition-donut {
    flex: 0 0 86px;
    height: 86px;
    overflow: visible;
    width: 86px;
}

.patrimonio-composition-donut .apexcharts-canvas,
.patrimonio-composition-donut svg {
    overflow: visible;
}

.patrimonio-composition-summary {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}

.patrimonio-composition-summary span {
    color: #9fb0c5;
    font-size: .78rem;
    font-weight: 900;
}

.patrimonio-composition-summary strong {
    color: #edf4ff;
    font-size: clamp(1rem, 1.05vw, 1.2rem);
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    line-height: 1.2;
}

.patrimonio-composition-summary small {
    color: #8fa0b7;
    font-size: .72rem;
    font-weight: 700;
}

.patrimonio-composition-list {
    display: flex;
    flex-direction: column;
}

.patrimonio-composition-item {
    align-items: center;
    border-top: 1px solid rgba(148, 163, 184, 0.14);
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    min-height: 52px;
    padding: .55rem 0;
}

.patrimonio-composition-item-left {
    align-items: center;
    display: flex;
    gap: .55rem;
    min-width: 0;
}

.patrimonio-composition-item-left div,
.patrimonio-composition-item-right {
    display: flex;
    flex-direction: column;
}

.patrimonio-composition-dot {
    border-radius: 999px;
    flex: 0 0 .55rem;
    height: .55rem;
    width: .55rem;
}

.patrimonio-composition-item-left strong {
    color: #edf4ff;
    font-size: .78rem;
    font-weight: 900;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.patrimonio-composition-item-left small {
    color: #8fa0b7;
    font-size: .72rem;
    font-weight: 700;
}

.patrimonio-composition-item-right {
    align-items: flex-end;
    flex: 0 0 auto;
    gap: .1rem;
    text-align: right;
}

.patrimonio-composition-item-right span {
    color: #edf4ff;
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
}

.patrimonio-composition-item-right small {
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
    font-weight: 900;
}

.patrimonio-composition-item-right small.is-positive {
    color: #34d399;
}

.patrimonio-composition-item-right small.is-negative {
    color: #fb7185;
}

.patrimonio-composition-item-right small.is-neutral {
    color: #9fb0c5;
}

.patrimonio-operational-stack {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    gap: 1rem;
}

.patrimonio-operational-card {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: .85rem;
    min-height: 184px;
}

.patrimonio-operational-title {
    align-items: center;
    color: #edf4ff !important;
    display: inline-flex;
    font-size: .88rem !important;
    font-weight: 900;
    letter-spacing: .02rem;
    margin-bottom: 0;
    text-transform: uppercase;
}

.patrimonio-operational-title i {
    color: #ffc000;
}

.patrimonio-operational-loading {
    align-items: center;
    color: #9fb0c5;
    display: flex;
    flex: 1 1 auto;
    justify-content: center;
    min-height: 7rem;
}

.patrimonio-operational-body {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    justify-content: center;
    margin-top: 1rem;
}

.patrimonio-operational-row {
    align-items: center;
    display: flex;
    gap: .8rem;
    justify-content: space-between;
    min-width: 0;
}

.patrimonio-operational-row span {
    color: #c8d2e1;
    font-size: .78rem;
    font-weight: 700;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.patrimonio-operational-row strong {
    color: #edf4ff;
    flex: 0 0 auto;
    font-size: .8rem;
    font-variant-numeric: tabular-nums;
    font-weight: 900;
    text-align: right;
}

.patrimonio-operational-row strong.is-positive {
    color: #34d399;
}

.patrimonio-operational-row strong.is-negative {
    color: #fb7185;
}

.patrimonio-operational-row strong.is-neutral {
    color: #9fb0c5;
}

.patrimonio-operational-row strong.is-warning {
    color: #fbbf24;
}

.patrimonio-operational-badge {
    border-radius: 999px;
    font-size: .68rem !important;
    line-height: 1;
    padding: .28rem .48rem;
}

.patrimonio-operational-badge.is-positive {
    background: rgba(34, 197, 94, 0.16);
    color: #34d399 !important;
}

.patrimonio-operational-badge.is-negative {
    background: rgba(251, 113, 133, 0.16);
    color: #fb7185 !important;
}

.patrimonio-operational-link {
    align-items: center;
    align-self: flex-start;
    color: #d7e2f0;
    display: inline-flex;
    font-size: .76rem;
    font-weight: 800;
    gap: .35rem;
    margin-top: auto;
    text-decoration: none;
    transition: color .18s ease, transform .18s ease;
    width: fit-content;
}

.patrimonio-operational-link:hover {
    color: #ffc000;
    transform: translateX(2px);
}

.patrimonio-premium-card-title {
    align-items: center;
    color: #edf4ff !important;
    display: inline-flex;
    font-size: .88rem !important;
    font-weight: 900;
    letter-spacing: .02rem;
    text-transform: uppercase;
}

.patrimonio-premium-value {
    color: #edf4ff !important;
    font-variant-numeric: tabular-nums;
    font-weight: 900;
}

.patrimonio-premium-chart-card {
    min-height: 100%;
    overflow: hidden;
}

.patrimonio-premium-chart-shell {
    background: transparent !important;
    overflow: hidden;
    width: 100%;
}

.patrimonio-premium-sector-empty {
    align-items: center;
    border: 1px dashed rgba(148, 163, 184, 0.22);
    border-radius: 8px;
    color: #9fb0c5;
    display: flex;
    font-size: .9rem;
    font-weight: 600;
    gap: .75rem;
    justify-content: center;
    margin-top: .4rem;
    min-height: 260px;
    padding: 1.5rem;
    text-align: center;
}

.patrimonio-premium-sector-empty i {
    color: #ffc107;
    font-size: 1.25rem;
}

body.light-theme .patrimonio-premium-sector-empty {
    border-color: rgba(15, 23, 42, 0.16);
    color: #5f6f85;
}

.evol-patrimonio-primeiro-registro {
    box-sizing: border-box;
    color: #9fb0c5;
    font-size: .85rem;
    max-width: 100%;
    overflow-wrap: break-word;
    padding: 0 .5rem;
    text-align: left;
    width: 100%;
    word-break: break-word;
}

.evol-patrimonio-primeiro-registro p {
    margin-bottom: .25rem;
}

body.light-theme .evol-patrimonio-primeiro-registro {
    color: #5f6f85;
}

@media (max-width: 767.98px) {
    .evol-patrimonio-primeiro-registro {
        font-size: .78rem;
        padding: 0 .25rem;
    }
}

.patrimonio-premium-chart-shell .apexcharts-canvas,
.patrimonio-premium-chart-shell svg {
    overflow: visible;
}

.patrimonio-donut-legend-item {
    align-items: center;
    display: inline-flex;
    gap: .55rem;
    justify-content: space-between;
    min-width: 132px;
}

.patrimonio-donut-legend-item strong {
    color: #edf4ff;
    font-variant-numeric: tabular-nums;
    font-weight: 900;
}

.patrimonio-premium-list-card .ranking-list {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.patrimonio-premium-list-item {
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
}

.patrimonio-premium-list-total {
}

.patrimonio-dados-consolidados-stack {
    gap: 1rem;
}

.patrimonio-proventos-card {
    flex: 0 0 auto;
}

.patrimonio-proventos-summary {
    margin-bottom: .35rem;
}

.patrimonio-proventos-mini-chart {
    margin-top: .55rem;
    min-height: 130px;
}

.patrimonio-proventos-mini-chart .apexcharts-canvas,
.patrimonio-proventos-mini-chart svg {
    overflow: visible;
}

.patrimonio-dados-consolidados-stack .patrimonio-premium-raiox-card {
    flex: 1 1 auto !important;
    min-height: 154px;
}

.patrimonio-premium-raiox-alert-window {
    height: 10rem;
}

.patrimonio-premium-segment {
    background: transparent;
}

.patrimonio-premium-segment-wrapper {
    background: #111827 !important;
    border-radius: 8px;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18);
    margin-bottom: .5rem;
    margin-right: 0rem;
}

.patrimonio-premium-segment .segment-btn {
    border-radius: 8px !important;
    font-weight: 900;
    padding: 6px 12px !important;
    min-width: 4rem;
}

.patrimonio-premium-segment .segment-btn.active {
    background: #ffc000;
    color: #172033;
}

/* Filtro de período do card Evolução do Patrimônio: pílulas mais largas e baixas. */
.evol-patrimonio-filtro .segment-btn {
    padding: 6px 5px;
    font-size: 0.75rem;
    line-height: 1.2;
    border-radius: 6px;
}

.patrimonio-premium-action {
    align-items: center;
    background: rgba(255, 192, 0, 0.1);
    border: 1px solid rgba(255, 192, 0, 0.24);
    border-radius: 8px;
    color: #ffc000;
    display: inline-flex;
    font-size: .78rem;
    font-weight: 900;
    gap: .35rem;
    justify-content: center;
    min-height: 2rem;
    padding: .35rem .7rem;
    transition: transform .16s ease, filter .16s ease;
}

.patrimonio-premium-action:hover {
    filter: brightness(1.08);
    transform: translateY(-1px);
}

.patrimonio-premium-goals-card .objetivo-grid {
    gap: .5rem;
}

.patrimonio-premium-grid-label {
    color: #8fa0b7;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08rem;
    margin-left: .25rem;
    text-transform: uppercase;
}

.patrimonio-premium-goals-card .objetivo {
    background: rgba(255, 255, 255, 0.045);
    border: 1px solid rgba(148, 163, 184, 0.13);
    color: #d7e2f0;
}

.patrimonio-premium-goals-card .objetivo.meta {
    background: rgba(255, 192, 0, 0.1);
    border-color: rgba(255, 192, 0, 0.22);
    color: #ffc000;
}

.patrimonio-premium-goals-card .objetivo.perc.green {
    background: rgba(34, 200, 54, 0.16);
    color: #22c836;
}

.patrimonio-premium-goals-card .objetivo.perc.red {
    background: rgba(255, 79, 99, 0.16);
    color: #ff4f63;
}

.patrimonio-premium-mobile-goal {
    background: rgba(255, 255, 255, 0.045) !important;
    border: 1px solid rgba(148, 163, 184, 0.13);
    box-shadow: none;
}

.patrimonio-premium-alert {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 8px;
    min-height: 2rem;
}

.patrimonio-premium-modal-content {
    background: linear-gradient(180deg, #111827 0%, #0c1119 100%) !important;
    color: #d7e2f0;
}

.patrimonio-premium-ai-card,
.patrimonio-premium-analysis-item,
.patrimonio-premium-insight-item {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(148, 163, 184, 0.13) !important;
    color: #d7e2f0 !important;
}

.patrimonio-premium-ai-card .card-header {
    background: rgba(255, 255, 255, 0.035);
    border-color: rgba(148, 163, 184, 0.13);
    color: #edf4ff;
    font-weight: 900;
}

.patrimonio-premium-tabs {
    border-color: rgba(148, 163, 184, 0.16) !important;
    gap: .35rem;
}

.patrimonio-premium-tabs .nav-link {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(148, 163, 184, 0.13);
    border-radius: 8px;
    color: #aeb9c8;
    font-size: .78rem;
    font-weight: 900;
}

.patrimonio-premium-tabs .nav-link.active {
    background: rgba(255, 192, 0, 0.14);
    border-color: #ffc000;
    color: #fff;
}

.patrimonio-premium-mobile-table {
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(148, 163, 184, 0.12) !important;
}

body.light-theme .patrimonio-premium-card,
body.light-theme .patrimonio-premium-section-card,
body.light-theme .patrimonio-premium-modal-content {
    background: #ffffff !important;
    border-color: rgba(15, 23, 42, 0.1) !important;
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.08) !important;
    color: #172033 !important;
}

body.light-theme .patrimonio-premium-card-title,
body.light-theme .patrimonio-premium-value {
    color: #172033 !important;
}

body.light-theme .patrimonio-premium-total-header,
body.light-theme .patrimonio-premium-total-value,
body.light-theme .patrimonio-premium-total-profit-title,
body.light-theme .patrimonio-premium-total-profit-value {
    color: #172033;
}

body.light-theme .patrimonio-premium-total-subtitle,
body.light-theme .patrimonio-premium-total-variation.is-neutral {
    color: #5f6f85;
}

body.light-theme .patrimonio-composition-summary strong,
body.light-theme .patrimonio-composition-item-left strong,
body.light-theme .patrimonio-composition-item-right span {
    color: #172033;
}

body.light-theme .patrimonio-composition-summary span,
body.light-theme .patrimonio-composition-summary small,
body.light-theme .patrimonio-composition-item-left small,
body.light-theme .patrimonio-composition-item-right small.is-neutral {
    color: #5f6f85;
}

body.light-theme .patrimonio-composition-item {
    border-top-color: rgba(15, 23, 42, 0.1);
}

body.light-theme .patrimonio-operational-title,
body.light-theme .patrimonio-operational-row strong {
    color: #172033 !important;
}

body.light-theme .patrimonio-operational-row span,
body.light-theme .patrimonio-operational-row strong.is-neutral,
body.light-theme .patrimonio-operational-loading {
    color: #5f6f85 !important;
}

body.light-theme .patrimonio-operational-row strong.is-positive {
    color: #16a34a !important;
}

body.light-theme .patrimonio-operational-row strong.is-negative {
    color: #e11d48 !important;
}

body.light-theme .patrimonio-operational-row strong.is-warning {
    color: #b7791f !important;
}

body.light-theme .patrimonio-operational-badge.is-positive {
    background: rgba(22, 163, 74, 0.12);
    color: #15803d !important;
}

body.light-theme .patrimonio-operational-badge.is-negative {
    background: rgba(225, 29, 72, 0.12);
    color: #be123c !important;
}

body.light-theme .patrimonio-operational-link {
    color: #172033;
}

body.light-theme .patrimonio-operational-link:hover {
    color: #c58f00;
}

body.light-theme .patrimonio-donut-legend-item strong {
    color: #172033;
}

body.light-theme .patrimonio-premium-kicker {
    color: #4f76ad;
}

body.light-theme .patrimonio-premium-segment-wrapper {
    background: #ffffff !important;
    border-color: rgba(15, 23, 42, 0.1);
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.08);
}

body.light-theme .patrimonio-premium-grid-label,
body.light-theme .patrimonio-premium-segment .segment-btn {
    color: #5f6f85;
}

body.light-theme .patrimonio-premium-goals-card .objetivo,
body.light-theme .patrimonio-premium-mobile-goal,
body.light-theme .patrimonio-premium-alert,
body.light-theme .patrimonio-premium-ai-card,
body.light-theme .patrimonio-premium-analysis-item,
body.light-theme .patrimonio-premium-insight-item,
body.light-theme .patrimonio-premium-mobile-table {
    background: #f8fafc !important;
    border-color: rgba(15, 23, 42, 0.09) !important;
    color: #172033 !important;
}

body.light-theme .patrimonio-premium-tabs .nav-link {
    background: #f8fafc;
    border-color: rgba(15, 23, 42, 0.09);
    color: #405169;
}

body.light-theme .patrimonio-premium-tabs .nav-link.active {
    background: rgba(255, 192, 0, 0.16);
    border-color: #ffc000;
    color: #a66b00;
}

/* Abaixo de xl os cards do topo do Patrimônio empilham; h-100/min-height:100% não resolvem
   no WebKit/iOS (altura gigante) e o grid estica o item, criando espaços internos.
   No mobile/tablet: altura por conteúdo, sem esticar e sem empurrar o sparkline. */
@media (max-width: 991.98px) {
    .patrimonio-premium-top-section .patrimonio-premium-total-card,
    .patrimonio-premium-top-section .patrimonio-premium-composition-card {
        height: auto !important;
        min-height: auto !important;
        align-self: start;
    }

    /* Não fixa o sparkline no fim do card (evita o vão acima dele). */
    .patrimonio-premium-top-section .patrimonio-premium-total-chart {
        margin-top: 0;
    }
}

@media (max-width: 767.98px) {
    .patrimonio-premium-card,
    .patrimonio-premium-section-card
    {
        border-radius: 8px !important;
        box-shadow: none !important;
    }

    .patrimonio-operational-card,
    .patrimonio-proventos-card {
        margin-top: 1rem;
    }

    .home-user-chart-card {
        margin-top: .5rem !important;
    }

    .patrimonio-premium-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: .35rem;
    }

    .patrimonio-premium-total-card {
        margin-top: 1.5rem;
    }

    .card-group-dash-patrimonio-sectin2 {
        margin-top: -.2rem !important;
    }

    .patrimonio-premium-goals-card {
        margin-top: -.2rem;
    }

    .home-user-kicker {
        margin-bottom: .5rem;
    }
}

.dashboard-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Faz todos os col's da mesma linha ficarem com a mesma altura */
.row > .col {
    display: flex;
}

.row > .col > * {
    flex: 1 1 auto;
    width: 100%;
}

.badge {
    font-size: 0.7rem;
    padding: 0.35em 0.6em;
    border-radius: 0.4rem;
}

.alerta-container {
    height: 2.5rem; /* altura de uma linha */
    overflow: hidden;
    position: relative;
}

.alerta-scroll {
    display: flex;
    flex-direction: column;
    transition: transform 0.6s ease-in-out;
}

.alerta-item {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    height: 2.5rem;
    line-height: 2.5rem;
    font-weight: 500;
}

.texto-truncado {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-block;
    max-width: 100%;
}

.tooltip-alerta .tooltip-inner {
    max-width: 300px;
    text-align: left;
    white-space: normal;
    font-size: 0.875rem;
    line-height: 1.4;
}

/* -----------------------------------
   BEGIN - Dashboard Raio X de Ativos
-------------------------------------- */

.raiox-card {
    background: var(--rx-bg-card);
    border: 1px solid var(--rx-border);
    color: #6c757d;
}

.raiox-card-2 { 
    background: var(--rx-bg-card-2); 
    border: 1px solid rgba(255,255,255,0.03); 
    color: #6c757d; 

}

.raiox-dados-gerais-card {
    margin-top: 0.5rem !important;
}

.raiox-metric {
    padding: 0.75rem;
    border-radius: .5rem;
}

.raiox-metric .title { 
    font-size: 0.85rem; 
    color: #6c757d; 

}

.raiox-metric .value { 
    font-size: 1.25rem; 
    font-weight:600; 
}

.raiox-ticker { 
    font-weight:700; 
    font-size:1.6rem; 
}

.raiox-sub { 
    color: #6c757d; 
    font-size: 0.9rem; 
}

.raiox-badge-pos {
    background: var(--rx-success);
    color: #31CE36;
    padding: .25rem .5rem;
    border-radius: .25rem;
}

.raiox-badge-neg { 
    background: var(--rx-danger); 
    color: #F25961 ; padding: .25rem .5rem; 
    border-radius: .25rem;
}

/* -----------------------------------
   BEGIN - Dashboard Indicadores
-------------------------------------- */

.fund-card {
    border-radius: 8px;
    border: 1px solid #ccc;
    transition: 0.2s;
}

.fund-card-light {
    background: #ffffff;
    border-color: #e5e5e5;
}

.fund-card-dark {
    background: #6861CE;
    border-color: #333;
}

.fund-card:hover {
    transform: translateY(-2px);
}

.fund-title {
    font-size: 0.82rem;
    font-weight: 600;
    opacity: 0.75;
}

.fund-value {
    font-size: 1.1rem;
    font-weight: 700;
}

.fund-value-dark {
    color: #31CE36;
}

.help-icon {
    font-size: 0.95rem;
    opacity: 0.75;
}

.help-icon:hover {
    opacity: 1;
    color: #cfcfcf;
}

.indicadores-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.indicador-item {
    border-radius: 8px;
    transition: all 0.2s ease-in-out;
}

.indicador-item:hover {
    background: rgba(255,255,255,0.05);
    transform: translateX(2px);
}

.indicador-nome {
    flex: 1;
    font-size: 0.85rem;
    opacity: 0.85;
}

.indicador-valor {
    flex: 1;
    text-align: center;
    font-size: 0.95rem;
}

.indicador-variacao {
    flex: 1;
    text-align: right;
    font-size: 0.85rem;
}

/* --------------------------------------
   PADRÃO MOBILE – Dashboards Core
---------------------------------------- */
@media (max-width: 767.98px) {
    .c3-title-page {
        font-size: 1.2rem;
    }
}

/* -----------------------------------
   BEGIN - Dashboard Patrimônio
-------------------------------------- */
/* Mobile */
@media (max-width: 767.98px) {
    .span-card {
        font-size: 0.875rem !important;
    }

    .patrimonio-premium-label-a-mercado {
        margin-right: 0rem;
        font-size: .7rem !important;
        text-transform: initial;
    }

    .text-success, .text-success a {
        font-size: 0.875rem !important;
    }

    .text-primary, .text-warning, .text-danger {
        font-size: 0.875rem !important;
    }

    .top10-item {
        font-size: 0.875rem !important;
    }

    .rentabilidade-acumulada-kpi {
        margin-top: 1rem !important;
    }

    .objetivos-card {
        margin-bottom: 0.2rem !important;
    }

    .section-single-column {
        margin-top: 0.5rem !important;
        margin-bottom: 1rem !important;
    }

    .card-stack {
        margin-top: 0.2rem !important;
    }

    .card-dash-patrimonio-sectin2 {
        margin-top: 0rem !important;
    }

    .card-dash-patrimonio-dados-consolidados {
        margin-top: 0rem !important;
    }

    .card-distribuicao-setorial {
        margin-top: .5rem !important;
    }

    .card-grupo-distribuicao-setorial {
        margin-bottom: 1.5rem !important;
    }

    .top-section {
        margin-top: -0.5rem !important;
    }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 991.98px) {
    .ranking-list {
        font-size: 0.9rem;
    }

    .card-dash-patrimonio-sectin2 {
        margin-top: 0rem !important;
    }

    .card-dash-patrimonio-dados-consolidados {
        margin-top: 1.2rem !important;
    }

    .card-distribuicao-setorial {
        margin-top: 1.5rem !important;
    }

    .card-grupo-distribuicao-setorial {
        margin-bottom: 1.5rem !important;
    }

    .objetivos-card {
        margin-top: 0rem !important;
    }

    .card-dist-setor {
        margin-top: 0.5rem !important;
        margin-bottom: 0.8rem !important;
    }

    .top-section {
        margin-top: -0.5rem !important;
    }
}

/* -----------------------------------
   BEGIN - Lançamentos Premium
-------------------------------------- */
.lancamentos-premium-page {
    padding-bottom: 0rem;
    margin-bottom: 1.5rem;
}

.lancamentos-premium-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    padding: .5rem;
}

.lancamentos-premium-kicker {
    color: #8fb7ff;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .22rem;
    margin-bottom: .35rem;
}

.lancamentos-premium-card,
.lancamentos-premium-modal-content {
    background: linear-gradient(180deg, #111827 0%, #0c1119 100%) !important;
    border: 1px solid rgba(148, 163, 184, 0.14) !important;
    border-radius: 8px !important;
    box-shadow: 0 18px 46px rgba(0, 0, 0, .26) !important;
    color: #d7e2f0;
    overflow: hidden;
}

.lancamentos-premium-toolbar {
    padding: .9rem 1rem;
}

.lancamentos-premium-search {
    max-width: 340px;
    width: 100%;
}

.lancamentos-premium-control {
    background-color: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(148, 163, 184, 0.14) !important;
    border-radius: 8px !important;
    color: #d7e2f0 !important;
    color-scheme: dark;
}

.lancamentos-premium-control::placeholder {
    color: #6f7d8f;
}

.lancamentos-premium-control:focus {
    background-color: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(255, 192, 0, 0.42) !important;
    box-shadow: 0 0 0 .18rem rgba(255, 192, 0, .12) !important;
    color: #edf4ff !important;
}

.lancamentos-premium-control option {
    background: #111827;
    color: #d7e2f0;
}

.lancamentos-premium-search-addon {
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(148, 163, 184, 0.14) !important;
    color: #8fb7ff !important;
}

.lancamentos-premium-card {
    position: relative;
}

.lancamento-filter-summary {
    align-items: center;
    color: #9fb0c5;
    display: flex;
    flex-wrap: wrap;
    font-size: .82rem;
    gap: .35rem .55rem;
}

.lancamento-filter-summary strong {
    color: #edf4ff;
    font-weight: 800;
}

.lancamento-filter-open {
    align-items: center;
    background: rgba(143, 183, 255, .08) !important;
    border: 1px solid rgba(143, 183, 255, .22) !important;
    border-radius: 8px !important;
    color: #cfe1f7 !important;
    display: inline-flex;
    font-size: .78rem;
    font-weight: 800;
    gap: .4rem;
    margin-left: .35rem;
    padding: .42rem .7rem;
}

.lancamento-filter-open:hover {
    background: rgba(255, 192, 0, .12) !important;
    border-color: rgba(255, 192, 0, .42) !important;
    color: #ffc000 !important;
}

.lancamento-results-loading {
    align-items: center;
    background: rgba(8, 12, 18, .72);
    color: #d7e2f0;
    display: flex;
    font-size: .78rem;
    font-weight: 800;
    gap: .55rem;
    inset: 0;
    justify-content: center;
    position: absolute;
    z-index: 20;
}

.lancamento-results-loading .spinner-border {
    color: #ffc000;
    height: 1.05rem;
    width: 1.05rem;
}

.lancamento-filter-backdrop {
    background: rgba(2, 6, 12, .62);
    inset: 0;
    position: fixed;
    touch-action: none;
    z-index: 1075;
}

.lancamento-filter-drawer {
    background: #0d131d;
    border-left: 1px solid rgba(148, 163, 184, .18);
    box-shadow: -18px 0 48px rgba(0, 0, 0, .34);
    color: #d7e2f0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    height: 100dvh;
    max-width: 100%;
    position: fixed;
    right: 0;
    top: 0;
    width: 440px;
    z-index: 1080;
}

.lancamento-filter-header {
    align-items: flex-start;
    border-bottom: 1px solid rgba(148, 163, 184, .12);
    display: flex;
    justify-content: space-between;
    padding: 1.25rem;
}

.lancamento-filter-header h2 {
    color: #edf4ff;
    font-size: 1rem;
    font-weight: 850;
    margin: 0 0 .2rem;
}

.lancamento-filter-header span {
    color: #8fb7ff;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.lancamento-filter-close {
    align-items: center;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(148, 163, 184, .16);
    border-radius: 8px;
    color: #c7d4e4;
    display: inline-flex;
    height: 34px;
    justify-content: center;
    width: 34px;
}

.lancamento-filter-body {
    overscroll-behavior: contain;
    overflow-y: auto;
    padding: 1.25rem;
}

.lancamento-filter-section + .lancamento-filter-section {
    border-top: 1px solid rgba(148, 163, 184, .12);
    margin-top: 1.25rem;
    padding-top: 1.25rem;
}

.lancamento-filter-section h3 {
    color: #dce8f7;
    font-size: .84rem;
    font-weight: 800;
    margin-bottom: .85rem;
}

.lancamento-filter-presets {
    display: grid;
    gap: .45rem;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.lancamento-filter-preset {
    background: rgba(255, 255, 255, .035);
    border: 1px solid rgba(148, 163, 184, .14);
    border-radius: 7px;
    color: #aebed1;
    font-size: .66rem;
    font-weight: 850;
    min-height: 34px;
}

.lancamento-filter-preset.active {
    background: #ffc000;
    border-color: #ffc000;
    color: #111827;
}

.lancamento-filter-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lancamento-filter-field-full {
    grid-column: 1 / -1;
}

.lancamento-filter-grid label {
    color: #9fb0c5;
    display: block;
    font-size: .72rem;
    font-weight: 800;
    margin-bottom: .35rem;
}

.lancamento-filter-grid .form-control,
.lancamento-filter-grid .form-select {
    background-color: rgba(255, 255, 255, .04);
    border: 1px solid rgba(148, 163, 184, .16);
    border-radius: 8px;
    color: #edf4ff;
    color-scheme: dark;
    min-height: 40px;
}

.lancamento-filter-grid .form-select option {
    background: #111827;
    color: #edf4ff;
}

.lancamento-filter-validation {
    color: #ffbd66;
    font-size: .72rem;
    margin-top: .65rem;
}

.lancamento-filter-footer {
    border-top: 1px solid rgba(148, 163, 184, .12);
    display: flex;
    justify-content: flex-end;
    padding: 1rem 1.25rem;
}

.lancamentos-operation-totals {
    background: rgba(255, 255, 255, .025);
    border-top: 1px solid rgba(148, 163, 184, .14);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: .85rem 1rem;
}

.lancamentos-operation-total {
    display: flex;
    flex-direction: column;
    gap: .18rem;
    padding: 0 1rem;
}

.lancamentos-operation-total + .lancamentos-operation-total {
    border-left: 1px solid rgba(148, 163, 184, .12);
}

.lancamentos-operation-total span {
    color: #8ea0b6;
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.lancamentos-operation-total strong {
    color: #edf4ff;
    font-size: .9rem;
    font-weight: 850;
}

.lancamentos-operation-total.is-purchase strong {
    color: #35d86f;
}

.lancamentos-operation-total.is-sale strong {
    color: #ff6875;
}

.lancamentos-operation-total.is-cost strong {
    color: #ffc000;
}

.lancamentos-premium-action,
.lancamentos-premium-primary-action,
.lancamentos-premium-icon-button {
    align-items: center;
    border-radius: 8px !important;
    display: inline-flex;
    font-weight: 800;
    gap: .35rem;
    justify-content: center;
}

.lancamentos-premium-action {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(148, 163, 184, 0.2) !important;
    color: #cfe1f7 !important;
}

.lancamentos-premium-action:hover {
    background: rgba(255, 192, 0, 0.12) !important;
    border-color: rgba(255, 192, 0, 0.45) !important;
    color: #ffc000 !important;
}

.lancamentos-premium-action:disabled,
.lancamentos-premium-primary-action:disabled,
.lancamentos-premium-icon-button:disabled {
    cursor: wait;
    opacity: .72;
    transform: none !important;
}

.lancamentos-premium-primary-action,
.lancamentos-premium-icon-button.is-primary {
    background: #ffc000 !important;
    border-color: #ffc000 !important;
    color: #172033 !important;
}

.lancamentos-premium-icon-button {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(148, 163, 184, 0.2) !important;
    color: #cfe1f7 !important;
    align-items: center;
    border-radius: 8px;
    display: inline-flex;
    font-weight: 900;
    min-height: 2.2rem;
    min-width: 3rem;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.lancamentos-premium-table .badge {
    border-radius: 999px;
    font-size: .68rem;
    letter-spacing: .03rem;
    padding: .4rem .6rem;
}

.lancamentos-premium-mobile-list {
    padding-top: .85rem;
}

.lancamentos-premium-operation-card {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 8px;
    padding: .9rem;
}

.lancamentos-premium-operation-icon {
    align-items: center;
    background: rgba(111, 98, 216, 0.92);
    border-radius: 999px;
    color: #ffffff;
    display: inline-flex;
    flex: 0 0 auto;
    height: 30px;
    justify-content: center;
    width: 30px;
}

.lancamentos-premium-operation-code {
    color: #edf4ff;
    font-size: .88rem;
    font-weight: 850;
    max-width: 11rem;
}

.lancamentos-premium-operation-subtitle,
.lancamentos-premium-operation-date {
    color: #8fa0b7;
    font-size: .72rem;
}

.lancamentos-premium-operation-grid {
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lancamentos-premium-operation-grid div {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.10);
    border-radius: 8px;
    padding: .65rem;
}

.lancamentos-premium-operation-grid span {
    color: #8fa0b7;
    display: block;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .06rem;
    margin-bottom: .18rem;
    text-transform: uppercase;
}

.lancamentos-premium-operation-grid strong {
    color: #edf4ff;
    display: block;
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
}

.lancamentos-premium-icon-button.is-success {
    background: #22c836 !important;
    border-color: #22c836 !important;
    color: #ffffff !important;
}

.lancamentos-premium-icon-button.is-danger {
    background: #ff4f63 !important;
    border-color: #ff4f63 !important;
    color: #ffffff !important;
}

.lancamentos-premium-mobile-empty {
    background: rgba(255, 255, 255, 0.035);
    border: 1px dashed rgba(148, 163, 184, 0.18);
    border-radius: 8px;
    color: #8fa0b7;
    font-size: .82rem;
    padding: 1rem;
}

.lancamentos-premium-mobile-pagination {
    align-items: center;
    color: #8fa0b7;
    display: flex;
    font-size: .78rem;
    font-weight: 800;
    gap: .65rem;
    justify-content: flex-end;
    margin-top: .35rem;
}

.lancamentos-premium-pagination-button {
    align-items: center;
    background: #101722 !important;
    border: 1px solid rgba(255, 255, 255, 0.085) !important;
    border-radius: 8px !important;
    color: #cfe1f7 !important;
    display: inline-flex;
    height: 34px;
    justify-content: center;
    width: 34px;
}

.lancamentos-premium-pagination-button:hover:not(:disabled) {
    background: rgba(255, 192, 0, 0.12) !important;
    border-color: #ffc000 !important;
    color: #ffc000 !important;
}

.lancamentos-premium-pagination-button:disabled {
    opacity: .45;
}

.lancamentos-premium-modal-header {
    background: rgba(255, 255, 255, 0.025) !important;
    border-bottom: 1px solid rgba(148, 163, 184, 0.12) !important;
}

.lancamentos-premium-modal-content .modal-title {
    color: #edf4ff;
    font-weight: 850;
}

.lancamentos-premium-modal-content label {
    color: #9fb0c5;
    font-size: .78rem;
    font-weight: 800;
    margin-bottom: .35rem;
}

.lancamentos-premium-modal-content .modal-footer {
    border-top-color: rgba(148, 163, 184, 0.12);
}

.lancamentos-premium-segment {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 8px;
    padding: .3rem;
}

.lancamentos-premium-segment .toggle-button {
    border-radius: 7px !important;
}

.lancamentos-premium-total-card {
    background: rgba(255, 192, 0, 0.10) !important;
    border: 1px solid rgba(255, 192, 0, 0.24) !important;
    color: #edf4ff;
}

.lancamentos-premium-modal-content .ts-wrapper .ts-control {
    background: rgba(255, 255, 255, 0.04) !important;
    border-color: rgba(148, 163, 184, 0.14) !important;
    border-radius: 8px !important;
    color: #d7e2f0 !important;
}

.lancamentos-premium-modal-content .ts-dropdown {
    background: #111827 !important;
    border-color: rgba(148, 163, 184, 0.16) !important;
    color: #d7e2f0 !important;
}

.lancamentos-premium-modal-content .ts-dropdown .active {
    background: rgba(255, 192, 0, 0.14) !important;
    color: #ffc000 !important;
}

body.light-theme .lancamentos-premium-kicker {
    color: #4f76ad;
}

body.light-theme .lancamentos-premium-card,
body.light-theme .lancamentos-premium-modal-content {
    background: #ffffff !important;
    border-color: rgba(15, 23, 42, 0.1) !important;
    box-shadow: 0 16px 38px rgba(15, 23, 42, .08) !important;
    color: #172033;
}

body.light-theme .lancamentos-premium-toolbar,
body.light-theme .lancamentos-premium-modal-header,
body.light-theme .lancamentos-premium-segment {
    background: #f8fafc !important;
    border-color: rgba(15, 23, 42, 0.09) !important;
}

body.light-theme .lancamento-filter-summary {
    color: #5f6f85;
}

body.light-theme .lancamento-filter-summary strong {
    color: #172033;
}

body.light-theme .lancamento-filter-open {
    background: #ffffff !important;
    border-color: rgba(15, 23, 42, .14) !important;
    color: #405169 !important;
}

body.light-theme .lancamento-results-loading {
    background: rgba(248, 250, 252, .78);
    color: #26364a;
}

body.light-theme .lancamento-filter-backdrop {
    background: rgba(15, 23, 42, .34);
}

body.light-theme .lancamento-filter-drawer {
    background: #ffffff;
    border-left-color: rgba(15, 23, 42, .12);
    box-shadow: -18px 0 48px rgba(15, 23, 42, .14);
    color: #26364a;
}

body.light-theme .lancamento-filter-header,
body.light-theme .lancamento-filter-section + .lancamento-filter-section,
body.light-theme .lancamento-filter-footer {
    border-color: rgba(15, 23, 42, .1);
}

body.light-theme .lancamento-filter-header h2,
body.light-theme .lancamento-filter-section h3 {
    color: #172033;
}

body.light-theme .lancamento-filter-header span {
    color: #4f76ad;
}

body.light-theme .lancamento-filter-close,
body.light-theme .lancamento-filter-preset {
    background: #f8fafc;
    border-color: rgba(15, 23, 42, .12);
    color: #405169;
}

body.light-theme .lancamento-filter-preset.active {
    background: #ffc000;
    border-color: #ffc000;
    color: #172033;
}

body.light-theme .lancamento-filter-grid label {
    color: #5f6f85;
}

body.light-theme .lancamento-filter-grid .form-control,
body.light-theme .lancamento-filter-grid .form-select {
    background-color: #ffffff;
    border-color: rgba(15, 23, 42, .14);
    color: #172033;
    color-scheme: light;
}

body.light-theme .lancamento-filter-grid .form-select option {
    background: #ffffff;
    color: #172033;
}

body.light-theme .lancamentos-operation-totals {
    background: #f8fafc;
    border-top-color: rgba(15, 23, 42, .1);
}

body.light-theme .lancamentos-operation-total + .lancamentos-operation-total {
    border-color: rgba(15, 23, 42, .1);
}

body.light-theme .lancamentos-operation-total span {
    color: #5f6f85;
}

body.light-theme .lancamentos-premium-control {
    background-color: #ffffff !important;
    border-color: rgba(15, 23, 42, 0.12) !important;
    color: #172033 !important;
    color-scheme: light;
}

body.light-theme .lancamentos-premium-control option {
    background: #ffffff;
    color: #172033;
}

body.light-theme .lancamentos-premium-search-addon,
body.light-theme .lancamentos-premium-action,
body.light-theme .lancamentos-premium-icon-button {
    background: #ffffff !important;
    border-color: rgba(15, 23, 42, 0.12) !important;
    color: #405169 !important;
}

body.light-theme .lancamentos-premium-action:hover,
body.light-theme .lancamentos-premium-icon-button:hover {
    background: rgba(255, 192, 0, 0.12) !important;
    border-color: #ffc000 !important;
    color: #a66b00 !important;
}

body.light-theme .lancamentos-premium-modal-content .modal-title,
body.light-theme .lancamentos-premium-total-card {
    color: #172033;
}

body.light-theme .lancamentos-premium-modal-content label {
    color: #5f6f85;
}

body.light-theme .lancamentos-premium-total-card {
    background: rgba(255, 192, 0, 0.14) !important;
    border-color: rgba(181, 122, 0, 0.22) !important;
}

body.light-theme .lancamentos-premium-operation-card,
body.light-theme .lancamentos-premium-operation-grid div,
body.light-theme .lancamentos-premium-mobile-empty {
    background: #f8fafc;
    border-color: rgba(15, 23, 42, 0.09);
}

body.light-theme .lancamentos-premium-operation-code,
body.light-theme .lancamentos-premium-operation-grid strong {
    color: #172033;
}

body.light-theme .lancamentos-premium-operation-subtitle,
body.light-theme .lancamentos-premium-operation-date,
body.light-theme .lancamentos-premium-operation-grid span,
body.light-theme .lancamentos-premium-mobile-empty,
body.light-theme .lancamentos-premium-mobile-pagination {
    color: #5f6f85;
}

body.light-theme .lancamentos-premium-pagination-button {
    background: #ffffff !important;
    border-color: rgba(181, 122, 0, 0.22) !important;
    color: #405169 !important;
}

body.light-theme .lancamentos-premium-pagination-button:hover:not(:disabled) {
    background: rgba(255, 192, 0, 0.16) !important;
    border-color: #ffc000 !important;
    color: #a66b00 !important;
}

body.light-theme .lancamentos-premium-modal-content .ts-wrapper .ts-control,
body.light-theme .lancamentos-premium-modal-content .ts-dropdown {
    background: #ffffff !important;
    border-color: rgba(15, 23, 42, 0.12) !important;
    color: #172033 !important;
}

body.light-theme .lancamentos-premium-modal-content .ts-dropdown .active {
    background: rgba(255, 192, 0, 0.16) !important;
    color: #a66b00 !important;
}

@media (max-width: 767.98px) {
    .lancamentos-premium-header {
        margin-bottom: .5rem !important;
    }

    .lancamentos-premium-toolbar {
        align-items: stretch !important;
        flex-wrap: wrap;
        gap: .75rem;
    }

    .lancamento-filter-summary {
        justify-content: space-between;
        margin-right: 0 !important;
        width: 100%;
    }

    .lancamento-filter-open {
        margin-left: auto;
    }

    .lancamento-filter-drawer {
        width: 100%;
    }

    .lancamento-filter-header,
    .lancamento-filter-body {
        padding: 1rem;
    }

    .lancamento-filter-footer {
        padding: .85rem 1rem calc(.85rem + env(safe-area-inset-bottom));
    }

    .lancamento-filter-footer .btn {
        width: 100%;
    }

    .lancamento-filter-presets {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lancamento-filter-grid {
        grid-template-columns: 1fr;
    }

    .lancamento-filter-field-full {
        grid-column: auto;
    }

    .lancamentos-operation-totals {
        gap: .7rem;
        grid-template-columns: 1fr;
    }

    .lancamentos-operation-total {
        align-items: center;
        flex-direction: row;
        justify-content: space-between;
        padding: 0;
    }

    .lancamentos-operation-total + .lancamentos-operation-total {
        border-left: 0;
        border-top: 1px solid rgba(148, 163, 184, .12);
        padding-top: .7rem;
    }

    .lancamentos-premium-search {
        max-width: none;
    }

    .lancamentos-premium-primary-action {
        min-height: 34px;
    }
}

/* ---------------------------------------
   BEGIN - Dashboard Rentabilidade Premium
------------------------------------------ */
.rentabilidade-premium-page {
    padding-bottom: 0rem;
}

.rentabilidade-premium-header {
    align-items: center;
    justify-content: space-between;
}

.rentabilidade-premium-kicker {
    color: #8fb7ff;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .22rem;
    margin-bottom: .35rem;
}

.rentabilidade-premium-mobile-header {
    background: linear-gradient(180deg, #111827 0%, #0c1119 100%) !important;
    border: 1px solid rgba(148, 163, 184, 0.14) !important;
    border-radius: 8px;
    box-shadow: 0 18px 46px rgba(0, 0, 0, .26);
    padding: 1rem;
}

.rentabilidade-premium-toggle {
    align-items: center;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 8px;
    color: #d7e2f0;
    display: inline-flex;
    gap: .65rem;
    padding: .65rem .85rem;
}

.rentabilidade-premium-toggle i {
    color: #ffc000;
}

.rentabilidade-premium-mobile-switch {
    align-items: center;
    display: inline-flex;
    gap: .4rem;
    padding-left: 0 !important;
    white-space: nowrap;
}

.rentabilidade-premium-mobile-switch .form-check-input {
    flex: 0 0 auto;
    margin-left: 0 !important;
    margin-top: 0 !important;
}

.rentabilidade-premium-mobile-switch .form-check-label {
    color: #d7e2f0;
    font-size: .68rem;
    line-height: 1;
}

.rentabilidade-premium-kpi-card,
.rentabilidade-premium-chart-card,
.rentabilidade-premium-benchmark-card {
    background: linear-gradient(180deg, #111827 0%, #0c1119 100%) !important;
    border: 1px solid rgba(148, 163, 184, 0.14) !important;
    border-radius: 8px !important;
    box-shadow: 0 18px 46px rgba(0, 0, 0, .26) !important;
    overflow: hidden;
}

.rentabilidade-premium-kpi-card {
    position: relative;
}

.rentabilidade-premium-kpi-card::before {
    background: #8fb7ff;
    content: "";
    height: 3px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.rentabilidade-premium-kpi-card.is-positive::before {
    background: #22c836;
}

.rentabilidade-premium-kpi-card.is-negative::before {
    background: #ff4f63;
}

.rentabilidade-premium-kpi-card .card-body {
    padding: 1rem;
}

.rentabilidade-premium-kpi-label {
    color: #9fb0c5;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08rem;
    text-transform: uppercase;
}

.rentabilidade-premium-kpi-value {
    color: #edf4ff;
    font-size: 1.35rem;
    font-weight: 850;
    font-variant-numeric: tabular-nums;
    line-height: 1.15;
}

.rentabilidade-premium-kpi-subtitle,
.rentabilidade-premium-kpi-info {
    color: #8fa0b7;
}

.rentabilidade-premium-kpi-info {
    font-size: .95rem;
}

.rentabilidade-premium-chart-card {
    padding: 2rem;
}

.rentabilidade-premium-chart-header {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: .75rem;
}

.rentabilidade-premium-section-title {
    align-items: center;
    color: #edf4ff !important;
    display: inline-flex;
    font-size: .88rem;
    font-weight: 850;
    gap: .55rem;
    text-transform: uppercase;
}

.rentabilidade-premium-section-icon {
    align-items: center;
    background: rgba(255, 192, 0, 0.12);
    border: 1px solid rgba(255, 192, 0, 0.28);
    border-radius: 8px;
    color: #ffc000;
    display: inline-flex;
    height: 30px;
    justify-content: center;
    width: 30px;
}

.rentabilidade-premium-filter i {
    color: #8fb7ff;
    z-index: 2;
}

.rentabilidade-premium-select {
    background-color: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(148, 163, 184, 0.14) !important;
    border-radius: 8px !important;
    color: #d7e2f0 !important;
    color-scheme: dark;
    min-height: 38px;
}

.rentabilidade-premium-select:focus {
    background-color: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(255, 192, 0, 0.42) !important;
    box-shadow: 0 0 0 .18rem rgba(255, 192, 0, .12) !important;
}

.rentabilidade-premium-select option {
    background: #111827;
    color: #d7e2f0;
}

.rentabilidade-premium-chart-surface {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(148, 163, 184, 0.12) !important;
    border-radius: 8px;
    min-height: 372px;
    padding: .75rem;
}

.rentabilidade-premium-chart-surface .apexcharts-canvas,
.rentabilidade-premium-chart-surface svg {
    overflow: visible;
}

.rentabilidade-premium-chart-surface .apexcharts-line-series .apexcharts-series path,
.rentabilidade-premium-chart-surface .apexcharts-line {
    opacity: 1 !important;
    stroke-opacity: 1 !important;
}

.rentabilidade-premium-benchmark-card {
    padding-top: 1rem;
    margin-top: 1.5rem;
}

.rentabilidade-premium-benchmark-card .rentabilidade-premium-section-title {
    padding: 0 1rem;
}

.rentabilidade-premium-benchmark-metric {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: .85rem;
}

.rentabilidade-premium-benchmark-metric span {
    color: #9fb0c5;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .06rem;
    text-transform: uppercase;
}

.rentabilidade-premium-benchmark-metric strong {
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
}

.rentabilidade-premium-benchmark-text,
.rentabilidade-premium-empty-state {
    color: #cfe1f7;
    font-size: .9rem;
    line-height: 1.7;
}

body.light-theme .rentabilidade-premium-kicker {
    color: #4f76ad;
}

body.light-theme .rentabilidade-premium-mobile-header,
body.light-theme .rentabilidade-premium-kpi-card,
body.light-theme .rentabilidade-premium-chart-card,
body.light-theme .rentabilidade-premium-benchmark-card {
    background: #ffffff !important;
    border-color: rgba(15, 23, 42, 0.1) !important;
    box-shadow: 0 16px 38px rgba(15, 23, 42, .08) !important;
}

body.light-theme .rentabilidade-premium-toggle,
body.light-theme .rentabilidade-premium-chart-surface,
body.light-theme .rentabilidade-premium-benchmark-metric {
    background: #f8fafc !important;
    border-color: rgba(15, 23, 42, 0.09) !important;
}

body.light-theme .rentabilidade-premium-toggle,
body.light-theme .rentabilidade-premium-section-title,
body.light-theme .rentabilidade-premium-kpi-value,
body.light-theme .rentabilidade-premium-benchmark-text,
body.light-theme .rentabilidade-premium-empty-state {
    color: #172033 !important;
}

body.light-theme .rentabilidade-premium-kpi-label,
body.light-theme .rentabilidade-premium-kpi-subtitle,
body.light-theme .rentabilidade-premium-kpi-info,
body.light-theme .rentabilidade-premium-benchmark-metric span,
body.light-theme .rentabilidade-premium-mobile-switch .form-check-label {
    color: #5f6f85;
}

body.light-theme .rentabilidade-premium-select {
    background-color: #ffffff !important;
    border-color: rgba(15, 23, 42, 0.12) !important;
    color: #172033 !important;
    color-scheme: light;
}

body.light-theme .rentabilidade-premium-select option {
    background: #ffffff;
    color: #172033;
}

@media (max-width: 767.98px) {
    .rentabilidade-premium-mobile-header {
        border-radius: 8px;
    }

    .rentabilidade-premium-chart-card {
        padding: 1.25rem 1.25rem 1.25rem 1.25rem;
    }

    .rentabilidade-premium-chart-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .rentabilidade-premium-filter,
    .rentabilidade-premium-filter select {
        width: 100% !important;
    }

    .rentabilidade-premium-chart-surface {
        min-height: 330px;
        padding: .5rem;
    }

    .rentabilidade-premium-kpi-card .card-body {
        padding: .85rem;
    }

    .rentabilidade-premium-kpi-value {
        font-size: 1.1rem;
    }

    .rentabilidade-premium-kpi-section {
        margin-bottom: 1.2rem !important;
    }
}

/* -----------------------------------
   BEGIN - Dashboard Carteiras Premium
-------------------------------------- */
.dashboard-carteiras-premium-page {
    padding-bottom: 0rem;
}

.dashboard-carteiras-premium-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding-top: .5rem;
}

.dashboard-carteiras-premium-kicker {
    color: #8fb7ff;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .18rem;
    margin-bottom: .3rem;
    text-transform: uppercase;
}

.dashboard-carteiras-premium-selector-card,
.dashboard-carteiras-premium-chart-card,
.dashboard-carteiras-premium-top-card,
.dashboard-carteiras-premium-asset-card {
    background: linear-gradient(180deg, #111827 0%, #0c1119 100%) !important;
    border: 1px solid rgba(148, 163, 184, 0.14) !important;
    border-radius: 8px !important;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.22) !important;
    color: #d7e2f0;
    overflow: hidden;
}

.dashboard-carteiras-premium-selector-card .card-body {
    padding: .9rem;
}

.dashboard-carteiras-premium-control {
    background-color: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    border-radius: 8px !important;
    color: #d7e2f0 !important;
    color-scheme: dark;
}

.dashboard-carteiras-premium-control::placeholder {
    color: #6f7d8f;
}

.dashboard-carteiras-premium-control:focus {
    background-color: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(255, 192, 0, 0.42) !important;
    box-shadow: 0 0 0 .18rem rgba(255, 192, 0, 0.12) !important;
    color: #edf4ff !important;
}

.dashboard-carteiras-premium-control option {
    background: #111827;
    color: #d7e2f0;
}

.dashboard-carteiras-premium-search-addon {
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    border-radius: 8px !important;
    color: #93a0b2 !important;
}

.dashboard-carteiras-premium-tab {
    align-items: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.075);
    border-radius: 8px;
    color: #d7e2f0;
    display: inline-flex;
    font-weight: 900;
    min-height: 2.4rem;
    padding: .5rem .9rem;
}

.dashboard-carteiras-premium-tab.active,
.dashboard-carteiras-premium-tab:hover {
    background: rgba(255, 192, 0, 0.14);
    border-color: rgba(255, 192, 0, 0.34);
    color: #ffc000;
}

.dashboard-carteiras-premium-chart-card {
    padding: 1rem;
}

.dashboard-carteiras-premium-chart-surface {
    align-items: center;
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(148, 163, 184, 0.12) !important;
    border-radius: 8px !important;
    display: flex;
    justify-content: center;
    min-height: 340px;
    overflow: hidden;
    width: 100%;
}

.dashboard-carteiras-premium-chart-surface .apexcharts-canvas,
.dashboard-carteiras-premium-chart-surface svg {
    overflow: visible;
}

.dashboard-carteiras-premium-chart-surface .apexcharts-legend {
    max-height: 250px !important;
    overflow: hidden !important;
    padding-left: 1rem;
}

.dashboard-carteiras-premium-chart-surface .apexcharts-legend-text {
    color: #aeb9c8 !important;
    font-size: 11px !important;
    line-height: 1.25;
    padding-left: 18px !important;
}

.dashboard-carteiras-premium-mobile-table {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(148, 163, 184, 0.12) !important;
    border-radius: 8px !important;
    color: #d7e2f0;
}

.dashboard-carteiras-premium-mobile-asset {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(148, 163, 184, 0.12) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    color: #d7e2f0 !important;
}

.dashboard-carteiras-premium-mobile-asset .company-name {
    display: block;
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-carteiras-premium-top-card {
    padding: 1rem;
}

.dashboard-carteiras-premium-top-title {
    margin-bottom: 0;
}

.dashboard-carteiras-premium-top-item {
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
    color: #d7e2f0;
    min-height: 2.45rem;
}

.dashboard-carteiras-premium-top-item:last-child {
    border-bottom: 0;
}

.dashboard-carteiras-premium-asset-header {
    background: #151b27 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.075) !important;
    padding: .85rem 1rem !important;
}

.dashboard-carteiras-premium-asset-header a {
    color: inherit;
    text-decoration: none;
}

.dashboard-carteiras-premium-asset-title {
    color: #d7e2f0 !important;
    font-size: .92rem !important;
    font-weight: 850;
    margin-bottom: 0;
}

.dashboard-carteiras-premium-asset-title h5 {
    color: #edf4ff !important;
    font-size: .95rem;
    font-weight: 900;
}

.dashboard-carteiras-premium-asset-body {
    background: #0b1119;
    padding-top: 0;
}

.dashboard-carteiras-premium-table {
    color: #cfe1f7;
    margin-bottom: 0;
    overflow: hidden;
}

.dashboard-carteiras-premium-table-shell,
.dashboard-carteiras-premium-asset-body .dataTables_wrapper,
.dashboard-carteiras-premium-asset-body .dataTables_scroll,
.dashboard-carteiras-premium-asset-body .dataTables_scrollBody {
    overflow-x: hidden !important;
}

.dashboard-carteiras-premium-table,
.dashboard-carteiras-premium-asset-body table.dataTable {
    width: 100% !important;
}

.dashboard-carteiras-premium-table thead th {
    background: #252537 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.34) !important;
    color: #aeb9c8 !important;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08rem;
    padding: 1rem .85rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.dashboard-carteiras-premium-table tbody td {
    background: #101722 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.36) !important;
    color: #c5d0de !important;
    font-size: .86rem;
    font-variant-numeric: tabular-nums;
    padding: .78rem .85rem;
    vertical-align: middle;
}

.dashboard-carteiras-premium-table tbody tr:hover td {
    background: #151d2a !important;
}

.dashboard-carteiras-premium-table tbody tr:last-child td {
    border-bottom-color: rgba(255, 255, 255, 0.5) !important;
}

.dashboard-carteiras-premium-sector-tabs-wrapper {
    margin-top: 1rem;
}

.dashboard-carteiras-premium-sector-tabs {
    margin-bottom: .2rem !important;
}

.dashboard-carteiras-premium-asset-body .dataTables_wrapper,
.dashboard-carteiras-premium-asset-body .dataTables_info {
    color: #d7e2f0;
}

.dashboard-carteiras-premium-asset-body .dataTables_paginate .page-link {
    align-items: center;
    background: #101722 !important;
    border: 1px solid rgba(255, 255, 255, 0.085) !important;
    border-radius: 8px !important;
    color: #cfe1f7 !important;
    display: inline-flex;
    height: 2.15rem;
    justify-content: center;
    min-width: 2.15rem;
}

.dashboard-carteiras-premium-asset-body .dataTables_paginate li.active .page-link,
.dashboard-carteiras-premium-asset-body .dataTables_paginate .page-link:hover {
    background: rgba(255, 192, 0, 0.12) !important;
    border-color: #ffc000 !important;
    color: #ffc000 !important;
}

body.light-theme .dashboard-carteiras-premium-kicker {
    color: #4f76ad;
}

body.light-theme .dashboard-carteiras-premium-selector-card,
body.light-theme .dashboard-carteiras-premium-chart-card,
body.light-theme .dashboard-carteiras-premium-top-card,
body.light-theme .dashboard-carteiras-premium-asset-card {
    background: #ffffff !important;
    border-color: rgba(15, 23, 42, 0.1) !important;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08) !important;
    color: #172033;
}

body.light-theme .dashboard-carteiras-premium-control,
body.light-theme .dashboard-carteiras-premium-search-addon,
body.light-theme .dashboard-carteiras-premium-tab,
body.light-theme .dashboard-carteiras-premium-chart-surface,
body.light-theme .dashboard-carteiras-premium-mobile-table,
body.light-theme .dashboard-carteiras-premium-mobile-asset {
    background: #f8fafc !important;
    border-color: rgba(15, 23, 42, 0.09) !important;
    color: #172033 !important;
}

body.light-theme .dashboard-carteiras-premium-control {
    color-scheme: light;
}

body.light-theme .dashboard-carteiras-premium-control:focus {
    background-color: #ffffff !important;
    border-color: rgba(181, 122, 0, 0.34) !important;
    box-shadow: 0 0 0 .18rem rgba(255, 192, 0, 0.16) !important;
    color: #172033 !important;
}

body.light-theme .dashboard-carteiras-premium-control option {
    background: #ffffff;
    color: #172033;
}

body.light-theme .dashboard-carteiras-premium-tab.active,
body.light-theme .dashboard-carteiras-premium-tab:hover {
    background: rgba(255, 192, 0, 0.16) !important;
    border-color: rgba(181, 122, 0, 0.28) !important;
    color: #a66b00 !important;
}

body.light-theme .dashboard-carteiras-premium-chart-surface .apexcharts-legend-text {
    color: #405169 !important;
}

body.light-theme .dashboard-carteiras-premium-top-item {
    border-bottom-color: rgba(15, 23, 42, 0.09);
    color: #172033;
}

body.light-theme .dashboard-carteiras-premium-asset-header {
    background: #f8fafc !important;
    border-color: rgba(15, 23, 42, 0.08) !important;
}

body.light-theme .dashboard-carteiras-premium-asset-title,
body.light-theme .dashboard-carteiras-premium-asset-title h5 {
    color: #172033 !important;
}

body.light-theme .dashboard-carteiras-premium-asset-body {
    background: #ffffff;
}

body.light-theme .dashboard-carteiras-premium-table thead th {
    background: #eef2f7 !important;
    border-bottom-color: rgba(15, 23, 42, 0.18) !important;
    color: #475569 !important;
}

body.light-theme .dashboard-carteiras-premium-table tbody td {
    background: #ffffff !important;
    border-bottom-color: rgba(15, 23, 42, 0.08) !important;
    color: #172033 !important;
}

body.light-theme .dashboard-carteiras-premium-table tbody tr:hover td {
    background: #f8fafc !important;
}

body.light-theme .dashboard-carteiras-premium-asset-body .dataTables_wrapper,
body.light-theme .dashboard-carteiras-premium-asset-body .dataTables_info {
    color: #172033;
}

body.light-theme .dashboard-carteiras-premium-asset-body .dataTables_paginate .page-link {
    background: #ffffff !important;
    border-color: rgba(181, 122, 0, 0.22) !important;
    color: #405169 !important;
}

body.light-theme .dashboard-carteiras-premium-asset-body .dataTables_paginate li.active .page-link,
body.light-theme .dashboard-carteiras-premium-asset-body .dataTables_paginate .page-link:hover {
    background: rgba(255, 192, 0, 0.16) !important;
    border-color: #ffc000 !important;
    color: #a66b00 !important;
}

@media (max-width: 991.98px) {
    .dashboard-carteiras-premium-chart-surface {
        min-height: auto;
    }
}

@media (max-width: 767.98px) {
    .dashboard-carteiras-premium-header {
        margin-bottom: .8rem;
        padding-top: .25rem;
    }

    .dashboard-carteiras-premium-asset-header {
        padding: .75rem !important;
    }

    .dashboard-carteiras-premium-asset-title {
        font-size: .8rem !important;
    }

    .dashboard-carteiras-premium-table thead th,
    .dashboard-carteiras-premium-table tbody td {
        padding: .62rem .5rem;
    }

    .dashboard-carteiras-premium-top-card {
        margin-top: 0rem;
    }
}

/* -----------------------------------
   BEGIN - Dashboard Proventos Premium
-------------------------------------- */
.proventos-premium-page {

}

.proventos-premium-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .5rem;
}

.proventos-premium-kicker {
    color: #8fb7ff;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .18rem;
    margin-bottom: .3rem;
    text-transform: uppercase;
}

.proventos-premium-panel,
.proventos-premium-calendar-card,
.proventos-premium-forecast-stat,
.proventos-premium-history-year {
    background: linear-gradient(180deg, #111827 0%, #0c1119 100%) !important;
    border: 1px solid rgba(148, 163, 184, 0.14) !important;
    border-radius: 8px !important;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.22) !important;
    color: #d7e2f0;
}

.proventos-premium-stat-card {
    background: linear-gradient(135deg, #111827 0%, #121b2b 100%) !important;
    border: 1px solid rgba(148, 163, 184, 0.14) !important;
    /* Borda superior de destaque: azul (padrao), igual ao card "Conferencia Fiscal". */
    border-top: 3px solid cornflowerblue !important;
    border-radius: 8px !important;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.18) !important;
    min-height: 92px;
}

.proventos-premium-stat-card.card-total-recebido {
    /* background: linear-gradient(135deg, rgba(34, 200, 54, .95) 0%, rgba(22, 146, 44, .9) 100%) !important; */
    /* Borda superior verde para o card "Total Recebido (YTD)". */
    border-top-color: #20d65a !important;
}

.proventos-premium-stat-icon {
    align-items: center;
    border-radius: 8px;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.proventos-premium-stat-icon i {
    font-size: 1.35rem !important;
}

.proventos-premium-stat-value {
    color: #f8fbff !important;
    font-variant-numeric: tabular-nums;
}

.proventos-premium-stat-label {
    color: #9fb0c5 !important;
    font-size: .7rem !important;
    font-weight: 800;
    letter-spacing: .06rem;
    text-transform: uppercase;
}

.proventos-premium-stat-card.card-total-recebido .proventos-premium-stat-label,
.proventos-premium-stat-card.card-total-recebido .proventos-premium-stat-value {
    color: #ffffff !important;
}

.proventos-classes-12m-card {
}

.proventos-classes-12m-subtitle {
    color: #9fb0c5;
    font-size: .78rem;
    line-height: 1.4;
}

.proventos-classes-12m-total {
    align-items: flex-end;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 150px;
    padding: .7rem .9rem;
}

.proventos-classes-12m-total span,
.proventos-classes-12m-caption {
    color: #8fa0b7;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .06rem;
    text-transform: uppercase;
}

.proventos-classes-12m-total strong {
    color: #f8fbff;
    font-size: 1.05rem;
    font-variant-numeric: tabular-nums;
}

.proventos-classes-12m-mini-card {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 8px;
    min-height: 94px;
    padding: .95rem;
}

.proventos-classes-12m-icon {
    align-items: center;
    background: rgba(255, 192, 0, 0.1);
    border: 1px solid rgba(255, 192, 0, 0.3);
    border-radius: 8px;
    color: #ffc000;
    display: inline-flex;
    flex: 0 0 auto;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.proventos-classes-12m-icon.class-acoes-br {
    background: rgba(34, 197, 94, 0.12);
    border-color: rgba(34, 197, 94, 0.34);
    color: #22c55e;
}

.proventos-classes-12m-icon.class-acoes-us {
    background: rgba(84, 153, 254, 0.12);
    border-color: rgba(84, 153, 254, 0.34);
    color: #5499fe;
}

.proventos-classes-12m-icon.class-fiis {
    background: rgba(124, 92, 255, 0.14);
    border-color: rgba(124, 92, 255, 0.34);
    color: #8b7cff;
}

.proventos-classes-12m-icon.class-etfs {
    background: rgba(14, 165, 233, 0.12);
    border-color: rgba(14, 165, 233, 0.34);
    color: #38bdf8;
}

.proventos-classes-12m-icon.class-rf-br {
    background: rgba(255, 192, 0, 0.12);
    border-color: rgba(255, 192, 0, 0.34);
    color: #ffc000;
}

.proventos-classes-12m-icon.class-rf-us {
    background: rgba(245, 158, 11, 0.12);
    border-color: rgba(245, 158, 11, 0.34);
    color: #f59e0b;
}

.proventos-classes-12m-label {
    color: #edf4ff;
    font-size: .8rem;
    font-weight: 900;
}

.proventos-classes-12m-info {
    color: #63a0ff;
    font-size: .72rem;
}

.proventos-classes-12m-value {
    color: #f8fbff;
    font-size: 1.02rem;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
}

.proventos-classes-12m-share {
    color: #22c55e;
    font-size: .72rem;
    font-weight: 900;
}

.proventos-classes-12m-empty {
    background: rgba(255, 192, 0, 0.08);
    border: 1px solid rgba(255, 192, 0, 0.22);
    border-radius: 8px;
    color: #f6d56a;
    font-size: .78rem;
    margin-bottom: 1rem;
    padding: .75rem .9rem;
}

.proventos-rentabilidade-empty {
    align-items: center;
    border: 1px dashed rgba(148, 163, 184, 0.22);
    border-radius: 8px;
    color: #9fb0c5;
    display: flex;
    font-size: .9rem;
    font-weight: 600;
    gap: .75rem;
    justify-content: center;
    min-height: 160px;
    padding: 1.5rem;
    text-align: center;
}

.proventos-rentabilidade-empty i {
    color: #ffc107;
    font-size: 1.25rem;
}

.proventos-classes-12m-disclaimer {
    border-top: 1px solid rgba(148, 163, 184, 0.14);
    color: #8fa0b7;
    font-size: .72rem;
    font-style: italic;
    line-height: 1.45;
    margin-top: 1rem;
    padding-top: .85rem;
}

.proventos-premium-forecast-stat {
    overflow: hidden;
}

.proventos-premium-forecast-stat .card-body {
    padding: 1.25rem;
}

.proventos-premium-forecast-stat h6 {
    color: #9fb0c5 !important;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .05rem;
    text-transform: uppercase;
}

.proventos-premium-chart-panel {
    padding: 1rem;
}

.proventos-premium-chart-surface {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(148, 163, 184, 0.12) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    margin-top: 1.2rem !important;
}

.proventos-donut-shell {
    min-height: 374px;
}

.proventos-donut-surface,
.proventos-month-chart-surface {
    min-height: 330px;
}

.proventos-donut-surface {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    justify-content: center;
    overflow: hidden;
    padding: .35rem .5rem;
    position: relative;
}

.proventos-donut-surface .apexcharts-canvas,
.proventos-donut-surface svg {
    overflow: visible;
}

.proventos-donut-surface .apexcharts-legend {
    max-height: 250px !important;
    overflow: hidden !important;
    padding-left: 1.15rem;
}

.proventos-donut-surface .apexcharts-legend-series {
    margin: 4px 10px !important;
}

.proventos-donut-surface .apexcharts-legend-text {
    color: #aeb9c8 !important;
    font-size: 11px !important;
    line-height: 1.25;
    padding-left: 18px !important;
}

.proventos-premium-table {
    border-collapse: separate;
    border-spacing: 0;
    color: #cfe1f7;
    margin-bottom: 0;
}

.proventos-premium-table thead th {
    background: #2d2b3d !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.85) !important;
    color: #bfc7d5 !important;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08rem;
    padding: .9rem .8rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.proventos-premium-table tbody td,
.proventos-premium-table tfoot td,
.proventos-premium-table tfoot th {
    background: rgba(255, 255, 255, 0.02) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.72) !important;
    color: #cfe1f7 !important;
    font-variant-numeric: tabular-nums;
    padding: .78rem .8rem;
    vertical-align: middle;
}

.proventos-premium-table tbody tr:hover td {
    background: rgba(255, 192, 0, 0.07) !important;
}

.forecast-calendar-value-cell {
    font-size: .85rem;
    line-height: 1.15;
}

.forecast-value-confirmed,
.forecast-mobile-card .confirmed .forecast-mobile-value,
.forecast-mobile-card .confirmed .forecast-mobile-status {
    color: #22c55e !important;
}

.forecast-value-projected,
.forecast-mobile-card .projected .forecast-mobile-value,
.forecast-mobile-card .projected .forecast-mobile-status {
    color: #0d6efd !important;
}

.forecast-calendar-frequency {
    color: #9fb0c5 !important;
    font-weight: 800;
    margin-top: .15rem;
}

.forecast-calendar-status {
    color: #6f7d8f;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .05rem;
    margin-top: .15rem;
    text-transform: uppercase;
}

.forecast-mobile-list {
    display: grid;
    gap: .85rem;
}

.forecast-mobile-card {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 8px;
    padding: .9rem;
}

.forecast-mobile-card-header {
    align-items: center;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    margin-bottom: .85rem;
}

.forecast-mobile-logo,
.forecast-mobile-logo-placeholder {
    border-radius: 999px;
    height: 30px;
    width: 30px;
}

.forecast-mobile-logo-placeholder {
    align-items: center;
    background: #6b5ce7;
    color: #ffffff;
    display: inline-flex;
    justify-content: center;
}

.forecast-mobile-asset,
.forecast-mobile-total {
    color: #edf4ff;
    font-size: .9rem;
    font-weight: 900;
}

.forecast-mobile-caption,
.forecast-mobile-frequency,
.forecast-mobile-status {
    color: #8fa0b7;
    font-size: .66rem;
    font-weight: 800;
    text-transform: uppercase;
}

.forecast-mobile-months {
    display: grid;
    gap: .55rem;
}

.forecast-mobile-month {
    align-items: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.11);
    border-radius: 8px;
    display: flex;
    justify-content: space-between;
    padding: .65rem .75rem;
}

.forecast-mobile-month.confirmed {
    border-left: 3px solid #22c55e;
}

.forecast-mobile-month.projected {
    border-left: 3px solid #0d6efd;
}

.forecast-mobile-actions {
    display: flex;
    gap: .45rem;
    justify-content: flex-end;
    margin-top: .85rem;
}

.forecast-mobile-month-label {
    color: #d7e2f0;
    font-size: .78rem;
    font-weight: 900;
}

.forecast-mobile-value {
    font-size: .82rem;
    font-weight: 900;
}

.proventos-premium-calendar-card {
    overflow: hidden;
}

.proventos-premium-calendar-header {
    color: #9fb0c5 !important;
    font-size: .78rem !important;
    margin: 0;
    padding: 1rem 1.1rem;
}

.proventos-premium-calendar-body {
    background: transparent !important;
}

.proventos-premium-action {
    border-color: rgba(148, 163, 184, 0.28) !important;
    color: #cfe1f7 !important;
}

.proventos-premium-action:hover {
    background: rgba(255, 192, 0, 0.14) !important;
    border-color: #ffc000 !important;
    color: #ffc000 !important;
}

.proventos-premium-icon-button {
    align-items: center;
    border-radius: 6px !important;
    display: inline-flex;
    height: 30px;
    justify-content: center;
    width: 30px;
}

.proventos-premium-section-gap {
    height: 1rem;
}

.proventos-premium-history-toggle {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 0 !important;
    color: #cfe1f7 !important;
    font-weight: 800;
}

.proventos-premium-history-panel {
    overflow: hidden;
    padding: 0;
}

.proventos-premium-history-parent-toggle {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 0 !important;
    color: #cfe1f7 !important;
    font-weight: 900;
    padding: 1rem 1.1rem;
}

.proventos-premium-history-parent-summary {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.proventos-premium-history-parent-summary span,
.proventos-premium-history-year-summary small {
    color: #8fa0b7;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .06rem;
    text-transform: uppercase;
}

.proventos-premium-history-parent-summary strong,
.proventos-premium-history-year-summary strong {
    color: #f8fbff;
    font-size: .92rem;
    font-variant-numeric: tabular-nums;
}

.proventos-premium-history-panel-body {
    padding: 0 1rem 1rem;
}

.proventos-premium-history-panel-body .proventos-premium-history-year:last-child {
    margin-bottom: 0 !important;
}

.proventos-premium-history-year-header {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.proventos-premium-history-year-summary {
    align-items: center;
    display: flex;
    gap: 1rem;
}

.proventos-premium-history-year-summary span {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.proventos-premium-year-label {
    color: #edf4ff !important;
}

.proventos-premium-month-card {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(148, 163, 184, 0.12) !important;
    border-radius: 8px !important;
    color: #d7e2f0;
}

.proventos-premium-highlight-item {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(148, 163, 184, 0.12);
}

.proventos-agenda-receber-card {
    padding: 1rem;
}

.proventos-agenda-receber-header {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.proventos-agenda-receber-actions {
    align-items: center;
    display: flex;
    gap: .75rem;
}

.proventos-agenda-receber-desktop-nav {
    align-items: center;
    gap: .45rem;
}

.proventos-agenda-receber-desktop-nav span {
    color: #9fb0c5;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .06rem;
    min-width: 44px;
    text-align: center;
    text-transform: uppercase;
}

.proventos-agenda-receber-subtitle {
    color: #9fb0c5;
    font-size: .76rem;
    font-weight: 700;
}

.proventos-agenda-receber-total {
    align-items: flex-end;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    min-width: 155px;
    padding: .65rem .8rem;
}

.proventos-agenda-receber-total span {
    color: #8fa0b7;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .06rem;
    text-transform: uppercase;
}

.proventos-agenda-receber-total strong {
    color: #f8fbff;
    font-size: .95rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
}

.proventos-agenda-receber-grid {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(7, minmax(132px, 1fr));
}

.proventos-agenda-receber-day {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    min-height: 178px;
    padding: .75rem;
}

.proventos-agenda-receber-day.is-today {
    border-color: rgba(255, 192, 0, 0.42) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 192, 0, 0.1);
}

.proventos-agenda-receber-day-header {
    border-bottom: 1px solid rgba(148, 163, 184, 0.12);
    display: flex;
    gap: .5rem;
    justify-content: space-between;
    margin-bottom: .65rem;
    padding-bottom: .55rem;
}

.proventos-agenda-receber-weekday {
    color: #edf4ff;
    font-size: .76rem;
    font-weight: 900;
    line-height: 1.2;
}

.proventos-agenda-receber-date {
    color: #8fa0b7;
    font-size: .68rem;
    font-weight: 800;
}

.proventos-agenda-receber-day-total {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    font-size: .68rem;
    font-weight: 900;
    line-height: 1.25;
    text-align: right;
}

.proventos-agenda-receber-day-total span {
    color: #22c55e;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.proventos-agenda-receber-list {
    display: grid;
    gap: .45rem;
}

.proventos-agenda-receber-item {
    align-items: center;
    display: flex;
    gap: .4rem;
    justify-content: space-between;
    min-width: 0;
}

.proventos-agenda-receber-badge {
    background: rgba(84, 153, 254, 0.15);
    border: 1px solid rgba(84, 153, 254, 0.34);
    border-radius: 999px;
    color: #8fb7ff;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .66rem;
    font-weight: 900;
    justify-content: center;
    max-width: 58px;
    min-width: 42px;
    padding: .18rem .42rem;
}

.proventos-agenda-receber-value {
    color: #f8fbff;
    flex: 1 1 auto;
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
    font-weight: 900;
    min-width: 0;
    overflow-wrap: anywhere;
    text-align: right;
}

.proventos-agenda-receber-empty {
    align-items: center;
    color: #8fa0b7;
    display: flex;
    font-size: .72rem;
    font-weight: 800;
    justify-content: center;
    min-height: 72px;
    text-align: center;
}

.proventos-agenda-receber-mobile {
    display: grid;
    gap: .75rem;
}

.proventos-agenda-receber-mobile-nav {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.proventos-agenda-receber-mobile-nav span {
    color: #9fb0c5;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .06rem;
    text-transform: uppercase;
}

.proventos-agenda-receber-nav-button {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(148, 163, 184, 0.18) !important;
    color: #cfe1f7 !important;
}

.proventos-agenda-receber-nav-button:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.proventos-premium-modal .carteira-premium-modal-content {
    border-radius: 8px !important;
}

body.light-theme .proventos-premium-kicker {
    color: #4f76ad;
}

body.light-theme .proventos-premium-panel,
body.light-theme .proventos-premium-calendar-card,
body.light-theme .proventos-premium-forecast-stat,
body.light-theme .proventos-premium-history-year,
body.light-theme .proventos-premium-stat-card {
    background: #ffffff !important;
    border-color: rgba(15, 23, 42, 0.1) !important;
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.08) !important;
    color: #172033;
}

/* Restaura a borda superior colorida no tema light (o shorthand border-color acima zera o border-top-color) */
body.light-theme .proventos-premium-stat-card {
    border-top-color: cornflowerblue !important;
}

body.light-theme .proventos-premium-stat-card.card-total-recebido {
    border-top-color: #20d65a !important;
}

body.light-theme .proventos-premium-stat-value,
body.light-theme .proventos-premium-year-label {
    color: #172033 !important;
}

body.light-theme .proventos-premium-stat-card.card-total-recebido .proventos-premium-stat-value,
body.light-theme .proventos-premium-stat-card.card-total-recebido .proventos-premium-stat-label {
    color: #172033 !important;
}

/* Icones somem no light: a regra global ".card-secondary .icon-big > i" forca branco (invisivel no card claro).
   Restaura no light com a cor de destaque de cada card (verde no Total Recebido, azul nos demais). */
body.light-theme .proventos-premium-stat-card .icon-big > i {
    color: #2f6fed !important;
}

body.light-theme .proventos-premium-stat-card.card-total-recebido .icon-big > i {
    color: #18a62c !important;
}

body.light-theme .proventos-premium-stat-label,
body.light-theme .proventos-premium-forecast-stat h6,
body.light-theme .proventos-premium-calendar-header {
    color: #5f6f85 !important;
}

body.light-theme .proventos-classes-12m-subtitle,
body.light-theme .proventos-classes-12m-total span,
body.light-theme .proventos-classes-12m-caption {
    color: #64748b;
}

body.light-theme .proventos-classes-12m-total,
body.light-theme .proventos-classes-12m-mini-card {
    background: #f8fafc;
    border-color: rgba(15, 23, 42, 0.09);
}

body.light-theme .proventos-classes-12m-total strong,
body.light-theme .proventos-classes-12m-label,
body.light-theme .proventos-classes-12m-value {
    color: #172033;
}

body.light-theme .proventos-classes-12m-empty {
    background: rgba(255, 192, 0, 0.13);
    border-color: rgba(255, 192, 0, 0.28);
    color: #7a5a00;
}

body.light-theme .proventos-rentabilidade-empty {
    border-color: rgba(15, 23, 42, 0.16);
    color: #5f6f85;
}

body.light-theme .proventos-classes-12m-disclaimer {
    border-top-color: rgba(15, 23, 42, 0.11);
    color: #64748b;
}

body.light-theme .proventos-premium-chart-surface,
body.light-theme .proventos-premium-month-card,
body.light-theme .proventos-premium-highlight-item,
body.light-theme .proventos-agenda-receber-total,
body.light-theme .proventos-agenda-receber-day {
    background: #f8fafc !important;
    border-color: rgba(15, 23, 42, 0.09) !important;
    color: #172033;
}

body.light-theme .proventos-donut-surface .apexcharts-legend-text {
    color: #405169 !important;
}

body.light-theme .proventos-premium-table {
    color: #172033;
}

body.light-theme .proventos-premium-table thead th {
    background: #eef2f7 !important;
    border-bottom-color: rgba(15, 23, 42, 0.18) !important;
    color: #475569 !important;
}

body.light-theme .proventos-premium-table tbody td,
body.light-theme .proventos-premium-table tfoot td,
body.light-theme .proventos-premium-table tfoot th {
    background: #ffffff !important;
    border-bottom-color: rgba(15, 23, 42, 0.12) !important;
    color: #172033 !important;
}

body.light-theme .proventos-premium-table tbody tr:hover td {
    background: rgba(255, 192, 0, 0.12) !important;
}

body.light-theme .forecast-calendar-frequency,
body.light-theme .forecast-mobile-caption,
body.light-theme .forecast-mobile-frequency,
body.light-theme .forecast-mobile-status {
    color: #64748b;
}

body.light-theme .forecast-calendar-status {
    color: #64748b;
}

body.light-theme .forecast-mobile-card,
body.light-theme .forecast-mobile-month {
    background: #f8fafc;
    border-color: rgba(15, 23, 42, 0.09);
}

body.light-theme .forecast-mobile-asset,
body.light-theme .forecast-mobile-total,
body.light-theme .forecast-mobile-month-label,
body.light-theme .proventos-agenda-receber-weekday,
body.light-theme .proventos-agenda-receber-total strong,
body.light-theme .proventos-agenda-receber-value {
    color: #172033;
}

body.light-theme .proventos-agenda-receber-subtitle,
body.light-theme .proventos-agenda-receber-total span,
body.light-theme .proventos-agenda-receber-date,
body.light-theme .proventos-agenda-receber-empty,
body.light-theme .proventos-agenda-receber-desktop-nav span,
body.light-theme .proventos-agenda-receber-mobile-nav span {
    color: #64748b;
}

body.light-theme .proventos-agenda-receber-badge {
    background: rgba(37, 99, 235, 0.1);
    border-color: rgba(37, 99, 235, 0.22);
    color: #2563eb;
}

body.light-theme .proventos-agenda-receber-nav-button {
    background: #f8fafc !important;
    border-color: rgba(15, 23, 42, 0.11) !important;
    color: #172033 !important;
}

body.light-theme .proventos-premium-history-toggle {
    background: #f8fafc !important;
    color: #172033 !important;
}

body.light-theme .proventos-premium-history-parent-toggle {
    background: #f8fafc !important;
    color: #172033 !important;
}

body.light-theme .proventos-premium-history-parent-summary span,
body.light-theme .proventos-premium-history-year-summary small {
    color: #64748b;
}

body.light-theme .proventos-premium-history-parent-summary strong,
body.light-theme .proventos-premium-history-year-summary strong {
    color: #172033;
}

body.light-theme .proventos-premium-action {
    color: #172033 !important;
}

@media (max-width: 991.98px) {
    .proventos-premium-header {
        padding-top: .25rem;
    }

    .proventos-premium-chart-panel {
        padding: .75rem;
    }

    .proventos-donut-shell,
    .proventos-donut-surface,
    .proventos-month-chart-surface {
        min-height: auto;
    }

    .proventos-premium-calendar-header {
        padding: .9rem;
    }

    .proventos-agenda-receber-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .proventos-premium-header {
        margin-bottom: .5rem !important;
    }

    .proventos-premium-stat-card,
    .proventos-premium-forecast-stat {
        min-height: auto;
    }

    .proventos-premium-forecast-stat {
        margin-bottom: -.5rem;
    }

    .proventos-premium-history-year {
        margin-top: .7rem;
        max-height: none !important;
        overflow-x: hidden !important;
        overflow-y: hidden !important;
    }

    .proventos-premium-history-panel-body {
        padding: 0 .75rem .75rem;
    }

    .proventos-premium-history-year-header {
        align-items: flex-start;
        flex-direction: column;
        gap: .65rem;
    }

    .proventos-premium-history-year-summary {
        justify-content: space-between;
        width: 100%;
    }

    .proventos-premium-history-year-summary span {
        align-items: flex-start;
    }

    .proventos-premium-stat-card .row {
        align-items: center;
    }

    .proventos-premium-stat-icon {
        height: 34px;
        width: 34px;
    }

    .proventos-premium-table thead th,
    .proventos-premium-table tbody td,
    .proventos-premium-table tfoot td,
    .proventos-premium-table tfoot th {
        padding: .65rem .55rem;
    }

    .proventos-classes-12m-total {
        align-items: flex-start;
        min-width: 100%;
    }

    .proventos-classes-12m-mini-card {
        min-height: auto;
    }

    .proventos-agenda-receber-card {
        padding: .75rem;
    }

    .proventos-agenda-receber-header {
        flex-direction: column;
    }

    .proventos-agenda-receber-actions {
        width: 100%;
    }

    .proventos-agenda-receber-total {
        align-items: flex-start;
        min-width: 100%;
    }

    .proventos-agenda-receber-day {
        min-height: 168px;
        width: 100%;
    }

    .proventos-premium-section-gap {
        height: 0rem;
    }
}

/* -----------------------------------
   BEGIN - Dashboard Proventos
-------------------------------------- */
/* Desktop */
@media (min-width: 992px) {
    .card-provento {
        width: 128px !important;
    }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 991.98px) {
    .font-number {
        font-size: 1.0rem !important;
    }

    .font-small {
        font-size: 0.85rem !important;
    }

    .font-smaller {
        font-size: 0.70rem !important;
    }

    .font-titulo-calendar {
        font-size: 0.9rem !important;
    }

    .label-ano {
        margin-bottom: .5rem !important;
    }

    .card-stats {
        padding-top: 5px;
        padding-bottom: 0px;
        padding-left: 12px;
        margin-left: 0px;
        margin-right: 0px;
    }

    .card-total-recebido {
        width: 174px;
    }

    .card-media-ytd {
        margin-left: 10px;
    }

    .container-grafico-top10 {
        margin-top: .5rem !important;
    }
}

/* Mobile */
@media (max-width: 767.98px) {
    .font-number {
        font-size: 1.0rem !important;
    }

    .font-small {
        font-size: 0.60rem !important;
    }

    .font-smaller {
        font-size: 0.70rem !important;
    }

    .font-titulo-calendar {
        font-size: 0.9rem !important;
    }

    .label-ano {
        margin-bottom: .5rem !important;
    }

    .card-stats {
        padding-top: 0px;
        padding-bottom: 0px;
        padding-left: 10px;
    }

    .container-grafico-top10 {
        margin-top: .5rem !important;
    }

    .destaque-proventos-card {
        margin-top: 20px !important;
    }

    .chart-card {
        margin-bottom: 0.4rem !important;
    }

    .descricao-destaque-provento {
        font-size: 0.85rem !important;
    }
}

/* -----------------------------------
   BEGIN - Dashboard Carteiras
-------------------------------------- */
/* Tablet */
@media (min-width: 768px) and (max-width: 991.98px) {
    .card-dist-ativos {
        margin-bottom: 1.2rem !important;
    }

    .label-pm-preco-atual {
        width: 80%;
        font-size: 0.70rem;
    }
}

/* Mobile */
@media (max-width: 767.98px) {
    .card-top10 {
        margin-bottom: 0rem !important;
    }

    .card-top10-quedas {
        margin-bottom: 0rem !important;
    }

    .card-dist-ativos {
        margin-bottom: 1rem !important;
    }

    .card-dist-setor {
        margin-top: 0.5rem !important;
        margin-bottom: 0.8rem !important;
    }
}

/* -----------------------------------
   BEGIN - Dashboard Carteiras
-------------------------------------- */
/* Tablet */
@media (min-width: 768px) and (max-width: 991.98px) {
    .dashboard-card {
        height: auto;
    }
}

/* Mobile */
@media (max-width: 767.98px) {
    .dashboard-card {
        height: auto;
    }
}

/* -----------------------------------
   BEGIN - Dashboard Home Usuário
-------------------------------------- */
/* Mobile e Tablet */
@media (max-width: 991.98px) {
    .dashboard-card {
        margin-bottom: 0rem !important;
    }

    .card-home-mapa {
        margin-bottom: 0rem !important;
    }

    .card-home-dados-consolidados {
        margin-top: 1rem !important;
    }
}

/* Abaixo de xl os 3 cards (Patrimônio/Proventos/Insights) empilham; o esticamento por
   flex-fill + h-100 (height:100%) não resolve no WebKit/iOS (valores somem e cards "colam").
   Deixa os cards com altura por conteúdo; o espaçamento volta pelo gap-3. Desktop xl inalterado. */
@media (max-width: 1199.98px) {
    /* Empilhado no mobile/tablet: evita o bug do WebKit (flex-wrap + align-items:stretch)
       que faz as colunas colarem/sobreporem e some o espaçamento entre os cards. */
    .home-user-shell .row.align-items-stretch {
        align-items: flex-start;
        align-content: flex-start;
    }

    .card-home-dados-consolidados > .flex-fill {
        flex: 0 0 auto !important;
    }

    .card-home-dados-consolidados .home-user-summary-card,
    .card-home-dados-consolidados .home-user-insights-card {
        height: auto !important;
    }

    .card-home-dados-consolidados .home-user-summary-card {
        justify-content: flex-start;
    }

    /* Card Evolução do Patrimônio: mesma correção — altura por conteúdo no mobile/tablet,
       senão o min-height:100%/h-100 não resolve no WebKit/iOS e "come" o espaçamento. */
    .grupo-card-evol-patrimonial .card-home-evol-patrimonial {
        height: auto !important;
    }

    .grupo-card-evol-patrimonial .home-user-chart-card {
        min-height: auto !important;
    }
}

/* Mobile */
@media (max-width: 767.98px) {
    .grupo-card-indicadores {
        margin-top: 0.5rem !important;
    }

    .grupo-card-evol-patrimonial {
        margin-top: 0rem !important;
    }

    .chart-card {
        margin-bottom: -0.4rem !important;
    }

    .home-user-insights-card {
        margin-bottom: .5rem;
    }
}

/* -----------------------------------
   BEGIN - Dashboard Rentabilidade
-------------------------------------- */
/* Mobile */
@media (max-width: 767.98px) {
    .card-rentabilidade-considerar-proventos {
        margin-top: .8rem;
        margin-bottom: 1rem !important;
    }

    .card-rentabilidade-performace {
        margin-top: 1.5rem !important;
    }

    .card-rentabilidade-destaques,
    .card-metric-rentabilidade {
        padding: 1.25rem 0.25rem 1rem 0.25rem !important;
    }

    .rentabilidade-premium-benchmark-card .rentabilidade-premium-section-title {
        padding: 0 0rem;
    }    

    .titulo-destaque-rentabilidade {
        font-size: 0.85rem !important;
    }

    .descricao-destaque-rentabilidade {
        font-size: 0.70rem !important;
    }
}

/* -----------------------------------
   BEGIN - Dashboard Raio X de Ativos
-------------------------------------- */
/* Mobile */
@media (max-width: 767.98px) {
    .raiox-dados-gerais-card {
        margin-top: -0.5rem !important;
        margin-bottom: 1.0rem !important;
    }

    .raiox-card {
        margin-bottom: 1.0rem !important;
    }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 991.98px) {
    .raiox-dados-gerais-card {
        margin-top: 0rem !important;
    }
}
/* Passive Income Simulator */
.passive-income-page {
    padding: 1.5rem 1rem 2.5rem;
}

.passive-income-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1.5rem;
}

.passive-income-header p {
    color: #9fb0cc;
    max-width: 8800px;
    margin: .5rem 0 0;
}

body.light-theme .passive-income-header p {
    color: #526278;
}

.passive-income-kicker,
.passive-income-panel-title small {
    color: #79a8ff;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .28rem;
    text-transform: uppercase;
}

.passive-income-header-stat,
.passive-income-panel,
.passive-income-kpi {
    background: linear-gradient(145deg, #101827, #0b111d);
    border: 1px solid #223047;
    box-shadow: 0 18px 45px rgba(0, 0, 0, .28);
}

body.light-theme .passive-income-header-stat,
body.light-theme .passive-income-panel,
body.light-theme .passive-income-kpi {
    background: linear-gradient(145deg, #ffffff, #f4f7fb);
    border-color: #d9e2ef;
    box-shadow: 0 16px 34px rgba(15, 23, 42, .09);
}

.passive-income-header-stat {
    min-width: 220px;
    border-radius: 8px;
    padding: 1rem 1.25rem;
}

.passive-income-header-stat span,
.passive-income-kpi span,
.passive-income-current-box span,
.passive-income-scenario span,
.passive-income-goal-summary span,
.passive-income-goal-summary-value span,
.passive-income-mobile-card span {
    display: block;
    color: #9fb0cc;
    font-size: .75rem;
    font-weight: 700;
}

body.light-theme .passive-income-header-stat span,
body.light-theme .passive-income-kpi span,
body.light-theme .passive-income-current-box span,
body.light-theme .passive-income-scenario span,
body.light-theme .passive-income-goal-summary span,
body.light-theme .passive-income-goal-summary-value span,
body.light-theme .passive-income-mobile-card span {
    color: #64748b;
}

.passive-income-header-stat strong,
.passive-income-kpi strong,
.passive-income-current-box strong,
.passive-income-scenario strong,
.passive-income-goal-summary strong,
.passive-income-goal-summary-value strong,
.passive-income-mobile-card strong {
    color: #f8fbff;
    font-weight: 900;
}

body.light-theme .passive-income-header-stat strong,
body.light-theme .passive-income-kpi strong,
body.light-theme .passive-income-current-box strong,
body.light-theme .passive-income-scenario strong,
body.light-theme .passive-income-goal-summary strong,
body.light-theme .passive-income-goal-summary-value strong,
body.light-theme .passive-income-mobile-card strong {
    color: #0f172a;
}

.passive-income-panel {
    border-radius: 8px;
    padding: 1.25rem;
}

.passive-income-panel-title {
    display: flex;
    gap: .85rem;
    align-items: center;
    margin-bottom: 1.1rem;
}

.passive-income-panel-title > span {
    width: 38px;
    height: 38px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    color: #ffc107;
    background: rgba(255, 193, 7, .12);
    border: 1px solid rgba(255, 193, 7, .45);
}

.passive-income-panel-title h5 {
    color: #f8fbff;
    font-size: 1rem;
    font-weight: 900;
    margin: .2rem 0 0;
}

body.light-theme .passive-income-panel-title h5 {
    color: #0f172a;
}

.passive-income-control {
    background: #151e2d;
    border: 1px solid #28384f;
    color: #f8fbff;
    border-radius: 8px;
    min-height: 42px;
}

.passive-income-control:focus {
    background: #151e2d;
    border-color: #ffc107;
    color: #f8fbff;
    box-shadow: 0 0 0 .18rem rgba(255, 193, 7, .18);
}

body.light-theme .passive-income-control,
body.light-theme .passive-income-control:focus {
    background: #ffffff;
    border-color: #d9e2ef;
    color: #0f172a;
}

.passive-income-form-panel .form-label {
    color: #b8c6dc;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

body.light-theme .passive-income-form-panel .form-label {
    color: #526278;
}

.passive-income-current-box {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}

.passive-income-current-box > div {
    border-radius: 8px;
    padding: .9rem;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(159, 176, 204, .14);
}

body.light-theme .passive-income-current-box > div {
    background: #f8fafc;
    border-color: #d9e2ef;
}

.passive-income-primary-action,
.passive-income-secondary-action {
    border-radius: 8px;
    min-height: 42px;
    font-weight: 900;
}

.passive-income-primary-action {
    background: linear-gradient(135deg, #ffc107, #ffda63);
    color: #121826;
    border: 0;
}

.passive-income-secondary-action {
    background: rgba(255, 193, 7, .08);
    color: #ffc107;
    border: 1px solid rgba(255, 193, 7, .45);
}

.passive-income-info-icon {
    color: #79a8ff;
    margin-left: .35rem;
}

.passive-income-form-panel .form-label .passive-income-info-icon,
.passive-income-switch-row .passive-income-info-icon,
.passive-income-current-box .passive-income-info-icon {
    font-size: .82rem;
    text-transform: none;
}

.passive-income-switch-row {
    align-items: center;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(159, 176, 204, .14);
    border-radius: 8px;
    display: flex;
    justify-content: space-between;
    min-height: 58px;
    padding: .8rem .9rem;
}

body.light-theme .passive-income-switch-row {
    background: #f8fafc;
    border-color: #d9e2ef;
}

.passive-income-switch-row span {
    color: #9fb0cc;
    display: block;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

body.light-theme .passive-income-switch-row span {
    color: #64748b;
}

.passive-income-switch-row strong {
    color: #f8fbff;
    display: block;
    font-size: .86rem;
    margin-top: .2rem;
}

body.light-theme .passive-income-switch-row strong {
    color: #0f172a;
}

.passive-income-switch {
    background-color: #223047;
    border-color: #40516c;
    cursor: pointer;
    height: 1.35rem;
    width: 2.45rem;
}

.passive-income-switch:checked {
    background-color: #20d65a;
    border-color: #20d65a;
}

.passive-income-kpi {
    border-radius: 8px;
    min-height: 90px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.passive-income-kpi.is-green {
    border-top: 3px solid #20d65a;
}

.passive-income-kpi.is-yellow {
    border-top: 3px solid #ffc107;
}

/* Restaura a borda superior colorida no tema light (o shorthand border-color do light zera o border-top-color) */
body.light-theme .passive-income-kpi.is-green {
    border-top-color: #20d65a;
}

body.light-theme .passive-income-kpi.is-yellow {
    border-top-color: #ffc107;
}

.passive-income-kpi strong {
    font-size: 1.05rem;
}

.passive-income-scenario {
    min-height: 140px;
    position: relative;
}

.passive-income-scenario small {
    color: #79a8ff;
    font-weight: 900;
    letter-spacing: .12rem;
    text-transform: uppercase;
}

.passive-income-scenario strong {
    display: block;
    font-size: 1.4rem;
    margin: .5rem 0;
}

.passive-income-scenario-deadline {
    align-items: baseline;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    margin: .5rem 0;
}

.passive-income-scenario-deadline strong {
    margin: 0;
}

.passive-income-scenario-deadline small {
    color: #ffc000;
    flex: 0 0 auto;
    letter-spacing: 0;
    text-align: right;
    text-transform: none;
    font-size: .72rem;
}

.passive-income-scenario-metrics {
    border-top: 1px solid rgba(159, 176, 204, .16);
    display: grid;
    gap: .65rem;
    margin-top: 1rem;
    padding-top: .9rem;
}

.passive-income-scenario-metrics > div {
    align-items: center;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
}

.passive-income-scenario-metrics span {
    font-size: .72rem;
}

.passive-income-scenario-metrics strong {
    color: #f8fbff;
    font-size: .9rem;
    margin: 0;
    text-align: right;
}

body.light-theme .passive-income-scenario-metrics {
    border-top-color: #d9e2ef;
}

body.light-theme .passive-income-scenario-metrics strong {
    color: #0f172a;
}

.passive-income-scenario.is-highlight {
    border-color: rgba(32, 214, 90, .45);
}

.passive-income-scenario.is-ok {
    border-color: rgba(32, 214, 90, .45);
}

.passive-income-scenario.is-pending {
    border-color: rgba(255, 193, 7, .36);
}

.passive-income-scenario-status,
.passive-income-goal-state {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .04rem;
    padding: .26rem .65rem;
    text-transform: uppercase;
}

.passive-income-scenario-status {
    margin-bottom: .75rem;
}

.passive-income-scenario-status.is-ok,
.passive-income-goal-state.is-ok {
    background: rgba(32, 214, 90, .14);
    color: #20d65a;
}

.passive-income-scenario-status.is-pending,
.passive-income-goal-state.is-pending {
    background: rgba(255, 193, 7, .14);
    color: #ffc107;
}

.passive-income-goal-state {
    margin-top: .65rem;
}

.passive-income-goal-summary {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    min-height: 116px;
}

.passive-income-goal-summary.is-ok {
    border-color: rgba(32, 214, 90, .48);
}

.passive-income-goal-summary.is-pending {
    border-color: rgba(255, 193, 7, .48);
}

.passive-income-goal-summary small {
    color: #79a8ff;
    display: block;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .12rem;
    text-transform: uppercase;
}

.passive-income-goal-summary > div > strong {
    display: block;
    font-size: 1.35rem;
    margin: .45rem 0 .3rem;
}

.passive-income-goal-summary-value {
    min-width: 180px;
    text-align: right;
}

.passive-income-goal-summary-value small {
    color: #ffc107;
    display: block;
    letter-spacing: 0;
    margin-top: .25rem;
    text-transform: none;
}

.passive-income-chart-panel {
    padding-bottom: .35rem;
}

.passive-income-table {
    margin-bottom: 0;
}

.passive-income-table thead th {
    background: #2b2a3d;
    color: #c7d6f2;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .12rem;
    text-transform: uppercase;
    border-bottom: 1px solid #d6deea;
    padding: 1rem;
}

.passive-income-table tbody td {
    color: #d8e7ff;
    border-bottom: 1px solid rgba(214, 222, 234, .58);
    padding: .9rem 1rem;
    font-weight: 700;
}

body.light-theme .passive-income-table thead th {
    background: #eef2f8;
    color: #334155;
}

body.light-theme .passive-income-table tbody td {
    color: #1f2937;
}

.passive-income-table tr.is-goal td,
.passive-income-mobile-card.is-goal {
    background: rgba(32, 214, 90, .08);
}

.passive-income-rank {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    color: #ffc107;
    border: 1px solid rgba(255, 193, 7, .6);
    background: rgba(255, 193, 7, .12);
    margin-right: .65rem;
    font-size: .75rem;
}

.passive-income-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: .3rem .75rem;
    background: rgba(122, 139, 166, .14);
    color: #b8c6dc;
    font-size: .72rem;
    font-weight: 900;
}

.passive-income-status.is-ok {
    background: rgba(32, 214, 90, .14);
    color: #20d65a;
}

.passive-income-mobile-list {
    display: grid;
    gap: .75rem;
}

.passive-income-mobile-card {
    border-radius: 8px;
    border: 1px solid #223047;
    background: #121a29;
    padding: 1rem;
}

body.light-theme .passive-income-mobile-card {
    border-color: #d9e2ef;
    background: #ffffff;
}

.passive-income-empty-state {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.passive-income-empty-state small {
    color: #79a7ff;
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.passive-income-empty-state strong {
    color: #f8fafc;
    font-size: 1.15rem;
}

.passive-income-empty-state span {
    color: #b8c7e4;
}

body.light-theme .passive-income-empty-state strong {
    color: #0f172a;
}

body.light-theme .passive-income-empty-state span {
    color: #475569;
}

.passive-income-mobile-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-top: .9rem;
}

.passive-income-mobile-grid > div {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: .18rem;
    min-width: 0;
}

.passive-income-mobile-grid .passive-income-mobile-label {
    align-items: center;
    display: inline-flex;
    gap: .25rem;
    line-height: 1.2;
}

.passive-income-mobile-grid strong {
    display: block;
    line-height: 1.25;
}

.passive-income-alert {
    border-radius: 8px;
}

.passive-income-alert.alert-success {
    background: rgba(32, 214, 90, .12);
    border-color: rgba(32, 214, 90, .42);
    color: #9cf4b7;
}

body.light-theme .passive-income-alert.alert-success {
    background: #eafbf0;
    border-color: #b9efca;
    color: #087a2e;
}

.passive-income-pagination {
    align-items: center;
    display: flex;
    gap: .45rem;
    justify-content: flex-end;
    margin-top: 1rem;
}

.passive-income-pagination span {
    color: #9fb0cc;
    font-size: .78rem;
    font-weight: 800;
    margin-left: .45rem;
}

body.light-theme .passive-income-pagination span {
    color: #64748b;
}

.passive-income-page-btn {
    align-items: center;
    background: #121a29;
    border: 1px solid #28384f;
    border-radius: 8px;
    color: #c7d6f2;
    display: inline-flex;
    font-size: .8rem;
    font-weight: 900;
    height: 34px;
    justify-content: center;
    min-width: 34px;
}

.passive-income-page-btn.is-active {
    border-color: #ffc107;
    color: #ffc107;
}

.passive-income-page-btn:disabled {
    cursor: not-allowed;
    opacity: .45;
}

body.light-theme .passive-income-page-btn {
    background: #ffffff;
    border-color: #d9e2ef;
    color: #334155;
}

body.light-theme .passive-income-page-btn.is-active {
    border-color: #ffc107;
    color: #b58100;
}

@media (min-width: 1200px) {
    .fii-income-summary-column {
        display: flex;
    }

    .fii-income-summary-stack {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .fii-income-goal-summary-fill {
        flex: 1;
    }
}

.fii-income-distribution-panel {
    overflow: hidden;
}

.fii-income-distribution-description {
    color: #b8c7e4;
    margin: -.25rem 0 1rem;
}

body.light-theme .fii-income-distribution-description {
    color: #475569;
}

.fii-income-distribution-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
    margin-bottom: 1rem;
}

.fii-income-distribution-summary > div {
    background: rgba(18, 26, 41, .78);
    border: 1px solid #223047;
    border-radius: 8px;
    padding: 1rem;
}

.fii-income-distribution-summary span,
.fii-income-distribution-table td span,
.fii-income-distribution-mobile-card small {
    color: #9fb0cc;
    display: block;
    font-size: .75rem;
    font-weight: 800;
}

.fii-income-distribution-summary strong {
    color: #f8fafc;
    display: block;
    font-size: 1.1rem;
    margin-top: .35rem;
}

body.light-theme .fii-income-distribution-summary > div {
    background: #ffffff;
    border-color: #d9e2ef;
}

body.light-theme .fii-income-distribution-summary span,
body.light-theme .fii-income-distribution-table td span,
body.light-theme .fii-income-distribution-mobile-card small {
    color: #64748b;
}

body.light-theme .fii-income-distribution-summary strong {
    color: #0f172a;
}

.fii-income-distribution-warning {
    align-items: center;
    background: rgba(255, 193, 7, .12);
    border: 1px solid rgba(255, 193, 7, .42);
    border-radius: 8px;
    color: #ffd86b;
    display: flex;
    font-weight: 800;
    padding: .95rem 1rem;
}

body.light-theme .fii-income-distribution-warning {
    background: #fff8db;
    border-color: #f4d56f;
    color: #8a6400;
}

.fii-income-distribution-table tbody td:first-child strong {
    color: #f8fafc;
    display: block;
}

.fii-income-distribution-heading {
    align-items: center;
    display: inline-flex;
    gap: .35rem;
    white-space: nowrap;
}

.passive-income-table-heading {
    align-items: center;
    display: inline-flex;
    gap: .35rem;
    justify-content: inherit;
    white-space: nowrap;
}

body.light-theme .fii-income-distribution-table tbody td:first-child strong {
    color: #0f172a;
}

.fii-income-distribution-mobile-list {
    display: grid;
    gap: .8rem;
}

.fii-income-distribution-mobile-card {
    background: #121a29;
    border: 1px solid #223047;
    border-radius: 8px;
    padding: 1rem;
}

body.light-theme .fii-income-distribution-mobile-card {
    background: #ffffff;
    border-color: #d9e2ef;
}

.fii-income-distribution-mobile-title {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .25rem;
}

.fii-income-distribution-mobile-title strong {
    color: #f8fafc;
}

.fii-income-distribution-mobile-title span {
    background: rgba(32, 214, 90, .14);
    border-radius: 999px;
    color: #20d65a;
    font-size: .72rem;
    font-weight: 900;
    padding: .25rem .6rem;
}

body.light-theme .fii-income-distribution-mobile-title strong {
    color: #0f172a;
}

@media (max-width: 767.98px) {
    .passive-income-page {
        padding: 1rem .65rem 2rem;
    }

    .passive-income-header {
        flex-direction: column;
    }

    .passive-income-header-stat {
        width: 100%;
    }

    .passive-income-current-box {
        grid-template-columns: 1fr;
    }

    .passive-income-action-row {
        align-items: center;
        flex-direction: row !important;
        flex-wrap: nowrap;
        justify-content: flex-end;
    }

    .passive-income-action-row .passive-income-primary-action,
    .passive-income-action-row .passive-income-secondary-action {
        flex: 0 0 auto !important;
        min-width: 0;
        padding-inline: .9rem;
        white-space: nowrap;
    }

    .passive-income-action-row .passive-income-primary-action {
        min-width: 142px;
    }

    .passive-income-action-row .passive-income-secondary-action {
        min-width: 104px;
    }

    .passive-income-scenario-metrics > div {
        align-items: flex-start;
        flex-direction: column;
        gap: .15rem;
    }

    .passive-income-scenario-metrics strong {
        text-align: left;
    }

    .passive-income-kpi {
        min-height: 96px;
    }

    .passive-income-goal-summary {
        align-items: flex-start;
        flex-direction: column;
    }

    .passive-income-goal-summary-value {
        min-width: 0;
        text-align: left;
        width: 100%;
    }

    .fii-income-distribution-summary {
        grid-template-columns: 1fr;
    }
}

/* Central IRPF */
.irpf-premium-page {
    padding: 1.5rem 1rem 2rem;
    color: #dbeafe;
}

.irpf-header {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: flex-start;
    margin-bottom: 1.35rem;
}

.irpf-kicker {
    color: #70a5ff;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .38rem;
    text-transform: uppercase;
}

.irpf-header h1,
.irpf-panel h2 {
    margin: 4px 0 0;
    color: #ffc107;
    font-size: 1.35rem;
    font-weight: 900;
}

.irpf-header p {
    max-width: 780px;
    margin: 10px 0 0;
    color: #b7c8e6;
    font-size: 1rem;
}

.irpf-year-picker {
    position: relative;
    min-width: 220px;
    padding: 1rem 1rem 1rem 4.75rem;
    border: 1px solid #223047;
    border-radius: 8px;
    background: linear-gradient(145deg, #101827, #0b111d);
    box-shadow: 0 18px 38px rgba(0, 0, 0, .22);
}

.irpf-year-icon,
.irpf-stat-icon,
.irpf-panel-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 193, 7, .42);
    border-radius: 8px;
    background: rgba(255, 193, 7, .10);
    color: #ffc107;
}

.irpf-year-icon {
    position: absolute;
    left: 1rem;
    top: 1.05rem;
}

.irpf-year-picker label {
    display: block;
    margin-bottom: 6px;
    color: #9db6dd;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.irpf-year-picker .form-select {
    background-color: #151e2d;
    color: #e6f0ff;
    border-color: #28384f;
    border-radius: 8px;
    font-weight: 800;
}

.irpf-year-picker small {
    display: block;
    margin-top: 6px;
    color: #8fb0dc;
    font-size: .72rem;
    font-weight: 800;
}

.irpf-disclaimer,
.irpf-alert,
.irpf-loading,
.irpf-empty {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 1.1rem;
    padding: 12px 14px;
    border: 1px solid #223047;
    border-radius: 8px;
    background: linear-gradient(145deg, #101827, #0b111d);
    color: #b7c8e6;
}

.irpf-alert-error {
    border-color: rgba(248, 113, 113, .45);
    color: #fecaca;
}

.irpf-summary-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin: 1.1rem 0;
}

.irpf-stat-card,
.irpf-panel {
    border: 1px solid #223047;
    border-radius: 8px;
    background: linear-gradient(145deg, #101827, #0b111d);
    box-shadow: 0 22px 46px rgba(0, 0, 0, .24);
}

.irpf-stat-card {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: .85rem;
    align-items: center;
    min-height: 126px;
    padding: 18px;
    border-top: 3px solid rgba(96, 165, 250, .55);
}

.irpf-stat-card .irpf-stat-icon {
    grid-row: span 3;
}

.irpf-stat-card span,
.irpf-stat-card small {
    display: block;
    color: #9db6dd;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.irpf-stat-card .irpf-stat-title {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    line-height: 1.2;
}

.irpf-stat-tooltip {
    color: #60a5fa;
    font-size: .82rem;
}

.irpf-stat-card strong {
    display: block;
    margin: .15rem 0;
    color: #fff;
    font-size: 1.15rem;
}

.irpf-stat-card.is-tax { border-top-color: #fbbf24; }
.irpf-stat-card.is-free { border-top-color: #22c55e; }
.irpf-stat-card.is-exclusive { border-top-color: #8b5cf6; }
.irpf-stat-card.is-foreign { border-top-color: #38bdf8; }
.irpf-stat-card.is-warning { border-top-color: #fb7185; }

/* Restaura a borda superior colorida no tema light (o shorthand border-color do light zera o border-top-color) */
body.light-theme .irpf-stat-card.is-tax { border-top-color: #fbbf24; }
body.light-theme .irpf-stat-card.is-free { border-top-color: #22c55e; }
body.light-theme .irpf-stat-card.is-exclusive { border-top-color: #8b5cf6; }
body.light-theme .irpf-stat-card.is-foreign { border-top-color: #38bdf8; }
body.light-theme .irpf-stat-card.is-warning { border-top-color: #fb7185; }

.irpf-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    margin: 1.35rem 0 1rem;
    padding: .35rem;
    border: 1px solid #223047;
    border-radius: 10px;
    background: rgba(16, 24, 39, .82);
}

.irpf-tabs button {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: #b7c8e6;
    padding: 10px 16px;
    font-weight: 800;
    white-space: nowrap;
}

.irpf-tabs button.active {
    border-color: #ffc107;
    color: #111827;
    background: linear-gradient(135deg, #ffc107, #ffda63);
}

.irpf-conference-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 16px;
    padding: 12px 14px;
    border: 1px solid rgba(96, 165, 250, .26);
    border-radius: 10px;
    background: rgba(59, 130, 246, .08);
    color: #b8c7e6;
    font-size: .9rem;
    line-height: 1.45;
}

.irpf-conference-note i {
    color: #60a5fa;
    margin-top: 2px;
}

.irpf-tab-label {
    display: inline;
}

.irpf-panel {
    padding: 20px;
    margin-bottom: 0px;
}

.irpf-panel-heading {
    display: flex;
    justify-content: flex-start;
    gap: 16px;
    align-items: center;
    margin-bottom: 16px;
}

.irpf-panel-heading .irpf-count {
    margin-left: auto;
}

.irpf-panel-heading h2 {
    color: #fff;
    font-size: 1.05rem;
}

.irpf-count,
.irpf-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    border: 1px solid rgba(255, 193, 7, .55);
    border-radius: 999px;
    background: rgba(255, 193, 7, .12);
    color: #ffc107;
    padding: 4px 10px;
    font-size: .78rem;
    font-weight: 900;
}

.irpf-badge-warning {
    border-color: rgba(251, 191, 36, .68);
    background: rgba(251, 191, 36, .14);
    color: #fbbf24;
}

.irpf-chart-shell,
.irpf-table {
    border: 1px solid #223047;
    border-radius: 8px;
    background: #0c121d;
}

.irpf-chart-shell {
    padding: .75rem;
}

.irpf-orientation-subtitle {
    margin: 6px 0 0;
    color: #9db6dd;
    font-size: .92rem;
}

.irpf-orientation-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.irpf-orientation-card,
.irpf-orientation-warning {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    border: 1px solid rgba(148, 163, 184, .18);
    border-radius: 10px;
    background: rgba(12, 18, 29, .82);
    padding: 16px;
}

.irpf-orientation-card span,
.irpf-orientation-warning span {
    display: block;
    color: #70a5ff;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .16rem;
    text-transform: uppercase;
}

.irpf-orientation-card h3,
.irpf-orientation-warning h3 {
    margin: 4px 0 8px;
    color: #f8fafc;
    font-size: .98rem;
    font-weight: 900;
}

.irpf-orientation-card p,
.irpf-orientation-warning p {
    margin: 0;
    color: #b7c8e6;
    font-size: .9rem;
    line-height: 1.55;
}

.irpf-orientation-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 193, 7, .42);
    border-radius: 8px;
    background: rgba(255, 193, 7, .10);
    color: #ffc107 !important;
    font-size: 1rem !important;
    letter-spacing: 0 !important;
}

.irpf-orientation-warning {
    margin-top: 16px;
    border-color: rgba(251, 191, 36, .34);
    background: linear-gradient(145deg, rgba(251, 191, 36, .10), rgba(12, 18, 29, .86));
}

.irpf-table {
    --bs-table-bg: #101722;
    --bs-table-color: #cfe1ff;
    --bs-table-striped-bg: #101722;
    --bs-table-striped-color: #cfe1ff;
    --bs-table-hover-bg: #151d2a;
    --bs-table-hover-color: #e5efff;
    --bs-table-active-bg: #151d2a;
    --bs-table-active-color: #e5efff;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    overflow: hidden;
    color: #cfe1ff;
}

.irpf-table thead th {
    background: #2d2b3d !important;
    color: #cbd5e1;
    border-bottom: 1px solid rgba(255, 255, 255, .72);
    font-size: .72rem;
    letter-spacing: .12rem;
    text-transform: uppercase;
}

.irpf-table > :not(caption) > * > * {
    box-shadow: none !important;
}

.irpf-table tbody td {
    background: #101722 !important;
    border-bottom: 1px solid rgba(255, 255, 255, .52);
    color: #cfe1ff;
    vertical-align: middle;
}

.irpf-table td small {
    display: block;
    margin-top: 2px;
    color: #8fb0dc;
    font-size: .72rem;
    text-transform: uppercase;
}

.irpf-table tr.is-warning td {
    background: rgba(251, 191, 36, .06);
}

.irpf-table tbody tr:hover td,
.irpf-table tbody tr.active td,
.irpf-table tbody tr.table-active td {
    background: #151d2a !important;
    color: #e5efff !important;
}

.irpf-table tbody tr.is-warning:hover td,
.irpf-table tbody tr.is-warning.active td,
.irpf-table tbody tr.is-warning.table-active td {
    background: rgba(251, 191, 36, .12) !important;
}

.irpf-mobile-list {
    display: grid;
    gap: 12px;
}

.irpf-mobile-card,
.irpf-checklist-item {
    border: 1px solid rgba(148, 163, 184, .18);
    border-radius: 10px;
    background: #0c121d;
    padding: 14px;
}

.irpf-mobile-card small,
.irpf-mobile-card p,
.irpf-checklist-item p {
    color: #9db6dd;
}

.irpf-mobile-values {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 12px 0;
    font-weight: 900;
}

.irpf-checklist-list {
    display: grid;
    gap: 12px;
}

.irpf-checklist-panel .irpf-panel-heading {
    flex-wrap: wrap;
}

.irpf-checklist-title {
    min-width: 0;
}

.irpf-checklist-header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
}

.irpf-checklist-filter-buttons {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: auto;
}

.irpf-checklist-header-actions label {
    color: #9fb0cc;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.irpf-checklist-filter {
    min-width: 160px;
    height: 38px;
    border: 1px solid #223047;
    border-radius: 8px;
    background-color: #111827;
    color: #dbeafe;
    font-weight: 800;
    font-size: .82rem;
}

.irpf-checklist-filter-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid #223047;
    border-radius: 999px;
    background: rgba(15, 23, 42, .72);
    color: #bdd7ff;
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .02rem;
    transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease;
}

.irpf-checklist-filter-btn:hover {
    border-color: rgba(255, 193, 7, .7);
    color: #ffffff;
    transform: translateY(-1px);
}

.irpf-checklist-filter-btn i {
    font-size: .95rem;
}

.irpf-checklist-filter-btn strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    background: rgba(255, 193, 7, .12);
    color: #ffc107;
    font-size: .72rem;
}

.irpf-checklist-filter-btn.is-active {
    border-color: #ffc107;
    background: linear-gradient(135deg, #ffc107, #ffdd5c);
    color: #07111f;
    box-shadow: 0 12px 28px rgba(255, 193, 7, .18);
}

.irpf-checklist-filter-btn.is-active strong {
    background: rgba(7, 17, 31, .14);
    color: #07111f;
}

.irpf-checklist-filter-btn.is-error:not(.is-active) i { color: #fb7185; }
.irpf-checklist-filter-btn.is-warning:not(.is-active) i { color: #fbbf24; }
.irpf-checklist-filter-btn.is-info:not(.is-active) i { color: #60a5fa; }

.irpf-checklist-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
}

.irpf-checklist-content {
    min-width: 0;
}

.irpf-checklist-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
}

.irpf-checklist-item.is-error .irpf-checklist-icon { color: #fecaca; background: rgba(239, 68, 68, .18); }
.irpf-checklist-item.is-warning .irpf-checklist-icon { color: #fde68a; background: rgba(245, 158, 11, .18); }
.irpf-checklist-item.is-info .irpf-checklist-icon { color: #bfdbfe; background: rgba(59, 130, 246, .18); }

.irpf-checklist-resolve-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid rgba(255, 193, 7, .48);
    border-radius: 8px;
    background: rgba(255, 193, 7, .12);
    color: #ffc107;
    padding: 9px 12px;
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
}

.irpf-checklist-resolve-btn:hover {
    border-color: #ffc107;
    background: linear-gradient(135deg, #ffc107, #ffda63);
    color: #111827;
}

.irpf-fiscal-info-form .irpf-fiscal-field {
    display: grid;
    gap: 8px;
}

.irpf-fiscal-info-form label {
    color: #9db6dd;
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.irpf-fiscal-info-form .form-control {
    border: 1px solid #223047;
    border-radius: 8px;
    background: rgba(16, 24, 39, .92);
    color: #f8fafc;
    min-height: 44px;
    font-weight: 800;
}

.irpf-fiscal-info-form .form-control:disabled {
    opacity: .72;
}

.irpf-declaration-list {
    display: grid;
    gap: 16px;
}

.irpf-declaration-card {
    overflow: hidden;
    border: 1px solid #223047;
    border-radius: 8px;
    background: linear-gradient(145deg, #101827, #0b111d);
    box-shadow: 0 22px 46px rgba(0, 0, 0, .24);
}

.irpf-declaration-header {
    display: grid;
    grid-template-columns: minmax(220px, 1.3fr) minmax(150px, .7fr) minmax(150px, .7fr) minmax(180px, .8fr);
    gap: 16px;
    align-items: center;
    width: 100%;
    padding: 16px 18px;
    border: 0;
    border-bottom: 1px solid rgba(148, 163, 184, .16);
    background: rgba(16, 24, 39, .72);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease;
}

.irpf-declaration-header:not(.is-expanded) {
    border-bottom-color: transparent;
}

.irpf-declaration-header:hover {
    background: rgba(20, 30, 47, .92);
}

.irpf-declaration-header strong {
    display: block;
    color: #f8fafc;
    font-weight: 900;
    text-transform: uppercase;
}

.irpf-declaration-header span,
.irpf-declaration-summary span {
    display: block;
    color: #9db6dd;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.irpf-declaration-summary strong {
    color: #f8fafc;
    font-size: 1rem;
}

.irpf-declaration-codes {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 6px;
}

.irpf-declaration-collapse-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid rgba(255, 193, 7, .42);
    border-radius: 8px;
    background: rgba(255, 193, 7, .08);
    color: #ffc107 !important;
    font-size: .9rem !important;
    line-height: 1;
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}

.irpf-declaration-header:hover .irpf-declaration-collapse-icon {
    border-color: rgba(255, 193, 7, .68);
    background: rgba(255, 193, 7, .16);
}

.irpf-declaration-body {
    padding: 14px;
}

.irpf-declaration-text {
    display: inline-block;
    max-width: 430px;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    white-space: nowrap;
}

.irpf-declaration-action,
.irpf-declaration-mobile-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(96, 165, 250, .35);
    border-radius: 8px;
    background: rgba(96, 165, 250, .12);
    color: #bfdbfe;
    font-weight: 900;
    transition: all .18s ease;
}

.irpf-declaration-action {
    width: 34px;
    height: 34px;
}

.irpf-declaration-action:hover,
.irpf-declaration-mobile-action:hover {
    border-color: #ffc107;
    color: #ffc107;
    background: rgba(255, 193, 7, .14);
}

.irpf-declaration-mobile-list {
    display: grid;
    gap: 12px;
}

.irpf-declaration-mobile-card {
    border: 1px solid rgba(148, 163, 184, .18);
    border-radius: 10px;
    background: #0c121d;
    padding: 14px;
}

.irpf-declaration-mobile-card strong {
    color: #f8fafc;
}

.irpf-declaration-mobile-card small,
.irpf-declaration-mobile-card p {
    color: #9db6dd;
}

.irpf-declaration-mobile-action {
    gap: 8px;
    min-height: 38px;
    width: 100%;
}

.irpf-declaration-pagination {
    justify-content: flex-end;
    margin-top: 14px;
}

.irpf-declaration-modal {
    z-index: 1060;
}

.irpf-declaration-backdrop {
    z-index: 1050;
}

.irpf-declaration-modal-content {
    border: 1px solid #223047;
    border-radius: 10px;
    background: linear-gradient(145deg, #101827, #0b111d);
    color: #dbeafe;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .45);
}

.irpf-declaration-modal-content .modal-header,
.irpf-declaration-modal-content .modal-footer {
    border-color: rgba(148, 163, 184, .16);
}

.irpf-declaration-modal-content .modal-title {
    color: #f8fafc;
    font-weight: 900;
}

.irpf-declaration-modal-content .btn-close {
    filter: invert(1);
}

.irpf-declaration-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.irpf-declaration-generated-text p {
    white-space: pre-line;
}

.irpf-declaration-detail-item,
.irpf-declaration-description,
.irpf-declaration-generated-text {
    border: 1px solid rgba(148, 163, 184, .18);
    border-radius: 8px;
    background: rgba(12, 18, 29, .82);
    padding: 12px;
}

.irpf-declaration-description,
.irpf-declaration-generated-text,
.irpf-declaration-copy-success {
    margin-top: 12px;
}

.irpf-declaration-detail-item span,
.irpf-declaration-description span,
.irpf-declaration-generated-text span {
    display: block;
    margin-bottom: 6px;
    color: #9db6dd;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.irpf-declaration-detail-item strong,
.irpf-declaration-description p,
.irpf-declaration-generated-text p {
    margin: 0;
    color: #f8fafc;
    font-weight: 800;
}

.irpf-declaration-detail-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}

.irpf-declaration-detail-label span {
    margin-bottom: 0;
}

.irpf-declaration-field-copy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 1px solid rgba(96, 165, 250, .38);
    border-radius: 7px;
    background: rgba(30, 64, 175, .16);
    color: #93c5fd;
    transition: border-color .2s ease, color .2s ease, background .2s ease;
}

.irpf-declaration-field-copy:hover {
    border-color: rgba(255, 193, 7, .72);
    background: rgba(255, 193, 7, .14);
    color: #ffc107;
}

.irpf-declaration-copy-success {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(34, 197, 94, .34);
    border-radius: 999px;
    background: rgba(34, 197, 94, .14);
    color: #22c55e;
    padding: 8px 12px;
    font-weight: 900;
}

.irpf-declaration-copy-button,
.irpf-declaration-close-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 8px;
    font-weight: 900;
}

.irpf-declaration-copy-button {
    border: 1px solid #ffc107;
    background: linear-gradient(135deg, #ffc107, #ffda63);
    color: #111827;
}

.irpf-declaration-close-button {
    border: 1px solid #223047;
    background: rgba(16, 24, 39, .92);
    color: #dbeafe;
}

body.light-theme .irpf-premium-page {
    color: #0f172a;
}

body.light-theme .irpf-header p,
body.light-theme .irpf-disclaimer,
body.light-theme .irpf-empty,
body.light-theme .irpf-mobile-card small,
body.light-theme .irpf-mobile-card p,
body.light-theme .irpf-checklist-item p {
    color: #475569;
}

body.light-theme .irpf-checklist-header-actions label {
    color: #64748b;
}

body.light-theme .irpf-checklist-filter {
    border-color: #d9e2ef;
    background-color: #ffffff;
    color: #0f172a;
}

body.light-theme .irpf-checklist-filter-btn {
    border-color: #d9e2ef;
    background: #ffffff;
    color: #334155;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}

body.light-theme .irpf-checklist-filter-btn:hover {
    border-color: rgba(255, 193, 7, .72);
    color: #0f172a;
}

body.light-theme .irpf-checklist-filter-btn strong {
    background: rgba(255, 193, 7, .16);
    color: #a16207;
}

body.light-theme .irpf-checklist-filter-btn.is-active {
    border-color: #ffc107;
    background: linear-gradient(135deg, #ffc107, #ffdd5c);
    color: #07111f;
}

body.light-theme .irpf-checklist-resolve-btn {
    border-color: rgba(202, 138, 4, .34);
    background: rgba(255, 193, 7, .14);
    color: #a16207;
}

body.light-theme .irpf-checklist-resolve-btn:hover {
    border-color: #ffc107;
    background: linear-gradient(135deg, #ffc107, #ffdd5c);
    color: #07111f;
}

body.light-theme .irpf-fiscal-info-form label {
    color: #64748b;
}

body.light-theme .irpf-fiscal-info-form .form-control {
    border-color: #d9e2ef;
    background: #ffffff;
    color: #0f172a;
}

body.light-theme .irpf-year-picker,
body.light-theme .irpf-disclaimer,
body.light-theme .irpf-loading,
body.light-theme .irpf-empty,
body.light-theme .irpf-stat-card,
body.light-theme .irpf-panel,
body.light-theme .irpf-mobile-card,
body.light-theme .irpf-checklist-item,
body.light-theme .irpf-orientation-card,
body.light-theme .irpf-orientation-warning,
body.light-theme .irpf-declaration-card,
body.light-theme .irpf-declaration-mobile-card,
body.light-theme .irpf-declaration-modal-content {
    background: linear-gradient(145deg, #ffffff, #f4f7fb);
    border-color: #d9e2ef;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .08);
}

body.light-theme .irpf-year-picker .form-select {
    background-color: #ffffff;
    border-color: #d9e2ef;
    color: #0f172a;
}

body.light-theme .irpf-year-picker small {
    color: #64748b;
}

body.light-theme .irpf-stat-card strong,
body.light-theme .irpf-panel-heading h2,
body.light-theme .irpf-mobile-card strong,
body.light-theme .irpf-orientation-card h3,
body.light-theme .irpf-orientation-warning h3,
body.light-theme .irpf-declaration-header strong,
body.light-theme .irpf-declaration-summary strong,
body.light-theme .irpf-declaration-mobile-card strong,
body.light-theme .irpf-declaration-modal-content .modal-title,
body.light-theme .irpf-declaration-detail-item strong,
body.light-theme .irpf-declaration-description p,
body.light-theme .irpf-declaration-generated-text p {
    color: #0f172a;
}

body.light-theme .irpf-stat-tooltip {
    color: #2563eb;
}

body.light-theme .irpf-orientation-subtitle,
body.light-theme .irpf-orientation-card p,
body.light-theme .irpf-orientation-warning p {
    color: #475569;
}

body.light-theme .irpf-orientation-card span,
body.light-theme .irpf-orientation-warning span {
    color: #2563eb;
}

body.light-theme .irpf-orientation-icon {
    border-color: rgba(245, 158, 11, .42);
    background: rgba(245, 158, 11, .10);
    color: #b45309 !important;
}

body.light-theme .irpf-orientation-warning {
    border-color: rgba(245, 158, 11, .34);
    background: linear-gradient(145deg, #fff7ed, #ffffff);
}

body.light-theme .irpf-tabs {
    background: #eef2f8;
    border-color: #d9e2ef;
}

body.light-theme .irpf-tabs button {
    color: #334155;
}

body.light-theme .irpf-conference-note {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #334155;
}

body.light-theme .irpf-chart-shell,
body.light-theme .irpf-table {
    background: #ffffff;
    border-color: #d9e2ef;
}

body.light-theme .irpf-table {
    --bs-table-bg: #ffffff;
    --bs-table-color: #0f172a;
    --bs-table-striped-bg: #ffffff;
    --bs-table-striped-color: #0f172a;
    --bs-table-hover-bg: #eef4fb;
    --bs-table-hover-color: #0f172a;
    --bs-table-active-bg: #eef4fb;
    --bs-table-active-color: #0f172a;
}

body.light-theme .irpf-table thead th {
    background: #eef2f8 !important;
    color: #334155;
}

body.light-theme .irpf-table tbody td {
    background: #ffffff !important;
    color: #0f172a;
    border-bottom-color: rgba(15, 23, 42, .18);
}

body.light-theme .irpf-table tbody tr:hover td,
body.light-theme .irpf-table tbody tr.active td,
body.light-theme .irpf-table tbody tr.table-active td {
    background: #eef4fb !important;
    color: #0f172a !important;
}

body.light-theme .irpf-table tbody tr.is-warning td {
    background: rgba(251, 191, 36, .12) !important;
}

body.light-theme .irpf-table tbody tr.is-warning:hover td,
body.light-theme .irpf-table tbody tr.is-warning.active td,
body.light-theme .irpf-table tbody tr.is-warning.table-active td {
    background: rgba(251, 191, 36, .18) !important;
}

body.light-theme .irpf-declaration-header {
    background: #f8fafc;
    border-bottom-color: rgba(15, 23, 42, .1);
}

body.light-theme .irpf-declaration-header:not(.is-expanded) {
    border-bottom-color: transparent;
}

body.light-theme .irpf-declaration-header:hover {
    background: #eef4fb;
}

body.light-theme .irpf-declaration-collapse-icon {
    border-color: rgba(245, 158, 11, .42);
    background: rgba(245, 158, 11, .1);
    color: #b45309 !important;
}

body.light-theme .irpf-declaration-header:hover .irpf-declaration-collapse-icon {
    border-color: rgba(245, 158, 11, .7);
    background: rgba(245, 158, 11, .18);
}

body.light-theme .irpf-declaration-header span,
body.light-theme .irpf-declaration-summary span,
body.light-theme .irpf-declaration-mobile-card small,
body.light-theme .irpf-declaration-mobile-card p,
body.light-theme .irpf-declaration-detail-item span,
body.light-theme .irpf-declaration-description span,
body.light-theme .irpf-declaration-generated-text span {
    color: #64748b;
}

body.light-theme .irpf-declaration-detail-item,
body.light-theme .irpf-declaration-description,
body.light-theme .irpf-declaration-generated-text {
    background: #ffffff;
    border-color: #d9e2ef;
}

body.light-theme .irpf-declaration-action,
body.light-theme .irpf-declaration-mobile-action {
    background: #ffffff;
    border-color: #d9e2ef;
    color: #2563eb;
}

body.light-theme .irpf-declaration-close-button {
    background: #ffffff;
    border-color: #d9e2ef;
    color: #0f172a;
}

body.light-theme .irpf-declaration-modal-content .btn-close {
    filter: none;
}

body.light-theme .irpf-declaration-field-copy {
    border-color: rgba(37, 99, 235, .24);
    background: rgba(37, 99, 235, .08);
    color: #2563eb;
}

body.light-theme .irpf-declaration-field-copy:hover {
    border-color: rgba(255, 193, 7, .72);
    background: rgba(255, 193, 7, .18);
    color: #92400e;
}

@media (max-width: 1199px) {
    .irpf-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .irpf-orientation-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .irpf-declaration-header {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .irpf-declaration-codes {
        justify-content: flex-start;
    }
}

@media (max-width: 991px) {
    .irpf-checklist-panel .irpf-panel-heading {
        align-items: center;
    }

    .irpf-checklist-title {
        flex: 1 1 0;
    }

    .irpf-checklist-panel .irpf-panel-heading .irpf-count {
        order: 2;
        margin-left: 0;
    }

    .irpf-checklist-mobile-filter {
        flex: 0 0 100%;
        order: 3;
        justify-content: flex-end;
        margin-left: 0;
        margin-top: 0px;
    }

    .irpf-checklist-mobile-filter .irpf-checklist-filter {
        flex: 0 1 180px;
        min-width: 0;
    }
}

@media (max-width: 767px) {
    .irpf-premium-page {
        padding: 18px 10px 20px;
    }

    .irpf-header {
        flex-direction: column;
    }

    .irpf-year-picker {
        width: 100%;
    }

    .irpf-summary-grid {
        grid-template-columns: 1fr;
    }

    .irpf-orientation-grid {
        grid-template-columns: 1fr;
    }

    .irpf-tabs {
        justify-content: space-between;
        overflow-x: visible;
        gap: 6px;
    }

    .irpf-tabs button {
        flex: 1 1 0;
        justify-content: center;
        min-width: 0;
        min-height: 42px;
        padding: 10px;
    }

    .irpf-tabs button i {
        font-size: 1rem;
    }

    .irpf-tab-label {
        display: none;
    }

    .irpf-checklist-mobile-filter {
        order: 3;
        flex: 0 0 100%;
        justify-content: flex-end;
        margin-left: 0;
        margin-top: 10px;
    }

    .irpf-checklist-mobile-filter .irpf-checklist-filter {
        flex: 0 1 170px;
        min-width: 0;
    }

    .irpf-checklist-item {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .irpf-checklist-resolve-btn {
        grid-column: 2;
        justify-self: flex-start;
    }

    .irpf-declaration-header {
        grid-template-columns: 1fr;
    }

    .irpf-declaration-detail-grid {
        grid-template-columns: 1fr;
    }

    .irpf-declaration-pagination {
        justify-content: space-between;
    }
}
