.login-page{min-height:100vh;min-height:100dvh;background:var(--canvas);color:var(--ink-950)}
.login-shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(340px,.9fr) minmax(500px,1.1fr)}
.login-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:clamp(28px,5vw,72px);background:var(--video-surface);color:#fff}
.login-brand::after{content:"";position:absolute;width:420px;height:420px;right:-210px;bottom:8%;border:1px solid rgba(255,255,255,.11);border-radius:50%;box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.018)}
.login-back{position:relative;z-index:1;width:max-content;color:rgba(255,255,255,.72);font-size:14px;text-decoration:none}
.brand-lockup{position:relative;z-index:1;display:flex;align-items:center;gap:11px;margin-top:clamp(42px,8vh,88px);font-size:16px;font-weight:700;letter-spacing:.08em}
.brand-seal{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--accent-600);font-size:16px}
.brand-message{position:relative;z-index:1;margin:auto 0;max-width:520px}
.brand-kicker{color:#e8cda7;font-size:12px;letter-spacing:.22em}
.brand-message h1{margin:18px 0 20px;font-size:clamp(36px,4.3vw,64px);line-height:1.08;letter-spacing:-.06em}
.brand-message p{max-width:460px;margin:0;color:rgba(255,255,255,.66);font-size:16px;line-height:1.8}
.brand-foot{position:relative;z-index:1;margin:0;color:rgba(255,255,255,.66);font-size:12px}.brand-foot a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.login-panel{display:grid;place-items:center;padding:40px;background:var(--surface-soft)}
.login-panel-inner{width:min(430px,100%)}
.login-eyebrow{margin:0 0 8px;color:var(--accent-600);font-size:12px;font-weight:700;letter-spacing:.18em}
.login-panel h2{margin:0;font-size:38px;letter-spacing:-.05em}
.login-intro{margin:8px 0 30px;color:var(--ink-500);font-size:15px}
.role-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:24px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.role-tabs button{min-height:44px;border:0;border-radius:10px;background:transparent;color:var(--ink-500);font-size:14px}
.role-tabs button.is-selected{background:var(--primary-100);color:var(--primary-800);font-weight:700}
.login-field{display:grid;gap:8px;margin-bottom:18px}
.login-field label{color:var(--ink-700);font-size:14px;font-weight:700}
.login-field input{width:100%;height:52px;border:1px solid var(--line-strong);border-radius:12px;padding:0 14px;background:var(--surface);color:var(--ink-950);font-size:16px}
.password-input{position:relative}.password-input input{padding-right:64px}.password-input button{position:absolute;right:5px;top:5px;height:42px;border:0;background:transparent;color:var(--primary-700);font-size:13px}
.login-error{min-height:24px;margin:0 0 10px;color:var(--live-600);font-size:13px}
.login-submit{width:100%;min-height:52px;border:0;border-radius:12px;background:var(--primary-700);color:#fff;font-size:16px;font-weight:700;box-shadow:0 12px 26px rgba(36,88,79,.18)}
.login-note{margin:24px 0 0;color:var(--ink-500);font-size:13px}
@media(max-width:800px){.login-shell{grid-template-columns:1fr}.login-brand{min-height:235px;padding:24px}.login-back{font-size:13px}.brand-lockup{margin-top:28px}.brand-message{margin:30px 0 0}.brand-message p{display:none}.brand-foot{display:block;margin-top:24px}.login-panel{padding:30px 20px 44px;place-items:start center}.login-panel h2{font-size:30px}.login-intro{margin-bottom:22px}}
