/* ============================================================================
   Stock Add / Remove / Adjust — User Training Guide
   Print stylesheet (Chrome headless printToPDF, A4)
   ========================================================================== */

@font-face { font-family:'Open Sans'; font-weight:300; font-style:normal;
  src:url('file:///usr/share/fonts/open-sans/OpenSans-Light.ttf') format('truetype'); }
@font-face { font-family:'Open Sans'; font-weight:400; font-style:normal;
  src:url('file:///usr/share/fonts/open-sans/OpenSans-Regular.ttf') format('truetype'); }
@font-face { font-family:'Open Sans'; font-weight:400; font-style:italic;
  src:url('file:///usr/share/fonts/open-sans/OpenSans-Italic.ttf') format('truetype'); }
@font-face { font-family:'Open Sans'; font-weight:600; font-style:normal;
  src:url('file:///usr/share/fonts/open-sans/OpenSans-Semibold.ttf') format('truetype'); }
@font-face { font-family:'Open Sans'; font-weight:700; font-style:normal;
  src:url('file:///usr/share/fonts/open-sans/OpenSans-Bold.ttf') format('truetype'); }
@font-face { font-family:'Open Sans'; font-weight:800; font-style:normal;
  src:url('file:///usr/share/fonts/open-sans/OpenSans-ExtraBold.ttf') format('truetype'); }
@font-face { font-family:'Src Mono'; font-weight:400; font-style:normal;
  src:url('file:///usr/share/fonts/adobe-source-code-pro/SourceCodePro-Regular.otf') format('opentype'); }

:root{
  --ink:#1B2430;
  --ink-2:#3C4756;
  --muted:#6B7787;
  --line:#DFE4EA;
  --line-2:#EDF0F3;
  --brand:#12406E;
  --brand-2:#2C6DA8;
  --brand-pale:#EEF4FA;
  --ok:#1F7A4C;
  --ok-pale:#EDF8F2;
  --warn:#A96A0A;
  --warn-pale:#FDF6E9;
  --dgr:#B3271E;
  --dgr-pale:#FDF0EF;
  --amber:#E8A33D;
}

/* ---------------------------------------------------------------- page ---- */
@page { size:A4; margin:19mm 16mm 17mm 16mm; }
@page :first { margin:0; }

*{ box-sizing:border-box; }

html,body{ margin:0; padding:0; }

body{
  font-family:'Open Sans', Arial, sans-serif;
  font-size:10.2pt;
  line-height:1.62;
  color:var(--ink);
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}

p{ margin:0 0 8pt; }
strong{ font-weight:700; color:var(--ink); }
em{ font-style:italic; }
a{ color:var(--brand-2); text-decoration:none; }

/* tiny invisible page markers used to build the table of contents */
.tm{ font-size:3px; line-height:1; color:#fff; letter-spacing:0; font-weight:400;
  font-family:'Open Sans',Arial,sans-serif; vertical-align:baseline; }

/* ---------------------------------------------------------------- cover --- */
.cover{
  page-break-after:always;
  height:297mm; width:210mm;
  position:relative; overflow:hidden;
  background:#FFFFFF;
}
.cover-top{
  position:absolute; top:0; left:0; right:0; height:170mm;
  background:linear-gradient(150deg,#0B2A49 0%, #12406E 48%, #235C93 100%);
}
.cover-top:after{
  content:''; position:absolute; right:-40mm; top:-40mm;
  width:150mm; height:150mm; border-radius:50%;
  background:rgba(255,255,255,0.045);
}
.cover-top:before{
  content:''; position:absolute; left:-30mm; bottom:-55mm;
  width:120mm; height:120mm; border-radius:50%;
  background:rgba(255,255,255,0.035);
}
.cover-inner{ position:absolute; top:0; left:0; right:0; padding:18mm 18mm 0; color:#fff; }
.cover-eyebrow{
  margin-top:38mm; font-size:8.6pt; letter-spacing:.30em; text-transform:uppercase;
  font-weight:600; color:#9FC6EC;
}
.cover-rule{ width:26mm; height:3px; background:var(--amber); margin:5mm 0 7mm; border-radius:2px; }
h1.cover-title{
  font-size:31pt; line-height:1.14; font-weight:800; margin:0; letter-spacing:-.015em;
}
h1.cover-title small{ display:block; font-size:16pt; font-weight:300; margin-top:5mm; color:#C7DDF2; letter-spacing:0; }
.cover-sub{ margin-top:9mm; font-size:11pt; color:#CFE2F4; font-weight:300; max-width:120mm; }

.cover-bottom{ position:absolute; left:0; right:0; bottom:0; height:127mm; padding:14mm 18mm 16mm; }
.cover-sys{
  display:inline-block; padding:3mm 6mm; border-radius:2mm;
  background:var(--brand-pale); color:var(--brand); font-weight:700; font-size:9.5pt;
  letter-spacing:.02em; margin-bottom:10mm;
}
table.docctl{ width:100%; border-collapse:collapse; font-size:9.2pt; }
table.docctl td{ padding:2.7mm 0; border-bottom:1px solid var(--line); vertical-align:top; }
table.docctl td.k{ width:38mm; color:var(--muted); font-weight:600; text-transform:uppercase;
  letter-spacing:.07em; font-size:7.8pt; padding-top:3.3mm; }
table.docctl td.v{ color:var(--ink); font-weight:600; }
.cover-foot{
  position:absolute; left:18mm; right:18mm; bottom:9mm;
  font-size:7.6pt; color:var(--muted); border-top:1px solid var(--line); padding-top:3mm;
  display:flex; justify-content:space-between;
}

/* --------------------------------------------------------------- front ---- */
.frontmatter h2.fm{
  font-size:16pt; font-weight:700; color:var(--brand); margin:0 0 2mm;
  letter-spacing:-.01em;
}
.fm-rule{ width:20mm; height:2.5px; background:var(--amber); border-radius:2px; margin-bottom:7mm; }

/* ------------------------------------------------------------------ toc --- */
.toc{ margin-top:2mm; }
.toc ol{ list-style:none; margin:0; padding:0; }
.toc li{ margin:0; }
.toc .l1{
  display:flex; align-items:baseline; gap:3mm;
  padding:2.2mm 0 2.2mm; border-bottom:1px solid var(--line-2);
  font-weight:700; font-size:10.4pt; color:var(--ink);
}
.toc .l1 .n{ width:9mm; color:var(--brand-2); flex:none; }
.toc .l1 .t{ flex:1; }
.toc .l2{
  display:flex; align-items:baseline; gap:3mm;
  padding:1.1mm 0 1.1mm 9mm; font-size:9.3pt; color:var(--ink-2); font-weight:400;
}
.toc .l2 .n{ width:11mm; color:var(--muted); flex:none; }
.toc .l2 .t{ flex:1; }
.toc .dots{ flex:1; border-bottom:1px dotted #C6CDD6; align-self:flex-end;
  margin:0 2.5mm 1.05mm; height:0; }
.toc .p{ width:9mm; text-align:right; flex:none; font-variant-numeric:tabular-nums; color:var(--muted); font-weight:600; }
.toc .l1 .p{ color:var(--brand); }

/* -------------------------------------------------------------- headings -- */
h1.sec{
  page-break-before:always;
  font-size:19pt; font-weight:800; color:var(--brand); letter-spacing:-.02em;
  margin:0 0 1.5mm; padding-top:1mm; line-height:1.15;
}
h1.sec .num{ color:var(--amber); margin-right:3.5mm; }
h1.sec + .lede{ color:var(--muted); font-size:10pt; margin:0 0 6mm; max-width:150mm; }
h1.sec.nobreak{ page-break-before:auto; }
.sec-rule{ height:2.5px; background:linear-gradient(90deg,var(--amber) 0 22mm, var(--line) 22mm 100%);
  margin:0 0 7mm; border-radius:2px; }

h2{
  font-size:12.6pt; font-weight:700; color:var(--ink); margin:9mm 0 2.5mm;
  letter-spacing:-.01em; page-break-after:avoid;
}
h2 .num{ color:var(--brand-2); margin-right:2.5mm; font-weight:700; }
h3{
  font-size:10.8pt; font-weight:700; color:var(--brand); margin:6mm 0 2mm;
  page-break-after:avoid;
}
h4{ font-size:10.2pt; font-weight:700; color:var(--ink-2); margin:5mm 0 1.5mm; page-break-after:avoid; }

/* ---------------------------------------------------------------- lists --- */
ul,ol{ margin:0 0 8pt; padding-left:5.5mm; }
li{ margin:0 0 2.2pt; }
ul.tick{ list-style:none; padding-left:0; }
ul.tick li{ position:relative; padding-left:6.5mm; margin-bottom:2.6pt; }
ul.tick li:before{
  content:'✓'; position:absolute; left:0; top:-0.2mm; color:var(--ok); font-weight:700; font-size:10pt;
}
ul.cross{ list-style:none; padding-left:0; }
ul.cross li{ position:relative; padding-left:6.5mm; margin-bottom:2.6pt; }
ul.cross li:before{
  content:'✕'; position:absolute; left:0; color:var(--dgr); font-weight:700; font-size:9pt;
}

/* numbered procedure */
ol.steps{ list-style:none; padding-left:0; counter-reset:st; margin:0 0 5mm; }
ol.steps > li{
  counter-increment:st; position:relative; padding-left:9mm; margin-bottom:3.4mm;
  page-break-inside:avoid;
}
ol.steps > li:before{
  content:counter(st); position:absolute; left:0; top:0.3mm;
  width:6mm; height:6mm; border-radius:50%; background:var(--brand); color:#fff;
  font-size:8pt; font-weight:700; display:flex; align-items:center; justify-content:center;
}
ol.steps > li > .sh{ font-weight:700; display:block; }
ol.steps ul{ margin-top:1.5mm; }

/* ------------------------------------------------------------------ ui ---- */
.ui{
  display:inline-block; padding:0.3mm 1.6mm; border-radius:1.2mm;
  background:#EAF1F8; border:1px solid #C9DAEA; color:#12406E;
  font-size:8.9pt; font-weight:700; white-space:nowrap; line-height:1.45;
}
.ui.danger{ background:#FCEDEC; border-color:#F0C8C5; color:#9C231C; }
.ui.warnb{ background:#FDF3E3; border-color:#F0DCB6; color:#8A560A; }
.ui.okb{ background:#E9F6EF; border-color:#BEE3CE; color:#186340; }
.fieldname{ font-weight:700; color:var(--ink); }
.path{ font-weight:600; color:var(--brand); white-space:nowrap; }
code,.mono{ font-family:'Src Mono','Courier New',monospace; font-size:8.8pt;
  background:#F3F5F7; border:1px solid var(--line); border-radius:1mm; padding:0.2mm 1.2mm; }

/* -------------------------------------------------------------- callouts -- */
.callout{
  border:1px solid; border-left-width:3.2mm; border-radius:1.6mm;
  padding:3.4mm 4.5mm 3.4mm 4.5mm; margin:4.5mm 0; page-break-inside:avoid;
  font-size:9.6pt; line-height:1.55;
}
.callout .ct{ font-weight:800; letter-spacing:.06em; text-transform:uppercase; font-size:8.1pt;
  display:block; margin-bottom:1.2mm; }
.callout p:last-child{ margin-bottom:0; }
.callout ul{ margin-bottom:0; }
.callout.note{ background:var(--brand-pale); border-color:#BFD6EC; border-left-color:var(--brand-2); }
.callout.note .ct{ color:var(--brand-2); }
.callout.tip{ background:var(--ok-pale); border-color:#C3E4D2; border-left-color:var(--ok); }
.callout.tip .ct{ color:var(--ok); }
.callout.warn{ background:var(--warn-pale); border-color:#F0DCB6; border-left-color:var(--amber); }
.callout.warn .ct{ color:var(--warn); }
.callout.imp{ background:var(--dgr-pale); border-color:#F2C9C6; border-left-color:var(--dgr); }
.callout.imp .ct{ color:var(--dgr); }

/* --------------------------------------------------------------- tables --- */
table.data{
  width:100%; border-collapse:collapse; margin:3mm 0 6mm; font-size:8.9pt; line-height:1.45;
  page-break-inside:auto;
}
table.data thead th{
  background:var(--brand); color:#fff; text-align:left; font-weight:700; font-size:8.3pt;
  letter-spacing:.045em; text-transform:uppercase; padding:2.4mm 2.6mm; border:none;
  vertical-align:middle;
}
table.data thead{ display:table-header-group; }
table.data tbody tr{ page-break-inside:avoid; }
table.data tbody td{
  padding:2.3mm 2.6mm; border-bottom:1px solid var(--line); vertical-align:top;
}
table.data tbody tr:nth-child(even){ background:#F7F9FB; }
table.data td.c{ text-align:center; }
table.data .req{ color:var(--dgr); font-weight:700; }
table.data .opt{ color:var(--muted); font-weight:600; }
table.data td strong{ font-weight:700; }
table.data.compact tbody td{ padding:1.8mm 2.4mm; }
table.data caption{
  caption-side:top; text-align:left; font-size:9.4pt; font-weight:700; color:var(--ink);
  padding-bottom:1.6mm;
}
.tbl-note{ font-size:8.4pt; color:var(--muted); margin:-4mm 0 6mm; }

/* ------------------------------------------------------------- figures ---- */
figure{ margin:5mm 0 6mm; page-break-inside:avoid; }
figure img{
  display:block; width:100%; height:auto;
  border:1px solid #CBD3DC; border-radius:1.6mm;
  box-shadow:0 1px 3px rgba(16,32,52,.10);
}
figcaption{
  font-size:8.5pt; color:var(--muted); margin-top:2.2mm; line-height:1.45;
  border-left:2.4px solid var(--amber); padding-left:2.6mm;
}
figcaption b{ color:var(--ink-2); font-weight:700; }

.shot-ph{
  border:1.6px dashed #A9B6C4; border-radius:2mm; background:
    repeating-linear-gradient(45deg,#F6F8FA 0 6px,#F1F4F7 6px 12px);
  padding:7mm 7mm 6mm; text-align:center;
}
.shot-ph .cam{ font-size:17pt; color:#8695A6; line-height:1; }
.shot-ph .lab{
  display:inline-block; margin:2.5mm 0 3mm; padding:1.1mm 3.4mm; border-radius:1mm;
  background:#5A6675; color:#fff; font-size:7.4pt; font-weight:800; letter-spacing:.11em;
  text-transform:uppercase;
}
.shot-ph .nm{ font-size:11pt; font-weight:700; color:var(--ink); margin-bottom:3.5mm; }
.shot-ph table{ width:100%; border-collapse:collapse; text-align:left; font-size:8.4pt; }
.shot-ph table td{ padding:1.5mm 2mm; border-top:1px solid #DDE3E9; vertical-align:top; }
.shot-ph table td.k{ width:32mm; color:var(--muted); font-weight:700; text-transform:uppercase;
  font-size:7.4pt; letter-spacing:.05em; }

/* --------------------------------------------------------- misc blocks ---- */
.kv{ display:flex; gap:4mm; margin:4mm 0; page-break-inside:avoid; }
.kv > div{ flex:1; border:1px solid var(--line); border-radius:1.8mm; padding:3.5mm 4mm; background:#FBFCFD; }
.kv h4{ margin:0 0 1.5mm; color:var(--brand); font-size:9.8pt; }
.kv p{ margin:0; font-size:9pt; color:var(--ink-2); }

.opcard{
  border:1px solid var(--line); border-radius:2mm; overflow:hidden; margin:4mm 0 6mm;
  page-break-inside:avoid;
}
.opcard .oh{ padding:2.8mm 4mm; font-weight:700; font-size:10.2pt; color:#fff; }
.opcard.add .oh{ background:#1F7A4C; }
.opcard.rem .oh{ background:#B3271E; }
.opcard.adj .oh{ background:#A96A0A; }
.opcard .ob{ padding:3.5mm 4mm 1mm; font-size:9.4pt; }
.opcard .ob p{ margin-bottom:4pt; }
.opcard .ob .lbl{ font-weight:700; color:var(--ink); }

.flow{ margin:4mm 0 6mm; page-break-inside:avoid; }
.flow table{ width:100%; border-collapse:separate; border-spacing:2.6mm 0; }
.flow td{
  background:var(--brand-pale); border:1px solid #C7DBEC; border-radius:1.8mm;
  padding:3mm 3mm; text-align:center; font-size:8.6pt; font-weight:600; color:var(--brand);
  vertical-align:middle;
}
.flow td.arw{ background:none; border:none; width:5mm; color:var(--amber); font-size:13pt; padding:0; }

.qcard{
  border:1px solid var(--line); border-radius:2mm; padding:0; overflow:hidden;
  page-break-inside:avoid; margin-bottom:4mm;
}
.qcard .qh{ background:#F2F5F8; border-bottom:1px solid var(--line); padding:2.2mm 3.4mm;
  font-weight:800; font-size:9.2pt; color:var(--brand); letter-spacing:.02em; }
.qcard .qb{ padding:2.8mm 3.4mm 1.4mm; font-size:8.7pt; }
.qcard ol{ padding-left:4.4mm; margin-bottom:2mm; }
.qcard li{ margin-bottom:1.2pt; }

.checklist{ border:1px solid var(--line); border-radius:2mm; padding:4mm 5mm 2mm; background:#FBFCFD; }
.checklist ul{ list-style:none; padding:0; margin:0; }
.checklist li{ position:relative; padding-left:7mm; margin-bottom:2.6mm; page-break-inside:avoid; }
.checklist li:before{
  content:''; position:absolute; left:0; top:1.1mm; width:3.6mm; height:3.6mm;
  border:1.3px solid var(--brand-2); border-radius:0.7mm; background:#fff;
}

.faq{ margin-bottom:4.5mm; page-break-inside:avoid; }
.faq .q{ font-weight:700; color:var(--brand); margin-bottom:1mm; }
.faq .q:before{ content:'Q. '; color:var(--amber); font-weight:800; }
.faq .a{ margin:0; padding-left:6.2mm; border-left:1.8px solid var(--line); }

.pb{ page-break-before:always; }
.avoid{ page-break-inside:avoid; }
.small{ font-size:8.6pt; color:var(--muted); }
.hr{ height:1px; background:var(--line); margin:7mm 0; border:none; }
.center{ text-align:center; }
