:root{
  --bg: #0b0f1a;
  --bg-soft: #111827;
  --panel: #141a2a;
  --brand: #7c3aed;
  --brand-2: #a78bfa;
  --accent: #ffcd55;
  --accent-2: #ffd97a;
  --text: #e5e7eb;
  --muted: #9ca3af;
  --border: rgba(255,255,255,.10);
  --success: #22c55e;
  --danger: #ef4444;

  --radius: 14px;
  --shadow-1: 0 10px 30px rgba(0,0,0,.35);
  --shadow-glow: 0 12px 30px rgba(124,58,237,.35);
  --card-grad: linear-gradient(180deg, rgba(20,26,42,.9), rgba(17,23,39,.85));
  --hero-grad: radial-gradient(1200px 600px at 20% -10%, #1d0b3a 0%, #0b0f1a 60%, #070b17 100%);

  --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial;
  --h1: 28px; --h2: 22px; --h3: 18px; --base: 16px; --small: 14px;
  --sp-1: .5rem; --sp-2: .75rem; --sp-3: 1rem; --sp-4: 1.5rem;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background: var(--hero-grad); color:var(--text);
  font: 400 var(--base)/1.5 var(--font);
}

.container{max-width:1100px; margin:0 auto; padding: var(--sp-4) var(--sp-3);}
.card{
  background: var(--card-grad); border:1px solid var(--border);
  border-radius: var(--radius); padding: var(--sp-3); box-shadow: var(--shadow-1);
  backdrop-filter: blur(6px);
}
h1{font-size:var(--h1); margin:.25rem 0 .6rem}
h2{font-size:var(--h2); margin:.2rem 0 .6rem}
h3{font-size:var(--h3); margin:.2rem 0 .6rem}
.muted{color:var(--muted)}

.row{display:flex; gap: var(--sp-2); align-items:center; flex-wrap:wrap}
.spacer{height: var(--sp-4)}

.input, .select{
  appearance:none; background:#0d1424; color:var(--text);
  padding:.7rem .9rem; border:1px solid var(--border);
  border-radius:12px; outline:none; min-width:220px;
}
.input:focus{border-color:#2d3b56; box-shadow:0 0 0 3px rgba(124,58,237,.2)}
.btn{
  border:0; cursor:pointer; padding:.7rem 1rem; border-radius:12px;
  font-weight:700;
}
.btn-primary{ background:var(--accent); color:#2b1900; box-shadow: var(--shadow-glow); }
.btn-primary:hover{ filter:brightness(1.05) }
.btn-ghost{ background:#0d1424; color:var(--text); border:1px solid var(--border) }
.btn-danger{ background:var(--danger); color:#fff }
.btn-success{ background:var(--success); color:#08140a }

.badge{display:inline-block; padding:.25rem .5rem; border-radius:999px; font-size:var(--small); border:1px solid var(--border); background:#0d1424}
.badge-win{ border-color: rgba(255,205,85,.4); background: rgba(255,205,85,.08); color:var(--accent) }

.table{width:100%; border-collapse:collapse; margin-top:.6rem}
.table th, .table td{ border:1px solid var(--border); padding:.55rem .6rem; text-align:left }
.table th{ color:#cbd5e1; background:#0d1424; position:sticky; top:0 }

.alert{padding:.7rem .9rem; border-radius:12px; background:#0d1424; border:1px solid var(--border)}
.alert-ok{border-color:rgba(34,197,94,.3); background:rgba(34,197,94,.06); color:#8ef0b3}
.alert-err{border-color:rgba(239,68,68,.3); background:rgba(239,68,68,.06); color:#ffb2b2}

.header{display:flex; align-items:center; justify-content:space-between; gap:var(--sp-2);}
.header .title{display:flex; align-items:center; gap: .6rem; font-weight:900; font-size:var(--h2)}
.logo{
  width:40px;height:40px;border-radius:12px;background:var(--brand);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15), var(--shadow-glow);
}

.btn{ transition: transform .08s ease, filter .2s ease }
.btn:active{ transform: translateY(1px) scale(.99) }
.card{ transition: box-shadow .25s ease, transform .12s ease }
.card:hover{ box-shadow: 0 16px 40px rgba(0,0,0,.45) }
