:root {
  --color-primary: #245ad3; --color-primary-hover: #1d49ad;
  --color-background: #f5f7fb; --color-surface: #ffffff;
  --color-text: #182b49; --color-muted: #596980;
  --color-border: #c5cedc; --color-danger: #b42336;
  --color-soft: #e9effb; --color-scrollbar: #8491a5;
  --font-sans: "Segoe UI", "Microsoft YaHei", system-ui, sans-serif;
  --radius-control: 8px; --radius-panel: 16px; --space-unit: 8px;
  --motion-feedback: 120ms;
  font-family: var(--font-sans); color: var(--color-text); background: var(--color-background);
  scrollbar-gutter: stable; scrollbar-color: var(--color-scrollbar) var(--color-background); scrollbar-width: auto;
}
* { box-sizing: border-box; scrollbar-color: var(--color-scrollbar) var(--color-background); }
*::-webkit-scrollbar { width: 12px; height: 12px; }
*::-webkit-scrollbar-track { background: var(--color-background); }
*::-webkit-scrollbar-thumb { background: var(--color-scrollbar); border: 3px solid var(--color-background); border-radius: var(--radius-control); }
*::-webkit-scrollbar-thumb:hover { background: var(--color-muted); }
*::-webkit-scrollbar-thumb:active { background: var(--color-text); }
body { margin: 0; min-height: 100svh; display: flex; flex-direction: column; font-size: 16px; line-height: 1.6; }
.brand { padding: 32px 40px; display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 700; }
.brand small { display: block; font-size: 10px; letter-spacing: 2px; color: var(--color-muted); font-weight: 600; }
.brand-mark { width: 44px; height: 44px; display: grid; place-items: center; color: var(--color-surface); background: var(--color-primary); border-radius: var(--radius-control); font-size: 32px; line-height: 1; }
main { width: 100%; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px 20px 40px; }
.login-panel { width: min(100%, 440px); padding: 36px; background: var(--color-surface); border: 1px solid var(--color-border); border-top: 4px solid var(--color-primary); border-radius: var(--radius-panel); }
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; color: var(--color-muted); font-size: 13px; }
.eyebrow span { padding: 2px 8px; border-radius: 4px; background: var(--color-soft); color: var(--color-primary); }
h1 { font-size: 28px; letter-spacing: -.5px; line-height: 1.3; margin: 0 0 12px; font-weight: 650; }
.intro { color: var(--color-muted); margin: 0 0 32px; font-size: 14px; }
label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 8px; }
input, button { font: inherit; }
input { width: 100%; height: 48px; padding: 0 14px; color: var(--color-text); border: 1px solid var(--color-border); background: var(--color-surface); border-radius: var(--radius-control); }
input::placeholder { color: var(--color-muted); }
input:hover { border-color: var(--color-muted); }
input[aria-invalid="true"] { border-color: var(--color-danger); }
input:focus-visible, button:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 3px; }
.field-error { color: var(--color-danger); font-size: 12px; min-height: 22px; margin: 4px 0 8px; }
.password-field { position: relative; }
.password-field input { padding-right: 70px; }
button { cursor: pointer; transition: background-color var(--motion-feedback); }
.reveal { position: absolute; right: 4px; top: 2px; min-width: 56px; height: 44px; border: 0; border-radius: var(--radius-control); background: transparent; color: var(--color-muted); font-size: 13px; }
.reveal:hover, .reveal:active { background: var(--color-soft); color: var(--color-primary); }
.primary { width: 100%; height: 48px; border: 0; border-radius: var(--radius-control); background: var(--color-primary); color: var(--color-surface); font-weight: 600; }
.primary:hover, .primary:active { background: var(--color-primary-hover); }
button:disabled { cursor: wait; opacity: .68; }
.status { min-height: 44px; margin: 12px 0 0; color: var(--color-danger); font-size: 13px; line-height: 1.6; }
.status[data-tone="pending"] { color: var(--color-muted); }
.help { margin: 0; padding-top: 20px; border-top: 1px solid var(--color-border); color: var(--color-muted); font-size: 12px; line-height: 1.8; }
.workspace-note, footer { font-size: 12px; color: var(--color-muted); text-align: center; }
.workspace-note { margin: 24px 0 0; letter-spacing: 1px; }
footer { padding: 20px; }
@media (max-width: 520px) { .brand { padding: 24px; } main { padding: 20px 16px; justify-content: flex-start; } .login-panel { padding: 28px 24px; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
@media (forced-colors: active) { * { scrollbar-color: auto; } button, input, .login-panel { border: 1px solid ButtonText; } }
