:root {
  color-scheme: dark;
  font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --bg: #0a0d12;
  --surface: #151b26;
  --surface-2: #1a2130;
  --surface-3: #202838;
  --border: #262f3f;
  --border-strong: #34405a;
  --text: #eef2f8;
  --text-muted: #9ba8bd;
  --text-subtle: #6b7890;
  --muted: var(--text-muted);
  --subtle: var(--text-subtle);
  --accent: #6aa9ff;
  --accent-strong: #4a8ffe;
  --accent-weak: #1b2a47;
  --success: #3ddc97;
  --danger: #f87171;
  --danger-weak: #2d1213;
  --r-md: 8px;
  --focus: 0 0 0 3px rgba(106,169,255,.35);
  --shadow-md: 0 18px 60px rgba(0,0,0,.34);
  --scrollbar-size: 12px;
  --scrollbar-track: color-mix(in srgb, var(--bg) 72%, var(--surface-2));
  --scrollbar-thumb: color-mix(in srgb, var(--accent) 54%, var(--border-strong));
  --scrollbar-thumb-hover: color-mix(in srgb, var(--accent) 74%, var(--border-strong));
  --scrollbar-thumb-active: color-mix(in srgb, var(--accent-strong) 86%, var(--text));
  --scrollbar-corner: color-mix(in srgb, var(--surface) 84%, var(--bg));
}

* { box-sizing: border-box; scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); scrollbar-width: thin; }
*::-webkit-scrollbar { width: var(--scrollbar-size); height: var(--scrollbar-size); }
*::-webkit-scrollbar-track { border-radius: 999px; background: var(--scrollbar-track); }
*::-webkit-scrollbar-thumb { min-width: 44px; min-height: 44px; border: 3px solid var(--scrollbar-track); border-radius: 999px; background: var(--scrollbar-thumb); }
*::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-thumb-hover); }
*::-webkit-scrollbar-thumb:active { background: var(--scrollbar-thumb-active); }
*::-webkit-scrollbar-corner { background: var(--scrollbar-corner); }
body.login-page { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 24px; background: var(--bg); color: var(--text); font-size: 14px; line-height: 1.45; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input { font: inherit; }
.login-shell { width: min(420px, 100%); }
.login-card { display: grid; padding: 36px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--surface); box-shadow: var(--shadow-md); }
.login-brand { display: grid; justify-items: center; gap: 8px; margin-bottom: 24px; text-align: center; }
.login-brand strong { font-size: 26px; line-height: 32px; font-weight: 900; }
.login-brand-mark { display: grid; place-items: center; width: 128px; height: 128px; overflow: visible; }
.login-brand-mark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.login-divider { height: 1px; margin-bottom: 22px; background: linear-gradient(90deg, transparent, var(--border-strong), transparent); }
label { display: grid; gap: 6px; margin-bottom: 14px; color: var(--text-muted); font-size: 12.5px; font-weight: 800; }
input { width: 100%; min-height: 44px; border: 1px solid var(--border); border-radius: var(--r-md); padding: 12px 14px; background: #070b10; color: var(--text); }
input:focus-visible, button:focus-visible { outline: 0; border-color: var(--border-strong); box-shadow: var(--focus); }
button { width: 100%; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: 8px; padding: 12px 16px; border: 0; border-radius: var(--r-md); background: var(--accent); color: #071018; font-weight: 900; cursor: pointer; transition: background 120ms ease, transform 120ms ease; }
button:hover { background: var(--accent-strong); }
.error { margin: 0 0 16px; border: 1px solid rgba(248,113,113,.45); background: var(--danger-weak); color: #fecaca; border-radius: var(--r-md); padding: 10px; font-size: 13px; font-weight: 800; }

@media (max-width: 900px) {
  body.login-page { align-items: start; }
  .login-card { padding: 32px; }
}

@media (max-width: 480px) {
  body.login-page { padding: 16px; }
  .login-card { padding: 24px; }
  .login-brand strong { font-size: 22px; line-height: 28px; }
  .login-brand-mark { width: 112px; height: 112px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}
