/* MODULARE REGEL – HORIZONTALER SCROLLBEREICH
   A_056_01g_51 – sichtbare 15-px-Abstände vor dem nativen Scrollbalken.

   Tabellen OHNE Seitennavigation in schmaler Ansicht:
   Tabelle/letztes Inhaltselement -> 15 px -> Scrollbalken -> 15 px -> Folgeelement/Blockunterkante.

   Tabellen MIT Seitennavigation:
   Tabellenunterkante -> 15 px -> Seitennavigationszeile ->
   in schmaler Ansicht 15 px -> Scrollbalken -> 15 px -> Ergebnisblock-Unterkante.
   Ohne notwendigen Scrollbalken folgt auf die Seitennavigationszeile direkt
   die Ergebnisblock-Unterkante mit 15 px Abstand.

   Benachbarte modulare Abstände werden nicht addiert. */

/* Gemeinsamer Abstand Tabelle -> Seitennavigation. Die Navigation kann innerhalb
   desselben horizontalen Scrollcontainers liegen, damit ihre tabellenbezogenen
   Positionen beim horizontalen Scrollen erhalten bleiben. */
.seitennavigation-im-scrollbereich-modular {
    margin-top: 15px !important;
    margin-bottom: 0 !important;
}

/* Wenn ein Ergebnisblock mit Tabellen-Seitennavigation endet, beträgt der
   sichtbare Abschlussabstand zur Ergebnisblock-Unterkante immer 15 px. */
.ergebnisblock-tabellen-navigation-modular {
    padding-bottom: 15px !important;
}

@media (max-width: 720px) {
    .horizontaler-tabellen-scroll-modular {
        display: block;
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        overscroll-behavior-x: contain;
        /* A_056_01g_51: Kein Abstand mehr über padding-bottom erzeugen.
           Der sichtbare Abstand zum nativen Scrollbalken wird als eigener
           15-px-Bereich direkt nach dem letzten Inhaltselement geführt. */
        padding-bottom: 0 !important;
    }

    /* Tabellen OHNE Seitennavigation: 15 px sichtbare Freifläche zwischen
       Tabellen-Unterkante und horizontalem Scrollbalken. */
    .horizontaler-tabellen-scroll-modular:not(.horizontaler-tabellen-scroll-mit-navigation-modular)::after {
        content: "";
        display: block;
        width: 1px;
        height: 15px;
        min-height: 15px;
        pointer-events: none;
    }

    /* Tabellen MIT Seitennavigation:
       Tabelle -> 15 px -> Navigation -> 15 px -> Scrollbalken.
       margin-bottom erzeugt die 15 px tatsächlich NACH der kompletten
       Navigationszeile und zählt nicht zur Scrollbalkenhöhe. */
    .horizontaler-tabellen-scroll-mit-navigation-modular > .seitennavigation-im-scrollbereich-modular {
        margin-top: 15px !important;
        margin-bottom: 15px !important;
    }
}


/* A_056_01g_53 – Navigation vor separater Scrollbalken-Zeile.
   Auf den umgestellten Tabellen wird der Abstand Tabelle -> Navigation zentral
   auf 15 px vereinheitlicht. Die separate Scrollbalken-Zeile besitzt selbst
   anschließend weitere 15 px Abstand zur Navigation. */
.seitennavigation-vor-scrollbar-modular {
    margin-top: 15px !important;
    margin-bottom: 0 !important;
}

/* A_056_01g_52 – robuste separate Scrollbalken-Zeile.
   Der native Scrollbalken des Inhalt-Viewports bleibt unsichtbar. Der sichtbare
   horizontale Scrollbalken liegt in einer eigenen Zeile unterhalb des Inhalts
   und kann dadurch mit realen 15-px-Abständen davor und danach geführt werden. */
.horizontaler-tabellen-scroll-viewport-modular {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.horizontaler-tabellen-scroll-viewport-modular::-webkit-scrollbar {
    width: 0;
    height: 0;
}

.horizontaler-tabellen-scrollbar-zeile-modular {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: 15px;
    margin-top: 15px;
    overflow: hidden;
}

.horizontaler-tabellen-scrollbar-zeile-modular[hidden] {
    display: none !important;
}

.horizontaler-tabellen-scrollbar-modular {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    height: 15px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
}

.horizontaler-tabellen-scrollbar-modular::-webkit-scrollbar {
    height: 15px;
}

.horizontaler-tabellen-scrollbar-spacer-modular {
    display: block;
    width: 1px;
    min-width: 1px;
    height: 1px;
    min-height: 1px;
}

/* A_056_01g_52 – Abschlussabstand robust gegen spezifischere Seitenregeln.
   Markierte Ergebnisblöcke mit Tabellen-/Seitennavigation enden nach der
   separaten Scrollbalken-Zeile sichtbar mit genau 15 px. */
body[class] main.container > .ergebnisblock-aussen-modular.ergebnisblock-tabellen-navigation-modular {
    padding-bottom: 15px !important;
}

/* A_056_01g_53 – robuste zentrale Anwendung der separaten Scrollbalken-Zeile.
   Betroffene Tabellen-Viewports zeigen keinen eigenen nativen Scrollbalken und
   erhalten auch keinen historischen Padding-Abstand mehr. Sichtbar ist nur die
   separat gerenderte, synchronisierte Scrollbalken-Zeile. */
[data-horizontaler-scroll-viewport-modular] {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding-bottom: 0 !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

[data-horizontaler-scroll-viewport-modular]::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
}


/* A_056_01g_57 – Navigationszeile als echter Bestandteil des Tabellenverbunds.
   Die Breite der Navigation und die Breite ihrer rechten Spalte werden vom
   zentralen Scroll-Controller aus der tatsächlich gerenderten Tabelle gemessen.
   Damit bleiben Nach-oben-Bereich und letzte Tabellenspalte in normaler und
   schmaler Ansicht geometrisch verbunden, ohne doppelte Breitenwerte zu pflegen. */
[data-horizontaler-scroll-viewport-modular] > .seitennavigation-tabellenverbund-modular {
    display: grid !important;
    grid-template-columns:
        minmax(0, 1fr)
        var(--seitennavigation-letzte-spalte-modular, 42px) !important;
    grid-template-areas: none !important;
    align-items: center !important;
    position: relative !important;
    width: var(--seitennavigation-tabellenbreite-modular, 100%) !important;
    min-width: var(--seitennavigation-tabellenbreite-modular, 100%) !important;
    max-width: var(--seitennavigation-tabellenbreite-modular, 100%) !important;
    margin-top: 15px !important;
    margin-bottom: 0 !important;
    box-sizing: border-box !important;
}

[data-horizontaler-scroll-viewport-modular] > .seitennavigation-tabellenverbund-modular > .seitennavigation-status {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    min-width: 0 !important;
}

/* A_056_01g_58 – Die mittlere Seitennavigation bleibt immer in der sichtbaren
   Mitte des horizontalen Viewports. Der zentrale Controller setzt die linke
   Position in Inhaltskoordinaten aus scrollLeft + sichtbare Breite / 2. */
[data-horizontaler-scroll-viewport-modular] > .seitennavigation-tabellenverbund-modular > .seitennavigation-seiten {
    position: absolute !important;
    left: var(--seitennavigation-sichtmitte-modular, 50%) !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 2 !important;
    min-width: 0 !important;
    margin: 0 !important;
}

[data-horizontaler-scroll-viewport-modular] > .seitennavigation-tabellenverbund-modular > .nach-oben-button-modular {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: stretch !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
}


/* A_056_01g_58 – Super-Schmal-Regel bleibt unangetastet.
   Bis 430 px gilt weiterhin die projektweite zweizeilige Navigation:
   Status + Nach-oben in Zeile 1, Seitensteuerung links in Zeile 2.
   Die sichtbare Zentrierung der Seitensteuerung betrifft die schmale/
   normale Ansicht ab 431 px. */
@media (max-width: 430px) {
    [data-horizontaler-scroll-viewport-modular] > .seitennavigation-tabellenverbund-modular {
        grid-template-columns: minmax(0, 1fr) var(--seitennavigation-letzte-spalte-modular, 42px) !important;
        grid-template-areas:
            "status top"
            "pages pages" !important;
        row-gap: 12px !important;
    }

    [data-horizontaler-scroll-viewport-modular] > .seitennavigation-tabellenverbund-modular > .seitennavigation-status {
        grid-area: status !important;
        grid-column: auto !important;
        grid-row: auto !important;
    }

    [data-horizontaler-scroll-viewport-modular] > .seitennavigation-tabellenverbund-modular > .seitennavigation-seiten {
        position: static !important;
        left: auto !important;
        top: auto !important;
        transform: none !important;
        grid-area: pages !important;
        justify-self: start !important;
    }

    [data-horizontaler-scroll-viewport-modular] > .seitennavigation-tabellenverbund-modular > .nach-oben-button-modular {
        grid-area: top !important;
        grid-column: auto !important;
        grid-row: auto !important;
        justify-self: stretch !important;
    }
}
