.cms-extra{margin:0 auto 64px;padding:28px;background:#fff;border:1px solid #dce6e6;box-shadow:0 14px 30px #123f6d0b}
.cms-extra h2,.cms-uploaded-gallery h2{margin:0 0 10px;color:#123f6d;font-size:25px}
.cms-extra p{margin:0;color:#58707e;line-height:1.65}
.cms-uploaded-gallery{padding:0 0 64px}
.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.admin-tabs a{padding:9px 12px;border:1px solid #d2dfe0;background:#fff;color:#456474;text-decoration:none;font-size:13px;font-weight:700}
.admin-tabs a.active,.admin-tabs a:hover{border-color:#73bd45;background:#edf7e8;color:#123f6d}
.nav-editor{display:grid;grid-template-columns:1fr 1.3fr auto;gap:12px;align-items:end;margin:0;padding:14px 0;border:0;border-bottom:1px solid #dce6e6}
.nav-editor .checkbox{display:flex;align-items:center;gap:7px;padding:10px 0}
.nav-editor .checkbox input{width:auto}
.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}
.media-grid figure{margin:0;background:#fff;border:1px solid #dce6e6}
.media-grid img{display:block;width:100%;height:180px;object-fit:cover}
.media-grid figcaption{padding:12px;color:#58707e;font-size:13px;line-height:1.5}
.media-grid small{word-break:break-all}
@media(max-width:780px){.nav-editor,.media-grid{grid-template-columns:1fr}
.media-grid img{height:230px}
}

.editable-content-block{margin:0 0 2.4rem}
.editable-content-block h2{margin-bottom:1rem}
.editable-content-block p{max-width:760px}
.editable-content-block ul{padding-left:1.2rem;line-height:1.7}
.admin-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem}
.admin-page-head h1{margin:.2rem 0}
.admin-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:1.5rem;align-items:start}
.admin-side-nav{background:#fff;border:1px solid #dce6e6;padding:.7rem;max-height:calc(100vh - 2rem);overflow:auto}
/* Contenus larges (SQL, journaux, extraits de code) : jamais de débordement
   hors du panneau, défilement horizontal si nécessaire. */
.admin-panel pre,.admin-panel code,.admin-panel .code,.admin-panel .log{max-width:100%;overflow-wrap:anywhere}
.admin-panel pre{overflow:auto;white-space:pre-wrap}
.admin-panel table{max-width:100%}
.admin-side-nav a{display:block;padding:.65rem .75rem;color:#123f6d;text-decoration:none;border-left:3px solid transparent}
.admin-side-nav a:hover,.admin-side-nav a.active{background:#edf7e8;border-left-color:#73bd45;font-weight:700}
.admin-panel{background:#fff;border:1px solid #dce6e6;padding:1.5rem;box-shadow:0 14px 30px #123f6d0b}
.admin-panel h2{margin-top:0}
.admin-panel+.admin-panel{margin-top:1.5rem}
.admin-block-row{border-top:1px solid #dce6e6;padding:1rem 0;display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.admin-block-row:first-of-type{border-top:0}
.admin-block-row p{margin:.3rem 0 0}
.admin-block-actions{display:flex;gap:.5rem;white-space:nowrap}
.button.secondary{background:#fff;color:#123f6d;border:1px solid #123f6d;box-shadow:none}
.button.danger{background:#fff;color:#c7342b;border:1px solid #c7342b;box-shadow:none}
.admin-hint{background:#edf7e8;border-left:3px solid #73bd45;padding:.8rem 1rem;margin:1rem 0}
.admin-form.compact{margin-top:1rem}
@media(max-width:700px){.admin-layout{grid-template-columns:1fr}
.admin-page-head{display:block}
.admin-block-row{display:block}
.admin-block-actions{margin-top:.8rem}
}

.editable-content-block--callout{padding:26px 30px;background:#fff;border-left:4px solid #123f6d;box-shadow:0 14px 30px #123f6d0b}
.editable-content-block--callout.accent-green{border-left-color:#73a83c}
.editable-content-block--callout.accent-yellow{border-left-color:#e0ae35}
.editable-content-block--callout.accent-red{border-left-color:#dc4a3b}
.editable-content-block--cta{padding:30px;background:#123f6d;color:#fff}
.editable-content-block--cta h2,.editable-content-block--cta p{color:#fff}
.editable-content-block--cta .button.primary{background:#e15042}
.editable-content-block--image{padding:0;overflow:hidden;background:#fff;border:1px solid #dce6e6}
.editable-content-block--image h2,.editable-content-block--image>p,.editable-content-block--image>ul{margin-left:24px;margin-right:24px}
.editable-content-block--image>p:last-child{margin-bottom:24px}
.cms-block-image{margin:0 0 22px}
.cms-block-image img{display:block;width:auto;max-width:100%;height:auto;max-height:460px;object-fit:contain}
.cms-block-title{display:flex;align-items:center;gap:12px;min-width:0}
.cms-block-title-text{min-width:0}
.cms-block-image--title-logo{display:inline-flex;flex:none;margin:0}
.cms-block-image--title-logo img{width:64px;height:64px;object-fit:contain}
@media(max-width:640px){.cms-block-image--title-logo img{width:48px;height:48px}}
.admin-block-type{display:inline-block;margin-left:.5rem;padding:.15rem .4rem;background:#edf7e8;color:#456474;font-size:.75rem;font-weight:700;text-transform:uppercase}

.cms-sidebar{padding:0;background:transparent;border:0;box-shadow:none}
.cms-sidebar .editable-content-block{margin-bottom:1rem}
.cms-sidebar .editable-content-block h2{font-size:18px}
.cms-sidebar .editable-content-block p{font-size:14px;line-height:1.55}

.media-picker{margin:1rem 0;padding:1rem;border:1px solid #dce6e6;background:#f9fbfa}
.media-picker legend{padding:0 .35rem;color:#123f6d;font-weight:800}
.media-picker--slot.is-collapsible{padding-top:.45rem}.media-picker--slot.is-collapsible legend{display:flex;align-items:center;gap:.45rem;width:100%;padding:.55rem;cursor:pointer}.media-picker--slot.is-collapsible legend::before{content:'▶';font-size:.75rem}.media-picker--slot.is-collapsible.is-open legend::before{content:'▼'}.media-picker--slot.is-collapsible:not(.is-open)>:not(legend){display:none}.media-picker--slot .media-slot-current{font-size:.78rem;font-weight:400;color:#58707e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-upload-direct{display:block;margin:.65rem 0 1rem;padding:.85rem;background:#fff;border:1px dashed #73a83c;color:#123f6d;font-weight:800}
.media-upload-direct input[type=file]{display:block;width:100%;margin:.55rem 0 .35rem;font:inherit;font-weight:400}
.media-upload-direct small{display:block;color:#58707e;font-weight:400;line-height:1.4}
.media-search{width:100%;margin:.5rem 0 1rem;padding:.8rem .9rem;border:1px solid #b9cbd1;font:inherit}
.media-choice{position:relative;display:block;min-width:0;border:1px solid #dce6e6;background:#fff;padding:.45rem;color:#123f6d;cursor:pointer}
.media-choice input{position:absolute;top:.7rem;right:.7rem;width:18px;height:18px;accent-color:#e15042}
.media-choice:has(input:checked){outline:3px solid #73a83c;outline-offset:-3px}
.media-choice img{display:block;width:100%;height:120px;object-fit:cover;margin-bottom:.5rem;background:#eef2ef}
.media-choice span,.media-choice small{display:block;padding:0 .35rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-choice span{font-weight:800;font-size:.84rem}
.media-choice small{margin:.2rem 0;color:#58707e}
.media-choice--none{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:.85rem;padding:.65rem 2.5rem .65rem .75rem}
.media-choice--none input{position:static;margin:0}
.media-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:.75rem;max-height:390px;overflow-y:auto;padding:.15rem}
.document-picker{margin:.4rem 0;padding:.75rem;border:1px solid #dce6e6;background:#f9fbfa}.document-picker summary{cursor:pointer;color:#123f6d;font-weight:800}.document-picker[open] summary{margin-bottom:.7rem}.document-picker-grid{display:grid;gap:.45rem;max-height:220px;overflow:auto}.document-choice{display:block;width:100%;padding:.7rem;border:1px solid #dce6e6;background:#fff;color:#123f6d;text-align:left;cursor:pointer}.document-choice:hover{border-color:#73a83c}.document-choice strong,.document-choice small{display:block}.document-choice small{margin-top:.2rem;color:#58707e}.linked-document{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin:.8rem 0;padding:.8rem;border-left:4px solid #73a83c;background:#edf7e8;color:#123f6d}.linked-document strong,.linked-document span{display:block}.linked-document span{font-size:.85rem;color:#58707e}.linked-document .button{margin-left:auto}
.media-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem;margin-top:1rem}
.media-library-card{margin:0;border:1px solid #dce6e6;background:#fff}
.media-library-card img,.media-missing{display:block;width:100%;height:145px;object-fit:cover;background:#eef2ef}
.media-missing{display:flex;align-items:center;justify-content:center;flex-direction:column;color:#8a3b31;text-align:center;font-weight:800}
.media-library-card figcaption{padding:.75rem;font-size:.85rem;line-height:1.45;color:#58707e}
.media-library-card strong{color:#123f6d;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-warning{display:block;margin-top:.5rem;color:#b33b30}
.cms-block-image{margin:0 0 22px}
.cms-block-image img{display:block;width:auto;max-width:100%;height:auto;max-height:460px;object-fit:contain}

.media-options{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:.8rem;margin-top:1rem}
.media-options label{margin:0}
@media(max-width:680px){.media-options{grid-template-columns:1fr}.media-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.editable-content-block--text.accent-green,.editable-content-block--text.accent-green h2,.editable-content-block--text.accent-green p,.editable-content-block--text.accent-green li{color:#568a2d}
.editable-content-block--text.accent-yellow,.editable-content-block--text.accent-yellow h2,.editable-content-block--text.accent-yellow p,.editable-content-block--text.accent-yellow li{color:#a06d00}
.editable-content-block--text.accent-red,.editable-content-block--text.accent-red h2,.editable-content-block--text.accent-red p,.editable-content-block--text.accent-red li{color:#c33f34}
.editable-content-block--text.accent-navy,.editable-content-block--text.accent-navy h2,.editable-content-block--text.accent-navy p,.editable-content-block--text.accent-navy li{color:#123f6d}
.editable-content-block--image{border:3px solid #123f6d}
.editable-content-block--image.accent-green{border-color:#73a83c}
.editable-content-block--image.accent-yellow{border-color:#e0ae35}
.editable-content-block--image.accent-red{border-color:#dc4a3b}
.editable-content-block--cta.accent-green{background:#5f9634}
.editable-content-block--cta.accent-yellow{background:#c8951c}
.editable-content-block--cta.accent-red{background:#c93f34}
.editable-content-block--cta .button.primary{background:#fff;color:#123f6d}
.editable-content-block--callout.accent-navy{border-left-color:#123f6d}
.editable-content-block .cms-block-image a{display:block}
.editable-content-block .cms-block-image a:hover img{filter:brightness(.94)}
@media(max-width:700px){.media-options{grid-template-columns:1fr}
}

.editable-content-block.has-marker{display:flex;gap:19px;align-items:flex-start}
.editable-content-block.has-marker .block-marker{width:13px;height:13px;border-radius:50%;margin-top:9px;flex:none}
.editable-content-block.has-marker .block-marker.green{background:#73a83c}
.editable-content-block.has-marker .block-marker.yellow{background:#e0ae35}
.editable-content-block.has-marker .block-marker.red{background:#dc4a3b}
.editable-content-block.has-marker .block-marker.navy{background:#123f6d}
.editable-content-block.has-marker .block-marker-content{min-width:0;flex:1}
.editable-content-block.has-marker .block-marker-content>h2:first-child{margin-top:0}
.editable-block-list--benefit .editable-content-block>i{width:13px;height:13px;border-radius:50%;margin-top:9px;flex:none}
.editable-block-list--benefit .editable-content-block>i.green{background:#73a83c}
.editable-block-list--benefit .editable-content-block>i.yellow{background:#e0ae35}
.editable-block-list--benefit .editable-content-block>i.red{background:#dc4a3b}

.editable-content-block.has-divider{padding-bottom:2rem;border-bottom:1px solid #dce6e6}
.block-display-options{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:.8rem;align-items:end;margin:.4rem 0 1rem}
.block-display-options .checkbox{display:flex;align-items:center;gap:.5rem;padding:.7rem 0}
.block-display-options .checkbox input{width:auto}
@media(max-width:700px){.block-display-options{grid-template-columns:1fr}
}

.editable-block-list--benefit{padding:46px 0 70px}
.editable-block-list--benefit .editable-content-block{display:flex;gap:19px;max-width:820px;padding:25px 0;border-bottom:1px solid #e2e9e9;margin:0}
.editable-block-list--benefit i{width:13px;height:13px;border-radius:50%;margin-top:9px;flex:none}
.editable-block-list--benefit i.green{background:#73a83c}
.editable-block-list--benefit i.yellow{background:#e0ae35}
.editable-block-list--benefit i.red{background:#dc4a3b}
.editable-block-list--benefit h2{margin:0 0 8px}
.editable-block-list--benefit p{margin:0 0 10px;color:#5c7481;line-height:1.6}
.editable-block-list--partner{display:grid;grid-template-columns:repeat(2,1fr);gap:19px;padding:51px 0 71px}
.editable-block-list--partner .editable-content-block{margin:0;padding:28px;background:#fff;border:1px solid #e2e9e9}
.editable-block-list--partner .editable-content-block>span{color:#3e6075;font-size:22px;font-weight:850;letter-spacing:-.07em}
.editable-block-list--partner h2{margin:23px 0 8px;font-size:21px}
.editable-block-list--partner p{margin:0;color:#607885;font-size:14px}
@media(max-width:780px){.editable-block-list--partner{grid-template-columns:1fr;padding:42px 0 58px}
}
.editable-block-list--cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;padding:51px 0 71px}
.editable-block-list--cards .editable-content-block{height:100%;margin:0;padding:28px;background:#fff;border:1px solid #e2e9e9;box-shadow:none}
.editable-block-list--cards .editable-content-block.has-divider{border-bottom:1px solid #e2e9e9}
.editable-block-list--cards .block-marker-content{min-width:0}
.editable-block-list--cards h2{margin-top:0}
.editable-block-list--cards .cms-block-image{margin:0 0 18px}
.editable-block-list--cards .cms-block-image img{max-height:230px;object-fit:contain}
.editable-block-list--cards .button{margin-top:6px}
.cms-subpages{margin:34px 0}
.cms-subpages-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;padding:22px 0}
.cms-subpage-card{margin:0;padding:28px;background:#fff;border:1px solid #e2e9e9}
.cms-subpage-card h2,.cms-subpage-normal h2{margin-top:0}
.cms-subpage-card .button{margin-top:6px}
.cms-subpage-normal,.cms-subpage-link{grid-column:1/-1}
.cms-subpage-normal{padding:0 0 20px;border-bottom:1px solid #dfe7e6}
.cms-subpage-link{margin:0;padding:8px 0;font-weight:700}
.page-layout-choice{display:grid;gap:10px;border:1px solid #dce6e6;padding:14px 16px;margin:0}
.page-layout-choice legend{padding:0 5px;color:#466271;font-size:13px;font-weight:800}
.page-layout-choice label{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:start}
.page-layout-choice input{width:auto;grid-row:span 2;margin-top:4px}
.page-layout-choice strong{color:#123f6d}
.page-layout-choice small{grid-column:2;color:#70848e;font-weight:400;line-height:1.45}
@media(max-width:780px){.editable-block-list--cards{grid-template-columns:1fr;padding:42px 0 58px}
.cms-subpages-list{grid-template-columns:1fr}
}

.editable-block-list--cards .editable-content-block--cta,.editable-block-list--cards .editable-content-block--image,.editable-block-list--cards .editable-content-block--callout{padding:28px}
.editable-block-list--cards .editable-content-block--image{overflow:hidden}
.editable-block-list--cards .editable-content-block--image .cms-block-image{margin:0 0 20px}
.editable-block-list--cards .editable-content-block--cta .button{background:#fff;color:#123f6d}
@media(max-width:700px){.cms-block-title{align-items:flex-start}.cms-block-image--title-logo img{max-width:58px;max-height:48px}.cms-block-image img{max-height:360px}}

.media-manager{height:auto!important;min-height:0!important}

.media-manager .media-workspace{display:block!important;overflow:visible!important}

.media-manager .media-scroll{display:block!important;max-height:520px;overflow:auto!important}

.photo-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}

.photo-gallery-grid img{aspect-ratio:4/3!important;object-fit:contain!important;background:#eef2ef}

.photo-lightbox .photo-previous,.photo-lightbox .photo-next{position:absolute;top:48%;border:0;background:rgba(18,63,109,.84);color:#fff;font-size:30px;line-height:1;padding:12px 15px;cursor:pointer}
.photo-lightbox .photo-previous{left:10px}
.photo-lightbox .photo-next{right:10px}
.photo-lightbox .photo-previous:disabled,.photo-lightbox .photo-next:disabled{opacity:.35;cursor:default}

@media(max-width:700px){.photo-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}


/* V46 — Congrès */
.congress-record-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.congress-record-actions form{margin:0}
.congress-admin fieldset{margin:1.2rem 0;padding:1rem;border:1px solid #dce6e6;background:#fbfcfb}
.congress-admin legend{padding:0 .35rem;color:#123f6d;font-weight:800}
.congress-list-section{margin-top:3rem}
.section-heading{max-width:720px;margin-bottom:1.35rem}
.section-heading h2{margin:.25rem 0}
.congress-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem}
.congress-card{display:flex;min-width:0;background:#fff;border:1px solid #dce6e6;box-shadow:0 8px 20px rgba(17,54,79,.07)}
.congress-card-image{display:block;flex:0 0 38%;background:#edf2f1}
.congress-card-image img{display:block;width:100%;height:100%;min-height:220px;object-fit:cover}
.congress-card-content{padding:1.2rem;min-width:0}
.congress-card-content h3{margin:.15rem 0 .55rem;color:#123f6d}
.congress-card-content p{line-height:1.55}
.congress-card-kicker{margin:0;color:#537b30;font-weight:800;font-size:.9rem}
.congress-card-meta{color:#58707e;font-size:.92rem}
.congress-detail-card{max-width:950px}
.congress-lead{font-size:1.12rem;line-height:1.6;color:#173e59}
.congress-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0;padding:1rem;border-top:1px solid #dce6e6;border-bottom:1px solid #dce6e6}
.congress-details div{min-width:0}
.congress-details dt{font-weight:800;color:#123f6d}
.congress-details dd{margin:.2rem 0 0;line-height:1.45}
.congress-body{line-height:1.65}
.congress-body>*:first-child{margin-top:0}
@media(max-width:800px){.congress-list{grid-template-columns:1fr}
.congress-card{display:block}
.congress-card-image img{height:220px;min-height:0}
.congress-details{grid-template-columns:1fr}
}
@media(max-width:640px){.congress-record-actions{margin-top:.75rem}
.congress-records article{display:block}
.congress-card-content{padding:1rem}
.congress-card-image img{height:190px}
}

@media(max-width:900px){.media-manager{grid-template-columns:1fr}.media-tree{border-right:0;border-bottom:1px solid #dce6e6;max-height:320px}}
@media(max-width:760px){.media-manager{height:auto;min-height:0}
}


/* V46 — mise en page finale du module Congrès */
.congress-manager{display:grid;grid-template-columns:285px minmax(0,1fr);border:1px solid #dce6e6;background:#fff;min-height:620px}
.congress-tree{padding:18px 12px;background:#f7faf8;border-right:1px solid #dce6e6}
.congress-tree h2{font-size:18px;margin:18px 8px 10px}
.congress-tree nav{max-height:650px;overflow:auto}
.congress-tree article{padding:10px 8px;border-bottom:1px solid #dce6e6}
.congress-tree article.active{background:#e5f1df}
.congress-tree strong,.congress-tree small{display:block}
.congress-tree small{color:#58707e;margin-top:3px}
.congress-tree span{display:flex;gap:10px;margin-top:7px}
.congress-tree a,.congress-tree button{border:0;background:none;padding:0;color:#123f6d;font:inherit;font-size:13px;font-weight:800;cursor:pointer;text-decoration:underline}
.congress-tree button{color:#a6372e}
.congress-tree form{margin:0}
.congress-workspace{padding:24px;min-width:0}
.congress-workspace h2{margin-top:0}
.congress-workspace fieldset{margin:1.1rem 0;padding:1rem;border:1px solid #dce6e6;background:#fbfcfb}
.congress-workspace legend{padding:0 .35rem;color:#123f6d;font-weight:800}
.congress-media-selector .media-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-top:.75rem}
.congress-selected{display:flex;align-items:center;gap:10px;min-height:45px;padding:8px;border:1px dashed #b9cbd1;background:#fff;color:#58707e}
.congress-selected img{width:74px;height:52px;object-fit:contain;background:#eef2ef}
.congress-selected button{margin-left:8px;border:0;background:none;color:#a6372e;text-decoration:underline;cursor:pointer;font:inherit}
.congress-media-result{display:block;border:1px solid #dce6e6;background:#fff;padding:.4rem;text-align:left;cursor:pointer;color:#123f6d;font:inherit}
.congress-media-result img{display:block;width:100%;height:95px;object-fit:cover;background:#eef2ef}
.congress-media-result span,.congress-media-result small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.congress-media-result small{color:#58707e;font-size:.75rem;margin-top:3px}
.congress-editorial .editable-block-list{display:block}
.congress-editorial .editable-content-block{padding:0;border:0;background:transparent;box-shadow:none}
.congress-editorial .editable-content-block+.editable-content-block{margin-top:2rem}
.congress-list-rows{border-top:1px solid #dce6e6}
.congress-list-row{display:grid;grid-template-columns:76px 150px minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px 0;border-bottom:1px solid #dce6e6}
.congress-list-year{font-size:1.35rem;font-weight:900;color:#123f6d}
.congress-list-row>img{display:block;width:150px;height:95px;object-fit:cover;background:#eef2ef}
.congress-list-copy h3{margin:0 0 .35rem;color:#123f6d}
.congress-list-copy p{margin:.25rem 0;color:#58707e;line-height:1.45}
.congress-detail-content{max-width:950px}
.congress-logo{display:block;max-width:220px;max-height:100px;object-fit:contain;margin:0 0 1.2rem}
.congress-detail-image{display:block;width:100%;max-width:820px;max-height:430px;object-fit:contain;background:#eef2ef;margin:1.5rem 0}
.congress-detail-content .congress-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0;padding:1rem 0;border-top:1px solid #dce6e6;border-bottom:1px solid #dce6e6}
@media(max-width:760px){.congress-manager{grid-template-columns:1fr}
.congress-tree{border-right:0;border-bottom:1px solid #dce6e6}
.congress-tree nav{max-height:300px}
.congress-workspace{padding:16px}
.congress-list-row{grid-template-columns:58px 105px minmax(0,1fr)}
.congress-list-row>img{width:105px;height:74px}
.congress-list-row .button{grid-column:2/-1;justify-self:start}
.congress-detail-content .congress-details{grid-template-columns:1fr}
}
@media(max-width:500px){.congress-list-row{grid-template-columns:50px minmax(0,1fr);gap:12px}
.congress-list-row>img{grid-column:2;width:100%;height:150px}
.congress-list-copy{grid-column:2}
.congress-list-row .button{grid-column:2}
.congress-detail-image{max-height:260px}
}

/* V47 — fiches Congrès : documents, partenaires et liste logo/photo. */
.congress-browse{display:inline-flex!important;align-items:center;gap:8px;width:max-content!important;margin:.7rem 0;padding:.55rem .8rem;border:1px solid #8aa8b6;background:#fff;color:#123f6d;font-weight:800;cursor:pointer}
.congress-browse input{width:1px!important;height:1px!important;opacity:0;position:absolute}
.congress-partner-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.congress-partner-checks label{display:flex;align-items:center;gap:9px;padding:8px;border:1px solid #dce6e6;background:#fff}
.congress-partner-checks input{width:auto!important}
.congress-partner-checks img{width:48px;height:35px;object-fit:contain}
.congress-partner-checks span,.congress-partner-checks small{display:block}
.congress-partner-checks small{color:#58707e}
.congress-list-row{grid-template-columns:76px 125px minmax(0,1fr) 150px auto}
.congress-list-logo{width:125px;height:85px;display:grid;place-items:center;background:#f3f6f5}
.congress-list-logo img{display:block;max-width:115px;max-height:75px;object-fit:contain}
.congress-list-row>img.congress-list-photo{display:block;width:150px;height:95px;object-fit:cover;background:#eef2ef}
.congress-logo{max-width:260px;max-height:120px}
.congress-history{margin:1.5rem 0;border:1px solid #dce6e6;background:#f7faf8}
.congress-history summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:1rem 1.15rem;color:#123f6d;font-weight:800;cursor:pointer}
.congress-history summary::-webkit-details-marker{display:none}
.congress-history-title{font-size:1.05rem}
.congress-history-open,.congress-history-close{padding:.42rem .68rem;border:1px solid #8aa8b6;background:#fff;font-size:.88rem;white-space:nowrap}
.congress-history-close{display:none}
.congress-history[open] .congress-history-open{display:none}
.congress-history[open] .congress-history-close{display:inline}
.congress-history-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 1.15rem 1.15rem}
.congress-history-grid a{display:block;padding:.72rem .78rem;border:1px solid #dce6e6;background:#fff;color:#123f6d;text-decoration:none;line-height:1.35}
.congress-history-grid a:hover{border-color:#6f9eae;background:#edf5f5}
@media(max-width:850px){.congress-history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.congress-history summary{align-items:flex-start;flex-direction:column;gap:10px}.congress-history-open,.congress-history-close{align-self:flex-start}.congress-history-grid{grid-template-columns:1fr;padding:0 .85rem .85rem}.congress-history-title{line-height:1.35}}
@media(max-width:900px){.congress-list-row{grid-template-columns:60px 105px minmax(0,1fr)}.congress-list-logo{width:105px;height:74px}.congress-list-logo img{max-width:95px;max-height:64px}.congress-list-row>img.congress-list-photo{grid-column:2;width:105px;height:74px}.congress-list-row .button{grid-column:2/-1;justify-self:start}}
@media(max-width:500px){.congress-list-row{grid-template-columns:50px minmax(0,1fr);gap:12px}.congress-list-logo{grid-column:2;width:100%;height:85px}.congress-list-row>img.congress-list-photo{grid-column:2;width:100%;height:150px}.congress-list-copy{grid-column:2}.congress-list-row .button{grid-column:2}.congress-partners a{width:calc(50% - 7px)}}
.congress-brochure{margin:2rem 0;padding:1.25rem;border-top:1px solid #dce6e6;border-bottom:1px solid #dce6e6}
.congress-brochure h2,.congress-partners h2{margin-top:0}
.congress-brochure img{display:block;max-width:240px;max-height:320px;object-fit:contain;margin:1rem 0}
.congress-partners{margin:2.25rem 0 0;padding:1.25rem;background:#f7faf8;border-top:3px solid #123f6d}
.congress-partners>div{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.congress-partners a{display:grid;place-items:center;width:130px;height:75px;padding:8px;background:#fff;border:1px solid #dce6e6}
.congress-partners img{max-width:112px;max-height:58px;object-fit:contain}
.congress-partners span{color:#123f6d;font-weight:800;text-align:center}
@media(max-width:900px){.congress-list-row{grid-template-columns:60px 105px minmax(0,1fr)}
.congress-list-logo{width:105px;height:74px}
.congress-list-logo img{max-width:95px;max-height:64px}
.congress-list-row>img.congress-list-photo{grid-column:2;width:105px;height:74px}
.congress-list-row .button{grid-column:2/-1;justify-self:start}
.congress-detail-content .congress-details{grid-template-columns:1fr}
}
@media(max-width:500px){.congress-list-row{grid-template-columns:50px minmax(0,1fr);gap:12px}
.congress-list-logo{grid-column:2;width:100%;height:85px}
.congress-list-row>img.congress-list-photo{grid-column:2;width:100%;height:150px}
.congress-list-copy{grid-column:2}
.congress-list-row .button{grid-column:2}
.congress-detail-image{max-height:260px}
.congress-partners a{width:calc(50% - 7px)}
}
.congress-list-row{grid-template-columns:76px 125px minmax(0,1fr) 150px auto}
.congress-list-logo{width:125px;height:85px;display:grid;place-items:center;background:#f3f6f5}
.congress-list-logo img{display:block;max-width:115px;max-height:75px;object-fit:contain}
.congress-list-row>img.congress-list-photo{display:block;width:150px;height:95px;object-fit:cover;background:#eef2ef}
.congress-logo{max-width:260px;max-height:120px}

/* ==================================================================
   Modules unifiés du Back-office (Actualités, Partenaires)
   Listes compactes, barre de filtres, pagination, pastilles d'état.
   Réutilise la palette et les composants déjà définis ci-dessus
   (.admin-layout, .admin-side-nav, .admin-panel, .admin-form, .button).
   ================================================================== */

.admin-page-head .admin-page-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.admin-side-nav hr{margin:.7rem 0;border:0;border-top:1px solid #d6e0df}
.admin-side-nav strong{display:block;margin-bottom:.35rem;color:#123f6d;letter-spacing:.04em;text-transform:uppercase;font-size:.76rem}

/* --- Barre de filtres ------------------------------------------- */
.admin-filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(auto-fit,minmax(150px,1fr)) auto;gap:.5rem;align-items:end;margin:0 0 1.1rem;padding:1rem;background:#f6faf7;border:1px solid #dce6e6}
.admin-filters label{display:block;margin:0;font-size:.74rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#58707e}
.admin-filters input[type=search],.admin-filters input[type=text],.admin-filters select{width:100%;margin-top:.3rem;padding:.5rem .55rem;border:1px solid #b9cbd1;font:inherit;font-size:.9rem;background:#fff}
.admin-filters-actions{display:flex;gap:.4rem;align-items:flex-end}
.admin-filters .button{white-space:nowrap}

/* --- Tableau compact -------------------------------------------- */
.admin-list-table{width:100%;border-collapse:collapse;font-size:.9rem}
.admin-list-table th{padding:.5rem .6rem;text-align:left;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#58707e;background:#f6faf7;border-bottom:2px solid #dce6e6;white-space:nowrap}
.admin-list-table td{padding:.6rem;border-bottom:1px solid #e6edec;vertical-align:middle}
.admin-list-table tr:last-child td{border-bottom:0}
.admin-list-table tbody tr:hover{background:#fafcfb}
.admin-list-title{display:block;color:#123f6d;font-weight:800;line-height:1.3;text-decoration:none}
.admin-list-title:hover{text-decoration:underline}
.admin-list-sub{display:block;margin-top:.15rem;color:#70848e;font-size:.78rem;line-height:1.4}
.admin-list-thumb{display:grid;place-items:center;width:56px;height:40px;background:#f3f6f5;border:1px solid #e2e9e9}
.admin-list-thumb img{display:block;max-width:52px;max-height:36px;object-fit:contain}
.admin-list-table code{font-size:.78rem;color:#456474}
.admin-list-actions{display:flex;gap:.35rem;flex-wrap:wrap;white-space:nowrap}
.admin-list-actions form{display:inline}
.admin-list-cell-num{font-variant-numeric:tabular-nums;white-space:nowrap;color:#123f6d;font-weight:700}
.admin-list-wrap{overflow-x:auto}

/* --- Pastilles et indicateurs ----------------------------------- */
.admin-badge{display:inline-block;padding:.16rem .5rem;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.02em;white-space:nowrap;background:#e5ecee;color:#456474}
.admin-badge--ok{background:#e6f3dc;color:#3d6b23}
.admin-badge--draft{background:#fdf0d6;color:#8a6112}
.admin-badge--off{background:#fbe9e7;color:#9c3128}
.admin-flag{display:inline-block;padding:.1rem .4rem;border-radius:4px;font-size:.7rem;font-weight:800;white-space:nowrap}
.admin-flag--on{background:#e6f3dc;color:#3d6b23}
.admin-flag--off{background:#eef1f1;color:#93a3a8}
.admin-flag-row{display:flex;gap:.25rem;flex-wrap:wrap}

/* --- Pagination -------------------------------------------------- */
.admin-pager{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;margin:1.2rem 0 .2rem;padding-top:1rem;border-top:1px solid #e2e9e9}
.admin-pager-count{margin-right:auto;color:#70848e;font-size:.8rem}
.admin-pager-step{display:inline-block;min-width:2rem;padding:.3rem .5rem;border:1px solid #d3dedd;background:#fff;color:#123f6d;font-size:.82rem;font-weight:700;text-align:center;text-decoration:none}
.admin-pager-step:hover{background:#edf7e8;border-color:#73bd45}
.admin-pager-step.is-current{background:#123f6d;border-color:#123f6d;color:#fff}
.admin-pager-gap{color:#93a3a8;padding:0 .1rem}

/* --- Formulaire long : sections repliables ----------------------- */
.admin-form-sections{display:grid;gap:1rem;margin-top:1rem}
.admin-form-section{background:#fff;border:1px solid #dce6e6}
.admin-form-section>summary{display:flex;align-items:center;gap:.5rem;padding:.85rem 1rem;cursor:pointer;color:#123f6d;font-weight:800;list-style:none}
.admin-form-section>summary::-webkit-details-marker{display:none}
.admin-form-section>summary::before{content:'▶';font-size:.7rem;color:#73bd45}
.admin-form-section[open]>summary::before{content:'▼'}
.admin-form-section>summary small{margin-left:auto;color:#70848e;font-weight:400;font-size:.76rem}
.admin-form-section>.admin-form{padding:0 1rem 1rem;max-width:none}
.admin-form-section>.admin-form:empty{display:none}
.admin-subfield{display:block;margin-top:.6rem;font-size:.8rem}
.admin-subfield input{width:100%;margin-top:.25rem;padding:.45rem .5rem;border:1px solid #b9cbd1;font:inherit;font-size:.88rem}
.admin-form-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:1.1rem;padding-top:1rem;border-top:1px solid #e2e9e9}

/* --- Cases à cocher : .admin-form label est en display:grid, on rétablit l'alignement --- */
.admin-form label.checkbox{display:flex;align-items:center;gap:.5rem;font-weight:700;color:#123f6d}
.admin-form label.checkbox input[type=checkbox]{width:auto;min-height:0;padding:0;background:transparent;border:0;box-sizing:content-box;margin:0;flex:none}
.admin-form label.checkbox small{color:#70848e;font-weight:400}

/* --- Bandeau d'aide en tête de liste ------------------------------ */
.admin-list-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.9rem}
.admin-list-head h2{margin:0}

/* --- Illustrations d'articles ------------------------------------- */
.article-illustration{display:block;width:100%;height:auto;margin:0 0 1.4rem;background:#eef2ef}
.article-feed article:after{content:"";display:block;clear:both}
.article-feed article>.article-illustration{float:left;width:170px;height:120px;object-fit:cover;margin:0 1.1rem .6rem 0}
.article-title-logo{display:block;width:auto;max-width:150px;max-height:70px;object-fit:contain;background:transparent;margin:0 0 1rem}

/* --- Colonnes gauche scrollables des modules unifiés ---------------- */
/* Navigation + création + liste compacte : environ 6 à 8 éléments visibles
   avant l'apparition de la barre de défilement verticale. */
.admin-module-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:1.6rem;align-items:start}
.admin-rail{position:sticky;top:1rem;background:#fff;border:1px solid #dce6e6;padding:1rem 1rem 1.2rem;max-height:calc(100vh - 2rem);overflow:auto}
.admin-rail>h2{margin:0 0 .2rem;font-size:1.05rem;color:#123f6d}
.admin-rail-group{margin-top:1.2rem;padding-top:.9rem;border-top:1px solid #e2e9e9}
.admin-rail-group>h3{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0 0 .55rem;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:#58707e}
.admin-rail-link{display:block;padding:.5rem .6rem;color:#123f6d;font-weight:700;text-decoration:none;border-left:3px solid transparent}
.admin-rail-link:hover{background:#edf7e8;border-left-color:#73bd45}
.admin-rail-link.is-active{background:#e8eff5;border-left-color:#123f6d}
.admin-rail-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.55rem .7rem;margin:.7rem 0 .4rem;align-items:end}
.admin-rail-filters label{display:block;font-size:.72rem;color:#58707e}
.admin-rail-filters input,.admin-rail-filters select{width:100%;margin-top:.2rem;padding:.35rem .45rem;border:1px solid #b9cbd1;font:inherit;font-size:.85rem;background:#fff}
.admin-rail-filter-actions{display:flex;gap:.4rem;grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}
.admin-rail-list{list-style:none;margin:0;padding:0;max-height:352px;overflow-y:auto;overflow-x:hidden;border:1px solid #e2e9e9;background:#fbfdfc}
.admin-rail-list:empty{display:none}
.admin-rail-item{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:'thumb body' 'actions actions';gap:.25rem .55rem;padding:.55rem .6rem;border-bottom:1px solid #eef2f1}
.admin-rail-item:last-child{border-bottom:0}
.admin-rail-item.is-current{background:#e8eff5;box-shadow:inset 3px 0 0 #123f6d}
.admin-rail-thumb{grid-area:thumb;width:42px;height:34px;display:grid;place-items:center;background:#fff;border:1px solid #dce6e6;overflow:hidden}
.admin-rail-thumb img{max-width:100%;max-height:100%;object-fit:contain}
.admin-rail-body{grid-area:body;min-width:0}
.admin-rail-title{display:block;font-weight:700;color:#123f6d;font-size:.88rem;line-height:1.25;text-decoration:none;overflow-wrap:anywhere}
.admin-rail-title:hover{text-decoration:underline}
.admin-rail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin-top:.15rem;color:#70848e;font-size:.72rem}
.admin-rail-actions{grid-area:actions;display:flex;gap:.3rem;margin-top:.3rem}
.admin-rail-actions form{display:inline}
.admin-rail-actions .button{padding:.22rem .5rem;font-size:.74rem}
.admin-rail-empty{padding:.8rem .6rem;color:#70848e;font-size:.82rem;background:#fbfdfc}
.admin-rail-foot{margin-top:.5rem;font-size:.74rem;color:#70848e}
.admin-rail-foot .admin-pager{margin:.4rem 0 0;padding-top:.4rem;border-top:1px solid #eef2f1;font-size:.74rem}
.admin-rail-foot .admin-pager-step{min-width:1.7rem;padding:.2rem .35rem;font-size:.72rem}
.admin-rail-foot .admin-pager-count{display:none}

/* --- Aperçu d'image dans un champ Médiathèque ----------------------- */
.media-current{display:flex;align-items:center;gap:.7rem;margin:.4rem 0 .7rem;padding:.55rem;border:1px solid #cfdad9;background:#f4f8f6}
.media-current img{width:74px;height:56px;object-fit:contain;background:#fff;border:1px solid #dce6e6;flex:none}
.media-current-meta{display:flex;flex-direction:column;min-width:0;flex:1}
.media-current-meta strong{color:#123f6d;font-size:.85rem;min-width:0;overflow-wrap:normal;word-break:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.media-current-meta small{color:#70848e;font-size:.72rem}

/* --- Champ couleur synchronisé -------------------------------------- */
.admin-color{display:flex;align-items:flex-end;gap:.8rem;flex-wrap:wrap}
.admin-color label{display:block;font-size:.8rem;color:#123f6d}
.admin-color input[type=text]{width:9.5rem;margin-top:.25rem;padding:.45rem .5rem;border:1px solid #b9cbd1;font:inherit;font-size:.88rem;font-family:ui-monospace,Consolas,monospace}
.admin-color-swatch input[type=color]{width:3rem;height:2.35rem;margin-top:.25rem;padding:.15rem;border:1px solid #b9cbd1;background:#fff;cursor:pointer}
.admin-color-help{color:#70848e;font-size:.78rem}

/* --- Petit éditeur HTML --------------------------------------------- */
.admin-rich-toolbar{display:flex;flex-wrap:wrap;gap:.3rem;margin:.5rem 0 .2rem;padding:.4rem;border:1px solid #dce6e6;background:#f4f8f6}
.admin-rich-toolbar[hidden]{display:none}
.admin-rich-btn{padding:.3rem .55rem;border:1px solid #cbd8da;background:#fff;color:#123f6d;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}
.admin-rich-btn:hover{background:#edf7e8;border-color:#73bd45}
.admin-rich-btn.is-letter{min-width:2.1rem;text-transform:none;font-style:italic}
.admin-rich-btn[data-rich-command=bold]{font-weight:900}
.admin-rich-hint{display:block;margin-top:.3rem;color:#70848e;font-size:.78rem}
.admin-form textarea[data-rich-area]{font-family:inherit;line-height:1.5}

@media(max-width:820px){.admin-module-layout{grid-template-columns:1fr}.admin-rail{position:static;max-height:none}.admin-side-nav{max-height:none;overflow:visible}}

@media(max-width:820px){
  .admin-filters{grid-template-columns:1fr}
  .admin-filters-actions{justify-content:flex-start}
  .article-feed article>.article-illustration{float:none;width:100%;height:auto;max-height:220px;margin:0 0 .8rem}
  .admin-list-thumb{width:44px;height:34px}
  .admin-list-thumb img{max-width:40px;max-height:30px}
}

/* ==================================================================
   V67.5 — « Pages & contenu » : composition de page
   ------------------------------------------------------------------
   Pas de second design : on réutilise .admin-rail, .admin-panel,
   .admin-form, .admin-form-section, .button, .admin-badge qui existent
   déjà. Ces règles ajoutent seulement ce qui est propre à la
   composition (cartes compactes, séparateurs d'insertion) et la
   présentation « Vignette » d'un bloc isolé.
   ================================================================== */

/* --- Présentation « Vignette » d'UN bloc (le même bloc, pas un type) --- */
.editable-content-block--vignette{padding:26px 28px;background:#fff;border:1px solid #e2e9e9;box-shadow:0 10px 24px rgba(17,54,79,.06)}
.editable-content-block--vignette h2{margin-top:0;color:#123f6d}
.editable-content-block--vignette .cms-block-image{margin:0 0 18px}
.editable-content-block--vignette .cms-block-image img{max-height:230px;object-fit:cover}
.editable-content-block--vignette.has-marker{background:#f7faf8}
@media(max-width:700px){.editable-content-block--vignette{padding:20px 18px}}

/* --- Colonne gauche : liste des pages --------------------------------- */
.cms-compose{display:grid;grid-template-columns:320px minmax(0,1fr);gap:1.6rem;align-items:start}
.cms-compose-rail{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto;background:#fff;border:1px solid #dce6e6;padding:1rem}
.cms-compose-rail h2{margin:0 0 .2rem;font-size:1.05rem;color:#123f6d}
.cms-compose-rail>p{margin:0 0 .8rem;color:#70848e;font-size:.82rem}
.cms-compose-rail-list{list-style:none;margin:0;padding:0;max-height:min(58vh,520px);overflow-y:auto;border:1px solid #e2e9e9;background:#fbfdfc}
.cms-compose-rail-item a{display:flex;align-items:center;gap:.5rem;padding:.55rem .6rem;color:#123f6d;font-weight:700;text-decoration:none;border-bottom:1px solid #eef2f1;border-left:3px solid transparent}
.cms-compose-rail-item:last-child a{border-bottom:0}
.cms-compose-rail-item a:hover{background:#edf7e8}
.cms-compose-rail-item a.is-active{background:#e8eff5;border-left-color:#123f6d}
.cms-compose-rail-item .cms-compose-rail-dot{width:8px;height:8px;border-radius:50%;background:#b9cbd1;flex:none}
.cms-compose-rail-item .cms-compose-rail-dot.is-visible{background:#6aa53b}
.cms-compose-rail-item .cms-compose-rail-label{flex:1;min-width:0}
.cms-compose-rail-item .cms-compose-rail-url{display:block;margin-top:.15rem;color:#8ba0a9;font-size:.72rem;font-weight:400;font-family:ui-monospace,Consolas,monospace}
/* V67.5 FIX — deux catégories seulement : le titre de groupe sépare les pages
   principales des sous-pages. La position de défilement du rail est rendue
   par assets/pages-content.js : le conteneur garde donc sa place entre deux
   chargements, sans réserve d'espace à coder. */
.cms-compose-rail-group{margin:.2rem 0 .1rem;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#5b7382}
.cms-compose-rail-note{margin:.1rem 0 .45rem;color:#8296a1;font-size:.75rem;line-height:1.4}
.cms-slug-preview{display:block;margin-top:.2rem;color:#4c6b52;font-family:ui-monospace,Consolas,monospace;font-size:.75rem}
/* Zone de suppression : nettement séparée du reste de la fiche. */
.cms-compose-danger{margin-top:1.4rem;padding-top:1rem;border-top:1px solid #e4d3d3}
.cms-compose-danger h3{margin:0 0 .4rem;font-size:.95rem;color:#a33}
/* Pastille réellement colorée sur la carte d'un bloc (secondaire, purement
   visuel : aucune information n'est perdue si la couleur n'est pas rendue). */
.cms-compose-marker{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:-1px;border:1px solid #0000001f}
.cms-compose-marker--navy{background:#123f6d}
.cms-compose-marker--green{background:#6aa53b}
.cms-compose-marker--yellow{background:#f1ba2b}
.cms-compose-marker--red{background:#dc4a3b}
.cms-compose-rail-item .admin-badge{flex:none}
.cms-compose-rail-foot{margin-top:.8rem}
.cms-compose-rail-foot .button{width:100%}

/* --- Sections de la page sélectionnée -------------------------------- */
.cms-compose-panel{margin-bottom:1.1rem;background:#fff;border:1px solid #dce6e6;padding:1rem 1.1rem}
.cms-compose-panel>summary{display:flex;align-items:center;gap:.6rem;cursor:pointer;color:#123f6d;font-size:1.05rem;font-weight:850;list-style:none}
.cms-compose-panel>summary::-webkit-details-marker{display:none}
.cms-compose-panel>summary::before{content:'▶';font-size:.7rem;color:#73bd45}
.cms-compose-panel[open]>summary::before{content:'▼'}
.cms-compose-panel>summary small{margin-left:auto;color:#70848e;font-weight:400;font-size:.78rem}
.cms-compose-body{margin-top:1rem}
.cms-compose-hint{margin:.2rem 0 1rem;color:#70848e;font-size:.84rem;line-height:1.5}
.cms-compose-file{display:inline-block;padding:.15rem .45rem;background:#f1f4f4;color:#456474;font-family:ui-monospace,Consolas,monospace;font-size:.8rem}

/* --- Cartes de la composition ---------------------------------------- */
.cms-compose-list{list-style:none;margin:0;padding:0}
.cms-compose-item{margin-bottom:.5rem;background:#fbfdfc;border:1px solid #e2e9e9;border-left:4px solid #b9cbd1}
.cms-compose-item.is-block{border-left-color:#123f6d}
.cms-compose-item.is-main{border-left-color:#6a3fa0;background:#faf8fd}
.cms-compose-item.is-hidden{opacity:.62}
.cms-compose-item.is-hidden .cms-compose-item-title{text-decoration:line-through}
.cms-compose-head{display:flex;align-items:center;gap:.6rem;padding:.6rem .7rem}
.cms-compose-order{display:flex;flex-direction:column;gap:.15rem}
.cms-compose-order button{width:1.9rem;height:1.35rem;padding:0;border:1px solid #cbd8da;background:#fff;color:#123f6d;font:inherit;font-size:.7rem;line-height:1;cursor:pointer}
.cms-compose-order button:hover:not(:disabled){background:#edf7e8;border-color:#73bd45}
.cms-compose-order button:disabled{opacity:.35;cursor:default}
.cms-compose-kind{display:inline-block;padding:.15rem .45rem;border-radius:3px;font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;background:#e5ecee;color:#456474}
.cms-compose-item.is-main .cms-compose-kind{background:#6a3fa0;color:#fff}
.cms-compose-item-title{display:block;color:#123f6d;font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.cms-compose-item-meta{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center;margin-top:.2rem;color:#70848e;font-size:.75rem}
.cms-compose-item-actions{display:flex;flex-wrap:wrap;gap:.3rem;margin-left:auto}
.cms-compose-item-actions form{display:inline}
.cms-compose-item-actions .button{padding:.25rem .55rem;font-size:.76rem}
.cms-compose-item-body{border-top:1px solid #e6edec;padding:1rem 1.1rem;background:#fff}
.cms-compose-item-body>summary{cursor:pointer;color:#123f6d;font-weight:800}
.cms-compose-item-body .admin-form{margin-top:.9rem}

/* --- Séparateur « + Ajouter un bloc ici » ---------------------------- */
.cms-compose-add{margin:.15rem 0 .75rem}
.cms-compose-add--start{margin:0 0 .6rem}
.cms-compose-add--end{margin:.45rem 0 0}

/* ==================================================================
   V69.10.1 — « Ajouter un bloc ici » : sélecteur à DEUX COLONNES
   ------------------------------------------------------------------
   Correctif ERGONOMIQUE uniquement. Les champs cachés, les actions
   POST (`add_block` / `use_block`), le CSRF et le traitement serveur
   restent ceux de la V69.10.0. Ne touche ni au moteur des blocs
   réutilisables, ni au contenu partagé, ni à l'apparence des pages.
   Sur ordinateur : colonne gauche « Créer un nouveau bloc », colonne
   droite « Réutiliser un bloc existant » avec liste compacte à
   défilement interne. Sur tablette / smartphone : les deux colonnes
   s'empilent, le formulaire de création reste au-dessus. Plus de
   puces, plus de pointillés larges, plus de titres centrés. */
.cms-compose-add>summary{list-style:none;display:block;width:100%;margin:0;padding:.45rem .6rem;border:1px solid #9fb8c0;border-radius:3px;background:#f4f8f6;color:#123f6d;font:inherit;font-size:.8rem;font-weight:700;text-align:left;cursor:pointer;box-sizing:border-box}
.cms-compose-add>summary::-webkit-details-marker{display:none}
.cms-compose-add>summary:hover{background:#e6f3dc;border-color:#6aa53b}
.cms-compose-add[open]>summary{border-color:#123f6d;background:#123f6d;color:#fff}
.cms-compose-add-body{margin-top:.5rem;padding:.85rem .95rem;border:1px solid #dce6e6;background:#fbfdfc;text-align:left}
.cms-compose-add-cols{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.1rem;align-items:start}
.cms-compose-add-col{min-width:0}
.cms-compose-add-col-title{margin:0 0 .55rem;color:#123f6d;font-size:.92rem;font-weight:800;text-align:left}

/* --- Colonne gauche : créer un nouveau bloc --- */
.cms-compose-add-new{display:grid;gap:.6rem}
.cms-compose-add-new label{display:grid;gap:.25rem;color:#456474;font-size:.78rem;font-weight:700}
.cms-compose-add-new input,.cms-compose-add-new textarea{padding:.45rem .55rem;border:1px solid #cbd8da;border-radius:3px;font:inherit;font-size:.84rem;width:100%;box-sizing:border-box}
.cms-compose-add-new textarea{min-height:4.8rem;resize:vertical}
.cms-compose-add-new .button{justify-self:start}

/* --- Colonne droite : réutiliser un bloc existant --- */
.cms-compose-add-use-head{display:flex;align-items:center;gap:.45rem;margin:0 0 .55rem}
.cms-compose-add-use-head .cms-compose-add-col-title{margin:0}
.cms-compose-add-use-count{flex:none}
.cms-compose-add-use-search{display:grid;gap:.25rem;color:#456474;font-size:.78rem;font-weight:700;margin:0 0 .45rem}
.cms-compose-add-use-search input{padding:.45rem .55rem;border:1px solid #cbd8da;border-radius:3px;font:inherit;font-size:.84rem;width:100%;box-sizing:border-box}
.cms-compose-add-use-search input:focus,.cms-compose-add-new input:focus,.cms-compose-add-new textarea:focus{outline:2px solid #7aa5cf;border-color:#5b87b3}

/* --- Liste compacte : hauteur bornée (~320 px), SEUL son contenu
       défile ; chaque ligne = titre + infos discrètes + « Ajouter » --- */
.cms-compose-add-use-list{list-style:none;margin:0;padding:0;max-height:320px;overflow-y:auto;border:1px solid #e2e9e9;border-radius:3px;background:#fff}
.cms-compose-add-use-list li{border-bottom:1px solid #eef2f2}
.cms-compose-add-use-list li:last-child{border-bottom:0}
.cms-compose-add-use-list li:hover{background:#f6faf7}
.cms-compose-add-use-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .55rem}
.cms-compose-add-use-copy{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:.12rem}
.cms-compose-add-use-copy strong{color:#123f6d;font-size:.84rem;line-height:1.3;overflow-wrap:anywhere}
.cms-compose-add-use-copy small{color:#70848e;font-size:.74rem;line-height:1.35}
.cms-compose-add-use-add{flex:none;white-space:nowrap;min-height:1.9rem;padding:.3rem .7rem}
.cms-compose-add-use-empty{margin:.45rem 0 0}
.cms-compose-add-use>.muted{margin:.5rem 0 0;display:block}
.cms-compose-add-footnote{margin:.85rem 0 0;padding-top:.7rem;border-top:1px solid #e2e9e9;color:#456474;font-size:.8rem;line-height:1.5}

/* --- Empilement tablette / smartphone : création au-dessus --- */
@media(max-width:820px){
  .cms-compose-add-cols{grid-template-columns:minmax(0,1fr)}
  .cms-compose-add-body{padding:.7rem .75rem}
  .cms-compose-add-use-add{min-height:2.2rem;padding:.42rem .85rem}
}

/* --- V69.10 — badges de carte --------------------------------------- */
.cms-compose-shared-badge{display:inline-block;padding:.1rem .42rem;background:#fff3d6;border:1px solid #e8c76b;color:#7a5a07;border-radius:3px;font-weight:700}
.cms-compose-responsive-tag{display:inline-block;padding:.1rem .42rem;background:#eef2f9;border:1px solid #c8d8e2;color:#3d5a7a;border-radius:3px;font-weight:700}

/* --- V69.10 — panneau « Partagé dans » de l'éditeur -----------------
   V69.10.1 : chaque page d'usage devient une ligne-carte clairement
   délimitée — nom + indicateurs à gauche, actions alignées à droite,
   jamais de colonnes étroites où les textes se coupent. Les actions
   (Détacher / Retirer) restent celles de la V69.10.0, avec leurs
   confirmations, leurs formulaires frères CSRF et leurs contrôles. */
.block-editor-note--share{background:#fff7e0;border-color:#e8c76b;color:#6f5c1f}
.block-share-list{list-style:none;margin:0;padding:0;grid-column:1/-1}
.block-share-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem 1rem;align-items:center;padding:.6rem .6rem;margin:.35rem 0;border:1px solid #e2e9e9;border-radius:4px;background:#fff}
.block-share-copy{display:flex;flex-direction:column;gap:.18rem;min-width:0}
.block-share-copy strong{color:#123f6d;line-height:1.3}
.block-share-copy small{color:#70848e;font-size:.76rem;line-height:1.4}
.block-share-copy .text-link{color:#123f6d;font-weight:800}
.block-share-actions{margin-left:0;display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.block-share-actions .button{padding:.32rem .62rem;font-size:.76rem;white-space:nowrap}
/* V69.10.1 — une seule utilisation : « Détacher » reste techniquement
   disponible mais n'est pas présentée comme une opération nécessaire ;
   aucune alerte « contenu partagé » n'est affichée pour ce cas. */
.block-share-list.is-single .block-share-item{grid-template-columns:minmax(0,1fr)}
.block-share-list.is-single .block-share-actions{justify-content:flex-end}
.block-share-list.is-single .block-share-detach{color:#70848e;border-color:#b6c6c8;background:#fbfdfc}
@media(max-width:760px){
  .block-share-item{grid-template-columns:minmax(0,1fr)}
  .block-share-actions{justify-content:flex-end}
}

/* --- V69.10 — « Blocs sans utilisation » ---------------------------- */
.cms-compose-unused{margin-top:1.2rem;padding-top:1rem;border-top:2px solid #dce6e6}
.cms-compose-unused>h3{margin:0 0 .2rem;color:#123f6d;font-size:.98rem}
.cms-compose-unused>p{margin:.2rem 0 .6rem;font-size:.82rem}
.cms-compose-unused ul{list-style:none;margin:.6rem 0 0;padding:0}
.cms-compose-unused li{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.45rem .55rem;background:#f7f9f8;border:1px solid #e2e9e9;margin-bottom:.4rem}
.cms-compose-unused li form{margin-left:auto}
.cms-compose-unused .button{padding:.28rem .6rem;font-size:.76rem}
.cms-compose-unused-copy{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.cms-compose-unused-copy small{color:#70848e;font-size:.76rem}

/* --- Colonne de droite uniquement lorsqu'elle sert ------------------- */
.cms-compose-zone{margin-top:.8rem}
.cms-compose-zone>h3{margin:0 0 .2rem;font-size:.95rem;color:#123f6d}
.cms-compose-zone>p{margin:0 0 .6rem;color:#70848e;font-size:.8rem}
.cms-compose-zone-toggle{margin:.3rem 0 .6rem;font-size:.82rem}
.cms-compose-zone-toggle label{display:flex;align-items:center;gap:.45rem;cursor:pointer;color:#123f6d;font-weight:700}
.cms-compose-zone-toggle input{width:auto}

/* --- Réglages du module principal ------------------------------------ */
.cms-compose-module{padding:.2rem 0}
.cms-compose-module>p{margin:.2rem 0 .9rem;color:#70848e;font-size:.84rem;line-height:1.5}
.cms-compose-module .admin-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.7rem;max-width:none}
.cms-compose-module .admin-form .admin-form-actions{grid-column:1/-1}
.cms-compose-module .admin-form-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e9e9;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.cms-compose-module-actions{margin-top:.9rem}

/* --- Adaptation petit écran ------------------------------------------ */
@media(max-width:900px){
  .cms-compose{grid-template-columns:1fr}
  .cms-compose-rail{position:static;max-height:none}
  .cms-compose-rail-list{max-height:290px}
  .cms-compose-head{flex-wrap:wrap}
  .cms-compose-item-actions{margin-left:0;width:100%}
}

/* --- Zone orpheline : une zone que la page n'affiche pas -------------- */
/* Le bloc reste atteignable pour être ramené dans la colonne principale,
   mais il est signalé comme non publié. */
.cms-compose-zone.is-orphan{opacity:.85;border-color:#e0b4b4}
.cms-compose-zone.is-orphan>h3{color:#a33}

/* ==================================================================
   V68.1 — ÉDITEUR DE BLOC À PANNEAUX (« Pages & contenu »)
   ------------------------------------------------------------------
   Menu vertical à gauche, panneau à droite. Le changement de section
   ne recharge pas la page : la CSS ne fait qu'expliquer ce que les
   attributs `hidden` _et_ la classe `.is-sidebar` expriment.
   Sans JavaScript, tous les panneaux sont visibles (pas de `[hidden]`
   sur les sections), et cet écran reste parfaitement utilisable.
   ================================================================== */

.block-editor{margin-top:.9rem}
.block-editor-shell{display:grid;grid-template-columns:200px minmax(0,1fr);gap:1.1rem;align-items:start}
.block-editor-menu{display:flex;flex-direction:column;gap:.3rem;position:sticky;top:1rem}
.block-editor-tab{padding:.6rem .75rem;border:1px solid #d2dfe0;background:#fbfdfc;color:#456474;text-align:left;font:inherit;font-size:.84rem;font-weight:700;cursor:pointer;line-height:1.25}
.block-editor-tab:hover{background:#edf7e8;border-color:#73a83c;color:#123f6d}
.block-editor-tab[aria-selected=true]{background:#123f6d;border-color:#123f6d;color:#fff}
.block-editor-panels{min-width:0}
.block-editor-panel{display:block;background:#fff;border:1px solid #dce6e6;padding:1.1rem}
.block-editor-panel[hidden]{display:none}
.block-editor-panel-title{margin:0 0 .6rem;padding-bottom:.55rem;border-bottom:1px solid #e2e9e9;color:#123f6d;font-size:1.02rem}
.block-editor-panel .admin-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.7rem;max-width:none}
.block-editor-panel .admin-form .admin-form-actions{grid-column:1/-1}
.block-editor-note{margin:.5rem 0 0;padding:.7rem .8rem;background:#fbf6e9;border:1px solid #e4d6a8;color:#6f5c1f;font-size:.82rem;line-height:1.5}
.block-editor-panel .block-editor-note{grid-column:1/-1}
.block-sidebar-toggle small{display:block;margin-top:.15rem}
.block-sidebar-toggle{grid-column:1/-1}

/* --- Grisage « vignette latérale » ----------------------------------
   La case CONTENU est cochée : APPARENCE et ILLUSTRATION 2 sont
   grisées, jamais cachées. Leurs champs gardent leur valeur ET leur
   submit : seuls les événements de saisie sont bloqués par le script,
   et cette opacité rend l'état évident. La décision serveur reste
   indépendante de tout ceci. */
.block-editor-panel[data-sidebar-inert="1"]{opacity:.45}
.block-editor-panel[data-sidebar-inert="1"] .block-editor-panel-title::after{content:' (inactif en vignette latérale)';font-size:.72rem;font-weight:400;color:#70848e}
.block-editor-panel[data-sidebar-inert="1"] input,.block-editor-panel[data-sidebar-inert="1"] select,.block-editor-panel[data-sidebar-inert="1"] textarea,.block-editor-panel[data-sidebar-inert="1"] .media-search,.block-editor-panel[data-sidebar-inert="1"] button{cursor:not-allowed}
.block-editor-panel[data-sidebar-inert="1"] .media-picker,.block-editor-panel[data-sidebar-inert="1"] .media-picker *{pointer-events:none}

/* --- Actions du bas ------------------------------------------------- */
.block-editor-actions{position:sticky;bottom:0;z-index:5;margin-top:1rem;padding:.75rem .9rem;background:#fbfdfc;border:1px solid #dce6e6;border-top:3px solid #123f6d;box-shadow:0 -8px 18px #123f6d0d}
.block-editor-actions-hint{margin-left:auto;color:#70848e;font-size:.76rem;text-align:right;max-width:26rem}

/* --- Cartes de la composition : indicateurs V68.1 -------------------- */
.cms-compose-layout{display:inline-block;padding:.1rem .42rem;background:#e8eff5;border:1px solid #c8d8e2;color:#123f6d;border-radius:3px;font-weight:700}
.cms-compose-sidebar-tag{display:inline-block;padding:.1rem .42rem;background:#f3e9f7;border:1px solid #d9c3e4;color:#6f3a8f;border-radius:3px;font-weight:700}

/* ==================================================================
   V68.1 — DEMI-LARGEUR DES BLOCS (moteur public)
   ------------------------------------------------------------------
   `page_zone_layout_rows()` n'émet PAS de balisage quand aucun bloc
   n'est en demi-largeur : les règles ci-dessous ne font donc rien sur
   une page V67.5 inchangée. Elles ne s'appliquent qu'aux rangées.
    - deux demi-blocs   → `.cms-block-row` = deux colonnes ;
    - un demi-bloc seul → `.cms-block-row--solo` = une colonne, donc
      pleine largeur : aucun vide, aucun chevauchement ;
    - smartphone        → une colonne, tous les blocs pleine largeur.
   ================================================================== */
.cms-block-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2rem;align-items:start}
.cms-block-row--solo{grid-template-columns:minmax(0,1fr)}
.cms-block-row>.editable-content-block{min-width:0}
.cms-block-row--solo>.editable-content-block{min-width:0}
@media(max-width:860px){.cms-block-row{grid-template-columns:minmax(0,1fr)}}
/* V69.10 — visibilité RESPONSIVE par page : un bloc « Desktop uniquement »
   disparaît du flux sous 860 px, un bloc « Mobile uniquement » au-dessus.
   Les classes sont posées par `cms_render_block()` depuis le réglage local
   de l'élément (page_elements.settings), jamais depuis le contenu commun.
   La classe `!important` neutralise toute règle d'affichage concurrente,
   y compris celles des vignettes en grille. */
@media(max-width:860px){.cms-block-visibility--desktop-only{display:none !important}}
@media(min-width:861px){.cms-block-visibility--mobile-only{display:none !important}}
/* Un demi-bloc devenu seul dans sa rangée (voisin masqué) reprend toute la
   largeur, comme la variante `--solo` produite par le moteur. */
@media(max-width:860px){.cms-block-row:has(.cms-block-visibility--desktop-only){grid-template-columns:minmax(0,1fr)}}
@media(min-width:861px){.cms-block-row:has(.cms-block-visibility--mobile-only){grid-template-columns:minmax(0,1fr)}}
@media(max-width:900px){
  .block-editor-shell{grid-template-columns:1fr;gap:.7rem}
  .block-editor-menu{position:static;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .block-editor-tab{flex:none;white-space:nowrap}
  .block-editor-actions-hint{display:none}
}

/* ==================================================================
   V68.1 — HOTFIX ERGONOMIE DU BLOCK EDITOR (Back-Office)
   ------------------------------------------------------------------
   Correctifs de MISE EN PAGE uniquement, agrégés APRÈS la section
   V68.1 d'origine. Aucune fonctionnalité ajoutée : l'écran a les
   mêmes sections, les mêmes boutons et le même comportement sans
   rechargement. Rien ici ne touche au moteur public (`.cms-block-row`)
   ni à la migration, ni au formulaire envoyé au serveur.

   1. la colonne du menu devient compacte (180 px) ;
   2. les champs remplissent réellement leur colonne (les `input` sans
      attribut `size` restaient à ~180 px par défaut dans des colonnes
      larges — d'où le vide à droite des champs) ;
   3. les panneaux LOGO / ILLUSTRATION 1 / 2 deviennent « médiathèque
      large + réglages compacts à droite » ;
   4. le panneau CONTENU met le rich-text (barre + zone) pleine largeur ;
   5. DOCUMENT passe sur une seule colonne large (plus de grand vide) ;
   6. la barre d'actions sticky ne recouvre plus jamais le dernier champ.
   ================================================================== */

/* --- Colonne gauche compacte, panneau droit à toute la place --- */
.block-editor-shell{grid-template-columns:180px minmax(0,1fr);margin-top:0}
.block-editor-tab{padding:.55rem .6rem;font-size:.8rem}

/* --- Les champs de saisie exploitent la largeur de leur colonne ---
   On exclut explicitement : cases, radios, fichiers, couleur, cachés.
   Les checkbox/radio gardent leurs règles dédiées (.checkbox libre). */
.block-editor-panel .admin-form input:not([type]),
.block-editor-panel .admin-form input[type=text],
.block-editor-panel .admin-form input[type=url],
.block-editor-panel .admin-form input[type=search],
.block-editor-panel .admin-form select,
.block-editor-panel .admin-form textarea{width:100%;box-sizing:border-box;min-width:0}

/* --- Rich-text du panneau CONTENU : barre et zone pleine largeur --- */
.block-editor-panel--content .admin-form{grid-template-columns:minmax(0,1fr)}
.block-editor-panel .admin-form textarea[data-rich-area]{min-height:15rem;resize:vertical}

/* --- Notes d'aide pleine largeur (hors panneaux médias) ------------ */
.block-editor-panel--content .admin-form > .muted,
.block-editor-panel--link .admin-form > .muted,
.block-editor-panel--document .admin-form > .muted{grid-column:1/-1}

/* --- LIEN / BOUTON : deux champs côte à côte quand la place le permet --- */
.block-editor-panel--link .admin-form{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}

/* --- DOCUMENT : une seule colonne large, aucun grand vide ---------- */
.block-editor-panel--document .admin-form{grid-template-columns:minmax(0,1fr)}

/* --- LOGO / IMAGE 1 / IMAGE 2 : médiathèque large à gauche,
       réglages compacts à droite -------------------------------------
   Le `fieldset.media-picker` est le premier enfant du grid : il est
   ancré colonne 1 et y couvre plusieurs rangées ; tous les réglages
   suivants (Position, Lien, Ouverture) se placent automatiquement
   dans la colonne de droite, sans autre ancrage. */
.block-editor-panel--logo .admin-form,
.block-editor-panel--image1 .admin-form,
.block-editor-panel--image2 .admin-form{
  grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
  align-items:start;
}
.block-editor-panel--logo .admin-form > fieldset.media-picker,
.block-editor-panel--image1 .admin-form > fieldset.media-picker,
.block-editor-panel--image2 .admin-form > fieldset.media-picker{
  grid-column:1;
  grid-row:1 / span 8;
  margin:0;
}

/* --- Médiathèque : cartes avec une largeur minimale confortable,
       jamais de défilement horizontal -------------------------------- */
.block-editor-panel .media-picker-grid{
  grid-template-columns:repeat(auto-fill,minmax(170px,1fr));
  overflow-y:auto;
  overflow-x:hidden;
}
.block-editor-panel .media-picker{
  padding:1rem;
}

/* --- Carte « image enregistrée » : reste compacte et lisible ------- */
.media-current{flex-wrap:wrap}
.block-editor-panel .media-current img{width:80px;height:60px}

/* --- Apparence : réglages pastille / séparateur / visibilité en
       rangées souples (plusieurs par ligne quand la place le permet) -- */
.block-display-options{display:flex;flex-wrap:wrap;gap:.5rem .9rem;align-items:baseline}
.block-display-options > label{min-width:230px;flex:1 1 230px}
.block-display-options > label.checkbox{flex:0 1 auto;min-width:0}
.block-display-options > label.checkbox:last-child{flex-basis:100%}

/* --- Barre d'actions : sticky mais elle ne doit JAMAIS recouvrir le
       dernier champ du panneau ---------------------------------------- */
.block-editor-panels{padding-bottom:4.5rem}
.block-editor-panel input,.block-editor-panel select,.block-editor-panel textarea,.block-editor-panel button{scroll-margin-bottom:5.5rem}
.block-editor-actions{align-items:center;gap:.6rem}

/* --- Smartphone / tablette étroite : tout s'empile ------------------- */
@media(max-width:760px){
  .block-editor-panel--logo .admin-form,
  .block-editor-panel--image1 .admin-form,
  .block-editor-panel--image2 .admin-form{grid-template-columns:minmax(0,1fr)}
  .block-editor-panel--logo .admin-form > fieldset.media-picker,
  .block-editor-panel--image1 .admin-form > fieldset.media-picker,
  .block-editor-panel--image2 .admin-form > fieldset.media-picker{grid-column:auto;grid-row:auto}
  .block-editor-panels{padding-bottom:1rem}
  .block-editor-actions{position:static;box-shadow:none}
}

/* ==================================================================
   V68.1 — DISPOSITION « PAGES | SOUS-PAGES » + BLOCK EDITOR
   PLEINE LARGEUR (« Pages & contenu ») — HOTFIX LARGEUR / LAYOUT
   ------------------------------------------------------------------
   Correctifs de MISE EN PAGE uniquement, suite au test navigateur
   réel V68.1. Aucune fonctionnalité n'est modifiée (champs, POST,
   actions, droits, sauvegarde, médiathèque, moteur public) et aucun
   état replié/déplié par défaut n'est touché.

   A. BANDEAU « PAGES | SOUS-PAGES »
   Le rendu réel a montré les deux groupes rapetissés à gauche, textes
   cassés presque lettre par lettre, énorme vide à droite. Le bandeau
   précédent dépendait du nombre de pistes résolu par
   `repeat(auto-fit,minmax(0,1fr))` sur un rail lui-même item de la
   grille `.cms-compose` (base `320px minmax(0,1fr)` / surcharge
   `minmax(0,1fr)`) : dès que ce rail se retrouvait dans une piste
   étroite, ses deux colonnes internes s'écrasaient, et
   `overflow-wrap:anywhere` sur les libellés coupait chaque mot
   lettre par lettre. Corrections :
    - `.cms-compose` repasse en BLOC : plus AUCUNE colonne possible,
      le bandeau et le panneau droit sont deux blocs pleine largeur ;
    - le rail devient une grille à pistes EXPLICITES, sans `auto-fit` :
      `minmax(0,1fr)` quand il n'y a qu'un groupe (Pages principales
      en pleine largeur), `minmax(0,1fr) minmax(0,1fr)` dès que deux
      groupes sont présents (détectés par `:has()` ; à défaut de
      support, repli sûr en une seule colonne empilée — jamais
      écrasée) ;
    - chaque colonne garde toute sa largeur, aucune piste ne peut se
      réduire à quelques pixels (`minmax(0,…)` + `min-width:0`) ;
    - libellés du rail sur UNE ligne, en ellipsis, sans
      `word-break:break-all` ni `overflow-wrap:anywhere` ;
    - chaque liste garde ~5 lignes visibles max et son défilement
      vertical propre (`data-rail-scroll` intact : la mémorisation
      de pages-content.js continue de fonctionner) ;
    - « ＋ Ajouter une page » reste sous les deux colonnes, pleine
      largeur.

   B. BLOCK EDITOR PLEINE LARGEUR
   La suppression du rail 320 px a libéré l'espace ; la chaîne
   formulaire → shell → panneaux doit en profiter réellement :
    - `.block-editor` (le formulaire) : `width:100%` + `max-width:none`
      (aucun `max-width` hérité ne peut plus borner la zone) ;
    - `.block-editor-shell` : menu 180 px à gauche, panneau droit en
      `minmax(0,1fr)` (TOUT l'espace restant, jamais de petite
      colonne fixe ni de vide à droite) ;
    - panneaux et médiathèque : `width:100%`, `min-width:0`, pas de
      défilement horizontal parasite ;
    - LOGO / ILLUSTRATION 1 / 2 : la médiathèque prend la MAJORITÉ de
      la largeur (`minmax(0,1.6fr)`), les réglages restent compacts à
      droite (`minmax(250px,.8fr)`) ; les miniatures peuvent
      s'afficher sur plusieurs colonnes ;
    - la barre d'actions utilise toute la largeur du Block Editor.
   ================================================================== */

/* ——— Bandeau Pages | Sous-pages : bloc, plus aucune colonne possible ——— */
.cms-compose{display:block}
.cms-compose>div{margin-top:1.2rem;min-width:0}

/* ——— Le rail devient un bandeau : titre + groupes en pistes explicites ——— */
.cms-compose-rail{
  position:static;
  max-height:none;
  overflow:visible;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.5rem 1.4rem;
  align-items:start;
  width:auto;
  max-width:none;
}
/* Deux groupes présents → 50/50 réel. Sinon (pas de sous-page, ou
   navigateur sans :has) → une colonne pleine largeur, jamais écrasée. */
.cms-compose-rail:has(.admin-rail-group + .admin-rail-group){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.cms-compose-rail>h2,
.cms-compose-rail>p,
.cms-compose-rail-foot{grid-column:1/-1}
.cms-compose-rail .admin-rail-group{min-width:0}
.cms-compose-rail-foot{margin-top:0}

/* ——— Libellés du rail : UNE ligne, ellipsis, jamais coupés
       lettre par lettre (interdit : break-all / overflow-wrap:anywhere) ——— */
.cms-compose-rail-item .cms-compose-rail-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cms-compose-rail-item .cms-compose-rail-url{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ——— Chaque liste : ~5 lignes visibles, défilement interne, aucun
       défilement horizontal parasite ——— */
.cms-compose-rail-list{max-height:250px;overflow-x:hidden}

/* ——— Block Editor : toute la largeur rendue disponible ——— */
.block-editor{width:100%;max-width:none}
.block-editor-shell{grid-template-columns:180px minmax(0,1fr)}
.block-editor-panels{width:100%;min-width:0}
.block-editor-panel{min-width:0}
.block-editor-panel .admin-form{width:100%;max-width:none}
.block-editor-actions{width:100%;max-width:none}

/* ——— Médiathèque LOGO / ILLUSTRATION 1 / 2 : large à gauche,
       réglages compacts à droite (seulement quand la place le permet ;
       ≤760 px : tout s'empile, règle existante conservée) ——— */
@media(min-width:761px){
  .block-editor-panel--logo .admin-form,
  .block-editor-panel--image1 .admin-form,
  .block-editor-panel--image2 .admin-form{grid-template-columns:minmax(0,1.6fr) minmax(250px,.8fr)}
}

/* ——— Écran étroit : les deux groupes de listes s'empilent ——— */
@media(max-width:760px){.cms-compose-rail{grid-template-columns:minmax(0,1fr)}}

/* --- Module adhésion (V69.1) : teintes de pastilles + formulaires BO ---- */
.admin-badge--success{background:#e6f3dc;color:#3d6b23}
.admin-badge--info{background:#e4eef8;color:#123f6d}
.admin-badge--warn{background:#fdf0d6;color:#8a6112}
.admin-badge--danger{background:#fbe9e7;color:#9c3128}
.admin-detail-row{display:grid;gap:2px;padding:.45rem 0;border-bottom:1px solid #eef2f2}
.admin-detail-row span{font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#70848e}
.admin-detail-row strong{color:#18334c;font-weight:700;font-size:.95rem;overflow-wrap:anywhere}
.admin-detail-row small{color:#70848e;font-size:.78rem;line-height:1.45}
.admin-inline-form{display:grid;gap:.6rem;padding:.9rem;background:#f8faf9;border:1px solid #e2e9e9}
.admin-inline-form label{display:grid;gap:.3rem;font-size:.75rem;font-weight:800;color:#466271}
.admin-inline-form input,.admin-inline-form select,.admin-inline-form textarea{box-sizing:border-box;width:100%;padding:.5rem;border:1px solid #cbd8da;background:#fff;color:#173f6a;font:inherit;font-size:.9rem;font-weight:400}
.admin-inline-form textarea{min-height:90px}
.admin-inline-form button{justify-self:start}
.admin-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.admin-actions form{display:inline-flex}
.admin-list .adhesion-resume-link input{box-sizing:border-box;width:100%;padding:.55rem;border:1px solid #cbd8da;background:#f8faf9;color:#173f6a;font:inherit;font-size:.8rem;word-break:break-all}
.admin-choice{display:flex !important;align-items:flex-start;gap:.55rem;font-weight:700 !important}
.admin-choice input{margin-top:.2rem;flex:none;width:auto !important}

/* ==================================================================
   V69.4.0 — IMPORTEUR DE CONTENU (Back-office)
   ================================================================== */
.ci-card{margin:0 0 1.25rem;padding:1.1rem 1.25rem;border:1px solid #dde6e9;border-radius:8px;background:#fff}
.ci-card h2{margin:0 0 .6rem;color:#123f6d;font-size:1.1rem}
.ci-upload{display:grid;gap:.6rem;max-width:560px;margin:0 0 .5rem}
.ci-inline{display:inline-block;margin:.75rem .5rem 0 0}
.ci-table{width:100%;border-collapse:collapse;margin:.75rem 0;font-size:.85rem;background:#fff}
.ci-table th,.ci-table td{border:1px solid #e2e9e9;padding:.45rem .6rem;text-align:left;vertical-align:top}
.ci-table th{background:#f4f7f8;color:#123f6d}
.ci-table pre{white-space:pre-wrap;word-break:break-word;margin:0;font-size:.75rem;line-height:1.45;background:#f8fafb;border:1px solid #e6ecec;border-radius:4px;padding:.35rem;max-height:220px;overflow:auto}
.ci-table .ci-cell{max-width:380px;max-height:160px}
.ci-op-ci-add td:first-child{background:#eef7fe}
.ci-op-ci-update td:first-child{background:#fff7e6}
.ci-op-ci-delete td:first-child{background:#fdecea}
.ci-op-ci-unchanged td{opacity:.72}
.ci-op-detail summary{cursor:pointer;font-weight:700;color:#123f6d}
.ci-warning{padding:.7rem .9rem;border-radius:6px;font-size:.9rem}
.ci-warning--danger{background:#fff2f0;border:1px solid #e7b8b1;color:#7c2418}
.ci-doc ul{margin:.35rem 0 .6rem;padding-left:1.25rem}
.ci-doc li{margin:.18rem 0}
.ci-doc code{background:#f2f5f6;border:1px solid #e0e7e9;border-radius:3px;padding:.08rem .3rem;font-size:.82em;color:#0e4a86}

/* ════════════════════════════════════════════════════════════════════
   V69.9.0 — Rail unifié « Pages & contenu » (recherche/filtres/compteur)
   ════════════════════════════════════════════════════════════════════ */
.cms-compose-rail-count {
  display: inline-grid;
  place-items: center;
  min-width: 1.6rem;
  height: 1.6rem;
  padding: 0 .35rem;
  margin-left: .3rem;
  border-radius: 999px;
  background: #dbe7f3;
  color: #123f6d;
  font-size: .78rem;
  font-weight: 700;
}
.cms-compose-rail-tools {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  padding: .6rem .7rem .8rem;
  border-bottom: 1px solid #dce5ed;
  background: #f4f8fb;
}
.cms-compose-rail-tools label {
  display: grid;
  grid-template-columns: 3.4rem 1fr;
  align-items: center;
  gap: .4rem;
  font-size: .8rem;
  color: #33526f;
  margin: 0;
}
.cms-compose-rail-search { grid-template-columns: 1fr !important; }
.cms-compose-rail-tools input,
.cms-compose-rail-tools select {
  width: 100%;
  padding: .4rem .5rem;
  border: 1px solid #c8d5e2;
  border-radius: 5px;
  font-size: .82rem;
  background: #fff;
  color: #1d2c3c;
}
.cms-compose-rail-tools input:focus,
.cms-compose-rail-tools select:focus { outline: 2px solid #7aa5cf; border-color: #5b87b3; }
.cms-compose-rail-list.is-unified { overflow-y: auto; }
.cms-compose-rail-empty {
  margin: 0;
  padding: .8rem .9rem;
  font-size: .82rem;
  color: #6b7890;
  font-style: italic;
}
@media (min-width: 900px) {
  .cms-compose-rail-tools { flex-direction: row; flex-wrap: wrap; }
  .cms-compose-rail-tools label { grid-template-columns: 1fr; gap: .15rem; }
  .cms-compose-rail-search { flex: 1 1 100%; }
  .cms-compose-rail-tools label:nth-child(n+2) { flex: 1 1 30%; font-size: .72rem; color: #6b7890; }
}

/* ════════════════════════════════════════════════════════════════════
   V69.10.1 — HOTFIX ERGONOMIQUE « Pages & contenu / Blocs réutilisables »
   ════════════════════════════════════════════════════════════════════
   Correctif de PRÉSENTATION uniquement, agrégé en fin de fichier
   (aucune fonctionnalité ajoutée : mêmes champs, mêmes POST, mêmes
   confirmations, mêmes contrôles d'accès, même moteur public).

   1. Cartes de composition : alignement des boutons d'action et
      lisibilité des informations secondaires.
   2. Éditeur de bloc : espacements et alignements intérieurs ;
      la zone d'édition conserve tout l'espace disponible et les
      boutons fixes du bas ne masquent jamais le dernier champ.
   3. Responsive : aucun débordement horizontal sur tablette /
      smartphone, boutons utilisables au toucher.
   ================================================================== */

/* --- 1. Cartes de composition : alignement & lisibilité --- */
.cms-compose-item-actions{align-items:center}
.cms-compose-item-actions .button{display:inline-flex;align-items:center;min-height:1.85rem}
.cms-compose-item-meta{gap:.3rem .35rem;line-height:1.55}
.cms-compose-order{gap:.22rem}
.cms-compose-item-title{line-height:1.35}

/* --- 2. Éditeur de bloc : espacements intérieurs / alignements --- */
.block-editor-panel{padding:1.15rem 1.2rem 1.35rem}
.block-editor-panel-title{margin-bottom:.75rem}
.block-editor-panel .admin-form{gap:.8rem}
.block-editor-panel .block-editor-note{margin-top:.2rem}
.block-editor-actions{gap:.55rem}
.block-editor-actions-hint{margin-left:auto}

/* --- 3. Responsive : actions de carte utilisables au toucher,
       jamais de débordement horizontal --- */
@media(max-width:760px){
  .cms-compose-item-actions .button{min-height:2.1rem;padding:.4rem .7rem}
  .cms-compose-item-actions{row-gap:.4rem}
}

/* ==================================================================
   MDF2026 · V69.10.2 — « Pages & contenu » : panneau « Informations de
   la page » et intégration éditoriale des sous-pages
   ================================================================== */

/* 1. Pleine largeur utile. `.admin-form` (inner.css) plafonne à 760px :
   dans ce panneau, cela laissait une grande zone blanche inutilisée à
   droite, notamment sur les sous-pages, mais aussi sur les pages
   classiques. La contrainte n'est levée QUE dans « Pages & contenu » :
   les autres écrans du Back-office gardent leur colonne de lecture. */
.cms-compose-body > .admin-form { width: 100%; max-width: none; }

/* 2. Sous-page : les petits champs se répartissent sur deux colonnes
   quand la place le permet, une seule colonne quand la largeur ne le
   permet plus (auto-fit — jamais de débordement horizontal). Les
   textareas et l'éditeur restent en pleine largeur (rangées imposées). */
.cms-compose-body .admin-form.cms-subpage-info {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  gap: .85rem 1.15rem;
  margin-top: 14px;
}
.cms-compose-body .admin-form.cms-subpage-info > .cms-field-wide,
.cms-compose-body .admin-form.cms-subpage-info > .admin-subfield-actions { grid-column: 1 / -1; }

/* Champ conditionnel non applicable : grisé, note discrète. */
.cms-subpage-info label.is-na { opacity: .7; }
.cms-subpage-info label.is-na select { cursor: not-allowed; }
.cms-subpage-na { color: #8a9aa4; font-style: italic; font-weight: 400; }
.cms-subpage-na[hidden] { display: none; }

/* 3. Section « Contenu éditorial de la sous-page » : titre nettement
   identifiable, séparé par un filet, formulaire en pleine largeur et
   éditeur enrichi confortablement dimensionné. */
.cms-subpage-editorial-title {
  margin: 1.5rem 0 .35rem;
  padding-top: 1.1rem;
  border-top: 1px solid #e2e9e9;
  color: #123f6d;
  font-size: 1rem;
  font-weight: 850;
}
.cms-compose-body .admin-form.cms-subpage-editorial { width: 100%; max-width: none; }
.cms-compose-body .admin-form.cms-subpage-editorial .mdf-wysiwyg { width: 100%; }
.cms-compose-body .admin-form.cms-subpage-editorial textarea.mdf-wysiwyg-source { min-height: 17rem; }
.cms-compose-body .admin-form.cms-subpage-editorial .jodit-container { max-width: 100%; }

/* 4. Écran étroit : une seule colonne, marges conservées, aucun
   débordement horizontal. */
@media (max-width: 700px) {
  .cms-compose-body .admin-form.cms-subpage-info { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------------ */
/* V70.0.0 — Socle commun : largeur utile et grilles de champs          */
/* ------------------------------------------------------------------
   Composants génériques, opt-in (aucun sélecteur existant n'est modifié) :
   un module qui gagne de la place sur grand écran ajoute `admin-form--wide`
   à son formulaire et enveloppe ses champs dans une grille `admin-field-grid`
   (ou `admin-card-grid` pour des blocs-cartes). Sur écran étroit, tout
   repasse en une seule colonne. */
.admin-form--wide { max-width: none; }
.admin-field-grid {
  display: grid;
  gap: 1rem 1.25rem;
  align-items: start;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.admin-field-grid > .admin-field-wide { grid-column: 1 / -1; }
.admin-card-grid {
  display: grid;
  gap: 1rem;
  align-items: start;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
.admin-card-grid > .admin-block-card {
  margin: 0;
  padding: 1rem;
  border: 1px solid #dce6e6;
  background: #fff;
}
.admin-card-grid > .admin-block-card > h3 { margin: .1rem 0 .6rem; color: #123f6d; }
@media (max-width: 760px) {
  .admin-field-grid, .admin-card-grid { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------------ */
/* V70.2.0 — Lot 2                                                     */
/*   · largeur utile harmonisée (Back-office) ;                        */
/*   · recherche d'une page interne (blocs, Accueil, Slides) ;         */
/*   · copie de l'adresse dans le rail des pages ;                     */
/*   · visibilité indépendante du titre / du texte d'un bloc.          */
/* ------------------------------------------------------------------ */

/* 1. Largeur. Le bandeau d'administration occupe mieux les grands
   écrans et ses formulaires ne sont plus bridés. Les pages PUBLIQUES ne
   sont pas concernées : tout est porté par .admin-shell. */
@media (min-width: 1120px) {
  .admin-shell { width: min(1400px, calc(100% - 48px)); }
}
.admin-shell .admin-form { max-width: none; }

/* 2. Écrans à sections (Partenaires, Actualités, En-tête…). Les champs
   courts se répartissent ; les éléments larges (zones de texte, éditeurs,
   sélecteurs de média, actions) prennent toute la ligne. Une seule
   colonne en dessous de 900 px : aucun débordement horizontal. */
@media (min-width: 900px) {
  .admin-form-section > .admin-form {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }
}
.admin-form-section > .admin-form > :is(fieldset, p, button, .admin-form-actions, .admin-field-wide, label:has(textarea), label:has(.mdf-wysiwyg), label:has(.mdf-file-slot), div:has(.mdf-wysiwyg)) {
  grid-column: 1 / -1;
}

/* 3. Visibilité du titre / du texte d'un bloc (panneau « Contenu »). */
.admin-field-block { display: grid; gap: .35rem; }
.admin-field-block-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; }
.admin-field-block-head > label:first-child { font-weight: 700; color: #123f6d; }
.mdf-wysiwyg-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; }
.block-field-toggle {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .16rem .6rem; border: 1px solid #cfe3bf; border-radius: 999px;
  background: #f0f7ea; color: #3f6626; font-size: .78rem; font-weight: 700; cursor: pointer;
}
.block-field-toggle input[type=checkbox] { width: auto; min-height: 0; margin: 0; padding: 0; }

/* 4. Recherche d'une page interne. Saisie manuelle toujours possible :
   la liste ne fait que remplir le champ d'adresse d'un clic. */
.admin-link-picker { position: relative; display: grid; gap: .3rem; }
.admin-link-picker-search { display: grid; gap: .25rem; color: #123f6d; font-size: .82rem; font-weight: 700; }
.admin-link-picker-search input[type=search] { font-weight: 400; }
.admin-link-picker-list {
  position: absolute; z-index: 40; left: 0; right: 0; top: 100%;
  margin: .2rem 0 0; padding: .25rem; list-style: none;
  max-height: 17rem; overflow-y: auto;
  border: 1px solid #d6e0df; background: #fff; box-shadow: 0 12px 26px #16364b1f;
}
.admin-link-picker-item {
  display: grid; gap: .1rem; width: 100%; padding: .45rem .5rem;
  border: 0; border-radius: 5px; background: none; text-align: left; cursor: pointer;
}
.admin-link-picker-item:hover, .admin-link-picker-item:focus { background: #edf7e8; outline: none; }
.admin-link-picker-item-title { color: #123f6d; font-weight: 700; }
.admin-link-picker-item-path { color: #5d7481; font-size: .78rem; }
.admin-link-picker-item-url { color: #8ba0a9; font-size: .72rem; font-family: ui-monospace, Consolas, monospace; }
.admin-link-picker-empty { margin: .2rem 0 0; color: #8a5a00; font-size: .8rem; }

/* 5. Copie de l'adresse d'une page (rail « Pages & contenu »). Le bouton
   « deux carrés » est posé hors du lien : il ne peut pas ouvrir la page. */
.cms-compose-rail-item { position: relative; }
.cms-compose-rail-item .cms-compose-rail-url { padding-right: 1.8rem; }
.cms-compose-rail-copy {
  position: absolute; right: .5rem; bottom: .35rem;
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.55rem; height: 1.55rem; padding: 0;
  border: 1px solid transparent; border-radius: 6px; background: transparent;
  color: #8ba0a9; cursor: pointer;
}
.cms-compose-rail-copy:hover, .cms-compose-rail-copy:focus-visible { background: #eef4f3; border-color: #d6e0df; color: #123f6d; outline: none; }
.cms-compose-rail-copy-notice { margin: .45rem 0 0; font-size: .78rem; color: #2f7d32; }
.cms-compose-rail-copy-notice.is-error { color: #b6443b; }

/* 6. Éditeur de bloc : sur écran étroit, le menu repasse AU-DESSUS du
   panneau, qui occupe alors toute la largeur. La règle d'origine
   (`@media(max-width:900px)`, en tête de fichier) était neutralisée par
   les correctifs d'ergonomie qui rétablissaient deux colonnes ; le
   rich-text (Jodit) imposait alors une largeur minimale et faisait
   déborder la page. On réaffirme la mise en page à une colonne, sans
   modifier le rendu des écrans larges (aucune page publique touchée). */
@media (max-width: 900px) {
  .block-editor-shell { grid-template-columns: minmax(0, 1fr); gap: .7rem; }
}

/* ------------------------------------------------------------------ */
/* V70.3.0 — Lot 3 : harmonisation ergonomique du back-office          */
/*   · largeur utile sur très grand écran (au-delà de 1500 px) ;       */
/*   · grille de formulaire à deux colonnes réutilisable ;             */
/*   · colonne de gauche des Congrès réduite sur tablette ;            */
/*   · action principale alignée à gauche.                            */
/* Tout est porté par .admin-shell (ou par une classe opt-in) : aucune  */
/* page publique n'est concernée et les correctifs V70.2.0 restent     */
/* prioritaires de 1120 à 1499 px.                                     */
/* ------------------------------------------------------------------ */

/* 1. Très grand écran : la coquille d'administration passe de 1400 px
   (V70.2.0) à 1600 px au-delà de 1500 px de large. La largeur reste
   bornée par « calc(100% - 48px) » : aucun débordement horizontal. */
@media (min-width: 1500px) {
  .admin-shell { width: min(1600px, calc(100% - 48px)); }
}

/* 2. Grille de formulaire à deux colonnes (réutilisable).
   Les champs courts se placent côte à côte ; les éléments larges —
   zones de texte, éditeurs Jodit, sélecteurs Médiathèque V2, sections
   repliables et actions — prennent toute la ligne. Une seule colonne
   sous 760 px : aucun débordement. Cette classe s'applique aussi bien à
   un <form> (Actualités) qu'à un <div> enveloppant les champs (Congrès). */
.admin-field-grid-2 {
  display: grid;
  gap: 1rem 1.25rem;
  align-items: start;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.admin-field-grid-2 > :is(
  fieldset, p, button, .admin-form-actions, .admin-form-sections, .admin-field-wide,
  label:has(textarea), label:has(.mdf-wysiwyg), label:has(.mdf-file-slot), div:has(.mdf-wysiwyg)
) {
  grid-column: 1 / -1;
}
@media (max-width: 760px) {
  .admin-field-grid-2 { grid-template-columns: minmax(0, 1fr); }
}

/* 3. Congrès : la colonne des fiches se réduit progressivement sur
   tablette (1100 → 761 px) avant de passer AU-DESSUS du formulaire à
   760 px (règle à une colonne conservée, cf. V70.2.0). */
@media (min-width: 761px) and (max-width: 1100px) {
  .congress-manager { grid-template-columns: 235px minmax(0, 1fr); }
}

/* 4. Bouton d'enregistrement d'un formulaire direct (sans
   .admin-form-actions) : il ne s'étire plus sur toute la largeur et
   reste aligné à gauche comme les autres groupes d'actions. */
.admin-shell .admin-form > .button { justify-self: start; }

/* 5. Modules à colonne latérale (.admin-module-layout : Partenaires,
   Actualités, Header) : sur écran étroit, la piste de grille doit
   pouvoir se réduire. La valeur « 1fr » de V70.2.0 conserve la largeur
   minimale du contenu (l'éditeur Jodit impose ~334 px) et provoquait un
   débordement horizontal de 7 px à 360 px ; « minmax(0, 1fr) » l'élimine
   sans changer le rendu au-delà de 820 px. */
@media (max-width: 820px) {
  .admin-module-layout { grid-template-columns: minmax(0, 1fr); }
}

/* 6. Congrès : même précaution pour la colonne unique affichée sous
   760 px (le formulaire et ses champs imposent une largeur minimale) :
   « minmax(0, 1fr) » évite tout débordement horizontal. Les <fieldset>
   conservent sinon « min-width: min-content », qui élargit la fiche
   au-delà de son conteneur sur les plus petits écrans. */
@media (max-width: 760px) {
  .congress-manager { grid-template-columns: minmax(0, 1fr); }
}
.congress-workspace fieldset { min-width: 0; }
