/* One loading signature across the portal and its standalone applications. */
.cdi-bolt{
 --cdi-bolt-size:24px;
 display:inline-block;
 position:relative;
 width:var(--cdi-bolt-size);
 height:calc(var(--cdi-bolt-size) * .8);
 flex:none;
 vertical-align:middle;
 background:var(--cdi-loading-symbol,url("/design/brand/assets/logos/cdinnov-symbol.svg")) center/contain no-repeat;
 transform-origin:center;
 animation:none;
}
.cdi-bolt::after{
 content:"";
 display:none;
 position:absolute;
 inset:0;
 background:linear-gradient(112deg,transparent 38%,rgba(192,239,255,.5) 45%,#fff 50%,rgba(192,239,255,.5) 55%,transparent 62%) 130% 0/320% 100% no-repeat;
 -webkit-mask:var(--cdi-loading-symbol,url("/design/brand/assets/logos/cdinnov-symbol.svg")) center/contain no-repeat;
 mask:var(--cdi-loading-symbol,url("/design/brand/assets/logos/cdinnov-symbol.svg")) center/contain no-repeat;
 animation:cdi-bolt-flash 1.8s ease-in-out infinite;
}
/* Brand marks stay still. Only active in-app loading indicators shimmer. */
:is(.cdi-loading,.cdi-loading-screen,.bill-loading) .cdi-bolt::after{display:block}
.auth-brand-mark .cdi-bolt::after,.cdi-loading--auth .cdi-bolt::after{display:none}
.cdi-loading{
 display:flex;
 flex-direction:column;
 align-items:center;
 justify-content:center;
 gap:18px;
 min-height:200px;
 padding:32px 20px;
 box-sizing:border-box;
 text-align:center;
 color:var(--muted,#6e6e73);
 font:500 13px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.cdi-loading>.cdi-bolt{--cdi-bolt-size:68px}
.cdi-loading-label{max-width:100%;overflow-wrap:anywhere}
.cdi-loading--compact{display:inline-flex;flex-direction:row;min-height:0;padding:6px 0;gap:10px}
.cdi-loading--compact>.cdi-bolt{--cdi-bolt-size:24px}
.cdi-startup{min-height:70vh}
.auth-brand-mark{position:relative;width:100px;height:80px;margin:0 auto 20px}
.auth-card .auth-brand-mark .auth-logo{width:100%;height:100%;margin:0;object-fit:contain}
.auth-brand-mark .cdi-bolt{--cdi-bolt-size:100px;position:absolute;inset:0;display:none}
.auth-gate[data-loading="true"] .auth-brand-mark .auth-logo{opacity:0}
.auth-gate[data-loading="true"] .auth-brand-mark .cdi-bolt{display:block}
.auth-gate[data-loading="true"] .auth-card{
 width:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
}
.auth-gate[data-loading="true"] .auth-card>:not(.auth-brand-mark){display:none!important}
.auth-gate[data-loading="true"] .auth-brand-mark{margin:0}
.auth-gate:not([data-loading="true"]) .auth-startup-status{display:none}
.cdi-loading-screen{
 position:fixed;inset:0;z-index:10000;
 display:grid;place-items:center;
 background:var(--paper,#f5f5f7);
}
.cdi-loading-screen>.cdi-bolt{--cdi-bolt-size:100px}
.cdi-loading-sr{
 position:absolute;width:1px;height:1px;padding:0;margin:-1px;
 overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;
}
body:not(.authed)>.app{visibility:hidden}
body:has(.cdi-loading-screen) :is(.topbar,.sidebar),
body.cdi-sheets-app:has(.cdi-loading-screen)>.cdi-app-header{visibility:hidden}
[data-theme="dark"] .cdi-loading-screen{background:var(--paper,#161616)}
[data-theme="dark"] .cdi-loading{color:#a1a1a6}
@keyframes cdi-bolt-flash{
 0%,12%{background-position:130% 0;opacity:0}
 20%{opacity:1}
 48%,100%{background-position:-30% 0;opacity:0}
}
@media(prefers-reduced-motion:reduce){
 .cdi-bolt,.cdi-bolt::after{animation:none!important}
 .cdi-bolt::after{display:none!important}
}
@media print{
 .cdi-loading{display:none}
 .cdi-bolt,.cdi-bolt::after{animation:none!important}
}
