.speaking-preparation-timer-wrapper.speaking-preparation-finished {
    color: var(--bs-warning-text-emphasis);
}

.speaking-mic-status-btn {
    line-height: 1;
    text-decoration: none;
}

.speaking-mic-status-btn:hover,
.speaking-mic-status-btn:focus-visible {
    text-decoration: none;
    opacity: 0.85;
}

.speaking-question {
    scroll-margin-block-start: 8rem;
}

.speaking-question-image {
    max-block-size: 28rem;
    object-fit: cover;
}

.speaking-recording-image {
    max-block-size: 22rem;
    object-fit: contain;
}

.speaking-recording-question-title {
    font-size: 1rem;
    line-height: 1.4;
}

.speaking-question.is-active {
    border-inline-start: 0.35rem solid var(--bs-success);
    padding-inline-start: 1rem;
}

.speaking-wave {
    display: block;
    inline-size: 100%;
    max-inline-size: 20rem;
    block-size: auto;
    margin-inline: auto;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    background: linear-gradient(180deg, rgba(13, 110, 253, 0.08) 0%, rgba(25, 135, 84, 0.12) 100%);
}

.speaking-wave.speaking-wave--compact {
    max-inline-size: 12rem;
    block-size: 1.75rem;
    border: none;
    border-radius: 0;
    background: transparent;
    opacity: 0.7;
}

.speaking-recording-timer {
    font-size: clamp(1.25rem, 4vw, 1.75rem);
    font-weight: 600;
    line-height: 1;
}

.speaking-status-badge[data-status='preparation'],
.speaking-status-badge[data-status='active'] {
    background-color: var(--bs-primary) !important;
}

.speaking-status-badge[data-status='skipped'] {
    background-color: var(--bs-secondary) !important;
}

.speaking-status-badge[data-status='finished'] {
    background-color: var(--bs-success) !important;
}

.speaking-dialog-subtitles {
    max-block-size: 16rem;
    overflow-y: auto;
    text-align: start;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    background: var(--bs-body-bg);
}

.speaking-dialog-subtitles-turn {
    margin-block-end: 0.5rem;
    line-height: 1.45;
    font-size: 0.95rem;
}

.speaking-dialog-subtitles-turn:last-child {
    margin-block-end: 0;
}

.speaking-dialog-subtitles-turn--examiner {
    color: var(--bs-secondary-color);
}

.speaking-dialog-subtitles-turn--user {
    color: var(--bs-body-color);
}

.speaking-dialog-subtitles-turn-label {
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    margin-inline-end: 0.35rem;
    letter-spacing: 0.04em;
    opacity: 0.75;
}

.speaking-dialog-banner {
    font-size: 0.875rem;
}

.speaking-dialog-subtitles {
    max-block-size: 18rem;
    overflow-y: auto;
    text-align: start;
    padding: 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    margin-block-start: 0.5rem;
}

.speaking-dialog-turn {
    margin-block-end: 0.5rem;
    font-size: 0.95rem;
    line-height: 1.4;
}

.speaking-dialog-turn-speaker {
    font-weight: 600;
}

.speaking-dialog-turn--examiner .speaking-dialog-turn-speaker {
    color: var(--bs-primary);
}

.speaking-dialog-turn--user .speaking-dialog-turn-speaker {
    color: var(--bs-success);
}

.speaking-dialog-gender-strip {
    background-color: var(--bs-body-bg);
}

.speaking-dialog-gender-strip__inner {
    min-block-size: 2.75rem;
}

.speaking-dialog-gender-strip__lines {
    font-size: 0.95rem;
    line-height: 1.4;
}

.speaking-dialog-gender-strip__line {
    text-align: center;
}

.speaking-dialog-gender-strip__separator {
    margin-inline: 0.15rem;
}

.speaking-dialog-gender-select {
    inline-size: auto;
    min-inline-size: 7.5rem;
    max-inline-size: 9rem;
}

.speaking-dialog-gender-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    text-decoration: none;
}

.speaking-dialog-gender-toggle:hover,
.speaking-dialog-gender-toggle:focus-visible {
    text-decoration: none;
}

@media (max-width: 767.98px) {
    .speaking-dialog-gender-strip__line {
        inline-size: 100%;
    }

    .speaking-dialog-gender-select:not(.d-none) {
        inline-size: 100%;
        max-inline-size: none;
    }

    .speaking-dialog-gender-toggle {
        inline-size: 100%;
        justify-content: center;
    }
}
