{% extends "_base.html" %} {% import "_recipient.html" as r %} {% block styles %} body { font-family: var(--font-body); font-weight: 400; font-size: 13px; line-height: 1.7; color: var(--color-doc-text); } /* Page header — letterhead band */ .page-header { display: flex; justify-content: space-between; align-items: flex-start; padding-bottom: 0; margin-bottom: 0; } .logo-group {} .logo { font-family: var(--font-headline); font-size: 24px; font-weight: 700; color: var(--color-black); letter-spacing: -0.02em; line-height: 1.1; } .logo span { color: var(--color-terracotta); } .header-tagline { font-family: var(--font-body); font-size: 11px; letter-spacing: 0.04em; text-transform: none; color: var(--color-subtle); margin-top: 3px; } .header-contact { text-align: right; font-size: 10px; color: var(--color-body); line-height: 1.55; } .header-contact strong { font-family: var(--font-headline); font-weight: 600; font-size: 11px; color: var(--color-black); } .accent-bar { height: 2px; background: var(--color-terracotta); margin-top: 14px; margin-bottom: 28px; } /* Meta strip */ .meta-strip { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 28px; padding-bottom: 16px; border-bottom: 0.5px solid var(--color-doc-border); } .meta-to { font-size: 12px; color: var(--color-body); line-height: 1.6; } .meta-to strong { font-family: var(--font-headline); font-size: 14px; font-weight: 600; color: var(--color-black); display: block; margin-bottom: 1px; } .meta-right { text-align: right; font-size: 12px; color: var(--color-doc-text); font-weight: 500; line-height: 1.7; padding-top: 2px; } .meta-right .ref { font-size: 11px; color: var(--color-subtle); font-weight: 400; display: block; } .confidential-label { color: var(--color-terracotta); font-weight: 600; } /* Subject line */ .subject-line { border-left: 3px solid var(--color-terracotta); padding-left: 16px; margin-bottom: 24px; } .subject-label { display: none; } .subject-text { font-family: var(--font-headline); font-size: 17px; font-weight: 600; color: var(--color-black); line-height: 1.3; } /* Body content (markdown) */ .body-content p { margin-bottom: 12px; } .body-content strong { font-weight: 600; color: var(--color-black); } .body-content a { color: var(--color-terracotta); text-decoration: none; } /* Headings */ .body-content h1 { font-family: var(--font-headline); font-weight: 700; font-size: 22px; color: var(--color-black); margin-top: 28px; margin-bottom: 12px; line-height: 1.25; } .body-content h2 { font-family: var(--font-headline); font-weight: 700; font-size: 15px; color: var(--color-black); margin-top: 28px; margin-bottom: 10px; line-height: 1.3; letter-spacing: -0.01em; } .body-content h3 { font-family: var(--font-headline); font-weight: 600; font-size: 14px; color: var(--color-black); margin-top: 20px; margin-bottom: 8px; line-height: 1.35; } /* Lists */ .body-content ul, .body-content ol { margin-bottom: 12px; padding-left: 24px; } .body-content li { margin-bottom: 4px; } /* HR — invisible, spacing only */ .body-content hr { border: none; margin: 20px 0; } /* Blockquote */ .body-content blockquote { border-left: 2.5px solid var(--color-terracotta); padding-left: 16px; margin: 16px 0; color: var(--color-subtle); font-style: italic; } /* Code */ .body-content code { font-family: 'Courier New', monospace; font-size: 11px; background: var(--color-light); padding: 1px 4px; border-radius: 3px; } .body-content pre { background: var(--color-light); padding: 14px; border-radius: 6px; overflow-x: auto; margin-bottom: 12px; } .body-content pre code { background: none; padding: 0; } /* Images */ .body-content img, .body-content .inline-svg { display: block; max-width: 100%; max-height: 230mm; height: auto; width: auto; margin: 16px auto; break-inside: avoid; page-break-inside: avoid; } .body-content .inline-svg svg { display: block; max-width: 100%; max-height: 230mm; height: auto; margin: 0 auto; } /* Signature */ .signature-block { margin-top: 1.5rem; font-size: 13px; color: var(--color-doc-text); line-height: 1.6; break-inside: avoid; page-break-inside: avoid; } .signature-block .closing { margin-bottom: 0.5rem; } .signature-block .name { font-weight: 600; color: var(--color-black); } .uid-line, .private-label { font-size: 11px; color: var(--color-body); } /* Tables */ .body-content table { width: 100%; border-collapse: collapse; margin-bottom: 14px; font-size: 12px; } .body-content th { font-family: var(--font-ui); font-weight: 700; text-align: left; padding: 8px 10px; border-bottom: 2px solid var(--color-terracotta); color: var(--color-black); } .body-content td { padding: 8px 10px; border-bottom: 1px solid var(--color-doc-border); } h1, h2, h3 { break-after: avoid; } /* Manual page break — use
in markdown */ .page-break { page-break-before: always; break-before: page; height: 0; } {% endblock %} {% block content %}
{% if SHOW_META %}
{% if HAS_RECIPIENT %}{{ r.block(RECIPIENT_OBJ, STRINGS) }}{% endif %}
{{ DATE }}{% if REF %}Ref: {{ REF }}{% endif %} {% if CONFIDENTIAL %}
{{ STRINGS.confidential_label }}{% endif %}
{% endif %} {% if SUBJECT %}
{{ STRINGS.subject_label }}
{{ SUBJECT }}
{% endif %}
{{ CONTENT | safe }}
{% if SHOW_SIGNATURE %}
{{ STRINGS.signature_closing }}
{{ STRINGS.signature_name }}
{{ STRINGS.signature_org }}
{% endif %} {% endblock %}