/* formats.css — shared styling for the printable formats (Formats/*).
   Each format is one A4 sheet: the project's universal header (logos +
   PROJECT/AUTHORITY/... rows) on top, the test format in the middle, and the
   signature footer pinned to the bottom of the page. What you see on screen
   is what prints; fields can be typed in or left blank to fill by hand. */

:root{
  --paper: #efece1;
  --ink: #23324a;
  --ink-soft: #4c5c73;
  --amber: #b5811f;
  --amber-soft: #f1e3c2;
  --card-bg: #f7f5ec;
  --border: #c7bfa4;
  --mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  --sans: -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

*{ box-sizing: border-box; }
body{ margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); line-height: 1.45; -webkit-font-smoothing: antialiased; }
h1,h2,h3{ margin: 0; color: var(--ink); }
.hidden{ display: none !important; }

.sheet-header{ background: var(--ink); color: #f3f1e7; border-bottom: 4px solid var(--amber); }
.header-inner{ max-width: 2400px; margin: 0 auto; padding: 22px 20px 20px; display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.back-link{ display: inline-block; color: var(--amber-soft); font-size: 0.78rem; text-decoration: none; margin-bottom: 8px; }
.title-block h1{ color: #f3f1e7; font-size: 1.55rem; }
.subtitle{ margin: 6px 0 0; color: #b9c2ce; font-size: 0.85rem; }
.project-banner{ font-size: 0.8rem; color: #f3f1e7; display: flex; align-items: center; gap: 10px; }
.project-banner .mts-proj-name{ font-weight: 700; }
.project-banner .mts-proj-switch{ color: var(--amber-soft); text-decoration: none; border: 1px dashed var(--amber); padding: 3px 8px; border-radius: 3px; font-size: 0.74rem; }

main{ max-width: 2400px; margin: 0 auto; padding: 20px; display: flex; flex-direction: column; gap: 18px; }
.panel{ background: var(--card-bg); border: 1px solid var(--border); border-radius: 4px; padding: 18px 20px 20px; }
.panel h2{ font-size: 1.02rem; border-bottom: 2px solid var(--ink); padding-bottom: 8px; margin-bottom: 14px; }
.note{ font-size: 0.8rem; color: var(--ink-soft); }
.actions-row{ display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.btn{ font-family: var(--sans); font-size: 0.86rem; font-weight: 600; padding: 9px 16px; border-radius: 3px; border: 1px solid var(--ink); background: #fffdf7; color: var(--ink); cursor: pointer; text-decoration: none; display: inline-block; }
.btn.primary{ background: var(--ink); color: #f3f1e7; }
.mts-fmt-picker{ display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: 0.82rem; }
.mts-fmt-picker-label{ font-weight: 700; color: var(--ink-soft); }
.mts-fmt-picker-opt{ display: flex; align-items: center; gap: 5px; cursor: pointer; }
.sheet-footer{ max-width: 2400px; margin: 0 auto; padding: 10px 20px 40px; font-size: 0.76rem; color: var(--ink-soft); }

/* ---------- formats list (Formats/index.html) ---------- */
.fmt-list{ display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.fmt-card{ display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; background: #fff; border: 1px solid var(--border); border-radius: 8px; color: var(--ink); text-decoration: none; }
.fmt-card:hover{ border-color: var(--amber); }
.fmt-card-name{ font-weight: 650; }
.fmt-card-sub{ font-size: 0.8rem; color: var(--ink-soft); }
.fmt-card-open{ font-size: 0.8rem; font-weight: 600; margin-top: auto; color: #0f6e56; }

/* ---------- the A4 sheet ---------- */
.fs-scroll{ overflow-x: auto; padding: 4px 0 8px; }
.fs-paper{
  width: 210mm;
  margin: 0 auto;
  padding: 12mm;
  background: #fff;
  box-shadow: 0 2px 14px rgba(0,0,0,0.12);
  border-radius: 2px;
}
.fs-sheet{
  display: flex;
  flex-direction: column;
  min-height: 273mm;
  color: #000;
  font-family: var(--sans);
  font-size: 12.5px;
  line-height: 1.35;
}

/* universal header: logos + project rows */
.fs-logo-row{ display: flex; justify-content: space-between; align-items: center; gap: 8px; border-bottom: 2px solid #000; padding-bottom: 8px; margin-bottom: 8px; }
.fs-logo-cell{ flex: 1; display: flex; align-items: center; justify-content: center; height: 48px; }
.fs-logo-cell img{ max-height: 48px; max-width: 100%; object-fit: contain; }

/* every bordered table on the sheet (selectors are specific enough to beat the theme's table styles) */
.fs-sheet .fs-t{ width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 12.5px; min-width: 0; }
.fs-sheet .fs-t td, .fs-sheet .fs-t th{
  border: 1px solid #000;
  padding: 4px 7px;
  font-family: var(--sans);
  color: #000;
  background: none;
  text-align: left;
  vertical-align: middle;
}
.fs-sheet .fs-t th{ font-weight: 500; text-align: center; text-transform: none; letter-spacing: 0; font-size: 12.5px; }
.fs-sheet .fs-t tr:hover{ background: none; }
/* the theme drops the last row's bottom border in normal tables; keep it on the sheet */
.fs-sheet .fs-t tbody tr:last-child td{ border-bottom: 1px solid #000; }
.fs-sheet .fs-project td:first-child{ width: 35%; font-weight: 700; }
/* the format body is one table on a grid of 6 equal columns */
.fs-sheet .fs-body col{ width: 16.666%; }
.fs-sheet .fs-gap{ height: 10px; }

/* "label : value" cells */
.fs-sheet .fs-kv{ display: flex; align-items: center; gap: 6px; }
.fs-sheet .fs-k{ flex: none; width: 46%; }
.fs-sheet .fs-colon{ flex: none; }
.fs-sheet .fs-t td.fs-title{ text-align: center; font-weight: 700; font-size: 15px; line-height: 1.5; }
.fs-sheet .fs-t td.fs-num{ text-align: center; }
.fs-sheet .fs-row-tall td{ height: 50px; }
.fs-sheet .fs-t td.fs-avg{ text-align: center; font-weight: 600; }
.fs-sheet .fs-avg-label{ display: block; font-size: 10.5px; font-weight: 500; }
.fs-sheet .fs-avg-value{ display: block; font-size: 14px; margin-top: 2px; }
.fs-sheet .fs-note-row td{ background: #efefef; font-size: 11px; line-height: 1.5; }
.fs-sheet .fs-note-row strong{ font-size: 12.5px; }
.fs-sheet .fs-remarks td{ height: 50px; vertical-align: top; }

/* typing areas inside the sheet */
.fs-sheet .fs-in{
  width: 100%;
  min-width: 0;
  border: none;
  border-bottom: 1px dashed #b8c4c5;
  border-radius: 0;
  background: #f6fbf9;
  padding: 3px 4px;
  font: inherit;
  color: #000;
  box-shadow: none;
}
.fs-sheet .fs-in.fs-center{ text-align: center; }
.fs-sheet .fs-in:focus{ outline: none; background: #e9f7f1; border-bottom-color: #1d9e75; box-shadow: none; }
.fs-sheet textarea.fs-in{ resize: vertical; min-height: 34px; display: block; }

/* small helpers used inside format tables */
.fs-sheet .fs-t td.fs-center{ text-align: center; }
.fs-sheet .fs-bold{ font-weight: 700; }
.fs-sheet .fs-t td.fs-calc{ text-align: center; }
.fs-sheet .fs-calc-inline{ font-weight: 600; }
.fs-sheet .fs-k.fs-k-auto{ width: auto; }
/* auto-width labels must beat each format's fixed label widths (e.g. .fs-mpd .fs-k) */
.fs-sheet .fs-t .fs-k.fs-k-auto{ width: auto; }
.fs-sheet .fs-t td.fs-title-row{ font-size: 15px; line-height: 1.3; padding: 3px 7px; }
.fs-sheet .fs-title-sub{ font-size: 12.5px; }

/* a format that continues in a second table (e.g. its signature footer)
   overlaps the line above by 1px, so both tables draw that line in the same
   place and every vertical line meets it */
.fs-sheet .fs-t + .fs-t{ margin-top: -1px; }
.fs-sheet .fs-sig-table td{ width: 33.333%; }

/* compact sheets (lots of rows): tighter cells so everything fits one A4 page */
.fs-sheet.fs-compact .fs-t td, .fs-sheet.fs-compact .fs-t th{ padding: 1px 6px; font-size: 11.5px; line-height: 1.25; }
.fs-sheet.fs-compact .fs-in{ padding: 1px 3px; line-height: 1.25; }
.fs-sheet.fs-compact textarea.fs-in{ min-height: 20px; }
.fs-sheet.fs-compact .fs-project td{ padding: 2px 6px; }
.fs-sheet.fs-compact .fs-remarks td{ height: 36px; }
.fs-sheet.fs-compact .fs-sig td{ height: 70px; padding: 4px 6px; }
.fs-sheet.fs-compact .fs-t td.fs-title-row{ padding: 2px 6px; }

/* Atterberg Limits grid: label | LL 1-4 | PL 1-2 */
.fs-sheet .fs-atb col.c-label{ width: 36%; }
.fs-sheet .fs-atb col.c-ll{ width: 11%; }
.fs-sheet .fs-atb col.c-pl{ width: 10%; }
.fs-sheet .fs-atb .fs-k{ width: 52%; }
.fs-sheet .fs-results td{ padding-top: 3px; padding-bottom: 3px; }
.fs-sheet .fs-calc-note td{ font-size: 10.5px; line-height: 1.45; }

/* flow-curve graph */
.fs-sheet .fs-chart-row > td{ padding: 2px 4px; }
.fs-sheet .fs-chart svg{ display: block; width: 100%; height: auto; border: none; border-radius: 0; background: none; }
.fs-chart .g-minor{ stroke: #000; stroke-width: 0.45; }
.fs-chart .g-major{ stroke: #000; stroke-width: 0.9; }
.fs-chart .g-frame{ fill: none; stroke: #000; stroke-width: 1; }
.fs-chart .t-tick{ font: 10px var(--sans); fill: #000; }
.fs-chart .t-axis{ font: 700 11px var(--sans); fill: #000; }
.fs-chart .c-line{ stroke: #000; stroke-width: 1.6; }
.fs-chart .c-guide{ stroke: #000; stroke-width: 1; stroke-dasharray: 4 3; }
.fs-chart .c-pt{ fill: #000; }
.fs-chart .t-ll{ font: 700 10.5px var(--sans); fill: #000; }

/* Modified Proctor grid: description | determinations 1-6 */
.fs-sheet .fs-mpd col.c-label{ width: 30%; }
.fs-sheet .fs-mpd col{ width: 11.666%; }
.fs-sheet .fs-mpd .fs-k{ width: 38%; }
.fs-sheet .fs-mpd sub{ font-size: 0.72em; }
.fs-sheet .fs-t td.fs-chart-cell{ padding: 4px; vertical-align: top; }
.fs-sheet .fs-t td.fs-side{ vertical-align: top; padding: 6px; }
/* small bordered tables inside the side panel */
.fs-sheet .fs-inner{ width: 100%; border-collapse: collapse; table-layout: fixed; margin-bottom: 8px; }
.fs-sheet .fs-t .fs-inner td{ border: 1px solid #000; padding: 2px 5px; font-size: 10.5px; height: auto; }
.fs-sheet .fs-inner-limits td:first-child{ width: 38%; }
.fs-sheet .fs-t .fs-inner td.fs-side-result{ line-height: 1.6; }
.fs-sheet .fs-side-kn{ font-size: 0.9em; }
.fs-sheet .fs-side-facts{ margin-top: 12px; font-size: 11px; line-height: 1.8; }
/* mould row: short number boxes so the row stays on one line */
.fs-sheet .fs-mpd .fs-in.fs-short{ flex: 1 1 40px; width: auto; min-width: 40px; }
.fs-sheet .fs-mpd .fs-k-auto{ white-space: nowrap; }
.fs-sheet.fs-compact .fs-mpd tr.fs-mould-row td{ font-size: 10.5px; }
.fs-sheet .fs-mpd tr.fs-mould-row .fs-kv{ gap: 4px; }
.fs-chart .c-curve{ fill: none; stroke: #000; stroke-width: 1.6; }
.fs-mpd .fs-chart .g-minor{ stroke-width: 0.25; }
.fs-mpd .fs-chart .g-major{ stroke-width: 0.6; }

/* tight sheets (very long formats like CBR): smaller header and text */
.fs-sheet.fs-tight .fs-logo-cell{ height: 34px; }
.fs-sheet.fs-tight .fs-logo-cell img{ max-height: 34px; }
.fs-sheet.fs-tight .fs-logo-row{ padding-bottom: 5px; margin-bottom: 5px; }
.fs-sheet.fs-tight .fs-t td, .fs-sheet.fs-tight .fs-t th{ padding: 0 5px; font-size: 10.5px; line-height: 1.3; }
.fs-sheet.fs-tight .fs-project td{ padding: 0 6px; font-size: 10px; }
.fs-sheet.fs-tight .fs-in{ padding: 0 3px; line-height: 1.2; }
.fs-sheet.fs-tight .fs-t td.fs-title{ font-size: 14px; }
.fs-sheet.fs-tight .fs-gap{ height: 6px; }
.fs-sheet.fs-tight .fs-remarks td{ height: 24px; }
.fs-sheet.fs-tight .fs-sig td{ height: 48px; }

.fs-sheet .fs-t td.fs-heading{ font-weight: 700; padding-top: 2px; padding-bottom: 2px; }
.fs-sheet .fs-t td.fs-small{ font-size: 9.5px; line-height: 1.15; }
.fs-sheet .fs-kv.fs-kv-center{ justify-content: center; }
.fs-sheet .fs-kv.fs-kv-center .fs-in{ width: auto; flex: 1 1 30px; min-width: 30px; max-width: 80px; }

/* CBR grids */
.fs-sheet .fs-cbr-info .fs-k{ width: 44%; }
.fs-sheet .fs-cbr-obs col.c-sl, .fs-sheet .fs-cbr-pr col.c-sl{ width: 7%; }
.fs-sheet .fs-cbr-obs col.c-desc{ width: 39%; }
.fs-sheet .fs-cbr-obs col{ width: 9%; }
.fs-sheet .fs-cbr-pr col.c-pen{ width: 12%; }
.fs-sheet .fs-cbr-pr col{ width: 9%; }
.fs-sheet .fs-cbr-obs sub, .fs-sheet .fs-cbr-pr sub{ font-size: 0.72em; }

/* Grain size analysis grid */
.fs-sheet .fs-gsa col.c1{ width: 18%; }
.fs-sheet .fs-gsa col.c2{ width: 18.5%; }
.fs-sheet .fs-gsa col.c3{ width: 20%; }
.fs-sheet .fs-gsa col.c4{ width: 16.5%; }
.fs-sheet .fs-gsa col.c5{ width: 27%; }
.fs-sheet .fs-gsa .fs-k{ width: 42%; }
.fs-sheet .fs-gsa .fs-k.fs-k-class{ width: 18%; }
.fs-sheet .fs-gsa-row td{ height: 36px; }
.fs-sheet .fs-gsa-head td{ height: 42px; }
.fs-sheet .fs-gsa-class td{ height: 30px; }
.fs-sheet.fs-compact .fs-gsa .fs-remarks td{ height: 56px; }
.fs-sheet .fs-gsa tbody:first-child tr:not(:first-child):not(.fs-gsa-head) td{ height: 26px; }
.fs-sheet .fs-t td.fs-gsa-sub{ padding-top: 5px; padding-bottom: 5px; }

/* Field dry density grid: description | tests 1-6 */
.fs-sheet .fs-fdd col.c-label{ width: 46%; }
.fs-sheet .fs-fdd col{ width: 9%; }
.fs-sheet .fs-fdd .fs-k{ width: 44%; }
.fs-sheet .fs-fdd sub{ font-size: 0.72em; }
.fs-sheet .fs-fdd-row td{ height: 38px; }
.fs-sheet .fs-fdd-head td{ height: 26px; }
.fs-sheet .fs-t td.fs-fdd-req{ padding-top: 4px; padding-bottom: 4px; }
.fs-sheet.fs-compact .fs-fdd .fs-remarks td{ height: 50px; }

/* Specific gravity & water absorption grid (pycnometer and wire basket) */
.fs-sheet .fs-sgp col.c-sl{ width: 7%; }
.fs-sheet .fs-sgp col.c-det{ width: 36%; }
.fs-sheet .fs-sgp col.c-sym{ width: 15%; }
.fs-sheet .fs-sgp col.c-t{ width: 10.5%; }
.fs-sheet .fs-sgp col.c-avg{ width: 10.5%; }
.fs-sheet .fs-sgp .fs-k{ width: 34%; }
.fs-sheet .fs-sgp-row td{ height: 44px; }
.fs-sheet .fs-sgp-head td{ height: 30px; }
.fs-sheet .fs-t td.fs-sym{ font-size: 10.5px; white-space: nowrap; }
.fs-sheet.fs-compact .fs-sgp .fs-remarks td{ height: 56px; }

/* Wire basket grid (lab's own layout): description | test 1-3 */
.fs-sheet .fs-sgw col.c-desc{ width: 56%; }
.fs-sheet .fs-sgw col.c-t{ width: 14.666%; }
.fs-sheet .fs-sgw .fs-k{ width: 38%; }
.fs-sheet .fs-sgw sub{ font-size: 0.72em; }
.fs-sheet .fs-sgw-row td{ height: 44px; }
.fs-sheet .fs-t td.fs-sgw-spec{ padding-top: 5px; padding-bottom: 5px; }
.fs-sheet.fs-compact .fs-sgw .fs-remarks td{ height: 60px; }

/* Trial mix of concrete grid (the 9 batch-correction columns) */
.fs-sheet .fs-tmc col.c1{ width: 13%; }
.fs-sheet .fs-tmc col.c2{ width: 12.5%; }
.fs-sheet .fs-tmc col.c3{ width: 11%; }
.fs-sheet .fs-tmc col.c4{ width: 10%; }
.fs-sheet .fs-tmc col.c5{ width: 10%; }
.fs-sheet .fs-tmc col.c6{ width: 12.5%; }
.fs-sheet .fs-tmc col.c7{ width: 11.5%; }
.fs-sheet .fs-tmc col.c8{ width: 10%; }
.fs-sheet .fs-tmc col.c9{ width: 9.5%; }
.fs-sheet .fs-tmc .fs-k{ width: 44%; }
.fs-sheet .fs-t td.fs-sec{ padding-top: 2px; padding-bottom: 2px; }
.fs-sheet .fs-tmc-head td, .fs-sheet .fs-tmc-head2 td{ font-size: 9.5px; line-height: 1.2; height: 30px; }
.fs-sheet .fs-tmc-row td{ height: 24px; }
.fs-sheet .fs-tmc-slump td{ height: 32px; }
.fs-sheet .fs-tmc-cube td{ height: 24px; }
.fs-sheet .fs-tmc-obs .fs-in{ flex: 1 1 0; min-width: 0; }
.fs-sheet .fs-tmc-obs .fs-k-auto{ white-space: nowrap; margin-left: 6px; }

/* Compaction test for bituminous layers grid (A-J) */
.fs-sheet .fs-cbl col.cA{ width: 5.5%; }
.fs-sheet .fs-cbl col.cB{ width: 16%; }
.fs-sheet .fs-cbl col.cC{ width: 10.5%; }
.fs-sheet .fs-cbl col.cD{ width: 9%; }
.fs-sheet .fs-cbl col.cE{ width: 9%; }
.fs-sheet .fs-cbl col.cF{ width: 9%; }
.fs-sheet .fs-cbl col.cG{ width: 9%; }
.fs-sheet .fs-cbl col.cH{ width: 11%; }
.fs-sheet .fs-cbl col.cI{ width: 9.5%; }
.fs-sheet .fs-cbl col.cJ{ width: 11.5%; }
.fs-sheet .fs-cbl .fs-k{ width: 40%; }
.fs-sheet .fs-cbl .fs-k.fs-k-left{ width: 92px; white-space: nowrap; }
.fs-sheet .fs-cbl-head td{ font-size: 10px; line-height: 1.2; }
.fs-sheet .fs-cbl-letters td{ font-size: 10px; }
.fs-sheet .fs-cbl-row td{ height: 22px; }
.fs-sheet .fs-t td.fs-cbl-spec{ padding-top: 4px; padding-bottom: 4px; }

/* landscape formats (wide tables): A4 landscape page, printable 273 x 186 mm */
.fs-paper.fs-paper-land{ width: 297mm; }
.fs-sheet.fs-landscape{ min-height: 186mm; }

/* PQC core crushing strength grid (14 columns) */
.fs-sheet .fs-pqc col.c-no{ width: 4.5%; }
.fs-sheet .fs-pqc col.c-loc{ width: 9%; }
.fs-sheet .fs-pqc col.c-n{ width: 5.8%; }
.fs-sheet .fs-pqc col.c-f{ width: 8.3%; }
.fs-sheet .fs-pqc col.c-eq{ width: 9.5%; }
.fs-sheet .fs-pqc col.c-req{ width: 10%; }
.fs-sheet .fs-pqc col.c-rem{ width: 6.5%; }
.fs-sheet .fs-t td.fs-pqc-title{ font-size: 13px; padding-top: 3px; padding-bottom: 3px; }
.fs-sheet .fs-pqc-head td{ font-size: 9px; line-height: 1.15; text-align: center; height: 52px; padding: 1px 3px; overflow-wrap: anywhere; }
.fs-sheet .fs-pqc-row td{ height: 19px; }
.fs-sheet .fs-t td.fs-pqc-req{ vertical-align: middle; text-align: center; }
.fs-sheet .fs-pqc-req-val{ margin-top: 8px; font-weight: 600; font-size: 11px; }

/* Specific gravity of fine aggregates: description | units | test 1 | test 2 | average */
.fs-sheet .fs-sgf col.c-desc{ width: 54%; }
.fs-sheet .fs-sgf col.c-unit{ width: 10%; }
.fs-sheet .fs-sgf col.c-t{ width: 12%; }
.fs-sheet .fs-sgf col.c-avg{ width: 12%; }
.fs-sheet .fs-sgf .fs-k{ width: 40%; }
.fs-sheet .fs-sgf-row td{ height: 52px; }
.fs-sheet .fs-sgf-head td{ height: 28px; }
.fs-sheet.fs-compact .fs-sgf .fs-remarks td{ height: 70px; }

/* Surface irregularity check */
.fs-sheet .fs-sic col.c-sr{ width: 5%; }
.fs-sheet .fs-sic col.c-ch{ width: 24%; }
.fs-sheet .fs-sic col.c-v{ width: 17.75%; }
.fs-sheet .fs-sic .fs-k{ width: 36%; }
.fs-sheet .fs-sic-row td{ height: 21px; }
.fs-sheet .fs-sic-crit col.c-loc{ width: 16%; }
.fs-sheet .fs-sic-crit col.c-n{ width: 9.5%; }
.fs-sheet .fs-sic-crit col.c-txt{ width: 37%; }
.fs-sheet .fs-sic-crit col.c-mm{ width: 9%; }
.fs-sheet .fs-in.fs-over{ background: #fdecec; }

/* Gradation chart of pond ash */
.fs-sheet .fs-pond col.c-label{ width: 22%; }
.fs-sheet .fs-pond col{ width: 13%; }
.fs-sheet .fs-pond .fs-k{ width: 34%; }
.fs-sheet .fs-pond-sieve td{ height: 26px; }
.fs-sheet .fs-pond-chart-title{ text-align: center; font-weight: 700; font-size: 14px; margin: 6px 0 4px; }
.fs-sheet .fs-pond-cu td{ padding-top: 8px; padding-bottom: 8px; }
.fs-sheet .fs-pond-cu-line{ display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.fs-sheet .fs-pond-cu-big{ font-size: 15px; }
.fs-sheet .fs-pond-cu-val{ min-width: 40px; text-align: center; }
.fs-sheet .fs-frac{ display: inline-flex; flex-direction: column; align-items: center; min-width: 60px; font-size: 11px; }
.fs-sheet .fs-frac > span:first-child{ border-bottom: 1px solid #000; padding: 0 6px 1px; }
.fs-sheet .fs-frac > span:last-child{ padding: 1px 6px 0; }

/* Site instruction */
.fs-sheet .fs-si col.c-l{ width: 35%; }
.fs-sheet .fs-si col.c-r{ width: 65%; }
.fs-sheet .fs-t td.fs-si-title{ text-align: center; padding: 4px 6px 6px; }
.fs-sheet .fs-si-head{ font-weight: 700; font-size: 15px; }
.fs-sheet .fs-si-split{ display: flex; justify-content: center; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 3px; font-size: 11.5px; }
.fs-sheet .fs-tick{ display: inline-flex; align-items: center; gap: 6px; font-weight: 400; color: #000; cursor: pointer; }
.fs-sheet .fs-tick input[type="checkbox"].fs-in{ width: 14px; height: 14px; min-width: 14px; padding: 0; margin: 0; border: 1px solid #000; background: #fff; accent-color: #0f6e56; }
.fs-sheet .fs-si-row td{ height: 28px; }
.fs-sheet .fs-t td.fs-si-label{ vertical-align: bottom; }
.fs-sheet .fs-si-box td{ vertical-align: top; }
.fs-sheet .fs-si-box textarea.fs-in{ resize: none; border-bottom: none; margin-top: 3px; }
.fs-sheet .fs-si-instr textarea.fs-in{ height: 72mm; }
.fs-sheet .fs-si-reply textarea.fs-in{ height: 30mm; }
.fs-sheet .fs-si-comment textarea.fs-in{ height: 24mm; }
.fs-sheet .fs-si-sign{ text-align: right; font-weight: 700; font-size: 11px; margin-top: 2px; }
.fs-sheet .fs-si-sig td{ height: 80px; vertical-align: top; line-height: 1.7; }
.fs-sheet .fs-si-sig .fs-in{ border-bottom: none; }
@media print{
  .fs-sheet .fs-tick input[type="checkbox"].fs-in{ -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Flyash fineness: description | test 1-3 */
.fs-sheet .fs-fly col.c-desc{ width: 45%; }
.fs-sheet .fs-fly col.c-t{ width: 18.333%; }
.fs-sheet .fs-fly .fs-k{ width: 44%; white-space: nowrap; }
.fs-sheet .fs-fly .fs-k.fs-k-rfi{ width: 25%; }
.fs-sheet .fs-fly-head td{ height: 30px; }
.fs-sheet .fs-fly-row td{ height: 56px; }
.fs-sheet .fs-fly-box-row td{ height: 70px; }
.fs-sheet .fs-fly-box{ display: flex; gap: 12px; align-items: center; width: 60%; margin: 6px 0 6px 30px; border: 1px solid #000; padding: 5px 8px; }
.fs-sheet.fs-compact .fs-fly .fs-remarks td{ height: 140px; }

/* Longitudinal & transverse surface unevenness (landscape, 15 columns) */
.fs-sheet .fs-unv col.c-ch{ width: 6.2%; }
.fs-sheet .fs-unv col.c-v{ width: 8.93%; }
.fs-sheet .fs-unv-head td{ font-size: 9.5px; line-height: 1.15; text-align: center; padding: 1px 3px; }
.fs-sheet .fs-unv-row td{ height: 18px; }
.fs-sheet .fs-t td.fs-unv-ref{ vertical-align: top; padding: 5px 8px; border-bottom: 1px solid #000; }
.fs-sheet .fs-unv-inner{ margin-bottom: 6px; }
.fs-sheet .fs-t .fs-unv-inner td{ font-size: 9.5px; line-height: 1.2; padding: 1px 4px; }

/* Roughness test by bump integrator (landscape, 10 columns) */
.fs-sheet .fs-bump col.c-ch{ width: 9.5%; }
.fs-sheet .fs-bump col.c-side{ width: 6.5%; }
.fs-sheet .fs-bump col.c-n{ width: 10.5%; }
.fs-sheet .fs-bump col.c-avg{ width: 10%; }
.fs-sheet .fs-bump col.c-cond{ width: 10.5%; }
.fs-sheet .fs-bump col.c-rem{ width: 10.5%; }
.fs-sheet .fs-bump-head td{ font-size: 10px; line-height: 1.2; text-align: center; font-weight: 700; }
.fs-sheet .fs-bump-row td{ height: 20px; }
.fs-sheet .fs-t td.fs-bump-merge{ vertical-align: middle; text-align: center; padding: 3px; }
.fs-sheet .fs-bump-area{ height: 100%; min-height: 120px; resize: none; border-bottom: none; }

/* Sieve analysis for CTB */
.fs-sheet .fs-ctb col.c1{ width: 20%; }
.fs-sheet .fs-ctb col.c2{ width: 16%; }
.fs-sheet .fs-ctb col.c3{ width: 16%; }
.fs-sheet .fs-ctb col.c4{ width: 15%; }
.fs-sheet .fs-ctb col.c5{ width: 13%; }
.fs-sheet .fs-ctb col.c6{ width: 20%; }
.fs-sheet .fs-ctb .fs-k{ width: 40%; }
.fs-sheet .fs-ctb-head td{ font-size: 10.5px; line-height: 1.2; height: 42px; }
.fs-sheet .fs-ctb-row td{ height: 46px; }
.fs-sheet.fs-compact .fs-ctb .fs-remarks td{ height: 100px; }
@media screen{ .fs-sheet .fs-t td.fs-out{ background: #fdecec; color: #a32d2d; } }

/* Summary of test results for RCC hume pipes */
.fs-sheet .fs-hp col.c-sl{ width: 12%; }
.fs-sheet .fs-hp col.c-desc{ width: 28%; }
.fs-sheet .fs-hp col.c-spec{ width: 26%; }
.fs-sheet .fs-hp col.c-obs{ width: 17%; }
.fs-sheet .fs-hp col.c-rem{ width: 17%; }
.fs-sheet .fs-hp-info td{ height: 28px; }
.fs-sheet .fs-hp-head td{ height: 40px; }
.fs-sheet .fs-hp-row td{ height: 36px; }
.fs-sheet .fs-hp sup{ font-size: 0.7em; }
.fs-sheet.fs-compact .fs-hp .fs-remarks td{ height: 90px; }

/* Ultimate load test (hume pipes) */
.fs-sheet .fs-ult col.c-l{ width: 55%; }
.fs-sheet .fs-ult col.c-r{ width: 45%; }
.fs-sheet .fs-ult .fs-k{ width: 30%; }
.fs-sheet .fs-ult-row td{ height: 40px; }
.fs-sheet .fs-ult-gap td{ height: 26px; }
.fs-sheet .fs-ult-req{ margin-top: 6px; }
.fs-sheet .fs-ult .fs-in.fs-ult-short{ flex: 0 0 120px; width: 120px; }
.fs-sheet.fs-compact .fs-ult .fs-remarks td{ height: 190px; }

/* Permeability test (hume pipes) */
.fs-sheet .fs-perm col.c-time{ width: 19%; }
.fs-sheet .fs-perm col.c-read{ width: 17.5%; }
.fs-sheet .fs-perm col.c-cm{ width: 13.5%; }
.fs-sheet .fs-perm .fs-k{ width: 22%; }
.fs-sheet .fs-perm sup{ font-size: 0.7em; }
.fs-sheet .fs-perm-info td{ height: 24px; }
.fs-sheet .fs-t td.fs-perm-sec{ padding-top: 4px; padding-bottom: 2px; }
.fs-sheet .fs-perm-head td{ height: 22px; }
.fs-sheet .fs-perm-row td{ height: 22px; }
.fs-sheet .fs-t td.fs-perm-crit{ padding-top: 4px; padding-bottom: 4px; line-height: 1.5; }
.fs-sheet .fs-perm-note{ padding-left: 40%; }
.fs-sheet .fs-perm-result{ margin-top: 4px; }

/* Three edge bearing test: the small applied-load table */
.fs-sheet .fs-t td.fs-teb-tbl-row, .fs-sheet .fs-teb-tbl-row > td{ padding: 10px 6px; }
.fs-sheet .fs-teb-inner{ width: 60%; margin: 0 auto; }
.fs-sheet .fs-t .fs-teb-inner td{ height: 30px; font-size: 11.5px; }
.fs-sheet .fs-teb-inner td:first-child{ width: 18%; }

/* Physical measurements of RCC hume pipes */
.fs-sheet .fs-phm col.c-sl{ width: 7%; }
.fs-sheet .fs-phm col.c-ref{ width: 20%; }
.fs-sheet .fs-phm col.c-m{ width: 13.5%; }
.fs-sheet .fs-phm col.c-dev{ width: 16%; }
.fs-sheet .fs-phm col.c-rem{ width: 16.5%; }
.fs-sheet .fs-phm .fs-k{ width: 22%; }
.fs-sheet .fs-phm-info td{ height: 22px; }
.fs-sheet .fs-phm-head td{ font-size: 10.5px; font-weight: 700; text-align: center; line-height: 1.2; height: 44px; }
.fs-sheet .fs-phm-row td{ height: 28px; }
.fs-sheet .fs-t td.fs-phm-tol, .fs-sheet .fs-phm-tol > td{ padding: 6px 8px; }
.fs-sheet .fs-phm-tol-head{ font-weight: 700; font-size: 13px; margin-bottom: 3px; }
.fs-sheet .fs-phm-tol-list{ border-collapse: collapse; }
.fs-sheet .fs-t .fs-phm-tol-list td{ border: none; padding: 1px 4px; height: auto; font-size: 12px; vertical-align: top; }
.fs-sheet .fs-t .fs-phm-tol-list tr:last-child td{ border-bottom: none; }
.fs-sheet .fs-phm-tol-list td:first-child{ width: 210px; }

/* signature row: last row of the format table, directly under Remarks */
.fs-sheet .fs-sig td{ height: 92px; vertical-align: bottom; padding: 6px 7px; }
.fs-sheet .fs-sig .fs-kv{ margin-top: 2px; }
/* no dashed underline on the Name / Date boxes in the signature area */
.fs-sheet .fs-sig .fs-in{ border-bottom: none; }
.fs-sheet .fs-sig .fs-k{ width: auto; }
.fs-sheet .fs-sig-role{ font-weight: 700; margin-top: 2px; }
.fs-sheet .fs-sig-role small{ font-size: 0.75em; }

@page{ size: A4; margin: 12mm; }
@media print{
  body{ background: #fff !important; padding: 0 !important; }
  .mts-topbar, .sheet-header, .no-print, .sheet-footer{ display: none !important; }
  main{ padding: 0 !important; max-width: none !important; }
  .fs-scroll{ overflow: visible; padding: 0; }
  .fs-paper{ width: auto; margin: 0; padding: 0; box-shadow: none; }
  .fs-sheet, .fs-sheet.fs-landscape{ min-height: 0; }
  .fs-paper.fs-paper-land{ width: auto; }
  /* Chrome's print renderer can drop a collapsed table's outer right/bottom
     line; an inset shadow on those edge cells always draws it */
  .fs-sheet .fs-t tr > :last-child{ box-shadow: inset -1px 0 0 #000; }
  .fs-sheet .fs-t tr:last-child > *{ box-shadow: inset 0 -1px 0 #000; }
  .fs-sheet .fs-t tr:last-child > :last-child{ box-shadow: inset -1px -1px 0 #000; }
  .fs-sheet .fs-in{ background: none !important; border: none !important; padding: 0 !important; }
  .fs-sheet textarea.fs-in{ resize: none; }
  .fs-sheet .fs-note-row td{ -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Natural Moisture Content: the Flyash layout with six rows */
.fs-sheet .fs-nmc .fs-fly-row td{ height: 44px; }

/* Calibration of Sand Pouring Cylinder */
.fs-sheet .fs-cal col.c-desc{ width: 56%; }
.fs-sheet .fs-cal col.c-t{ width: 11%; }
.fs-sheet .fs-cal .fs-k{ width: 46%; white-space: nowrap; }
.fs-sheet .fs-cal sub{ font-size: 0.72em; }
.fs-sheet .fs-cal-head td{ height: 28px; }
.fs-sheet .fs-cal-row td{ height: 36px; }
.fs-sheet .fs-cal-note td{ font-size: 11.5px; height: 34px; }
.fs-sheet .fs-cal-res-row > td{ padding: 10px 7% 12px; }
.fs-sheet .fs-cal-res{ width: 100%; }
.fs-sheet .fs-cal-res td{ height: 30px; }
.fs-sheet .fs-cal-res col.c-rl{ width: 60%; }
.fs-sheet .fs-cal-res col.c-eq{ width: 8%; }
.fs-sheet .fs-cal-res col.c-rv{ width: 18%; }
.fs-sheet .fs-cal-res col.c-ru{ width: 14%; }
.fs-sheet.fs-compact .fs-cal .fs-remarks td{ height: 70px; }
/* Calibration of Rapid Moisture Meter */
.fs-sheet .fs-rmm col.c-sl{ width: 7%; }
.fs-sheet .fs-rmm col.c-rmm{ width: 12%; }
.fs-sheet .fs-rmm col.c-cont{ width: 11%; }
.fs-sheet .fs-rmm col.c-w{ width: 10%; }
.fs-sheet .fs-rmm col.c-w2{ width: 14%; }
.fs-sheet .fs-rmm col.c-mc{ width: 10%; }
.fs-sheet .fs-rmm col.c-rem{ width: 26%; }
.fs-sheet .fs-rmm .fs-k{ width: 38%; white-space: nowrap; }
.fs-sheet .fs-rmm-info td{ height: 30px; }
.fs-sheet .fs-rmm-head td{ height: 64px; line-height: 1.3; }
.fs-sheet .fs-rmm-row td{ height: 27px; }
.fs-sheet.fs-compact .fs-rmm .fs-remarks td{ height: 60px; }
/* Field Density Test by surface moisture density gauge */
.fs-sheet .fs-ndg col.c-label{ width: 34%; }
.fs-sheet .fs-ndg col{ width: 11%; }
.fs-sheet .fs-ndg .fs-k{ width: 22%; white-space: nowrap; }
.fs-sheet .fs-ndg-head td{ height: 28px; }
.fs-sheet .fs-ndg-row td{ height: 30px; }
.fs-sheet .fs-ndg-result td{ height: 40px; background: #dff6f8; }
.fs-sheet .fs-ndg-result .fs-kv{ gap: 10px; }
/* Level Sheet */
.fs-sheet .fs-lvl col.c-ch{ width: 9%; }
.fs-sheet .fs-lvl col.c-desc{ width: 11.5%; }
.fs-sheet .fs-lvl col.c-pt{ width: 6.5%; }
.fs-sheet .fs-lvl col.c-rem{ width: 21%; }
.fs-sheet.fs-compact .fs-lvl td{ padding: 1px 3px; font-size: 10.5px; }
.fs-sheet .fs-lvl .fs-in{ padding: 1px 2px; }
.fs-sheet .fs-lvl-info td{ height: 24px; }
.fs-sheet .fs-lvl-head td{ height: 26px; }
.fs-sheet .fs-lvl-row td{ height: 21px; }
.fs-sheet .fs-lvl-first td{ border-top: 1.6px solid #000; }
.fs-sheet .fs-lvl-ch textarea.fs-in{ min-height: 0; resize: none; }
/* SG & WA of fine aggregate: wire-basket layout, 9 rows */
.fs-sheet .fs-sgfa .fs-k.fs-k-pu{ width: 21%; }
.fs-sheet .fs-sgfa .fs-sgw-row td{ height: 38px; }

/* Combined Flakiness and Elongation Index */
.fs-sheet .fs-fei col.c-pass{ width: 18%; }
.fs-sheet .fs-fei col.c-ret{ width: 12%; }
.fs-sheet .fs-fei col.c-w{ width: 13%; }
.fs-sheet .fs-fei col.c-spec{ width: 18%; }
.fs-sheet .fs-fei .fs-k{ width: 42%; white-space: nowrap; }
.fs-sheet .fs-fei .fs-k.fs-k-pu{ width: 12.6%; }
.fs-sheet .fs-fei-head td{ height: 30px; line-height: 1.3; }
.fs-sheet .fs-fei-row td{ height: 32px; }
.fs-sheet .fs-fei-spec{ vertical-align: top; }
.fs-sheet .fs-fei-spec textarea.fs-in{ height: 100%; min-height: 300px; resize: none; }
.fs-sheet .fs-fei-res td{ height: 34px; }
.fs-sheet .fs-fei-comb td{ height: 38px; font-size: 12.5px; }
.fs-sheet .fs-t td.fs-calc-left{ text-align: left; padding-left: 14px; }
/* Aggregate Impact Value: fine-aggregate layout with a note and spec rows */
.fs-sheet .fs-aiv .fs-sgw-row td{ height: 46px; }
.fs-sheet .fs-aiv-head td{ height: 40px; }
.fs-sheet .fs-aiv-note td{ height: 30px; }
.fs-sheet .fs-aiv-w4{ font-size: 10.5px; }
.fs-sheet .fs-aiv-spec td{ line-height: 1.6; padding-top: 6px; padding-bottom: 6px; vertical-align: top; }.fs-sheet .fs-aiv .fs-sgw-row td{ height: 56px; }
.fs-sheet.fs-compact .fs-aiv .fs-remarks td{ height: 110px; }

/* Los Angeles Abrasion */
.fs-sheet .fs-laa col.c-s{ width: 11%; }
.fs-sheet .fs-laa col.c-g{ width: 14.5%; }
.fs-sheet .fs-laa col.c-sp{ width: 20%; }
.fs-sheet .fs-laa .fs-k{ width: 46%; white-space: nowrap; }
.fs-sheet .fs-laa .fs-k.fs-k-pu{ width: 15.2%; }
.fs-sheet .fs-laa-head td{ height: 28px; }
.fs-sheet .fs-laa-grade{ gap: 10px; }
.fs-sheet .fs-laa-grade input[type="checkbox"].fs-in{ width: 22px; min-width: 22px; height: 14px; border-radius: 0; }
.fs-sheet .fs-laa-frow td{ height: 23px; }
.fs-sheet .fs-laa-dhead td{ height: 30px; }
.fs-sheet .fs-laa-row td{ height: 40px; }
.fs-sheet .fs-laa-spec td{ height: 32px; }
/* Ten Percent Fines Value */
.fs-sheet .fs-tfv col.c-sn{ width: 9.5%; }
.fs-sheet .fs-tfv col.c-w1{ width: 23.5%; }
.fs-sheet .fs-tfv col.c-w{ width: 17.5%; }
.fs-sheet .fs-tfv col.c-f{ width: 14.5%; }
.fs-sheet .fs-tfv .fs-k{ width: 30%; white-space: nowrap; }
.fs-sheet .fs-tfv td[colspan="2"] .fs-k{ width: 46%; }
.fs-sheet .fs-tfv-head td{ height: 90px; line-height: 1.35; }
.fs-sheet .fs-tfv-row td{ height: 50px; }
.fs-sheet .fs-tfv-note td{ height: 36px; }
.fs-sheet.fs-compact .fs-tfv .fs-remarks td{ height: 110px; }
/* Silt & Clay Content of Fine Aggregate */
.fs-sheet .fs-scc col.c-sn{ width: 12%; }
.fs-sheet .fs-scc col.c-det{ width: 44%; }
.fs-sheet .fs-scc col.c-t{ width: 11%; }
.fs-sheet .fs-scc col.c-avg{ width: 22%; }
.fs-sheet .fs-scc .fs-k{ width: 40%; white-space: nowrap; }
.fs-sheet .fs-scc .fs-k.fs-k-wide{ width: 22.4%; }
.fs-sheet .fs-scc-sec td{ height: 32px; vertical-align: bottom; }
.fs-sheet .fs-scc-head td{ height: 34px; }
.fs-sheet .fs-scc-row td{ height: 46px; }
.fs-sheet .fs-scc-spec td{ height: 36px; }
.fs-sheet.fs-compact .fs-scc .fs-remarks td{ height: 70px; }
/* Fineness of Cement */
.fs-sheet .fs-cfn col.c-tr{ width: 6.5%; }
.fs-sheet .fs-cfn col.c-sv{ width: 10.5%; }
.fs-sheet .fs-cfn col.c-w1{ width: 14%; }
.fs-sheet .fs-cfn col.c-w2{ width: 18%; }
.fs-sheet .fs-cfn col.c-fn{ width: 13%; }
.fs-sheet .fs-cfn col.c-lim{ width: 38%; }
.fs-sheet .fs-cfn .fs-k{ width: 52%; white-space: nowrap; }
.fs-sheet .fs-cfn-sub td{ height: 40px; vertical-align: bottom; font-size: 12.5px; }
.fs-sheet .fs-cfn-head td{ height: 56px; line-height: 1.35; }
.fs-sheet .fs-cfn-row td{ height: 40px; }
.fs-sheet .fs-cfn-lim{ font-size: 12.5px; }
.fs-sheet .fs-t td.fs-cfn-avg-label{ text-align: right; padding-right: 10px; }
.fs-sheet.fs-compact .fs-cfn .fs-remarks td{ height: 130px; }.fs-sheet .fs-cfn-row td{ height: 56px; }
.fs-sheet.fs-compact .fs-cfn .fs-remarks td{ height: 190px; }

/* Standard Consistency of Cement */
.fs-sheet .fs-csc col.c-tr{ width: 5.5%; }
.fs-sheet .fs-csc col.c-a{ width: 10.5%; }
.fs-sheet .fs-csc col.c-b{ width: 13.8%; }
.fs-sheet .fs-csc col.c-pen{ width: 23.2%; }
.fs-sheet .fs-csc col.c-yn{ width: 16.5%; }
.fs-sheet .fs-csc col.c-p{ width: 13.2%; }
.fs-sheet .fs-csc col.c-rem{ width: 17.3%; }
.fs-sheet .fs-csc .fs-k{ width: 52%; white-space: nowrap; }
.fs-sheet .fs-csc-gap td{ height: 24px; }
.fs-sheet .fs-csc-head td{ height: 70px; line-height: 1.35; }
.fs-sheet .fs-csc-row td{ height: 44px; }
.fs-sheet.fs-compact .fs-csc .fs-remarks td{ height: 190px; }.fs-sheet .fs-csc td[colspan="3"] .fs-k{ width: 64%; }
.fs-sheet .fs-csc td[colspan="4"] .fs-k{ width: 40%; }

/* Initial & Final Setting Time of Cement */
.fs-sheet .fs-cst col.c-sn{ width: 5%; }
.fs-sheet .fs-cst col.c-wc{ width: 10%; }
.fs-sheet .fs-cst col.c-ww{ width: 13%; }
.fs-sheet .fs-cst col.c-t4{ width: 9.5%; }
.fs-sheet .fs-cst col.c-t5{ width: 13.5%; }
.fs-sheet .fs-cst col.c-t6{ width: 15%; }
.fs-sheet .fs-cst col.c-st{ width: 8%; }
.fs-sheet .fs-cst col.c-rem{ width: 18%; }
.fs-sheet .fs-cst td[colspan="4"] .fs-k{ width: 50%; white-space: nowrap; }
.fs-sheet .fs-cst td[colspan="5"] .fs-k{ width: 32%; white-space: nowrap; }
.fs-sheet .fs-cst-head td{ height: 110px; line-height: 1.35; }
.fs-sheet .fs-cst-num td{ height: 24px; }
.fs-sheet .fs-cst-row td{ height: 56px; }
.fs-sheet.fs-compact .fs-cst .fs-remarks td{ height: 220px; }
/* Gradation for BC: GSB/CTB sieve sheet with up to 11 sieves */
.fs-sheet .fs-bcg .fs-ctb-row td{ height: 36px; }
.fs-sheet.fs-compact .fs-bcg .fs-remarks td{ height: 80px; }

/* Gradation for BC: 10 pt text, and the signature block pinned with its
   bottom edge 15 mm above the bottom of the A4 page. Top margin 12 mm +
   sheet 270 mm + 15 mm below = 297 mm, on screen and in print (whose
   @page margin is 12 mm, so the 270 mm sheet ends 15 mm from the edge). */
.fs-paper.fs-paper-bcg{ padding-bottom: 15mm; }
.fs-sheet.fs-bcg-sheet{ height: 270mm; min-height: 0; }
.fs-sheet.fs-bcg-sheet .fs-sig-table{ margin-top: auto; }
.fs-sheet.fs-bcg-sheet .fs-t td:not(.fs-title-row), .fs-sheet.fs-bcg-sheet .fs-t th{ font-size: 10pt; }
@media print{
  .fs-sheet.fs-bcg-sheet{ height: 270mm; }
}.fs-sheet.fs-bcg-sheet .fs-t td.fs-title-row{ font-size: 15px; }
.fs-sheet.fs-bcg-sheet .fs-title-sub{ font-size: 10pt; }
/* signature area: no box or lines around it (print also drops the edge shadows) */
.fs-sheet.fs-bcg-sheet .fs-sig-table td,
.fs-sheet.fs-bcg-sheet .fs-sig-table tbody tr:last-child td{ border: none; box-shadow: none; }
@media print{
  .fs-sheet.fs-bcg-sheet .fs-sig-table tr > *{ box-shadow: none; }
}.fs-sheet.fs-bcg-sheet .fs-sig-role{ white-space: nowrap; }

/* Soil summary registers (OGL, Borrow Areas): A4 landscape, grouped header */
.fs-sheet .fs-sr td{ text-align: center; }
.fs-sheet.fs-compact .fs-sr .fs-sr-head td{ font-size: 10.5px; line-height: 1.2; font-weight: 700; padding: 2px 2px; }
.fs-sheet .fs-sr .fs-sr-row td{ height: 22px; }
.fs-sheet.fs-compact .fs-sr td{ padding-left: 2px; padding-right: 2px; }
.fs-sheet.fs-compact .fs-sr .fs-remarks td{ height: 30px; text-align: left; }.fs-sheet .fs-sr .fs-sr-vert{ writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; display: inline-block; }

/* Sieve Analysis of Coarse Aggregate for Concrete: 3 spec columns */
.fs-sheet .fs-cac col.c-sv{ width: 13%; }
.fs-sheet .fs-cac col.c-w{ width: 12.5%; }
.fs-sheet .fs-cac col.c-sp{ width: 12.333%; }
.fs-sheet .fs-cac .fs-k{ width: 34%; }
/* Combined Gradation of Coarse Aggregate: 20 + 10 mm fractions combined */
.fs-sheet .fs-cgca col.c-sv{ width: 15%; }
.fs-sheet .fs-cgca col.c-f{ width: 12%; }
.fs-sheet .fs-cgca col.c-p{ width: 11%; }
.fs-sheet .fs-cgca col.c-c{ width: 13%; }
.fs-sheet .fs-cgca col.c-sp{ width: 26%; }
.fs-sheet .fs-cgca .fs-k{ width: 46%; }
.fs-sheet .fs-cgca .fs-cgca-prop{ gap: 2px; }
.fs-sheet .fs-cgca .fs-ctb-row td{ height: 56px; }
/* Sieve Analysis of Fine Aggregate for Concrete: Zone I-IV columns + FM */
.fs-sheet .fs-fac col.c-sv{ width: 13%; }
.fs-sheet .fs-fac col.c-w{ width: 11.5%; }
.fs-sheet .fs-fac col.c-z{ width: 10.75%; }
.fs-sheet .fs-fac .fs-k{ width: 34%; }
.fs-sheet .fs-fac .fs-fac-spec td, .fs-sheet .fs-fac .fs-fac-fm td{ height: 34px; }
.fs-sheet .fs-fac .fs-fac-fm .fs-kv{ gap: 10px; }
/* Gradation of All-in Aggregates: label widths for its own header fields */
.fs-sheet .fs-aia .fs-k{ width: 46%; white-space: nowrap; }
.fs-sheet .fs-aia td[colspan="6"] .fs-k{ width: 23%; }
.fs-sheet .fs-msa .fs-msa-silt td{ height: 34px; }
.fs-sheet .fs-msa .fs-msa-silt .fs-kv{ gap: 10px; }
.fs-sheet .fs-msa .fs-msa-silt .fs-in{ max-width: 120px; }
/* out-of-limit flag on typed boxes and inline results too (screen only, never printed) */
@media screen{ .fs-sheet .fs-in.fs-out, .fs-sheet span.fs-out{ background: #fdecec; color: #a32d2d; } }

/* Soundness Test of Cement (Le Chatelier) */
.fs-sheet .fs-csd col.c-sl{ width: 10%; }
.fs-sheet .fs-csd col.c-a{ width: 17%; }
.fs-sheet .fs-csd col.c-s{ width: 18%; }
.fs-sheet .fs-csd col.c-lim{ width: 17%; }
.fs-sheet .fs-csd col.c-rem{ width: 21%; }
.fs-sheet .fs-csd td[colspan="3"] .fs-k{ width: 52%; white-space: nowrap; }
.fs-sheet .fs-csd td[colspan="6"] .fs-k{ width: 22.6%; }
.fs-sheet .fs-csd-head td{ height: 50px; line-height: 1.3; }
.fs-sheet .fs-csd-row td{ height: 40px; }
.fs-sheet.fs-compact .fs-csd .fs-remarks td{ height: 150px; }
/* Specific Gravity of Cement */
.fs-sheet .fs-csg col.c-sl{ width: 8%; }
.fs-sheet .fs-csg col.c-desc{ width: 40%; }
.fs-sheet .fs-csg col.c-sym{ width: 18%; }
.fs-sheet .fs-csg col.c-unit{ width: 8%; }
.fs-sheet .fs-csg col.c-tr{ width: 13%; }
.fs-sheet .fs-csg td[colspan="3"] .fs-k{ width: 44%; white-space: nowrap; }
.fs-sheet .fs-csg td[colspan="6"] .fs-k{ width: 16%; }
.fs-sheet .fs-csg-head td{ height: 40px; }
.fs-sheet .fs-csg-row td{ height: 34px; }
.fs-sheet .fs-csg-tall td{ height: 54px; }
.fs-sheet .fs-csg-x{ float: right; font-size: 10.5px; text-align: center; margin-right: 4px; }
.fs-sheet .fs-frac{ display: inline-flex; flex-direction: column; align-items: center; line-height: 1.5; }
.fs-sheet .fs-frac > span:first-child{ border-bottom: 1px solid #000; padding: 0 4px; }
.fs-sheet.fs-compact .fs-csg .fs-remarks td{ height: 110px; }
/* Compressive Strength of Cement (mortar cubes) */
.fs-sheet .fs-ccs col.c-sl{ width: 10%; }
.fs-sheet .fs-ccs col.c-wt{ width: 17%; }
.fs-sheet .fs-ccs col.c-ld{ width: 23%; }
.fs-sheet .fs-ccs col.c-st{ width: 23%; }
.fs-sheet .fs-ccs col.c-av{ width: 27%; }
.fs-sheet .fs-ccs td[colspan="3"] .fs-k{ width: 42%; white-space: nowrap; }
.fs-sheet .fs-ccs td[colspan="2"] .fs-k{ width: 46%; white-space: nowrap; }
.fs-sheet .fs-ccs td[colspan="5"] .fs-k{ width: 20%; }
.fs-sheet .fs-ccs-head td{ height: 44px; }
.fs-sheet .fs-ccs-row td{ height: 32px; }
.fs-sheet .fs-ccs-spec td{ height: 28px; }
.fs-sheet.fs-compact .fs-ccs .fs-remarks td{ height: 110px; }
/* Compressive Strength of Concrete (cubes, sets of three) */
.fs-sheet .fs-cnc col.c-sl{ width: 6%; }
.fs-sheet .fs-cnc col.c-no{ width: 7%; }
.fs-sheet .fs-cnc col.c-wt{ width: 9%; }
.fs-sheet .fs-cnc col.c-size{ width: 15%; }
.fs-sheet .fs-cnc col.c-vol{ width: 10%; }
.fs-sheet .fs-cnc col.c-area{ width: 11%; }
.fs-sheet .fs-cnc col.c-ld{ width: 11%; }
.fs-sheet .fs-cnc col.c-st{ width: 13%; }
.fs-sheet .fs-cnc col.c-av{ width: 18%; }
.fs-sheet .fs-cnc td[colspan="6"] .fs-k{ width: 34%; white-space: nowrap; }
.fs-sheet .fs-cnc td[colspan="3"] .fs-k{ width: 52%; white-space: nowrap; }
.fs-sheet .fs-cnc-head td{ height: 54px; line-height: 1.25; }
.fs-sheet .fs-cnc-row td{ height: 25px; }
.fs-sheet .fs-cnc-avg td{ height: 28px; }
.fs-sheet .fs-cnc-avg .fs-kv{ gap: 8px; }
.fs-sheet.fs-compact .fs-cnc .fs-remarks td{ height: 50px; }.fs-sheet .fs-cnc .fs-cnc-avg td .fs-k{ width: auto; white-space: nowrap; }

/* Concrete Delivery and Pouring Card: two parts, each with its signatures */
.fs-sheet .fs-cpc col.c-desc{ width: 35%; }
.fs-sheet .fs-cpc col.c-m{ width: 13%; }
.fs-sheet .fs-cpc .fs-k{ width: 58%; white-space: nowrap; }
.fs-sheet .fs-cpc .fs-cpc-part{ height: 30px; font-size: 13px; }
.fs-sheet .fs-cpc .fs-cpc-kv td{ height: 30px; }
.fs-sheet .fs-cpc .fs-cpc-head td{ height: 34px; }
.fs-sheet .fs-cpc .fs-cpc-mat td{ height: 34px; }
.fs-sheet .fs-cpc .fs-cpc-gap td{ height: 10px; }
.fs-sheet .fs-cpc .fs-calc-inline{ padding-left: 4px; }
.fs-sheet .fs-cpc-sig .fs-sig td{ height: 58px; }
.fs-sheet .fs-cpc-pour{ margin-top: 6px; }.fs-sheet .fs-cpc .fs-cpc-kv td:nth-child(2) .fs-k{ width: 70%; }

/* Flexural Strength of Concrete (landscape, 13 columns) */
.fs-sheet .fs-flx col.c-ref{ width: 7%; }
.fs-sheet .fs-flx col.c-date{ width: 8%; }
.fs-sheet .fs-flx col.c-n{ width: 6.5%; }
.fs-sheet .fs-flx col.c-a{ width: 11%; }
.fs-sheet .fs-flx col.c-st{ width: 8%; }
.fs-sheet .fs-flx col.c-rem{ width: 12.5%; }
.fs-sheet .fs-flx td[colspan="4"] .fs-k{ width: 42%; white-space: nowrap; }
.fs-sheet .fs-flx td[colspan="5"] .fs-k{ width: 40%; white-space: nowrap; }
.fs-sheet .fs-flx-head td{ font-size: 10px; line-height: 1.2; text-align: center; height: 56px; padding: 1px 3px; }
.fs-sheet .fs-flx-row td{ height: 21px; }
.fs-sheet .fs-flx-avg td{ height: 24px; }
.fs-sheet .fs-t td.fs-flx-req{ vertical-align: middle; }
/* Prestressing Report (landscape, 16 columns) */
.fs-sheet .fs-psr col.c-sl{ width: 4%; }
.fs-sheet .fs-psr col.c-n{ width: 6.2%; }
.fs-sheet .fs-psr col.c-s{ width: 4.8%; }
.fs-sheet .fs-psr col.c-rem{ width: 6.8%; }
.fs-sheet .fs-psr td[colspan="5"] .fs-k{ width: 62%; white-space: nowrap; }
.fs-sheet .fs-t td.fs-psr-dwg{ vertical-align: top; }
.fs-sheet .fs-psr-dwg textarea{ width: 100%; resize: none; }
.fs-sheet .fs-psr-info td{ height: 18px; padding-top: 0; padding-bottom: 0; }
.fs-sheet .fs-psr-head td{ font-size: 10px; line-height: 1.2; text-align: center; padding: 1px 2px; }
.fs-sheet .fs-psr-num td{ text-align: center; height: 14px; padding-top: 0; padding-bottom: 0; }
.fs-sheet .fs-psr-row td{ height: 18px; }
.fs-sheet .fs-psr-sum td{ height: 18px; }
.fs-sheet .fs-t td.fs-psr-lbl{ text-align: right; }
.fs-sheet .fs-t td.fs-psr-val{ text-align: left; padding-left: 8px; }
/* Grouting Record (7 columns) */
.fs-sheet .fs-grt col.c-lbl{ width: 20%; }
.fs-sheet .fs-grt col.c-sub{ width: 13%; }
.fs-sheet .fs-grt col.c-v{ width: 12.5%; }
.fs-sheet .fs-grt col.c-lbl2{ width: 14%; }
.fs-sheet .fs-grt col.c-y{ width: 12%; }
.fs-sheet .fs-grt col.c-n{ width: 16%; }
.fs-sheet .fs-grt td{ height: 28px; }
.fs-sheet .fs-grt .fs-tick{ justify-content: center; }
.fs-sheet .fs-grt .fs-kv .fs-colon:first-child{ margin-right: 4px; }
.fs-sheet .fs-grt td.fs-grt-note textarea{ width: 100%; resize: none; }
.fs-sheet .fs-grt-rem td{ height: 44px; vertical-align: top; }
/* Sand Patch Test (10 columns) */
.fs-sheet .fs-spt col.c-sl{ width: 6%; }
.fs-sheet .fs-spt col.c-loc{ width: 15%; }
.fs-sheet .fs-spt col.c-t{ width: 7.4%; }
.fs-sheet .fs-spt col.c-av{ width: 10%; }
.fs-sheet .fs-spt col.c-td{ width: 11%; }
.fs-sheet .fs-spt col.c-spec{ width: 21%; }
.fs-sheet .fs-spt td[colspan="5"] .fs-k{ width: 44%; white-space: nowrap; }
.fs-sheet .fs-spt-head td{ text-align: center; font-weight: 700; line-height: 1.2; }
.fs-sheet .fs-spt-row td{ height: 30px; }
.fs-sheet .fs-t td.fs-spt-spec{ vertical-align: middle; text-align: justify; line-height: 1.35; padding: 3px 4px; }

/* Bitumen Penetration Test (6 columns) */
.fs-sheet .fs-pen col.c-a{ width: 12%; }
.fs-sheet .fs-pen col.c-b{ width: 21%; }
.fs-sheet .fs-pen col.c-c{ width: 17%; }
.fs-sheet .fs-pen col.c-d{ width: 18%; }
.fs-sheet .fs-pen col.c-e{ width: 15%; }
.fs-sheet .fs-pen col.c-f{ width: 17%; }
.fs-sheet .fs-pen td[colspan="2"] .fs-k{ width: 52%; white-space: nowrap; }
.fs-sheet .fs-pen tr:nth-child(n+2):nth-child(-n+5) td[colspan="2"]:nth-child(2) .fs-k{ width: 64%; }
.fs-sheet .fs-pen tr td[colspan="2"]:first-child .fs-k{ width: 56%; }
.fs-sheet .fs-pen-head td{ text-align: center; line-height: 1.2; height: 30px; }
.fs-sheet .fs-pen-row td{ height: 40px; }
.fs-sheet .fs-pen-spec td{ height: 32px; }
/* Bitumen Softening Point Test (6 columns) */
.fs-sheet .fs-sop col.c-a{ width: 12%; }
.fs-sheet .fs-sop col.c-b{ width: 19%; }
.fs-sheet .fs-sop td[colspan="4"] .fs-k{ width: 38%; white-space: nowrap; }
.fs-sheet .fs-sop td[colspan="2"] .fs-k{ width: 48%; white-space: nowrap; }
.fs-sheet .fs-sop-head td{ text-align: center; height: 26px; }
.fs-sheet .fs-sop-pour td{ height: 30px; }
.fs-sheet .fs-sop-row td{ height: 24px; }
.fs-sheet .fs-sop-res td{ height: 32px; }
/* Bitumen Ductility Test (5 columns) */
.fs-sheet .fs-duc col.c-p{ width: 24%; }
.fs-sheet .fs-duc col.c-b{ width: 16%; }
.fs-sheet .fs-duc col.c-av{ width: 28%; }
.fs-sheet .fs-duc td[colspan="3"] .fs-k{ width: 36%; white-space: nowrap; }
.fs-sheet .fs-duc td[colspan="2"] .fs-k{ width: 62%; }
.fs-sheet .fs-duc .fs-k-wrap{ white-space: normal; line-height: 1.2; }
.fs-sheet .fs-duc tr:nth-child(n+2):nth-child(-n+6) td{ height: 40px; }
.fs-sheet .fs-duc-head td{ text-align: center; height: 32px; }
.fs-sheet .fs-duc-row td{ height: 46px; }
.fs-sheet .fs-duc-spec td{ height: 36px; }
/* Flash & Fire Point Test (6 columns) */
.fs-sheet .fs-ffp col.c-p{ width: 20%; }
.fs-sheet .fs-ffp col.c-t{ width: 11%; }
.fs-sheet .fs-ffp col.c-m{ width: 22%; }
.fs-sheet .fs-ffp col.c-s{ width: 25%; }
.fs-sheet .fs-ffp td[colspan="3"] .fs-k{ width: 44%; white-space: nowrap; }
.fs-sheet .fs-ffp td[colspan="6"] .fs-k{ width: 30%; white-space: nowrap; }
.fs-sheet .fs-ffp tr:nth-child(n+2):nth-child(-n+5) td{ height: 30px; }
.fs-sheet .fs-ffp-obs td{ height: 32px; }
.fs-sheet .fs-ffp-head td{ text-align: center; height: 30px; }
.fs-sheet .fs-ffp-row td{ height: 50px; }
/* Specific Gravity of Bitumen (5 columns) */
.fs-sheet .fs-bsg col.c-a{ width: 30%; }
.fs-sheet .fs-bsg col.c-b{ width: 30%; }
.fs-sheet .fs-bsg col.c-n{ width: 13.33%; }
.fs-sheet .fs-bsg td[colspan="2"] .fs-k{ width: 34%; white-space: nowrap; }
.fs-sheet .fs-bsg td[colspan="3"] .fs-k{ width: 50%; white-space: nowrap; }
.fs-sheet .fs-bsg tr:nth-child(n+2):nth-child(-n+5) td{ height: 30px; }
.fs-sheet .fs-bsg-gap td{ height: 12px; padding: 0; }
.fs-sheet .fs-bsg-row td{ height: 36px; }
/* Viscosity of Bitumen (5 columns) */
.fs-sheet .fs-vis col.c-d{ width: 32%; }
.fs-sheet .fs-vis col.c-n{ width: 17%; }
.fs-sheet .fs-vis td[colspan="3"] .fs-k{ width: 42%; white-space: nowrap; }
.fs-sheet .fs-vis td[colspan="2"] .fs-k{ width: 56%; white-space: nowrap; }
.fs-sheet .fs-vis td[colspan="5"] .fs-k{ width: 25%; white-space: nowrap; }
.fs-sheet .fs-vis .fs-vis-fixed{ white-space: nowrap; margin-right: 6px; }
.fs-sheet .fs-vis tr:nth-child(n+2):nth-child(-n+10) td{ height: 25px; }
.fs-sheet .fs-vis-obs td{ height: 30px; letter-spacing: 0.5px; }
.fs-sheet .fs-vis-head td{ text-align: center; height: 22px; }
.fs-sheet .fs-vis-row td{ height: 44px; }
.fs-sheet .fs-vis-res td{ height: 34px; }
.fs-sheet .fs-vis td[colspan="5"] .fs-k.fs-k-auto{ width: auto; }
.fs-sheet .fs-vis-res .fs-calc-inline{ min-width: 70px; text-align: center; }
.fs-sheet .fs-vis-spec td{ height: 40px; }
/* Elastic Recovery (5 columns) */
.fs-sheet .fs-elr col.c-sl{ width: 7%; }
.fs-sheet .fs-elr col.c-d{ width: 39%; }
.fs-sheet .fs-elr col.c-t{ width: 18%; }
.fs-sheet .fs-elr td[colspan="2"] .fs-k{ width: 46%; white-space: nowrap; }
.fs-sheet .fs-elr td[colspan="3"] .fs-k{ width: 46%; white-space: nowrap; }
.fs-sheet .fs-elr td[colspan="5"] .fs-k{ width: 28%; white-space: nowrap; }
.fs-sheet .fs-elr tr:nth-child(n+2):nth-child(-n+5) td{ height: 30px; }
.fs-sheet .fs-elr-obs td{ height: 30px; }
.fs-sheet .fs-elr-head td{ height: 30px; }
.fs-sheet .fs-elr-row td{ height: 40px; }
.fs-sheet .fs-elr-spec td{ height: 32px; }
/* Separation test (6 columns) */
.fs-sheet .fs-sep col.c-t1{ width: 21%; }
.fs-sheet .fs-sep col.c-b{ width: 15%; }
.fs-sheet .fs-sep col.c-t2{ width: 13%; }
.fs-sheet .fs-sep col.c-d{ width: 21%; }
.fs-sheet .fs-sep td[colspan="3"] .fs-k{ width: 50%; white-space: nowrap; }
.fs-sheet .fs-sep .fs-k.fs-sep-rate{ width: 25.2%; white-space: nowrap; }
.fs-sheet .fs-sep-head td, .fs-sheet .fs-sep-ohead td{ text-align: center; height: 20px; }
.fs-sheet .fs-sep-row td{ height: 20px; }
.fs-sheet .fs-sep-obs td{ height: 22px; }
.fs-sheet .fs-sep-drop td{ height: 46px; line-height: 1.2; }
.fs-sheet .fs-sep-avg td{ height: 26px; }
/* Emulsion residue by evaporation (6 columns) */
.fs-sheet .fs-res col.c-sl{ width: 7%; }
.fs-sheet .fs-res col.c-d{ width: 41%; }
.fs-sheet .fs-res col.c-s{ width: 11%; }
.fs-sheet .fs-res col.c-r{ width: 19%; }
.fs-sheet .fs-res td[colspan="2"] .fs-k{ width: 42%; white-space: nowrap; }
.fs-sheet .fs-res td[colspan="4"] .fs-k{ width: 42%; white-space: nowrap; }
.fs-sheet .fs-res tr:nth-child(n+2):nth-child(-n+5) td{ height: 32px; }
.fs-sheet .fs-res-info td{ height: 32px; }
.fs-sheet .fs-res-head td{ text-align: center; font-weight: 700; height: 34px; }
.fs-sheet .fs-res-row td{ height: 44px; }
.fs-sheet .fs-t td.fs-res-avg-lbl{ text-align: right; }
.fs-sheet .fs-res-avg td{ height: 38px; }
.fs-sheet .fs-res-row textarea{ width: 100%; resize: none; }
/* Rate of Application (10 columns) */
.fs-sheet .fs-roa col.c-sl{ width: 5%; }
.fs-sheet .fs-roa col.c-loc{ width: 13%; }
.fs-sheet .fs-roa col.c-n{ width: 9%; }
.fs-sheet .fs-roa col.c-av{ width: 9%; }
.fs-sheet .fs-roa col.c-spec{ width: 19%; }
.fs-sheet .fs-roa td[colspan="6"] .fs-k, .fs-sheet .fs-roa td[colspan="10"] .fs-k{ width: 130px; white-space: nowrap; }
.fs-sheet .fs-roa td[colspan="4"] .fs-k{ width: 60px; }
.fs-sheet .fs-roa-head td{ text-align: center; font-weight: 700; font-size: 10px; line-height: 1.2; height: 48px; padding: 1px 2px; }
.fs-sheet .fs-roa-row td{ height: 27px; }
.fs-sheet .fs-t td.fs-roa-spec{ vertical-align: middle; text-align: center; font-size: 10px; line-height: 1.4; padding: 3px; }
/* Bitumen Extraction and Gradation (10 columns) */
.fs-sheet .fs-bex col.c-sv{ width: 9%; }
.fs-sheet .fs-bex col.c-n{ width: 9.5%; }
.fs-sheet .fs-bex col.c-lim{ width: 15%; }
.fs-sheet .fs-bex td[colspan="5"] .fs-k{ width: 40%; white-space: nowrap; }
.fs-sheet .fs-bex td[colspan="10"] .fs-k{ width: 20%; white-space: nowrap; }
.fs-sheet .fs-bex-sec td, .fs-sheet .fs-t td.fs-bex-sec{ height: 24px; }
.fs-sheet .fs-bex-head td{ text-align: center; font-size: 10px; line-height: 1.2; padding: 1px 2px; }
.fs-sheet .fs-bex-row td{ height: 25px; }
/* Marshall Stability Test Result (landscape, 17 columns) */
.fs-sheet .fs-msr col.c-a{ width: 6.4%; }
.fs-sheet .fs-msr col.c-n{ width: 5.85%; }
.fs-sheet .fs-msr td[colspan="11"] .fs-k{ width: 42%; white-space: nowrap; }
.fs-sheet .fs-msr td[colspan="6"] .fs-k{ width: 52%; white-space: nowrap; }
.fs-sheet .fs-msr-head td{ text-align: center; font-size: 10px; line-height: 1.15; padding: 1px 2px; }
.fs-sheet .fs-msr-letters td{ text-align: center; height: 15px; padding-top: 0; padding-bottom: 0; }
.fs-sheet .fs-msr-row td{ height: 22px; }
.fs-sheet .fs-msr-avg td{ height: 22px; }
.fs-sheet .fs-t td.fs-msr-avg-lbl{ text-align: right; }
/* Maximum Specific Gravity of Bituminous Mixtures (5 columns) */
.fs-sheet .fs-gmm col.c-a{ width: 30%; }
.fs-sheet .fs-gmm col.c-b{ width: 28%; }
.fs-sheet .fs-gmm col.c-n{ width: 14%; }
.fs-sheet .fs-gmm td[colspan="2"] .fs-k{ width: 40%; white-space: nowrap; }
.fs-sheet .fs-gmm td[colspan="3"] .fs-k{ width: 48%; white-space: nowrap; }
.fs-sheet .fs-gmm .fs-k.fs-gmm-use{ width: 23.2%; white-space: nowrap; }
.fs-sheet .fs-gmm tr:nth-child(n+2):nth-child(-n+6) td{ height: 32px; }
.fs-sheet .fs-gmm-sec td{ height: 30px; }
.fs-sheet .fs-gmm-row td{ height: 44px; line-height: 1.3; }

/* Front / Back calculation choice (sieve analysis formats) and the
   back-calculation panel beside the sheet — screen only, never printed */
.fs-calcmode{ display: flex; gap: 40px; justify-content: center; margin: 12px 0 0; font-weight: 600; }
.fs-calcmode label{ display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.fs-bc-wrap{ position: relative; }
.fs-bc-panel{ position: absolute; background: #fff; border: 2px solid #000; }
.fs-bc-panel table{ border-collapse: collapse; font-family: Arial, Helvetica, sans-serif; font-size: 12px; }
.fs-bc-panel th, .fs-bc-panel td{ border: 1px solid #000; padding: 0 6px; text-align: center; font-weight: 400; line-height: 1.15; }
.fs-bc-panel input{ width: 70px; height: 18px; min-height: 0; box-sizing: border-box; text-align: center; font: inherit; line-height: 1; border: none; border-bottom: 1px dashed #b9c4c6; border-radius: 0; background: #f4fbf8; padding: 0 2px; margin: 0; box-shadow: none; }
.fs-bc-panel input.fs-out{ background: #fdecec; color: #a32d2d; }
.fs-bc-msg{ font-size: 11px; color: #a32d2d; padding: 4px 6px; max-width: 220px; }
@media screen{ .fs-sheet input.fs-bc-locked{ background: #eef3f3 !important; } }
@media print{ .fs-bc-panel, .fs-calcmode, .fs-bc-help{ display: none !important; } }
.fs-bc-wrap .fs-bc-panel th, .fs-bc-wrap .fs-bc-panel td{ padding: 0 6px !important; font-size: 12px !important; }
.fs-bc-wrap .fs-bc-panel input{ padding: 0 2px !important; }
