/* Loaded only by the configurator route; print rules never reach other pages. */
.configurator-main { min-width: 0; }
.config-workspace { display: grid; grid-template-columns: minmax(18rem, 0.85fr) minmax(0, 1.4fr); gap: var(--space-xl); align-items: start; }
.config-workspace > *, .config-workspace fieldset { min-width: 0; }
.configurator-main fieldset { margin: 0 0 var(--space-lg); padding: var(--space-md); border: 1px solid var(--color-border-strong); border-radius: var(--radius-sm); }
.configurator-main legend { padding-inline: var(--space-xs); font-weight: 700; }
.configurator-main label { display: grid; gap: var(--space-xs); margin-bottom: var(--space-sm); }
.configurator-main select, .configurator-main input, .configurator-main button { font: inherit; color: var(--color-text-primary); background: var(--color-surface); border: 1px solid var(--color-border-strong); border-radius: var(--radius-sm); min-height: 48px; padding: var(--space-xs) var(--space-sm); max-width: 100%; }
.configurator-main input, .configurator-main select { width: 100%; min-width: 0; }
.configurator-main button { cursor: pointer; }
.configurator-main :disabled { opacity: .6; cursor: default; }
.configurator-main :focus-visible { outline: 3px solid var(--color-focus-ring); outline-offset: 3px; }
.configurator-main [data-box-opt] { display: flex; align-items: center; gap: var(--space-sm); min-height: 48px; }
.configurator-main input[type=checkbox] { width: 1.4rem; height: 1.4rem; min-height: 0; }
.configurator-main [data-part] { background: var(--color-surface); }
.configurator-main [data-part] p, .configurator-main [data-config-controls] > p { font-size: .9rem; }
.config-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm); margin-block: var(--space-md); }
.config-actions a { display: inline-flex; align-items: center; min-height: 48px; }
.config-paper-scroll { max-width: 100%; max-height: 80vh; overflow: auto; background: var(--color-surface); border: 1px solid var(--color-border-strong); }
.config-paper-scroll [data-page] { margin-inline: auto; background: #fff; color: #000; }
.config-paper-scroll svg { display: block; width: 100%; height: auto; }
.configurator-main [data-config-error] { padding: var(--space-md); border-left: 3px solid var(--color-accent-primary); }
.configurator-main [aria-invalid=true] { outline: 2px solid var(--color-accent-primary); }
.config-fallback { margin-top: var(--space-xl); }
.config-print { display: none; }
@media (max-width: 60rem) { .config-workspace { grid-template-columns: minmax(0, 1fr); } }
@media (forced-colors: active) { .config-paper-scroll { forced-color-adjust: none; } }
@media print {
  @page { margin: 0; }
  html, body { margin: 0 !important; padding: 0 !important; background: #fff !important; color: #000 !important; }
  body > :not(main), .configurator-main > article > :not([data-sheet-configurator]), [data-sheet-configurator] > :not(.config-print) { display: none !important; }
  .configurator-main, .configurator-main > article { display: block !important; margin: 0 !important; padding: 0 !important; width: auto !important; max-width: none !important; }
  .config-print { display: block; }
  .config-print-page { break-after: page; break-inside: avoid; margin: 0; padding: 0; }
  .config-print-page:last-child { break-after: auto; }
  .config-print-page svg { display: block; width: 100%; height: 100%; }
  [data-print-message] { margin: 12mm; color: #000; }
}

/* Resource-page typography and spacing apply only to the screen interface. */
@media screen {
  .config-intro > h1 { font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.15; margin-bottom: var(--space-sm); }
  .config-intro > p { max-width: var(--measure-reading); line-height: 1.5; margin-bottom: var(--space-lg); }
  .configurator-main [data-sheet-configurator] > [data-seed-notice] { margin-bottom: var(--space-sm); line-height: 1.5; }
  .configurator-main [data-sheet-configurator] > [data-config-status] { margin-bottom: var(--space-lg); line-height: 1.5; }
  .configurator-main [data-config-controls] > label, .configurator-main [data-part] > label { margin-bottom: var(--space-md); }
  .configurator-main [data-config-controls] > p, .configurator-main [data-part] > p { line-height: 1.5; margin-bottom: var(--space-md); }
  .configurator-main [data-parts] { margin-top: var(--space-lg); }
  .config-preview > p { line-height: 1.5; }
}
