:root{--ruta-loading-bg:#15253e;--ruta-loading-accent:#89abff}
html[data-loading-panel=admin]{--ruta-loading-bg:#29253f;--ruta-loading-accent:#c0b4ff}
html[data-loading-panel=courier]{--ruta-loading-bg:#123b42;--ruta-loading-accent:#8adbd1}
#ruta-preloader{position:fixed;inset:0;z-index:2147483000;width:100%;height:100%;height:100dvh;box-sizing:border-box;display:grid;place-items:center;padding:24px;background:var(--ruta-loading-bg);color:#fff;font-family:system-ui,-apple-system,sans-serif;opacity:1;visibility:visible;transition:opacity .16s ease,visibility .16s;isolation:isolate;overscroll-behavior:contain;touch-action:none}
#ruta-preloader[data-visible=false]{opacity:0;visibility:hidden;pointer-events:none}
.ruta-preloader-content{display:flex;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:240px;text-align:center}
.ruta-preloader-brand{display:flex;align-items:center;gap:11px;font-size:38px;font-weight:800;letter-spacing:-2px;line-height:1}
.ruta-preloader-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#2858d6;transform:rotate(-7deg)}
.ruta-preloader-brand b{color:var(--ruta-loading-accent)}
.ruta-preloader-track{position:relative;width:144px;height:3px;overflow:hidden;border-radius:3px;background:#ffffff20}
.ruta-preloader-track:after{content:"";position:absolute;inset:0;background:var(--ruta-loading-accent);transform-origin:left;animation:ruta-loading 1.3s ease-in-out infinite}
.ruta-preloader-caption{font-size:13px;letter-spacing:.02em;color:#ffffffc9;margin:0}
@keyframes ruta-loading{0%{transform:translateX(-100%) scaleX(.35)}50%{transform:translateX(20%) scaleX(.55)}100%{transform:translateX(100%) scaleX(.35)}}
@media(prefers-reduced-motion:reduce){#ruta-preloader{transition:none}.ruta-preloader-track:after{animation:none;transform:scaleX(.5)}}

.ruta-navigation-loading{position:fixed;top:0;left:0;right:0;height:3px;z-index:2147482999;pointer-events:none;overflow:hidden;background:var(--ruta-loading-bg)}
.ruta-navigation-loading>span:first-child{display:block;height:100%;background:var(--ruta-loading-accent);transform-origin:left;animation:ruta-loading 1.3s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.ruta-navigation-loading>span:first-child{animation:none;width:50%}}
