/* Local, quiet progress. Each report owns its indicator and its geometry. */
body[data-load-design='on']{--load-ink:#43586d;--load-track:#e5eaf0;--load-fill:#6583a0}
body[data-load-design='on'] .loading-bar{background:var(--load-track);border-radius:999px;height:3px;box-shadow:none;overflow:hidden}
body[data-load-design='on'] .loading-bar>span{background:var(--load-fill);animation:cdx-load-sweep 1.7s ease-in-out infinite}
@keyframes cdx-load-sweep{from{transform:translateX(-110%)}to{transform:translateX(310%)}}
body[data-load-design='on'] :is(.loading-state,[data-loading='true'])::before,
body[data-load-design='on'] .performance-page[aria-busy='true'] .performance-status::before,
body[data-load-design='on'] .users-page[aria-busy='true'] .users-save [role='status']::before,
body[data-load-design='on'] form[aria-busy='true'] button:not([type='button']):not([type='reset'])::before,
body[data-load-design='on'] [aria-busy='true']>.returns-chart-state::before{height:3px;background:linear-gradient(90deg,var(--load-track),var(--load-fill),var(--load-track));background-size:250% 100%;animation:chilldex-loading-state 1.7s ease-in-out infinite alternate}
body[data-load-design='on'] form[aria-busy='true'] button:is([type='button'],[type='reset']):not([data-loading='true'])::before{display:none}
/* A positioned, clipped report is the only containing block. No viewport
   offsets, floating cards, sticky percentage positions or document-top bars. */
body[data-load-design='on'] #app [data-report-frame]{isolation:isolate}
body[data-load-design='on'] #app [data-report-frame]>.report-frame-progress{display:none;position:absolute;inset:0;top:0;bottom:0;left:0;right:0;float:none;inline-size:100%;block-size:100%;width:100%;height:100%;margin:0;padding:12px;box-sizing:border-box;align-items:center;justify-content:center;overflow:hidden;pointer-events:none;z-index:5}
body[data-load-design='on'] #app [data-report-busy='true']>.report-frame-progress{display:flex}
body[data-load-design='on'] .cdx-load-card{display:inline-grid;gap:10px;box-sizing:border-box;width:min(248px,100%);padding:12px 16px;border:0;border-radius:8px;background:#fffefb;box-shadow:none;color:var(--load-ink);font:400 12px/1.4 system-ui,sans-serif;text-align:left;vertical-align:top;pointer-events:none}
body[data-load-design='on'] .cdx-load-heading{display:flex;align-items:center;gap:12px;justify-content:space-between;min-width:0}
body[data-load-design='on'] .cdx-load-title{font-size:12px;font-weight:600;min-width:0}
body[data-load-design='on'] .cdx-load-measure{flex:none;text-align:right;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;color:var(--load-ink)}
body[data-load-design='on'] .cdx-load-measure:empty,body[data-load-design='on'] .cdx-load-detail:empty{display:none}
body[data-load-design='on'] #app .cdx-load-track{display:block;width:100%;height:3px;margin:0;box-shadow:none}
body[data-load-design='on'] .cdx-load-detail{display:block;color:#718094;font-size:11px;line-height:1.5;overflow-wrap:anywhere}
body[data-load-design='on'] .cdx-load-track[data-determinate='true']>span{width:var(--load-progress);transform:none;animation:none;transition:width .2s ease-out}
body[data-load-design='on'] .cdx-load-track[data-determinate='true'][data-active='true']>span{background:linear-gradient(90deg,#6583a0,#a6bccd,#6583a0);background-size:200% 100%;animation:chilldex-loading-state 2s ease-in-out infinite alternate}
body[data-load-design='on'] #app .report-links-progress{position:sticky;float:right;top:8px;right:8px;width:min(260px,100%);height:0;z-index:5;text-align:right;pointer-events:none}
body[data-load-design='on'] #app .report-links-progress[hidden]{display:none}
body[data-load-design='on'] .cdx-load-compact{width:100%;padding:10px 12px;gap:7px;border:1px solid #e1e6eb;border-radius:8px;background:#fff}
body[data-load-design='on'] .cdx-download-progress{position:relative;display:inline-block;width:0;height:0;z-index:15;vertical-align:bottom}
body[data-load-design='on'] .cdx-download-progress>.cdx-load-card{position:absolute;right:0;top:8px;width:min(260px,80vw);transform:translateX(var(--load-offset,0px));box-shadow:0 4px 14px #2233440c}
body[data-load-design='on'] #app [data-report-busy='true'] .loading-state,
body[data-load-design='on'] .performance-page[aria-busy='true'] .performance-status[data-report-relocated],
body[data-load-design='on'] .stock-page:has([data-report-busy='true'] #rows) #info,
body[data-load-design='on'] .sales-page:has(#sales-loading-bar:not([hidden])) #sales-note{visibility:hidden}
body[data-load-design='on'] .cdx-load-card .background-load-hint,body[data-load-design='on'] #app .report-frame-progress>.background-load-hint{display:none}
body[data-load-design='on'] .cdx-load-note{color:#718094;font-size:10px}
/* The table/chart owns this request; the old page-level line has no visual role. */
body[data-load-design='on'] #app .sales-overview-block .loading-line:has([data-report-relocated]:not([hidden])){display:none!important}
body[data-load-design='on'] .background-job-status{font-variant-numeric:tabular-nums}
body[data-load-design='on'] #avatar[data-load-busy='true']::before{border-color:var(--load-track);border-top-color:var(--load-fill);border-right-color:var(--load-fill);animation-duration:1.8s}
body[data-load-design='on'] .preview-login-loading{background:var(--load-track);height:3px}
body[data-load-design='on'] .preview-login-loading::after{background:var(--load-fill);animation-duration:1.8s}
/* A short/empty status must not jump between the button row and a new row. */
@media(max-width:600px){body[data-load-design='on'] #app .cdx-marketing-apply-tools #cdx-marketing-status{flex-basis:100%;min-inline-size:0}}
@media(prefers-reduced-motion:reduce){body[data-load-design='on'] .loading-bar>span,body[data-load-design='on'] :is(.loading-state,[data-loading='true'])::before,body[data-load-design='on'] #avatar::before,body[data-load-design='on'] .preview-login-loading::after,body[data-load-design='on'] form[aria-busy='true'] button::before{animation:none!important;transition:none!important}body[data-load-design='on'] .loading-bar:not([data-determinate='true'])>span{transform:translateX(80%)}}
