.page-loading{width:100%;min-width:0;padding:18px 0;color:#64748b}
.page-loading-label{display:flex;align-items:center;gap:10px;margin:0 0 18px;font-size:14px;line-height:1.5}
.page-loading-label i{flex:0 0 16px;width:16px;height:16px;border:2px solid #dce6e4;border-top-color:#387b70;border-radius:50%;animation:page-loading-spin 1s linear infinite}
.page-loading-rows{display:grid;gap:14px}
.page-loading-row{display:flex;align-items:center;gap:20px;min-height:70px;padding:18px;border:1px solid #e8eeec;border-radius:12px;background:#fff}
.page-loading-row span{display:block;height:12px;flex:1;border-radius:5px;background:#e8eeec;animation:page-loading-pulse 1.7s ease-in-out infinite}
.page-loading-row span:first-child{flex:2;height:16px}.page-loading-row span:last-child{max-width:90px}
.attention-grid>.page-loading,.metrics>.page-loading{grid-column:1/-1}
.attention-grid>.page-loading,.metrics>.page-loading{padding:0}
:is(.attention-grid,.metrics)>.page-loading>.page-loading-rows{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
:is(.attention-grid,.metrics)>.page-loading .page-loading-row{display:grid;gap:12px;min-height:118px}
:is(.attention-grid,.metrics)>.page-loading .page-loading-row span{width:100%}
:is(.attention-grid,.metrics)>.page-loading .page-loading-row span:first-child{width:35%;height:24px}
.page-loading-error{width:100%;padding:18px;border:1px solid #e3d8c2;border-radius:12px;background:#fffaf0;color:#6d5730}
.page-loading-error p{margin:0 0 12px;line-height:1.5}.page-loading-error button{padding:9px 14px;border:1px solid #c9b993;background:#fff;border-radius:8px;color:inherit;font:inherit;cursor:pointer}
.process-loading-status{position:sticky;top:8px;z-index:5;padding:12px 18px;background:#f2f8f6;border:1px solid #dce6e4;border-radius:10px}.process-loading-status .page-loading-label{margin:0}
.process-loading-status>.page-loading{padding:0}
@keyframes page-loading-spin{to{transform:rotate(360deg)}}
@keyframes page-loading-pulse{50%{opacity:.45}}
@media(prefers-reduced-motion:reduce){.page-loading-label i,.page-loading-row span{animation:none}}
@media(max-width:600px){.page-loading-row{gap:12px;padding:14px}.page-loading-row span:last-child{display:none}}
@media(max-width:600px){:is(.attention-grid,.metrics)>.page-loading>.page-loading-rows{grid-template-columns:1fr}:is(.attention-grid,.metrics)>.page-loading .page-loading-row{min-height:95px}}
