/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-j53tkqdt0l],
.components-reconnect-repeated-attempt-visible[b-j53tkqdt0l],
.components-reconnect-failed-visible[b-j53tkqdt0l],
.components-pause-visible[b-j53tkqdt0l],
.components-resume-failed-visible[b-j53tkqdt0l],
.components-rejoining-animation[b-j53tkqdt0l] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-j53tkqdt0l],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-j53tkqdt0l],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-j53tkqdt0l],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-j53tkqdt0l],
#components-reconnect-modal.components-reconnect-retrying[b-j53tkqdt0l],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-j53tkqdt0l],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-j53tkqdt0l],
#components-reconnect-modal.components-reconnect-failed[b-j53tkqdt0l],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-j53tkqdt0l] {
    display: block;
}


#components-reconnect-modal[b-j53tkqdt0l] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-j53tkqdt0l 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-j53tkqdt0l 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-j53tkqdt0l 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-j53tkqdt0l]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-j53tkqdt0l 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-j53tkqdt0l {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-j53tkqdt0l {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-j53tkqdt0l {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-j53tkqdt0l] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-j53tkqdt0l] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-j53tkqdt0l] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-j53tkqdt0l] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-j53tkqdt0l] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-j53tkqdt0l] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-j53tkqdt0l] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-j53tkqdt0l 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-j53tkqdt0l] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-j53tkqdt0l {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Features/Auth/Pages/CadastroPage.razor.rz.scp.css */
/* ================================================================
   CadastroPage — Brand panel na DIREITA, form na ESQUERDA
   Animação: painel revela-se da direita → esquerda (clip-path wipe)
   ================================================================ */

/* ── Posicionamento ─────────────────────────────────────── */
.login-brand-side[b-3cb604lmpx] {
    order: 2;
    /* Sombra interna na borda esquerda do painel (voltada para o form) */
    box-shadow: inset 12px 0 40px rgba(0, 0, 0, 0.12);
    animation: register-panel-reveal-b-3cb604lmpx 0.8s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.login-form-side[b-3cb604lmpx] {
    order: 1;
    animation: register-form-reveal-b-3cb604lmpx 0.65s ease 0.1s both;
}

.brand-content[b-3cb604lmpx] {
    animation: register-brand-enter-b-3cb604lmpx 0.7s ease 0.25s both;
}

/* ── Animação do painel colorido: wipe da direita para a esquerda ── */
@keyframes register-panel-reveal-b-3cb604lmpx {
    from { clip-path: inset(0 0 0 100%); }
    to   { clip-path: inset(0 0 0 0%);   }
}

/* ── Animação do formulário: desliza da esquerda ─────── */
@keyframes register-form-reveal-b-3cb604lmpx {
    from {
        opacity: 0;
        transform: translateX(-36px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* ── Conteúdo da brand: surge do centro com leve escala ─ */
@keyframes register-brand-enter-b-3cb604lmpx {
    from {
        opacity: 0;
        transform: scale(0.88) translateY(16px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* ── Scroll no formulário quando o conteúdo ultrapassar a tela ── */
.register-form-side[b-3cb604lmpx] {
    align-items: flex-start !important;
    overflow-y: auto;
    padding: 3rem 2rem !important;
}

/* ── Campos lado a lado (CPF + Data de nascimento) ──── */
.form-row[b-3cb604lmpx] {
    display: flex;
    gap: 1rem;
}

.form-group--half[b-3cb604lmpx] {
    flex: 1;
    min-width: 0;
}

@media (max-width: 600px) {
    .form-row[b-3cb604lmpx] {
        flex-direction: column;
        gap: 0;
    }
}

/* ── Estado de sucesso ────────────────────────────────── */
.success-state[b-3cb604lmpx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1rem 0;
    gap: 1rem;
}

.success-state h2[b-3cb604lmpx] {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--dark-navy);
    margin: 0;
}

.success-state p[b-3cb604lmpx] {
    color: var(--text-gray);
    font-size: 0.95rem;
    max-width: 340px;
    line-height: 1.6;
}

/* /Features/Auth/Pages/ConfirmarEmailPage.razor.rz.scp.css */
/* ================================================================
   ConfirmarEmailPage — Spinner tipo arco, fireworks canvas, check
   Design system: --primary #594AE8 | fonte: Outfit
   ================================================================ */



/* ── Card ─────────────────────────────────────────────────── */
.confirm-card[b-78bo6tj5o7] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 380px;
}

.confirm-anim-wrap[b-78bo6tj5o7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.5rem;
    width: 100%;
}

/* ══════════════════════════════════════════════════════════════
   ESTADO 1 — Spinner com arco (igual à referência)
   ══════════════════════════════════════════════════════════════ */
.confirm-ring-wrap[b-78bo6tj5o7] {
    position: relative;
    width: 140px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.confirm-ring-svg[b-78bo6tj5o7] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    animation: ringRotate-b-78bo6tj5o7 1.4s linear infinite;
    transform-origin: center;
}

.confirm-ring-track[b-78bo6tj5o7] {
    fill: none;
    stroke: #e5e4ff;
    stroke-width: 5;
}

.confirm-ring-arc[b-78bo6tj5o7] {
    fill: none;
    stroke: var(--primary, #594AE8);
    stroke-width: 5;
    stroke-linecap: round;
    /* circunferência ≈ 2π×52 ≈ 327 */
    stroke-dasharray: 327;
    stroke-dashoffset: 245;
    transform-origin: center;
}

@keyframes ringRotate-b-78bo6tj5o7 {
    to { transform: rotate(360deg); }
}

/* ── Orb central (compartilhado entre estados) ─────────────── */
.confirm-orb[b-78bo6tj5o7] {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary, #594AE8) 0%, #3632b0 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 32px rgba(89, 74, 232, 0.4);
    position: relative;
    z-index: 2;
    transition: background 0.5s ease, box-shadow 0.5s ease;
}

/* ══════════════════════════════════════════════════════════════
   ESTADO 2 — Fireworks
   ══════════════════════════════════════════════════════════════ */
.confirm-fw-wrap[b-78bo6tj5o7] {
    position: relative;
    width: 260px;
    height: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.confirm-fw-canvas[b-78bo6tj5o7] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.confirm-orb--pulse[b-78bo6tj5o7] {
    animation: orbPulse-b-78bo6tj5o7 0.6s ease-out both;
}

@keyframes orbPulse-b-78bo6tj5o7 {
    0%   { transform: scale(0.85); box-shadow: 0 0 0 0 rgba(89,74,232,0.6); }
    60%  { transform: scale(1.12); box-shadow: 0 0 0 24px rgba(89,74,232,0); }
    100% { transform: scale(1);    box-shadow: 0 6px 32px rgba(89,74,232,0.4); }
}

/* ══════════════════════════════════════════════════════════════
   ESTADO 3 — Check final (verde, como na referência)
   ══════════════════════════════════════════════════════════════ */
.confirm-check-wrap[b-78bo6tj5o7] {
    position: relative;
    width: 160px;
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: checkWrapIn-b-78bo6tj5o7 0.55s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes checkWrapIn-b-78bo6tj5o7 {
    from { transform: scale(0.5); opacity: 0; }
    to   { transform: scale(1);   opacity: 1; }
}

/* Halo externo translúcido — anel ao redor da orb */
.confirm-check-wrap[b-78bo6tj5o7]::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    opacity: 0;
    animation: haloExpand-b-78bo6tj5o7 0.6s ease 0.3s forwards;
}

@keyframes haloExpand-b-78bo6tj5o7 {
    from { transform: scale(0.7); opacity: 0; }
    to   { transform: scale(1);   opacity: 1; }
}

/* Halo verde para sucesso */
.confirm-check-wrap--success[b-78bo6tj5o7]::before {
    background: rgba(52, 181, 113, 0.15);
}

/* Halo vermelho para erro */
.confirm-check-wrap--error[b-78bo6tj5o7]::before {
    background: rgba(241, 96, 99, 0.15);
}

.confirm-orb--success[b-78bo6tj5o7] {
    width: 110px;
    height: 110px;
    background: #34B571;
    box-shadow: 0 4px 24px rgba(52, 181, 113, 0.4);
}

.confirm-orb--error[b-78bo6tj5o7] {
    width: 110px;
    height: 110px;
    background: #F16063;
    box-shadow: 0 4px 24px rgba(241, 96, 99, 0.4);
}

/* SVG check/X dentro da orb */
.check-svg[b-78bo6tj5o7] {
    width: 54px;
    height: 54px;
    overflow: visible;
}

.check-path[b-78bo6tj5o7] {
    stroke: #ffffff;
    stroke-width: 6;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
    stroke-dasharray: 80;
    stroke-dashoffset: 80;
    animation: drawStroke-b-78bo6tj5o7 0.45s cubic-bezier(0.4, 0, 0.2, 1) 0.35s forwards;
}

.check-path--delay[b-78bo6tj5o7] {
    animation-delay: 0.55s;
}

@keyframes drawStroke-b-78bo6tj5o7 {
    to { stroke-dashoffset: 0; }
}

/* ══════════════════════════════════════════════════════════════
   Textos das fases — fonte Outfit, igual ao design system
   ══════════════════════════════════════════════════════════════ */
.confirm-text-block[b-78bo6tj5o7] {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    min-height: 3.5rem;
}

.confirm-phase-title[b-78bo6tj5o7] {
    font-family: 'Outfit', sans-serif;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--dark-navy, #191925);
    margin: 0;
}

.confirm-phase-sub[b-78bo6tj5o7] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.92rem;
    font-weight: 400;
    color: var(--text-gray, #8A8B9D);
    margin: 0;
}

.confirm-phase-title.fade-in[b-78bo6tj5o7],
.confirm-phase-sub.fade-in[b-78bo6tj5o7] {
    animation: stepFadeIn-b-78bo6tj5o7 0.35s ease both;
}

.confirm-phase-title.fade-out[b-78bo6tj5o7],
.confirm-phase-sub.fade-out[b-78bo6tj5o7] {
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

@keyframes stepFadeIn-b-78bo6tj5o7 {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0);    }
}

.error-sub[b-78bo6tj5o7] {
    color: var(--red, #F16063) !important;
}

/* ── Botão de ação final ───────────────────────────────────── */
.confirm-btn[b-78bo6tj5o7] {
    margin-top: 0.5rem;
}

/* /Features/Auth/Pages/LoginPage.razor.rz.scp.css */
/* ================================================================
   LoginPage — Brand panel na ESQUERDA, formulário na DIREITA
   Animação: painel revela-se da esquerda → direita (clip-path wipe)
   ================================================================ */

/* ── Posicionamento ─────────────────────────────────────── */
.login-brand-side[b-59n8vcdq9y] {
    /* Sombra interna na borda direita do painel (voltada para o form) */
    box-shadow: inset -12px 0 40px rgba(0, 0, 0, 0.12);
    animation: login-panel-reveal-b-59n8vcdq9y 0.8s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.login-form-side[b-59n8vcdq9y] {
    animation: login-form-reveal-b-59n8vcdq9y 0.65s ease 0.1s both;
}

.brand-content[b-59n8vcdq9y] {
    animation: login-brand-enter-b-59n8vcdq9y 0.7s ease 0.25s both;
}

/* ── Animação do painel colorido: wipe da esquerda para a direita ── */
@keyframes login-panel-reveal-b-59n8vcdq9y {
    from { clip-path: inset(0 100% 0 0); }
    to   { clip-path: inset(0 0%   0 0); }
}

/* ── Animação do formulário: desliza da direita ─────────── */
@keyframes login-form-reveal-b-59n8vcdq9y {
    from {
        opacity: 0;
        transform: translateX(36px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* ── Conteúdo da brand: surge do centro com leve escala ─── */
@keyframes login-brand-enter-b-59n8vcdq9y {
    from {
        opacity: 0;
        transform: scale(0.88) translateY(16px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}
/* /Features/Home/Pages/PaginaHome.razor.rz.scp.css */
/* =============================================
   Dashboard Home — estilos específicos da feature
   ============================================= */

.home-grid[b-348028dyyd] {
    display: grid;
    grid-template-columns: 280px 1fr;
    grid-template-rows: auto;
    gap: 20px;
    padding: 24px;
    align-items: start;
}

/* ── Coluna esquerda ── */
.home-left[b-348028dyyd] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Card de perfil */
.profile-card[b-348028dyyd] {
    background: linear-gradient(145deg, var(--primary) 0%, #7B6FF0 100%);
    border-radius: 20px;
    padding: 24px;
    color: var(--white);
    position: relative;
    overflow: hidden;
}

.profile-card[b-348028dyyd]::before {
    content: '';
    position: absolute;
    top: -40px;
    right: -40px;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
}

.profile-avatar[b-348028dyyd] {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255,255,255,0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    border: 3px solid rgba(255,255,255,0.4);
}

.profile-label[b-348028dyyd] {
    font-size: 12px;
    opacity: 0.75;
    margin-bottom: 4px;
}

.profile-name[b-348028dyyd] {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 4px;
}

.profile-sub[b-348028dyyd] {
    font-size: 12px;
    opacity: 0.65;
    margin-bottom: 20px;
}

.profile-actions[b-348028dyyd] {
    display: flex;
    gap: 10px;
}

.profile-btn[b-348028dyyd] {
    flex: 1;
    padding: 8px 0;
    border-radius: 20px;
    border: none;
    font-size: 13px;
    font-weight: 600;
    font-family: 'Outfit', sans-serif;
    cursor: pointer;
    transition: 0.2s;
}

.profile-btn-outline[b-348028dyyd] {
    background: transparent;
    border: 1.5px solid rgba(255,255,255,0.5);
    color: var(--white);
}

.profile-btn-solid[b-348028dyyd] {
    background: rgba(255,255,255,0.2);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

/* Card My Cards */
.my-cards-card[b-348028dyyd] {
    background: var(--white);
    border-radius: 20px;
    padding: 20px;
}

.my-cards-header[b-348028dyyd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.my-cards-title[b-348028dyyd] {
    font-size: 15px;
    font-weight: 700;
    color: var(--dark-navy);
}

.my-cards-add[b-348028dyyd] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--dark-navy);
    color: var(--white);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.card-stack[b-348028dyyd] {
    position: relative;
    height: 160px;
}

.bank-card[b-348028dyyd] {
    border-radius: 16px;
    padding: 18px;
    width: 100%;
    height: 150px;
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.bank-card-back[b-348028dyyd] {
    background: linear-gradient(135deg, #E8E4FF 0%, #C8C2F8 100%);
    top: 10px;
    left: 6px;
    width: calc(100% - 12px);
    opacity: 0.6;
    z-index: 0;
}

.bank-card-front[b-348028dyyd] {
    background: linear-gradient(135deg, var(--primary) 0%, #7B6FF0 100%);
    top: 0;
    left: 0;
    z-index: 1;
    color: var(--white);
}

.card-brand-row[b-348028dyyd] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.card-brand-circles[b-348028dyyd] {
    display: flex;
}

.card-brand-circles span[b-348028dyyd] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: block;
}

.card-brand-circles span:first-child[b-348028dyyd] {
    background: #EB001B;
    z-index: 1;
}

.card-brand-circles span:last-child[b-348028dyyd] {
    background: #F79E1B;
    margin-left: -8px;
}

.card-chip[b-348028dyyd] {
    width: 28px;
    height: 22px;
    background: rgba(255,255,255,0.35);
    border-radius: 5px;
}

.card-number-label[b-348028dyyd] {
    font-size: 10px;
    opacity: 0.7;
    margin-bottom: 2px;
}

.card-number[b-348028dyyd] {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 2px;
}

.card-footer-row[b-348028dyyd] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.card-holder[b-348028dyyd] {
    font-size: 12px;
    font-weight: 600;
}

.card-network[b-348028dyyd] {
    font-size: 16px;
    font-weight: 800;
    font-style: italic;
}

/* ── Coluna direita ── */
.home-right[b-348028dyyd] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Cards de resumo (Total Balance, Income, Expend) */
.summary-row[b-348028dyyd] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.summary-card[b-348028dyyd] {
    background: var(--white);
    border-radius: 16px;
    padding: 20px;
}

.summary-card-header[b-348028dyyd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.summary-card-title-row[b-348028dyyd] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.summary-icon[b-348028dyyd] {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.summary-icon-purple[b-348028dyyd] { background: var(--primary-light); color: var(--primary); }
.summary-icon-green[b-348028dyyd]  { background: var(--green-light);   color: var(--green);   }
.summary-icon-orange[b-348028dyyd] { background: #FFF3E0;               color: #FF9800;        }

.summary-card-label[b-348028dyyd] {
    font-size: 13px;
    color: var(--text-gray);
    font-weight: 500;
}

.summary-card-menu[b-348028dyyd] {
    color: var(--text-gray);
    cursor: pointer;
    font-size: 18px;
}

.summary-value[b-348028dyyd] {
    font-size: 24px;
    font-weight: 700;
    color: var(--dark-navy);
    margin-bottom: 8px;
}

.summary-footer[b-348028dyyd] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.summary-footer-label[b-348028dyyd] {
    font-size: 12px;
    color: var(--text-gray);
}

.badge[b-348028dyyd] {
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
}

.badge-green[b-348028dyyd] { background: var(--green-light); color: var(--green); }
.badge-red[b-348028dyyd]   { background: var(--red-light);   color: var(--red);   }

/* Linha inferior: Activity + Recent Transactions */
.bottom-row[b-348028dyyd] {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 16px;
}

/* Activity Summary */
.activity-card[b-348028dyyd] {
    background: var(--white);
    border-radius: 16px;
    padding: 20px;
}

.activity-header[b-348028dyyd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.activity-title[b-348028dyyd] {
    font-size: 15px;
    font-weight: 700;
    color: var(--dark-navy);
}

.period-switch[b-348028dyyd] {
    display: flex;
    background: var(--bg-darker);
    border-radius: 20px;
    padding: 3px;
    gap: 2px;
}

.period-btn[b-348028dyyd] {
    padding: 5px 14px;
    border-radius: 16px;
    border: none;
    font-size: 12px;
    font-weight: 600;
    font-family: 'Outfit', sans-serif;
    cursor: pointer;
    background: transparent;
    color: var(--text-gray);
    transition: 0.2s;
}

.period-btn.active[b-348028dyyd] {
    background: var(--dark-navy);
    color: var(--white);
}

.bar-chart[b-348028dyyd] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    height: 160px;
    padding: 0 8px;
}

.bar-group[b-348028dyyd] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex: 1;
}

.bar-wrap[b-348028dyyd] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    height: 140px;
    width: 100%;
    position: relative;
}

.bar-tooltip[b-348028dyyd] {
    font-size: 10px;
    font-weight: 700;
    color: var(--dark-navy);
    margin-bottom: 4px;
    white-space: nowrap;
}

.bar-inner[b-348028dyyd] {
    width: 100%;
    border-radius: 8px 8px 0 0;
    position: relative;
    overflow: hidden;
}

.bar-light[b-348028dyyd] {
    background: var(--primary-light);
    width: 100%;
    border-radius: 8px 8px 0 0;
}

.bar-dark[b-348028dyyd] {
    background: var(--primary);
    border-radius: 6px 6px 0 0;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
}

.bar-label[b-348028dyyd] {
    font-size: 11px;
    color: var(--text-gray);
}

/* Recent Transactions */
.transactions-card[b-348028dyyd] {
    background: var(--white);
    border-radius: 16px;
    padding: 20px;
}

.transactions-header[b-348028dyyd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.transactions-title[b-348028dyyd] {
    font-size: 15px;
    font-weight: 700;
    color: var(--dark-navy);
}

.transaction-item[b-348028dyyd] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--bg-darker);
}

.transaction-item:last-child[b-348028dyyd] {
    border-bottom: none;
}

.transaction-logo[b-348028dyyd] {
    width: 36px;
    height: 22px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 800;
    flex-shrink: 0;
}

.logo-visa[b-348028dyyd]       { background: #1A1F71; color: #fff; }
.logo-mastercard[b-348028dyyd] { background: #252525; color: #fff; }
.logo-paypal[b-348028dyyd]     { background: #009CDE; color: #fff; }

.transaction-info[b-348028dyyd] {
    flex: 1;
}

.transaction-name[b-348028dyyd] {
    font-size: 13px;
    font-weight: 600;
    color: var(--dark-navy);
}

.transaction-date[b-348028dyyd] {
    font-size: 11px;
    color: var(--text-gray);
}

.transaction-amount[b-348028dyyd] {
    font-size: 13px;
    font-weight: 700;
}

.amount-positive[b-348028dyyd] { color: var(--green); }
.amount-negative[b-348028dyyd] { color: var(--red);   }

/* Segunda fileira inferior */
.bottom-row-2[b-348028dyyd] {
    display: grid;
    grid-template-columns: 1fr 280px 220px;
    gap: 16px;
}

/* Monthly Trend */
.trend-card[b-348028dyyd] {
    background: var(--white);
    border-radius: 16px;
    padding: 20px;
}

.trend-title[b-348028dyyd] {
    font-size: 15px;
    font-weight: 700;
    color: var(--dark-navy);
    margin-bottom: 4px;
}

.trend-sub[b-348028dyyd] {
    font-size: 12px;
    color: #FF9800;
    margin-bottom: 16px;
}

.line-chart[b-348028dyyd] {
    height: 120px;
    display: flex;
    align-items: flex-end;
    gap: 0;
    position: relative;
}

.line-chart-legend[b-348028dyyd] {
    display: flex;
    gap: 16px;
    margin-top: 12px;
}

.legend-item[b-348028dyyd] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: var(--text-gray);
}

.legend-dot[b-348028dyyd] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.dot-income[b-348028dyyd]   { background: var(--primary); }
.dot-expense[b-348028dyyd]  { background: #FF9800; }
.dot-saving[b-348028dyyd]   { background: var(--red); }

/* SVG line chart */
.chart-svg[b-348028dyyd] {
    width: 100%;
    height: 120px;
    overflow: visible;
}

/* Where Money Went (donut) */
.donut-card[b-348028dyyd] {
    background: var(--white);
    border-radius: 16px;
    padding: 20px;
}

.donut-title[b-348028dyyd] {
    font-size: 13px;
    font-weight: 700;
    color: var(--dark-navy);
    margin-bottom: 12px;
}

.donut-wrap[b-348028dyyd] {
    display: flex;
    justify-content: center;
    position: relative;
    margin-bottom: 12px;
}

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

.donut-center-value[b-348028dyyd] {
    font-size: 15px;
    font-weight: 700;
    color: var(--dark-navy);
}

.donut-legend[b-348028dyyd] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 12px;
}

.donut-legend-item[b-348028dyyd] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 10px;
    color: var(--text-gray);
}

.donut-dot[b-348028dyyd] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* Financial Adviser */
.adviser-card[b-348028dyyd] {
    background: linear-gradient(145deg, #3D3580 0%, var(--primary) 100%);
    border-radius: 16px;
    padding: 20px;
    color: var(--white);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.adviser-icon-row[b-348028dyyd] {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.adviser-icon[b-348028dyyd] {
    width: 36px;
    height: 36px;
    background: rgba(255,255,255,0.15);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.adviser-title[b-348028dyyd] {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 8px;
}

.adviser-text[b-348028dyyd] {
    font-size: 12px;
    opacity: 0.8;
    line-height: 1.5;
    margin-bottom: 16px;
}

.adviser-link[b-348028dyyd] {
    font-size: 12px;
    font-weight: 700;
    color: var(--white);
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.4);
    padding-bottom: 2px;
    display: inline-block;
}
