:root {
  --bg: var(--tg-theme-bg-color, #ffffff);
  --texte: var(--tg-theme-text-color, #1d2330);
  --doux: var(--tg-theme-hint-color, #6b7280);
  --lien: var(--tg-theme-link-color, #2563eb);
  --carte: var(--tg-theme-secondary-bg-color, #f3f4f6);
  --bouton: var(--tg-theme-button-color, #2563eb);
  --bouton-texte: var(--tg-theme-button-text-color, #ffffff);
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--bg); color: var(--texte); font: 15px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
header { position: sticky; top: 0; background: var(--bg); padding: 12px 14px 8px; z-index: 2; border-bottom: 1px solid var(--carte); }
h1 { font-size: 20px; margin: 0 0 8px; }
#q { width: 100%; padding: 10px 12px; border-radius: 10px; border: none; background: var(--carte); color: var(--texte); font-size: 16px; }
#filtres { display: flex; gap: 6px; overflow-x: auto; padding: 8px 0 2px; scrollbar-width: none; }
#filtres button { flex: none; border: none; border-radius: 14px; padding: 5px 11px; background: var(--carte); color: var(--texte); font-size: 13px; }
#filtres button.actif { background: var(--bouton); color: var(--bouton-texte); }
.etat { color: var(--doux); padding: 8px 14px; margin: 0; font-size: 13px; }
#liste { list-style: none; margin: 0; padding: 0 0 40px; }
#liste li { display: flex; gap: 10px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--carte); cursor: pointer; }
#liste li:active { background: var(--carte); }
.icone { flex: none; width: 38px; height: 38px; border-radius: 8px; background: var(--carte); display: grid; place-items: center; font-size: 11px; font-weight: 700; color: var(--doux); text-transform: uppercase; }
.icone.pdf { color: #dc2626; } .icone.mp4, .icone.mp3 { color: #7c3aed; } .icone.md { color: #059669; }
.infos { min-width: 0; flex: 1; }
.titre { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sous { color: var(--doux); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#visionneuse { position: fixed; inset: 0; background: var(--bg); display: flex; flex-direction: column; z-index: 5; }
.barre { display: flex; align-items: center; gap: 8px; padding: 10px; border-bottom: 1px solid var(--carte); }
.barre button { border: none; background: none; color: var(--lien); font-size: 15px; padding: 4px 6px; }
#v-titre { flex: 1; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; }
.meta { color: var(--doux); font-size: 12px; padding: 4px 12px; }
#v-corps { flex: 1; overflow: auto; -webkit-overflow-scrolling: touch; background: var(--carte); }
#v-corps canvas { display: block; margin: 8px auto; max-width: 100%; height: auto; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.15); }
#v-corps pre { white-space: pre-wrap; word-wrap: break-word; padding: 14px; margin: 0; font: 13px/1.5 ui-monospace, Menlo, monospace; background: var(--bg); min-height: 100%; }
#v-corps img, #v-corps video { display: block; max-width: 100%; margin: 10px auto; }
#v-corps audio { display: block; width: 92%; margin: 30px auto; }
.message { padding: 30px 20px; text-align: center; color: var(--doux); }
.message button { margin-top: 12px; border: none; border-radius: 10px; padding: 10px 16px; background: var(--bouton); color: var(--bouton-texte); font-size: 15px; }
