SPB Git forge
3commits 1branches 0releases
2.9 MBsize
maindefault branch
1 h agolast push
HTML 57.2% Shell 19.1% Python 11.2% CSS 7.4% JavaScript 5.1%
10.6 KB · 146 lines css
Raw Blame History
1/* Dossier technique MacLustr — feuille d'impression (A4 paysage) */2@page { size: A4 landscape; margin: 13mm 14mm 15mm 14mm; }3:root {4  --ink: #0f1115; --ink-2: #4b5060; --ink-3: #868b99; --line: #dfe2ea; --line-2: #c9cdd8;5  --paper: #ffffff; --paper-2: #f5f6f9; --paper-3: #eceef4;6  --accent: #2563eb; --accent-2: #1d4ed8; --accent-dim: #e8effd; --alt: #7c3aed;7  --good: #16a34a; --bad: #dc2626; --off: #9aa0ae;8  --sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Inter, Arial, sans-serif;9  --mono: "SF Mono", ui-monospace, Menlo, Consolas, monospace;10}11* { box-sizing: border-box; }12html, body { margin: 0; padding: 0; }13body { font: 9pt/1.42 var(--sans); color: var(--ink); background: var(--paper); -webkit-print-color-adjust: exact; print-color-adjust: exact; }14h1, h2, h3, h4 { margin: 0; letter-spacing: -.02em; line-height: 1.12; }15p { margin: 0 0 6px; }16code { font: 8.4pt var(--mono); background: var(--paper-2); border: 1px solid var(--line); border-radius: 3px; padding: 0 3px; color: var(--accent-2); }17strong { font-weight: 650; }18.mono { font-family: var(--mono); }19.small { font-size: 8pt; }20.faint { color: var(--ink-3); }21.r { text-align: right; }22.nw { white-space: nowrap; }23.logo { width: 22px; height: 22px; color: var(--accent); vertical-align: middle; }24.brand { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 13pt; letter-spacing: -.02em; }25.eyebrow { font-size: 7.6pt; text-transform: uppercase; letter-spacing: .14em; color: var(--ink-3); font-weight: 600; margin: 0 0 8px; }2627/* ---------- couverture ---------- */28body.cover { background: #09090b; color: #f4f4f5; width: 297mm; height: 210mm; overflow: hidden; }29.cover .kpi { background: #111114; border: 0; border-radius: 0; }30.cover .kpi b { color: #fff; } .cover .kpi span { color: #a1a1aa; } .cover .kpi small { color: #6b6b76; }31.cv { position: relative; width: 297mm; height: 210mm; overflow: hidden; padding: 14mm 18mm; display: flex; flex-direction: column; justify-content: space-between; background: radial-gradient(70% 55% at 80% 0%, rgba(96,165,250,.16), transparent 70%), #09090b; }32.cv::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 14mm 14mm; -webkit-mask-image: radial-gradient(ellipse at 50% 0%, #000 0%, transparent 75%); mask-image: radial-gradient(ellipse at 50% 0%, #000 0%, transparent 75%); pointer-events: none; }33.cv > * { position: relative; z-index: 1; }34.cv .brand { color: #f4f4f5; }35.cv .logo { color: #60a5fa; }36.cv-top { display: flex; justify-content: space-between; align-items: center; color: #a1a1aa; font-size: 9pt; }37.cv-mid { max-width: 190mm; }38.cv .eyebrow { color: #a1a1aa; }39.cv h1 { font-size: 52pt; font-weight: 750; letter-spacing: -.04em; line-height: .96; color: #fff; }40.cv h1 span { color: #6b6b76; }41.cv .sub { margin-top: 7mm; font-size: 11.5pt; line-height: 1.5; color: #c9cbd3; max-width: 160mm; }42.cv-facts { display: grid; grid-template-columns: repeat(6, 1fr); border: 1px solid #26262d; border-radius: 10px; overflow: hidden; background: #111114; }43.cv-facts .kpi { padding: 5mm 5mm; border-right: 1px solid #26262d; }44.cv-facts .kpi:last-child { border-right: 0; }45.cv-facts .kpi b { display: block; font: 600 22pt/1.05 var(--mono); letter-spacing: -.03em; color: #fff; }46.cv-facts .kpi span { display: block; color: #a1a1aa; font-size: 8.6pt; margin-top: 2px; }47.cv-facts .kpi small { display: block; color: #6b6b76; font: 7.6pt var(--mono); margin-top: 4px; }48.cv-bot { display: flex; justify-content: space-between; color: #6b6b76; font-size: 8.4pt; }4950/* ---------- corps ---------- */51.sec { break-before: page; }52.sec:first-child { break-before: auto; }53.sec-h { display: flex; align-items: baseline; gap: 12px; border-bottom: 2px solid var(--ink); padding-bottom: 6px; margin-bottom: 10px; }54.sec-h .num { font: 600 11pt var(--mono); color: var(--accent); }55.sec-h h2 { font-size: 20pt; font-weight: 700; }56h3 { font-size: 12pt; font-weight: 650; margin: 10px 0 5px; break-after: avoid; display: flex; align-items: baseline; gap: 8px; }57h3 .cnt { font: 500 8.5pt var(--mono); color: var(--ink-3); }58h4 { font-size: 9.5pt; font-weight: 650; color: var(--ink-2); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }59.lead { color: var(--ink-2); font-size: 9.1pt; max-width: 245mm; margin-bottom: 4px; }60.lead.big { font-size: 12pt; line-height: 1.5; color: var(--ink); margin-bottom: 10px; }61.note { color: var(--ink-3); font-size: 8.4pt; margin-top: 4px; }62.two { display: grid; grid-template-columns: 1fr 1fr; gap: 10mm; align-items: start; }63.three-col { display: grid; grid-template-columns: 1.1fr 1fr 1.2fr; gap: 5mm; align-items: start; }64.kpis { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4mm; margin: 6px 0 4px; }65.kpis.three { grid-template-columns: repeat(3, 1fr); }66.kpi { border: 1px solid var(--line); border-radius: 8px; padding: 7px 10px; background: var(--paper); break-inside: avoid; }67.kpi b { display: block; font: 600 17pt/1.05 var(--mono); letter-spacing: -.03em; }68.kpi span { display: block; color: var(--ink-2); font-size: 8.4pt; margin-top: 2px; }69.kpi small { display: block; color: var(--ink-3); font: 7.4pt var(--mono); margin-top: 4px; }70.toc { border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; background: var(--paper-2); }71.toc div { display: flex; gap: 10px; padding: 3px 0; border-bottom: 1px dashed var(--line); font-size: 9pt; }72.toc div:last-child { border-bottom: 0; }73.toc .num { font: 600 8.4pt var(--mono); color: var(--accent); width: 18px; }7475/* tables */76table.t { width: 100%; border-collapse: collapse; margin: 4px 0 10px; font-size: 8.2pt; break-inside: auto; }77table.t th { text-align: left; font-size: 7.4pt; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); font-weight: 600; padding: 5px 6px; border-bottom: 1.5px solid var(--ink); white-space: nowrap; }78table.t th.r { text-align: right; }79table.t td { padding: 4px 6px; border-bottom: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; }80table.t tr { break-inside: avoid; }81table.t thead { display: table-header-group; }82table.t td.id { font: 600 8.4pt var(--mono); white-space: nowrap; color: var(--ink); }83table.t td.mono, .mono { font-family: var(--mono); }84table.t td code { font-size: 7.6pt; }85table.t.hw { font-size: 7.5pt; }86table.t.hw td { padding: 3px 4px; line-height: 1.3; }87table.t.over td:first-child, table.t.models td:first-child { font-weight: 500; }88table.t.roles td { font-size: 7.4pt; padding: 3px 5px; line-height: 1.3; }89.roles-page { break-before: page; }90.keep { break-inside: avoid; }91table.t.ovh td { font-size: 7.4pt; line-height: 1.3; }92table.t.ovh td:nth-child(6) { min-width: 34mm; } table.t.ovh td code { white-space: normal; word-break: break-all; }93.kpis.stack { grid-template-columns: 1fr; gap: 3mm; }94table.t.tun td:first-child { font: 600 8pt var(--mono); }95table.t.apps td { font-size: 7.8pt; padding: 3px 6px; }96.app-group { margin-bottom: 4px; }97table.t.heat td, table.t.bars td { vertical-align: middle; }98table.t.bars td { padding: 3px 6px; }99table.t.bars td small { line-height: 1.1; }100td small { color: var(--ink-3); font-size: 7.4pt; }101102/* barres */103.meter { white-space: nowrap; }104.bar { display: inline-block; width: 52%; height: 6px; border-radius: 3px; background: var(--paper-3); vertical-align: middle; overflow: hidden; margin-right: 6px; }105.bar i { display: block; height: 100%; background: var(--accent); border-radius: 3px; }106.bar.alt i { background: var(--alt); }107.meter.wide .bar { width: 58%; }108.meter .v { font: 7.8pt var(--mono); color: var(--ink-2); vertical-align: middle; }109110/* statuts */111.st { display: inline-block; padding: 1px 7px; border-radius: 999px; font-size: 7.2pt; font-weight: 600; border: 1px solid var(--line-2); color: var(--ink-2); white-space: nowrap; }112.st::before { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--off); margin-right: 5px; vertical-align: middle; }113.st.on { color: #166534; border-color: #bbf7d0; background: #f0fdf4; } .st.on::before { background: var(--good); }114.st.bad { color: #991b1b; border-color: #fecaca; background: #fef2f2; } .st.bad::before { background: var(--bad); }115.st.off { color: var(--ink-3); background: var(--paper-2); }116117/* fiches, panneaux */118.fiches p { padding: 6px 9px; border-left: 3px solid var(--accent); background: var(--paper-2); border-radius: 0 6px 6px 0; margin-bottom: 5px; font-size: 8pt; break-inside: avoid; }119.panel { border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; break-inside: avoid; }120.flow { margin: 0; padding: 0; list-style: none; counter-reset: f; }121.flow li { display: grid; grid-template-columns: 20px 1fr; gap: 8px; align-items: start; padding: 5px 0; border-bottom: 1px dashed var(--line); font-size: 8.6pt; }122.flow li:last-child { border-bottom: 0; }123.flow li::before { counter-increment: f; content: counter(f, decimal-leading-zero); font: 600 8pt var(--mono); color: var(--accent); }124.flow li b { display: block; font-weight: 650; }125.flow li div span { color: var(--ink-2); display: block; }126.gw { display: grid; grid-template-columns: 70px 1fr; gap: 2px 10px; padding: 6px 0; border-bottom: 1px dashed var(--line); font-size: 8.6pt; }127.gw:last-child { border-bottom: 0; }128.gw b { font: 600 9pt var(--mono); grid-row: span 2; align-self: center; }129.gw span { color: var(--ink-2); }130.gw .mono { font-size: 7.8pt; color: var(--ink-3); }131132/* carte et sites */133figure.map { margin: 0 0 8px; break-inside: avoid; }134figure.map img { width: 100%; height: 78mm; object-fit: cover; object-position: center 40%; border-radius: 8px; border: 1px solid var(--line); display: block; }135figure.map figcaption { font-size: 7.8pt; color: var(--ink-3); margin-top: 4px; }136.sites { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3mm; margin-top: 6px; }137.site { border: 1px solid var(--line); border-radius: 8px; padding: 7px 9px; break-inside: avoid; }138.site .s-h { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; font-size: 9.8pt; }139.site .s-h .mono { font-size: 8pt; color: var(--ink-2); }140.site .s-r { color: var(--ink-3); font-size: 7.8pt; margin: 2px 0 6px; }141.site p { font-size: 7.5pt; color: var(--ink-2); min-height: 20px; margin-bottom: 3px; }142.site .s-n { display: flex; flex-wrap: wrap; gap: 3px; }143.site .s-n span { font: 7.4pt var(--mono); padding: 1px 5px; border-radius: 4px; background: var(--paper-2); border: 1px solid var(--line); }144145.end { display: flex; align-items: center; gap: 8px; margin-top: 18px; color: var(--ink-3); font: 8.4pt var(--mono); }146