/* The real file input stays focusable and participates in native required validation. */
.pm-product .pm-customizer .pm-upload-control {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
  min-height: 64px;
  padding: 12px;
  border: 1px dashed #cdb5b2;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
}
.pm-product .pm-customizer .pm-upload-control:focus-within {
  outline: 2px solid #a7475b;
  outline-offset: 4px;
  border-color: #a7475b;
}
.pm-product .pm-customizer .pm-upload-control > input[type="file"][data-pm-photo] {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-width: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  border: 0;
  font-size: 16px;
  cursor: pointer;
}
.pm-product .pm-customizer .pm-upload-button {
  padding: 9px 12px;
  border-radius: 4px;
  background: #f5e5e6;
  color: #a7475b;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
}
.pm-product .pm-customizer .pm-upload-filename {
  min-width: 0;
  color: #786d65;
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
  word-break: break-word;
}
@media (max-width: 400px) {
  .pm-product .pm-customizer .pm-upload-control { gap: 9px; padding: 10px; }
  .pm-product .pm-customizer .pm-upload-button { padding: 9px; }
}

/* Progressive variation controls; values and availability come from WooCommerce. */
.pm-product .variations select.pm-variation-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0 !important;
}
.pm-product .pm-variation-chips { width: 100%; min-width: 0; gap: 9px; }
.pm-product .pm-variation-chips[hidden] { display: none !important; }
.pm-product .pm-variation-size { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pm-product .pm-variation-chip {
  display: inline-flex; align-items: center; justify-content: center; gap: 11px;
  min-width: 44px; min-height: 44px; padding: 10px 14px;
  border: 1px solid #e8dfd7; border-radius: 5px; background: #fff; color: #433b36;
  font: inherit; font-size: 14px; line-height: 1.4; cursor: pointer;
}
.pm-product .pm-variation-chip:hover:not(:disabled) { border-color: #c87580; }
.pm-product .pm-variation-chip[aria-pressed="true"] { border-color: #a7475b; color: #a7475b; background: #fcf3f3; }
.pm-product .pm-variation-chip:focus-visible { outline: 2px solid #a7475b; outline-offset: 3px; }
.pm-product .pm-variation-chip:disabled { opacity: .4; cursor: not-allowed; }
.pm-product .pm-variation-color { display: flex; flex-wrap: wrap; }
.pm-product .pm-variation-color .pm-variation-chip { justify-content: flex-start; padding: 7px 10px; }
.pm-product .pm-variation-white { width: 27px; height: 27px; flex: 0 0 27px; border-radius: 50%; background: #fff; border: 1px solid #d8c9bc; }
.pm-product .pm-variation-chip[aria-pressed="true"] .pm-variation-white { box-shadow: 0 0 0 2px #fcf3f3, 0 0 0 3px #a7475b; }
.pm-product .pm-variation-label { min-width: 0; overflow-wrap: anywhere; }
