@font-face{font-family:Inter;font-weight:400;font-display:swap;src:url(assets/fonts/inter-400.woff2) format('woff2')}
@font-face{font-family:Inter;font-weight:500;font-display:swap;src:url(assets/fonts/inter-500.woff2) format('woff2')}
@font-face{font-family:Inter;font-weight:600;font-display:swap;src:url(assets/fonts/inter-600.woff2) format('woff2')}
@font-face{font-family:Inter;font-weight:700;font-display:swap;src:url(assets/fonts/inter-700.woff2) format('woff2')}
@font-face{font-family:Inter;font-weight:800;font-display:swap;src:url(assets/fonts/inter-800.woff2) format('woff2')}
:root{
  color-scheme: dark;
  --bg:#0b0a0f;--bg-1:#131119;--bg-2:#1a1722;--bg-3:#221d2c;
  --line:#2a2533;--line-2:#39323f;
  --bd:#2a2533;
  --txt:#edeaf2;--txt-2:#a39bb2;--txt-3:#6b6478;
  --pos:#34d399;--pos-bg:rgba(52,211,153,.12);
  --neg:#f77066;--neg-bg:rgba(247,112,102,.12);
  --acc:#9a78c2;--ever:#775699;--ever-300:#b79edb;--ever-glow:rgba(151,118,196,.30);--warn:#e8b864;
  --r:14px;--r-sm:10px;
  --shadow: 0 1px 0 rgba(255,255,255,.04) inset, 0 12px 34px rgba(0,0,0,.45);
  --pad:18px 20px;--gap:16px;--kpiv:27px;--cpad:24px 30px 48px;
}
body.compact{ --pad:13px 15px;--gap:10px;--kpiv:22px;--cpad:16px 18px 36px; }
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--txt);font-family:Inter,"SF Pro Text",-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13.5px;line-height:1.45;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
body{min-height:100vh;background:
  radial-gradient(900px 440px at 88% -8%, rgba(119,86,153,.15), transparent 60%),
  radial-gradient(680px 360px at -4% 0%, rgba(119,86,153,.07), transparent 55%),
  var(--bg);background-attachment:fixed}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select{font:inherit;color:var(--txt);background:var(--bg-1);border:1px solid var(--line-2);border-radius:6px;padding:6px 8px;outline:none}
input:focus,select:focus{border-color:var(--acc)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--bg-2);border-radius:6px}
::-webkit-scrollbar-thumb:hover{background:var(--bg-3)}

header.top{position:sticky;top:0;z-index:50;background:rgba(9,9,11,.85);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--line);padding:10px 18px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;padding-right:14px;border-right:1px solid var(--line)}
.brand .logo-img{height:22px;width:auto;display:block}
.brand b{font-weight:600}
.brand small{display:block;color:var(--txt-3);font-size:11px;letter-spacing:.3px;text-transform:uppercase}
.kpis{display:flex;gap:14px;flex:1;overflow-x:auto;padding-bottom:2px}
.kpi{min-width:140px;padding:6px 12px;border-left:1px solid var(--line)}
.kpi:first-child{border-left:0;padding-left:0}
.kpi .lbl{font-size:10.5px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.6px;font-weight:500}
.kpi .val{font-size:17px;font-weight:600;letter-spacing:-.3px;margin-top:2px;display:flex;align-items:baseline;gap:6px}
.kpi .sub{font-size:11.5px;color:var(--txt-2);margin-top:1px}
.kpi.delta-pos .delta{color:var(--pos)}
.kpi.delta-neg .delta{color:var(--neg)}
.delta{font-size:11.5px;font-weight:500}
.head-actions{display:flex;gap:8px;align-items:center}
.btn{padding:7px 12px;border-radius:7px;background:var(--bg-1);border:1px solid var(--line-2);color:var(--txt);font-weight:500;font-size:12.5px;transition:all .15s;display:inline-flex;align-items:center;gap:6px}
.btn:hover{background:var(--bg-2);border-color:var(--bg-3)}
.btn.primary{background:var(--acc);border-color:var(--acc);color:#fff}
.btn.primary:hover{background:#9a78c2}
.btn.ghost{background:transparent}

.layout{display:grid;grid-template-columns:280px 1fr;min-height:calc(100vh - 60px)}
aside.sidebar{background:var(--bg-1);border-right:1px solid var(--line);padding:16px 14px;overflow-y:auto;height:calc(100vh - 60px);position:sticky;top:60px}
.sidebar h4{font-size:10.5px;letter-spacing:.7px;text-transform:uppercase;color:var(--txt-3);margin:16px 0 8px;font-weight:600}
.sidebar h4:first-child{margin-top:0}
.field{margin-bottom:8px}
.field label{display:block;font-size:11.5px;color:var(--txt-2);margin-bottom:4px}
.field input,.field select{width:100%}
.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:8px}
.preset-grid .btn{padding:5px 6px;font-size:11.5px;justify-content:center;background:var(--bg-2);border-color:var(--bg-2)}
.preset-grid .btn.active{background:var(--acc);border-color:var(--acc);color:#fff}
.toggle-group{display:flex;background:var(--bg-2);border-radius:7px;padding:3px;gap:2px}
.toggle-group .btn{flex:1;padding:5px;border:0;background:transparent;font-size:12px;justify-content:center}
.toggle-group .btn.active{background:var(--bg-3);box-shadow:0 1px 0 rgba(255,255,255,.05) inset}
.combobox{position:relative}
.combobox .selected{display:flex;flex-wrap:wrap;gap:4px;padding:5px 6px;background:var(--bg-1);border:1px solid var(--line-2);border-radius:6px;min-height:32px;align-items:center;cursor:text}
.combobox .selected .chip{background:var(--bg-3);font-size:11px;padding:2px 6px;border-radius:4px;display:inline-flex;align-items:center;gap:4px}
.combobox .selected .chip button{font-size:14px;line-height:1;color:var(--txt-2);padding:0}
.combobox .selected input{flex:1;min-width:60px;background:transparent;border:0;padding:2px;outline:none}
.combobox .menu{position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--bg-2);border:1px solid var(--line-2);border-radius:7px;max-height:260px;overflow-y:auto;z-index:30;box-shadow:var(--shadow);display:none}
.combobox.open .menu{display:block}
.combobox .menu .item{padding:6px 10px;font-size:12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.combobox .menu .item:hover,.combobox .menu .item.hl{background:var(--bg-3)}
.combobox .menu .item .vol{color:var(--txt-3);font-size:11px}
.checkbox{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12.5px}
.checkbox input{width:auto}
.param-row{display:grid;grid-template-columns:1fr 90px;gap:6px;align-items:center;margin-bottom:5px;font-size:12px}
.param-row label{color:var(--txt-2)}
.param-row input{padding:4px 6px;font-size:12px;text-align:right}

main.grid{padding:16px;display:grid;grid-template-columns:repeat(12,1fr);gap:14px;align-content:start}
.card{background:var(--bg-1);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;min-height:0;box-shadow:var(--shadow)}
.card.span-12{grid-column:span 12}
.card.span-8{grid-column:span 8}
.card.span-6{grid-column:span 6}
.card.span-4{grid-column:span 4}
.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;gap:10px}
.card-header .title{font-weight:600;font-size:13.5px;letter-spacing:-.1px}
.card-header .sub{font-size:11.5px;color:var(--txt-3);margin-top:2px;font-weight:400}
.card-actions{display:flex;gap:4px}
.card-actions button{padding:4px 8px;border-radius:5px;color:var(--txt-3);background:transparent;font-size:11px}
.card-actions button:hover{background:var(--bg-2);color:var(--txt)}
.chart-wrap{position:relative;flex:1;min-height:240px}
.chart-wrap.tall{min-height:300px}
.empty{display:flex;align-items:center;justify-content:center;color:var(--txt-3);font-size:12px;padding:30px;text-align:center;flex:1}
@media(max-width:980px){.card.span-8,.card.span-6,.card.span-4{grid-column:span 12}.layout{grid-template-columns:1fr}aside.sidebar{position:fixed;z-index:60;transform:translateX(-100%)}}

.heatmap{display:grid;grid-template-columns:36px repeat(11,1fr);gap:2px;font-size:10.5px}
.heatmap .hm-h{color:var(--txt-3);text-align:center;padding:2px 0}
.heatmap .hm-l{color:var(--txt-3);align-self:center;padding-right:6px;text-align:right}
.heatmap .hm-c{aspect-ratio:1.4/1;border-radius:3px;background:var(--bg-2);transition:transform .1s;cursor:pointer;position:relative}
.heatmap .hm-c:hover{transform:scale(1.15);z-index:5;outline:1px solid var(--txt-2)}
.heatmap .hm-c .tt{position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(-4px);background:var(--bg-3);border:1px solid var(--line-2);padding:4px 6px;border-radius:4px;font-size:10.5px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .1s;z-index:10}
.heatmap .hm-c:hover .tt{opacity:1}

/* ALERTAS — tabela nativa responsiva */
.alerts-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:14px}
.alerts-summary .as-card{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;gap:2px;min-width:0}
.alerts-summary .as-card:hover{background:var(--bg-3);border-color:var(--line-2);transform:translateY(-1px)}
.alerts-summary .as-card.active{background:var(--bg-3);border-color:var(--acc);box-shadow:0 0 0 1px var(--acc) inset}
.alerts-summary .as-card .as-lbl{font-size:10.5px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.5px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alerts-summary .as-card .as-val{font-size:18px;font-weight:600;letter-spacing:-.3px;line-height:1.1}
.alerts-summary .as-card.crit .as-val{color:var(--neg)}
.alerts-summary .as-card.warn .as-val{color:var(--warn)}
.alerts-summary .as-card.good .as-val{color:var(--pos)}
.alerts-summary .as-card.info .as-val{color:var(--txt)}
@media(max-width:1100px){.alerts-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.alerts-summary{grid-template-columns:repeat(2,1fr)}}
.alert-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.alert-toolbar .left{font-size:12px;color:var(--txt-2)}
.alert-toolbar .left b{color:var(--txt);font-weight:600}
.alert-search{width:240px;max-width:100%}
.alert-search input{width:100%;padding:6px 10px;font-size:12px}
.alert-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.alert-table{width:100%;border-collapse:collapse;font-size:12.5px}
.alert-table thead th{background:var(--bg-2);color:var(--txt-2);font-size:10.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;padding:9px 12px;text-align:left;border-bottom:1px solid var(--line-2);cursor:pointer;user-select:none;white-space:nowrap}
.alert-table thead th.num{text-align:right}
.alert-table thead th:hover{background:var(--bg-3);color:var(--txt)}
.alert-table thead th .sort-ind{display:inline-block;margin-left:4px;color:var(--txt-3);font-size:9px;opacity:.7}
.alert-table thead th.sort-asc .sort-ind,.alert-table thead th.sort-desc .sort-ind{color:var(--acc);opacity:1}
.alert-table tbody td{padding:9px 12px;border-bottom:1px solid var(--line);color:var(--txt);vertical-align:middle}
.alert-table tbody td.num{text-align:right;font-variant-numeric:tabular-nums}
.alert-table tbody td.wrap{white-space:normal;word-break:break-word;line-height:1.45;color:var(--txt-2)}
.alert-table tbody tr:last-child td{border-bottom:0}
.alert-table tbody tr:hover td{background:var(--bg-1)}
.alert-table tbody tr.empty td{color:var(--txt-3);text-align:center;padding:24px;font-style:italic}
.alert-table a.cli-link{color:var(--acc);text-decoration:none;font-variant-numeric:tabular-nums}
.alert-table a.cli-link:hover{text-decoration:underline}
.alert-pager{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:11.5px;color:var(--txt-3);gap:8px;flex-wrap:wrap}
.alert-pager .pages{display:flex;gap:4px}
.alert-pager .pg{padding:4px 9px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:5px;color:var(--txt-2);font-size:11px;cursor:pointer}
.alert-pager .pg:hover{background:var(--bg-3);color:var(--txt)}
.alert-pager .pg.active{background:var(--acc);border-color:var(--acc);color:#fff}
.alert-pager .pg:disabled{opacity:.4;cursor:not-allowed}

.tag{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;white-space:nowrap}
.tag.holiday{background:rgba(245,158,11,.15);color:var(--warn)}
.tag.real{background:var(--neg-bg);color:var(--neg)}
.tag.churn{background:var(--neg-bg);color:var(--neg)}
.tag.novo{background:var(--pos-bg);color:var(--pos)}
.tag.anom{background:rgba(245,158,11,.15);color:var(--warn)}
.tag.ok{background:rgba(34,197,94,.12);color:var(--pos)}

/* META TRACKING */
.meta-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:14px}
@media(max-width:1100px){.meta-grid{grid-template-columns:1fr}}
.meta-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.meta-kpi{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.meta-kpi .lbl{font-size:10.5px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.meta-kpi .val{font-size:18px;font-weight:600;letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.meta-kpi.hl{background:linear-gradient(135deg,rgba(119,86,153,.18) 0%,rgba(119,86,153,.05) 100%);border-color:rgba(119,86,153,.45)}
.meta-kpi.pos .val{color:var(--pos)}
.meta-kpi.neg .val{color:var(--neg)}
.meta-kpi.warn .val{color:var(--warn)}
.meta-kpi input{background:transparent;border:0;font-size:18px;font-weight:600;color:var(--txt);padding:0;width:100%;font-variant-numeric:tabular-nums}
.meta-kpi input:focus{outline:1px dashed var(--acc);outline-offset:2px}
@media(max-width:760px){.meta-kpis{grid-template-columns:repeat(2,1fr)}}

.meta-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:8px}
.meta-table{width:100%;border-collapse:collapse;font-size:12px}
.meta-table thead th{background:linear-gradient(180deg,#5b4a78 0%,#775699 100%);color:#fff;font-size:10.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;padding:9px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid #775699}
.meta-table thead th:first-child{text-align:left}
.meta-table tbody td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;color:var(--txt)}
.meta-table tbody td:first-child{text-align:left;font-weight:500}
.meta-table tbody tr:hover td{background:var(--bg-2)}
.meta-table tbody tr.future td{color:var(--txt-3)}
.meta-table tbody tr.future td:first-child{color:var(--txt-3)}
.meta-table tbody tr.total td{font-weight:600;background:var(--bg-2);border-top:2px solid var(--line-2)}
.meta-table .pos{color:var(--pos)}
.meta-table .neg{color:var(--neg)}
.meta-table .muted{color:var(--txt-3)}

.meta-side{display:flex;flex-direction:column;gap:10px}
.meta-side h5{font-size:10.5px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin:0 0 6px}
.meta-side .ind-row{display:flex;justify-content:space-between;align-items:baseline;padding:7px 10px;background:var(--bg-2);border-radius:6px;font-size:12px}
.meta-side .ind-row.hl{background:rgba(245,158,11,.10);border:1px solid rgba(245,158,11,.3)}
.meta-side .ind-row .l{color:var(--txt-2)}
.meta-side .ind-row .v{font-weight:600;font-variant-numeric:tabular-nums;color:var(--txt)}
.meta-side .ind-row.hl .v{color:var(--warn)}
.meta-progress{margin-top:6px;background:var(--bg-2);border-radius:8px;padding:14px;border:1px solid var(--line)}
.meta-progress .l{font-size:10.5px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-bottom:6px;display:flex;justify-content:space-between}
.meta-progress .v{font-weight:600;font-size:13px;color:var(--txt)}
.meta-progress .bar{height:14px;background:var(--bg);border-radius:7px;overflow:hidden;border:1px solid var(--line)}
.meta-progress .fill{height:100%;background:linear-gradient(90deg,var(--acc) 0%,#b79edb 100%);border-radius:7px;transition:width .4s ease}
.meta-progress .fill.crit{background:linear-gradient(90deg,var(--neg) 0%,#f87171 100%)}
.meta-progress .fill.warn{background:linear-gradient(90deg,var(--warn) 0%,#fbbf24 100%)}
.meta-progress .fill.good{background:linear-gradient(90deg,var(--pos) 0%,#4ade80 100%)}
.meta-veredito{margin-top:10px;padding:10px 12px;border-radius:7px;font-size:12px;display:flex;align-items:center;gap:8px;border:1px solid var(--line)}
.meta-veredito.crit{background:var(--neg-bg);border-color:rgba(239,68,68,.3);color:#fecaca}
.meta-veredito.warn{background:rgba(245,158,11,.10);border-color:rgba(245,158,11,.3);color:#fcd34d}
.meta-veredito.good{background:var(--pos-bg);border-color:rgba(34,197,94,.3);color:#bbf7d0}
.meta-veredito .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.meta-veredito.crit .dot{background:var(--neg)}
.meta-veredito.warn .dot{background:var(--warn)}
.meta-veredito.good .dot{background:var(--pos)}

/* ====== CLIENTES VIEW ====== */
.clientes-view{display:none;padding:14px 18px;flex-direction:column;gap:14px;height:calc(100vh - 60px);overflow:hidden}
.clientes-view.active{display:flex}
.nucleo-view{display:none;padding:14px 18px;flex-direction:column;gap:14px;height:calc(100vh - 60px);overflow:auto}
.nucleo-view.active{display:flex}
body.nucleo-mode .layout,body.nucleo-mode .top .kpis,body.nucleo-mode .clientes-view,body.nucleo-mode footer,body.nucleo-mode .footer{display:none!important}
body.nucleo-mode .nucleo-view{display:flex!important}
.nuc-summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:var(--bg-3);border-radius:6px;font-size:12px;margin-bottom:5px;gap:12px}
.nuc-summary-row .lbl{color:var(--txt-2);font-weight:500;white-space:nowrap}
.nuc-summary-row .val{font-weight:600;font-variant-numeric:tabular-nums;color:var(--txt);white-space:nowrap}
.nuc-summary-row.hl{background:rgba(119,86,153,.10);border:1px solid rgba(119,86,153,.35);padding:10px;margin-bottom:6px}
.nuc-summary-row.hl .lbl{color:#c9b2e6;font-weight:600}
.nuc-summary-row .val.xampu{color:#9a78c2;font-weight:700}
.nuc-summary-sep{height:1px;background:var(--bd);margin:8px 0}
.nuc-cfg-row .input.num{width:64px}
.liq-tag{display:none;color:var(--warn);font-size:.85em;font-weight:700;margin-left:4px}
.nucleo-view.liq-mode .liq-tag{display:inline}
#nuc-view-toggle .btn{flex:initial;padding:5px 10px;white-space:nowrap}
.nucleo-side{position:sticky;top:14px}
.nucleo-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}
.nucleo-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.nucleo-kpis .kc{background:var(--bg-2);border:1px solid var(--bd);border-radius:10px;padding:12px 14px}
.nucleo-kpis .kc .l{font-size:10.5px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.nucleo-kpis .kc .v{font-size:22px;font-weight:700;margin-top:4px}
.nucleo-kpis .kc .s{font-size:10.5px;color:var(--txt-3);margin-top:3px}
.nucleo-kpis .kc.hl{border-color:#9a78c2}
.nucleo-grid{display:grid;grid-template-columns:1fr 280px;gap:14px;align-items:start}
.nucleo-card{background:var(--bg-2);border:1px solid var(--bd);border-radius:10px;padding:12px 14px;margin-bottom:12px}
.nucleo-card h5{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--txt-3);font-weight:700}
.nucleo-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.nucleo-table-wrap{overflow:auto;max-height:50vh}
.nucleo-table{width:100%;border-collapse:collapse;font-size:11.5px}
.nucleo-table th,.nucleo-table td{padding:6px 8px;border-bottom:1px solid var(--bd);text-align:left}
.nucleo-table th{position:sticky;top:0;background:var(--bg-2);color:var(--txt-3);text-transform:uppercase;font-size:10px;letter-spacing:.4px}
.nucleo-table td.num,.nucleo-table th.num{text-align:right;font-variant-numeric:tabular-nums}
.nucleo-table tfoot td{border-top:2px solid var(--bd);font-weight:700;background:var(--bg-3)}
.nuc-cent-input{width:54px;background:var(--bg-3);border:1px solid var(--bd);border-radius:4px;color:var(--txt);padding:2px 4px;font-size:11.5px;text-align:right;font-variant-numeric:tabular-nums}
.nuc-cfg-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 0}
.nuc-cfg-row .l{font-size:11.5px;color:var(--txt-2)}
.nuc-cfg-row .v{font-weight:600}
.nuc-cfg-row .input{width:62px}
.nuc-suggest{position:absolute;background:var(--bg-2);border:1px solid var(--bd);border-radius:6px;max-height:240px;overflow-y:auto;z-index:50;display:none;min-width:280px;margin-top:32px}
.nuc-suggest.open{display:block}
.nuc-suggest .item{padding:6px 10px;cursor:pointer;font-size:11.5px;border-bottom:1px solid var(--bd)}
.nuc-suggest .item:hover{background:var(--bg-3)}
.nuc-rem-btn{background:transparent;border:1px solid var(--bd);color:var(--txt-3);border-radius:4px;padding:2px 8px;cursor:pointer;font-size:10px}
.nuc-rem-btn:hover{background:var(--neg);color:#fff;border-color:var(--neg)}
.tag-nucleo{background:#9a78c2;color:#fff}
.nuc-pagar-btn{background:#9a78c2;border:none;color:#fff;border-radius:4px;padding:3px 10px;cursor:pointer;font-size:11px;font-weight:600}
.nuc-checkbox-block{margin-top:8px;padding:8px 10px;background:var(--bg-3);border:1px solid var(--bd);border-radius:6px;display:flex;align-items:center;gap:8px;font-size:11.5px}
body.clientes-mode .layout{display:none}
body.clientes-mode footer{display:none}
.clientes-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--line)}
.clientes-toolbar .cli-search-wrap{flex:1;min-width:280px;position:relative}
.clientes-toolbar .cli-search-wrap input{width:100%;padding:9px 14px 9px 36px;font-size:14px;background:var(--bg-1);border:1px solid var(--line-2);border-radius:8px}
.clientes-toolbar .cli-search-wrap::before{content:"";position:absolute;left:12px;top:50%;width:14px;height:14px;border:1.8px solid var(--txt-3);border-radius:50%;transform:translateY(-65%)}
.clientes-toolbar .cli-search-wrap::after{content:"";position:absolute;left:23px;top:24px;width:7px;height:1.8px;background:var(--txt-3);transform:rotate(45deg);transform-origin:left center}
.clientes-toolbar .cli-meta{font-size:12px;color:var(--txt-3)}
.clientes-toolbar .cli-period{display:flex;gap:6px;align-items:center;background:var(--bg-1);border:1px solid var(--line-2);border-radius:8px;padding:5px 8px;font-size:12px}
.clientes-toolbar .cli-period input[type="date"]{padding:4px 6px;font-size:12px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:5px;color:var(--txt);width:130px}
.clientes-toolbar .cli-period .lbl{color:var(--txt-3);font-size:11px;text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.clientes-toolbar .cli-period .btn{padding:4px 8px;font-size:11px}
.clientes-toolbar .cli-period .btn.active{background:var(--acc);border-color:var(--acc);color:#fff}
.clientes-toolbar select{padding:8px 10px;font-size:13px}
.clientes-grid{flex:1;display:grid;grid-template-columns:380px 1fr;gap:14px;min-height:0;overflow:hidden}
@media(max-width:980px){.clientes-grid{grid-template-columns:1fr;grid-template-rows:300px 1fr}}
.clientes-list{background:var(--bg-1);border:1px solid var(--line);border-radius:10px;overflow-y:auto}
.clientes-list .cli-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .1s}
.clientes-list .cli-row:hover{background:var(--bg-2)}
.clientes-list .cli-row.active{background:var(--bg-3);border-left:3px solid var(--acc);padding-left:9px}
.clientes-list .cli-row .nm{font-size:13px;font-weight:600;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clientes-list .cli-row .cd{font-size:10.5px;color:var(--txt-3);font-variant-numeric:tabular-nums}
.clientes-list .cli-row .vol{font-size:12px;font-weight:600;color:var(--txt-2);font-variant-numeric:tabular-nums;text-align:right}
.clientes-list .cli-row .vol-sub{font-size:10px;color:var(--txt-3);text-align:right}
.clientes-list .cli-empty{padding:30px;text-align:center;color:var(--txt-3);font-size:12.5px}

.clientes-detail{background:var(--bg-1);border:1px solid var(--line);border-radius:10px;overflow-y:auto;padding:18px 22px}
.clientes-detail .empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--txt-3);font-size:13px;text-align:center}
.cli-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.cli-head .cli-title{font-size:20px;font-weight:600;letter-spacing:-.3px;margin:0}
.cli-head .cli-sub{font-size:12px;color:var(--txt-3);margin-top:3px;font-variant-numeric:tabular-nums}
.cli-head .cli-rank{background:var(--bg-2);padding:6px 12px;border-radius:7px;font-size:11.5px;color:var(--txt-2);font-weight:500}
.cli-head .cli-rank b{color:var(--txt);font-weight:700}
.cli-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.cli-tags .tag{font-size:9.5px;letter-spacing:.4px}
.cli-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
@media(max-width:760px){.cli-kpis{grid-template-columns:repeat(2,1fr)}}
.cli-kpis .k{background:var(--bg-2);padding:10px 12px;border-radius:7px;border:1px solid var(--line)}
.cli-kpis .k .l{font-size:10px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.cli-kpis .k .v{font-size:16px;font-weight:600;letter-spacing:-.2px;font-variant-numeric:tabular-nums;margin-top:2px}
.cli-kpis .k.hl{background:linear-gradient(135deg,rgba(119,86,153,.18) 0%,rgba(119,86,153,.05) 100%);border-color:rgba(119,86,153,.4)}
.cli-section{margin-top:18px}
.cli-section h5{font-size:10.5px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin:0 0 8px}
.cli-chart-wrap{position:relative;height:180px}
.cli-twocol{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:760px){.cli-twocol{grid-template-columns:1fr}}
.cli-tdays{width:100%;font-size:11.5px;border-collapse:collapse}
.cli-tdays th{text-align:left;color:var(--txt-3);font-size:10px;text-transform:uppercase;letter-spacing:.4px;padding:5px 6px;border-bottom:1px solid var(--line);font-weight:600}
.cli-tdays th.num{text-align:right}
.cli-tdays td{padding:5px 6px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.cli-tdays td.num{text-align:right}
.cli-tdays tr:last-child td{border-bottom:0}

/* ====== P&L BLOCK ====== */
.pnl-block{margin-top:18px;padding:18px 20px;background:linear-gradient(135deg,rgba(34,197,94,.06) 0%,rgba(0,0,0,0) 60%);border:1px solid var(--line-2);border-radius:10px;position:relative}
.pnl-block.neg{background:linear-gradient(135deg,rgba(239,68,68,.06) 0%,rgba(0,0,0,0) 60%)}
.pnl-block .pnl-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.pnl-block .pnl-title{font-size:10.5px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.6px;font-weight:600}
.pnl-block .pnl-pos{font-size:10.5px;color:var(--txt-3);background:var(--bg-2);padding:4px 8px;border-radius:5px}
.pnl-block .pnl-pos.warn{color:var(--warn);background:rgba(245,158,11,.10)}
.pnl-block .pnl-hero{font-size:32px;font-weight:700;letter-spacing:-.6px;font-variant-numeric:tabular-nums;line-height:1}
.pnl-block .pnl-hero.pos{color:var(--pos)}
.pnl-block .pnl-hero.neg{color:var(--neg)}
.pnl-block .pnl-hero.zero{color:var(--txt-2)}
.pnl-block .pnl-bd{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.pnl-block .pnl-bd .row{background:var(--bg-2);padding:8px 12px;border-radius:6px;font-size:12px}
.pnl-block .pnl-bd .row .lbl{color:var(--txt-3);font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.pnl-block .pnl-bd .row .v{font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}
.pnl-block .pnl-bd .row .v.pos{color:var(--pos)}
.pnl-block .pnl-bd .row .v.neg{color:var(--neg)}
.pnl-curve-wrap{margin-top:14px;height:160px;position:relative}
.pnl-disclaimer{font-size:10.5px;color:var(--txt-3);margin-top:10px;font-style:italic}
.tag.pl-pos{background:rgba(34,197,94,.15);color:var(--pos)}
.tag.pl-neg{background:rgba(239,68,68,.15);color:var(--neg)}
.tag.pl-zero{background:var(--bg-3);color:var(--txt-2)}


/* ====== DAILY CARD (poster pra screenshot) ====== */
.daily-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(6px);z-index:120;display:none;align-items:center;justify-content:center;padding:20px;overflow-y:auto}
.daily-modal-bg.open{display:flex}
.daily-shell{display:flex;flex-direction:column;gap:14px;max-width:560px;width:100%}
.daily-controls{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--txt);font-size:12px}
.daily-controls input[type="date"]{padding:6px 10px;font-size:13px}
.daily-card{background:linear-gradient(155deg,#0c0c10 0%,#15151c 50%,#0c0c10 100%);border:1px solid var(--line-2);border-radius:18px;padding:28px 30px;color:#fff;font-family:Inter,"SF Pro Text",-apple-system,sans-serif;box-shadow:0 30px 80px rgba(0,0,0,.7);position:relative;overflow:hidden}
.daily-card::before{content:"";position:absolute;top:-40%;right:-30%;width:60%;height:140%;background:radial-gradient(circle,rgba(119,86,153,.10) 0%,transparent 60%);pointer-events:none}
.daily-card .dc-brand{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;font-size:11px;color:var(--txt-3);letter-spacing:.6px;text-transform:uppercase;font-weight:600}
.daily-card .dc-brand .dc-logo{display:flex;align-items:center;gap:8px;color:#fff}
.daily-card .dc-brand .dc-logo .dc-mark{width:20px;height:20px;border-radius:5px;background:linear-gradient(135deg,#9a78c2 0%,#775699 100%);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800}
.daily-card .dc-block{position:relative;z-index:1}
.daily-card .dc-block + .dc-block{margin-top:24px;padding-top:22px;border-top:1px dashed rgba(255,255,255,.08)}
.daily-card .dc-section-title{font-size:11.5px;color:#94a3b8;letter-spacing:1.2px;text-transform:uppercase;font-weight:700;margin-bottom:10px;display:flex;justify-content:space-between;align-items:baseline}
.daily-card .dc-section-title .dc-date{color:#cbd5e1;font-weight:500;letter-spacing:.4px;font-size:11px}
.daily-card .dc-hero{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}
.daily-card .dc-hero .v{font-size:46px;font-weight:700;letter-spacing:-1.5px;line-height:1;font-variant-numeric:tabular-nums;background:linear-gradient(180deg,#fff 0%,#94a3b8 110%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.daily-card .dc-hero .u{font-size:14px;color:#94a3b8;font-weight:500}
.daily-card .dc-sub{font-size:13px;color:#cbd5e1;margin-bottom:14px;font-variant-numeric:tabular-nums}
.daily-card .dc-sub .delta-pos{color:#22c55e;font-weight:600}
.daily-card .dc-sub .delta-neg{color:#ef4444;font-weight:600}
.daily-card .dc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.daily-card .dc-grid .dc-tile{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:10px 12px}
.daily-card .dc-grid .dc-tile .dc-tlbl{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.6px;font-weight:600;margin-bottom:3px}
.daily-card .dc-grid .dc-tile .dc-tval{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;color:#fff;letter-spacing:-.5px}
.daily-card .dc-grid .dc-tile.win .dc-tval{color:#b79edb}
.daily-card .dc-grid .dc-tile.wdo .dc-tval{color:#a78bfa}
.daily-card .dc-grid .dc-tile.bit .dc-tval{color:#fbbf24}
.daily-card .dc-foot{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#94a3b8;font-variant-numeric:tabular-nums;padding-top:8px}
.daily-card .dc-foot b{color:#fff;font-weight:600}

.daily-text-wrap{background:var(--bg-1);border:1px solid var(--line-2);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px}
.daily-text-wrap .dt-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.6px;font-weight:600}
.daily-text{font-family:"SF Mono","Monaco","Consolas","Roboto Mono",monospace;font-size:12.5px;color:var(--txt);background:var(--bg);padding:12px 14px;border-radius:7px;white-space:pre-wrap;border:1px solid var(--line);line-height:1.55;user-select:all}
.daily-copy-btn{padding:5px 10px;font-size:11px;background:var(--acc);border:1px solid var(--acc);color:#fff;border-radius:5px;cursor:pointer;transition:all .15s}
.daily-copy-btn:hover{background:#9a78c2}
.daily-copy-btn.ok{background:var(--pos);border-color:var(--pos)}
.daily-copy-btn.err{background:var(--warn);border-color:var(--warn)}

/* ====== SHARE MODAL (cliente) ====== */
.share-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(6px);z-index:120;display:none;align-items:center;justify-content:center;padding:20px;overflow-y:auto}
.share-modal-bg.open{display:flex}
.share-shell{display:flex;flex-direction:column;gap:14px;max-width:620px;width:100%}
.intraday-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(6px);z-index:120;display:none;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto}
.intraday-modal-bg.open{display:flex}
.intraday-shell{background:var(--bg-1);border:1px solid var(--line-2);border-radius:14px;padding:18px 20px;width:min(1240px,96vw);display:flex;flex-direction:column;gap:14px;box-shadow:0 30px 80px rgba(0,0,0,.7)}
.intraday-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.id-title{font-size:16px;font-weight:700}
.intraday-chart-wrap{position:relative;height:240px;background:var(--bg-2);border:1px solid var(--bd);border-radius:10px;padding:10px}
.intraday-chart-wrap.pos{height:160px}
.id-table-wrap{max-height:44vh;overflow:auto;border:1px solid var(--bd);border-radius:10px}
.id-num-neg{color:var(--neg)}
.id-num-pos{color:var(--pos)}
.share-controls{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--txt);font-size:12px}
.share-card{background:linear-gradient(165deg,#0c0c10 0%,#15151c 50%,#0c0c10 100%);border:1px solid var(--line-2);border-radius:18px;padding:26px 28px;color:#fff;font-family:Inter,"SF Pro Text",-apple-system,sans-serif;box-shadow:0 30px 80px rgba(0,0,0,.7);position:relative;overflow:hidden}
.share-card::before{content:"";position:absolute;top:-30%;right:-25%;width:55%;height:130%;background:radial-gradient(circle,rgba(119,86,153,.08) 0%,transparent 60%);pointer-events:none}
.share-card .sc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;position:relative;z-index:1}
.share-card .sc-name{font-size:22px;font-weight:700;letter-spacing:-.5px;line-height:1.1;background:linear-gradient(180deg,#fff 0%,#94a3b8 130%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.share-card .sc-sub{font-size:11.5px;color:#94a3b8;margin-top:4px;letter-spacing:.3px}
.share-card .sc-period{font-size:10.5px;color:#cbd5e1;background:rgba(255,255,255,.05);padding:5px 10px;border-radius:6px;font-weight:500;text-align:right;line-height:1.4}
.share-card .sc-hero{position:relative;z-index:1;display:flex;align-items:baseline;gap:8px;margin-bottom:6px}
.share-card .sc-hero .v{font-size:42px;font-weight:700;letter-spacing:-1.2px;line-height:1;font-variant-numeric:tabular-nums;color:#fff}
.share-card .sc-hero .u{font-size:13px;color:#94a3b8;font-weight:500}
.share-card .sc-hero-sub{font-size:12.5px;color:#cbd5e1;margin-bottom:18px;position:relative;z-index:1}
.share-card .sc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;position:relative;z-index:1}
.share-card .sc-grid.sc-grid-2{grid-template-columns:repeat(2,1fr)}
.share-card .sc-foot.sc-foot-1{grid-template-columns:1fr}
.share-card .sc-foot.sc-foot-1 .sc-top5 table td:first-child{width:50%}
.share-card .sc-grid .sc-tile{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);border-radius:9px;padding:9px 11px}
.share-card .sc-grid .sc-tile .lbl{font-size:9.5px;color:#64748b;text-transform:uppercase;letter-spacing:.6px;font-weight:600;margin-bottom:2px}
.share-card .sc-grid .sc-tile .val{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:#fff;letter-spacing:-.3px}
.share-card .sc-grid .sc-tile.win .val{color:#b79edb}
.share-card .sc-grid .sc-tile.wdo .val{color:#a78bfa}
.share-card .sc-grid .sc-tile.bit .val{color:#fbbf24}
.share-card .sc-chart{position:relative;height:130px;margin-bottom:12px;z-index:1}
.share-card .sc-foot{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;position:relative;z-index:1;padding-top:12px;border-top:1px dashed rgba(255,255,255,.06)}
.share-card .sc-top5{font-size:11.5px}
.share-card .sc-top5 .ttl{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.6px;font-weight:600;margin-bottom:6px}
.share-card .sc-top5 table{width:100%;font-variant-numeric:tabular-nums}
.share-card .sc-top5 td{padding:3px 0;color:#cbd5e1}
.share-card .sc-top5 td.r{text-align:right;color:#fff}
.share-card .sc-ativos{font-size:11.5px}
.share-card .sc-ativos .ttl{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.6px;font-weight:600;margin-bottom:6px}
.share-card .sc-ativos .chip{display:inline-block;background:rgba(255,255,255,.06);color:#fff;padding:3px 8px;border-radius:5px;font-size:10.5px;margin:2px 3px 2px 0;font-weight:500}

.btn-share-cli{padding:5px 10px;font-size:11px;background:var(--acc);border:1px solid var(--acc);color:#fff;border-radius:6px;cursor:pointer;font-weight:600;letter-spacing:.3px}
.btn-share-cli:hover{background:#9a78c2}

.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}
.modal-bg.open{display:flex}
.modal{background:var(--bg-1);border:1px solid var(--line-2);border-radius:12px;max-width:820px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.modal>header{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.modal>header h3{margin:0;font-size:15px;font-weight:600}
.modal .body{padding:16px 18px;overflow-y:auto}
.modal>footer{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}
.cons-row{display:grid;grid-template-columns:80px 1.2fr 1.2fr 1fr 1fr;gap:8px;margin-bottom:10px;align-items:center;padding:10px;background:var(--bg-2);border-radius:8px}
.cons-row .month{font-weight:600;color:var(--txt)}
.cons-row .small-lbl{font-size:10.5px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.4px;display:block;margin-bottom:3px}

.drawer-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);z-index:90;display:none}
.drawer-bg.open{display:block}
.drawer{position:fixed;top:0;right:0;height:100vh;width:520px;max-width:95vw;background:var(--bg-1);border-left:1px solid var(--line-2);z-index:91;transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(0,0,0,.5)}
.drawer.open{transform:translateX(0)}
.drawer>header{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.drawer>header h3{margin:0;font-size:14px;font-weight:600}
.drawer .body{padding:14px 18px;overflow-y:auto;flex:1}
.drawer .body h5{font-size:10.5px;letter-spacing:.6px;color:var(--txt-3);text-transform:uppercase;margin:18px 0 8px;font-weight:600}
.drawer .body h5:first-child{margin-top:0}
.drawer-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.drawer-stat{background:var(--bg-2);padding:10px;border-radius:8px}
.drawer-stat .lbl{font-size:10.5px;color:var(--txt-3);text-transform:uppercase;letter-spacing:.5px}
.drawer-stat .val{font-size:15px;font-weight:600;margin-top:2px}

body.presentation header.top .brand{display:none}
body.presentation header.top .head-actions .btn:not(.exit-pres){display:none}
body.presentation header.top{padding:6px 16px}
body.presentation .kpi .lbl{font-size:11.5px}
body.presentation .kpi .val{font-size:21px}
body.presentation aside.sidebar{display:none}
body.presentation .layout{grid-template-columns:1fr}
body.presentation main.grid{padding:18px;gap:18px}
body.presentation .card{padding:18px 22px}
body.presentation .card-header .title{font-size:16px}
body.presentation .chart-wrap{min-height:340px}

.tip{position:relative;display:inline-block;cursor:help;color:var(--txt-3);margin-left:4px;font-size:11px;background:var(--bg-2);width:14px;height:14px;border-radius:50%;text-align:center;line-height:14px}
.tip:hover::after{content:attr(data-tip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:var(--bg-3);color:var(--txt);padding:5px 8px;border-radius:5px;font-size:11px;white-space:nowrap;border:1px solid var(--line-2);z-index:20}

.acuracidade-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:12px}
.acuracidade-table th,.acuracidade-table td{padding:7px 9px;text-align:right;border-bottom:1px solid var(--line)}
.acuracidade-table th{color:var(--txt-3);font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.acuracidade-table th:first-child,.acuracidade-table td:first-child{text-align:left}
.acuracidade-table td.pos{color:var(--pos)}
.acuracidade-table td.neg{color:var(--neg)}
.mape-row{display:flex;gap:14px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.mape-pill{background:var(--bg-2);padding:8px 12px;border-radius:7px;font-size:12px}
.mape-pill .v{font-weight:600;font-size:14px;display:block}
.mape-pill .l{color:var(--txt-3);font-size:10.5px;text-transform:uppercase;letter-spacing:.5px}

/* ===== Fase 1: refino premium (handoff Ever — production-css §2-10) ===== */
/* ---- 2. KPI cards (header) ---- */
.kpi{
  position:relative; padding:18px 18px 16px; overflow:hidden;
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1));
  border:1px solid var(--line); border-radius:var(--r);
}
.kpi::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg,var(--ever-300),var(--ever)); }
.kpi .lbl{ font-size:11px; letter-spacing:.6px; text-transform:uppercase; color:var(--txt-3); font-weight:700; }
.kpi .val{ font-size:var(--kpiv); font-weight:800; letter-spacing:-.6px; line-height:1; }
.kpi .delta{ color:var(--ever-300); font-weight:600; }  /* variação = VIOLETA, não verde */
.kpi.delta-pos .delta, .kpi.delta-neg .delta{ color:var(--ever-300); }
/* verde/vermelho SÓ em P&L (.pos/.neg em tabelas e blocos de P&L) */

/* ---- 3. Cards / painéis ---- */
.card{ background:var(--bg-1); border:1px solid var(--line); border-radius:var(--r);
  padding:var(--pad); box-shadow:var(--shadow); }
.card-header .title{ font-weight:700; font-size:14.5px; letter-spacing:-.2px; }
.card-header .sub{ font-size:12px; color:var(--txt-3); }

/* ---- 4. Botões ---- */
.btn.primary{ background:var(--acc); border-color:var(--acc); color:#fff; }
.btn.primary:hover{ background:var(--ever); border-color:var(--ever); }  /* era #2563eb (azul) */
/* Daily como ação principal: dê a ela a classe .primary + glow */
#btn-daily{ background:linear-gradient(135deg,var(--acc),var(--ever)); border:0; color:#fff;
  box-shadow:0 4px 16px rgba(119,86,153,.5); font-weight:600; }
#btn-daily:hover{ filter:brightness(1.08); }

/* ---- 5. Tag pílula violeta (reaproveite em .tag.ok etc.) ---- */
.tag.nucleo, .tag-nucleo{ background:rgba(119,86,153,.22); color:var(--ever-300); border:1px solid rgba(151,118,196,.28); }

/* ---- 6. Meta — semáforo (classes .fill.* já existem; troque os gradientes) ---- */
.meta-progress .fill{ background:linear-gradient(90deg,var(--ever),var(--ever-300)); box-shadow:0 0 14px var(--ever-glow); }
.meta-progress .fill.good{ background:linear-gradient(90deg,var(--pos),#6ee7b7); }
.meta-progress .fill.warn{ background:linear-gradient(90deg,var(--warn),#f2cd88); box-shadow:0 0 14px rgba(232,184,100,.5); }
.meta-progress .fill.crit{ background:linear-gradient(90deg,var(--neg),#fca5a5); }
/* marcador de ritmo esperado: adicione no HTML da barra
   <div class="pace-mark" style="left: PACE%"></div>  (PACE calculado no app.js) */
.meta-progress .bar{ position:relative; overflow:visible; }
.meta-progress .pace-mark{ position:absolute; top:-4px; bottom:-4px; width:2px; background:var(--txt); border-radius:2px; }
/* tabela de meta: header violeta (era azul #1e3a8a/#1e40af) */
.meta-table thead th{ background:linear-gradient(180deg,#5b4a78,#775699); border-bottom-color:var(--ever); }
.meta-kpi.hl{ background:linear-gradient(135deg,rgba(119,86,153,.20),rgba(119,86,153,.05)); border-color:rgba(151,118,196,.45); }

/* ---- 7. Núcleo HFT — purgar azul ---- */
.nucleo-kpis .kc.hl{ border-color:rgba(151,118,196,.45); }
.nuc-summary-row.hl{ background:rgba(119,86,153,.14); border-color:rgba(151,118,196,.35); }
.nuc-summary-row.hl .lbl{ color:var(--ever-300); }
.nuc-summary-row .val.xampu{ color:var(--ever-300); font-weight:700; }
.nuc-pagar-btn{ background:var(--ever); }
.btn-share-cli, .daily-copy-btn{ background:var(--acc); border-color:var(--acc); }
.daily-copy-btn:hover{ background:var(--ever); }

/* ---- 8. Cliente — KPI destacado (era azul) ---- */
.cli-kpis .k.hl{ background:linear-gradient(135deg,rgba(119,86,153,.18),rgba(119,86,153,.05)); border-color:rgba(151,118,196,.4); }

/* ---- 9. Posters Daily/Share — glow violeta (era rgba(59,130,246,*)) ---- */
.daily-card::before, .share-card::before{ background:radial-gradient(circle,rgba(119,86,153,.12) 0%,transparent 60%); }
.daily-card .dc-brand .dc-logo .dc-mark{ background:linear-gradient(135deg,var(--acc),var(--ever)); }
.daily-card .dc-grid .dc-tile.wdo .dc-tval, .share-card .sc-grid .sc-tile.wdo .val{ color:var(--ever-300); }

/* ---- 10. Skeleton shimmer (novo) — sobre os containers de canvas ---- */
@keyframes evshim{ 0%{background-position:200% 0} 100%{background-position:-200% 0} }
.chart-wrap.loading::after, .cli-chart-wrap.loading::after{
  content:""; position:absolute; inset:0; border-radius:8px;
  background:linear-gradient(90deg,var(--bg-2) 25%,var(--bg-3) 50%,var(--bg-2) 75%);
  background-size:200% 100%; animation:evshim 1.4s infinite;
}
/* o app.js adiciona .loading no wrap antes de criar o Chart e remove no callback de animação onComplete */

/* ===== Fase 2A: nav rail ===== */
nav.rail{
  position:fixed; left:0; top:0; bottom:0; width:72px; z-index:60;
  background:rgba(19,17,25,.72); backdrop-filter:blur(8px);
  border-right:1px solid var(--line);
  display:flex; flex-direction:column; align-items:center; gap:6px; padding:16px 0;
}
.rail-mark{ width:36px; height:36px; border-radius:9px; object-fit:cover; margin-bottom:14px; }
.rail-item{ width:46px; height:46px; border:0; border-radius:12px; background:transparent;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  color:var(--txt-3); cursor:pointer; transition:all .15s; }
.rail-item span{ font-size:8.5px; font-weight:600; letter-spacing:.2px; }
.rail-item:hover{ color:var(--txt-2); background:rgba(255,255,255,.04); }
.rail-item.active{ color:var(--ever-300); background:rgba(119,86,153,.22);
  box-shadow:inset 0 0 0 1px rgba(151,118,196,.45); }
.rail-spacer{ flex:1; }
.rail-avatar{ width:34px; height:34px; border-radius:50%; color:#fff; font-size:12px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--acc),var(--ever)); border:1px solid rgba(183,158,219,.4); }
/* ====== RADAR VIEW ====== */
.radar-view{ display:none; padding:14px 18px; }
.radar-view.active{ display:block; }
body.radar-mode .layout,body.radar-mode header.top .kpis,body.radar-mode .clientes-view,body.radar-mode .nucleo-view,body.radar-mode .metas-view,body.radar-mode footer,body.radar-mode .footer{ display:none!important }
body.radar-mode .radar-view{ display:block!important }
.radar-head{ margin:0 0 16px; }
.radar-head h2{ margin:0; font-size:20px; }
.radar-head .muted{ margin:4px 0 0; color:var(--txt-2); }
.radar-card{ background:var(--bg-2,#1b1726); border:1px solid var(--bd,#2a2440); border-radius:14px; padding:18px 20px; margin-bottom:16px; }
.radar-card h3{ margin:0 0 12px; font-size:15px; font-weight:600; }

/* ====== MERCADO VIEW ====== */
.mercado-view{ display:none; padding:14px 18px; }
.mercado-view.active{ display:block; }
body.mercado-mode .layout,body.mercado-mode header.top .kpis,body.mercado-mode .clientes-view,body.mercado-mode .nucleo-view,body.mercado-mode .radar-view,body.mercado-mode .metas-view,body.mercado-mode footer,body.mercado-mode .footer{ display:none!important }
body.mercado-mode .mercado-view{ display:block!important }
.mer-controls{ display:flex; gap:12px; margin:0 0 14px; flex-wrap:wrap; }
.mer-table{ width:100%; border-collapse:collapse; font-size:13px; }
.mer-table th{ text-align:right; padding:6px 10px; color:var(--txt-2); font-weight:600; border-bottom:1px solid var(--bd,#2a2440); }
.mer-table th:nth-child(2){ text-align:left; }
.mer-table td{ text-align:right; padding:6px 10px; border-bottom:1px solid var(--bd,#2a2440); white-space:nowrap; }
.mer-table td:nth-child(2){ text-align:left; max-width:280px; overflow:hidden; text-overflow:ellipsis; }
.mer-table tr.mer-xp td{ background:rgba(119,86,153,.14); font-weight:600; }
.mer-table tr.mer-others td{ color:var(--txt-2); font-style:italic; }
.mer-pos{ color:#4ade80; } .mer-neg{ color:#f87171; }

/* ── Metas (admin) ── */
.metas-view{ display:none; padding:14px 18px; }
.metas-view.active{ display:block; }
body.metas-mode .layout,body.metas-mode header.top .kpis,body.metas-mode .clientes-view,body.metas-mode .nucleo-view,body.metas-mode .radar-view,body.metas-mode .mercado-view,body.metas-mode footer,body.metas-mode .footer{ display:none!important }
body.metas-mode .metas-view{ display:block!important }
.metas-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:14px 0; }
@media (max-width:900px){ .metas-grid{ grid-template-columns:1fr; } }
.metas-view .meta-kpi .sub{ font-size:11px; margin-top:2px; }
.metas-params-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; }
.mp-field{ display:flex; flex-direction:column; gap:4px; font-size:11.5px; color:var(--txt-2); }
.mp-field input{ width:100%; }

/* abrir espaço pro rail: empurra TODO o conteúdo 72px à direita */
header.top{ margin-left:72px; }
.layout, .clientes-view, .nucleo-view, .radar-view, .mercado-view, .metas-view, footer, .footer{ margin-left:72px; }

/* ===== Fase 2B: filtro rápido no header ===== */
.quickfilter{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.quickfilter .qf-presets{ display:flex; gap:5px; }
.quickfilter .qf-presets .btn{ padding:5px 10px; font-size:11.5px; }
.quickfilter .toggle-group{ width:auto; }
.quickfilter .toggle-group .btn.active{ background:var(--acc); color:#fff; }

/* ===== Fase 2E: toggle de densidade ===== */
.density-toggle{ display:inline-flex; background:var(--bg-2); border:1px solid var(--line);
  border-radius:999px; padding:3px; gap:2px; }
.density-toggle .dt-btn{ height:28px; padding:0 12px; border:0; border-radius:999px;
  font-size:11.5px; font-weight:600; color:var(--txt-3); cursor:pointer; }
.density-toggle .dt-btn.active{ color:var(--txt); background:rgba(119,86,153,.30); }
main.grid{ gap:var(--gap); padding:var(--cpad); }

/* ===== Fase 2D: responsivo / mobile (<820px) ===== */
@media(max-width:820px){
  nav.rail{ left:0; right:0; top:auto; bottom:0; width:auto; height:60px;
    flex-direction:row; justify-content:space-around; padding:0 8px;
    border-right:0; border-top:1px solid var(--line); }
  .rail-mark, .rail-spacer, .rail-avatar{ display:none; }
  header.top, .layout, .clientes-view, .nucleo-view, .radar-view, .mercado-view, .metas-view, footer, .footer{ margin-left:0; }
  body{ padding-bottom:74px; }
  main.grid{ grid-template-columns:1fr; }
  .card.span-8, .card.span-6, .card.span-4{ grid-column:span 12; }
  .alerts-summary{ grid-template-columns:repeat(2,1fr); }
  .meta-grid, .nucleo-grid, .clientes-grid{ grid-template-columns:1fr; }
  .clientes-grid{ grid-template-rows:auto auto; }
  aside.sidebar{ left:0; }
}

/* ===== Fase 2C: sidebar -> drawer "Filtros" ===== */
aside.sidebar{ position:fixed; left:72px; top:0; height:100vh; z-index:55;
  transform:translateX(-110%); transition:transform .25s ease; box-shadow:var(--shadow); }
body.filters-open aside.sidebar{ transform:translateX(0); }
.layout{ grid-template-columns:1fr; }

/* ===== Fase 2 fix v2 (Opção B): header enxuto + KPIs no topo do conteúdo ===== */
header.top{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.head-row-1{ flex:1; display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
main.grid > .kpis{ grid-column:1/-1; display:grid; grid-template-columns:repeat(auto-fit,minmax(172px,1fr)); gap:12px; }
.kpis .kpi{ min-width:0; padding:14px 16px; background:linear-gradient(180deg,var(--bg-2),var(--bg-1)); border:1px solid var(--line); }
@media(max-width:820px){ main.grid > .kpis{ grid-template-columns:repeat(2,1fr); } }

/* ===== Mobile polish — consulta rápida (KPIs + Alertas) · 2026-06-19 ===== */
@media(max-width:640px){
  /* -- Header enxuto: só o essencial pra consultar no celular -- */
  header.top{ padding:8px 12px; gap:10px; }
  .brand{ padding-right:10px; flex:0 0 auto; }
  .brand .logo-img{ height:20px; width:auto; flex:0 0 auto; }
  .head-row-1{ gap:8px; }
  /* ações de desktop ficam pro desktop (densidade, consolidado, daily, ghosts) */
  .density-toggle, #btn-cons, #btn-daily, .head-actions .btn.ghost{ display:none !important; }
  .head-actions{ gap:6px; margin-left:auto; }
  /* filtro rápido WIN/WDO + presets rolam numa linha em vez de quebrar bagunçado */
  .quickfilter{ width:100%; flex-wrap:nowrap; overflow-x:auto; gap:8px; padding-bottom:2px; }
  .quickfilter::-webkit-scrollbar{ height:0; }
  .quickfilter .qf-presets{ flex-wrap:nowrap; }
  .quickfilter .toggle-group{ flex:0 0 auto; }

  /* -- Conteúdo: menos padding, mais largura útil -- */
  main.grid{ padding:12px 12px 28px; gap:12px; }
  .card{ padding:14px 14px; }

  /* -- KPIs: o número é o protagonista, sem truncar -- */
  main.grid > .kpis{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .kpis .kpi{ padding:12px 12px; }
  .kpi .lbl{ font-size:10px; letter-spacing:.4px; }
  .kpi .val{ font-size:19px; letter-spacing:-.4px; overflow-wrap:anywhere; }
  .kpi .sub, .kpi .delta{ font-size:11px; }

  /* -- Gráficos: altura cômoda pro toque -- */
  .chart-wrap{ min-height:230px; }
  .chart-wrap.tall{ min-height:250px; }

  /* -- Tabelas densas: scroll horizontal DE VERDADE (não espremer colunas) -- */
  .meta-table{ min-width:680px; }
  .alert-table{ min-width:600px; }
  .nucleo-table{ min-width:640px; }
  .acuracidade-table{ min-width:520px; }
  .meta-table-wrap, .alert-table-wrap, .nucleo-table-wrap{ -webkit-overflow-scrolling:touch; }

  /* -- Alertas: resumo 2-col + busca full-width -- */
  .alerts-summary{ grid-template-columns:repeat(2,1fr); gap:8px; }
  .alert-toolbar{ gap:8px; }
  .alert-search{ width:100%; }

  /* meta-KPIs cabem melhor com fonte menor */
  .meta-kpi .val, .meta-kpi input{ font-size:16px; }

  /* -- Sidebar de filtros: travar fechada (estava vazando sobre os KPIs) -- */
  aside.sidebar{ width:86vw; max-width:320px; left:0; }
  body:not(.filters-open) aside.sidebar{ transform:translateX(-110%); visibility:hidden; }
  body.filters-open aside.sidebar{ transform:translateX(0); visibility:visible; }
}

/* telas bem estreitas: 1 número por linha, KPIs respiram */
@media(max-width:380px){
  main.grid > .kpis{ grid-template-columns:1fr; }
  .kpi .val{ font-size:22px; }
}

.rp-head .rp-big{ font-size:28px; font-weight:700; }
.rp-sub{ margin:2px 0 14px; font-size:13px; }
.rp-bar{ height:10px; border-radius:6px; background:var(--border,#2a2440); overflow:hidden; }
.rp-fill{ height:100%; background:linear-gradient(90deg,#775699,#9a78c2); }
.rp-meta{ margin-top:10px; font-size:13px; }
.rp-warn{ margin-top:8px; font-size:12px; color:#e8b864; }

/* ── Card 2: client risk list ────────────────────────────────────────────── */
.rk-hint{ font-size:12px; margin-bottom:10px; }
.rk-row{ display:flex; align-items:center; gap:14px; padding:10px 0; border-top:1px solid var(--border,#2a2440); }
.rk-hint + .rk-row{ border-top:none; }
.rk-spark{ color:#9a78c2; flex:0 0 84px; }
.rk-main{ flex:1 1 auto; min-width:0; }
.rk-name{ font-weight:600; font-size:14px; }
.rk-reason{ font-size:12px; }
.rk-score{ flex:0 0 auto; font-weight:700; font-size:18px; color:#e8b864; min-width:34px; text-align:right; }
.rk-badge{ font-size:10px; padding:1px 6px; border-radius:8px; background:rgba(154,120,194,.2); color:#c5a8e8; margin-left:6px; }
.rk-badge.crit{ background:rgba(232,184,100,.2); color:#e8b864; }

.wf-head{ margin-bottom:12px; font-size:14px; }
.wf-head .pos{ color:#5fbf8f; } .wf-head .neg{ color:#e08585; }
.wf{ display:flex; align-items:flex-end; gap:10px; min-height:160px; padding:8px 0 0; }
.wf-col{ flex:1 1 0; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; }
.wf-bar{ width:70%; border-radius:5px 5px 0 0; }
.wf-bar.base{ background:#775699; } .wf-bar.pos{ background:#5fbf8f; } .wf-bar.neg{ background:#e08585; }
.wf-val{ font-size:11px; margin-top:5px; } .wf-lbl{ font-size:11px; }
.wf-tbl{ width:100%; border-collapse:collapse; margin-top:16px; font-size:13px; }
.wf-tbl th,.wf-tbl td{ padding:6px 8px; border-top:1px solid var(--border,#2a2440); }
.wf-tbl .r{ text-align:right; } .wf-tbl .pos{ color:#5fbf8f; } .wf-tbl .neg{ color:#e08585; }

/* Janelas de horário — perfil do cliente */
.win-block{display:flex;flex-direction:column;gap:7px}
.win-row{display:flex;align-items:center;gap:10px;font-size:12.5px;flex-wrap:wrap}
.win-tag{font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:5px;text-transform:uppercase;letter-spacing:.5px}
.win-tag.best{background:var(--pos-bg);color:var(--pos)}
.win-tag.worst{background:var(--neg-bg);color:var(--neg)}
.win-h{font-weight:600;min-width:62px;font-variant-numeric:tabular-nums}
.win-pnl{font-weight:700;font-variant-numeric:tabular-nums}
.win-pnl.pos{color:var(--pos)}.win-pnl.neg{color:var(--neg)}
.win-vol{color:var(--txt-3);font-size:11px;margin-left:auto;font-variant-numeric:tabular-nums}
.win-chart-wrap{height:130px;margin-top:6px}

/* Janelas de horário — share card (client-facing) */
.share-card .sc-windows{margin-top:12px;padding:11px 13px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);border-radius:9px;position:relative;z-index:1}
.share-card .sc-windows .ttl{font-size:9.5px;color:#64748b;text-transform:uppercase;letter-spacing:.6px;font-weight:600;margin-bottom:7px}
.share-card .scw-row{display:flex;align-items:center;gap:9px;font-size:12px;margin-top:5px}
.share-card .scw-tag{font-size:9px;font-weight:700;padding:3px 8px;border-radius:5px;min-width:88px;text-align:center}
.share-card .scw-tag.best{background:rgba(52,211,153,.14);color:#34d399}
.share-card .scw-tag.worst{background:rgba(247,112,102,.14);color:#f77066}
.share-card .scw-h{font-weight:600;color:#fff;font-variant-numeric:tabular-nums}
.share-card .scw-pnl{font-weight:700;font-variant-numeric:tabular-nums}
.share-card .scw-pnl.pos{color:#34d399}.share-card .scw-pnl.neg{color:#f77066}
.share-card .scw-vol{color:#64748b;font-size:11px;margin-left:auto;font-variant-numeric:tabular-nums}

/* Toast de falha de persistência (/api/state) — criado pelo app.js quando um PUT falha */
#save-error{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);background:#3a1520;border:1px solid #f77066;color:#ffd7d3;padding:10px 16px;border-radius:8px;font-size:12.5px;line-height:1.4;z-index:400;box-shadow:0 8px 24px rgba(0,0,0,.5);max-width:min(92vw,560px);display:none}
#save-error.show{display:block}

/* Dropzone do upload por arrasto (admin) — pointer-events:none pro drop cair na window */
.dropzone{position:fixed;inset:0;z-index:200;display:none;background:rgba(11,10,15,.84);backdrop-filter:blur(3px);align-items:center;justify-content:center;pointer-events:none}
.dropzone.open{display:flex}
.dz-box{border:2px dashed var(--ever-300);border-radius:16px;padding:46px 70px;text-align:center;font-size:21px;font-weight:700;color:var(--txt);background:rgba(119,86,153,.10);box-shadow:0 0 60px var(--ever-glow)}
.dz-box span{display:block;margin-top:9px;font-size:12.5px;font-weight:500;color:var(--txt-2)}

/* Núcleo — sub-aba Saldo Operacional */
#nuc-saldo-view{display:none}
.nucleo-view.saldo-mode #nuc-saldo-view{display:block}
.nucleo-view.saldo-mode #nuc-kpis,
.nucleo-view.saldo-mode .nucleo-grid,
.nucleo-view.saldo-mode #nuc-view-toggle,
.nucleo-view.saldo-mode #nuc-month-sel,
.nucleo-view.saldo-mode #nuc-export,
.nucleo-view.saldo-mode #nuc-import-btn{display:none}
#saldo-scen-summary{display:flex;gap:12px;flex-wrap:wrap}
.saldo-scen-box{flex:1;min-width:180px;background:var(--bg-3);border-radius:8px;padding:10px 14px}
