:root{
  --bg:#030712;--surface:#0d1117;--surface2:#0a101a;--border:#1e2d45;
  --red:#ff1744;--red2:#ff5252;--blue:#00b4ff;--blue2:#40c4ff;
  --text:#e2f0ff;--muted:#7a92b0;
  --green:#22e38a;--amber:#ffb020;--purple:#b388ff;--pink:#ff6ec7;--cyan:#22d3ee;
  --glow-r:0 0 12px #ff17447a;--glow-b:0 0 12px #00b4ff7a;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;}
.bg-grid{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,#00b4ff08 1px,transparent 1px) 0 0/40px 40px,
             linear-gradient(0deg,#ff174408 1px,transparent 1px) 0 0/40px 40px;}
.view{position:relative;z-index:1;}

/* ---- Login / tarjetas centradas ---- */
.wrap{max-width:460px;margin:7vh auto;padding:32px;background:var(--surface);
  border:1px solid var(--border);border-radius:16px;box-shadow:0 0 0 1px #ffffff08,var(--glow-b);}
.brand{display:flex;align-items:center;gap:10px;}
.brand-icon{width:34px;height:34px;background:linear-gradient(135deg,var(--red),var(--blue));
  border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;box-shadow:var(--glow-r);}
.brand-name{font-size:18px;font-weight:800;letter-spacing:.04em;
  background:linear-gradient(90deg,var(--red2),var(--blue2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.brand-tag{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;}
.neon-line{height:1px;background:linear-gradient(90deg,transparent,var(--blue),var(--red),transparent);margin:20px 0;opacity:.5;}
h2{font-size:22px;font-weight:800;margin-bottom:6px;
  background:linear-gradient(90deg,var(--red2),var(--blue2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
h3{font-size:18px;margin-bottom:6px;}
.sub{color:var(--muted);font-size:13px;margin-bottom:18px;}
label{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:14px 0 6px;}
input,select{width:100%;padding:11px 14px;border-radius:10px;border:1px solid var(--border);
  background:var(--surface2);color:var(--text);font-size:14px;outline:none;transition:.2s;}
input:focus,select:focus{border-color:var(--blue);box-shadow:var(--glow-b);}
.mono{font-family:ui-monospace,Consolas,monospace;}
.hint{display:block;color:var(--muted);font-size:11px;margin-top:5px;}

.btn-primary{width:100%;margin-top:18px;padding:13px;border-radius:12px;border:0;cursor:pointer;
  background:linear-gradient(90deg,var(--red),#b71c1c);color:#fff;font-size:15px;font-weight:700;
  letter-spacing:.03em;box-shadow:var(--glow-r);transition:.2s;}
.btn-primary:hover{box-shadow:0 0 22px #ff1744aa;}
.btn-primary:disabled{opacity:.6;cursor:wait;}
.btn-sec{padding:9px 14px;border-radius:10px;border:1px solid var(--border);background:transparent;
  color:var(--muted);text-decoration:none;font-size:13px;cursor:pointer;transition:.2s;}
.btn-sec:hover{border-color:var(--blue);color:var(--blue);}
.msg{margin-top:12px;font-size:13px;min-height:18px;}
.msg.err,.err{color:var(--red2);}
.msg.ok,.ok{color:var(--green);}

/* ---- Topbar / app ---- */
.topbar{position:relative;z-index:1;display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--border);}
.tabs-nav{display:flex;gap:6px;flex:1;flex-wrap:wrap;}
.tabnav{padding:8px 14px;border-radius:9px;border:1px solid transparent;background:transparent;
  color:var(--muted);cursor:pointer;font-size:14px;}
.tabnav:hover{color:var(--blue);}
.tabnav.active{color:#fff;border-color:var(--red);background:#ff174412;box-shadow:var(--glow-r);}
.user-box{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);}
.role-chip{padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700;border:1px solid var(--blue);color:var(--blue2);}
.role-chip.superadmin{border-color:var(--pink);color:var(--pink);}
.role-chip.admin{border-color:var(--amber);color:var(--amber);}

.container{position:relative;z-index:1;max-width:1180px;margin:22px auto;padding:0 16px;}
.card-lg{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:26px;box-shadow:var(--glow-b);max-width:720px;margin:0 auto;}

/* ---- Consultar ---- */
.svc-switch{display:flex;gap:10px;margin-bottom:8px;}
.svc{flex:1;padding:12px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-weight:700;transition:.2s;}
.svc.netflix.active{border-color:var(--red);color:#fff;background:#ff174418;box-shadow:var(--glow-r);}
.svc.disney.active{border-color:var(--blue);color:#fff;background:#00b4ff18;box-shadow:var(--glow-b);}
.tabs{display:flex;gap:8px;margin-top:8px;}
.tab{flex:1;padding:10px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-size:13px;text-align:center;transition:.2s;}
.tab:hover{border-color:var(--blue);color:var(--blue);}
.tab.active{border-color:var(--red);color:var(--red);background:#ff174412;box-shadow:var(--glow-r);}
.result-card{margin-top:22px;padding:18px;border-radius:12px;border:1px solid var(--border);background:var(--surface2);}
.result-card.ok{border-color:var(--green);box-shadow:0 0 12px #22e38a40;}
.result-card.warn{border-color:var(--amber);}
.result-card.bad{border-color:var(--red);}
.code-big{font-family:ui-monospace,monospace;font-size:34px;letter-spacing:.2em;font-weight:800;margin:8px 0;color:#fff;}
.result-link{word-break:break-all;color:var(--blue2);font-size:13px;}
.copy-btn{margin-top:10px;padding:8px 16px;border-radius:9px;border:1px solid var(--blue);background:transparent;color:var(--blue);cursor:pointer;font-size:13px;}
.copy-btn:hover{background:var(--blue);color:#000;}

/* ---- Tablas ---- */
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px;}
.toolbar input,.toolbar select{width:auto;}
.toolbar .grow{flex:1;min-width:240px;}
.live{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;text-transform:none;letter-spacing:0;margin:0;}
.live input{width:auto;}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{position:sticky;top:0;background:#0b1424;color:var(--muted);text-transform:uppercase;font-size:11px;
  letter-spacing:.05em;padding:10px;text-align:left;border-bottom:1px solid var(--border);}
td{padding:9px 10px;border-bottom:1px solid #111e30;vertical-align:top;}
tbody tr:hover{background:#0b1626;}
.pager{display:flex;gap:12px;align-items:center;justify-content:center;margin:14px 0;color:var(--muted);font-size:13px;}

/* ---- Badges de color ---- */
.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap;}
.svc-netflix{background:#ff174418;border:1px solid var(--red);color:var(--red2);}
.svc-disney{background:#00b4ff18;border:1px solid var(--blue);color:var(--blue2);}
.svc-auth{background:#b388ff18;border:1px solid var(--purple);color:var(--purple);}
.svc-system{background:#7a92b018;border:1px solid var(--muted);color:var(--muted);}
.qa-signin{background:#ff174412;border:1px solid var(--red);color:var(--red2);}
.qa-household{background:#22d3ee12;border:1px solid var(--cyan);color:var(--cyan);}
.qa-reset{background:#ffb02012;border:1px solid var(--amber);color:var(--amber);}
.qa-verification{background:#b388ff12;border:1px solid var(--purple);color:var(--purple);}
.qa-disney_code{background:#00b4ff12;border:1px solid var(--blue);color:var(--blue2);}
.rs-success{color:var(--green);font-weight:700;}
.rs-not_found{color:var(--amber);font-weight:700;}
.rs-error{color:var(--red2);font-weight:700;}
.rs-denied{color:var(--red2);font-weight:700;}

/* ---- Config / admins ---- */
.cfg-row{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #111e30;flex-wrap:wrap;}
.cfg-row label{margin:0;flex:0 0 240px;text-transform:none;letter-spacing:0;color:var(--text);font-size:13px;}
.cfg-row input{flex:1;min-width:200px;}
.cfg-row .cfg-save{flex:0 0 auto;}
.cfg-badge{font-size:10px;color:var(--muted);}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.admin-form{margin-bottom:20px;}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:50;padding:12px 20px;border-radius:10px;
  background:#0b1626;border:1px solid var(--blue);color:var(--text);box-shadow:var(--glow-b);font-size:14px;}
.toast.bad{border-color:var(--red);box-shadow:var(--glow-r);}
@media(max-width:640px){.grid2{grid-template-columns:1fr;}.cfg-row label{flex-basis:100%;}}
