:root{--color-primary:#2e5c4a;--color-primary-hover:#224538;--color-primary-light:#eef5f2;--color-bg:#faf9f6;--color-bg-alt:#f0efea;--color-text:#2c2a29;--color-text-muted:#5e5c5a;--color-border:#e8e6df;--color-error:#c0392b;--color-success:#2e5c4a;--font-serif:"Lora",Georgia,serif;--font-sans:"Public Sans",-apple-system,BlinkMacSystemFont,sans-serif;--shadow-sm:0 2px 4px rgba(44, 42, 41, 0.05);--shadow-md:0 8px 24px rgba(44, 42, 41, 0.09);--shadow-lg:0 20px 60px rgba(44, 42, 41, 0.13);--radius:16px;--radius-sm:10px}*,::after,::before{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}.auth-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.auth-brand-panel{background-color:var(--color-primary);position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:3rem;overflow:hidden}.auth-brand-panel::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 20% 80%,rgba(255,255,255,.06) 0,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(255,255,255,.04) 0,transparent 55%);pointer-events:none}.auth-brand-panel::after{content:"";position:absolute;bottom:-120px;right:-120px;width:400px;height:400px;border-radius:50%;background:rgba(255,255,255,.05);pointer-events:none}.auth-brand-logo{position:relative;z-index:1}.auth-brand-logo a{text-decoration:none}.auth-brand-name{font-family:var(--font-serif);font-size:1.75rem;font-weight:600;color:#faf9f6;letter-spacing:-.01em}.auth-brand-tagline{font-size:.85rem;color:rgba(250,249,246,.6);margin-top:.25rem}.auth-brand-content{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;justify-content:center;padding:2rem 0}.auth-brand-quote{font-family:var(--font-serif);font-size:clamp(1.6rem, 2.5vw, 2.25rem);font-weight:500;color:#faf9f6;line-height:1.35;margin-bottom:1.5rem}.auth-brand-quote em{font-style:italic;color:rgba(250,249,246,.8)}.auth-brand-desc{font-size:1rem;color:rgba(250,249,246,.65);line-height:1.7;max-width:360px}.auth-brand-cards{position:relative;z-index:1;display:flex;gap:1rem;flex-wrap:wrap}.auth-brand-stat{background:rgba(255,255,255,.1);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);padding:1rem 1.25rem;flex:1;min-width:120px}.auth-brand-stat-num{font-family:var(--font-serif);font-size:1.5rem;font-weight:600;color:#faf9f6}.auth-brand-stat-label{font-size:.75rem;color:rgba(250,249,246,.6);margin-top:.15rem}.auth-form-panel{display:flex;align-items:center;justify-content:center;padding:3rem 2rem;overflow-y:auto;background:var(--color-bg)}.auth-form-wrapper{width:100%;max-width:420px}.auth-tabs{display:flex;background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:100px;padding:5px;margin-bottom:2.5rem;position:relative}.auth-tab-btn{flex:1;background:0 0;border:none;cursor:pointer;padding:.65rem 1.5rem;font-family:var(--font-sans);font-size:.9rem;font-weight:500;color:var(--color-text-muted);border-radius:100px;transition:color .25s ease;position:relative;z-index:1}.auth-tab-btn.active{color:var(--color-text)}.auth-tab-indicator{position:absolute;top:5px;bottom:5px;width:calc(50% - 5px);background:#fff;border-radius:100px;box-shadow:var(--shadow-sm);transition:transform .3s cubic-bezier(.34, 1.56, .64, 1);border:1px solid var(--color-border)}.auth-tab-indicator.slide-right{transform:translateX(calc(100% + 5px))}.auth-heading{font-family:var(--font-serif);font-size:1.85rem;font-weight:500;color:var(--color-text);margin-bottom:.5rem;line-height:1.25}.auth-subheading{font-size:.95rem;color:var(--color-text-muted);margin-bottom:2rem}.auth-form-panel-content{display:none;animation:auth-fade-in .3s ease}.auth-form-panel-content.active{display:block}@keyframes auth-fade-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-google-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.85rem 1.5rem;background:#fff;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.95rem;font-weight:500;color:var(--color-text);cursor:pointer;text-decoration:none;transition:all .25s ease;box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.auth-google-btn:hover{border-color:var(--color-text-muted);box-shadow:var(--shadow-md);transform:translateY(-1px);color:var(--color-text)}.auth-google-btn svg{flex-shrink:0;width:20px;height:20px}.auth-divider{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;color:var(--color-text-muted);font-size:.8rem}.auth-divider::after,.auth-divider::before{content:"";flex:1;height:1px;background:var(--color-border)}.auth-field{margin-bottom:1.1rem}.auth-field label{display:block;font-size:.85rem;font-weight:500;color:var(--color-text);margin-bottom:.4rem}.auth-input-wrap{position:relative}.auth-input{width:100%;padding:.8rem 1rem;background:#fff;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.95rem;color:var(--color-text);transition:border-color .2s ease,box-shadow .2s ease;outline:0}.auth-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(46,92,74,.1)}.auth-input.input-error{border-color:var(--color-error);box-shadow:0 0 0 3px rgba(192,57,43,.08)}.auth-input.input-success{border-color:var(--color-success)}.auth-input-wrap .pw-toggle{position:absolute;right:.9rem;top:50%;transform:translateY(-50%);background:0 0;border:none;cursor:pointer;color:var(--color-text-muted);font-size:.9rem;display:flex;align-items:center;padding:.25rem;border-radius:4px;transition:color .2s}.auth-input-wrap .pw-toggle:hover{color:var(--color-text)}.auth-input-wrap input[type=password],.auth-input-wrap input[type=text].is-password{padding-right:2.75rem}.pw-strength{margin-top:.5rem}.pw-strength-bar{height:3px;background:var(--color-border);border-radius:99px;overflow:hidden;margin-bottom:.3rem}.pw-strength-fill{height:100%;border-radius:99px;transition:width .4s ease,background-color .4s ease;width:0%}.pw-strength-fill.strength-1{width:25%;background:#e74c3c}.pw-strength-fill.strength-2{width:50%;background:#e67e22}.pw-strength-fill.strength-3{width:75%;background:#f1c40f}.pw-strength-fill.strength-4{width:100%;background:var(--color-primary)}.pw-strength-label{font-size:.75rem;color:var(--color-text-muted)}.auth-field-msg{font-size:.78rem;margin-top:.35rem;min-height:1rem;transition:opacity .2s}.auth-field-msg.error{color:var(--color-error)}.auth-field-msg.success{color:var(--color-success)}.auth-submit-btn{width:100%;padding:.9rem 1.5rem;background:var(--color-primary);color:#faf9f6;border:none;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.97rem;font-weight:600;cursor:pointer;transition:all .25s ease;margin-top:.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;position:relative;overflow:hidden}.auth-submit-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.auth-submit-btn:disabled{opacity:.65;cursor:not-allowed}.auth-submit-btn .btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:none}.auth-submit-btn.loading .btn-spinner{display:block}.auth-submit-btn.loading .btn-label{opacity:.7}@keyframes spin{to{transform:rotate(360deg)}}.auth-alert{display:none;padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:500;margin-bottom:1.25rem;animation:auth-fade-in .25s ease;line-height:1.5}.auth-alert.visible{display:flex;align-items:flex-start;gap:.5rem}.auth-alert.alert-error{background:#fdf0ee;color:var(--color-error);border:1px solid rgba(192,57,43,.2)}.auth-alert.alert-success{background:var(--color-primary-light);color:var(--color-primary-hover);border:1px solid rgba(46,92,74,.2)}.auth-footer-link{text-align:center;margin-top:1.5rem;font-size:.85rem;color:var(--color-text-muted)}.auth-footer-link a{color:var(--color-primary);text-decoration:none;font-weight:500}.auth-footer-link a:hover{text-decoration:underline}.auth-terms{font-size:.75rem;color:var(--color-text-muted);margin-top:1rem;line-height:1.5;text-align:center}.auth-terms a{color:var(--color-primary);text-decoration:none}.auth-terms a:hover{text-decoration:underline}.otp-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--color-bg)}.otp-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);padding:3rem 2.5rem;width:100%;max-width:460px;box-shadow:var(--shadow-lg);text-align:center}.otp-brand{font-family:var(--font-serif);font-size:1.5rem;font-weight:600;color:var(--color-primary);margin-bottom:2rem;text-decoration:none;display:inline-block;transition:opacity .2s}.otp-brand:hover{opacity:.8}.otp-icon{width:64px;height:64px;background:var(--color-primary-light);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;font-size:1.75rem}.otp-heading{font-family:var(--font-serif);font-size:1.6rem;font-weight:500;color:var(--color-text);margin-bottom:.5rem}.otp-subheading{font-size:.95rem;color:var(--color-text-muted);margin-bottom:.5rem;line-height:1.6}.otp-email-display{font-weight:600;color:var(--color-text);font-size:.9rem;background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:6px;padding:.3rem .75rem;display:inline-block;margin-bottom:2rem}.otp-inputs{display:flex;gap:.75rem;justify-content:center;margin-bottom:1.5rem}.otp-digit{width:52px;height:60px;border:2px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-serif);font-size:1.6rem;font-weight:600;text-align:center;color:var(--color-text);background:var(--color-bg-alt);transition:border-color .2s ease,box-shadow .2s ease,transform .15s ease;outline:0;caret-color:transparent}.otp-digit:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(46,92,74,.12);background:#fff;transform:scale(1.05)}.otp-digit.filled{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}.otp-digit.shake,.otp-input-styled.shake{animation:otp-shake .4s ease}@media (prefers-reduced-motion:reduce){.otp-digit.shake,.otp-input-styled.shake{animation:none}}@keyframes otp-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}.otp-alert{display:none;padding:.7rem 1rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:500;margin-bottom:1.25rem;line-height:1.4}.otp-alert.visible{display:block;animation:auth-fade-in .25s ease}.otp-alert.alert-error{background:#fdf0ee;color:var(--color-error);border:1px solid rgba(192,57,43,.2)}.otp-alert.alert-success{background:var(--color-primary-light);color:var(--color-primary-hover);border:1px solid rgba(46,92,74,.2)}.otp-timer{font-size:.85rem;color:var(--color-text-muted);margin-bottom:1.25rem}.otp-timer .timer-value{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.otp-timer .timer-value.expiring{color:var(--color-error)}.otp-submit-btn{width:100%;padding:.9rem 1.5rem;background:var(--color-primary);color:#faf9f6;border:none;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.97rem;font-weight:600;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.25rem}.otp-submit-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.otp-submit-btn:disabled{opacity:.6;cursor:not-allowed}.otp-submit-btn .btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:none}.otp-submit-btn.loading .btn-spinner{display:block}.otp-resend{font-size:.875rem;color:var(--color-text-muted);margin-bottom:.5rem}.otp-resend-btn{background:0 0;border:none;color:var(--color-primary);font-family:var(--font-sans);font-size:.875rem;font-weight:600;cursor:pointer;padding:0;transition:opacity .2s}.otp-resend-btn:disabled{color:var(--color-text-muted);cursor:not-allowed;font-weight:400}.otp-resend-btn:not(:disabled):hover{text-decoration:underline}.otp-back-link{display:inline-flex;align-items:center;gap:.3rem;color:var(--color-text-muted);font-size:.85rem;text-decoration:none;margin-top:1rem;transition:color .2s}.otp-back-link:hover{color:var(--color-text)}@media (max-width:860px){.auth-page{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-form-panel{padding:2rem 1.25rem;min-height:100vh}}@media (max-width:480px){.otp-card{padding:2.25rem 1.5rem}.otp-digit{width:44px;height:52px;font-size:1.35rem}.otp-inputs{gap:.5rem}}