/* Documents officiels: central configuration workspace, fed by school settings. */
.official-documents-center { display: grid; gap: 14px; min-width: 0; }
.official-documents-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 22px; padding: 20px; color: #fff; border: 1px solid color-mix(in srgb, var(--color-sidebar-bg) 82%, #fff); border-radius: 7px; background: var(--color-sidebar-bg); box-shadow: 0 7px 16px color-mix(in srgb, var(--color-sidebar-bg) 20%, transparent); }
.official-documents-hero > div:first-child { display: grid; grid-template-columns: 38px minmax(0, 1fr); column-gap: 12px; align-items: center; }
.official-hero-icon { grid-row: span 2; display: grid; width: 38px; height: 38px; place-items: center; border-radius: 6px; background: rgba(255,255,255,.12); }
.official-hero-icon .card-svg { width: 21px; height: 21px; }
.official-documents-hero h2 { margin: 0; color: #fff; font-size: 22px; }
.official-documents-hero p { grid-column: 2; max-width: 580px; margin: 4px 0 0; color: rgba(255,255,255,.9); font-size: 12px; line-height: 1.45; }
.official-documents-hero > .outline-action { align-self: start; min-height: 34px; color: var(--color-sidebar-bg); border-color: #fff; border-radius: 4px; background: #fff; font-size: 12px; font-weight: 800; }
.official-metric-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.official-metric-grid article { display: grid; grid-template-columns: 29px 1fr; column-gap: 8px; align-items: center; min-height: 60px; padding: 9px 10px; color: var(--color-sidebar-bg); border: 1px solid rgba(255,255,255,.45); border-radius: 5px; background: #fff; }
.official-metric-grid article > span { display: grid; width: 29px; height: 29px; place-items: center; color: var(--color-primary); border-radius: 4px; background: var(--color-primary-soft); }
.official-metric-grid .card-svg { width: 16px; height: 16px; }
.official-metric-grid b { font-size: 19px; line-height: 1; }
.official-metric-grid small { grid-column: 2; margin-top: 3px; color: var(--color-text-muted); font-size: 10px; font-weight: 700; }
.official-documents-tabs { display: flex; min-width: 0; overflow-x: auto; border: 1px solid var(--color-border); border-radius: 5px; background: #fff; }
.official-documents-tabs button { flex: 1 0 auto; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 12px; color: var(--color-text-secondary); border: 0; border-right: 1px solid var(--color-border); background: #fff; font-size: 11px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.official-documents-tabs button:last-child { border-right: 0; }
.official-documents-tabs button:hover { color: var(--color-primary); background: var(--color-primary-soft); }
.official-documents-tabs button.active { color: var(--color-primary); box-shadow: inset 0 -3px 0 var(--color-primary); }
.official-documents-tabs .button-svg { width: 14px; height: 14px; }
.official-documents-content { display: grid; gap: 8px; }
.official-doc-accordion { overflow: hidden; border: 1px solid var(--color-border); border-radius: 5px; background: #fff; box-shadow: 0 3px 9px rgba(10,37,64,.09); }
.official-doc-accordion-head { width: 100%; min-height: 54px; display: grid; grid-template-columns: 26px 22px minmax(150px, auto) minmax(0, 1fr) 20px; gap: 10px; align-items: center; padding: 0 13px; color: var(--color-sidebar-bg); border: 0; background: #fff; text-align: left; cursor: pointer; }
.official-doc-accordion-head:hover { background: var(--color-primary-soft); }
.official-doc-accordion-head > b { display: grid; width: 24px; height: 24px; place-items: center; color: #fff; border-radius: 3px; background: var(--color-sidebar-bg); font-size: 11px; }
.official-doc-accordion-head > span { color: var(--color-primary); }
.official-doc-accordion-head .button-svg { width: 17px; height: 17px; }
.official-doc-accordion-head strong { font-size: 13px; }
.official-doc-accordion-head small { color: var(--color-text-muted); font-size: 11px; }
.official-doc-accordion-head i { justify-self: end; display: grid; place-items: center; color: var(--color-sidebar-bg); font-style: normal; transition: transform .16s ease; }
.official-doc-accordion-head i .button-svg { width: 18px; height: 18px; }
.official-doc-accordion.open .official-doc-accordion-head { color: #fff; border-bottom: 1px solid color-mix(in srgb, var(--color-sidebar-bg) 75%, #fff); background: var(--color-sidebar-bg); }
.official-doc-accordion.open .official-doc-accordion-head > b { color: #fff; background: rgba(255,255,255,.16); }
.official-doc-accordion.open .official-doc-accordion-head > span,
.official-doc-accordion.open .official-doc-accordion-head > i { color: var(--color-primary-soft); }
.official-doc-accordion.open .official-doc-accordion-head strong { color: #fff; }
.official-doc-accordion.open .official-doc-accordion-head small { color: rgba(255,255,255,.8); }
.official-doc-accordion.open { box-shadow: 0 10px 18px rgba(10,37,64,.18); }
.official-doc-accordion.open .official-doc-accordion-head i { transform: rotate(180deg); }
.official-doc-accordion-body { padding: 14px; animation: none; }
@keyframes official-doc-open { from { opacity: .35; transform: translateY(-3px); } to { opacity: 1; transform: translateY(0); } }
.official-letterhead-layout, .official-footer-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(290px, .8fr); gap: 18px; align-items: start; }
.official-letterhead-preview { position: relative; min-height: 250px; overflow: hidden; padding: 25px 24px; border: 1px solid var(--color-border); background: #fff; }
.official-preview-watermark { position: absolute; right: -22px; bottom: 30px; color: color-mix(in srgb, var(--color-primary) 12%, transparent); font-size: 38px; font-weight: 900; transform: rotate(-28deg); pointer-events: none; }
.official-letterhead-preview .official-letterhead { position: relative; z-index: 1; transform: scale(.86); transform-origin: top left; width: 116%; }
.official-document-settings { display: grid; }
.official-document-settings > label { min-height: 40px; display: grid; grid-template-columns: minmax(150px, .9fr) minmax(0, 1.1fr); gap: 10px; align-items: center; padding: 3px 0; color: var(--color-sidebar-bg); border-bottom: 1px solid var(--color-border); font-size: 11px; font-weight: 700; }
.official-document-settings > label:last-of-type { border-bottom: 0; }
.official-doc-accordion.open input, .official-doc-accordion.open select { min-height: 34px; height: 34px; }
.official-document-settings input, .official-document-settings select { width: 100%; min-height: 34px; height: 34px; min-width: 0; padding: 0 9px; color: var(--color-text-primary); border: 1px solid var(--color-border); border-radius: 2px; background: var(--color-input-bg); font: inherit; }
.official-inline-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 12px; }
.official-inline-actions .outline-action { min-height: 33px; padding: 0 12px; border-radius: 3px; font-size: 11px; }
.official-footer-preview { min-height: 180px; display: grid; align-content: end; gap: 7px; padding: 20px; color: var(--color-sidebar-bg); border: 1px solid var(--color-border); background: linear-gradient(to bottom, #fff 0 70%, var(--color-primary-soft) 70% 100%); font-size: 12px; }
.official-footer-preview b { justify-self: end; font-size: 10px; }
.official-section-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 13px; }
.official-section-toolbar > div { display: flex; flex-wrap: wrap; gap: 8px; }
.official-section-toolbar h3 { width: 100%; margin: 0; color: var(--color-sidebar-bg); font-size: 15px; }
.official-section-toolbar p { width: 100%; margin: 0; color: var(--color-text-muted); font-size: 11px; }
.official-section-toolbar .primary-action, .official-section-toolbar .outline-action { min-height: 33px; padding: 0 11px; border-radius: 3px; font-size: 11px; white-space: nowrap; }
.official-two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.official-two-columns > section { min-width: 0; }
.official-two-columns h4 { margin: 0 0 8px; color: var(--color-sidebar-bg); font-size: 12px; }
.official-person-list { display: grid; gap: 8px; }
.official-person-card { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 76px; padding: 9px; border: 1px solid var(--color-border); border-radius: 4px; background: #fff; }
.official-person-image, .official-stamp-image { display: grid; width: 42px; height: 42px; place-items: center; overflow: hidden; color: var(--color-primary); border: 1px solid var(--color-border); border-radius: 3px; background: var(--color-primary-soft); }
.official-stamp-image { color: var(--color-sidebar-bg); filter: grayscale(.15); }
.official-person-image img, .official-stamp-image img { width: 100%; height: 100%; object-fit: contain; }
.official-person-image .card-svg, .official-stamp-image .card-svg { width: 19px; height: 19px; }
.official-person-card strong, .official-person-card small { display: block; }
.official-person-card strong { color: var(--color-sidebar-bg); font-size: 12px; }
.official-person-card small, .official-person-card p { margin: 2px 0 0; color: var(--color-text-muted); font-size: 10px; }
.official-person-card p { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.official-card-actions { display: flex; gap: 4px; }
.official-card-actions .icon-action { width: 28px; height: 28px; color: var(--color-primary); border-radius: 3px; }
.official-status { display: inline-flex; width: fit-content; margin-top: 4px; padding: 2px 6px; border-radius: 10px; font-size: 9px; font-weight: 800; }
.official-status.active { color: #147a42; background: #e6f8ed; }
.official-status.inactive { color: #8a5c13; background: #fff4d9; }
.official-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.official-category-card { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 9px; border: 1px solid var(--color-border); border-radius: 4px; background: #fff; }
.official-category-card > span { display: grid; width: 29px; height: 29px; flex: 0 0 auto; place-items: center; color: var(--color-primary); border-radius: 3px; background: var(--color-primary-soft); }
.official-category-card .card-svg { width: 16px; height: 16px; }
.official-category-card strong, .official-category-card small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.official-category-card strong { color: var(--color-sidebar-bg); font-size: 11px; }.official-category-card small { margin-top: 2px; color: var(--color-text-muted); font-size: 9px; }
.official-doc-table-wrap { overflow-x: auto; border: 1px solid var(--color-border); border-radius: 4px; }
.official-doc-table { width: 100%; min-width: 820px; border-collapse: collapse; font-size: 10px; }
.official-doc-table th { padding: 9px 8px; color: var(--color-sidebar-bg); border-bottom: 1px solid var(--color-border); background: var(--color-primary-soft); font-size: 10px; text-align: left; white-space: nowrap; }
.official-doc-table td { padding: 8px; color: var(--color-text-secondary); border-bottom: 1px solid var(--color-border); vertical-align: middle; }
.official-doc-table tbody tr:hover { background: color-mix(in srgb, var(--color-primary-soft) 55%, #fff); }
.official-doc-table td strong, .official-doc-table td small { display: block; }.official-doc-table td strong { color: var(--color-sidebar-bg); font-size: 10px; }.official-doc-table td small { color: var(--color-text-muted); font-size: 9px; }
.official-table-actions { white-space: nowrap; }.official-table-actions button { min-height: 26px; padding: 0 6px; color: var(--color-primary); border: 1px solid var(--color-border); border-radius: 3px; background: #fff; font-size: 9px; font-weight: 700; cursor: pointer; }.official-table-actions button + button { margin-left: 4px; }
.official-validation-note, .official-documents-note { padding: 9px 11px; color: var(--color-sidebar-bg); border-left: 3px solid var(--color-primary); background: var(--color-primary-soft); font-size: 11px; line-height: 1.45; }
.official-validation-note { margin-bottom: 12px; }.official-documents-note { margin: 0; }
.official-empty-row { padding: 16px !important; color: var(--color-text-muted) !important; text-align: center; }
.official-dialog-preview { grid-column: 1 / -1; position: relative; min-height: 280px; overflow: hidden; padding: 18px; border: 1px solid var(--color-border); background: #fff; }.official-dialog-preview .official-letterhead { transform: scale(.74); transform-origin: top left; width: 135%; }.official-dialog-preview h3 { margin: -25px 0 8px; color: var(--color-sidebar-bg); font-size: 14px; text-align: center; }.official-dialog-preview p { margin: 0; color: var(--color-text-muted); font-size: 11px; text-align: center; }

/* Five school-owned document models. Their decorative treatment is driven solely by the establishment palette. */
.official-model-caption { display: grid; gap: 2px; padding: 8px 0; color: var(--color-text-muted); border-bottom: 1px solid var(--color-border); font-size: 10px; }
.official-model-caption b { color: var(--color-sidebar-bg); font-size: 12px; }
.official-letterhead-preview { display: grid; align-content: start; gap: 12px; min-height: 305px; }
.official-letterhead-preview .official-document-footer { transform: scale(.86); transform-origin: top left; width: 116%; }
.official-template { position: relative; display: block; min-width: 0; padding: 0; color: var(--letterhead-text); border: 0; background: #fff; }
.official-template-logo { display: grid; width: 62px; height: 66px; flex: 0 0 auto; place-items: center; overflow: hidden; border: 1px solid color-mix(in srgb, var(--letterhead-color) 30%, #fff); border-radius: 3px; background: #fff; }
.official-template-logo .school-logo { width: 52px; height: 56px; object-fit: contain; box-shadow: none; }
.official-template-name { min-width: 0; }
.official-template-name h1 { margin: 0; color: var(--letterhead-color); font-size: 20px; line-height: 1.06; font-weight: 900; }
.official-template-name p { margin: 4px 0 0; color: var(--letterhead-text); font-size: 10px; font-weight: 700; }
.official-template-address { display: flex; align-items: flex-start; gap: 5px; margin-top: 7px; color: var(--letterhead-text); font-size: 9px; line-height: 1.3; }
.official-template-address .contact-svg { width: 11px; height: 11px; flex: 0 0 auto; color: var(--letterhead-color); }
.official-template-contacts { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 6px; color: var(--letterhead-text); font-size: 9px; line-height: 1.3; }
.official-template-contacts b { color: var(--letterhead-color); }
.official-template-rule { height: 3px; margin-top: 12px; background: var(--letterhead-color); }
.official-template-rule.line-simple { height: 1px; }.official-template-rule.line-double { height: 4px; border-top: 1px solid var(--letterhead-color); border-bottom: 1px solid var(--letterhead-color); background: transparent; }.official-template-rule.line-épaisse { height: 4px; }.official-template-rule.line-aucune { display: none; }

.official-template-1 { padding: 5px 6px 0; }.official-template-one-top { display: flex; align-items: flex-start; gap: 12px; }.official-template-1 .official-template-name h1 { color: var(--letterhead-text); font-size: 18px; }.official-template-1 .official-template-name p { color: var(--letterhead-text); font-weight: 600; }.official-template-1 .official-template-rule { background: color-mix(in srgb, var(--letterhead-text) 88%, #fff); }
.official-template-2 { display: grid; grid-template-columns: 20px minmax(0, 1fr); min-height: 110px; overflow: hidden; }.official-template-side-band { background: var(--letterhead-color); }.official-template-two-main { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 12px 13px; }.official-template-two-brand { display: flex; gap: 10px; align-items: flex-start; }.official-template-two-details { display: grid; align-content: start; gap: 5px; min-width: 92px; color: var(--letterhead-text); font-size: 8px; text-align: right; }.official-template-two-details .official-template-contacts { justify-content: end; margin: 0; }.official-template-two-details > span { display: block; }.official-template-two-details > span b { color: var(--letterhead-color); }
.official-template-3 { min-height: 110px; overflow: hidden; padding: 21px 15px 10px; }.official-template-wave-top { position: absolute; top: -28px; right: -30px; width: 135px; height: 70px; border: 12px solid var(--letterhead-color); border-left: 0; border-bottom: 0; border-radius: 0 0 0 100%; opacity: .86; }.official-template-wave-top::after { content: ""; position: absolute; top: 10px; right: 12px; width: 114px; height: 55px; border: 7px solid var(--letterhead-secondary); border-left: 0; border-bottom: 0; border-radius: 0 0 0 100%; }.official-template-three-main { position: relative; z-index: 1; display: flex; gap: 11px; align-items: flex-start; }.official-template-3::after { content: ""; position: absolute; bottom: -46px; left: -28px; width: 145px; height: 70px; border: 11px solid var(--letterhead-color); border-right: 0; border-top: 0; border-radius: 0 100% 0 0; opacity: .86; }
.official-template-4 { padding: 7px 6px 0; }.official-template-four-main { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(95px, auto); gap: 10px; align-items: start; }.official-template-4 .official-template-logo { width: 45px; height: 49px; border: 0; }.official-template-4 .official-template-logo .school-logo { width: 40px; height: 43px; }.official-template-4 .official-template-name h1 { font-size: 16px; }.official-template-four-details { display: grid; justify-items: end; gap: 4px; color: var(--letterhead-text); font-size: 8px; text-align: right; }.official-template-four-details .official-template-address { justify-content: end; margin: 0; }.official-template-four-details > span { max-width: 120px; }.official-template-4 .official-template-rule { margin-top: 15px; }
.official-template-5 { min-height: 112px; overflow: hidden; padding: 13px 14px; border-top: 7px solid var(--letterhead-secondary); }.official-template-5::before { content: ""; position: absolute; top: 0; right: -22px; width: 132px; height: 26px; background: var(--letterhead-color); transform: skewX(-31deg); transform-origin: top; }.official-template-five-top { position: relative; z-index: 1; display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(105px, .7fr); gap: 10px; align-items: start; }.official-template-5 .official-template-logo { width: 54px; height: 58px; }.official-template-5 .official-template-logo .school-logo { width: 46px; height: 50px; }.official-template-five-contact { display: grid; gap: 5px; color: var(--letterhead-text); font-size: 8px; line-height: 1.3; text-align: right; }.official-template-five-contact .official-template-address { justify-content: end; margin: 0; }

.official-document-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 23px; padding: 5px 8px; color: var(--letterhead-text); border-top: 1px solid var(--letterhead-color); background: #fff; font-size: 8px; line-height: 1.2; }.official-document-footer.align-gauche { text-align: left; }.official-document-footer.align-centre { text-align: center; }.official-document-footer.align-droite { text-align: right; }.official-footer-data { flex: 1; }.official-footer-page { flex: 0 0 auto; font-weight: 800; }.official-footer-1 { border-top-color: color-mix(in srgb, var(--letterhead-text) 80%, #fff); }.official-footer-2 { padding-left: 26px; border-top: 3px solid var(--letterhead-color); background: linear-gradient(90deg, var(--letterhead-color) 0 20px, #fff 20px 100%); }.official-footer-3 { border-top: 3px double var(--letterhead-color); }.official-footer-4 { border-top-width: 3px; }.official-footer-5 { color: #fff; border: 0; background: var(--letterhead-color); }
.official-footer-preview { min-height: 180px; display: grid; align-content: end; padding: 20px; background: #fff; }.official-footer-preview .official-document-footer { width: 100%; }

/* Visible model picker: every preview is rendered from this school's own identity and palette. */
.official-template-gallery { display: grid; gap: 10px; margin-bottom: 16px; }
.official-template-gallery-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.official-template-gallery-heading h3 { margin: 0; color: var(--color-sidebar-bg); font-size: 14px; }
.official-template-gallery-heading p { margin: 3px 0 0; color: var(--color-text-muted); font-size: 11px; }
.official-template-gallery-heading > span { color: var(--color-primary); font-size: 10px; font-weight: 700; text-align: right; }
.official-template-gallery-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.official-template-choice { display: grid; min-width: 0; padding: 0; overflow: hidden; color: var(--color-text-primary); border: 1px solid var(--color-border); border-radius: 4px; background: #fff; text-align: left; cursor: pointer; transition: border-color .16s, box-shadow .16s; }
.official-template-choice:hover { border-color: var(--color-primary); box-shadow: 0 5px 12px color-mix(in srgb, var(--color-primary) 14%, transparent); }
.official-template-choice.selected { border: 2px solid var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary-soft), 0 6px 14px color-mix(in srgb, var(--color-primary) 16%, transparent); }
.official-template-choice-preview { position: relative; display: block; min-height: 127px; padding: 8px; overflow: hidden; border-bottom: 1px solid var(--color-border); background: #f7fafc; pointer-events: none; }
.official-template-choice-preview .official-letterhead, .official-template-choice-preview .official-document-footer { transform: scale(.46); transform-origin: top left; width: 217.4%; }
.official-template-choice-copy { display: grid; gap: 3px; padding: 9px; }
.official-template-choice-copy b { color: var(--color-primary); font-size: 10px; }
.official-template-choice-copy strong { color: var(--color-sidebar-bg); font-size: 11px; }
.official-template-choice-copy small { min-height: 30px; color: var(--color-text-muted); font-size: 9px; line-height: 1.35; }
.official-template-choice-copy em { width: fit-content; padding: 3px 5px; color: var(--color-primary); border-radius: 2px; background: var(--color-primary-soft); font-size: 9px; font-style: normal; font-weight: 800; }
.official-template-choice.selected .official-template-choice-copy em { color: #fff; background: var(--color-primary); }

@media (max-width: 760px) { .official-letterhead-preview .official-document-footer { transform: none; width: 100%; }.official-template-two-main, .official-template-five-top { grid-template-columns: minmax(0, 1fr); }.official-template-two-details, .official-template-five-contact { text-align: left; }.official-template-two-details .official-template-contacts { justify-content: start; }.official-template-four-main { grid-template-columns: auto minmax(0, 1fr); }.official-template-four-details { grid-column: 1 / -1; justify-items: start; text-align: left; }.official-template-four-details .official-template-address { justify-content: start; } }
@media (max-width: 1050px) { .official-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.official-letterhead-layout, .official-footer-layout { grid-template-columns: 1fr; }.official-letterhead-preview .official-letterhead { transform: scale(.92); width: 109%; } }
@media (max-width: 1200px) { .official-template-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .official-documents-hero { grid-template-columns: 1fr; }.official-documents-hero > .outline-action { justify-self: start; }.official-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.official-documents-tabs { margin: 0 -2px; }.official-doc-accordion-head { grid-template-columns: 24px 20px minmax(0, 1fr) 18px; gap: 7px; padding: 0 10px; }.official-doc-accordion-head small { display: none; }.official-doc-accordion-body { padding: 10px; }.official-document-settings > label { grid-template-columns: 1fr; gap: 3px; padding: 7px 0; }.official-two-columns { grid-template-columns: 1fr; }.official-category-grid { grid-template-columns: 1fr; }.official-section-toolbar { flex-direction: column; }.official-section-toolbar > div:last-child { width: 100%; }.official-section-toolbar .primary-action, .official-section-toolbar .outline-action { flex: 1; }.official-letterhead-preview .official-letterhead { transform: none; width: 100%; }.official-dialog-preview .official-letterhead { transform: scale(.62); width: 161%; } }
@media (max-width: 760px) { .official-template-gallery-heading { display: grid; gap: 4px; }.official-template-gallery-heading > span { text-align: left; }.official-template-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px) { .official-template-gallery-grid { grid-template-columns: 1fr; } }

/* Approved overview: assets and defaults only. Detailed document configuration stays in the future editor. */
.official-overview-section { min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 5px; background: #fff; box-shadow: 0 3px 10px rgba(10,37,64,.08); }
.official-documents-hero .official-metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.official-overview-section > header { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 12px; color: #fff; background: var(--color-sidebar-bg); }
.official-overview-section > header > div { display: flex; align-items: center; gap: 8px; min-width: 0; }
.official-overview-section > header span { display: grid; width: 22px; height: 22px; place-items: center; color: var(--color-primary-soft); border-radius: 3px; background: rgba(255,255,255,.13); }
.official-overview-section > header .button-svg { width: 14px; height: 14px; }
.official-overview-section h3 { margin: 0; color: #fff; font-size: 13px; }
.official-section-link { display: inline-flex; align-items: center; gap: 5px; padding: 0; color: #fff; border: 0; background: transparent; font-size: 10px; font-weight: 800; cursor: pointer; }
.official-section-link:hover { color: var(--color-primary-soft); }.official-section-link b { font-size: 15px; line-height: 1; }
.official-template-rail-wrap { position: relative; min-width: 0; padding: 9px 34px; }
.official-template-rail { display: flex; gap: 11px; min-width: 0; overflow-x: auto; padding: 1px 0 5px; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: var(--color-primary) transparent; }
.official-template-rail::-webkit-scrollbar { height: 6px; }.official-template-rail::-webkit-scrollbar-thumb { border-radius: 4px; background: var(--color-primary); }
.official-a4-template-card { position: relative; width: 164px; min-width: 164px; display: grid; justify-items: center; gap: 3px; padding: 7px 7px 8px; color: var(--color-text-primary); border: 1px solid color-mix(in srgb, var(--color-primary) 26%, var(--color-border)); border-radius: 4px; background: color-mix(in srgb, var(--color-primary-soft) 48%, #fff); text-align: center; cursor: pointer; }
.official-a4-template-card:hover { border-color: var(--color-primary); box-shadow: 0 4px 10px color-mix(in srgb, var(--color-primary) 13%, transparent); }
.official-a4-template-card.selected { border: 2px solid var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary-soft); }
.official-a4-template-card > strong { color: var(--color-sidebar-bg); font-size: 13px; }.official-a4-template-card > small { color: var(--color-text-muted); font-size: 10px; }
.official-default-mark { position: absolute; z-index: 2; top: 7px; left: 7px; display: inline-flex; align-items: center; gap: 3px; padding: 3px 5px; color: #fff; border-radius: 2px; background: var(--color-sidebar-bg); font-size: 8px; font-weight: 800; text-transform: uppercase; }.official-default-mark .button-svg { width: 10px; height: 10px; }.official-default-mark em { font-style: normal; }
.official-a4-miniature { position: relative; display: block; width: 124px; aspect-ratio: 210 / 297; overflow: hidden; border: 1px solid #dde3ec; background: #fff; box-shadow: 0 2px 5px rgba(10,37,64,.11); }
.official-a4-paper { position: absolute; inset: 0; display: block; overflow: hidden; background: #fff; }.official-a4-header { position: absolute; top: 0; left: 0; width: 278%; transform: scale(.36); transform-origin: top left; }.official-a4-footer { position: absolute; bottom: 0; left: 0; width: 278%; transform: scale(.36); transform-origin: bottom left; }.official-a4-body { position: absolute; inset: 47px 14px 29px; display: grid; align-content: start; gap: 5px; }.official-a4-body i { display: block; height: 1px; background: #e7ebf0; }.official-a4-body i:nth-child(2) { width: 83%; }.official-a4-body i:nth-child(3) { width: 90%; }.official-a4-body i:nth-child(4) { width: 66%; }
.official-rail-control { position: absolute; z-index: 3; top: 50%; display: grid; width: 32px; height: 32px; place-items: center; padding: 0; color: var(--color-primary); border: 1px solid color-mix(in srgb, var(--color-primary) 46%, #fff); border-radius: 50%; background: #fff; box-shadow: 0 3px 8px color-mix(in srgb, var(--color-sidebar-bg) 15%, transparent); cursor: pointer; transform: translateY(-50%); }.official-rail-control:hover { color: #fff; border-color: var(--color-primary); background: var(--color-primary); box-shadow: 0 4px 10px color-mix(in srgb, var(--color-primary) 28%, transparent); }.official-rail-control.left { left: 5px; }.official-rail-control.right { right: 5px; }.official-rail-control.right .button-svg { transform: rotate(180deg); }.official-rail-control .button-svg { width: 17px; height: 17px; stroke-width: 2.3; }
.official-template-context { min-height: 43px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 12px 9px; }.official-template-context > span { color: var(--color-text-muted); font-size: 12px; }.official-template-context > span b { color: var(--color-sidebar-bg); }.official-template-context > div { display: flex; flex-wrap: wrap; gap: 6px; justify-content: end; }.official-template-context .primary-action, .official-template-context .outline-action { min-height: 31px; padding: 0 10px; border-radius: 3px; font-size: 12px; }.official-template-context .button-svg { width: 14px; height: 14px; }
.official-overview-assets { display: grid; grid-template-columns: minmax(210px,.85fr) minmax(300px,1.1fr) minmax(355px,1.35fr); gap: 12px; align-items: stretch; }
.official-overview-assets > .official-overview-section { height: 100%; display: grid; grid-template-rows: 36px minmax(0, 1fr) auto; }
.official-footer-overview-content { display: grid; gap: 9px; padding: 10px; }.official-footer-overview-content small { display: block; color: var(--color-text-muted); font-size: 9px; }.official-footer-overview-content strong { display: block; margin-top: 2px; color: var(--color-sidebar-bg); font-size: 11px; }.official-footer-miniature { min-height: 75px; display: grid; align-content: end; padding: 8px; overflow: hidden; border: 1px solid var(--color-border); background: #fff; }.official-footer-miniature .official-document-footer { transform: scale(.72); transform-origin: bottom left; width: 139%; }
.official-footer-overview > footer { display: flex; gap: 7px; padding: 0 10px 10px; }.official-footer-overview .outline-action { flex: 1; min-height: 29px; padding: 0 7px; border-radius: 3px; font-size: 9px; }.official-footer-overview .button-svg { width: 12px; height: 12px; }
.official-stamp-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; padding: 10px; }.official-overview-asset { display: grid; grid-template-columns: 60px minmax(0,1fr); gap: 7px; min-width: 0; }.official-stamp-preview { display: grid; width: 60px; height: 60px; place-items: center; overflow: hidden; color: var(--color-primary); border: 1px solid var(--color-border); border-radius: 50%; background: #fff; }.official-stamp-preview img { width: 100%; height: 100%; object-fit: contain; }.official-stamp-preview .card-svg { width: 26px; height: 26px; }.official-overview-asset strong, .official-overview-asset small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.official-overview-asset strong { color: var(--color-sidebar-bg); font-size: 10px; }.official-overview-asset small { margin-top: 2px; color: var(--color-text-muted); font-size: 8px; }.official-overview-asset em { display: inline-flex; margin: 3px 0 0 3px; color: var(--color-primary); font-size: 8px; font-style: normal; font-weight: 800; }.official-overview-asset footer { grid-column: 1 / -1; display: flex; gap: 4px; }.official-overview-asset footer button { flex: 1; min-height: 23px; padding: 0 3px; color: var(--color-primary); border: 1px solid var(--color-border); border-radius: 2px; background: #fff; font-size: 8px; font-weight: 700; cursor: pointer; }.official-overview-asset footer button.danger { color: #d14c42; border-color: #f2c7c2; }.official-overview-asset footer button:hover { border-color: var(--color-primary); background: var(--color-primary-soft); }.official-section-footer { padding: 0 10px 10px; }.official-section-footer .outline-action { width: 100%; min-height: 29px; border-radius: 3px; font-size: 9px; }.official-section-footer .button-svg { width: 12px; height: 12px; }
.official-signatory-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; padding: 10px; }.official-signatory-card { display: grid; gap: 6px; min-width: 0; padding: 7px; border: 1px solid var(--color-border); border-radius: 3px; background: #fff; }.official-signatory-card strong, .official-signatory-card small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.official-signatory-card strong { color: var(--color-sidebar-bg); font-size: 10px; }.official-signatory-card small { color: var(--color-text-muted); font-size: 8px; }.official-signature-preview { display: grid; height: 46px; place-items: center; overflow: hidden; border: 1px solid var(--color-border); background: #fff; }.official-signature-preview img { width: 100%; height: 100%; object-fit: contain; }.official-signature-preview span { color: var(--color-text-muted); font-size: 8px; }.official-signatory-card footer { display: grid; gap: 4px; }.official-signatory-card footer button { min-height: 22px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 0 4px; color: var(--color-primary); border: 1px solid var(--color-border); border-radius: 2px; background: #fff; font-size: 8px; font-weight: 700; cursor: pointer; }.official-signatory-card footer button:hover { border-color: var(--color-primary); background: var(--color-primary-soft); }.official-signatory-card .button-svg { width: 11px; height: 11px; }.official-add-asset { min-height: 133px; display: grid; align-content: center; justify-items: center; gap: 4px; padding: 7px; color: var(--color-primary); border: 1px dashed color-mix(in srgb,var(--color-primary) 45%,#fff); border-radius: 3px; background: #fff; cursor: pointer; }.official-add-asset:hover { background: var(--color-primary-soft); }.official-add-asset .button-svg { width: 22px; height: 22px; }.official-add-asset b { font-size: 10px; }.official-add-asset span { font-size: 9px; }.official-signatories-overview > p { margin: 0 10px 10px; padding: 7px; color: var(--color-text-muted); border-left: 2px solid var(--color-primary); background: var(--color-primary-soft); font-size: 8px; line-height: 1.4; }
.official-documents-pending { display: grid; justify-items: start; gap: 6px; padding: 24px; border: 1px solid var(--color-border); border-radius: 4px; background: #fff; }.official-documents-pending > span { display: grid; width: 34px; height: 34px; place-items: center; color: var(--color-primary); border-radius: 4px; background: var(--color-primary-soft); }.official-documents-pending .card-svg { width: 18px; height: 18px; }.official-documents-pending h3 { margin: 0; color: var(--color-sidebar-bg); font-size: 14px; }.official-documents-pending p { max-width: 580px; margin: 0; color: var(--color-text-muted); font-size: 11px; line-height: 1.5; }
.official-library-dialog-note { margin: 0 0 10px; color: var(--color-text-muted); font-size: 11px; line-height: 1.45; }.official-library-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }.official-library-item { position: relative; display: grid; justify-items: center; gap: 3px; min-width: 0; padding: 7px; border: 1px solid var(--color-border); border-radius: 3px; background: #fff; cursor: pointer; }.official-library-item:has(input:checked) { border: 2px solid var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary-soft); }.official-library-item input { position: absolute; top: 6px; left: 6px; accent-color: var(--color-primary); }
@media (max-width: 1180px) { .official-overview-assets { grid-template-columns: repeat(2,minmax(0,1fr)); }.official-signatories-overview { grid-column: 1 / -1; }.official-signatory-list { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 760px) { .official-overview-assets { grid-template-columns: 1fr; }.official-signatories-overview { grid-column: auto; }.official-template-context { align-items: flex-start; flex-direction: column; }.official-template-context > div { justify-content: start; }.official-signatory-list { grid-template-columns: repeat(2,minmax(0,1fr)); }.official-library-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 460px) { .official-template-rail-wrap { padding-right: 29px; padding-left: 29px; }.official-a4-template-card { width: 148px; min-width: 148px; }.official-stamp-list, .official-signatory-list, .official-library-grid { grid-template-columns: 1fr; } }

/* Compact Documents officiels heading and local sub-navigation. */
.official-documents-hero { gap: 8px 16px; padding: 14px 18px; }
.official-documents-hero > div:first-child { grid-template-columns: 32px minmax(0, 1fr); column-gap: 10px; }
.official-hero-icon { width: 32px; height: 32px; border-radius: 4px; }.official-hero-icon .card-svg { width: 18px; height: 18px; }
.official-documents-hero h2 { font-size: 19px; }.official-documents-hero p { max-width: 650px; margin-top: 2px; font-size: 10px; line-height: 1.35; }
.official-documents-hero > .outline-action { min-height: 31px; padding: 0 11px; font-size: 10px; }.official-documents-hero > .outline-action .button-svg { width: 13px; height: 13px; }
.official-metric-grid { display: none; }
.official-metric-table { grid-column: 1 / -1; width: min(650px, 100%); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; color: #fff; border: 1px solid rgba(255,255,255,.42); border-radius: 5px; background: rgba(255,255,255,.07); }
.official-metric-table article { min-width: 0; padding: 6px 9px 7px; border-right: 1px solid rgba(255,255,255,.34); }.official-metric-table article:last-child { border-right: 0; }
.official-metric-table small { display: block; overflow: hidden; color: rgba(255,255,255,.82); font-size: 9px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }.official-metric-table article > div { display: flex; align-items: center; gap: 5px; margin-top: 2px; }.official-metric-table span { display: grid; color: var(--color-primary-soft); }.official-metric-table .button-svg { width: 12px; height: 12px; }.official-metric-table b { color: #fff; font-size: 14px; line-height: 1; }
.official-documents-tabs { width: fit-content; max-width: 100%; overflow: hidden; border-radius: 4px; }.official-documents-tabs button { flex: 0 0 142px; min-height: 34px; padding: 0 10px; font-size: 12px; }.official-documents-tabs .button-svg { width: 13px; height: 13px; }
.official-subtab-intro { padding: 2px 0 4px; }.official-subtab-intro > div { display: flex; align-items: center; gap: 10px; }.official-subtab-intro > div > span { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; color: var(--color-primary); border-radius: 3px; background: var(--color-primary-soft); }.official-subtab-intro .card-svg { width: 18px; height: 18px; }.official-subtab-intro h2 { margin: 0; color: var(--color-sidebar-bg); font-size: 15px; }.official-subtab-intro p { max-width: 760px; margin: 2px 0 0; color: var(--color-text-muted); font-size: 10px; line-height: 1.35; }
@media (max-width: 760px) { .official-metric-table { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }.official-metric-table article:nth-child(2) { border-right: 0; }.official-metric-table article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.34); }.official-documents-tabs { width: 100%; overflow-x: auto; }.official-documents-tabs button { flex-basis: 130px; } }

/* The asset area intentionally uses two rows: top defaults, then a full-width signatory register. */
.official-overview-primary { display: grid; grid-template-columns: minmax(270px, .8fr) minmax(0, 1.2fr); gap: 12px; align-items: stretch; }
.official-overview-primary > .official-overview-section { min-height: 278px; display: grid; grid-template-rows: 36px minmax(0, 1fr) auto; }
.official-stamps-overview .official-stamp-list { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); align-content: start; max-height: 202px; overflow-y: auto; padding: 10px; }
.official-overview-asset { align-content: start; padding: 8px; border: 1px solid var(--color-border); border-radius: 3px; background: color-mix(in srgb, var(--color-primary-soft) 25%, #fff); }
.official-overview-asset footer { align-self: start; margin-top: 2px; }.official-overview-asset footer button { min-height: 25px; }
.official-signatories-overview { margin-top: 12px; }.official-signatories-overview .official-signatory-list { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); align-content: start; max-height: 258px; overflow-y: auto; padding: 10px; }
.official-signatory-card { align-content: start; background: color-mix(in srgb, var(--color-primary-soft) 18%, #fff); }.official-signatory-card footer { grid-template-columns: 1fr; }.official-signatory-card footer button.danger { color: #c7473e; border-color: #efc1bc; }.official-signatory-card footer button.danger:hover { border-color: #c7473e; background: #fff0ee; }
.official-add-asset { min-height: 167px; }
@media (max-width: 980px) { .official-overview-primary { grid-template-columns: 1fr; }.official-overview-primary > .official-overview-section { min-height: 0; }.official-stamps-overview .official-stamp-list { max-height: 230px; } }

/* Asset cards show the visual asset first; actions are compact icon tools with native hover labels. */
.official-stamps-overview .official-stamp-list { max-height: 214px; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); }
.official-overview-asset { grid-template-columns: 1fr; grid-template-rows: auto minmax(98px, 1fr) auto; min-height: 184px; gap: 5px; }
.official-asset-meta { display: grid; gap: 2px; min-width: 0; }.official-asset-meta strong, .official-asset-meta small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.official-asset-meta strong { color: var(--color-sidebar-bg); font-size: 11px; }.official-asset-meta small { color: var(--color-text-muted); font-size: 9px; }.official-asset-meta .official-status { margin-top: 2px; }.official-asset-meta em { margin: 2px 0 0; }
.official-stamp-preview { justify-self: center; align-self: end; width: 96px; height: 96px; border-radius: 50%; }.official-stamp-preview .card-svg { width: 31px; height: 31px; }.official-stamp-preview > span { display: grid; justify-items: center; gap: 3px; color: var(--color-primary); }.official-stamp-preview > span small { color: var(--color-text-muted); font-size: 8px; white-space: nowrap; }
.official-overview-asset footer { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin-top: 2px; }.official-overview-asset footer button { min-height: 27px; display: grid; place-items: center; padding: 0; color: var(--color-primary); }.official-overview-asset footer .button-svg { width: 14px; height: 14px; }.official-overview-asset footer button.danger { color: #c7473e; border-color: #efc1bc; }
.official-signatory-card footer { grid-template-columns: repeat(3, minmax(0, 1fr)); }.official-signatory-card footer button { min-height: 28px; padding: 0; }.official-signatory-card footer .button-svg { width: 14px; height: 14px; }

/* Live document editor */
.official-editor-screen>.official-editor-heading,.official-editor-screen>.official-documents-tabs:not(.official-editor-shared-tabs){display:none}.official-editor-screen>.official-documents-hero{margin:0}.official-editor-screen>.official-subtab-intro{padding:5px 0 2px}
.official-editor-screen{display:grid;gap:8px;min-width:0}.official-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0 4px}.official-editor-heading>div{display:flex;align-items:center;gap:10px;min-width:0}.official-editor-heading>div:first-child>span{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;color:#fff;border-radius:50%;background:var(--color-sidebar-bg)}.official-editor-heading .card-svg{width:22px;height:22px}.official-editor-heading h2{margin:0;color:var(--color-sidebar-bg);font-size:22px}.official-editor-heading p{margin:2px 0 0;color:var(--color-text-muted);font-size:11px}.official-editor-heading>div:last-child{flex-wrap:wrap;justify-content:flex-end}.official-editor-heading .outline-action,.official-editor-heading .primary-action{min-height:33px;padding:0 12px;border-radius:3px;font-size:11px}
.official-editor-screen>.official-documents-tabs{margin-top:-2px}.official-editor-configbar{display:grid;grid-template-columns:180px 280px 95px 1fr;align-items:end;gap:12px;padding:9px;border:1px solid var(--color-border);border-radius:4px;background:#fff}.official-editor-configbar label{display:grid;gap:4px;color:var(--color-text-muted);font-size:9px;font-weight:700}.official-editor-configbar select{width:100%;height:34px;padding:0 26px 0 9px;color:var(--color-sidebar-bg);border:1px solid var(--color-border);border-radius:3px;background-color:#fff;font-size:11px;font-weight:800}.official-editor-version{height:34px;display:flex;align-items:center;gap:7px;padding:0 9px;color:var(--color-sidebar-bg);border:1px solid var(--color-border);border-radius:3px;background:#fff;font-size:11px}.official-editor-version em{padding:3px 5px;color:#14814b;border-radius:9px;background:#ddf7e8;font-size:8px;font-style:normal;font-weight:800}.official-editor-configbar>small{justify-self:end;padding-bottom:9px;color:#14814b;font-size:9px;font-weight:700}.official-editor-configbar>small.dirty{color:#c76a16}
.official-editor-parts{display:flex;align-items:stretch;gap:0;overflow-x:auto;border:1px solid var(--color-border);border-radius:4px;background:#fff}.official-editor-parts>span{display:flex;align-items:center;padding:0 11px;color:var(--color-sidebar-bg);border-right:1px solid var(--color-border);font-size:10px;font-weight:800;white-space:nowrap}.official-editor-parts button{min-height:33px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 17px;color:var(--color-sidebar-bg);border:0;border-right:1px solid #edf0f4;background:#fff;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}.official-editor-parts button.active{color:#fff;background:var(--color-primary)}.official-editor-parts .button-svg{width:14px;height:14px}
.official-editor-workspace{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(520px,1.42fr);gap:10px;min-width:0}.official-editor-panel,.official-editor-preview{overflow:hidden;border:1px solid var(--color-border);border-radius:4px;background:#fff;box-shadow:0 4px 13px rgba(10,37,64,.07)}.official-editor-panel{display:grid;grid-template-rows:auto 39px minmax(0,1fr) auto;min-height:594px}.official-editor-panel>header{padding:10px 13px;color:#fff;background:var(--color-sidebar-bg)}.official-editor-panel h3{margin:0;color:#fff;font-size:14px}.official-editor-panel header p{margin:2px 0 0;color:rgba(255,255,255,.84);font-size:9px}.official-editor-panel>nav{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--color-border)}.official-editor-panel>nav button{border:0;border-bottom:2px solid transparent;background:#fff;color:var(--color-text-muted);font-size:11px;font-weight:800;cursor:pointer}.official-editor-panel>nav button.active{color:var(--color-primary);border-color:var(--color-primary)}.official-editor-panel-content{display:grid;align-content:start;gap:0;padding:9px 13px;overflow-y:auto}.official-editor-setting{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e8edf3;color:var(--color-sidebar-bg);font-size:10px;font-weight:750}.official-editor-setting select{width:119px;height:29px;padding:0 22px 0 7px;color:var(--color-sidebar-bg);border:1px solid var(--color-border);border-radius:3px;background-color:#fff;font-size:10px;font-weight:700}.official-editor-switch{position:relative;width:32px;height:18px;padding:0;border:0;border-radius:12px;background:#d6dde8;cursor:pointer}.official-editor-switch i{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:.16s ease}.official-editor-switch.on{background:var(--color-primary)}.official-editor-switch.on i{transform:translateX(14px)}.official-editor-palette{display:flex;align-items:center;justify-content:space-between;min-height:39px;color:var(--color-sidebar-bg);border-bottom:1px solid #e8edf3;font-size:10px;font-weight:750}.official-editor-palette>div{display:flex;gap:9px}.official-editor-palette button{width:22px;height:22px;padding:0;border:2px solid #fff;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 1px #ccd6e3;cursor:pointer}.official-editor-palette button.selected{box-shadow:0 0 0 2px var(--color-primary)}.official-editor-field{display:grid;gap:4px;padding:7px 0;color:var(--color-sidebar-bg);border-bottom:1px solid #e8edf3;font-size:10px;font-weight:750}.official-editor-field input{height:30px;padding:0 8px;color:var(--color-sidebar-bg);border:1px solid var(--color-border);border-radius:3px;font-size:10px}.official-editor-panel>footer{display:flex;flex-wrap:wrap;gap:7px;padding:10px 13px;border-top:1px solid var(--color-border)}.official-editor-panel>footer button{min-height:31px;flex:1;padding:0 7px;border-radius:3px;font-size:9px}.official-editor-panel>footer .button-svg{width:12px;height:12px}
.official-editor-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.official-editor-presets button{display:grid;gap:5px;padding:8px;color:var(--color-sidebar-bg);border:1px solid var(--color-border);border-radius:3px;background:#fff;text-align:left;cursor:pointer}.official-editor-presets button:hover,.official-editor-presets button.selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.official-editor-presets strong{font-size:10px}.official-editor-presets small{color:var(--color-text-muted);font-size:8px;line-height:1.35}.official-preset-mini{position:relative;height:38px;overflow:hidden;border:1px solid #dae2ec;background:#fff}.official-preset-mini:before,.official-preset-mini:after{position:absolute;content:"";display:block;background:var(--color-primary)}.official-preset-mini.header:before{top:7px;left:8px;width:18px;height:18px}.official-preset-mini.header:after{top:9px;left:31px;width:42px;height:3px;box-shadow:0 7px 0 #b9c5d2,0 14px 0 var(--color-primary)}.official-preset-mini.footer:after{right:7px;bottom:4px;left:7px;height:3px}.official-preset-mini.stamp:before{width:18px;height:18px;top:9px;left:calc(50% - 9px);border-radius:50%}.official-preset-mini.signatories:before{width:24px;height:2px;bottom:8px;left:11px;box-shadow:45px 0 0 var(--color-primary)}.official-preset-mini.body:after{top:8px;left:20%;width:60%;height:3px;box-shadow:0 9px 0 #c2ccd8,0 17px 0 #c2ccd8}
.official-editor-preview{display:grid;grid-template-rows:38px minmax(0,1fr) 35px;min-height:594px}.official-editor-preview>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 10px;border-bottom:1px solid var(--color-border);background:#f8fafc}.official-editor-preview>header>div{display:flex;align-items:center;gap:5px}.official-editor-preview>header button{min-height:26px;display:inline-flex;align-items:center;gap:4px;padding:0 7px;color:var(--color-sidebar-bg);border:1px solid #e2e8f0;border-radius:3px;background:#fff;font-size:9px;font-weight:800;cursor:pointer}.official-editor-preview>header button:disabled{opacity:.42;cursor:not-allowed}.official-editor-preview>header b{min-width:36px;color:var(--color-sidebar-bg);font-size:10px;text-align:center}.official-editor-preview>header strong{padding:5px 7px;color:var(--color-primary);border-radius:3px;background:var(--color-primary-soft);font-size:9px}.official-editor-preview .button-svg{width:13px;height:13px}.official-editor-preview>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;color:var(--color-primary);border-top:1px solid var(--color-border);background:#fafcff;font-size:9px}.official-editor-preview>footer span{display:flex;align-items:center;gap:5px}.official-editor-preview>footer b{padding:4px 6px;color:var(--color-primary);border:1px solid var(--color-primary-soft);border-radius:3px;font-size:8px}.official-editor-preview-stage{display:grid;place-items:start center;max-height:650px;overflow:auto;padding:14px;background:#eff3f7}.official-editor-paper-scale{position:relative;transform-origin:top center}.official-editor-paper{position:absolute;inset:0;width:794px;height:1123px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;overflow:hidden;color:#141821;background:#fff;box-shadow:0 3px 10px rgba(10,37,64,.18);font-family:Arial,sans-serif;transform:scale(var(--editor-scale));transform-origin:top left}.official-editor-paper>header{min-height:101px;display:grid;grid-template-columns:92px minmax(0,1fr) 245px;align-items:center;gap:12px;padding:20px 36px 13px}.official-editor-paper-logo{display:grid;width:72px;height:72px;place-items:center;overflow:hidden;border:1px solid var(--school-brand-primary);border-radius:4px;background:#fff}.official-editor-paper-logo img{max-width:62px;max-height:62px;object-fit:contain}.official-editor-paper-identity{display:grid;gap:4px}.official-editor-paper-identity b{color:var(--school-brand-primary);font-size:21px}.official-editor-paper-identity small{color:var(--school-brand-secondary);font-size:11px;font-weight:700}.official-editor-paper-details{display:grid;gap:4px;justify-items:end;color:var(--school-brand-primary);font-size:8px;font-style:normal;text-align:right}.official-editor-paper-details i{font-style:normal}.official-editor-paper.center>header{grid-template-columns:1fr;justify-items:center;text-align:center}.official-editor-paper.center .official-editor-paper-logo{grid-row:1}.official-editor-paper.center .official-editor-paper-details{justify-items:center;text-align:center}.official-editor-paper.droite>header{grid-template-columns:245px minmax(0,1fr) 92px}.official-editor-paper.droite .official-editor-paper-logo{grid-column:3}.official-editor-paper.droite .official-editor-paper-identity{grid-column:2;grid-row:1}.official-editor-paper.droite .official-editor-paper-details{grid-column:1;grid-row:1;justify-items:start;text-align:left}.official-editor-paper-line{height:8px;margin:0 32px;background:linear-gradient(176deg,transparent 0 33%,var(--school-brand-primary) 34% 57%,var(--school-brand-secondary) 58% 69%,transparent 70%)}.official-editor-paper main{padding:44px 102px 20px;font-size:12px;line-height:1.48}.official-editor-paper main.compact{font-size:11px}.official-editor-paper main.grand{font-size:14px}.official-editor-paper main.centre{text-align:center}.official-editor-paper main.droite{text-align:right}.official-editor-doc-date{margin-bottom:22px;text-align:right}.official-editor-paper main h1{margin:0;text-align:center;font-size:16px}.official-editor-paper main h2{margin:4px 0 22px;text-align:center;font-size:10px}.official-editor-paper main p{margin:0 0 11px}.official-editor-signature-zone{min-height:116px;display:flex;align-items:end;justify-content:space-around;gap:28px;padding:8px 92px 18px}.official-editor-signature{display:grid;min-width:120px;gap:3px;font-size:10px}.official-editor-signature small{font-size:9px}.official-editor-signature img{width:86px;height:42px;object-fit:contain}.official-editor-signature em{display:grid;width:86px;height:42px;place-items:end center;color:#777;border-bottom:1px solid #8794a2;font-size:9px;font-style:italic}.official-editor-paper-stamp{display:grid;width:78px;height:78px;place-items:center;align-self:center;color:var(--school-brand-primary)}.official-editor-paper-stamp img{width:100%;height:100%;object-fit:contain}.official-editor-paper-stamp.grand{width:96px;height:96px}.official-editor-paper-stamp.petit{width:55px;height:55px}.official-editor-paper>footer{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end;min-height:59px;padding:8px 35px;color:var(--school-brand-primary);font-size:8px}.official-editor-paper>footer i{grid-column:1/-1;display:block;height:3px;background:var(--school-brand-primary)}.official-editor-paper>footer.centre{text-align:center}.official-editor-paper>footer.droite{text-align:right}.official-editor-paper>footer em{font-style:normal;white-space:nowrap}
.official-editor-paper.modele-2{border-left:30px solid var(--school-brand-primary)}.official-editor-paper.modele-2>header{padding-left:26px}.official-editor-paper.modele-2 .official-editor-paper-line{height:4px;margin-left:0;background:var(--school-brand-secondary)}.official-editor-paper.modele-2>footer{margin-left:-30px;padding-left:62px;background:var(--school-brand-primary);color:#fff}.official-editor-paper.modele-2>footer i{background:#fff}.official-editor-paper.modele-3 .official-editor-paper-line{height:38px;margin:0;background:linear-gradient(174deg,transparent 0 28%,var(--school-brand-secondary) 29% 44%,var(--school-brand-primary) 45% 61%,transparent 62%)}.official-editor-paper.modele-3>footer{padding-top:14px;background:linear-gradient(8deg,var(--school-brand-primary) 0 8%,transparent 9%)}.official-editor-paper.modele-4>header{min-height:82px;padding-top:17px;padding-bottom:7px;border-bottom:1px solid #d8e0eb}.official-editor-paper.modele-4 .official-editor-paper-line{height:3px;margin:0 36px;background:var(--school-brand-primary)}.official-editor-paper.modele-4 main{padding-top:38px}.official-editor-paper.modele-5>header{position:relative;min-height:112px;background:linear-gradient(160deg,transparent 0 65%,var(--school-brand-secondary) 66% 73%,var(--school-brand-primary) 74% 100%)}.official-editor-paper.modele-5 .official-editor-paper-line{height:5px;margin:0;background:var(--school-brand-primary)}.official-editor-paper.modele-5>footer{background:var(--school-brand-primary);color:#fff}.official-editor-paper.modele-5>footer i{background:var(--school-brand-secondary)}

/* The five approved letterhead structures: all content stays school-driven. */
.official-letter-page{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden;color:#171717;background:#fff;box-shadow:0 3px 10px rgba(10,37,64,.18);font-family:Arial,sans-serif;transform:scale(var(--editor-scale));transform-origin:top left}.letterhead{position:relative;z-index:1;display:flex;justify-content:space-between;gap:22px;min-height:133px;padding:35px 48px 22px}.letter-brand{display:flex;align-items:flex-start;gap:14px;min-width:0}.letter-logo{display:grid;width:78px;height:78px;flex:0 0 auto;place-items:center;overflow:hidden;border:1px solid color-mix(in srgb,var(--school-brand-primary) 35%,#fff);background:#fff}.letter-logo-image{max-width:67px;max-height:67px;object-fit:contain}.letter-brand>div{display:grid;gap:5px;padding-top:5px}.letter-brand b{color:var(--school-brand-primary);font-size:20px;line-height:1.08}.letter-brand small{color:var(--school-brand-secondary);font-size:10px;font-weight:700}.letter-info{display:grid;align-content:start;justify-items:end;gap:4px;max-width:238px;padding-top:7px;color:var(--school-brand-primary);font-size:8px;line-height:1.25;text-align:right}.letter-recipient{display:grid;justify-items:end;gap:5px;margin:0 0 23px;font-size:10px;line-height:1.3;text-align:right}.letter-recipient span{margin-bottom:13px}.letter-recipient strong{font-size:10px}.letter-recipient small{font-size:9px}.letter-body{flex:1;padding:31px 128px 12px;font-size:12px;line-height:1.5}.letter-body.compact{font-size:11px}.letter-body.grand{font-size:14px}.letter-body h1{margin:0 0 7px;color:#151515;font-size:15px;text-align:left}.letter-subject{margin:0 0 21px!important}.letter-body p{margin:0 0 13px}.letter-signatures{display:flex;align-items:flex-end;justify-content:space-between;min-height:138px;padding:10px 128px 22px}.letter-signatory{display:grid;min-width:145px;gap:3px;font-size:10px}.letter-signatory small{font-size:9px}.letter-signatory img{width:92px;height:44px;object-fit:contain}.letter-signatory em{display:grid;width:95px;height:44px;place-items:end center;color:#828282;border-bottom:1px solid #aab2bc;font-size:9px;font-style:italic}.letter-stamp{display:grid;width:76px;height:76px;place-items:center;color:var(--school-brand-primary)}.letter-stamp img{width:100%;height:100%;object-fit:contain}.letter-stamp.petit{width:54px;height:54px}.letter-stamp.grand{width:96px;height:96px}.letter-footer{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;min-height:56px;padding:7px 48px 11px;color:var(--school-brand-primary);font-size:8px}.letter-footer i{grid-column:1/-1;height:2px;background:var(--school-brand-primary)}.letter-footer.centre{text-align:center}.letter-footer.droite{text-align:right}.letter-footer em{font-style:normal;white-space:nowrap}
.official-letter-page.model-1 .letterhead{min-height:129px;padding-top:33px;border-bottom:1px solid #222}.official-letter-page.model-1 .letter-logo{border-color:#222}.official-letter-page.model-1 .letter-brand b,.official-letter-page.model-1 .letter-brand small,.official-letter-page.model-1 .letter-info{color:#202020}.official-letter-page.model-1 .letter-footer{color:#222}.official-letter-page.model-1 .letter-footer i{background:#222}
.official-letter-page.model-2{border-left:45px solid var(--school-brand-primary)}.official-letter-page.model-2:before{position:absolute;bottom:0;left:-45px;width:45px;height:100%;content:"";background:linear-gradient(145deg,transparent 76%,rgba(255,255,255,.2) 76% 77%,transparent 77%)}.official-letter-page.model-2 .letterhead{min-height:140px;padding-left:52px}.official-letter-page.model-2 .letter-logo{border:0}.official-letter-page.model-2 .letter-footer{margin-left:-45px;padding-left:93px;color:#fff;background:var(--school-brand-primary)}.official-letter-page.model-2 .letter-footer i{background:rgba(255,255,255,.8)}.official-letter-page.model-2 .letter-body{padding-left:100px}.official-letter-page.model-2 .letter-signatures{padding-left:100px}
.official-letter-page.model-3 .letterhead{min-height:154px;padding-bottom:38px}.official-letter-page.model-3 .top-wave{position:absolute;right:-45px;bottom:-26px;width:430px;height:81px;border:16px solid var(--school-brand-primary);border-right:0;border-bottom:0;border-radius:64% 0 0 0/72% 0 0 0;transform:rotate(-3deg)}.official-letter-page.model-3 .top-wave:after{position:absolute;right:24px;bottom:11px;width:374px;height:55px;content:"";border:8px solid var(--school-brand-secondary);border-right:0;border-bottom:0;border-radius:70% 0 0 0/82% 0 0 0}.official-letter-page.model-3:after{position:absolute;bottom:-56px;left:-70px;width:300px;height:177px;content:"";border:29px solid var(--school-brand-secondary);border-top:0;border-right:0;border-radius:0 0 0 68%;opacity:.9}.official-letter-page.model-3 .letter-footer{z-index:1;padding-bottom:17px}.official-letter-page.model-3 .letter-footer i{height:1px}.official-letter-page.model-3 .letter-body{padding-top:29px}
.official-letter-page.model-4 .letterhead{min-height:102px;padding:28px 48px 16px}.official-letter-page.model-4 .letter-logo{width:66px;height:66px;border:0}.official-letter-page.model-4 .letter-logo-image{max-width:58px;max-height:58px}.official-letter-page.model-4 .letter-brand b{font-size:17px}.official-letter-page.model-4 .letter-info{font-size:7px}.official-letter-page.model-4 .letter-body{padding-top:37px}.official-letter-page.model-4 .letter-footer{min-height:48px}.official-letter-page.model-4 .letter-footer i{height:3px}
.official-letter-page.model-5 .letterhead{min-height:153px;padding-top:31px;padding-bottom:48px}.official-letter-page.model-5 .campus-wave{position:absolute;right:-5px;bottom:-20px;left:0;height:62px;background:var(--school-brand-primary);clip-path:polygon(0 42%,39% 0,65% 54%,100% 13%,100% 69%,67% 100%,39% 45%,0 90%)}.official-letter-page.model-5 .campus-wave:after{position:absolute;right:0;bottom:11px;left:0;height:14px;content:"";background:var(--school-brand-secondary);clip-path:polygon(0 43%,39% 0,65% 58%,100% 14%,100% 67%,67% 100%,39% 46%,0 92%)}.official-letter-page.model-5 .letter-body{padding-top:27px}.official-letter-page.model-5 .letter-footer{z-index:2;color:#fff;background:var(--school-brand-primary)}.official-letter-page.model-5 .letter-footer i{background:var(--school-brand-secondary)}
.official-academic-waves-head{position:relative;display:block;min-height:148px;overflow:hidden;padding:21px 20px 12px;background:#fff}.official-academic-waves-head .academic-wave-top{position:absolute;display:block;pointer-events:none;transform:rotate(18deg);transform-origin:top right}.academic-wave-top.one{top:-70px;right:-72px;width:235px;height:170px;border:18px solid var(--letterhead-color);border-left:0;border-bottom:0;border-radius:0 100% 0 0}.academic-wave-top.two{top:-50px;right:-56px;width:210px;height:151px;border:11px solid var(--letterhead-secondary);border-left:0;border-bottom:0;border-radius:0 100% 0 0}.academic-wave-top.three{top:-38px;right:-42px;width:187px;height:138px;border:8px solid var(--letterhead-accent);border-left:0;border-bottom:0;border-radius:0 100% 0 0}.academic-wave-brand{position:relative;z-index:1;display:flex;align-items:center;gap:12px;width:62%}.academic-wave-logo{display:grid;width:56px;height:68px;flex:0 0 auto;place-items:center}.academic-wave-logo .school-logo{max-width:53px;max-height:63px}.academic-wave-brand>div{display:grid;gap:3px}.academic-wave-brand strong{color:var(--letterhead-color);font-size:17px;line-height:1.03;font-weight:900;text-transform:uppercase}.academic-wave-brand small{color:var(--letterhead-color);font-size:9px;font-weight:700}.academic-wave-rule{position:relative;z-index:1;width:62%;height:1px;margin:9px 0 9px;background:var(--letterhead-color)}.academic-wave-contacts{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;width:84%;color:var(--letterhead-text);font-size:7px;line-height:1.2}.academic-wave-contacts span{display:flex;align-items:flex-start;gap:3px}.academic-wave-icon{width:10px;height:10px;flex:0 0 auto;color:var(--letterhead-color)}.official-academic-mini-footer{display:flex;justify-content:space-between;gap:8px;min-height:22px;padding:5px 8px;color:#fff;background:var(--letterhead-color);font-size:7px;line-height:1.15}.official-academic-mini-footer .official-footer-page{color:#fff}.official-template-choice-preview .official-academic-waves-head{min-height:148px}

/* Modèle 3 - Ondes académiques: the shared A4 presentation. */
.official-academic-waves-letter{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden;color:#111820;background:#fff;box-shadow:0 3px 10px rgba(10,37,64,.18);font-family:Arial,sans-serif;transform:scale(var(--editor-scale));transform-origin:top left}.academic-full-wave{position:absolute;z-index:0;display:block;pointer-events:none}.academic-full-wave.top-dark{top:-140px;right:-157px;width:555px;height:360px;border:43px solid var(--school-brand-primary);border-left:0;border-bottom:0;border-radius:0 100% 0 0;transform:rotate(11deg)}.academic-full-wave.top-mid{top:-120px;right:-137px;width:520px;height:339px;border:28px solid var(--school-brand-secondary);border-left:0;border-bottom:0;border-radius:0 100% 0 0;transform:rotate(11deg)}.academic-full-wave.top-light{top:-104px;right:-118px;width:491px;height:322px;border:17px solid var(--school-brand-accent);border-left:0;border-bottom:0;border-radius:0 100% 0 0;transform:rotate(11deg)}.academic-full-wave.bottom-dark{bottom:-158px;left:-158px;width:495px;height:355px;border:40px solid var(--school-brand-primary);border-right:0;border-top:0;border-radius:0 0 0 100%;transform:rotate(11deg)}.academic-full-wave.bottom-mid{bottom:-137px;left:-139px;width:465px;height:329px;border:26px solid var(--school-brand-secondary);border-right:0;border-top:0;border-radius:0 0 0 100%;transform:rotate(11deg)}.academic-full-wave.bottom-light{bottom:-117px;left:-120px;width:437px;height:304px;border:16px solid var(--school-brand-accent);border-right:0;border-top:0;border-radius:0 0 0 100%;transform:rotate(11deg)}.academic-wave-full-header{position:relative;z-index:1;padding:61px 62px 0}.academic-wave-full-brand{display:flex;align-items:center;gap:22px;max-width:535px}.academic-wave-full-logo{display:grid;width:116px;height:136px;flex:0 0 auto;place-items:center}.academic-wave-full-logo .school-logo{max-width:110px;max-height:128px}.academic-wave-full-brand>div{display:grid;gap:9px}.academic-wave-full-brand strong{color:var(--school-brand-primary);font-size:30px;line-height:1.04;font-weight:900;text-transform:uppercase}.academic-wave-full-brand small{color:var(--school-brand-primary);font-size:17px;font-weight:700;letter-spacing:.3px}.academic-wave-full-rule{width:calc(100% - 165px);height:2px;margin:19px 0 18px 140px;background:var(--school-brand-primary);opacity:.72}.academic-wave-full-contacts{display:grid;grid-template-columns:1.4fr 1fr 1fr .92fr;gap:16px;margin-left:140px;max-width:600px;color:#17202c;font-size:11px;line-height:1.35}.academic-wave-full-contacts span{display:flex;align-items:flex-start;gap:7px}.academic-wave-full-contacts .academic-wave-icon{width:17px;height:17px;color:var(--school-brand-primary)}.academic-wave-full-body{position:relative;z-index:1;flex:1;padding:73px 116px 15px;font-size:15px;line-height:1.58}.academic-wave-full-body.compact{font-size:13px}.academic-wave-full-body.grand{font-size:17px}.academic-wave-full-body p{max-width:566px;margin:0 0 21px}.academic-wave-date{margin-bottom:45px!important}.academic-wave-recipient{display:grid;gap:4px;margin-bottom:39px;font-size:15px;line-height:1.35}.academic-wave-recipient b{font-size:17px}.academic-wave-subject{margin-bottom:43px!important;font-size:17px}.academic-wave-subject b{color:var(--school-brand-primary)}.academic-wave-signatures{position:relative;z-index:1;display:flex;gap:150px;align-items:end;min-height:140px;padding:3px 116px 29px}.academic-wave-signatory{display:grid;gap:3px;min-width:150px}.academic-wave-signatory em{display:grid;width:112px;height:48px;place-items:end start;color:#888;border-bottom:1px solid #aab4c1;font-size:10px;font-style:italic}.academic-wave-signatory em img{width:105px;height:45px;object-fit:contain;object-position:left bottom}.academic-wave-signatory b{font-size:12px}.academic-wave-signatory small{font-size:11px}.academic-wave-footer-info{position:relative;z-index:1;display:grid;grid-template-columns:1.2fr 1.35fr 1.05fr 1fr;gap:18px;margin:0 49px 0;padding:19px 67px 22px;border-top:2px solid var(--school-brand-primary);color:#17202c}.academic-wave-footer-info article{display:flex;align-items:flex-start;gap:9px;min-width:0}.academic-wave-footer-info article>div{display:grid;gap:4px}.academic-wave-footer-info b{color:var(--school-brand-primary);font-size:9px;line-height:1.1}.academic-wave-footer-info span{font-size:9px;line-height:1.35}.academic-wave-footer-icon{width:23px;height:23px;flex:0 0 auto;color:var(--school-brand-primary)}.academic-wave-bottom{position:relative;z-index:2;padding:13px 22px 14px;color:#fff;background:var(--school-brand-primary);font-size:12px;text-align:center}
.letter-left-date{margin-bottom:21px;font-size:10px}.letter-left-recipient{display:grid;gap:3px;margin-bottom:19px;font-size:10px}.letter-left-recipient small{font-size:9px}.letter-campus-date{margin-bottom:18px;font-size:10px;text-align:right}.official-letter-page.model-1 .classic-body{padding-top:28px}.official-letter-page.model-1 .letter-subject{margin-top:14px}.official-letter-page.model-2 .band-body .letter-recipient{margin-left:auto}.official-letter-page.model-2 .letter-subject{margin-top:7px}.official-letter-page.model-3 .wave-body{padding-top:23px}.official-letter-page.model-3 .letter-subject{margin-top:12px}.official-letter-page.model-4 .minimal-body{padding-top:42px}.official-letter-page.model-4 .minimal-body p{max-width:480px}.official-letter-page.model-5 .campus-body{padding-top:26px}.official-letter-page.model-5 .letter-subject{margin-bottom:16px!important}
.official-editor-fullscreen{position:fixed;z-index:9999;inset:0;display:grid;grid-template-rows:50px minmax(0,1fr);background:rgba(10,21,35,.78)}.official-editor-fullscreen-bar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;color:#fff;background:var(--color-sidebar-bg)}.official-editor-fullscreen-bar strong{display:flex;align-items:center;gap:7px;font-size:13px}.official-editor-fullscreen-bar button{width:29px;height:29px;color:#fff;border:1px solid rgba(255,255,255,.45);border-radius:3px;background:transparent;font-size:20px;cursor:pointer}.official-editor-fullscreen-stage{display:grid;place-items:center;overflow:auto;padding:24px}
@media(max-width:1120px){.official-editor-workspace{grid-template-columns:330px minmax(500px,1fr);overflow-x:auto}.official-editor-configbar{grid-template-columns:155px 240px 85px 1fr}}@media(max-width:760px){.official-editor-heading{align-items:flex-start;flex-direction:column}.official-editor-heading>div:last-child{justify-content:flex-start}.official-editor-configbar{grid-template-columns:1fr 1fr}.official-editor-configbar>small{justify-self:start;padding-bottom:0}.official-editor-workspace{grid-template-columns:1fr;overflow:visible}.official-editor-panel{min-height:0}.official-editor-preview{min-height:570px}.official-editor-preview-stage{max-height:510px}.official-editor-preview>header{align-items:flex-start;flex-direction:column}.official-editor-preview>header strong{align-self:flex-end}.official-editor-parts button{padding:0 12px}}

/* Keep the shared A4 model at its real size; only its containing viewport scales it. */
.official-academic-waves-letter{inset:auto;width:794px;height:1123px}
.official-a4-academic-paper{position:absolute;inset:0;display:block;width:124px;height:175px;overflow:hidden;background:#fff}
.official-a4-academic .official-academic-waves-letter{box-shadow:none}

/* Faithful fixed A4 composition for Modèle 3. */
.official-academic-waves-letter{display:block}
.academic-wave-decoration{position:absolute;z-index:0;inset:0;width:794px;height:1123px;pointer-events:none}
.academic-wave-decoration .wave-primary{fill:var(--school-brand-primary)}
.academic-wave-decoration .wave-secondary{fill:var(--school-brand-secondary)}
.academic-wave-decoration .wave-light{fill:var(--school-brand-accent)}
.academic-wave-decoration .wave-white{fill:#fff}
.academic-wave-full-header{position:absolute;z-index:2;top:54px;right:56px;left:52px;padding:0}
.academic-wave-full-brand{display:flex;width:650px;max-width:none;align-items:center;gap:24px}
.academic-wave-full-logo{display:grid;width:112px;height:124px;flex:0 0 112px;place-items:center}
.academic-wave-full-logo .school-logo{max-width:108px;max-height:120px}
.academic-wave-full-brand>div{display:grid;min-width:0;gap:8px}
.academic-wave-full-brand strong{max-width:515px;color:var(--school-brand-primary);font-size:26px;line-height:1;font-weight:900;white-space:nowrap;text-transform:uppercase}
.academic-wave-full-brand small{color:var(--school-brand-primary);font-size:17px;line-height:1.1;font-weight:700}
.academic-wave-full-rule{width:532px;height:1px;margin:8px 0 14px 136px;background:var(--school-brand-primary);opacity:.8}
.academic-wave-full-contacts{display:grid;width:555px;max-width:none;margin-left:136px;grid-template-columns:1.42fr 1.08fr 1.12fr .9fr;gap:14px;color:#18202b;font-size:10px;line-height:1.28}
.academic-wave-full-contacts span{display:flex;min-width:0;align-items:flex-start;gap:7px}
.academic-wave-full-contacts span i{display:block;min-width:0;overflow-wrap:anywhere;font-style:normal}
.academic-wave-full-contacts .academic-wave-icon{width:16px;height:16px;flex:0 0 16px;color:var(--school-brand-primary)}
.academic-wave-full-body{position:absolute;z-index:2;top:278px;right:88px;left:88px;display:block;padding:0;font-size:14px;line-height:1.48}
.academic-wave-full-body.compact{font-size:13px}
.academic-wave-full-body.grand{font-size:15px}
.academic-wave-full-body p{max-width:600px;margin:0 0 18px}
.academic-wave-date{margin-bottom:39px!important;font-size:15px}
.academic-wave-recipient{display:grid;margin-bottom:35px;gap:2px;font-size:14px;line-height:1.35}
.academic-wave-recipient b{font-size:15px}
.academic-wave-subject{margin-bottom:35px!important;font-size:15px}
.academic-wave-subject b{color:var(--school-brand-primary)}
.academic-wave-signature{position:absolute;z-index:2;top:828px;left:88px;display:grid;min-width:185px;gap:2px}
.academic-wave-signature em{display:block;width:170px;height:52px;margin-bottom:3px;border:0;color:#111;font-family:"Brush Script MT","Segoe Script",cursive;font-size:25px;line-height:52px;font-style:normal}
.academic-wave-signature em img{width:155px;height:50px;object-fit:contain;object-position:left bottom}
.academic-wave-signature b{font-size:13px}
.academic-wave-signature small{font-size:12px}
.academic-wave-footer-info{position:absolute;z-index:2;right:38px;bottom:39px;left:87px;display:grid;height:105px;margin:0;padding:17px 0 8px;border-top:2px solid var(--school-brand-primary);grid-template-columns:1.2fr 1.35fr 1fr 1.15fr;gap:17px;color:#17202c}
.academic-wave-footer-info article{display:flex;min-width:0;align-items:flex-start;gap:8px}
.academic-wave-footer-info article>div{display:grid;gap:5px}
.academic-wave-footer-info b{color:var(--school-brand-primary);font-size:9px;line-height:1.1}
.academic-wave-footer-info span{font-size:9px;line-height:1.35}
.academic-wave-footer-icon{width:22px;height:22px;flex:0 0 22px;color:var(--school-brand-primary)}
.academic-wave-bottom{position:absolute;z-index:3;right:0;bottom:0;left:0;height:36px;padding:0;color:#fff;background:transparent;font-size:10px;line-height:36px;text-align:center}

/* Model 3 refinement: balanced header, validation row and three-column footer. */
.academic-wave-full-header{top:48px;right:41px;left:48px;height:165px}
.academic-wave-full-brand{width:665px;align-items:flex-start;gap:25px}
.academic-wave-full-brand>div{padding-top:17px}
.academic-wave-full-logo{width:114px;height:126px;flex-basis:114px}
.academic-wave-full-logo .school-logo{width:114px;height:126px;max-width:none;max-height:none;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;filter:none;object-fit:contain}
.academic-wave-full-rule{position:absolute;top:94px;left:108px;width:448px;height:1px;margin:0}
.academic-wave-full-contacts{position:absolute;top:109px;left:108px;width:448px;margin:0;grid-template-columns:128px 110px 108px 87px;gap:5px;color:#18202b;font-size:9px}
.academic-wave-full-contacts span i{overflow:visible;overflow-wrap:normal;word-break:normal;white-space:nowrap}
.academic-wave-full-contacts>span:last-child{transform:translateX(14px)}
.academic-wave-full-contacts .academic-wave-icon{width:19px;height:19px;flex-basis:19px;color:var(--school-brand-primary);stroke:currentColor;stroke-width:1.8;fill:none}
.academic-wave-letter-meta{display:grid;width:100%;margin-bottom:39px;grid-template-columns:minmax(0,1fr) auto;align-items:start}
.academic-wave-letter-meta .academic-wave-recipient{margin:0}
.academic-wave-letter-meta .academic-wave-date{justify-self:end;margin:0!important;text-align:right;white-space:nowrap}
.academic-wave-validation{position:absolute;z-index:2;top:823px;right:88px;left:88px;display:flex;align-items:center;justify-content:space-between}
.academic-wave-validation .academic-wave-signature{position:relative;top:auto;left:auto}
.academic-wave-stamp{display:grid;width:104px;height:104px;place-items:center;color:var(--school-brand-primary)}
.academic-wave-stamp img{width:100px;height:100px;object-fit:contain}
.academic-wave-stamp-placeholder{width:76px;height:76px;color:var(--school-brand-primary)}
.academic-wave-footer-info{right:38px;left:178px;height:105px;grid-template-columns:1.12fr 1.35fr 1fr;gap:20px}
.academic-wave-footer-info .academic-wave-footer-icon{width:25px;height:25px;flex-basis:25px;color:var(--school-brand-primary);stroke:currentColor;stroke-width:1.8;fill:none}

/* Modèle 2 - Bande latérale: one shared A4 composition for overview, library and editor. */
.official-a4-shared-paper{position:absolute;inset:0;display:block;width:124px;height:175px;overflow:hidden;background:#fff}
.official-a4-detailed .official-lateral-band-letter,.official-a4-detailed .official-academic-waves-letter,.official-template-choice-detailed .official-lateral-band-letter,.official-template-choice-detailed .official-academic-waves-letter{box-shadow:none}
.official-template-choice-detailed{display:grid;place-items:start center}
.official-template-choice-detailed .official-a4-shared-paper{position:relative;flex:0 0 124px}
.official-lateral-band-head{position:relative;display:grid;min-height:126px;overflow:hidden;padding:20px 17px 14px 40px;grid-template-columns:minmax(0,1fr) 104px;align-items:start;gap:10px;background:#fff}
.lateral-band-mini-strip{position:absolute;inset:0 auto 0 0;width:24px;background:var(--letterhead-color)}
.lateral-band-mini-brand{display:flex;min-width:0;align-items:flex-start;gap:9px}
.lateral-band-mini-logo{display:grid;width:48px;height:53px;flex:0 0 48px;place-items:center}
.lateral-band-mini-logo .school-logo{width:45px;height:50px;object-fit:contain;box-shadow:none}
.lateral-band-mini-title{display:grid;min-width:0;gap:3px;padding-top:4px}
.lateral-band-mini-title strong{overflow:hidden;color:var(--letterhead-color);line-height:1.05;font-weight:900;white-space:nowrap;text-transform:uppercase}
.lateral-band-mini-title small{color:var(--letterhead-secondary);font-size:8px;line-height:1.2;font-weight:700}
.lateral-band-mini-meta{display:grid;justify-items:end;gap:3px;color:var(--letterhead-text);font-size:7px;line-height:1.25;text-align:right}
.lateral-band-mini-meta b{color:var(--letterhead-color);font-size:8px}
.lateral-band-mini-meta small{margin-top:5px;color:var(--letterhead-text)}
.official-lateral-band-letter{position:absolute;inset:auto;width:794px;height:1123px;overflow:hidden;color:#141820;background:#fff;box-shadow:0 3px 10px rgba(10,37,64,.18);font-family:Arial,sans-serif;transform:scale(var(--editor-scale));transform-origin:top left}
.lateral-band-decoration{position:absolute;z-index:0;inset:0;width:794px;height:1123px;pointer-events:none}
.lateral-band-decoration .lateral-band-primary{fill:var(--school-brand-primary)}
.lateral-band-top-geometry{fill:none;stroke:var(--school-brand-secondary);stroke-width:1.25;opacity:.17}
.lateral-band-bottom-geometry{fill:none;stroke:color-mix(in srgb,var(--school-brand-accent) 52%,#fff);stroke-width:1.5;opacity:.58}
.lateral-band-header{position:absolute;z-index:2;top:58px;right:58px;left:158px;display:grid;height:154px;grid-template-columns:minmax(0,1fr) 184px;align-items:start;gap:16px}
.lateral-band-brand{display:flex;min-width:0;align-items:flex-start;gap:15px}
.lateral-band-logo{display:grid;width:75px;height:82px;flex:0 0 75px;place-items:center}
.lateral-band-logo .school-logo{width:72px;height:79px;max-width:none;max-height:none;border:0;border-radius:0;background:transparent;box-shadow:none;filter:none;object-fit:contain}
.lateral-band-identity{display:grid;min-width:0;gap:6px;padding-top:11px}
.lateral-band-identity strong{overflow:hidden;color:var(--school-brand-primary);line-height:1.03;font-weight:900;white-space:nowrap;text-transform:uppercase}
.lateral-band-identity small{color:var(--school-brand-secondary);font-size:12px;line-height:1.25;font-weight:750}
.lateral-band-recipient{display:grid;justify-items:end;gap:3px;padding-top:4px;color:#1b2430;font-size:10px;line-height:1.25;text-align:right}
.lateral-band-recipient time{margin-bottom:14px;color:var(--school-brand-primary);font-size:11px;font-weight:700}
.lateral-band-recipient b{font-size:11px}
.lateral-band-rule{position:absolute;z-index:2;top:170px;right:58px;left:248px;height:1px;background:var(--school-brand-secondary)}
.lateral-band-body{position:absolute;z-index:2;top:251px;right:92px;left:160px;font-size:14px;line-height:1.55}
.lateral-band-body.compact{font-size:13px}.lateral-band-body.grand{font-size:15px}
.lateral-band-body p{max-width:535px;margin:0 0 20px}
.lateral-band-subject{margin-bottom:36px!important;font-size:15px}
.lateral-band-subject b{color:var(--school-brand-primary)}
.lateral-band-validation{position:absolute;z-index:2;top:797px;right:92px;left:160px;display:flex;min-height:130px;align-items:end;justify-content:space-between}
.lateral-band-signature{display:grid;min-width:190px;gap:3px;color:#141820;font-size:11px}
.lateral-band-signature>span{margin-bottom:3px;font-size:13px}
.lateral-band-signature em{display:block;width:170px;height:48px;color:#111;font-family:"Brush Script MT","Segoe Script",cursive;font-size:23px;line-height:48px;font-style:normal}
.lateral-band-signature em img{width:155px;height:46px;object-fit:contain;object-position:left bottom}
.lateral-band-signature b{font-size:12px}.lateral-band-signature small{font-size:10px}
.lateral-band-stamp{display:grid;width:98px;height:98px;place-items:center;color:var(--school-brand-primary)}
.lateral-band-stamp img{width:94px;height:94px;object-fit:contain}.lateral-band-stamp-placeholder{width:70px;height:70px}
.lateral-band-footer{position:absolute;z-index:2;right:51px;bottom:28px;left:158px;height:146px;padding-top:15px;border-top:2px solid var(--school-brand-primary)}
.lateral-band-footer-grid{display:grid;grid-template-columns:1.2fr .95fr 1.35fr;gap:18px}
.lateral-band-footer-grid article{display:flex;min-width:0;align-items:flex-start;gap:8px}
.lateral-band-footer-grid article>svg{width:19px;height:19px;flex:0 0 19px;color:var(--school-brand-primary);stroke:currentColor;fill:none}
.lateral-band-footer-grid article>div{display:grid;min-width:0;gap:4px}
.lateral-band-footer-grid b{color:var(--school-brand-primary);font-size:9px;line-height:1.1}
.lateral-band-footer-grid span{color:#25303c;font-size:8px;line-height:1.35;overflow-wrap:anywhere}
.lateral-band-footer-legal{position:absolute;right:0;bottom:0;left:0;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:12px;color:#526172;font-size:7px;line-height:1.25}
.lateral-band-footer-legal em{color:var(--school-brand-primary);font-style:normal;font-weight:800;white-space:nowrap}
