.flsa-player {
    --flsa-blue: #0f5f99;
    --flsa-blue-soft: #eaf5fc;
    --flsa-violet: #7c3aad;
    --flsa-violet-soft: #f4ebfb;
    --flsa-ink: #172033;
    --flsa-muted: #64748b;
    max-width: 900px;
    margin: 28px auto;
    color: var(--flsa-ink);
    background: #fff;
    border: 1px solid #e4eaf0;
    border-radius: 20px;
    box-shadow: 0 14px 40px rgba(27, 46, 75, .09);
    overflow: hidden;
    font-family: inherit;
}
.flsa-head { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 22px 24px 16px; }
.flsa-head-actions { display: flex; align-items: center; gap: 9px; }
.flsa-language-picker { display: flex; align-items: center; gap: 7px; margin: 0; color: var(--flsa-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.flsa-language-select { width: auto !important; min-width: 116px; height: 38px; margin: 0; padding: 0 30px 0 11px; border: 1px solid #dce4eb; border-radius: 10px; color: var(--flsa-ink); background-color: #f8fafc; font: 700 13px/1 inherit; text-transform: none; letter-spacing: 0; cursor: pointer; }
.flsa-head h3 { margin: 2px 0 0; color: var(--flsa-ink); font-size: clamp(18px, 3vw, 24px); line-height: 1.25; }
.flsa-eyebrow { color: var(--flsa-blue); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.flsa-current-speaker { flex: none; padding: 7px 12px; color: #334155; background: #f1f5f9; border-radius: 999px; font-size: 13px; font-weight: 700; }
.flsa-current-speaker[hidden], .flsa-live-caption[hidden] { display: none !important; }
.flsa-controls { display: block; padding: 12px 24px 20px; border-bottom: 1px solid #edf1f5; }
.flsa-progress-row { display: flex; align-items: flex-start; gap: 12px; width: 100%; }
.flsa-button-row { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 12px; }
.flsa-controls button, .flsa-speed { height: 42px; border: 0; border-radius: 12px; color: var(--flsa-ink); background: #eef3f7; cursor: pointer; font: 700 13px/1 inherit; }
.flsa-controls button { min-width: 42px; padding: 0 10px; }
.flsa-controls button:hover, .flsa-speed:hover { background: #e3ebf2; }
.flsa-controls .flsa-play { width: 50px; height: 50px; color: #fff; background: var(--flsa-blue); border-radius: 50%; font-size: 17px; }
.flsa-controls .flsa-play:hover { background: #0b4d7d; }
.flsa-controls .flsa-captions-toggle { color: #fff; background: var(--flsa-blue); font-size: 12px; letter-spacing: .03em; }
.flsa-controls .flsa-captions-toggle:hover { background: #0b4d7d; }
.flsa-controls .flsa-captions-toggle.is-off { color: #64748b; background: #eef3f7; text-decoration: line-through; }
.flsa-progress-wrap { flex: 1; min-width: 0; padding-top: 5px; }
.flsa-progress { display: block; width: 100%; height: 5px; margin: 0; accent-color: var(--flsa-blue); cursor: pointer; }
.flsa-times { display: flex; justify-content: space-between; margin-top: 5px; color: var(--flsa-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.flsa-speed { flex: 0 0 auto; width: auto !important; min-width: 90px; padding: 0 30px 0 12px; }
.flsa-progress-row .flsa-mute { flex: 0 0 42px; margin-top: -7px; }
.flsa-live-caption { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 14px; margin: 0; padding: 15px 35px; border-bottom: 1px solid #dbe5ed; background: #f1f5f9; box-shadow: inset 5px 0 0 #64748b; }
.flsa-live-caption.is-speaker-1 { border-bottom-color: #9ed5f3; background: var(--flsa-blue-soft); box-shadow: inset 5px 0 0 var(--flsa-blue); }
.flsa-live-caption.is-speaker-2 { border-bottom-color: #d8b4ef; background: var(--flsa-violet-soft); box-shadow: inset 5px 0 0 var(--flsa-violet); }
.flsa-live-badge { padding-top: 2px; color: #64748b; font-size: 12px; font-weight: 800; white-space: nowrap; }
.flsa-live-caption.is-speaker-1 .flsa-live-badge { color: var(--flsa-blue); }
.flsa-live-caption.is-speaker-2 .flsa-live-badge { color: var(--flsa-violet); }
.flsa-live-text { margin: 0; color: var(--flsa-ink); font-size: 17px; font-weight: 600; line-height: 1.55; }
.flsa-live-caption.is-rtl .flsa-live-text,
.flsa-transcript.is-rtl .flsa-line p { direction: rtl; text-align: right; }
.flsa-player[data-captions="off"] .flsa-current-speaker,
.flsa-player[data-captions="off"] .flsa-live-caption,
.flsa-player[data-captions="off"] .flsa-transcript { display: none !important; }
.flsa-transcript { --flsa-tail-space: 0px; max-height: min(58vh, 540px); padding: 18px 20px; overflow: auto; scroll-padding-top: 7px; background: #fbfcfe; }
.flsa-transcript::after { content: ""; display: block; height: var(--flsa-tail-space); pointer-events: none; }
.flsa-line { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 14px; margin: 7px 0; padding: 13px 15px; border: 1px solid transparent; border-radius: 14px; opacity: .67; cursor: pointer; transition: opacity .18s, background .18s, border-color .18s, transform .18s; }
.flsa-line:hover { opacity: .9; background: #fff; }
.flsa-line.is-active { opacity: 1; transform: translateX(3px); }
.flsa-speaker-1.is-active { border-color: #9ed5f3; background: var(--flsa-blue-soft); box-shadow: inset 4px 0 0 var(--flsa-blue); }
.flsa-speaker-2.is-active { border-color: #d8b4ef; background: var(--flsa-violet-soft); box-shadow: inset 4px 0 0 var(--flsa-violet); }
.flsa-speaker-badge { padding-top: 2px; color: var(--flsa-muted); font-size: 12px; font-weight: 800; white-space: nowrap; }
.flsa-speaker-1 .flsa-speaker-badge { color: var(--flsa-blue); }
.flsa-speaker-2 .flsa-speaker-badge { color: var(--flsa-violet); }
.flsa-line p { margin: 0; color: var(--flsa-ink); font-size: 16px; line-height: 1.65; }
.flsa-copyright { padding: 10px 20px 14px; color: #94a3b8; background: #fbfcfe; text-align: right; font-size: 11px; }
.flsa-notice { padding: 12px 14px; border-left: 4px solid #dba617; background: #fff8e5; }
@media (max-width: 680px) {
    .flsa-player { margin: 18px 0; border-radius: 15px; }
    .flsa-head { align-items: flex-start; padding: 18px 16px 12px; }
    .flsa-head-actions { align-items: flex-end; flex-direction: column; }
    .flsa-language-picker > span { display: none; }
    .flsa-language-select { min-width: 105px; max-width: 135px; }
    .flsa-current-speaker { padding: 5px 9px; font-size: 11px; }
    .flsa-controls { padding: 10px 14px 16px; }
    .flsa-progress-row { gap: 8px; }
    .flsa-button-row { gap: 7px; margin-top: 10px; }
    .flsa-speed { min-width: 78px; padding-left: 9px; }
    .flsa-live-caption { grid-template-columns: 1fr; gap: 4px; padding: 12px 18px; }
    .flsa-live-text { font-size: 15px; }
    .flsa-transcript { max-height: 62vh; padding: 12px 10px; }
    .flsa-line { grid-template-columns: 1fr; gap: 4px; padding: 12px; }
    .flsa-line p { font-size: 15px; }
    .flsa-line.is-active { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .flsa-line, .flsa-transcript { scroll-behavior: auto; transition: none; }
}
