:root { color-scheme: light; --ink:#14213d; --blue:#2056d6; --soft:#eef3ff; --line:#d8dfeb; --warn:#fff4d6; --danger:#a32020; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; font:16px/1.5 system-ui,sans-serif; color:var(--ink); background:#f6f8fc; }
header { display:flex; gap:1rem; align-items:center; padding:1rem 4vw; color:white; background:#111b35; }
.brand { font-weight:900; letter-spacing:.18em; }
main { width:min(1100px,92vw); margin:2rem auto 4rem; }
.panel,.warning { padding:1.25rem; margin-bottom:1.25rem; border:1px solid var(--line); border-radius:16px; background:white; box-shadow:0 8px 30px #14213d0d; }
.warning { background:var(--warn); border-color:#e8c96e; }
.grid { display:grid; grid-template-columns:2fr 1fr; gap:1.25rem; }
.toolbar,.actions { display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; }
.eyebrow { margin:0; color:#52627c; font-size:.85rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
h1,h2,h3 { line-height:1.2; }
label { display:block; margin:.8rem 0; font-weight:650; }
input,select,textarea { display:block; width:100%; margin-top:.3rem; padding:.7rem; border:1px solid #9aa8bd; border-radius:8px; background:white; font:inherit; }
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,[tabindex="-1"]:focus { outline:3px solid #ffbf47; outline-offset:2px; }
textarea { min-height:6rem; resize:vertical; }
.check { display:flex; gap:.5rem; align-items:flex-start; font-weight:500; }
.check input { width:auto; margin-top:.35rem; }
button { padding:.7rem 1rem; border:0; border-radius:9px; color:white; background:var(--blue); font:inherit; font-weight:750; cursor:pointer; }
button.secondary { color:var(--ink); background:#e7ebf2; }
button.danger { background:var(--danger); }
button:disabled { opacity:.48; cursor:not-allowed; }
.pill { display:inline-block; padding:.25rem .6rem; border-radius:999px; color:#16409e; background:var(--soft); font-weight:750; }
.privacy { padding:.75rem; border-left:4px solid #d19d00; background:#fff9e9; }
.prepared-project { margin:1rem 0; padding:1rem; border:1px solid var(--line); border-radius:10px; background:var(--soft); }
.prepared-project h2 { margin-top:0; }
.prepared-project p { margin-bottom:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.resource { color:#354969; }
.session-meta { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.session-meta div { padding:.7rem; background:var(--soft); border-radius:9px; }
.session-meta dt { font-size:.8rem; font-weight:750; text-transform:uppercase; }
.session-meta dd { margin:.25rem 0 0; overflow-wrap:anywhere; }
.invitation-panel { display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:center; margin-top:1rem; padding:1rem; border:1px solid var(--line); border-radius:12px; background:#fafbfe; }
.invitation-panel h2 { margin-top:0; }
.invitation-panel a { overflow-wrap:anywhere; }
.invitation-actions { justify-content:flex-start; margin-top:.75rem; }
#invitation-qr { width:min(220px,40vw); height:auto; padding:.4rem; background:white; border:1px solid var(--line); }
#participants,#help-requests,#participant-usage { padding:0; list-style:none; }
#participants li,#help-requests li,#participant-usage li { padding:.65rem 0; border-bottom:1px solid var(--line); }
#help-requests li { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.mapping-grid,.participant-form { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.mapping-grid label,.participant-form label { margin:.4rem 0; }
.participant-form h3,.participant-form .actions,.participant-form button[type="submit"] { grid-column:1/-1; }
#contribution-form .actions button { flex:1 1 14rem; }
#contribution-attribution { margin-top:1rem; border:1px solid #b7c6d7; border-radius:.75rem; padding:1rem; }
#contribution-attribution button { margin-top:.75rem; }
.recognition-panel { border-color:#9aaed8; background:#f8faff; }
.recognition-panel .actions { justify-content:flex-start; }
.recognition-panel .slide { border-left:4px solid var(--blue); }
.publication-actions { justify-content:flex-start; }
.publication-actions button { flex:1 1 18rem; }
.knowledge-catalogue-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:.75rem; }
.knowledge-catalogue-grid .slide { margin:0; }
.knowledge-state { font-weight:750; }
.participant-form { margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--line); }
.roster-table-wrap { overflow-x:auto; }
.roster-table { width:100%; border-collapse:collapse; }
.roster-table th,.roster-table td { padding:.7rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.roster-table td:last-child { display:flex; flex-wrap:wrap; gap:.45rem; }
.preview-table td:last-child { display:table-cell; }
.compact { padding:.45rem .65rem; }
.roster-error { margin:.6rem 0; padding:.7rem; border-left:4px solid var(--danger); background:#fff0f0; }
.roster-error .check { margin-top:.5rem; }
.roster-actions { margin-top:1rem; justify-content:flex-start; }
#chat-log { min-height:5rem; padding:.75rem; border:1px solid var(--line); border-radius:9px; background:#fafbfe; }
.message { white-space:pre-wrap; margin:.5rem 0; padding:.65rem; border-radius:9px; background:var(--soft); }
.message.user { background:#e9f7ee; }
pre { white-space:pre-wrap; overflow-wrap:anywhere; }
@media (max-width:760px) { .grid,.session-meta,.invitation-panel { grid-template-columns:1fr; } main { width:min(94vw,700px); } }
@media (max-width:720px) {
  #join-form button,#join-form select { width:100%; }
  .mapping-grid,.participant-form { grid-template-columns:1fr; }
  .roster-table,.roster-table tbody,.roster-table tr,.roster-table td { display:block; width:100%; }
  .roster-table thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .roster-table tr { margin-bottom:1rem; padding:.5rem; border:1px solid var(--line); border-radius:10px; }
  .roster-table td { display:grid; grid-template-columns:minmax(7rem,35%) 1fr; gap:.5rem; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
  .roster-table td::before { content:attr(data-label); font-weight:750; }
  .roster-table td:last-child { display:flex; }
  .roster-table td:last-child::before { width:100%; }
  .roster-actions button { width:100%; }
}

/* Atelier : conversation + Wiki intégré, sans voile modal. */
.workshop-tabs { display:none; gap:.5rem; margin:1rem 0 .5rem; }
.workshop-tabs button { flex:1 1 0; }
.workshop-tabs button[aria-selected="true"] { color:white; background:var(--blue); }
.workshop-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:1.25rem; align-items:start; }
.workshop-layout[data-wiki="open"] { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.workshop-layout[data-wiki="expanded"] { grid-template-columns:minmax(0,1fr); }
.workshop-layout[data-wiki="expanded"] #chat-panel { display:none; }
.wiki-panel { margin:0; }
.wiki-header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem; }
.wiki-header h2 { margin:.5rem 0; }
.wiki-actions { justify-content:flex-start; }
.wiki-reader { max-height:70vh; overflow:auto; padding:.25rem; border:1px solid var(--line); border-radius:10px; background:#fff; }
.workshop-layout[data-wiki="expanded"] .wiki-reader { max-height:70vh; overflow:auto; }
.wiki-fiche { max-width:70ch; }
.wiki-fiche p { overflow-wrap:anywhere; }
.knowledge-result { margin:.75rem 0; padding:.75rem; border:1px solid var(--line); border-radius:10px; }
.citations { margin:-.25rem 0 .5rem; display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; font-size:.9rem; }
.citations .citation { padding:.3rem .6rem; text-align:left; }
#wiki-notice:empty { display:none; }
#wiki-notice { padding:.5rem .75rem; border-left:4px solid var(--blue); background:var(--soft); }
@media (max-width:900px) {
  .workshop-tabs { display:flex; }
  .workshop-layout[data-wiki="open"],.workshop-layout[data-wiki="expanded"] { grid-template-columns:minmax(0,1fr); }
  .workshop-layout[data-wiki="open"] #chat-panel { display:none; }
  .workshop-layout[data-wiki="closed"] .wiki-panel { display:none; }
  .wiki-reader { max-height:65vh; overflow:auto; }
}

/* Cockpit formateur : nettoyage des contributions. */
.cleaning-card { margin:1rem 0; padding:1rem; border:1px solid var(--line); border-left:5px solid var(--blue); border-radius:12px; background:#fff; }
.cleaning-state { display:inline-block; padding:.2rem .6rem; border-radius:999px; font-weight:750; background:var(--soft); }
.cleaning-state.failed,.cleaning-state.manual { background:var(--warn); }
.cleaning-fields label { margin:.5rem 0; }
.cleaning-changes,.cleaning-concerns { padding-left:1.2rem; }
.cleaning-original { margin:.75rem 0; padding:.75rem; border:1px dashed #9aa8bd; border-radius:8px; background:#fafbfe; }
.approval-line { font-weight:750; }
.approval-line.stale { color:var(--danger); }
