.modal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;outline:none;box-shadow:0 20px 60px rgba(0,0,0,.3);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);z-index:1000}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px 12px 0 0}.modal-title{margin:0;color:#fff;font-size:20px;font-weight:600}.modal-close{background:hsla(0,0%,100%,.2);border:none;color:#fff;font-size:28px;cursor:pointer;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s}.modal-close:hover{background:hsla(0,0%,100%,.3)}.modal-body{padding:24px}.modal-description{color:#6b7280;margin-bottom:24px;line-height:1.6}.new-password-form,.reset-form{margin-top:16px}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:8px;font-weight:500;color:#374151}.form-input{width:100%;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:all .2s;box-sizing:border-box}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.1)}.form-input.error{border-color:#ef4444}.form-input:disabled{background-color:#f9fafb;cursor:not-allowed}.input-hint{font-size:13px;color:#6b7280;margin-top:6px;line-height:1.4}.input-hint.error{color:#ef4444}.input-hint.valid{color:#10b981}.password-input-wrapper{position:relative}.password-toggle{position:absolute;left:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#6b7280;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.password-toggle:hover{color:#374151}.password-toggle:disabled{cursor:not-allowed;opacity:.5}.password-strength{background:#f9fafb;border-radius:8px;padding:16px;margin-bottom:24px;border:1px solid #e5e7eb}.strength-title{font-weight:500;color:#374151;margin-bottom:8px}.strength-list{list-style:none;padding:0;margin:0}.strength-list li{color:#6b7280;font-size:14px;margin-bottom:6px;display:flex;align-items:center}.strength-list li:before{content:"";display:inline-block;width:18px;height:18px;margin-left:8px}.strength-list li.valid{color:#10b981}.strength-list li.valid:before{content:"✓"}.strength-list li:not(.valid):before{content:"○"}.verification-info{text-align:center;margin-bottom:32px}.verification-text{color:#6b7280;margin-bottom:8px}.contact-info-display{font-size:18px;color:#374151;margin-bottom:8px;padding:12px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.verification-hint{color:#6b7280;font-size:14px}.verification-tips{background:#f0f9ff;border-radius:8px;padding:16px;margin-top:24px;border:1px solid #bae6fd}.tip-title{font-weight:500;color:#0369a1;margin-bottom:8px}.tip-list{list-style:none;padding:0;margin:0}.tip-list li{color:#0c4a6e;font-size:14px;margin-bottom:6px;padding-right:24px;position:relative}.tip-list li:before{content:"•";position:absolute;right:8px;color:#0ea5e9}.form-navigation{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s;flex:1;text-align:center}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px rgba(102,126,234,.3)}.btn-secondary{background:#f3f4f6;color:#374151}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-success:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,185,129,.3)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.otp-section{margin:32px 0}@media (max-width:640px){.modal{width:95%;max-height:85vh}.modal-header{padding:16px 20px}.modal-body{padding:20px}.form-navigation{flex-direction:column}.btn{width:100%}}