.login-shell{min-height:100dvh;display:grid;place-items:center;padding:32px;background:var(--bg);color:var(--text)}
.login-stage{width:min(1120px,100%);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:48px;align-items:center}
.login-brand{min-width:0;padding:24px 4px}
.login-brand-top{display:flex;align-items:center;gap:16px}
.login-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:var(--primary);color:#fff;font-weight:850;letter-spacing:-.03em;box-shadow:0 12px 28px color-mix(in srgb,var(--primary) 20%,transparent)}
.login-brand h1{margin:5px 0 2px;font-size:clamp(32px,4vw,48px);line-height:1.02;letter-spacing:-1.4px}
.login-brand .brand-signature{color:var(--muted);font-size:12px;font-weight:650}
.login-brand>p{max-width:650px;margin:28px 0 22px;color:var(--text-soft);font-size:17px;line-height:1.65}
.login-scope{width:max-content;max-width:100%;display:grid;grid-template-columns:auto auto;gap:2px 10px;align-items:center;padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.login-scope>span{grid-row:1/3;align-self:stretch;display:grid;place-items:center;padding:0 8px;border-radius:7px;background:var(--primary-soft);color:var(--primary);font-size:11px;font-weight:850;letter-spacing:.06em}
.login-scope strong{font-size:13px}.login-scope small{color:var(--muted);font-size:11px}
.login-disclaimer{margin-top:20px;color:var(--muted);font-size:12px;line-height:1.55}
.login-card{width:100%;max-width:440px;justify-self:end;padding:24px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.login-card h2{margin:5px 0 6px;font-size:24px;letter-spacing:-.35px}.login-card-copy{margin:0 0 18px;color:var(--muted);font-size:13px}
.login-role-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:4px;margin-bottom:7px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.login-role-switch button{min-height:34px;padding:5px 8px;border:0;background:transparent;color:var(--muted);font-size:12px}
.login-role-switch button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px rgba(15,23,42,.08)}
.login-role-hint{min-height:20px;margin:0 0 14px;color:var(--muted);font-size:11px}
.login-card .field{margin-top:12px}.login-card .field>span{margin-bottom:2px}.login-card input,.login-card select{height:44px;border-radius:9px}
.login-submit{width:100%;height:44px;margin-top:16px;border-radius:9px}
.login-error,.login-first-elder{margin-top:12px;padding:9px 11px;border-radius:8px;font-size:12px;line-height:1.45}
.login-error{border:1px solid color-mix(in srgb,var(--danger) 30%,var(--border));background:var(--danger-soft);color:var(--danger)}
.login-first-elder{border:1px solid color-mix(in srgb,var(--warning) 28%,var(--border));background:var(--warning-soft);color:var(--warning)}
.login-error[hidden],.login-first-elder[hidden]{display:none}
@media(max-width:860px){.login-shell{padding:22px}.login-stage{grid-template-columns:1fr;gap:18px;max-width:560px}.login-brand{padding:6px 2px}.login-brand>p{margin:18px 0 15px;font-size:15px}.login-brand h1{font-size:34px}.login-card{max-width:none;justify-self:stretch}}
@media(max-width:520px){.login-shell{padding:14px;place-items:start center}.login-brand-top{align-items:flex-start}.login-mark{width:44px;height:44px;border-radius:12px}.login-brand h1{font-size:29px}.login-scope{width:100%}.login-card{padding:18px;border-radius:12px}.login-role-switch{grid-template-columns:1fr}.login-role-switch button{min-height:36px}}
