/* Shared live-reading geometry for recorder, signed-in viewer, and public replay. */
.transcript.transcript--editorial.transcript--reading-harmony {
    --live-time-column: 2.75em;
    --live-row-block-padding: 2px;
    --live-row-touch-min-height: 40px;
    --live-row-line-height: 1.78;
    --live-time-optical-offset: var(--reader-timestamp-optical-offset, 0.12em);
    --reading-topic-color: color-mix(in srgb, var(--color-text) 74%, var(--color-text-muted));
    scroll-behavior: auto;
}

.transcript.transcript--editorial.transcript--reading-harmony[data-reader-spacing="compact"] {
    --live-row-block-padding: 0px;
    --live-row-touch-min-height: 32px;
    --live-row-line-height: 1.62;
}

.transcript.transcript--editorial.transcript--reading-harmony[data-reader-spacing="default"] {
    --live-row-block-padding: 2px;
    --live-row-touch-min-height: 40px;
    --live-row-line-height: 1.78;
}

.transcript.transcript--editorial.transcript--reading-harmony[data-reader-spacing="relaxed"] {
    --live-row-block-padding: 5px;
    --live-row-touch-min-height: 48px;
    --live-row-line-height: 1.92;
}

.transcript.transcript--editorial.transcript--reading-harmony > .ungrouped {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Legacy editorial rails must not reappear when a surface adopts this contract. */
.transcript.transcript--editorial.transcript--reading-harmony > .paragraph::after,
.transcript.transcript--editorial.transcript--reading-harmony > .ungrouped::before,
.transcript.transcript--editorial.transcript--reading-harmony > .ungrouped::after,
.transcript.transcript--editorial.transcript--reading-harmony > .interim::before,
.transcript.transcript--editorial.transcript--reading-harmony > .interim::after {
    content: none !important;
    display: none !important;
    background: none !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph .sentence,
.transcript.transcript--editorial.transcript--reading-harmony > .ungrouped .sentence,
.transcript.transcript--editorial.transcript--reading-harmony > .interim {
    display: grid !important;
    grid-template-columns: var(--live-time-column) minmax(0, 1fr) !important;
    align-items: start !important;
    column-gap: var(--live-row-gap) !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: var(--live-row-block-padding) !important;
    padding-bottom: var(--live-row-block-padding) !important;
    line-height: var(--live-row-line-height) !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph .sentence__text,
.transcript.transcript--editorial.transcript--reading-harmony > .ungrouped .sentence__text,
.transcript.transcript--editorial.transcript--reading-harmony > .interim .interim__text {
    line-height: var(--live-row-line-height) !important;
}

.transcript.transcript--editorial.transcript--reading-harmony .sentence__translation {
    grid-column: 2;
    min-width: 0;
    margin-top: -0.08em;
    padding-bottom: 0.16em;
    color: color-mix(in srgb, var(--color-text) 68%, var(--color-text-muted));
    font-size: 0.82em;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

/* Timestamps can be absent in an in-flight or legacy snapshot. Never let the
   body auto-place into the narrow timestamp column in that state. */
.transcript.transcript--editorial.transcript--reading-harmony .sentence__text,
.transcript.transcript--editorial.transcript--reading-harmony .sentence__pre-polish-text {
    grid-column: 2;
}

.transcript.transcript--editorial.transcript--reading-harmony.hide-timestamps .sentence__text,
.transcript.transcript--editorial.transcript--reading-harmony.hide-timestamps .sentence__pre-polish-text {
    grid-column: 1;
}

.transcript.transcript--editorial.transcript--reading-harmony .sentence__translation--queued,
.transcript.transcript--editorial.transcript--reading-harmony .sentence__translation--pending {
    color: var(--color-text-muted);
    opacity: 0.58;
}

.transcript.transcript--editorial.transcript--reading-harmony .sentence__translation[data-phase="preview"] {
    text-decoration: underline dotted color-mix(in srgb, currentColor 34%, transparent);
    text-underline-offset: 0.22em;
}

.transcript.transcript--editorial.transcript--reading-harmony.hide-timestamps .sentence__translation {
    grid-column: 1;
}

.transcript.transcript--editorial.transcript--reading-harmony.hide-timestamps > .paragraph .sentence,
.transcript.transcript--editorial.transcript--reading-harmony.hide-timestamps > .ungrouped .sentence,
.transcript.transcript--editorial.transcript--reading-harmony.hide-timestamps > .interim {
    grid-template-columns: minmax(0, 1fr) !important;
    column-gap: 0 !important;
}

.transcript.transcript--editorial.transcript--reading-harmony.hide-timestamps > .interim .interim__meta {
    display: none !important;
}

/* Completed Korean text must stay readable at 125% without clipping. Interim
   text keeps its append-only wrapping rule below to avoid live reflow. */
.transcript.transcript--editorial.transcript--reading-harmony > .paragraph .sentence__text,
.transcript.transcript--editorial.transcript--reading-harmony > .ungrouped .sentence__text {
    min-width: 0;
    word-break: normal;
    overflow-wrap: anywhere;
    text-wrap: wrap !important;
    text-wrap-style: auto;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph > .paragraph__label {
    min-width: 0;
    word-break: keep-all;
    overflow-wrap: anywhere;
    text-wrap: pretty;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph .sentence__timestamp,
.transcript.transcript--editorial.transcript--reading-harmony > .ungrouped .sentence__timestamp {
    width: 100% !important;
    min-width: 0 !important;
    font-size: 0.75em !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .interim .interim__meta {
    width: 100% !important;
    font-size: 0.7em !important;
    visibility: hidden !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph .sentence__timestamp,
.transcript.transcript--editorial.transcript--reading-harmony > .ungrouped .sentence__timestamp {
    align-self: start !important;
    padding-top: 0 !important;
    line-height: var(--live-row-line-height) !important;
    transform: translateY(var(--live-time-optical-offset));
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph .sentence__text {
    padding-inline-end: 0 !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph:has(+ .interim),
.transcript.transcript--editorial.transcript--reading-harmony > .ungrouped:has(+ .interim) {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Incremental STT text must append naturally instead of rebalancing earlier lines.
   The continuation is the inline formatting context, so it must own the rule. */
.transcript.transcript--editorial.transcript--reading-harmony > .interim .interim__continuation,
.transcript.transcript--editorial.transcript--reading-harmony > .interim .interim__text {
    word-break: normal !important;
    overflow-wrap: anywhere;
    text-wrap: wrap !important;
    text-wrap-style: auto;
}

/* The title uses the body edge; only real paragraph actions reserve end space. */
.transcript.transcript--editorial.transcript--reading-harmony > .paragraph > .paragraph__label {
    width: 100% !important;
    padding-left: 22px !important;
    padding-right: var(--live-row-gutter) !important;
    color: var(--reading-topic-color) !important;
    font-size: 0.84em !important;
    font-weight: 650 !important;
    letter-spacing: -0.01em !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph > .paragraph__label::before {
    left: 1px !important;
    width: 11px !important;
    height: 2px !important;
    border-radius: 999px !important;
    background: color-mix(in srgb, var(--color-text-muted) 54%, transparent) !important;
    box-shadow: none !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph.paragraph--show-pre-polish {
    --reading-topic-color: color-mix(in srgb, var(--color-text) 88%, var(--color-text-muted));
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph > .paragraph__span-heading {
    font-size: 1.18em !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph.paragraph--has-actions > .paragraph__span-heading {
    padding-right: 5.25rem !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .raw-transcript .raw-transcript__summary {
    font-size: 0.72em !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .raw-transcript .raw-transcript__content {
    font-size: 0.78em !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph.paragraph--has-actions > .paragraph__label {
    padding-right: 5.25rem !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph .btn--pre-polish {
    min-height: 40px !important;
    font-size: 0.72em !important;
}

/* Active-section bookkeeping belongs to the outline, not a flashing sticky marker. */
.transcript.transcript--editorial.transcript--reading-harmony > .paragraph.paragraph--viewer-active > .paragraph__label {
    color: var(--reading-topic-color) !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph.paragraph--viewer-active > .paragraph__label::before {
    background: color-mix(in srgb, var(--color-text-muted) 54%, transparent) !important;
    box-shadow: none !important;
    transform: translateY(-50%) !important;
}

.transcript.transcript--editorial.transcript--reading-harmony > .paragraph.paragraph--viewer-active .sentence__timestamp {
    color: color-mix(in srgb, var(--color-text-muted) 88%, var(--color-accent)) !important;
    opacity: 0.86 !important;
}

/* Bookmark hit areas stay inside their sentence instead of covering the next row. */
.transcript.transcript--editorial.transcript--reading-harmony .sentence__mark-trigger {
    top: 50% !important;
    width: 40px !important;
    height: 32px !important;
    transform: translateY(-50%) !important;
}

.transcript.transcript--editorial.transcript--reading-harmony .sentence__mark-trigger:active {
    transform: translateY(-50%) scale(0.96) !important;
}

@media (hover: none), (pointer: coarse) {
    .transcript.transcript--editorial.transcript--reading-harmony > .paragraph .sentence,
    .transcript.transcript--editorial.transcript--reading-harmony > .ungrouped .sentence,
    .transcript.transcript--editorial.transcript--reading-harmony > .interim {
        min-height: var(--live-row-touch-min-height);
    }

    .transcript.transcript--editorial.transcript--reading-harmony .sentence__mark-trigger {
        height: 40px !important;
    }
}

@media (max-width: 600px) {
    .transcript.transcript--editorial.transcript--reading-harmony {
        --live-time-column: 2.55em;
    }
}

/* Title-flow review pauses the ungrouped live tail without changing its data. */
.transcript.transcript--editorial.transcript--reading-harmony.transcript--titles-only > .ungrouped,
.transcript.transcript--editorial.transcript--reading-harmony.transcript--titles-only > .interim {
    display: none !important;
}
