/* Escaneo desde el celular — la parte que se ve en la PC (RazorLibrary/Web/_Shared/EscaneoBoton.razor)
 *
 * POR QUÉ ESTA HOJA EXISTE APARTE DE escaneo.css. Son dos pantallas distintas servidas de dos maneras
 * distintas: escaneo.css viste la página del celular, que WebApp/Endpoints/EscaneoEndpoints.cs sirve como
 * HTML plano fuera de Blazor y que linkea su hoja ella misma; esta viste un componente MudBlazor adentro de
 * la app, así que va en _Host.cshtml. Estuvieron en el mismo archivo hasta el 2026-09-20 y el resultado fue
 * un defecto de app entera: la hoja del celular declara `html`/`body` —correcto para una página suelta— y al
 * estar registrada en _Host.cshtml esas reglas le caían encima a TODA la app. Lo ataja
 * HojasDeEstiloSinReglasGlobalesTests; el detalle está en el encabezado de escaneo.css.
 */

/* ── El parpadeo de la barra de scroll del diálogo del QR (reportado y diagnosticado el 2026-09-19) ──
 *
 * SÍNTOMA: con el diálogo del QR abierto, la barra de scroll vertical de .mud-dialog-content aparecía y
 * desaparecía en loop. Paraba sola cuando llegaba el escaneo.
 *
 * CAUSA: el spinner indeterminado de MudBlazor corre DOS animaciones. La del <circle>
 * (mud-progress-circular-keyframes-circular-dash) anima stroke-dasharray y es pintura SVG recortada al
 * viewport del <svg>, así que no toca el layout. Pero la del <svg>
 * (mud-progress-circular-keyframes-circular-rotate) es un transform: rotate(), y un transform SÍ entra en el
 * área de desbordamiento del contenedor que scrollea — la spec de CSS Overflow define esa área como la unión
 * de las cajas TRANSFORMADAS. La caja envolvente de un cuadrado rotando 45° crece √2 veces, o sea unos ±5 px
 * arriba y abajo para un Size.Small, y vuelve al original, cada 1,4 s. Con el contenido del diálogo justo al
 * ras de su alto, eso cruzaba el umbral de overflow:auto en cada vuelta.
 *
 * POR QUÉ RECORTAR EN EL SPINNER Y NO EN OTRO LADO: corta la contribución en su origen y no depende del alto
 * del contenido ni del viewport, que es lo que hacía frágil a las dos alternativas obvias (achicar el QR, o
 * fijarle un alto al diálogo). Y no se pierde nada visible: lo que el transform saca fuera de la caja son las
 * esquinas vacías del cuadrado — el círculo va inscripto y es invariante a la rotación.
 *
 * Verificado antes de escribir esto: con `animation:none` sobre .mud-progress-circular el parpadeo para en
 * seco. Sin bUnit no hay forma de cubrirlo con un test; la red es el caso 15 de la hoja de QA.
 */
.escaneo-espera-spinner {
    display: flex;
    overflow: hidden;
}
