.self-password-dialog { width: min(440px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); box-sizing: border-box; padding: 0; border: 1px solid #bbcee0; border-radius: 14px; color: #234360; background: #f8fbff; font: inherit; box-shadow: 0 18px 60px #16395740; }
.self-password-dialog::backdrop { background: #17334d66; }
.self-password-dialog header { padding: 20px 24px 12px; background: linear-gradient(120deg,#f6fbff,#e8f3fc); border-bottom: 1px solid #c7d8e8; }
.self-password-dialog h2 { margin: 4px 0 8px; font-size: 20px; }
.self-password-dialog small { letter-spacing: .1em; color: #52789e; }
.self-password-dialog p { font-size: 13px; line-height: 1.6; }
.self-password-dialog fieldset { border: 0; margin: 0; padding: 20px 24px 8px; min-width: 0; }
.self-password-dialog label { display: block; margin-bottom: 12px; font-size: 14px; }
.self-password-dialog input[name] { display: block; width: 100%; box-sizing: border-box; min-height: 42px; margin-top: 6px; padding: 8px 12px; font: inherit; border: 1px solid #adc8e3; border-radius: 7px; background: #fff; }
.self-password-dialog .self-password-show { display: flex; align-items: center; gap: 8px; }
.self-password-dialog .self-password-show input { width: 16px; height: 16px; margin: 0; }
.self-password-dialog .self-password-error { color: #b42332; }
.self-password-dialog footer { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 24px; border-top: 1px solid #c7d8e8; }
.self-password-dialog button { min-height: 38px; padding: 6px 18px; border: 1px solid #aac5df; border-radius: 20px; background: #fff; color: #31597e; font: inherit; cursor: pointer; }
.self-password-dialog button[type=submit] { background: #2b70ad; color: #fff; }
.self-password-dialog button:disabled { opacity: .6; cursor: wait; }
.self-password-dialog :focus-visible { outline: 2px solid #337dba; outline-offset: 2px; }
