html, body {
    height: 100%;
}

app {
    display: block;
    height: 100%;
}

.header-logo {
    flex-shrink: 0;
    background-color: currentColor;
    -webkit-mask: url('../images/Logo.svg');
    mask: url('../images/Logo.svg');
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    width: 28px;
    height: 24px;
}

/* Applied by ApplyGroupRowFormatController from IModelGridSettings.LevelNGroupHeaderColor; the colour
   itself comes from the model and is set inline. */
.sb-group-header-color {
    display: block;
    margin: -0.25rem -0.5rem;
    padding: 0.25rem 0.5rem;
}

/* Applied by ApplyColumnCellCssClassController from IModelGridColumnSettings.WrapText. */
.sb-wrap-text {
    white-space: normal;
    word-wrap: break-word;
}

.sb-nowrap-text {
    white-space: nowrap;
}

#blazor-error-ui {
    background: inherit;
    bottom: 0;
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 100001;
}

/* MA40 Nachfrageverfahren matrix (WwReport_Tasks_ListView). The class is applied to the grid component model by
   InquiryProcedureSlotLayoutController; the popup class by InquiryProcedureMaximizedPopupSizeController. XAF caps a
   nested grid at 300px, which the matrix's multi-line Fristen/Meldung cells reduce to three or four visible rows. */
.inquiry-procedure-matrix-grid {
    height: calc(100vh - 300px) !important;
    max-height: calc(100vh - 300px) !important;
    min-height: 360px;
}

/* Vollbild (WwReport_DetailView_OnlyTasks). The legacy Web Forms controller coupled the grid height to the browser
   window with a generated AdjustSize script. The popup itself is sized in C#; the grid is taken out of flow against
   the modal body so it keeps filling the popup after a drag-resize. The DetailView holds this one item only. */
.inquiry-procedure-maximized-popup .dxbl-modal-body {
    position: relative;
}

.inquiry-procedure-maximized-popup .nested-frame {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
}

.inquiry-procedure-maximized-popup .nested-content,
.inquiry-procedure-maximized-popup .grid-content,
.inquiry-procedure-maximized-popup xaf-contextmenu-click-helper {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.inquiry-procedure-maximized-popup .inquiry-procedure-matrix-grid {
    flex: 1 1 auto;
    height: auto !important;
    max-height: none !important;
    min-height: 0;
}

/* KI-generiert: Claude Code (Anthropic) | Zweck: Feldköpfe der Spalten-, Zeilen- und Datenbereiche der Pivot-Tabellen ausblenden wie in der Legacy-Anwendung | Scope: dieser Block */
/* Review: <offen> | Status: ungeprüft */
.xaf-pivot-grid .dxbl-pivot-table-data-headers-column-headers-row {
    display: none;
}

.xaf-pivot-grid .dxbl-pivot-table-area-row-field > * {
    visibility: hidden;
}

/* KI-generiert: Claude Code (Anthropic) | Zweck: lange Zeilen- und Spaltenwerte der Pivot-Tabellen an Wortgrenzen umbrechen statt abschneiden, Platz für die Bildlaufleiste | Scope: dieser Block */
/* Review: <offen> | Status: ungeprüft */
.xaf-pivot-grid.dxbl-pivot-table > .dxbl-scroll-viewer > .dxbl-scroll-viewer-content > table > thead > tr > th.dxbl-pivot-table-area-column-field,
.xaf-pivot-grid.dxbl-pivot-table > .dxbl-scroll-viewer > .dxbl-scroll-viewer-content > table > tbody > tr > td.dxbl-pivot-table-row-field-item {
    white-space: normal;
    overflow-wrap: break-word;
    hyphens: auto;
}

.xaf-pivot-grid.dxbl-pivot-table > .dxbl-scroll-viewer > .dxbl-scroll-viewer-content > table > tbody > tr > td:last-child {
    padding-right: 14px;
}

/* KI-generiert: Claude Code (Anthropic) | Zweck: Anmeldeseite breit genug für Benutzername, Kennwort und den vollen Modulnamen | Scope: dieser Block */
/* Review: <offen> | Status: ungeprüft */
.logon-main {
    width: 560px;
    max-width: 95vw;
}

/* KI-generiert: Claude Code (Anthropic) | Zweck: Objektverweise in Listenzellen mit "…" kürzen wie normaler Zellentext statt mitten im Wort abzuschneiden | Scope: dieser Block */
/* Review: <offen> | Status: ungeprüft */
.dxbl-grid td.xaf-action:not(.sb-wrap-text) a.grid-cell-object-link {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* KI-generiert: Claude Code (Anthropic) | Zweck: lange Objekttitel im Kopf mit "…" kürzen, Benutzer- und Einstellungsknopf bleiben sichtbar | Scope: dieser Block */
/* Review: <offen> | Status: ungeprüft */
.header-right-side > div:has(> .view-caption-root),
.view-caption-root > .xaf-caption-container {
    min-width: 0;
}

/* KI-generiert: Claude Code (Anthropic) | Zweck: Fristen und Meldungsdaten der Nachfrageverfahren-Matrix je Eintrag in eigener Zeile | Scope: dieser Block */
/* Review: <offen> | Status: ungeprüft */
.inquiry-procedure-matrix-grid td.inquiry-procedure-multiline-cell,
.inquiry-procedure-matrix-grid td.inquiry-procedure-multiline-cell * {
    white-space: pre-line;
}

/* KI-generiert: Claude Code (Anthropic) | Zweck: Hex-Text des Farbeditors mittig neben dem Farbfeld | Scope: dieser Block */
/* Review: <offen> | Status: ungeprüft */
.dxbl-fl-ctrl:has(> input[type="color"]) {
    display: flex;
    align-items: center;
    gap: 6px;
}
