/* Shared email-code UI. Keep this file byte-identical across the five sites. */
.otp-backdrop.otp-backdrop {
  position: fixed; inset: 0; z-index: 2147483000;
  display: flex; align-items: center; justify-content: center;
  overflow-y: auto; padding: 16px; box-sizing: border-box;
  background: rgba(15, 23, 42, .56); backdrop-filter: blur(3px);
}
.otp-ui:is(#email-verification-dialog, .otp-ui) {
  position: relative; inset: auto; box-sizing: border-box;
  width: min(448px, calc(100vw - 32px)); max-width: 448px;
  max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px);
  overflow: auto; margin: auto; padding: 0; border: 1px solid #e2e8f0;
  border-radius: 20px; background: #fff; color: #17243b;
  box-shadow: 0 24px 72px rgba(15, 23, 42, .24);
  font: 400 15px/1.65 -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", Meiryo, sans-serif;
  text-align: left; letter-spacing: normal; overscroll-behavior: contain;
}
dialog.otp-ui:is(#email-verification-dialog, .otp-ui) { position: fixed; inset: 0; }
dialog.otp-ui:is(#email-verification-dialog, .otp-ui)::backdrop { background: rgba(15, 23, 42, .56); backdrop-filter: blur(3px); }
.otp-ui:is(#email-verification-dialog, .otp-ui) *,
.otp-ui:is(#email-verification-dialog, .otp-ui) *::before,
.otp-ui:is(#email-verification-dialog, .otp-ui) *::after { box-sizing: border-box; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-inner { padding: 28px; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-icon {
  display: grid; place-items: center; width: 44px; height: 44px;
  margin: 0 0 16px; border-radius: 14px; background: #edf4ff; color: #245fce;
}
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-icon svg { display: block; width: 24px; height: 24px; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-title {
  margin: 0 0 12px; padding: 0; border: 0; background: none; color: #17243b;
  font: 700 22px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", Meiryo, sans-serif;
  text-align: left; letter-spacing: normal; overflow-wrap: anywhere;
}
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-description {
  margin: 0 0 12px; padding: 0; color: #526078; font-size: 14px; line-height: 1.7;
}
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-address {
  display: block; margin: 0 0 20px; padding: 10px 12px; border: 1px solid #e6ebf3;
  border-radius: 10px; background: #f7f9fc; color: #334155;
  font-size: 14px; font-weight: 600; line-height: 1.6; overflow-wrap: anywhere; word-break: break-word;
}
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-form { margin: 0; padding: 0; border: 0; background: none; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-label {
  display: block; margin: 0 0 8px; padding: 0; color: #334155; font-size: 13px; font-weight: 700;
}
.otp-ui:is(#email-verification-dialog, .otp-ui) input.otp-code {
  display: block; width: 100%; min-width: 0; height: 58px; margin: 0; padding: 8px 12px;
  border: 1.5px solid #bbc8dc; border-radius: 12px; outline: 0;
  background: #fff; color: #17243b; box-shadow: none;
  font: 600 28px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .32em; text-align: center; text-indent: .32em; appearance: none;
  transition: border-color .15s, box-shadow .15s;
}
.otp-ui:is(#email-verification-dialog, .otp-ui) input.otp-code::placeholder {
  color: #8b98ac; font: 400 15px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", Meiryo, sans-serif;
  letter-spacing: .05em; text-indent: 0; opacity: 1;
}
.otp-ui:is(#email-verification-dialog, .otp-ui) input.otp-code:focus {
  border-color: #245fce; box-shadow: 0 0 0 4px #e9f0ff;
}
.otp-ui:is(#email-verification-dialog, .otp-ui) input.otp-code[aria-invalid="true"] { border-color: #c43b3b; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-status {
  display: block; min-height: 24px; margin: 10px 0 14px; padding: 0; color: #526078;
  font-size: 13px; font-weight: 400; line-height: 1.65; overflow-wrap: anywhere;
}
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-status:is(.is-error, [class*="--error"]) { color: #b42332; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-status:is(.is-success, [class*="--success"]) { color: #12704a; font-weight: 600; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; }
.otp-ui:is(#email-verification-dialog, .otp-ui) :is(.otp-primary, .otp-secondary) {
  display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px;
  margin: 0; padding: 11px 12px; border: 1px solid transparent; border-radius: 10px;
  font: 600 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", Meiryo, sans-serif;
  text-decoration: none; letter-spacing: normal; cursor: pointer; box-shadow: none;
  white-space: normal; text-align: center; transition: background .15s;
}
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-primary { order: 2; background: #245fce; color: #fff; border-color: #245fce; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-primary:hover:not(:disabled) { background: #194cae; border-color: #194cae; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-secondary { order: 1; background: #fff; color: #46546c; border-color: #cdd6e4; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-secondary:hover:not(:disabled) { background: #f4f7fc; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-resend {
  display: block; width: auto; min-height: 44px; margin: 10px auto 0; padding: 10px 12px;
  border: 0; border-radius: 8px; background: transparent; box-shadow: none; color: #245fce;
  font: 600 13px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Meiryo, sans-serif;
  text-decoration: underline; text-underline-offset: 3px; white-space: normal; cursor: pointer;
}
.otp-ui:is(#email-verification-dialog, .otp-ui) :is(button, a):focus-visible { outline: 3px solid #7ba7fb; outline-offset: 3px; }
.otp-ui:is(#email-verification-dialog, .otp-ui) button:disabled { opacity: .55; cursor: default; }
.otp-ui:is(#email-verification-dialog, .otp-ui) .otp-help {
  margin: 12px 0 0; padding: 16px 0 0; border-top: 1px solid #e7ecf3;
  color: #637089; font-size: 12px; line-height: 1.75; overflow-wrap: anywhere;
}
@media (max-width: 420px) {
  .otp-ui:is(#email-verification-dialog, .otp-ui) .otp-inner { padding: 24px 20px; }
  .otp-ui:is(#email-verification-dialog, .otp-ui) .otp-title { font-size: 20px; }
  .otp-ui:is(#email-verification-dialog, .otp-ui) .otp-actions { grid-template-columns: 1fr; gap: 8px; }
  .otp-ui:is(#email-verification-dialog, .otp-ui) .otp-primary { order: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .otp-ui:is(#email-verification-dialog, .otp-ui) * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
