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