/* Empty, loading, and error states (#9) */

.data__data-box.cg-stats-panels {
    position: relative;
}

.cg-stats-panel-busy {
    position: absolute;
    inset: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(1px);
}

.cg-stats-panel-busy[hidden] {
    display: none !important;
}

.cg-stats-panel-busy__inner {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.9rem;
    border: 1px solid rgba(91, 82, 201, 0.22);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: var(--cg-shadow-md);
    font-family: var(--cg-font-sans);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--cg-brand);
}

.cg-chart-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 14rem;
    padding: 1.5rem 1.25rem;
    text-align: center;
}

.cg-chart-empty__title {
    margin: 0;
    font-family: var(--cg-font-sans);
    font-size: 1rem;
    font-weight: 700;
    color: var(--cg-navy-900);
}

.cg-chart-empty__text {
    margin: 0;
    max-width: 24rem;
    font-family: var(--cg-font-sans);
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--cg-text-soft);
}

.cg-status-chip--error {
    border-color: rgba(198, 74, 58, 0.35);
    background: rgba(255, 248, 246, 0.98);
    color: #8f2f22;
    gap: 0.45rem;
}

.cg-status-chip--error[hidden] {
    display: none !important;
}

.cg-status-error__retry,
.cg-summary__retry {
    appearance: none;
    margin: 0;
    padding: 0.18rem 0.55rem;
    border: 1px solid rgba(198, 74, 58, 0.35);
    border-radius: 999px;
    background: var(--cg-white);
    font-family: var(--cg-font-sans);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    color: #8f2f22;
    cursor: pointer;
}

.cg-status-error__retry:hover,
.cg-status-error__retry:focus-visible,
.cg-summary__retry:hover,
.cg-summary__retry:focus-visible {
    background: rgba(198, 74, 58, 0.08);
    outline: none;
}

.cg-summary__error {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    min-height: 12rem;
    padding: 1.5rem 1rem;
    text-align: center;
}

.cg-summary__error[hidden] {
    display: none !important;
}
