/*! @leysys/print-ds v2.7.0 — generated by scripts/build-packages.mjs. DO NOT EDIT.
 * framework-independent. Tailwind은 소비 레포가 별도 @import. @layer 순서는 하단 선언으로 standalone 보장. */
@layer base, components, utilities;

/* ← ./print/tokens.css */
/*
 * Print design tokens — typography and physical geometry.
 * Color primitives and semantic color roles live in tokens/color-contract.css.
 * Typography is pt; geometry is integer-first mm; print has no dark mode.
 */

:root {
  /* ================================================================
     0. CORE TYPOGRAPHY
     ================================================================ */
  --print-font-family: "Pretendard", "Noto Sans KR", "Malgun Gothic", system-ui, sans-serif;
  --print-font-weight-regular: 400;
  --print-font-weight-medium: 500;
  --print-font-weight-bold: 700;

  /* Physical typography scale. CSS pt is fixed at 1/72in and does not follow
   * the browser root font size. Screen rem must not enter the print contract. */
  --print-text-body-size: 12pt;
  --print-text-body-line-height: 18pt;
  --print-text-heading-1-size: 27pt;
  --print-text-heading-1-line-height: 33pt;
  --print-text-heading-2-size: 24pt;
  --print-text-heading-2-line-height: 30pt;
  --print-text-heading-3-size: 21pt;
  --print-text-heading-3-line-height: 27pt;
  --print-text-heading-4-size: 18pt;
  --print-text-heading-4-line-height: 24pt;
  --print-text-heading-5-size: 15pt;
  --print-text-heading-5-line-height: 21pt;
  --print-text-heading-6-size: 12pt;
  --print-text-heading-6-line-height: 18pt;

  /* ================================================================
     0.1 PHYSICAL SCALE — deliberate print values, never px conversion

     Typography uses integer pt. Geometry and spacing use integer mm by
     default; 0.5mm steps are the only general-purpose precision escape.
     Hairlines express the canonical quarter-millimetre intent and are not spacing.
     ================================================================ */
  --print-font-size-7: 7pt;
  --print-font-size-8: 8pt;
  --print-font-size-9: 9pt;
  --print-font-size-10: 10pt;
  --print-font-size-11: 11pt;
  --print-font-size-12: 12pt;
  --print-font-size-14: 14pt;
  --print-font-size-16: 16pt;
  --print-font-size-18: 18pt;
  --print-font-size-21: 21pt;
  --print-font-size-24: 24pt;
  --print-font-size-27: 27pt;
  --print-font-size-30: 30pt;

  --print-line-height-8: 8pt;
  --print-line-height-9: 9pt;
  --print-line-height-10: 10pt;
  --print-line-height-11: 11pt;
  --print-line-height-12: 12pt;
  --print-line-height-13: 13pt;
  --print-line-height-14: 14pt;
  --print-line-height-16: 16pt;
  --print-line-height-18: 18pt;
  --print-line-height-20: 20pt;
  --print-line-height-21: 21pt;
  --print-line-height-24: 24pt;
  --print-line-height-27: 27pt;
  --print-line-height-30: 30pt;
  --print-line-height-33: 33pt;
  --print-line-height-36: 36pt;

  --print-text-caption-size: var(--print-font-size-8);
  --print-text-caption-line-height: var(--print-line-height-11);
  --print-text-compact-size: var(--print-font-size-9);
  --print-text-compact-line-height: var(--print-line-height-12);
  --print-text-small-size: var(--print-font-size-10);
  --print-text-small-line-height: var(--print-line-height-14);
  --print-text-lead-size: var(--print-font-size-14);
  --print-text-lead-line-height: var(--print-line-height-20);

  --print-space-0: 0;
  --print-space-half: 0.5mm;
  --print-space-1: 1mm;
  --print-space-1-half: 1.5mm;
  --print-space-2: 2mm;
  --print-space-3: 3mm;
  --print-space-4: 4mm;
  --print-space-5: 5mm;
  --print-space-6: 6mm;
  --print-space-8: 8mm;
  --print-space-10: 10mm;
  --print-space-12: 12mm;
  --print-space-15: 15mm;
  --print-space-18: 18mm;
  --print-space-24: 24mm;
  --print-space-30: 30mm;

  --print-page-inset-xs: 6mm;
  --print-page-inset-sm: 12mm;
  --print-page-inset-md: 18mm;
  --print-page-inset-lg: 24mm;
  --print-page-inset-xl: 30mm;

  --print-stroke-hairline: 0.25mm;
  --print-stroke-thin: 0.5mm;
  --print-stroke-medium: 1mm;

  /* Consumer-set escape hatches used by the *-exact sizing utilities.
   * Defaults keep each adapter inert until a document supplies a value. */
  --print-width: auto;
  --print-height: auto;
  --print-min-width: auto;
  --print-min-height: auto;
  --print-max-width: none;
  --print-max-height: none;
}

/* ← ./print/tokens/color-contract.css */
/*
 * Print color contract — canonical 50~950 palette and semantic output roles.
 * Every public color value is defined here directly; no legacy aliases are shipped.
 */

:root {
  /* red */
  --print-color-red-50: oklch(96.89% 0.0152 22.39); /* #fff1f0 */
  --print-color-red-50-hex: #fff1f0;
  --print-color-red-50-rgb: rgb(255 241 240);
  --print-color-red-100: oklch(88.84% 0.0586 24.81); /* #ffccc7 */
  --print-color-red-100-hex: #ffccc7;
  --print-color-red-100-rgb: rgb(255 204 199);
  --print-color-red-200: oklch(80.61% 0.1102 23.18); /* #ffa39e */
  --print-color-red-200-hex: #ffa39e;
  --print-color-red-200-rgb: rgb(255 163 158);
  --print-color-red-300: oklch(73.09% 0.1655 23.3); /* #ff7875 */
  --print-color-red-300-hex: #ff7875;
  --print-color-red-300-rgb: rgb(255 120 117);
  --print-color-red-400: oklch(67.32% 0.2143 24.47); /* #ff4d4f */
  --print-color-red-400-hex: #ff4d4f;
  --print-color-red-400-rgb: rgb(255 77 79);
  --print-color-red-500: oklch(62.1% 0.2381 26.07); /* #f5222d */
  --print-color-red-500-hex: #f5222d;
  --print-color-red-500-rgb: rgb(245 34 45);
  --print-color-red-600: oklch(54.34% 0.2132 25.86); /* #cf1322 */
  --print-color-red-600-hex: #cf1322;
  --print-color-red-600-rgb: rgb(207 19 34);
  --print-color-red-700: oklch(46.32% 0.1845 25.23); /* #a8071a */
  --print-color-red-700-hex: #a8071a;
  --print-color-red-700-rgb: rgb(168 7 26);
  --print-color-red-800: oklch(38.25% 0.1547 23.89); /* #820014 */
  --print-color-red-800-hex: #820014;
  --print-color-red-800-rgb: rgb(130 0 20);
  --print-color-red-900: oklch(30.02% 0.1207 20.69); /* #5c0011 */
  --print-color-red-900-hex: #5c0011;
  --print-color-red-900-rgb: rgb(92 0 17);
  --print-color-red-950: oklch(24% 0.0942 20.69); /* #41010a */
  --print-color-red-950-hex: #41010a;
  --print-color-red-950-rgb: rgb(65 1 10);

  /* orange */
  --print-color-orange-50: oklch(96.86% 0.0194 60.18); /* #fff2e8 */
  --print-color-orange-50-hex: #fff2e8;
  --print-color-orange-50-rgb: rgb(255 242 232);
  --print-color-orange-100: oklch(90.88% 0.055 54.52); /* #ffd8bf */
  --print-color-orange-100-hex: #ffd8bf;
  --print-color-orange-100-rgb: rgb(255 216 191);
  --print-color-orange-200: oklch(84.63% 0.0932 49.6); /* #ffbb96 */
  --print-color-orange-200-hex: #ffbb96;
  --print-color-orange-200-rgb: rgb(255 187 150);
  --print-color-orange-300: oklch(78.51% 0.1334 45.22); /* #ff9c6e */
  --print-color-orange-300-hex: #ff9c6e;
  --print-color-orange-300-rgb: rgb(255 156 110);
  --print-color-orange-400: oklch(72.66% 0.1757 41.2); /* #ff7a45 */
  --print-color-orange-400-hex: #ff7a45;
  --print-color-orange-400-rgb: rgb(255 122 69);
  --print-color-orange-500: oklch(66.76% 0.2112 36.9); /* #fa541c */
  --print-color-orange-500-hex: #fa541c;
  --print-color-orange-500-rgb: rgb(250 84 28);
  --print-color-orange-600: oklch(57.5% 0.1984 34.38); /* #d4380d */
  --print-color-orange-600-hex: #d4380d;
  --print-color-orange-600-rgb: rgb(212 56 13);
  --print-color-orange-700: oklch(48.46% 0.1788 32.7); /* #ad2102 */
  --print-color-orange-700-hex: #ad2102;
  --print-color-orange-700-rgb: rgb(173 33 2);
  --print-color-orange-800: oklch(40.15% 0.1514 32.18); /* #871400 */
  --print-color-orange-800-hex: #871400;
  --print-color-orange-800-rgb: rgb(135 20 0);
  --print-color-orange-900: oklch(31.7% 0.1199 32.08); /* #610b00 */
  --print-color-orange-900-hex: #610b00;
  --print-color-orange-900-rgb: rgb(97 11 0);
  --print-color-orange-950: oklch(25.34% 0.095 32.08); /* #460600 */
  --print-color-orange-950-hex: #460600;
  --print-color-orange-950-rgb: rgb(70 6 0);

  /* amber */
  --print-color-amber-50: oklch(98.56% 0.0278 98.05); /* #fffbe6 */
  --print-color-amber-50-hex: #fffbe6;
  --print-color-amber-50-rgb: rgb(255 251 230);
  --print-color-amber-100: oklch(95.57% 0.0743 95.93); /* #fff1b8 */
  --print-color-amber-100-hex: #fff1b8;
  --print-color-amber-100-rgb: rgb(255 241 184);
  --print-color-amber-200: oklch(92.48% 0.1095 93.16); /* #ffe58f */
  --print-color-amber-200-hex: #ffe58f;
  --print-color-amber-200-rgb: rgb(255 229 143);
  --print-color-amber-300: oklch(89% 0.1375 89.24); /* #ffd666 */
  --print-color-amber-300-hex: #ffd666;
  --print-color-amber-300-rgb: rgb(255 214 102);
  --print-color-amber-400: oklch(85.37% 0.1572 84.13); /* #ffc53d */
  --print-color-amber-400-hex: #ffc53d;
  --print-color-amber-400-rgb: rgb(255 197 61);
  --print-color-amber-500: oklch(80.16% 0.1651 76); /* #faad14 */
  --print-color-amber-500-hex: #faad14;
  --print-color-amber-500-rgb: rgb(250 173 20);
  --print-color-amber-600: oklch(68.9% 0.148 70.13); /* #d48806 */
  --print-color-amber-600-hex: #d48806;
  --print-color-amber-600-rgb: rgb(212 136 6);
  --print-color-amber-700: oklch(58.06% 0.1293 65.93); /* #ad6800 */
  --print-color-amber-700-hex: #ad6800;
  --print-color-amber-700-rgb: rgb(173 104 0);
  --print-color-amber-800: oklch(47.84% 0.1089 63.21); /* #874d00 */
  --print-color-amber-800-hex: #874d00;
  --print-color-amber-800-rgb: rgb(135 77 0);
  --print-color-amber-900: oklch(37.45% 0.0869 61.1); /* #613400 */
  --print-color-amber-900-hex: #613400;
  --print-color-amber-900-rgb: rgb(97 52 0);
  --print-color-amber-950: oklch(29.94% 0.0693 61.1); /* #462400 */
  --print-color-amber-950-hex: #462400;
  --print-color-amber-950-rgb: rgb(70 36 0);

  /* yellow */
  --print-color-yellow-50: oklch(99.27% 0.0326 108.84); /* #feffe6 */
  --print-color-yellow-50-hex: #feffe6;
  --print-color-yellow-50-rgb: rgb(254 255 230);
  --print-color-yellow-100: oklch(98.35% 0.0896 107.94); /* #ffffb8 */
  --print-color-yellow-100-hex: #ffffb8;
  --print-color-yellow-100-rgb: rgb(255 255 184);
  --print-color-yellow-200: oklch(96.88% 0.1304 106.73); /* #fffb8f */
  --print-color-yellow-200-hex: #fffb8f;
  --print-color-yellow-200-rgb: rgb(255 251 143);
  --print-color-yellow-300: oklch(95.19% 0.1616 105.3); /* #fff566 */
  --print-color-yellow-300-hex: #fff566;
  --print-color-yellow-300-rgb: rgb(255 245 102);
  --print-color-yellow-400: oklch(93.06% 0.1801 102.84); /* #ffec3d */
  --print-color-yellow-400-hex: #ffec3d;
  --print-color-yellow-400-rgb: rgb(255 236 61);
  --print-color-yellow-500: oklch(89.03% 0.1818 98.64); /* #fadb14 */
  --print-color-yellow-500-hex: #fadb14;
  --print-color-yellow-500-rgb: rgb(250 219 20);
  --print-color-yellow-600: oklch(76.87% 0.1568 94.5); /* #d4b106 */
  --print-color-yellow-600-hex: #d4b106;
  --print-color-yellow-600-rgb: rgb(212 177 6);
  --print-color-yellow-700: oklch(64.99% 0.1329 91.35); /* #ad8b00 */
  --print-color-yellow-700-hex: #ad8b00;
  --print-color-yellow-700-rgb: rgb(173 139 0);
  --print-color-yellow-800: oklch(53.34% 0.109 88.03); /* #876800 */
  --print-color-yellow-800-hex: #876800;
  --print-color-yellow-800-rgb: rgb(135 104 0);
  --print-color-yellow-900: oklch(41.49% 0.0851 84.57); /* #614700 */
  --print-color-yellow-900-hex: #614700;
  --print-color-yellow-900-rgb: rgb(97 71 0);
  --print-color-yellow-950: oklch(33.17% 0.0664 84.57); /* #463202 */
  --print-color-yellow-950-hex: #463202;
  --print-color-yellow-950-rgb: rgb(70 50 2);

  /* lime */
  --print-color-lime-50: oklch(99.12% 0.0327 112.55); /* #fcffe6 */
  --print-color-lime-50-hex: #fcffe6;
  --print-color-lime-50-rgb: rgb(252 255 230);
  --print-color-lime-100: oklch(97.51% 0.0911 115.28); /* #f4ffb8 */
  --print-color-lime-100-hex: #f4ffb8;
  --print-color-lime-100-rgb: rgb(244 255 184);
  --print-color-lime-200: oklch(96.09% 0.139 117.81); /* #eaff8f */
  --print-color-lime-200-hex: #eaff8f;
  --print-color-lime-200-rgb: rgb(234 255 143);
  --print-color-lime-300: oklch(91.11% 0.1725 120.15); /* #d3f261 */
  --print-color-lime-300-hex: #d3f261;
  --print-color-lime-300-rgb: rgb(211 242 97);
  --print-color-lime-400: oklch(86.39% 0.1957 123.26); /* #bae637 */
  --print-color-lime-400-hex: #bae637;
  --print-color-lime-400-rgb: rgb(186 230 55);
  --print-color-lime-500: oklch(81.57% 0.2061 126.53); /* #a0d911 */
  --print-color-lime-500-hex: #a0d911;
  --print-color-lime-500-rgb: rgb(160 217 17);
  --print-color-lime-600: oklch(70.17% 0.1835 128.44); /* #7cb305 */
  --print-color-lime-600-hex: #7cb305;
  --print-color-lime-600-rgb: rgb(124 179 5);
  --print-color-lime-700: oklch(58.25% 0.1567 129.96); /* #5b8c00 */
  --print-color-lime-700-hex: #5b8c00;
  --print-color-lime-700-rgb: rgb(91 140 0);
  --print-color-lime-800: oklch(46.31% 0.1261 130.78); /* #3f6600 */
  --print-color-lime-800-hex: #3f6600;
  --print-color-lime-800-rgb: rgb(63 102 0);
  --print-color-lime-900: oklch(33.66% 0.0923 131.22); /* #254000 */
  --print-color-lime-900-hex: #254000;
  --print-color-lime-900-rgb: rgb(37 64 0);
  --print-color-lime-950: oklch(26.91% 0.0676 131.22); /* #1a2d04 */
  --print-color-lime-950-hex: #1a2d04;
  --print-color-lime-950-rgb: rgb(26 45 4);

  /* green */
  --print-color-green-50: oklch(98.84% 0.0254 128.75); /* #f6ffed */
  --print-color-green-50-hex: #f6ffed;
  --print-color-green-50-rgb: rgb(246 255 237);
  --print-color-green-100: oklch(94.02% 0.0811 130.44); /* #d9f7be */
  --print-color-green-100-hex: #d9f7be;
  --print-color-green-100-rgb: rgb(217 247 190);
  --print-color-green-200: oklch(88.27% 0.1314 132.55); /* #b7eb8f */
  --print-color-green-200-hex: #b7eb8f;
  --print-color-green-200-rgb: rgb(183 235 143);
  --print-color-green-300: oklch(82.65% 0.1719 134.43); /* #95de64 */
  --print-color-green-300-hex: #95de64;
  --print-color-green-300-rgb: rgb(149 222 100);
  --print-color-green-400: oklch(77.39% 0.2017 136.45); /* #73d13d */
  --print-color-green-400-hex: #73d13d;
  --print-color-green-400-rgb: rgb(115 209 61);
  --print-color-green-500: oklch(72.56% 0.2182 138.49); /* #52c41a */
  --print-color-green-500-hex: #52c41a;
  --print-color-green-500-rgb: rgb(82 196 26);
  --print-color-green-600: oklch(61.54% 0.1912 139.42); /* #389e0d */
  --print-color-green-600-hex: #389e0d;
  --print-color-green-600-rgb: rgb(56 158 13);
  --print-color-green-700: oklch(50.22% 0.1597 140.04); /* #237804 */
  --print-color-green-700-hex: #237804;
  --print-color-green-700-rgb: rgb(35 120 4);
  --print-color-green-800: oklch(38.39% 0.1241 140.19); /* #135200 */
  --print-color-green-800-hex: #135200;
  --print-color-green-800-rgb: rgb(19 82 0);
  --print-color-green-900: oklch(25.42% 0.0803 139.1); /* #092b00 */
  --print-color-green-900-hex: #092b00;
  --print-color-green-900-rgb: rgb(9 43 0);
  --print-color-green-950: oklch(20.32% 0.052 139.1); /* #091c04 */
  --print-color-green-950-hex: #091c04;
  --print-color-green-950-rgb: rgb(9 28 4);

  /* cyan */
  --print-color-cyan-50: oklch(98.08% 0.0265 185.2); /* #e6fffb */
  --print-color-cyan-50-hex: #e6fffb;
  --print-color-cyan-50-rgb: rgb(230 255 251);
  --print-color-cyan-100: oklch(92.47% 0.0653 185.37); /* #b5f5ec */
  --print-color-cyan-100-hex: #b5f5ec;
  --print-color-cyan-100-rgb: rgb(181 245 236);
  --print-color-cyan-200: oklch(86.85% 0.0933 187.1); /* #87e8de */
  --print-color-cyan-200-hex: #87e8de;
  --print-color-cyan-200-rgb: rgb(135 232 222);
  --print-color-cyan-300: oklch(81.86% 0.1125 189.47); /* #5cdbd3 */
  --print-color-cyan-300-hex: #5cdbd3;
  --print-color-cyan-300-rgb: rgb(92 219 211);
  --print-color-cyan-400: oklch(77.7% 0.1226 190.94); /* #36cfc9 */
  --print-color-cyan-400-hex: #36cfc9;
  --print-color-cyan-400-rgb: rgb(54 207 201);
  --print-color-cyan-500: oklch(73.81% 0.1238 194.8); /* #13c2c2 */
  --print-color-cyan-500-hex: #13c2c2;
  --print-color-cyan-500-rgb: rgb(19 194 194);
  --print-color-cyan-600: oklch(61.49% 0.1034 199); /* #08979c */
  --print-color-cyan-600-hex: #08979c;
  --print-color-cyan-600-rgb: rgb(8 151 156);
  --print-color-cyan-700: oklch(48.74% 0.0831 203.69); /* #006d75 */
  --print-color-cyan-700-hex: #006d75;
  --print-color-cyan-700-rgb: rgb(0 109 117);
  --print-color-cyan-800: oklch(36.38% 0.0625 207.59); /* #00474f */
  --print-color-cyan-800-hex: #00474f;
  --print-color-cyan-800-rgb: rgb(0 71 79);
  --print-color-cyan-900: oklch(23.5% 0.0408 211.28); /* #002329 */
  --print-color-cyan-900-hex: #002329;
  --print-color-cyan-900-rgb: rgb(0 35 41);
  --print-color-cyan-950: oklch(18.79% 0.0266 211.28); /* #04161a */
  --print-color-cyan-950-hex: #04161a;
  --print-color-cyan-950-rgb: rgb(4 22 26);

  /* blue */
  --print-color-blue-50: oklch(96% 0.021 241.35); /* #e6f4ff */
  --print-color-blue-50-hex: #e6f4ff;
  --print-color-blue-50-rgb: rgb(230 244 255);
  --print-color-blue-100: oklch(88.97% 0.0586 243.03); /* #bae0ff */
  --print-color-blue-100-hex: #bae0ff;
  --print-color-blue-100-rgb: rgb(186 224 255);
  --print-color-blue-200: oklch(81.93% 0.0956 247.26); /* #91caff */
  --print-color-blue-200-hex: #91caff;
  --print-color-blue-200-rgb: rgb(145 202 255);
  --print-color-blue-300: oklch(74.6% 0.1348 251.78); /* #69b1ff */
  --print-color-blue-300-hex: #69b1ff;
  --print-color-blue-300-rgb: rgb(105 177 255);
  --print-color-blue-400: oklch(67.26% 0.176 255.3); /* #4096ff */
  --print-color-blue-400-hex: #4096ff;
  --print-color-blue-400-rgb: rgb(64 150 255);
  --print-color-blue-500: oklch(59.87% 0.2194 259.04); /* #1677ff */
  --print-color-blue-500-hex: #1677ff;
  --print-color-blue-500-rgb: rgb(22 119 255);
  --print-color-blue-600: oklch(50.44% 0.2095 260.97); /* #0958d9 */
  --print-color-blue-600-hex: #0958d9;
  --print-color-blue-600-rgb: rgb(9 88 217);
  --print-color-blue-700: oklch(41.8% 0.1933 262); /* #003eb3 */
  --print-color-blue-700-hex: #003eb3;
  --print-color-blue-700-rgb: rgb(0 62 179);
  --print-color-blue-800: oklch(34.38% 0.1646 262.44); /* #002c8c */
  --print-color-blue-800-hex: #002c8c;
  --print-color-blue-800-rgb: rgb(0 44 140);
  --print-color-blue-900: oklch(27.27% 0.1321 262.57); /* #001d66 */
  --print-color-blue-900-hex: #001d66;
  --print-color-blue-900-rgb: rgb(0 29 102);
  --print-color-blue-950: oklch(21.8% 0.106 262.57); /* #00124a */
  --print-color-blue-950-hex: #00124a;
  --print-color-blue-950-rgb: rgb(0 18 74);

  /* indigo */
  --print-color-indigo-50: oklch(96.93% 0.0144 264.5); /* #f0f5ff */
  --print-color-indigo-50-hex: #f0f5ff;
  --print-color-indigo-50-rgb: rgb(240 245 255);
  --print-color-indigo-100: oklch(91.67% 0.0399 263.66); /* #d6e4ff */
  --print-color-indigo-100-hex: #d6e4ff;
  --print-color-indigo-100-rgb: rgb(214 228 255);
  --print-color-indigo-200: oklch(82.81% 0.0851 266.17); /* #adc6ff */
  --print-color-indigo-200-hex: #adc6ff;
  --print-color-indigo-200-rgb: rgb(173 198 255);
  --print-color-indigo-300: oklch(73.57% 0.1357 268.13); /* #85a5ff */
  --print-color-indigo-300-hex: #85a5ff;
  --print-color-indigo-300-rgb: rgb(133 165 255);
  --print-color-indigo-400: oklch(62.82% 0.1852 267.96); /* #597ef7 */
  --print-color-indigo-400-hex: #597ef7;
  --print-color-indigo-400-rgb: rgb(89 126 247);
  --print-color-indigo-500: oklch(52.18% 0.2301 266.85); /* #2f54eb */
  --print-color-indigo-500-hex: #2f54eb;
  --print-color-indigo-500-rgb: rgb(47 84 235);
  --print-color-indigo-600: oklch(43.26% 0.2155 266.66); /* #1d39c4 */
  --print-color-indigo-600-hex: #1d39c4;
  --print-color-indigo-600-rgb: rgb(29 57 196);
  --print-color-indigo-700: oklch(35.29% 0.1941 266.42); /* #10239e */
  --print-color-indigo-700-hex: #10239e;
  --print-color-indigo-700-rgb: rgb(16 35 158);
  --print-color-indigo-800: oklch(27.81% 0.1663 265.93); /* #061178 */
  --print-color-indigo-800-hex: #061178;
  --print-color-indigo-800-rgb: rgb(6 17 120);
  --print-color-indigo-900: oklch(21.27% 0.1275 266.14); /* #030852 */
  --print-color-indigo-900-hex: #030852;
  --print-color-indigo-900-rgb: rgb(3 8 82);
  --print-color-indigo-950: oklch(17% 0.0978 266.14); /* #020539 */
  --print-color-indigo-950-hex: #020539;
  --print-color-indigo-950-rgb: rgb(2 5 57);

  /* purple */
  --print-color-purple-50: oklch(96.65% 0.022 312.19); /* #f9f0ff */
  --print-color-purple-50-hex: #f9f0ff;
  --print-color-purple-50-rgb: rgb(249 240 255);
  --print-color-purple-100: oklch(91.86% 0.0527 310.13); /* #efdbff */
  --print-color-purple-100-hex: #efdbff;
  --print-color-purple-100-rgb: rgb(239 219 255);
  --print-color-purple-200: oklch(80.69% 0.1095 307.54); /* #d3adf7 */
  --print-color-purple-200-hex: #d3adf7;
  --print-color-purple-200-rgb: rgb(211 173 247);
  --print-color-purple-300: oklch(69.17% 0.1608 304.78); /* #b37feb */
  --print-color-purple-300-hex: #b37feb;
  --print-color-purple-300-rgb: rgb(179 127 235);
  --print-color-purple-400: oklch(58.44% 0.2024 300.99); /* #9254de */
  --print-color-purple-400-hex: #9254de;
  --print-color-purple-400-rgb: rgb(146 84 222);
  --print-color-purple-500: oklch(49.42% 0.2284 295.58); /* #722ed1 */
  --print-color-purple-500-hex: #722ed1;
  --print-color-purple-500-rgb: rgb(114 46 209);
  --print-color-purple-600: oklch(40.89% 0.2021 291.88); /* #531dab */
  --print-color-purple-600-hex: #531dab;
  --print-color-purple-600-rgb: rgb(83 29 171);
  --print-color-purple-700: oklch(32.98% 0.1715 288.68); /* #391085 */
  --print-color-purple-700-hex: #391085;
  --print-color-purple-700-rgb: rgb(57 16 133);
  --print-color-purple-800: oklch(25.19% 0.1353 285.48); /* #22075e */
  --print-color-purple-800-hex: #22075e;
  --print-color-purple-800-rgb: rgb(34 7 94);
  --print-color-purple-900: oklch(18.02% 0.0946 286.36); /* #120338 */
  --print-color-purple-900-hex: #120338;
  --print-color-purple-900-rgb: rgb(18 3 56);
  --print-color-purple-950: oklch(14.41% 0.0661 286.36); /* #0a0323 */
  --print-color-purple-950-hex: #0a0323;
  --print-color-purple-950-rgb: rgb(10 3 35);

  /* fuchsia */
  --print-color-fuchsia-50: oklch(96.86% 0.0179 351.14); /* #fff0f6 */
  --print-color-fuchsia-50-hex: #fff0f6;
  --print-color-fuchsia-50-rgb: rgb(255 240 246);
  --print-color-fuchsia-100: oklch(91.55% 0.0506 351.28); /* #ffd6e7 */
  --print-color-fuchsia-100-hex: #ffd6e7;
  --print-color-fuchsia-100-rgb: rgb(255 214 231);
  --print-color-fuchsia-200: oklch(83.7% 0.1059 350.98); /* #ffadd2 */
  --print-color-fuchsia-200-hex: #ffadd2;
  --print-color-fuchsia-200-rgb: rgb(255 173 210);
  --print-color-fuchsia-300: oklch(76.9% 0.1612 351.22); /* #ff85c0 */
  --print-color-fuchsia-300-hex: #ff85c0;
  --print-color-fuchsia-300-rgb: rgb(255 133 192);
  --print-color-fuchsia-400: oklch(69.57% 0.2078 351.75); /* #f759ab */
  --print-color-fuchsia-400-hex: #f759ab;
  --print-color-fuchsia-400-rgb: rgb(247 89 171);
  --print-color-fuchsia-500: oklch(63.38% 0.2345 353.15); /* #eb2f96 */
  --print-color-fuchsia-500-hex: #eb2f96;
  --print-color-fuchsia-500-rgb: rgb(235 47 150);
  --print-color-fuchsia-600: oklch(54.93% 0.2123 351.56); /* #c41d7f */
  --print-color-fuchsia-600-hex: #c41d7f;
  --print-color-fuchsia-600-rgb: rgb(196 29 127);
  --print-color-fuchsia-700: oklch(46.68% 0.1855 350.09); /* #9e1068 */
  --print-color-fuchsia-700-hex: #9e1068;
  --print-color-fuchsia-700-rgb: rgb(158 16 104);
  --print-color-fuchsia-800: oklch(38.17% 0.1552 348.67); /* #780650 */
  --print-color-fuchsia-800-hex: #780650;
  --print-color-fuchsia-800-rgb: rgb(120 6 80);
  --print-color-fuchsia-900: oklch(29.44% 0.1207 345.75); /* #520339 */
  --print-color-fuchsia-900-hex: #520339;
  --print-color-fuchsia-900-rgb: rgb(82 3 57);
  --print-color-fuchsia-950: oklch(23.53% 0.0939 345.75); /* #3a0327 */
  --print-color-fuchsia-950-hex: #3a0327;
  --print-color-fuchsia-950-rgb: rgb(58 3 39);

  /* Pure neutral: chroma is always zero. */
  --print-color-neutral-50: oklch(98% 0 0); /* #f8f8f8 */
  --print-color-neutral-50-hex: #f8f8f8;
  --print-color-neutral-50-rgb: rgb(248 248 248);
  --print-color-neutral-100: oklch(92.81% 0 0); /* #e7e7e7 */
  --print-color-neutral-100-hex: #e7e7e7;
  --print-color-neutral-100-rgb: rgb(231 231 231);
  --print-color-neutral-200: oklch(86.08% 0 0); /* #d1d1d1 */
  --print-color-neutral-200-hex: #d1d1d1;
  --print-color-neutral-200-rgb: rgb(209 209 209);
  --print-color-neutral-300: oklch(78.06% 0 0); /* #b7b7b7 */
  --print-color-neutral-300-hex: #b7b7b7;
  --print-color-neutral-300-rgb: rgb(183 183 183);
  --print-color-neutral-400: oklch(69.12% 0 0); /* #9c9c9c */
  --print-color-neutral-400-hex: #9c9c9c;
  --print-color-neutral-400-rgb: rgb(156 156 156);
  --print-color-neutral-500: oklch(59.7% 0 0); /* #7f7f7f */
  --print-color-neutral-500-hex: #7f7f7f;
  --print-color-neutral-500-rgb: rgb(127 127 127);
  --print-color-neutral-600: oklch(50.28% 0 0); /* #646464 */
  --print-color-neutral-600-hex: #646464;
  --print-color-neutral-600-rgb: rgb(100 100 100);
  --print-color-neutral-700: oklch(41.34% 0 0); /* #4b4b4b */
  --print-color-neutral-700-hex: #4b4b4b;
  --print-color-neutral-700-rgb: rgb(75 75 75);
  --print-color-neutral-800: oklch(33.32% 0 0); /* #363636 */
  --print-color-neutral-800-hex: #363636;
  --print-color-neutral-800-rgb: rgb(54 54 54);
  --print-color-neutral-900: oklch(26.59% 0 0); /* #252525 */
  --print-color-neutral-900-hex: #252525;
  --print-color-neutral-900-rgb: rgb(37 37 37);
  --print-color-neutral-950: oklch(21.4% 0 0); /* #191919 */
  --print-color-neutral-950-hex: #191919;
  --print-color-neutral-950-rgb: rgb(25 25 25);

  --print-color-black: #000000;
  --print-color-white: #ffffff;
  --print-color-transparent: rgb(0 0 0 / 0);

  /* Document text roles: bold is strongest; minimal is weakest. */
  --print-text-bold: var(--print-color-neutral-900);
  --print-text-moderate: var(--print-color-neutral-600);
  --print-text-subtle: var(--print-color-neutral-500);
  --print-text-minimal: var(--print-color-neutral-300);
  --print-text-inverted: var(--print-color-white);

  /* Document border roles. */
  --print-border-minimal: var(--print-color-neutral-100);
  --print-border-subtle: var(--print-color-neutral-200);
  --print-border-moderate: var(--print-color-neutral-300);
  --print-border-bold: var(--print-color-neutral-500);

  /* Document surface roles. */
  --print-bg-minimal: var(--print-color-white);
  --print-bg-subtle: var(--print-color-neutral-50);
  --print-bg-moderate: var(--print-color-neutral-100);
  --print-bg-bold: var(--print-color-neutral-200);
  --print-divider-color: var(--print-color-neutral-100);

  /* Color-mode roles. Components use these unless hue itself is document data. */
  --print-accent-minimal: var(--print-color-blue-50);
  --print-accent-subtle: var(--print-color-blue-100);
  --print-accent-moderate: var(--print-color-blue-500);
  --print-accent-bold: var(--print-color-blue-600);
  --print-accent-bold-fallback: var(--print-color-blue-600-hex);
  --print-status-info: var(--print-color-blue-600);
  --print-status-success: var(--print-color-green-600);
  --print-status-warning: var(--print-color-amber-600);
  --print-status-error: var(--print-color-red-600);
  --print-status-info-subtle: var(--print-color-blue-50);
  --print-status-success-subtle: var(--print-color-green-50);
  --print-status-warning-subtle: var(--print-color-amber-50);
  --print-status-error-subtle: var(--print-color-red-50);
}

/* Monochrome output remaps semantic chromatic roles to pure neutral. */
.print[data-print-color="mono"] {
  --print-accent-minimal: var(--print-color-neutral-50);
  --print-accent-subtle: var(--print-color-neutral-100);
  --print-accent-moderate: var(--print-color-neutral-600);
  --print-accent-bold: var(--print-color-neutral-900);
  --print-accent-bold-fallback: var(--print-color-neutral-900-hex);
  --print-status-info: var(--print-color-neutral-700);
  --print-status-success: var(--print-color-neutral-700);
  --print-status-warning: var(--print-color-neutral-700);
  --print-status-error: var(--print-color-neutral-900);
  --print-status-info-subtle: var(--print-color-neutral-50);
  --print-status-success-subtle: var(--print-color-neutral-100);
  --print-status-warning-subtle: var(--print-color-neutral-200);
  --print-status-error-subtle: var(--print-color-neutral-300);
}

@layer base {
/* ← ./print/foundations/print-color.css */
.print {
  color: var(--print-text-bold);

  .print-text-bold,
  .text-bold {
    color: var(--print-text-bold);
  }

  .print-text-moderate,
  .text-moderate {
    color: var(--print-text-moderate);
  }

  .print-text-subtle,
  .text-subtle {
    color: var(--print-text-subtle);
  }

  .print-text-minimal,
  .text-minimal {
    color: var(--print-text-minimal);
  }

  .print-text-inverted,
  .text-inverted {
    color: var(--print-text-inverted);
  }

  .print-border-minimal,
  .border-minimal {
    --_print-border-color: var(--print-border-minimal);
  }

  .print-border-subtle,
  .border-subtle {
    --_print-border-color: var(--print-border-subtle);
  }

  .print-border-moderate,
  .border-moderate {
    --_print-border-color: var(--print-border-moderate);
  }

  .print-border-bold,
  .border-bold {
    --_print-border-color: var(--print-border-bold);
  }

  .print-divider,
  .print-separator,
  .divider,
  .separator {
    --_print-border-color: var(--print-divider-color);
  }

  .print-bg-minimal,
  .bg-minimal {
    background-color: var(--print-bg-minimal);
  }

  .print-bg-subtle,
  .bg-subtle {
    background-color: var(--print-bg-subtle);
  }

  .print-bg-moderate,
  .bg-moderate {
    background-color: var(--print-bg-moderate);
  }

  .print-bg-bold,
  .bg-bold {
    background-color: var(--print-bg-bold);
  }

  .print-bg-accent-minimal {
    background-color: var(--print-accent-minimal);
  }

  .print-bg-accent-subtle {
    background-color: var(--print-accent-subtle);
  }

  .print-bg-accent-moderate {
    background-color: var(--print-accent-moderate);
  }

  .print-bg-accent-bold {
    background-color: var(--print-accent-bold);
  }

  .print-text-accent {
    color: var(--print-accent-bold);
  }

  .print-text-info {
    color: var(--print-status-info);
  }
  .print-text-success {
    color: var(--print-status-success);
  }
  .print-text-warning {
    color: var(--print-status-warning);
  }
  .print-text-error {
    color: var(--print-status-error);
  }

  .print-bg-info-subtle {
    background-color: var(--print-status-info-subtle);
  }
  .print-bg-success-subtle {
    background-color: var(--print-status-success-subtle);
  }
  .print-bg-warning-subtle {
    background-color: var(--print-status-warning-subtle);
  }
  .print-bg-error-subtle {
    background-color: var(--print-status-error-subtle);
  }
}
}

@layer base {
/* ← ./print/foundations/print-layout.css */
@page {
  size: A4 portrait;
  margin: 0;
}

@page leysys-a4-portrait {
  size: A4 portrait;
  margin: 0;
}

@page leysys-a4-landscape {
  size: A4 landscape;
  margin: 0;
}

@page leysys-a3-portrait {
  size: A3 portrait;
  margin: 0;
}

@page leysys-a3-landscape {
  size: A3 landscape;
  margin: 0;
}

/* Flow pages own the inset in the page context so every browser-generated
 * fragment receives the same printable area, not only the first fragment. */
@page leysys-a4-portrait-flow-xs {
  size: A4 portrait;
  margin: 6mm;
}
@page leysys-a4-portrait-flow-sm {
  size: A4 portrait;
  margin: 12mm;
}
@page leysys-a4-portrait-flow-md {
  size: A4 portrait;
  margin: 18mm;
}
@page leysys-a4-portrait-flow-lg {
  size: A4 portrait;
  margin: 24mm;
}
@page leysys-a4-portrait-flow-xl {
  size: A4 portrait;
  margin: 30mm;
}

@page leysys-a4-landscape-flow-xs {
  size: A4 landscape;
  margin: 6mm;
}
@page leysys-a4-landscape-flow-sm {
  size: A4 landscape;
  margin: 12mm;
}
@page leysys-a4-landscape-flow-md {
  size: A4 landscape;
  margin: 18mm;
}
@page leysys-a4-landscape-flow-lg {
  size: A4 landscape;
  margin: 24mm;
}
@page leysys-a4-landscape-flow-xl {
  size: A4 landscape;
  margin: 30mm;
}

@page leysys-a3-portrait-flow-xs {
  size: A3 portrait;
  margin: 6mm;
}
@page leysys-a3-portrait-flow-sm {
  size: A3 portrait;
  margin: 12mm;
}
@page leysys-a3-portrait-flow-md {
  size: A3 portrait;
  margin: 18mm;
}
@page leysys-a3-portrait-flow-lg {
  size: A3 portrait;
  margin: 24mm;
}
@page leysys-a3-portrait-flow-xl {
  size: A3 portrait;
  margin: 30mm;
}

@page leysys-a3-landscape-flow-xs {
  size: A3 landscape;
  margin: 6mm;
}
@page leysys-a3-landscape-flow-sm {
  size: A3 landscape;
  margin: 12mm;
}
@page leysys-a3-landscape-flow-md {
  size: A3 landscape;
  margin: 18mm;
}
@page leysys-a3-landscape-flow-lg {
  size: A3 landscape;
  margin: 24mm;
}
@page leysys-a3-landscape-flow-xl {
  size: A3 landscape;
  margin: 30mm;
}

@media print {
  html,
  body {
    margin: 0;
    padding: 0;
  }

  /* Semantic document header/footer are content. App chrome opts out. */
  .no-print,
  .print-app-chrome {
    display: none !important;
  }

  .print,
  .print * {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .print .print-page-break-before {
    break-before: page;
  }

  .print .print-page-break-after {
    break-after: page;
  }

  .print .print-keep-together {
    break-inside: avoid;
  }

  .print .print-keep-with-next {
    break-after: avoid;
  }
}

.print {
  background-color: var(--print-color-white);
  box-sizing: border-box;

  &.print-a4-portrait {
    --print-page-width: 210mm;
    --print-page-height: 297mm;

    page: leysys-a4-portrait;
  }

  &.print-a4-landscape {
    --print-page-width: 297mm;
    --print-page-height: 210mm;

    page: leysys-a4-landscape;
  }

  &.print-a3-portrait {
    --print-page-width: 297mm;
    --print-page-height: 420mm;

    page: leysys-a3-portrait;
  }

  &.print-a3-landscape {
    --print-page-width: 420mm;
    --print-page-height: 297mm;

    page: leysys-a3-landscape;
  }

  &.print-flow.print-a4-portrait {
    page: leysys-a4-portrait-flow-xs;
  }
  &.print-flow.print-a4-portrait.print-sm {
    page: leysys-a4-portrait-flow-sm;
  }
  &.print-flow.print-a4-portrait.print-md {
    page: leysys-a4-portrait-flow-md;
  }
  &.print-flow.print-a4-portrait.print-lg {
    page: leysys-a4-portrait-flow-lg;
  }
  &.print-flow.print-a4-portrait.print-xl {
    page: leysys-a4-portrait-flow-xl;
  }

  &.print-flow.print-a4-landscape {
    page: leysys-a4-landscape-flow-xs;
  }
  &.print-flow.print-a4-landscape.print-sm {
    page: leysys-a4-landscape-flow-sm;
  }
  &.print-flow.print-a4-landscape.print-md {
    page: leysys-a4-landscape-flow-md;
  }
  &.print-flow.print-a4-landscape.print-lg {
    page: leysys-a4-landscape-flow-lg;
  }
  &.print-flow.print-a4-landscape.print-xl {
    page: leysys-a4-landscape-flow-xl;
  }

  &.print-flow.print-a3-portrait {
    page: leysys-a3-portrait-flow-xs;
  }
  &.print-flow.print-a3-portrait.print-sm {
    page: leysys-a3-portrait-flow-sm;
  }
  &.print-flow.print-a3-portrait.print-md {
    page: leysys-a3-portrait-flow-md;
  }
  &.print-flow.print-a3-portrait.print-lg {
    page: leysys-a3-portrait-flow-lg;
  }
  &.print-flow.print-a3-portrait.print-xl {
    page: leysys-a3-portrait-flow-xl;
  }

  &.print-flow.print-a3-landscape {
    page: leysys-a3-landscape-flow-xs;
  }
  &.print-flow.print-a3-landscape.print-sm {
    page: leysys-a3-landscape-flow-sm;
  }
  &.print-flow.print-a3-landscape.print-md {
    page: leysys-a3-landscape-flow-md;
  }
  &.print-flow.print-a3-landscape.print-lg {
    page: leysys-a3-landscape-flow-lg;
  }
  &.print-flow.print-a3-landscape.print-xl {
    page: leysys-a3-landscape-flow-xl;
  }

  &:is(.print-a4-portrait, .print-a4-landscape, .print-a3-portrait, .print-a3-landscape) {
    width: var(--print-page-width);
    height: var(--print-page-height);
  }

  /* Long documents opt into browser pagination. Fixed one-sheet forms keep
   * the exact height above unless the root explicitly adds print-flow. */
  &.print-flow:is(
    .print-a4-portrait,
    .print-a4-landscape,
    .print-a3-portrait,
    .print-a3-landscape
  ) {
    height: auto;
    min-height: var(--print-page-height);
  }

  .layout-a4-portrait {
    --print-layout-width: 210mm;
    --print-layout-height: 297mm;
  }

  .layout-a4-landscape {
    --print-layout-width: 297mm;
    --print-layout-height: 210mm;
  }

  .layout-a3-portrait {
    --print-layout-width: 297mm;
    --print-layout-height: 420mm;
  }

  .layout-a3-landscape {
    --print-layout-width: 420mm;
    --print-layout-height: 297mm;
  }

  :is(.layout-a4-portrait, .layout-a4-landscape, .layout-a3-portrait, .layout-a3-landscape) {
    box-sizing: border-box;
    width: var(--print-layout-width);
    height: var(--print-layout-height);
    padding: var(--print-page-inset, var(--print-page-inset-xs));
  }

  &.print-flow
    :is(.layout-a4-portrait, .layout-a4-landscape, .layout-a3-portrait, .layout-a3-landscape) {
    height: auto;
    min-height: var(--print-layout-height);
  }

  .section,
  .article {
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
  }
}

.print-xs {
  --print-page-inset: var(--print-page-inset-xs);
}

.print-sm {
  --print-page-inset: var(--print-page-inset-sm);
}

.print-md {
  --print-page-inset: var(--print-page-inset-md);
}

.print-lg {
  --print-page-inset: var(--print-page-inset-lg);
}

.print-xl {
  --print-page-inset: var(--print-page-inset-xl);
}

@media print {
  .print.print-flow:is(
    .print-a4-portrait,
    .print-a4-landscape,
    .print-a3-portrait,
    .print-a3-landscape
  ) {
    width: auto;
    min-height: 0;
  }

  .print.print-flow
    :is(.layout-a4-portrait, .layout-a4-landscape, .layout-a3-portrait, .layout-a3-landscape) {
    width: auto;
    min-height: 0;
    padding: 0;
  }
}
}

@layer base {
/* ← ./print/foundations/native-table.css */
/*
 * Framework-independent native print tables.
 *
 * Row geometry is integer mm; type is integer pt. A cell may wrap by default
 * so a successful one-page render never implies silent information loss.
 */
.print {
  :where(table) {
    border-collapse: collapse;
    border-spacing: 0;
  }

  .native-table {
    width: 100%;
    table-layout: auto;
  }

  .native-table-separate {
    border-collapse: separate;
  }

  .native-table-auto {
    table-layout: auto;
  }

  .native-table-fixed {
    table-layout: fixed;
  }

  .native-table tr {
    background-color: var(--print-color-white);
  }

  .native-table thead > tr,
  .native-table tfoot > tr {
    background-color: var(--print-color-white);
  }

  .native-table th,
  .native-table td {
    min-width: 0;
    border-bottom: var(--print-stroke-hairline) solid var(--print-border-moderate);
    vertical-align: middle;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
  }

  .native-table th {
    font-weight: var(--print-font-weight-medium);
    text-align: start;
  }

  .native-table-border {
    border: var(--print-stroke-hairline) solid var(--print-border-moderate);
  }

  .native-table-static th {
    background-color: var(--print-bg-moderate);
  }

  .native-table-static th,
  .native-table-static td {
    border-top: var(--print-stroke-hairline) solid var(--print-border-moderate);
  }

  .native-table-divide-x th:not(:last-child),
  .native-table-divide-x td:not(:last-child) {
    border-inline-end: var(--print-stroke-hairline) solid var(--print-border-moderate);
  }

  .native-table-divide-y tr:not(:last-child) > th,
  .native-table-divide-y tr:not(:last-child) > td {
    border-bottom: var(--print-stroke-hairline) solid var(--print-border-moderate);
  }

  .native-table.border-none,
  .native-table .border-none,
  .native-table th.border-none,
  .native-table td.border-none {
    border: 0;
  }

  .native-table-dynamic {
    display: block;
    width: 100%;
    overflow-x: auto;
  }

  .native-table-dynamic th {
    white-space: normal;
  }

  .native-table-dynamic td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .native-table-cell-wrap {
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .native-table-cell-nowrap {
    white-space: nowrap;
  }

  .native-table-cell-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .native-table-number,
  .print-number {
    text-align: end;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }

  .native-table-xs tr {
    height: 6mm;
  }
  .native-table-xs th,
  .native-table-xs td {
    padding-inline: var(--print-space-half);
    font-size: var(--print-font-size-8);
    line-height: var(--print-line-height-11);
  }
  .native-table-xs th:has(input[type="checkbox"]),
  .native-table-xs td:has(input[type="checkbox"]) {
    width: 6mm;
  }
  .native-table-xs .input {
    width: 100%;
    height: 5mm;
    padding-inline: var(--print-space-half);
    font-size: var(--print-font-size-8);
  }

  .native-table-sm tr {
    height: 8mm;
  }
  .native-table-sm th,
  .native-table-sm td {
    padding-inline: var(--print-space-1);
    font-size: var(--print-font-size-9);
    line-height: var(--print-line-height-12);
  }
  .native-table-sm th:has(input[type="checkbox"]),
  .native-table-sm td:has(input[type="checkbox"]) {
    width: 8mm;
  }
  .native-table-sm .input {
    width: 100%;
    height: 7mm;
    padding-inline: var(--print-space-1);
    font-size: var(--print-font-size-9);
  }

  .native-table-md tr {
    height: 10mm;
  }
  .native-table-md th,
  .native-table-md td {
    padding-inline: var(--print-space-1);
    font-size: var(--print-font-size-10);
    line-height: var(--print-line-height-14);
  }
  .native-table-md th:has(input[type="checkbox"]),
  .native-table-md td:has(input[type="checkbox"]) {
    width: 10mm;
  }
  .native-table-md .input {
    width: 100%;
    height: 9mm;
    padding-inline: var(--print-space-1);
    font-size: var(--print-font-size-10);
  }

  .native-table-lg tr {
    height: 12mm;
  }
  .native-table-lg th,
  .native-table-lg td {
    padding-inline: var(--print-space-1-half);
    font-size: var(--print-font-size-11);
    line-height: var(--print-line-height-16);
  }
  .native-table-lg th:has(input[type="checkbox"]),
  .native-table-lg td:has(input[type="checkbox"]) {
    width: 12mm;
  }
  .native-table-lg .input {
    width: 100%;
    height: 11mm;
    padding-inline: var(--print-space-1-half);
    font-size: var(--print-font-size-11);
  }

  .native-table-xl tr {
    height: 14mm;
  }
  .native-table-xl th,
  .native-table-xl td {
    padding-inline: var(--print-space-2);
    font-size: var(--print-font-size-12);
    line-height: var(--print-line-height-18);
  }
  .native-table-xl th:has(input[type="checkbox"]),
  .native-table-xl td:has(input[type="checkbox"]) {
    width: 14mm;
  }
  .native-table-xl .input {
    width: 100%;
    height: 13mm;
    padding-inline: var(--print-space-2);
    font-size: var(--print-font-size-12);
  }

  .native-table .input {
    border: var(--print-stroke-hairline) solid var(--print-border-moderate);
  }
}

@media print {
  .print .native-table-dynamic {
    display: table;
    overflow: visible;
  }

  .print .native-table-dynamic td {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }

  .print table thead {
    display: table-header-group;
  }

  .print table tfoot {
    display: table-footer-group;
  }

  .print table tr {
    break-inside: avoid;
  }
}
}

@layer base {
/* ← ./print/foundations/print-typography.css */
/* Physical typography foundation. Screen rem/em units do not enter Print DS. */
.print {
  font-family: var(--print-font-family);
  color: var(--print-text-bold);
  font-size: var(--print-text-body-size);
  line-height: var(--print-text-body-line-height);
  font-weight: var(--print-font-weight-regular);
  text-rendering: optimizeLegibility;
  overflow-wrap: anywhere;
}

/* 줄바꿈은 문서 언어를 따른다 — keep-all은 한국어 문서에만 적용 (language-neutral 기본값 계약) */
.print:lang(ko),
.print :lang(ko) {
  word-break: keep-all;
}

.print,
.print *,
.print *::before,
.print *::after {
  box-sizing: border-box;
}

.print :where(h1, h2, h3, h4, h5, h6) {
  margin: 0;
  color: var(--print-text-bold);
  font-family: var(--print-font-family);
  font-style: normal;
  font-weight: var(--print-font-weight-medium);
}

.print h1 {
  font-size: var(--print-text-heading-1-size);
  line-height: var(--print-text-heading-1-line-height);
}

.print h2 {
  font-size: var(--print-text-heading-2-size);
  line-height: var(--print-text-heading-2-line-height);
}

.print h3 {
  font-size: var(--print-text-heading-3-size);
  line-height: var(--print-text-heading-3-line-height);
}

.print h4 {
  font-size: var(--print-text-heading-4-size);
  line-height: var(--print-text-heading-4-line-height);
}

.print h5 {
  font-size: var(--print-text-heading-5-size);
  line-height: var(--print-text-heading-5-line-height);
}

.print h6 {
  font-size: var(--print-text-heading-6-size);
  line-height: var(--print-text-heading-6-line-height);
}

.print p {
  display: block;
  margin-block: var(--print-space-4);
  margin-inline: 0;
  font-size: inherit;
  line-height: inherit;
}

.print :where(ul, ol) {
  margin-block: var(--print-space-2);
  padding-inline-start: var(--print-space-6);
}

.print :where(strong, b) {
  font-weight: var(--print-font-weight-bold);
}

.print :where(small, figcaption, caption) {
  font-size: var(--print-text-compact-size);
  line-height: var(--print-text-compact-line-height);
}

.print :where(a) {
  color: inherit;
  text-decoration-thickness: var(--print-stroke-hairline);
  text-underline-offset: var(--print-stroke-thin);
}

.print :where(sub, sup) {
  position: relative;
  font-size: var(--print-font-size-8);
  line-height: 0;
  vertical-align: baseline;
}

.print sup {
  inset-block-start: -0.5mm;
}

.print sub {
  inset-block-end: -0.25mm;
}
}

@layer components {
/* ← ./print/components/print-document.css */
/*
 * Generic document anatomy for contracts, certificates, notices and reports.
 * Domain wording and exact statutory grids remain consumer-owned.
 */
.print {
  .print-document {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--print-space-2);
    color: var(--print-text-bold);
    font-size: var(--print-text-small-size);
    line-height: var(--print-text-small-line-height);
  }

  .print-document-header,
  .print-document-body,
  .print-document-footer,
  .print-document-section,
  .print-document-section-body {
    min-width: 0;
  }

  .print-document-header {
    display: grid;
    gap: var(--print-space-2);
  }

  .print-document-body {
    display: flex;
    flex-direction: column;
    gap: var(--print-space-3);
  }

  .print-document-title {
    margin: 0;
    text-align: center;
    font-size: var(--print-font-size-18);
    line-height: var(--print-line-height-24);
    font-weight: var(--print-font-weight-medium);
    letter-spacing: 2pt;
  }

  .print-document-subtitle {
    margin: 0;
    text-align: center;
    color: var(--print-text-moderate);
    font-size: var(--print-font-size-10);
    line-height: var(--print-line-height-14);
  }

  .print-document-meta {
    display: grid;
    border-block-start: var(--print-stroke-hairline) solid var(--print-border-moderate);
  }

  .print-document-meta-row {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(30mm, auto) minmax(0, 1fr);
    border-block-end: var(--print-stroke-hairline) solid var(--print-border-moderate);
  }

  .print-document-meta-label,
  .print-document-meta-value {
    min-width: 0;
    padding: var(--print-space-1) var(--print-space-2);
  }

  .print-document-meta-label {
    background: var(--print-bg-subtle);
    font-weight: var(--print-font-weight-medium);
  }

  .print-document-section {
    display: grid;
    gap: var(--print-space-1);
  }

  .print-document-section-header,
  .print-document-article-title {
    font-weight: var(--print-font-weight-bold);
  }

  .print-document-parties {
    border: var(--print-stroke-hairline) solid var(--print-border-moderate);
  }

  .print-document-parties .label {
    background-color: var(--print-bg-subtle);
    font-weight: var(--print-font-weight-medium);
    white-space: nowrap;
  }

  .print-document-intro,
  .print-document-clause {
    text-align: justify;
  }

  .print-document-article {
    display: grid;
    gap: var(--print-space-half);
  }

  .print-document-clause {
    margin: 0;
    padding-inline-start: var(--print-space-4);
    text-indent: -4mm;
  }

  .print-document-notice {
    padding: var(--print-space-2) var(--print-space-3);
    border-inline-start: var(--print-stroke-thin) solid var(--print-status-warning);
    background: var(--print-status-warning-subtle);
  }

  .native-table tr.print-document-total {
    background-color: var(--print-bg-subtle);
    font-weight: var(--print-font-weight-bold);
  }

  .print-document-signatures {
    display: grid;
    min-width: 0;
    grid-template-columns: repeat(auto-fit, minmax(50mm, 1fr));
    gap: var(--print-space-4);
  }

  .print-document-signature {
    position: relative;
    min-width: 0;
    min-height: 24mm;
    padding: var(--print-space-2) var(--print-space-3);
    border: var(--print-stroke-hairline) solid var(--print-border-moderate);
  }

  .print-document-stamp {
    position: absolute;
    width: 16mm;
    height: 16mm;
    object-fit: contain;
    opacity: 0.95;
  }

  .print-document-verification {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: var(--print-space-4);
    padding-block-start: var(--print-space-2);
    border-block-start: var(--print-stroke-hairline) solid var(--print-border-moderate);
    color: var(--print-text-moderate);
    font-size: var(--print-text-caption-size);
    line-height: var(--print-text-caption-line-height);
  }

  .print-document-verification-code {
    overflow-wrap: anywhere;
    font-variant-numeric: tabular-nums;
  }

  .print-document-qr {
    width: 20mm;
    height: 20mm;
    object-fit: contain;
  }

  .print-document-footer {
    display: grid;
    gap: var(--print-space-1);
    margin-block-start: auto;
    text-align: center;
  }
}

@media print {
  body.printing-document > *:not(#print-holder) {
    display: none !important;
  }

  body.printing-document > #print-holder {
    display: block;
  }

  .print-document {
    widows: 3;
    orphans: 3;
  }

  .print-document-meta-row,
  .print-document-parties,
  .print-document-notice,
  .print-document-total,
  .print-document-signatures,
  .print-document-signature,
  .print-document-verification {
    break-inside: avoid;
  }

  .print-document-section-header,
  .print-document-article-title {
    break-after: avoid;
  }

  .print-document-clause {
    break-inside: avoid;
  }
}
}

@layer utilities {
/* ← ./print/custom-utilities/print-backgrounds-canonical.css */
/* Canonical Print background utilities (50~950). */
.print {
  .print-bg-red-50 {
    background-color: var(--print-color-red-50);
  }
  .print-bg-red-100 {
    background-color: var(--print-color-red-100);
  }
  .print-bg-red-200 {
    background-color: var(--print-color-red-200);
  }
  .print-bg-red-300 {
    background-color: var(--print-color-red-300);
  }
  .print-bg-red-400 {
    background-color: var(--print-color-red-400);
  }
  .print-bg-red-500 {
    background-color: var(--print-color-red-500);
  }
  .print-bg-red-600 {
    background-color: var(--print-color-red-600);
  }
  .print-bg-red-700 {
    background-color: var(--print-color-red-700);
  }
  .print-bg-red-800 {
    background-color: var(--print-color-red-800);
  }
  .print-bg-red-900 {
    background-color: var(--print-color-red-900);
  }
  .print-bg-red-950 {
    background-color: var(--print-color-red-950);
  }

  .print-bg-orange-50 {
    background-color: var(--print-color-orange-50);
  }
  .print-bg-orange-100 {
    background-color: var(--print-color-orange-100);
  }
  .print-bg-orange-200 {
    background-color: var(--print-color-orange-200);
  }
  .print-bg-orange-300 {
    background-color: var(--print-color-orange-300);
  }
  .print-bg-orange-400 {
    background-color: var(--print-color-orange-400);
  }
  .print-bg-orange-500 {
    background-color: var(--print-color-orange-500);
  }
  .print-bg-orange-600 {
    background-color: var(--print-color-orange-600);
  }
  .print-bg-orange-700 {
    background-color: var(--print-color-orange-700);
  }
  .print-bg-orange-800 {
    background-color: var(--print-color-orange-800);
  }
  .print-bg-orange-900 {
    background-color: var(--print-color-orange-900);
  }
  .print-bg-orange-950 {
    background-color: var(--print-color-orange-950);
  }

  .print-bg-amber-50 {
    background-color: var(--print-color-amber-50);
  }
  .print-bg-amber-100 {
    background-color: var(--print-color-amber-100);
  }
  .print-bg-amber-200 {
    background-color: var(--print-color-amber-200);
  }
  .print-bg-amber-300 {
    background-color: var(--print-color-amber-300);
  }
  .print-bg-amber-400 {
    background-color: var(--print-color-amber-400);
  }
  .print-bg-amber-500 {
    background-color: var(--print-color-amber-500);
  }
  .print-bg-amber-600 {
    background-color: var(--print-color-amber-600);
  }
  .print-bg-amber-700 {
    background-color: var(--print-color-amber-700);
  }
  .print-bg-amber-800 {
    background-color: var(--print-color-amber-800);
  }
  .print-bg-amber-900 {
    background-color: var(--print-color-amber-900);
  }
  .print-bg-amber-950 {
    background-color: var(--print-color-amber-950);
  }

  .print-bg-yellow-50 {
    background-color: var(--print-color-yellow-50);
  }
  .print-bg-yellow-100 {
    background-color: var(--print-color-yellow-100);
  }
  .print-bg-yellow-200 {
    background-color: var(--print-color-yellow-200);
  }
  .print-bg-yellow-300 {
    background-color: var(--print-color-yellow-300);
  }
  .print-bg-yellow-400 {
    background-color: var(--print-color-yellow-400);
  }
  .print-bg-yellow-500 {
    background-color: var(--print-color-yellow-500);
  }
  .print-bg-yellow-600 {
    background-color: var(--print-color-yellow-600);
  }
  .print-bg-yellow-700 {
    background-color: var(--print-color-yellow-700);
  }
  .print-bg-yellow-800 {
    background-color: var(--print-color-yellow-800);
  }
  .print-bg-yellow-900 {
    background-color: var(--print-color-yellow-900);
  }
  .print-bg-yellow-950 {
    background-color: var(--print-color-yellow-950);
  }

  .print-bg-lime-50 {
    background-color: var(--print-color-lime-50);
  }
  .print-bg-lime-100 {
    background-color: var(--print-color-lime-100);
  }
  .print-bg-lime-200 {
    background-color: var(--print-color-lime-200);
  }
  .print-bg-lime-300 {
    background-color: var(--print-color-lime-300);
  }
  .print-bg-lime-400 {
    background-color: var(--print-color-lime-400);
  }
  .print-bg-lime-500 {
    background-color: var(--print-color-lime-500);
  }
  .print-bg-lime-600 {
    background-color: var(--print-color-lime-600);
  }
  .print-bg-lime-700 {
    background-color: var(--print-color-lime-700);
  }
  .print-bg-lime-800 {
    background-color: var(--print-color-lime-800);
  }
  .print-bg-lime-900 {
    background-color: var(--print-color-lime-900);
  }
  .print-bg-lime-950 {
    background-color: var(--print-color-lime-950);
  }

  .print-bg-green-50 {
    background-color: var(--print-color-green-50);
  }
  .print-bg-green-100 {
    background-color: var(--print-color-green-100);
  }
  .print-bg-green-200 {
    background-color: var(--print-color-green-200);
  }
  .print-bg-green-300 {
    background-color: var(--print-color-green-300);
  }
  .print-bg-green-400 {
    background-color: var(--print-color-green-400);
  }
  .print-bg-green-500 {
    background-color: var(--print-color-green-500);
  }
  .print-bg-green-600 {
    background-color: var(--print-color-green-600);
  }
  .print-bg-green-700 {
    background-color: var(--print-color-green-700);
  }
  .print-bg-green-800 {
    background-color: var(--print-color-green-800);
  }
  .print-bg-green-900 {
    background-color: var(--print-color-green-900);
  }
  .print-bg-green-950 {
    background-color: var(--print-color-green-950);
  }

  .print-bg-cyan-50 {
    background-color: var(--print-color-cyan-50);
  }
  .print-bg-cyan-100 {
    background-color: var(--print-color-cyan-100);
  }
  .print-bg-cyan-200 {
    background-color: var(--print-color-cyan-200);
  }
  .print-bg-cyan-300 {
    background-color: var(--print-color-cyan-300);
  }
  .print-bg-cyan-400 {
    background-color: var(--print-color-cyan-400);
  }
  .print-bg-cyan-500 {
    background-color: var(--print-color-cyan-500);
  }
  .print-bg-cyan-600 {
    background-color: var(--print-color-cyan-600);
  }
  .print-bg-cyan-700 {
    background-color: var(--print-color-cyan-700);
  }
  .print-bg-cyan-800 {
    background-color: var(--print-color-cyan-800);
  }
  .print-bg-cyan-900 {
    background-color: var(--print-color-cyan-900);
  }
  .print-bg-cyan-950 {
    background-color: var(--print-color-cyan-950);
  }

  .print-bg-blue-50 {
    background-color: var(--print-color-blue-50);
  }
  .print-bg-blue-100 {
    background-color: var(--print-color-blue-100);
  }
  .print-bg-blue-200 {
    background-color: var(--print-color-blue-200);
  }
  .print-bg-blue-300 {
    background-color: var(--print-color-blue-300);
  }
  .print-bg-blue-400 {
    background-color: var(--print-color-blue-400);
  }
  .print-bg-blue-500 {
    background-color: var(--print-color-blue-500);
  }
  .print-bg-blue-600 {
    background-color: var(--print-color-blue-600);
  }
  .print-bg-blue-700 {
    background-color: var(--print-color-blue-700);
  }
  .print-bg-blue-800 {
    background-color: var(--print-color-blue-800);
  }
  .print-bg-blue-900 {
    background-color: var(--print-color-blue-900);
  }
  .print-bg-blue-950 {
    background-color: var(--print-color-blue-950);
  }

  .print-bg-indigo-50 {
    background-color: var(--print-color-indigo-50);
  }
  .print-bg-indigo-100 {
    background-color: var(--print-color-indigo-100);
  }
  .print-bg-indigo-200 {
    background-color: var(--print-color-indigo-200);
  }
  .print-bg-indigo-300 {
    background-color: var(--print-color-indigo-300);
  }
  .print-bg-indigo-400 {
    background-color: var(--print-color-indigo-400);
  }
  .print-bg-indigo-500 {
    background-color: var(--print-color-indigo-500);
  }
  .print-bg-indigo-600 {
    background-color: var(--print-color-indigo-600);
  }
  .print-bg-indigo-700 {
    background-color: var(--print-color-indigo-700);
  }
  .print-bg-indigo-800 {
    background-color: var(--print-color-indigo-800);
  }
  .print-bg-indigo-900 {
    background-color: var(--print-color-indigo-900);
  }
  .print-bg-indigo-950 {
    background-color: var(--print-color-indigo-950);
  }

  .print-bg-purple-50 {
    background-color: var(--print-color-purple-50);
  }
  .print-bg-purple-100 {
    background-color: var(--print-color-purple-100);
  }
  .print-bg-purple-200 {
    background-color: var(--print-color-purple-200);
  }
  .print-bg-purple-300 {
    background-color: var(--print-color-purple-300);
  }
  .print-bg-purple-400 {
    background-color: var(--print-color-purple-400);
  }
  .print-bg-purple-500 {
    background-color: var(--print-color-purple-500);
  }
  .print-bg-purple-600 {
    background-color: var(--print-color-purple-600);
  }
  .print-bg-purple-700 {
    background-color: var(--print-color-purple-700);
  }
  .print-bg-purple-800 {
    background-color: var(--print-color-purple-800);
  }
  .print-bg-purple-900 {
    background-color: var(--print-color-purple-900);
  }
  .print-bg-purple-950 {
    background-color: var(--print-color-purple-950);
  }

  .print-bg-fuchsia-50 {
    background-color: var(--print-color-fuchsia-50);
  }
  .print-bg-fuchsia-100 {
    background-color: var(--print-color-fuchsia-100);
  }
  .print-bg-fuchsia-200 {
    background-color: var(--print-color-fuchsia-200);
  }
  .print-bg-fuchsia-300 {
    background-color: var(--print-color-fuchsia-300);
  }
  .print-bg-fuchsia-400 {
    background-color: var(--print-color-fuchsia-400);
  }
  .print-bg-fuchsia-500 {
    background-color: var(--print-color-fuchsia-500);
  }
  .print-bg-fuchsia-600 {
    background-color: var(--print-color-fuchsia-600);
  }
  .print-bg-fuchsia-700 {
    background-color: var(--print-color-fuchsia-700);
  }
  .print-bg-fuchsia-800 {
    background-color: var(--print-color-fuchsia-800);
  }
  .print-bg-fuchsia-900 {
    background-color: var(--print-color-fuchsia-900);
  }
  .print-bg-fuchsia-950 {
    background-color: var(--print-color-fuchsia-950);
  }

  .print-bg-neutral-50 {
    background-color: var(--print-color-neutral-50);
  }
  .print-bg-neutral-100 {
    background-color: var(--print-color-neutral-100);
  }
  .print-bg-neutral-200 {
    background-color: var(--print-color-neutral-200);
  }
  .print-bg-neutral-300 {
    background-color: var(--print-color-neutral-300);
  }
  .print-bg-neutral-400 {
    background-color: var(--print-color-neutral-400);
  }
  .print-bg-neutral-500 {
    background-color: var(--print-color-neutral-500);
  }
  .print-bg-neutral-600 {
    background-color: var(--print-color-neutral-600);
  }
  .print-bg-neutral-700 {
    background-color: var(--print-color-neutral-700);
  }
  .print-bg-neutral-800 {
    background-color: var(--print-color-neutral-800);
  }
  .print-bg-neutral-900 {
    background-color: var(--print-color-neutral-900);
  }
  .print-bg-neutral-950 {
    background-color: var(--print-color-neutral-950);
  }
}
}

@layer utilities {
/* ← ./print/custom-utilities/print-borders.css */
/* Print stroke utilities: canonical quarter-millimetre intent, thin and medium only. */
@property --_print-border-style {
  syntax: "*";
  inherits: false;
}

@property --_print-border-color {
  syntax: "*";
  inherits: false;
}

.print {
  .border {
    border: var(--print-stroke-hairline) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }

  .border-none {
    border: 0 none transparent;
  }

  .border-solid {
    --_print-border-style: solid;
  }

  .border-dashed {
    --_print-border-style: dashed;
  }

  .border-dotted {
    --_print-border-style: dotted;
  }

  .border-0 {
    border: 0 var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-0\.25mm {
    border: var(--print-stroke-hairline) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-0\.5mm {
    border: var(--print-stroke-thin) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-1mm {
    border: var(--print-stroke-medium) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }

  .border-x-0 {
    border-inline: 0 var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-x-0\.25mm {
    border-inline: var(--print-stroke-hairline) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-x-0\.5mm {
    border-inline: var(--print-stroke-thin) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-x-1mm {
    border-inline: var(--print-stroke-medium) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }

  .border-y-0 {
    border-block: 0 var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-y-0\.25mm {
    border-block: var(--print-stroke-hairline) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-y-0\.5mm {
    border-block: var(--print-stroke-thin) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-y-1mm {
    border-block: var(--print-stroke-medium) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }

  .border-t-0 {
    border-top: 0 var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-t-0\.25mm {
    border-top: var(--print-stroke-hairline) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-t-0\.5mm {
    border-top: var(--print-stroke-thin) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-t-1mm {
    border-top: var(--print-stroke-medium) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }

  .border-b-0 {
    border-bottom: 0 var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-b-0\.25mm {
    border-bottom: var(--print-stroke-hairline) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-b-0\.5mm {
    border-bottom: var(--print-stroke-thin) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-b-1mm {
    border-bottom: var(--print-stroke-medium) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }

  .border-s-0 {
    border-inline-start: 0 var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-s-0\.25mm {
    border-inline-start: var(--print-stroke-hairline) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-s-0\.5mm {
    border-inline-start: var(--print-stroke-thin) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-s-1mm {
    border-inline-start: var(--print-stroke-medium) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }

  .border-e-0 {
    border-inline-end: 0 var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-e-0\.25mm {
    border-inline-end: var(--print-stroke-hairline) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-e-0\.5mm {
    border-inline-end: var(--print-stroke-thin) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }
  .border-e-1mm {
    border-inline-end: var(--print-stroke-medium) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }

  .divider-y,
  .divider-x,
  .fold-guide-y,
  .cut-guide-y,
  .perforation-guide-y {
    border: 0;
  }

  .divider-y {
    width: 100%;
    border-block-end: var(--print-stroke-hairline) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }

  .divider-x {
    height: 100%;
    border-inline-end: var(--print-stroke-hairline) var(--_print-border-style, solid)
      var(--_print-border-color, var(--print-border-moderate));
  }

  .fold-guide-y {
    --_print-border-style: dashed;
    --_print-border-color: var(--print-border-subtle);

    width: 100%;
    border-block-end: var(--print-stroke-hairline) var(--_print-border-style)
      var(--_print-border-color);
  }

  .cut-guide-y {
    --_print-border-style: solid;
    --_print-border-color: var(--print-border-bold);

    width: 100%;
    border-block-end: var(--print-stroke-hairline) var(--_print-border-style)
      var(--_print-border-color);
  }

  .perforation-guide-y {
    --_print-border-style: dotted;
    --_print-border-color: var(--print-border-moderate);

    width: 100%;
    border-block-end: var(--print-stroke-hairline) var(--_print-border-style)
      var(--_print-border-color);
  }
}
}

@layer utilities {
/* ← ./print/custom-utilities/print-flexbox-grid.css */
/* Framework-independent layout primitives for paper composition. */
.print {
  .flex {
    display: flex;
  }
  .inline-flex {
    display: inline-flex;
  }
  .grid {
    display: grid;
  }

  .flex-row {
    flex-direction: row;
  }
  .flex-col {
    flex-direction: column;
  }
  .flex-wrap {
    flex-wrap: wrap;
  }
  .flex-nowrap {
    flex-wrap: nowrap;
  }
  .flex-1 {
    flex: 1 1 0%;
  }
  .grow {
    flex-grow: 1;
  }
  .grow-0 {
    flex-grow: 0;
  }
  .shrink {
    flex-shrink: 1;
  }
  .shrink-0 {
    flex-shrink: 0;
  }

  .items-start {
    align-items: flex-start;
  }
  .items-center {
    align-items: center;
  }
  .items-end {
    align-items: flex-end;
  }
  .items-stretch {
    align-items: stretch;
  }
  .items-baseline {
    align-items: baseline;
  }

  .justify-start {
    justify-content: flex-start;
  }
  .justify-center {
    justify-content: center;
  }
  .justify-end {
    justify-content: flex-end;
  }
  .justify-between {
    justify-content: space-between;
  }
  .justify-around {
    justify-content: space-around;
  }
  .justify-evenly {
    justify-content: space-evenly;
  }

  .self-start {
    align-self: flex-start;
  }
  .self-center {
    align-self: center;
  }
  .self-end {
    align-self: flex-end;
  }
  .self-stretch {
    align-self: stretch;
  }

  .grid-cols-1 {
    grid-template-columns: minmax(0, 1fr);
  }
  .grid-cols-2,
  .grid-cols-1-1 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-3,
  .grid-cols-1-1-1 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid-cols-4,
  .grid-cols-1-1-1-1 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid-cols-1-2 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  }
  .grid-cols-2-1 {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  }
  .grid-cols-2-3 {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
  .grid-cols-3-2 {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  }

  .grid-rows-1 {
    grid-template-rows: minmax(0, 1fr);
  }
  .grid-rows-2,
  .grid-rows-1-1 {
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }
  .grid-rows-3 {
    grid-template-rows: repeat(3, minmax(0, 1fr));
  }
  .grid-rows-4 {
    grid-template-rows: repeat(4, minmax(0, 1fr));
  }
  .grid-rows-1-2 {
    grid-template-rows: minmax(0, 1fr) minmax(0, 2fr);
  }
  .grid-rows-2-1 {
    grid-template-rows: minmax(0, 2fr) minmax(0, 1fr);
  }
  .grid-rows-2-3 {
    grid-template-rows: minmax(0, 2fr) minmax(0, 3fr);
  }
  .grid-rows-3-2 {
    grid-template-rows: minmax(0, 3fr) minmax(0, 2fr);
  }
}
}

@layer utilities {
/* ← ./print/custom-utilities/print-sizing.css */
/*
 * Print sizing utilities
 *
 * Integer millimetres are the default. The two half-millimetre values cover
 * measured optical alignment without recreating an exhaustive conversion
 * table. Repeated exact geometry belongs in a component; one-off statutory
 * dimensions use the --print-* custom-property adapters below.
 */
.print {
  /* w */
  .w-0mm {
    width: 0;
  }
  .w-0\.5mm {
    width: 0.5mm;
  }
  .w-1mm {
    width: 1mm;
  }
  .w-1\.5mm {
    width: 1.5mm;
  }
  .w-2mm {
    width: 2mm;
  }
  .w-3mm {
    width: 3mm;
  }
  .w-4mm {
    width: 4mm;
  }
  .w-5mm {
    width: 5mm;
  }
  .w-6mm {
    width: 6mm;
  }
  .w-8mm {
    width: 8mm;
  }
  .w-10mm {
    width: 10mm;
  }
  .w-12mm {
    width: 12mm;
  }
  .w-15mm {
    width: 15mm;
  }
  .w-16mm {
    width: 16mm;
  }
  .w-18mm {
    width: 18mm;
  }
  .w-20mm {
    width: 20mm;
  }
  .w-24mm {
    width: 24mm;
  }
  .w-30mm {
    width: 30mm;
  }
  .w-40mm {
    width: 40mm;
  }
  .w-50mm {
    width: 50mm;
  }
  .w-60mm {
    width: 60mm;
  }
  .w-80mm {
    width: 80mm;
  }
  .w-100mm {
    width: 100mm;
  }

  /* h */
  .h-0mm {
    height: 0;
  }
  .h-0\.5mm {
    height: 0.5mm;
  }
  .h-1mm {
    height: 1mm;
  }
  .h-1\.5mm {
    height: 1.5mm;
  }
  .h-2mm {
    height: 2mm;
  }
  .h-3mm {
    height: 3mm;
  }
  .h-4mm {
    height: 4mm;
  }
  .h-4\.5mm {
    height: 4.5mm;
  }
  .h-5mm {
    height: 5mm;
  }
  .h-6mm {
    height: 6mm;
  }
  .h-7mm {
    height: 7mm;
  }
  .h-8mm {
    height: 8mm;
  }
  .h-10mm {
    height: 10mm;
  }
  .h-12mm {
    height: 12mm;
  }
  .h-13mm {
    height: 13mm;
  }
  .h-15mm {
    height: 15mm;
  }
  .h-16mm {
    height: 16mm;
  }
  .h-18mm {
    height: 18mm;
  }
  .h-20mm {
    height: 20mm;
  }
  .h-24mm {
    height: 24mm;
  }
  .h-30mm {
    height: 30mm;
  }
  .h-40mm {
    height: 40mm;
  }
  .h-50mm {
    height: 50mm;
  }
  .h-60mm {
    height: 60mm;
  }
  .h-80mm {
    height: 80mm;
  }
  .h-100mm {
    height: 100mm;
  }

  /* min-w */
  .min-w-0mm {
    min-width: 0;
  }
  .min-w-0\.5mm {
    min-width: 0.5mm;
  }
  .min-w-1mm {
    min-width: 1mm;
  }
  .min-w-1\.5mm {
    min-width: 1.5mm;
  }
  .min-w-2mm {
    min-width: 2mm;
  }
  .min-w-3mm {
    min-width: 3mm;
  }
  .min-w-4mm {
    min-width: 4mm;
  }
  .min-w-5mm {
    min-width: 5mm;
  }
  .min-w-6mm {
    min-width: 6mm;
  }
  .min-w-8mm {
    min-width: 8mm;
  }
  .min-w-10mm {
    min-width: 10mm;
  }
  .min-w-12mm {
    min-width: 12mm;
  }
  .min-w-15mm {
    min-width: 15mm;
  }
  .min-w-16mm {
    min-width: 16mm;
  }
  .min-w-18mm {
    min-width: 18mm;
  }
  .min-w-20mm {
    min-width: 20mm;
  }
  .min-w-24mm {
    min-width: 24mm;
  }
  .min-w-30mm {
    min-width: 30mm;
  }
  .min-w-40mm {
    min-width: 40mm;
  }
  .min-w-50mm {
    min-width: 50mm;
  }
  .min-w-60mm {
    min-width: 60mm;
  }
  .min-w-80mm {
    min-width: 80mm;
  }
  .min-w-100mm {
    min-width: 100mm;
  }

  /* max-w */
  .max-w-0mm {
    max-width: 0;
  }
  .max-w-0\.5mm {
    max-width: 0.5mm;
  }
  .max-w-1mm {
    max-width: 1mm;
  }
  .max-w-1\.5mm {
    max-width: 1.5mm;
  }
  .max-w-2mm {
    max-width: 2mm;
  }
  .max-w-3mm {
    max-width: 3mm;
  }
  .max-w-4mm {
    max-width: 4mm;
  }
  .max-w-5mm {
    max-width: 5mm;
  }
  .max-w-6mm {
    max-width: 6mm;
  }
  .max-w-8mm {
    max-width: 8mm;
  }
  .max-w-10mm {
    max-width: 10mm;
  }
  .max-w-12mm {
    max-width: 12mm;
  }
  .max-w-15mm {
    max-width: 15mm;
  }
  .max-w-16mm {
    max-width: 16mm;
  }
  .max-w-18mm {
    max-width: 18mm;
  }
  .max-w-20mm {
    max-width: 20mm;
  }
  .max-w-24mm {
    max-width: 24mm;
  }
  .max-w-30mm {
    max-width: 30mm;
  }
  .max-w-40mm {
    max-width: 40mm;
  }
  .max-w-50mm {
    max-width: 50mm;
  }
  .max-w-60mm {
    max-width: 60mm;
  }
  .max-w-80mm {
    max-width: 80mm;
  }
  .max-w-100mm {
    max-width: 100mm;
  }

  /* min-h */
  .min-h-0mm {
    min-height: 0;
  }
  .min-h-0\.5mm {
    min-height: 0.5mm;
  }
  .min-h-1mm {
    min-height: 1mm;
  }
  .min-h-1\.5mm {
    min-height: 1.5mm;
  }
  .min-h-2mm {
    min-height: 2mm;
  }
  .min-h-3mm {
    min-height: 3mm;
  }
  .min-h-4mm {
    min-height: 4mm;
  }
  .min-h-5mm {
    min-height: 5mm;
  }
  .min-h-6mm {
    min-height: 6mm;
  }
  .min-h-8mm {
    min-height: 8mm;
  }
  .min-h-10mm {
    min-height: 10mm;
  }
  .min-h-12mm {
    min-height: 12mm;
  }
  .min-h-15mm {
    min-height: 15mm;
  }
  .min-h-16mm {
    min-height: 16mm;
  }
  .min-h-18mm {
    min-height: 18mm;
  }
  .min-h-20mm {
    min-height: 20mm;
  }
  .min-h-24mm {
    min-height: 24mm;
  }
  .min-h-30mm {
    min-height: 30mm;
  }
  .min-h-40mm {
    min-height: 40mm;
  }
  .min-h-50mm {
    min-height: 50mm;
  }
  .min-h-60mm {
    min-height: 60mm;
  }
  .min-h-80mm {
    min-height: 80mm;
  }
  .min-h-100mm {
    min-height: 100mm;
  }

  /* max-h */
  .max-h-0mm {
    max-height: 0;
  }
  .max-h-0\.5mm {
    max-height: 0.5mm;
  }
  .max-h-1mm {
    max-height: 1mm;
  }
  .max-h-1\.5mm {
    max-height: 1.5mm;
  }
  .max-h-2mm {
    max-height: 2mm;
  }
  .max-h-3mm {
    max-height: 3mm;
  }
  .max-h-4mm {
    max-height: 4mm;
  }
  .max-h-5mm {
    max-height: 5mm;
  }
  .max-h-6mm {
    max-height: 6mm;
  }
  .max-h-8mm {
    max-height: 8mm;
  }
  .max-h-10mm {
    max-height: 10mm;
  }
  .max-h-12mm {
    max-height: 12mm;
  }
  .max-h-15mm {
    max-height: 15mm;
  }
  .max-h-16mm {
    max-height: 16mm;
  }
  .max-h-18mm {
    max-height: 18mm;
  }
  .max-h-20mm {
    max-height: 20mm;
  }
  .max-h-24mm {
    max-height: 24mm;
  }
  .max-h-30mm {
    max-height: 30mm;
  }
  .max-h-40mm {
    max-height: 40mm;
  }
  .max-h-50mm {
    max-height: 50mm;
  }
  .max-h-60mm {
    max-height: 60mm;
  }
  .max-h-80mm {
    max-height: 80mm;
  }
  .max-h-100mm {
    max-height: 100mm;
  }

  .size-0mm {
    width: 0;
    height: 0;
  }
  .size-0\.5mm {
    width: 0.5mm;
    height: 0.5mm;
  }
  .size-1mm {
    width: 1mm;
    height: 1mm;
  }
  .size-1\.5mm {
    width: 1.5mm;
    height: 1.5mm;
  }
  .size-2mm {
    width: 2mm;
    height: 2mm;
  }
  .size-3mm {
    width: 3mm;
    height: 3mm;
  }
  .size-4mm {
    width: 4mm;
    height: 4mm;
  }
  .size-5mm {
    width: 5mm;
    height: 5mm;
  }
  .size-6mm {
    width: 6mm;
    height: 6mm;
  }
  .size-8mm {
    width: 8mm;
    height: 8mm;
  }
  .size-10mm {
    width: 10mm;
    height: 10mm;
  }
  .size-12mm {
    width: 12mm;
    height: 12mm;
  }
  .size-15mm {
    width: 15mm;
    height: 15mm;
  }
  .size-16mm {
    width: 16mm;
    height: 16mm;
  }
  .size-18mm {
    width: 18mm;
    height: 18mm;
  }
  .size-20mm {
    width: 20mm;
    height: 20mm;
  }
  .size-24mm {
    width: 24mm;
    height: 24mm;
  }
  .size-30mm {
    width: 30mm;
    height: 30mm;
  }
  .size-40mm {
    width: 40mm;
    height: 40mm;
  }
  .size-50mm {
    width: 50mm;
    height: 50mm;
  }
  .size-60mm {
    width: 60mm;
    height: 60mm;
  }
  .size-80mm {
    width: 80mm;
    height: 80mm;
  }
  .size-100mm {
    width: 100mm;
    height: 100mm;
  }

  .w-full {
    width: 100%;
  }
  .h-full {
    height: 100%;
  }
  .min-w-0 {
    min-width: 0;
  }
  .min-h-0 {
    min-height: 0;
  }
  .w-auto {
    width: auto;
  }
  .h-auto {
    height: auto;
  }

  .print-width-exact {
    width: var(--print-width);
  }
  .print-height-exact {
    height: var(--print-height);
  }
  .print-min-width-exact {
    min-width: var(--print-min-width);
  }
  .print-min-height-exact {
    min-height: var(--print-min-height);
  }
  .print-max-width-exact {
    max-width: var(--print-max-width);
  }
  .print-max-height-exact {
    max-height: var(--print-max-height);
  }
}
}

@layer utilities {
/* ← ./print/custom-utilities/print-spacing.css */
/*
 * Print spacing utilities
 *
 * The public scale is deliberately small: integer millimetres first, with
 * 0.5mm and 1.5mm as the only general precision steps. Page padding is
 * owned by print-xs/sm/md/lg/xl; these utilities are for inner composition.
 */
.print {
  /* p */
  .p-0mm {
    padding: var(--print-space-0);
  }
  .p-0\.5mm {
    padding: var(--print-space-half);
  }
  .p-1mm {
    padding: var(--print-space-1);
  }
  .p-1\.5mm {
    padding: var(--print-space-1-half);
  }
  .p-2mm {
    padding: var(--print-space-2);
  }
  .p-3mm {
    padding: var(--print-space-3);
  }
  .p-4mm {
    padding: var(--print-space-4);
  }
  .p-5mm {
    padding: var(--print-space-5);
  }
  .p-6mm {
    padding: var(--print-space-6);
  }
  .p-8mm {
    padding: var(--print-space-8);
  }
  .p-10mm {
    padding: var(--print-space-10);
  }
  .p-12mm {
    padding: var(--print-space-12);
  }
  .p-15mm {
    padding: var(--print-space-15);
  }
  .p-18mm {
    padding: var(--print-space-18);
  }
  .p-24mm {
    padding: var(--print-space-24);
  }
  .p-30mm {
    padding: var(--print-space-30);
  }

  /* px */
  .px-0mm {
    padding-inline: var(--print-space-0);
  }
  .px-0\.5mm {
    padding-inline: var(--print-space-half);
  }
  .px-1mm {
    padding-inline: var(--print-space-1);
  }
  .px-1\.5mm {
    padding-inline: var(--print-space-1-half);
  }
  .px-2mm {
    padding-inline: var(--print-space-2);
  }
  .px-3mm {
    padding-inline: var(--print-space-3);
  }
  .px-4mm {
    padding-inline: var(--print-space-4);
  }
  .px-5mm {
    padding-inline: var(--print-space-5);
  }
  .px-6mm {
    padding-inline: var(--print-space-6);
  }
  .px-8mm {
    padding-inline: var(--print-space-8);
  }
  .px-10mm {
    padding-inline: var(--print-space-10);
  }
  .px-12mm {
    padding-inline: var(--print-space-12);
  }
  .px-15mm {
    padding-inline: var(--print-space-15);
  }
  .px-18mm {
    padding-inline: var(--print-space-18);
  }
  .px-24mm {
    padding-inline: var(--print-space-24);
  }
  .px-30mm {
    padding-inline: var(--print-space-30);
  }

  /* py */
  .py-0mm {
    padding-block: var(--print-space-0);
  }
  .py-0\.5mm {
    padding-block: var(--print-space-half);
  }
  .py-1mm {
    padding-block: var(--print-space-1);
  }
  .py-1\.5mm {
    padding-block: var(--print-space-1-half);
  }
  .py-2mm {
    padding-block: var(--print-space-2);
  }
  .py-3mm {
    padding-block: var(--print-space-3);
  }
  .py-4mm {
    padding-block: var(--print-space-4);
  }
  .py-5mm {
    padding-block: var(--print-space-5);
  }
  .py-6mm {
    padding-block: var(--print-space-6);
  }
  .py-8mm {
    padding-block: var(--print-space-8);
  }
  .py-10mm {
    padding-block: var(--print-space-10);
  }
  .py-12mm {
    padding-block: var(--print-space-12);
  }
  .py-15mm {
    padding-block: var(--print-space-15);
  }
  .py-18mm {
    padding-block: var(--print-space-18);
  }
  .py-24mm {
    padding-block: var(--print-space-24);
  }
  .py-30mm {
    padding-block: var(--print-space-30);
  }

  /* pt */
  .pt-0mm {
    padding-top: var(--print-space-0);
  }
  .pt-0\.5mm {
    padding-top: var(--print-space-half);
  }
  .pt-1mm {
    padding-top: var(--print-space-1);
  }
  .pt-1\.5mm {
    padding-top: var(--print-space-1-half);
  }
  .pt-2mm {
    padding-top: var(--print-space-2);
  }
  .pt-3mm {
    padding-top: var(--print-space-3);
  }
  .pt-4mm {
    padding-top: var(--print-space-4);
  }
  .pt-5mm {
    padding-top: var(--print-space-5);
  }
  .pt-6mm {
    padding-top: var(--print-space-6);
  }
  .pt-8mm {
    padding-top: var(--print-space-8);
  }
  .pt-10mm {
    padding-top: var(--print-space-10);
  }
  .pt-12mm {
    padding-top: var(--print-space-12);
  }
  .pt-15mm {
    padding-top: var(--print-space-15);
  }
  .pt-18mm {
    padding-top: var(--print-space-18);
  }
  .pt-24mm {
    padding-top: var(--print-space-24);
  }
  .pt-30mm {
    padding-top: var(--print-space-30);
  }

  /* pb */
  .pb-0mm {
    padding-bottom: var(--print-space-0);
  }
  .pb-0\.5mm {
    padding-bottom: var(--print-space-half);
  }
  .pb-1mm {
    padding-bottom: var(--print-space-1);
  }
  .pb-1\.5mm {
    padding-bottom: var(--print-space-1-half);
  }
  .pb-2mm {
    padding-bottom: var(--print-space-2);
  }
  .pb-3mm {
    padding-bottom: var(--print-space-3);
  }
  .pb-4mm {
    padding-bottom: var(--print-space-4);
  }
  .pb-5mm {
    padding-bottom: var(--print-space-5);
  }
  .pb-6mm {
    padding-bottom: var(--print-space-6);
  }
  .pb-8mm {
    padding-bottom: var(--print-space-8);
  }
  .pb-10mm {
    padding-bottom: var(--print-space-10);
  }
  .pb-12mm {
    padding-bottom: var(--print-space-12);
  }
  .pb-15mm {
    padding-bottom: var(--print-space-15);
  }
  .pb-18mm {
    padding-bottom: var(--print-space-18);
  }
  .pb-24mm {
    padding-bottom: var(--print-space-24);
  }
  .pb-30mm {
    padding-bottom: var(--print-space-30);
  }

  /* ps */
  .ps-0mm {
    padding-inline-start: var(--print-space-0);
  }
  .ps-0\.5mm {
    padding-inline-start: var(--print-space-half);
  }
  .ps-1mm {
    padding-inline-start: var(--print-space-1);
  }
  .ps-1\.5mm {
    padding-inline-start: var(--print-space-1-half);
  }
  .ps-2mm {
    padding-inline-start: var(--print-space-2);
  }
  .ps-3mm {
    padding-inline-start: var(--print-space-3);
  }
  .ps-4mm {
    padding-inline-start: var(--print-space-4);
  }
  .ps-5mm {
    padding-inline-start: var(--print-space-5);
  }
  .ps-6mm {
    padding-inline-start: var(--print-space-6);
  }
  .ps-8mm {
    padding-inline-start: var(--print-space-8);
  }
  .ps-10mm {
    padding-inline-start: var(--print-space-10);
  }
  .ps-12mm {
    padding-inline-start: var(--print-space-12);
  }
  .ps-15mm {
    padding-inline-start: var(--print-space-15);
  }
  .ps-18mm {
    padding-inline-start: var(--print-space-18);
  }
  .ps-24mm {
    padding-inline-start: var(--print-space-24);
  }
  .ps-30mm {
    padding-inline-start: var(--print-space-30);
  }

  /* pe */
  .pe-0mm {
    padding-inline-end: var(--print-space-0);
  }
  .pe-0\.5mm {
    padding-inline-end: var(--print-space-half);
  }
  .pe-1mm {
    padding-inline-end: var(--print-space-1);
  }
  .pe-1\.5mm {
    padding-inline-end: var(--print-space-1-half);
  }
  .pe-2mm {
    padding-inline-end: var(--print-space-2);
  }
  .pe-3mm {
    padding-inline-end: var(--print-space-3);
  }
  .pe-4mm {
    padding-inline-end: var(--print-space-4);
  }
  .pe-5mm {
    padding-inline-end: var(--print-space-5);
  }
  .pe-6mm {
    padding-inline-end: var(--print-space-6);
  }
  .pe-8mm {
    padding-inline-end: var(--print-space-8);
  }
  .pe-10mm {
    padding-inline-end: var(--print-space-10);
  }
  .pe-12mm {
    padding-inline-end: var(--print-space-12);
  }
  .pe-15mm {
    padding-inline-end: var(--print-space-15);
  }
  .pe-18mm {
    padding-inline-end: var(--print-space-18);
  }
  .pe-24mm {
    padding-inline-end: var(--print-space-24);
  }
  .pe-30mm {
    padding-inline-end: var(--print-space-30);
  }

  /* m */
  .m-0mm {
    margin: var(--print-space-0);
  }
  .m-0\.5mm {
    margin: var(--print-space-half);
  }
  .m-1mm {
    margin: var(--print-space-1);
  }
  .m-1\.5mm {
    margin: var(--print-space-1-half);
  }
  .m-2mm {
    margin: var(--print-space-2);
  }
  .m-3mm {
    margin: var(--print-space-3);
  }
  .m-4mm {
    margin: var(--print-space-4);
  }
  .m-5mm {
    margin: var(--print-space-5);
  }
  .m-6mm {
    margin: var(--print-space-6);
  }
  .m-8mm {
    margin: var(--print-space-8);
  }
  .m-10mm {
    margin: var(--print-space-10);
  }
  .m-12mm {
    margin: var(--print-space-12);
  }
  .m-15mm {
    margin: var(--print-space-15);
  }
  .m-18mm {
    margin: var(--print-space-18);
  }
  .m-24mm {
    margin: var(--print-space-24);
  }
  .m-30mm {
    margin: var(--print-space-30);
  }

  /* mx */
  .mx-0mm {
    margin-inline: var(--print-space-0);
  }
  .mx-0\.5mm {
    margin-inline: var(--print-space-half);
  }
  .mx-1mm {
    margin-inline: var(--print-space-1);
  }
  .mx-1\.5mm {
    margin-inline: var(--print-space-1-half);
  }
  .mx-2mm {
    margin-inline: var(--print-space-2);
  }
  .mx-3mm {
    margin-inline: var(--print-space-3);
  }
  .mx-4mm {
    margin-inline: var(--print-space-4);
  }
  .mx-5mm {
    margin-inline: var(--print-space-5);
  }
  .mx-6mm {
    margin-inline: var(--print-space-6);
  }
  .mx-8mm {
    margin-inline: var(--print-space-8);
  }
  .mx-10mm {
    margin-inline: var(--print-space-10);
  }
  .mx-12mm {
    margin-inline: var(--print-space-12);
  }
  .mx-15mm {
    margin-inline: var(--print-space-15);
  }
  .mx-18mm {
    margin-inline: var(--print-space-18);
  }
  .mx-24mm {
    margin-inline: var(--print-space-24);
  }
  .mx-30mm {
    margin-inline: var(--print-space-30);
  }

  /* my */
  .my-0mm {
    margin-block: var(--print-space-0);
  }
  .my-0\.5mm {
    margin-block: var(--print-space-half);
  }
  .my-1mm {
    margin-block: var(--print-space-1);
  }
  .my-1\.5mm {
    margin-block: var(--print-space-1-half);
  }
  .my-2mm {
    margin-block: var(--print-space-2);
  }
  .my-3mm {
    margin-block: var(--print-space-3);
  }
  .my-4mm {
    margin-block: var(--print-space-4);
  }
  .my-5mm {
    margin-block: var(--print-space-5);
  }
  .my-6mm {
    margin-block: var(--print-space-6);
  }
  .my-8mm {
    margin-block: var(--print-space-8);
  }
  .my-10mm {
    margin-block: var(--print-space-10);
  }
  .my-12mm {
    margin-block: var(--print-space-12);
  }
  .my-15mm {
    margin-block: var(--print-space-15);
  }
  .my-18mm {
    margin-block: var(--print-space-18);
  }
  .my-24mm {
    margin-block: var(--print-space-24);
  }
  .my-30mm {
    margin-block: var(--print-space-30);
  }

  /* mt */
  .mt-0mm {
    margin-top: var(--print-space-0);
  }
  .mt-0\.5mm {
    margin-top: var(--print-space-half);
  }
  .mt-1mm {
    margin-top: var(--print-space-1);
  }
  .mt-1\.5mm {
    margin-top: var(--print-space-1-half);
  }
  .mt-2mm {
    margin-top: var(--print-space-2);
  }
  .mt-3mm {
    margin-top: var(--print-space-3);
  }
  .mt-4mm {
    margin-top: var(--print-space-4);
  }
  .mt-5mm {
    margin-top: var(--print-space-5);
  }
  .mt-6mm {
    margin-top: var(--print-space-6);
  }
  .mt-8mm {
    margin-top: var(--print-space-8);
  }
  .mt-10mm {
    margin-top: var(--print-space-10);
  }
  .mt-12mm {
    margin-top: var(--print-space-12);
  }
  .mt-15mm {
    margin-top: var(--print-space-15);
  }
  .mt-18mm {
    margin-top: var(--print-space-18);
  }
  .mt-24mm {
    margin-top: var(--print-space-24);
  }
  .mt-30mm {
    margin-top: var(--print-space-30);
  }

  /* mb */
  .mb-0mm {
    margin-bottom: var(--print-space-0);
  }
  .mb-0\.5mm {
    margin-bottom: var(--print-space-half);
  }
  .mb-1mm {
    margin-bottom: var(--print-space-1);
  }
  .mb-1\.5mm {
    margin-bottom: var(--print-space-1-half);
  }
  .mb-2mm {
    margin-bottom: var(--print-space-2);
  }
  .mb-3mm {
    margin-bottom: var(--print-space-3);
  }
  .mb-4mm {
    margin-bottom: var(--print-space-4);
  }
  .mb-5mm {
    margin-bottom: var(--print-space-5);
  }
  .mb-6mm {
    margin-bottom: var(--print-space-6);
  }
  .mb-8mm {
    margin-bottom: var(--print-space-8);
  }
  .mb-10mm {
    margin-bottom: var(--print-space-10);
  }
  .mb-12mm {
    margin-bottom: var(--print-space-12);
  }
  .mb-15mm {
    margin-bottom: var(--print-space-15);
  }
  .mb-18mm {
    margin-bottom: var(--print-space-18);
  }
  .mb-24mm {
    margin-bottom: var(--print-space-24);
  }
  .mb-30mm {
    margin-bottom: var(--print-space-30);
  }

  /* ms */
  .ms-0mm {
    margin-inline-start: var(--print-space-0);
  }
  .ms-0\.5mm {
    margin-inline-start: var(--print-space-half);
  }
  .ms-1mm {
    margin-inline-start: var(--print-space-1);
  }
  .ms-1\.5mm {
    margin-inline-start: var(--print-space-1-half);
  }
  .ms-2mm {
    margin-inline-start: var(--print-space-2);
  }
  .ms-3mm {
    margin-inline-start: var(--print-space-3);
  }
  .ms-4mm {
    margin-inline-start: var(--print-space-4);
  }
  .ms-5mm {
    margin-inline-start: var(--print-space-5);
  }
  .ms-6mm {
    margin-inline-start: var(--print-space-6);
  }
  .ms-8mm {
    margin-inline-start: var(--print-space-8);
  }
  .ms-10mm {
    margin-inline-start: var(--print-space-10);
  }
  .ms-12mm {
    margin-inline-start: var(--print-space-12);
  }
  .ms-15mm {
    margin-inline-start: var(--print-space-15);
  }
  .ms-18mm {
    margin-inline-start: var(--print-space-18);
  }
  .ms-24mm {
    margin-inline-start: var(--print-space-24);
  }
  .ms-30mm {
    margin-inline-start: var(--print-space-30);
  }

  /* me */
  .me-0mm {
    margin-inline-end: var(--print-space-0);
  }
  .me-0\.5mm {
    margin-inline-end: var(--print-space-half);
  }
  .me-1mm {
    margin-inline-end: var(--print-space-1);
  }
  .me-1\.5mm {
    margin-inline-end: var(--print-space-1-half);
  }
  .me-2mm {
    margin-inline-end: var(--print-space-2);
  }
  .me-3mm {
    margin-inline-end: var(--print-space-3);
  }
  .me-4mm {
    margin-inline-end: var(--print-space-4);
  }
  .me-5mm {
    margin-inline-end: var(--print-space-5);
  }
  .me-6mm {
    margin-inline-end: var(--print-space-6);
  }
  .me-8mm {
    margin-inline-end: var(--print-space-8);
  }
  .me-10mm {
    margin-inline-end: var(--print-space-10);
  }
  .me-12mm {
    margin-inline-end: var(--print-space-12);
  }
  .me-15mm {
    margin-inline-end: var(--print-space-15);
  }
  .me-18mm {
    margin-inline-end: var(--print-space-18);
  }
  .me-24mm {
    margin-inline-end: var(--print-space-24);
  }
  .me-30mm {
    margin-inline-end: var(--print-space-30);
  }

  /* gap */
  .gap-0mm {
    gap: var(--print-space-0);
  }
  .gap-0\.5mm {
    gap: var(--print-space-half);
  }
  .gap-1mm {
    gap: var(--print-space-1);
  }
  .gap-1\.5mm {
    gap: var(--print-space-1-half);
  }
  .gap-2mm {
    gap: var(--print-space-2);
  }
  .gap-3mm {
    gap: var(--print-space-3);
  }
  .gap-4mm {
    gap: var(--print-space-4);
  }
  .gap-5mm {
    gap: var(--print-space-5);
  }
  .gap-6mm {
    gap: var(--print-space-6);
  }
  .gap-8mm {
    gap: var(--print-space-8);
  }
  .gap-10mm {
    gap: var(--print-space-10);
  }
  .gap-12mm {
    gap: var(--print-space-12);
  }
  .gap-15mm {
    gap: var(--print-space-15);
  }
  .gap-18mm {
    gap: var(--print-space-18);
  }
  .gap-24mm {
    gap: var(--print-space-24);
  }
  .gap-30mm {
    gap: var(--print-space-30);
  }

  /* gap-x */
  .gap-x-0mm {
    column-gap: var(--print-space-0);
  }
  .gap-x-0\.5mm {
    column-gap: var(--print-space-half);
  }
  .gap-x-1mm {
    column-gap: var(--print-space-1);
  }
  .gap-x-1\.5mm {
    column-gap: var(--print-space-1-half);
  }
  .gap-x-2mm {
    column-gap: var(--print-space-2);
  }
  .gap-x-3mm {
    column-gap: var(--print-space-3);
  }
  .gap-x-4mm {
    column-gap: var(--print-space-4);
  }
  .gap-x-5mm {
    column-gap: var(--print-space-5);
  }
  .gap-x-6mm {
    column-gap: var(--print-space-6);
  }
  .gap-x-8mm {
    column-gap: var(--print-space-8);
  }
  .gap-x-10mm {
    column-gap: var(--print-space-10);
  }
  .gap-x-12mm {
    column-gap: var(--print-space-12);
  }
  .gap-x-15mm {
    column-gap: var(--print-space-15);
  }
  .gap-x-18mm {
    column-gap: var(--print-space-18);
  }
  .gap-x-24mm {
    column-gap: var(--print-space-24);
  }
  .gap-x-30mm {
    column-gap: var(--print-space-30);
  }

  /* gap-y */
  .gap-y-0mm {
    row-gap: var(--print-space-0);
  }
  .gap-y-0\.5mm {
    row-gap: var(--print-space-half);
  }
  .gap-y-1mm {
    row-gap: var(--print-space-1);
  }
  .gap-y-1\.5mm {
    row-gap: var(--print-space-1-half);
  }
  .gap-y-2mm {
    row-gap: var(--print-space-2);
  }
  .gap-y-3mm {
    row-gap: var(--print-space-3);
  }
  .gap-y-4mm {
    row-gap: var(--print-space-4);
  }
  .gap-y-5mm {
    row-gap: var(--print-space-5);
  }
  .gap-y-6mm {
    row-gap: var(--print-space-6);
  }
  .gap-y-8mm {
    row-gap: var(--print-space-8);
  }
  .gap-y-10mm {
    row-gap: var(--print-space-10);
  }
  .gap-y-12mm {
    row-gap: var(--print-space-12);
  }
  .gap-y-15mm {
    row-gap: var(--print-space-15);
  }
  .gap-y-18mm {
    row-gap: var(--print-space-18);
  }
  .gap-y-24mm {
    row-gap: var(--print-space-24);
  }
  .gap-y-30mm {
    row-gap: var(--print-space-30);
  }

  .mx-auto {
    margin-inline: auto;
  }
}

/* Page roots also need preview centering; nested utility selectors do not
 * match when `.print` and `.mx-auto` are on the same element. */
.print.mx-auto {
  margin-inline: auto;
}
}

@layer utilities {
/* ← ./print/custom-utilities/print-typography.css */
/*
 * Print typography utilities
 *
 * Public font sizes and line heights are integer pt values. They are a
 * deliberate print scale, not px values converted to long decimal points.
 * Use the semantic text recipes first and the numeric utilities only when a
 * fixed form has a measured physical requirement.
 */
.print {
  .print-text-caption {
    font-size: var(--print-text-caption-size);
    line-height: var(--print-text-caption-line-height);
  }

  .print-text-compact {
    font-size: var(--print-text-compact-size);
    line-height: var(--print-text-compact-line-height);
  }

  .print-text-small {
    font-size: var(--print-text-small-size);
    line-height: var(--print-text-small-line-height);
  }

  .print-text-body {
    font-size: var(--print-text-body-size);
    line-height: var(--print-text-body-line-height);
  }

  .print-text-lead {
    font-size: var(--print-text-lead-size);
    line-height: var(--print-text-lead-line-height);
  }

  /* Unit-neutral composition used across statements, contracts and forms. */
  .text-start {
    text-align: start;
  }
  .text-center {
    text-align: center;
  }
  .text-end {
    text-align: end;
  }
  .font-medium {
    font-weight: var(--print-font-weight-medium);
  }
  .font-bold {
    font-weight: var(--print-font-weight-bold);
  }

  .font-7pt {
    font-size: var(--print-font-size-7);
  }
  .font-8pt {
    font-size: var(--print-font-size-8);
  }
  .font-9pt {
    font-size: var(--print-font-size-9);
  }
  .font-10pt {
    font-size: var(--print-font-size-10);
  }
  .font-11pt {
    font-size: var(--print-font-size-11);
  }
  .font-12pt {
    font-size: var(--print-font-size-12);
  }
  .font-14pt {
    font-size: var(--print-font-size-14);
  }
  .font-16pt {
    font-size: var(--print-font-size-16);
  }
  .font-18pt {
    font-size: var(--print-font-size-18);
  }
  .font-21pt {
    font-size: var(--print-font-size-21);
  }
  .font-24pt {
    font-size: var(--print-font-size-24);
  }
  .font-27pt {
    font-size: var(--print-font-size-27);
  }
  .font-30pt {
    font-size: var(--print-font-size-30);
  }

  .leading-8pt {
    line-height: var(--print-line-height-8);
  }
  .leading-9pt {
    line-height: var(--print-line-height-9);
  }
  .leading-10pt {
    line-height: var(--print-line-height-10);
  }
  .leading-11pt {
    line-height: var(--print-line-height-11);
  }
  .leading-12pt {
    line-height: var(--print-line-height-12);
  }
  .leading-13pt {
    line-height: var(--print-line-height-13);
  }
  .leading-14pt {
    line-height: var(--print-line-height-14);
  }
  .leading-16pt {
    line-height: var(--print-line-height-16);
  }
  .leading-18pt {
    line-height: var(--print-line-height-18);
  }
  .leading-20pt {
    line-height: var(--print-line-height-20);
  }
  .leading-21pt {
    line-height: var(--print-line-height-21);
  }
  .leading-24pt {
    line-height: var(--print-line-height-24);
  }
  .leading-27pt {
    line-height: var(--print-line-height-27);
  }
  .leading-30pt {
    line-height: var(--print-line-height-30);
  }
  .leading-33pt {
    line-height: var(--print-line-height-33);
  }
  .leading-36pt {
    line-height: var(--print-line-height-36);
  }
}
}

