.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:40px 20px;position:relative;overflow:hidden}.auth-wrap:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(20,80,107,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(20,80,107,.05) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 0%,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 0%,#000 25%,transparent 75%)}.auth-card{position:relative;width:100%;max-width:420px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 30px 28px;box-shadow:0 18px 50px -12px #0a2e3f38,0 4px 14px #0a2e3f0f}.auth-brand{display:inline-flex;margin-bottom:22px;text-decoration:none}.auth-heading{font-size:23px;font-weight:600;letter-spacing:-.025em;margin:0 0 6px}.auth-sub{font-size:13.5px;color:var(--ink-soft);margin:0 0 24px;line-height:1.5}.auth-beta{margin:0 0 22px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--primary) 7%,transparent)}.auth-beta__tag{display:inline-block;font:600 10px var(--font-mono, monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin-bottom:5px}.auth-beta__text{margin:0;font-size:12.5px;line-height:1.5;color:var(--ink-soft)}.auth-beta__text strong{color:var(--foreground)}.auth-oauth{display:flex;flex-direction:column}.google-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 14.5px var(--font-sans);color:#1f1f1f;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:11px 16px;cursor:pointer;transition:background .15s,box-shadow .15s,transform .15s}.google-btn:hover:not(:disabled){background:#f7f7f5;box-shadow:0 2px 8px #0a2e3f14;transform:translateY(-1px)}.google-btn:disabled{opacity:.6;cursor:progress}.auth-consent{margin:10px 2px 0;text-align:center;font-size:11.5px;line-height:1.5;color:var(--muted-foreground)}.auth-consent a{color:var(--ink-soft);text-decoration:underline}.auth-consent a:hover{color:var(--primary)}.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0 6px;color:var(--muted-foreground);font:600 11px var(--font-mono, monospace);letter-spacing:.08em;text-transform:uppercase}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-form{display:flex;flex-direction:column}.auth-label{font-size:12.5px;font-weight:600;color:var(--foreground);margin:14px 0 6px}.auth-label:first-of-type{margin-top:0}.auth-hint{font-weight:400;color:var(--muted-foreground);font-size:11.5px}.auth-input{font:400 14px var(--font-sans);color:var(--foreground);background:var(--background);border:1px solid var(--input);border-radius:var(--radius-md);padding:11px 13px;transition:border-color .15s,box-shadow .15s;width:100%}.auth-input::placeholder{color:var(--muted-foreground)}.auth-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent)}.auth-submit{margin-top:22px;font:600 15px var(--font-sans);color:#fff;background:var(--primary);border:none;border-radius:var(--radius-md);padding:13px 18px;cursor:pointer;box-shadow:0 4px 14px #0a2e3f38;transition:background .18s,transform .18s}.auth-submit:hover:not(:disabled){background:var(--brand-ink);transform:translateY(-1px)}.auth-submit:disabled{opacity:.6;cursor:progress}.auth-forgot{margin-top:14px;text-align:center;font-size:12.5px;color:var(--ink-soft);text-decoration:none}.auth-forgot:hover{color:var(--primary)}.auth-msg{font-size:13px;line-height:1.5;padding:11px 14px;border-radius:var(--radius-md);margin-bottom:16px;display:flex;flex-direction:column;gap:2px}.auth-msg--err{color:var(--destructive);background:color-mix(in srgb,var(--destructive) 8%,transparent);border:1px solid color-mix(in srgb,var(--destructive) 28%,transparent)}.auth-msg--ok{color:var(--success);background:color-mix(in srgb,var(--success) 9%,transparent);border:1px solid color-mix(in srgb,var(--success) 28%,transparent)}.auth-msg strong{color:inherit}.auth-alt{margin:22px 0 0;text-align:center;font-size:13px;color:var(--ink-soft)}.auth-alt a{color:var(--primary);font-weight:600;text-decoration:none}.auth-alt a:hover{text-decoration:underline}
