/* ballon de basket pendant un chargement : l'en-tête et les barres restent en place, seul le ballon tourne au milieu ; ne bloque jamais un clic */
#csef-spin{opacity:0;transition:opacity .18s}
#csef-spin.on{opacity:1}
#csef-spin .bl{background:rgba(255,255,255,.88);box-shadow:0 10px 30px rgba(0,0,0,.28)}
#csef-spin svg,.cball svg{animation:csefball .85s linear infinite}
@keyframes csefball{to{transform:rotate(360deg)}}
/* petit ballon à côté d'un texte « Chargement… » (le texte reste) */
.cball{display:inline-flex;align-items:center;gap:8px;vertical-align:middle;margin:4px}
.cball svg{display:block;width:28px;height:28px;flex:none}
.cball .ct{font-size:.95em;opacity:.8}
.cball.blk{display:flex;flex-direction:column;justify-content:center;gap:6px;margin:14px 0}
.cball.blk svg{width:34px;height:34px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) #csef-spin .bl{background:rgba(22,33,43,.9)}}
:root[data-theme="dark"] #csef-spin .bl{background:rgba(22,33,43,.9)}
@media (prefers-reduced-motion:reduce){#csef-spin svg,.cball svg{animation-duration:2.4s}}
@media print{#csef-spin{display:none!important}}
