*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:"Segoe UI",Arial,sans-serif;background:radial-gradient(circle at top left,rgba(0,126,255,.30),transparent 32%),radial-gradient(circle at bottom right,rgba(93,44,255,.18),transparent 35%),linear-gradient(135deg,#020817 0%,#041530 44%,#061a36 100%);color:#f5f8ff}.app-shell{width:min(1760px,calc(100vw - 32px));margin:16px auto;padding:18px;border:1px solid rgba(45,151,255,.28);border-radius:24px;background:rgba(3,14,34,.72);box-shadow:0 0 40px rgba(0,132,255,.18),inset 0 0 80px rgba(0,84,180,.10);backdrop-filter:blur(14px)}.topbar{display:grid;grid-template-columns:1fr auto 270px;gap:20px;align-items:center;margin-bottom:18px}.brand{display:flex;align-items:center;gap:18px}.brand img{width:185px;height:auto;max-height:76px;object-fit:contain;filter:drop-shadow(0 0 16px rgba(0,135,255,.36))}.brand h1{margin:0;font-size:28px;text-transform:uppercase;letter-spacing:.5px}.brand span{color:#4eb8ff;font-weight:700;font-size:13px;text-transform:uppercase}.filters{display:flex;align-items:end;gap:10px;padding:10px;border-radius:16px;background:rgba(5,22,52,.76);border:1px solid rgba(72,151,255,.28)}.filters label{display:flex;flex-direction:column;gap:5px;color:#b8cdf6;font-size:11px;font-weight:700;text-transform:uppercase}.filters input,.filters select{height:38px;border:1px solid rgba(74,159,255,.34);background:#071832;color:#fff;border-radius:10px;padding:0 10px;outline:none}.filter-coop select{min-width:230px}.filters button{height:38px;padding:0 18px;border:0;border-radius:10px;background:linear-gradient(135deg,#008bff,#075dff);color:#fff;font-weight:900;cursor:pointer;box-shadow:0 0 18px rgba(0,139,255,.42)}.update-box{justify-self:end;padding:12px 16px;border-radius:16px;background:rgba(5,22,52,.76);border:1px solid rgba(72,151,255,.28);min-width:240px}.update-box small,.update-box span{display:block;color:#9fb9e7;font-size:11px}.update-box strong{display:block;font-size:15px;margin:3px 0}.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px}.kpi-card,.panel,.mini-card{background:linear-gradient(145deg,rgba(5,24,56,.94),rgba(6,43,90,.72));border:1px solid rgba(69,154,255,.30);box-shadow:0 0 22px rgba(0,126,255,.16),inset 0 0 34px rgba(0,103,255,.08)}.kpi-card{position:relative;min-height:158px;padding:18px 20px;border-radius:18px;overflow:hidden}.kpi-card:after{content:"";position:absolute;left:18px;right:18px;bottom:15px;height:2px;background:var(--accent);box-shadow:0 0 16px var(--accent)}.blue{--accent:#158fff}.orange{--accent:#ff9b36}.red{--accent:#ff3358}.purple{--accent:#8d5cff}.cyan{--accent:#00e5ff}.kpi-icon{width:48px;height:48px;border-radius:999px;display:grid;place-items:center;color:#eaffff;font-size:22px;font-weight:900;background:rgba(255,255,255,.04);border:1px solid var(--accent);box-shadow:0 0 20px var(--accent);margin-bottom:10px}.kpi-card h3{margin:0;color:#b8d7ff;font-size:13px;font-weight:800}.kpi-card strong{display:block;font-size:35px;margin-top:6px;line-height:1}.kpi-card small{color:#9fb9e7;font-weight:600}.spark{position:absolute;right:16px;bottom:24px;width:120px;height:42px;opacity:.88}.dashboard-grid{display:grid;grid-template-columns:1.1fr 1.25fr .95fr;grid-template-rows:350px 350px;gap:18px}.panel{border-radius:18px;padding:18px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:8px}.panel-head h2{margin:0;font-size:16px}.panel-head span{color:#8faee1;font-size:12px;font-weight:700}.retention{grid-column:3;grid-row:1}.retention p{margin:20px 0 0;padding:22px;line-height:1.55;font-size:15px;color:#e8f1ff;border-left:4px solid #00c8ff;border-radius:14px;background:rgba(5,22,52,.72);box-shadow:inset 0 0 25px rgba(0,147,255,.13)}.monthly{grid-column:1 / span 2;grid-row:2}.side-cards{grid-column:3;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:10px}.mini-card{border-radius:16px;padding:16px}.mini-card span{display:block;color:#a8c5ee;font-size:12px;margin-bottom:6px}.mini-card strong{font-size:28px}.apexcharts-tooltip{background:#071832!important;color:#fff!important;border:1px solid rgba(72,151,255,.4)!important}@media(max-width:1180px){.topbar,.dashboard-grid,.kpi-grid{grid-template-columns:1fr;grid-template-rows:auto}.retention,.monthly,.side-cards{grid-column:auto;grid-row:auto}.filters{flex-wrap:wrap}}

/* ==========================================================
   Login, usuários, permissões e metas
   ========================================================== */
.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,rgba(0,148,255,.32),transparent 30%),linear-gradient(135deg,#020817,#061a36 70%,#020817);}.login-shell{width:min(520px,calc(100vw - 28px));}.login-card{padding:34px;border:1px solid rgba(69,154,255,.36);border-radius:26px;background:linear-gradient(145deg,rgba(5,24,56,.96),rgba(6,43,90,.80));box-shadow:0 0 45px rgba(0,126,255,.22),inset 0 0 60px rgba(0,103,255,.08)}.login-brand{display:flex;align-items:center;gap:16px;margin-bottom:28px}.login-brand img{width:155px;height:auto;filter:drop-shadow(0 0 16px rgba(0,135,255,.45))}.login-brand h1{margin:0;font-size:28px}.login-brand span{color:#4eb8ff;font-size:13px;font-weight:800;text-transform:uppercase}.login-form{display:grid;gap:16px}.login-form label,.admin-form label{display:grid;gap:7px;color:#b8cdf6;font-size:12px;font-weight:800;text-transform:uppercase}.login-form input,.admin-form input,.admin-form select{height:42px;border:1px solid rgba(74,159,255,.36);background:#071832;color:#fff;border-radius:12px;padding:0 12px;outline:none}.login-form button,.admin-form button,.save-btn,.inline-form button{height:42px;border:0;border-radius:12px;background:linear-gradient(135deg,#008bff,#075dff);color:#fff;font-weight:900;cursor:pointer;box-shadow:0 0 18px rgba(0,139,255,.38)}.login-foot{color:#8faee1;text-align:center;margin:22px 0 0}.alert-error,.alert-ok{border-radius:14px;padding:12px 14px;margin:12px 0;font-weight:800}.alert-error{background:rgba(255,51,88,.12);border:1px solid rgba(255,51,88,.35);color:#ffd7df}.alert-ok{background:rgba(0,229,255,.10);border:1px solid rgba(0,229,255,.28);color:#cfffff}.user-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.user-actions span{color:#dcecff;font-weight:800}.user-actions a,.admin-head nav a,.mini-link{color:#4eb8ff;text-decoration:none;font-size:12px;font-weight:800}.admin-shell{min-height:calc(100vh - 32px)}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.admin-head h1{margin:0;text-transform:uppercase}.admin-head span{display:block;color:#4eb8ff;font-weight:800;text-transform:uppercase;font-size:12px}.admin-head nav{display:flex;gap:12px;flex-wrap:wrap;padding:12px;border-radius:16px;background:rgba(5,22,52,.76);border:1px solid rgba(72,151,255,.28)}.admin-card{border:1px solid rgba(69,154,255,.30);border-radius:18px;padding:18px;margin-bottom:16px;background:linear-gradient(145deg,rgba(5,24,56,.94),rgba(6,43,90,.72));box-shadow:0 0 22px rgba(0,126,255,.16),inset 0 0 34px rgba(0,103,255,.08)}.admin-card h2{margin:0 0 14px;font-size:18px}.admin-form{display:grid;gap:12px}.admin-form.grid-5{grid-template-columns:repeat(5,minmax(130px,1fr));align-items:end}.admin-form.grid-5 button{grid-column:auto}.inline-filter{grid-template-columns:220px 160px auto;align-items:end;max-width:620px}.table-wrap{overflow:auto;border-radius:14px;border:1px solid rgba(72,151,255,.18)}.admin-table{width:100%;border-collapse:collapse;min-width:860px}.admin-table th,.admin-table td{padding:11px 12px;border-bottom:1px solid rgba(160,198,255,.10);text-align:left}.admin-table th{color:#cfe5ff;background:rgba(0,126,255,.12);font-size:12px;text-transform:uppercase}.admin-table td{color:#eef6ff}.admin-table small,.muted{color:#8faee1}.badge{display:inline-block;margin-left:6px;padding:3px 6px;border-radius:999px;background:rgba(0,229,255,.14);border:1px solid rgba(0,229,255,.32);color:#aef9ff;font-size:10px}.status-ok{color:#2df083;font-weight:900}.status-bad{color:#ff516b;font-weight:900}.inline-form{display:inline}.inline-form button{height:30px;padding:0 10px;background:rgba(255,255,255,.08);border:1px solid rgba(72,151,255,.30);box-shadow:none}.permission-table input[type="checkbox"]{width:18px;height:18px;accent-color:#158fff}.save-btn{margin-top:14px;padding:0 20px}@media(max-width:1180px){.admin-form.grid-5,.inline-filter{grid-template-columns:1fr}.admin-head{align-items:flex-start;flex-direction:column}.login-brand{align-items:flex-start;flex-direction:column}}


/* ==========================================================
   V2 Dashboard aprovado: sidebar discreta + KPIs de meta
   ========================================================== */
body{
    overflow-x:hidden;
}
.app-layout{
    width:min(1840px, calc(100vw - 18px));
    margin:10px auto;
    display:grid;
    grid-template-columns:92px minmax(0,1fr);
    gap:16px;
    align-items:stretch;
}
.app-shell{
    width:100%;
    margin:0;
    min-width:0;
    padding:16px;
    border-radius:20px;
}
.side-nav{
    min-height:calc(100vh - 20px);
    border:1px solid rgba(55,157,255,.38);
    border-radius:22px;
    background:linear-gradient(180deg,rgba(5,25,58,.96),rgba(3,13,35,.92));
    box-shadow:0 0 28px rgba(0,126,255,.14), inset 0 0 30px rgba(0,135,255,.08);
    display:flex;
    flex-direction:column;
    align-items:center;
    padding:14px 10px;
}
.side-nav nav{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:12px;
    margin-top:24px;
    flex:1;
}
.side-logo,
.nav-icon{
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    color:#bfe5ff;
    text-decoration:none;
    border-radius:14px;
    font-size:25px;
    line-height:1;
    border:1px solid transparent;
    transition:.18s ease;
}
.side-logo{
    color:#001a44;
    font-size:28px;
    font-weight:900;
    background:linear-gradient(135deg,#00dbff,#7145ff);
    box-shadow:0 0 20px rgba(0,210,255,.45);
}
.nav-icon:hover,
.nav-icon.active{
    color:#fff;
    background:linear-gradient(145deg,rgba(0,132,255,.28),rgba(0,221,255,.11));
    border-color:rgba(0,195,255,.56);
    box-shadow:0 0 18px rgba(0,158,255,.35), inset 0 0 16px rgba(0,126,255,.18);
}
.nav-icon.logout{
    margin-top:auto;
    opacity:.92;
}
.update-box .user-actions{
    display:none;
}
.kpi-grid-main{
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:12px;
}
.kpi-card{
    min-height:164px;
    padding:18px 18px 16px;
}
.kpi-card h3{
    font-size:14px;
    color:#e5f1ff;
    margin-left:62px;
    margin-top:-43px;
    min-height:34px;
}
.kpi-icon{
    width:48px;
    height:48px;
    margin-bottom:6px;
}
.kpi-value-line{
    display:flex;
    align-items:baseline;
    gap:8px;
    margin-top:12px;
}
.kpi-value-line strong{
    font-size:38px;
    line-height:.95;
    letter-spacing:-1px;
}
.kpi-value-line span{
    color:#f4f8ff;
    font-size:15px;
    font-weight:800;
}
.kpi-progress{
    height:4px;
    margin:16px 0 9px;
    border-radius:999px;
    background:rgba(114,164,222,.22);
    overflow:hidden;
}
.kpi-progress i{
    display:block;
    height:100%;
    width:0%;
    border-radius:inherit;
    background:var(--accent);
    box-shadow:0 0 15px var(--accent);
    transition:width .35s ease;
}
.green{--accent:#00e5b2}
.violet{--accent:#8d5cff}
.kpi-realizado:after,
.kpi-meta:after{
    display:none;
}
.kpi-card small{
    font-size:13px;
}
.filters label{
    letter-spacing:.3px;
}
.filters input,
.filters select{
    min-width:130px;
}
.dashboard-grid{
    grid-template-columns:1.05fr 1.18fr .92fr;
    grid-template-rows:350px 350px;
}
.retention p{
    font-size:14px;
}
.side-cards{
    grid-template-columns:1fr 1fr;
}
.mini-card{
    min-height:102px;
}
@media(max-width:1500px){
    .kpi-grid-main{
        grid-template-columns:repeat(3,1fr);
    }
    .dashboard-grid{
        grid-template-columns:1fr;
        grid-template-rows:auto;
    }
    .retention,.monthly,.side-cards{
        grid-column:auto;
        grid-row:auto;
    }
}
@media(max-width:900px){
    .app-layout{
        grid-template-columns:1fr;
    }
    .side-nav{
        min-height:auto;
        flex-direction:row;
        overflow:auto;
        padding:10px;
    }
    .side-nav nav{
        margin-top:0;
        flex-direction:row;
    }
    .nav-icon.logout{
        margin-top:0;
    }
    .kpi-grid-main{
        grid-template-columns:1fr;
    }
    .topbar{
        grid-template-columns:1fr;
    }
}


/* ==========================================================
   V2 gráficos no modelo aprovado
   Somente miolo de gráficos, preservando KPIs, mensal e mini cards
   ========================================================== */

.dashboard-grid{
    display:grid;
    grid-template-columns:1.06fr 1.12fr 1.06fr .48fr;
    grid-template-rows:330px 350px;
    gap:12px;
}

.panel-comparativo,
.panel-regional,
.panel-evolucao{
    min-width:0;
}

.panel-comparativo{grid-column:1 / 2;grid-row:1 / 2;}
.panel-regional{grid-column:2 / 3;grid-row:1 / 2;}
.panel-evolucao{grid-column:3 / 4;grid-row:1 / 2;}
.retention{grid-column:4 / 5;grid-row:1 / 2;}
.monthly{grid-column:1 / 4;grid-row:2 / 3;}
.side-cards{grid-column:4 / 5;grid-row:2 / 3;}

.panel-head h2{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.chart-metric-wrap{
    display:grid;
    grid-template-columns:minmax(0,1fr) 142px;
    gap:8px;
    align-items:stretch;
}

.chart-side-metrics{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:14px;
    padding:8px 2px 0 0;
}

.chart-side-metrics div{
    border-bottom:1px solid rgba(174,214,255,.18);
    padding-bottom:10px;
}

.chart-side-metrics div:last-child{
    border-bottom:0;
    padding-bottom:0;
}

.chart-side-metrics span{
    display:block;
    color:#b6cae9;
    font-size:12px;
    margin-bottom:4px;
}

.chart-side-metrics strong{
    display:inline-block;
    color:#21df72;
    font-size:28px;
    font-weight:950;
    letter-spacing:-.8px;
}

.chart-side-metrics strong.negative{
    color:#ff475f;
}

.chart-side-metrics strong.positive{
    color:#21df72;
}

.chart-side-metrics small{
    color:#dce9ff;
    font-size:13px;
    margin-left:4px;
}

.retention{
    display:flex;
    flex-direction:column;
}

.retention-big{
    margin:16px auto 4px;
    font-size:32px;
    font-weight:950;
    color:#00e5ff;
    letter-spacing:-1px;
    text-shadow:0 0 18px rgba(0,229,255,.35);
}

.retention p{
    display:block;
    margin:auto 8px;
    padding:0;
    border-left:0;
    background:transparent;
    box-shadow:none;
    font-size:13px;
    line-height:1.55;
    text-align:center;
    max-height:160px;
    overflow:hidden;
}

.retention::after{
    content:"✓";
    width:68px;
    height:68px;
    margin:14px auto 4px;
    display:grid;
    place-items:center;
    border-radius:999px;
    border:1px solid rgba(0,229,255,.65);
    color:#00e5ff;
    font-size:34px;
    font-weight:900;
    box-shadow:0 0 28px rgba(0,229,255,.22), inset 0 0 26px rgba(0,229,255,.10);
}

#chartGeral,
#chartCooperativa,
#chartEvolucao{
    min-height:265px;
}

@media(max-width:1580px){
    .dashboard-grid{
        grid-template-columns:1fr 1fr;
        grid-template-rows:auto;
    }
    .panel-comparativo,
    .panel-regional,
    .panel-evolucao,
    .retention,
    .monthly,
    .side-cards{
        grid-column:auto;
        grid-row:auto;
    }
    .retention p{
        max-height:none;
    }
}

@media(max-width:920px){
    .dashboard-grid{
        grid-template-columns:1fr;
    }
    .chart-metric-wrap{
        grid-template-columns:1fr;
    }
    .chart-side-metrics{
        display:grid;
        grid-template-columns:repeat(3,1fr);
    }
}


/* ==========================================================
   Tela de Metas: tabela editável, cópia de competência e CSV
   ========================================================== */

.metas-shell{
    min-height:calc(100vh - 20px);
}

.metas-topbar{
    align-items:center;
}

.metas-filters{
    grid-template-columns:auto minmax(260px,1fr) auto auto;
}

.competencia-inline{
    display:flex;
    gap:8px;
}

.competencia-inline select{
    min-width:120px;
}

.btn-ghost,
.btn-secondary{
    border:1px solid rgba(64,169,255,.42);
    color:#d9eeff;
    text-decoration:none;
    background:rgba(3,23,58,.72);
    height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 14px;
    border-radius:10px;
    font-weight:800;
    cursor:pointer;
    transition:.18s ease;
}

.btn-ghost:hover,
.btn-secondary:hover{
    border-color:rgba(0,214,255,.85);
    box-shadow:0 0 18px rgba(0,159,255,.20);
    color:#fff;
}

.btn-secondary{
    background:linear-gradient(135deg,rgba(0,125,255,.28),rgba(0,225,255,.14));
}

button:disabled,
.btn-secondary:disabled{
    opacity:.45;
    cursor:not-allowed;
}

.alert{
    margin:12px 0;
    border-radius:12px;
    padding:12px 14px;
    font-weight:800;
    border:1px solid rgba(255,255,255,.15);
}

.alert.success{
    background:rgba(0,220,150,.12);
    color:#72ffd6;
    border-color:rgba(0,220,150,.35);
}

.alert.danger{
    background:rgba(255,55,90,.12);
    color:#ff9aae;
    border-color:rgba(255,55,90,.35);
}

.metas-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin:14px 0;
}

.metas-summary .mini-card{
    min-height:102px;
}

.danger-card strong{
    color:#ff4d64 !important;
}

.success-card strong{
    color:#2ee889 !important;
}

.metas-copy-panel{
    margin:12px 0;
}

.copy-grid{
    display:grid;
    grid-template-columns:minmax(260px,1fr) minmax(260px,1fr) minmax(240px,.8fr) auto;
    gap:12px;
    align-items:end;
}

.copy-grid label{
    color:#a8bee2;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.35px;
}

.copy-grid select{
    margin-top:6px;
}

.check-line{
    display:flex !important;
    align-items:center;
    gap:8px;
    text-transform:none !important;
    letter-spacing:0 !important;
    font-size:13px !important;
    color:#d7eaff !important;
    padding:10px 0;
}

.check-line input{
    width:18px;
    height:18px;
}

.metas-table-panel{
    margin-top:12px;
}

.table-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin:10px 0 12px;
}

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

#buscaMeta{
    width:310px;
    max-width:50vw;
    height:42px;
    border-radius:10px;
    border:1px solid rgba(70,150,255,.35);
    background:#051839;
    color:#fff;
    padding:0 12px;
    outline:none;
}

#buscaMeta:focus{
    border-color:#00cfff;
    box-shadow:0 0 0 3px rgba(0,207,255,.10);
}

.metas-table-wrap{
    overflow:auto;
    border-radius:14px;
    border:1px solid rgba(57,139,255,.28);
    max-height:calc(100vh - 430px);
    min-height:360px;
}

.metas-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    min-width:1050px;
}

.metas-table thead th{
    position:sticky;
    top:0;
    z-index:2;
    background:linear-gradient(180deg,rgba(15,61,117,.98),rgba(8,38,80,.98));
    color:#d8efff;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.35px;
    text-align:left;
    padding:12px 12px;
    border-bottom:1px solid rgba(75,167,255,.28);
}

.metas-table tbody td{
    padding:10px 12px;
    border-bottom:1px solid rgba(80,143,220,.14);
    color:#e8f3ff;
    vertical-align:middle;
}

.metas-table tbody tr:hover{
    background:rgba(0,140,255,.08);
}

.metas-table td strong{
    display:block;
    font-size:13px;
}

.metas-table td small{
    display:block;
    color:#88a9d2;
    font-size:11px;
    margin-top:2px;
}

.metas-table .num{
    text-align:right;
}

.meta-input{
    width:120px;
    height:38px;
    border-radius:10px;
    border:1px solid rgba(0,186,255,.34);
    background:rgba(1,18,48,.92);
    color:#fff;
    text-align:right;
    font-size:16px;
    font-weight:900;
    padding:0 10px;
    outline:none;
}

.meta-input:focus{
    border-color:#00e5ff;
    box-shadow:0 0 0 3px rgba(0,229,255,.12),0 0 18px rgba(0,229,255,.16);
}

.obs-input{
    width:220px;
    height:38px;
    border-radius:10px;
    border:1px solid rgba(98,153,220,.25);
    background:rgba(1,18,48,.68);
    color:#e8f3ff;
    padding:0 10px;
    outline:none;
}

.status-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    padding:5px 9px;
    background:rgba(0,221,171,.10);
    color:#79ffdc;
    border:1px solid rgba(0,221,171,.20);
    font-size:11px;
    font-weight:900;
}

.progress-cell{
    min-width:145px;
    display:grid;
    grid-template-columns:54px 1fr;
    gap:8px;
    align-items:center;
}

.progress-cell span{
    color:#e8f3ff;
    font-weight:800;
}

.progress-cell::after{
    content:'';
    height:8px;
    border-radius:999px;
    background:rgba(139,169,210,.22);
    grid-column:2;
    grid-row:1;
}

.progress-cell i{
    height:8px;
    border-radius:999px;
    background:linear-gradient(90deg,#158fff,#00e5ff);
    grid-column:2;
    grid-row:1;
    z-index:1;
    box-shadow:0 0 12px rgba(0,229,255,.28);
}

.negativo{
    color:#ff4d64 !important;
    font-weight:900;
}

.positivo{
    color:#2ee889 !important;
    font-weight:900;
}

@media(max-width:1250px){
    .metas-filters,
    .copy-grid{
        grid-template-columns:1fr 1fr;
    }
    .metas-summary{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:760px){
    .metas-filters,
    .copy-grid,
    .metas-summary{
        grid-template-columns:1fr;
    }
    .table-toolbar{
        flex-direction:column;
        align-items:stretch;
    }
    .toolbar-left{
        flex-direction:column;
        align-items:stretch;
    }
    #buscaMeta{
        width:100%;
        max-width:none;
    }
}


/* Ajuste fino do gráfico Regional x Meta */
.panel-regional #chartCooperativa{
    min-height:265px;
}
.panel-regional .apexcharts-legend{
    gap:8px !important;
}
.panel-regional .apexcharts-xaxis-label{
    font-weight:800;
}


/* Fix do Regional x Meta em branco */
.empty-chart{
    height:265px;
    display:grid;
    place-items:center;
    color:#9fbde7;
    font-weight:800;
    border-radius:14px;
    background:rgba(0,80,150,.06);
}
.panel-regional #chartCooperativa{
    min-height:265px;
}


/* ==========================================================
   Tela Performance Regionais - padrão aprovado
   ========================================================== */

.performance-page .app-shell{
    padding:16px 18px;
}

.performance-shell{
    min-height:calc(100vh - 20px);
}

.performance-topbar{
    grid-template-columns:minmax(420px,1fr) minmax(620px,1.35fr) 280px;
    gap:16px;
    align-items:center;
}

.performance-topbar .brand h1{
    font-size:28px;
    letter-spacing:-.5px;
}

.performance-topbar .brand p{
    color:#00d2ff;
}

.performance-filters{
    grid-template-columns:140px 140px minmax(260px,1fr) auto;
    align-items:end;
}

.performance-kpis{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
    margin:18px 0;
}

.performance-kpis .kpi-card{
    min-height:184px;
    position:relative;
    overflow:hidden;
}

.performance-kpis .kpi-value-line strong{
    font-size:40px;
}

.performance-kpis .kpi-card small{
    font-size:14px;
}

.negative-number{
    color:#d9eaff !important;
}

.positive-number{
    color:#2ee889 !important;
}

.donut-mini{
    position:absolute;
    right:24px;
    top:50px;
    width:96px;
    height:96px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:
        radial-gradient(circle at center, #06183a 56%, transparent 58%),
        conic-gradient(#9b57ff calc(var(--p) * 1%), rgba(139,169,210,.18) 0);
    box-shadow:0 0 24px rgba(155,87,255,.18);
}

.cyan-donut{
    background:
        radial-gradient(circle at center, #06183a 56%, transparent 58%),
        conic-gradient(#00dcc7 calc(var(--p) * 1%), rgba(139,169,210,.18) 0);
    box-shadow:0 0 24px rgba(0,220,199,.18);
}

.donut-mini span{
    color:#f7fbff;
    font-size:18px;
    font-weight:950;
}

.performance-table-panel{
    min-height:calc(100vh - 344px);
    padding:18px;
}

.performance-table-head{
    align-items:center;
    margin-bottom:14px;
}

.status-legend{
    display:flex;
    gap:24px;
    align-items:center;
    flex-wrap:wrap;
    color:#dceaff;
    font-size:14px;
    font-weight:700;
}

.status-legend span{
    display:inline-flex;
    align-items:center;
    gap:8px;
}

.dot{
    display:inline-block;
    width:12px;
    height:12px;
    border-radius:999px;
    box-shadow:0 0 14px currentColor;
    flex:none;
}

.dot.ok{background:#4bd137;color:#4bd137;}
.dot.warn{background:#ffbd2e;color:#ffbd2e;}
.dot.bad{background:#ff4f61;color:#ff4f61;}

.performance-table-wrap{
    border:1px solid rgba(57,139,255,.28);
    border-radius:14px;
    overflow:auto;
    background:linear-gradient(180deg,rgba(7,35,78,.55),rgba(4,22,54,.40));
}

.performance-table{
    width:100%;
    min-width:1120px;
    border-collapse:separate;
    border-spacing:0;
}

.performance-table thead th{
    background:linear-gradient(180deg,rgba(15,61,117,.98),rgba(8,38,80,.98));
    color:#d8efff;
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.28px;
    text-align:left;
    padding:12px 18px;
    border-bottom:1px solid rgba(75,167,255,.28);
}

.performance-table thead th small{
    display:block;
    text-transform:none;
    letter-spacing:0;
    color:#9ec0ec;
    font-size:12px;
    margin-top:2px;
}

.performance-table th.num,
.performance-table td.num{
    text-align:center;
}

.performance-table tbody td{
    padding:11px 18px;
    border-bottom:1px solid rgba(80,143,220,.14);
    color:#e8f3ff;
    vertical-align:middle;
}

.performance-table tbody tr:hover{
    background:rgba(0,140,255,.08);
}

.regional-name{
    display:flex;
    align-items:center;
    gap:12px;
}

.regional-badge{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:999px;
    color:#cfeeff;
    font-weight:950;
    font-size:12px;
    background:linear-gradient(135deg,rgba(0,130,255,.42),rgba(0,210,255,.10));
    border:1px solid rgba(0,164,255,.30);
    box-shadow:inset 0 0 18px rgba(0,130,255,.18);
}

.regional-name strong{
    font-size:15px;
    font-weight:700;
}

.performance-table td.num strong{
    display:block;
    font-size:16px;
    font-weight:950;
}

.performance-table td.num small{
    display:block;
    color:#a4bee2;
    font-size:12px;
    margin-top:1px;
}

.performance-table .negativo strong,
.performance-table .negativo small{
    color:#ff4d64;
}

.performance-table .positivo strong,
.performance-table .positivo small{
    color:#2ee889;
}

.regional-progress{
    display:grid;
    grid-template-columns:70px minmax(120px,1fr);
    gap:10px;
    align-items:center;
}

.regional-progress span{
    font-weight:850;
    color:#eaf5ff;
    text-align:right;
}

.regional-progress b{
    position:relative;
    display:block;
    height:9px;
    border-radius:999px;
    background:rgba(139,169,210,.22);
    overflow:hidden;
}

.regional-progress b i{
    position:absolute;
    left:0;
    top:0;
    height:100%;
    display:block;
    border-radius:inherit;
    background:linear-gradient(90deg,#158fff,#2db6ff);
    box-shadow:0 0 14px rgba(45,182,255,.28);
}

.status-text{
    display:inline-flex;
    align-items:center;
    gap:9px;
    font-size:15px;
    font-weight:700;
}

.status-text.ok{color:#dfffe8;}
.status-text.warn{color:#fff4cc;}
.status-text.bad{color:#ffdbe0;}

.chev{
    width:34px;
    text-align:center;
    color:#cbe2ff;
    font-size:28px;
}

.empty-line{
    text-align:center;
    padding:28px !important;
    color:#a8c2e8 !important;
    font-weight:800;
}

.performance-footer{
    color:#91acd2;
    font-size:12px;
    text-align:center;
    padding-top:8px;
}

@media(max-width:1500px){
    .performance-topbar{
        grid-template-columns:1fr;
    }
    .performance-kpis{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:900px){
    .performance-kpis{
        grid-template-columns:1fr;
    }
    .performance-filters{
        grid-template-columns:1fr;
    }
    .donut-mini{
        position:relative;
        right:auto;
        top:auto;
        margin-top:10px;
    }
}


/* ==========================================================
   Tela Análise Anual - padrão aprovado
   ========================================================== */

.anual-shell{
    min-height:calc(100vh - 20px);
    padding:16px 18px;
}

.anual-topbar{
    grid-template-columns:minmax(420px,1fr) minmax(640px,1.45fr) 280px;
    gap:16px;
    align-items:center;
}

.anual-topbar .brand h1{
    font-size:30px;
    letter-spacing:-.5px;
}

.anual-topbar .brand p{
    color:#00d2ff;
}

.anual-filters{
    grid-template-columns:145px 160px minmax(260px,1fr) auto;
    align-items:end;
}

.anual-kpis{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
    margin:18px 0 14px;
}

.anual-kpis .kpi-card{
    min-height:170px;
}

.anual-kpis .kpi-value-line strong{
    font-size:34px;
}

.anual-kpis .kpi-card small{
    font-size:13px;
}

.pink{--accent:#ff3368}
.pink .kpi-icon{
    box-shadow:0 0 22px rgba(255,51,104,.35), inset 0 0 14px rgba(255,51,104,.18);
    border-color:rgba(255,51,104,.65);
    color:#fff;
}

.anual-grid{
    display:grid;
    grid-template-columns:1.05fr 1fr;
    grid-template-rows:minmax(300px,.9fr) minmax(250px,.72fr);
    gap:14px;
}

.anual-table-main{
    grid-column:1 / 2;
    grid-row:1 / 3;
    min-height:620px;
}

.anual-inferiores{
    grid-column:2 / 3;
    grid-row:1 / 2;
}

.anual-resumo{
    grid-column:2 / 3;
    grid-row:2 / 3;
}

.anual-table-wrap{
    border:1px solid rgba(57,139,255,.28);
    border-radius:14px;
    overflow:auto;
    background:linear-gradient(180deg,rgba(7,35,78,.55),rgba(4,22,54,.40));
    max-height:548px;
}

.anual-table-wrap.small{
    max-height:270px;
}

.anual-table{
    width:100%;
    min-width:720px;
    border-collapse:separate;
    border-spacing:0;
}

.anual-table thead th{
    position:sticky;
    top:0;
    z-index:2;
    background:linear-gradient(180deg,rgba(15,61,117,.98),rgba(8,38,80,.98));
    color:#d8efff;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.28px;
    text-align:left;
    padding:12px 14px;
    border-bottom:1px solid rgba(75,167,255,.28);
}

.anual-table tbody td,
.anual-table tfoot th{
    padding:10px 14px;
    border-bottom:1px solid rgba(80,143,220,.14);
    color:#e8f3ff;
    vertical-align:middle;
    font-size:13px;
}

.anual-table tbody tr:hover{
    background:rgba(0,140,255,.08);
}

.anual-table .num{
    text-align:right;
    font-weight:800;
}

.anual-table tfoot th{
    position:sticky;
    bottom:0;
    background:linear-gradient(180deg,rgba(13,58,117,.96),rgba(9,43,91,.96));
    font-size:14px;
    font-weight:950;
}

.anual-table .positivo{
    color:#2ee889 !important;
}

.anual-table .negativo{
    color:#ff4d64 !important;
}

.anual-resumo{
    display:grid;
    grid-template-columns:minmax(0,1fr) 250px;
    gap:18px;
}

.anual-resumo .panel-head{
    grid-column:1 / -1;
    margin-bottom:0;
}

.annual-bars{
    display:flex;
    flex-direction:column;
    gap:28px;
    justify-content:center;
    padding:8px 0 12px;
}

.annual-bars div{
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px 12px;
    align-items:center;
}

.annual-bars label{
    color:#a8bee2;
    font-size:13px;
    font-weight:700;
}

.annual-bars strong{
    color:#ffffff;
    font-size:26px;
    font-weight:950;
    grid-column:1 / 2;
}

.annual-bars b{
    grid-column:1 / 2;
    height:14px;
    border-radius:999px;
    background:rgba(139,169,210,.18);
    overflow:hidden;
    box-shadow:inset 0 0 14px rgba(0,0,0,.20);
}

.annual-bars b i{
    height:100%;
    display:block;
    border-radius:inherit;
    background:linear-gradient(90deg,#158fff,#2669ff);
    box-shadow:0 0 18px rgba(21,143,255,.25);
}

.annual-bars b.cyan-bar i{
    background:linear-gradient(90deg,#19d7ff,#00d8c9);
}

.annual-bars span{
    grid-column:2 / 3;
    grid-row:2 / 4;
    color:#d9eaff;
    font-weight:800;
    align-self:center;
}

.annual-summary-side{
    border-left:1px solid rgba(68,165,255,.35);
    padding-left:24px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:22px;
}

.annual-summary-side div{
    border-bottom:1px solid rgba(126,183,255,.14);
    padding-bottom:16px;
}

.annual-summary-side div:last-child{
    border-bottom:0;
}

.annual-summary-side span{
    display:block;
    color:#9fb9df;
    font-size:13px;
    margin-bottom:6px;
}

.annual-summary-side strong{
    font-size:25px;
    font-weight:950;
    color:#fff;
}

.anual-note{
    color:#91acd2;
    font-size:12px;
    padding-top:10px;
}

@media(max-width:1500px){
    .anual-topbar{
        grid-template-columns:1fr;
    }
    .anual-kpis{
        grid-template-columns:repeat(2,1fr);
    }
    .anual-grid{
        grid-template-columns:1fr;
        grid-template-rows:auto;
    }
    .anual-table-main,
    .anual-inferiores,
    .anual-resumo{
        grid-column:auto;
        grid-row:auto;
    }
}

@media(max-width:900px){
    .anual-filters,
    .anual-kpis,
    .anual-resumo{
        grid-template-columns:1fr;
    }
    .annual-summary-side{
        border-left:0;
        border-top:1px solid rgba(68,165,255,.35);
        padding-left:0;
        padding-top:18px;
    }
}


/* ==========================================================
   FIX Análise Anual: Resumo Anual Consolidado cortando conteúdo
   Ajuste apenas visual, sem alterar cálculo/dados.
   ========================================================== */

.anual-grid{
    grid-template-rows:minmax(300px,.86fr) minmax(345px,.82fr);
}

.anual-resumo{
    min-height:345px;
    overflow:visible;
    align-content:stretch;
}

.anual-resumo.panel{
    padding-bottom:22px;
}

.anual-resumo .panel-head{
    margin-bottom:4px;
}

.annual-bars{
    gap:22px;
    justify-content:center;
    min-height:230px;
}

.annual-bars div{
    align-content:center;
}

.annual-bars strong{
    font-size:24px;
    line-height:1.05;
}

.annual-bars b{
    height:12px;
}

.annual-summary-side{
    justify-content:space-between;
    gap:12px;
    min-height:230px;
    padding-bottom:2px;
}

.annual-summary-side div{
    padding-bottom:12px;
}

.annual-summary-side span{
    font-size:12px;
}

.annual-summary-side strong{
    font-size:23px;
    line-height:1.05;
}

.anual-note{
    margin-bottom:10px;
}

@media(max-width:1500px){
    .anual-grid{
        grid-template-rows:auto;
    }

    .anual-resumo{
        min-height:auto;
    }

    .annual-bars,
    .annual-summary-side{
        min-height:auto;
    }
}


/* ==========================================================
   Modo temporário sem login geral + senha simples nas metas
   ========================================================== */

.metas-password-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:24px;
    background:
        radial-gradient(circle at 18% 10%, rgba(0, 152, 255, .18), transparent 28%),
        radial-gradient(circle at 82% 84%, rgba(113, 69, 255, .16), transparent 30%),
        linear-gradient(135deg,#020817,#061a36 58%,#031128);
}

.metas-password-card{
    width:min(440px, calc(100vw - 32px));
    border:1px solid rgba(64,169,255,.42);
    border-radius:24px;
    background:linear-gradient(180deg,rgba(7,31,69,.96),rgba(4,17,43,.95));
    box-shadow:0 0 42px rgba(0,126,255,.18), inset 0 0 28px rgba(0,135,255,.08);
    padding:32px;
    color:#eaf5ff;
}

.metas-password-card .logo-mark{
    margin-bottom:18px;
}

.metas-password-card h1{
    margin:0 0 6px;
    font-size:30px;
    letter-spacing:-.5px;
}

.metas-password-card p{
    margin:0 0 22px;
    color:#9fbde7;
    line-height:1.45;
}

.metas-password-card form{
    display:grid;
    gap:14px;
}

.metas-password-card label{
    color:#a8bee2;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.35px;
}

.metas-password-card input{
    width:100%;
    height:46px;
    margin-top:7px;
    border-radius:12px;
    border:1px solid rgba(70,150,255,.35);
    background:#051839;
    color:#fff;
    padding:0 13px;
    outline:none;
    font-weight:800;
}

.metas-password-card input:focus{
    border-color:#00cfff;
    box-shadow:0 0 0 3px rgba(0,207,255,.10);
}

.metas-password-card .btn-primary,
.metas-password-card .btn-ghost{
    width:100%;
}

.metas-password-card small{
    display:block;
    margin-top:18px;
    color:#7e9fc8;
    text-align:center;
}


/* ==========================================================
   MENU LATERAL APROVADO + TELA ANÁLISE DE CONSULTORES
   ========================================================== */

.app-layout{
    grid-template-columns:82px minmax(0,1fr);
    gap:16px;
}

.side-nav{
    width:80px;
    min-height:calc(100vh - 20px);
    border-radius:18px;
    border:1px solid rgba(35,135,255,.46);
    background:linear-gradient(180deg,rgba(4,18,43,.98),rgba(2,10,31,.96));
    box-shadow:0 0 30px rgba(0,105,255,.16), inset 0 0 36px rgba(0,145,255,.08);
    padding:10px 8px;
}

.side-nav nav{
    gap:14px;
    margin-top:42px;
}

.side-logo{
    width:44px;
    height:44px;
    border-radius:13px;
    font-size:26px;
    color:#041533;
    background:linear-gradient(135deg,#00d7ff,#6b42ff);
    box-shadow:0 0 26px rgba(0,204,255,.38);
}

.nav-icon{
    width:42px;
    height:42px;
    border-radius:12px;
    font-size:23px;
    color:#9fc6ef;
    background:transparent;
}

.nav-icon:hover,
.nav-icon.active{
    color:#fff;
    border-color:rgba(0,213,255,.70);
    background:linear-gradient(145deg,rgba(0,132,255,.70),rgba(0,221,255,.20));
    box-shadow:0 0 23px rgba(0,158,255,.45), inset 0 0 18px rgba(0,126,255,.28);
}

.nav-icon.logout{
    color:#9fc6ef;
    margin-bottom:20px;
}

.consultores-shell{
    padding:8px 0 18px;
}

.consultores-topbar{
    display:grid;
    grid-template-columns:minmax(390px,.9fr) minmax(620px,1.4fr) 290px;
    gap:14px;
    align-items:center;
}

.consultores-brand{
    display:flex;
    align-items:center;
    gap:18px;
    min-height:88px;
}

.consultores-brand img{
    width:190px;
    height:auto;
    object-fit:contain;
}

.consultores-brand h1{
    margin:0;
    font-size:27px;
    letter-spacing:-.4px;
    color:#fff;
}

.consultores-brand p{
    margin:5px 0 0;
    color:#00d8ff;
    font-size:13px;
    font-weight:900;
}

.consultores-filters,
.consultores-update{
    min-height:88px;
    border:1px solid rgba(57,139,255,.34);
    border-radius:16px;
    background:linear-gradient(180deg,rgba(5,24,56,.84),rgba(4,17,43,.78));
    box-shadow:0 0 28px rgba(0,102,255,.07);
}

.consultores-filters{
    display:grid;
    grid-template-columns:130px 130px minmax(220px,1fr) 150px auto;
    gap:10px;
    align-items:end;
    padding:12px;
}

.consultores-filters label{
    color:#a8bee2;
    font-size:11px;
    font-weight:900;
    text-transform:none;
    letter-spacing:0;
}

.consultores-filters input,
.consultores-filters select{
    width:100%;
    height:42px;
    margin-top:5px;
    border-radius:9px;
    border:1px solid rgba(70,150,255,.35);
    background:#041533;
    color:#fff;
    padding:0 10px;
    outline:none;
    font-weight:800;
}

.consultores-filters .btn-primary{
    height:42px;
    border-radius:10px;
    padding:0 18px;
}

.consultores-update{
    padding:16px 18px;
}

.consultores-update span{
    color:#91acd2;
    display:block;
    font-size:12px;
}

.consultores-update strong{
    color:#fff;
    display:block;
    margin-top:6px;
    font-size:17px;
}

.consultores-update small{
    color:#91acd2;
    display:block;
    margin-top:7px;
}

.consultores-kpis{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:13px;
    margin:16px 0 14px;
}

.consultor-kpi{
    min-height:146px;
    border:1px solid rgba(57,139,255,.30);
    border-radius:16px;
    padding:20px 18px;
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg,rgba(7,31,69,.90),rgba(4,18,45,.86));
    box-shadow:0 0 28px rgba(0,102,255,.07);
}

.consultor-kpi h3{
    margin:0 0 0 78px;
    font-size:14px;
    color:#eaf5ff;
    font-weight:850;
}

.consultor-kpi strong{
    display:block;
    margin:18px 0 0 78px;
    font-size:34px;
    line-height:1;
    color:#fff;
    font-weight:950;
}

.consultor-kpi small{
    display:block;
    margin:11px 0 0;
    color:#d2e1f7;
    font-size:13px;
}

.kpi-circle{
    position:absolute;
    left:20px;
    top:20px;
    width:55px;
    height:55px;
    border-radius:50%;
    display:grid;
    place-items:center;
    font-weight:950;
    font-size:22px;
    color:#fff;
    border:1px solid currentColor;
    box-shadow:0 0 24px currentColor, inset 0 0 16px rgba(255,255,255,.08);
}

.consultor-kpi.blue .kpi-circle{color:#1594ff;}
.consultor-kpi.cyan .kpi-circle{color:#00d8ff;}
.consultor-kpi.orange .kpi-circle{color:#ff9300;}
.consultor-kpi.red .kpi-circle{color:#ff3368;}
.consultor-kpi.purple .kpi-circle{color:#9b57ff;}

.mini-wave{
    position:absolute;
    right:18px;
    bottom:28px;
    width:86px;
    height:34px;
    opacity:.9;
    background:
        linear-gradient(135deg, transparent 7%, currentColor 8%, currentColor 10%, transparent 11%) 0 22px/18px 12px repeat-x;
    color:#00d8ff;
    filter:drop-shadow(0 0 8px currentColor);
    clip-path:polygon(0 80%,10% 70%,18% 74%,25% 38%,33% 86%,43% 16%,55% 76%,67% 50%,80% 18%,92% 84%,100% 64%,100% 100%,0 100%);
    background-color:currentColor;
}

.consultores-main-grid{
    display:grid;
    grid-template-columns:1.25fr .54fr .66fr;
    gap:14px;
    margin-bottom:14px;
}

.consultores-bottom-grid{
    display:grid;
    grid-template-columns:1fr .9fr .9fr;
    gap:14px;
}

.consultores-panel{
    border:1px solid rgba(57,139,255,.34);
    border-radius:16px;
    background:linear-gradient(180deg,rgba(7,31,69,.88),rgba(4,18,45,.82));
    box-shadow:0 0 28px rgba(0,102,255,.07);
    padding:16px;
    min-width:0;
}

.consultores-panel-head{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:center;
    margin-bottom:12px;
}

.consultores-panel-head h2{
    margin:0;
    font-size:18px;
    color:#fff;
}

.consultores-panel-head a{
    color:#4dbbff;
    text-decoration:none;
    font-weight:850;
    font-size:13px;
    white-space:nowrap;
}

.consultores-table-wrap{
    border:1px solid rgba(79,166,255,.18);
    border-radius:11px;
    overflow:auto;
    background:rgba(4,18,45,.35);
}

.consultores-table{
    width:100%;
    min-width:930px;
    border-collapse:separate;
    border-spacing:0;
}

.consultores-table-wrap.mini .consultores-table{
    min-width:700px;
}

.consultores-table th{
    background:linear-gradient(180deg,rgba(15,61,117,.98),rgba(8,38,80,.98));
    color:#d8efff;
    padding:10px 12px;
    font-size:11px;
    text-align:left;
    text-transform:none;
    letter-spacing:0;
    border-bottom:1px solid rgba(75,167,255,.22);
}

.consultores-table td{
    padding:9px 12px;
    border-bottom:1px solid rgba(80,143,220,.12);
    color:#eaf4ff;
    font-size:12px;
    vertical-align:middle;
}

.consultores-table tbody tr:hover td{
    background:rgba(0,140,255,.07);
}

.consultores-table .num{
    text-align:right;
    font-weight:900;
}

.rank-num{
    color:#9fb9df !important;
    font-weight:900;
    width:34px;
}

.consultor-name{
    display:flex;
    align-items:center;
    gap:9px;
}

.consultor-name span{
    width:28px;
    height:28px;
    border-radius:50%;
    display:grid;
    place-items:center;
    color:#fff;
    font-size:10px;
    font-weight:950;
    border:1px solid rgba(0,217,255,.32);
    background:linear-gradient(135deg,rgba(0,145,255,.58),rgba(0,217,255,.12));
    box-shadow:inset 0 0 14px rgba(0,132,255,.18);
}

.consultor-name strong{
    font-size:12px;
}

.status-pill{
    display:inline-flex;
    justify-content:center;
    min-width:96px;
    padding:6px 9px;
    border-radius:6px;
    color:#fff;
    font-size:11px;
    font-weight:900;
}

.status-pill.ok{background:linear-gradient(90deg,#087e57,#0aa96f);}
.status-pill.warn{background:linear-gradient(90deg,#a86b00,#df960a);}
.status-pill.risk{background:linear-gradient(90deg,#a34900,#bd6014);}
.status-pill.bad{background:linear-gradient(90deg,#941b3c,#bd254d);}

.alerts-list{
    display:grid;
    gap:0;
}

.alerts-list div{
    display:grid;
    grid-template-columns:16px 1fr 48px;
    gap:9px;
    align-items:center;
    padding:11px 0;
    border-bottom:1px solid rgba(126,183,255,.12);
}

.alerts-list div:last-child{
    border-bottom:0;
}

.dot{
    width:10px;
    height:10px;
    border-radius:50%;
    box-shadow:0 0 12px currentColor;
}

.dot.red{background:#ff3368;color:#ff3368;}
.dot.orange{background:#ff9300;color:#ff9300;}
.dot.purple{background:#9b57ff;color:#9b57ff;}

.alerts-list p{
    margin:0;
    color:#eaf4ff;
    font-size:12px;
}

.alerts-list b{
    justify-self:end;
    min-width:42px;
    padding:7px 8px;
    text-align:center;
    border-radius:8px;
    color:#fff;
    background:rgba(255,51,104,.18);
    border:1px solid rgba(255,51,104,.45);
    box-shadow:0 0 14px rgba(255,51,104,.18);
}

.tempo-list{
    display:grid;
    gap:21px;
    padding:10px 2px 0;
}

.tempo-list div{
    display:grid;
    grid-template-columns:76px 1fr 42px 52px;
    gap:12px;
    align-items:center;
}

.tempo-list label{
    color:#fff;
    font-size:13px;
}

.tempo-bar{
    height:13px;
    border-radius:999px;
    background:rgba(139,169,210,.16);
    overflow:hidden;
}

.tempo-bar i{
    display:block;
    height:100%;
    border-radius:inherit;
}

.tempo-bar i.cyan{background:#00d8ff;}
.tempo-bar i.blue{background:#1594ff;}
.tempo-bar i.orange{background:#ff9300;}
.tempo-bar i.red{background:#ff3368;}

.tempo-list b,
.tempo-list em{
    color:#fff;
    font-style:normal;
    font-weight:900;
    text-align:right;
    font-size:13px;
}

.reading-list{
    display:grid;
    gap:0;
    border-radius:12px;
    background:rgba(4,18,45,.34);
    padding:4px 12px;
}

.reading-list div{
    display:grid;
    grid-template-columns:34px 1fr;
    align-items:center;
    gap:10px;
    padding:13px 0;
    border-bottom:1px solid rgba(126,183,255,.10);
}

.reading-list div:last-child{
    border-bottom:0;
}

.reading-list p{
    margin:0;
    color:#eaf4ff;
    font-size:13px;
    line-height:1.45;
}

.read-icon{
    width:29px;
    height:29px;
    display:grid;
    place-items:center;
    border-radius:8px;
    font-weight:950;
    border:1px solid currentColor;
    box-shadow:0 0 12px currentColor;
}

.read-icon.green{color:#2ee889;}
.read-icon.orange{color:#ff9300;}
.read-icon.purple{color:#9b57ff;}
.read-icon.blue{color:#1594ff;}

.green-text{color:#2ee889 !important;}
.orange-text{color:#ff9300 !important;}
.red-text{color:#ff3368 !important;}

@media(max-width:1500px){
    .consultores-topbar{
        grid-template-columns:1fr;
    }

    .consultores-kpis{
        grid-template-columns:repeat(3,1fr);
    }

    .consultores-main-grid,
    .consultores-bottom-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:900px){
    .app-layout{
        grid-template-columns:1fr;
    }

    .side-nav{
        display:none;
    }

    .consultores-filters,
    .consultores-kpis{
        grid-template-columns:1fr;
    }

    .consultores-brand{
        flex-direction:column;
        align-items:flex-start;
    }
}


/* ==========================================================
   FIX MENU + LEGIBILIDADE CONSULTOR + LARGURA DAS TELAS
   ========================================================== */

/* evita a tela ficar espremida no meio por conflito de CSS antigo/cache */
html, body{
    width:100%;
    min-width:0;
}

.app-layout{
    width:calc(100vw - 18px) !important;
    max-width:none !important;
    margin:10px auto !important;
    transform:none !important;
    zoom:1 !important;
}

.app-shell{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    transform:none !important;
    zoom:1 !important;
}

/* menu lateral no padrão aprovado, sem link falso */
.side-nav{
    width:78px !important;
    min-width:78px !important;
    border-radius:18px !important;
}

.side-nav nav{
    gap:16px !important;
    margin-top:40px !important;
}

.side-logo{
    width:44px !important;
    height:44px !important;
    font-size:25px !important;
}

.nav-icon{
    width:42px !important;
    height:42px !important;
    font-size:22px !important;
}

/* tela consultores: maior área útil e texto mais nítido */
.consultores-page .app-layout,
.app-layout.consultores-page{
    width:calc(100vw - 18px) !important;
}

.consultores-shell{
    padding:8px 0 18px !important;
    border-color:rgba(45,151,255,.22);
}

.consultores-topbar{
    grid-template-columns:minmax(360px,.85fr) minmax(620px,1.5fr) 280px !important;
}

.consultores-kpis{
    gap:12px !important;
}

.consultor-kpi{
    min-height:140px !important;
    padding:18px 16px !important;
}

.consultor-kpi h3{
    font-size:13px !important;
}

.consultor-kpi strong{
    font-size:34px !important;
}

.consultores-main-grid{
    grid-template-columns:minmax(760px,1.38fr) minmax(300px,.58fr) minmax(330px,.64fr) !important;
    gap:14px !important;
}

.consultores-bottom-grid{
    grid-template-columns:minmax(430px,1fr) minmax(430px,1fr) minmax(430px,1fr) !important;
    gap:14px !important;
}

.consultores-panel{
    padding:15px !important;
    overflow:hidden;
}

.consultores-panel-head h2{
    font-size:17px !important;
}

.consultores-panel-head a{
    font-size:12px !important;
}

.consultores-table-wrap{
    overflow:auto;
    scrollbar-color:rgba(53,171,255,.55) rgba(7,25,58,.85);
    scrollbar-width:thin;
}

.consultores-table-wrap::-webkit-scrollbar{
    height:8px;
    width:8px;
}

.consultores-table-wrap::-webkit-scrollbar-track{
    background:rgba(7,25,58,.85);
    border-radius:999px;
}

.consultores-table-wrap::-webkit-scrollbar-thumb{
    background:linear-gradient(90deg,#1594ff,#00d8ff);
    border-radius:999px;
}

.ranking-table{
    min-width:850px !important;
}

.consultores-table-wrap.mini .consultores-table{
    min-width:620px !important;
}

.consultores-table th{
    font-size:12px !important;
    line-height:1.25 !important;
    padding:11px 12px !important;
    font-weight:900 !important;
    -webkit-font-smoothing:antialiased;
    text-rendering:geometricPrecision;
}

.consultores-table td{
    font-size:13px !important;
    line-height:1.32 !important;
    padding:10px 12px !important;
    font-weight:650 !important;
    -webkit-font-smoothing:antialiased;
    text-rendering:geometricPrecision;
}

.consultores-table th,
.consultores-table td{
    white-space:nowrap;
}

.consultor-name strong{
    font-size:13px !important;
    font-weight:850 !important;
}

.consultor-name span{
    width:30px !important;
    height:30px !important;
    font-size:10.5px !important;
}

.status-pill{
    min-width:88px !important;
    font-size:11.5px !important;
    padding:6px 8px !important;
}

.alerts-list p,
.tempo-list label,
.tempo-list b,
.tempo-list em,
.reading-list p{
    font-size:13px !important;
    line-height:1.36 !important;
    -webkit-font-smoothing:antialiased;
    text-rendering:geometricPrecision;
}

.alerts-list b{
    font-size:14px !important;
}

@media(max-width:1500px){
    .consultores-main-grid,
    .consultores-bottom-grid{
        grid-template-columns:1fr !important;
    }

    .consultores-topbar{
        grid-template-columns:1fr !important;
    }

    .consultores-kpis{
        grid-template-columns:repeat(3,1fr) !important;
    }
}

@media(max-width:900px){
    .app-layout{
        width:calc(100vw - 12px) !important;
        grid-template-columns:1fr !important;
    }

    .side-nav{
        display:none !important;
    }

    .consultores-filters,
    .consultores-kpis{
        grid-template-columns:1fr !important;
    }
}


/* ==========================================================
   FIX CONSULTOR: layout respirando + botões Ver Todos funcionando
   ========================================================== */

/* Volta a largura para padrão profissional, sem tela grudada na borda */
.app-layout{
    width:min(1840px, calc(100vw - 28px)) !important;
    max-width:1840px !important;
    margin:10px auto !important;
}

.app-shell{
    width:100% !important;
    max-width:none !important;
}

/* Consultores mais respirado e sem sensação de "layout no limite" */
.consultores-shell{
    padding:10px 0 22px !important;
}

.consultores-page .side-nav{
    min-width:78px !important;
}

.consultores-topbar{
    grid-template-columns:minmax(360px,.88fr) minmax(620px,1.45fr) 280px !important;
    gap:14px !important;
}

.consultores-kpis{
    gap:13px !important;
    margin:15px 0 13px !important;
}

.consultor-kpi{
    min-height:136px !important;
    padding:17px 16px !important;
}

.consultor-kpi h3{
    font-size:13px !important;
}

.consultor-kpi strong{
    font-size:32px !important;
}

.consultor-kpi small{
    font-size:12px !important;
}

.kpi-circle{
    width:52px !important;
    height:52px !important;
}

.consultores-main-grid{
    grid-template-columns:minmax(720px,1.26fr) minmax(315px,.52fr) minmax(360px,.60fr) !important;
    gap:14px !important;
}

.consultores-bottom-grid{
    grid-template-columns:minmax(460px,1fr) minmax(460px,1fr) minmax(460px,1fr) !important;
    gap:14px !important;
}

.consultores-panel{
    padding:14px !important;
    overflow:hidden;
}

.consultores-panel-head{
    margin-bottom:10px !important;
}

.consultores-panel-head h2{
    font-size:17px !important;
}

.consultores-panel-head a{
    font-size:12px !important;
    color:#35c4ff !important;
    cursor:pointer;
}

.consultores-panel-head a:hover{
    color:#fff !important;
    text-shadow:0 0 12px rgba(0,216,255,.85);
}

/* Banner discreto quando entra em modo detalhado */
.consultores-mode-banner{
    display:flex;
    align-items:center;
    gap:12px;
    justify-content:space-between;
    margin:0 0 13px;
    padding:10px 14px;
    border:1px solid rgba(0,216,255,.28);
    border-radius:13px;
    background:linear-gradient(90deg,rgba(0,145,255,.14),rgba(0,216,255,.05));
    box-shadow:0 0 20px rgba(0,145,255,.08);
}

.consultores-mode-banner strong{
    color:#fff;
    font-size:13px;
}

.consultores-mode-banner span{
    flex:1;
    color:#a9c9ee;
    font-size:12px;
}

.consultores-mode-banner a{
    color:#35c4ff;
    text-decoration:none;
    font-weight:900;
    font-size:12px;
}

/* Tabelas sem aquela barra branca e sem esmagar o layout */
.consultores-table-wrap{
    overflow:auto;
    scrollbar-color:rgba(0,216,255,.55) rgba(7,25,58,.85);
    scrollbar-width:thin;
}

.consultores-table-wrap::-webkit-scrollbar{
    height:8px;
    width:8px;
}

.consultores-table-wrap::-webkit-scrollbar-track{
    background:rgba(7,25,58,.85);
    border-radius:999px;
}

.consultores-table-wrap::-webkit-scrollbar-thumb{
    background:linear-gradient(90deg,#1594ff,#00d8ff);
    border-radius:999px;
}

/* Ranking agora cabe melhor, sem parecer miniatura */
.ranking-table{
    min-width:0 !important;
    table-layout:fixed;
}

.ranking-table th:nth-child(1),
.ranking-table td:nth-child(1){width:36px}

.ranking-table th:nth-child(2),
.ranking-table td:nth-child(2){width:27%}

.ranking-table th:nth-child(3),
.ranking-table td:nth-child(3){width:23%}

.ranking-table th:nth-child(4),
.ranking-table td:nth-child(4),
.ranking-table th:nth-child(5),
.ranking-table td:nth-child(5),
.ranking-table th:nth-child(6),
.ranking-table td:nth-child(6),
.ranking-table th:nth-child(7),
.ranking-table td:nth-child(7){width:7%}

.ranking-table th:nth-child(8),
.ranking-table td:nth-child(8){width:12%}

.ranking-table th:nth-child(9),
.ranking-table td:nth-child(9){width:13%}

.consultores-table th,
.consultores-table td{
    font-size:12px !important;
    line-height:1.28 !important;
    padding:9px 10px !important;
    -webkit-font-smoothing:antialiased;
    text-rendering:geometricPrecision;
}

/* deixa nomes/cooperativas legíveis, mas sem estourar */
.ranking-table td:nth-child(2),
.ranking-table td:nth-child(3),
.ranking-table th:nth-child(2),
.ranking-table th:nth-child(3){
    white-space:normal !important;
}

.ranking-table td:not(:nth-child(2)):not(:nth-child(3)),
.ranking-table th:not(:nth-child(2)):not(:nth-child(3)){
    white-space:nowrap !important;
}

.consultor-name strong{
    font-size:12px !important;
    line-height:1.22 !important;
}

/* tabelas de baixo: caber sem cortar última coluna */
.consultores-table-wrap.mini .consultores-table{
    min-width:0 !important;
    table-layout:fixed;
}

.consultores-bottom-grid .consultores-table th,
.consultores-bottom-grid .consultores-table td{
    white-space:normal !important;
    font-size:11.5px !important;
    padding:8px 9px !important;
}

.status-pill{
    min-width:82px !important;
    font-size:11px !important;
    padding:6px 7px !important;
}

.alerts-list p,
.tempo-list label,
.tempo-list b,
.tempo-list em,
.reading-list p{
    font-size:12px !important;
    line-height:1.35 !important;
}

.tempo-list{
    gap:18px !important;
}

.tempo-list div{
    grid-template-columns:72px 1fr 38px 48px !important;
    gap:10px !important;
}

@media(max-width:1600px){
    .app-layout{
        width:calc(100vw - 18px) !important;
    }

    .consultores-main-grid,
    .consultores-bottom-grid{
        grid-template-columns:1fr !important;
    }

    .ranking-table{
        min-width:850px !important;
    }

    .consultores-table-wrap.mini .consultores-table{
        min-width:680px !important;
    }
}

@media(max-width:900px){
    .app-layout{
        width:calc(100vw - 12px) !important;
        grid-template-columns:1fr !important;
    }

    .side-nav{
        display:none !important;
    }

    .consultores-topbar,
    .consultores-filters,
    .consultores-kpis{
        grid-template-columns:1fr !important;
    }
}


/* ==========================================================
   CONSULTOR: modais com rolagem interna
   ========================================================== */

.modal-open{
    overflow:hidden;
}

.modal-link{
    appearance:none;
    border:0;
    background:transparent;
    color:#35c4ff;
    font-weight:900;
    font-size:12px;
    cursor:pointer;
    padding:0;
    text-decoration:none;
    white-space:nowrap;
}

.modal-link:hover{
    color:#fff;
    text-shadow:0 0 12px rgba(0,216,255,.8);
}

.consultores-modal{
    position:fixed;
    inset:0;
    z-index:9999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:28px;
}

.consultores-modal.is-open{
    display:flex;
}

.modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(1,8,24,.78);
    backdrop-filter:blur(10px);
}

.consultores-modal-box{
    position:relative;
    width:min(1180px, calc(100vw - 52px));
    max-height:min(86vh, 920px);
    display:flex;
    flex-direction:column;
    border:1px solid rgba(0,216,255,.34);
    border-radius:22px;
    background:
        radial-gradient(circle at 10% 0%, rgba(0,145,255,.18), transparent 36%),
        linear-gradient(180deg, rgba(6,27,62,.98), rgba(3,13,35,.98));
    box-shadow:0 24px 80px rgba(0,0,0,.45), 0 0 36px rgba(0,145,255,.20), inset 0 0 44px rgba(0,145,255,.07);
    overflow:hidden;
}

.consultores-modal-box.modal-wide{
    width:min(1380px, calc(100vw - 52px));
}

.consultores-modal-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
    padding:20px 22px 16px;
    border-bottom:1px solid rgba(79,166,255,.22);
    background:linear-gradient(180deg,rgba(12,48,98,.58),rgba(6,25,58,.18));
}

.consultores-modal-head h2{
    margin:0;
    color:#fff;
    font-size:23px;
    letter-spacing:-.3px;
}

.consultores-modal-head p{
    margin:5px 0 0;
    color:#9fbbe2;
    font-size:13px;
}

.modal-close{
    width:42px;
    height:42px;
    border-radius:13px;
    border:1px solid rgba(0,216,255,.35);
    color:#fff;
    background:rgba(3,18,46,.85);
    font-size:30px;
    line-height:1;
    cursor:pointer;
    box-shadow:0 0 18px rgba(0,216,255,.12);
}

.modal-close:hover{
    background:rgba(0,145,255,.24);
    box-shadow:0 0 22px rgba(0,216,255,.26);
}

.consultores-modal-body{
    padding:18px 22px 22px;
    overflow:auto;
    max-height:calc(86vh - 92px);
    scrollbar-color:rgba(0,216,255,.58) rgba(7,25,58,.85);
    scrollbar-width:thin;
}

.consultores-modal-body::-webkit-scrollbar{
    width:9px;
    height:9px;
}

.consultores-modal-body::-webkit-scrollbar-track{
    background:rgba(7,25,58,.85);
    border-radius:999px;
}

.consultores-modal-body::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,#1594ff,#00d8ff);
    border-radius:999px;
}

.modal-table-wrap{
    max-height:calc(86vh - 170px);
    overflow:auto;
}

.modal-table-wrap.compact{
    max-height:440px;
}

.modal-table{
    min-width:900px !important;
}

.modal-table th{
    position:sticky;
    top:0;
    z-index:2;
}

.modal-alert-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
    margin-bottom:18px;
}

.modal-alert-card{
    min-height:96px;
    border:1px solid rgba(79,166,255,.20);
    border-radius:15px;
    background:linear-gradient(180deg,rgba(7,31,69,.78),rgba(4,18,45,.68));
    padding:14px;
    display:grid;
    align-content:center;
    gap:6px;
}

.modal-alert-card strong{
    color:#fff;
    font-size:28px;
    line-height:1;
}

.modal-alert-card small{
    color:#9fbbe2;
    font-weight:800;
}

.modal-section-title{
    margin:16px 0 10px;
    color:#fff;
    font-size:16px;
}

.modal-tempo-list{
    border:1px solid rgba(79,166,255,.18);
    border-radius:16px;
    padding:18px;
    background:rgba(4,18,45,.35);
    margin-bottom:16px;
}

.modal-reading-list{
    margin-top:4px;
}

@media(max-width:900px){
    .consultores-modal{
        padding:12px;
    }

    .consultores-modal-box,
    .consultores-modal-box.modal-wide{
        width:calc(100vw - 24px);
        max-height:90vh;
    }

    .consultores-modal-head{
        padding:16px;
    }

    .consultores-modal-body{
        padding:14px 16px 18px;
        max-height:calc(90vh - 90px);
    }

    .modal-alert-grid{
        grid-template-columns:1fr;
    }

    .modal-table{
        min-width:760px !important;
    }
}


/* ==========================================================
   Acabamento final de layout do BI
   Consolida proporcoes e breakpoints sem alterar o tema.
   ========================================================== */

html{
    overflow-x:hidden;
}

body{
    min-width:320px;
}

.app-layout{
    grid-template-columns:78px minmax(0,1fr) !important;
    gap:14px !important;
    align-items:start !important;
}

.side-nav{
    position:sticky;
    top:10px;
    align-self:start;
    width:78px !important;
    min-width:78px !important;
    height:calc(100vh - 20px);
    min-height:0 !important;
}

.side-nav nav{
    min-height:0;
}

.app-shell,
.consultores-shell{
    min-width:0 !important;
    padding:16px !important;
}

.app-layout.consultores-page{
    width:calc(100vw - 20px) !important;
    max-width:none !important;
}

.consultores-shell{
    min-height:calc(100vh - 20px);
}

.consultores-bottom-grid{
    grid-template-columns:minmax(0,1.7fr) minmax(320px,.65fr) !important;
    align-items:stretch;
}

.consultores-bottom-grid .leitura-panel{
    grid-column:auto;
}

.consultores-bottom-grid .consultores-table-wrap.mini .consultores-table{
    min-width:780px !important;
    table-layout:auto;
}

.new-consultants-panel,
.executive-panel{
    min-height:320px;
}

.new-consultants-panel{
    border-top:2px solid rgba(0,216,255,.58);
}

.executive-panel{
    display:flex;
    flex-direction:column;
    border-top:2px solid rgba(155,87,255,.62);
}

.executive-panel .consultores-panel-head{
    padding-bottom:11px;
    border-bottom:1px solid rgba(126,183,255,.12);
}

.executive-panel .reading-list{
    flex:1;
    display:grid;
    align-content:stretch;
    gap:8px;
    padding:0;
    background:transparent;
}

.executive-panel .reading-list > div{
    min-height:0;
    padding:11px 12px;
    border:1px solid rgba(79,166,255,.14);
    border-radius:8px;
    background:rgba(4,18,45,.42);
}

.executive-panel .reading-list p{
    font-size:12px !important;
    line-height:1.42 !important;
}

.topbar{
    grid-template-columns:minmax(280px,1fr) minmax(480px,600px) 220px;
    gap:14px;
}

.brand{
    min-width:0;
}

.brand img{
    width:clamp(140px,11vw,180px);
}

.brand h1,
.consultores-brand h1{
    overflow-wrap:anywhere;
}

.topbar .filters{
    width:100%;
    min-width:0;
    display:grid;
    grid-template-columns:125px 125px minmax(170px,1fr) auto;
    align-items:end;
}

.filters label,
.filters input,
.filters select,
.filter-coop select{
    min-width:0;
    width:100%;
}

.update-box{
    width:100%;
    min-width:0;
}

.kpi-grid-main,
.performance-kpis,
.anual-kpis,
.consultores-kpis{
    align-items:stretch;
}

.kpi-card,
.consultor-kpi,
.mini-card{
    min-width:0;
}

.kpi-value-line{
    min-width:0;
    flex-wrap:wrap;
}

.kpi-value-line strong,
.consultor-kpi strong,
.mini-card strong{
    font-variant-numeric:tabular-nums;
}

.panel-head{
    align-items:flex-start;
}

.panel-head h2{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    line-height:1.25;
}

.panel-head span{
    flex:none;
    padding-top:2px;
}

.monthly{
    min-height:350px;
}

@media(max-width:1580px){
    .dashboard-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        grid-template-rows:auto;
    }

    .panel-comparativo,
    .panel-regional,
    .panel-evolucao,
    .retention{
        grid-column:auto;
        grid-row:auto;
    }

    .monthly,
    .side-cards{
        grid-column:1 / -1;
        grid-row:auto;
    }

    .side-cards{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:1500px){
    .performance-kpis,
    .anual-kpis{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .consultores-main-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }

    .consultores-main-grid .ranking-panel{
        grid-column:1 / -1;
    }

    .consultores-bottom-grid{
        grid-template-columns:minmax(0,1.7fr) minmax(320px,.65fr) !important;
    }

    .consultores-bottom-grid .leitura-panel{
        grid-column:auto;
    }
}

@media(max-width:1340px){
    .topbar,
    .performance-topbar,
    .anual-topbar,
    .consultores-topbar{
        grid-template-columns:1fr !important;
    }

    .update-box,
    .consultores-update{
        justify-self:stretch;
        width:100%;
    }

    .topbar .filters{
        grid-template-columns:minmax(130px,.7fr) minmax(130px,.7fr) minmax(240px,2fr) 110px;
    }
}

@media(max-width:1100px){
    .consultores-main-grid,
    .consultores-bottom-grid{
        grid-template-columns:1fr !important;
    }

    .consultores-main-grid .ranking-panel,
    .consultores-bottom-grid .leitura-panel{
        grid-column:auto;
    }

    .performance-kpis,
    .anual-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:900px){
    .app-layout{
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        grid-template-columns:1fr !important;
        gap:8px !important;
    }

    .side-nav{
        display:flex !important;
        position:sticky;
        top:0;
        z-index:1000;
        width:100% !important;
        min-width:0 !important;
        height:auto;
        min-height:0 !important;
        flex-direction:row;
        align-items:center;
        gap:8px;
        padding:8px 10px;
        border-radius:0 0 14px 14px !important;
    }

    .side-nav nav{
        flex:1;
        flex-direction:row;
        justify-content:center;
        gap:8px !important;
        margin:0 !important;
        overflow-x:auto;
    }

    .side-logo,
    .nav-icon{
        width:38px !important;
        height:38px !important;
        min-width:38px;
        font-size:20px !important;
    }

    .nav-icon.logout{
        margin:0 !important;
    }

    .app-shell,
    .consultores-shell{
        padding:12px !important;
        border-radius:14px !important;
    }

    .topbar .filters,
    .performance-filters,
    .anual-filters,
    .consultores-filters{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }

    .topbar .filters button,
    .performance-filters button,
    .anual-filters button,
    .consultores-filters button{
        width:100%;
    }

    .kpi-grid-main,
    .consultores-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }

    .dashboard-grid{
        grid-template-columns:1fr;
    }

    .monthly,
    .side-cards{
        grid-column:auto;
    }

    .side-cards{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .chart-side-metrics{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:620px){
    .brand,
    .consultores-brand{
        align-items:flex-start;
        flex-direction:column;
    }

    .topbar .filters,
    .performance-filters,
    .anual-filters,
    .consultores-filters,
    .kpi-grid-main,
    .performance-kpis,
    .anual-kpis,
    .consultores-kpis,
    .side-cards,
    .chart-side-metrics{
        grid-template-columns:1fr !important;
    }

    .panel,
    .consultores-panel{
        padding:12px !important;
    }

    .panel-head,
    .consultores-panel-head{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* ==========================================================
   Sistema de produto Ancore BI
   Composicao compartilhada entre todas as telas.
   ========================================================== */

:root{
    --product-gap:14px;
    --product-radius:10px;
    --product-border:rgba(69,154,255,.30);
    --product-surface:linear-gradient(180deg,rgba(7,31,69,.90),rgba(4,18,45,.86));
}

.app-layout.performance-page,
.app-layout.anual-page,
.app-layout.metas-page,
.app-layout.admin-page{
    width:calc(100vw - 20px) !important;
    max-width:none !important;
}

.performance-shell,
.anual-shell,
.metas-shell,
.admin-page .admin-shell{
    min-height:calc(100vh - 20px);
}

.app-shell{
    border-radius:14px !important;
}

.panel,
.kpi-card,
.mini-card,
.consultores-panel,
.admin-card{
    border-radius:var(--product-radius) !important;
}

.filters,
.update-box,
.consultores-filters,
.consultores-update{
    border-radius:10px;
}

.btn-primary,
.btn-ghost,
.btn-secondary,
.filters button,
.admin-form button,
.save-btn{
    border-radius:8px;
}

/* O Dashboard executivo preserva a composicao originalmente aprovada. */
.dashboard-page .app-shell{
    border-radius:20px !important;
}

.dashboard-page .panel,
.dashboard-page .kpi-card{
    border-radius:18px !important;
}

.dashboard-page .mini-card{
    border-radius:16px !important;
}

.dashboard-page .filters,
.dashboard-page .update-box{
    border-radius:16px;
}

.dashboard-page .filters button{
    border-radius:10px;
}

/* Regionais: indicadores compactos e tabela como superficie principal. */
.performance-page .performance-kpis{
    grid-template-columns:repeat(5,minmax(0,1fr));
}

.performance-page .performance-kpis .kpi-card{
    min-height:160px;
}

.performance-page .performance-table-panel{
    min-height:480px;
    margin-top:14px;
}

/* Anual: tabela principal + coluna executiva lateral. */
.anual-page .anual-kpis{
    grid-template-columns:repeat(5,minmax(0,1fr));
}

.anual-page .anual-grid{
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    grid-template-rows:minmax(300px,auto) minmax(320px,auto);
    gap:var(--product-gap);
}

.anual-page .anual-table-main{
    grid-column:1 / 8;
    grid-row:1 / 3;
    min-height:634px;
}

.anual-page .anual-inferiores{
    grid-column:8 / 13;
    grid-row:1;
}

.anual-page .anual-resumo{
    grid-column:8 / 13;
    grid-row:2;
    min-height:320px;
    grid-template-columns:minmax(0,1fr) 210px;
}

.anual-page .anual-table-wrap{
    max-height:548px;
}

/* Metas: barra de trabalho completa e tabela dominante. */
.metas-page .metas-topbar{
    grid-template-columns:minmax(260px,340px) minmax(680px,1fr) 200px;
    gap:var(--product-gap);
}

.metas-page .metas-filters{
    grid-template-columns:minmax(210px,auto) minmax(220px,1fr) auto auto auto;
    width:100%;
}

.metas-page .metas-summary{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:var(--product-gap);
}

.metas-page .metas-summary .mini-card{
    min-height:108px;
}

.metas-page .metas-copy-panel,
.metas-page .metas-table-panel{
    border-radius:var(--product-radius) !important;
}

.metas-page .metas-table-panel{
    min-height:520px;
}

/* Administracao: mesma moldura, navegacao e densidade operacional. */
.admin-page .admin-shell{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
}

.admin-page .admin-head{
    padding:4px 2px 18px;
    border-bottom:1px solid rgba(72,151,255,.18);
}

.admin-page .admin-card{
    background:var(--product-surface);
    border-color:var(--product-border);
}

.admin-page .admin-form.grid-5{
    grid-template-columns:repeat(5,minmax(140px,1fr)) auto;
}

.admin-page .table-wrap{
    border-radius:8px;
}

.admin-page .admin-table th{
    position:sticky;
    top:0;
    z-index:1;
}

@media(max-width:1500px){
    .performance-page .performance-kpis,
    .anual-page .anual-kpis{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .anual-page .anual-grid{
        grid-template-columns:1fr;
        grid-template-rows:auto;
    }

    .anual-page .anual-table-main,
    .anual-page .anual-inferiores,
    .anual-page .anual-resumo{
        grid-column:auto;
        grid-row:auto;
    }

    .metas-page .metas-topbar{
        grid-template-columns:1fr;
    }

    .admin-page .admin-form.grid-5{
        grid-template-columns:repeat(3,minmax(160px,1fr));
    }
}

@media(max-width:1100px){
    .metas-page .metas-filters,
    .metas-page .copy-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .admin-page .admin-form.grid-5{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:900px){
    .performance-page .performance-kpis,
    .anual-page .anual-kpis,
    .metas-page .metas-summary{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .anual-page .anual-resumo{
        grid-template-columns:1fr;
    }

    .admin-page .admin-head{
        align-items:stretch;
    }

    .admin-page .admin-head nav{
        width:100%;
    }
}

@media(max-width:620px){
    .performance-page .performance-kpis,
    .anual-page .anual-kpis,
    .metas-page .metas-summary,
    .metas-page .metas-filters,
    .metas-page .copy-grid,
    .admin-page .admin-form.grid-5{
        grid-template-columns:1fr !important;
    }
}

/* Menu lateral fixo no desktop, independente da altura do conteudo. */
@media(min-width:901px){
    .app-layout > .side-nav{
        position:fixed !important;
        left:10px;
        top:10px;
        bottom:auto;
        z-index:1000;
        height:calc(100vh - 20px) !important;
        min-height:0 !important;
    }

    .dashboard-page > .side-nav{
        left:max(10px,calc((100vw - 1840px) / 2));
    }

    .app-layout > .app-shell{
        grid-column:2;
    }
}

/* ==========================================================
   Tema Ancore + experiencia mobile
   ========================================================== */
:root{
    --ancore-red:#ff3434;
    --ancore-red-dark:#b91f1f;
    --ancore-black:#050506;
    --ancore-ink:#0d0d10;
    --ancore-surface:#141416;
    --ancore-surface-2:#1c1c20;
    --ancore-white:#ffffff;
    --ancore-muted:#a9a9b2;
    --ancore-border:rgba(255,255,255,.12);
    --product-border:rgba(255,52,52,.34);
    --product-surface:linear-gradient(180deg,rgba(22,22,24,.96),rgba(8,8,10,.92));
}

body{
    background:var(--ancore-black) !important;
    color:#f7f7f8;
}

.app-shell{
    background:linear-gradient(180deg,rgba(18,18,20,.94),rgba(7,7,8,.96)) !important;
    border-color:rgba(255,52,52,.28) !important;
    box-shadow:0 18px 44px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.035) !important;
}

.side-nav{
    background:linear-gradient(180deg,#111114,#050506) !important;
    border-color:rgba(255,52,52,.38) !important;
    box-shadow:0 18px 38px rgba(0,0,0,.38), inset 0 0 0 1px rgba(255,255,255,.035) !important;
}

.side-logo{
    padding:5px;
    background:#ffffff !important;
    border-color:rgba(255,52,52,.45) !important;
    box-shadow:0 0 22px rgba(255,52,52,.28) !important;
}

.side-logo img{
    width:100%;
    height:100%;
    display:block;
    object-fit:contain;
}

.nav-icon{
    color:#f2f2f3 !important;
    border-radius:10px !important;
}

.nav-icon:hover,
.nav-icon.active{
    background:rgba(255,52,52,.18) !important;
    border-color:rgba(255,52,52,.62) !important;
    box-shadow:0 0 18px rgba(255,52,52,.24), inset 0 0 14px rgba(255,52,52,.14) !important;
}

.brand img,
.consultores-brand img,
.login-brand img{
    width:clamp(132px,10vw,172px);
    max-height:62px;
    padding:7px 10px;
    background:#ffffff;
    border-radius:8px;
    filter:none !important;
    box-shadow:0 12px 24px rgba(0,0,0,.22);
}

.brand span,
.brand p,
.consultores-brand p,
.performance-topbar .brand p,
.anual-topbar .brand p,
.admin-head span,
.login-brand span{
    color:#ff6b6b !important;
}

.filters,
.update-box,
.consultores-filters,
.consultores-update,
.admin-head nav,
.metas-password-card,
.login-card{
    background:rgba(18,18,20,.92) !important;
    border-color:rgba(255,52,52,.24) !important;
}

.filters label,
.consultores-filters label,
.login-form label,
.admin-form label{
    color:#d7d7dc !important;
}

.filters input,
.filters select,
.consultores-filters input,
.consultores-filters select,
.login-form input,
.admin-form input,
.admin-form select,
.metas-table input,
.table-toolbar input{
    background:#09090b !important;
    border-color:rgba(255,255,255,.16) !important;
    color:#ffffff !important;
}

.filters input:focus,
.filters select:focus,
.consultores-filters input:focus,
.consultores-filters select:focus,
.login-form input:focus,
.admin-form input:focus,
.admin-form select:focus,
.metas-table input:focus,
.table-toolbar input:focus{
    border-color:rgba(255,52,52,.72) !important;
    box-shadow:0 0 0 3px rgba(255,52,52,.16);
}

.btn-primary,
.btn-secondary,
.btn-ghost:hover,
.filters button,
.consultores-filters .btn-primary,
.login-form button,
.admin-form button,
.save-btn,
.inline-form button{
    background:linear-gradient(180deg,var(--ancore-red),var(--ancore-red-dark)) !important;
    border-color:rgba(255,52,52,.54) !important;
    color:#ffffff !important;
    box-shadow:0 12px 22px rgba(255,52,52,.18) !important;
}

.btn-ghost,
.modal-link,
.user-actions a,
.admin-head nav a,
.mini-link{
    color:#ff7878 !important;
}

.kpi-card,
.panel,
.mini-card,
.consultores-panel,
.consultor-kpi,
.admin-card,
.metas-copy-panel,
.metas-table-panel{
    background:linear-gradient(180deg,rgba(25,25,28,.96),rgba(10,10,12,.94)) !important;
    border-color:var(--ancore-border) !important;
    box-shadow:0 14px 30px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.025) !important;
}

.blue,
.cyan,
.purple,
.violet,
.green{
    --accent:var(--ancore-red) !important;
}

.orange{
    --accent:#ffb020 !important;
}

.red,
.pink{
    --accent:#ff5252 !important;
}

.kpi-icon,
.kpi-circle{
    background:rgba(255,52,52,.08) !important;
    border-color:var(--accent) !important;
    box-shadow:0 0 18px rgba(255,52,52,.18) !important;
}

.kpi-card h3,
.consultor-kpi h3,
.panel-head h2,
.consultores-panel-head h2{
    color:#ffffff !important;
}

.kpi-card small,
.mini-card span,
.mini-card small,
.panel-head span,
.update-box small,
.update-box span,
.consultores-update span,
.consultores-update small{
    color:#b8b8c0 !important;
}

.retention p,
.reading-list,
.alerts-list > div,
.tempo-list > div,
.executive-panel .reading-list > div{
    background:rgba(255,255,255,.045) !important;
    border-color:rgba(255,255,255,.10) !important;
}

.retention p{
    border-left-color:var(--ancore-red) !important;
}

.admin-table th,
.performance-table th,
.anual-table th,
.consultores-table th,
.metas-table th,
.modal-table th{
    background:rgba(255,52,52,.12) !important;
    color:#ffffff !important;
}

.admin-table td,
.performance-table td,
.anual-table td,
.consultores-table td,
.metas-table td,
.modal-table td{
    border-bottom-color:rgba(255,255,255,.08) !important;
}

.apexcharts-tooltip{
    background:#111114 !important;
    border-color:rgba(255,52,52,.34) !important;
}

@media(max-width:760px){
    body{
        padding-bottom:78px;
    }

    .app-layout{
        display:block !important;
        width:100% !important;
        margin:0 !important;
    }

    .app-layout > .side-nav{
        position:fixed !important;
        left:0 !important;
        right:0 !important;
        top:auto !important;
        bottom:0 !important;
        z-index:2000;
        width:100% !important;
        height:70px !important;
        min-height:70px !important;
        padding:8px 12px calc(8px + env(safe-area-inset-bottom)) !important;
        border-width:1px 0 0 !important;
        border-radius:18px 18px 0 0 !important;
    }

    .side-nav .side-logo,
    .side-nav .nav-icon.logout{
        display:none !important;
    }

    .side-nav nav{
        width:100%;
        margin:0 !important;
        display:grid !important;
        grid-template-columns:repeat(5,minmax(42px,1fr));
        gap:6px !important;
        overflow:visible !important;
    }

    .nav-icon{
        width:100% !important;
        height:48px !important;
        min-width:0 !important;
        font-size:20px !important;
    }

    .app-shell,
    .consultores-shell,
    .admin-shell{
        min-height:calc(100vh - 78px);
        padding:14px 12px 18px !important;
        border-width:0 !important;
        border-radius:0 !important;
    }

    .topbar,
    .performance-topbar,
    .anual-topbar,
    .consultores-topbar,
    .metas-topbar{
        gap:12px !important;
        margin-bottom:12px !important;
    }

    .brand,
    .consultores-brand{
        display:grid !important;
        grid-template-columns:auto minmax(0,1fr);
        gap:12px !important;
        align-items:center !important;
    }

    .brand img,
    .consultores-brand img{
        width:118px !important;
        max-height:50px !important;
        padding:6px 8px;
    }

    .brand h1,
    .consultores-brand h1,
    .performance-topbar .brand h1,
    .anual-topbar .brand h1{
        font-size:22px !important;
        line-height:1.05 !important;
    }

    .brand span,
    .brand p,
    .consultores-brand p{
        font-size:11px !important;
        line-height:1.25 !important;
    }

    .topbar .filters,
    .performance-filters,
    .anual-filters,
    .consultores-filters,
    .metas-filters{
        grid-template-columns:1fr 1fr !important;
        gap:8px !important;
        padding:10px !important;
    }

    .topbar .filters label:nth-child(3),
    .performance-filters label:nth-child(3),
    .anual-filters label:nth-child(3),
    .consultores-filters label:nth-child(3),
    .metas-filters label:nth-child(2){
        grid-column:1 / -1;
    }

    .topbar .filters button,
    .performance-filters button,
    .anual-filters button,
    .consultores-filters button,
    .metas-filters button,
    .metas-filters .btn-ghost{
        grid-column:1 / -1;
        min-height:44px;
        width:100%;
    }

    .update-box,
    .consultores-update{
        padding:10px 12px !important;
    }

    .kpi-grid-main,
    .performance-kpis,
    .anual-kpis,
    .consultores-kpis,
    .metas-summary{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:10px !important;
    }

    .kpi-card,
    .consultor-kpi,
    .mini-card{
        min-height:128px !important;
        padding:14px !important;
    }

    .kpi-icon,
    .kpi-circle{
        width:38px !important;
        height:38px !important;
        font-size:18px !important;
    }

    .kpi-card h3{
        margin-left:48px !important;
        margin-top:-36px !important;
        font-size:12px !important;
    }

    .kpi-value-line strong,
    .consultor-kpi strong,
    .mini-card strong{
        font-size:27px !important;
        letter-spacing:0 !important;
    }

    .dashboard-grid,
    .anual-grid,
    .consultores-main-grid,
    .consultores-bottom-grid{
        display:flex !important;
        flex-direction:column !important;
        gap:10px !important;
    }

    .panel,
    .consultores-panel{
        min-height:auto !important;
        padding:14px !important;
    }

    .panel-head,
    .consultores-panel-head{
        gap:6px !important;
    }

    .side-cards,
    .chart-side-metrics{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }

    .performance-table-wrap,
    .anual-table-wrap,
    .consultores-table-wrap,
    .metas-table-wrap,
    .table-wrap{
        border-radius:10px !important;
        overflow-x:auto !important;
        -webkit-overflow-scrolling:touch;
    }

    .performance-table,
    .anual-table,
    .consultores-table,
    .metas-table,
    .admin-table{
        min-width:720px;
    }

    .consultores-modal{
        padding:0 !important;
    }

    .consultores-modal-box,
    .consultores-modal-box.modal-wide{
        width:100% !important;
        max-width:none !important;
        height:100dvh !important;
        max-height:100dvh !important;
        border-radius:0 !important;
    }
}

@media(max-width:420px){
    .kpi-grid-main,
    .performance-kpis,
    .anual-kpis,
    .consultores-kpis,
    .metas-summary,
    .side-cards,
    .chart-side-metrics{
        grid-template-columns:1fr !important;
    }

    .topbar .filters,
    .performance-filters,
    .anual-filters,
    .consultores-filters,
    .metas-filters{
        grid-template-columns:1fr !important;
    }
}


/* ==========================================================
   HOTFIX MOBILE DESIGN - ANCORE
   Mantém todos os dados/seções. Corrige apenas DESIGN mobile.
   Remove emoji/ícones ruins e corrige cards espremidos/estourando.
   ========================================================== */

.ui-icon{
    display:inline-grid;
    place-items:center;
    width:1em;
    height:1em;
    line-height:1;
}

.ui-icon svg{
    width:1em;
    height:1em;
    display:block;
    fill:none;
    stroke:currentColor;
    stroke-width:2.25;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.kpi-icon .ui-icon{
    width:34px;
    height:34px;
    font-size:34px;
}

.nav-icon .ui-icon{
    width:24px;
    height:24px;
    font-size:24px;
}

.mobile-bottom-nav{
    display:none;
}

@media(max-width: 820px){
    html,body{
        width:100%;
        max-width:100%;
        overflow-x:hidden;
        background:#050505 !important;
    }

    body{
        color:#fff;
    }

    .dashboard-page{
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        background:
            radial-gradient(circle at 20% 0%,rgba(255,52,52,.08),transparent 30%),
            linear-gradient(180deg,#050505 0%,#090909 48%,#050505 100%) !important;
    }

    .dashboard-page .side-nav{
        display:none !important;
    }

    .dashboard-shell{
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:20px 12px 104px !important;
        border:0 !important;
        border-radius:0 !important;
        background:transparent !important;
        box-shadow:none !important;
        backdrop-filter:none !important;
        overflow:hidden !important;
    }

    .topbar{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:12px !important;
        margin:0 0 14px !important;
    }

    .brand{
        display:grid !important;
        grid-template-columns:128px 1fr 42px !important;
        align-items:center !important;
        gap:12px !important;
        min-width:0 !important;
        padding:10px 2px 4px !important;
    }

    .brand img{
        width:128px !important;
        height:66px !important;
        object-fit:contain !important;
        border-radius:18px !important;
        background:#fff !important;
        padding:5px !important;
        filter:none !important;
        box-shadow:0 12px 32px rgba(255,255,255,.08) !important;
    }

    .brand h1{
        margin:0 !important;
        color:#fff !important;
        font-size:25px !important;
        line-height:1.05 !important;
        font-weight:900 !important;
        letter-spacing:-.3px !important;
        text-transform:none !important;
    }

    .brand span{
        display:block !important;
        margin-top:6px !important;
        color:#a9a9a9 !important;
        font-size:16px !important;
        line-height:1.1 !important;
        text-transform:none !important;
        font-weight:500 !important;
    }

    .brand:after{
        content:"";
        justify-self:end;
        width:32px;
        height:32px;
        display:block;
        background:
            radial-gradient(circle at 86% 12%,#ff3434 0 5px,transparent 6px),
            linear-gradient(#fff,#fff) center/2px 100% no-repeat;
        opacity:.0;
    }

    .update-box{
        order:3;
        width:100% !important;
        min-width:0 !important;
        justify-self:stretch !important;
        padding:11px 14px !important;
        border-radius:16px !important;
        border:1px solid rgba(255,255,255,.12) !important;
        background:linear-gradient(180deg,rgba(25,25,25,.92),rgba(12,12,12,.92)) !important;
        box-shadow:inset 0 0 26px rgba(255,255,255,.025),0 10px 24px rgba(0,0,0,.18) !important;
    }

    .update-box small,
    .update-box span,
    .update-box .user-actions{
        color:#9c9c9c !important;
        font-size:11px !important;
    }

    .update-box strong{
        color:#fff !important;
        font-size:14px !important;
    }

    .update-box .user-actions{
        display:none !important;
    }

    .filters{
        order:2;
        width:100% !important;
        min-width:0 !important;
        display:grid !important;
        grid-template-columns:1fr 1fr !important;
        gap:10px !important;
        align-items:end !important;
        padding:10px !important;
        border:1px solid rgba(255,255,255,.14) !important;
        border-radius:22px !important;
        background:linear-gradient(180deg,rgba(25,25,25,.92),rgba(12,12,12,.92)) !important;
        box-shadow:inset 0 0 30px rgba(255,255,255,.025),0 12px 30px rgba(0,0,0,.28) !important;
        overflow:hidden !important;
    }

    .filters label{
        min-width:0 !important;
        color:#b8b8b8 !important;
        font-size:10px !important;
        font-weight:700 !important;
        text-transform:uppercase !important;
    }

    .filter-coop{
        grid-column:1 / -1 !important;
    }

    .filters input,
    .filters select{
        width:100% !important;
        min-width:0 !important;
        height:48px !important;
        border:1px solid rgba(255,255,255,.12) !important;
        border-radius:15px !important;
        background:linear-gradient(180deg,rgba(32,32,32,.96),rgba(19,19,19,.96)) !important;
        color:#fff !important;
        padding:0 12px !important;
        font-size:15px !important;
        font-weight:700 !important;
        box-shadow:none !important;
    }

    .filters button{
        grid-column:1 / -1 !important;
        height:52px !important;
        width:100% !important;
        border:0 !important;
        border-radius:16px !important;
        background:linear-gradient(135deg,#ff3434,#ff242b) !important;
        color:#fff !important;
        font-size:16px !important;
        font-weight:900 !important;
        box-shadow:0 14px 30px rgba(255,52,52,.25) !important;
    }

    .kpi-grid,
    .kpi-grid-main{
        display:grid !important;
        grid-template-columns:1fr 1fr !important;
        gap:10px !important;
        margin:12px 0 !important;
        width:100% !important;
    }

    .kpi-card{
        width:100% !important;
        min-width:0 !important;
        min-height:188px !important;
        padding:18px 14px 16px !important;
        border:1px solid rgba(255,255,255,.14) !important;
        border-radius:20px !important;
        background:
            radial-gradient(circle at 26% 18%,rgba(255,255,255,.06),transparent 32%),
            linear-gradient(145deg,rgba(25,25,25,.96),rgba(10,10,10,.98)) !important;
        box-shadow:inset 0 0 34px rgba(255,255,255,.028),0 12px 24px rgba(0,0,0,.30) !important;
        overflow:hidden !important;
        display:grid !important;
        grid-template-columns:62px 1fr !important;
        grid-template-rows:auto auto 1fr auto !important;
        column-gap:12px !important;
        align-content:start !important;
    }

    .kpi-card:after{
        display:none !important;
    }

    .kpi-card .kpi-icon{
        position:static !important;
        grid-row:1 / 3 !important;
        width:58px !important;
        height:58px !important;
        margin:0 !important;
        display:grid !important;
        place-items:center !important;
        border-radius:50% !important;
        border:0 !important;
        background:linear-gradient(135deg,#ff3434,#ff242b) !important;
        color:#fff !important;
        box-shadow:0 12px 26px rgba(255,52,52,.24) !important;
        font-size:28px !important;
    }

    .kpi-card h3{
        grid-column:2 !important;
        margin:3px 0 6px !important;
        color:#b9b9b9 !important;
        font-size:15px !important;
        font-weight:500 !important;
        line-height:1.2 !important;
    }

    .kpi-value-line{
        grid-column:2 !important;
        align-items:flex-end !important;
        gap:5px !important;
        min-width:0 !important;
    }

    .kpi-value-line strong{
        color:#fff !important;
        font-size:34px !important;
        line-height:1 !important;
        font-weight:900 !important;
        letter-spacing:-1px !important;
        text-shadow:0 4px 16px rgba(255,255,255,.12) !important;
    }

    .kpi-value-line span{
        color:#d7d7d7 !important;
        font-size:12px !important;
        font-weight:700 !important;
        margin-bottom:3px !important;
    }

    .kpi-progress{
        grid-column:1 / -1 !important;
        height:7px !important;
        margin:16px 0 12px !important;
        border-radius:999px !important;
        background:rgba(255,255,255,.12) !important;
        overflow:hidden !important;
    }

    .kpi-progress i{
        background:#ff3434 !important;
        box-shadow:0 0 14px rgba(255,52,52,.35) !important;
        border-radius:inherit !important;
    }

    .kpi-card small{
        grid-column:1 / -1 !important;
        color:#aaa !important;
        font-size:12px !important;
        line-height:1.28 !important;
        margin:0 !important;
        min-width:0 !important;
    }

    .spark{
        grid-column:1 / -1 !important;
        position:relative !important;
        right:auto !important;
        bottom:auto !important;
        width:100% !important;
        height:34px !important;
        margin-top:8px !important;
        opacity:.75 !important;
    }

    .dashboard-grid{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:12px !important;
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
    }

    .panel,
    .mini-card{
        width:100% !important;
        min-width:0 !important;
        border:1px solid rgba(255,255,255,.14) !important;
        border-radius:20px !important;
        background:
            radial-gradient(circle at 30% 8%,rgba(255,255,255,.055),transparent 34%),
            linear-gradient(145deg,rgba(24,24,24,.96),rgba(8,8,8,.98)) !important;
        box-shadow:inset 0 0 34px rgba(255,255,255,.026),0 14px 32px rgba(0,0,0,.32) !important;
        overflow:hidden !important;
    }

    .panel{
        padding:16px 14px !important;
    }

    .panel-head{
        display:flex !important;
        align-items:flex-start !important;
        justify-content:space-between !important;
        gap:10px !important;
        margin-bottom:10px !important;
    }

    .panel-head h2{
        color:#fff !important;
        font-size:18px !important;
        line-height:1.25 !important;
        margin:0 !important;
    }

    .panel-head span{
        color:#aaa !important;
        font-size:11px !important;
    }

    .chart-metric-wrap{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:10px !important;
        min-width:0 !important;
    }

    .chart-side-metrics{
        display:grid !important;
        grid-template-columns:1fr 1fr 1fr !important;
        gap:0 !important;
        border:1px solid rgba(255,255,255,.12) !important;
        border-radius:16px !important;
        background:rgba(16,16,16,.88) !important;
        overflow:hidden !important;
    }

    .chart-side-metrics div{
        padding:10px 8px !important;
        border-right:1px solid rgba(255,255,255,.12) !important;
        min-width:0 !important;
    }

    .chart-side-metrics div:last-child{
        border-right:0 !important;
    }

    .chart-side-metrics span,
    .chart-side-metrics small{
        color:#b7b7b7 !important;
        font-size:11px !important;
    }

    .chart-side-metrics strong{
        color:#fff !important;
        font-size:20px !important;
    }

    .panel-evolucao{
        padding-top:18px !important;
    }

    .panel-evolucao .panel-head h2:before{
        content:"";
        display:inline-block;
        width:22px;
        height:22px;
        margin-right:8px;
        vertical-align:-4px;
        background:#ff3434;
        clip-path:polygon(0 100%,0 70%,14% 70%,14% 45%,28% 45%,28% 64%,42% 64%,42% 28%,56% 28%,56% 48%,70% 48%,70% 12%,84% 12%,84% 0,100% 20%,90% 22%,78% 10%,78% 100%);
    }

    #chartGeral,
    #chartCooperativa,
    #chartEvolucao,
    #chartMensal{
        width:100% !important;
        min-width:0 !important;
        overflow:hidden !important;
    }

    .retention{
        text-align:center !important;
    }

    .retention-big{
        color:#ff3434 !important;
        font-size:36px !important;
    }

    .retention p{
        color:#c6c6c6 !important;
        font-size:13px !important;
        line-height:1.38 !important;
        max-height:none !important;
        overflow:visible !important;
    }

    .monthly{
        min-height:auto !important;
    }

    .side-cards{
        display:grid !important;
        grid-template-columns:1fr 1fr !important;
        gap:10px !important;
        width:100% !important;
        min-width:0 !important;
    }

    .mini-card{
        min-height:96px !important;
        padding:14px !important;
    }

    .mini-card span{
        color:#aaa !important;
        font-size:12px !important;
    }

    .mini-card strong{
        color:#fff !important;
        font-size:26px !important;
    }

    .mobile-bottom-nav{
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        z-index:1000;
        min-height:84px;
        display:grid !important;
        grid-template-columns:repeat(5,1fr);
        padding:9px 8px 18px;
        border-top:1px solid rgba(255,255,255,.10);
        background:rgba(7,7,7,.96);
        backdrop-filter:blur(12px);
    }

    .mobile-bottom-nav:after{
        content:"";
        position:absolute;
        left:50%;
        bottom:7px;
        width:140px;
        height:5px;
        transform:translateX(-50%);
        border-radius:999px;
        background:#fff;
    }

    .mobile-bottom-nav a{
        position:relative;
        display:grid;
        place-items:center;
        gap:3px;
        color:#9c9c9c;
        text-decoration:none;
        font-size:12px;
        min-width:0;
    }

    .mobile-bottom-nav .ui-icon{
        width:28px;
        height:28px;
        font-size:28px;
    }

    .mobile-bottom-nav a.active{
        color:#ff3434;
    }

    .mobile-bottom-nav a.active:before{
        content:"";
        position:absolute;
        top:-5px;
        width:8px;
        height:8px;
        border-radius:50%;
        background:#ff3434;
        box-shadow:0 0 13px rgba(255,52,52,.5);
    }

    .apexcharts-canvas,
    .apexcharts-svg{
        max-width:100% !important;
    }
}

@media(max-width:390px){
    .dashboard-shell{
        padding-left:10px !important;
        padding-right:10px !important;
    }

    .brand{
        grid-template-columns:116px 1fr !important;
    }

    .brand img{
        width:116px !important;
        height:60px !important;
    }

    .brand h1{
        font-size:23px !important;
    }

    .brand span{
        font-size:15px !important;
    }

    .filters{
        grid-template-columns:1fr !important;
    }

    .filter-coop{
        grid-column:auto !important;
    }

    .kpi-card{
        min-height:176px !important;
        grid-template-columns:54px 1fr !important;
        padding:16px 12px !important;
    }

    .kpi-card .kpi-icon{
        width:50px !important;
        height:50px !important;
    }

    .kpi-value-line strong{
        font-size:30px !important;
    }

    .chart-side-metrics{
        grid-template-columns:1fr !important;
    }

    .chart-side-metrics div{
        border-right:0 !important;
        border-bottom:1px solid rgba(255,255,255,.12) !important;
    }

    .chart-side-metrics div:last-child{
        border-bottom:0 !important;
    }
}


/* ==========================================================
   AJUSTES MOBILE SOLICITADOS - SOMENTE MOBILE
   1) filtro por competência mensal
   2) KPIs sem sparkline, com detalhe
   3) mensal últimos 6 meses via JS
   4) esconder Regional x Meta e Evolução Diária no mobile
   ========================================================== */

.mobile-competencia-filter{
    display:none;
}

.mobile-kpi-vs{
    display:none;
}

@media(max-width:820px){
    /* filtro compacto igual referência: competência + cooperativa + aplicar */
    .filters{
        grid-template-columns:minmax(112px,.85fr) minmax(0,1.35fr) 54px !important;
        gap:8px !important;
        padding:8px !important;
        border-radius:20px !important;
        margin:0 !important;
        align-items:end !important;
    }

    .filters .filter-date{
        display:none !important;
    }

    .mobile-competencia-filter{
        display:flex !important;
        grid-column:auto !important;
    }

    .filter-coop{
        grid-column:auto !important;
    }

    .filters label{
        gap:3px !important;
        font-size:0 !important;
    }

    .filters label::before{
        font-size:10px !important;
        line-height:1 !important;
        color:#8f8f8f !important;
        font-weight:800 !important;
    }

    .mobile-competencia-filter::before{
        content:"Competência";
    }

    .filter-coop::before{
        content:"Cooperativa";
    }

    .filters input,
    .filters select{
        height:46px !important;
        border-radius:15px !important;
        font-size:14px !important;
        padding:0 10px !important;
        background:linear-gradient(180deg,rgba(31,31,31,.98),rgba(16,16,16,.98)) !important;
        border-color:rgba(255,255,255,.12) !important;
    }

    .filters button{
        grid-column:auto !important;
        width:54px !important;
        height:54px !important;
        padding:0 !important;
        border-radius:16px !important;
        font-size:0 !important;
        display:grid !important;
        place-items:center !important;
    }

    .filters button::before{
        content:"";
        width:24px;
        height:24px;
        display:block;
        background:#fff;
        clip-path:polygon(10% 18%,90% 18%,62% 50%,62% 80%,38% 92%,38% 50%);
    }

    .update-box{
        display:none !important;
    }

    /* KPIs mobile: remove os mini gráficos e deixa detalhe texto */
    .kpi-card{
        min-height:168px !important;
        padding:17px 14px 14px !important;
        grid-template-rows:auto auto auto auto !important;
    }

    .kpi-card .spark{
        display:none !important;
    }

    .kpi-card .kpi-progress{
        display:none !important;
    }

    .kpi-card small:not(.mobile-kpi-vs){
        display:block !important;
        grid-column:1 / -1 !important;
        color:#b0b0b0 !important;
        font-size:12px !important;
        margin-top:14px !important;
        line-height:1.25 !important;
    }

    .mobile-kpi-vs{
        display:block !important;
        grid-column:1 / -1 !important;
        margin-top:7px !important;
        color:#d8d8d8 !important;
        font-size:12px !important;
        line-height:1.25 !important;
        font-weight:700 !important;
    }

    .mobile-kpi-vs.mobile-positive{
        color:#31f05a !important;
    }

    .mobile-kpi-vs.mobile-negative{
        color:#ff5d5d !important;
    }

    .kpi-value-line strong{
        font-size:31px !important;
    }

    .kpi-card .kpi-icon{
        width:54px !important;
        height:54px !important;
    }

    .kpi-icon .ui-icon{
        width:30px !important;
        height:30px !important;
        font-size:30px !important;
    }

    /* no mobile tirar esses dois gráficos */
    .panel-regional,
    .panel-evolucao{
        display:none !important;
    }

    /* mensal fica mais legível, com 6 meses vindo do JS */
    .monthly{
        order:10 !important;
        padding:16px 12px !important;
        min-height:430px !important;
    }

    .monthly .panel-head{
        margin-bottom:8px !important;
    }

    .monthly .panel-head h2{
        font-size:18px !important;
    }

    #chartMensal{
        min-height:300px !important;
    }

    #chartMensal .apexcharts-xaxis-label{
        font-size:11px !important;
    }

    /* comparativo pode ficar, mas sem estourar */
    .panel-comparativo{
        order:2 !important;
    }

    .retention{
        order:11 !important;
    }

    .side-cards{
        order:12 !important;
    }

    .dashboard-grid{
        gap:12px !important;
    }
}

@media(max-width:390px){
    .filters{
        grid-template-columns:1fr 1.25fr 52px !important;
        gap:7px !important;
    }

    .filters input,
    .filters select{
        height:44px !important;
        font-size:13px !important;
        padding:0 8px !important;
    }

    .filters button{
        width:52px !important;
        height:52px !important;
    }

    .kpi-card{
        min-height:160px !important;
        grid-template-columns:50px 1fr !important;
        padding:15px 11px 13px !important;
    }

    .kpi-card .kpi-icon{
        width:48px !important;
        height:48px !important;
    }

    .kpi-value-line strong{
        font-size:28px !important;
    }

    .mobile-kpi-vs,
    .kpi-card small:not(.mobile-kpi-vs){
        font-size:11px !important;
    }
}


/* ==========================================================
   DASHBOARD ONLY
   Mantém apenas a tela inicial ativa/visível.
   ========================================================== */

.side-nav nav{
    justify-content:flex-start;
}

.mobile-bottom-nav-single{
    grid-template-columns:1fr !important;
}

.mobile-bottom-nav-single a{
    max-width:160px;
    margin:0 auto;
}

@media(max-width:820px){
    .mobile-bottom-nav-single{
        min-height:76px !important;
        padding-bottom:16px !important;
    }

    .mobile-bottom-nav-single:after{
        width:140px !important;
    }

    .mobile-bottom-nav-single a{
        color:#ff3434 !important;
        font-weight:800;
    }
}


/* ==========================================================
   HOTFIX MOBILE - ícones KPI discretos
   Fundo vazado + linha vermelho neon, menor e menos grosseiro.
   Aplicado somente no mobile.
   ========================================================== */

@media(max-width:820px){
    .kpi-card .kpi-icon{
        width:44px !important;
        height:44px !important;
        min-width:44px !important;
        border-radius:50% !important;
        background:rgba(255,52,52,.035) !important;
        border:1.6px solid rgba(255,52,52,.82) !important;
        color:#ff3434 !important;
        box-shadow:
            0 0 12px rgba(255,52,52,.24),
            0 0 26px rgba(255,52,52,.10),
            inset 0 0 16px rgba(255,52,52,.045) !important;
    }

    .kpi-card .kpi-icon .ui-icon{
        width:23px !important;
        height:23px !important;
        font-size:23px !important;
        color:#ff3434 !important;
    }

    .kpi-card .kpi-icon .ui-icon svg{
        stroke:#ff3434 !important;
        stroke-width:2.05 !important;
        filter:drop-shadow(0 0 5px rgba(255,52,52,.60));
    }

    .kpi-card{
        grid-template-columns:50px 1fr !important;
        column-gap:10px !important;
    }

    .kpi-card h3{
        margin-top:0 !important;
    }
}

@media(max-width:390px){
    .kpi-card .kpi-icon{
        width:40px !important;
        height:40px !important;
        min-width:40px !important;
    }

    .kpi-card .kpi-icon .ui-icon{
        width:21px !important;
        height:21px !important;
        font-size:21px !important;
    }

    .kpi-card{
        grid-template-columns:46px 1fr !important;
        column-gap:9px !important;
    }
}
