Files

200 lines
15 KiB
CSS
Raw Permalink Normal View History

2026-11-09 11:51:56 -06:00
/* MPM document stylesheet — single source for every MPM document.
Reconciled from INS-LT-15R-01, TN-NSH-B17-01, TN-CMT-P25-01, BOM-OMT-HW-01 (Oct–Nov 2026).
Do not copy this into project build scripts; mpmdoc injects it. */
:root{
--ink:#232022; --gold:#DCBB4F; --kick:#998643; --mute:#849698; --cream:#F5F1EC; --line:#E6E0D8;
--keybg:#FBF6E6; --red:#A42D20; --redbg:#F7E9E7; --grn:#3F6B3A; --grnbg:#EAF1E6;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Open Sans',Montserrat,sans-serif;font-size:9.6pt;line-height:1.45;color:var(--ink);-webkit-print-color-adjust:exact}
h1,h2,h3,h4{font-family:Montserrat,sans-serif;margin:0}
b,strong{font-weight:700}
p{margin:0 0 8px}
/* ---- masthead ------------------------------------------------------- */
.kicker{font-family:Montserrat;font-weight:700;font-size:7.6pt;letter-spacing:.14em;text-transform:uppercase;color:var(--kick)}
h1{font-size:23pt;font-weight:800;line-height:1.1;margin:5px 0 6px}
.lede{color:var(--mute);font-size:10.4pt;margin:0 0 14px}
.meta{display:flex;gap:9px;margin-bottom:14px}
.meta div{flex:1;background:var(--cream);border-radius:7px;padding:10px 13px}
.meta b{display:block;font-family:Montserrat;font-weight:700;font-size:6.6pt;letter-spacing:.12em;text-transform:uppercase;opacity:.75;margin-bottom:6px}
.meta span{font-family:Montserrat;font-weight:600;font-size:8.6pt}
.meta .draft span{color:var(--red)}
/* ---- headline numbers (KPI tiles) ----------------------------------- */
.kpis{display:flex;gap:8px;margin-bottom:12px}
.kpis div{flex:1;border:1px solid var(--line);border-radius:8px;padding:10px 12px 9px}
.kpis b{display:block;font-family:Montserrat;font-weight:700;font-size:6.4pt;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:4px}
.kpis span{font-family:'JetBrains Mono',Montserrat,monospace;font-weight:700;font-size:15pt;line-height:1.1}
.kpis small{display:block;font-family:Montserrat;font-weight:600;font-size:7pt;color:var(--mute);margin-top:3px}
.kpis .key{border-color:var(--gold);background:var(--keybg)}
.kpis .strong{border-color:var(--ink)}
.kpis .ok{border-color:var(--grn);background:var(--grnbg)}.kpis .ok span{color:var(--grn)}
.kpis .bad{border-color:var(--red);background:var(--redbg)}.kpis .bad span{color:var(--red)}
/* ---- dark summary box (Result / Before you start / Summary) ----------- */
.dark{background:var(--ink);color:#fff;border-radius:8px;border-left:5px solid var(--gold);padding:10px 18px 9px;margin-bottom:14px;break-inside:avoid}
.dark .kicker{color:var(--gold);margin-bottom:6px}
.dark ul{margin:0;padding-left:14px}.dark li{margin:3px 0}
/* ---- sections ---------------------------------------------------------- */
h2.sec{font-size:10.5pt;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-bottom:2px solid var(--gold);padding-bottom:5px;margin:4px 0 10px;break-after:avoid}
h3.sub{font-family:Montserrat;font-weight:800;font-size:8.6pt;letter-spacing:.06em;text-transform:uppercase;margin:6px 0 5px}
.brk{break-before:page}
.two{display:flex;gap:18px}.two>div{flex:1;min-width:0}
.keep{break-inside:avoid}
/* ---- tables -------------------------------------------------------------- */
table{width:100%;border-collapse:collapse;font-size:8.8pt;margin-bottom:6px}
th{text-align:left;font-family:Montserrat;font-weight:700;font-size:6.8pt;letter-spacing:.1em;text-transform:uppercase;padding:6px 8px;border-bottom:2px solid var(--gold);vertical-align:bottom}
td{padding:4px 8px;border-bottom:1px solid var(--line);vertical-align:top}
tr{break-inside:avoid}thead{display:table-header-group}
th.r,td.r{text-align:right} th.c,td.c{text-align:center}
td.m{font-family:'JetBrains Mono',Montserrat,monospace;font-size:8.6pt;white-space:nowrap}
td.d{font-family:'JetBrains Mono',Montserrat,monospace;font-weight:700;font-size:8.6pt;white-space:nowrap}
td.q{font-family:'JetBrains Mono',Montserrat,monospace;font-weight:700;text-align:right;width:44px}
tr.key td{background:var(--keybg)}
tr.tot td{border-bottom:none;border-top:2px solid var(--gold);font-family:Montserrat;font-weight:700;font-size:8pt;padding-top:8px}
table.tight td{padding:3px 8px}
.up{color:var(--grn)}.dn{color:var(--red)}.k{color:var(--kick)}
.tbc{color:var(--red);font-weight:700}
.mono{font-family:'JetBrains Mono',Montserrat,monospace;font-size:8.6pt}
/* ---- captions (TABLE n / FIG n) ----------------------------------------- */
.tcap{font-family:Montserrat;font-weight:600;font-size:7.2pt;color:var(--mute);margin:0 0 12px}
.cap{font-family:Montserrat;font-weight:600;font-size:7.2pt;color:var(--mute);text-align:center;margin:5px 0 12px}
.tcap b,.cap b{color:var(--kick);letter-spacing:.08em;margin-right:4px}
.figbox{border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}
.fig{break-inside:avoid}
/* ---- calculation block --------------------------------------------------- */
.calc{background:var(--cream);border-radius:8px;padding:8px 16px;font-family:'JetBrains Mono',Montserrat,monospace;font-size:8.4pt;line-height:1.65;margin-bottom:12px;break-inside:avoid;white-space:pre}
.calc .c{color:var(--mute)}
.pill{display:inline-block;color:#fff;font-family:Montserrat;font-weight:800;font-size:6.8pt;letter-spacing:.12em;border-radius:3px;padding:0 6px;margin-left:6px;line-height:15px;vertical-align:1px}
.pill.pass{background:var(--grn)}.pill.fail{background:var(--red)}.pill.check{background:var(--kick)}
/* ---- notes / callouts ---------------------------------------------------- */
.note{background:var(--cream);border-left:4px solid var(--gold);border-radius:0 7px 7px 0;padding:8px 13px;margin:8px 0 12px;font-size:8.9pt;break-inside:avoid}
.note .kicker{font-size:6.8pt;margin-bottom:2px}
.note ul{margin:2px 0 0;padding-left:15px}.note li{margin:2px 0}
.note.warn{background:var(--redbg);border-color:var(--red)}.note.warn .kicker{color:var(--red)}
.note.ok{background:var(--grnbg);border-color:var(--grn)}.note.ok .kicker{color:var(--grn)}
.note.verify{background:#fff;border:1.5px dashed var(--kick);border-left:4px solid var(--kick)}
/* ---- lists --------------------------------------------------------------- */
ol{margin:0 0 8px;padding-left:18px}ol li{margin:3px 0}
ul.plain{margin:0 0 8px;padding-left:16px}ul.plain li{margin:4px 0}
.chk{list-style:none;padding:0;margin:0 0 8px}
.chk li{padding-left:22px;position:relative;margin:4px 0}
.chk li:before{content:"";position:absolute;left:0;top:3px;width:11px;height:11px;border:1.5px solid var(--kick);border-radius:3px}
.list-head{font-family:Montserrat;font-weight:700;font-size:7.6pt;letter-spacing:.14em;text-transform:uppercase;color:var(--kick);margin-bottom:4px}
/* ---- procedures (INS / SOP) ---------------------------------------------- */
.glance{display:flex;gap:6px;margin-bottom:16px}
.glance div{flex:1;border:1px solid var(--line);border-radius:7px;padding:9px 4px 7px;text-align:center;font-family:Montserrat;font-weight:700;font-size:7.4pt;line-height:1.25}
.glance i{display:block;margin:0 auto 5px;width:19px;height:19px;border-radius:50%;background:var(--gold);font-style:normal;font-weight:800;font-size:8pt;line-height:19px}
.glance small{display:block;font-weight:600;font-size:6.2pt;letter-spacing:.12em;color:var(--mute);margin-top:3px;text-transform:uppercase}
.glance .other{border-style:dashed;background:#FBFAF8;color:var(--mute)}
.glance .other i{background:var(--line);color:var(--mute)}
.step{display:flex;gap:18px;padding:10px 0 11px;border-bottom:1px solid var(--line);break-inside:avoid}
.step .body{flex:1}
.step .side{width:35%;flex:none}
.step.wide{display:block;break-inside:auto}.step.wide .side{width:100%;margin-top:8px;break-inside:avoid}
.step.wide .body{break-inside:avoid}
.sh{display:flex;align-items:center;gap:11px;margin-bottom:7px}
.num{min-width:30px;padding:0 5px;height:30px;border-radius:5px;background:var(--gold);color:#fff;font-family:Montserrat;font-weight:800;font-size:14pt;line-height:30px;text-align:center;flex:none}
.sh .kicker{font-size:6.8pt}
.sh h3{font-size:13.5pt;font-weight:800;line-height:1.15}
.chain{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-family:Montserrat;font-weight:700;font-size:7.4pt}
.chain span{background:var(--cream);border-radius:5px;padding:4px 9px}
.chain b{color:var(--kick)}
/* ---- BOM / checklists ---------------------------------------------------- */
td.n{font-family:'JetBrains Mono',Montserrat,monospace;font-weight:700;color:var(--kick);width:30px}
td.item b{font-family:Montserrat;font-weight:700;font-size:9pt}
td.u{font-family:Montserrat;font-weight:600;font-size:7.4pt;color:var(--mute);text-transform:uppercase;letter-spacing:.08em;width:40px}
td.pn{font-family:'JetBrains Mono',Montserrat,monospace;font-size:8pt;color:var(--mute);width:78px}
.box{display:inline-block;width:11px;height:11px;border:1.5px solid var(--kick);border-radius:3px;vertical-align:middle}
.sign{display:flex;gap:14px;margin-top:6px;break-inside:avoid}
.sign div{flex:1;border-top:1.5px solid var(--ink);padding-top:5px;font-family:Montserrat;font-weight:700;font-size:6.6pt;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);height:26px}
/* ---- revision history: own block, last page -------------------------- */
.revs{position:relative;background:var(--cream);border-radius:8px;border-top:3px solid var(--gold);padding:7px 13px 3px;margin-top:8px;break-inside:avoid}
.revs .kicker{font-size:6.8pt;margin-bottom:1px;padding-bottom:3px;border-bottom:1.5px solid var(--gold)}
.revs table{font-size:7.8pt;margin:0}.revs table.tight td{padding:2px 8px}.revs th{padding:4px 8px}
.revs th{border-bottom-width:1.5px}
.revs td{border-bottom-color:#E2DCD3}.revs tr:last-child td{border-bottom:none}
.revs td.m{width:52px}.revs td.dt{width:88px;font-family:'JetBrains Mono',Montserrat,monospace;font-size:8pt;white-space:nowrap}
.sent{position:absolute;left:4px;font-size:2px;line-height:2px;color:#fff}
#s-top{top:0}#s-end{bottom:0}
/* ---- procedure extras ----------------------------------------------------- */
.ui{display:inline-block;font-family:Montserrat;font-weight:700;font-size:7.8pt;line-height:1.25;padding:0 5px;border:1.2px solid var(--gold);border-radius:4px;background:var(--keybg);white-space:nowrap}
.shots{display:flex;gap:8px;justify-content:center;align-items:flex-start}
.shot{text-align:center;break-inside:avoid}
.shot img{width:100%;border:1px solid var(--line);border-radius:7px;display:block}
.scap{font-family:Montserrat;font-weight:600;font-size:7pt;color:var(--mute);margin-top:4px;line-height:1.3}
.special{border:1.5px solid var(--gold);background:#FFFCF2;border-radius:9px;padding:11px 16px 6px;margin:12px 0;break-inside:avoid}
.special .sp-fig{margin:6px auto 4px;max-width:62%}
.num.bad{background:var(--red)}
table.bomt{table-layout:fixed}
table.bomt td.m.bom{white-space:normal;line-height:1.5;font-size:8pt}
table.bomt th:nth-child(1){width:30px}table.bomt th:nth-child(2){width:27%}
table.bomt th:nth-child(4){width:44px}table.bomt th:nth-child(5){width:44px}table.bomt th:nth-child(6){width:70px}
table.bomt th:nth-child(n+7){width:54px}
/* ---- surveys / plans ------------------------------------------------------ */
table.kv{margin:0 0 14px}
table.kv th{width:24%;border-bottom:1px solid var(--line);vertical-align:top;padding:5px 8px;font-size:6.6pt}
table.kv td{padding:5px 8px}
.part{background:var(--ink);color:#fff;border-radius:8px;border-left:5px solid var(--gold);padding:12px 18px;margin:0 0 14px;break-after:avoid}
.part .kicker{color:var(--gold)}
.part h2{font-size:17pt;font-weight:800;margin:3px 0 0}
.part .part-note{margin:6px 0 0;color:#D8D2CA;font-size:9pt}
.part.internal{border-left-color:var(--red)}
.int-tag{display:inline-block;margin-left:8px;background:var(--red);color:#fff;border-radius:3px;padding:0 6px;letter-spacing:.12em}
.vtag{display:inline-block;font-family:Montserrat;font-weight:800;font-size:6.4pt;letter-spacing:.12em;text-transform:uppercase;color:var(--red);border:1.2px solid var(--red);border-radius:3px;padding:0 4px;line-height:12px;vertical-align:1px;white-space:nowrap}
.photos{display:flex;gap:12px;align-items:flex-start;margin:4px 0 6px;break-inside:avoid}
.photos .photo{flex:1;min-width:0}
.photo{break-inside:avoid}
.photo img{width:100%;max-height:2.7in;object-fit:contain;border:1px solid var(--line);border-radius:7px;display:block;background:#fff}
.photos .cap{text-align:left}
.transcript{background:#FFFDF6;border:1px solid var(--line);border-left:4px solid var(--kick);border-radius:0 8px 8px 0;padding:10px 16px;margin:6px 0 12px;font-size:9pt;break-inside:avoid}
.transcript .t-head{font-family:Montserrat;font-weight:800;font-size:9.5pt;margin-bottom:6px}
.transcript p{margin:0 0 4px}.transcript ul{margin:0 0 4px;padding-left:16px}.transcript li{margin:2px 0}
.approval{margin-top:16px;border-top:1.5px solid var(--ink);padding-top:6px;width:55%}
.approval .ap-name{font-family:Montserrat;font-weight:800;font-size:11pt;margin-top:4px}
.approval .ap-role{color:var(--mute)}
.approval .ap-date{font-family:'JetBrains Mono',Montserrat,monospace;font-size:8pt;margin-top:2px}
/* ---- commercial and field components (PRO / SOW / WO / TSB) ----------- */
table.prt{margin:4px 0 12px}
table.prt td.r,table.prt th.r{text-align:right}
table.prt tr.sub td{font-family:Montserrat;font-weight:700;font-size:7.6pt;border-top:1px solid var(--ink);background:var(--cream)}
table.prt tr.grand td{font-family:Montserrat;font-weight:800;font-size:8.6pt;border-top:2px solid var(--gold);border-bottom:none;padding-top:7px}
.parties{display:flex;gap:10px;margin:0 0 14px}
.party{flex:1;border:1px solid var(--line);border-radius:8px;overflow:hidden;break-inside:avoid}
.party .ph{background:var(--cream);color:var(--kick);font-family:Montserrat;font-weight:700;font-size:6.8pt;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;border-bottom:2px solid var(--gold)}
.party .pb{padding:8px 12px}
.party .pname{font-family:Montserrat;font-weight:700;font-size:9.4pt}
.party .pline{color:var(--ink);margin-top:1px}
.party .pline.mono{font-family:'JetBrains Mono',Montserrat,monospace;font-size:8.4pt}
.spill{display:inline-block;font-family:Montserrat;font-weight:700;font-size:7pt;letter-spacing:.12em;text-transform:uppercase;padding:3px 10px;border-radius:20px;color:#fff;background:var(--ink)}
.spill.red{background:var(--red)}.spill.green{background:var(--grn)}.spill.amber,.spill.gold{background:var(--gold);color:var(--ink)}
.spill.grey,.spill.gray{background:var(--mute)}.spill.navy{background:var(--ink)}.spill.teal{background:var(--kick)}
.sigs{display:flex;gap:26px;margin-top:22px}
.sig{flex:1}
.sig .line{border-top:1.5px solid var(--ink);margin-top:30px;padding-top:5px}
.sig .role{font-family:Montserrat;font-weight:700;font-size:6.8pt;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.sig .who{margin-top:1px}
.fields{display:grid;gap:4px 22px;margin:2px 0 12px}
.fields.c1{grid-template-columns:1fr}.fields.c2{grid-template-columns:1fr 1fr}.fields.c3{grid-template-columns:1fr 1fr 1fr}
.fld{break-inside:avoid}
.fld b{display:block;font-family:Montserrat;font-weight:700;font-size:6.6pt;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-top:6px}
.fld .ln{display:block;height:20px;border-bottom:1px solid var(--ink)}
.fld small{display:block;color:var(--mute);font-size:7.4pt;margin-top:2px}
h3.sub{break-after:avoid}
table.fill td{height:24px}
.govern{font-size:8pt;color:var(--mute);margin:-4px 0 12px;border-left:2px solid var(--gold);padding-left:8px}