@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");


:root {
    --navy: #071f3d;
    --navy-2: #0b2f5b;
    --navy-3: #123a74;

    --gold: #d6b45e;

    --green: #0ba875;
    --red: #ff4b55;
    --blue: #3f8ff7;
    --purple: #9b5de5;

    --bg: #f5f8fc;
    --text: #10203a;
    --muted: #71809b;
    --border: #dce5ef;

    --shadow:
        0 8px 26px
        rgba(24, 60, 105, 0.07);
}


/* =========================================================
   BASE
   ========================================================= */

* {
    box-sizing: border-box;
}


html,
body,
#react-entry-point {
    margin: 0;

    min-height: 100%;

    background: var(--bg);

    font-family:
        "Inter",
        "Segoe UI",
        Arial,
        sans-serif;

    color: var(--text);
}


body {
    overflow-x: hidden;
}


.app-shell {
    min-height: 100vh;

    display: flex;
}


/* =========================================================
   SIDEBAR
   ========================================================= */

.sidebar {
    position: fixed;

    inset:
        0
        auto
        0
        0;

    width: 214px;

    padding:
        20px
        10px
        14px;

    display: flex;

    flex-direction: column;

    overflow: hidden;

    isolation: isolate;

    z-index: 20;

    color: #ffffff;

    background:
        radial-gradient(
            circle at 18% 82%,
            rgba(82, 156, 222, 0.15),
            transparent 30%
        ),

        radial-gradient(
            circle at 86% 58%,
            rgba(68, 137, 203, 0.12),
            transparent 32%
        ),

        linear-gradient(
            180deg,
            #061d38 0%,
            #082b52 52%,
            #06213f 100%
        );
}


.sidebar > * {
    position: relative;

    z-index: 3;
}


/* =========================================================
   NÉVOA PRINCIPAL
   ========================================================= */

.sidebar::before {
    content: "";

    position: absolute;

    pointer-events: none;

    z-index: 1;

    width: 450px;
    height: 640px;

    left: -210px;
    bottom: -30px;

    border-radius: 50%;

    opacity: 0.48;

    filter:
        blur(14px);

    background:
        radial-gradient(
            ellipse at 28% 27%,
            rgba(
                255,
                255,
                255,
                0.48
            ) 0%,

            rgba(
                255,
                255,
                255,
                0.37
            ) 8%,

            rgba(
                221,
                239,
                253,
                0.25
            ) 20%,

            rgba(
                158,
                203,
                240,
                0.10
            ) 37%,

            transparent 57%
        ),

        radial-gradient(
            ellipse at 62% 62%,

            rgba(
                255,
                255,
                255,
                0.35
            ) 0%,

            rgba(
                211,
                233,
                251,
                0.19
            ) 21%,

            rgba(
                151,
                197,
                235,
                0.08
            ) 38%,

            transparent 54%
        );

    animation:
        dinisFogSoft
        30s
        ease-in-out
        infinite
        alternate;

    will-change:
        transform,
        opacity;
}


/* =========================================================
   NÉVOA SECUNDÁRIA
   ========================================================= */

.sidebar::after {
    content: "";

    position: absolute;

    pointer-events: none;

    z-index: 2;

    width: 340px;
    height: 480px;

    right: -205px;
    bottom: 145px;

    border-radius: 50%;

    opacity: 0.19;

    filter:
        blur(17px);

    background:
        radial-gradient(
            ellipse at 45% 45%,

            rgba(
                255,
                255,
                255,
                0.34
            ) 0%,

            rgba(
                213,
                234,
                251,
                0.16
            ) 24%,

            transparent 52%
        );
}


@keyframes dinisFogSoft {

    0% {
        transform:
            translate3d(
                -12px,
                18px,
                0
            )
            scale(0.97);

        opacity: 0.36;
    }

    48% {
        transform:
            translate3d(
                13px,
                -9px,
                0
            )
            scale(1.03);

        opacity: 0.49;
    }

    100% {
        transform:
            translate3d(
                28px,
                -35px,
                0
            )
            scale(1.07);

        opacity: 0.41;
    }
}


/* =========================================================
   LOGO / MARCA
   ========================================================= */

.brand-zone {
    padding:
        2px
        14px
        18px;

    border-bottom:
        1px solid
        rgba(
            255,
            255,
            255,
            0.08
        );

    display: flex;

    flex-direction: column;

    align-items: center;
}


.logo-wrap {
    width: 100%;

    height: 76px;

    min-height: 76px;
    max-height: 76px;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: visible;
}


.sidebar-logo-icon {
    width: 72px;

    height: 72px;

    max-width: 72px;
    max-height: 72px;

    object-fit: contain;

    display: block;

    flex:
        0
        0
        auto;

    background: transparent;

    border: 0;

    filter:
        drop-shadow(
            0
            7px
            14px
            rgba(
                0,
                0,
                0,
                0.24
            )
        );
}


.workspace-word {
    margin-top: 14px;

    color: var(--gold);

    font-size: 16px;

    line-height: 1;

    font-weight: 800;

    letter-spacing: 0.11em;

    text-align: center;

    text-transform: uppercase;
}


/* =========================================================
   MENU
   ========================================================= */

.sidebar-nav {
    display: grid;

    gap: 4px;

    margin-top: 14px;
}


.nav-item {
    height: 43px;

    padding:
        0
        13px;

    border-radius: 9px;

    display: flex;

    align-items: center;

    gap: 11px;

    color: #dbe6f4;

    font-size: 13px;
}


.nav-item.active {
    background: #0f4a87;

    box-shadow:
        inset
        3px
        0
        0
        var(--gold);
}


.nav-icon {
    width: 18px;

    text-align: center;

    color: #f0cc70;
}


.beta {
    margin-left: auto;

    padding:
        4px
        6px;

    border-radius: 5px;

    background: #e7c25c;

    color: #17304f;

    font-size: 9px;

    font-weight: 800;
}


.nav-section {
    margin:
        21px
        14px
        4px;

    color: #91a7c2;

    font-size: 10px;
}


.secondary {
    margin-top: 7px;
}


/* =========================================================
   RODAPÉ
   ========================================================= */

.sidebar-footer {
    margin-top: auto;

    padding:
        14px
        14px
        2px;

    border-top:
        1px solid
        rgba(
            255,
            255,
            255,
            0.08
        );

    display: grid;

    gap: 6px;
}


.sidebar-footer strong {
    font-size: 12px;
}


.sidebar-footer span {
    color: #a2b6cc;

    font-size: 10px;
}


/* =========================================================
   MAIN
   ========================================================= */

.main {
    margin-left: 214px;

    width:
        calc(
            100%
            - 214px
        );

    padding:
        14px
        16px
        22px;
}


/* =========================================================
   HEADER
   ========================================================= */

.header {
    max-width: 1600px;

    margin:
        0
        auto
        12px;

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 14px;
}


.header > div:first-child {
    min-width: 0;
}


.header h1 {
    margin: 0;

    color: #0b2c55;

    font-size: 30px;

    letter-spacing: -0.04em;
}


.header p {
    margin:
        5px
        0
        0;

    color: #637795;

    font-size: 12.5px;
}


.header-actions {
    display: flex;

    gap: 8px;

    align-items: stretch;

    flex-wrap: nowrap;

    flex-shrink: 0;
}


/* =========================================================
   INFO CARDS
   ========================================================= */

.info-card,
.workspace-card {
    min-height: 60px;

    background: #ffffff;

    border:
        1px solid
        var(--border);

    border-radius: 11px;

    box-shadow:
        0
        3px
        14px
        rgba(
            30,
            65,
            110,
            0.04
        );
}


.info-card {
    min-width: 142px;

    padding:
        8px
        11px;

    display: flex;

    align-items: center;

    gap: 9px;
}


.info-icon {
    color: var(--navy-3);

    font-size: 21px;
}


.info-card > div {
    display: grid;

    gap: 4px;
}


.info-title {
    color: #6b7d98;

    font-size: 10px;
}


.info-card strong {
    font-size: 11px;

    white-space: nowrap;
}


.workspace-card {
    min-width: 170px;

    padding:
        8px
        10px;

    display: flex;

    align-items: center;

    gap: 8px;
}


.workspace-card > div:first-child {
    display: grid;

    gap: 3px;
}


.workspace-card strong {
    font-size: 11px;
}


.workspace-card span {
    color: #7687a1;

    font-size: 9px;
}


.avatar {
    width: 34px;

    height: 34px;

    border-radius: 50%;

    background: #08294f;

    color: #ffffff !important;

    display: grid;

    place-items: center;

    font-size: 10px !important;

    font-weight: 800;
}


/* =========================================================
   FILTROS
   ========================================================= */

.filters {
    max-width: 1600px;

    margin:
        0
        auto
        10px;

    padding:
        9px
        14px;

    background: #ffffff;

    border:
        1px solid
        var(--border);

    border-radius: 11px;

    box-shadow:
        0
        3px
        14px
        rgba(
            30,
            65,
            110,
            0.03
        );

    display: flex;

    align-items: center;

    gap: 8px;

    flex-wrap: wrap;
}


.filter-label {
    color: #1a3a63;

    font-size: 10px;

    font-weight: 800;
}


.month-label {
    margin-left: 18px;
}


.chips {
    display: flex;

    gap: 5px;

    flex-wrap: wrap;
}


.chips label {
    position: relative;

    min-width: 51px;

    height: 31px;

    padding:
        0
        10px;

    border:
        1px solid
        #cdd8e5;

    border-radius: 7px;

    background: #ffffff;

    color: #14365d;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    font-size: 10px;

    font-weight: 700;

    cursor: pointer;
}


.month-chips label {
    min-width: 43px;
}


.chips input {
    position: absolute;

    opacity: 0;
}


.chips label:has(input:checked) {
    background: #0b3562;

    color: #ffffff;

    border-color: #0b3562;

    box-shadow:
        0
        6px
        14px
        rgba(
            11,
            53,
            98,
            0.16
        );
}


/* =========================================================
   KPIs
   ========================================================= */

.kpis {
    max-width: 1600px;

    margin:
        0
        auto
        10px;

    display: grid;

    grid-template-columns:
        repeat(
            5,
            minmax(
                0,
                1fr
            )
        );

    gap: 8px;
}


.kpi-card {
    position: relative;

    min-height: 112px;

    padding:
        12px
        13px
        11px;

    overflow: hidden;

    background: #ffffff;

    border:
        1px solid
        var(--border);

    border-radius: 11px;

    box-shadow: var(--shadow);
}


.kpi-card::before {
    content: "";

    position: absolute;

    left: 0;
    top: 0;
    bottom: 0;

    width: 4px;
}


.green::before {
    background: var(--green);
}


.red::before {
    background: var(--red);
}


.blue::before {
    background: var(--blue);
}


.gold::before {
    background: var(--gold);
}


.purple::before {
    background: var(--purple);
}


.kpi-head {
    display: flex;

    align-items: center;

    gap: 7px;
}


.kpi-ico {
    width: 30px;

    height: 30px;

    border-radius: 9px;

    display: grid;

    place-items: center;

    color: #ffffff;

    font-size: 14px;
}


.green .kpi-ico {
    background: var(--green);
}


.red .kpi-ico {
    background: var(--red);
}


.blue .kpi-ico {
    background: var(--blue);
}


.gold .kpi-ico {
    background: var(--gold);
}


.purple .kpi-ico {
    background: var(--purple);
}


.kpi-head span:last-child {
    color: #14365d;

    font-size: 11px;

    font-weight: 700;
}


.kpi-value {
    margin-top: 9px;

    overflow: hidden;

    color: #102b50;

    font-size: 24px;

    font-weight: 800;

    letter-spacing: -0.03em;

    white-space: nowrap;

    text-overflow: ellipsis;
}


.kpi-delta {
    margin-top: 6px;

    font-size: 9.5px;
}


.positive {
    color: #00a671;
}


.negative {
    color: #e14d56;
}


.neutral {
    color: #8b99ad;
}


/* =========================================================
   CONTENT
   ========================================================= */

.content {
    max-width: 1600px;

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        minmax(
            0,
            1fr
        )
        270px;

    gap: 10px;
}


.charts-col {
    min-width: 0;
}


.card,
.ai-panel {
    background: #ffffff;

    border:
        1px solid
        var(--border);

    border-radius: 11px;

    box-shadow: var(--shadow);
}


.card {
    padding:
        12px
        13px
        5px;
}


.card h2,
.ai-panel h2 {
    margin: 0;

    color: #112f55;

    font-size: 13px;
}


.card p {
    margin:
        3px
        0
        0;

    color: #71819a;

    font-size: 9px;
}


.hero {
    margin-bottom: 10px;
}


.bottom-grid {
    display: grid;

    grid-template-columns:
        1fr
        1fr
        1.08fr;

    gap: 10px;
}


.graph {
    width: 100%;
}


/* =========================================================
   ASSISTENTE IA
   ========================================================= */

.ai-panel {
    min-height: 100%;

    padding:
        14px
        12px;

    display: flex;

    flex-direction: column;
}


.ai-title {
    display: flex;

    align-items: center;

    gap: 7px;
}


.spark {
    color: #d0a32f;

    font-size: 21px;
}


.ai-panel > p {
    margin:
        6px
        0
        9px;

    color: #74859f;

    font-size: 10.5px;

    line-height: 1.45;
}


.suggestions {
    display: grid;

    gap: 6px;
}


.ai-suggestion {
    padding:
        8px
        10px;

    border: 0;

    border-radius: 8px;

    background: #f1f5f9;

    color: #405877;

    text-align: left;

    font-family: inherit;

    font-size: 10px;

    line-height: 1.4;

    cursor: pointer;
}


.ai-suggestion:hover {
    background: #e8eef5;
}


.ai-response {
    margin:
        10px
        0;

    color: #485f7d;

    font-size: 11px;
}


.ai-input-row {
    margin-top: auto;

    padding-top: 9px;

    display: flex;

    gap: 6px;
}


.ai-input {
    flex: 1;

    min-width: 0;

    padding:
        9px;

    border:
        1px solid
        #ced9e5;

    border-radius: 8px;

    font-family: inherit;

    font-size: 10px;

    outline: none;
}


.ai-send {
    width: 39px;

    border: 0;

    border-radius: 8px;

    background: #083463;

    color: #ffffff;

    font-size: 17px;

    cursor: pointer;
}


.ai-note {
    margin-top: 9px;

    padding-top: 9px;

    border-top:
        1px solid
        #e5ebf2;

    color: #7d8ca1;

    font-size: 8.5px;

    line-height: 1.45;
}


/* =========================================================
   1280 / 1366 / DESKTOP COMPACTO
   ========================================================= */

@media
(min-width: 1181px)
and
(max-width: 1300px) {

    .header {
        flex-direction: row;
    }


    .header-actions {
        flex-wrap: nowrap;
    }


    .kpis {
        grid-template-columns:
            repeat(
                5,
                minmax(
                    0,
                    1fr
                )
            );
    }


    .content {
        grid-template-columns:
            minmax(
                0,
                1fr
            )
            270px;
    }


    .bottom-grid {
        grid-template-columns:
            1fr
            1fr
            1.08fr;
    }
}


/* =========================================================
   NOTEBOOK MENOR
   ========================================================= */

@media
(max-width: 1180px)
and
(min-width: 901px) {

    .sidebar {
        width: 204px;
    }


    .main {
        margin-left: 204px;

        width:
            calc(
                100%
                - 204px
            );

        padding: 14px;
    }


    .header {
        flex-direction: column;

        align-items: stretch;
    }


    .header-actions {
        flex-wrap: wrap;
    }


    .kpis {
        grid-template-columns:
            repeat(
                3,
                minmax(
                    0,
                    1fr
                )
            );
    }


    .content {
        grid-template-columns: 1fr;
    }


    .ai-panel {
        min-height: 390px;
    }


    .bottom-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(
                    0,
                    1fr
                )
            );
    }
}


/* =========================================================
   TABLET / MOBILE
   ========================================================= */

@media
(max-width: 900px) {

    .sidebar {
        position: static;

        width: 100%;

        min-height: auto;

        padding:
            14px
            12px;
    }


    .sidebar::before,
    .sidebar::after {
        display: none;
    }


    .app-shell {
        display: block;
    }


    .main {
        margin-left: 0;

        width: 100%;

        padding:
            16px
            12px;
    }


    .sidebar-nav,
    .nav-section,
    .sidebar-footer {
        display: none;
    }


    .brand-zone {
        padding: 0;

        border: 0;

        flex-direction: row;

        align-items: center;

        justify-content: flex-start;

        gap: 14px;
    }


    .logo-wrap {
        width: auto;

        height: 54px;

        min-height: 54px;
    }


    .sidebar-logo-icon {
        width: 54px;

        height: 54px;

        max-width: 54px;

        max-height: 54px;
    }


    .workspace-word {
        margin-top: 0;

        font-size: 18px;
    }


    .kpis {
        grid-template-columns:
            1fr
            1fr;
    }


    .content {
        grid-template-columns: 1fr;
    }


    .bottom-grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   CELULAR
   ========================================================= */

@media
(max-width: 620px) {

    .kpis {
        grid-template-columns:
            1fr;
    }


    .header-actions {
        display: grid;

        width: 100%;
    }


    .month-label {
        margin-left: 0;

        width: 100%;
    }
}


/* =========================================================
   ACESSIBILIDADE
   ========================================================= */

@media
(prefers-reduced-motion: reduce) {

    .sidebar::before {
        animation: none;
    }
}


/* =========================================================
   DINIS V4 — arquitetura financeira familiar
   ========================================================= */

.sidebar-scroll{
    flex:1;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    margin:4px -2px 4px 0;
    padding-right:2px;
    scrollbar-width:thin;
    scrollbar-color:rgba(255,255,255,.14) transparent;
}
.sidebar-scroll::-webkit-scrollbar{width:4px}
.sidebar-scroll::-webkit-scrollbar-thumb{
    background:rgba(255,255,255,.14);
    border-radius:10px;
}
.nav-section{
    margin:13px 14px 4px !important;
    font-size:8.5px !important;
    letter-spacing:.10em;
    font-weight:700;
}
.sidebar-nav{
    margin-top:2px !important;
    gap:2px !important;
}
.nav-item{
    height:35px !important;
    padding:0 12px !important;
    font-size:11.5px !important;
    text-decoration:none !important;
    cursor:pointer;
}
.nav-item:hover{
    background:rgba(255,255,255,.055);
    color:#fff;
}
.nav-item.active{
    background:#0f4a87;
}
.nav-text{white-space:nowrap}
.sidebar-footer{
    margin-top:5px !important;
    padding-top:10px !important;
}
.sidebar-footer strong{font-size:10.5px !important}
.sidebar-footer span{font-size:8.5px !important}

.kpis-four{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

.entries-grid{
    max-width:1600px;
    margin:0 auto;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}
.entries-chart{min-height:270px}
.entries-table-card{
    grid-column:1 / -1;
}
.table-wrap{
    margin-top:10px;
    overflow-x:auto;
}
.finance-table{
    width:100%;
    border-collapse:collapse;
    font-size:10px;
}
.finance-table th{
    text-align:left;
    padding:9px 10px;
    color:#667a98;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.04em;
    border-bottom:1px solid #e4eaf1;
}
.finance-table td{
    padding:9px 10px;
    border-bottom:1px solid #edf1f5;
    color:#29425f;
}
.finance-table tbody tr:hover{
    background:#f7f9fc;
}
.money-positive{
    color:#068d65 !important;
    font-weight:700;
    white-space:nowrap;
}
.table-empty{
    padding:32px;
    text-align:center;
    color:#7a899e;
}

.ai-open-link{
    display:inline-flex;
    margin-top:auto;
    padding:10px 12px;
    border-radius:8px;
    background:#083463;
    color:#fff;
    text-decoration:none;
    font-size:10px;
    font-weight:700;
    justify-content:center;
}
.ai-open-link:hover{background:#0b427b}

.coming-card{
    max-width:1600px;
    min-height:360px;
    margin:0 auto;
    padding:44px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff;
    box-shadow:var(--shadow);
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
}
.coming-eyebrow{
    color:#b18b2f;
    font-size:10px;
    font-weight:800;
    letter-spacing:.13em;
}
.coming-card h2{
    max-width:720px;
    margin:10px 0 8px;
    color:#102f55;
    font-size:26px;
}
.coming-card p{
    max-width:760px;
    margin:0;
    color:#72839d;
    line-height:1.65;
    font-size:13px;
}

.assistant-page-card{
    max-width:1100px;
    min-height:490px;
    margin:0 auto;
    padding:28px;
    background:#fff;
    border:1px solid var(--border);
    border-radius:14px;
    box-shadow:var(--shadow);
}
.assistant-hero{
    display:flex;
    align-items:center;
    gap:15px;
    padding-bottom:22px;
    border-bottom:1px solid #e7edf4;
}
.assistant-big-spark{
    width:54px;
    height:54px;
    border-radius:15px;
    display:grid;
    place-items:center;
    background:#fff6dd;
    color:#c79a2f;
    font-size:29px;
}
.assistant-hero h2{
    margin:0;
    color:#102f55;
    font-size:20px;
}
.assistant-hero p{
    margin:5px 0 0;
    color:#74859f;
    font-size:12px;
}
.assistant-page-suggestions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    margin:22px 0;
}
.assistant-chip{
    padding:13px;
    border-radius:9px;
    background:#f2f6fa;
    color:#435c7a;
    font-size:11px;
}
.assistant-input-row{
    display:flex;
    gap:8px;
    margin-top:30px;
}
.assistant-input{
    flex:1;
    padding:14px;
    border:1px solid #ccd8e5;
    border-radius:10px;
    font-family:inherit;
    outline:none;
}
.assistant-send{
    padding:0 22px;
    border:0;
    border-radius:10px;
    background:#083463;
    color:#fff;
    font-weight:700;
    cursor:pointer;
}
.assistant-response{
    margin-top:14px;
    color:#4b627e;
    font-size:12px;
}

@media(max-width:1180px){
    .entries-grid{grid-template-columns:1fr}
    .entries-table-card{grid-column:auto}
    .kpis-four{grid-template-columns:repeat(2,1fr) !important}
}
@media(max-width:620px){
    .kpis-four{grid-template-columns:1fr !important}
    .assistant-page-suggestions{grid-template-columns:1fr}
}



/* =========================================================
   DINIS V4.1 — núcleo analítico real
   ========================================================= */

.money-negative{
    color:#dc4b55 !important;
    font-weight:700;
    white-space:nowrap;
}

.category-toolbar,
.movement-toolbar{
    max-width:1600px;
    margin:0 auto 10px;
    padding:10px 14px;
    background:#fff;
    border:1px solid var(--border);
    border-radius:11px;
    box-shadow:0 3px 14px rgba(30,65,110,.03);
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:12px;
}

.category-filter-box{
    min-width:250px;
}

.category-dropdown{
    margin-top:6px;
    font-size:11px;
}

.category-dropdown .Select-control{
    border-color:#cdd8e5;
    border-radius:8px;
    min-height:36px;
}

.category-dropdown .Select-placeholder,
.category-dropdown .Select-value-label{
    color:#17385f !important;
}

.movement-count{
    color:#6f8099;
    font-size:11px;
    font-weight:700;
    padding-bottom:8px;
}

.account-summary-grid{
    max-width:1600px;
    margin:0 auto 10px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}

.account-card{
    background:#fff;
    border:1px solid var(--border);
    border-radius:11px;
    box-shadow:var(--shadow);
    padding:16px;
}

.account-card-title{
    color:#12345c;
    font-size:13px;
    font-weight:800;
    margin-bottom:12px;
}

.account-line{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:7px 0;
    border-bottom:1px solid #edf1f5;
    color:#6c7d95;
    font-size:10px;
}

.account-line strong{
    color:#173a61;
    font-size:10.5px;
}

.account-balance{
    border-bottom:0;
    padding-top:10px;
}

.account-card-foot{
    margin-top:7px;
    color:#8a98aa;
    font-size:9px;
}

.account-chart{
    min-height:300px;
}

.movement-table-wrap{
    max-height:520px;
    overflow:auto;
}

.movement-table{
    min-width:950px;
}

.table-note{
    padding:10px;
    color:#75859b;
    font-size:9px;
    text-align:right;
}

@media(max-width:1180px){
    .account-summary-grid{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:700px){
    .account-summary-grid{
        grid-template-columns:1fr;
    }

    .category-toolbar,
    .movement-toolbar{
        align-items:stretch;
        flex-direction:column;
    }

    .category-filter-box{
        min-width:0;
        width:100%;
    }
}

/* =========================================================
   Agent DINIS - resposta real da IA
   ========================================================= */
.assistant-response{
    margin-top:14px;
}
.assistant-answer-card{
    background:#f7faff;
    border:1px solid #d9e4f2;
    border-radius:12px;
    padding:14px 16px;
    color:#10203a;
    box-shadow:0 4px 16px rgba(20,55,95,.05);
}
.assistant-answer-title{
    display:flex;
    align-items:center;
    gap:7px;
    color:#0b2f5b;
    margin-bottom:8px;
}
.assistant-answer-spark{
    color:#d6b45e;
    font-size:17px;
}
.assistant-answer-markdown{
    font-size:13px;
    line-height:1.55;
}
.assistant-answer-markdown p{
    margin:6px 0;
}
.assistant-answer-markdown ul{
    margin:7px 0 7px 18px;
    padding:0;
}
.assistant-answer-error{
    border-color:#efcbd0;
    background:#fff8f8;
}

/* === DINIS AGENT GLOBAL CHAT V1 === */

/* Corrige o texto verticalmente cortado no campo da página Assistente IA. */
.assistant-input-row{
    align-items:stretch !important;
}

.assistant-input{
    flex:1;
    min-width:0;
    height:46px !important;
    min-height:46px !important;
    box-sizing:border-box !important;
    padding:0 15px !important;
    line-height:normal !important;
    font-family:inherit !important;
    font-size:12px !important;
    border:1px solid #ccd8e5 !important;
    border-radius:10px !important;
    background:#fff !important;
    color:#15375f !important;
    outline:none !important;
}

.assistant-input:focus{
    border-color:#7ea1c8 !important;
    box-shadow:0 0 0 3px rgba(30,91,151,.08) !important;
}

.assistant-input::placeholder{
    color:#8796aa;
    opacity:1;
}

.assistant-send{
    height:46px !important;
    min-height:46px !important;
    box-sizing:border-box !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 22px !important;
}

/* Perguntas fixas foram removidas. Este espaço só será usado
   quando houver perguntas frequentes reais do próprio usuário/workspace. */
.assistant-frequent-questions:empty{
    display:none;
}

.assistant-page-suggestions{
    display:none !important;
}

/* A antiga coluna lateral do assistente não deve mais reservar espaço
   na visão geral: o Agent passa a ser flutuante. */
.content{
    grid-template-columns:minmax(0,1fr) !important;
}

/* Launcher flutuante */
.overview-assistant{
    position:fixed;
    right:24px;
    bottom:22px;
    z-index:1400;
    font-family:Inter, "Segoe UI", Arial, sans-serif;
}

.overview-assistant-launcher{
    border:0;
    border-radius:999px;
    min-height:48px;
    padding:0 18px;
    display:flex;
    align-items:center;
    gap:9px;
    background:#083463;
    color:#fff;
    font-family:inherit;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 12px 30px rgba(3,34,69,.22);
}

.overview-assistant-launcher:hover{
    transform:translateY(-1px);
    box-shadow:0 14px 34px rgba(3,34,69,.27);
}

.overview-assistant-launcher-icon{
    color:#e1b74e;
    font-size:18px;
    line-height:1;
}

.overview-assistant-popup{
    display:none;
    position:absolute;
    right:0;
    bottom:60px;
    width:min(410px, calc(100vw - 36px));
    max-height:min(610px, calc(100vh - 125px));
    overflow:hidden;
    border:1px solid #d5e0ec;
    border-radius:16px;
    background:#fff;
    box-shadow:0 22px 60px rgba(8,38,72,.24);
    padding:0;
}

.overview-assistant-popup.is-open{
    display:flex;
    flex-direction:column;
}

.overview-assistant-head{
    min-height:66px;
    padding:13px 14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border-bottom:1px solid #e7edf4;
    background:linear-gradient(180deg,#fbfdff 0%,#f6f9fc 100%);
}

.overview-assistant-title{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:0;
}

.overview-assistant-title > div{
    display:flex;
    flex-direction:column;
    gap:2px;
    min-width:0;
}

.overview-assistant-title strong{
    color:#102f55;
    font-size:13px;
}

.overview-assistant-title span:last-child{
    color:#7889a1;
    font-size:9.5px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.overview-assistant-close{
    width:32px;
    height:32px;
    border:0;
    border-radius:9px;
    background:transparent;
    color:#6f8199;
    font-size:24px;
    line-height:1;
    cursor:pointer;
}

.overview-assistant-close:hover{
    background:#edf3f8;
    color:#173a61;
}

.overview-assistant-response{
    margin:0 !important;
    padding:16px 16px 4px;
    overflow:auto;
    max-height:380px;
    color:#314c6d !important;
    font-size:12px !important;
    line-height:1.55;
}

.overview-assistant-response:empty{
    min-height:86px;
}

.overview-assistant-response:empty::before{
    content:"Pergunte qualquer coisa sobre os dados financeiros disponíveis no seu workspace.";
    display:block;
    color:#7b8ca2;
    line-height:1.5;
}

.overview-assistant-input-row{
    margin-top:auto !important;
    padding:14px 14px 10px !important;
    gap:8px !important;
    border-top:1px solid #edf1f5;
}

.overview-assistant-note{
    padding:0 15px 14px;
    color:#8997aa;
    font-size:8.5px;
    line-height:1.4;
}

@media(max-width:700px){
    .overview-assistant{
        right:12px;
        bottom:12px;
    }

    .overview-assistant-launcher{
        min-height:46px;
        padding:0 15px;
    }

    .overview-assistant-popup{
        position:fixed;
        left:12px;
        right:12px;
        bottom:70px;
        width:auto;
        max-height:calc(100vh - 95px);
    }

    .assistant-send{
        padding:0 16px !important;
    }
}

/* === DINIS AGENT CHAT + PDF V3 === */

.overview-assistant-window-actions{display:flex;align-items:center;gap:2px}
.overview-assistant-minimize,.overview-assistant-close{
    width:32px;height:32px;border:0;border-radius:9px;background:transparent;
    color:#6f8199;cursor:pointer;display:flex;align-items:center;justify-content:center;
    font-family:inherit
}
.overview-assistant-minimize{font-size:18px;font-weight:800;padding-bottom:7px}
.overview-assistant-close{font-size:24px;line-height:1}
.overview-assistant-minimize:hover,.overview-assistant-close:hover{background:#edf3f8;color:#173a61}

.assistant-response{
    display:flex;flex-direction:column;gap:11px;min-height:0;overflow-y:auto;
    scroll-behavior:smooth
}
.overview-assistant-response{padding:15px 14px 8px !important;max-height:330px !important}
.assistant-chat-user{align-self:flex-end;width:min(88%,340px)}
.assistant-chat-user-label{margin:0 7px 4px 0;color:#8090a5;font-size:8.5px;font-weight:700;text-align:right}
.assistant-chat-user-bubble{
    padding:10px 12px;border-radius:13px 13px 4px 13px;background:#0b3c70;color:#fff;
    font-size:11px;line-height:1.45;box-shadow:0 4px 13px rgba(10,55,103,.10);overflow-wrap:anywhere
}
.assistant-chat-agent{align-self:flex-start;width:min(94%,370px);box-sizing:border-box;margin:0 !important}
.assistant-answer-markdown p:first-child{margin-top:6px}
.assistant-answer-markdown p:last-child{margin-bottom:0}
.assistant-answer-markdown a{
    display:inline-flex;align-items:center;justify-content:center;margin-top:7px;padding:8px 11px;
    border-radius:8px;background:#083463;color:#fff !important;text-decoration:none;font-weight:800;
    font-size:10px
}
.assistant-answer-markdown a:hover{background:#0c467f}

.assistant-thinking{
    display:none;align-items:center;gap:10px;margin:5px 14px 8px;padding:10px 12px;
    border:1px solid #e2eaf3;border-radius:12px;
    background:radial-gradient(circle at 12% 50%,rgba(214,180,94,.10),transparent 28%),#f8fbfe
}
.assistant-thinking.is-visible{display:flex}
.assistant-thinking-spark{
    flex:0 0 auto;color:#cda233;font-size:23px;line-height:1;
    animation:dinis-chat-spark .82s ease-in-out infinite alternate
}
.assistant-thinking-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
.assistant-thinking-copy strong{color:#4c6482;font-size:10px;font-weight:800}
.assistant-thinking-dots{display:flex;align-items:center;gap:4px;height:7px}
.assistant-thinking-dots span{
    width:5px;height:5px;border-radius:50%;background:#8da1b9;animation:dinis-chat-dot 1s ease-in-out infinite
}
.assistant-thinking-dots span:nth-child(2){animation-delay:.14s}
.assistant-thinking-dots span:nth-child(3){animation-delay:.28s}
@keyframes dinis-chat-spark{0%{transform:rotate(-9deg) scale(.86);opacity:.55}100%{transform:rotate(9deg) scale(1.16);opacity:1}}
@keyframes dinis-chat-dot{0%,100%{transform:translateY(0);opacity:.45}50%{transform:translateY(-3px);opacity:1}}

.assistant-page-card>.assistant-response{max-height:390px;padding:14px 2px 4px}
.assistant-page-card>.assistant-thinking{margin-left:0;margin-right:0}
.assistant-input{height:46px !important;min-height:46px !important;box-sizing:border-box !important;padding:0 15px !important;line-height:normal !important}
.assistant-send{height:46px !important;min-height:46px !important}

@media(prefers-reduced-motion:reduce){
    .assistant-thinking-spark,.assistant-thinking-dots span{animation:none !important}
    .assistant-response{scroll-behavior:auto}
}
@media(max-width:700px){.assistant-chat-user{width:90%}.assistant-chat-agent{width:96%}}

/* === DINIS ASSISTANT IMMEDIATE FEEDBACK V3.1 === */

.assistant-thinking.is-visible{
    display:flex !important;
    min-height:58px;
    opacity:1;
    animation:dinis-thinking-enter-v31 .14s ease-out both;
    box-shadow:0 5px 16px rgba(9,52,99,.06);
}

.assistant-send.dinis-busy{
    opacity:.78;
    cursor:wait !important;
    min-width:96px;
}

@keyframes dinis-thinking-enter-v31{
    from{
        opacity:0;
        transform:translateY(3px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

@media (prefers-reduced-motion: reduce){
    .assistant-thinking.is-visible{
        animation:none !important;
    }
}

/* === DINIS ASSISTANT NATIVE RUNNING V3.2 === */

.assistant-thinking{
    display:none;
}

.assistant-thinking.is-visible{
    display:flex !important;
    align-items:center;
    gap:10px;
    min-height:58px;
    margin:6px 14px 9px;
    padding:11px 13px;
    border:1px solid #e1eaf4;
    border-radius:12px;
    background:
        radial-gradient(circle at 11% 50%, rgba(214,180,94,.12), transparent 30%),
        linear-gradient(180deg,#fbfdff 0%,#f7faff 100%);
    box-shadow:0 5px 16px rgba(9,52,99,.06);
    animation:dinis-thinking-enter-v32 .16s ease-out both;
}

.assistant-thinking.is-visible .assistant-thinking-spark{
    animation:dinis-thinking-star-v32 .78s ease-in-out infinite alternate;
}

.assistant-thinking.is-visible .assistant-thinking-dots span{
    animation:dinis-thinking-dot-v32 .9s ease-in-out infinite;
}

.assistant-thinking.is-visible .assistant-thinking-dots span:nth-child(2){
    animation-delay:.13s;
}

.assistant-thinking.is-visible .assistant-thinking-dots span:nth-child(3){
    animation-delay:.26s;
}

.assistant-send:disabled{
    opacity:.72;
    cursor:wait !important;
}

@keyframes dinis-thinking-enter-v32{
    from{opacity:0;transform:translateY(3px)}
    to{opacity:1;transform:translateY(0)}
}

@keyframes dinis-thinking-star-v32{
    0%{transform:rotate(-8deg) scale(.86);opacity:.55}
    100%{transform:rotate(8deg) scale(1.18);opacity:1}
}

@keyframes dinis-thinking-dot-v32{
    0%,100%{transform:translateY(0);opacity:.42}
    50%{transform:translateY(-3px);opacity:1}
}

@media (prefers-reduced-motion: reduce){
    .assistant-thinking.is-visible,
    .assistant-thinking.is-visible .assistant-thinking-spark,
    .assistant-thinking.is-visible .assistant-thinking-dots span{
        animation:none !important;
    }
}

/* === DINIS NATIVE THINKING V3.3 === */

.dinis-native-thinking{
    display:none;
    align-items:center;
    gap:11px;
    margin:6px 14px 9px;
    padding:11px 13px;
    min-height:60px;
    box-sizing:border-box;
    border:1px solid #dce7f2;
    border-radius:13px;
    background:
        radial-gradient(circle at 7% 50%, rgba(214,180,94,.12), transparent 24%),
        linear-gradient(180deg,#fbfdff 0%,#f6f9fd 100%);
    box-shadow:0 5px 18px rgba(9,52,99,.065);
    color:#15375f;
}

.dinis-native-thinking.is-visible{
    display:flex !important;
    animation:dinis-native-enter-v33 .14s ease-out both;
}

.dinis-native-thinking-mark{
    position:relative;
    flex:0 0 34px;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
}

.dinis-native-thinking-star{
    position:relative;
    z-index:2;
    color:#d2a83e;
    font-size:23px;
    line-height:1;
    animation:dinis-native-star-v33 .8s ease-in-out infinite alternate;
}

.dinis-native-thinking-ring{
    position:absolute;
    inset:2px;
    border:1px solid rgba(210,168,62,.20);
    border-top-color:rgba(210,168,62,.72);
    border-radius:50%;
    animation:dinis-native-ring-v33 1.25s linear infinite;
}

.dinis-native-thinking-copy{
    min-width:0;
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    gap:2px;
}

.dinis-native-thinking-copy strong{
    color:#173a61;
    font-size:10.5px;
    font-weight:800;
    line-height:1.35;
}

.dinis-native-thinking-sub{
    color:#7c8ea5;
    font-size:8.5px;
    line-height:1.35;
}

.dinis-native-thinking-dots{
    flex:0 0 auto;
    display:flex;
    gap:4px;
    align-items:center;
    padding-right:2px;
}

.dinis-native-thinking-dots span{
    width:5px;
    height:5px;
    border-radius:50%;
    background:#8ba0b8;
    animation:dinis-native-dot-v33 .9s ease-in-out infinite;
}

.dinis-native-thinking-dots span:nth-child(2){
    animation-delay:.13s;
}

.dinis-native-thinking-dots span:nth-child(3){
    animation-delay:.26s;
}

@keyframes dinis-native-enter-v33{
    from{opacity:0;transform:translateY(3px)}
    to{opacity:1;transform:translateY(0)}
}

@keyframes dinis-native-star-v33{
    0%{transform:rotate(-9deg) scale(.84);opacity:.56}
    100%{transform:rotate(9deg) scale(1.16);opacity:1}
}

@keyframes dinis-native-ring-v33{
    to{transform:rotate(360deg)}
}

@keyframes dinis-native-dot-v33{
    0%,100%{transform:translateY(0);opacity:.40}
    50%{transform:translateY(-3px);opacity:1}
}

@media(max-width:700px){
    .dinis-native-thinking{
        margin-left:12px;
        margin-right:12px;
    }

    .dinis-native-thinking-sub{
        display:none;
    }
}

@media(prefers-reduced-motion:reduce){
    .dinis-native-thinking.is-visible,
    .dinis-native-thinking-star,
    .dinis-native-thinking-ring,
    .dinis-native-thinking-dots span{
        animation:none !important;
    }
}

/* === DINIS DIRECT CALLBACK LOADER V3.4 === */

/*
O sentinel abaixo é OUTPUT DIRETO do callback lento assistant_chat.
Por isso data-dash-is-loading=true permanece ativo durante TODA a
consulta OpenAI/DW, e não apenas no callback rápido que renderiza a resposta.
*/
.assistant-processing-sentinel{
    display:none;
    box-sizing:border-box;
}

.assistant-processing-sentinel[data-dash-is-loading="true"]{
    display:flex !important;
    position:relative;
    align-items:center;
    min-height:62px;
    margin:7px 14px 10px;
    padding:12px 48px 12px 52px;
    overflow:hidden;
    border:1px solid #dce7f2;
    border-radius:13px;
    background:
        radial-gradient(circle at 8% 50%, rgba(214,180,94,.13), transparent 25%),
        linear-gradient(180deg,#fbfdff 0%,#f6f9fd 100%);
    box-shadow:0 5px 18px rgba(9,52,99,.065);
    color:#173a61;
    animation:dinis-direct-enter-v34 .14s ease-out both;
}

/* Estrela */
.assistant-processing-sentinel[data-dash-is-loading="true"]::before{
    content:"✦";
    position:absolute;
    left:17px;
    top:50%;
    width:25px;
    height:25px;
    margin-top:-13px;
    display:grid;
    place-items:center;
    color:#d2a83e;
    font-size:24px;
    line-height:1;
    text-shadow:0 0 15px rgba(210,168,62,.18);
    animation:dinis-direct-star-v34 .78s ease-in-out infinite alternate;
}

/* Texto */
.assistant-processing-sentinel[data-dash-is-loading="true"]::after{
    content:"DINIS está consultando seus dados  •  •  •";
    display:block;
    color:#173a61;
    font-size:10.5px;
    font-weight:800;
    line-height:1.4;
    letter-spacing:.005em;
    animation:dinis-direct-copy-v34 1.05s ease-in-out infinite;
}

/* Barra dourada animada para deixar impossível passar despercebido */
.assistant-processing-sentinel[data-dash-is-loading="true"]{
    background-size:auto, auto, 200% 2px;
}

.assistant-processing-sentinel[data-dash-is-loading="true"] > *{
    display:none !important;
}

/* Desliga loaders antigos para evitar conflito visual. */
.assistant-thinking{
    display:none !important;
}

@keyframes dinis-direct-enter-v34{
    from{opacity:0;transform:translateY(3px)}
    to{opacity:1;transform:translateY(0)}
}

@keyframes dinis-direct-star-v34{
    0%{transform:rotate(-9deg) scale(.84);opacity:.56}
    100%{transform:rotate(9deg) scale(1.18);opacity:1}
}

@keyframes dinis-direct-copy-v34{
    0%,100%{opacity:.58}
    50%{opacity:1}
}

@media(max-width:700px){
    .assistant-processing-sentinel[data-dash-is-loading="true"]{
        margin-left:12px;
        margin-right:12px;
        padding-right:14px;
    }
}

@media(prefers-reduced-motion:reduce){
    .assistant-processing-sentinel[data-dash-is-loading="true"],
    .assistant-processing-sentinel[data-dash-is-loading="true"]::before,
    .assistant-processing-sentinel[data-dash-is-loading="true"]::after{
        animation:none !important;
    }
}

/* === DINIS CLIENTSIDE LOADER V3.5 === */

.assistant-visible-loader{
    align-items:center;
    gap:11px;
    min-height:62px;
    margin:7px 14px 10px;
    padding:11px 13px;
    box-sizing:border-box;
    border:1px solid #dce7f2;
    border-radius:13px;
    background:
        radial-gradient(circle at 8% 50%, rgba(214,180,94,.14), transparent 26%),
        linear-gradient(180deg,#fbfdff 0%,#f6f9fd 100%);
    box-shadow:0 5px 18px rgba(9,52,99,.07);
    color:#173a61;
}

.assistant-visible-loader[style*="display: flex"],
.assistant-visible-loader[style*="display:flex"]{
    animation:dinis-visible-enter-v35 .14s ease-out both;
}

.assistant-visible-loader-mark{
    position:relative;
    flex:0 0 36px;
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
}

.assistant-visible-loader-star{
    position:relative;
    z-index:2;
    color:#d2a83e;
    font-size:24px;
    line-height:1;
    text-shadow:0 0 16px rgba(210,168,62,.20);
    animation:dinis-visible-star-v35 .78s ease-in-out infinite alternate;
}

.assistant-visible-loader-ring{
    position:absolute;
    inset:2px;
    border:1px solid rgba(210,168,62,.22);
    border-top-color:rgba(210,168,62,.85);
    border-radius:50%;
    animation:dinis-visible-ring-v35 1.1s linear infinite;
}

.assistant-visible-loader-copy{
    min-width:0;
    flex:1 1 auto;
    display:flex;
    flex-direction:column;
    gap:2px;
}

.assistant-visible-loader-copy strong{
    color:#173a61;
    font-size:10.5px;
    line-height:1.35;
    font-weight:800;
}

.assistant-visible-loader-sub{
    color:#7b8da4;
    font-size:8.5px;
    line-height:1.35;
}

.assistant-visible-loader-dots{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:4px;
    padding-right:2px;
}

.assistant-visible-loader-dots span{
    width:5px;
    height:5px;
    border-radius:50%;
    background:#8aa0b8;
    animation:dinis-visible-dot-v35 .9s ease-in-out infinite;
}

.assistant-visible-loader-dots span:nth-child(2){animation-delay:.13s}
.assistant-visible-loader-dots span:nth-child(3){animation-delay:.26s}

.assistant-thinking,
.assistant-processing-sentinel,
.dinis-native-thinking{
    display:none !important;
}

@keyframes dinis-visible-enter-v35{
    from{opacity:0;transform:translateY(3px)}
    to{opacity:1;transform:translateY(0)}
}

@keyframes dinis-visible-star-v35{
    0%{transform:rotate(-9deg) scale(.84);opacity:.55}
    100%{transform:rotate(9deg) scale(1.17);opacity:1}
}

@keyframes dinis-visible-ring-v35{to{transform:rotate(360deg)}}

@keyframes dinis-visible-dot-v35{
    0%,100%{transform:translateY(0);opacity:.40}
    50%{transform:translateY(-3px);opacity:1}
}

@media(max-width:700px){
    .assistant-visible-loader{margin-left:12px;margin-right:12px}
    .assistant-visible-loader-sub{display:none}
}

@media(prefers-reduced-motion:reduce){
    .assistant-visible-loader,
    .assistant-visible-loader-star,
    .assistant-visible-loader-ring,
    .assistant-visible-loader-dots span{
        animation:none !important;
    }
}
