/* Tokens Delta — tema escuro (alternativo). O padrão da aplicação é o tema claro. */
:root{
  --bg:#001B36; --surface:#06294C; --surface2:#04203E; --line:#1C3A5E;
  --txt:#E8EEF6; --muted:#9DB0C7; --faint:#6E83A0;
  --brand:#3B7AC0; --brand2:#7FB1E8; --accent:#F58220;
  --green:#2FB36A; --amber:#E8911E; --red:#E15B4C;
  --radius:14px; --shadow:0 8px 28px rgba(0,0,0,.45);
  --pal0:#3B7AC0;--pal1:#F58220;--pal2:#5B8DEF;--pal3:#2FB36A;--pal4:#E8911E;
  --pal5:#9AA7FF;--pal6:#22A7C0;--pal7:#C084FC;--pal8:#E15B4C;--pal9:#7FB1E8;
}
/* Tokens Delta — tema claro (padrão). Azul institucional #002F5E + laranja #F58220. */
html[data-theme="light"]{
  --bg:#F7F9FC; --surface:#FFFFFF; --surface2:#F1F5FA; --line:#D9E1EA;
  --txt:#1F2A37; --muted:#5B6573; --faint:#8A97A8;
  --brand:#002F5E; --brand2:#1E5BA8; --accent:#F58220;
  --green:#1F9D55; --amber:#D97706; --red:#C0392B;
  --shadow:0 6px 18px rgba(0,0,0,.10);
  --pal0:#002F5E;--pal1:#F58220;--pal2:#2563EB;--pal3:#1F9D55;--pal4:#D97706;
  --pal5:#5B8DEF;--pal6:#0E7490;--pal7:#9333EA;--pal8:#C0392B;--pal9:#1E5BA8;
}
html[data-theme="light"] body{
  background:radial-gradient(1200px 600px at 80% -10%,#E9F0F9 0%,var(--bg) 55%) fixed;
}
html[data-theme="light"] thead th{background:#EEF3FA}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:radial-gradient(1200px 600px at 80% -10%,#022A4F 0%,var(--bg) 55%) fixed;
  color:var(--txt);
  font:14px/1.45 "Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1600px;width:94%;margin:0 auto;padding:22px 26px 70px}
a{color:var(--brand2)}

/* Header */
header.top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.brand{display:flex;align-items:center;gap:14px}
.logo{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--accent));
  display:grid;place-items:center;font-weight:800;font-size:20px;color:#fff;box-shadow:var(--shadow)}
h1{font-size:22px;margin:0;letter-spacing:.2px}
.sub{color:var(--muted);font-size:12.5px;margin-top:3px;max-width:680px}
.scope{font-size:11.5px;color:var(--faint);margin-top:4px}

/* KPI cards */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0 6px}
.kpi{background:linear-gradient(180deg,var(--surface),var(--surface2));border:1px solid var(--line);
  border-radius:var(--radius);padding:15px 16px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.kpi::after{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;
  background:radial-gradient(circle,rgba(59,130,246,.20),transparent 70%)}
.kpi .lbl{color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.6px}
.kpi .val{font-size:24px;font-weight:700;margin-top:6px;letter-spacing:.3px}
.kpi .delta{font-size:12px;margin-top:5px}
.up{color:var(--green)} .down{color:var(--red)}
.kpi .val .pre{font-size:13px;color:var(--muted);font-weight:600;margin-right:4px}

/* Tabs */
.tabs{display:flex;gap:8px;margin:6px 0 0;border-bottom:1px solid var(--line)}
.tab{background:transparent;border:0;border-bottom:2.5px solid transparent;color:var(--muted);
  padding:11px 18px;font-size:14px;font-weight:600;cursor:pointer;margin-bottom:-1px}
.tab:hover{color:var(--txt)}
.tab.on{color:var(--brand2);border-bottom-color:var(--brand)}
body.tab-municipios .mercado-only{display:none}

/* Controls */
.controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:16px 0;padding:13px 14px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.controls .grp{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.controls label{color:var(--muted);font-size:12px}
input[type=search],select{background:var(--surface2);border:1px solid var(--line);color:var(--txt);
  border-radius:9px;padding:8px 11px;font-size:13px;outline:none}
input[type=search]{min-width:230px}
input[type=search]:focus,select:focus{border-color:var(--brand)}
.chip{cursor:pointer;user-select:none;border:1px solid var(--line);background:var(--surface2);
  color:var(--muted);border-radius:999px;padding:6px 12px;font-size:12px;transition:.15s}
.chip:hover{border-color:var(--brand)}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.seg{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.seg button{background:var(--surface2);border:0;color:var(--muted);padding:8px 13px;font-size:12.5px;cursor:pointer}
.seg button.on{background:var(--brand);color:#fff}
.spacer{flex:1}
.btn{background:var(--surface2);border:1px solid var(--line);color:var(--txt);border-radius:9px;
  padding:8px 13px;font-size:12.5px;cursor:pointer}
.btn:hover{border-color:var(--brand)}

/* Panels */
.grid{display:grid;gap:14px}
.g2{grid-template-columns:1fr 1fr}
/* avatar / logo ao lado do nome */
.ava{position:relative;width:26px;height:26px;border-radius:6px;flex:0 0 26px;display:inline-grid;place-items:center;
  font-size:10.5px;font-weight:800;color:#fff;overflow:hidden;letter-spacing:.3px}
.ava .logo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.namecell2{display:flex;align-items:center;gap:9px}
.namecell2 .meta{display:flex;flex-direction:column;gap:1px;min-width:0}
.namecell2 .meta .cnpj{color:var(--faint);font-size:10.5px}
/* lista de participação de mercado */
.sharelist{display:flex;flex-direction:column;gap:9px;justify-content:center}
.sharerow{display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:11px}
.sharerow .sw{width:13px;height:13px;border-radius:4px}
.sharerow .nm{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sharerow .barbg{height:9px;background:var(--surface2);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-top:3px}
.sharerow .barfill{height:100%;border-radius:6px}
.sharerow .pct{font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums}
.shareflex{display:grid;grid-template-columns:340px 1fr;gap:24px;align-items:center}
@media(max-width:780px){.shareflex{grid-template-columns:1fr}}
.panel{background:linear-gradient(180deg,var(--surface),var(--surface2));border:1px solid var(--line);
  border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.panel h3{margin:0 0 2px;font-size:14.5px}
.panel .ph{color:var(--muted);font-size:11.5px;margin-bottom:12px}
.legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:10px}
.legend .it{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);cursor:default}
.legend .sw{width:11px;height:11px;border-radius:3px;display:inline-block}

/* SVG chart */
svg{display:block;width:100%;overflow:visible}
.axis text{fill:var(--faint);font-size:10.5px}
.axis line,.axis path{stroke:var(--line)}
.gridline{stroke:var(--line);stroke-dasharray:2 4;opacity:.5}
.dot{cursor:pointer}
.tt{position:fixed;pointer-events:none;background:#0b1428;border:1px solid #33476b;
  border-radius:10px;padding:11px 14px;font-size:13px;box-shadow:0 12px 34px rgba(0,0,0,.55);z-index:50;opacity:0;transition:opacity .1s;max-width:480px;color:#f4f7fc}
.tt b{color:#fff;font-size:14px;display:block;margin-bottom:3px}
.tt .row{display:flex;justify-content:space-between;gap:18px;color:#cdd8ec;font-weight:500}
.tt .row span:last-child{color:#fff;font-weight:700}
/* tooltip detalhado de município */
.tt-sub{color:#9fb0cc;font-size:11.5px;margin:-1px 0 8px}
.ttg{display:grid;grid-template-columns:11px minmax(0,1fr) auto 38px;gap:6px 12px;align-items:center}
.ttg .sw{width:10px;height:10px;border-radius:3px}
.ttg .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e6ecf7}
.ttg .v{text-align:right;color:#fff;font-weight:700;font-variant-numeric:tabular-nums}
.ttg .p{text-align:right;color:#9fb0cc;font-variant-numeric:tabular-nums}
.tt-total{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #33476b;
  margin-top:8px;padding-top:8px;color:#fff;font-weight:700}

/* Table */
.tablewrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:12.5px}
th,td{padding:9px 8px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}
th:first-child,td:first-child,th.l,td.l{text-align:left}
thead th{position:sticky;top:0;background:#0e1730;color:var(--muted);font-weight:600;cursor:pointer;
  user-select:none;z-index:2;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px}
thead th:hover{color:var(--txt)}
thead th .arr{opacity:.5;font-size:10px}
tbody tr:hover{background:rgba(59,130,246,.07)}
td.num{font-variant-numeric:tabular-nums}
.tag{display:inline-block;font-size:11px;font-weight:600;padding:3px 10px;border-radius:999px;border:0;color:#fff;white-space:nowrap}
.tag.erp{background:#2563eb}
.tag.soft{background:#0891b2}
.tag.other{background:#64748b}
.cbx{width:16px;height:16px;accent-color:var(--brand);cursor:pointer}
.namecell{display:flex;flex-direction:column;gap:1px;max-width:210px}
.namecell>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.namecell .cnpj{color:var(--faint);font-size:10.5px}
.miss{color:var(--faint)}
.barcell{position:relative;min-width:140px;padding-right:12px}
th[data-k="total"]{min-width:140px}
.barcell .bar{position:absolute;left:0;top:0;bottom:0;background:rgba(59,130,246,.16);border-radius:4px;z-index:0}
.barcell span{position:relative;z-index:1}
/* mapa */
:root{--mapnodata:#1b2540}
html[data-theme="light"]{--mapnodata:#e6ecf5}
.panelhead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:2px}
.panelhead h3{margin:0}
.mapwrap{position:relative}
#mapa{max-width:760px;margin:0 auto}
#mapa svg{width:100%;height:auto}
.muni-path{stroke:var(--surface);stroke-width:.35;cursor:pointer;transition:opacity .12s}
.muni-path:hover{stroke:var(--txt);stroke-width:1.1}
.muni-path.client{stroke:#fde047;stroke-width:1.3}
.muni-path.client:hover{stroke:#fff;stroke-width:1.8}
.muni-path.dim{opacity:.1}
.maplegend .lg[data-hl]{cursor:pointer;padding:2px 7px;border-radius:999px;border:1px solid transparent}
.maplegend .lg[data-hl]:hover{border-color:var(--line)}
.maplegend .lg.on{border-color:var(--brand);background:rgba(59,130,246,.14)}
.clibadge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.4px;color:#1a1205;
  background:var(--cc);padding:2px 8px;border-radius:999px}
.consdot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
tr.is-client td:nth-child(2){font-weight:700}
tr.is-client{background:rgba(253,224,71,.06)}
.cli-cons{background:var(--surface2);border:1px solid var(--line);color:var(--txt);border-radius:7px;padding:5px 9px;font-size:12.5px;min-width:150px}
.cli-del{padding:5px 10px;font-size:12px}
.cons-del{background:transparent;border:0;color:var(--red);cursor:pointer;font-size:14px;font-weight:800;line-height:1}
.cons-del:hover{color:#fff}
.maplegend{display:flex;flex-wrap:wrap;gap:4px 16px;justify-content:center;margin-top:12px;align-items:center}
.maplegend .lg{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}
.maplegend .lsw{width:16px;height:12px;border-radius:3px;display:inline-block}
.ordcol{color:var(--faint);font-variant-numeric:tabular-nums;width:42px;text-align:right}
.munlider{font-weight:600;color:var(--txt)}
.muted2{color:var(--muted)}
.sharepill{display:inline-block;font-weight:700;font-variant-numeric:tabular-nums;color:var(--brand2)}
.naok{color:#16a34a;font-weight:800}
footer{color:var(--faint);font-size:11.5px;margin-top:24px;text-align:center}
.pill-count{font-size:11.5px;color:var(--muted);margin-left:6px}
@media(max-width:920px){.kpis{grid-template-columns:repeat(2,1fr)}.g2{grid-template-columns:1fr}}
