@import '_content/AuralizeBlazor/AuralizeBlazor.tf5u2o3oxg.bundle.scp.css';
@import '_content/Nextended.Blazor/Nextended.Blazor.tkxqvq0zjw.bundle.scp.css';

/* /Components/Layout/LoginDisplay.razor.rz.scp.css */
.app-login-display-name[b-vc194oh2vl] {
    align-items: center;
    color: inherit;
    display: flex;
    margin-right: 0.5rem;
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.app-header-title[b-2faaixtv3p] {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    max-width: min(70vw, 1100px);
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
    pointer-events: none;
}

.app-header-project-info[b-2faaixtv3p],
.app-header-project-number[b-2faaixtv3p],
.app-header-project-separator[b-2faaixtv3p] {
    color: #ffffff;
    font-weight: 700;
}

.app-header-project-separator[b-2faaixtv3p],
.app-header-project-number[b-2faaixtv3p] {
    margin-left: 0.35rem;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
#components-reconnect-modal[b-t224hzwe0t] {
    display: none;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1400;
    overflow: hidden;
    background-color: transparent;
    border: none;
    width: 100%;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
    padding: 0;
}

    #components-reconnect-modal[b-t224hzwe0t]::backdrop {
        background: rgba(10, 16, 28, 0.5);
    }

    #components-reconnect-modal.components-reconnect-show[b-t224hzwe0t],
    #components-reconnect-modal[open][b-t224hzwe0t],
    #components-reconnect-modal.components-reconnect-failed[b-t224hzwe0t],
    #components-reconnect-modal.components-reconnect-repeated-attempt[b-t224hzwe0t],
    #components-reconnect-modal.components-reconnect-paused[b-t224hzwe0t],
    #components-reconnect-modal.components-reconnect-resume-failed[b-t224hzwe0t],
    #components-reconnect-modal.components-pause[b-t224hzwe0t],
    #components-reconnect-modal.components-resume-failed[b-t224hzwe0t] {
        display: flex;
        align-items: center;
        justify-content: center;
    }

.components-reconnect-backdrop[b-t224hzwe0t] {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: radial-gradient(90% 60% at 80% 0%, color-mix(in srgb, var(--mud-palette-primary, #594AE2) 12%, transparent), transparent 60%), radial-gradient(80% 55% at 0% 100%, color-mix(in srgb, var(--mud-palette-info, #2196f3) 16%, transparent), transparent 62%), rgba(8, 12, 20, 0.5);
}

.components-reconnect-surface[b-t224hzwe0t] {
    width: min(480px, 100%);
    border-radius: var(--mud-default-borderradius, 12px);
    border: 1px solid color-mix(in srgb, var(--mud-palette-lines-default, #e0e0e0) 70%, transparent);
    background: var(--mud-palette-surface, #fff);
    box-shadow: var(--mud-elevation-24, 0 16px 30px rgba(0, 0, 0, 0.28));
    color: var(--mud-palette-text-primary, #1f2937);
    padding: 20px 20px 18px;
}

.components-reconnect-header[b-t224hzwe0t] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

    .components-reconnect-header h2[b-t224hzwe0t] {
        margin: 0;
        font-size: 1.05rem;
        font-weight: 600;
        line-height: 1.3;
    }

.components-reconnect-status-dot[b-t224hzwe0t] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--mud-palette-warning, #f59e0b);
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--mud-palette-warning, #f59e0b) 25%, transparent);
}

.components-reconnect-supporting[b-t224hzwe0t],
.components-reconnect-message[b-t224hzwe0t] {
    margin: 0;
    line-height: 1.45;
    font-size: 0.95rem;
}

.components-reconnect-supporting[b-t224hzwe0t] {
    color: var(--mud-palette-text-secondary, #52607a);
    margin-bottom: 14px;
}

.components-reconnect-message[b-t224hzwe0t] {
    font-weight: 500;
}

.components-reconnect-danger[b-t224hzwe0t] {
    color: var(--mud-palette-error, #b00020);
}

.components-reconnect-actions[b-t224hzwe0t] {
    margin-top: 14px;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

.components-reconnect-first-attempt-visible[b-t224hzwe0t],
.components-reconnect-repeated-attempt-visible[b-t224hzwe0t],
.components-reconnect-failed-visible[b-t224hzwe0t],
.components-pause-visible[b-t224hzwe0t],
.components-resume-failed-visible[b-t224hzwe0t] {
    display: none;
}

dialog[open].components-reconnect-show .components-reconnect-first-attempt-visible[b-t224hzwe0t] {
    display: block;
}

dialog[open].components-reconnect-show .components-rejoin-loader[b-t224hzwe0t] {
    display: inline-flex;
}

dialog[open].components-reconnect-failed .components-reconnect-failed-visible[b-t224hzwe0t] {
    display: block;
}

dialog[open].components-reconnect-failed #components-reconnect-button[b-t224hzwe0t] {
    display: block;
}

dialog[open].components-reconnect-repeated-attempt .components-reconnect-repeated-attempt-visible[b-t224hzwe0t] {
    display: block;
}

dialog[open].components-reconnect-repeated-attempt .components-rejoin-loader[b-t224hzwe0t] {
    display: inline-flex;
}

dialog[open].components-reconnect-paused .components-pause-visible[b-t224hzwe0t],
dialog[open].components-pause .components-pause-visible[b-t224hzwe0t] {
    display: block;
}

dialog[open].components-reconnect-paused #components-resume-button[b-t224hzwe0t],
dialog[open].components-pause #components-resume-button[b-t224hzwe0t],
dialog[open].components-reconnect-resume-failed #components-resume-button[b-t224hzwe0t],
dialog[open].components-resume-failed #components-resume-button[b-t224hzwe0t] {
    display: block;
}

dialog[open].components-reconnect-resume-failed .components-resume-failed-visible[b-t224hzwe0t],
dialog[open].components-resume-failed .components-resume-failed-visible[b-t224hzwe0t] {
    display: block;
}

.components-rejoin-loader[b-t224hzwe0t] {
    display: none;
    margin-bottom: 10px;
    gap: 8px;
}

    .components-rejoin-loader div[b-t224hzwe0t] {
        width: 9px;
        height: 9px;
        border-radius: 50%;
        background-color: var(--mud-palette-primary, #594AE2);
        animation: reconnect-pulse-b-t224hzwe0t 1.2s infinite ease-in-out both;
    }

        .components-rejoin-loader div:nth-child(1)[b-t224hzwe0t] {
            animation-delay: -0.24s;
        }

        .components-rejoin-loader div:nth-child(2)[b-t224hzwe0t] {
            animation-delay: -0.12s;
        }

@keyframes reconnect-pulse-b-t224hzwe0t {
    0%, 80%, 100% {
        transform: scale(0);
    }

    40% {
        transform: scale(1);
    }
}

#components-reconnect-button[b-t224hzwe0t],
#components-resume-button[b-t224hzwe0t] {
    display: none;
    min-width: 92px;
    cursor: pointer;
    padding: 8px 16px;
    border: 1px solid transparent;
    border-radius: 999px;
    background-color: var(--mud-palette-primary, #594AE2);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.2;
    transition: filter 140ms ease, transform 140ms ease;
}

    #components-reconnect-button:hover[b-t224hzwe0t],
    #components-resume-button:hover[b-t224hzwe0t] {
        filter: brightness(0.95);
    }

    #components-reconnect-button:active[b-t224hzwe0t],
    #components-resume-button:active[b-t224hzwe0t] {
        transform: translateY(1px);
    }

@media (max-width: 600px) {
    .components-reconnect-backdrop[b-t224hzwe0t] {
        padding: 14px;
    }

    .components-reconnect-surface[b-t224hzwe0t] {
        padding: 16px;
    }
}
/* /Components/Pages/Comments/CommentOverview.razor.rz.scp.css */
/* Hebt den aktuell ausgewählten Kommentar in der Liste hervor (gleiche Optik wie die
   Kapitelauswahl im Dokument-Lesemodus). !important ist nötig, weil Striped-/Hover-
   Hintergründe der MudTable sonst gewinnen. */
[b-tox5l19bi7] .comment-row-selected,
[b-tox5l19bi7] .comment-row-selected:hover {
    background-color: var(--mud-palette-primary-hover) !important;
    background-color: color-mix(in srgb, var(--mud-palette-primary) 14%, transparent) !important;
}

[b-tox5l19bi7] .comment-row-selected > td {
    font-weight: 600 !important;
}

[b-tox5l19bi7] .comment-row-selected > td:first-child {
    box-shadow: inset 3px 0 0 var(--mud-palette-primary);
}
/* /Components/Pages/Contents/ContentTableEditor.razor.rz.scp.css */
/* Zellen sollen wie in einer Tabellenkalkulation wirken: kein Feldrahmen, keine
   Innenabstände, die Zelle selbst ist das Eingabefeld. Der Rahmen kommt erst beim Fokus. */
.content-table-cell[b-uks0ndjy34] {
    width: 100%;
    min-height: 1.5em;
    border: none;
    outline: none;
    background: transparent;
    color: inherit;
    font: inherit;
    padding: 2px 4px;
    /* Umbruch statt Überlauf: Die Spaltenbreite bestimmt die Darstellung, nicht der Inhalt. */
    overflow-wrap: anywhere;
}

.content-table-cell:focus[b-uks0ndjy34] {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: -2px;
    border-radius: 2px;
}

.content-table-cell[contenteditable="false"][b-uks0ndjy34] {
    cursor: default;
}

/* Formatierungsleiste: schlicht gehalten, damit sie neben den MudBlazor-Schaltflächen
   der Kopfzeile nicht dominiert. */
.content-table-format[b-uks0ndjy34] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}

.content-table-format button[b-uks0ndjy34] {
    min-width: 28px;
    height: 28px;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: pointer;
}

.content-table-format button:hover[b-uks0ndjy34] {
    background: var(--mud-palette-action-default-hover);
}

/* Auswahlspalte: schlicht wie die übrigen Zellen, damit die Tabelle einheitlich wirkt. */
.content-table-select[b-uks0ndjy34] {
    width: 100%;
    border: none;
    background: transparent;
    color: inherit;
    font: inherit;
    padding: 2px 4px;
    cursor: pointer;
}

.content-table-select:focus[b-uks0ndjy34] {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: -2px;
    border-radius: 2px;
}

/* Aufklappende Menüs der Leiste: details statt einer Blazor-Komponente, damit der Fokus
   in der Zelle bleibt und die Markierung erhalten bleibt. */
.content-table-menu[b-uks0ndjy34] {
    position: relative;
    display: inline-block;
}

.content-table-menu > summary[b-uks0ndjy34] {
    list-style: none;
    min-width: 28px;
    height: 28px;
    line-height: 28px;
    text-align: center;
    border-radius: 4px;
    cursor: pointer;
    user-select: none;
}

.content-table-menu > summary[b-uks0ndjy34]::-webkit-details-marker {
    display: none;
}

.content-table-menu > summary:hover[b-uks0ndjy34] {
    background: var(--mud-palette-action-default-hover);
}

.content-table-palette[b-uks0ndjy34] {
    position: absolute;
    z-index: 10;
    top: 30px;
    right: 0;
    display: grid;
    grid-template-columns: repeat(5, 22px);
    gap: 4px;
    padding: 8px;
    background: var(--mud-palette-surface, #fff);
    border: 1px solid var(--mud-palette-lines-default, #ccc);
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .2);
}

.content-table-palette button[b-uks0ndjy34] {
    width: 22px;
    height: 22px;
    border: 1px solid rgba(0, 0, 0, .2);
    border-radius: 3px;
    cursor: pointer;
    padding: 0;
}

.content-table-nofill[b-uks0ndjy34] {
    background: transparent;
}

.content-table-more[b-uks0ndjy34] {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    font-size: .8rem;
    cursor: pointer;
}

.content-table-sizes[b-uks0ndjy34] {
    position: absolute;
    z-index: 10;
    top: 30px;
    right: 0;
    display: flex;
    flex-direction: column;
    background: var(--mud-palette-surface, #fff);
    border: 1px solid var(--mud-palette-lines-default, #ccc);
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .2);
}

.content-table-sizes button[b-uks0ndjy34] {
    min-width: 56px;
    height: 26px;
    border: none;
    background: transparent;
    font: inherit;
    cursor: pointer;
    text-align: left;
    padding: 0 10px;
}

.content-table-sizes button:hover[b-uks0ndjy34] {
    background: var(--mud-palette-action-default-hover);
}

.content-table-checkbox[b-uks0ndjy34] {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.content-table-color[b-uks0ndjy34] {
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
}

.content-table-head[b-uks0ndjy34] {
    font-weight: 600;
}

/* Spaltenname und Entfernen-Schaltfläche nebeneinander; der Name nimmt den Rest ein. */
.content-table-head-row[b-uks0ndjy34] {
    display: flex;
    align-items: center;
    gap: 2px;
}

/* Zurückhaltend, bis man darauf zeigt: Die Schaltfläche steht in jeder Kopfzelle und
   soll den Spaltennamen nicht überstrahlen. Der Abstand rechts hält sie vom Ziehgriff frei. */
.content-table-column-remove[b-uks0ndjy34] {
    opacity: 0.35;
    margin-right: 6px;
    flex: 0 0 auto;
}

.content-table-th:hover .content-table-column-remove[b-uks0ndjy34] {
    opacity: 1;
}

/* Trenner zum Ziehen: liegt auf der rechten Kante der Kopfzelle. Die Zelle wird dafür zum
   Bezugspunkt, sonst säße der Griff am Tabellenrand statt an der Spaltengrenze.
   Eigene Klasse statt eines th-Selektors: Nur so trägt das Element zuverlässig die
   Scope-Kennung dieser Komponente. */
.content-table-th[b-uks0ndjy34] {
    position: relative;
}

.content-table-resizer[b-uks0ndjy34] {
    position: absolute;
    top: 0;
    right: -3px;
    width: 6px;
    height: 100%;
    cursor: col-resize;
    user-select: none;
    touch-action: none;
    z-index: 1;
}

.content-table-resizer:hover[b-uks0ndjy34] {
    background: var(--mud-palette-primary);
    opacity: 0.4;
}

/* Auffangfeld des Ziehens: muss im Baum stehen, damit Blazor sein change-Ereignis
   empfängt, darf aber nicht sichtbar sein. */
.content-table-width-sink[b-uks0ndjy34] {
    position: absolute;
    width: 0;
    height: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

.content-table-width[b-uks0ndjy34] {
    width: 56px;
    border: none;
    outline: none;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: right;
}

.content-table-width:focus[b-uks0ndjy34] {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: -2px;
    border-radius: 2px;
}

/* Vollansicht: Kopfzeile und erste Spalte bleiben beim Scrollen stehen (E32). Ohne das
   verliert man nach zwanzig Zeilen die Spaltenbedeutung, und die längsten Tabellen haben
   200 bis 250 Zeilen.

   Der Hintergrund muss gesetzt sein, sonst scheint der durchlaufende Inhalt hindurch. Eine
   eingefärbte Zelle (E16) trägt ihre Farbe als style am td und übersteuert das von selbst.

   Rahmen statt border über box-shadow: Bei border-collapse: collapse — MudSimpleTable
   setzt das — zeichnet der Browser die Rahmen festgestellter Zellen nicht mit. */
.content-table-full thead tr:first-child > th[b-uks0ndjy34] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--mud-palette-surface);
    box-shadow: inset 0 -1px 0 var(--mud-palette-lines-default);
}

.content-table-full tbody > tr > td:first-child[b-uks0ndjy34] {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--mud-palette-surface);
    box-shadow: inset -1px 0 0 var(--mud-palette-lines-default);
}

/* Die Ecke gehört beiden und muss über beiden liegen. */
.content-table-full thead tr:first-child > th:first-child[b-uks0ndjy34] {
    left: 0;
    z-index: 3;
    box-shadow: inset -1px 0 0 var(--mud-palette-lines-default),
                inset 0 -1px 0 var(--mud-palette-lines-default);
}

/* Zeilennummer: die Inhaltsnummer, nicht bearbeitbar. Zurückhaltend gesetzt — sie ordnet
   die Zeile ein, soll aber nicht mit dem Inhalt konkurrieren. */
.content-table-rownumber[b-uks0ndjy34] {
    color: var(--mud-palette-text-secondary);
    font-size: .8rem;
    white-space: nowrap;
    user-select: text;
}

/* Reihenfolge, Kommentar, Löschen in einer Reihe; sie dürfen nicht umbrechen, sonst wächst
   die Zeile mit jeder Schaltfläche. */
.content-table-rowactions[b-uks0ndjy34] {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
}

/* Trenner in der Formatierungsleiste: Auszeichnung des Textes links, Einstellungen der
   Tabelle rechts davon. */
.content-table-divider[b-uks0ndjy34] {
    width: 1px;
    height: 18px;
    margin: 0 4px;
    background: var(--mud-palette-lines-default);
}

/* Griff für die Zeilenhöhe: liegt auf der Unterkante der Nummernzelle, wie der Spaltengriff
   auf der rechten Kante der Kopfzelle. Die Zelle wird dafür zum Bezugspunkt. */
.content-table-rownumber[b-uks0ndjy34] {
    position: relative;
}

.content-table-row-resizer[b-uks0ndjy34] {
    position: absolute;
    left: 0;
    bottom: -3px;
    width: 100%;
    height: 6px;
    cursor: row-resize;
    user-select: none;
    touch-action: none;
    z-index: 1;
}

.content-table-row-resizer:hover[b-uks0ndjy34] {
    background: var(--mud-palette-primary);
    opacity: 0.4;
}

/* Aufzählungen in einer Zelle sollen nicht die halbe Zelle als Einzug verschenken. */
.content-table-cell ul[b-uks0ndjy34],
.content-table-cell ol[b-uks0ndjy34] {
    margin: 0;
    padding-left: 1.2em;
}
/* /Components/Pages/Contents/ContentTableFullView.razor.rz.scp.css */
/* Die Ansicht füllt den Rest des Fensters. Der Offset kommt vom Aufrufer, weil über ihr mal
   nur die Breadcrumbs und mal zusätzlich Datenblattkopf und Registerleiste stehen — dieselbe
   Mechanik wie in der Leseansicht. */
.content-table-fullview[b-tnwkcsbhl2] {
    display: flex;
    flex-direction: column;
    height: calc(100vh - var(--table-full-offset, 150px));
    min-height: 320px;
}

/* Eigener Scrollbereich: Ohne ihn hätte position: sticky in der Tabelle keinen Vorfahren,
   an dem es sich festmachen könnte, und Kopfzeile wie erste Spalte liefen mit weg. */
.content-table-fullview-scroll[b-tnwkcsbhl2] {
    flex: 1;
    overflow: auto;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 4px;
}
/* /Components/Pages/Documents/DocumentList.razor.rz.scp.css */
/* Die Dokumentliste setzte FixedHeader ohne Height — laut MudBlazor wirkungslos. Sie bekommt
   deshalb wie der Lesemodus eine feste Höhe und scrollt intern. Über der Liste steht nur die
   Breadcrumb-Leiste, der Offset fällt daher kleiner aus als in den Projektdetails. */
.document-list-pane[b-a11ah38jm7] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: calc(100dvh - 150px);
    min-height: 400px;
    overflow: hidden;
}

/* Kurze Fenster bekommen lieber eine scrollende Seite als eine zusammengedrückte Liste;
   gleiche Grenze wie in DocumentReadView.razor.css und ProjectPlanView.razor.css. */
@media (max-height: 700px) {
    .document-list-pane[b-a11ah38jm7] {
        height: 500px;
    }
}

/* MudBlazor-eigene Elemente tragen den Isolations-Scope nicht, deshalb steht ::deep hinter
   dem eigenen Div. Die Selektoren bleiben auf die direkte Tabelle beschränkt: die
   aufgeklappte Detailzeile enthält weitere MudTables (Struktur, Audit Trail). */
/* MudTable ist ein schlichtes Div. Ohne eigenes Flex-Layout darf ihr Zeilencontainer laut
   MudBlazors max-height: 100% so hoch werden wie die ganze Tabelle und schiebt Toolbar und
   Pager heraus — hier besonders relevant, weil diese Liste einen MudTablePager hat. */
.document-list-pane[b-a11ah38jm7]  > .mud-table {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.document-list-pane[b-a11ah38jm7]  > .mud-table > .mud-table-container {
    flex: 1 1 auto;
    min-height: 0;
}

/* MudBlazor macht jede Kopfzeile einzeln sticky mit top: 0; diese Liste hat zwei
   (Spaltentitel und Filterzeile), die sich sonst überlagern. */
.document-list-pane[b-a11ah38jm7]  > .mud-table > .mud-table-container > table > thead {
    position: sticky;
    top: 0;
    z-index: 12;
}

.document-list-pane[b-a11ah38jm7]  > .mud-table > .mud-table-container > table > thead th {
    position: static;
    background-color: var(--mud-palette-background-gray);
}
/* /Components/Pages/Documents/DocumentReadView.razor.rz.scp.css */
/* Kapitel- und Inhaltsliste scrollen unabhängig voneinander: der Split füllt den Rest der
   Fensterhöhe, beide Spalten geben ihre Höhe an die MudTable weiter, die intern scrollt.
   Den Offset setzt der Host, weil über der Ansicht unterschiedlich viel steht. */
.document-read-split[b-208iyn6oj6] {
    display: flex;
    align-items: stretch;
    width: 100%;
    height: calc(100dvh - var(--doc-read-offset, 300px));
    min-height: 400px;
    overflow: hidden;
}

.document-read-pane[b-208iyn6oj6] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

/* Kurze Fenster bekommen lieber eine scrollende Seite als zusammengedrückte Listen;
   gleiche Grenze wie in ProjectPlanView.razor.css. */
@media (max-height: 700px) {
    .document-read-split[b-208iyn6oj6] {
        height: 500px;
    }
}

/* Ab hier Elemente, die MudBlazor rendert. Die tragen den Isolations-Scope nicht selbst,
   deshalb steht ::deep hinter dem eigenen Div. Alle Selektoren bleiben bewusst auf die
   direkte Tabelle beschränkt: im aufgeklappten Inhaltsdetail stecken weitere MudTables,
   die von diesen Regeln nicht getroffen werden dürfen. */
/* MudTable ist ein schlichtes Div. Ohne eigenes Flex-Layout darf ihr Zeilencontainer laut
   MudBlazors max-height: 100% so hoch werden wie die ganze Tabelle und schiebt Toolbar und
   Pager aus der Spalte — die dann am overflow: hidden der Spalte abgeschnitten werden. */
.document-read-pane[b-208iyn6oj6]  > .mud-table {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.document-read-pane[b-208iyn6oj6]  > .mud-table > .mud-table-container {
    flex: 1 1 auto;
    min-height: 0;
}

.document-read-pane[b-208iyn6oj6]  > .mud-paper {
    flex: 1 1 auto;
    min-height: 0;
}

/* MudBlazor macht bei FixedHeader jede Kopfzeile einzeln sticky mit top: 0. Beide Listen
   haben aber zwei Kopfzeilen — Spaltentitel und Filterzeile —, die sich dadurch am oberen
   Rand überlagern würden. Stattdessen klebt der ganze thead, so behalten beide Zeilen
   ihren Abstand zueinander. */
.document-read-pane[b-208iyn6oj6]  > .mud-table > .mud-table-container > table > thead {
    position: sticky;
    top: 0;
    z-index: 12;
}

/* Deckender Hintergrund, sonst scheinen die scrollenden Zeilen durch die Filterfelder. */
.document-read-pane[b-208iyn6oj6]  > .mud-table > .mud-table-container > table > thead th {
    position: static;
    background-color: var(--mud-palette-background-gray);
}

/* Die Breite regelt sich wieder über das normale Tabellenlayout. Ein table-layout: fixed
   hatte hier die deklarierten Spaltenbreiten bindend gemacht — insbesondere die 150 px der
   Aktionsspalte, die für ihre Steuerelemente nicht reichen, weil versteckte Aktionen per
   visibility: hidden ihren Platz behalten. Die Beschreibung treibt die Breite ohnehin nicht
   mehr: in der Liste steht seit dem Rückbau nur noch ein Klartext-Auszug statt der
   gerenderten Tabelle. */

/* Hebt das aktuell ausgewählte Kapitel in der Kapitelliste hervor.
   !important ist nötig, weil Striped- und Hover-Hintergründe der MudTable sonst gewinnen. */
[b-208iyn6oj6] .chapter-row-selected,
[b-208iyn6oj6] .chapter-row-selected:hover {
    background-color: var(--mud-palette-primary-hover) !important;
    background-color: color-mix(in srgb, var(--mud-palette-primary) 14%, transparent) !important;
}

[b-208iyn6oj6] .chapter-row-selected > td {
    font-weight: 600 !important;
}

[b-208iyn6oj6] .chapter-row-selected > td:first-child {
    box-shadow: inset 3px 0 0 var(--mud-palette-primary);
}
/* /Components/Pages/Home.razor.rz.scp.css */
.home-page[b-h2q8tj2xrn] {
    max-width: 1400px;
    margin: 0 auto;
}

.home-hero[b-h2q8tj2xrn] {
    border: 1px solid var(--mud-palette-lines-default);
    background: linear-gradient(135deg, var(--mud-palette-surface) 0%, var(--mud-palette-background-gray) 100%);
}

.home-hero-grid[b-h2q8tj2xrn] {
    align-items: stretch;
}

.home-image-column[b-h2q8tj2xrn] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 280px;
}

.home-image[b-h2q8tj2xrn] {
    display: block;
    width: min(100%, 360px);
    max-height: 360px;
    object-fit: contain;
}

.home-project-details[b-h2q8tj2xrn] {
    max-width: 760px;
}

.home-tile-link[b-h2q8tj2xrn] {
    display: block;
    height: 100%;
    color: inherit;
}

.home-tile[b-h2q8tj2xrn] {
    display: flex;
    min-height: 170px;
    height: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    text-align: center;
    transition: transform .15s ease, box-shadow .15s ease;
}

.home-tile-link:not(.home-tile-disabled):hover .home-tile[b-h2q8tj2xrn] {
    transform: translateY(-2px);
}

.home-tile-disabled[b-h2q8tj2xrn] {
    color: var(--mud-palette-text-disabled);
    pointer-events: none;
}

.home-tile-disabled .home-tile[b-h2q8tj2xrn] {
    background: var(--mud-palette-action-disabled-background);
    border: 1px solid var(--mud-palette-lines-default);
}

.home-actions[b-h2q8tj2xrn] {
    flex-wrap: wrap;
    gap: 1rem;
}

.home-project-selection[b-h2q8tj2xrn] {
    border: 1px solid var(--mud-palette-lines-default);
}

@media (max-width: 959px) {
    .home-image-column[b-h2q8tj2xrn] {
        min-height: 180px;
    }

    .home-image[b-h2q8tj2xrn] {
        max-height: 220px;
    }
}

@media (max-width: 600px) {
    .home-tile[b-h2q8tj2xrn] {
        min-height: 135px;
    }
}
/* /Components/Pages/Projects/ProjectPlanView.razor.rz.scp.css */
.project-plan-split[b-6pn35ad36x] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: calc(100dvh - 245px);
    min-height: 406px;
    overflow: hidden;
}

.project-plan-list-pane[b-6pn35ad36x] {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    height: 55%;
    min-height: 240px;
    overflow: hidden;
}

.project-plan-empty-groups[b-6pn35ad36x] {
    flex: 0 0 auto;
    overflow-x: auto;
    border-bottom: 1px solid var(--mud-palette-table-lines);
}

.project-plan-list-pane > .mud-table[b-6pn35ad36x] {
    flex: 1 1 auto;
    min-height: 0;
}

/* Fixierte Kopfzeile (20.15): deckender, eindeutiger Hintergrund und eine Ebene über den
   scrollenden Zeileninhalten und Aktions-Icons — auch bei horizontalem Scrollen. */
[b-6pn35ad36x] .project-plan-list-pane thead th {
    background-color: var(--mud-palette-background-gray);
    z-index: 12;
}

/* Reicht die Breite nicht, scrollt die Liste horizontal statt Spalten zu quetschen;
   die Tabelle behält dafür ihre Inhaltsbreite. */
[b-6pn35ad36x] .project-plan-list-pane .mud-table-container {
    overflow-x: auto;
}

[b-6pn35ad36x] .project-plan-list-pane .mud-table-container > table {
    min-width: max-content;
}

.project-plan-gantt-pane[b-6pn35ad36x] {
    flex: 1 1 auto;
    min-height: 160px;
    overflow: auto;
}

.project-plan-splitter[b-6pn35ad36x] {
    flex: 0 0 6px !important;
    min-height: 6px;
}

.project-plan-split-trash .project-plan-list-pane[b-6pn35ad36x] {
    height: 100%;
}

@media (max-height: 700px) {
    .project-plan-split[b-6pn35ad36x] {
        height: 500px;
    }
}
