@keyframes fadeScaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes fadeScaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes formFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes gradientShift{0%{background-position:0 0}50%{background-position:100% 0}to{background-position:0 0}}@keyframes iconBounce{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.1)}to{transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes messageSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes errorSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes errorSlideOut{0%{opacity:1;max-height:30px}to{opacity:0;max-height:0}}.login-form,.request-password-reset-form,.account-activation-form{animation:.3s ease-out formFadeIn}.form-content{z-index:1;position:relative}.state-overlay{z-index:10;border-radius:inherit;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.state-overlay--success,.state-overlay--error{background:var(--bg)}.state-display{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;display:flex}.state-icon{border-radius:var(--border-radius-circle);border:2px solid;justify-content:center;align-items:center;width:100px;height:100px;margin-bottom:24px;font-size:66px;line-height:100px;animation:.6s iconBounce;display:flex}.state-icon--success{color:var(--surface);background:var(--success)}.state-icon--error{color:var(--surface);background:var(--error)}.state-message{color:var(--success);font-size:1.25rem;animation:.3s messageSlideUp}.state-message--error{color:var(--error)}.fade-scale-enter-active{animation:.4s ease-out fadeScaleIn}.fade-scale-leave-active{animation:.3s ease-in fadeScaleOut}.form-menu{grid-template-rows:repeat(auto-fit,40px);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));justify-content:flex-start;gap:.5rem;margin-top:1rem;display:grid}.form-menu .form-menu-link{border:1px dashed var(--border);border-radius:var(--border-radius-lg);color:var(--text-muted);flex-direction:row;justify-content:flex-start;align-items:center;gap:.25rem;padding:.5rem 1rem;text-decoration:none;transition:all .2s;display:flex}.form-menu .form-menu-link .link-label{flex-wrap:wrap;font-size:.875em;line-height:.875rem;display:flex}.form-menu .form-menu-link i{margin:0;font-size:1.25rem;line-height:1.25rem}.form-menu .form-menu-link.active{color:var(--primary);border:1px solid var(--primary)}.form-menu .form-menu-link:hover{color:var(--primary);border-color:var(--primary)}.form-description{padding:var(--spacing-md);color:var(--text-secondary);font-size:.875rem}.login-header{text-align:center;margin-bottom:2rem}.login-logo{margin-bottom:.5rem;font-size:3rem}.login-title{color:var(--text);margin-bottom:.5rem;font-size:1.875rem;font-weight:600}.login-subtitle{color:var(--text-secondary);font-size:.875rem}.form-group{margin:.5rem}.form-group .subline{color:var(--text-muted);margin-bottom:-1.25rem;padding:.2rem .5rem;font-size:.8rem;font-style:italic;font-weight:300}.form-group .info{text-align:end;color:var(--text-muted);margin:0;padding:.25rem .5rem;font-size:.875rem}.form-group .info.left{text-align:left}.form-label{color:var(--text-muted);margin:0 0 .25rem;font-size:.85rem;display:flex}.form-input{border:1px solid var(--border);background:var(--bg);border-radius:var(--border-radius-md);width:100%;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:all .3s}.form-input::placeholder{font-size:.875rem}.form-select{border:1px solid var(--border);background:var(--bg);border-radius:var(--border-radius-md);width:100%;color:var(--text);appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);background-position:calc(100% - 1.25rem) calc(50% - 2px),calc(100% - .9rem) calc(50% - 2px);background-repeat:no-repeat;background-size:.4rem .4rem,.4rem .4rem;padding:.75rem 2.75rem .75rem 1rem;font-family:inherit;font-size:1rem;transition:all .3s}.form-select:focus{border:1px dashed var(--primary);outline:none;transform:translateY(-1px)}.form-select:disabled{background-color:var(--bg);cursor:not-allowed;opacity:.6}.form-select.error{border:1px dashed var(--error)}.form-input:focus{border:1px dashed var(--primary);outline:none;transform:translateY(-1px)}.form-input.error{border:1px dashed var(--error);animation:.4s inputShake}.form-error{color:var(--error);align-items:center;gap:6px;margin-top:6px;font-size:.875rem;display:flex}.invalid-feedback{color:var(--error);align-items:center;margin-top:6px;padding:0 .5rem;font-size:.875rem;display:flex}.form-error svg{flex-shrink:0;width:14px;height:14px}.form-checkbox-group{align-items:center;gap:.5rem;display:flex}.form-checkbox{cursor:pointer;width:1rem;height:1rem}.form-checkbox-label{color:var(--text-secondary);cursor:pointer;font-size:.875rem}.form-textarea{border:1px solid var(--border);background:var(--bg);border-radius:var(--border-radius-sm);resize:none;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:1rem;line-height:1.5;transition:all .3s;overflow-y:hidden}.form-textarea.compact{font-size:.875rem}.form-textarea:focus{border:1px dashed var(--primary);outline:none;transform:translateY(-1px)}.form-textarea:disabled{background:var(--bg);cursor:not-allowed;opacity:.6}.form-textarea.error{border-color:var(--error)}.character-counter{text-align:end;color:var(--text-muted);margin:0;padding:.25rem .5rem;font-size:.75rem}.character-counter.counter-warning{color:var(--warning);font-weight:600}.character-counter.counter-error{color:var(--error);font-weight:600}.spinner{width:20px;height:20px;animation:1s linear infinite spin}.alert{border-radius:.5rem;margin-bottom:1.5rem;padding:1rem;font-size:.875rem}.alert-danger{background:var(--surface);color:var(--error);border:1px solid var(--border)}.form-footer{text-align:center;color:var(--text-secondary);margin-top:1.5rem;font-size:.875rem}.form-footer a{color:var(--primary);font-weight:600;text-decoration:none}.form-footer a:hover{text-decoration:underline}.remember-switch{align-items:center;gap:.75rem;display:flex}.remember-switch .form-check-input{appearance:none;cursor:pointer;background:var(--bg);border:1px solid var(--border);border-radius:2rem;outline:none;flex-shrink:0;width:3rem;height:1.5rem;margin:0;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.remember-switch .form-check-input:checked{background:var(--primary);border-color:var(--primary)}.remember-switch .form-check-input:before{content:"";border-radius:var(--border-radius-circle);background:#fff;width:calc(1.5rem - 8px);height:calc(1.5rem - 8px);transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;top:3px;left:3px}.remember-switch .form-check-input:checked:before{transform:translate(1.5rem)}.remember-switch .form-check-label{cursor:pointer;-webkit-user-select:none;user-select:none;margin:0;font-size:.9375rem}.password-requirements{margin-top:.5rem;font-size:.8em}.requirement{color:var(--error);align-items:center;gap:.5rem;padding:.25rem 0;transition:color .2s;display:flex}.requirement.met{color:var(--success)}.requirement i{font-size:1rem;line-height:.8rem}.image-upload{width:100%}.image-upload .subline{color:var(--text-muted);margin:.75rem 0 -1.25rem;font-size:.8rem;font-style:italic;font-weight:300}.error-messages{color:var(--error);background:var(--surface);border:1px solid var(--border);border-radius:.75rem;align-items:flex-start;gap:.5rem;margin:1rem 0;padding:1rem;display:flex}.error-messages i{flex-shrink:0;margin-top:.2rem}.error-messages ul{margin:0;padding-left:1rem}.button-toolbar{gap:.5rem;display:flex}@media (width<=1100px){.form-menu{grid-template-rows:repeat(auto-fit,minmax(60px,1fr));grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.form-menu .form-menu-link{flex-direction:column;justify-content:center;display:flex}.form-menu .form-menu-link .link-label{text-align:center;font-size:.75rem}}@media (width<=768px){.form-textarea,.form-input,.form-select{font-size:.875rem}}
