/* ============================================
   SWB - Tema unificado de la plataforma
   Glassmorphism oscuro + Plus Jakarta Sans + acento verde.
   Mismas variables que panel.html. Úsalo en todas las páginas.
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap');

:root{
  --c1:#0a0c10;--c2:rgba(255,255,255,.12);--c3:#00E676;--c4:#00C853;--c5:#333640;
  --white:#0e1014;--text:#eef0f3;--text2:#bcc2c9;--text3:#a6acb4;--c3l:rgba(0,230,118,.08);
  --danger:#ef5350;--warn:#ffb74d;--success:#66bb6a;--radius:16px;--r:16px;--c3s:rgba(0,230,118,.04);
  --glass:rgba(10,13,16,.95);--glass-border:rgba(255,255,255,.15);--glass-blur:blur(24px);
  --glass-shadow:0 4px 24px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.06);
}

*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Plus Jakarta Sans',sans-serif;background:var(--c1);color:var(--text);min-height:100vh;padding:24px}
.wrap{max-width:1100px;margin:0 auto}
a{color:var(--c3)}

/* Encabezados */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}
h1{font-size:22px;font-weight:800;letter-spacing:-.01em}
h1 b{color:var(--c3)}
h1 small{font-size:13px;color:var(--text2);font-weight:500}
.sub{color:var(--text2);font-size:13px;margin-bottom:18px}
.h2{font-size:14px;font-weight:700;margin:16px 0 6px}
.back,a.out{color:var(--c3);font-size:13px;font-weight:600;text-decoration:none}
a.out{color:var(--text3)}
.muted{color:var(--text3)}
code{color:var(--c3);font-size:12px}

/* Paneles de vidrio */
.card{background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--glass-shadow)}

/* Formularios */
label{display:block;font-size:12px;color:var(--text2);margin:10px 0 4px}
input,select,textarea{width:100%;background:rgba(0,0,0,.3);border:1px solid var(--glass-border);border-radius:10px;
  padding:10px 13px;color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:border .2s}
input:focus,select:focus,textarea:focus{border-color:var(--c3)}
select{color-scheme:dark}
select option,select optgroup{background:#14171d;color:var(--text)}

/* Botones (píldora) */
.btn{padding:11px 20px;border:none;border-radius:50px;font-size:14px;font-weight:700;cursor:pointer;
  font-family:inherit;transition:all .25s;background:var(--c3);color:#04130a;display:inline-flex;align-items:center;gap:8px}
.btn:hover{background:var(--c4)}
.btn.sec,.btn-ghost{background:transparent;border:1px solid var(--glass-border);color:var(--text2)}
.btn.sec:hover,.btn-ghost:hover{border-color:var(--c3);color:var(--c3)}
.btn.warn{background:var(--warn);color:#0a0c10}
.btn.danger{background:var(--danger);color:#fff}

/* Tablas */
table{width:100%;border-collapse:collapse;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:12px;overflow:hidden;box-shadow:var(--glass-shadow)}
th,td{text-align:left;padding:12px 13px;font-size:13px;border-bottom:1px solid var(--glass-border);vertical-align:middle}
th{color:var(--text3);font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.04em}
tr:last-child td{border-bottom:none}
tr:hover td{background:rgba(255,255,255,.03)}
.name{font-weight:600}

/* Badges */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700}

/* Stat cards / embudo */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:4px 0 0}
.stat{background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:14px;padding:14px;box-shadow:var(--glass-shadow);
  border-top:3px solid var(--c,var(--glass-border));cursor:pointer;transition:.15s}
.stat:hover{background:rgba(255,255,255,.04)}
.stat.on{outline:2px solid var(--c,var(--c3))}
.stat .n{font-size:24px;font-weight:800}
.stat .l{font-size:11px;color:var(--text2);margin-top:2px}

.empty{text-align:center;padding:48px 20px;color:var(--text2)}
.err{color:var(--danger);font-size:13px;margin-top:10px;min-height:16px}
.banner{background:rgba(255,183,77,.1);border:1px solid rgba(255,183,77,.35);color:var(--warn);border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:16px}

/* Barra de filtros */
.bar{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.bar input{flex:1;min-width:180px}
.bar button{background:rgba(0,0,0,.25);border:1px solid var(--glass-border);border-radius:10px;padding:10px 16px;color:var(--text2);cursor:pointer;font-size:13px;font-family:inherit}
.bar button:hover{border-color:var(--c3);color:var(--c3)}
.gen{display:flex;gap:8px;align-items:center}

/* Acciones en tabla */
.acts{display:flex;gap:6px;flex-wrap:wrap}
.acts button{font-size:12px;padding:6px 10px;border-radius:7px;cursor:pointer;border:1px solid var(--glass-border);background:rgba(0,0,0,.25);color:var(--text);font-family:inherit}
.acts button:hover{border-color:var(--c3)}
select.stage{width:auto;padding:6px 8px;font-size:12px;border-radius:8px}

/* Enlace de referido */
.reflink{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.reflink code{flex:1;min-width:200px;background:rgba(0,0,0,.3);border:1px solid var(--glass-border);border-radius:8px;padding:10px 12px;font-size:13px;color:var(--c3);overflow-x:auto;white-space:nowrap}
.copy{background:var(--c3);color:#04130a;border:none;border-radius:8px;padding:10px 16px;font-weight:700;cursor:pointer;font-family:inherit}

/* Login/registro (partner) */
.auth{max-width:380px;margin:8vh auto 0}
.tabs{display:flex;gap:8px;margin-bottom:14px}
.tabs button{flex:1;background:rgba(0,0,0,.25);border:1px solid var(--glass-border);border-radius:10px;padding:9px;color:var(--text2);cursor:pointer;font-size:14px;font-weight:600;font-family:inherit}
.tabs button.on{background:var(--c3l);color:var(--c3);border-color:var(--c3)}

@media(max-width:680px){.stats{grid-template-columns:repeat(2,1fr)!important}}
