/* Questions étudiant ↔ équipe d'un cours */
.chat-filter { display: flex; align-items: center; gap: .6rem; margin-bottom: 1rem; } .chat-filter .select { max-width: 24rem; }
.ticket-list { padding: 0; overflow: hidden; }
.ticket-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; color: inherit; border-bottom: 1px solid var(--border); }
.ticket-row:last-child { border-bottom: 0; } .ticket-row:hover { background: var(--primary-soft); text-decoration: none; }
.ticket-row.is-pending { background: #fffbeb; } .ticket-row.is-pending:hover { background: var(--primary-soft); }
.ticket-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .1rem; }
.ticket-subject { overflow-wrap: anywhere; }
.ticket-preview { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ticket-side { display: flex; flex-direction: column; align-items: flex-end; gap: .25rem; white-space: nowrap; }
.ticket-thread { display: flex; flex-direction: column; gap: .75rem; margin-bottom: 1rem; }
.ticket-post { padding: 1rem 1.1rem; } .ticket-post.is-team { border-left: 4px solid var(--primary); } .ticket-post.is-deleted { opacity: .75; }
.ticket-post-head { display: flex; align-items: center; gap: .65rem; margin-bottom: .6rem; }
.ticket-post-body p { margin: 0 0 .5rem; overflow-wrap: anywhere; } .ticket-post footer { margin-top: .5rem; }
.ticket-form .select, .ticket-form .input, .ticket-form .textarea { max-width: 40rem; width: 100%; }
.ticket-reply textarea { width: 100%; resize: vertical; }
.chat-legacy { margin-top: 1.25rem; padding: 1rem; } .chat-legacy summary { cursor: pointer; font-weight: 600; }
.chat-legacy li { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; }
.chat-file { display: inline-flex; align-items: center; gap: .4rem; margin-top: .25rem; padding: .35rem .65rem; border: 1px dashed var(--border); border-radius: 10px; background: var(--surface); color: var(--text); overflow-wrap: anywhere; }
.chat-file:hover { border-color: var(--primary); text-decoration: none; } .chat-file small { color: var(--muted); }
.chat-del { display: inline; } .link-btn { background: none; border: 0; padding: 0; color: var(--muted); cursor: pointer; font: inherit; text-decoration: underline; } .link-btn:hover { color: var(--danger); }
@media (max-width: 640px) { .ticket-row { flex-direction: column; } .ticket-side { flex-direction: row; align-items: center; flex-wrap: wrap; } }

/* Anciens échanges (lecture seule) */
.chat { display: flex; flex-direction: column; gap: .75rem; padding: 1rem; }
.chat-log { display: flex; flex-direction: column; gap: .6rem; }
.chat-msg { display: flex; flex-direction: column; max-width: 78%; }
.chat-msg.is-mine { align-self: flex-end; align-items: flex-end; } .chat-msg.is-theirs { align-self: flex-start; }
.chat-bubble { padding: .5rem .8rem; border-radius: 14px; background: var(--surface); border: 1px solid var(--border); overflow-wrap: anywhere; white-space: pre-wrap; }
.chat-msg.is-mine .chat-bubble { background: var(--primary); border-color: var(--primary); color: #fff; }
.chat-msg.is-mine .chat-file { align-self: flex-end; } .chat-time { margin-top: .15rem; }
.chat-gone { font-style: italic; color: var(--muted); background: transparent; border-style: dashed; }
.chat-msg.is-mine .chat-gone { background: transparent; color: var(--muted); border-color: var(--border); }
@media (max-width: 640px) { .chat-msg { max-width: 92%; } }
