:root { --bg: #eef2f8; --card: #ffffff; --text: #0f172a; --muted: #64748b; --line: #dde4ef; --accent: #2563eb;
  --accent-press: #1d4ed8; --accent-soft: #eaf1ff; --accent-line: #b9ccf3; --danger: #dc2626; --danger-soft: #fdecec; color-scheme: light; }
:root[data-theme='dark'] { --bg: #0b1020; --card: #111827; --text: #e5eaf3; --muted: #94a3b8; --line: #273247; --accent: #4f8cff;
  --accent-press: #3b7af0; --accent-soft: rgba(79, 140, 255, .16); --accent-line: #3d5f9e; --danger: #ef4444; --danger-soft: rgba(239, 68, 68, .14); color-scheme: dark; }
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { background: var(--bg); color: var(--text); font: 14px/1.4 system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; }
.login { min-height: 100vh; display: grid; place-items: center; padding: 16px; }
.login__card { width: min(360px, 100%); background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 28px;
  display: flex; flex-direction: column; gap: 14px; box-shadow: 0 10px 30px rgba(15, 23, 42, .08); }
.login__logo { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 18px; margin-bottom: 6px; }
.login__mark { width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; background: var(--accent); color: #fff; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field__label { font-size: 12px; font-weight: 600; color: var(--muted); }
.input { height: 38px; padding: 0 12px; border-radius: 9px; border: 1px solid var(--line); background: var(--card); color: var(--text); font: inherit; }
.input:focus { outline: none; border-color: var(--accent-line); box-shadow: 0 0 0 3px var(--accent-soft); }
.form-error { background: var(--danger-soft); color: var(--danger); border-radius: 9px; padding: 8px 10px; font-size: 13px; }
.btn { height: 38px; border-radius: 9px; border: 1px solid var(--accent); background: var(--accent); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.btn:hover:not(:disabled) { background: var(--accent-press); border-color: var(--accent-press); }
.btn:disabled { opacity: .7; cursor: default; }
