/* Direction visuelle alternative, limitée au contenu : navbar et footer inchangés. */
body.exo-theme { background: #f4f6f4 !important; }
.exo-theme :is(.container, .container-page, .container-page-param, .exo-dashboard) { font-family: 'Segoe UI', Arial, sans-serif; color: #30453b; }
.exo-theme > :is(.container, .container-page) { padding-top: 28px; padding-bottom: 40px; }
.exo-theme :is(.container, .container-page) :is(h1, h2, h3) { font-family: 'Segoe UI', Arial, sans-serif; color: #294437; }
.exo-theme :is(.container, .container-page) :is(.div-bloc, .formulaire-box, .div-commission, .div-chart, .div-progress, .list-faq) { border: 1px solid #e1e7e2; border-radius: 10px; background: #fff; box-shadow: none; }
.exo-theme :is(.container, .container-page) .table thead th { background: #f3f6f3; color: #687b6d; border-top: 0 !important; border-bottom: 1px solid #dfe6e0 !important; font-size: 12px; }
.exo-theme :is(.container, .container-page) .table td { border-color: #e9eeea; }
.exo-theme :is(.container, .container-page) input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .exo-theme :is(.container, .container-page) select, .exo-theme :is(.container, .container-page) textarea { border-radius: 6px; border-color: #cddacf; }
.exo-theme :is(.container, .container-page) .bouton-action { border: 1px solid #dfe6e0; border-radius: 8px; box-shadow: none; background: #fff; }
.exo-theme :is(.container, .container-page) .bouton-action .icon { background: #edf5ef; color: #23845f; }
.exo-theme :is(.container, .container-page) .box-domaine { box-shadow: none; border: 1px solid #dfe6e0; border-radius: 12px; }
.exo-dashboard { width: calc(100% - 64px); max-width: 1320px; margin: 36px auto 48px; }
.exo-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.exo-dashboard .exo-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 1.6px; color: #7e8f82; margin: 0 0 9px; }
.exo-dashboard h1 { color: #203e31; font-size: 28px !important; font-weight: 650 !important; letter-spacing: -.6px; margin: 0 0 8px; }
.exo-page-heading p { margin: 0; color: #788b7c; font-size: 13px; }
.exo-dashboard .exo-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 36px; padding: 8px 12px; border: 1px solid #dce5df; border-radius: 6px; background: #fff; color: #47705b !important; text-decoration: none !important; font: 600 12px/1.4 'Segoe UI', Arial, sans-serif; white-space: nowrap; cursor: pointer; }
.exo-dashboard .exo-button:hover { background: #edf5ef; border-color: #b7d0c1; }
.exo-dashboard .exo-button-primary { background: #187451; border-color: #187451; color: #fff !important; padding: 11px 16px; }
.exo-dashboard .exo-button-primary:hover { background: #105b3e; }
.exo-dashboard a:focus-visible, .exo-dashboard button:focus-visible { outline: 3px solid #a4d3b9; outline-offset: 3px; }
.exo-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.exo-metric { display: flex; flex-direction: column; padding: 20px 24px; border: 1px solid #e1e7e2; background: #fff; border-radius: 10px; border-top: 3px solid #1b916c; }
.exo-metric > span { font-size: 12px; font-weight: 600; color: #798d80; }
.exo-metric strong { font-size: 32px; font-weight: 650; line-height: 1.4; color: #29483b; font-variant-numeric: tabular-nums; margin-top: 9px; }
.exo-metric small { font-size: 11px; color: #8c9f92; margin-top: 3px; }
.exo-metric-blue { border-top-color: #7cb8a0; }
.exo-metric-amber { border-top-color: #d5ac66; }
.exo-metric-green { border-top-color: #78a89b; }
.exo-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.exo-panel { background: #fff; border: 1px solid #e1e7e2; border-radius: 10px; min-width: 0; overflow: hidden; }
.exo-panel-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 22px 24px; border-bottom: 1px solid #edf2ee; }
.exo-dashboard h2 { font-size: 15px !important; font-weight: 650 !important; color: #29483b; margin: 0; }
.exo-panel-heading p { margin: 5px 0 0; color: #899c8e; font-size: 11px; }
.exo-chart-key { font-size: 11px; color: #7c9584; }
.exo-chart-key::before { content: ''; display: inline-block; width: 7px; height: 7px; background: #23845f; border-radius: 50%; margin-right: 6px; }
.exo-chart { height: 270px; padding: 20px 24px; }
.exo-quick-actions { display: flex; gap: 16px; flex-wrap: wrap; padding: 16px 24px; border-top: 1px solid #edf2ee; background: #fafcf9; }
.exo-quick-actions a { color: #357554 !important; font-size: 11px; text-decoration: none !important; display: inline-flex; align-items: center; gap: 7px; }
.exo-quick-actions a:hover { text-decoration: underline !important; }
.exo-members { padding: 8px 24px; margin: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.exo-members li { display: flex; align-items: center; gap: 10px; padding: 15px 0; min-width: 0; }
.exo-members strong { display: block; font-size: 11px; font-weight: 600; color: #3d5b4a; overflow-wrap: anywhere; }
.exo-members li div > span { display: block; color: #92a399; font-size: 10px; margin-top: 4px; }
.exo-avatar { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; flex-shrink: 0; border-radius: 8px; color: #7a9c87; background: #eff5f0; font-size: 11px; }
.exo-commission-actions { display: flex; gap: 8px; flex-wrap: wrap; padding: 16px 24px; border-top: 1px solid #edf2ee; }
.exo-empty { grid-column: 1 / -1; color: #899c8e; font-size: 12px; }
@media (max-width: 1000px) { .exo-dashboard-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 700px) { .exo-dashboard { width: calc(100% - 32px); margin-top: 24px; } .exo-page-heading { align-items: flex-start; flex-direction: column; gap: 16px; } .exo-dashboard h1 { font-size: 24px !important; } .exo-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .exo-metric { padding: 16px; } .exo-campaign { flex-wrap: wrap; } .exo-campaign .exo-button { margin-left: 0; } .exo-panel-heading, .exo-commission-actions { padding: 18px; } .exo-members { padding: 8px 18px; } .exo-chart { padding: 16px; } }
@media (max-width: 420px) { .exo-members { grid-template-columns: minmax(0, 1fr); } .exo-metric strong { font-size: 28px; } }

/* Campagne : consultation et saisie réunies dans un formulaire permanent. */
.exo-campaign-page { max-width: 1120px; }
.exo-form-note { font-size: 11px; color: #788b7c; }
.exo-campaign-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.exo-form-section { padding: 28px; min-width: 0; }
.exo-form-section + .exo-form-section { border-left: 1px solid #edf2ee; }
.exo-dashboard .exo-form-section h3 { display: flex; align-items: center; gap: 9px; margin: 0 0 24px; font-size: 14px !important; color: #31634b; }
.exo-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; min-width: 0; }
.exo-field label { font-size: 12px; font-weight: 600; color: #3d5b4a; }
.exo-field input { width: 100%; min-width: 0; height: 42px; padding: 9px 12px; border: 1px solid #cddacf; border-radius: 6px; background: #fff; font: 13px 'Segoe UI', Arial, sans-serif; color: #29483b; }
.exo-field input:focus-visible { outline: 3px solid #d6ecdf; border-color: #1b916c; }
.exo-field small { color: #788b7c; font-size: 11px; }
.exo-field-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.exo-form-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 12px; padding: 20px 28px; background: #fafcf9; border-top: 1px solid #edf2ee; }
.exo-form-actions > span { margin-right: auto; font-size: 11px; color: #788b7c; }
.exo-form-actions button:disabled { opacity: .55; cursor: wait; }
@media (max-width: 750px) { .exo-campaign-sections { grid-template-columns: minmax(0, 1fr); } .exo-form-section + .exo-form-section { border-left: 0; border-top: 1px solid #edf2ee; } .exo-form-section { padding: 20px; } .exo-form-actions { padding: 20px; } }
@media (max-width: 420px) { .exo-field-pair { grid-template-columns: minmax(0, 1fr); gap: 0; } }

/* Gestion de la commission : liste et édition côte à côte. */
.exo-commission-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.exo-member-count { padding: 16px 24px 0; color: #788b7c; font-size: 11px; }
.exo-member-list { list-style: none; padding: 0 24px; margin: 0; }
.exo-member-list li { display: flex; gap: 12px; align-items: center; padding: 20px 0; border-bottom: 1px solid #edf2ee; }
.exo-member-list li:last-child { border-bottom: 0; }
.exo-member-identity { flex: 1; min-width: 0; }
.exo-member-identity strong { display: block; font-size: 13px; color: #29483b; overflow-wrap: anywhere; }
.exo-member-identity > span { display: block; font-size: 11px; color: #788b7c; margin: 5px 0; overflow-wrap: anywhere; }
.exo-member-identity small { display: inline-block; padding: 3px 7px; border-radius: 4px; background: #edf5ef; color: #47705b; font-size: 10px; }
.exo-member-actions { display: flex; gap: 6px; align-items: center; }
.exo-member-remove { border: 0; background: none; color: #9b635c; width: 32px; height: 36px; border-radius: 5px; cursor: pointer; }
.exo-member-remove:hover { background: #fbefed; }
.exo-member-types { display: flex; gap: 8px; flex-wrap: wrap; padding: 20px 24px 0; }
.exo-member-editor > #rech_ldap, .exo-member-editor > #rech_ext { padding: 0 24px 24px; }
.exo-member-editor .div-commission { margin: 0; padding: 20px 0 0; border: 0; border-radius: 0; box-shadow: none; background: none; }
.exo-member-editor .champ-formulaire { margin: 0 0 16px; padding: 0; }
.exo-member-editor .champ-formulaire .label { margin-bottom: 7px; }
.exo-member-editor label { font-size: 12px; color: #3d5b4a; }
.exo-member-editor .input { display: flex; align-items: center; gap: 8px; }
.exo-member-editor input:not([type=button]):not([type=hidden]), .exo-member-editor select { width: 100%; min-width: 0; height: 40px; padding: 8px 10px; border: 1px solid #cddacf; border-radius: 6px; font-size: 13px; background: #fff; }
.exo-member-editor input[readonly] { background: #f4f7f4 !important; color: #6c8174; }
.exo-member-editor input:focus-visible, .exo-member-editor select:focus-visible { outline: 3px solid #d6ecdf; border-color: #1b916c; }
.exo-member-editor .div-result-ldap { position: static; width: 100%; max-height: 240px; overflow: auto; font-size: 12px; border-radius: 6px; }
.exo-member-editor .ligne-fermer { font-size: 11px; margin-bottom: 12px; }
.exo-member-editor .div-boutons { margin: 12px 0 0; text-align: right; }
.exo-member-editor input[type=button] { border: 0; border-radius: 6px; background: #187451; color: #fff; padding: 10px 18px; font-size: 12px; box-shadow: none; }
@media (max-width: 1000px) { .exo-commission-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .exo-member-list li { flex-wrap: wrap; } .exo-member-actions { margin-left: 44px; } .exo-member-list { padding: 0 18px; } .exo-member-editor > #rech_ldap, .exo-member-editor > #rech_ext { padding: 0 18px 18px; } }

/* Résultats des annuaires. */
.exo-member-editor .div-result-ldap { border: 1px solid #dfe8e1; background: #fff; max-height: 330px; }
.exo-search-results-heading { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background: #f5f8f5; color: #6d8274; font-size: 11px; border-bottom: 1px solid #e6ede8; }
.exo-search-results-heading button { border: 0; background: none; color: #6d8274; padding: 4px 6px; }
.exo-search-results { list-style: none; padding: 0; margin: 0; }
.exo-search-results li + li { border-top: 1px solid #edf2ee; }
.exo-search-person { display: flex; gap: 12px; align-items: center; width: 100%; padding: 13px 14px; border: 0; background: #fff; text-align: left; color: #3d5b4a; cursor: pointer; }
.exo-search-person:hover { background: #edf5ef; }
.exo-search-person-text { flex: 1; min-width: 0; }
.exo-search-person strong { display: block; font-size: 12px; font-weight: 600; }
.exo-search-person small { display: block; color: #788b7c; font-size: 11px; margin-top: 4px; overflow-wrap: anywhere; }
.exo-search-person > i { font-size: 10px; color: #8aa493; }
.exo-search-empty { padding: 20px 14px; font-size: 12px; color: #788b7c; }
.exo-search-create { width: 100%; padding: 12px; color: #187451; background: #f5f8f5; border: 0; border-top: 1px solid #dfe8e1; font-size: 12px; text-align: left; }
/* Dialogues partagés sur tous les écrans : fond blanc et actions vertes. */
.exo-theme #dialogoverlay { position: fixed; inset: 0; height: 100% !important; background: rgba(23, 43, 32, .38); opacity: 1; z-index: 2000; }
.exo-theme #dialogbox { position: fixed; top: 50% !important; left: 50%; right: auto; transform: translate(-50%, -50%); margin: 0; width: min(460px, calc(100% - 32px)); max-height: calc(100dvh - 40px); overflow: auto; border: 1px solid #dfe8e1; border-radius: 12px; background: #fff; box-shadow: 0 20px 65px rgba(23, 43, 32, .18); z-index: 2001; font-family: 'Segoe UI', Arial, sans-serif; }
.exo-theme #dialogbox:hover { box-shadow: 0 20px 65px rgba(23, 43, 32, .18); }
.exo-theme #dialogbox > div { margin: 0; background: #fff; }
.exo-theme #dialogbox > div > #dialogboxhead { padding: 20px 24px 14px; background: #fff; color: #29483b; font-size: 16px; font-weight: 600; border-bottom: 1px solid #edf2ee; }
.exo-theme #dialogboxhead i { color: #23845f; margin-right: 8px; }
.exo-theme #dialogbox > div > #dialogboxbody { padding: 24px; background: #fff; color: #526c5b; font-size: 13px; line-height: 1.7; }
.exo-theme #dialogbox > div > #dialogboxfoot { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 24px; border-top: 1px solid #edf2ee; background: #f8faf8; }
.exo-theme #dialogbox .pure-material-button-contained { margin: 0; padding: 0 18px; border: 1px solid #cedcd2; border-radius: 6px; background: #fff; color: #47705b; box-shadow: none; text-transform: none; font-size: 12px; }
.exo-theme #dialogbox .pure-material-button-contained.active { background: #187451; border-color: #187451; color: #fff; order: 1; }
.exo-theme #dialogbox .pure-material-button-contained::before, .exo-theme #dialogbox .pure-material-button-contained::after { display: none; }
.exo-theme #dialogbox button:focus-visible { outline: 3px solid #a4d3b9; outline-offset: 2px; }
.exo-theme #dialogbox button:hover { filter: brightness(.96); }
.exo-theme .alert-msg { box-shadow: none; border-radius: 8px; padding: 16px 20px; font-family: 'Segoe UI', Arial, sans-serif; }
.exo-theme .alert-msg-ok { background: #edf6ef; color: #31634b; border: 1px solid #d5e7da; }
.exo-theme .alert-msg-err { background: #fff5f2; color: #895c50; border: 1px solid #eedbd4; }

.exo-theme #dialogbox .pure-material-button-contained.active.dialog-danger { background: #b63232; border-color: #b63232; color: #fff; }
.exo-theme #dialogbox .dialog-danger:focus-visible { outline-color: #efb0b0; }

/* Liste des demandes : filtres, recherche et tableau. */
.exo-requests-page { max-width: 1400px; }
.exo-request-toolbar { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 20px; padding: 22px 24px; border-bottom: 1px solid #ececec; }
.exo-request-filters { display: flex; flex-wrap: wrap; gap: 8px; border: 0; margin: 0; padding: 0; }
.exo-request-filters legend, .exo-request-search > label { float: none; width: auto; display: block; font-size: 11px; color: #606060; margin: 0 0 10px; }
.exo-filter-chip { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #dedede; border-radius: 6px; padding: 9px 11px; color: #444444; font-size: 12px; cursor: pointer; background: #fff; }
.exo-filter-chip--control { --filter-bg: #fff0cf; --filter-color: #854800; --filter-border: #e7b45d; }
.exo-filter-chip--incomplete { --filter-bg: #fde4e4; --filter-color: #a12626; --filter-border: #e8a0a0; }
.exo-filter-chip--validated { --filter-bg: #dcf3e4; --filter-color: #17653a; --filter-border: #91c9a6; }
.exo-filter-chip:has(input:checked) { background: var(--filter-bg); border-color: var(--filter-border); color: var(--filter-color); box-shadow: inset 0 0 0 1px var(--filter-border); }
.exo-filter-chip span { font-weight: 600; }
.exo-filter-chip:focus-within { outline: 2px solid #555; outline-offset: 3px; }
.exo-filter-chip input { accent-color: var(--filter-color, #187451); width: 14px; height: 14px; margin: 0; }
.exo-request-search { min-width: 230px; }
.exo-request-search > div { display: flex; align-items: center; gap: 10px; border: 1px solid #d4d4d4; border-radius: 6px; padding: 0 12px; color: #737373; background: #fff; }
.exo-request-search input { height: 38px; width: 100%; border: 0; background: none; font-size: 12px; color: #303030; outline: none; }
.exo-request-search > div:focus-within { outline: 2px solid #a4d3b9; }
.exo-request-options { display: flex; align-items: center; gap: 10px; padding: 14px 24px; font-size: 11px; color: #626262; background: #fafafa; }
.exo-request-options > span { margin-right: auto; }
.exo-request-options select { background: #fff; border: 1px solid #d4d4d4; border-radius: 5px; padding: 5px 9px; color: #3c3c3c; }
.exo-request-table { overflow-x: auto; }
.exo-requests-page #divTab { margin: 0; padding: 0; }
.exo-requests-page #divTab table { width: 100%; margin: 0; border-collapse: collapse; font-size: 12px; color: #3c3c3c; }
.exo-requests-page #divTab table thead th { background: #f5f5f5; color: #595959; padding: 14px 18px; border: 0 !important; border-bottom: 1px solid #e0e0e0 !important; font-weight: 600; white-space: nowrap; }
.exo-requests-page #divTab table tbody td { padding: 13px 18px; vertical-align: middle; background: #fff; border: 0; border-bottom: 1px solid #ececec; box-shadow: none; }
.exo-requests-page #divTab table tbody tr:hover td { background: #fafafa; }
.exo-requests-page #divTab td a { color: #187451 !important; font-weight: 600; text-decoration: none; }
.exo-requests-page #divTab td a:hover { text-decoration: underline; }
.exo-request-status { display: inline-block; border-radius: 5px; padding: 4px 9px; background: #f1f1f1; color: #4a4a4a; font-size: 11px; white-space: nowrap; }
.exo-request-opinion { font-size: 11px; color: #595959; }
.exo-requests-page .gs-pagination { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 6px; padding: 16px 24px; margin: 0; }
.exo-requests-page .gs-pagination button, .exo-requests-page .gs-pagination .gs-button { border: 1px solid #dedede; border-radius: 5px; padding: 6px 10px; background: #fff; color: #4a4a4a; font-size: 11px; box-shadow: none; }
.exo-requests-page .gs-pagination .active { background: #187451; color: #fff; border-color: #187451; }
.exo-requests-page input:focus-visible, .exo-requests-page select:focus-visible, .exo-requests-page a:focus-visible { outline: 2px solid #1b916c; outline-offset: 2px; }
@media (max-width: 700px) { .exo-request-toolbar { padding: 18px; align-items: stretch; flex-direction: column; } .exo-request-options { flex-wrap: wrap; padding: 14px 18px; } .exo-request-options > span { width: 100%; } .exo-requests-page #divTab table tbody td, .exo-requests-page #divTab table thead th { padding: 12px 10px; } }

/* Repères visuels des états des demandes, avec libellés conservés. */
.exo-request-status { font-weight: 600; border: 1px solid transparent; }
.exo-request-status--control { background: #fff0cf; color: #854800; border-color: #e7b45d; }
.exo-request-status--incomplete { background: #fde4e4; color: #a12626; border-color: #e8a0a0; }
.exo-request-status--validated { background: #dcf3e4; color: #17653a; border-color: #91c9a6; }

.exo-requests-page #divTab table tbody tr:has(a[href^="javascript:traiterDemande("]) { cursor: pointer; }
.exo-requests-page #divTab table tbody tr:has(a[href^="javascript:traiterDemande("]):hover td,
.exo-requests-page #divTab table tbody tr:focus-within td { background: #f1f1f1; }

.exo-opinion-chart { height: 250px; max-width: 380px; margin: auto; }
.exo-opinion-legend { display: flex; justify-content: center; flex-wrap: wrap; gap: 20px; padding: 16px 24px; font-size: 12px; color: #555; }
.exo-opinion-legend span { display: inline-flex; align-items: center; gap: 8px; }
.exo-opinion-legend i { width: 9px; height: 9px; border-radius: 50%; }
.exo-dot-favorable { background: rgb(46,136,87); }
.exo-dot-unfavorable { background: rgb(227,39,42); }
.exo-validation-note { font-size: 12px; color: #666; margin: 0; align-self: center; }
.exo-dashboard-empty { padding: 50px 24px; text-align: center; color: #666; font-size: 13px; }
.exo-attendance-members { grid-template-columns: minmax(0, 1fr); }
.exo-attendance-members li + li { border-top: 1px solid #eee; }
.exo-member-identity { flex: 1; min-width: 0; }
.exo-attendance-members button { border: 1px solid #d5d5d5; border-radius: 6px; padding: 7px 12px; font: 600 12px 'Segoe UI', Arial, sans-serif; background: #f5f5f5; color: #606060; flex-shrink: 0; }
.exo-attendance-members button.icon-actif { background: #dcf3e4; color: #17653a; border-color: #91c9a6; }
.exo-attendance-members .icon-actif .exo-absent, .exo-attendance-members .icon-inactif .exo-present { display: none; }

.exo-dashboard a.exo-metric-link { text-decoration: none !important; cursor: pointer; transition: background-color .15s, box-shadow .15s; }
.exo-dashboard a.exo-metric-link:hover { background: #fafafa; box-shadow: 0 3px 10px rgba(0,0,0,.08); }
.exo-dashboard a.exo-metric-link:focus-visible { outline: 3px solid #187451; outline-offset: 3px; }

.exo-filter-chip--pending { --filter-bg: #f0ebfa; --filter-color: #60408b; --filter-border: #bfa9db; }
.exo-commission-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 22px; margin: 0; padding: 16px 24px; border: 0; border-bottom: 1px solid #ececec; }
.exo-commission-filters legend { float: none; width: auto; margin: 0 0 10px; font-size: 11px; color: #606060; }
.exo-commission-filters label { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: #444; }
.exo-commission-filters input[type=checkbox] { display: inline-block; width: 16px; height: 16px; margin: 0; flex-shrink: 0; accent-color: #187451; cursor: pointer; }
.exo-commission-filters label:has(input[type=checkbox]) { padding: 8px 11px; border: 1px solid #d4d4d4; border-radius: 6px; background: #fff; cursor: pointer; font-weight: 600; }
.exo-commission-filters label:has(input:checked) { background: #dcf3e4; color: #17653a; border-color: #91c9a6; box-shadow: inset 0 0 0 1px #91c9a6; }
.exo-commission-filters label:has(input):focus-within { outline: 2px solid #187451; outline-offset: 3px; }
.exo-commission-filters select { border: 1px solid #d4d4d4; border-radius: 5px; background: #fff; padding: 6px 9px; max-width: 100%; }

/* Fiche de demande de l’espace commission. */
.exo-detail-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.exo-request-detail .exo-detail-heading h1 { font-size: 22px !important; color: #303030; margin: 0 0 6px; }
.exo-detail-heading p { margin: 0; color: #666; font-size: 12px; }
.exo-detail-heading p span { margin: 0 8px; }
.exo-detail-layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 22px; align-items: start; }
.exo-detail-nav { background: #fff; border: 1px solid #e1e7e2; border-radius: 10px; padding: 8px; }
.exo-detail-nav ul { list-style: none; margin: 0; padding: 0; }
.exo-detail-nav button { display: flex; align-items: center; gap: 12px; padding: 13px 12px; width: 100%; border: 0; border-radius: 6px; background: transparent; color: #555; font: 600 13px 'Segoe UI', Arial, sans-serif; text-align: left; }
.exo-detail-nav button i { width: 18px; text-align: center; }
.exo-detail-nav button:hover { background: #f4f5f4; }
.exo-detail-nav .actif button { background: #e8f4ed; color: #17653a; }
.exo-request-detail .formulaire-box { margin: 0; padding: 24px; width: 100%; border: 0; box-shadow: none; background: #fff; }
.exo-request-detail .formulaire-box h1, .exo-request-detail .formulaire-box h2, .exo-request-detail .formulaire-box h3 { font-size: 17px !important; color: #333; margin: 0 0 20px; font-weight: 600 !important; }
.exo-request-detail .formulaire-saisie .champ-formulaire { margin-bottom: 16px; padding-bottom: 0; }
.exo-request-detail .champ-formulaire .label { color: #606060; font-size: 12px; margin-bottom: 6px; }
.exo-request-detail .champ-formulaire .input { min-width: 0; }
.exo-request-detail .champ-formulaire input:not([type=radio]):not([type=checkbox]):not([type=hidden]), .exo-request-detail .champ-formulaire select, .exo-request-detail .champ-formulaire textarea { width: 100%; max-width: 100%; border: 1px solid #d5d5d5; border-radius: 6px; background: #fff; color: #333; padding: 9px 10px; font-size: 13px; box-sizing: border-box; }
.exo-request-detail .champ-formulaire input[readonly], .exo-request-detail .champ-formulaire select:disabled, .exo-request-detail .champ-formulaire textarea[readonly] { background: #f7f7f7 !important; color: #444 !important; opacity: 1; }
.exo-request-detail textarea { resize: vertical; }
.exo-request-detail .div-decision { background: transparent; border: 0; padding: 0 12px; margin-bottom: 0; box-shadow: none; }
.exo-request-detail .ligne-formulaire { margin-top: 0; padding-top: 0; }
.exo-detail-actions { display: flex; justify-content: flex-end; padding: 0 24px 20px; }
.exo-detail-actions:has(.element-masque), .exo-detail-actions:empty { padding: 0; }
.exo-request-detail .formulaire-box table { width: 100%; font-size: 12px; }
.exo-request-detail .formulaire-box td, .exo-request-detail .formulaire-box th { padding: 10px; border-color: #e6e6e6; }
.exo-request-detail .formulaire-box a { color: #187451; }
@media (max-width: 800px) { .exo-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 14px; } .exo-detail-nav ul { display: flex; flex-wrap: wrap; gap: 4px; } .exo-detail-nav button { padding: 10px; } .exo-detail-heading { align-items: flex-start; flex-direction: column; gap: 12px; } .exo-request-detail .formulaire-box { padding: 18px; } .exo-detail-content { overflow-x: auto; } }

/* Neutralisation des règles historiques dans la fiche commission seulement. */
.exo-request-detail .formulaire-saisie .champ-formulaire .input input[readonly]:not([type=radio]):not([type=checkbox]),
.exo-request-detail .formulaire-saisie .champ-formulaire .input select:disabled { border: 1px solid #d5d5d5; padding: 9px 10px; }
.exo-request-detail .formulaire-saisie input[type=radio],
.exo-request-detail .formulaire-saisie input[type=checkbox],
.exo-request-detail .formulaire-saisie .champ-formulaire input[type=radio],
.exo-request-detail .formulaire-saisie .champ-formulaire input[type=checkbox] { display: inline-block; appearance: auto; width: 16px; height: 16px; padding: 0; margin: 0 5px 0 0; vertical-align: middle; accent-color: #187451; border: 0; }
.exo-request-detail label.radio, .exo-request-detail label.radio-inactif { margin: 5px 16px 5px 0; vertical-align: middle; font-size: 13px; }
.exo-request-detail label.radio::before, .exo-request-detail label.radio::after,
.exo-request-detail label.radio-inactif::before, .exo-request-detail label.radio-inactif::after { content: none; display: none; }
.exo-request-detail label.radio span, .exo-request-detail label.radio-inactif span { margin-left: 0; }
.exo-request-detail input:disabled + label { cursor: default; }
.exo-request-detail input:checked + label { color: #17653a; font-weight: 600; }
.exo-request-detail :is(input, select, textarea):focus-visible { outline: 2px solid #187451; outline-offset: 2px; }
.exo-request-detail :is(.div-cursus, .div-justif, .div-enfants) { margin-top: 16px !important; padding: 16px; border: 1px solid #e5e5e5; border-radius: 6px; box-shadow: none; background: #fff; }
.exo-request-detail :is(.div-cursus, .div-justif, .div-enfants) h3 { border-bottom: 1px solid #e5e5e5; }
.exo-request-detail .formulaire-box .table thead th { background: #f5f5f5; color: #555; border-top: 0 !important; border-bottom: 1px solid #ddd !important; }

/* Les justificatifs utilisent toute la largeur de la fiche commission. */
.exo-request-detail .list-justif > .row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px 24px; margin: 0; padding: 8px 0; }
.exo-request-detail .list-justif > .row > div { width: auto; max-width: none; padding: 0; font-size: 13px; }
.exo-request-detail .list-justif > .row > div:first-child { overflow-wrap: anywhere; }
.exo-request-detail .list-justif > .row > div:nth-child(2) { text-align: right; white-space: nowrap; }
.exo-request-detail .list-justif > .row + .row { border-top: 1px solid #eee; }
@media (max-width: 575px) { .exo-request-detail .list-justif > .row { grid-template-columns: minmax(0, 1fr); gap: 4px; } .exo-request-detail .list-justif > .row > div:nth-child(2) { text-align: left; } }

/* Connexion à la commission. */
.exo-login-page { max-width: 860px; margin-top: 48px; }
.exo-login-heading { margin-bottom: 24px; }
.exo-login-page .exo-login-heading h1 { font-size: 24px !important; color: #303030; }
.exo-login-heading p, .exo-login-choice p { color: #666; font-size: 14px; line-height: 1.6; margin: 8px 0 0; }
.exo-login-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.exo-login-page a.exo-login-choice { display: flex; flex-direction: column; padding: 28px; text-decoration: none !important; border-color: #ddd; }
.exo-login-choice .exo-avatar { width: 42px; height: 42px; font-size: 18px; margin-bottom: 20px; }
.exo-login-choice h2 { color: #333; }
.exo-login-choice p { margin-bottom: 24px; }
.exo-login-choice:hover { border-color: #82b89a !important; box-shadow: 0 4px 14px rgba(0,0,0,.05); }
.exo-login-cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #17653a; font-size: 13px; font-weight: 600; margin-top: auto; }
.exo-login-external { max-width: 520px; }
.exo-login-card { padding: 30px; }
.exo-login-card form { display: flex; flex-direction: column; gap: 8px; }
.exo-login-card form label { color: #444; font-size: 13px; font-weight: 600; }
.exo-login-card form input { width: 100%; min-height: 42px; padding: 10px 12px; margin-bottom: 12px; border: 1px solid #ccc; border-radius: 6px; background: #fff; color: #333; }
.exo-login-card form input:focus-visible { outline: 2px solid #187451; outline-offset: 2px; }
.exo-login-links { display: flex; flex-wrap: wrap; gap: 12px 20px; margin-top: 20px; }
.exo-login-links button { padding: 0; border: 0; background: none; color: #17653a; font: 13px 'Segoe UI', Arial, sans-serif; text-align: left; text-decoration: underline; }
.exo-login-note { border-top: 1px solid #eee; padding-top: 20px; margin: 24px 0 0; font-size: 12px; color: #666; }
.exo-login-back { display: inline-flex; gap: 9px; align-items: center; margin-top: 18px; font-size: 13px; }
.exo-login-page .div-espace-top { margin-top: 0; padding-top: 0; }
@media (max-width: 650px) { .exo-login-choices { grid-template-columns: minmax(0, 1fr); } .exo-login-card { padding: 22px; } .exo-login-page { margin-top: 24px; } }

/* Informations de traitement propres à la scolarité. */
.exo-school-detail .exo-detail-heading p { margin-top: 8px; }
.exo-school-message { margin-bottom: 20px; padding: 14px 18px; border: 1px solid #e7b45d; border-left: 4px solid #d5ac66; border-radius: 6px; background: #fff9ed; color: #555; font-size: 13px; overflow-wrap: anywhere; }
.exo-school-message > strong { display: block; margin-bottom: 6px; color: #854800; }
.exo-school-history { border: 1px solid #e5e5e5; border-radius: 6px; padding: 18px; }
.exo-school-history article { padding: 14px 0; border-top: 1px solid #eee; font-size: 13px; color: #444; overflow-wrap: anywhere; }
.exo-school-history article > strong { display: block; margin-bottom: 6px; font-size: 12px; color: #666; }
.exo-school-history > p { color: #666; font-size: 13px; }
.exo-school-detail .div-decision + .div-decision { border-top: 1px solid #e5e5e5; margin-top: 16px; padding-top: 20px; }
