/* /Pages/Auswertungen/Kontingente.razor.rz.scp.css */
.hinweis[b-n1z0tt3wyz] {
    color: #555;
    margin-bottom: 1rem;
}

/* Grundlayout und die Spaltenköpfe kommen aus der globalen .grid-Tabelle (app.css) –
   die Köpfe rendert SortTh, dort greift dieses seitenbezogene CSS nicht. */
.kontingent-tab td.num[b-n1z0tt3wyz] {
    text-align: right;
    white-space: nowrap;
}

.kundenzeile[b-n1z0tt3wyz] {
    cursor: pointer;
    font-weight: 600;
}

.kundenzeile:hover[b-n1z0tt3wyz] {
    background: #f2f6ff;
}

.kundenzeile .rest[b-n1z0tt3wyz] {
    font-weight: 700;
}

.pfeil[b-n1z0tt3wyz] {
    display: inline-block;
    width: 1em;
    color: #888;
}

/* Zeile, zu der zurückgesprungen wurde – kurz erkennbar machen, damit man sie sofort findet.
   Der Rahmen liegt auf den Zellen, weil <tr> keine eigene Rahmenkante zeichnet. */
.kundenzeile.ruecksprung td[b-n1z0tt3wyz] {
    border-top: 2px solid #1f6fd0;
    border-bottom: 2px solid #1f6fd0;
}

.kundenzeile.ruecksprung td:first-child[b-n1z0tt3wyz] {
    border-left: 3px solid #1f6fd0;
}

.kundenzeile.warn[b-n1z0tt3wyz] {
    background: #fff6e0;
}

.kundenzeile.warn .rest[b-n1z0tt3wyz] {
    color: #b26a00;
}

.kundenzeile.krit[b-n1z0tt3wyz] {
    background: #fde7e7;
}

.kundenzeile.krit .rest[b-n1z0tt3wyz] {
    color: #b00020;
}

.projektzeile[b-n1z0tt3wyz] {
    cursor: pointer;
}

.projektzeile td[b-n1z0tt3wyz] {
    font-weight: 400;
    color: #555;
    background: #fafafa;
}

.projektzeile:hover td[b-n1z0tt3wyz] {
    background: #f2f6ff;
}

.projektlink[b-n1z0tt3wyz] {
    color: #1a4d8f;
    text-decoration: underline;
}

/* Sprungziele (Kunde/Projekt). Der Klick darf die Zeile nicht auf-/zuklappen –
   das verhindert @onclick:stopPropagation in der Zelle. */
.kont-aktionen[b-n1z0tt3wyz] {
    white-space: nowrap;
}

.kont-aktionen button[b-n1z0tt3wyz] {
    background: #fff;
    border: 1px solid #9db6d4;
    border-radius: 3px;
    color: #1a4d8f;
    cursor: pointer;
    font-size: 0.85rem;
    padding: 0.15rem 0.5rem;
}

.kont-aktionen button:hover[b-n1z0tt3wyz] {
    background: #e8f0fb;
}
/* /Pages/Auswertungen/KundenAuswertung.razor.rz.scp.css */
/* Kopfwerte über der Tabelle: Gesamtstunden und Aufteilung nach Abrechnungsstand.
   Sie beziehen sich immer auf den eingestellten Filter (Zeitraum/Kunde/Projekt). */
.kopfwerte[b-ba3j8set8k] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 0.2rem 0 0.9rem;
}

.kopfwert[b-ba3j8set8k] {
    background: #f5f7fa;
    border: 1px solid #dde1e5;
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 9rem;
    padding: 0.45rem 0.8rem;
}

.kw-label[b-ba3j8set8k] {
    color: #555;
    font-size: 0.85rem;
}

.kw-zahl[b-ba3j8set8k] {
    font-size: 1.25rem;
    font-weight: 700;
    text-align: right;
}

.kw-zahl.verrechnet[b-ba3j8set8k] {
    color: #1a6b3c;
}

.kw-zahl.nichtverrechnet[b-ba3j8set8k] {
    color: #b26a00;
}

/* Zahlenspalten rechtsbündig (die Köpfe kommen über SortTh Klasse="num" aus app.css) */
td.num[b-ba3j8set8k] {
    text-align: right;
    white-space: nowrap;
}

/* Spalte mit den PDF-Knöpfen – schmal halten und nicht umbrechen */
.pdf-spalte[b-ba3j8set8k] {
    text-align: right;
    white-space: nowrap;
    width: 1%;
}

.pdf-spalte button + button[b-ba3j8set8k] {
    margin-left: 0.3rem;
}

.vorschau-aktionen[b-ba3j8set8k] {
    display: flex;
    gap: 0.4rem;
    white-space: nowrap;
}

.pdf-spalte button[b-ba3j8set8k],
.vorschau-aktionen button[b-ba3j8set8k] {
    background: #fff;
    border: 1px solid #9db6d4;
    border-radius: 3px;
    color: #1a4d8f;
    cursor: pointer;
    font-size: 0.85rem;
    padding: 0.15rem 0.5rem;
}

.pdf-spalte button:hover:enabled[b-ba3j8set8k],
.vorschau-aktionen button:hover:enabled[b-ba3j8set8k] {
    background: #e8f0fb;
}

/* Statusspalte der Einzelbuchungen */
td.verrechnet[b-ba3j8set8k] {
    color: #1a6b3c;
}

td.nichtverrechnet[b-ba3j8set8k] {
    color: #b26a00;
    white-space: nowrap;
}
/* /Pages/Auswertungen/Mitarbeiter.razor.rz.scp.css */
/* Zahlenspalten rechtsbündig. Die Kopfzellen kommen aus SortTh und werden global über
   .grid th.num gestylt, die Datenzellen hier. */
td.num[b-ugnnlo0jd6] {
    text-align: right;
    white-space: nowrap;
}
/* /Pages/Projekte.razor.rz.scp.css */
/* Der Projektdialog trägt neben den Stammdaten die komplette Bestellhistorie –
   deshalb breiter und höher als der Standarddialog (app.css: 720px / 85vh). */
.projektbox[b-imcaebabte] {
    max-width: 980px;
    max-height: 94vh;
}

.bestellungen[b-imcaebabte] {
    margin-top: 1rem;
    border: 1px solid #e2e2e2;
    border-radius: 6px;
    padding: 0.6rem 0.8rem;
}

.bestellungen > legend[b-imcaebabte] {
    padding: 0 0.4rem;
    font-weight: 600;
}

.bestellung-neu[b-imcaebabte] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 0.6rem;
}

.bestellung-neu input[type="number"][b-imcaebabte] {
    width: 7rem;
}

.bestellung-neu input:not([type])[b-imcaebabte],
.bestellung-neu input[type="text"][b-imcaebabte] {
    flex: 1 1 12rem;
}

/* Eigener Scrollbereich: zeigt rund ein Dutzend Bestellungen, ohne dass der
   Dialog beliebig lang wird. Kopf- und Summenzeile bleiben beim Scrollen stehen. */
.bestellung-liste[b-imcaebabte] {
    max-height: min(26rem, 50vh);
    overflow-y: auto;
}

.bestellung-tab[b-imcaebabte] {
    width: 100%;
    border-collapse: collapse;
}

.bestellung-tab thead th[b-imcaebabte] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #fff;
    /* echte Rahmen scrollen bei position:sticky weg – daher als Schatten */
    box-shadow: inset 0 -1px 0 #ddd;
}

.bestellung-tab tfoot td[b-imcaebabte] {
    position: sticky;
    bottom: 0;
    z-index: 1;
    background: #fff;
}

.bestellung-tab th[b-imcaebabte],
.bestellung-tab td[b-imcaebabte] {
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid #eee;
    text-align: left;
}

.bestellung-tab th.num[b-imcaebabte],
.bestellung-tab td.num[b-imcaebabte] {
    text-align: right;
    white-space: nowrap;
}

.bestellung-tab .erfasst[b-imcaebabte] {
    color: #777;
    font-size: 0.85em;
    white-space: nowrap;
}

.bestellung-tab .summe td[b-imcaebabte] {
    font-weight: 700;
    border-bottom: none;
    box-shadow: inset 0 2px 0 #ccc;
}

.bestellung-tab .loeschen[b-imcaebabte] {
    border: none;
    background: transparent;
    color: #b00020;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
}

.hinweis-bestellung[b-imcaebabte] {
    margin-top: 1rem;
    color: #777;
    font-style: italic;
}

/* „davon verbraucht" mit Korrektur-Schaltfläche direkt daneben */
.verbrauch-zeile[b-imcaebabte] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
}

.verbrauch-zeile input[b-imcaebabte] {
    flex: 1 1 auto;
    min-width: 0;
}

.verbrauch-zeile button[b-imcaebabte] {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* Korrekturblock – deutlich abgesetzt, weil er am sonst gesperrten Wert dreht. */
.verbrauch-korrektur[b-imcaebabte] {
    margin-top: 0.8rem;
    border: 1px solid #e0b070;
    background: #fff9ef;
    border-radius: 6px;
    padding: 0.6rem 0.8rem;
}

.verbrauch-korrektur > legend[b-imcaebabte] {
    padding: 0 0.4rem;
    font-weight: 600;
}

.verbrauch-korrektur .hinweis[b-imcaebabte] {
    margin: 0 0 0.6rem 0;
}
