.password-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .3s ease}.password-modal{background-color:#fff;padding:3rem 2.5rem;max-width:400px;width:90%;position:relative;animation:slideUp .3s ease;border:1px solid #111}.password-modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#111;font-family:Helvetica Neue,Hiragino Sans,sans-serif;line-height:1;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;transition:color .3s ease}.password-modal-close:hover{color:#666}.password-modal-title{font-family:Helvetica Neue,Hiragino Sans,sans-serif;font-size:1.5rem;font-weight:400;color:#111;margin:0 0 2rem;text-align:center;letter-spacing:.05em;text-transform:lowercase}.password-modal-form{display:flex;flex-direction:column;gap:1.5rem}.password-modal-input-wrapper{display:flex;flex-direction:column;gap:.5rem}.password-modal-input{width:100%;padding:.75rem 1rem;border:1px solid #111;font-family:Helvetica Neue,Hiragino Sans,sans-serif;font-size:1rem;color:#111;background-color:#fff;transition:border-color .3s ease;box-sizing:border-box}.password-modal-input:focus{outline:none;border-color:#111}.password-modal-input:disabled{opacity:.6;cursor:not-allowed}.password-modal-error{color:#e74c3c;font-size:.875rem;margin:0}.password-modal-error,.password-modal-submit{font-family:Helvetica Neue,Hiragino Sans,sans-serif}.password-modal-submit{padding:.75rem 2rem;background-color:transparent;color:#111;border:1px solid #111;font-size:1rem;font-weight:400;letter-spacing:.05em;text-transform:lowercase;cursor:pointer;transition:background-color .3s ease,color .3s ease;box-sizing:border-box}.password-modal-submit:hover:not(:disabled){background-color:#111;color:#fff}.password-modal-submit:disabled{opacity:.5;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.password-modal-input.shake{animation:shake .5s ease}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@media (max-width:768px){.password-modal{padding:2rem 1.5rem;max-width:90%}.password-modal-title{font-size:1.25rem}}