/* Catalogue inspiré de mes-qcm-md ; couleurs et thème partagés avec TickéKit. */
[hidden] { display: none !important; }
.ticketest-page main { padding-block: 1rem 4rem; min-height: calc(100svh - 8rem); }
/* Comme TickéSite : footer fixe, avec son espace réservé sous le catalogue. */
html[data-view="catalogue"] body.ticketest-page { display:flex; flex-direction:column; min-height:100vh; min-height:100dvh; padding-bottom:var(--site-footer-height); }
html[data-view="catalogue"] .ticketest-page > main { flex:1; min-height:0; }
html[data-view="catalogue"] .ticketest-page > .site-header { flex-shrink:0; }
html[data-view="catalogue"] .ticketest-page > .site-footer { position:fixed; z-index:60; bottom:0; left:0; right:0; width:100%; margin:0; padding:.15rem max(1rem,calc((100% - var(--content-width))/2)) calc(.15rem + var(--site-footer-safe-bottom)); border-top-color:transparent; background:var(--color-background); }
html[data-view="catalogue"] .site-footer::before { content:""; position:absolute; top:-1px; left:max(1rem,calc((100% - var(--content-width))/2)); right:max(1rem,calc((100% - var(--content-width))/2)); border-top:1px solid var(--color-border); }
html[data-view="catalogue"] .footer-panel { width:min(23rem,calc(100vw - 2rem)); left:max(1rem,calc((100% - var(--content-width))/2)); }
html[data-view="catalogue"] .content-info-panel { left:auto; right:max(1rem,calc((100% - var(--content-width))/2)); }
html[data-view="catalogue"] .footer-control:focus-visible { outline-offset:-3px; }
.ticketest-page .brand { min-width: 0; }
.brand__text { display:flex; min-width:0; flex-direction:column; gap:.08rem; }
.ticketest-page .brand [data-blog-title] { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.3; overflow-wrap: anywhere; font-size: clamp(1rem, 1.4vw, 1.2rem); }
.ticketest-page .header-actions { flex-shrink: 0; }
.ticketest-page .site-header__inner { gap: .6rem; flex-direction:row; min-height:4.25rem; }
.catalogue-search-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.6rem; }
.search-field { min-width:0; }.select-field { flex: 1 1 12rem; min-width: 0; }
.catalogue-filter-panel { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:.65rem; padding:.85rem; border:1px solid var(--color-border); border-radius:.7rem; background:var(--color-surface); }
.catalogue-filter-state { display:flex; align-items:center; justify-content:space-between; gap:.65rem; margin-top:.4rem; }
.catalogue-filter-state p { min-width:0; margin:0; color:var(--color-muted); font-size:.8rem; overflow-wrap:anywhere; }
.catalogue-filter-state .button { flex-shrink:0; padding:.4rem .65rem; font-size:.8rem; }
.active-filter-count { display:inline-grid; place-items:center; min-width:1.4em; border-radius:1em; background:var(--color-primary); color:var(--color-on-primary); font-size:.8em; }
.catalogue-filters-toggle.has-active-filters { outline:1px solid var(--color-primary); outline-offset:-1px; }
.catalogue-controls label { display: block; margin-bottom: .35rem; font-size: .85rem; font-weight: 700; }
.catalogue-controls input, .catalogue-controls select { width: 100%; min-height: 44px; padding: .65rem .75rem; border: 1px solid var(--color-border); border-radius: .6rem; background: var(--color-background); color: var(--color-text); font: inherit; }
.catalogue-controls .button { min-height: 44px; }
.catalogue-count { color: var(--color-muted); font-size: .9rem; margin: .8rem 0 .6rem; }
.catalogue-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.1rem; }
.catalogue-section { margin-top:2rem; }
.catalogue-section:first-child { margin-top:0; }
.catalogue-section > h2 { margin:0 0 1rem; color:var(--color-primary-strong); font-size:1.5rem; overflow-wrap:anywhere; }
.activity-card { display: flex; flex-direction: column; align-items: start; min-width: 0; padding: 1.4rem; border: 1px solid var(--color-border); border-top: 4px solid var(--color-primary); border-radius: var(--radius); background: var(--color-surface); box-shadow: var(--shadow); }
.activity-card__labels { display: flex; gap: .35rem; flex-wrap: wrap; }
.activity-card h3 { margin: 1.1rem 0 1.6rem; font-size: 1.3rem; line-height: 1.35; }
.activity-card__labels:empty { display:none; }
.activity-card .button { margin-top: auto; min-height: 44px; }
.activity-card__actions { display:flex; align-items:center; gap:.6rem; margin-top:auto; width:100%; }
.activity-share-trigger { margin-left:auto; width:44px; padding:.5rem; }
/* Le dialogue natif garde le focus et rend l’arrière-plan inerte. */
.activity-share { width:min(30rem,calc(100% - 1.25rem)); max-width:100%; max-height:calc(100dvh - 1.25rem); margin:auto; padding:1.1rem; overflow:auto; overscroll-behavior:contain; border:1px solid var(--color-border); border-radius:var(--radius); color:var(--color-text); background:var(--color-surface); box-shadow:var(--shadow); }
.activity-share::backdrop { background:rgb(0 0 0 / .55); }
.share-header { display:flex; align-items:center; justify-content:space-between; gap:.7rem; }
.share-header h2 { margin:0; font-size:1.15rem; line-height:1.3; }
.share-header .button { flex-shrink:0; }
.share-activity-title { margin:.8rem 0; font-weight:bold; overflow-wrap:anywhere; }
.activity-share label { display:block; margin:.5rem 0 .3rem; font-size:.85rem; font-weight:bold; }
.share-link-row { display:flex; gap:.5rem; }
.activity-share :is(input,select) { min-width:0; width:100%; min-height:44px; border:1px solid var(--color-border); border-radius:.5rem; padding:.5rem; font:inherit; color:var(--color-text); background:var(--color-background); }
.share-link-row .button { flex-shrink:0; }
.activity-share .button { min-height:44px; }
.share-qr { display:grid; place-items:center; min-height:0; margin:.35rem auto; }
.share-qr img { display:block; width:min(15rem,100%); height:auto; aspect-ratio:1; background:white; }
.share-message { margin:.35rem 0; font-size:.85rem; line-height:1.4; overflow-wrap:anywhere; }
.share-message:empty { display:none; }
.activity-share [data-share-export-status] { color:var(--color-text); }
.activity-share [data-share-export-status][data-state="error"] { white-space:pre-line; }
.activity-share [data-share-export-status][data-state="success"], .share-status-icon { color:var(--color-primary-strong); }
.share-print { width:100%; margin-bottom:.5rem; }
.activity-share [data-share-export] { width:100%; margin-top:.6rem; }
#share-print-sheet { display:none; }
@page { size:A4 portrait; margin:10mm; }
@media print {
  html:has(body.share-printing), html:has(body.share-printing) body { width:auto !important; height:auto !important; min-height:0 !important; overflow:visible !important; background:white !important; }
  body.share-printing { margin:0 !important; padding:0 !important; }
  body.share-printing > :not(#share-print-sheet) { display:none !important; }
  body.share-printing #share-print-sheet { display:grid !important; grid-template-columns:repeat(5,minmax(0,1fr)); grid-template-rows:repeat(7,minmax(0,1fr)); gap:3mm; width:190mm; height:270mm; margin:0; padding:0; break-inside:avoid; }
  .share-print-cell { display:grid; place-items:center; min-width:0; min-height:0; }
  .share-print-cell img { display:block; width:33mm; height:33mm; max-width:100%; object-fit:contain; }
}
.activity-player { display:block; width:100%; height:100%; border:0; background:var(--color-background); }
/* MathJax doit pouvoir mesurer le lecteur avant son premier affichage (Firefox). */
.activity-player[hidden] { display:block !important; visibility:hidden; }
/* Un seul état d'attente, de la configuration jusqu'au contenu prêt. */
.ticketest-page #status:not(.loading-panel--error) { border-color:transparent; background:transparent; }
.ticketest-page #status[data-loading="true"] { position:fixed; inset:0; z-index:1; min-height:0; border:0; border-radius:0; background:var(--color-background); }
.ticketest-loading-visual { display:grid; place-items:center; width:clamp(88px,20vw,112px); height:clamp(88px,20vw,112px); flex:0 0 auto; animation:loading-visible 0s .12s both; }
.ticketest-loading-visual img { display:block; width:100%; height:100%; object-fit:contain; }
#status [data-loading-text] { margin:0; color:var(--color-text); }
.loading-text-test { display:none; }
:root[data-view="activity"] .loading-text-page { display:none; }
:root[data-view="activity"] .loading-text-test { display:inline; }
@keyframes loading-visible { from { visibility:hidden; } to { visibility:visible; } }
body.ticketest-page[data-config-loading] { background:var(--color-background); color-scheme:inherit; }
body.ticketest-page[data-config-loading] > #contenu { display:block !important; position:fixed; inset:0; width:100%; height:100dvh; margin:0; padding:0; }
body.ticketest-page[data-config-loading] #contenu > :not(#status) { display:none !important; }
body.ticketest-page[data-config-loading] #status { height:100%; border:0; border-radius:0; }
/* La consultation est un viewport dédié ; les règles du catalogue restent intactes. */
html[data-view="activity"], html[data-view="activity"] body { width:100%; height:100%; overflow:hidden; scroll-padding:0; }
html[data-view="activity"] body > .site-header,
html[data-view="activity"] body > .site-footer,
html[data-view="activity"] body > .skip-link { display:none !important; }
html[data-view="activity"] #contenu { position:fixed; inset:0; width:100%; height:100vh; height:100dvh; min-height:0; margin:0; padding:0; outline:none; }
html[data-view="activity"] #activity, html[data-view="activity"] #player-host { width:100%; height:100%; margin:0; padding:0; }
html[data-view="activity"] #status { position:absolute; z-index:1; inset:0; min-height:0; border:0; border-radius:0; background:var(--color-background); }
.ticketest-page .empty-results { grid-column:1/-1; background:var(--color-surface); }
.ticketest-page .empty-results h2 { font-size:1.4rem; color:var(--color-text); }
.ticketest-page :focus-visible { outline:3px solid var(--color-primary); outline-offset:3px; }
@media(max-width:850px) { .catalogue-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:550px) {
  .ticketest-page main { width:calc(100% - 1.25rem); padding-top:1rem; }
  .ticketest-page .site-header__inner { width:calc(100% - 1.25rem); }
  .ticketest-page .brand { gap:.4rem; }.ticketest-page .brand__logo { width:2rem; height:2rem; }
  .ticketest-page .header-actions { gap:.35rem; }.ticketest-page .icon-button { width:44px; min-height:44px; }
  .catalogue-grid { grid-template-columns:minmax(0,1fr); }
  .ticketest-page .site-header__inner { min-height:3.75rem; }
  .catalogue-filter-panel { padding:.75rem; }
  .catalogue-filter-panel > * { flex-basis:100%; }
}
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
