/* Scrolltool live loading trace. No decoration or artificial delay. */
.scroll-loader-indicator{--indicator-size:80px;position:relative;width:var(--indicator-size);height:6px;margin:16px auto 24px;overflow:hidden;border-radius:999px;background:#E4E9F0}
.scroll-loader-indicator::before{content:"";position:absolute;inset:0 auto 0 0;width:35%;border-radius:inherit;background:#CEFF15;animation:scroll-charge 1.4s ease-in-out infinite}
@keyframes scroll-charge{from{transform:translateX(-100%)}to{transform:translateX(290%)}}
@media(prefers-reduced-motion:reduce){.scroll-loader-indicator::before{animation:none;width:65%;transform:none}}
.portal-loader{position:fixed;inset:auto 24px 24px auto;z-index:10000;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);margin:0;padding:12px 20px;border:1px solid var(--color-border,#E4E9F0);border-radius:var(--radius-card,18px);background:var(--color-surface,#fff);color:var(--color-text,#000000);font:600 14px/1.4 var(--font-body,system-ui);box-shadow:var(--shadow-card,0 8px 24px #00000014);pointer-events:none;box-sizing:border-box}
.portal-loader[hidden]{display:none!important}.portal-loader::backdrop{background:transparent;pointer-events:none}
.portal-loader .scroll-loader-indicator{--indicator-size:48px;flex:none;margin:0}
.portal-loader span{overflow-wrap:anywhere}
.portal-inline-loader{display:grid;place-items:center;gap:12px}.portal-inline-loader .scroll-loader-indicator{margin:0}
@media(max-width:600px){.portal-loader{right:16px;bottom:calc(80px + env(safe-area-inset-bottom,0px));padding:8px 16px}}


.portal-material-loader{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:2;padding:24px;border-radius:18px;background:var(--color-surface,#fff);color:var(--color-text,#000000);font:14px/1.4 var(--font-body,system-ui);pointer-events:none}.portal-material-loader[hidden]{display:none}
