/* QRForge authentication pages — uses the same design tokens as style.css */
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:32px 20px;position:relative;overflow:hidden}
.auth-shell::before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 15% 20%,rgba(200,155,60,.12),transparent 28%),radial-gradient(circle at 85% 80%,rgba(32,48,88,.10),transparent 30%)}
.auth-wrap{width:min(100%,980px);display:grid;grid-template-columns:1fr 1fr;background:color-mix(in srgb,var(--paper) 94%,var(--ink-900) 3%);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 70px -28px rgba(15,27,51,.45);overflow:hidden;position:relative;z-index:1}
.auth-brand-panel{background:var(--ink-900);color:var(--text-on-dark);padding:48px;display:flex;flex-direction:column;justify-content:space-between;min-height:610px;position:relative;overflow:hidden}
.auth-brand-panel::before{content:"";position:absolute;inset:18px;border:1px dashed rgba(238,241,251,.18);border-radius:12px;pointer-events:none}
.auth-brand-panel::after{content:"QR";position:absolute;right:-25px;bottom:-70px;font:700 240px/1 var(--font-display);color:rgba(200,155,60,.08);letter-spacing:-.08em}
.auth-brand-content,.auth-brand-footer{position:relative;z-index:1}
.auth-logo{display:inline-flex;align-items:center;gap:10px;color:var(--text-on-dark);text-decoration:none;font:700 1.2rem var(--font-display)}
.auth-logo .brand-mark{width:34px;height:34px}
.auth-kicker{font:500 .72rem var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--brass-bright);margin:58px 0 14px}
.auth-brand-panel h1{font-size:clamp(2.1rem,4vw,3.3rem);max-width:390px;margin-bottom:18px}
.auth-brand-panel p{color:var(--text-on-dark-dim);max-width:410px}
.auth-points{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:12px}
.auth-points li{display:flex;gap:10px;color:var(--text-on-dark-dim);font-size:.9rem}
.auth-points li::before{content:"✓";color:var(--brass-bright);font-weight:700}
.auth-brand-footer{font:400 .72rem var(--font-mono);color:rgba(170,180,214,.72);text-transform:uppercase;letter-spacing:.06em}
.auth-form-panel{padding:48px;display:flex;align-items:center}
.auth-form{width:100%;max-width:430px;margin:0 auto}
.auth-form h2{font-size:2rem;margin-bottom:8px}
.auth-subtitle{font-size:.92rem;margin-bottom:30px}
.auth-field{margin-bottom:18px}
.auth-field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:7px}
.auth-field input{width:100%;height:46px;padding:0 13px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper);color:var(--text-on-light);font:400 .94rem var(--font-body);outline:none}
.auth-field input:focus{border-color:var(--brass);box-shadow:0 0 0 3px rgba(200,155,60,.12)}
.auth-password-row{position:relative}.auth-password-row input{padding-right:82px}
.auth-password-toggle{position:absolute;right:8px;top:7px;height:32px;padding:0 9px;border:1px solid var(--line);background:transparent;color:var(--text-on-light-dim);border-radius:5px;font:500 .72rem var(--font-mono);cursor:pointer}
.auth-password-toggle:hover{color:var(--brass);border-color:var(--brass)}
.auth-submit{margin-top:8px}
.auth-error{display:none;margin:14px 0 0;padding:11px 13px;border:1px solid color-mix(in srgb,var(--danger) 60%,var(--line));background:color-mix(in srgb,var(--danger) 9%,transparent);color:var(--danger);border-radius:var(--radius-sm);font-size:.83rem}
.auth-error.show{display:block}
.auth-switch{text-align:center;margin:22px 0 0;font-size:.86rem}.auth-switch a{color:var(--brass);font-weight:600;text-decoration:none}.auth-switch a:hover{text-decoration:underline}
.auth-note{margin:18px 0 0;padding:12px 14px;border:1px dashed var(--line);border-radius:var(--radius-sm);font-size:.76rem;color:var(--text-on-light-dim)}
.auth-topbar{position:absolute;top:20px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;z-index:2}.auth-topbar .brand{color:var(--text-on-light)}
.auth-top-actions{display:flex;gap:8px;align-items:center}
.auth-loading{min-height:100vh;display:grid;place-items:center}.auth-loading .card{max-width:380px;text-align:center}
@media(max-width:760px){.auth-shell{padding:82px 16px 24px}.auth-wrap{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-form-panel{padding:34px 22px}.auth-topbar{top:14px;left:16px;right:16px}}
