:root{font-family:system-ui,sans-serif;color:#202124;background:#f7f7f8}body{margin:0}header,footer{display:flex;justify-content:space-between;padding:1rem 5vw;background:#fff;border-bottom:1px solid #ddd}footer{border-top:1px solid #ddd;border-bottom:0;margin-top:3rem}header a,footer a{color:#7b1831;text-decoration:none}main{max-width:1100px;margin:2rem auto;padding:0 1rem}.hero,.card,.dangerbox{background:#fff;border:1px solid #ddd;border-radius:14px;padding:1.4rem;margin:1rem 0}.hero{text-align:center}.dangerbox{border-color:#b63a45}.narrow{max-width:450px;margin:3rem auto}.recipient{font-size:2.2rem;font-weight:700;color:#7b1831;padding:1rem}form{display:grid;gap:.8rem}form.row{grid-template-columns:2fr 2fr auto}.inline{display:inline}.grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}label{display:grid;gap:.35rem}input,select,button{font:inherit;padding:.65rem;border:1px solid #bbb;border-radius:8px}button{background:#7b1831;color:white;border:0;cursor:pointer}button:disabled{background:#999;cursor:not-allowed}.danger{background:#9b1c2a}.linkbutton{background:transparent;color:#7b1831}.status,.badge{display:inline-block;padding:.4rem .7rem;background:#eee;border-radius:999px}.quiet{font-size:.9rem}.check{display:block}table{width:100%;border-collapse:collapse}th,td{padding:.65rem;border-bottom:1px solid #ddd;text-align:left;vertical-align:middle}.matrix{overflow:auto}.matrix td{text-align:center}.matrix table{min-width:700px}details summary{cursor:pointer;font-weight:700}pre{font-size:1.2rem;white-space:pre-wrap}
.adminnav{display:flex;gap:.8rem;flex-wrap:wrap;margin:1rem 0}.adminnav a{background:#fff;border:1px solid #ddd;border-radius:8px;padding:.5rem .7rem;text-decoration:none;color:#7b1831}.notice{padding:.8rem 1rem;border-radius:8px;background:#fff7dd;border:1px solid #e0c36a}.notice.error{background:#fff0f0;border-color:#c76767}.error-text{color:#9b1c2a;font-weight:700}hr{border:0;border-top:1px solid #ddd;margin:1.2rem 0}

.test-banner{border:3px solid currentColor;padding:1rem;margin:1rem 0;font-weight:700;text-align:center}.warning{font-weight:700}

.app-version{font-size:.78rem;color:#777;align-self:center}.logout-form{margin-left:.8rem}.logout-form button{padding:0;border:0;background:transparent;color:#7b1831;text-decoration:none;cursor:pointer}

/* Documentation utilisateur */
.help-page{scroll-behavior:smooth}.help-hero{text-align:left}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:700;color:#7b1831}.help-toc{position:relative}.help-toc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.55rem}.help-toc a{display:block;padding:.55rem .7rem;border:1px solid #e1d6d9;border-radius:8px;text-decoration:none;color:#7b1831;background:#fffafb}.help-section{scroll-margin-top:1rem}.help-section h2{color:#7b1831;margin-top:.1rem}.help-section h3{margin-top:1.6rem}.role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;margin:1rem 0}.role-card{border:1px solid #e0e0e0;border-radius:10px;padding:1rem;background:#fafafa}.role-card h3{margin:0 0 .4rem;color:#7b1831}.steps{padding-left:1.4rem}.steps li{margin:.5rem 0}.expected{padding:.8rem 1rem;border-radius:8px;background:#eef8f0;border:1px solid #8ab895;margin:1rem 0}.help-table th{background:#f3edef;color:#5f1226}.help-table td:first-child{font-weight:600;width:30%}.checklist{display:grid;gap:.55rem}.checklist h3{margin-bottom:.2rem}.checklist label{display:flex;grid-template-columns:none;align-items:flex-start;gap:.65rem}.checklist input{margin-top:.2rem;accent-color:#7b1831}@media (max-width:650px){.help-table{display:block;overflow-x:auto}.help-toc-grid{grid-template-columns:1fr}}

/* Wishlist */
.wishlist-form{display:grid;grid-template-columns:minmax(12rem,1fr) minmax(14rem,1.5fr) auto;gap:.6rem;align-items:end;margin:.75rem 0}
.wishlist-list{display:grid;gap:.65rem;margin-top:.75rem}
.wishlist-item{border:1px solid #ddd;border-radius:.55rem;padding:.75rem;background:#fff}
.wishlist-value{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}
.wishlist-links{display:flex;gap:.45rem;flex-wrap:wrap}
.small-action{font-size:.9rem;text-decoration:none;border:1px solid #bbb;border-radius:.4rem;padding:.25rem .5rem}
.wishlist-admin-link{margin:.4rem 0;font-size:.92rem}
@media(max-width:760px){.wishlist-form{grid-template-columns:1fr}.wishlist-value{align-items:flex-start}}


/* Verrouillages et journal d audit groupé */
.notice{padding:.8rem 1rem;border:1px solid #d6b35c;background:#fff8df;border-radius:10px;margin:1rem 0}
.participant-lock-notice,.exclusion-lock-notice{font-weight:600}
.participant-lock-notice-bottom{margin-top:1rem;margin-bottom:0}
.audit-card{padding:0;overflow:visible}
.audit-table-wrap{overflow-x:auto;border-radius:14px}
.audit-log-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.audit-log-table thead th{position:sticky;top:0;z-index:3;background:#5f1226;color:#fff;border-bottom:2px solid #46101e}
.audit-log-table th,.audit-log-table td{padding:.7rem;vertical-align:top;overflow-wrap:anywhere;word-break:break-word}
.audit-log-table th:nth-child(1){width:20%}.audit-log-table th:nth-child(2){width:14%}.audit-log-table th:nth-child(3){width:32%}.audit-log-table th:nth-child(4){width:34%}
.audit-group-0 td{background:#fff}.audit-group-1 td{background:#f5f1f2}
.audit-meta-row td{border-bottom:0}
.audit-detail-row td{border-top:0;border-bottom:3px solid #c9b9be;padding-top:.25rem;padding-bottom:1rem}
.audit-details{margin-top:.35rem;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:100%}
.audit-breakable{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:700px){.audit-log-table{min-width:720px}.audit-log-table th,.audit-log-table td{font-size:.9rem;padding:.5rem}}


/* Page 404 */
.error-page { text-align: center; max-width: 720px; margin-inline: auto; }
.error-code { font-size: clamp(3rem, 10vw, 6rem); line-height: 1; margin: .15em 0; font-weight: 700; opacity: .18; }
.error-page .actions { display: flex; gap: 1rem; justify-content: center; align-items: center; flex-wrap: wrap; margin-top: 1.5rem; }

/* V4.0.3 - administration compacte */
.block{display:block}.button{display:inline-block;padding:.55rem .75rem;border-radius:8px;background:#7b1831;color:#fff;text-decoration:none}.button.secondary{background:#fff;color:#7b1831;border:1px solid #bfa8ae}.button-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.button-row form{display:inline-block;margin:0}.button-row button{padding:.5rem .7rem}
.participants-table{table-layout:auto;min-width:720px}.participants-table th,.participants-table td{padding:.38rem .5rem;line-height:1.2}.participants-table .participant-name{min-width:13rem}.participants-table .participant-status{width:1%;white-space:nowrap}.participants-table .participant-email{width:26%;min-width:14rem}.participants-table .participant-actions{width:1%;white-space:nowrap}.participants-table .badge{padding:.25rem .45rem;font-size:.82rem}.badge.locked{background:#efe7ea}.warning-badge{background:#fff2cf}.row-actions{position:relative}.row-actions>summary{cursor:pointer;color:#7b1831;font-weight:650;list-style:none;border:1px solid #cdbfc3;border-radius:7px;padding:.35rem .55rem;background:#fff}.row-actions>summary::-webkit-details-marker{display:none}.row-actions-panel{position:absolute;right:0;z-index:10;width:min(34rem,82vw);padding:1rem;background:#fff;border:1px solid #ccc;border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.15);white-space:normal}.row-actions-panel h3{margin-top:0}.compact-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:.55rem 0}.compact-form button,.compact-form .check{grid-column:1/-1}.pending-email-box{background:#fff7dd;border:1px solid #e0c36a;border-radius:8px;padding:.65rem;margin:.65rem 0}.add-participant-form{margin-top:1rem}.table-scroll{overflow-x:auto;max-width:100%}

/* Matrice d'exclusions - ergonomie proche V3 */
.matrix{overflow:auto;max-width:100%;border:1px solid #ddd;border-radius:9px;background:#fff}.exclusion-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.exclusion-matrix th,.exclusion-matrix td{padding:.35rem .45rem;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center;white-space:nowrap}.exclusion-matrix thead th{position:sticky;top:0;z-index:3;background:#f4edef;color:#5f1226;font-size:.86rem}.exclusion-matrix tbody th{position:sticky;left:0;z-index:2;background:#faf7f8;text-align:left;font-size:.86rem}.exclusion-matrix .matrix-corner{left:0;z-index:4;min-width:9rem}.matrix-cell{min-width:3.1rem}.matrix-check{display:flex;grid-template-columns:none;flex-direction:row;align-items:center;justify-content:center;gap:.2rem;cursor:pointer}.matrix-check input{margin:0;accent-color:#7b1831}.locked-cell{background:#fff9e8}.matrix-self{color:#999}.exclusions-actions{margin-top:.75rem}

@media (max-width:760px){.compact-form{grid-template-columns:1fr}.row-actions-panel{position:fixed;left:5vw;right:5vw;top:12vh;width:auto;max-height:76vh;overflow:auto}.participants-table{min-width:650px}}
.success{padding:.65rem .8rem;border:1px solid #8ab895;background:#eef8f0;border-radius:8px;color:#245d30}.participants-io{margin-top:1rem;padding-top:.9rem;border-top:1px solid #e2e2e2}.participants-io h3{margin:.1rem 0 .35rem}.import-participants-form{grid-template-columns:minmax(16rem,1fr) auto;align-items:end;margin-top:.75rem}.import-participants-form label{min-width:0}@media(max-width:760px){.import-participants-form{grid-template-columns:1fr}}

.participants-io{margin-top:1rem;border-top:1px solid #e4dde0;padding-top:.8rem}.participants-io>summary{cursor:pointer;color:#5f1226;font-weight:700;list-style:none;padding:.4rem 0}.participants-io>summary::before{content:"▸";display:inline-block;margin-right:.45rem;transition:transform .15s ease}.participants-io[open]>summary::before{transform:rotate(90deg)}.participants-io>summary::-webkit-details-marker{display:none}.participants-io-panel{padding:.4rem 0 .2rem}.import-participants-form{margin-top:.8rem;max-width:42rem}.exclusions-save{display:flex;justify-content:flex-end;margin-top:.8rem}.draw-actions{margin-top:1.2rem;padding-top:1rem;border-top:1px solid #e4dde0}.draw-actions h3{margin:.05rem 0 .35rem}.draw-action-buttons{align-items:stretch}.draw-action-buttons form{display:flex}.draw-action-buttons button,.draw-action-buttons .button{min-height:100%}.secondary-action{background:#fff;color:#7b1831;border:1px solid #bfa8ae}
