/* The original SVG signature is the mask; no replacement font or brand paths. */
.boot-loader {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: grid;
    place-items: center;
    padding: max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));
    background: var(--idigis-bg);
    color: var(--idigis-text-soft);
    opacity: 1;
    transition: opacity 240ms ease-out;
}
.boot-loader__content { display: grid; justify-items: center; gap: 24px; width: min(280px, 100%); text-align: center; }
.boot-loader__brand { display: block; width: 100%; height: auto; overflow: hidden; }
.boot-loader__neutral { filter: grayscale(1); opacity: .24; }
.boot-loader__signature--dark { display: none; }
[data-theme="dark"] .boot-loader__signature--light { display: none; }
[data-theme="dark"] .boot-loader__signature--dark { display: inline; }
.boot-loader__liquid {
    transform-box: view-box;
    transform: translateY(calc(110% - var(--blazor-load-percentage, 0%) * 1.2));
    transition: transform 360ms cubic-bezier(.22, .61, .36, 1);
}
.boot-loader__wave { transform-box: view-box; }
.boot-loader__wave--back { fill: white; opacity: .4; animation: boot-wave-back 4.8s linear infinite; }
.boot-loader__wave--front { fill: white; opacity: 1; animation: boot-wave-front 3.2s linear infinite; }
.boot-loader[data-mode="indeterminate"] .boot-loader__liquid { animation: boot-await-progress 3.8s ease-in-out infinite alternate; }
.boot-loader.is-complete .boot-loader__liquid { animation: none; transform: translateY(-12%); transition-duration: 520ms; }
.boot-loader.is-leaving { opacity: 0; pointer-events: none; }
.boot-loader.is-failed .boot-loader__liquid,
.boot-loader.is-failed .boot-loader__wave { animation: none; }
.boot-loader__status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; margin: 0; font-family: var(--idigis-font-family); font-size: 14px; font-weight: 400; line-height: 1.5; }
.boot-loader.is-failed .boot-loader__status { position: static; width: auto; height: auto; overflow: visible; clip-path: none; white-space: normal; }
.boot-loader__retry { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--idigis-border); border-radius: var(--idigis-radius-sm); color: var(--idigis-primary); font-family: var(--idigis-font-family); font-size: 14px; }
.boot-loader__retry[hidden] { display: none; }
.boot-loader__retry:focus-visible { outline: 2px solid var(--idigis-primary); outline-offset: 3px; }
@keyframes boot-wave-front { from { transform: translateX(0); } to { transform: translateX(-187px); } }
@keyframes boot-wave-back { from { transform: translateX(-187px); } to { transform: translateX(0); } }
/* A reversible, unnumbered waiting state, never a simulated completion timer. */
@keyframes boot-await-progress { from { transform: translateY(54%); } to { transform: translateY(42%); } }
@media (prefers-reduced-motion: reduce) {
    .boot-loader { transition: none; }
    .boot-loader .boot-loader__liquid { animation: none; transition: none; }
    .boot-loader .boot-loader__wave { animation: none; }
    .boot-loader[data-mode="indeterminate"] .boot-loader__liquid { animation: none; transform: translateY(48%); }
    .boot-loader.is-complete .boot-loader__liquid { transform: translateY(-12%); }
}
