.auth:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 60% 50% at 50% 30%,color-mix(in srgb,var(--brand) 14%,transparent) 0%,transparent 65%),radial-gradient(ellipse 80% 60% at 50% 100%,color-mix(in srgb,var(--brand) 8%,transparent) 0%,transparent 70%)}.auth{font-family:var(--font-sans);background:var(--bg);min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);gap:var(--space-8)}.auth a,.auth .link-btn{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:var(--fg-muted);transition:all .12s ease}.auth a:hover,.auth .link-btn:hover:enabled{text-decoration-thickness:2.5px;text-decoration-color:var(--brand)}.auth .brand{display:flex;align-items:center;gap:var(--space-3);position:relative}.auth .brand-name{font-family:var(--font-brand);font-size:40px;letter-spacing:-.01em}.auth .card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-2xl);padding:var(--space-8);position:relative}.auth .card-header{text-align:center;margin-bottom:var(--space-8)}.auth .card-title{font-weight:600;font-size:24px;line-height:28px;letter-spacing:-.02em;margin-bottom:var(--space-2)}.auth .card-subtitle{font-size:14px;line-height:20px;color:var(--fg-muted)}.auth .form{display:flex;flex-direction:column;gap:var(--space-5)}.auth .field{display:flex;flex-direction:column;gap:var(--space-2)}.auth .field-label-row{display:flex;justify-content:space-between;align-items:baseline}.auth .field-label{font-weight:500;font-size:13px;line-height:16px}.auth .field-link{font-size:12px;color:var(--fg-muted)}.auth .link-btn{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}.auth .link-btn:disabled{cursor:default;opacity:.6}.auth .input-group input{flex:1}.auth .input-group>:first-child{pointer-events:none}.auth .toggle-eye{color:var(--fg-muted);border-radius:var(--radius-sm)}.auth .hint{display:flex;align-items:center;gap:var(--space-1);margin:0;font-size:12px;color:var(--fg-muted)}.auth .caps-alert{width:calc(.875rem * 24 / 22);height:calc(.875rem * 24 / 22);flex-shrink:0}.auth .pw-rules{list-style:none;margin:var(--space-1) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.auth .pw-rule{display:flex;align-items:center;gap:var(--space-2);font-size:12px;color:var(--fg-muted)}.auth .pw-rule.met{color:var(--fg)}.auth .pw-check{display:inline-flex;align-items:center;justify-content:center;width:.875rem;height:.875rem;flex-shrink:0;border:1px solid var(--line);border-radius:50%}.auth .pw-tick{width:.625rem;height:.625rem;color:var(--brand);opacity:0;transform:translate(.5px);transition:opacity .15s}.auth .pw-tick path{stroke-width:4}.auth .pw-rule.met .pw-tick{opacity:1}.auth .code-inputs{display:flex;gap:var(--space-2)}.auth .code-digit{width:46px;height:56px;text-align:center;font-size:28px;font-weight:500;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);transition:border-color .22s,box-shadow .22s}.auth .code-digit:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 30%,transparent)}.auth .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);line-height:20px;padding:11px var(--space-5);box-shadow:var(--shadow-btn);transition:background .22s,border-color .22s,color .22s,box-shadow .22s}.auth .divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-2) 0}.auth .divider:before,.auth .divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth .divider span{font-size:11px;font-weight:500;color:var(--fg-muted);letter-spacing:.08em}.auth .sso-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.auth .sso-row .btn{padding:10px 14px}.auth .sso-row .btn svg{margin-left:-5px}.auth .card-footer{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--line);text-align:center;font-size:12px;color:var(--fg-muted)}.auth .card-footer a{color:var(--fg-muted)}.auth .error-banner{display:flex;align-items:flex-start;gap:var(--space-2);padding:10px var(--space-3);background:color-mix(in srgb,var(--brand) 18%,var(--surface));border:1px solid var(--brand);border-radius:var(--radius-md);color:var(--brand);font-size:13px;line-height:18px;margin-bottom:var(--space-5)}.auth .error-banner>:first-child{flex-shrink:0;margin-top:1px}.auth .error-banner-text{color:var(--fg)}
