*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#080a0f; --panel:#10141d; --panel2:#151a25; --line:#1e2432;
  --txt:#e8ecf4; --dim:#7c8aa3; --blue:#2e6bff; --blue2:#5b8cff;
  --green:#22c55e; --red:#ef4444; --amber:#f59e0b;
}
body{background:radial-gradient(900px 500px at 12% -10%,#16233f 0%,transparent 60%),var(--bg);color:var(--txt);font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;padding:0 18px 40px;min-height:100vh}
.wrap{max-width:1320px;margin:0 auto}
header{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 0 12px;background:linear-gradient(180deg,var(--bg) 55%,transparent);backdrop-filter:blur(6px)}
h1{font-size:16px;font-weight:800;letter-spacing:-.3px;margin-right:auto;display:flex;align-items:center;gap:8px}
h1 b{background:linear-gradient(120deg,#5b8cff,#2e6bff);-webkit-background-clip:text;background-clip:text;color:transparent}
select,input,button{background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:8px 11px;font-size:13px;font-family:inherit;outline:none;transition:.15s}
select:hover,input:hover{border-color:#2c3546}
select:focus,input:focus{border-color:var(--blue)}
button{cursor:pointer;font-weight:600}
button.p{background:var(--blue);border-color:var(--blue);color:#fff}
button.p:hover{background:#3d78ff}
button.ghost{background:transparent}
.seg{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.seg button{border:0;border-radius:0;padding:8px 12px;background:transparent;color:var(--dim);font-size:12.5px}
.seg button.on{background:var(--blue);color:#fff}
.tabs{display:flex;gap:6px;margin:6px 0 16px;flex-wrap:wrap}
.tab{padding:8px 14px;border-radius:10px;background:var(--panel);border:1px solid var(--line);cursor:pointer;font-size:13px;font-weight:600;color:var(--dim)}
.tab:hover{color:var(--txt)}
.tab.on{background:linear-gradient(180deg,#2e6bff,#2454cc);border-color:#2e6bff;color:#fff;box-shadow:0 6px 18px -8px rgba(46,107,255,.9)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.card{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:14px;padding:13px 15px;position:relative;overflow:hidden}
.card .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--dim);margin-bottom:6px;font-weight:700}
.card .v{font-size:25px;font-weight:800;letter-spacing:-1px;line-height:1.05}
.card .s{font-size:11px;color:var(--dim);margin-top:4px}
.card .bar{position:absolute;left:0;bottom:0;height:3px;background:linear-gradient(90deg,#2e6bff,#5b8cff)}
.delta{font-size:11px;font-weight:700;padding:1px 6px;border-radius:6px;margin-left:6px;vertical-align:middle}
.up{background:rgba(34,197,94,.14);color:#4ade80}
.down{background:rgba(239,68,68,.14);color:#f87171}
table{width:100%;border-collapse:collapse;font-size:13px;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.7px;color:var(--dim);padding:10px 12px;background:var(--panel2);border-bottom:1px solid var(--line);font-weight:700;white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid #14181f;vertical-align:middle}
tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#121826}
.num{font-variant-numeric:tabular-nums;font-weight:700;text-align:right}
th.num{text-align:right}
.dim{color:var(--dim)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:7px;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:pl 1.8s infinite}
@keyframes pl{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.badge{display:inline-block;padding:2px 8px;border-radius:7px;font-size:10.5px;font-weight:800;letter-spacing:.3px;background:#1b2230;color:#93a0b8}
.badge.b{background:rgba(46,107,255,.15);color:#8ab0ff}
.badge.g{background:rgba(34,197,94,.14);color:#4ade80}
.flex{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.flex>.card{flex:1;min-width:250px}
.hide{display:none!important}
#heatWrap{position:relative;overflow:hidden;border-radius:14px;border:1px solid var(--line);background:#0a0c11;margin-top:12px;max-height:78vh;overflow-y:auto}
#heatFrame{border:0;display:block;background:#fff}
#heatCanvas{position:absolute;left:0;top:0;pointer-events:none;mix-blend-mode:screen}
.heatbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.legend{display:flex;gap:14px;font-size:11px;color:var(--dim);align-items:center}
.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}
svg.spark{display:block;width:100%;height:60px}
.funnel{display:flex;flex-direction:column;gap:7px}
.fstep{display:flex;align-items:center;gap:10px}
.fbar{height:26px;border-radius:7px;background:linear-gradient(90deg,#2e6bff,#5b8cff);min-width:4px;transition:.4s}
.fmeta{font-size:12px;color:var(--dim);min-width:150px}
.fmeta b{color:var(--txt);font-size:13px}
.err{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#ffb4b4;padding:10px 13px;border-radius:12px;margin-bottom:12px;font-size:13px}
.empty{background:var(--panel);border:1px dashed var(--line);border-radius:14px;padding:28px;text-align:center;color:var(--dim);font-size:13px}
.livebig{display:flex;align-items:baseline;gap:10px}
.livebig .n{font-size:42px;font-weight:800;letter-spacing:-2px;color:#4ade80}
.bars{display:flex;align-items:flex-end;gap:2px;height:46px;margin-top:8px}
.bars i{flex:1;background:#233457;border-radius:2px 2px 0 0;min-height:2px;transition:.3s}
.bars i.hi{background:linear-gradient(180deg,#5b8cff,#2e6bff)}
.hm{display:grid;grid-template-columns:26px repeat(24,1fr);gap:2px;align-items:center;font-size:10px;color:var(--dim)}
.hm .c{height:15px;border-radius:3px;background:#141a26}
.hm .c.on{background:#2e6bff}
.hm .c.hot{background:#5b8cff}
.mono{font-variant-numeric:tabular-nums}
/* --- ajustes v2 --- */
#kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1000px){#kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){#kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
#kpis .card .v{font-size:23px}
.hm .c{height:18px;border-radius:4px}
.hm{gap:3px}
.hm>div:first-child{height:18px}
#minuteBars{height:52px;border-bottom:1px solid #1c2331}
.hm .c:hover{outline:2px solid #5b8cff}
/* --- mapa de calor v2 --- */
.heatbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.heatbar .seg button{padding:7px 12px}
.legend .sw{display:inline-flex;gap:0;border-radius:6px;overflow:hidden;margin-right:6px}
.legend .sw i{width:22px;height:11px;display:block}
#heatWrap{position:relative;overflow:auto;border-radius:14px;border:1px solid var(--line);background:#0a0c11;max-height:80vh}
#heatStage{position:relative}
#heatCanvas{position:absolute;left:0;top:0;pointer-events:none}
.zone{position:absolute;right:0;font-size:10px;font-weight:800;padding:1px 5px;border-radius:4px;background:rgba(0,0,0,.72);color:#fff;pointer-events:none;white-space:nowrap}
