.calibration { margin:24px 0;padding:20px;border:2px solid var(--ink);background:#fff; }
.calibration-bars { display:flex;flex-wrap:wrap;gap:24px;align-items:end;margin:18px 0; }
.calibration-bar { height:9mm;border:1px solid #111;border-top-width:2px;position:relative;background:repeating-linear-gradient(90deg,#111 0 1px,transparent 1px 5mm); }
.calibration-bar span { position:absolute;top:10mm;left:0;font:700 10px ui-monospace,monospace;white-space:nowrap; }
.bar-50 { width:50mm; }
.bar-2in { width:2in; }
.calibration-status { display:inline-block;padding:5px 8px;font:800 .72rem ui-monospace,monospace;text-transform:uppercase;background:#e4ece8;color:var(--ok); }
.calibration-status.fail { background:#f7e7dc;color:var(--warn); }
.geometry-scroll { max-width:100%;overflow:auto; }
.geometry-table { font-variant-numeric:tabular-nums; }
.geometry-table td,.geometry-table th { white-space:nowrap; }
.geometry-diagram { max-width:100%;margin:24px 0;padding:20px;border:1px solid var(--line);background:#fff;overflow:auto; }
.layout-line { height:18mm;border:1px solid #111;position:relative;background:linear-gradient(#fff,#f8f5ed); }
.layout-mark { position:absolute;top:0;height:100%;border-left:1px solid #111;font:700 9px ui-monospace,monospace; }
.layout-mark span { position:absolute;top:1mm;left:1mm; }
.template-output { max-width:100%; }
.template-page { max-width:100%;background:#fff;color:#111;border:1px solid #777;padding:8mm;margin:20px 0;overflow:auto; }
.slot-strip { position:relative;border:1px solid #111;background:#fff;max-width:none; }
.slot-mark { position:absolute;top:0;border-left:1px solid #111; }
.slot-mark label { position:absolute;top:1mm;left:1mm;font:700 8px ui-monospace,monospace; }
.registration { display:flex;justify-content:space-between;gap:16px;font:700 10px ui-monospace,monospace;margin-bottom:3mm; }
.reference-ruler { width:100mm;max-width:100%;height:12mm;border:1px solid #111;background:repeating-linear-gradient(90deg,#111 0 1px,transparent 1px 5mm);margin:20px 0; }
.coordinate-table { font-size:.72rem; }
.formula { padding:12px;background:#ece9df;font:600 .86rem ui-monospace,monospace;overflow-wrap:anywhere; }
.template-centerline { position:absolute;left:0;right:0;top:50%;border-top:.2mm dashed #67706c; }

@media (max-width:800px) {
  .geometry-table,.coordinate-table { font-size:.78rem; }
  .template-page { padding:12px; }
  .calibration { padding:14px; }
}
