/* arena-ui.css — vendored design system (bizzmaton-arena). Build on these CSS
   variables (--accent, --bg, --fg, --space-*, --text-*) and classes (.btn, .card,
   .input, .badge, table, .dialog, .toast, .empty, .spinner). Do NOT hardcode colors. */
:root{
  --accent:#7c3aed;
  --accent-contrast:#ffffff;
  --accent-soft:color-mix(in srgb, var(--accent) 12%, transparent);
  --bg:#ffffff; --surface:#ffffff; --surface-2:#f7f8fa; --elevated:#ffffff;
  --fg:#0f1115; --muted:#5b6472; --subtle:#8a93a3; --border:#e6e8ec;
  --danger:#dc2626; --success:#16a34a; --warning:#d97706;
  --radius:10px; --radius-sm:6px; --radius-lg:16px;
  --font:"Inter", "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px;
  --space-6:32px; --space-8:48px; --space-10:64px;
  --text-xs:12px; --text-sm:13px; --text-base:15px; --text-lg:18px;
  --text-xl:22px; --text-2xl:28px; --text-3xl:36px; --text-4xl:48px;
  --shadow-sm:0 1px 2px rgba(16,17,21,.06);
  --shadow:0 4px 16px -4px rgba(16,17,21,.10), 0 1px 3px rgba(16,17,21,.06);
  --shadow-lg:0 16px 48px -12px rgba(16,17,21,.22);
}
@media (prefers-color-scheme: dark){:root{
  --bg:#0b0d11; --surface:#12151b; --surface-2:#171b22; --elevated:#1a1f27;
  --fg:#e9edf3; --muted:#9aa4b2; --subtle:#6b7482; --border:#232a33;
  --accent-soft:color-mix(in srgb, var(--accent) 22%, transparent);
  --shadow:0 4px 16px -4px rgba(0,0,0,.5), 0 1px 3px rgba(0,0,0,.4);
  --shadow-lg:0 16px 48px -12px rgba(0,0,0,.6);
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:var(--text-base);color:var(--fg);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{line-height:1.15;letter-spacing:-.02em;margin:0 0 var(--space-3)}
h1{font-size:var(--text-3xl);font-weight:760}h2{font-size:var(--text-2xl);font-weight:720}
h3{font-size:var(--text-xl);font-weight:680}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
p{margin:0 0 var(--space-3);color:var(--muted)}
.muted{color:var(--muted)}.subtle{color:var(--subtle)}
.container{max-width:1120px;margin:0 auto;padding:0 var(--space-5)}
.stack{display:flex;flex-direction:column;gap:var(--space-3)}
.row{display:flex;align-items:center;gap:var(--space-3)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:640;padding:9px 16px;border-radius:var(--radius);border:1px solid transparent;background:var(--accent);color:var(--accent-contrast);cursor:pointer;transition:.15s ease;box-shadow:var(--shadow-sm)}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn.secondary{background:var(--surface);color:var(--fg);border-color:var(--border)}
.btn.ghost{background:transparent;color:var(--fg)}
.btn.ghost:hover{background:var(--surface-2)}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.input,.select,.textarea{font:inherit;width:100%;padding:9px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--fg)}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
label{display:block;font-size:var(--text-sm);font-weight:600;margin-bottom:6px;color:var(--fg)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:640;padding:3px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}
.badge.neutral{background:var(--surface-2);color:var(--muted)}
table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
th{text-align:left;font-weight:620;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--border)}
td{padding:10px 12px;border-bottom:1px solid var(--border)}
tbody tr:hover{background:var(--surface-2)}
.dialog-backdrop{position:fixed;inset:0;background:rgba(8,10,14,.5);display:grid;place-items:center;padding:var(--space-4);z-index:50}
.dialog{background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:560px;width:100%;padding:var(--space-5)}
.toast{position:fixed;bottom:24px;right:24px;background:var(--elevated);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:12px 16px;z-index:60}
.empty{text-align:center;color:var(--muted);padding:var(--space-8) var(--space-4)}
.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:arena-spin .7s linear infinite;display:inline-block}
@keyframes arena-spin{to{transform:rotate(360deg)}}
.error{color:var(--danger);font-size:var(--text-sm)}
@media (max-width:640px){.container{padding:0 var(--space-4)}h1{font-size:var(--text-2xl)}}
