.progress-panel {
    border: 1px solid #90caf9;
    border-radius: 6px;
    margin: 12px 16px;
    background: #e3f2fd;
    overflow: hidden;

    .progress-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 10px 14px;
        background: #1976d2;
        color: #fff;
        font-size: 14px;
        font-weight: 500;

        .run-label { display: flex; align-items: center; gap: 6px; }
        .elapsed { font-size: 12px; opacity: 0.85; font-variant-numeric: tabular-nums; }
    }

    .table-list {
        padding: 8px 12px;
        max-height: 240px;
        overflow-y: auto;

        .table-row {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 4px 0;
            font-size: 13px;
            border-bottom: 1px solid #bbdefb;

            &:last-child { border-bottom: none; }

            .table-name  { flex: 1; font-weight: 500; color: #0d47a1; }
            .chunk-info  { color: #555; font-size: 11px; }
            .row-counts  { color: #333; font-size: 11px; font-variant-numeric: tabular-nums; }
            .status-icon { font-size: 14px; }
        }

        .waiting { color: #666; font-size: 13px; padding: 8px 0; }
    }

    .progress-footer {
        display: flex;
        gap: 20px;
        padding: 8px 14px;
        background: #bbdefb;
        font-size: 12px;
        color: #333;
        font-variant-numeric: tabular-nums;
    }

    .summary-bar {
        padding: 8px 14px;
        font-size: 13px;
        font-weight: 500;

        &.success { background: #e8f5e9; color: #2e7d32; }
        &.failed  { background: #ffebee; color: #c62828; }
        &.partial { background: #fff8e1; color: #f57f17; }

        .error-detail {
            display: block;
            font-size: 11px;
            font-weight: 400;
            margin-top: 4px;
            color: #b71c1c;
        }
    }

    .spinner {
        display: inline-block;
        width: 14px;
        height: 14px;
        border: 2px solid rgba(255,255,255,0.4);
        border-top-color: #fff;
        border-radius: 50%;
        animation: spin 0.8s linear infinite;
    }

    @keyframes spin { to { transform: rotate(360deg); } }
}
