.auth-modal-open{overflow:hidden}.auth-modal-overlay{z-index:12000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;animation:.2s auth-fade-in;display:flex;position:fixed;inset:0}@keyframes auth-fade-in{0%{opacity:0}to{opacity:1}}.auth-modal{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:420px;max-height:calc(100dvh - 2rem);margin:1rem;animation:.25s auth-slide-up;overflow-y:auto}@keyframes auth-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-modal__header{justify-content:space-between;align-items:center;padding:1rem 1.25rem 0;display:flex}.auth-modal__tabs{gap:0;display:flex}.auth-modal__tab{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;padding:.6rem 1.2rem;font-size:.95rem;font-weight:500}.auth-modal__tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.auth-modal__tab:hover:not(.active){color:var(--text-primary)}.auth-modal__close{color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:.25rem;font-size:1.2rem}.auth-modal__close:hover{color:var(--text-primary)}.auth-modal__body{max-height:calc(100dvh - 2rem);padding:1.25rem;overflow:hidden}.auth-form{flex-direction:column;gap:.9rem;display:flex}.auth-form__field{flex-direction:column;gap:.3rem;display:flex}.auth-form__field--checkbox{flex-direction:row;align-items:flex-start}.auth-form__checkbox{color:var(--text-secondary);cursor:pointer;align-items:flex-start;gap:.5rem;font-size:.82rem;line-height:1.35;display:flex}.auth-form__checkbox input[type=checkbox]{flex-shrink:0;margin-top:.2rem}.auth-form__checkbox a{color:var(--accent-primary);text-decoration:underline}.auth-form__label{color:var(--text-secondary);font-size:.82rem;font-weight:500}.auth-form__input{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:.6rem .75rem;font-size:.9rem}.auth-form__input::placeholder{color:var(--text-muted)}.auth-form__input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.auth-form__error{color:#ef4444;border-radius:var(--radius-sm);background:#ef44441a;margin:0;padding:.4rem .6rem;font-size:.82rem}.auth-form__submit{background:var(--accent-primary);min-height:2.75rem;color:var(--bg-primary);border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition-fast), transform var(--transition-fast);border:none;margin-top:.3rem;padding:.65rem 1rem;font-size:.95rem;font-weight:600}.auth-form__submit:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.auth-form__submit:disabled{opacity:.5;cursor:not-allowed}.auth-form__hint{color:var(--text-muted);font-size:.78rem;line-height:1.35}.auth-form__hint a,.auth-form__links a{color:var(--accent-primary);text-decoration:underline}.auth-form__links{text-align:right;margin:0;font-size:.82rem}.auth-form__success{color:#16a34a;border-radius:var(--radius-sm);background:#16a34a1a;margin:0;padding:.5rem .65rem;font-size:.9rem}.auth-form__captcha{gap:.5rem}.auth-form__captcha-icon{color:var(--accent-primary);margin-right:.35rem}.auth-form__captcha-panel{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:.75rem}.auth-form__captcha-panel:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.auth-form__captcha-row{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.auth-form__captcha-question{color:var(--text-primary);flex:1;font-size:.95rem;font-weight:600;line-height:1.35}.auth-form__captcha-refresh{border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;min-width:2.75rem;min-height:2.75rem}.auth-form__captcha-refresh:hover:not(:disabled){color:var(--accent-primary);border-color:var(--accent-primary)}.auth-form__captcha-input{margin:0}.auth-form__honeypot{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-10000px}.auth-form__submit--link{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.auth-page{justify-content:center;align-items:center;min-height:calc(100vh - 12rem);padding:2rem 1rem;display:flex}.auth-page__card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);width:100%;max-width:440px;box-shadow:var(--shadow-lg);padding:1.5rem;animation:.25s auth-slide-up}.auth-page__title{color:var(--text-primary);margin:0 0 .5rem;font-size:1.35rem}.auth-page__intro{color:var(--text-secondary);margin:0 0 1rem;font-size:.9rem;line-height:1.45}.user-menu{position:relative}.user-menu__trigger{border:2px solid var(--border-primary);background:var(--bg-tertiary);cursor:pointer;width:36px;height:36px;transition:border-color var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden}.user-menu__trigger:hover{border-color:var(--accent-primary)}.user-menu__avatar{object-fit:cover;width:100%;height:100%}.user-menu__initial{color:var(--accent-primary);font-size:.9rem;font-weight:700}.user-menu__dropdown{z-index:200;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);min-width:220px;box-shadow:var(--shadow-lg);padding:.5rem;animation:.15s auth-slide-up;position:absolute;top:calc(100% + 6px);right:0}.user-menu__info{flex-direction:column;padding:.5rem .65rem;display:flex}.user-menu__name{color:var(--text-primary);font-size:.9rem;font-weight:600}.user-menu__email{color:var(--text-muted);text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.user-menu__divider{background:var(--border-primary);height:1px;margin:.35rem 0}.user-menu__item{width:100%;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast), color var(--transition-fast);text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem .65rem;font-size:.85rem;display:flex}.user-menu__item:hover{background:var(--accent-tertiary);color:var(--text-primary)}.auth-form__password-strength{gap:.45rem}.auth-form__password-wrap{align-items:stretch;display:flex;position:relative}.auth-form__password-wrap.is-focused .auth-form__password-input{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.auth-form__password-input{padding-right:2.5rem}.auth-form__password-toggle{width:2.5rem;height:100%;color:var(--text-muted);cursor:pointer;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:0 0;border:none;position:absolute;top:0;right:0}.auth-form__password-toggle:hover{color:var(--text-primary)}.auth-form__password-panel{border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-tertiary);margin-top:.35rem;padding:.65rem .7rem}.auth-form__password-meter{grid-template-columns:repeat(4,1fr);gap:.35rem;margin-bottom:.5rem;display:grid}.auth-form__password-meter-seg{background:var(--border-primary);border-radius:999px;height:4px;transition:background .2s,transform .2s}.auth-form__password-meter-seg.is-active{transform:scaleY(1.15)}.auth-form__password-meter-seg--weak.is-active{background:#ef4444}.auth-form__password-meter-seg--fair.is-active{background:#f97316}.auth-form__password-meter-seg--good.is-active{background:#eab308}.auth-form__password-meter-seg--strong.is-active{background:#22c55e}.auth-form__password-level{align-items:center;gap:.35rem;margin:0 0 .45rem;font-size:.8rem;font-weight:600;display:flex}.auth-form__password-level--empty,.auth-form__password-level--weak{color:#ef4444}.auth-form__password-level--fair{color:#f97316}.auth-form__password-level--good{color:#eab308}.auth-form__password-level--strong{color:#22c55e}.auth-form__password-rules{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.auth-form__password-rules li{color:var(--text-muted);align-items:center;gap:.45rem;font-size:.78rem;transition:color .15s;display:flex}.auth-form__password-rules li.is-met{color:#22c55e}.auth-form__password-rules li.is-fail{color:#ef4444}.auth-form__password-rules li i{text-align:center;flex-shrink:0;width:.9rem}.auth-form__input--invalid{border-color:#ef4444}.auth-form__inline-error{color:#ef4444;align-items:center;gap:.35rem;margin:.35rem 0 0;font-size:.78rem;display:flex}
