:root{
  --primary:#1d4ed8; --primary-contrast:#fff;
  --secondary-bg:#0b1220; --secondary-border:#334155; --secondary-text:#cbd5e1;
  --danger:#dc2626; --danger-contrast:#fff;
}

/* Buttons */
.btn{ appearance:none; border:1px solid var(--primary); background:var(--primary); color:var(--primary-contrast); border-radius:10px; padding:10px 14px; font-weight:600; cursor:pointer; line-height:1; display:inline-flex; align-items:center; justify-content:center; }
.btn:disabled{ opacity:.6; cursor:not-allowed; }
.btn-primary{ border-color:var(--primary); background:var(--primary); color:var(--primary-contrast); }
.btn-secondary{ border-color:var(--secondary-border); background:var(--secondary-bg); color:var(--secondary-text); }
.btn-danger{ border-color:var(--danger); background:var(--danger); color:var(--danger-contrast); }
.btn-success{ border-color:#16a34a; background:#16a34a; color:#fff; }
.btn-link{ display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--primary); color:#fff; border:1px solid var(--primary); border-radius:10px; padding:12px 16px; text-decoration:none; font-weight:600; line-height:1; }
.btn-link[aria-disabled="true"], .btn-link.is-disabled{ opacity:.6; pointer-events:none; }
.btn-lg{ padding:12px 18px; font-size:16px; }
.btn-sm{ padding:6px 10px; font-size:12px; }

/* Utilities */
.flex{ display:flex; }
.wrap{ flex-wrap:wrap; }
.inline{ display:inline; }
.justify-between{ justify-content:space-between; }
.justify-center{ justify-content:center; }
.items-center{ align-items:center; }
.items-end{ align-items:flex-end; }
.gap-8{ gap:8px; }
.gap-12{ gap:12px; }
.m-0{ margin:0; }
.mt-0{ margin-top:0; }
.mt-8{ margin-top:8px; }
.mt-12{ margin-top:12px; }
.mt-16{ margin-top:16px; }
.p-24{ padding:24px; }
.text-center{ text-align:center; }
.no-underline{ text-decoration:none; }
.text-12{ font-size:12px; }
.text-14{ font-size:14px; }
.text-18{ font-size:18px; }
.text-20{ font-size:20px; }
.text-28{ font-size:28px; }
.row-center{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; align-items:center; }
.input-code{ min-width:200px;background:#0b1220; border:1px solid #374151; color:#e5e7eb; border-radius:10px; padding:12px 14px; outline:none; font-size:16px; text-align:center; letter-spacing:2px; }
