.cm-otp-modal {
  --otp-accent: #c62828;
  --otp-ink: #172033;
  --otp-muted: #738094;
  font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

.cm-otp-modal .modal-dialog { max-width: 452px; margin-right: auto; margin-left: auto; padding: 12px; }
.cm-otp-modal .modal-content { overflow: hidden; border: 1px solid #f1e8e8; border-radius: 24px; box-shadow: 0 24px 80px rgba(24, 18, 25, .2); }
.cm-otp-modal .modal-body { padding: 38px 32px 0; color: var(--otp-ink); }
.cm-otp-modal .modal-body .cm-otp-close { top: 18px; right: 18px; width: 12px; height: 12px; padding: 8px; opacity: .5; border-radius: 50%; }
.cm-otp-modal .cm-otp-close:focus-visible { outline: 3px solid rgba(198, 40, 40, .25); outline-offset: 3px; }
.cm-otp-heading { text-align: center; }
.cm-otp-icon { display: flex; align-items: center; justify-content: center; width: 68px; height: 68px; margin: 0 auto 20px; color: var(--otp-accent); background: #fff1f0; border: 1px solid #fbe2df; border-radius: 21px; }
.cm-otp-heading h2 { margin: 0 0 11px; color: var(--otp-ink); font-family: inherit; font-size: 26px; font-weight: 700; letter-spacing: -.7px; line-height: 1.2; }
.cm-otp-heading p { margin: 0; color: var(--otp-muted); font-size: 13px; line-height: 1.8; }
.cm-otp-recipient { display: block; color: var(--otp-ink); font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.cm-otp-form { margin-top: 27px; }
.cm-otp-label { display: block; margin-bottom: 11px; color: #657187; font-size: 11px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.cm-otp-digits { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; direction: ltr; }
.cm-otp-slot { position: relative; min-width: 0; }
.cm-otp-modal .cm-otp-digit { display: block; width: 100%; height: 59px; padding: 0; color: transparent; -webkit-text-fill-color: transparent; caret-color: var(--otp-accent); background: #fafbfc; border: 1.5px solid #e1e5ec; border-radius: 12px; outline: none; font-size: 24px; text-align: center; box-shadow: none; transition: border-color .15s, background-color .15s, box-shadow .15s; }
.cm-otp-modal .cm-otp-digit::selection { color: transparent; -webkit-text-fill-color: transparent; background: transparent; text-shadow: none; }
.cm-otp-modal .cm-otp-digit::-ms-reveal,
.cm-otp-modal .cm-otp-digit::-ms-clear { display: none; }
.cm-otp-slot.is-filled .cm-otp-digit { background: #fff; border-color: #cbd1dc; }
.cm-otp-modal .cm-otp-digit:focus { border-color: var(--otp-accent); background: #fff; box-shadow: 0 0 0 4px rgba(198, 40, 40, .08); }
.cm-otp-mask { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -37%); display: none; color: var(--otp-ink); font-family: Arial, sans-serif; font-size: 30px; line-height: 1; pointer-events: none; user-select: none; }
.cm-otp-slot.is-filled .cm-otp-mask { display: block; }
.cm-otp-slot.is-active .cm-otp-mask { transform: translate(-50%, -50%); font-size: 24px; }
.cm-otp-digits.has-error .cm-otp-digit { border-color: var(--otp-accent); background: #fff8f7; }
.cm-otp-modal .cm-otp-error { display: block; margin: 10px 0 0; color: #b42318; font-size: 12px; line-height: 1.5; }
.cm-otp-modal .cm-otp-error:empty { display: none; }
.cm-otp-modal .cm-otp-success { margin: 0 0 17px; padding: 10px 12px; color: #19704e; background: #effaf4; border: 1px solid #d3edde; border-radius: 10px; font-size: 12px; }
.cm-otp-modal .cm-otp-verify { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 50px; margin-top: 23px; padding: 12px 16px; color: #fff; background: var(--otp-accent); border: 0; border-radius: 12px; font-size: 14px; font-weight: 600; line-height: 1.5; cursor: pointer; transition: background-color .15s, box-shadow .15s; }
.cm-otp-modal .cm-otp-verify:hover:not(:disabled) { color: #fff; background: #ac2020; box-shadow: 0 6px 18px rgba(198, 40, 40, .18); }
.cm-otp-modal .cm-otp-verify:disabled { color: #fff; background: #cf9999; cursor: not-allowed; }
.cm-otp-modal .cm-otp-verify:focus-visible,
.cm-otp-resend:focus-visible { outline: 3px solid rgba(198, 40, 40, .3); outline-offset: 3px; }
.cm-otp-footer { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px 9px; margin: 27px -32px 0; padding: 19px 20px; background: #fafbfc; border-top: 1px solid #eef0f4; text-align: center; }
.cm-otp-footer p { margin: 0; color: var(--otp-muted); font-size: 12px; }
.cm-otp-timer { color: #7a8699; font-size: 11px; font-variant-numeric: tabular-nums; }
.cm-otp-timer span:last-child { display: inline-block; min-width: 37px; color: var(--otp-ink); font-size: 12px; font-weight: 600; }
.cm-otp-modal .cm-otp-resend { padding: 0; color: var(--otp-accent); background: none; border: 0; font-size: 12px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

@media (max-width: 400px) {
  .cm-otp-modal .modal-body { padding: 35px 22px 0; }
  .cm-otp-heading h2 { font-size: 24px; }
  .cm-otp-digits { gap: 6px; }
  .cm-otp-modal .cm-otp-digit { height: 52px; border-radius: 10px; }
  .cm-otp-footer { margin-right: -22px; margin-left: -22px; }
}

@media (prefers-reduced-motion: reduce) {
  .cm-otp-modal .cm-otp-digit,
  .cm-otp-modal .cm-otp-verify { transition: none; }
}
