.auth-shell{--auth-font-display:var(--font-bricolage), var(--font-plex-thai), "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--auth-font-sans:var(--font-prompt), system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;isolation:isolate;background:var(--background);min-height:100dvh;color:var(--foreground);font-family:var(--auth-font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.5;position:relative}.auth-shell *,.auth-shell :before,.auth-shell :after{box-sizing:border-box}.auth-shell .auth-backdrop{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}:root.light .auth-shell .auth-backdrop .hero-aurora{opacity:.55}.auth-shell .auth-backdrop:after{content:"";background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--background) 55%, transparent) 55%, var(--background) 94%);position:absolute;inset:0}.auth-shell .auth-stage{z-index:1;justify-content:center;align-items:center;min-height:100dvh;padding:2rem 1.25rem;display:flex;position:relative}.auth-shell .auth-card-frame{width:100%;max-width:26rem;transition:transform .15s}.auth-shell .auth-card-glass{border-radius:var(--r-2xl,26px);border:1px solid var(--border);background:color-mix(in srgb, var(--surface-panel) 78%, transparent);box-shadow:var(--shadow-modal);padding:2rem 1.5rem;position:relative}@media (min-width:640px){.auth-shell .auth-card-glass{padding:2.5rem 2.25rem}}@property --auth-beam-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.auth-shell .auth-beam{border-radius:inherit;pointer-events:none;z-index:3;-webkit-mask-composite:xor;padding:1px;position:absolute;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.auth-shell .auth-beam-arc{background:conic-gradient(from var(--auth-beam-angle), transparent 0deg, transparent 245deg, color-mix(in srgb, var(--primary) 55%, transparent) 315deg, #f5f7f9e6 342deg, transparent 360deg);animation:8s linear infinite auth-beam-spin;position:absolute;inset:0}:root.light .auth-shell .auth-beam-arc{background:conic-gradient(from var(--auth-beam-angle), transparent 0deg, transparent 245deg, color-mix(in srgb, var(--primary) 45%, transparent) 315deg, var(--primary) 342deg, transparent 360deg)}@keyframes auth-beam-spin{to{--auth-beam-angle:360deg}}.auth-shell .auth-brand{color:var(--foreground);align-items:center;gap:.625rem;text-decoration:none;display:inline-flex;position:relative}.auth-shell .auth-brand-logo{width:auto;height:2.25rem;display:block}.auth-shell .auth-brand-logo--light,:root.light .auth-shell .auth-brand-logo--dark{display:none}:root.light .auth-shell .auth-brand-logo--light{display:block}.auth-shell .auth-brand-mark{background:var(--primary);width:2.25rem;height:2.25rem;color:var(--primary-foreground);font-weight:800;font-family:var(--auth-font-display);border-radius:.75rem;place-items:center;line-height:1;display:grid}.auth-shell .auth-brand-word{font-family:var(--auth-font-display);letter-spacing:-.025em;font-size:1.5rem;font-weight:800;line-height:2rem}.auth-shell .auth-brand--card{justify-content:center;margin-bottom:1.5rem;display:flex}.auth-shell .auth-brand--card .auth-brand-logo{height:1.75rem}.auth-shell .auth-header{text-align:center;margin-bottom:1.75rem}.auth-shell .auth-title{font-family:var(--auth-font-display);letter-spacing:-.025em;margin:0;font-size:1.5rem;font-weight:800;line-height:2rem}@media (min-width:768px){.auth-shell .auth-title{font-size:1.875rem;line-height:2.25rem}}.auth-shell .auth-sub{color:var(--muted-foreground);margin-top:.375rem;font-size:.875rem;line-height:1.25rem}.auth-shell .auth-card{flex-direction:column;gap:1rem;display:flex}.auth-shell .space-y-1>*+*{margin-top:.25rem}.auth-shell .space-y-3>*+*,.auth-shell .mt-3{margin-top:.75rem}.auth-shell .mb-5{margin-bottom:1.25rem}.auth-shell .auth-oauth-row{flex-wrap:wrap;gap:.5rem;display:flex}.auth-shell .auth-oauth-row>*{flex:100%}.auth-shell .divider{text-align:center;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);align-items:center;gap:.75rem;margin:.25rem 0;font-size:.75rem;display:flex}.auth-shell .divider:before,.auth-shell .divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-shell .form-control{flex-direction:column;gap:.375rem;width:100%;display:flex}.auth-shell .label{justify-content:space-between;align-items:center;padding:0;display:flex}.auth-shell .label-text{color:var(--foreground);font-size:.875rem;font-weight:600}.auth-shell .label-text-alt{color:var(--muted-foreground);font-size:.75rem}.auth-shell .label-text-alt .text-primary,.auth-shell a.text-primary,.auth-shell .text-primary{color:var(--primary)}.auth-shell .input,.auth-shell input.input{border-radius:var(--radius);border:1px solid var(--input);background:var(--card);width:100%;height:2.75rem;color:var(--foreground);outline:none;padding:0 .875rem;font-size:.875rem;line-height:1.25rem;transition:border-color .15s,box-shadow .15s}@media (hover:none){.auth-shell .input,.auth-shell input.input{font-size:1rem}}.auth-shell .input::placeholder{color:var(--muted-foreground)}.auth-shell .input:focus,.auth-shell .input:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px var(--ring)}.auth-shell .input:disabled{opacity:.6;cursor:not-allowed}.auth-shell .input.input-error{border-color:var(--destructive)}.auth-shell .input.input-error:focus{box-shadow:0 0 0 3px var(--destructive)}.auth-shell .relative{width:100%;position:relative}.auth-shell .relative>button[type=button]{color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;align-items:center;display:inline-flex;position:absolute;top:auto;bottom:.7rem;right:.75rem}.auth-shell .relative>button[type=button] svg{width:1.1rem;height:1.1rem}.auth-shell .relative>button[type=button] .text-primary{color:var(--muted-foreground)}.auth-shell .btn{border-radius:var(--radius);height:2.75rem;min-height:2.75rem;font-family:var(--auth-font-sans);cursor:pointer;text-transform:none;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:0 1rem;font-size:.875rem;font-weight:600;line-height:1;text-decoration:none;transition:background-color .15s,border-color .15s,opacity .15s,box-shadow .15s;display:inline-flex}.auth-shell .btn:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.auth-shell .btn-primary{background:var(--slab);color:var(--slab-foreground);border-color:var(--slab)}.auth-shell .btn-primary:hover{background:color-mix(in srgb, var(--slab) 90%, #fff);border-color:color-mix(in srgb, var(--slab) 90%, #fff)}.auth-shell .btn-primary:disabled,.auth-shell .btn-primary.btn-disabled{opacity:.6;cursor:not-allowed}.auth-shell .btn-outline{color:var(--foreground);border:1px solid var(--border);background:0 0}.auth-shell .btn-outline:hover{background:var(--muted);border-color:var(--border)}.auth-shell .btn.w-full,.auth-shell .w-full{width:100%}.auth-shell .btn svg{width:1rem;height:1rem}.auth-shell .auth-notice{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);background:color-mix(in srgb, var(--primary) 10%, transparent);margin-bottom:1rem;padding:.875rem}.auth-shell .auth-notice-label{color:var(--muted-foreground);margin-bottom:.25rem;font-size:.75rem;font-weight:600;display:block}.auth-shell .auth-notice-input{border:1px solid var(--input);background:var(--card);width:100%;color:var(--foreground);cursor:not-allowed;border-radius:.5rem;padding:.4rem .625rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem}.auth-shell .auth-notice-hint{color:var(--muted-foreground);margin-top:.25rem;font-size:.75rem}.auth-shell .auth-alert{border:1px solid;border-radius:.5rem;margin-bottom:1rem;padding:.5rem .75rem;font-size:.875rem}.auth-shell .auth-agree{text-align:center;color:var(--muted-foreground);font-size:.875rem;line-height:1.25rem}.auth-shell .auth-agree a{color:var(--primary);font-weight:600;text-decoration:none}.auth-shell .auth-agree a:hover{text-decoration:underline}.auth-shell .auth-alt{text-align:center;color:var(--muted-foreground);margin-top:1.5rem;font-size:.875rem;line-height:1.25rem}.auth-shell .auth-alt a{color:var(--primary);text-underline-offset:2px;font-weight:600;text-decoration:none}.auth-shell .auth-alt a:hover{text-decoration:underline}.auth-shell .auth-trust{color:var(--muted-foreground);justify-content:center;align-items:center;gap:.375rem;margin-top:1.5rem;font-size:.6875rem;display:flex}.auth-shell .auth-trust svg{width:.75rem;height:.75rem}.auth-shell .loading{aspect-ratio:1;border:2px solid;border-top-color:#0000;border-radius:9999px;animation:.6s linear infinite auth-spin;display:inline-block}.auth-shell .loading-md{width:1.25rem;height:1.25rem}@keyframes auth-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.auth-shell .loading{opacity:.55;border-top-color:currentColor;animation:none}}.auth-shell .alert{border-radius:var(--r-md,10px);border:1px solid var(--border);background:var(--fill-subtle);color:var(--foreground);align-items:flex-start;gap:.5rem;padding:.75rem 1rem;font-size:.8125rem;line-height:1.5;display:flex}.auth-shell .alert-error{border-color:color-mix(in srgb, var(--destructive) 40%, transparent);background:color-mix(in srgb, var(--destructive) 10%, transparent);color:var(--destructive)}.auth-shell .alert-success{border-color:color-mix(in srgb, var(--success) 40%, transparent);background:color-mix(in srgb, var(--success) 10%, transparent);color:var(--success)}.auth-shell .alert-warning{border-color:color-mix(in srgb, var(--slab) 45%, transparent);background:color-mix(in srgb, var(--slab) 12%, transparent);color:var(--foreground)}.auth-shell .alert-info{border-color:var(--border);background:var(--fill-subtle);color:var(--foreground)}