/* Login page: shares the workspace palette (styles.css tokens) and Inter from dashboard.css. */
@font-face{font-family:Inter;src:url('fonts/inter-variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--primary:#155eef;--primary-dark:#1045b5;--ink:#14233b;--muted:#607089;--line:#dbe5f0;--danger:#b42318}
*{box-sizing:border-box}
html,body{height:100%}
body.login-page{margin:0;color:var(--ink);font:15px/1.6 Inter,"Microsoft YaHei UI","Microsoft YaHei","PingFang SC",system-ui,sans-serif;
  background:#0d2343 url('../media/atmospheres/neon-blue-waves.webp') center/cover no-repeat fixed}
.login-shell{min-height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:center;gap:48px;max-width:1080px;margin:0 auto;padding:40px 32px}
.login-intro{color:#fff}
.login-kicker{letter-spacing:.24em;font-size:12px;opacity:.75;margin:0 0 18px}
.login-intro h2{font-size:clamp(36px,5vw,58px);line-height:1.15;margin:0 0 18px;font-weight:650}
.login-intro p:last-child{opacity:.8;max-width:30em;margin:0}
.login-card{background:#ffffffee;backdrop-filter:blur(18px);border:1px solid #fff;border-radius:28px;padding:34px 32px 28px;box-shadow:0 24px 60px #06183a40}
.login-brand{display:inline-block;font-weight:700;color:var(--primary);text-decoration:none;font-size:15px;margin-bottom:10px}
.login-card h1{font-size:26px;margin:0 0 20px;font-weight:650}
.login-card h1 span{margin-left:8px;color:var(--primary)}
.role-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:14px;background:#eef3f9;margin-bottom:22px}
.role-tabs button{border:0;background:none;font:inherit;font-size:14px;color:var(--muted);padding:8px 4px;border-radius:10px;cursor:pointer}
.role-tabs button[aria-selected=true]{background:#fff;color:var(--primary);font-weight:600;box-shadow:0 2px 8px #1d3c6a1a}
.role-tabs button:focus-visible,.login-card input:focus-visible,.reveal:focus-visible,.login-submit:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
form label{display:block;font-size:13px;font-weight:600;margin:0 0 6px;color:#2e4360}
.login-card input{width:100%;font:inherit;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);margin-bottom:16px}
.password-row{position:relative}
.password-row input{padding-right:64px}
.reveal{position:absolute;right:6px;top:6px;border:0;background:#eef3f9;color:var(--muted);font:inherit;font-size:12px;padding:5px 10px;border-radius:8px;cursor:pointer}
.login-error{color:var(--danger);background:#fef3f2;border-radius:10px;padding:8px 12px;font-size:13px;margin:-4px 0 14px}
.login-submit{width:100%;border:0;border-radius:12px;background:var(--primary);color:#fff;font:inherit;font-weight:600;padding:12px;cursor:pointer;transition:background .2s}
.login-submit:hover{background:var(--primary-dark)}
.login-submit:disabled{opacity:.6;cursor:wait}
.login-back{display:inline-block;margin-top:18px;color:var(--muted);text-decoration:none;font-size:13px}
.login-back:hover{color:var(--primary)}
@media(max-width:800px){
  .login-shell{grid-template-columns:1fr;gap:24px;padding:28px 16px}
  .login-intro h2{font-size:32px}
  .login-intro p:last-child{display:none}
  .login-card{padding:26px 20px 22px}
}
@media(prefers-reduced-motion:reduce){.login-submit{transition:none}}
