/* Structured commercial proposals. The same document rules are used by the
   internal preview, the client portal and the server-side PDF renderer. */
.proposal-document {
  --proposal-accent: #c72f2f;
  --p-ink: #15171c;
  --p-ink2: #565b64;
  --p-paper: #f7f5f0;
  --p-hair: rgba(21,23,28,.11);
  background: var(--p-paper);
  color: var(--p-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  min-height: 100%;
  -webkit-font-smoothing: antialiased;
}
.proposal-document * { box-sizing: border-box; }
/* ── Couverture : plein cadre, cinématique ── */
.proposal-cover {
  position: relative;
  min-height: 580px;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  background: linear-gradient(160deg, #191b21 0%, #101116 68%, #0c0d11 100%);
  color: #fff;
}
.proposal-cover-media { position: absolute; inset: 0; }
.proposal-cover-media img { width: 100%; height: 100%; object-fit: cover; }
.proposal-cover-with-image:after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(9,10,13,.86) 0%, rgba(9,10,13,.45) 46%, rgba(9,10,13,.18) 100%); }
.proposal-cover-content { position: relative; z-index: 1; display: flex; flex: 1; flex-direction: column; justify-content: flex-end; padding: 64px 9% 56px; }
.proposal-kicker, .proposal-eyebrow { display: flex; align-items: center; gap: 10px; color: var(--proposal-accent); font-size: 11.5px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.proposal-kicker:before, .proposal-eyebrow:before { content: ''; width: 26px; height: 2px; flex-shrink: 0; background: var(--proposal-accent); }
.proposal-cover .proposal-kicker { color: rgba(255,255,255,.78); }
.proposal-cover .proposal-kicker:before { background: var(--proposal-accent); }
.proposal-cover h1 { max-width: 860px; margin: 22px 0 14px; color: #fff; font-size: clamp(38px, 6vw, 66px); font-weight: 800; letter-spacing: -.022em; line-height: 1.02; overflow-wrap: break-word; }
.proposal-cover-client { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -.01em; }
.proposal-cover-industry { margin: 7px 0 0; color: rgba(255,255,255,.66); font-size: 14px; }
.proposal-cover-foot { display: flex; align-items: center; gap: 12px; margin-top: 58px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.62); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
/* ── Corps : rythme éditorial, hairlines discrètes ── */
.proposal-body { width: min(100%, 1040px); margin: 0 auto; padding: 30px 7% 84px; }
.proposal-section { padding: 60px 0; border-bottom: 1px solid var(--p-hair); }
.proposal-section:last-child { border-bottom: 0; }
.proposal-section h2 { max-width: 780px; margin: 12px 0 18px; color: var(--p-ink); font-size: clamp(26px, 3.4vw, 37px); font-weight: 800; letter-spacing: -.018em; line-height: 1.1; overflow-wrap: break-word; }
.proposal-section h3 { margin: 0 0 8px; color: var(--p-ink); font-size: 17px; font-weight: 750; line-height: 1.28; letter-spacing: -.01em; overflow-wrap: break-word; }
.proposal-section p { max-width: 720px; margin: 0 0 14px; color: #2c2f36; font-size: 16.5px; }
.proposal-section p:last-child { margin-bottom: 0; }
.proposal-lead p, .proposal-cta-body p { max-width: 860px; color: var(--p-ink); font-size: clamp(19px, 2.4vw, 24px); font-weight: 500; letter-spacing: -.012em; line-height: 1.42; }
.proposal-section-image { display: block; width: 100%; max-height: 500px; margin-top: 28px; border-radius: 16px; object-fit: cover; box-shadow: 0 18px 44px rgba(21,23,28,.14); }
/* Listes : barre accent, plus de boîtes grises */
.proposal-bullets { display: grid; gap: 10px; margin: 24px 0 0; padding: 0; list-style: none; }
.proposal-bullets li { position: relative; padding: 14px 18px 14px 20px; border-left: 3px solid var(--proposal-accent); border-radius: 0 12px 12px 0; background: #fff; font-size: 16px; font-weight: 500; box-shadow: 0 6px 18px rgba(21,23,28,.05); }
/* Cartes d'offre : douces, filet accent en tête */
.proposal-card-grid { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 26px; }
.proposal-card-grid.proposal-items-1 { max-width: 720px; }
.proposal-card-grid.proposal-items-1 .proposal-card { flex-basis: 100%; }
.proposal-card { position: relative; flex: 1 1 220px; min-width: 0; padding: 26px 24px 24px; border-radius: 16px; background: #fff; box-shadow: 0 12px 32px rgba(21,23,28,.07); }
.proposal-card:before { content: ''; position: absolute; top: 0; left: 24px; width: 44px; height: 3px; border-radius: 0 0 3px 3px; background: var(--proposal-accent); }
.proposal-card p { font-size: 14.5px; color: var(--p-ink2); }
.proposal-card-image { display: block; width: 100%; max-height: 170px; margin-top: 16px; border-radius: 10px; object-fit: cover; }
/* Chiffres : grands numéraux, séparateurs hairline */
.proposal-stats { display: flex; flex-wrap: wrap; gap: 0; margin-top: 28px; }
.proposal-stat { flex: 1 1 160px; min-width: 150px; padding: 8px 26px 8px 0; margin-right: 26px; border-left: 1px solid var(--p-hair); padding-left: 22px; }
.proposal-stat:first-child { border-left: 0; padding-left: 0; }
.proposal-stat strong { display: block; color: var(--proposal-accent); font-size: clamp(36px, 4.6vw, 52px); font-weight: 800; letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.proposal-stat span { display: block; margin-top: 10px; color: var(--p-ink2); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
/* Galerie */
.proposal-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; margin-top: 24px; }
.proposal-gallery-image { width: 100%; max-width: none; height: 230px; border-radius: 12px; object-fit: cover; }
/* Citation : grand guillemet, serif */
.proposal-quote { position: relative; padding-left: 34px; }
.proposal-quote:before { content: '\201C'; position: absolute; left: -6px; top: 34px; color: var(--proposal-accent); font-family: Georgia, serif; font-size: 110px; line-height: 1; opacity: .22; }
.proposal-quote blockquote { max-width: 860px; margin: 18px 0 0; color: #24262c; font-family: Georgia, "Times New Roman", serif; font-size: clamp(21px, 2.8vw, 27px); font-style: italic; line-height: 1.4; }
/* Comparaison */
.proposal-comparison { margin-top: 24px; border-top: 1px solid var(--p-hair); }
.proposal-comparison > div { display: grid; grid-template-columns: minmax(140px, 32%) 1fr; gap: 18px; padding: 16px 0; border-bottom: 1px solid var(--p-hair); }
.proposal-comparison strong { font-weight: 750; letter-spacing: -.01em; }
.proposal-comparison span { color: var(--p-ink2); }
/* Budget */
.proposal-budget { margin-top: 24px; max-width: 640px; border-top: 2px solid var(--p-ink); }
.proposal-budget > div { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--p-hair); }
.proposal-budget strong { white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 750; }
.proposal-disclaimer { margin-top: 14px !important; color: #7a7f88 !important; font-size: 12.5px !important; font-style: italic; }
/* CTA : panneau sombre, halo accent, bouton réel */
.proposal-cta { position: relative; overflow: hidden; margin: 56px 0 0; padding: 50px 48px; border: 0; border-radius: 20px; background: #14161a; color: #fff; }
.proposal-cta:before { content: ''; position: absolute; top: -140px; right: -100px; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, var(--proposal-accent) 0%, transparent 70%); opacity: .3; }
.proposal-cta > * { position: relative; }
.proposal-cta h2 { color: #fff; }
.proposal-cta .proposal-eyebrow { color: rgba(255,255,255,.75); }
.proposal-cta .proposal-cta-body p { color: rgba(255,255,255,.85); }
.proposal-cta-button { display: inline-flex; align-items: center; gap: 9px; margin-top: 22px; padding: 13px 26px; border-radius: 999px; background: var(--proposal-accent); color: #fff; font-size: 15px; font-weight: 750; text-decoration: none; letter-spacing: -.01em; transition: transform .15s ease, box-shadow .15s ease; }
.proposal-cta-button:hover { transform: translateY(-1px); box-shadow: 0 10px 26px rgba(0,0,0,.35); }

/* Full-screen internal editor. */
.commercial-proposal-editor { position: fixed; inset: 0; z-index: 260; display: flex; flex-direction: column; background: var(--bg, #1d2025); color: var(--text, #f4f5f7); }
.commercial-proposal-editor.hidden { display: none; }
.proposal-editor-head { display: flex; align-items: center; gap: 12px; min-height: 62px; padding: 10px 17px; border-bottom: 1px solid var(--border, #3a3e46); background: var(--bg2, #252930); }
.proposal-editor-title { min-width: 0; flex: 1; }
.proposal-editor-title input { width: min(100%, 420px); border: 0; outline: 0; background: transparent; color: var(--text, #fff); font: inherit; font-size: 17px; font-weight: 750; }
.proposal-editor-meta { display: block; margin-top: 2px; color: var(--text2, #a0a6b2); font-size: 11px; }
.proposal-editor-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.proposal-editor-actions .proposal-save-state { min-width: 80px; color: var(--text2, #a0a6b2); font-size: 11px; text-align: right; }
.proposal-editor-layout { display: grid; grid-template-columns: 250px minmax(0,1fr) 310px; min-height: 0; flex: 1; }
.proposal-editor-rail, .proposal-editor-inspector { overflow: auto; background: var(--bg2, #252930); }
.proposal-editor-rail { border-right: 1px solid var(--border, #3a3e46); padding: 14px 11px; }
.proposal-editor-inspector { border-left: 1px solid var(--border, #3a3e46); padding: 15px; }
.proposal-editor-main { min-width: 0; overflow: auto; padding: 20px; background: var(--bg3, #171a1f); }
.proposal-rail-head, .proposal-inspector-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.proposal-rail-head h3, .proposal-inspector-head h3 { margin: 0; color: var(--text, #fff); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.proposal-section-list { display: grid; gap: 5px; }
.proposal-section-row { display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 6px; width: 100%; padding: 8px; border: 1px solid transparent; background: transparent; color: var(--text2, #a0a6b2); text-align: left; cursor: pointer; border-radius: 7px; }
.proposal-section-row:hover { border-color: var(--border, #3a3e46); color: var(--text, #fff); }
.proposal-section-row.active { border-color: var(--proposal-accent, var(--accent, #c72f2f)); background: rgba(199,47,47,.12); color: var(--text, #fff); }
.proposal-section-row.is-hidden { opacity: .5; }
.proposal-section-row .psr-type { font-size: 10px; color: var(--text2, #a0a6b2); }
.proposal-add-block { display: grid; grid-template-columns: 1fr auto; gap: 6px; margin: 12px 0 18px; }
.proposal-add-block select, .proposal-field input, .proposal-field select, .proposal-field textarea { width: 100%; border: 1px solid var(--border, #3a3e46); border-radius: 7px; outline: 0; background: var(--bg3, #171a1f); color: var(--text, #fff); font: inherit; font-size: 12px; }
.proposal-add-block select, .proposal-field input, .proposal-field select { min-height: 34px; padding: 7px 9px; }
.proposal-field textarea { min-height: 90px; padding: 8px 9px; resize: vertical; line-height: 1.45; }
.proposal-field { margin-bottom: 12px; }
.proposal-field label { display: block; margin-bottom: 5px; color: var(--text2, #a0a6b2); font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.proposal-editor-tabs { display: flex; gap: 5px; margin: 0 0 14px; padding-bottom: 11px; border-bottom: 1px solid var(--border, #3a3e46); overflow-x: auto; }
.proposal-editor-tabs button { flex: 0 0 auto; padding: 6px 8px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--text2, #a0a6b2); cursor: pointer; font-size: 11px; font-weight: 700; }
.proposal-editor-tabs button.active { border-bottom-color: var(--accent, #c72f2f); color: var(--text, #fff); }
.proposal-preview-toolbar { display: flex; align-items: center; justify-content: flex-end; gap: 6px; margin-bottom: 12px; }
.proposal-preview-toolbar button { border: 1px solid var(--border, #3a3e46); border-radius: 6px; background: var(--bg2, #252930); color: var(--text2, #a0a6b2); padding: 5px 8px; cursor: pointer; font-size: 11px; }
.proposal-preview-toolbar button.active { border-color: var(--accent, #c72f2f); color: var(--text, #fff); }
.proposal-preview-stage { display: flex; justify-content: center; padding-bottom: 24px; }
.proposal-preview-paper { width: min(100%, 980px); overflow: hidden; background: #f7f7f3; box-shadow: 0 12px 34px rgba(0,0,0,.28); }
.proposal-preview-paper.mobile { width: min(100%, 390px); }
.proposal-preview-paper .proposal-cover { min-height: 470px; }
.proposal-preview-paper .proposal-cover h1 { font-size: 42px; }
.proposal-preview-paper .proposal-section { padding: 39px 0; }
.proposal-preview-paper .proposal-section h2 { font-size: 28px; }
.proposal-preview-paper .proposal-lead p { font-size: 19px; }
.proposal-preview-paper.mobile .proposal-cover-content { padding: 39px 30px; }
.proposal-preview-paper.mobile .proposal-cover h1 { font-size: 33px; }
.proposal-preview-paper.mobile .proposal-body { padding: 20px 30px 52px; }
.proposal-preview-paper.mobile .proposal-section h2 { font-size: 25px; }
.proposal-preview-paper.mobile .proposal-card-grid, .proposal-preview-paper.mobile .proposal-stats { display: block; }
.proposal-preview-paper.mobile .proposal-card, .proposal-preview-paper.mobile .proposal-stat { margin-bottom: 9px; }
.proposal-preview-paper.mobile .proposal-gallery-image { max-width: 100%; flex-basis: 100%; }
/* ── Aides d'édition (aperçu interactif, jamais côté client) ── */
.proposal-preview-paper { border-radius: 14px; }
.proposal-preview-paper .proposal-section { cursor: pointer; transition: box-shadow .15s ease; }
.proposal-preview-paper .proposal-section:hover { box-shadow: inset 3px 0 0 rgba(199,47,47,.35); }
.proposal-preview-paper .proposal-section.pv-selected { box-shadow: inset 3px 0 0 var(--proposal-accent, #c72f2f); }
.proposal-preview-paper .proposal-section.pv-review { position: relative; outline: 2px dashed #f59e0b; outline-offset: -2px; }
.proposal-preview-paper .proposal-section.pv-review:after { content: 'À vérifier'; position: absolute; top: 10px; right: 10px; padding: 3px 9px; border-radius: 999px; background: #f59e0b; color: #1c1c1c; font-size: 10.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.proposal-review-chip { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border: 1px solid rgba(245,158,11,.5); border-radius: 999px; background: rgba(245,158,11,.12); color: #f59e0b; cursor: pointer; font-size: 11px; font-weight: 700; }
.psr-warn { color: #f59e0b; display: inline-flex; }
.proposal-ai-guide { margin: 0 0 14px; padding: 12px 13px; border: 1px solid var(--border, #3a3e46); border-radius: 8px; background: var(--bg3, #171a1f); color: var(--text2, #a0a6b2); font-size: 11.5px; line-height: 1.5; }
.proposal-ai-guide b { color: var(--text, #fff); }
.proposal-block-tools { display: flex; gap: 5px; margin-top: 8px; }
.proposal-block-tools button, .proposal-inline-button { border: 1px solid var(--border, #3a3e46); border-radius: 6px; background: var(--bg2, #252930); color: var(--text2, #a0a6b2); padding: 5px 7px; cursor: pointer; font-size: 11px; }
.proposal-block-tools button:hover, .proposal-inline-button:hover { color: var(--text, #fff); border-color: var(--accent, #c72f2f); }
.proposal-item-edit { display: grid; grid-template-columns: 1fr auto; gap: 5px; align-items: start; margin-bottom: 7px; }
.proposal-item-edit .proposal-item-fields { display: grid; gap: 5px; }
.proposal-source-row, .proposal-recipient-row, .proposal-revision-row, .proposal-module-row { padding: 9px 0; border-bottom: 1px solid var(--border, #3a3e46); }
.proposal-source-row:last-child, .proposal-recipient-row:last-child, .proposal-revision-row:last-child, .proposal-module-row:last-child { border-bottom: 0; }
.proposal-source-main, .proposal-recipient-main, .proposal-revision-main { display: flex; align-items: center; gap: 7px; min-width: 0; }
.proposal-source-main strong, .proposal-recipient-main strong, .proposal-revision-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.proposal-source-row small, .proposal-recipient-row small, .proposal-revision-row small, .proposal-module-row small { display: block; margin-top: 3px; color: var(--text2, #a0a6b2); font-size: 10px; line-height: 1.35; }
.proposal-contact-add { display: grid; gap: 7px; margin: 12px 0; padding: 11px; border: 1px solid var(--border, #3a3e46); border-radius: 7px; background: var(--bg3, #1d2026); }
.proposal-contact-add strong { font-size: 12px; }
.proposal-contact-add small { color: var(--text2, #a0a6b2); font-size: 10px; line-height: 1.4; }
.proposal-contact-add input { width: 100%; min-width: 0; }
.proposal-recipient-main { flex-wrap: wrap; }
.proposal-recipient-main small { width: 100%; margin: -2px 0 0; color: var(--accent, #c72f2f); }
.proposal-recipient-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.proposal-switch { display: inline-flex; align-items: center; gap: 6px; margin: 0; color: var(--text2, #a0a6b2); font-size: 11px; cursor: pointer; }
.proposal-switch input { accent-color: var(--accent, #c72f2f); }
.proposal-module-row button { margin-top: 7px; }
.proposal-media-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6px; }
.proposal-media-option { overflow: hidden; border: 1px solid var(--border, #3a3e46); border-radius: 6px; background: var(--bg3, #171a1f); color: var(--text2, #a0a6b2); cursor: pointer; text-align: left; }
.proposal-media-option.selected { border-color: var(--accent, #c72f2f); color: var(--text, #fff); }
.proposal-media-option img { display: block; width: 100%; height: 66px; object-fit: cover; }
.proposal-media-option span { display: block; overflow: hidden; padding: 5px; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.proposal-empty { padding: 12px; border: 1px dashed var(--border, #3a3e46); border-radius: 7px; color: var(--text2, #a0a6b2); font-size: 12px; line-height: 1.45; }
.proposal-event-list { max-height: 170px; overflow: auto; margin-top: 12px; }
.proposal-event-row { padding: 5px 0; color: var(--text2, #a0a6b2); font-size: 10px; }
.proposal-library-page { max-width: 1100px; margin: 0 auto; padding: 28px; }
.proposal-library-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; align-items: start; }
.proposal-library-panel { padding: 16px; border: 1px solid var(--border, #3a3e46); border-radius: 8px; background: var(--bg2, #252930); }
.proposal-library-panel h3 { margin: 0 0 8px; font-size: 14px; }
.proposal-library-panel p { margin: 0 0 14px; color: var(--text2, #a0a6b2); font-size: 12px; line-height: 1.45; }
.proposal-library-list { display: grid; gap: 8px; }
.proposal-library-card { padding: 10px; border: 1px solid var(--border, #3a3e46); border-radius: 7px; background: var(--bg3, #171a1f); }
.proposal-library-card strong { font-size: 12px; }
.proposal-library-card small { display: block; margin-top: 3px; color: var(--text2, #a0a6b2); font-size: 10px; }
.proposal-library-card img { width: 100%; height: 110px; margin: 7px 0; object-fit: cover; }
.proposal-library-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }

/* Portal-specific commercial entry and immersive reader. */
.portal-proposal-ready { position: relative; overflow: hidden; margin-bottom: 20px; padding: 26px; border: 1px solid #2f343c; background: #17191d; color: #fff; }
.portal-proposal-ready h2 { margin: 0 0 7px; color: #fff; font-size: 23px; }
.portal-proposal-ready p { max-width: 620px; margin: 0 0 16px; color: rgba(255,255,255,.76); font-size: 14px; line-height: 1.5; }
.portal-proposal-ready .btn { border-color: #fff; background: #fff; color: #17191d; }
.portal-proposal-update { display: inline-flex; align-items: center; gap: 5px; margin-left: 7px; padding: 3px 7px; background: var(--accent, #c72f2f); color: #fff; font-size: 10px; font-weight: 700; }
.proposal-client-view { position: fixed; inset: 0; z-index: 260; overflow: auto; background: #f7f7f3; }
.proposal-client-view.hidden { display: none; }
.proposal-client-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 10px; min-height: 54px; padding: 8px 18px; border-bottom: 1px solid #deded7; background: rgba(247,247,243,.96); }
.proposal-client-title { min-width: 0; flex: 1; overflow: hidden; color: #17191d; font-size: 13px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.proposal-client-nav { display: flex; gap: 5px; max-width: 42%; overflow: auto; }
.proposal-client-nav button { flex: 0 0 auto; border: 0; background: transparent; color: #555a61; cursor: pointer; font-size: 11px; white-space: nowrap; }
.proposal-client-nav button:hover { color: #17191d; text-decoration: underline; }
.proposal-client-actions { display: flex; gap: 6px; align-items: center; }
.proposal-client-actions .btn { border-radius: 6px; font-size: 12px; }
.proposal-client-actions .btn-ghost { color: #34363a; }
.proposal-client-document { width: min(100%, 1200px); margin: 0 auto; }
.proposal-client-contact { width: min(100% - 32px, 900px); margin: 20px auto 72px; padding: 22px; border: 1px solid #d9d9d2; background: #fff; }
.proposal-client-contact h3 { margin: 0 0 4px; color: #17191d; font-size: 18px; }
.proposal-client-contact p { margin: 0 0 12px; color: #555a61; font-size: 13px; }
.proposal-client-contact textarea, .proposal-client-contact input { width: 100%; margin-bottom: 9px; padding: 9px; border: 1px solid #cdd0d2; border-radius: 6px; background: #fff; color: #17191d; font: inherit; font-size: 13px; }
.proposal-client-contact textarea { min-height: 90px; resize: vertical; }
.proposal-client-contact-actions { display: flex; gap: 8px; flex-wrap: wrap; }

@media (max-width: 940px) {
  .proposal-editor-layout { grid-template-columns: 210px minmax(0,1fr); }
  .proposal-editor-inspector { grid-column: 1 / -1; border-top: 1px solid var(--border, #3a3e46); border-left: 0; max-height: 42vh; }
  .proposal-library-grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .proposal-cover { min-height: 450px; }
  .proposal-cover-content { padding: 42px 30px; }
  .proposal-cover h1 { font-size: 35px; }
  .proposal-body { padding: 24px 30px 48px; }
  .proposal-section { padding: 36px 0; }
  .proposal-section h2 { font-size: 27px; }
  .proposal-lead p, .proposal-cta-body p { font-size: 18px; }
  .proposal-card-grid, .proposal-stats { display: block; }
  .proposal-card, .proposal-stat { margin-bottom: 10px; }
  .proposal-gallery-image { max-width: 100%; flex-basis: 100%; }
  .proposal-comparison > div { grid-template-columns: 1fr; gap: 5px; }
  .proposal-editor-head { align-items: flex-start; padding: 9px 10px; }
  .proposal-editor-layout { display: flex; flex-direction: column; overflow: auto; }
  .proposal-editor-rail { order: 2; border-top: 1px solid var(--border, #3a3e46); border-right: 0; max-height: 220px; }
  .proposal-editor-main { order: 1; overflow: visible; padding: 10px; }
  .proposal-editor-inspector { order: 3; max-height: none; }
  .proposal-editor-actions { justify-content: flex-start; }
  .proposal-editor-actions .btn { font-size: 11px; }
  .proposal-client-head { padding: 7px 10px; }
  .proposal-client-nav { display: none; }
  .proposal-client-actions .btn span { display: none; }
}
@media print {
  html, body { margin: 0; padding: 0; background: #fff; }
  .proposal-document { background: #fff; }
  .proposal-cover { min-height: 760px; page-break-after: always; }
  .proposal-cover-content { padding: 70px; }
  .proposal-cover h1 { font-size: 43px; }
  .proposal-body { width: auto; padding: 0 50px 45px; }
  .proposal-section { padding: 34px 0; page-break-inside: avoid; }
  .proposal-section h2 { font-size: 28px; }
  .proposal-card { min-width: 190px; }
  .proposal-cta { page-break-inside: avoid; }
  /* Les ombres impriment mal : hairlines à la place */
  .proposal-section-image, .proposal-card, .proposal-bullets li { box-shadow: none; }
  .proposal-card, .proposal-bullets li { border: 1px solid #e4e2db; }
  .proposal-bullets li { border-left: 3px solid var(--proposal-accent); }
  .proposal-cta-button { display: none; }
}
