/* Espejo mínimo de DESIGN.md, como el prearranque de Admisión.
   MudThemeProvider todavía no existe durante la descarga de WebAssembly.
   La tipografía y los radios provienen de los tokens compartidos de Ubot.UI. */
:root {
    --preboot-bg: #f5f5f5;
    --preboot-ink: #1a1a1a;
    --preboot-ink-secondary: #555555;
    --preboot-primary: #3399ff;
    --preboot-divider: #e0e0e0;
}
html.theme-dark {
    --preboot-bg: #1a1a1a;
    --preboot-ink: #e0e0e0;
    --preboot-ink-secondary: #b0b0b0;
    --preboot-primary: #267cd1;
    --preboot-divider: #3a3a3a;
}
body { margin: 0; background: var(--mud-palette-background, var(--preboot-bg)); }
.boot-screen {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    overflow: auto;
    color: var(--mud-palette-text-primary, var(--preboot-ink));
    background: var(--mud-palette-background, var(--preboot-bg));
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    line-height: 1.5;
    transition: opacity 200ms ease;
}
.boot-screen * { box-sizing: border-box; }
.boot-screen.is-ready { opacity: 0; pointer-events: none; }
.boot-main {
    width: min(100%, 512px);
    margin: auto;
    padding: max(32px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(32px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
    text-align: center;
}
.boot-logo { display: block; margin: 0 auto 16px; border-radius: 50%; }
.boot-main h1 { margin: 0; font-size: var(--font-headline); font-weight: 800; line-height: 1.35; }
.boot-description { margin: 16px 0 32px; color: var(--mud-palette-text-secondary, var(--preboot-ink-secondary)); font-size: var(--font-body); }
.boot-spinner {
    width: 48px;
    height: 48px;
    margin: auto;
    border: 4px solid var(--mud-palette-lines-default, var(--preboot-divider));
    border-top-color: var(--mud-palette-primary, var(--preboot-primary));
    border-radius: 50%;
    animation: boot-spin 1s linear infinite;
}
.boot-loading p { margin: 16px 0 0; color: var(--mud-palette-text-secondary, var(--preboot-ink-secondary)); font-size: var(--font-body-sm); }
.boot-loading a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin-top: 16px;
    padding: 8px 16px;
    border: 1px solid currentColor;
    border-radius: var(--app-border-radius-sm);
    color: var(--mud-palette-text-primary, var(--preboot-ink));
    font-size: var(--font-label);
    font-weight: 600;
    text-decoration: none;
    text-underline-offset: 8px;
}
.boot-loading a[hidden] { display: none; }
.boot-loading a:hover { background: var(--mud-palette-lines-default, var(--preboot-divider)); }
.boot-loading a:active { opacity: .8; }
.boot-loading a:focus-visible { outline: 2px solid var(--mud-palette-text-primary, var(--preboot-ink)); outline-offset: 8px; }
.boot-screen.has-error .boot-spinner { display: none; }
.boot-screen ::selection { background: var(--mud-palette-text-primary, var(--preboot-ink)); color: var(--mud-palette-background, var(--preboot-bg)); }
.boot-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0 16px;
    margin: -8px 0 24px;
}
.boot-links a {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    max-width: 100%;
    color: var(--mud-palette-text-primary, var(--preboot-ink));
    font-size: var(--font-label);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 8px;
    overflow-wrap: anywhere;
}
.boot-links a:hover { text-decoration-thickness: 2px; }
.boot-links a:focus-visible { outline: 2px solid var(--mud-palette-text-primary, var(--preboot-ink)); outline-offset: 8px; border-radius: var(--app-border-radius-xs); }
.boot-noscript { margin: 16px 0 0; color: var(--mud-palette-text-secondary, var(--preboot-ink-secondary)); font-size: var(--font-body-sm); }
@keyframes boot-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .boot-screen { transition: none; }
    .boot-spinner { animation: none; }
}
