.jp-stock-dialog {
  box-sizing: border-box; width: calc(100% - 24px); max-width: 500px;
  max-height: calc(100dvh - 24px); overflow-y: auto;
  margin: auto; padding: 0; border: 1px solid #cac8ce; border-radius: 12px;
  background: #fff; color: #1f1f1f; font: inherit;
}
.jp-stock-dialog:not([open]) { display: none; }
.jp-stock-dialog::backdrop { background: #606062; opacity: .72; }
.jp-stock-dialog *, .jp-stock-dialog *::before, .jp-stock-dialog *::after { box-sizing: border-box; }
.jp-stock-dialog-inner { position: relative; padding: 28px 24px 24px; }
.jp-stock-dialog h2 { margin: 0 44px 12px 0; padding: 0; font-size: 24px; line-height: 1.25; color: #606062; }
.jp-stock-dialog p { margin: 0 0 16px; padding: 0; }
.jp-stock-product { overflow-wrap: anywhere; font-weight: 600; }
.jp-stock-note { padding: 12px !important; border-radius: 6px; background: #f1f1f1; color: #606062; font-size: 14px; }
.jp-stock-close {
  position: absolute; top: 12px; right: 12px; width: 44px; height: 44px;
  border: 0; border-radius: 6px; background: #fff; color: #606062;
  font: inherit; font-size: 28px; cursor: pointer;
}
.jp-stock-field { margin: 18px 0; }
.jp-stock-field label { display: block; margin-bottom: 7px; font-weight: 600; }
.jp-stock-field input {
  display: block; width: 100%; min-height: 48px; padding: 10px 12px;
  border: 1px solid #606062; border-radius: 6px; background: #fff;
  color: #1f1f1f; font: inherit; font-size: 16px;
}
.jp-stock-consent { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; margin-bottom: 16px; cursor: pointer; }
.jp-stock-consent input { flex: 0 0 20px; width: 20px; height: 20px; margin: 3px 0 0; accent-color: #0071a5; }
.jp-stock-consent span { font-size: 14px; line-height: 1.5; }
.jp-stock-honeypot { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.jp-stock-status { min-height: 24px; font-weight: 600; overflow-wrap: anywhere; }
.jp-stock-status.is-error { color: #1f1f1f; text-decoration: underline; }
.jp-stock-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.jp-stock-actions button {
  min-height: 48px; padding: 11px 16px; border: 1px solid #0071a5;
  border-radius: 6px; font: inherit; font-weight: 600; cursor: pointer;
}
.jp-stock-submit { flex: 1 1 180px; background: #0071a5; color: #fff; }
.jp-stock-cancel { flex: 0 1 auto; background: #fff; color: #0071a5; }
.jp-stock-submit:disabled { cursor: default; background: #606062; border-color: #606062; }
.jp-stock-dialog button:focus-visible, .jp-stock-dialog input:focus-visible {
  outline: 3px solid #0071a5; outline-offset: 3px;
}
@media (max-width: 380px) {
  .jp-stock-dialog-inner { padding: 24px 16px 18px; }
  .jp-stock-dialog h2 { font-size: 21px; }
  .jp-stock-actions button { flex: 1 1 100%; }
}
