MPM Documentation Kit v1.3 (CW-034)

MPM Document Standard 1.3, mpmdoc build engine, templates for TN, INS, SOP,
BOM, SVY, TAP, DWG, TSB, PRO, SOW and WO (Chinese editions for TN and DWG),
glossary, MPM fonts and logos, and the mpm-technical-documents plugin 1.3.0.
Worked examples ship in the kit zip on Drive only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NWatTMmqmGatgHjDZvWs5b
This commit is contained in:
Jason StedwellandClaude Opus 5.5 committed 2026-11-09 11:51:56 -06:00
commit 5b52636003
143 files changed
+4097

No files matched your search

+200
View File
@@ -0,0 +1,200 @@
/* 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}