html, body { min-height: 100%; margin: 0; }
* { box-sizing: border-box; }
body { background: var(--bg); color: var(--text-1); font-family: 'Outfit', system-ui, sans-serif; }
.login-shell { min-height: 100svh; display: grid; place-items: center; padding: 28px 16px; }
.login-card { width: min(100%, 420px); padding: 36px; background: var(--surface-2);
  border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow); }
.login-logo { display: block; max-width: 100%; height: auto; margin-bottom: 30px; }
.login-eyebrow { margin: 0 0 8px; color: var(--text-2); font-size: 12px; font-weight: 700; letter-spacing: .12em; }
.login-card h1 { margin: 0; font-size: 26px; line-height: 1.2; font-weight: 650; }
.login-intro { margin: 10px 0 22px; color: var(--text-2); line-height: 1.5; }
.login-status { min-height: 22px; margin: 0 0 16px; color: var(--text-2); font-size: 14px; }
.login-status.error { color: var(--danger); }
#local-account-form { display: grid; gap: 8px; }
#local-account-form[hidden], #local-demo-actions[hidden] { display: none; }
#local-account-form label { font-size: 14px; font-weight: 600; }
#local-account-form input { width: 100%; min-height: 44px; margin-bottom: 10px; padding: 10px 12px;
  border: 1px solid #777; border-radius: 8px; background: var(--surface-1); color: var(--text-1);
  font: inherit; }
#local-account-form input::placeholder { color: var(--text-2); opacity: 1; }
#local-account-form input:focus-visible, #local-account-form button:focus-visible,
.local-demo-actions button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
#login-submit, .local-demo-actions button { min-height: 44px; border: 0; border-radius: 8px;
  background: var(--accent); color: #1C1C1C; font: 600 15px 'Outfit', system-ui, sans-serif; cursor: pointer; }
#login-submit:hover, .local-demo-actions button:hover { background: var(--accent-hover); }
#login-submit:disabled, .local-demo-actions button:disabled { opacity: .6; cursor: progress; }
.local-demo-actions { display: grid; gap: 8px; margin-top: 20px; }
.local-demo-actions button { padding: 9px 12px; font-size: 13px; }
html[data-theme="light"] #local-account-form input { border-color: #7F8998; }
html[data-theme="light"] #local-account-form input:focus-visible,
html[data-theme="light"] #local-account-form button:focus-visible,
html[data-theme="light"] .local-demo-actions button:focus-visible { outline-color: #00728F; }
@media (max-width: 440px) { .login-card { padding: 28px 22px; } .login-card h1 { font-size: 23px; } }
