/* Hallmark · existing DESIGN.md tokens · P4 H4 E3 S4 R5 V3; code inspection only. */
:root {
  --font-body: system-ui, -apple-system, "Segoe UI", sans-serif;
  --color-ink: #172033;
  --color-paper: #f5f7fb;
  --color-surface: #fff;
  --color-muted: #526073;
  --color-accent: #364fc1;
  --color-accent-hover: #293d99;
  --color-control-border: #8491a3;
  --color-rule: #d2d9e3;
  --color-disabled: #e6eaf1;
  --color-subtle: #eef1f7;
  --color-error: #9c2118;
  --color-error-paper: #fff0ee;
  font-family: var(--font-body);
  color: var(--color-ink);
  background: var(--color-paper);
  color-scheme: light;
}
* { box-sizing: border-box; }
html, body { overflow-x: clip; }
body { margin: 0; }
[hidden] { display: none !important; }
.login-shell { display: grid; place-items: center; min-height: 100vh; min-height: 100svh; padding: 24px 16px; }
#login-form { width: 100%; max-width: 380px; padding: 28px 24px; background: var(--color-surface); border: 1px solid var(--color-rule); border-radius: 12px; }
h1 { margin: 0 0 28px; font-size: 1.75rem; font-weight: 650; line-height: 1.2; letter-spacing: -.025em; font-style: normal; overflow-wrap: anywhere; }
.login-field + .login-field { margin-top: 20px; }
label { display: block; margin-bottom: 8px; font-size: .875rem; font-weight: 600; }
input, button { font: inherit; }
input { width: 100%; min-width: 0; min-height: 48px; padding: 12px; border: 1px solid var(--color-control-border); border-radius: 8px; background: var(--color-surface); color: var(--color-ink); font-size: 1rem; }
.password-field { position: relative; }
.password-field input { padding-right: 56px; }
.password-toggle { position: absolute; right: 2px; top: 2px; display: grid; place-items: center; width: 44px; height: 44px; padding: 12px; border: 0; border-radius: 6px; background: var(--color-surface); color: var(--color-muted); cursor: pointer; }
.password-toggle svg { width: 20px; height: 20px; }
:is(input, button):focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
input[aria-invalid=true] { border-color: var(--color-error); background: var(--color-error-paper); }
.login-feedback { margin: 16px 0 0; color: var(--color-error); font-size: .875rem; line-height: 1.5; }
.login-submit { display: flex; justify-content: center; align-items: center; gap: 10px; width: 100%; min-height: 48px; margin-top: 24px; padding: 12px 16px; border: 1px solid var(--color-accent); border-radius: 8px; background: var(--color-accent); color: var(--color-surface); font-size: .9375rem; font-weight: 650; cursor: pointer; white-space: nowrap; }
.login-submit:active:not(:disabled) { background: var(--color-accent-hover); }
.password-toggle:active { background: var(--color-subtle); }
.login-submit:disabled { cursor: wait; }
.login-submit[data-state=success] { background: var(--color-accent-hover); }
.login-submit[disabled]:not([data-state=loading]):not([data-state=success]) { background: var(--color-disabled); color: var(--color-muted); border-color: var(--color-control-border); cursor: not-allowed; }
.login-spinner { width: 16px; height: 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: login-spin .75s linear infinite; }
@keyframes login-spin { to { transform: rotate(360deg); } }
@media (hover: hover) { input:hover { background: var(--color-paper); } .login-submit:hover:not(:disabled) { background: var(--color-accent-hover); } .password-toggle:hover { background: var(--color-subtle); } }
@media (min-width: 40rem) { #login-form { padding: 32px; } }
@media (prefers-reduced-motion: reduce) { .login-spinner { animation: none; } }
