.auth-page{display:flex;flex-direction:column;min-height:100dvh;background:#f0f2f5}.auth-bg{flex:1;background-color:#f0f2f5;display:flex;align-items:flex-start;justify-content:center;padding:clamp(2rem,7vh,4.5rem) 1.5rem 2rem;font-family:Plus Jakarta Sans,sans-serif}.auth-stack{display:flex;flex-direction:column;align-items:center;gap:1.75rem;width:100%;max-width:400px}.auth-brand{width:100%}.auth-card{background:#fff;border-radius:16px;box-shadow:0 4px 40px #00000014;width:100%;max-width:400px;padding:2.5rem 2.5rem 2rem}@media(max-width:480px){.auth-card{padding:2rem 1.5rem 1.75rem}}.auth-title{font-size:1.75rem;font-weight:700;color:#1a1a2e;letter-spacing:-.01em}.auth-subtitle,.auth-title{margin-bottom:1.5rem;text-align:center}.auth-subtitle{font-size:.875rem;color:#64748b}.auth-alert{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:8px;font-size:.875rem;margin-bottom:1.25rem}.auth-alert--error{background-color:#fef2f2;color:#dc2626;border:1px solid #fecaca}.auth-alert--success{background-color:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.auth-field{margin-bottom:1.1rem}.auth-label{display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;font-weight:600;color:#374151;margin-bottom:.375rem}.auth-label__hint{font-size:.75rem;font-weight:400;color:#9ca3af}.auth-input-wrap{position:relative}.auth-input{display:block;width:100%;height:48px;padding:0 1rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9375rem;font-family:inherit;color:#111827;background-color:#fff;transition:border-color .15s ease,box-shadow .15s ease;outline:none}.auth-input::-moz-placeholder{color:#9ca3af}.auth-input::placeholder{color:#9ca3af}.auth-input:focus{border-color:var(--primary-color,#1a3c5e);box-shadow:0 0 0 3px #1a3c5e14}.auth-input--error{border-color:#f87171}.auth-input--error:focus{box-shadow:0 0 0 3px #f871711f}.auth-input-wrap .auth-input{padding-right:2.75rem}.auth-input-eye{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#94a3b8;display:flex;align-items:center;padding:.2rem;border-radius:4px;transition:color .15s ease}.auth-input-eye:hover{color:var(--primary-color,#1a3c5e)}.auth-field__error{font-size:.775rem;color:#dc2626;margin-top:.3rem}.auth-forgot{display:flex;justify-content:flex-end;margin-bottom:1.25rem;margin-top:-.5rem}.auth-btn-primary{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;height:46px;background-color:var(--button-color,#1a3c5e);color:#fff;border:none;border-radius:10px;font-family:inherit;font-size:.9375rem;font-weight:700;cursor:pointer;transition:opacity .15s ease,transform .1s ease;text-decoration:none}.auth-btn-primary:hover:not(:disabled){opacity:.88}.auth-btn-primary:active:not(:disabled){transform:scale(.98)}.auth-btn-primary:disabled{opacity:.55;cursor:not-allowed}.auth-spinner{width:15px;height:15px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:auth-spin .6s linear infinite;flex-shrink:0}@keyframes auth-spin{to{transform:rotate(1turn)}}.auth-footer{margin-top:1.25rem;text-align:center;font-size:.875rem;color:#64748b}.auth-link{color:var(--primary-color,#1a3c5e);text-decoration:none;font-weight:600;transition:opacity .15s ease}.auth-link:hover{opacity:.75;text-decoration:underline}.auth-divider{border:none;border-top:1px solid #f1f5f9;margin:1.5rem 0 1.25rem}[data-theme=dark] .auth-page{background:#0f172a}[data-theme=dark] .auth-bg{background-color:#0f172a}[data-theme=dark] .auth-card{background:#1e293b;box-shadow:0 4px 40px #0000004d}[data-theme=dark] .auth-title{color:#f1f5f9}[data-theme=dark] .auth-subtitle{color:#94a3b8}[data-theme=dark] .auth-label{color:#cbd5e1}[data-theme=dark] .auth-input{background-color:#1e293b;border-color:#334155;color:#f1f5f9}[data-theme=dark] .auth-input:focus{border-color:var(--primary-color,#1a3c5e)}[data-theme=dark] .auth-input::-moz-placeholder{color:#64748b}[data-theme=dark] .auth-input::placeholder{color:#64748b}[data-theme=dark] .auth-divider{border-color:#334155}[data-theme=dark] .auth-footer{color:#94a3b8}
