[hidden]{display:none!important}:root{--bg:#061219;--bg2:#0a2029;--panel:#0b1c25;--panel2:#102a35;--line:rgba(255,255,255,.08);--text:#ecfbff;--muted:#8eacb6;--accent:#28dbc5;--accent2:#63f0dd;--blue:#4ca8ff;--danger:#ff6f79;--warn:#ffc85e;--ok:#54dc8c;--shadow:0 18px 48px rgba(0,0,0,.28)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(circle at 15% 0%,#0b3140 0,transparent 28%),linear-gradient(145deg,var(--bg),#071a23 55%,#041017);color:var(--text);min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 4vw;background:rgba(5,17,24,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.brand-wrap{display:flex;align-items:center;gap:12px}.logo{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-weight:900;background:linear-gradient(135deg,var(--accent),var(--blue));color:#01231f;box-shadow:0 8px 24px rgba(40,219,197,.18)}.brand{font-weight:900;font-size:20px;letter-spacing:-.3px}.brand span{color:var(--accent)}.sub{font-size:12px;color:var(--muted);margin-top:2px}.top-actions{display:flex;gap:9px}.wrap{width:min(1480px,94vw);margin:22px auto 50px}.hero{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:25px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,rgba(17,55,68,.85),rgba(8,30,40,.85));box-shadow:var(--shadow);margin-bottom:16px}.eyebrow{font-size:11px;letter-spacing:1.4px;color:var(--accent);font-weight:800}.hero h1{font-size:clamp(25px,3.4vw,43px);line-height:1.05;margin:8px 0 10px;letter-spacing:-1.4px;max-width:720px}.hero p{margin:0;color:#a6c3cc;max-width:760px}.hero-status{min-width:260px;display:flex;gap:11px;align-items:center;padding:13px 15px;border:1px solid var(--line);border-radius:16px;background:rgba(3,15,21,.48)}.hero-status strong,.hero-status small{display:block}.hero-status small{color:var(--muted);font-size:11px;margin-top:3px}.dot{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 5px rgba(255,255,255,.04)}.dot.good{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.stale{background:var(--danger)}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}.stats article{padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,var(--panel),var(--panel2));box-shadow:var(--shadow)}.stats span,.stats small{display:block}.stats span{font-size:12px;color:var(--muted)}.stats strong{display:block;font-size:28px;margin:5px 0 3px}.stats small{font-size:11px;color:#6f939e}.alert-card strong{color:#ff9299}.tabs{display:flex;gap:7px;overflow:auto;padding:4px;margin-bottom:14px;border:1px solid var(--line);border-radius:15px;background:rgba(8,26,34,.8)}.tab{white-space:nowrap;background:transparent;color:#8fb0bb;border:0;padding:10px 14px;border-radius:11px;font-weight:800;cursor:pointer}.tab.active{background:#163744;color:var(--text)}.tabpage{display:none}.tabpage.active{display:block}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{padding:18px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,var(--panel),#091a23);box-shadow:var(--shadow);margin-bottom:16px}.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px}.panel h2{margin:0 0 4px;font-size:17px}.panel p{margin:0;color:var(--muted);font-size:12px}.pill{font-size:11px;font-weight:900;color:#b7cbd2;background:#142e39;border:1px solid var(--line);padding:6px 9px;border-radius:999px}.pill.ok{color:#88f1b1;background:rgba(84,220,140,.1)}button,input,select,textarea{font:inherit}.primary,.secondary,.ghost,.danger{border:0;border-radius:11px;padding:10px 13px;font-weight:850;cursor:pointer}.primary{background:linear-gradient(135deg,var(--accent),#70f5df);color:#02241f}.secondary{background:#17313d;color:var(--text);border:1px solid var(--line)}.ghost{background:transparent;color:#b7d2da;border:1px solid var(--line)}.danger{background:rgba(255,111,121,.12);color:#ff969d;border:1px solid rgba(255,111,121,.2)}.icon{background:transparent;border:0;color:#9eb8c1;font-size:19px;cursor:pointer}.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.flow div{display:flex;gap:10px;padding:13px;background:#0c2029;border:1px solid var(--line);border-radius:14px;color:#c9dee4;font-size:12px}.flow b{display:grid;place-items:center;flex:0 0 27px;height:27px;border-radius:9px;background:rgba(40,219,197,.12);color:var(--accent)}.toolbar{display:grid;grid-template-columns:1fr 210px;gap:10px;margin-bottom:12px}input,select,textarea{width:100%;background:#06151c;color:var(--text);border:1px solid #1f3c47;border-radius:11px;padding:10px 11px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px}table{width:100%;min-width:1100px;border-collapse:collapse}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);font-size:12px}th{position:sticky;top:0;background:#0d222c;color:#9fc0ca}td small{color:#7697a2}.status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900}.status.active{color:#8ff1b6;background:rgba(84,220,140,.11)}.status.soon{color:#ffd980;background:rgba(255,200,94,.11)}.status.expired{color:#ff959c;background:rgba(255,111,121,.11)}.row-actions{display:flex;gap:6px}.row-actions button{padding:7px 9px;font-size:11px}.actions-row{display:flex;gap:8px;margin-top:10px}.micro{font-size:11px;color:#7396a1;margin-top:9px}.empty-state{color:#7898a2;padding:22px 6px;font-size:13px}.alert-item,.expiry-item,.history-item,.match-item{padding:12px;border:1px solid var(--line);border-radius:13px;background:#0b2029;margin-bottom:8px}.alert-item.extra{border-color:rgba(255,111,121,.34)}.alert-item.missing{border-color:rgba(255,200,94,.34)}.alert-item.expired{border-color:rgba(255,111,121,.34)}.alert-item strong,.expiry-item strong,.history-item strong,.match-item strong{display:block;font-size:12px}.alert-item span,.expiry-item span,.history-item span,.match-item span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.notice{padding:12px 13px;border-radius:12px;background:rgba(40,219,197,.07);border:1px solid rgba(40,219,197,.2);color:#bcebe5;font-size:12px}.notice.warn{margin-top:12px;background:rgba(255,200,94,.07);border-color:rgba(255,200,94,.18);color:#ffe2a1}.plan-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.plan{padding:13px;border:1px solid var(--line);border-radius:13px;background:#0a2029}.plan strong{display:block}.plan span{font-size:11px;color:var(--muted)}.stack{display:flex;flex-direction:column;gap:9px}.toast{position:fixed;right:18px;bottom:18px;z-index:100;transform:translateY(20px);opacity:0;pointer-events:none;background:#102c37;color:#eafcff;border:1px solid var(--line);padding:12px 14px;border-radius:13px;box-shadow:var(--shadow);transition:.2s}.toast.show{opacity:1;transform:none}dialog{width:min(720px,94vw);border:1px solid #24434e;border-radius:20px;background:#0a1b24;color:var(--text);box-shadow:0 35px 95px rgba(0,0,0,.58)}dialog::backdrop{background:rgba(0,0,0,.7)}.dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.dialog-head h3{margin:0 0 4px}.dialog-head p{margin:0 0 16px;color:var(--muted);font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}label{display:flex;flex-direction:column;gap:6px;color:#94afb8;font-size:11px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}@media(max-width:1050px){.stats{grid-template-columns:repeat(3,1fr)}.flow{grid-template-columns:1fr 1fr}}@media(max-width:780px){.topbar{align-items:flex-start}.top-actions{flex-direction:column}.grid2{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.hero{align-items:flex-start;flex-direction:column}.hero-status{width:100%}.toolbar{grid-template-columns:1fr}.responsive{align-items:flex-start;flex-direction:column}.responsive button{width:100%}}@media(max-width:520px){.wrap{width:95vw;margin-top:12px}.topbar{padding:11px 3vw}.top-actions .ghost{display:none}.brand{font-size:18px}.sub{display:none}.logo{width:38px;height:38px}.stats{gap:8px}.stats article{padding:13px}.stats strong{font-size:24px}.hero{padding:18px}.hero h1{font-size:28px}.flow{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.panel{padding:13px}.plan-grid{grid-template-columns:1fr}.actions-row{flex-direction:column}}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0%,#0b3140 0,transparent 35%),linear-gradient(145deg,#061219,#041017)}.auth-card{width:min(430px,94vw);padding:30px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,var(--panel),#081820);box-shadow:0 30px 90px rgba(0,0,0,.42)}.auth-logo{width:58px;height:58px;display:grid;place-items:center;border-radius:17px;margin-bottom:18px;background:linear-gradient(135deg,var(--accent),var(--blue));color:#02221f;font-weight:950;font-size:20px}.auth-card h1{margin:8px 0;font-size:29px;letter-spacing:-.7px}.auth-card>p{margin:0 0 22px;color:var(--muted);line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form button{width:100%}.login-error{min-height:18px;color:#ff969d;font-size:12px}.auth-note{display:block;margin-top:17px;color:#6f939e}.user-chip{display:flex;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;color:#9fc0ca;font-size:11px;background:#0b2029}.firebase-info>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid var(--line)}.firebase-info>div:last-child{border-bottom:0}.firebase-info span{color:var(--muted);font-size:12px}.firebase-info strong{font-size:12px;text-align:right}@media(max-width:780px){.user-chip{display:none}}
\n/* Firebase live status v3.3 */\n.firebase-boot-status{margin-top:14px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:800;padding:9px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}\n.firebase-boot-status.checking{color:#ffd875}.firebase-boot-status.connected{color:#69e89d;background:rgba(65,211,125,.08);border-color:rgba(65,211,125,.22)}.firebase-boot-status.error{color:#ff9399;background:rgba(255,107,114,.08);border-color:rgba(255,107,114,.22)}\n.firebase-status-dot{width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor;display:inline-block;flex:0 0 auto}\n.firebase-boot-detail{min-height:16px;margin-top:7px;text-align:center;font-size:11px;color:var(--muted)}\n.firebase-live-chip{display:flex;align-items:center;gap:7px;color:#69e89d;background:rgba(65,211,125,.08);border:1px solid rgba(65,211,125,.2);border-radius:999px;padding:8px 10px;font-size:12px;font-weight:800;white-space:nowrap}\n
.status.own{background:rgba(74,222,128,.14);color:#86efac;border:1px solid rgba(74,222,128,.25)}


/* Escáner de dispositivos v3.8 */
.scanner-panel{border-color:rgba(40,219,197,.2)}
.scanner-head-actions{display:flex;align-items:center;gap:8px}
.scanner-help{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 0 14px}
.scanner-help span{font-size:11px;color:#a7c1c9;background:#0a2029;border:1px solid var(--line);padding:7px 9px;border-radius:999px}
.scan-device-list{display:flex;flex-direction:column;gap:9px}
.scan-device{display:grid;grid-template-columns:minmax(240px,1.2fr) minmax(220px,1fr) auto;gap:14px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:15px;background:#091d26}
.scan-device.mine{border-color:rgba(84,220,140,.25);background:rgba(84,220,140,.045)}
.scan-device.assigned{border-color:rgba(76,168,255,.24);background:rgba(76,168,255,.04)}
.scan-device.unassigned{border-color:rgba(255,111,121,.34);background:rgba(255,111,121,.045)}
.scan-device.expired{border-color:rgba(255,200,94,.30);background:rgba(255,200,94,.045)}
.scan-device-main{display:flex;align-items:center;gap:10px;min-width:0}
.scan-device-main>div:last-child{min-width:0}
.scan-device-main strong{display:block;font-size:12px;overflow-wrap:anywhere}
.scan-device-main span{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.scan-device-icon{width:30px;height:30px;flex:0 0 30px;border-radius:10px;display:grid;place-items:center;font-weight:950;background:#14313c;color:#bfe7ee}
.scan-device.mine .scan-device-icon{background:rgba(84,220,140,.13);color:#79e9a4}
.scan-device.assigned .scan-device-icon{background:rgba(76,168,255,.13);color:#7fc1ff}
.scan-device.unassigned .scan-device-icon{background:rgba(255,111,121,.13);color:#ff969d}
.scan-device.expired .scan-device-icon{background:rgba(255,200,94,.13);color:#ffd979}
.scan-device-state{min-width:0}
.scan-device-state small{display:block;color:var(--muted);font-size:10px;margin-top:5px;overflow-wrap:anywhere}
.scan-badge{display:inline-block;font-size:9px;font-weight:950;letter-spacing:.5px;border-radius:999px;padding:5px 7px}
.scan-badge.mine{color:#86efac;background:rgba(84,220,140,.12)}
.scan-badge.assigned{color:#83c5ff;background:rgba(76,168,255,.12)}
.scan-badge.unassigned{color:#ff969d;background:rgba(255,111,121,.12)}
.scan-badge.expired{color:#ffd980;background:rgba(255,200,94,.12)}
.scan-device-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}
.scan-device-actions button{padding:8px 10px;font-size:10px;white-space:nowrap}
.device-instance{display:inline!important;color:#7ca0aa!important;font-size:9px!important;margin-left:4px!important}
.manual-import{width:100%}
.manual-import summary{cursor:pointer;font-weight:850;color:#c6dce2;padding:4px 0 10px}
.manual-import>p{margin:0 0 12px;color:var(--muted);font-size:11px}
@media(max-width:900px){
  .scan-device{grid-template-columns:1fr}
  .scan-device-actions{justify-content:flex-start}
  .scanner-head-actions{width:100%;justify-content:space-between}
}

/* v5.0 - icono CellFix VPN garantizado */
.logo,.auth-logo{
  padding:0!important;
  overflow:hidden!important;
  background:#061923!important;
  display:grid!important;
  place-items:center!important;
}
.logo img,.auth-logo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  border-radius:inherit!important;
}


/* v5.1 - Lista negra */
.scan-device.blacklisted{
  border-color:rgba(255,70,86,.62)!important;
  background:rgba(255,50,70,.085)!important;
  box-shadow:inset 0 0 0 1px rgba(255,70,86,.08);
}
.scan-device.blacklisted .scan-device-icon{
  background:rgba(255,70,86,.18)!important;
  color:#ff7885!important;
}
.scan-badge.blacklisted{
  color:#ff8d98!important;
  background:rgba(255,70,86,.18)!important;
  border:1px solid rgba(255,70,86,.25);
}
.status.blacklisted{
  background:rgba(255,70,86,.15);
  color:#ff8d98;
  border:1px solid rgba(255,70,86,.25);
}
.alert-item.blacklisted{
  border-color:rgba(255,70,86,.55)!important;
  background:rgba(255,50,70,.08)!important;
}

/* v5.2 - icono definitivo CellFix VPN */
.logo,.auth-logo{
  padding:0!important;
  overflow:hidden!important;
  background:#061923!important;
  display:grid!important;
  place-items:center!important;
}
.logo img,.auth-logo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  border-radius:inherit!important;
}
