:root{
  --bg:#0b0e13; --panel:#121826; --muted:#a2acc7; --primary:#2c7df7; --primary-2:#1e5fe0;
  --ok:#2dd4a3; --warn:#ffd166; --error:#ff6b6b; --card:#0f1420; --border:#1b2130;
  --ink:#eaf0ff; --ink-2:#d3ddff;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font-family: ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Helvetica,Arial;
  background: radial-gradient(1200px 800px at 80% -10%, #14203d 0%, var(--bg) 60%), var(--bg);
  color:var(--ink);
}

/* Header */
.hdr{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;
  border-bottom:1px solid var(--border); background: linear-gradient(180deg, rgba(255,255,255,0.03), transparent);
  position: sticky; top:0; z-index:10;
}
.brand{display:flex;align-items:center;gap:10px;font-weight:700}
.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 12px var(--ok)}
.ttl{font-size:16px}
.muted{color:var(--muted)}
.user{font-size:13px}
.right{display:flex;gap:8px;align-items:center}

/* Layout */
.card{
  max-width:1180px;margin:16px auto;padding:16px;border:1px solid var(--border);
  background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
  border-radius:14px;
}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.col{flex:1 1 220px}
.wshrink{flex:0 0 auto}
.w12{flex-basis:120px}.w14{flex-basis:140px}.w18{flex-basis:180px}.w20{flex-basis:200px}
.center{justify-content:center}
.between{justify-content:space-between}
.wrap{flex-wrap:wrap}
.hide{display:none}

.lbl{font-size:12px;color:var(--muted);margin-bottom:6px;display:block}
.inp, select, input, textarea{
  width:100%; padding:10px 12px; border-radius:10px; border:1px solid var(--border); background:#0d1320; color:var(--ink);
}
.inp:focus, select:focus, textarea:focus{border-color:#244a86; box-shadow:0 0 0 3px rgba(44,125,247,0.15); outline:none}

.btn{
  cursor:pointer; border:1px solid #2a3a5a; background:linear-gradient(180deg,var(--primary),var(--primary-2));
  color:#fff; border-radius:10px; padding:10px 14px; font-weight:600; box-shadow:0 6px 18px rgba(44,125,247,0.35);
}
.btn.ghost{background:transparent;color:#cfe1ff;border:1px solid #2a3a5a}
.link{background:transparent;border:0;color:#b7c7ff;cursor:pointer}
.pill{display:inline-flex;gap:6px;align-items:center;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:rgba(255,255,255,0.02)}
.pill.on{background:rgba(45,212,163,0.08);border-color:#1c7d62}
.badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;border:1px solid var(--border);min-width:66px}
.code{background:#0c1220;border:1px solid var(--border);padding:8px 10px;border-radius:10px;display:inline-block}
.tiny{font-size:12px;color:#8ea1c9}

/* Cards de combinaciones */
.cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:12px}
.cardRec{border:1px solid var(--border);border-radius:12px;padding:12px;background:linear-gradient(180deg,#0f1524,#0c121d)}
.nums{font-variant-numeric:tabular-nums;letter-spacing:0.5px;font-size:18px}

/* Tabla */
.tbl-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px}
#tblStats{width:100%;border-collapse:collapse}
#tblStats th,#tblStats td{border-bottom:1px solid var(--border);padding:8px 10px;text-align:left}
#tblStats thead th{position:sticky;top:0;background:#0d1423}

/* Dialog */
dialog{border:1px solid var(--border);border-radius:12px;background:#0e1524;color:var(--ink);padding:16px;max-width:520px}
dialog::backdrop{background:rgba(0,0,0,0.65)}

/* Footer */
.ftr{max-width:1180px;margin:40px auto 24px;padding:0 10px;display:flex;justify-content:space-between;color:var(--muted);font-size:13px}

