.auth-shell{background:var(--background);min-height:100dvh;color:var(--foreground);font-family:var(--font-sans);place-items:center;padding:24px 16px;display:grid;position:relative;overflow:hidden}.auth-shell:before{content:"";background:radial-gradient(680px 380px at 50% -8%, color-mix(in oklab, var(--primary) 26%, transparent), transparent 62%);pointer-events:none;z-index:0;position:absolute;top:0;bottom:0;left:0;right:0}.auth-bg{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.auth-controls{z-index:3;align-items:center;gap:8px;display:flex;position:absolute;top:18px;right:18px}.auth-theme-toggle,.auth-lang{border:1px solid var(--border);background:color-mix(in oklab, var(--card) 80%, transparent);min-width:38px;height:38px;color:var(--foreground);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:600;transition:border-color .15s,background .15s;display:inline-flex}.auth-theme-toggle:hover,.auth-lang:hover{border-color:color-mix(in oklab, var(--primary) 60%, var(--border))}.auth-wrap{z-index:2;flex-direction:column;align-items:center;gap:18px;width:100%;max-width:428px;display:flex;position:relative}.auth-card{background:var(--card);border:1px solid var(--border);border-radius:22px;width:100%;padding:32px 28px;animation:.55s cubic-bezier(.16,1,.3,1) both auth-card-in;box-shadow:0 24px 60px -28px #00000047}@keyframes auth-card-in{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:none}}.auth-brand{text-align:center;flex-direction:column;align-items:center;gap:14px;margin-bottom:22px;display:flex}.auth-logo{color:var(--foreground);transition:transform .2s;display:inline-flex}.auth-logo:hover{transform:translateY(-1px)}.auth-logo svg{display:block}.auth-icon{background:color-mix(in oklab, var(--primary) 18%, var(--card));width:52px;height:52px;color:var(--primary-foreground);border-radius:16px;place-items:center;display:grid}.auth-icon svg{color:color-mix(in oklab, var(--primary) 70%, var(--foreground))}.auth-title{font-family:var(--font-heading);letter-spacing:-.02em;margin:0;font-size:24px;font-weight:700;line-height:1.15}.auth-sub{color:var(--muted-foreground);margin:6px 0 0;font-size:14px;line-height:1.5}.auth-field{text-align:left;margin-bottom:14px}.auth-label{color:var(--muted-foreground);margin-bottom:7px;font-size:12.5px;font-weight:600;display:block}.auth-input{border:1px solid var(--input);background:var(--background);width:100%;height:46px;color:var(--foreground);border-radius:12px;outline:none;padding:0 14px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.auth-input::placeholder{color:color-mix(in oklab, var(--muted-foreground) 75%, transparent)}.auth-input:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) 22%, transparent)}.auth-pw{position:relative}.auth-pw .auth-input{padding-right:44px}.auth-pw-toggle{width:42px;height:46px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:none;place-items:center;display:grid;position:absolute;top:0;right:0}.auth-pw-toggle:hover{color:var(--foreground)}.auth-btn-primary{background:var(--primary);width:100%;height:46px;color:var(--primary-foreground);font-family:var(--font-heading);cursor:pointer;border:none;border-radius:999px;margin-top:4px;font-size:14.5px;font-weight:700;transition:opacity .15s,transform 50ms}.auth-btn-primary:hover:not(:disabled){opacity:.9}.auth-btn-primary:active:not(:disabled){transform:translateY(1px)}.auth-btn-primary:disabled{opacity:.55;cursor:default}.auth-btn-ghost{width:100%;height:42px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:none;border-radius:999px;margin-top:8px;font-size:13.5px;font-weight:600;transition:color .15s}.auth-btn-ghost:hover:not(:disabled){color:var(--foreground)}.auth-btn-google{border:1px solid var(--input);background:var(--background);width:100%;height:46px;color:var(--foreground);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:10px;font-size:14px;font-weight:600;transition:border-color .15s,background .15s;display:inline-flex}.auth-btn-google:hover:not(:disabled){border-color:color-mix(in oklab, var(--primary) 55%, var(--border));background:color-mix(in oklab, var(--primary) 6%, var(--background))}.auth-btn-google:disabled{opacity:.55;cursor:default}.auth-btn-method{border:1px solid var(--border);background:var(--background);width:100%;color:var(--foreground);text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:13px;margin-bottom:10px;padding:14px 16px;transition:border-color .15s,background .15s,transform .1s;display:flex}.auth-btn-method:hover:not(:disabled){border-color:color-mix(in oklab, var(--primary) 55%, var(--border));background:color-mix(in oklab, var(--primary) 7%, var(--background));transform:translateY(-1px)}.auth-btn-method:disabled{opacity:.55;cursor:default}.auth-btn-method svg{color:color-mix(in oklab, var(--primary) 70%, var(--foreground));flex-shrink:0}.auth-btn-method-text{flex-direction:column;gap:2px;font-size:14px;font-weight:600;display:flex}.auth-btn-method-hint{color:var(--muted-foreground);font-size:12px;font-weight:500}.auth-divider{color:var(--muted-foreground);align-items:center;gap:12px;margin:16px 0;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-row-end{justify-content:flex-end;margin:2px 0 10px;display:flex}.auth-forgot,.auth-link{color:color-mix(in oklab, var(--primary) 65%, var(--foreground));font-size:13px;font-weight:600;text-decoration:none}.auth-forgot:hover,.auth-link:hover{text-decoration:underline;-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);text-underline-offset:3px}.auth-switch{border-top:1px solid var(--border);text-align:center;color:var(--muted-foreground);margin-top:20px;padding-top:18px;font-size:13.5px}.auth-muted{text-align:center;color:var(--muted-foreground);padding:14px 0;font-size:14px}.auth-banner{border-radius:14px;padding:14px 16px;font-size:13.5px;line-height:1.55}.auth-banner-success{background:var(--color-primary-soft);color:var(--color-primary-accent);border:1px solid color-mix(in oklab, var(--primary) 30%, transparent)}.auth-banner-error{background:color-mix(in oklab, var(--destructive) 10%, var(--card));color:var(--destructive);border:1px solid color-mix(in oklab, var(--destructive) 30%, transparent)}.auth-banner .auth-link{margin-top:6px;display:inline-block}.auth-foot{color:var(--muted-foreground);text-align:center;font-size:12px}.auth-callback{background:var(--background);min-height:100dvh;color:var(--foreground);font-family:var(--font-sans);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.auth-spinner{border:3px solid color-mix(in oklab, var(--foreground) 12%, transparent);border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-notice{background:color-mix(in oklab, var(--primary) 10%, var(--card));border:1px solid color-mix(in oklab, var(--primary) 25%, transparent);width:100%;color:var(--muted-foreground);border-radius:12px;margin-bottom:16px;padding:10px 14px;font-size:12.5px;line-height:1.5}@media (prefers-reduced-motion:reduce){.auth-card{animation:none}}
