/* MM Dark Design System — WeasyPrint / Marp compatible */ :root { --cover-bg: #0a0e1a; --accent: #4bb8d4; --section-bg: #3d4550; --body-bg: #111827; --body-text: #e2e8f0; --muted: #94a3b8; --code-bg: #1e2533; --border: #2d3748; --white: #ffffff; } /* --- PAGE --- */ @page { size: A4; margin: 15mm 18mm 15mm 18mm; } body { font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif; font-size: 10pt; line-height: 1.6; color: var(--body-text); background: var(--body-bg); margin: 0; padding: 0; } .body-content { padding: 0; } /* --- COVER PAGE --- */ .cover { background: var(--cover-bg); min-height: 100vh; padding: 52px 52px 40px 52px; display: flex; flex-direction: column; justify-content: space-between; page-break-after: always; } .cover .logo { font-size: 11pt; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--accent); } .cover .title { font-size: 28pt; font-weight: 800; color: var(--white); line-height: 1.15; margin: 0; } .cover .subtitle { font-size: 13pt; color: var(--accent); margin-top: 8px; font-weight: 400; } .cover .meta { font-size: 9pt; color: var(--muted); margin-top: 32px; } .cover .version-badge { display: inline-block; background: var(--accent); color: var(--cover-bg); font-size: 8pt; font-weight: 700; padding: 3px 10px; border-radius: 3px; letter-spacing: 0.08em; } /* --- SECTION BANNERS --- */ .section-banner, h2 { background: var(--section-bg); color: var(--white); padding: 8px 16px; margin: 24px -18mm 16px -18mm; font-size: 10pt; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; } /* --- KICKER --- */ .kicker { display: block; font-size: 8pt; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); margin-bottom: 4px; } /* --- HEADINGS --- */ h1 { font-size: 20pt; font-weight: 800; color: var(--white); margin: 0 0 8px 0; } h3 { font-size: 11pt; font-weight: 700; color: var(--accent); margin: 16px 0 6px 0; } h4 { font-size: 10pt; font-weight: 600; color: var(--white); margin: 12px 0 4px 0; } /* --- KPI CARDS --- */ .kpi-row { display: flex; gap: 12px; margin: 16px 0; } .kpi { flex: 1; background: var(--code-bg); border: 1px solid var(--border); border-top: 3px solid var(--accent); padding: 12px 14px; border-radius: 4px; font-size: 9pt; color: var(--muted); } .kpi strong { display: block; font-size: 16pt; font-weight: 800; color: var(--white); margin-bottom: 2px; } /* --- TABLES --- */ table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 9pt; } th { background: var(--section-bg); color: var(--white); padding: 7px 10px; text-align: left; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; font-size: 8pt; } td { padding: 6px 10px; border-bottom: 1px solid var(--border); color: var(--body-text); } tr:nth-child(even) td { background: rgba(255,255,255,0.02); } /* --- CODE BLOCKS --- */ pre, code { background: var(--code-bg); border: 1px solid var(--border); border-radius: 3px; font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 8.5pt; color: #a5d6a7; } pre { padding: 12px 14px; overflow-x: auto; } code { padding: 1px 5px; } /* --- CALLOUTS --- */ .callout { background: rgba(75, 184, 212, 0.08); border-left: 3px solid var(--accent); padding: 10px 14px; margin: 12px 0; border-radius: 0 4px 4px 0; font-size: 9pt; color: var(--body-text); } .callout.warn { border-left-color: #f6a623; background: rgba(246, 166, 35, 0.06); } .callout.danger { border-left-color: #e53e3e; background: rgba(229, 62, 62, 0.06); } /* --- FOOTER --- */ @page { @bottom-center { content: "Machine.Machine — Confidential"; font-size: 7.5pt; color: #4a5568; } @bottom-right { content: counter(page); font-size: 7.5pt; color: #4a5568; } }