/* ══════════════════════════════════════════════════════════════════
   SPIKECHARTING ADMIN V1 · panel real
   Tokens de marca reales del producto:
   Spike gradient #DC40FF → #811BFF · acc #A025FF
   dark  bg #070b12 panel #0c1320 line #182335 txt #d3dcea muted #7d8ba1
   light bg #f5f5f7 panel #ffffff line #e2e2e7 txt #1d1d1f muted #6e6e73
   ══════════════════════════════════════════════════════════════════ */
:root{
  --sA:#DC40FF; --sB:#811BFF; --sMid:#A94CFF; --acc:#A025FF;
  --up:#16c784; --dn:#ea3943; --warn:#FFB020;
  --grad:linear-gradient(135deg,var(--sA),var(--sB));
  --r:16px; --r2:12px; --r3:9px;
  --f:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --fm:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --ease:cubic-bezier(.22,.61,.36,1);
}
html.dark{
  --bg:#070b12; --bg2:#04070c; --panel:#0c1320; --line:#182335;
  --txt:#d3dcea; --txt2:#ffffff; --muted:#7d8ba1;
  --glass:rgba(18,26,42,.62); --glass2:rgba(12,19,32,.78);
  --hair:rgba(255,255,255,.07); --hair2:rgba(255,255,255,.12);
  --hov:rgba(255,255,255,.045); --shadow:0 24px 60px rgba(0,0,0,.55);
  --sheen:rgba(255,255,255,.06);
}
html.light{
  --bg:#f5f5f7; --bg2:#ececef; --panel:#ffffff; --line:#e2e2e7;
  --txt:#1d1d1f; --txt2:#000000; --muted:#6e6e73;
  --glass:rgba(255,255,255,.72); --glass2:rgba(255,255,255,.86);
  --hair:rgba(0,0,0,.08); --hair2:rgba(0,0,0,.13);
  --hov:rgba(0,0,0,.035); --shadow:0 18px 44px rgba(20,10,40,.13);
  --sheen:rgba(255,255,255,.7);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  margin:0;font-family:var(--f);background:var(--bg);color:var(--txt);
  font-size:13.5px;line-height:1.45;letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;overflow:hidden;
}
/* atmósfera: dos auroras muy tenues, fijas */
body::before,body::after{content:"";position:fixed;inset:auto;pointer-events:none;z-index:0;
  width:52vw;height:52vw;border-radius:50%;filter:blur(120px);opacity:.16}
body::before{background:var(--sA);top:-18vw;right:-10vw}
body::after{background:var(--sB);bottom:-22vw;left:-12vw;opacity:.13}
html.light body::before{opacity:.13} html.light body::after{opacity:.10}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
input,select{outline:none}
:focus-visible{outline:2px solid var(--sMid);outline-offset:2px;border-radius:6px}
::selection{background:rgba(220,64,255,.28)}
.mono{font-family:var(--fm);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.tnum{font-variant-numeric:tabular-nums}
.hide{display:none!important}

/* ═════ ARRANQUE ═════ */
/* Mientras se confirma la sesion: ni login ni panel a medio pintar. */
#boot{display:none;position:fixed;inset:0;z-index:95;place-items:center;background:var(--bg)}
html.reanudando #boot{display:grid}
html.reanudando #login{display:none!important}
.bootmark{width:52px;height:52px;border-radius:15px;background:var(--grad);display:grid;place-items:center;
  box-shadow:0 10px 30px rgba(160,37,255,.32);animation:bpulse 1.5s var(--ease) infinite}
.bootmark svg{width:26px;height:26px;fill:#fff}
@keyframes bpulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.93);opacity:.72}}

/* ═════ LOGIN ═════ */
#login{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;
  background:radial-gradient(1200px 700px at 50% -10%,rgba(129,27,255,.20),transparent 60%),var(--bg)}
.lbox{width:100%;max-width:352px;background:var(--glass);backdrop-filter:blur(28px) saturate(1.6);
  -webkit-backdrop-filter:blur(28px) saturate(1.6);border:1px solid var(--hair);border-radius:22px;
  box-shadow:var(--shadow);padding:34px 28px 26px;text-align:center;position:relative;overflow:hidden}
.lbox::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--sheen),transparent)}
.lmark{width:42px;height:42px;margin:0 auto 16px;border-radius:12px;background:var(--grad);
  display:grid;place-items:center;box-shadow:0 8px 24px rgba(160,37,255,.35)}
.lmark svg{width:22px;height:22px;fill:#fff}
.ltit{font-size:19px;font-weight:640;color:var(--txt2);letter-spacing:-.03em}
.lsub{font-size:12px;color:var(--muted);margin:5px 0 22px}
.fld{position:relative;margin-bottom:10px}
.fld input{width:100%;padding:12px 13px;background:var(--hov);border:1px solid var(--hair);
  border-radius:11px;font-size:13.5px;transition:border-color .18s,background .18s}
.fld input::placeholder{color:var(--muted)}
.fld input:focus{border-color:var(--sMid);background:transparent}
.btnp{width:100%;padding:12px;border-radius:11px;background:var(--grad);color:#fff;font-weight:600;
  font-size:13.5px;letter-spacing:-.01em;box-shadow:0 8px 22px rgba(129,27,255,.32);
  transition:transform .14s var(--ease),filter .18s;margin-top:6px}
.btnp:hover{filter:brightness(1.08)} .btnp:active{transform:scale(.985)}
.lnote{margin-top:16px;font-size:11px;color:var(--muted);line-height:1.5}
.lnote b{color:var(--txt);font-weight:600}

/* ═════ SHELL ═════ */
#app{position:relative;z-index:1;height:100%;display:grid;grid-template-columns:236px 1fr}
aside{border-right:1px solid var(--hair);background:var(--glass2);backdrop-filter:blur(24px) saturate(1.4);
  -webkit-backdrop-filter:blur(24px) saturate(1.4);display:flex;flex-direction:column;padding:18px 12px 12px}
.brand{display:flex;align-items:center;gap:10px;padding:2px 8px 20px}
.bmark{width:29px;height:29px;border-radius:9px;background:var(--grad);display:grid;place-items:center;flex:none;
  box-shadow:0 6px 16px rgba(160,37,255,.3)}
.bmark svg{width:15px;height:15px;fill:#fff}
.bname{font-size:13.5px;font-weight:640;color:var(--txt2);letter-spacing:-.02em;line-height:1.15}
.bname small{display:block;font-size:9.5px;font-weight:600;letter-spacing:.13em;color:var(--muted);text-transform:uppercase;margin-top:2px}
nav{display:flex;flex-direction:column;gap:2px}
.nv{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:var(--muted);
  font-size:13px;font-weight:500;position:relative;transition:color .16s,background .16s;text-align:left;width:100%}
.nv svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.nv:hover{background:var(--hov);color:var(--txt)}
.nv.on{color:var(--txt2);background:var(--hov);font-weight:600}
/* carril de energía: la señal de sección activa (mismo lenguaje visual que la ruta de referidos) */
.nv.on::before{content:"";position:absolute;left:-12px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;
  background:var(--grad);box-shadow:0 0 12px rgba(220,64,255,.55)}
.nvb{margin-left:auto;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:99px;
  background:rgba(220,64,255,.16);color:var(--sA)}
html.light .nvb{background:rgba(129,27,255,.12);color:var(--sB)}
.spacer{flex:1}
.who{border-top:1px solid var(--hair);padding:12px 10px 4px;display:flex;align-items:center;gap:10px}
.wav{width:28px;height:28px;border-radius:50%;background:var(--grad);display:grid;place-items:center;
  color:#fff;font-size:11.5px;font-weight:700;flex:none}
.wtx{min-width:0;flex:1}
.wtx b{display:block;font-size:12px;font-weight:600;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wtx span{display:block;font-size:10.5px;color:var(--muted)}
.wout{padding:6px;border-radius:8px;color:var(--muted);display:grid;place-items:center}
.wout:hover{background:var(--hov);color:var(--dn)}
.wout svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}

main{overflow:hidden;display:flex;flex-direction:column;min-width:0}
header{display:flex;align-items:center;gap:14px;padding:16px 26px;border-bottom:1px solid var(--hair);flex:none}
.htit{font-size:20px;font-weight:680;color:var(--txt2);letter-spacing:-.035em}
.hsub{font-size:11.5px;color:var(--muted);margin-top:1px}
.hact{margin-left:auto;display:flex;align-items:center;gap:8px}
.gbtn{padding:7px 12px;border-radius:10px;border:1px solid var(--hair);background:var(--glass);
  font-size:12.5px;font-weight:550;color:var(--txt);display:inline-flex;align-items:center;gap:7px;
  transition:border-color .16s,background .16s}
.gbtn:hover{border-color:var(--hair2);background:var(--hov)}
.gbtn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gbtn.pri{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 6px 18px rgba(129,27,255,.28)}
.gbtn.pri:hover{filter:brightness(1.08)}
.scroll{overflow-y:auto;overflow-x:hidden;padding:22px 26px 40px;flex:1;scrollbar-width:thin}
.scroll::-webkit-scrollbar{width:8px}
.scroll::-webkit-scrollbar-thumb{background:var(--hair2);border-radius:99px}

/* ═════ PANELES ═════ */
.card{background:var(--glass);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);
  border:1px solid var(--hair);border-radius:var(--r);position:relative;overflow:hidden}
.card::before{content:"";position:absolute;top:0;left:14px;right:14px;height:1px;
  background:linear-gradient(90deg,transparent,var(--sheen),transparent);pointer-events:none}
.chd{display:flex;align-items:baseline;gap:10px;padding:15px 17px 0}
.chd h3{margin:0;font-size:13px;font-weight:640;color:var(--txt2);letter-spacing:-.02em}
.chd span{font-size:11px;color:var(--muted)}
.chd .lnk{margin-left:auto;font-size:11.5px;color:var(--sMid);font-weight:550}

.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}
.kpi{padding:15px 16px 14px}
.kpi i{display:block;font-style:normal;font-size:10.5px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted)}
.kpi b{display:block;font-size:29px;font-weight:660;color:var(--txt2);letter-spacing:-.045em;margin-top:7px;line-height:1}
.kpi em{font-style:normal;font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:5px;margin-top:7px}
.kpi em.up{color:var(--up)} .kpi em.dn{color:var(--dn)}
.grid2{display:grid;grid-template-columns:1.55fr 1fr;gap:12px;margin-bottom:16px}

/* gráficas */
.chart{padding:14px 17px 8px}
.chart svg{display:block;width:100%;height:186px;overflow:visible}
.gx{font-size:9.5px;fill:var(--muted);font-family:var(--fm)}
.gl{stroke:var(--hair);stroke-width:1;stroke-dasharray:2 4}
.bar{fill:url(#gBar);transition:opacity .14s}
.bar:hover{opacity:.75;cursor:default}
.tip{position:fixed;z-index:70;pointer-events:none;padding:6px 9px;border-radius:8px;font-size:11.5px;
  background:var(--glass2);backdrop-filter:blur(14px);border:1px solid var(--hair2);box-shadow:var(--shadow);
  color:var(--txt2);opacity:0;transition:opacity .12s;white-space:nowrap}
.tip.on{opacity:1}

/* ═════ TABLAS ═════ */
table{width:100%;border-collapse:collapse}
thead th{text-align:left;font-size:10.5px;font-weight:640;letter-spacing:.085em;text-transform:uppercase;
  color:var(--muted);padding:11px 14px;border-bottom:1px solid var(--hair);white-space:nowrap;position:sticky;top:0;
  background:var(--glass2);backdrop-filter:blur(14px);z-index:2}
tbody td{padding:11px 14px;border-bottom:1px solid var(--hair);font-size:12.8px;white-space:nowrap}
tbody tr{transition:background .13s}
tbody tr:hover{background:var(--hov);cursor:pointer}
tbody tr:last-child td{border-bottom:0}
.uc{display:flex;align-items:center;gap:10px;min-width:0}
.uav{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;
  color:#fff;flex:none;background:var(--grad)}
.un{font-weight:570;color:var(--txt2);overflow:hidden;text-overflow:ellipsis}
.ue{font-size:11px;color:var(--muted)}
.pill{display:inline-flex;align-items:center;gap:5px;padding:2.5px 8px;border-radius:99px;font-size:10.5px;
  font-weight:650;letter-spacing:.01em;border:1px solid transparent}
.pill::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.p-act{color:var(--up);background:rgba(22,199,132,.11);border-color:rgba(22,199,132,.2)}
.p-sus{color:var(--warn);background:rgba(255,176,32,.11);border-color:rgba(255,176,32,.22)}
.p-blo{color:var(--dn);background:rgba(234,57,67,.11);border-color:rgba(234,57,67,.22)}
.plan{font-size:10.5px;font-weight:680;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.plan.pro{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tk{font-family:var(--fm);font-variant-numeric:tabular-nums;font-weight:600;color:var(--txt2)}
.dim{color:var(--muted)}
/* dato que aún no existe en la base — se marca cuando el interruptor está activo */
body.showgaps .gap{color:var(--warn)!important;text-decoration:underline dotted;text-underline-offset:3px}

/* toolbar de usuarios */
.tools{display:flex;align-items:center;gap:9px;margin-bottom:12px;flex-wrap:wrap}
.search{flex:1;min-width:220px;position:relative}
.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:15px;height:15px;
  fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round}
.search input{width:100%;padding:9px 13px 9px 35px;border-radius:11px;border:1px solid var(--hair);
  background:var(--glass);font-size:13px;transition:border-color .16s}
.search input:focus{border-color:var(--sMid)}
.segs{display:flex;gap:2px;padding:3px;border-radius:11px;background:var(--hov);border:1px solid var(--hair)}
.seg{padding:6px 12px;border-radius:8px;font-size:12px;font-weight:550;color:var(--muted);transition:all .15s}
.seg:hover{color:var(--txt)}
.seg.on{background:var(--panel);color:var(--txt2);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.14)}
html.dark .seg.on{background:rgba(255,255,255,.09)}
.tgl{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted);cursor:pointer;user-select:none}
.tgl input{appearance:none;width:30px;height:17px;border-radius:99px;background:var(--hair2);position:relative;
  transition:background .18s;cursor:pointer;margin:0}
.tgl input::after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;
  background:#fff;transition:transform .18s var(--ease);box-shadow:0 1px 3px rgba(0,0,0,.3)}
.tgl input:checked{background:var(--warn)}
.tgl input:checked::after{transform:translateX(13px)}
.empty{padding:52px 20px;text-align:center;color:var(--muted);font-size:13px}
.empty b{display:block;color:var(--txt2);font-weight:600;font-size:14px;margin-bottom:5px}

/* ═════ DRAWER ═════ */
#scrim{position:fixed;inset:0;z-index:50;background:rgba(2,4,9,.5);backdrop-filter:blur(3px);opacity:0;
  transition:opacity .24s var(--ease);pointer-events:none}
#scrim.on{opacity:1;pointer-events:auto}
#drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100vw;z-index:60;
  background:var(--glass2);backdrop-filter:blur(34px) saturate(1.7);-webkit-backdrop-filter:blur(34px) saturate(1.7);
  border-left:1px solid var(--hair);box-shadow:var(--shadow);transform:translateX(102%);
  transition:transform .34s var(--ease);display:flex;flex-direction:column}
#drawer.on{transform:none}
.dhd{padding:20px 20px 16px;border-bottom:1px solid var(--hair);display:flex;gap:13px;align-items:flex-start}
.dav{width:46px;height:46px;border-radius:50%;background:var(--grad);display:grid;place-items:center;
  color:#fff;font-size:17px;font-weight:680;flex:none}
.dnm{font-size:16.5px;font-weight:650;color:var(--txt2);letter-spacing:-.025em}
.dml{font-size:12px;color:var(--muted);margin-top:1px}
.dx{margin-left:auto;padding:6px;border-radius:8px;color:var(--muted)}
.dx:hover{background:var(--hov);color:var(--txt)}
.dx svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.dbody{flex:1;overflow-y:auto;padding:16px 20px 28px;scrollbar-width:thin}
.dbody::-webkit-scrollbar{width:7px}
.dbody::-webkit-scrollbar-thumb{background:var(--hair2);border-radius:99px}
.sect{font-size:10.5px;font-weight:650;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  margin:20px 0 9px;display:flex;align-items:center;gap:8px}
.sect:first-child{margin-top:0}
.sect::after{content:"";flex:1;height:1px;background:var(--hair)}
.rows{display:grid;gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:var(--r2);overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:9px 13px;background:var(--panel);font-size:12.5px}
html.dark .row{background:rgba(255,255,255,.025)}
.row i{font-style:normal;color:var(--muted);flex:none;width:112px;font-size:11.5px}
.row b{font-weight:560;color:var(--txt2);margin-left:auto;text-align:right;overflow:hidden;text-overflow:ellipsis}
.tkbox{padding:15px 16px;border-radius:var(--r2);border:1px solid var(--hair);
  background:linear-gradient(135deg,rgba(220,64,255,.10),rgba(129,27,255,.05));text-align:center}
.tkbox b{display:block;font-family:var(--fm);font-size:31px;font-weight:640;color:var(--txt2);letter-spacing:-.045em;line-height:1}
.tkbox i{font-style:normal;font-size:10.5px;font-weight:640;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block;margin-top:6px}
.acts{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.abtn{padding:7px 12px;border-radius:9px;border:1px solid var(--hair);background:var(--hov);font-size:12px;
  font-weight:560;color:var(--txt);transition:all .15s}
.abtn:hover{border-color:var(--sMid);color:var(--txt2)}
.abtn.dgr:hover{border-color:var(--dn);color:var(--dn)}
.abtn.ok:hover{border-color:var(--up);color:var(--up)}
.abtn.wide{flex:1;text-align:center}
.mini{margin-top:9px;display:flex;gap:7px}
.mini input{flex:1;padding:8px 11px;border-radius:9px;border:1px solid var(--hair);background:var(--hov);font-size:12.5px}
.mini input:focus{border-color:var(--sMid)}
.led{display:grid;gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:var(--r2);overflow:hidden}
.le{display:flex;align-items:center;gap:10px;padding:9px 13px;background:var(--panel);font-size:12.2px}
html.dark .le{background:rgba(255,255,255,.025)}
.le i{font-style:normal;color:var(--muted);font-size:11px;flex:none;width:64px}
.le b{margin-left:auto;font-family:var(--fm);font-weight:640}
.le b.pos{color:var(--up)} .le b.neg{color:var(--dn)}

/* ═════ CAMPAÑAS ═════ */
.cbuild{display:grid;grid-template-columns:1fr 320px;gap:12px;align-items:start}
.fgrp{padding:16px 17px}
.lab{font-size:11px;font-weight:620;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
  display:block;margin:15px 0 7px}
.lab:first-child{margin-top:0}
.inp{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--hair);background:var(--hov);font-size:13px}
.inp:focus{border-color:var(--sMid)}
.opts{display:grid;gap:7px}
.opt{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--hair);
  background:var(--hov);font-size:12.8px;cursor:pointer;transition:border-color .16s,background .16s}
.opt:hover{border-color:var(--hair2)}
.opt.on{border-color:var(--sMid);background:linear-gradient(135deg,rgba(220,64,255,.10),rgba(129,27,255,.05))}
.dot{width:15px;height:15px;border-radius:50%;border:1.6px solid var(--hair2);flex:none;position:relative}
.opt.on .dot{border-color:var(--sA)}
.opt.on .dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--grad)}
.dates{display:flex;gap:8px;margin-top:8px}
.dates input{flex:1;padding:9px 11px;border-radius:9px;border:1px solid var(--hair);background:var(--hov);font-size:12.5px}
.prev{padding:18px 17px;position:sticky;top:0}
.pnum{font-family:var(--fm);font-size:38px;font-weight:660;color:var(--txt2);letter-spacing:-.05em;line-height:1;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.plbl{font-size:12.5px;color:var(--muted);margin-top:6px}
.ptot{margin-top:15px;padding-top:14px;border-top:1px solid var(--hair);display:flex;align-items:baseline;gap:8px}
.ptot b{font-family:var(--fm);font-size:20px;font-weight:640;color:var(--txt2);letter-spacing:-.03em}
.ptot span{font-size:11.5px;color:var(--muted)}
/* barra de impacto */
.imp{height:6px;border-radius:99px;background:var(--hair);overflow:hidden;margin-top:14px}
.impf{height:100%;border-radius:99px;background:var(--grad);width:0;transition:width .5s var(--ease)}
.impl{font-size:10.5px;color:var(--muted);margin-top:7px;display:flex;justify-content:space-between}

/* hold-to-confirm: acción masiva irreversible */
.hold{position:relative;overflow:hidden;width:100%;padding:12px;border-radius:11px;color:#fff;font-weight:620;
  font-size:13px;background:var(--grad);box-shadow:0 8px 22px rgba(129,27,255,.3);margin-top:16px;
  user-select:none;touch-action:none}
.hold span{position:relative;z-index:2}
.holdf{position:absolute;inset:0;background:rgba(255,255,255,.26);width:0;z-index:1}
.hold:disabled{opacity:.4;box-shadow:none;cursor:not-allowed}

/* ═════ ACTIVIDAD ═════ */
.logl{display:grid;gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:var(--r);overflow:hidden}
.lg{display:flex;align-items:flex-start;gap:12px;padding:12px 15px;background:var(--panel);font-size:12.8px}
html.dark .lg{background:rgba(255,255,255,.022)}
.lgi{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;flex:none;margin-top:1px}
.lgi svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.i-tk{background:rgba(220,64,255,.13);color:var(--sA)}
.i-bl{background:rgba(255,176,32,.13);color:var(--warn)}
.i-cp{background:rgba(129,27,255,.14);color:var(--sMid)}
.i-ok{background:rgba(22,199,132,.13);color:var(--up)}
.lgt{flex:1;min-width:0}
.lgt b{font-weight:600;color:var(--txt2)}
.lgt em{font-style:normal;color:var(--muted)}
.lgt small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.lgw{font-family:var(--fm);font-size:11px;color:var(--muted);flex:none;text-align:right}

/* ═════ CONFIG ═════ */
.cfgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:99px;font-size:10.5px;
  font-weight:650;background:var(--hov);border:1px solid var(--hair);color:var(--muted)}
.chip.own{background:var(--grad);color:#fff;border-color:transparent}
.note{padding:13px 15px;border-radius:var(--r2);border:1px solid rgba(255,176,32,.28);
  background:rgba(255,176,32,.07);font-size:12.2px;color:var(--txt);line-height:1.55}
.note b{color:var(--warn)}

/* ═════ MODAL CONFIRMAR ═════ */
#modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;
  background:rgba(2,4,9,.55);backdrop-filter:blur(5px);opacity:0;pointer-events:none;transition:opacity .2s}
#modal.on{opacity:1;pointer-events:auto}
.mbox{width:100%;max-width:392px;background:var(--glass2);backdrop-filter:blur(30px) saturate(1.6);
  border:1px solid var(--hair2);border-radius:20px;box-shadow:var(--shadow);padding:24px 24px 20px;
  transform:scale(.96);transition:transform .22s var(--ease)}
#modal.on .mbox{transform:none}
.mic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;margin-bottom:14px}
.mic svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.mtt{font-size:16.5px;font-weight:650;color:var(--txt2);letter-spacing:-.025em}
.mtx{font-size:13px;color:var(--muted);margin-top:7px;line-height:1.55}
.mtx b{color:var(--txt);font-weight:600}
.mrow{display:flex;gap:8px;margin-top:20px}
.mrow button{flex:1;padding:10.5px;border-radius:11px;font-size:13px;font-weight:600}
.mcx{border:1px solid var(--hair);background:var(--hov);color:var(--txt)}
.mcx:hover{background:transparent;border-color:var(--hair2)}
.mok{background:var(--grad);color:#fff;box-shadow:0 6px 18px rgba(129,27,255,.3)}
.mok.dgr{background:linear-gradient(135deg,#ff5a63,#d0212c);box-shadow:0 6px 18px rgba(234,57,67,.3)}
.mok:hover{filter:brightness(1.08)}

/* ═════ TOAST ═════ */
#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,14px);z-index:95;opacity:0;
  transition:all .26s var(--ease);pointer-events:none;display:flex;align-items:center;gap:9px;
  padding:11px 16px;border-radius:13px;background:var(--glass2);backdrop-filter:blur(20px);
  border:1px solid var(--hair2);box-shadow:var(--shadow);font-size:13px;font-weight:550;color:var(--txt2);max-width:min(92vw,460px)}
#toast.on{opacity:1;transform:translate(-50%,0)}
#toast .tk{color:var(--sA)}
.tsdot{width:7px;height:7px;border-radius:50%;background:var(--up);flex:none;box-shadow:0 0 10px currentColor}

/* sello de mockup */
#stamp{font-size:9.5px;font-weight:650;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  background:var(--hov);border:1px solid var(--hair);padding:5px 10px;border-radius:99px;user-select:none}
@media (max-width:820px){#stamp{display:none}}

/* ═════ RESPONSIVE ═════ */
@media (max-width:1180px){
  .kpis{grid-template-columns:repeat(3,1fr)}
  .grid2{grid-template-columns:1fr}
  .cbuild{grid-template-columns:1fr}
  .prev{position:static}
}
@media (max-width:820px){
  #app{grid-template-columns:1fr}
  aside{position:fixed;left:0;top:0;bottom:0;width:236px;z-index:65;transform:translateX(-102%);
    transition:transform .3s var(--ease)}
  aside.on{transform:none}
  #menu{display:grid!important}
  header{padding:13px 16px}
  .scroll{padding:16px 16px 40px}
  .kpis{grid-template-columns:repeat(2,1fr);gap:9px}
  .htit{font-size:17px}
  #drawer{width:100%}
  .tblwrap{overflow-x:auto}
  table{min-width:760px}
}
#menu{display:none;place-items:center;padding:7px;border-radius:9px;border:1px solid var(--hair);background:var(--glass)}
#menu svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition-duration:.01ms!important}}
