.tt-auth-page{background:var(--color-cream);min-height:100vh;color:var(--color-charcoal);font-family:var(--tt-font-body);padding:var(--space-8) var(--mobile-gutter) calc(var(--space-16) + env(safe-area-inset-bottom));justify-content:center;align-items:center;font-size:16px;line-height:1.5;display:flex}.tt-auth-card{background:var(--color-ivory);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:440px;padding:var(--space-8) var(--space-5)}.tt-auth-brand{text-align:center;margin-bottom:var(--space-8)}.tt-auth-logo-link{justify-content:center;display:inline-flex}.tt-auth-logo{width:auto;height:36px;margin-bottom:var(--space-4)}.tt-auth-tagline{letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted);font-size:10px;font-weight:500;display:block}.tt-auth-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--color-forest);margin-bottom:var(--space-2);font-size:11px;font-weight:600;display:block}.tt-auth-heading{font-family:var(--tt-font-heading);color:var(--color-charcoal);margin:0 0 var(--space-2);font-size:28px;font-weight:400;line-height:1.15}.tt-auth-subheading{color:var(--color-muted);margin:0 0 var(--space-6);font-size:14px}.tt-auth-form{gap:var(--space-4);flex-direction:column;display:flex}.tt-auth-field{flex-direction:column;gap:6px;display:flex}.tt-auth-label{color:var(--color-charcoal);font-size:14px;font-weight:500}.tt-auth-input-wrap{align-items:center;display:flex;position:relative}.tt-auth-input{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;height:48px;font-family:var(--tt-font-body);color:var(--color-charcoal);transition:border-color .15s var(--tt-transition);padding:12px 14px;font-size:16px}.tt-auth-input::placeholder{color:var(--color-sage)}.tt-auth-input:focus{border-color:var(--color-forest);outline-offset:1px;outline:2px solid #3f51382e}.tt-auth-input:disabled{opacity:.6;cursor:not-allowed}.tt-auth-input.tt-auth-input-error{border-color:var(--color-error)}.tt-auth-eye-btn{border-radius:var(--radius-md);width:44px;height:44px;color:var(--color-muted);cursor:pointer;transition:color .15s var(--tt-transition);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;right:2px}.tt-auth-eye-btn:hover{color:var(--color-forest)}.tt-auth-eye-btn svg{stroke:currentColor;stroke-width:1.75px;fill:none;width:18px;height:18px}.tt-auth-pw-checks{gap:var(--space-1);margin-top:var(--space-1);flex-direction:column;display:flex}.tt-auth-pw-check{align-items:center;gap:var(--space-2);color:var(--color-muted);transition:color .15s var(--tt-transition);font-size:12px;font-weight:500;line-height:1.35;display:flex}.tt-auth-pw-check-passed{color:var(--color-forest)}.tt-auth-pw-check svg{stroke:currentColor;stroke-width:2px;fill:none;flex-shrink:0;width:14px;height:14px}.tt-auth-error-banner{border-radius:var(--radius-md);color:var(--color-error);background:#a63d4014;border:1px solid #a63d4059;padding:12px 14px;font-size:14px;line-height:1.4}.tt-auth-field-error{color:var(--color-error);font-size:13px}.tt-auth-submit{justify-content:center;align-items:center;gap:var(--space-2);width:100%;min-height:52px;margin-top:var(--space-2);background:var(--color-forest);color:var(--color-white);border-radius:var(--radius-md);font-family:var(--tt-font-body);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background-color .15s var(--tt-transition);border:none;font-size:13px;font-weight:600;display:flex}.tt-auth-submit:hover{background:var(--color-forest-dark)}.tt-auth-submit:active{background:var(--color-forest-dark);transform:translateY(1px)}.tt-auth-submit:disabled{background:var(--color-sage);color:var(--color-white);cursor:not-allowed;transform:none}.tt-auth-submit:focus-visible{outline-offset:2px;outline:2px solid #3f51388c}.tt-auth-submit-link{margin-top:var(--space-6);text-decoration:none}.tt-auth-spinner{width:16px;height:16px;animation:.8s linear infinite tt-auth-spin}@keyframes tt-auth-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tt-auth-spinner{animation-duration:2s}.tt-auth-submit,.tt-auth-input,.tt-auth-eye-btn,.tt-auth-link{transition:none}}.tt-auth-success{text-align:center;padding:var(--space-4) 0}.tt-auth-success-icon{width:56px;height:56px;margin:0 auto var(--space-5);background:var(--color-sage-light);border-radius:50%;justify-content:center;align-items:center;display:flex}.tt-auth-success-icon svg{width:26px;height:26px;stroke:var(--color-forest);stroke-width:2px;fill:none}@media (min-width:1024px){.tt-auth-success-icon{width:64px;height:64px}.tt-auth-success .tt-auth-subheading{max-width:32ch;margin-left:auto;margin-right:auto}}.tt-auth-switch{margin-top:var(--space-6);text-align:center;color:var(--color-muted);font-size:14px}.tt-auth-link{color:var(--color-forest);text-underline-offset:3px;transition:color .15s var(--tt-transition);font-weight:600;text-decoration:underline}.tt-auth-link:hover{color:var(--color-forest-dark)}.tt-auth-back{margin-top:var(--space-6);text-align:center}.tt-auth-back .tt-auth-link{font-size:13px;font-weight:500;text-decoration:none}.tt-auth-back .tt-auth-link:hover{text-decoration:underline}.tt-auth-stage{justify-content:center;width:100%;display:flex}.tt-auth-aside{display:none}@media (min-width:1024px){.tt-auth-page{padding:var(--space-16) var(--space-8)}.tt-auth-stage{gap:var(--space-16);grid-template-columns:minmax(0,1fr) 480px;align-items:center;max-width:1080px;margin:0 auto;display:grid}.tt-auth-aside{display:block}.tt-auth-aside-wordmark{font-family:var(--tt-font-heading);letter-spacing:.06em;color:var(--color-charcoal);margin-bottom:var(--space-3);font-size:48px;font-weight:400;line-height:1.05;display:block}.tt-auth-aside-tagline{letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted);margin-bottom:var(--space-8);font-size:11px;font-weight:500;display:block}.tt-auth-aside-quote{font-family:var(--tt-font-heading);color:var(--color-forest);max-width:38ch;padding-left:var(--space-5);border-left:2px solid var(--color-sage);font-size:22px;font-style:italic;font-weight:400;line-height:1.4}.tt-auth-brand{display:none}.tt-auth-card{padding:var(--space-10)}.tt-auth-heading{font-size:32px}}
