/* FIELD BOOK dossier design: scoped to export only. */
.roster-preview{--print-ink:#233747;--print-fog:#e8edf0;--print-line:#c4cdd3;--print-secondary:#536574;--print-red:#984d46;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#e3e8eb;color:var(--print-ink);overflow:auto}
.roster-preview::backdrop{background:#e3e8eb}
.preview-toolbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:10px;padding:10px max(16px,calc((100vw - 210mm)/2));background:var(--print-ink);color:white}
.preview-toolbar strong{margin-right:auto;font:700 .8rem Arial,sans-serif;letter-spacing:.05em}.preview-toolbar button{min-height:36px;margin:0}
.print-document,.print-pages{font:8.3pt/1.5 Arial,Helvetica,sans-serif;color:var(--print-ink)}
.print-source{position:absolute!important;left:-10000px;top:0;visibility:hidden;width:186mm;padding:0;margin:0;pointer-events:none}
.print-page{box-sizing:border-box;position:relative;width:210mm;min-height:297mm;padding:11mm 12mm 16mm;margin:16px auto;background:white;box-shadow:0 2px 14px #23374722;overflow:visible}
.print-page-content{display:flow-root;width:186mm;overflow:visible}
.print-operation-header{position:relative;display:flex;justify-content:space-between;align-items:center;gap:5mm;min-height:38mm;padding:4mm 6mm;border-top:1.4mm solid var(--print-ink);background:var(--print-fog);isolation:isolate}
.print-map{position:absolute;inset:0 0 0 auto;width:60%;height:100%;object-fit:cover;opacity:.27;z-index:-1;mask-image:linear-gradient(to right,transparent,#000 28%)}
.print-cover-copy{min-width:0;flex:1}.print-brand{display:block;font:700 7.5pt Arial,sans-serif;letter-spacing:.9mm;color:var(--print-ink);margin-bottom:4mm}
.print-operation-label{display:block;font:7pt Arial,sans-serif;letter-spacing:.8mm;color:var(--print-ink);margin-bottom:1mm}
.print-operation-header h1{margin:0 0 3mm;font:400 24pt/1.15 'Libre Baskerville',Georgia,serif;letter-spacing:.1mm;overflow-wrap:anywhere}
.print-sphere{font:7pt/1.4 Arial,sans-serif;letter-spacing:.2mm;text-transform:uppercase;margin:0}
.print-score{flex:0 0 35mm;border-left:1px solid #8c9ba5;padding-left:5mm;align-self:center;font-variant-numeric:tabular-nums}
.print-total{display:flex;gap:1.5mm;align-items:baseline;justify-content:space-between}.print-total span{font:8pt Arial,sans-serif}.print-total strong{font:700 23pt/1.3 Arial,sans-serif}.print-total .print-die{font:13pt Arial,sans-serif;margin-right:0;display:inline-flex;align-items:center}.print-die svg{width:3.5mm;height:3.5mm}.print-redline{width:12mm;border-top:.7mm solid var(--print-red);margin:2mm 0}
.print-section,.print-platoon,.print-platoon-start{position:relative;margin-top:5mm;display:flow-root}
.print-pages h2,.print-document h2{font:700 7.7pt/1.35 Arial,sans-serif;text-transform:uppercase;letter-spacing:.65mm;margin:0 0 3mm}
.print-organisation{padding-bottom:4mm;border-bottom:1px solid var(--print-line);margin-bottom:4mm}.print-period{font:7pt Arial,sans-serif;color:var(--print-secondary);margin:0 0 2mm}
.print-org-tree{display:grid;gap:3mm}.print-org-tree:has(>.print-org-card){display:flex;flex-wrap:wrap;gap:3mm}.print-org-tree>.print-org-card{width:58mm}.print-org-branch{display:flex;align-items:center;gap:8mm;width:100%}.print-org-branch>.print-org-card{width:51mm;flex:0 0 51mm}.print-org-children{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:2mm;border-left:1px solid var(--print-line);padding-left:5mm;flex:1}.print-org-children::before{content:"";position:absolute;width:8mm;left:-8mm;top:50%;border-top:1px solid var(--print-secondary)}.print-org-children:empty{display:none}
.print-org-card{padding:2.5mm 3mm;border:1px solid var(--print-line);background:#f4f6f7;font:8pt/1.4 Arial,sans-serif}.print-org-card strong{font-weight:400;display:block}.print-org-card small{display:block;font:7pt/1.4 Arial,sans-serif;color:var(--print-secondary);margin-top:1mm}
.print-platoon-header{position:relative;isolation:isolate;display:flex;justify-content:space-between;align-items:center;gap:4mm;padding:2.5mm 3mm;background:var(--print-ink);color:white}
.print-ink-band{position:absolute;inset:0;width:100%;height:100%;z-index:-1;display:block}
.print-platoon-header h2{margin:0;font:700 9pt/1.4 Arial,sans-serif;letter-spacing:.35mm}.print-platoon-header strong{font:700 9pt Arial,sans-serif;border-left:1px solid #ffffff55;padding-left:4mm;white-space:nowrap}
.print-unit{position:relative;display:grid;grid-template-columns:63mm minmax(0,1fr) 14mm;gap:4mm;padding:3mm 0;border-bottom:1px solid var(--print-line);break-inside:avoid;page-break-inside:avoid;min-height:20mm}
.print-unit-identity,.print-unit-details{min-width:0;overflow-wrap:anywhere}
.print-roster-number{display:block;font:7.3pt/1.4 Arial,sans-serif;letter-spacing:.3mm;color:var(--print-secondary);margin-bottom:1mm}
.print-unit h3{font:400 11pt/1.3 'Libre Baskerville',Georgia,serif;margin:0;color:var(--print-ink)}
.print-christened{font:italic 8pt/1.4 'Libre Baskerville',Georgia,serif;margin:0 0 1mm}
.print-armour{font:8pt/1.4 Arial,sans-serif;margin:1mm 0}.print-composition{font:7.3pt/1.45 Arial,sans-serif;color:var(--print-secondary);margin:1mm 0 0}
.print-unit-details{padding-top:4mm;font:8pt/1.5 Arial,sans-serif}.print-loadout ul{list-style:none;margin:0;padding:0}.print-loadout li{font:8pt/1.5 Arial,sans-serif}
.print-active-rules{list-style:none;margin:1.5mm 0 0;padding:0;color:var(--print-secondary);font:7.3pt/1.5 Arial,sans-serif}.print-active-rules li{display:inline;font:inherit}.print-active-rules li:not(:last-child)::after{content:' · '}
.print-equipment,.print-capacity,.print-assignment,.print-notes{font:8pt/1.5 Arial,sans-serif;margin:0 0 1mm}.print-capacity,.print-assignment{color:var(--print-secondary)}.print-notes{white-space:pre-wrap;overflow-wrap:anywhere}
.print-points{text-align:right;font-variant-numeric:tabular-nums;padding-top:4mm}.print-points strong{font:400 14pt Arial,sans-serif}.print-points small{display:block;font:7pt Arial,sans-serif;letter-spacing:.25mm;color:var(--print-secondary);margin-top:1mm}
.print-paired-sections{display:grid;grid-template-columns:1.9fr 1fr;gap:6mm;align-items:start}.print-column{min-width:0;display:flow-root}
.print-weapons>h2,.print-transports>h2{padding:0;background:none;border:0}.print-weapon-table{width:100%;table-layout:fixed;border-collapse:collapse;font:7.2pt/1.4 Arial,sans-serif}
.print-weapon-table th,.print-weapon-table td{padding:1.8mm 1mm;text-align:left;vertical-align:top;border-bottom:1px solid var(--print-line);overflow-wrap:anywhere}.print-weapon-table th{background:var(--print-fog);font:700 6.8pt/1.4 Arial,sans-serif}.print-weapon-table th:nth-child(1){width:35%}.print-weapon-table th:nth-child(2){width:8%}.print-weapon-table th:nth-child(3){width:9%}.print-weapon-table th:nth-child(4){width:12%}.print-weapon-table th:nth-child(5){width:36%}.print-weapon-table td:nth-child(2),.print-weapon-table td:nth-child(3){white-space:nowrap}
.print-weapon-table tr{break-inside:avoid;page-break-inside:avoid}.print-weapon-table thead{display:table-header-group}
.print-transport{padding:3mm 0;border-top:1px solid var(--print-line);break-inside:avoid;page-break-inside:avoid}.print-transport h3{font:700 8pt/1.5 Arial,sans-serif;margin:0 0 2mm}.print-transport p,.print-transport ul{font:8pt/1.5 Arial,sans-serif;margin:1mm 0}.print-transport ul{list-style:none;border-left:2px solid var(--print-line);padding-left:3mm}
.print-faction-rules>h2,.print-rule-reference>h2{background:var(--print-fog);border-left:1mm solid var(--print-ink);padding:2.5mm 3mm;font:400 8pt/1.4 Arial,sans-serif;letter-spacing:.3mm;margin-bottom:0}
.print-rule{padding:3mm 0;break-inside:avoid;page-break-inside:avoid}.print-rule h3{font:400 10.3pt/1.4 'Libre Baskerville',Georgia,serif;margin:0 0 1.2mm;break-after:avoid;page-break-after:avoid}
.print-rule p{font:8.3pt/1.6 Arial,sans-serif;margin:0;white-space:pre-wrap}.print-rule .print-citation{font:7pt/1.45 Arial,sans-serif;color:var(--print-secondary);margin-top:1.5mm}.rule-cross-reference{color:var(--print-secondary);font-style:italic}.missing-explanation,.print-warning{color:var(--print-red)}
.print-continuation{display:flex;justify-content:space-between;align-items:center;gap:5mm;padding-bottom:3mm;margin-bottom:4mm;border-bottom:1px solid var(--print-ink)}.print-continuation-copy small{display:block;font:7pt/1.4 Arial,sans-serif;color:var(--print-ink);letter-spacing:.3mm}.print-continuation-name{font:400 17pt/1.35 'Libre Baskerville',Georgia,serif;margin-top:1mm}.print-continuation-metadata{font:7pt/1.5 Arial,sans-serif;text-transform:uppercase;text-align:right;color:var(--print-ink);max-width:95mm}
.print-page-footer{position:absolute;bottom:8mm;left:12mm;right:12mm;display:flex;justify-content:space-between;gap:5mm;border-top:1px solid var(--print-line);padding-top:2mm;margin:0;font:6.5pt/1.4 Arial,sans-serif;color:var(--print-secondary);letter-spacing:.15mm}
.preview-break-control{position:absolute;z-index:2;right:1mm;top:-3mm;margin:0;min-height:0;padding:.5mm 1mm;border:1px dashed var(--print-line);border-radius:2px;background:white;font:6.5pt Arial,sans-serif;color:var(--print-secondary)}.print-unit>.preview-break-control{right:19mm;top:0}.manual-page-break>.preview-break-control{border-color:var(--print-red);color:var(--print-red)}
.print-oversized{break-inside:auto!important;page-break-inside:auto!important;overflow:visible!important}.print-oversized>.oversize-warning{grid-column:1/-1}.oversize-warning{font:8pt/1.5 Arial,sans-serif;padding:2mm;border:1px solid var(--print-red);margin:0 0 2mm}
@media screen and (max-width:800px){.preview-toolbar{padding:10px 12px;flex-wrap:wrap}.preview-toolbar strong{flex-basis:100%}.print-page{margin:8px}.roster-preview{overflow:auto}}
@media print{
 @page{size:A4 portrait;margin:0}
 html,body{margin:0!important;padding:0!important;width:210mm!important;height:auto!important;overflow:visible!important}
 body>*:not(.roster-preview){display:none!important}
 .roster-preview{display:block!important;position:static!important;inset:auto!important;width:210mm!important;height:auto!important;max-height:none!important;max-width:none!important;overflow:visible!important;margin:0!important;padding:0!important;border:0!important;contain:none!important;background:white!important}
 .roster-preview::backdrop,.preview-toolbar,.preview-break-control,.print-source{display:none!important}
 .print-pages{width:210mm;margin:0;padding:0;overflow:visible}
 .print-page{margin:0!important;box-shadow:none!important;break-after:page;page-break-after:always;break-inside:auto;overflow:visible;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 .print-page:last-child{break-after:auto;page-break-after:auto}
 .print-section,.print-platoon{break-inside:auto;page-break-inside:auto}
}
