﻿/* ============================================================
   Onesown Blazor Components – VideoPlayer2
   Player-Oberfläche ist immer dunkel (wie bei Mediatheken/YouTube),
   unabhängig vom Seiten-Theme. Responsiv über Container-Queries.
   ============================================================ */

.oo-vp2-host {
    width: 100%;
}

.oo-vp2 {
    --oo-vp2-akzent: var(--oo-primary);
    --oo-vp2-vg: #fff;
    --oo-vp2-vg-gedimmt: rgba(255, 255, 255, 0.72);
    --oo-vp2-flaeche: rgba(18, 18, 22, 0.92);
    --oo-vp2-flaeche-hover: rgba(255, 255, 255, 0.12);
    --oo-vp2-schiene: rgba(255, 255, 255, 0.24);
    --oo-vp2-puffer: rgba(255, 255, 255, 0.42);
    --oo-vp2-btn: 2.5rem;
    --oo-vp2-icon: 1.5rem;
    --oo-vp2-rand: var(--oo-space-3);
    --oo-vp2-ein: 200ms ease;

    position: relative;
    width: 100%;
    aspect-ratio: var(--oo-vp2-verhaeltnis, 16 / 9);
    overflow: hidden;
    background: #000;
    color: var(--oo-vp2-vg);
    border-radius: var(--oo-radius-md);
    container-type: inline-size;
    container-name: oo-vp2;
    user-select: none;
    -webkit-user-select: none;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    isolation: isolate;
}

.oo-vp2:focus-visible {
    box-shadow: 0 0 0 3px var(--oo-vp2-akzent);
}

.oo-vp2--spielt:not(.oo-vp2--controls) {
    cursor: none;
}

.oo-vp2:fullscreen {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    border-radius: 0;
}

.oo-vp2:-webkit-full-screen {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    border-radius: 0;
}

.oo-vp2__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #000;
    display: block;
}

.oo-vp2__flaeche {
    position: absolute;
    inset: 0;
    z-index: 1;
    touch-action: manipulation;
}

/* ── Buttons ───────────────────────────────────────────────── */

.oo-vp2 button {
    font: inherit;
    color: inherit;
}

.oo-vp2__btn {
    position: relative;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: var(--oo-vp2-btn);
    height: var(--oo-vp2-btn);
    padding: 0;
    border: 0;
    border-radius: var(--oo-radius-full);
    background: transparent;
    cursor: pointer;
    transition: background-color var(--oo-vp2-ein), transform 120ms ease;
}

.oo-vp2__btn > * {
    grid-area: 1 / 1;
}

.oo-vp2__btn :is(.oo-icon, .oo-vp2__svg) {
    font-size: var(--oo-vp2-icon);
}

/* Gefüllte Symbole als SVG (die Icon-Schrift kennt nur Outline) */
.oo-vp2__svg {
    display: inline-block;
    width: 1em;
    height: 1em;
    fill: currentColor;
}

.oo-vp2__btn:hover {
    background: var(--oo-vp2-flaeche-hover);
}

.oo-vp2__btn:active {
    transform: scale(0.92);
}

.oo-vp2__btn:focus-visible,
.oo-vp2__kapitel-chip:focus-visible,
.oo-vp2__mitte-btn:focus-visible,
.oo-vp2__menue-eintrag:focus-visible,
.oo-vp2__kapitel:focus-visible,
.oo-vp2__fortschritt:focus-visible {
    outline: 2px solid var(--oo-vp2-vg);
    outline-offset: -2px;
}

.oo-vp2__btn:disabled {
    opacity: 0.38;
    cursor: default;
    background: transparent;
}

.oo-vp2__btn--klein {
    --oo-vp2-btn: 2rem;
    --oo-vp2-icon: 1.25rem;
}

/* Icon-Wechsel über Zustandsklassen am Player */
.oo-vp2 .oo-vp2__icon-pause,
.oo-vp2 .oo-vp2__icon-replay,
.oo-vp2 .oo-vp2__icon-leise,
.oo-vp2 .oo-vp2__icon-stumm,
.oo-vp2 .oo-vp2__icon-vollbild-ende {
    display: none;
}

.oo-vp2--spielt .oo-vp2__icon-play { display: none; }
.oo-vp2--spielt .oo-vp2__icon-pause { display: inline-block; }

.oo-vp2--ende .oo-vp2__icon-play,
.oo-vp2--ende .oo-vp2__icon-pause { display: none; }
.oo-vp2--ende .oo-vp2__icon-replay { display: inline-block; }

.oo-vp2--leise .oo-vp2__icon-laut,
.oo-vp2--stumm .oo-vp2__icon-laut { display: none; }
.oo-vp2--leise .oo-vp2__icon-leise { display: inline-block; }
.oo-vp2--stumm .oo-vp2__icon-stumm { display: inline-block; }

.oo-vp2--vollbild .oo-vp2__icon-vollbild { display: none; }
.oo-vp2--vollbild .oo-vp2__icon-vollbild-ende { display: inline-block; }

.oo-vp2__btn--pip { display: none; }
.oo-vp2--pip-moeglich .oo-vp2__btn--pip { display: inline-grid; }

/* ── Oben: Titel ───────────────────────────────────────────── */

.oo-vp2__oben {
    position: absolute;
    inset: 0 0 auto 0;
    z-index: 2;
    padding: var(--oo-vp2-rand) var(--oo-space-4) var(--oo-space-8);
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.6), transparent);
    pointer-events: none;
    opacity: 0;
    transition: opacity var(--oo-vp2-ein);
}

.oo-vp2__oben:empty {
    display: none;
}

.oo-vp2__titel {
    display: block;
    font-size: var(--oo-font-size-lg);
    font-weight: 600;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}

.oo-vp2--controls .oo-vp2__oben,
.oo-vp2--pausiert .oo-vp2__oben {
    opacity: 1;
}

/* ── Tempo-Schnellwahl oben rechts (nur schmale Player) ────── */

.oo-vp2__schnelltempo {
    position: absolute;
    top: var(--oo-vp2-rand);
    right: var(--oo-vp2-rand);
    z-index: 4;
    display: none;
    gap: 2px;
    padding: 2px;
    border-radius: var(--oo-radius-full);
    background: rgba(0, 0, 0, 0.5);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--oo-vp2-ein), visibility 0s linear 200ms;
}

.oo-vp2__schnelltempo-btn {
    min-width: 2.75rem;
    height: 2.25rem;
    padding: 0 var(--oo-space-2);
    border: 0;
    border-radius: var(--oo-radius-full);
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: var(--oo-font-size-sm);
    font-weight: 700;
    cursor: pointer;
    transition: background-color var(--oo-vp2-ein);
}

.oo-vp2__schnelltempo-btn[aria-checked="true"] {
    background: var(--oo-vp2-akzent);
}

.oo-vp2__schnelltempo-btn:focus-visible {
    outline: 2px solid #fff;
    outline-offset: -2px;
}

.oo-vp2--controls:not(.oo-vp2--start) .oo-vp2__schnelltempo,
.oo-vp2--pausiert:not(.oo-vp2--start) .oo-vp2__schnelltempo {
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
}

/* ── Mitte: großer Play-Button, ±10 auf Touch und schmalen Playern ── */

.oo-vp2__mitte {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(1.5rem, 12cqi, 5rem);
    pointer-events: none;
}

.oo-vp2__mitte-btn {
    display: grid;
    place-items: center;
    width: 3.25rem;
    height: 3.25rem;
    padding: 0;
    border: 0;
    border-radius: var(--oo-radius-full);
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    cursor: pointer;
    pointer-events: auto;
    opacity: 0;
    visibility: hidden;
    transform: scale(0.9);
    transition: opacity var(--oo-vp2-ein), transform var(--oo-vp2-ein), visibility 0s linear 200ms, background-color var(--oo-vp2-ein);
}

.oo-vp2__mitte-btn > * {
    grid-area: 1 / 1;
}

.oo-vp2__mitte-btn :is(.oo-icon, .oo-vp2__svg) {
    font-size: 2rem;
}

.oo-vp2__mitte-btn--haupt {
    width: 4.5rem;
    height: 4.5rem;
}

.oo-vp2__mitte-btn--haupt :is(.oo-icon, .oo-vp2__svg) {
    font-size: 3rem;
}

.oo-vp2__mitte-btn:hover {
    background: rgba(0, 0, 0, 0.65);
}

.oo-vp2--start .oo-vp2__mitte-btn--haupt {
    background: var(--oo-vp2-akzent);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35);
}

.oo-vp2--start .oo-vp2__mitte-btn--haupt:hover {
    transform: scale(1.06);
}

/* Haupt-Button sichtbar, wenn pausiert (Desktop und Touch) */
.oo-vp2--pausiert .oo-vp2__mitte-btn--haupt,
.oo-vp2--ende .oo-vp2__mitte-btn--haupt {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
    transition-delay: 0s;
}

/* ── Doppeltipp-Ripple ─────────────────────────────────────── */

.oo-vp2__ripple {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 2;
    width: 40%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--oo-space-1);
    font-size: var(--oo-font-size-sm);
    font-weight: 600;
    background: rgba(0, 0, 0, 0.4);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
    opacity: 0;
    pointer-events: none;
}

.oo-vp2__ripple :is(.oo-icon, .oo-vp2__svg) {
    font-size: 2.25rem;
}

.oo-vp2__ripple--zurueck {
    left: 0;
    border-radius: 0 50% 50% 0 / 0 50% 50% 0;
}

.oo-vp2__ripple--vor {
    right: 0;
    border-radius: 50% 0 0 50% / 50% 0 0 50%;
}

.oo-vp2__ripple--aktiv {
    animation: oo-vp2-ripple 650ms ease-out;
}

@keyframes oo-vp2-ripple {
    0% { opacity: 0; }
    15% { opacity: 1; }
    70% { opacity: 1; }
    100% { opacity: 0; }
}

/* ── Hinweis (Lautstärke, Tempo, Kapitel) ──────────────────── */

.oo-vp2__hinweis {
    position: absolute;
    top: 12%;
    left: 50%;
    z-index: 6;
    max-width: 80%;
    padding: var(--oo-space-2) var(--oo-space-4);
    border-radius: var(--oo-radius-full);
    background: rgba(0, 0, 0, 0.7);
    font-size: var(--oo-font-size-sm);
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transform: translateX(-50%);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--oo-vp2-ein);
}

.oo-vp2__hinweis--sichtbar {
    opacity: 1;
}

/* ── Spinner und Fehler ────────────────────────────────────── */

.oo-vp2__spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    width: 3.5rem;
    height: 3.5rem;
    margin: -1.75rem 0 0 -1.75rem;
    border: 4px solid rgba(255, 255, 255, 0.25);
    border-top-color: var(--oo-vp2-vg);
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--oo-vp2-ein);
}

.oo-vp2--laedt .oo-vp2__spinner {
    opacity: 1;
    transition-delay: 300ms;
    animation: oo-vp2-drehen 0.9s linear infinite;
}

@keyframes oo-vp2-drehen {
    to { transform: rotate(360deg); }
}

.oo-vp2__fehler {
    position: absolute;
    inset: 0;
    z-index: 7;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--oo-space-2);
    padding: var(--oo-space-4);
    background: rgba(0, 0, 0, 0.85);
    text-align: center;
}

.oo-vp2__fehler .oo-icon {
    font-size: 2.5rem;
    color: var(--oo-danger);
}

.oo-vp2--fehler .oo-vp2__fehler {
    display: flex;
}

/* ── Steuerung unten ───────────────────────────────────────── */

.oo-vp2__steuerung {
    position: absolute;
    inset: auto 0 0 0;
    z-index: 3;
    padding: var(--oo-space-8) var(--oo-vp2-rand) var(--oo-space-1);
    pointer-events: none;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.45) 55%, transparent 100%);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--oo-vp2-ein), visibility 0s linear 200ms;
}

.oo-vp2--controls .oo-vp2__steuerung,
.oo-vp2--pausiert:not(.oo-vp2--start) .oo-vp2__steuerung {
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
}

/* Nur Bedienelemente fangen Klicks – der Verlauf darüber lässt sie zur Fläche bzw. zum Play-Button durch */
.oo-vp2__steuerung :is(button, input, .oo-vp2__fortschritt) {
    pointer-events: auto;
}

.oo-vp2__leiste {
    min-height: calc(var(--oo-vp2-btn) + var(--oo-space-1));
}

.oo-vp2__gruppe {
    min-width: 0;
}

.oo-vp2__gruppe--links {
    flex: 1 1 auto;
}

.oo-vp2__gruppe--rechts {
    flex-shrink: 0;
}

.oo-vp2__zeit {
    padding: 0 var(--oo-space-2);
    font-size: var(--oo-font-size-sm);
    font-variant-numeric: tabular-nums;
}

.oo-vp2__zeit-trenner,
.oo-vp2__zeit-dauer {
    color: var(--oo-vp2-vg-gedimmt);
}

.oo-vp2__zeit-trenner {
    margin: 0 0.15em;
}

.oo-vp2__kapitel-chip {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    max-width: 22rem;
    height: 2rem;
    padding: 0 var(--oo-space-1) 0 var(--oo-space-3);
    border: 0;
    border-radius: var(--oo-radius-full);
    background: transparent;
    font-size: var(--oo-font-size-sm);
    cursor: pointer;
    transition: background-color var(--oo-vp2-ein);
}

.oo-vp2__kapitel-chip::before {
    content: "";
    flex: 0 0 auto;
    width: 4px;
    height: 4px;
    margin-right: var(--oo-space-2);
    border-radius: 50%;
    background: currentColor;
}

.oo-vp2__kapitel-chip:hover {
    background: var(--oo-vp2-flaeche-hover);
}

.oo-vp2__kapitel-chip .oo-icon {
    flex: 0 0 auto;
    font-size: 1.25rem;
}

.oo-vp2__tempo-text {
    font-size: var(--oo-font-size-sm);
    font-weight: 700;
    letter-spacing: 0.01em;
}

.oo-vp2--tempo-geaendert .oo-vp2__tempo-text {
    padding: 0.05rem 0.3rem;
    border-radius: var(--oo-radius-sm);
    background: var(--oo-vp2-akzent);
}

/* ── Lautstärke ────────────────────────────────────────────── */

.oo-vp2__lautstaerke {
    display: inline-flex;
    align-items: center;
}

.oo-vp2__regler {
    --oo-vp2-wert: 100%;
    width: 0;
    height: var(--oo-vp2-btn);
    margin: 0;
    opacity: 0;
    background: transparent;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: width var(--oo-vp2-ein), opacity var(--oo-vp2-ein), margin var(--oo-vp2-ein);
}

.oo-vp2__lautstaerke:hover .oo-vp2__regler,
.oo-vp2__lautstaerke:focus-within .oo-vp2__regler {
    width: 4.5rem;
    margin: 0 var(--oo-space-2) 0 var(--oo-space-1);
    opacity: 1;
}

.oo-vp2__regler::-webkit-slider-runnable-track {
    height: 4px;
    border-radius: 2px;
    background: linear-gradient(to right, var(--oo-vp2-vg) var(--oo-vp2-wert), var(--oo-vp2-schiene) var(--oo-vp2-wert));
}

.oo-vp2__regler::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 12px;
    height: 12px;
    margin-top: -4px;
    border-radius: 50%;
    background: var(--oo-vp2-vg);
}

.oo-vp2__regler::-moz-range-track {
    height: 4px;
    border-radius: 2px;
    background: var(--oo-vp2-schiene);
}

.oo-vp2__regler::-moz-range-progress {
    height: 4px;
    border-radius: 2px;
    background: var(--oo-vp2-vg);
}

.oo-vp2__regler::-moz-range-thumb {
    width: 12px;
    height: 12px;
    border: 0;
    border-radius: 50%;
    background: var(--oo-vp2-vg);
}

/* ── Fortschrittsleiste mit Kapitel-Segmenten ──────────────── */

.oo-vp2__fortschritt {
    position: relative;
    height: 1.25rem;
    display: flex;
    align-items: center;
    cursor: pointer;
    touch-action: none;
    border-radius: var(--oo-radius-sm);
}

.oo-vp2__segmente {
    position: relative;
    display: flex;
    gap: 3px;
    width: 100%;
    height: 4px;
}

.oo-vp2__segment {
    position: relative;
    height: 100%;
    min-width: 2px;
    overflow: hidden;
    border-radius: 2px;
    background: var(--oo-vp2-schiene);
    transition: transform 120ms ease;
}

.oo-vp2__segment-puffer,
.oo-vp2__segment-fuellung {
    position: absolute;
    inset: 0;
    transform-origin: left center;
    transform: scaleX(0);
}

.oo-vp2__segment-puffer {
    background: var(--oo-vp2-puffer);
}

.oo-vp2__segment-fuellung {
    background: var(--oo-vp2-akzent);
}

.oo-vp2__fortschritt:hover .oo-vp2__segment,
.oo-vp2--ziehen .oo-vp2__segment {
    transform: scaleY(1.4);
}

.oo-vp2__fortschritt:hover .oo-vp2__segment--hover,
.oo-vp2--ziehen .oo-vp2__segment--hover {
    transform: scaleY(2.2);
}

.oo-vp2__griff {
    position: absolute;
    top: 50%;
    left: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.oo-vp2__griff::after {
    content: "";
    position: absolute;
    left: -7px;
    top: -7px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--oo-vp2-akzent);
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.15);
    transform: scale(0);
    transition: transform 120ms ease;
}

.oo-vp2__fortschritt:hover .oo-vp2__griff::after,
.oo-vp2__fortschritt:focus-visible .oo-vp2__griff::after,
.oo-vp2--ziehen .oo-vp2__griff::after {
    transform: scale(1);
}

.oo-vp2__vorschau {
    position: absolute;
    left: 0;
    bottom: calc(100% + var(--oo-space-2));
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: min(18rem, 80cqi);
    padding: var(--oo-space-1) var(--oo-space-2);
    border-radius: var(--oo-radius-sm);
    background: var(--oo-vp2-flaeche);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
    pointer-events: none;
    opacity: 0;
    transition: opacity 100ms ease;
}

.oo-vp2__vorschau--sichtbar {
    opacity: 1;
}

.oo-vp2__vorschau-kapitel {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--oo-font-size-sm);
    font-weight: 600;
}

.oo-vp2__vorschau-kapitel:empty {
    display: none;
}

.oo-vp2__vorschau-zeit {
    font-size: var(--oo-font-size-sm);
    font-variant-numeric: tabular-nums;
    color: var(--oo-vp2-vg-gedimmt);
}

/* ── Menü (Geschwindigkeit) und Kapitel-Panel ─────────────── */

.oo-vp2__menue,
.oo-vp2__panel {
    position: absolute;
    z-index: 5;
    display: flex;
    flex-direction: column;
    background: var(--oo-vp2-flaeche);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--oo-vp2-ein), transform var(--oo-vp2-ein), visibility 0s linear 200ms;
}

.oo-vp2__menue {
    right: var(--oo-vp2-rand);
    bottom: calc(var(--oo-vp2-btn) + var(--oo-space-8));
    width: 13rem;
    max-height: calc(100% - var(--oo-vp2-btn) - var(--oo-space-8) - var(--oo-space-2));
    border-radius: var(--oo-radius-md);
    transform: translateY(8px);
}

.oo-vp2__panel {
    top: 0;
    right: 0;
    bottom: 0;
    width: min(22rem, 45%);
    transform: translateX(16px);
}

.oo-vp2--menue-tempo .oo-vp2__menue,
.oo-vp2--menue-kapitel .oo-vp2__panel {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition-delay: 0s;
}

.oo-vp2__menue-kopf {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--oo-space-2);
    padding: var(--oo-space-2) var(--oo-space-2) var(--oo-space-2) var(--oo-space-4);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    font-size: var(--oo-font-size-sm);
}

.oo-vp2__menue-liste,
.oo-vp2__panel-liste {
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
}

.oo-vp2__menue-liste {
    display: flex;
    flex-direction: column;
    padding: var(--oo-space-1) 0;
}

.oo-vp2__menue-eintrag {
    display: flex;
    align-items: center;
    gap: var(--oo-space-2);
    width: 100%;
    padding: var(--oo-space-2) var(--oo-space-4);
    border: 0;
    background: transparent;
    font-size: var(--oo-font-size-sm);
    text-align: left;
    cursor: pointer;
}

.oo-vp2__menue-eintrag:hover {
    background: var(--oo-vp2-flaeche-hover);
}

.oo-vp2__menue-haken {
    font-size: 1.125rem;
    visibility: hidden;
}

.oo-vp2__menue-eintrag[aria-checked="true"] .oo-vp2__menue-haken {
    visibility: visible;
    color: var(--oo-vp2-akzent);
}

.oo-vp2__menue-eintrag[aria-checked="true"] {
    font-weight: 700;
}

.oo-vp2__panel-liste {
    flex: 1 1 auto;
    position: relative;
    padding: var(--oo-space-1) 0;
}

.oo-vp2__kapitel {
    display: grid;
    grid-template-columns: 1.75rem 1fr auto;
    align-items: center;
    gap: var(--oo-space-2);
    width: 100%;
    padding: var(--oo-space-2) var(--oo-space-4) var(--oo-space-2) var(--oo-space-3);
    border: 0;
    border-left: 3px solid transparent;
    background: transparent;
    text-align: left;
    font-size: var(--oo-font-size-sm);
    cursor: pointer;
}

.oo-vp2__kapitel:hover {
    background: var(--oo-vp2-flaeche-hover);
}

.oo-vp2__kapitel.oo-vp2--aktiv {
    border-left-color: var(--oo-vp2-akzent);
    background: rgba(255, 255, 255, 0.08);
}

.oo-vp2__kapitel-nr {
    color: var(--oo-vp2-vg-gedimmt);
    font-variant-numeric: tabular-nums;
    text-align: center;
}

.oo-vp2__kapitel-titel {
    min-width: 0;
    line-height: 1.3;
}

.oo-vp2__kapitel.oo-vp2--aktiv .oo-vp2__kapitel-titel {
    font-weight: 600;
}

.oo-vp2__kapitel-zeit {
    padding: 0.1rem var(--oo-space-2);
    border-radius: var(--oo-radius-sm);
    background: rgba(255, 255, 255, 0.1);
    font-size: var(--oo-font-size-xs, 0.75rem);
    font-variant-numeric: tabular-nums;
}

/* ── Kapitelliste unter dem Player ─────────────────────────── */

.oo-vp2-kapitelliste {
    display: flex;
    gap: var(--oo-space-2);
    margin-top: var(--oo-space-2);
    padding-bottom: var(--oo-space-1);
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
}

.oo-vp2-kapitelliste__eintrag {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    max-width: 14rem;
    padding: var(--oo-space-2) var(--oo-space-3);
    border: var(--oo-border-width) solid var(--oo-color-border);
    border-radius: var(--oo-radius-md);
    background: var(--oo-color-surface);
    color: var(--oo-color-text);
    font: inherit;
    text-align: left;
    cursor: pointer;
    scroll-snap-align: start;
    transition: border-color var(--oo-transition), background-color var(--oo-transition);
}

.oo-vp2-kapitelliste__eintrag:hover {
    border-color: var(--oo-color-border-strong);
}

.oo-vp2-kapitelliste__eintrag.oo-vp2--aktiv {
    border-color: var(--oo-primary);
    background: var(--oo-primary-lighter);
}

.oo-vp2-kapitelliste__zeit {
    font-size: var(--oo-font-size-sm);
    font-variant-numeric: tabular-nums;
    color: var(--oo-primary);
    font-weight: 600;
}

.oo-vp2-kapitelliste__titel {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--oo-font-size-sm);
}

/* ── Touch: größere Ziele, ±10 in der Mitte ────────────────── */

@media (pointer: coarse) {
    .oo-vp2__flaeche {
        transition: background-color var(--oo-vp2-ein);
    }

    .oo-vp2--controls .oo-vp2__flaeche {
        background: rgba(0, 0, 0, 0.3);
    }

    .oo-vp2--controls .oo-vp2__mitte-btn {
        opacity: 1;
        visibility: visible;
        transform: scale(1);
        transition-delay: 0s;
    }

    /* Vor dem ersten Abspielen nur der Play-Button */
    .oo-vp2--start .oo-vp2__mitte-btn--sprung {
        display: none;
    }

    .oo-vp2__btn--sprung,
    .oo-vp2__regler {
        display: none;
    }

    .oo-vp2__fortschritt {
        height: 1.75rem;
    }

    .oo-vp2--controls .oo-vp2__griff::after {
        transform: scale(1);
    }
}

/* ── Container-Breiten ─────────────────────────────────────── */

@container oo-vp2 (min-width: 900px) {
    .oo-vp2 > * {
        --oo-vp2-btn: 2.75rem;
        --oo-vp2-icon: 1.75rem;
        --oo-vp2-rand: var(--oo-space-4);
    }

    .oo-vp2__mitte-btn--haupt {
        width: 5.5rem;
        height: 5.5rem;
    }

    .oo-vp2__mitte-btn--haupt :is(.oo-icon, .oo-vp2__svg) {
        font-size: 3.5rem;
    }
}

@container oo-vp2 (max-width: 640px) {
    .oo-vp2__btn--kapitelnav,
    .oo-vp2--pip-moeglich .oo-vp2__btn--pip,
    .oo-vp2__btn--sprung {
        display: none;
    }

    /* ±10 groß in der Videomitte statt in der Leiste – auch mit Maus */
    .oo-vp2--controls .oo-vp2__mitte-btn {
        opacity: 1;
        visibility: visible;
        transform: scale(1);
        transition-delay: 0s;
    }

    .oo-vp2--start .oo-vp2__mitte-btn--sprung {
        display: none;
    }

    .oo-vp2__schnelltempo {
        display: flex;
    }

    .oo-vp2__oben {
        padding-right: 10.5rem;
    }

    .oo-vp2__regler {
        display: none;
    }

    .oo-vp2__panel {
        width: 100%;
        transform: translateY(16px);
    }

    .oo-vp2__menue {
        left: 0;
        right: 0;
        bottom: 0;
        width: auto;
        max-height: 100%;
        border-radius: var(--oo-radius-md) var(--oo-radius-md) 0 0;
    }

    .oo-vp2__menue-liste {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--oo-space-2);
        padding: var(--oo-space-3);
    }

    .oo-vp2__menue-eintrag {
        width: auto;
        min-width: 3.25rem;
        justify-content: center;
        padding: var(--oo-space-2) var(--oo-space-3);
        border-radius: var(--oo-radius-full);
        background: rgba(255, 255, 255, 0.08);
    }

    .oo-vp2__menue-eintrag[aria-checked="true"] {
        background: var(--oo-vp2-akzent);
    }

    .oo-vp2__menue-haken {
        display: none;
    }
}

@container oo-vp2 (max-width: 480px) {
    .oo-vp2 > * {
        --oo-vp2-btn: 2.25rem;
        --oo-vp2-icon: 1.375rem;
        --oo-vp2-rand: var(--oo-space-2);
    }

    .oo-vp2__btn--liste {
        display: none;
    }

    .oo-vp2__steuerung {
        padding-top: var(--oo-space-6);
    }

    .oo-vp2__zeit {
        padding: 0 var(--oo-space-1);
        font-size: var(--oo-font-size-xs, 0.75rem);
    }

    .oo-vp2__kapitel-chip {
        padding-left: var(--oo-space-2);
        font-size: var(--oo-font-size-xs, 0.75rem);
    }

    .oo-vp2__kapitel-chip::before {
        display: none;
    }

    .oo-vp2__titel {
        font-size: var(--oo-font-size-md, 1rem);
    }

    .oo-vp2__mitte-btn {
        width: 2.75rem;
        height: 2.75rem;
    }

    .oo-vp2__mitte-btn :is(.oo-icon, .oo-vp2__svg) {
        font-size: 1.625rem;
    }

    .oo-vp2__mitte-btn--haupt {
        width: 3.75rem;
        height: 3.75rem;
    }

    .oo-vp2__mitte-btn--haupt :is(.oo-icon, .oo-vp2__svg) {
        font-size: 2.5rem;
    }
}

@container oo-vp2 (max-width: 360px) {
    .oo-vp2__lautstaerke {
        display: none;
    }

    .oo-vp2__mitte-btn--haupt {
        width: 3.25rem;
        height: 3.25rem;
    }

    .oo-vp2__mitte-btn--haupt :is(.oo-icon, .oo-vp2__svg) {
        font-size: 2.125rem;
    }
}

@container oo-vp2 (max-width: 300px) {
    .oo-vp2__zeit-trenner,
    .oo-vp2__zeit-dauer {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .oo-vp2 *,
    .oo-vp2 *::after {
        transition-duration: 0ms !important;
        animation-duration: 0ms !important;
    }
}
