.otp-input-container{display:flex;gap:.5rem;justify-content:center;align-items:center;margin:1.25rem 0;width:100%}.otp-digit-input{width:3rem;height:3.5rem;font-size:1.5rem;font-weight:700;text-align:center;border-radius:var(--radius-control, 8px);border:1.5px solid var(--border-color, #e3eaf4);background-color:var(--surface-primary, #ffffff);color:var(--text-color, #0b1324);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;outline:none;font-family:inherit;-webkit-appearance:none;-moz-appearance:textfield}.otp-digit-input::-webkit-outer-spin-button,.otp-digit-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.otp-digit-input:focus{border-color:var(--primary-color, #1d4ed8);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color, #1d4ed8) 25%,transparent)}.otp-digit-input.has-value{border-color:color-mix(in srgb,var(--primary-color, #1d4ed8) 60%,var(--border-color, #e3eaf4))}.otp-digit-input.has-error{border-color:var(--danger-color, #b91c1c);background-color:color-mix(in srgb,var(--danger-color, #b91c1c) 5%,var(--surface-primary, #ffffff))}.otp-digit-input:disabled{opacity:.6;cursor:not-allowed;background-color:var(--surface-muted, #edf4fc)}@media(max-width:420px){.otp-input-container{gap:.35rem}.otp-digit-input{width:2.5rem;height:3rem;font-size:1.25rem}}.auth-modal-backdrop{position:fixed;inset:0;background-color:#0b1324a6;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:var(--z-modal-backdrop, 1000);overflow-y:auto;animation:authBackdropFadeIn .2s ease-out}@keyframes authBackdropFadeIn{0%{opacity:0}to{opacity:1}}.auth-modal-card{position:relative;background-color:var(--surface-primary, #ffffff);color:var(--text-color, #0b1324);border-radius:var(--radius-card, 16px);border:1px solid var(--border-color, #e3eaf4);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:100%;max-width:440px;padding:2rem;margin:auto;box-sizing:border-box;animation:authCardScaleIn .25s cubic-bezier(.16,1,.3,1)}@keyframes authCardScaleIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.auth-modal-close{position:absolute;top:1.25rem;right:1.25rem;background:transparent;border:none;color:var(--text-muted, #6b7890);cursor:pointer;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease;min-width:36px;min-height:36px}.auth-modal-close:hover{background-color:var(--surface-secondary, #f4f8fd);color:var(--text-color, #0b1324)}.auth-modal-header{text-align:center;margin-bottom:1.5rem}.auth-modal-kicker{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--primary-color, #1d4ed8);margin-bottom:.375rem}.auth-modal-title{font-size:1.5rem;font-weight:700;color:var(--text-color, #0b1324);margin:0 0 .5rem;line-height:1.25}.auth-modal-subtitle{font-size:.9375rem;color:var(--text-secondary, #52627a);margin:0;line-height:1.45}.auth-student-gateway{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:linear-gradient(135deg,#fef3c7,#fef9c3);border:1px solid #fde047;border-radius:var(--radius-control, 10px);padding:.85rem 1rem;margin-bottom:1.25rem;text-align:left}.auth-student-gateway-body{display:flex;flex-direction:column;gap:.2rem;flex:1}.auth-student-gateway-badge{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#854d0e}.auth-student-gateway-title{margin:0;font-size:.845rem;font-weight:600;color:#713f12;line-height:1.35}.auth-student-gateway-action{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .75rem;background-color:#d97706;color:#fff;border-radius:6px;font-size:.8rem;font-weight:700;text-decoration:none;white-space:nowrap;transition:background-color .15s ease,transform .1s ease}.auth-student-gateway-action:hover{background-color:#b45309;transform:translate(2px)}@media(prefers-color-scheme:dark){.auth-student-gateway{background:linear-gradient(135deg,#f59e0b26,#ca8a041a);border-color:#f59e0b4d}.auth-student-gateway-badge{color:#fbbf24}.auth-student-gateway-title{color:#fde68a}}.auth-google-btn,.auth-apple-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;min-height:46px;padding:.625rem 1rem;border-radius:var(--radius-control, 8px);border:1px solid var(--border-color, #e3eaf4);background-color:var(--surface-primary, #ffffff);color:var(--text-color, #0b1324);font-size:.9375rem;font-weight:600;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.auth-apple-btn{background:#000;border-color:#000;color:#fff;margin-bottom:.625rem}.auth-apple-btn:hover:not(:disabled){background:#222}.auth-apple-btn:disabled{opacity:.6;cursor:not-allowed}.auth-google-btn:hover:not(:disabled){background-color:var(--surface-secondary, #f4f8fd);border-color:color-mix(in srgb,var(--primary-color, #1d4ed8) 30%,var(--border-color, #e3eaf4))}.auth-google-btn:disabled{opacity:.6;cursor:not-allowed}.auth-divider{display:flex;align-items:center;text-align:center;margin:1.25rem 0;color:var(--text-muted, #6b7890);font-size:.8125rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color, #e3eaf4)}.auth-divider span{padding:0 .75rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-input-group{display:flex;flex-direction:column;gap:.375rem;text-align:left}.auth-label{font-size:.875rem;font-weight:600;color:var(--text-color, #0b1324)}.auth-input-wrapper{position:relative;display:flex;align-items:center}.auth-input{width:100%;min-height:44px;padding:.625rem .875rem;border-radius:var(--radius-control, 8px);border:1px solid var(--border-color, #e3eaf4);background-color:var(--surface-primary, #ffffff);color:var(--text-color, #0b1324);font-size:.9375rem;font-family:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.auth-input:focus{border-color:var(--primary-color, #1d4ed8);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color, #1d4ed8) 20%,transparent)}.auth-input-wrapper .auth-input--with-toggle{padding-right:2.75rem}.auth-password-toggle{position:absolute;right:.5rem;background:transparent;border:none;color:var(--text-muted, #6b7890);cursor:pointer;padding:.375rem;display:flex;align-items:center;justify-content:center;border-radius:4px}.auth-password-toggle:hover{color:var(--text-color, #0b1324)}.auth-hint{font-size:.75rem;color:var(--text-muted, #6b7890)}.auth-forgot-link{align-self:flex-end;background:none;border:none;color:var(--primary-color, #1d4ed8);font-size:.8125rem;font-weight:500;cursor:pointer;padding:0;margin-top:-.25rem;text-decoration:underline;text-underline-offset:2px}.auth-forgot-link:hover{color:var(--primary-hover, #1e40af)}.auth-primary-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:46px;padding:.75rem 1.25rem;border-radius:var(--radius-control, 8px);border:none;background-color:var(--primary-color, #1d4ed8);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease,transform .05s ease;margin-top:.5rem}.auth-primary-btn:hover:not(:disabled){background-color:var(--primary-hover, #1e40af)}.auth-primary-btn:active:not(:disabled){transform:translateY(1px)}.auth-primary-btn:disabled{opacity:.6;cursor:not-allowed}.auth-secondary-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:42px;padding:.625rem 1rem;border-radius:var(--radius-control, 8px);border:1px solid var(--border-color, #e3eaf4);background-color:transparent;color:var(--text-color, #0b1324);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.auth-secondary-btn:hover:not(:disabled){background-color:var(--surface-secondary, #f4f8fd)}.auth-error-banner{display:flex;align-items:flex-start;gap:.625rem;padding:.75rem 1rem;border-radius:var(--radius-control, 8px);border:1px solid color-mix(in srgb,var(--danger-color, #b91c1c) 30%,transparent);background-color:color-mix(in srgb,var(--danger-color, #b91c1c) 8%,var(--surface-primary, #ffffff));color:var(--danger-color, #b91c1c);font-size:.875rem;line-height:1.4;margin-bottom:1rem}.auth-error-banner svg{flex-shrink:0;margin-top:.125rem}.auth-success-banner{display:flex;align-items:flex-start;gap:.625rem;padding:.75rem 1rem;border-radius:var(--radius-control, 8px);border:1px solid color-mix(in srgb,var(--success-color, #15803d) 30%,transparent);background-color:color-mix(in srgb,var(--success-color, #15803d) 8%,var(--surface-primary, #ffffff));color:var(--success-color, #15803d);font-size:.875rem;line-height:1.4;margin-bottom:1rem}.auth-modal-footer{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border-color, #e3eaf4);text-align:center}.auth-switch-btn{background:none;border:none;color:var(--primary-color, #1d4ed8);font-size:.875rem;font-weight:600;cursor:pointer;padding:.25rem .5rem;transition:color .15s ease}.auth-switch-btn:hover{color:var(--primary-hover, #1e40af);text-decoration:underline}.auth-resend-row{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem;font-size:.875rem}.auth-resend-countdown{color:var(--text-muted, #6b7890)}.auth-page-container{min-height:calc(100vh - 160px);display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background-color:var(--bg-color, #f8fbff)}.auth-page-card{width:100%;max-width:440px;background-color:var(--surface-primary, #ffffff);border:1px solid var(--border-color, #e3eaf4);border-radius:var(--radius-card, 16px);padding:2.5rem 2rem;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}@media(max-width:520px){.auth-modal-card{padding:1.5rem 1.25rem}.auth-page-card{padding:1.75rem 1.25rem}}
