/* Compartido por administración y portales; no bloquea las lecturas de pantalla. */
#loading { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.7); }
#loading.invisible { visibility: hidden; }
#navigation-loading { position: fixed; top: 1rem; right: 1rem; z-index: 1090; display: flex; gap: .6rem; align-items: center; max-width: calc(100vw - 2rem); padding: .65rem .9rem; border: 1px solid #e2e8f0; border-radius: .75rem; background: #fff; color: #344767; box-shadow: 0 3px 12px rgba(52,71,103,.12); font-family: inherit; font-weight: 500; font-size: .85rem; line-height: 1.4; pointer-events: none; }
#navigation-loading[hidden] { display: none; }
.klaso-loading-spinner { display: inline-block; width: 1rem; height: 1rem; flex-shrink: 0; border: 2px solid #e2e8f0; border-top-color: #344767; border-radius: 50%; animation: klaso-loading-spin .8s linear infinite; }
#loading .klaso-loading-spinner { width: 3rem; height: 3rem; }
.klaso-loading-sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@keyframes klaso-loading-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .klaso-loading-spinner { animation: none; } }
@media print { #loading, #navigation-loading { display: none !important; } }
