/* Transcription progress: label · percent, thin bar under (transcription-progress.js).
   Overrides the grey box of audio-player.css (a fingerprinted piece of the old
   styles.css, not edited); its spinner rules no longer match anything. */
.transcription-status {
    padding: 8px 0 4px;
    background: none;
    border-radius: 0;
}

.transcription-progress {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-2);
    font-size: var(--font-size-sm);
    color: var(--text-primary);
}

.transcription-pct {
    color: var(--text-tertiary);
    font-variant-numeric: tabular-nums;
}

.transcription-retry {
    border: 0;
    background: none;
    /* 44px to tap, without moving the row */
    padding: 13px 8px;
    margin: -13px -8px;
    font: inherit;
    color: var(--accent-blue);
    cursor: pointer;
}

.transcription-bar {
    position: relative;
    height: 3px;
    margin-top: 8px;
    border-radius: var(--radius-sm);
    background: var(--border-light);
    overflow: hidden;
}

.transcription-bar-fill {
    height: 100%;
    width: 0;
    border-radius: var(--radius-sm);
    background: var(--accent-blue);
    transition: width var(--duration-slow) var(--ease-in-out);
}

.transcription-bar.is-indeterminate .transcription-bar-fill {
    width: 35%;
    animation: transcription-glide 1.6s var(--ease-in-out) infinite;
}

@keyframes transcription-glide {
    from { transform: translateX(-100%); }
    to { transform: translateX(290%); }
}

@media (prefers-reduced-motion: reduce) {
    .transcription-bar.is-indeterminate .transcription-bar-fill { animation: none; transform: translateX(95%); }
}

.transcription-status-inline {
    width: 200px;
    margin: 48px auto;
}
