/* Custom-print designer: flat print-area editor (js/designer/editor.js). Scoped .pd-* classes. */
.pd-editor {
  --pd-navy: #0c2340;
  --pd-sel: #2563eb;
  --pd-guide: #e11d48;
  --pd-seam: #dc2626;
  --pd-muted: #64748b;
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;            /* a selection past either end never widens the page */
  font-family: 'Inter', 'Inter Fallback', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
}
.pd-editor__svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  border-radius: 6px;
  outline: none;
}
.pd-editor__svg:focus-visible {
  outline: 3px solid rgba(37, 99, 235, 0.45);
  outline-offset: -3px;
}
.pd-editor__svg text {
  font-family: inherit;
}

/* Static layer */
.pd-frame {
  stroke: var(--pd-navy);
  stroke-width: 1.5;
}
.pd-grid line {
  stroke-width: 1;
}
.pd-centres line {
  stroke-width: 1.25;
}
.pd-ruler line {
  stroke: #94a3b8;
  stroke-width: 1;
}
.pd-ruler text {
  fill: var(--pd-muted);
  font-variant-numeric: tabular-nums;
}
.pd-ruler__unit {
  font-weight: 600;
}
.pd-labels text {
  fill: var(--pd-navy);
  font-weight: 700;
  letter-spacing: 0.06em;
}
.pd-labels .pd-labels__side {
  fill: #94a3b8;
  font-weight: 600;
}
.pd-labels .pd-labels__seam {
  fill: var(--pd-seam);
}

/* Artwork */
.pd-el {
  cursor: grab;
}
.pd-editor--dragging .pd-el,
.pd-editor--dragging .pd-editor__svg {
  cursor: grabbing;
}
.pd-missing {
  fill: rgba(148, 163, 184, 0.25);
  stroke: #94a3b8;
  stroke-dasharray: 3 2;
  stroke-width: 0.4;
}
.pd-missing__text {
  fill: var(--pd-muted);
}
.pd-warn__box {
  fill: rgba(220, 38, 38, 0.06);
  stroke: var(--pd-seam);
  stroke-width: 2;
  stroke-dasharray: 5 3;
  pointer-events: none;
}

/* Selection + handles */
.pd-sel__box {
  fill: none;
  stroke: var(--pd-sel);
  stroke-width: 1.5;
  stroke-dasharray: 5 3;
  pointer-events: stroke;
  cursor: grab;
}
.pd-handle {
  fill: #fff;
  stroke: var(--pd-sel);
  stroke-width: 1.5;
  pointer-events: none;
}
.pd-handle--rot {
  fill: var(--pd-sel);
  stroke: #fff;
}
.pd-handle__stem {
  stroke: var(--pd-sel);
  stroke-width: 1.25;
  pointer-events: none;
}
.pd-handle__hit {
  fill: transparent;
  stroke: none;
  cursor: nwse-resize;
}
.pd-handle__hit[data-pd-h='ne'],
.pd-handle__hit[data-pd-h='sw'] {
  cursor: nesw-resize;
}
.pd-handle__hit[data-pd-h='rot'] {
  cursor: grab;
}
.pd-guide {
  stroke: var(--pd-guide);
  stroke-width: 1.25;
  stroke-dasharray: 4 3;
  pointer-events: none;
}

/* Status + notices */
.pd-editor__status {
  margin: 0.5rem 0 0;
  min-height: 1.4em;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #334155;
  overflow-wrap: anywhere;
}
.pd-editor--seam .pd-editor__status {
  color: #b91c1c;
}
.pd-editor__notice {
  margin: 0.25rem 0 0;
  font-size: 0.8125rem;
  color: #92400e;
  min-height: 0;
}
.pd-editor__notice:empty {
  display: none;
}
@media (max-width: 480px) {
  .pd-editor__status,
  .pd-editor__notice {
    font-size: 0.75rem;
  }
}

/* v2: the whole wall (background on) with the artwork safe area dashed, and the background band handles */
.pd-safe {
  stroke-width: 1.5;
  stroke-dasharray: 7 5;
  pointer-events: none;
}
.pd-safe__label {
  font-weight: 600;
  letter-spacing: 0.02em;
  pointer-events: none;
}
.pd-bandh__line {
  stroke: #fff;
  stroke-width: 2;
  stroke-dasharray: 2 4;
  pointer-events: none;
  filter: drop-shadow(0 0 1px rgba(15, 23, 42, 0.8));
}
.pd-bandh__hit {
  fill: transparent;
  cursor: ns-resize;
}
.pd-bandh__pill {
  fill: #fff;
  stroke: var(--pd-navy);
  stroke-width: 1.5;
  cursor: ns-resize;
  filter: drop-shadow(0 1px 2px rgba(15, 23, 42, 0.35));
}
.pd-bandh__grip {
  stroke: var(--pd-navy);
  stroke-width: 1.5;
  pointer-events: none;
}
.pd-bandh__text {
  fill: var(--pd-navy);
  font-weight: 700;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, 0.92);
  stroke-width: 3px;
  stroke-linejoin: round;
  pointer-events: none;
}

/* v3: the studio's corner preview (setMini): read-only, the host's swap button takes the clicks */
.pd-editor--mini .pd-editor__svg {
  pointer-events: none;
}
.pd-editor--mini .pd-sel__box {
  stroke-width: 1.25;
}
