/* One-page cheat sheets: A4 portrait, two columns, prints and saves to PDF cleanly. */
@font-face { font-family: "Playfair Display"; font-weight: 700; font-display: swap; src: url("/assets/fonts/playfair-display-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "DM Sans"; font-weight: 400; font-display: swap; src: url("/assets/fonts/dm-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "DM Sans"; font-weight: 700; font-display: swap; src: url("/assets/fonts/dm-sans-latin-700-normal.woff2") format("woff2"); }
@page { size: A4; margin: 10mm; }
:root { --navy: #0B1D3A; --gold: #C4973A; --gold-text: #8a6420; --ink: #1d2738; --line: #e3dccb; }
* { box-sizing: border-box; }
html { background: #ece7dc; }
body { margin: 0; font: 400 9.4pt/1.42 "DM Sans", Arial, sans-serif; color: var(--ink); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.sheet { width: 210mm; min-height: 297mm; margin: 24px auto; padding: 11mm 12mm 9mm; background: #fff; box-shadow: 0 10px 40px rgba(11,29,58,.18); display: flex; flex-direction: column; }
header { background: var(--navy); color: #fff; margin: -11mm -12mm 6mm; padding: 8mm 12mm 6mm; border-bottom: 3px solid var(--gold); }
.brand { margin: 0 0 2mm; font-size: 7.5pt; letter-spacing: .14em; text-transform: uppercase; color: #e8c27a; font-weight: 700; }
h1 { margin: 0; font: 700 20pt/1.15 "Playfair Display", Georgia, serif; }
.sub { margin: 2mm 0 0; font-size: 8.5pt; color: rgba(255,255,255,.8); }
.cols { column-count: 2; column-gap: 7mm; flex: 1; }
h2 { break-after: avoid; margin: 0 0 1.6mm; padding-top: 1mm; font: 700 11pt/1.2 "Playfair Display", Georgia, serif; color: var(--navy); border-bottom: 1.5px solid var(--gold); padding-bottom: 1mm; }
h2 ~ h2 { margin-top: 4mm; }
p, ul, ol { margin: 0 0 2mm; }
ul, ol { padding-left: 4.5mm; }
li { margin-bottom: .6mm; }
strong { color: var(--navy); }
table { width: 100%; border-collapse: collapse; margin: 0 0 2.5mm; break-inside: avoid; font-size: 8.2pt; }
th, td { text-align: left; vertical-align: top; padding: 1.1mm 1.5mm; border-bottom: 1px solid var(--line); }
thead th { background: #f6f1e6; color: var(--gold-text); font-size: 7.4pt; text-transform: uppercase; letter-spacing: .05em; }
footer { margin-top: 4mm; padding-top: 2.5mm; border-top: 1px solid var(--line); font-size: 7pt; color: #5b6578; }
@media print { html { background: #fff; } .sheet { margin: 0; width: auto; min-height: 0; box-shadow: none; padding: 0; } header { margin: 0 0 5mm; } }
@media (max-width: 820px) { .sheet { width: auto; min-height: 0; margin: 0; padding: 16px; } header { margin: -16px -16px 16px; padding: 20px 16px; } .cols { column-count: 1; } }
@media (max-width: 600px) { .sheet table { display: block; overflow-x: auto; } }
