:root{--bg: #fff;--panel: #f7f7f5;--ink: #16181d;--ink-soft: #55585f;--line: #d9d9d4;--line-strong: #b7b7b0;--live: #1f6b3a;--erreur: #9a2b23}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,Segoe UI,sans-serif;font-size:15px;color:var(--ink);background:var(--bg)}a{color:inherit}input,select,button,textarea{font:inherit;border:1px solid var(--line-strong);border-radius:2px;background:#fff;color:var(--ink)}input,select,button{padding:8px 12px;font-size:14px}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}button.ok{background:var(--live);color:#fff;border-color:var(--live);font-weight:600}button.ghost{background:#fff;color:var(--ink)}button.danger{color:var(--erreur);border-color:var(--erreur);background:#fff}.btn{display:inline-block;padding:10px 16px;border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:2px;font-weight:600;font-size:14px;text-decoration:none}.btn.ghost{background:#fff;color:var(--ink);border-color:var(--line-strong)}label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.err{color:var(--erreur);font-size:13px;margin-top:8px}.vide{color:var(--ink-soft);font-size:13px;padding:8px 0}.wrap{max-width:820px;margin:48px auto;padding:0 24px}.wrap.large{max-width:980px}.wrap h1{font-size:22px;margin:0 0 8px}.wrap .sub{color:var(--ink-soft);margin:0 0 28px;font-size:14px}.wrap h2.section{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:32px 0 8px}.card{border:1px solid var(--line-strong);border-radius:4px;padding:20px;margin-bottom:24px;background:var(--panel)}.bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.bar.espace{margin-top:24px}.list{list-style:none;padding:0;margin:0}.list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.list li:last-child{border-bottom:0}.list .nom{font-weight:600;display:flex;align-items:center;gap:8px}.list li.selectionnee{background:var(--panel);cursor:pointer}.list li:not(.vide){cursor:pointer}.list li:not(.vide):hover{background:#fafaf8}.list li.selectionnee:hover{background:var(--panel)}.dot-active{width:8px;height:8px;border-radius:50%;background:var(--live);flex-shrink:0}.list .meta{font-size:13px;color:var(--ink-soft)}.list .actions{display:flex;gap:8px;flex-wrap:wrap}.champ{flex:1;min-width:180px}.champ input{width:100%}textarea.prompt-area{width:100%;min-height:80px;padding:10px 12px;font-size:13px;line-height:1.45;font-family:ui-monospace,Cascadia Code,monospace;resize:vertical}.row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-bottom:8px;align-items:end}.row.setup-intervenant{grid-template-columns:1fr 1fr 100px 100px auto;align-items:end}.photo-intervenant .apercu-photo{display:block;width:72px;height:72px;object-fit:cover;border-radius:8px;margin-bottom:6px;background:var(--line)}.photo-intervenant .apercu-fond{display:block;width:72px;height:90px;object-fit:cover;border-radius:8px;margin-bottom:6px;background:var(--line)}.photo-intervenant input[type=file]{font-size:12px;max-width:100%}.tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:2px;padding:2px 6px;color:var(--ink-soft)}.tag.admin,.tag.live{color:var(--live);border-color:var(--live)}.tag.inactif{color:var(--erreur);border-color:var(--erreur)}header.header-cm{justify-content:space-between;flex-wrap:nowrap;padding:10px 20px}.designer-main{flex:1;min-height:0;display:flex;flex-direction:column}.designer-main>h2{margin:0;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);padding:12px 20px;border-bottom:1px solid var(--line);background:var(--panel);display:flex;gap:10px;align-items:center}.designer-main>h2 .compteur{margin-left:auto;font-weight:600;letter-spacing:0}.designer-scroll{flex:1;overflow-y:auto;padding:16px 20px;max-width:720px}.lock-msg{color:var(--erreur);font-size:11px;margin:0 0 6px}.citation-texte{margin:0;font-family:Georgia,serif;font-size:17px;line-height:1.45}.meta-soumis{margin:8px 0 0;font-size:12px;color:var(--ink-soft)}.carte.valide.soumis{border-color:var(--line-strong);opacity:.9}.carte.valide.soumis .head{background:var(--panel)}.carte.design.soumis{opacity:.85}.carte.design.prise{border-color:var(--ink-soft)}.app{display:flex;flex-direction:column;height:100%}header{border-bottom:2px solid var(--ink);padding:12px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}header .titre{font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.02em;padding-right:14px;border-right:1px solid var(--line-strong);max-width:280px}header .controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}header .droite{margin-left:auto;display:flex;align-items:center;gap:14px}header .lien{font-size:13px;color:var(--ink-soft);text-decoration:none}.speaker{background:#eef6f0;border-color:var(--live);font-weight:600;min-width:200px}.vu{width:140px;height:12px;border:1px solid var(--line-strong);position:relative;overflow:hidden}.vu>i{position:absolute;inset:0;width:0;background:var(--ink);transition:width .1s linear}.etat{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft)}.etat .dot{width:10px;height:10px;border-radius:50%;background:#8a8a83}.etat.live .dot{background:var(--live)}.etat.err .dot{background:var(--erreur)}.sync{display:inline-flex;align-items:center;gap:6px}.sync-nombre{font-weight:700;font-size:14px;color:var(--erreur);line-height:1}.dot-sync{width:9px;height:9px;border-radius:50%;flex-shrink:0;animation:sync-clignote 1.2s ease-in-out infinite}.sync.live .dot-sync{background:var(--live)}.sync.off .dot-sync{background:var(--erreur)}@keyframes sync-clignote{0%,to{opacity:1}50%{opacity:.25}}main.colonnes{display:grid;grid-template-columns:1fr 1fr;flex:1;min-height:0}.col{display:flex;flex-direction:column;min-height:0}.col+.col{border-left:1px solid var(--line)}.col h2{margin:0;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);padding:12px 20px;border-bottom:1px solid var(--line);background:var(--panel);display:flex;gap:10px;align-items:center}.col h2 .compteur{margin-left:auto;font-weight:600;letter-spacing:0}.col h2.transcript-entete{gap:12px}.transcript-actions{display:flex;gap:6px;flex-wrap:wrap}.btn-petit{font-size:11px;padding:3px 8px;letter-spacing:0;text-transform:none;font-weight:600}.scroll{overflow-y:auto;padding:16px 20px;flex:1}.transcript p{margin:0 0 10px;font-family:Georgia,serif;font-size:16px;-webkit-user-select:text;user-select:text}.transcript-aide{margin:-4px 0 10px;font-size:13px;color:var(--ink-soft)}.transcript .h{color:var(--ink-soft);font-size:12px;font-family:sans-serif;margin-right:8px;-webkit-user-select:none;user-select:none}.transcript .sp{font-size:11px;color:var(--live);font-weight:600;margin-right:6px;-webkit-user-select:none;user-select:none}.transcript .txt-enregistre{font-weight:700}.transcript p.source-surlignee{background:#fff8dc;box-shadow:inset 0 0 0 2px #ffd100;border-radius:4px;padding:6px 8px;margin-left:-8px;margin-right:-8px}.carte.source-active{box-shadow:inset 0 0 0 2px #ffd100}.citation-texte,.carte textarea{cursor:pointer}.live{margin-top:6px;font-family:Georgia,serif;font-size:16px;color:var(--ink-soft);border-left:3px solid var(--line-strong);padding-left:10px;min-height:1.5em}.carte{border:1px solid var(--line-strong);margin-bottom:16px;background:#fff;border-radius:2px}.carte.valide{border-color:var(--live)}.carte .head{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--ink-soft);padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel)}.carte.valide .head{background:#eef6f0}.carte .badge{margin-left:auto;font-weight:700;text-transform:uppercase}.carte .body{padding:12px}.carte textarea{width:100%;min-height:80px;font-family:Georgia,serif;font-size:17px;padding:10px;resize:vertical}.carte textarea:read-only{background:var(--panel)}.carte .actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.carte audio{width:100%;margin-top:8px;height:32px}.login{max-width:380px;margin:12vh auto;padding:0 24px}.login h1{font-size:20px;margin:0 0 4px}.login .sub{color:var(--ink-soft);font-size:14px;margin:0 0 24px}.login .card{background:var(--panel)}.login input{width:100%;margin-bottom:14px}.login button{width:100%}@media(max-width:900px){main.colonnes{grid-template-columns:1fr}.app{height:auto}}
