*,:before,:after{box-sizing:border-box}:root{--auth-bg-1:#0f172a;--auth-bg-2:#1e293b;--auth-bg-3:#312e81;--auth-card:#fff;--auth-text:#111827;--auth-muted:#6b7280;--auth-border:#d1d5db;--auth-border-strong:#9ca3af;--auth-accent:#3b82f6;--auth-accent-hover:#2563eb;--auth-accent-ring:#3b82f640;--auth-danger:#b91c1c;--auth-danger-bg:#fef2f2;--auth-danger-border:#fecaca;--auth-warn:#92400e;--auth-warn-bg:#fef3c7}html,body{height:100%;margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif}.auth-body{background:radial-gradient(1200px 600px at 20% 10%, #3b82f633, transparent 60%), radial-gradient(900px 500px at 80% 90%, #8b5cf62e, transparent 60%), linear-gradient(135deg, var(--auth-bg-1) 0%, var(--auth-bg-2) 55%, var(--auth-bg-3) 130%);min-height:100vh;color:var(--auth-text);justify-content:center;align-items:center;padding:24px;display:flex}.auth-card{background:var(--auth-card);border-radius:12px;width:100%;max-width:400px;padding:36px 32px 28px;box-shadow:0 25px 50px -12px #00000073,0 0 0 1px #ffffff0f}.auth-brand{text-align:center;margin-bottom:28px}.auth-logo{color:#fff;background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:12px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 14px;display:flex}.auth-brand h1{letter-spacing:-.01em;color:var(--auth-text);margin:0 0 4px;font-size:20px;font-weight:700}.auth-sub{color:var(--auth-muted);margin:0;font-size:13px}.auth-field{margin-bottom:16px}.auth-field label{color:var(--auth-text);letter-spacing:.02em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.auth-field input{border:1px solid var(--auth-border);width:100%;color:var(--auth-text);background:#fff;border-radius:6px;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}.auth-field input::placeholder{color:#a5adb9}.auth-field input:hover{border-color:var(--auth-border-strong)}.auth-field input:focus{border-color:var(--auth-accent);box-shadow:0 0 0 3px var(--auth-accent-ring);outline:none}.auth-field input:disabled{color:var(--auth-muted);background:#f3f4f6}.auth-password{display:block;position:relative}.auth-password input{padding-right:44px}.auth-toggle{cursor:pointer;color:var(--auth-muted);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:8px;transition:color .1s,background-color .1s;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.auth-toggle:hover{color:var(--auth-text);background:#0000000a}.auth-toggle:focus-visible{outline:2px solid var(--auth-accent);outline-offset:1px}.auth-caps{color:var(--auth-warn);background:var(--auth-warn-bg);border-radius:4px;align-items:center;gap:6px;margin:8px 0 0;padding:4px 8px;font-size:12px;display:inline-flex}.auth-error{border:1px solid var(--auth-danger-border);background:var(--auth-danger-bg);color:var(--auth-danger);border-radius:6px;margin:4px 0 16px;padding:10px 12px;font-size:13px;line-height:1.4}.auth-submit{background:var(--auth-accent);color:#fff;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:10px;width:100%;padding:11px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:background-color .1s,transform 50ms;display:inline-flex}.auth-submit:hover:not(:disabled){background:var(--auth-accent-hover)}.auth-submit:active:not(:disabled){transform:translateY(1px)}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-submit:focus-visible{outline:2px solid var(--auth-accent);outline-offset:2px}.auth-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-footer{text-align:center;color:var(--auth-muted);margin:24px 0 0;font-size:12px}@media (prefers-reduced-motion:reduce){.auth-submit{transition:none}.auth-spinner{animation-duration:1.6s}}@media (width<=480px){.auth-card{border-radius:10px;padding:28px 22px 22px}.auth-brand h1{font-size:18px}}
