.print-workspace {
  --print-edge-inset: 0cm;
  min-height: 70vh;
  padding: 54px 0 90px;
}

.circle-window-print-pages {
  display: grid;
  gap: 24px;
  margin: 28px auto 80px;
}

.circle-window-print-sheet {
  --screen-paper-width: 29.7cm;
  position: relative;
  width: 297mm;
  height: 210mm;
  margin-inline: auto;
  padding: 10mm;
  overflow: hidden;
  border: 0;
  background: #fff;
  box-shadow: none;
  color: #151922;
  /* Keep the phone preview identical to the physical A4 composition. */
  zoom: min(1, calc((100vw - 40px) / var(--screen-paper-width)));
}

.circle-window-print-sheet > header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10mm;
}

.circle-window-print-sheet > header { height: 19mm; border-bottom: .3mm solid #9ca6b4; }
.circle-window-print-sheet > header small { font-size: 2.5mm; font-weight: 850; letter-spacing: .1em; }
.circle-window-print-sheet > header h2 { margin: 1mm 0 0; font-size: 6mm; line-height: 1; }
.circle-window-print-sheet > header strong { font-size: 5mm; }
.circle-print-logo { width: 31mm; height: auto; flex: 0 0 auto; object-fit: contain; }

.circle-window-overview-grid {
  display: grid;
  height: 160mm;
  grid-template-columns: minmax(0, 1fr) 68mm;
  align-items: center;
  gap: 8mm;
}

.circle-window-overview-grid > svg { width: 100%; max-height: 152mm; }
.circle-window-measurements { display: grid; gap: 1.6mm; margin: 0; }
.circle-window-measurements > div { display: flex; min-height: 9mm; align-items: center; justify-content: space-between; gap: 4mm; padding: 1.5mm 2.5mm; border: .25mm solid #d2d8e0; border-radius: 2mm; }
.circle-window-measurements dt { color: #596272; font-size: 2.5mm; }
.circle-window-measurements dd { margin: 0; font-size: 3mm; font-weight: 850; text-align: right; }
.circle-template-stones polygon { fill: rgba(239,145,76,.29); stroke: #1d2630; stroke-width: .7; vector-effect: non-scaling-stroke; }
.circle-template-outline { fill: none; stroke: #000; stroke-width: .7; vector-effect: non-scaling-stroke; }
.circle-template-marks line { stroke: #4d5661; stroke-width: .35; vector-effect: non-scaling-stroke; }
.circle-template-numbers circle { fill: rgba(255,255,255,.9); stroke: #5a6370; stroke-width: .45; vector-effect: non-scaling-stroke; }
.circle-template-numbers text { fill: #202733; font-weight: 900; dominant-baseline: central; }
.circle-centre-mark,.circle-registration { fill: none; stroke: #5c3da2; stroke-width: .35; vector-effect: non-scaling-stroke; }
.circle-dimension-line { stroke: #5c3da2; stroke-width: .7; marker-start: url(#circle-print-arrow); marker-end: url(#circle-print-arrow); vector-effect: non-scaling-stroke; }
.circle-window-overview-sheet marker path { fill: #5c3da2; }
.circle-dimension-label { fill: #3e2a68; font-size: 24px; font-weight: 850; paint-order: stroke; stroke: #fff; stroke-width: 6px; }
.circle-course-label { fill: #3e2a68; font-size: 21px; font-weight: 850; paint-order: stroke; stroke: #fff; stroke-width: 5px; }
.circle-kim-label { fill: #596272; font-size: 15px; font-weight: 700; paint-order: stroke; stroke: #fff; stroke-width: 4px; }

.circle-window-cut-sheet { padding: 0; }
.circle-window-cut-sheet > svg { position: absolute; inset: 0; }
.circle-cut-stone { stroke-width: .35; }
.circle-window-cut-sheet .fabrication-dimension text,
.circle-cut-label { fill: #302340; font-size: .32px; font-weight: 750; paint-order: stroke; stroke: #fff; stroke-width: .14px; }
.circle-scale-bar { stroke: #000; stroke-width: .8; }

.circle-window-template-sheet { padding: 0; }
.circle-window-template-sheet > header { position: absolute; z-index: 4; top: 2.5mm; right: 10mm; left: 10mm; height: 6mm; border: 0; color: #252d38; }
.circle-window-template-sheet > header .circle-print-logo { width: 24mm; }
.circle-window-template-sheet > svg {
  position: absolute;
  top: 0;
  left: 0;
  /* Every tile contains the complete circle. Clip at the SVG viewport so a
     neighbouring PDF page can never receive geometry from this tile. */
  overflow: hidden;
}

.circle-window-template-overview__body {
  position: absolute;
  top: 32mm;
  right: 10mm;
  bottom: 15mm;
  left: 10mm;
  display: grid;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 3mm;
  font-family: Arial, sans-serif;
}

.circle-window-template-overview__body > p {
  margin: 0;
  color: #4f5968;
  font-size: 8pt;
  line-height: 1.45;
}

.circle-window-template-overview__body > svg {
  width: 100%;
  height: 100%;
  min-height: 0;
}

.circle-window-template-overview .assembly-tile text {
  font-size: 18px;
}

@media print {
  .circle-window-print-workspace .print-toolbar,
  .circle-window-print-workspace .print-instructions { display: none !important; }
  .circle-window-print-pages { display: block; margin: 0; }
  .circle-window-print-sheet { margin: 0; border: 0; box-shadow: none; }
}

.site-shell:has(.print-workspace) > .site-navigation,
.site-shell:has(.print-workspace) > .site-footer {
  display: none;
}

.site-shell:has(.print-workspace) > main {
  padding-bottom: 0;
}

.print-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr);
  align-items: end;
  gap: 38px;
}

.print-toolbar__heading h1 {
  max-width: 720px;
  margin: 13px 0 14px;
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 4vw, 3.35rem);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.92;
}

.print-toolbar__heading > p:last-child {
  max-width: 690px;
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.7;
}

.print-back {
  display: inline-flex;
  margin-bottom: 25px;
  color: #6646b6;
  font-size: 0.68rem;
  font-weight: 850;
  text-decoration: none;
}

.print-toolbar__controls {
  display: grid;
  gap: 13px;
  padding: 20px;
  border: 1px solid rgba(106, 77, 183, 0.16);
  border-radius: 25px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.72), rgba(238, 232, 251, 0.54)),
    rgba(255, 255, 255, 0.46);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.86),
    0 24px 65px rgba(75, 54, 111, 0.11);
  backdrop-filter: blur(24px) saturate(135%);
}

.print-paper-picker > span {
  display: block;
  margin-bottom: 7px;
  color: #6b6278;
  font-size: 0.59rem;
  font-weight: 800;
}

.print-paper-picker {
  display: block;
}

.print-paper-picker select {
  width: 100%;
  min-height: 43px;
  padding: 0 13px;
  border: 1px solid rgba(105, 81, 170, 0.16);
  border-radius: 13px;
  outline: none;
  background: rgba(255, 255, 255, 0.76);
  color: #4f465b;
  font: inherit;
  font-size: 0.64rem;
  font-weight: 750;
}

.print-action {
  justify-content: center;
}

.print-instructions {
  display: grid;
  grid-template-columns: minmax(160px, 0.3fr) minmax(0, 1fr);
  gap: 28px;
  margin-top: 30px;
  padding: 20px 24px;
  border: 1px solid rgba(29, 158, 152, 0.17);
  border-radius: 20px;
  background: rgba(241, 253, 250, 0.54);
}

.print-instructions strong {
  color: #386f70;
  font-size: 0.68rem;
}

.print-instructions ol {
  display: grid;
  gap: 7px;
  margin: 0;
  padding-left: 18px;
  color: #5f6f71;
  font-size: 0.62rem;
  line-height: 1.55;
}

.print-page-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 42px;
  margin-bottom: 15px;
  color: var(--muted);
}

.print-page-summary span {
  color: #564969;
  font-size: 0.68rem;
  font-weight: 850;
}

.print-page-summary small {
  font-size: 0.58rem;
}

.print-sheets {
  display: grid;
  overflow-x: auto;
  justify-content: center;
  gap: 30px;
  padding: 10px 20px 50px;
}

.print-structural-disclaimer {
  margin: 10px auto 0;
  color: #5f6875;
  font-size: 0.78rem;
  text-align: center;
}

.print-sheet {
  --screen-paper-width: 29.7cm;
  position: relative;
  box-sizing: border-box;
  overflow: hidden;
  flex: 0 0 auto;
  border: 0;
  background: #fff;
  box-shadow: none;
  color: #111;
  /* Alleen de schermproef wordt verkleind. De pagina zelf en @media print
     behouden de echte papiermaat, zodat A4, A3 en A2 maatvast blijven. */
  zoom: min(1, calc((100vw - 40px) / var(--screen-paper-width)));
}

.print-sheet--a4-landscape {
  --screen-paper-width: 29.7cm;
  width: 29.7cm;
  height: 21cm;
}

.print-sheet--a4-portrait {
  --screen-paper-width: 21cm;
  width: 21cm;
  height: 29.7cm;
}

.print-sheet--a3-landscape {
  --screen-paper-width: 42cm;
  width: 42cm;
  height: 29.7cm;
}

.print-sheet--a3-portrait {
  --screen-paper-width: 29.7cm;
  width: 29.7cm;
  height: 42cm;
}

.print-sheet--a2-landscape {
  --screen-paper-width: 59.4cm;
  width: 59.4cm;
  height: 42cm;
}

.print-sheet--a2-portrait {
  --screen-paper-width: 42cm;
  width: 42cm;
  height: 59.4cm;
}

.print-template {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  overflow: hidden;
}

.print-template--edge-to-edge {
  top: var(--print-edge-inset);
  left: var(--print-edge-inset);
}

.print-invalid-warning {
  position: absolute;
  z-index: 12;
  right: var(--print-edge-inset);
  bottom: var(--print-edge-inset);
  left: var(--print-edge-inset);
  margin: 0;
  padding: 0.28cm 0.4cm;
  border: 0.03cm solid #b42318;
  background: #fff1f0;
  color: #8a1c13;
  font: 700 8pt/1.25 Arial, sans-serif;
  text-align: center;
}

.print-sheet__meta {
  position: absolute;
  z-index: 2;
  top: 0.17cm;
  right: 1cm;
  left: 1cm;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1cm;
  color: #111;
  font-family: Arial, sans-serif;
  font-size: 7pt;
  line-height: 1;
}

.print-sheet__meta--edge {
  top: 0.72cm;
  right: 0.72cm;
  left: 0.72cm;
  pointer-events: none;
}

.print-sheet__meta--edge img {
  width: 3.1cm;
  opacity: 0.72;
}

.print-sheet__meta--edge span {
  padding: 0.08cm 0.14cm;
  border: 0.015cm solid rgba(17, 17, 17, 0.25);
  border-radius: 99cm;
  background: rgba(255, 255, 255, 0.78);
}

.print-sheet__meta img {
  width: 5cm;
  height: 1.05cm;
  flex: 0 0 5cm;
  object-fit: contain;
  object-position: center;
}

.print-sheet__meta strong {
  margin-right: auto;
  font-size: 6pt;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.stretch-full-scale-svg {
  position: absolute;
  display: block;
  overflow: hidden;
}

.stretch-full-scale-svg polygon {
  fill: rgba(206, 229, 244, .28);
  stroke: #000;
  stroke-linejoin: round;
  stroke-width: .65px;
  vector-effect: non-scaling-stroke;
}

.stretch-full-scale-piece.is-natural polygon {
  fill: rgba(120, 185, 199, .34);
}

.stretch-full-scale-piece__number-disc {
  fill: #fff;
  stroke: #18242e;
  stroke-width: .55px;
  vector-effect: non-scaling-stroke;
}

.stretch-full-scale-piece__number {
  fill: #18242e;
  font-family: Arial, sans-serif;
  font-size: .31px;
  font-weight: 900;
  pointer-events: none;
}

.stretch-full-scale-overview__pieces polygon {
  fill: #edf5fb;
  stroke: #1d3f5e;
  stroke-width: .7px;
  vector-effect: non-scaling-stroke;
}

.stretch-full-scale-overview__pieces polygon.is-natural {
  fill: #b9e7e2;
  stroke: #315f6d;
}

.stretch-complete-overview-sheet .print-guide-sheet__body {
  bottom: 1.55cm;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  gap: .14cm;
}

.stretch-complete-overview-sheet .stretch-overview-facts {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .08cm;
}

.stretch-complete-overview-sheet .stretch-overview-facts span {
  min-width: 0;
  padding: .08cm .12cm;
  font-size: 5.5pt;
  line-height: 1.2;
}

.stretch-complete-overview-sheet .stretch-overview-facts b {
  font-size: 4.7pt;
}

.stretch-complete-overview__stone text {
  fill: #173450;
  /* The overview SVG viewBox is expressed in centimetres. A physical `cm`
     font here becomes centimetres in user space and blows the numbers up
     when the full template is reduced to one guide page. */
  font-size: .42px;
  font-weight: 850;
  dominant-baseline: middle;
  paint-order: stroke;
  stroke: #fff;
  stroke-width: .08px;
}

/* Shared bottom furniture for fabrication sheets. Routes opt in explicitly;
   the standard never changes an existing page until that route is migrated. */
.fabrication-page-footer {
  position: absolute;
  z-index: 6;
  right: 0.72cm;
  bottom: 0.24cm;
  left: 0.72cm;
  display: flex;
  min-height: 0.32cm;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.7cm;
  color: rgba(17, 17, 17, 0.58);
  font: 5.5pt/1 Arial, sans-serif;
  pointer-events: none;
}

.fabrication-page-footer__sheet {
  overflow: hidden;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fabrication-page-footer__page {
  flex: 0 0 auto;
  margin-left: auto;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.fabrication-first-page-control-line {
  position: absolute;
  z-index: 5;
  bottom: 0.92cm;
  left: 0.72cm;
  width: 10cm;
  height: 0.46cm;
  border-top: 0.02cm solid #111;
  color: #111;
  font: 6pt/1 Arial, sans-serif;
  text-align: center;
  pointer-events: none;
}

.fabrication-first-page-control-line::before,
.fabrication-first-page-control-line::after,
.fabrication-first-page-control-line > span {
  position: absolute;
  top: -0.11cm;
  width: 0.02cm;
  height: 0.2cm;
  background: #111;
  content: "";
}

.fabrication-first-page-control-line::before { left: 0; }
.fabrication-first-page-control-line::after { right: 0; }
.fabrication-first-page-control-line > span { left: 5cm; }

.fabrication-first-page-control-line small {
  position: relative;
  top: 0.08cm;
  font-size: inherit;
}

.saw-template-svg {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  font-family: Arial, sans-serif;
}

.saw-piece__boundary {
  display: none;
}

.fabrication-stone-chip {
  fill: #8b5a3c;
  stroke: #69402b;
  stroke-width: .45px;
  vector-effect: non-scaling-stroke;
}

.saw-template-svg .fabrication-stone-chip__text,
.fabrication-stone-chip__text {
  fill: #fff;
  stroke: none;
  paint-order: normal;
  font-family: Arial, sans-serif;
  font-size: .31px;
  font-weight: 900;
  letter-spacing: .025px;
}

.rectangular-cut-print-sheet .fabrication-stone-chip__text {
  font-size: 3.1px;
  letter-spacing: .18px;
}

/* One reusable fabrication language for every calculator: raw stock is only
   a light reference, the solid tinted polygon is the finished 1:1 piece. */
.fabrication-stock-outline,
.saw-piece__blank {
  fill: rgba(99, 112, 128, 0.025);
  stroke: rgba(73, 84, 99, 0.46);
  stroke-width: 0.55px;
  stroke-dasharray: 2.4px 1.7px;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}

.fabrication-final-shape,
.saw-piece__stone {
  fill: rgba(239, 145, 76, 0.29);
  stroke: #111;
  stroke-width: 0.65px;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.fabrication-dimension > path:not(.fabrication-dimension__arrow) {
  fill: none;
  stroke: #394454;
  stroke-width: 0.55px;
  vector-effect: non-scaling-stroke;
}

.fabrication-dimension__arrow {
  fill: #394454;
  stroke: none;
}

.fabrication-dimension text {
  fill: #172033;
  font-weight: 750;
  paint-order: stroke;
  stroke: #fff;
}

.saw-template-svg .fabrication-dimension text {
  font-size: 0.26px;
  stroke-width: 0.045;
}

.saw-piece__cut {
  fill: none;
  stroke: #000;
  stroke-width: 0.014;
}

.saw-piece__number,
.saw-piece__quantity,
.saw-piece__position,
.saw-piece__start,
.saw-piece__references,
.saw-piece__angles,
.saw-piece__cross-angles,
.saw-piece__point text,
.saw-piece__dimension,
.saw-piece__cut-label,
.saw-piece__measurement-label,
.saw-piece__depth text,
.saw-piece__blank-width text {
  fill: #111827;
  paint-order: stroke;
  stroke: #fff;
  stroke-width: 0.045;
  font-size: 0.31px;
  font-weight: 700;
}

.saw-piece__number {
  fill: #102c4c;
  font-size: 0.42px;
  font-weight: 900;
}

.saw-piece[data-lane] .fabrication-stone-chip__text { font-size: .29px; }

.saw-piece[data-lane] > .saw-piece__dimension {
  display: none;
}

.saw-piece__quantity,
.saw-piece__position,
.saw-piece__start,
.saw-piece__references,
.saw-piece__angles,
.saw-piece__cross-angles {
  fill: #536276;
  font-size: 0.27px;
}

.saw-piece__start {
  fill: #111;
  font-weight: 900;
}

.saw-piece__references {
  fill: #26384d;
  font-size: 0.25px;
  font-variant-numeric: tabular-nums;
}

/* De werkmaat staat op/in de steen. De oude puntentabel blijft alleen in de
   SVG-data beschikbaar voor digitale controle en vervuilt de papieren mal niet. */
.saw-piece__start,
.saw-piece__references,
.saw-piece__point {
  display: none;
}

.saw-piece__point circle {
  fill: #fff;
  stroke: #111;
  stroke-width: 0.012;
  vector-effect: non-scaling-stroke;
}

.saw-piece__point text {
  fill: #111;
  font-size: 0.25px;
  font-weight: 900;
  paint-order: stroke;
  stroke: #fff;
  stroke-width: 0.04;
}

.saw-piece__cut-label {
  fill: #111;
  font-size: 0.27px;
}

.saw-piece__measurement path {
  fill: none;
  stroke: #526173;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 0.01;
  vector-effect: non-scaling-stroke;
}

.saw-piece__measurement-label {
  fill: #172033;
  font-size: 0.26px;
  font-weight: 750;
}

/* Hairline extensions of the calculated profile edges. */
.saw-piece__measure-guide {
  fill: none;
  stroke: #080808;
  stroke-linecap: square;
  stroke-width: 0.28px;
  vector-effect: non-scaling-stroke;
}

/* Two exact offsets from each fixed raw-brick corner to its finished cut
   point. Lines remain genuinely thin on paper; the warm contour stays the
   strongest shape on the workshop sheet. */
.saw-piece__offset-line,
.saw-piece__offset-ticks {
  fill: none;
  stroke: #2f5268;
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-width: 0.28px;
  vector-effect: non-scaling-stroke;
}

.saw-piece__offset-label {
  fill: #203d50;
  font-size: 0.27px;
  font-weight: 820;
  paint-order: stroke;
  stroke: #fff;
  stroke-linejoin: round;
  stroke-width: 0.07px;
}

.saw-piece__offset-target {
  fill: #111;
  stroke: #fff;
  stroke-width: 0.02px;
  vector-effect: non-scaling-stroke;
}

.rectangular-cut-profile__measure-guides path {
  fill: none;
  stroke: #080808;
  stroke-linecap: square;
  stroke-width: .28px;
  vector-effect: non-scaling-stroke;
}

.saw-piece__depth path,
.saw-piece__blank-width path {
  fill: none;
  stroke: #111;
  stroke-width: 0.01;
}

.saw-piece__boundary,
.saw-piece__blank,
.saw-piece__stone,
.saw-piece__cut,
.saw-piece__depth path,
.saw-piece__blank-width path {
  vector-effect: non-scaling-stroke;
}

.print-stone,
.print-joint,
.print-outline,
.print-setting-mark path,
.print-cutting-line,
.print-mould-mark path,
.print-center-vector,
.print-porring-cross,
.print-label-guide,
.print-spring-line,
.print-dimension path,
.print-layer-mark path,
.print-layers-baseline {
  vector-effect: non-scaling-stroke;
}

.print-guide-header {
  position: absolute;
  z-index: 3;
  top: var(--print-edge-inset);
  right: var(--print-edge-inset);
  left: var(--print-edge-inset);
  display: flex;
  min-height: 1.45cm;
  align-items: center;
  gap: 0.4cm;
  border-bottom: 0.02cm solid #cad2dd;
  font-family: Arial, sans-serif;
  background: #fff;
}

.print-guide-header img {
  position: relative;
  z-index: 1;
  width: 5cm;
  height: 1.05cm;
  flex: 0 0 5cm;
  object-fit: contain;
  object-position: center;
}

.stretch-overview-sheet__body {
  position: absolute;
  inset: 2.25cm 0.8cm 0.65cm;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 0.25cm;
  font-family: Arial, sans-serif;
}

.stretch-overview-sheet__body svg {
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0.02cm solid #d7dee8;
  background: #fff;
}

.stretch-overview-stone polygon {
  fill: #edf5fb;
  stroke: #1d3f5e;
  stroke-width: 1.1;
  vector-effect: non-scaling-stroke;
}

.stretch-overview-stone.is-natural polygon {
  fill: #b9e7e2;
  stroke: #315f6d;
}

.stretch-overview-stone text {
  fill: #173450;
  font-size: 13px;
  font-weight: 800;
  text-anchor: middle;
  dominant-baseline: middle;
}

.stretch-overview-opening {
  fill: none;
  stroke: #111;
  stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
}

.stretch-overview-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.12cm;
}

.stretch-overview-facts span {
  display: grid;
  gap: 0.04cm;
  padding: 0.12cm 0.16cm;
  border: 0.015cm solid #d7dee8;
  border-radius: 0.08cm;
  color: #26384d;
  font-size: 6.5pt;
}

.stretch-overview-facts b {
  color: #102c4c;
  font-size: 5.6pt;
  text-transform: uppercase;
}

.stretch-combined-sheet__body {
  position: absolute;
  inset: 2.15cm 0.7cm 0.58cm;
  display: grid;
  grid-template-rows: minmax(0, .94fr) minmax(0, 1.06fr);
  gap: .28cm;
  font-family: Arial, sans-serif;
}

.stretch-combined-sheet__overview {
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) minmax(5.8cm, 29%);
  gap: .25cm;
}

.stretch-combined-sheet__overview > svg {
  width: 100%;
  height: 100%;
  min-height: 0;
  border: .02cm solid #cbd5e1;
  border-radius: .12cm;
  background: #fff;
}

.stretch-combined-sheet .stretch-overview-facts {
  align-content: start;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .1cm;
  overflow: hidden;
}

.stretch-combined-sheet .stretch-overview-facts span {
  min-width: 0;
  padding: .1cm .12cm;
  border-color: #cbd5e1;
  border-radius: .1cm;
  background: #f8fafc;
  font-size: 5.6pt;
  line-height: 1.2;
}

.stretch-combined-sheet .stretch-overview-facts b {
  font-size: 4.7pt;
}

.stretch-combined-sheet__sawing {
  display: grid;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
  gap: .16cm;
  padding: .2cm;
  border: .025cm solid #172033;
  border-radius: .14cm;
  background: #fff;
}

.stretch-combined-sheet__sawing > div:first-child {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .35cm;
  border-bottom: .02cm solid #cbd5e1;
  padding-bottom: .12cm;
}

.stretch-combined-sheet__sawing > div:first-child strong {
  color: #111827;
  font-size: 8pt;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.stretch-combined-sheet__sawing > div:first-child span {
  color: #5d6878;
  font-size: 5.2pt;
}

.stretch-saw-overview-grid {
  display: grid;
  min-height: 0;
  grid-auto-rows: minmax(0, 1fr);
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .1cm;
  overflow: hidden;
}

.print-sheet--a4-portrait .stretch-saw-overview-grid,
.print-sheet--a3-portrait .stretch-saw-overview-grid,
.print-sheet--a2-portrait .stretch-saw-overview-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.print-sheet--a3-landscape .stretch-saw-overview-grid {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.print-sheet--a2-landscape .stretch-saw-overview-grid {
  grid-template-columns: repeat(9, minmax(0, 1fr));
}

.stretch-saw-overview-card {
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-rows: auto minmax(.45cm, 1fr) auto;
  gap: .04cm;
  overflow: hidden;
  padding: .08cm;
  border: .018cm solid #aab5c3;
  border-radius: .08cm;
  background: #f8fafc;
}

.stretch-saw-overview-card > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .08cm;
  color: #111827;
  font-size: 4.8pt;
}

.stretch-saw-overview-card > div span {
  color: #596579;
  font-size: 4.2pt;
}

.stretch-saw-overview-card svg {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.stretch-saw-overview-card__blank {
  fill: #f1f5f9;
  stroke: #94a3b8;
  stroke-width: .45px;
  vector-effect: non-scaling-stroke;
}

.stretch-saw-overview-card__shape {
  fill: #fff;
  stroke: #000;
  stroke-linejoin: round;
  stroke-width: .8px;
  vector-effect: non-scaling-stroke;
}

.stretch-saw-overview-card small {
  overflow: hidden;
  color: #354256;
  font-size: 4.2pt;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.print-guide-header h2 {
  margin: 0;
  color: #17263b;
  font-size: 12pt;
  line-height: 1;
}

.print-guide-header span {
  display: block;
  margin-top: 0.08cm;
  color: #627086;
  font-size: 6pt;
}

.print-guide-sheet__body {
  position: absolute;
  top: 2.8cm;
  right: 1cm;
  bottom: 0.8cm;
  left: 1cm;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 0.25cm;
  font-family: Arial, sans-serif;
}

.print-guide-sheet.has-first-page-control-line .print-guide-sheet__body {
  bottom: 1.45cm;
}

.print-guide-sheet__body > p,
.setting-sheet__drawing > p {
  margin: 0;
  color: #56657a;
  font-size: 7pt;
  line-height: 1.4;
}

.print-overview-svg {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0.02cm solid #d7dee8;
  background: #fff;
}

.overview-arch .print-stone {
  fill: #ecf3fb;
}

.overview-arch .print-joint {
  fill: #fff;
}

.overview-setting-mark path {
  fill: none;
  opacity: 0.5;
  stroke: #334a67;
  stroke-width: 0.45px;
  vector-effect: non-scaling-stroke;
}

.print-construction-circle {
  fill: none;
  opacity: 0.32;
  stroke: #248fbe;
  stroke-dasharray: 2.4 1.8;
  stroke-width: 0.45px;
  vector-effect: non-scaling-stroke;
}

.print-construction-centre {
  fill: none;
  stroke: #248fbe;
  stroke-width: 0.45px;
  vector-effect: non-scaling-stroke;
}

.print-construction-centre-label {
  fill: #1d7096;
  font-family: Arial, sans-serif;
  font-size: 1.5px;
  font-weight: 850;
  paint-order: stroke;
  stroke: #fff;
  stroke-width: 0.55px;
}

.overview-setting-mark circle {
  fill: #fff;
  stroke: #193858;
  stroke-width: 0.5px;
  vector-effect: non-scaling-stroke;
}

.overview-setting-mark text,
.overview-side-centre text,
.overview-label {
  fill: #162d47;
  font-family: Arial, sans-serif;
  font-size: 1.65px;
  font-weight: 800;
}

.overview-side-centre path,
.overview-side-centre circle {
  fill: #fff;
  stroke: #193858;
  stroke-width: 0.5px;
  vector-effect: non-scaling-stroke;
}

.overview-label {
  font-size: 1.8px;
}

.overview-label--keystone {
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.assembly-grid .assembly-tile > rect:first-child {
  fill: none;
  stroke: #2f5c88;
  stroke-width: 0.7px;
  vector-effect: non-scaling-stroke;
}

.assembly-tile circle {
  fill: #fff;
  stroke: #163e66;
  stroke-width: 0.7px;
  vector-effect: non-scaling-stroke;
}

.assembly-tile text {
  fill: #173958;
  font-family: Arial, sans-serif;
  font-size: 2.25px;
  font-weight: 900;
}

.assembly-legend {
  display: flex;
  align-items: center;
  gap: 0.65cm;
  color: #46566a;
  font-family: Arial, sans-serif;
  font-size: 6.5pt;
}

.assembly-legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.15cm;
}

.assembly-legend b {
  display: grid;
  width: 0.65cm;
  height: 0.65cm;
  place-items: center;
  border: 0.02cm solid #284e74;
  border-radius: 50%;
  color: #173958;
  font-size: 6pt;
}

.assembly-legend i {
  width: 0.65cm;
  height: 0;
  border-top: 0.04cm solid #315e8b;
}

.setting-sheet__body {
  position: absolute;
  top: 2.8cm;
  right: 1cm;
  bottom: 0.8cm;
  left: 1cm;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  grid-template-columns: minmax(0, 1fr) minmax(5.4cm, 0.38fr);
  gap: 0.55cm;
  font-family: Arial, sans-serif;
}

.setting-sheet__drawing {
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 0.22cm;
}

.print-setting-svg {
  min-height: 0;
}

.setting-sheet__dimensions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.16cm;
}

.setting-sheet__dimensions span {
  padding: 0.18cm;
  border: 0.02cm solid #d8e0ea;
  border-radius: 0.12cm;
}

.setting-sheet__dimensions small,
.setting-sheet__dimensions strong {
  display: block;
}

.setting-sheet__dimensions small {
  color: #6b7787;
  font-size: 5.5pt;
  text-transform: uppercase;
}

.setting-sheet__dimensions strong {
  margin-top: 0.05cm;
  color: #182e47;
  font-size: 8pt;
}

.setting-sheet__list {
  overflow: hidden;
  padding: 0.35cm;
  border: 0.02cm solid #d4dce7;
  border-radius: 0.2cm;
  background: #f7f9fc;
}

.setting-sheet__list h3 {
  margin: 0;
  color: #172c45;
  font-size: 11pt;
}

.setting-sheet__list > p {
  margin: 0.13cm 0 0;
  color: #637084;
  font-size: 6pt;
  line-height: 1.35;
}

.setting-rows {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.09cm;
  margin-top: 0.32cm;
}

.setting-row {
  display: flex;
  min-height: 0.47cm;
  align-items: center;
  justify-content: space-between;
  gap: 0.12cm;
  padding: 0.06cm 0.11cm;
  border-bottom: 0.015cm solid #d9e0e9;
  color: #34475d;
  font-size: 6pt;
}

.setting-row b {
  display: grid;
  width: 0.38cm;
  height: 0.38cm;
  place-items: center;
  border-radius: 50%;
  background: #254f79;
  color: #fff;
  font-size: 5.5pt;
}

.setting-sheet__mirror {
  display: grid;
  gap: 0.05cm;
  margin-top: 0.25cm;
  padding: 0.22cm;
  border: 0.02cm solid #cad8e7;
  border-radius: 0.14cm;
  background: #fff;
}

.setting-sheet__mirror strong {
  color: #183b5d;
  font-size: 6.5pt;
}

.setting-sheet__mirror span {
  color: #647286;
  font-size: 5.5pt;
  line-height: 1.35;
}

.print-stone,
.print-joint {
  stroke: #111;
  stroke-width: 0.35px;
}

.print-stone {
  fill: rgba(239, 145, 76, .29);
}

.print-joint {
  fill: #fff;
}

.print-keystone {
  fill: rgba(210, 105, 63, .38);
  stroke-width: 0.65px;
}

.print-outline {
  fill: none;
  stroke: #000;
  stroke-width: 0.75px;
}

.print-cutting-line {
  fill: none;
  stroke: #000;
  stroke-width: 0.65px;
}

.print-mould-outer-line {
  fill: none;
  stroke: #000;
  stroke-width: 0.65px;
  vector-effect: non-scaling-stroke;
}

.print-mould-mark path {
  fill: none;
  stroke: #111;
  stroke-width: 0.55px;
}

.print-mould-mark text {
  fill: #111;
  paint-order: stroke;
  stroke: #fff;
  stroke-width: 0.16px;
  font-family: Arial, sans-serif;
  font-size: 0.4px;
  font-weight: 800;
}

.print-setting-mark path {
  fill: none;
  opacity: 0.6;
  stroke: #333;
  stroke-width: 0.35px;
}

.print-setting-mark circle,
.print-layer-mark circle {
  fill: #fff;
  stroke: #111;
  stroke-width: 0.35px;
  vector-effect: non-scaling-stroke;
}

.print-setting-mark text,
.print-layer-mark text,
.print-drawing-label,
.print-dimension text,
.print-layers-title {
  fill: #111;
  font-family: Arial, sans-serif;
  font-size: 0.34px;
  font-weight: 700;
}

.print-setting-mark .print-setting-distance {
  font-size: 0.28px;
  font-weight: 500;
}

.print-center-vector {
  fill: none;
  stroke: #000;
  stroke-width: 0.75px;
}

.print-porring-cross {
  fill: none;
  stroke: #000;
  stroke-width: 0.75px;
}

.print-label-guide {
  fill: none;
  stroke: #000;
  stroke-width: 0.5px;
}

.print-spring-line {
  fill: none;
  opacity: 0.6;
  stroke: #111;
  stroke-width: 0.5px;
}

.print-drawing-label {
  font-size: 0.42px;
}

.print-drawing-label--keystone {
  font-size: 0.48px;
}

.print-dimension path {
  fill: none;
  stroke: #111;
  stroke-width: 0.45px;
}

.print-dimension .print-dimension__guides {
  opacity: 0.56;
  stroke-width: 0.35px;
}

.print-dimension text {
  paint-order: stroke;
  stroke: #fff;
  stroke-width: 0.12px;
}

.print-layers-title {
  font-size: 0.45px;
}

.print-layer-mark path {
  fill: none;
  opacity: 0.65;
  stroke: #111;
  stroke-width: 0.4px;
}

.print-layer-mark text {
  font-size: 0.31px;
}

.print-layers-baseline {
  fill: none;
  stroke: #000;
  stroke-width: 0.7px;
}

.print-error {
  margin-top: 45px;
  padding: 35px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-xl);
  background: rgba(255, 255, 255, 0.58);
  text-align: center;
}

.roll-layer-print-sheet > svg {
  position: absolute;
  inset: 0;
}
.roll-layer-print-title {
  position: absolute;
  z-index: 2;
  top: 0.8cm;
  right: 1.2cm;
  left: 1.2cm;
  display: flex;
  align-items: center;
  gap: 0.5cm;
  font-family: Arial, sans-serif;
  font-size: 7pt;
}
.roll-layer-print-title > img { width: 3.1cm; }
.roll-layer-print-title > div { display: grid; gap: 0.1cm; }
.roll-layer-print-title strong { color: #1d3040; letter-spacing: .08em; }
.roll-layer-print-title span { color: #526174; }
.roll-layer-print-stone rect {
  fill: url("#roll-layer-print-brick");
  stroke: rgba(103, 57, 47, .78);
  stroke-width: .22px;
}
.roll-layer-print-stone.is-cut rect {
  fill: url("#roll-layer-print-cut");
  stroke: rgba(103, 57, 47, .9);
}
.roll-layer-print-stone text,
.roll-layer-print-mark text,
.roll-layer-print-dimension text {
  fill: #111827;
  font-family: Arial, sans-serif;
  font-size: 3px;
  font-weight: 700;
  text-anchor: middle;
}
.roll-layer-print-stone text { fill: #fff; }
.roll-layer-print-mark path,
.roll-layer-print-opening,
.roll-layer-print-dimension path {
  fill: none;
  stroke: #111827;
  stroke-width: .2px;
}
.roll-layer-print-dimension__extension { opacity: .58; }
.roll-layer-print-dimension marker path { fill: #111827; stroke: none; }
.roll-layer-print-mark circle {
  fill: #258ebd;
  stroke: #fff;
  stroke-width: .2px;
}
.roll-layer-print-mark text { fill: #fff; font-size: 1.8px; }
.roll-layer-print-dimension text { font-size: 3.2px; }
.roll-layer-print-table {
  position: absolute;
  right: 1.4cm;
  bottom: 1.6cm;
  left: 1.4cm;
  font-family: Arial, sans-serif;
  font-size: 6pt;
}
.roll-layer-print-table > div {
  display: flex;
  overflow: hidden;
  gap: .16cm;
  margin-top: .16cm;
}
.roll-layer-print-table span {
  display: inline-flex;
  flex: 0 0 auto;
  gap: .08cm;
  padding: .08cm .12cm;
  border: .01cm solid #bcc4cf;
  border-radius: .08cm;
}

.standing-bond-print-sheet { position: relative; }
.standing-bond-print-sheet > svg { position: absolute; inset: 0; }

.rectangular-cut-print-sheet { position: relative; }
.rectangular-cut-print-sheet > svg { position: absolute; inset: 0; display: block; overflow: hidden; }
.rectangular-cut-print-title {
  position: absolute;
  z-index: 3;
  top: 8mm;
  right: 10mm;
  left: 10mm;
  display: flex;
  height: 19mm;
  align-items: center;
  justify-content: space-between;
  gap: 8mm;
  border-bottom: .3mm solid #9ca6b4;
}
.rectangular-cut-print-title > div { display: grid; gap: 1mm; }
.rectangular-cut-print-title strong { font-size: 13pt; letter-spacing: .05em; }
.rectangular-cut-print-title span { color: #536276; font-size: 8pt; }
.rectangular-cut-print-title > b { font-size: 14pt; }
.rectangular-cut-print-sheet > footer:not(.fabrication-page-footer) {
  position: absolute;
  right: 10mm;
  bottom: 5mm;
  left: 10mm;
  border-top: .25mm solid #b8c0ca;
  padding-top: 2mm;
  color: #4f5968;
  font-size: 7pt;
}
.rectangular-cut-print-sheet .fabrication-dimension text {
  font-size: 3.2px;
  stroke-width: 1.4px;
}
.standing-bond-print-title {
  position: absolute;
  z-index: 2;
  top: 8mm;
  left: 12mm;
  right: 12mm;
  display: flex;
  align-items: center;
  gap: 5mm;
}
.standing-bond-print-title div { display: grid; gap: 1mm; }
.standing-bond-print-title strong { color: #1d3040; font-size: 4mm; letter-spacing: .08em; }
.standing-bond-print-title span { color: #526174; font-size: 2.6mm; }
.standing-bond-print-piece rect { fill: url("#standing-print-whole"); stroke: rgba(103, 57, 47, .78); stroke-width: .22; }
.standing-bond-print-piece.is-header rect { fill: url("#standing-print-header"); }
.standing-bond-print-piece.is-fitting rect { fill: url("#standing-print-fitting"); }
.standing-bond-print-piece text {
  fill: #fff;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 2.4px;
  font-weight: 800;
  text-anchor: middle;
  dominant-baseline: middle;
}
.standing-bond-print-summary {
  position: absolute;
  z-index: 2;
  right: 12mm;
  bottom: 16mm;
  left: 12mm;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  overflow: hidden;
  border: .25mm solid #cbd6df;
  border-radius: 2mm;
}
.standing-bond-print-summary span { display: grid; gap: .8mm; padding: 2mm 2.5mm; border-right: .2mm solid #d8e0e7; color: #25394b; font-size: 2.5mm; }
.standing-bond-print-summary span:last-child { border-right: 0; }
.standing-bond-print-summary b { color: #657383; font-size: 2.1mm; text-transform: uppercase; letter-spacing: .04em; }

@media screen and (max-width: 850px) {
  .print-toolbar {
    grid-template-columns: 1fr;
  }

  .print-instructions {
    grid-template-columns: 1fr;
  }

  .print-page-summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .print-sheets {
    justify-content: start;
    overflow-x: hidden;
    padding-inline: 8px;
  }
}

@media print {
  body {
    isolation: auto;
  }

  body::before,
  body::after {
    display: none !important;
    content: none !important;
  }

  html,
  body,
  .site-shell,
  main,
  .print-workspace,
  .print-sheets {
    width: auto;
    min-width: 0;
    max-width: none;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    background: #fff !important;
  }

  .site-header,
  .site-footer,
  .skip-link,
  .cookie-backdrop,
  .cookie-notice,
  .mobile-tabs,
  .print-toolbar,
  .print-instructions,
  .print-page-summary {
    display: none !important;
  }

  .print-structural-disclaimer {
    position: fixed;
    z-index: 20;
    right: 0.35cm;
    bottom: 0.13cm;
    left: 4cm;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    color: #485260;
    font: 5pt/1.1 Arial, sans-serif;
    text-align: right;
  }

  .print-sheets {
    display: block;
    overflow: visible;
  }

  .print-sheet {
    zoom: 1 !important;
    scale: 1 !important;
    transform: none !important;
    margin: 0;
    border: 0;
    box-shadow: none;
    print-color-adjust: exact;
  }
}

/* Brick+ · compacte werkstaat op exact één A4 liggend. De achtergrond loopt
   tot de fysieke paginarand; inhoud houdt een veilige werkmarge. */
.brick-plus-print-sheet {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 5mm;
  padding: 10mm 11mm 8mm;
  color: #24292f;
  font-family: Arial, sans-serif;
  background:
    radial-gradient(circle at 100% 0, rgba(232, 173, 67, .2), transparent 46mm),
    radial-gradient(circle at 0 100%, rgba(103, 113, 122, .13), transparent 55mm),
    #f7f7f5;
}

.brick-plus-print-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12mm;
  padding-bottom: 4mm;
  border-bottom: .35mm solid #596168;
}
.brick-plus-print-title img { width: 39mm; height: auto; object-fit: contain; }
.brick-plus-print-title > div { display: grid; justify-items: end; gap: 1mm; text-align: right; }
.brick-plus-print-title small { color: #767e84; font-size: 2.2mm; font-weight: 850; letter-spacing: .1em; }
.brick-plus-print-title strong { color: #252b30; font-size: 5.7mm; }
.brick-plus-print-title span { color: #626a71; font-size: 2.8mm; }

.brick-plus-print-body {
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
  gap: 6mm;
}
.brick-plus-print-results,
.brick-plus-print-gauge {
  min-height: 0;
  padding: 5mm;
  border: .25mm solid #c9cdd0;
  border-radius: 3mm;
  background: rgba(255, 255, 255, .9);
}
.brick-plus-print-results { display: grid; align-content: start; gap: 4mm; }
.brick-plus-print-hero {
  display: grid;
  gap: 1mm;
  padding: 4mm;
  border-radius: 2.4mm;
  background: linear-gradient(135deg, #50575d, #7b8287);
  color: #fff;
}
.brick-plus-print-hero span { font-size: 2.4mm; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.brick-plus-print-hero strong { font-size: 8mm; line-height: 1; }
.brick-plus-print-hero small { color: rgba(255, 255, 255, .78); font-size: 2.4mm; }
.brick-plus-print-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2mm; margin: 0; }
.brick-plus-print-facts > div { display: grid; gap: .7mm; padding: 2.2mm 2.6mm; border: .2mm solid #d9dcde; border-radius: 1.7mm; background: #fff; }
.brick-plus-print-facts dt { color: #747c82; font-size: 2.1mm; }
.brick-plus-print-facts dd { margin: 0; color: #2f363b; font-size: 3.1mm; font-weight: 850; }
.brick-plus-print-clamps { display: flex; align-items: center; justify-content: space-between; gap: 4mm; margin: 0; padding: 2.8mm 3mm; border: .25mm solid rgba(193, 128, 30, .35); border-radius: 2mm; background: #fff6e5; color: #5f4a28; font-size: 2.6mm; }
.brick-plus-print-clamps b { color: #8a5b18; }

/* Braziliaans verband · één overzichtelijk A4-werkblad. */
.brazilian-print-sheet {
  color: #111;
  background: #fff;
}

.brazilian-print-sheet .brick-plus-print-title { border-color: #111; }
.brazilian-print-sheet .brick-plus-print-title :is(small, strong, span) { color: #111; }

.brazilian-print-body {
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  gap: 5mm;
}

.brazilian-print-results,
.brazilian-print-drawing {
  min-height: 0;
  border: .22mm solid #777;
  border-radius: 0;
  background: #fff;
}

.brazilian-print-results {
  display: grid;
  align-content: start;
  gap: 1.8mm;
  overflow: hidden;
  padding: 3mm;
}

.brazilian-print-facts {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1mm;
}

.brazilian-print-facts > div {
  min-width: 0;
  gap: .35mm;
  padding: 1.15mm 1.3mm;
  border-color: #aaa;
  border-radius: 0;
}

.brazilian-print-facts dt { font-size: 1.55mm; }
.brazilian-print-facts dd { overflow-wrap: anywhere; font-size: 2.2mm; }

.brazilian-print-check {
  justify-content: space-between;
  gap: 3mm;
  margin: 0;
  padding: 1.5mm 2mm;
  border-width: .25mm;
  border-radius: 2mm;
  font-size: 2.25mm;
  border-color: #777 !important;
  border-radius: 0;
  background: #fff !important;
  color: #111 !important;
}

.brazilian-print-drawing {
  display: grid;
  overflow: hidden;
  grid-template-rows: minmax(0, 1.08fr) minmax(0, .92fr);
  gap: 1mm;
  place-items: stretch;
  padding: 1mm 2mm;
}

.brazilian-print-elevation,
.brazilian-print-setting {
  display: grid;
  min-height: 0;
  overflow: hidden;
  place-items: center;
}

.brazilian-print-elevation {
  border-bottom: .18mm solid #bbb;
}

.brazilian-print-drawing :is(.brazilian-bond-svg, .brazilian-setting-svg) {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  max-height: 100%;
}

.brazilian-print-drawing .brazilian-dimension text,
.brazilian-print-drawing .brazilian-detail-dimension text {
  font-family: Arial, sans-serif;
  font-size: 10px;
  stroke-width: 1.2px;
}

.brazilian-print-key-measures {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2mm;
}

.brazilian-print-key-measures > div {
  display: grid;
  gap: .45mm;
  padding: 1.7mm 2mm;
  border: .24mm solid #555;
  background: #fff;
}

.brazilian-print-key-measures span {
  color: #444;
  font-size: 1.65mm;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.brazilian-print-key-measures strong {
  color: #111;
  font-size: 4.3mm;
  line-height: 1;
}
.brazilian-print-sheet .brazilian-wall-field { fill: #fff; }
.brazilian-print-sheet .brazilian-wall-outline,
.brazilian-print-sheet .brazilian-side-connections path { stroke: #111; }
.brazilian-print-sheet .brazilian-brick--face {
  fill: #ececec;
  stroke: #111;
}
.brazilian-print-sheet .brazilian-brick--recessed {
  fill: #cfcfcf;
  stroke: #111;
}
.brazilian-print-sheet :is(.brazilian-dimension, .brazilian-detail-dimension) path { stroke: #111; }
.brazilian-print-sheet :is(.brazilian-dimension, .brazilian-detail-dimension) text {
  fill: #111;
  stroke: #fff;
}
.brazilian-print-sheet :is(.brazilian-measure-cards, .brazilian-header-summary) rect { fill: #fff; stroke: #777; }
.brazilian-print-sheet :is(.brazilian-measure-cards, .brazilian-header-summary) text,
.brazilian-print-sheet :is(.brazilian-setting-title, .brazilian-course-label) { fill: #111; }
.brazilian-print-sheet .brazilian-header-summary text {
  font-size: 10.5px;
  stroke: none;
}

.brazilian-print-course-gauge {
  display: grid;
  gap: .7mm;
  padding-top: .8mm;
  border-top: .2mm solid #999;
}

.brazilian-print-course-gauge > strong { font-size: 1.8mm; }
.brazilian-print-course-gauge > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .45mm;
}
.brazilian-print-course-gauge span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .35mm;
  padding: .4mm .55mm;
  border: .16mm solid #aaa;
  font-size: 1.45mm;
}
.brazilian-print-course-gauge b { font-size: 1.45mm; }
.brazilian-print-course-gauge em { font-style: normal; font-variant-numeric: tabular-nums; }

.brick-plus-print-gauge { display: grid; align-content: start; gap: 3mm; }
.brick-plus-print-gauge header { display: grid; gap: .7mm; }
.brick-plus-print-gauge header small { color: #8a5b18; font-size: 2.1mm; font-weight: 900; letter-spacing: .09em; }
.brick-plus-print-gauge h2 { margin: 0; font-size: 4mm; }
.brick-plus-print-gauge p { margin: 0; color: #747b80; font-size: 2.3mm; }
.brick-plus-print-gauge__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.6mm; }
.brick-plus-print-gauge__grid > div { display: flex; min-height: 9.2mm; align-items: center; justify-content: space-between; gap: 2mm; padding: 1.5mm 2mm; border: .2mm solid #d4d8da; border-radius: 1.5mm; background: #fff; }
.brick-plus-print-gauge__grid span { display: grid; width: 5.3mm; height: 5.3mm; place-items: center; border-radius: 1mm; background: #656d73; color: #fff; font-size: 2.2mm; font-weight: 900; }
.brick-plus-print-gauge__grid strong { font-size: 2.65mm; font-variant-numeric: tabular-nums; }
.brick-plus-print-gauge__grid .is-even { background: #f0f1f1; }
.brick-plus-print-gauge__grid .is-accent { border-color: #dab572; background: #fff6e5; }
.brick-plus-print-gauge__grid .is-accent span { background: #ad7625; }
.brick-plus-print-gauge__grid .is-base { grid-column: 1 / -1; min-height: 8mm; background: #e2e5e6; }
.brick-plus-print-gauge__grid .is-base span { width: auto; padding-inline: 2mm; }
.brick-plus-print-footer { display: flex; align-items: center; justify-content: space-between; gap: 8mm; padding-top: 2.5mm; border-top: .2mm solid #c9cdd0; color: #737a80; font-size: 2mm; }
.brick-plus-print-footer strong { color: #4d555b; }

@media print {
  .brick-plus-print-sheet {
    break-after: page;
    page-break-after: always;
    print-color-adjust: exact;
  }
}
/* Top-gable weaving: overview and numbered cutting schedule. */
.weaving-print-sheet {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2mm;
  padding: 8mm 10mm 14mm;
  font-family: Arial, sans-serif;
}

.weaving-print-sheet .print-guide-header {
  position: static;
  flex: 0 0 auto;
  min-height: 15mm;
}
.weaving-print-title { flex: 0 0 auto; }
.weaving-print-title__angle { min-width: 24mm; text-align: right; }
.weaving-print-title__angle b { font-size: 10pt; }

.weaving-print-drawing {
  display: grid;
  flex: 1 1 105mm;
  min-height: 0;
  place-items: center;
  overflow: hidden;
}

.weaving-print-drawing > .weaving-gable-svg {
  width: 100%;
  height: 100%;
  min-height: 0;
}

.weaving-print-sheet .weaving-brick polygon {
  stroke: #3b3d3e;
  stroke-width: .5;
}
/* Flat vector fills keep large gable PDFs compact and readable at every paper size.
   Repeated translucent grain patterns previously produced files over 32 MB. */
.weaving-print-sheet .weaving-brick.is-normal polygon { fill: #e5ebf0; }
.weaving-print-sheet .weaving-chimney-bricks .weaving-brick polygon { fill: #d9e2ea; }
.weaving-print-sheet .weaving-brick.is-weaving polygon { fill: #b9c9d8; }
.weaving-print-sheet .weaving-brick.is-ridge-closure polygon { fill: #416f7d; stroke: #f4fbfc; stroke-width: .6; }
.weaving-print-sheet .weaving-tooth-reserve { fill: #eee9e2; stroke: none; }
.weaving-print-sheet .weaving-gable-outline { stroke: #111827; stroke-width: .55; }
.weaving-print-sheet .weaving-ridge-joint { fill: #eee9e2; stroke: none; }
.weaving-print-sheet .weaving-profile-line { stroke: #263f4b; stroke-width: .7; }
.weaving-print-sheet .weaving-profile-marks path { stroke: #477283; stroke-width: .42; }
.weaving-print-sheet .weaving-wall-course-guide path {
  opacity: .62;
  stroke: #4d8395;
  stroke-dasharray: 3 2;
  stroke-width: .34;
}
.weaving-print-sheet .weaving-wall-course-guide.is-reference path {
  opacity: 1;
  stroke: #172f3b;
  stroke-dasharray: none;
  stroke-width: .7;
}
.weaving-print-sheet .weaving-station .weaving-station-callout {
  fill: #4d392d;
  font-size: 17px;
  stroke: #fff;
  stroke-width: 4px;
}
.weaving-print-sheet .weaving-chimney-label text { font-size: 28px; }
.weaving-print-sheet .weaving-dimensions path { stroke-width: .35; }
.weaving-print-sheet .weaving-dimensions text {
  fill: #243d4b;
  font-family: Arial, sans-serif;
  font-size: 48px;
  stroke-width: 9px;
}
.weaving-print-facts {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1.2mm;
}
.weaving-print-facts > span {
  display: grid;
  min-width: 0;
  gap: .7mm;
  padding: 1.5mm;
  border: .18mm solid #cbd2d9;
  border-radius: 1mm;
}
.weaving-print-facts small {
  overflow: hidden;
  color: #65717f;
  font-size: 4.4pt;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.weaving-print-facts b { font-size: 6.4pt; font-variant-numeric: tabular-nums; }

.weaving-cut-instructions {
  display: grid;
  grid-template-columns: 24mm minmax(0, 1fr);
  align-items: center;
  gap: 3mm;
  padding: 1.8mm 2.2mm;
  border-radius: 1.1mm;
  background: #f1eff8;
}
.weaving-cut-instructions strong { color: #5b4698; font-size: 6pt; }
.weaving-cut-instructions p { margin: 0; color: #5c6572; font-size: 5.1pt; line-height: 1.35; }

.weaving-cut-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 5.5pt;
  font-variant-numeric: tabular-nums;
}
.weaving-cut-table th,
.weaving-cut-table td {
  height: 8.6mm;
  padding: .55mm .7mm;
  border: .15mm solid #cbd1db;
  vertical-align: middle;
}
.weaving-cut-table thead th {
  height: 6.6mm;
  background: #edf1f5;
  color: #394350;
  font-size: 4.8pt;
  text-align: left;
  text-transform: uppercase;
}
.weaving-cut-table th:nth-child(1) { width: 10mm; }
.weaving-cut-table th:nth-child(2) { width: 34mm; }
.weaving-cut-table th:nth-child(3) { width: 38mm; }
.weaving-cut-table th:nth-child(4) { width: 27mm; }
.weaving-cut-table th:nth-child(5) { width: 27mm; }
.weaving-cut-table th:nth-child(6) { width: 19mm; }
.weaving-cut-table tbody th { color: #573f8c; font-size: 6.5pt; text-align: left; }
.weaving-cut-table td > strong,
.weaving-cut-table td > small { display: block; }
.weaving-cut-table td > strong { color: #283440; font-size: 5.4pt; }
.weaving-cut-table td > small { margin-top: .45mm; color: #697482; font-size: 4.7pt; }
.weaving-cut-table td:last-child { color: #374250; font-size: 4.8pt; line-height: 1.25; }

.weaving-cut-profile {
  display: block;
  width: 35mm;
  height: 7.5mm;
  overflow: visible;
}
.weaving-cut-profile__blank {
  fill: rgba(123, 137, 151, .06);
  stroke: #7b8793;
  stroke-dasharray: 2 1.4;
  stroke-width: .55;
  vector-effect: non-scaling-stroke;
}
.weaving-cut-profile__shape {
  fill: rgba(201, 121, 89, .35);
  stroke: #3c4650;
  stroke-linejoin: round;
  stroke-width: .7;
  vector-effect: non-scaling-stroke;
}
.weaving-cut-profile__saw {
  stroke: #8b2f2c;
  stroke-linecap: round;
  stroke-width: 1.15;
  vector-effect: non-scaling-stroke;
}

.weaving-print-facts--advanced {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.weaving-print-overview .weaving-print-drawing {
  flex: 1 1 72mm;
}

.weaving-print-overview,
.weaving-mould-overview-sheet {
  background:
    radial-gradient(circle at 8% 12%, rgba(251, 183, 83, .14), transparent 28%),
    radial-gradient(circle at 92% 18%, rgba(93, 185, 222, .13), transparent 30%),
    linear-gradient(145deg, #fffdf9, #f8fbff 58%, #fffaf3);
}
.weaving-print-overview .print-guide-header,
.weaving-mould-overview-sheet .print-guide-header { background: rgba(255, 255, 255, .74); }
.weaving-print-overview .weaving-print-facts > span:nth-child(3n + 1) { border-color: #efd3a7; background: rgba(255, 244, 225, .78); }
.weaving-print-overview .weaving-print-facts > span:nth-child(3n + 2) { border-color: #c9dfeb; background: rgba(235, 247, 252, .78); }
.weaving-print-overview .weaving-print-facts > span:nth-child(3n) { border-color: #d9d1ed; background: rgba(246, 242, 253, .78); }

.weaving-profile-method {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr);
  gap: 2mm;
  padding: 2mm;
  border: .2mm solid #c9b9a8;
  border-radius: 1.4mm;
  background: linear-gradient(135deg, #f7f2ec, #fff);
}

.weaving-profile-method > div { display: grid; align-content: start; gap: 1mm; }
.weaving-profile-method strong { color: #59483d; font-size: 6.2pt; }
.weaving-profile-method p { margin: 0; color: #5d6570; font-size: 4.8pt; line-height: 1.38; }
.weaving-profile-method ol {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.1mm;
  margin: 0;
  padding: 0;
  list-style: none;
}
.weaving-profile-method li { display: grid; grid-template-columns: 5mm minmax(0, 1fr); align-items: start; gap: 1mm; color: #4d5963; font-size: 4.5pt; line-height: 1.3; }
.weaving-profile-method li b { display: grid; width: 4.2mm; height: 4.2mm; place-items: center; border-radius: 50%; background: #806a59; color: #fff; font-size: 4.5pt; }

.weaving-mould-overview-sheet { gap: 2.5mm; }
.weaving-mould-overview-body {
  display: grid;
  min-height: 0;
  flex: 1 1 auto;
  grid-template-columns: minmax(0, 1.2fr) minmax(56mm, .8fr);
  gap: 3mm;
}
.weaving-mould-overview-drawing { display: grid; min-height: 0; grid-template-rows: minmax(0, 1fr) auto; gap: 2mm; }
.weaving-mould-overview-drawing > svg { display: block; width: 100%; height: 100%; min-height: 0; border: .2mm solid #cadbe4; border-radius: 1.5mm; background: rgba(244, 250, 253, .76); }
.weaving-mould-edge-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.4mm; }
.weaving-mould-edge-facts span { display: grid; gap: .6mm; padding: 1.5mm; border: .18mm solid #d6cbbd; border-radius: 1mm; background: #f6f1e9; }
.weaving-mould-edge-facts small { color: #7a6759; font-size: 4.2pt; font-weight: 850; }
.weaving-mould-edge-facts b { color: #493a30; font-size: 6.2pt; }
.weaving-mould-method { display: grid; min-height: 0; align-content: start; gap: 2mm; padding: 2.5mm; border: .2mm solid #d5c9bb; border-radius: 1.4mm; background: linear-gradient(150deg, rgba(255, 247, 232, .94), rgba(240, 248, 252, .94)); }
.weaving-mould-method h3 { margin: 0; color: #4d3d32; font-size: 9pt; }
.weaving-mould-method ol { display: grid; gap: 1.5mm; margin: 0; padding: 0; list-style: none; }
.weaving-mould-method li { display: grid; grid-template-columns: 5mm minmax(0, 1fr); gap: 1.2mm; color: #46555f; font-size: 7.5pt; line-height: 1.4; }
.weaving-mould-method li b { display: grid; width: 4.5mm; height: 4.5mm; place-items: center; border-radius: 50%; background: #806049; color: #fff; font-size: 7pt; }
.weaving-crown-note { color: #2e4554; font-size: 8pt; line-height: 1.45; }
.weaving-crown-note { margin: 0; padding: 1.6mm; border-left: .7mm solid #477182; background: #f0f6f7; }

.weaving-mould-grid-tile rect { fill: none; stroke: #7e8b91; stroke-width: .7; }
.weaving-mould-grid-tile circle { fill: #fff; stroke: #52636b; stroke-width: .8; }
.weaving-mould-grid-tile text { fill: #35474f; font-family: Arial, sans-serif; font-size: 13px; font-weight: 900; text-anchor: middle; }
.weaving-mould-fill { fill: rgba(238, 247, 250, .48); stroke: none; }
.weaving-mould-brick polygon {
  fill: rgba(238, 193, 151, .14);
  stroke: #24292b;
  stroke-linejoin: round;
  stroke-width: .3;
  vector-effect: non-scaling-stroke;
}
.weaving-mould-brick.is-normal polygon { fill: rgba(203, 228, 243, .12); }
.weaving-mould-brick.is-weaving polygon { fill: rgba(239, 181, 126, .14); }
.weaving-mould-brick.is-cut polygon { fill: rgba(231, 157, 99, .19); }
.weaving-mould-brick-number circle {
  fill: #fff;
  stroke: #292521;
  stroke-width: .5;
  vector-effect: non-scaling-stroke;
}
.weaving-mould-brick-number text {
  fill: #292521;
  font-family: Arial, sans-serif;
  font-size: 6px;
  font-weight: 900;
  text-anchor: middle;
}
.weaving-mould-cutline { fill: none; stroke: #111; stroke-linejoin: round; stroke-width: .68; }
.weaving-mould-roof-line { fill: none; stroke: #101820; stroke-linecap: round; stroke-width: 1.35; }
.weaving-mould-name rect { fill: rgba(255, 255, 255, .9); stroke: #9d7a43; stroke-width: .8; }
.weaving-mould-name text { fill: #604b2f; font-family: Arial, sans-serif; font-size: 4.4px; font-weight: 900; text-anchor: middle; }
.weaving-mould-base-label { fill: #5a493b; font-family: Arial, sans-serif; font-size: 4px; font-weight: 850; letter-spacing: .2px; text-anchor: middle; }
.weaving-mould-roof-label { fill: #101820; font-family: Arial, sans-serif; font-size: 4.2px; font-weight: 950; letter-spacing: .18px; paint-order: stroke; stroke: #fff; stroke-width: 1.4px; text-anchor: middle; }
.weaving-mould-tile-sheet { position: relative; padding: 0; overflow: hidden; }
.weaving-mould-template-svg { position: absolute; inset: 0; display: block; background: linear-gradient(145deg, #fffdfa, #f7fbfd); }
.weaving-mould-stop-guide line {
  fill: none;
  stroke: #197da0;
  stroke-dasharray: 6 4;
  stroke-linecap: round;
  stroke-width: 1.15;
  vector-effect: non-scaling-stroke;
}
.weaving-mould-stop-guide text {
  fill: #0f607e;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .25px;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, .96);
  stroke-linejoin: round;
  stroke-width: 3px;
  text-anchor: middle;
}
.weaving-mould-tile-badge {
  position: absolute;
  z-index: 5;
  top: 3mm;
  left: 3mm;
  display: flex;
  align-items: center;
  gap: 2mm;
  padding: 1.3mm 2.3mm;
  border: .2mm solid rgba(56, 105, 127, .28);
  border-radius: 1.6mm;
  background: rgba(239, 248, 252, .94);
  color: #244f62;
  font: 700 5.2pt/1 Arial, sans-serif;
  pointer-events: none;
}
.weaving-mould-tile-badge b { display: grid; min-width: 6mm; height: 6mm; place-items: center; border-radius: 1.2mm; background: #d88935; color: #fff; font-size: 6.2pt; }
.weaving-mould-tile-badge span { letter-spacing: .08em; }

/* Segmental-arch depth bond: the same solved A/B cross-section is used on
   screen and in the PDF. The overview may scale to the page; fitting sheets
   below stay physically 1:1. */
.arch-depth-print-sheet {
  background:
    radial-gradient(circle at 6% 8%, rgba(241, 167, 91, .17), transparent 8cm),
    radial-gradient(circle at 96% 92%, rgba(92, 181, 218, .16), transparent 10cm),
    linear-gradient(145deg, #fffdf9, #f3f9fc);
}

.arch-depth-print-sheet .print-guide-header { background: rgba(255, 255, 255, .78); }

.arch-depth-print-sheet__body {
  position: absolute;
  inset: 2.15cm .75cm .75cm;
  display: grid;
  min-height: 0;
  grid-template-rows: minmax(0, 1fr) auto auto auto;
  gap: .23cm;
  font-family: Arial, sans-serif;
}

.arch-depth-print-sheet__phases {
  display: grid;
  min-height: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .24cm;
}

.arch-depth-print-sheet__phases > section {
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
  gap: .08cm;
  padding: .2cm;
  border: .02cm solid #d2dee5;
  border-radius: .14cm;
  background: rgba(255, 255, 255, .72);
}

.arch-depth-print-sheet__phases > section > b {
  color: #526774;
  font-size: 5.5pt;
  letter-spacing: .08em;
}

.arch-depth-print-sheet .arch-depth-section__diagram {
  width: 100%;
  height: 100%;
  min-height: 0;
}

.arch-depth-print-sheet .arch-depth-section__field { fill: rgba(226, 235, 239, .68); stroke: #738692; stroke-width: .55; }
.arch-depth-print-sheet .arch-depth-section__cell { stroke: rgba(88, 57, 43, .64); stroke-width: .6; }
.arch-depth-print-sheet .arch-depth-section__cell.is-standing { fill: #b9dff1; }
.arch-depth-print-sheet .arch-depth-section__cell.is-lying { fill: #efa968; }
.arch-depth-print-sheet .arch-depth-section__cell.is-fitting { fill: #b9a4dc; stroke: #71599b; }
.arch-depth-print-sheet .arch-depth-section__cell-code {
  fill: #3f3029;
  font: 900 1.25px/1 Arial, sans-serif;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, .88);
  stroke-width: .34px;
}
.arch-depth-print-sheet .arch-depth-section__dimension line { stroke: #526c78; stroke-width: .55; }
.arch-depth-print-sheet .arch-depth-section__dimension text { fill: #3f5864; font: 850 1.25px/1 Arial, sans-serif; }

.arch-depth-print-sheet__facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .13cm;
}

.arch-depth-print-sheet__facts > span {
  display: grid;
  gap: .05cm;
  padding: .15cm .18cm;
  border: .02cm solid #ddcfbe;
  border-radius: .11cm;
  background: rgba(249, 241, 231, .86);
}

.arch-depth-print-sheet__facts > span:nth-child(even) {
  border-color: #cadde8;
  background: rgba(234, 246, 251, .88);
}

.arch-depth-print-sheet__facts small { color: #786a60; font-size: 4.2pt; font-weight: 850; }
.arch-depth-print-sheet__facts b { color: #443a34; font-size: 6.2pt; }

.arch-depth-print-sheet__legend {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .12cm;
  color: #65737b;
  font-size: 4.8pt;
  font-weight: 750;
}

.arch-depth-print-sheet__legend span {
  width: .27cm;
  height: .27cm;
  margin-left: .18cm;
  border-radius: .05cm;
}

.arch-depth-print-sheet__legend span:first-child { margin-left: 0; }
.arch-depth-print-sheet__legend .is-standing { background: #b9dff1; }
.arch-depth-print-sheet__legend .is-lying { background: #efa968; }
.arch-depth-print-sheet__legend .is-fitting { background: #b9a4dc; }

.arch-depth-print-sheet__code-help {
  align-items: center;
  background: rgba(255, 255, 255, .82);
  border: .02cm solid rgba(117, 86, 64, .2);
  border-radius: .18cm;
  color: #62564f;
  display: flex;
  font-size: 5pt;
  gap: .22cm;
  margin: 0;
  padding: .12cm .2cm;
}

.arch-depth-print-sheet__code-help b {
  background: #765640;
  border-radius: .12cm;
  color: #fff;
  font-size: 5.2pt;
  padding: .07cm .15cm;
}

.arch-depth-cut-template-sheet { background: #fffdf9; }
.arch-depth-cut-template-sheet > svg { position: absolute; inset: 0; display: block; }
.arch-depth-cut-template-sheet__background { fill: url("#none"); fill: #fffdf9; }
.arch-depth-cut-template-sheet__separator { stroke: #d8e3e9; stroke-dasharray: .18 .12; stroke-width: .02; }

.arch-depth-cut-template__blank {
  fill: rgba(220, 235, 242, .5);
  stroke: #8ca4b0;
  stroke-dasharray: .16 .11;
  stroke-width: .025;
}

.arch-depth-cut-template__shape {
  fill: #edaa6c;
  fill-opacity: .82;
  stroke: #171717;
  stroke-width: .035;
}

.arch-depth-cut-template__cut {
  stroke: #111;
  stroke-width: .065;
  vector-effect: non-scaling-stroke;
}

.arch-depth-cut-template__chip rect { fill: #765640; stroke: #4c382c; stroke-width: .02; }
.arch-depth-cut-template__chip text { fill: #fff; font: 900 .28px/1 Arial, sans-serif; letter-spacing: .015cm; }
.arch-depth-cut-template__quantity circle { fill: #2681a6; stroke: #fff; stroke-width: .025; }
.arch-depth-cut-template__quantity text { fill: #fff; font: 900 .24px/1 Arial, sans-serif; }

.arch-depth-cut-template__dimension line {
  stroke: #263b45;
  stroke-width: .025;
  vector-effect: non-scaling-stroke;
}

.arch-depth-cut-template__dimension text {
  fill: #1e313a;
  font: 900 .31px/1 Arial, sans-serif;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, .94);
  stroke-linejoin: round;
  stroke-width: .1px;
}

.weaving-template-sheet {
  position: relative;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
.weaving-template-svg { position: absolute; inset: 0; display: block; }
.weaving-template__profile + .weaving-template__profile::before { stroke: #e6ddd5; }
.weaving-template__stone {
  fill: rgba(238, 193, 151, .28);
  stroke: #000;
  stroke-linejoin: round;
  stroke-width: .035;
}
.weaving-template__saw { stroke: #9a342d; stroke-linecap: round; stroke-width: .075; }
.weaving-template__station-guide {
  fill: none;
  stroke: #111;
  stroke-dasharray: .16 .12;
  stroke-width: .035;
  vector-effect: non-scaling-stroke;
}
.weaving-template__stone-numbers { font-size: .31px; }

.print-sheet--a3-landscape .weaving-print-drawing { flex-basis: 185mm; }
.print-sheet--a3-landscape .weaving-cut-table th,
.print-sheet--a3-landscape .weaving-cut-table td { height: 10.1mm; }

@media print {
  .weaving-print-sheet { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}


/* The public export route never mounts document sheets. */
.pdf-download-page { display: grid; min-height: 80svh; place-items: center; padding-block: 48px; }
.pdf-download-card { width: min(100%, 520px); padding: clamp(24px, 5vw, 48px); border: 1px solid var(--line-soft); border-radius: 28px; background: var(--surface); box-shadow: var(--shadow-soft); text-align: center; }
.pdf-download-back { display: flex; align-items: center; gap: 8px; margin-bottom: 32px; color: var(--text-soft); font-size: .78rem; text-decoration: none; }
.pdf-download-icon { display: inline-grid; width: 76px; height: 76px; place-items: center; margin-bottom: 24px; border-radius: 22px; background: var(--surface-blue); color: var(--sapphire); font-size: 36px; }
.pdf-download-card h1 { margin: 12px 0; font-size: clamp(1.7rem, 4vw, 2.2rem); letter-spacing: -.045em; }
.pdf-download-card p { color: var(--muted); line-height: 1.7; }
.pdf-download-paper { display: grid; gap: 10px; margin: 28px 0 20px; text-align: left; font-size: .8rem; color: var(--text-soft); }
.pdf-download-paper select { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-strong); color: var(--text); font: inherit; }
.pdf-download-note { min-height: 3em; margin: 18px 0 0; font-size: .72rem; }
.pdf-download-paper select:disabled { opacity: .65; }
.pdf-download-error { margin-top: 20px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-blue); text-align: left; }
.pdf-download-error p { margin: 0 0 8px; color: var(--text); font-size: .8rem; }
.pdf-download-error a { display: inline-flex; align-items: center; min-height: 44px; color: var(--sapphire); font-size: .8rem; font-weight: 700; }
@media print { .pdf-download-page { display: none !important; } }

.pdf-download-card .pdf-download-eyebrow { color: var(--sapphire); font-size: .6rem; font-weight: 750; letter-spacing: .15em; }

.weaving-template__position { font-size: .24px; font-weight: 700; fill: #17476b; font-family: Arial, sans-serif; }
.weaving-mould-stop-guide line { stroke-width: 2.2; stroke-dasharray: 5 2; }
.weaving-mould-stop-guide text { font-weight: 800; paint-order: stroke; stroke: #fff; stroke-width: 2.5; stroke-linejoin: round; }

.pdf-download-policy { margin-top: 20px; font-size: .78rem; line-height: 1.7; color: var(--text-soft); }
.pdf-download-renew { display: block; margin-top: 16px; font-size: .85rem; text-underline-offset: 3px; }
 .pdf-document-mark { display: none; }
.pdf-download-code code { overflow-wrap: anywhere; }
@media print {
  .pdf-document-mark { display: block !important; position: fixed; z-index: 10000; bottom: 1.2mm; left: 8mm; right: 8mm; color: #687585; font: 6.5pt/1.2 Arial, sans-serif; text-align: center; white-space: nowrap; }
}

.fabrication-print-instructions {
  position: absolute;
  z-index: 5;
  left: 12cm;
  right: .7cm;
  bottom: .8cm;
  margin: 0;
  color: #111;
  font: 5.8pt/1.25 Arial, sans-serif;
}
.fabrication-print-instructions strong { display: block; margin-bottom: .7mm; }
/* Reserve space for both the 100 mm check and the complete print instructions.
   Portrait instructions wrap into more lines; the overview legend must stay
   above them on every paper size, including jack-arch overview sheets. */
.print-guide-sheet:has(> .fabrication-print-instructions) .print-guide-sheet__body { bottom: 2.8cm; }
