.auth-page,.auth-page *,.auth-page :after,.auth-page :before,.auth-panel,.auth-panel *,.auth-panel :after,.auth-panel :before{box-sizing:border-box}.auth-page,.auth-panel{font-family:var(--app-font-sans);font-size:16px;line-height:1.7;color:var(--app-color-ink);-webkit-font-smoothing:antialiased}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;background:var(--app-color-bg)}.auth-panel{display:block;width:100%}.auth-page .product-wordmark,.auth-panel .product-wordmark{display:inline-flex;align-items:baseline;gap:0;white-space:nowrap;font-family:var(--app-font-display);font-size:1.125rem;font-weight:700;letter-spacing:normal;color:var(--app-color-primary);line-height:1.2}.auth-page .product-wordmark__light,.auth-page .product-wordmark__pipe,.auth-panel .product-wordmark__light,.auth-panel .product-wordmark__pipe{font-weight:400;opacity:.75}.auth-page .btn,.auth-panel .btn{display:inline-flex;align-items:center;justify-content:center;background:var(--app-color-primary);color:var(--app-color-on-primary);border:0;border-radius:var(--app-radius-button);padding:10px 16px;min-height:44px;font-family:var(--app-font-sans);font-size:14px;font-weight:500;cursor:pointer;text-decoration:none}.auth-page .btn:hover,.auth-panel .btn:hover{background:color-mix(in srgb,var(--app-color-primary) 90%,transparent)}.auth-page .btn.ghost,.auth-panel .btn.ghost{background:var(--app-color-surface);color:var(--app-color-ink);border:1px solid var(--app-color-control-border)}.auth-page .btn.ghost:hover,.auth-panel .btn.ghost:hover{background:var(--app-color-nav-active-bg)}.auth-page .btn:disabled,.auth-panel .btn:disabled{opacity:.45;cursor:not-allowed}.auth-card{width:100%;max-width:420px;background:var(--app-color-surface);border:1px solid var(--app-color-border);border-radius:var(--app-radius-card);padding:32px 28px 28px}.auth-brand{margin:0 0 24px}.auth-card h1,.auth-panel h1{font-family:var(--app-font-display);font-size:1.75rem;font-weight:400;letter-spacing:.015em;margin:0 0 8px;line-height:1.22}.auth-sub{font-size:15px;line-height:1.7;color:var(--app-color-muted);margin:0 0 24px}.auth-form{display:grid;gap:14px}.auth-form--hydrating{pointer-events:none}.auth-form--hydrating .auth-field input:disabled{opacity:.45}.auth-field label{display:block;font-size:.95rem;font-weight:500;margin-bottom:6px;color:var(--app-color-ink)}.auth-field input{width:100%;border:1px solid var(--app-color-control-border);border-radius:var(--app-radius-button);padding:10px 12px;font-size:15px;font-family:inherit;color:var(--app-color-ink);background:var(--app-color-surface)}.auth-field input:focus-visible{outline:2px solid var(--app-color-focus);outline-offset:1px;border-color:var(--app-color-control-border)}.auth-page .auth-field input:focus,.auth-page .auth-field input:focus-visible{outline:none;outline-offset:0;border-color:#111111;box-shadow:none}.auth-field input:disabled{opacity:.6}.auth-form-links{margin:8px 0 0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 16px;font-size:13px;line-height:1.4}.auth-form-links a{color:var(--app-color-primary,var(--primary));font-weight:500;text-decoration:none}.auth-form-links a:hover{text-decoration:underline}.auth-error{font-size:14px;color:var(--app-color-status-danger);margin:0}.auth-submit{margin-top:4px;width:100%}.auth-legal{margin:12px 0 0;font-size:13px;line-height:1.45;color:var(--app-color-muted)}.auth-legal a{color:inherit;font-weight:500}.auth-switch{margin-top:20px;padding-top:20px;border-top:1px solid var(--app-color-border);font-size:14px;color:var(--app-color-muted);text-align:center}.auth-switch a{color:var(--app-color-primary);font-weight:500}.auth-back{display:inline-block;margin-bottom:20px;font-size:14px;color:var(--app-color-muted)}.auth-back:hover{color:var(--app-color-primary)}.auth-success{background:var(--app-color-primary-soft);border-radius:var(--app-radius-button);padding:14px 16px;font-size:14px;line-height:1.5;color:var(--app-color-ink)}.auth-success a{color:var(--app-color-primary);font-weight:500}.auth-modal-panel{min-height:0;padding:0;background:transparent}.auth-dialog-content>button,.auth-sheet>button{appearance:none;border:0;background:transparent;padding:0;margin:0;color:inherit;box-shadow:none;cursor:pointer;line-height:0}.auth-dialog-content{display:grid;width:calc(100% - 2rem);max-width:420px;max-height:min(90dvh,calc(100% - 2rem));overflow-y:auto;border:1px solid var(--border,var(--app-color-border));background:var(--background,var(--app-color-surface));color:var(--foreground,var(--app-color-ink));border-radius:2px!important;box-shadow:none!important;padding:24px 28px!important;gap:0!important;grid-template-columns:minmax(0,1fr)}body:has(.auth-dialog-content) [data-slot=dialog-overlay],body:has(.auth-sheet) [data-slot=sheet-overlay]{position:fixed;inset:0;z-index:50;background:rgb(0 0 0/.5)}.auth-sheet{position:fixed;inset-inline:0;bottom:0;z-index:50;max-height:90dvh;overflow-y:auto;background:var(--background,var(--app-color-surface));border-radius:2px 2px 0 0!important}.auth-social-stack{display:grid;gap:10px;margin-bottom:16px}.auth-social-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:0 16px;border:1px solid var(--app-color-control-border);border-radius:var(--app-radius-button);background:var(--app-color-surface);font-size:14px;font-weight:500;cursor:pointer}.auth-social-btn:hover{background:var(--app-color-nav-active-bg)}.auth-social-divider{margin:4px 0 0;text-align:center;font-size:13px;color:var(--app-color-muted)}.auth-link-btn{background:none;border:0;padding:0;color:var(--app-color-primary);font-weight:500;cursor:pointer;font-size:inherit}.auth-oauth-progress{width:120px;height:2px;margin:16px auto 0;background:rgba(0,0,0,.08);border-radius:1px;overflow:hidden}.auth-oauth-progress__bar{height:100%;width:45%;background:var(--app-color-primary);animation:auth-oauth-shimmer 1.2s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.auth-oauth-progress__bar{animation:none;width:50%}}@keyframes auth-oauth-shimmer{0%{transform:translateX(-100%)}to{transform:translateX(260%)}}