.crm-password-dialog {
  box-sizing: border-box; width: min(480px, calc(100% - 24px)); max-height: calc(100dvh - 32px);
  margin: auto; padding: 28px; overflow-y: auto; border: 1px solid #334155; border-radius: 18px;
  background: #0f172a; color: #f1f5f9; box-shadow: 0 24px 80px #02061780;
  font: inherit; color-scheme: dark;
}
.crm-password-dialog::backdrop { background: #020617b3; backdrop-filter: blur(3px); }
.crm-password-form { display: grid; gap: 16px; }
.crm-password-heading h2, .crm-password-success h2 { margin: 7px 0 9px; font-size: 24px; line-height: 1.2; font-weight: 700; }
.crm-password-eyebrow { color: #93c5fd; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; }
.crm-password-heading p, .crm-password-success p { margin: 0; font-size: 14px; line-height: 1.55; color: #cbd5e1; }
.crm-password-form label { display: grid; gap: 7px; font-size: 14px; font-weight: 500; }
.crm-password-form input { box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid #475569; border-radius: 9px; background: #020617; color: #f8fafc; font-size: 16px; }
.crm-password-dialog :is(input, button):focus-visible, .crm-password-open:focus-visible { outline: 3px solid #60a5fa; outline-offset: 3px; }
.crm-password-hint, .crm-password-note { margin: 0; font-size: 12px; line-height: 1.5; color: #94a3b8; }
.crm-password-hint { margin-top: -10px; }
.crm-password-error { margin: 0; color: #fda4af; font-size: 13px; line-height: 1.45; }
.crm-password-error:empty { display: none; }
.crm-password-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.crm-password-dialog button { min-height: 44px; padding: 10px 16px; border: 1px solid #475569; border-radius: 9px; background: transparent; color: inherit; font: inherit; font-size: 14px; cursor: pointer; }
.crm-password-dialog button.crm-password-primary { border-color: #2563eb; background: #2563eb; color: #fff; font-weight: 600; }
.crm-password-dialog :disabled { opacity: .65; cursor: wait; }
.crm-password-success { display: grid; gap: 16px; }
.crm-password-open { display: block; width: 100%; padding: 10px 12px; text-align: left; color: #94a3b8; font-size: 14px; border-radius: 8px; }
.crm-password-open:hover { background: #1e293b; color: #e2e8f0; }
.crm-password-mobile { width: auto; font-size: 12px; border: 1px solid #334155; }
:root[data-theme="light"] .crm-password-dialog { background: #fff; color: #172033; border-color: #cbd5e1; color-scheme: light; }
:root[data-theme="light"] .crm-password-eyebrow { color: #1d4ed8; }
:root[data-theme="light"] .crm-password-heading p, :root[data-theme="light"] .crm-password-success p { color: #475569; }
:root[data-theme="light"] .crm-password-form input { background: #f8fafc; color: #0f172a; border-color: #94a3b8; }
:root[data-theme="light"] :is(.crm-password-hint, .crm-password-note, .crm-password-open) { color: #526279; }
:root[data-theme="light"] .crm-password-open:hover { background: #e2e8f0; color: #0f172a; }
:root[data-theme="light"] .crm-password-error { color: #be123c; }
@media (max-width: 420px) {
  .crm-password-dialog { padding: 20px; }
  .crm-password-heading h2 { font-size: 22px; }
  .crm-password-actions button { flex: 1; padding-inline: 10px; }
}
