/* ============================================================================
   app.css — Lo que necesita Blazor WebAssembly para arrancar: la carga
   inicial y el aviso de error. Con los colores del sistema de diseño.
   ========================================================================== */

h1:focus { outline: none; }

#blazor-error-ui {
    display: none;
    position: fixed;
    inset: auto 0 0 0;
    z-index: 1000;
    padding: 12px 44px calc(12px + env(safe-area-inset-bottom, 0px)) 16px;
    background: var(--ms-danger);
    color: #FFFFFF;
    font-weight: 600;
}

#blazor-error-ui .reload { color: inherit; text-decoration: underline; }

#blazor-error-ui .dismiss {
    position: absolute;
    top: 10px;
    right: 14px;
    cursor: pointer;
}

.blazor-error-boundary {
    padding: 12px 16px;
    border-radius: var(--ms-radius);
    background: var(--ms-danger-bg);
    color: var(--ms-danger);
}

.blazor-error-boundary::after { content: "Ha ocurrido un error."; }

.loading-progress {
    position: absolute;
    display: block;
    width: 6rem;
    height: 6rem;
    inset: 30vh 0 auto 0;
    margin: 0 auto;
}

.loading-progress circle {
    fill: none;
    stroke: var(--ms-surface-3);
    stroke-width: 0.5rem;
    transform-origin: 50% 50%;
    transform: rotate(-90deg);
}

.loading-progress circle:last-child {
    stroke: var(--ms-brand);
    stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
    transition: stroke-dasharray 0.05s ease-in-out;
}

.loading-progress-text {
    position: absolute;
    inset: calc(30vh + 2.4rem) 0 auto 0;
    text-align: center;
    font-weight: 700;
    color: var(--ms-text-2);
}

.loading-progress-text::after { content: var(--blazor-load-percentage-text, "Cargando"); }
