/* _content/bettERFramework.FiBu.UI/Components/Features/DateFilterPopover.razor.rz.scp.css */
/* Popover im Mandantenwechsel-Muster (NavigationMenu): gleiche Fläche, gleiche Options-Zeilen. */

.datefilter-wrap[b-xrgcdklxfd] {
    position: relative;
    display: inline-flex;
}

.datefilter-backdrop[b-xrgcdklxfd] {
    position: fixed;
    inset: 0;
    z-index: 40;
    background: transparent;
}

.datefilter-pop[b-xrgcdklxfd] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    width: 220px;
    z-index: 41;
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: var(--bp-panel-solid-2, #182839);
    border: 1px solid var(--bp-panel-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--bp-radius-ctl, 8px);
    padding: 8px;
}

.datefilter-option[b-xrgcdklxfd] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 9px;
    background: transparent;
    border: none;
    border-radius: 6px;
    color: var(--bp-text-muted, #8296A9);
    font-family: inherit;
    font-size: 12.5px;
    text-align: left;
    cursor: pointer;
}

    .datefilter-option:hover[b-xrgcdklxfd] {
        background: rgba(255, 255, 255, 0.06);
        color: var(--bp-text, #E6EDF3);
    }

    .datefilter-option.current[b-xrgcdklxfd] {
        color: var(--bp-yellow, #E6FF03);
    }

    .datefilter-option .e-icons[b-xrgcdklxfd] {
        margin-left: auto;
        font-size: 12px;
    }

.datefilter-foot[b-xrgcdklxfd] {
    padding: 8px 9px 4px;
    margin-top: 4px;
    border-top: 1px solid var(--bp-panel-border, rgba(255, 255, 255, 0.08));
}

    .datefilter-foot button[b-xrgcdklxfd] {
        background: none;
        border: none;
        padding: 0;
        font-family: inherit;
        font-size: 11.5px;
        color: var(--bp-yellow, #E6FF03);
        cursor: pointer;
    }

        .datefilter-foot button:hover[b-xrgcdklxfd] {
            text-decoration: underline;
        }
/* _content/bettERFramework.FiBu.UI/Components/Features/InvoiceDetails/CustomerComparisonFeature.razor.rz.scp.css */
.detail-row[b-wahkti465t] {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    width: 100%;
    padding-top: 3px;
    padding-bottom: 3px;
}

    .detail-row label[b-wahkti465t] {
        flex: 0 0 120px;
    }

.detail-big-column[b-wahkti465t] {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    flex-grow: 1;
    /* Text vertical center */
    align-items: center;
}

.detail-small-column[b-wahkti465t] {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    flex-shrink: 1;
    /* Text vertical center */
    align-items: center;
}

    .detail-small-column label[b-wahkti465t] {
        flex: 0 0 auto;
        min-width: fit-content;
    }

.detail-column[b-wahkti465t] {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    flex-basis: 50%;
    /* Text vertical center */
    align-items: center;
}



.flex-basis-50[b-wahkti465t] {
    flex-basis: 50%;
}

/* Zwei-Spalten-Vergleich (Stammdaten | Rechnungsdaten): Grid mit gemeinsamer Kopf-Zeile,
   damit die Feldzeilen beider Spalten unabhängig von der Hinweis-Länge parallel starten. */
.compare-grid[b-wahkti465t] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 1.5rem;
}

.compare-title[b-wahkti465t] {
    margin: 0 0 0.25rem;
}

.compare-hint[b-wahkti465t] {
    margin: 0 0 0.5rem;
    font-size: 0.8rem;
    color: var(--bp-text-muted, #8296A9);
}

.compare-col[b-wahkti465t] {
    min-width: 0;
}

/* Durchgehende Trennlinie: Kopf und Feldstapel der rechten Spalte tragen dieselbe Kante. */
.compare-head--right[b-wahkti465t],
.compare-col--right[b-wahkti465t] {
    border-left: 1px solid var(--bp-panel-border, rgba(255, 255, 255, 0.08));
    padding-left: 1.5rem;
}
/* _content/bettERFramework.FiBu.UI/Components/Features/InvoiceDetails/SupplierComparisonFeature.razor.rz.scp.css */
.detail-row[b-vm9ezix7z3] {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    width: 100%;
    padding-top: 3px;
    padding-bottom: 3px;
}

    .detail-row label[b-vm9ezix7z3] {
        flex: 0 0 120px;
    }

.detail-big-column[b-vm9ezix7z3] {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    flex-grow: 1;
    /* Text vertical center */
    align-items: center;
}

.detail-small-column[b-vm9ezix7z3] {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    flex-shrink: 1;
    /* Text vertical center */
    align-items: center;
}

    .detail-small-column label[b-vm9ezix7z3] {
        flex: 0 0 auto;
        min-width: fit-content;
    }

.detail-column[b-vm9ezix7z3] {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    flex-basis: 50%;
    /* Text vertical center */
    align-items: center;
}



.flex-basis-50[b-vm9ezix7z3] {
    flex-basis: 50%;
}

/* Zwei-Spalten-Vergleich (Stammdaten | Rechnungsdaten): Grid mit gemeinsamer Kopf-Zeile,
   damit die Feldzeilen beider Spalten unabhängig von der Hinweis-Länge parallel starten. */
.compare-grid[b-vm9ezix7z3] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 1.5rem;
}

.compare-title[b-vm9ezix7z3] {
    margin: 0 0 0.25rem;
}

.compare-hint[b-vm9ezix7z3] {
    margin: 0 0 0.5rem;
    font-size: 0.8rem;
    color: var(--bp-text-muted, #8296A9);
}

.compare-col[b-vm9ezix7z3] {
    min-width: 0;
}

/* Durchgehende Trennlinie: Kopf und Feldstapel der rechten Spalte tragen dieselbe Kante. */
.compare-head--right[b-vm9ezix7z3],
.compare-col--right[b-vm9ezix7z3] {
    border-left: 1px solid var(--bp-panel-border, rgba(255, 255, 255, 0.08));
    padding-left: 1.5rem;
}
/* _content/bettERFramework.FiBu.UI/Components/Features/Reconciliation/AllocateAmountFeature.razor.rz.scp.css */
/* Dialog "Betrag zuweisen" — Farben ausschließlich über zentrale CI-Tokens (tokens.css),
   Flächen/Trenner im Navy-Panel-Design (--bp-panel/--bp-panel-border), keine lokale Palette. */

.allocate-overview label[b-zum0k9e54u] {
    font-weight: 600;
    color: var(--bp-text);
    margin-bottom: 0.1rem;
}

/* Betragsblock bewusst hervorgehoben und oben platziert — ruhige Panel-Fläche statt Akzent-Rahmen. */
.allocate-amount-block[b-zum0k9e54u] {
    background: var(--bp-panel);
    border: 1px solid var(--bp-panel-border);
    padding: 0.85rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.allocate-amount-label[b-zum0k9e54u] {
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    font-size: 0.8rem;
    color: var(--bp-text);
}

.allocate-amount-input[b-zum0k9e54u] {
    font-size: 1.1rem;
}

.allocate-quick-actions[b-zum0k9e54u] {
    margin-top: 0.1rem;
}

.allocate-positions[b-zum0k9e54u] {
    border-top: 1px solid var(--bp-panel-border);
    padding-top: 0.75rem;
}

.allocate-positions-hint[b-zum0k9e54u] {
    font-size: 0.8rem;
    color: var(--bp-text-muted);
    margin-bottom: 0.5rem;
}

.allocate-positions-table[b-zum0k9e54u] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.allocate-positions-table th[b-zum0k9e54u],
.allocate-positions-table td[b-zum0k9e54u] {
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid var(--bp-panel-border);
    vertical-align: middle;
}

.allocate-positions-table thead th[b-zum0k9e54u] {
    font-weight: 600;
    text-align: left;
    border-bottom: 2px solid var(--bp-panel-border);
}

.allocate-positions-table .text-end[b-zum0k9e54u] {
    text-align: right;
}

.allocate-qty-input[b-zum0k9e54u] {
    max-width: 6.5rem;
    margin-left: auto;
}

/* Gesperrte (vollständig zugewiesene) Positionen gedimmt darstellen. */
.allocate-row-locked[b-zum0k9e54u] {
    background: var(--bp-panel-hover);
    color: var(--bp-text-muted);
}

.allocate-lock-badge[b-zum0k9e54u] {
    font-size: 0.9rem;
    color: var(--bp-warn);
}

.allocate-account[b-zum0k9e54u] {
    white-space: nowrap;
}

.allocate-account-name[b-zum0k9e54u] {
    color: var(--bp-text-muted);
}

.allocate-positions-sum[b-zum0k9e54u] {
    margin-top: 0.5rem;
    font-weight: 600;
    color: var(--bp-text);
}

/* ABWEICHUNG: --bp-saldo statt --bp-blue — der Marken-Akzent #0A2BFF ist auf der dunklen
   Navy-Fläche als Textfarbe zu kontrastarm; --bp-saldo ist die neutrale Saldo-Signalfarbe. */
.allocate-positions-diff[b-zum0k9e54u] {
    font-weight: 500;
    color: var(--bp-saldo);
}
/* _content/bettERFramework.FiBu.UI/Components/Features/Reconciliation/AssignInvoiceToPaymentFeature.razor.rz.scp.css */
.rec-payment-invoices[b-2x3wvob68i] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--bp-border, rgba(255, 255, 255, 0.1));
}

.rec-payment-invoices__head[b-2x3wvob68i] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.rec-payment-invoices__label[b-2x3wvob68i] {
    font-size: 0.85rem;
    font-weight: 600;
    opacity: 0.8;
}

.rec-payment-invoices__empty[b-2x3wvob68i] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--bp-text-muted);
}

.rec-payment-invoices__row[b-2x3wvob68i] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 14px;
}

.rec-payment-invoices__name[b-2x3wvob68i] {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* _content/bettERFramework.FiBu.UI/Components/Pages/ContractDetails.razor.rz.scp.css */
/* Vertragsdetails: SfCard/SfGrid werden über .body-container automatisch gethemed — hier nur
   Layout-Feinheiten, die vorher als statische Inline-Styles im Markup standen. */

/* ---------- Kopf: Identität + Live-Fakten ---------- */

.contract-head[b-grxsiz8guh] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

/* Bezeichnung neben Nummer/Status: sekundär, aber sofort lesbar. */
.contract-head__title[b-grxsiz8guh] {
    color: var(--bp-text-muted);
    font-size: 1.05rem;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Fakten-Zeile: die vier Antworten, für die man den Vertrag öffnet — ruhig, tabellarisch,
   mit feinen Trennern statt Kacheln (Detailseite, keine Cockpit-KPIs). */
.contract-facts[b-grxsiz8guh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 2.25rem;
    font-size: 0.85rem;
}

.contract-facts__item[b-grxsiz8guh] {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.contract-facts__key[b-grxsiz8guh] {
    color: var(--bp-text-faint, #5E7183);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-family: var(--bp-font-head);
}

.contract-facts__val[b-grxsiz8guh] {
    font-variant-numeric: tabular-nums;
    font-size: 0.95rem;
}

/* Tab-Inhalte: Abstand zum Tab-Strip kommt aus dem Markup (pt-4); der Strip selbst
   bekommt eine ruhige Trennlinie zum Inhalt. */
.contract-tabs[b-grxsiz8guh]  .e-tab-header {
    border-bottom: 1px solid var(--bp-panel-border, rgba(255, 255, 255, 0.08));
}

/* Upload-Bereich für Vertragsdokumente schmal halten (der Uploader würde sonst kartenbreit laufen). */
.contract-upload[b-grxsiz8guh] {
    max-width: 400px;
}

/* Beleg-Kandidaten im Zuordnungs-Dialog: Liste begrenzen und im eigenen Bereich scrollen lassen. */
.contract-invoice-candidates[b-grxsiz8guh] {
    max-height: 420px;
    overflow-y: auto;
}

/* Sidebar-Aktionen: Beschriftung linksbündig — ::deep, weil das button-Element vom SfButton
   gerendert wird und das Scope-Attribut nur der Wrapper aus dieser Komponente trägt. */
.contract-actions[b-grxsiz8guh]  .e-btn {
    text-align: start;
}
/* _content/bettERFramework.FiBu.UI/Components/Pages/Contracts.razor.rz.scp.css */
/* Vertrags-Cockpit: KPI-Kacheln = bp-stat-tile (bp-components.css), SfCard/SfGrid werden
   über .body-container automatisch gethemed — hier nur das Spaltenraster der Kachel-Zeile. */

/* Feste 3 Spalten: erste Zeile = 3 Kacheln, zweite Zeile = die restlichen 2. */
.kpi-grid[b-ext0ryox38] {
    --bp-stat-cols: 3;
    margin-bottom: 1.5rem;
}

@media (max-width: 900px) {
    .kpi-grid[b-ext0ryox38] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .kpi-grid[b-ext0ryox38] {
        grid-template-columns: 1fr;
    }
}
/* _content/bettERFramework.FiBu.UI/Components/Pages/FiBuDashboard.razor.rz.scp.css */
/* FiBu-Übersicht (LandingPage). Dunkle Arbeitsfläche gemäß zentralem Design-System:
   KPI-Kacheln = bp-stat-tile (bp-components.css), SfCards werden über .body-container
   automatisch gethemed — hier nur Seitenlayout + seitenspezifische Feinheiten. */

.fibu-dashboard[b-t4anlhja62] {
    padding: 1.5rem;
    max-width: 1180px;
    margin: 0 auto;
    color: var(--bp-text);
}

.dashboard-loading[b-t4anlhja62] {
    padding: 3rem 1rem;
    text-align: center;
    color: var(--bp-text-muted);
    font-size: 15px;
}

/* ---- KPI-Kacheln (bp-stat-tiles) ---- */
/* Feste 3 Spalten: erste Zeile = 3 Kacheln, zweite Zeile = die restlichen 2. */
.kpi-grid[b-t4anlhja62] {
    --bp-stat-cols: 3;
    margin-bottom: 1.75rem;
}

/* Keine Mobil-Breakpoints: unter 900px greift ohnehin das Desktop-only-Overlay (MainLayout). */

/* Navigierbare Kacheln sind echte Links: Link-Defaults neutralisieren, Affordanz über
   Cursor + ruhigen Flächen-Hover + Fokus-Ring (Tastatur). Kein Schatten, CI. */
a.bp-stat-tile[b-t4anlhja62] {
    text-decoration: none;
    color: inherit;
}

.bp-stat-tile.is-clickable[b-t4anlhja62] {
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.bp-stat-tile.is-clickable:hover[b-t4anlhja62] {
    background: var(--bp-panel-hover);
}

.bp-stat-tile.is-clickable:focus-visible[b-t4anlhja62] {
    outline: 2px solid var(--bp-yellow);
    outline-offset: 2px;
}

/* Statische Perioden-Legende über den Kacheln (ersetzt die früheren Hover-Tooltips). */
.kpi-periods-hint[b-t4anlhja62] {
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--bp-text-muted);
    margin-bottom: 0.4rem;
}

/* Periodenwerte "X / Y / Z" (letzter Monat / laufender Monat / laufendes Jahr) */
.kpi-value--periods[b-t4anlhja62] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.kpi-period-value[b-t4anlhja62] {
    display: inline-block;
    font-size: 1.7rem;
    line-height: 1.1;
    cursor: default;
}

.kpi-sep[b-t4anlhja62] {
    line-height: 1.1;
    color: var(--bp-text-muted);
    font-weight: 400;
}

/* ---- Cashflow-Summen (SfCard wird zentral gethemed, hier nur Innenlayout) ---- */
.cashflow-summary[b-t4anlhja62] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.cashflow-card[b-t4anlhja62] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.cashflow-period[b-t4anlhja62] {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bp-yellow);
    margin-bottom: 0.3rem;
}

.cashflow-row[b-t4anlhja62] {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-variant-numeric: tabular-nums;
    color: var(--bp-text);
}

.cashflow-row.income span:last-child[b-t4anlhja62] {
    color: var(--bp-credit);
    font-weight: 600;
}

.cashflow-row.expense span:last-child[b-t4anlhja62] {
    color: var(--bp-debit);
    font-weight: 600;
}

.cashflow-row.balance[b-t4anlhja62] {
    margin-top: 0.35rem;
    padding-top: 0.4rem;
    border-top: 1px solid var(--bp-panel-border);
    font-weight: 700;
    color: var(--bp-text);
}

.cashflow-row.balance.positive span:last-child[b-t4anlhja62] {
    color: var(--bp-credit);
}

.cashflow-row.balance.negative span:last-child[b-t4anlhja62] {
    color: var(--bp-debit);
}
/* _content/bettERFramework.FiBu.UI/Components/Pages/InvoiceDetails.razor.rz.scp.css */
.invoice-detail-container[b-p7blxy08tu] {
    display: flex;
    gap: 0.5rem;
    flex-direction: column;

    height: 100%;
}

/* Markiert eine einer Transaktion zugewiesene (gesperrte) Position. */
.position-lock-badge[b-p7blxy08tu] {
    margin-right: 0.35rem;
    font-size: 0.9rem;
    align-self: center;
    color: var(--bp-warn);
}

/* Hebt die vom System vorgeschlagene Transaktion in der Zuweisungs-Tabelle farblich hervor.
   !important nötig: das zentrale Grid-Theming (bp-components.css) setzt Zell-Hintergründe
   spezifischer auf transparent/hover — diese semantische Hervorhebung muss darüber liegen. */
[b-p7blxy08tu] .proposal-row td {
    background-color: color-mix(in srgb, var(--bp-success) 14%, transparent) !important;
}


.invoice-detail-header-container[b-p7blxy08tu] {
    width: auto;
}

.invoice-detail-header[b-p7blxy08tu] {
    display: flex;
    gap: 0.5rem;
    justify-content: space-between;
}



.invoice-detail-main-container[b-p7blxy08tu] {
    width: auto;
    flex-grow: 1;

    display: flex;
    gap: 0.5rem;
}

.pdf-viewer-wrapper[b-p7blxy08tu],
.detail-wrapper[b-p7blxy08tu] {
    /* Basically a 50% 50% layout between the two. Otherwise the detail-wrapper would increase in size bc of the flexboxes inside its container */
    flex: 1 1 0;

    width: auto;
    height: auto;

    padding-bottom: 1rem;

}






.validation-statistics[b-p7blxy08tu] {
    color: var(--bp-yellow);
    height: 34px;
    line-height: 34px;
    background-color: var(--bp-panel-hover);
    border: 1px solid var(--bp-yellow);
    border-radius: 4px;
    padding: 0 8px;
}

[b-p7blxy08tu] .CustomWeiter {
    content: url("/Icons/Line-Arrow-Right-1--Streamline-Sharp-Remix.png");
    display: inline-block;
    width: 1em;
    height: 1em;
}

[b-p7blxy08tu] .CustomZurueck {
    content: url("/Icons/Line-Arrow-Left-1--Streamline-Sharp-Remix.png");
    display: inline-block;
    width: 1em;
    height: 1em;
}

[b-p7blxy08tu] .CustomLineLoeschen {
    content: url("/Icons/Recycle-Bin-Yellow.png");
    background-color: transparent;
    border: none;
}


[b-p7blxy08tu] .CustomAdd {
    width: 100%;
    background-color: transparent;
    color: var(--bp-yellow);
    border-color: var(--bp-yellow);
}

[b-p7blxy08tu] .CustomAktualisieren {
    content: url("/Icons/Line-Arrow-Move-Right-1--Streamline-Sharp-Remix.png");
}

[b-p7blxy08tu] .CustomSave {
    content: url("/Icons/Floppy-Disk--Streamline-Sharp-Remix.png");
    display: inline-block;
    width: 1em;
    height: 1em;
}


[b-p7blxy08tu] .swapBusinessPartnerIcon {
    content: url("/Icons/Line-Arrow-Reload-Horizontal-2--Streamline-Sharp-Remix.png");
}


/* ---- Position als flache Sektion (liegt bereits in einer SfCard — keine Karte-in-Karte):
   Beträge oben, Kontierung darunter. Die (auffällige) Trennlinie steht ZWISCHEN den Positionen —
   Kontierung gehört optisch zur Position darüber, nicht zur nächsten. ---- */
.position-card[b-p7blxy08tu] {
    padding: 12px 0 10px 0;
}

.position-card + .position-card[b-p7blxy08tu] {
    border-top: 1px dashed color-mix(in srgb, var(--bp-yellow) 35%, transparent);
}

/* Kontierung immer einzeilig neben dem Label — die Dropdowns schrumpfen statt umzubrechen. */
.kontierung-row[b-p7blxy08tu] {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    margin-top: 10px;
}

.kontierung-label[b-p7blxy08tu] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    color: var(--bp-yellow);
    white-space: nowrap;
    padding-bottom: 8px;
}

.kontierung-field[b-p7blxy08tu] {
    flex: 1 1 0;
    min-width: 0;
}

/* Konto-Dropdown (Nummer + Name) braucht mehr Platz als der Steuerschlüssel. */
.kontierung-field--konto[b-p7blxy08tu] {
    flex-grow: 1.6;
}

/* Kunde-Header: genug Platz rechts, damit der "Leeren"-Button nicht das
   Aufklapp-Icon (Chevron) des verschachtelten Accordions überdeckt. */
[b-p7blxy08tu] .ctm-kunde-clear .e-acrdn-header-content {
    width: 100% !important;
    padding-right: 2.75rem !important;
}

/* ============================================================
   Karte "Zuweisung zu Transaktionen" — Farben ausschließlich über
   zentrale CI-Tokens (tokens.css), keine lokale Palette.
   ============================================================ */

/* Zähler-Badge (Anzahl bestehender Zuweisungen) im Kartenkopf. */
.assignment-count-badge[b-p7blxy08tu] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4rem;
    height: 1.4rem;
    padding: 0 0.4rem;
    background: var(--bp-blue);
    color: var(--bp-white);
    font-size: 0.8rem;
    font-weight: 600;
    border-radius: 0;
}

.assignment-section[b-p7blxy08tu] {
    margin-top: 0.75rem;
}

.assignment-section-title[b-p7blxy08tu] {
    font-weight: 600;
    color: var(--bp-text);
    margin-bottom: 0.4rem;
}

/* Hinweis-/Leerzustandstext (keine Zuweisungen, laden, keine offenen Transaktionen). */
.assignment-empty[b-p7blxy08tu] {
    color: var(--bp-text-muted);
    font-size: 0.9rem;
    padding: 0.4rem 0;
}

.assigned-list[b-p7blxy08tu] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

/* Eine Zeile einer bestehenden Zuweisung — ruhige Trennung über Hintergrund-Tint statt Akzent-Rahmen. */
.assigned-row[b-p7blxy08tu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.4rem 0.6rem;
    background: var(--bp-panel-hover);
    border-radius: 0;
}

.assigned-info[b-p7blxy08tu] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.assigned-date[b-p7blxy08tu] {
    color: var(--bp-text-muted);
    font-variant-numeric: tabular-nums;
}

.assigned-party[b-p7blxy08tu] {
    font-weight: 600;
    color: var(--bp-text);
}

.assigned-amount[b-p7blxy08tu] {
    font-variant-numeric: tabular-nums;
}

/* Kennzeichnung: positionsgenau zugewiesen (Anzahl Positionen) — ruhiges Badge auf dunkler Fläche. */
.assigned-positions[b-p7blxy08tu] {
    background: var(--bp-panel-hover);
    border: 1px solid var(--bp-panel-border);
    color: var(--bp-text-muted);
    font-size: 0.78rem;
    padding: 0.05rem 0.4rem;
    border-radius: 0;
}
/* _content/bettERFramework.FiBu.UI/Components/Pages/InvoiceUpload.razor.rz.scp.css */
.invoice-detail-container[b-1pwk3pll2s] {
    display: flex;
    gap: 0.5rem;
    flex-direction: column;
    /* min- statt Fixhöhe: bei fixer Höhe quetscht Flex alle Karten zusammen und die
       Tabelle malt über Drop-Zone und Kopfkarte (overflow der e-cards ist bewusst visible).
       So wächst der Container mit dem Inhalt und der Body scrollt. */
    min-height: 100%;
}

    /* Karten und Drop-Zone behalten ihre natürliche Höhe (kein Flex-Schrumpfen). */
    .invoice-detail-container > *[b-1pwk3pll2s] {
        flex: 0 0 auto;
    }


.invoice-upload-header[b-1pwk3pll2s] {
    display: flex;
    gap: 0.5rem;
    justify-content: space-between;
}

/* Ampel der Spalte "Zugewiesen" kommt zentral aus bp-components.css
   (.bp-status-light --full/--partial/--none im Markup, wie Reconciliation). */

/* Vier Kacheln füllen die Zeile (3 Status-Kacheln + Upload-Kachel). */
.invoice-status-tiles[b-1pwk3pll2s] {
    --bp-stat-cols: 4;
}

/* „Zugewiesene ausblenden": Schalter + Text vertikal zentriert (Regel ist auf Reconciliation
   scoped und greift hier sonst nicht → Toggle säße oben statt mittig). */
.hide-assigned-toggle[b-1pwk3pll2s] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--bp-text-muted);
}

/* Status-Kacheln sind hier Buttons (klickbare Filter) — Button-Defaults zurücknehmen,
   damit die geteilte bp-stat-tile-Optik unverändert greift. */
.invoice-status-tiles > button.bp-stat-tile[b-1pwk3pll2s] {
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    color: var(--bp-text, #E6EDF3);
}

    .invoice-status-tiles > button.bp-stat-tile:hover[b-1pwk3pll2s] {
        border-color: rgba(255, 255, 255, 0.2);
    }

    /* Aktive Kachel: gelber Rahmen + leichte Gelb-Fläche (Filter sichtbar im Sichtfeld). */
    .invoice-status-tiles > button.bp-stat-tile.invoice-status-tile--on[b-1pwk3pll2s] {
        border-color: rgba(230, 255, 3, 0.45);
        background: rgba(230, 255, 3, 0.05);
    }

/* ---------- Aktions-Dock: Kontextzustand (angeklickter Beleg) ---------- */

.inv-dock-head-text[b-1pwk3pll2s] {
    min-width: 0;
}

/* Feld-Check: welche OCR-Felder sind belegt, welche fehlen noch. */
.inv-fieldcheck[b-1pwk3pll2s] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 0 0 auto;
}

.inv-fieldcheck__row[b-1pwk3pll2s] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 3px 0;
    font-size: 12.5px;
}

.inv-fieldcheck__key[b-1pwk3pll2s] {
    flex: 0 0 110px;
    color: var(--bp-text-faint, #5E7183);
}

.inv-fieldcheck__val[b-1pwk3pll2s] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.inv-fieldcheck__row .e-icons[b-1pwk3pll2s] {
    margin-left: auto;
    font-size: 14px;
}

.inv-fieldcheck__ok[b-1pwk3pll2s] {
    color: var(--bp-success, #42C06B);
}

.inv-fieldcheck__warn[b-1pwk3pll2s] {
    color: var(--bp-warn, #F0B429);
}

/* PDF-Vorschau mit fester Höhe — die globalen Aktionen laufen darunter weiter, das Dock
   scrollt bei Bedarf. overflow:hidden: der Viewer rendert intern höher als sein Container
   und würde die Aktionen darunter sonst überdecken. */
.inv-context-viewer[b-1pwk3pll2s] {
    flex: 0 0 auto;
    height: 42vh;
    overflow: hidden;
    position: relative;
}

/* Upload-Kachel: das eingebettete Drop-Feld füllt die Kachel (gestrichelter CI-Rahmen). */
.invoice-upload-tile[b-1pwk3pll2s]  .e-upload {
    width: 100%;
    margin: 0.4rem 0 0;
    border: 1.5px dashed rgba(230, 255, 3, 0.4);
    border-radius: var(--bp-radius-ctl, 8px);
    background: transparent;
}

.invoice-upload-tile[b-1pwk3pll2s]  .e-file-select-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
}
/* _content/bettERFramework.FiBu.UI/Components/Pages/Kontenrahmen.razor.rz.scp.css */
/* Kontenrahmen — nur Seiten-Layout; Kacheln/Grid/Leerzustand kommen aus bp-components.css. */

/* Grouping-Ablagezone ausblenden (Gruppierung ist fest auf die Kontenklasse eingestellt). */
[b-nbkjqx5sga] .e-grid .e-groupdroparea.e-grouped {
    display: none;
}

/* Drei Kacheln füllen die Zeile (Aktive · Eigene · Inaktive). */
.konten-tiles[b-nbkjqx5sga] {
    --bp-stat-cols: 3;
    margin-bottom: 0.5rem;
}

/* Kacheln sind hier Buttons (klickbare Filter) — Button-Defaults zurücknehmen,
   damit die geteilte bp-stat-tile-Optik unverändert greift (Muster Belegeingang). */
.konten-tiles > button.bp-stat-tile[b-nbkjqx5sga] {
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    color: var(--bp-text, #E6EDF3);
}

    .konten-tiles > button.bp-stat-tile:hover[b-nbkjqx5sga] {
        border-color: rgba(255, 255, 255, 0.2);
    }

    /* Aktive Kachel: gelber Rahmen + leichte Gelb-Fläche. */
    .konten-tiles > button.bp-stat-tile.konten-tile--on[b-nbkjqx5sga] {
        border-color: rgba(230, 255, 3, 0.45);
        background: rgba(230, 255, 3, 0.05);
    }

/* SKR-Auswahl kompakt halten (Dropdown liefe sonst kartenbreit). */
.konten-chart-select[b-nbkjqx5sga] {
    min-width: 220px;
    max-width: 280px;
}
/* _content/bettERFramework.FiBu.UI/Components/Pages/Mapping.razor.rz.scp.css */
.mapping-container[b-3555olwa6s] {
    display: flex;
    gap: 0.5rem;
    flex-direction: column;
    height: 100%;
}

/* Betragsfarben kommen zentral aus bp-components.css (.bp-amount--credit/--debit im Markup). */

.mapping-header-container[b-3555olwa6s] {
    width: auto;
}

.mapping-header[b-3555olwa6s] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

/* Drei gleich breite Spalten, damit die mittlere Navigation immer zentriert
   bleibt und nicht verrutscht, wenn sich rechts der Restbetrag in der Breite ändert. */
.mapping-header > *[b-3555olwa6s] {
    flex: 1 1 0;
}

.mapping-header-nav[b-3555olwa6s] {
    text-align: center;
}

.mapping-header-remaining[b-3555olwa6s] {
    text-align: right;
}



.mapping-main-container[b-3555olwa6s] {
    width: auto;
    flex-grow: 1;
    /* min-height: 0 bricht die "min-height: auto"-Kette von Flexbox — sonst diktiert der
       Inhalt (z. B. der PDF-Viewer) die Höhe statt des verfügbaren Platzes. */
    min-height: 0;
    display: flex;
    gap: 0.5rem;

    flex-direction: column;
    padding-bottom: 1rem;
}


.mapping-existing-data-container[b-3555olwa6s] {
    width: auto;
    flex-basis: 20%;
    max-height: 156px;

    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    justify-content: space-between;
}

.transaction-data[b-3555olwa6s],
.mapped-invoices[b-3555olwa6s] {
    /* Echtes 50/50: ohne min-width: 0 gewinnt die intrinsische Breite des Grids
       und drückt die Transaktions-Infofelder zusammen. */
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    height: 100%;
}

    /* Layout, kein Theming: Card-Inhalt muss die Flex-Höhe der Zeile füllen;
       !important nötig gegen Syncfusions eigene Höhenangabe am e-card-content. */
    .transaction-data[b-3555olwa6s]  .e-card .e-card-content,
    .mapped-invoices[b-3555olwa6s]  .e-card .e-card-content {
        height: 100% !important;
    }




/* --- New Invoices --- */
.mapping-new-data-container[b-3555olwa6s] {
    width: auto;
    /* flex: 1 1 0 + min-height: 0: die Zeile füllt exakt den Restplatz — der PDF-Viewer
       (Height="100%") löst dagegen auf und kann die Datensatzliste nicht mehr strecken. */
    flex: 1 1 0;
    min-height: 0;

    display: flex;
    flex-direction: row;
    gap: 0.5rem;
}

.new-invoice-list[b-3555olwa6s] {
    flex-basis: 100%;
    transition: flex-basis 0.1s ease-in-out;
    min-width: 0;
    min-height: 0;

    display: flex;
    flex-direction: column;
}

    /* Layout, kein Theming: Karte + Inhalt strecken sich auf die volle Panelhöhe (s.o.). */
    .new-invoice-list[b-3555olwa6s]  .e-card {
        height: 100% !important;
    }
    .new-invoice-list[b-3555olwa6s]  .e-card .e-card-content {
        height: 100% !important;
    }


    .new-invoice-list.has-detail[b-3555olwa6s] {
        flex-basis: 50%;
    }



.new-invoice-detail-panel[b-3555olwa6s] {
    flex-basis: 50%;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* Lange Kreditor-/Debitor-Namen kappen statt das Spaltenlayout zu sprengen;
   der volle Name bleibt über den title-Tooltip erreichbar. */
[b-3555olwa6s] .cell-ellipsis {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

    /* Layout, kein Theming: PDF-Viewer braucht die volle Panelhöhe (s.o.). */
    .new-invoice-detail-panel[b-3555olwa6s]  .e-card {
        height: 100% !important;
    }

        .new-invoice-detail-panel[b-3555olwa6s]  .e-card .e-card-content {
            height: 100% !important;
        }


    .new-invoice-detail-panel-header[b-3555olwa6s] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
    }



[b-3555olwa6s] #MappedInvoiceGrid .e-gridheader .e-columnheader {
    display: none;
}

/* --- Zugewiesener Vertrag (ersetzt die Rechnungs-Tabelle, Vertrag ↔ Rechnung exklusiv) --- */
.mapped-contract[b-3555olwa6s] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    height: 100%;
    overflow-y: auto;
}

.mapped-contract-label[b-3555olwa6s] {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bp-yellow);
}

.mapped-contract-row[b-3555olwa6s] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 14px;
}

.mapped-contract-meta[b-3555olwa6s] {
    opacity: 0.7;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* Transaktionsdaten sind rein informativ – kein Klick-/Hover-Effekt, normales Aussehen */
[b-3555olwa6s] .transaction-readonly-fields .e-input-group,
[b-3555olwa6s] .transaction-readonly-fields .e-float-input {
    pointer-events: none;
    cursor: default;
}

/* Sonderfall (kein Auto-Theming): Syncfusion dimmt Disabled-Felder per opacity/eigener Textfarbe —
   hier bewusst neutralisiert, damit die Felder wie normale Anzeige wirken. */
[b-3555olwa6s] .transaction-readonly-fields .e-disabled,
[b-3555olwa6s] .transaction-readonly-fields .e-input-group.e-disabled,
[b-3555olwa6s] .transaction-readonly-fields .e-float-input.e-disabled {
    opacity: 1 !important;
}

/* color: inherit lässt zudem die zentralen Betragsfarben (.bp-amount--credit/--debit am Wrapper)
   in das disabled Input durchgreifen. */
[b-3555olwa6s] .transaction-readonly-fields .e-disabled input,
[b-3555olwa6s] .transaction-readonly-fields .e-input-group.e-disabled input {
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
}
/* _content/bettERFramework.FiBu.UI/Components/Pages/Reconciliation.razor.rz.scp.css */
/* Reconciliation — nur SEITEN-Layout. Alle wiederverwendbaren Bausteine (Cards, Kacheln, Donut,
   Grid-Theme, Suche, Ampel/Betrag) kommen zentral aus css/bp-components.css über die bp-*-Klassen. */

.reconciliation[b-wffdjjun0e] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: 100%;
    padding: 1rem 1rem 0 0;
}

/* Kopfzeile: Datumsfilter links, Suche rechts — Seiten-Aktionen wohnen im Aktions-Dock. */
.rec-toolbar[b-wffdjjun0e] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.rec-toolbar__filter[b-wffdjjun0e] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.rec-toolbar__range[b-wffdjjun0e] {
    font-size: 0.85rem;
    color: var(--bp-text-muted);
    font-variant-numeric: tabular-nums;
}

/* Drei Kacheln füllen die Zeile (Kontostand kombiniert · Zuordnungsquote · Upload). */
.rec-stat-tiles[b-wffdjjun0e] {
    --bp-stat-cols: 3;
}

/* Zeitraum-Kennzahlen (Einnahmen/Ausgaben/Saldo) kompakt in der Kontostand-Kachel;
   der große Wert oben ist der IMMER aktuelle Kontostand. */
.rec-period[b-wffdjjun0e] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: auto;
}

.rec-period__row[b-wffdjjun0e] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
}

.rec-period__key[b-wffdjjun0e] {
    flex: 0 0 auto;
    color: var(--bp-text-muted);
}

.rec-period__val[b-wffdjjun0e] {
    margin-left: auto;
    white-space: nowrap;
}

/* Mini-Sparkline am Zeilenende (nutzt die bp-spark-Balken in verkleinerter Box). */
.rec-period__spark[b-wffdjjun0e] {
    flex: 0 0 64px;
    height: 16px;
    margin-top: 0;
}

.rec-period__row--saldo[b-wffdjjun0e] {
    margin-top: 3px;
    padding-top: 5px;
    border-top: 1px solid var(--bp-panel-border);
    font-weight: 600;
}

/* Inhaltszeile unter den Kacheln: Grid links, optionales Beleg-Panel rechts */
.rec-content[b-wffdjjun0e] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    gap: 1rem;
}

/* Grid füllt die Restbreite; overflow sichtbar, damit der Excel-Filter-Dialog nicht abgeschnitten wird */
.rec-grid[b-wffdjjun0e] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    overflow: visible;
    padding: 0.35rem 0.6rem 0.6rem;
}

/* Zelltexte (Zweck, Geschäftspartner) dürfen die volle Spaltenbreite nutzen — das zentrale
   220px-Limit von .bp-ellipsis würde den Text sonst abschneiden, obwohl die Spalte breiter ist
   (die Geschäftspartner-Spalte streckt sich bis zum rechten Grid-Rand). */
.rec-grid[b-wffdjjun0e]  .e-rowcell .bp-ellipsis {
    max-width: 100%;
}

/* Inhaltswechsel im Dock (Beleg → Vertrag → Hinweis): kurzer Fade statt hartem Umschlag. */
@keyframes rec-receipt-content-in-b-wffdjjun0e {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* PDF-Vorschau mit fester Höhe — die globalen Aktionen laufen darunter weiter, das Dock
   scrollt bei Bedarf. overflow:hidden: der Viewer rendert intern höher als sein Container
   und würde die Aktionen darunter sonst überdecken. */
.rec-receipt-viewer[b-wffdjjun0e] {
    flex: 0 0 auto;
    height: 42vh;
    overflow: hidden;
    position: relative;
}

/* Der PdfViewer schluckt Klicks selbst; diese transparente Fläche fängt den Klick fürs Vergrößern ab. */
.rec-receipt-viewer__click-overlay[b-wffdjjun0e] {
    position: absolute;
    inset: 0;
    z-index: 1;
}

/* Vertragszuordnung im Panel (Vertrag ↔ Rechnung exklusiv, Optik wie auf der Mapping-Seite) */
.rec-receipt-contract[b-wffdjjun0e] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    overflow-y: auto;
    animation: rec-receipt-content-in-b-wffdjjun0e 150ms ease-out;
}

.rec-receipt-contract__row[b-wffdjjun0e] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 14px;
}

.rec-receipt-contract__meta[b-wffdjjun0e] {
    opacity: 0.7;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.rec-receipt-hint[b-wffdjjun0e] {
    color: var(--bp-text-muted);
    font-size: 0.9rem;
    animation: rec-receipt-content-in-b-wffdjjun0e 150ms ease-out;
}

    .rec-receipt-hint p[b-wffdjjun0e] {
        margin: 0 0 0.35rem;
    }

/* Aktionspanel für offene Transaktionen: Inline-Zuordnung ohne Seitenwechsel. */
.rec-action-panel[b-wffdjjun0e] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    overflow-y: auto;
    animation: rec-receipt-content-in-b-wffdjjun0e 150ms ease-out;
}

.rec-action-panel__summary[b-wffdjjun0e] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-variant-numeric: tabular-nums;
}

.rec-action-panel__meta[b-wffdjjun0e] {
    color: var(--bp-text-muted);
    font-size: 0.85rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rec-action-panel__section-label[b-wffdjjun0e] {
    margin-top: 0.5rem;
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--bp-text-muted);
}

.rec-action-proposal[b-wffdjjun0e] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--bp-panel-border);
    border-radius: var(--bp-radius-lg);
}

.rec-action-proposal__info[b-wffdjjun0e] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.rec-action-proposal__title[b-wffdjjun0e] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rec-action-proposal__meta[b-wffdjjun0e] {
    color: var(--bp-text-muted);
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
}

/* Beste Übereinstimmung: gelber Rahmen + sichtbare Begründung (statt nur Tooltip). */
.rec-action-proposal--best[b-wffdjjun0e] {
    border-color: rgba(230, 255, 3, 0.45);
    background: rgba(230, 255, 3, 0.05);
}

.rec-action-proposal__reason[b-wffdjjun0e] {
    color: var(--bp-yellow);
    font-size: 0.78rem;
}

/* Status-Spalte: Ampel-Punkt + Wort (Farbe allein trägt die Information nicht). */
.rec-status[b-wffdjjun0e] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 0.85rem;
    color: var(--bp-text-muted);
    white-space: nowrap;
}

.rec-action-panel__actions[b-wffdjjun0e] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Barrierefreiheit: bei reduzierter Bewegung erscheint das Panel ohne Slide/Fade sofort. */
@media (prefers-reduced-motion: reduce) {
    .rec-receipt-panel[b-wffdjjun0e],
    .rec-receipt-contract[b-wffdjjun0e],
    .rec-receipt-hint[b-wffdjjun0e],
    .rec-action-panel[b-wffdjjun0e] {
        animation: none;
    }
}

/* Aufklappbare Detailansicht einer Transaktion (seitenspezifisch) */
[b-wffdjjun0e] .transaction-detail {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    padding: 0.75rem 1rem;
}

[b-wffdjjun0e] .transaction-detail-item {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

[b-wffdjjun0e] .transaction-detail-item label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bp-text-muted);
}

/* ---------- Aus dem Development-Merge übernommene neue Bausteine ---------- */

/* Schalter „Zugewiesene ausblenden" (Toolbar) */
.hide-assigned-toggle[b-wffdjjun0e] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--bp-text-muted);
}

/* Upload-Kachel: Button der eingebetteten Feature-Komponente füllt die Kachel */
.bp-stat-tile--accent[b-wffdjjun0e]  .e-btn {
    width: 100%;
    margin-top: 0.4rem;
}

/* Upload-Kachel: das eingebettete Drop-Feld füllt die Kachel (gestrichelter CI-Rahmen). */
.rec-upload-tile[b-wffdjjun0e]  .e-upload {
    width: 100%;
    margin: 0.4rem 0 0;
    border: 1.5px dashed rgba(230, 255, 3, 0.4);
    border-radius: var(--bp-radius-ctl, 8px);
    background: transparent;
}

.rec-upload-tile[b-wffdjjun0e]  .e-file-select-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
}


/* Blätter-Leiste bei mehreren zugeordneten Belegen im Seitenpanel */
.receipt-pager[b-wffdjjun0e] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.receipt-pager__label[b-wffdjjun0e] {
    font-variant-numeric: tabular-nums;
}
