/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* Blazor-Fallback-Fehlerleiste (die einzige hier gerenderte, nicht-MudBlazor-gestylte Fläche).
   Der übrige Shell wird vollständig über MudLayout/MudAppBar/MudDrawer + das MudTheme gestylt. */
#blazor-error-ui[b-dhe2dzmknk] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

/* Seitenrand im Blatt nach den Responsive-Stufen aus docs/audit/72 (A ≥1366 · B · C · D). */
.atrium-page-shell[b-dhe2dzmknk] {
    box-sizing: border-box;
    margin: 0 auto;
    max-width: 1440px;
    padding: 32px 32px 40px;
    width: 100%;
    min-width: 0;
}

@media (max-width: 1365.98px) {
    .atrium-page-shell[b-dhe2dzmknk] { padding: 24px 24px 32px; }
}

@media (max-width: 1023.98px) {
    .atrium-page-shell[b-dhe2dzmknk] { padding: 20px 20px 28px; }
}

@media (max-width: 767.98px) {
    .atrium-page-shell[b-dhe2dzmknk] { padding: 16px 16px 24px; }
}

.atrium-cad-shell[b-dhe2dzmknk] {
    box-sizing: border-box;
    height: calc(100dvh - var(--mud-appbar-height) - 10px);
    min-height: 560px;
    overflow: hidden;
    width: 100%;
}

@media (max-width: 959.98px) {
    .atrium-cad-shell[b-dhe2dzmknk] {
        height: auto;
        min-height: calc(100dvh - var(--mud-appbar-height));
        overflow: visible;
    }
}

    #blazor-error-ui .dismiss[b-dhe2dzmknk] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Pages/AdminFeatures.razor.rz.scp.css */
/* Feature-Verwaltung als Einstellungsliste (Designsystem „Plankopf“): je Schalter eine Zeile mit Haarlinie,
   Name + Hinweis-Plaketten, darunter die Erklärung in der gedämpften Textfarbe. */
.feat-group + .feat-group[b-k90wps15l0] { margin-top: 32px; }

.feat-list[b-k90wps15l0] { list-style: none; margin: 0; padding: 0; }
.feat-row[b-k90wps15l0] { padding: 10px 16px 12px; }
.feat-row + .feat-row[b-k90wps15l0] { border-top: 1px solid var(--atr-border); }

.feat-main[b-k90wps15l0] { display: flex; align-items: flex-start; gap: 12px; }
.feat-text[b-k90wps15l0] { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding-top: 7px; }
.feat-label[b-k90wps15l0] { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; font-weight: 500; color: var(--atr-text); }
.feat-desc[b-k90wps15l0] { font-size: .8125rem; line-height: 1.5; color: var(--atr-text-2); }

/* Mitarbeiter-Sperre bündig unter dem Text (Breite des Schalters eingerückt). */
.feat-extra[b-k90wps15l0] { margin: 8px 0 2px 71px; max-width: 480px; }

@media (max-width: 599.98px) {
    .feat-extra[b-k90wps15l0] { margin-left: 0; }
}
/* /Components/Pages/Agenda.razor.rz.scp.css */
/* Kalender-Werkzeugleiste (Designsystem „Plankopf“): keine Karte, eine ruhige Zeile. Sie darf nur an EINER
   Stelle umbrechen – zwischen Ansichtswahl/Navigation und Umfang –, die inneren Gruppen bleiben zusammen
   (Pfeile ohne Zeitangabe wären sinnlos). Auf dem Telefon stehen sie untereinander, ab Tablet nebeneinander. */
.cal-toolbar[b-8v6fog1m3q] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 16px;
    margin-bottom: 16px;
}

.cal-toolbar__nav[b-8v6fog1m3q] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
}

.cal-toolbar__period[b-8v6fog1m3q] {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* „Heute“ so hoch wie Segmentwahl und Ansicht-Auswahl daneben (40 px, wie in allen Werkzeugleisten). */
.cal-toolbar__period[b-8v6fog1m3q]  .mud-button-root:not(.mud-icon-button) {
    min-height: 40px;
}

.cal-toolbar__label[b-8v6fog1m3q] {
    margin-left: 8px;
    font-size: 1.0625rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.cal-toolbar__scope[b-8v6fog1m3q] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Legende: Farbpunkt + Bezeichnung, wie auf den Terminen. */
.cal-legend[b-8v6fog1m3q] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 14px;
    margin-top: 12px;
    font-size: .75rem;
    color: var(--atr-text-2);
}

.cal-legend__title[b-8v6fog1m3q] {
    font-weight: 500;
}

.cal-legend__item[b-8v6fog1m3q] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.cal-legend__item[b-8v6fog1m3q]::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ev);
}
/* /Components/Pages/AssignmentBoard.razor.rz.scp.css */
/* Zuweisungs-Board als vertikale Swimlanes (kein horizontales Scrollen) — theme-getrieben */
.board[b-jijzlrg2fi] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Eine Zeile je Mitarbeiter, klar getrennt */
.lane[b-jijzlrg2fi] {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 10px;
    background: color-mix(in srgb, var(--mud-palette-text-primary) 3%, var(--mud-palette-surface));
    padding: 8px 10px;
}
.lane-unassigned[b-jijzlrg2fi] {
    background: color-mix(in srgb, var(--mud-palette-warning) 10%, var(--mud-palette-surface));
    border-color: color-mix(in srgb, var(--mud-palette-warning) 45%, var(--mud-palette-lines-default));
}

.lane-head[b-jijzlrg2fi] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
    padding: 0 2px;
}
/* Avatar und Ausblenden-Knopf sind Mud-Komponenten – ihre Wurzel erreicht scoped CSS nur mit ::deep. */
.lane-head[b-jijzlrg2fi]  .lane-avatar { width: 22px; height: 22px; font-size: .6875rem; }
.lane-head .lane-name[b-jijzlrg2fi] {
    font-weight: 700;
    font-size: .85rem;
    color: var(--mud-palette-text-primary);
}
/* Ausblenden-Knopf: nur beim Überfahren der Zeile sichtbar */
.lane-head[b-jijzlrg2fi]  .lane-hide {
    flex: none;
    opacity: 0;
    transition: opacity .12s ease;
    width: 22px; height: 22px;
}
.lane:hover .lane-head[b-jijzlrg2fi]  .lane-hide,
.lane-head[b-jijzlrg2fi]  .lane-hide:focus-visible { opacity: .7; }
.lane-head[b-jijzlrg2fi]  .lane-hide:hover { opacity: 1; }
.lane-head[b-jijzlrg2fi]  .lane-hide .mud-icon-root { font-size: 15px; }
.lane-head .lane-count[b-jijzlrg2fi] {
    margin-left: auto;
    flex: none;
    font-size: .7rem;
    font-weight: 700;
    line-height: 1;
    padding: 2px 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-primary) 14%, var(--mud-palette-surface));
    color: var(--mud-palette-primary);
}

/* Drop-Bereich: Kacheln fließen nebeneinander und BRECHEN UM (kein Seitwärts-Scroll). */
[b-jijzlrg2fi] .zone {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    align-content: flex-start;
    gap: 8px;
    min-height: 44px;
    border-radius: 6px;
    transition: background-color .12s ease;
}
[b-jijzlrg2fi] .zone.zone-hover {
    background: color-mix(in srgb, var(--mud-palette-primary) 12%, transparent);
    outline: 2px dashed var(--mud-palette-primary);
    outline-offset: -2px;
}
.zone-empty[b-jijzlrg2fi] {
    margin: 4px 2px 2px;
    font-size: .75rem;
    color: var(--atr-text-2);
}

/* Projektkachel — feste Breite, damit die Kacheln als sauberes Raster umbrechen */
.card[b-jijzlrg2fi] {
    width: 212px;
    max-width: 100%;
    background: var(--mud-palette-surface);
    border: 1px solid var(--atr-border);
    border-radius: var(--atr-radius-control);
    padding: 6px 10px 8px;
    cursor: grab;
    box-shadow: none;
    transition: border-color .16s ease, box-shadow .2s cubic-bezier(.16, 1, .3, 1), transform .2s cubic-bezier(.16, 1, .3, 1);
}
.card:hover[b-jijzlrg2fi] {
    border-color: color-mix(in srgb, var(--atr-text-3) 70%, var(--atr-border));
    box-shadow: var(--atr-shadow-popover);
}
/* Aufnehmen — der eine „authored moment" des Boards: greift man ein Projekt, hebt sich die
   Kachel spürbar an (Tiefe über Schatten, minimale Neigung wie eine angehobene Karte). Reiner
   CSS-Zustand, kein Server-Round-Trip; beim Loslassen klingt sie über dieselbe Kurve zurück. */
.card:active[b-jijzlrg2fi] {
    cursor: grabbing;
    transform: scale(1.03) rotate(-.5deg);
    box-shadow: var(--atr-shadow-dialog);
    border-color: color-mix(in srgb, var(--atr-text-3) 70%, var(--atr-border));
}

.card-top[b-jijzlrg2fi] {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 2px;
}
.card-no[b-jijzlrg2fi] {
    font-size: .68rem;
    font-weight: 700;
    color: var(--mud-palette-text-secondary);
}
.card-status[b-jijzlrg2fi] {
    margin-left: auto;
    font-size: .62rem;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 999px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100px;
}
.card-title[b-jijzlrg2fi] {
    font-size: .8rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--mud-palette-text-primary);
    word-break: break-word;
}
.card-customer[b-jijzlrg2fi] {
    display: flex;
    align-items: center;
    gap: 3px;
    margin-top: 2px;
    font-size: .7rem;
    color: var(--mud-palette-text-secondary);
}
.card-customer[b-jijzlrg2fi]  .mud-icon-root { font-size: 14px; }
/* /Components/Pages/AvaTenderDetail.razor.rz.scp.css */

.price-scroll[b-y0u00fzkxb] {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 10px;
    background: var(--mud-palette-surface);
}

.price-table[b-y0u00fzkxb] {
    border-collapse: separate;
    border-spacing: 0;
    min-width: 920px;
    width: max-content;
    font-size: .82rem;
    font-variant-numeric: tabular-nums;
}

.price-table th[b-y0u00fzkxb],
.price-table td[b-y0u00fzkxb] {
    min-width: 96px;
    padding: 9px 11px;
    border-right: 1px solid var(--mud-palette-table-lines);
    border-bottom: 1px solid var(--mud-palette-table-lines);
    vertical-align: top;
    background: var(--mud-palette-surface);
}

.price-table th[b-y0u00fzkxb] {
    position: sticky;
    top: 0;
    z-index: 3;
    color: var(--mud-palette-text-secondary);
    font-size: .75rem;
    font-weight: 600;
    background: var(--mud-palette-background-gray);
}

.price-table th span[b-y0u00fzkxb] {
    font-weight: 400;
}

.price-table .number[b-y0u00fzkxb] {
    text-align: right;
    white-space: nowrap;
}

.price-table .sticky-col[b-y0u00fzkxb] {
    position: sticky;
    z-index: 2;
}

.price-table th.sticky-col[b-y0u00fzkxb] {
    z-index: 5;
    background: var(--mud-palette-background-gray);
}

.price-table .ordinal[b-y0u00fzkxb] {
    left: 0;
    min-width: 100px;
    width: 100px;
}

.price-table .description[b-y0u00fzkxb] {
    left: 100px;
    min-width: 280px;
    width: 280px;
    box-shadow: 5px 0 8px -8px var(--mud-palette-text-primary);
}

.price-table .estimate[b-y0u00fzkxb] {
    min-width: 120px;
}

.price-table .bidder[b-y0u00fzkxb] {
    min-width: 150px;
    max-width: 190px;
}

.price-table .bidder-cell[b-y0u00fzkxb] {
    position: relative;
}

.price-table .bidder-cell.lowest[b-y0u00fzkxb] {
    background: color-mix(in srgb, var(--mud-palette-success) 13%, var(--mud-palette-surface));
}

.price-table .bidder-cell.missing[b-y0u00fzkxb] {
    color: var(--mud-palette-error);
    background: color-mix(in srgb, var(--mud-palette-error) 7%, var(--mud-palette-surface));
}

.missing-label[b-y0u00fzkxb] {
    font-size: .74rem;
    white-space: nowrap;
}

.deviation[b-y0u00fzkxb] {
    display: block;
    margin-top: 3px;
    color: var(--mud-palette-text-secondary);
    font-size: .7rem;
}

.deviation.strong[b-y0u00fzkxb] {
    color: var(--mud-palette-warning);
    font-weight: 600;
}

.cost-chain[b-y0u00fzkxb] {
    display: grid;
    gap: 9px;
    max-width: 980px;
}

.cost-row[b-y0u00fzkxb] {
    display: grid;
    grid-template-columns: minmax(145px, 190px) minmax(160px, 1fr) 135px;
    gap: 12px;
    align-items: center;
}

.cost-label[b-y0u00fzkxb],
.cost-value[b-y0u00fzkxb] {
    font-size: .82rem;
}

.cost-value[b-y0u00fzkxb] {
    text-align: right;
    white-space: nowrap;
}

.cost-track[b-y0u00fzkxb] {
    height: 18px;
    overflow: hidden;
    border-radius: 4px;
    background: var(--mud-palette-background-gray);
}

.cost-bar[b-y0u00fzkxb] {
    height: 100%;
    min-width: 0;
    border-radius: 4px;
    background: var(--atr-text-3);
}

.cost-bar.budget[b-y0u00fzkxb] { background: var(--mud-palette-tertiary); }
.cost-bar.offer[b-y0u00fzkxb] { background: var(--mud-palette-info); }
.cost-bar.contract[b-y0u00fzkxb],
.cost-bar.award[b-y0u00fzkxb] { background: var(--mud-palette-primary); }
.cost-bar.changes[b-y0u00fzkxb] { background: var(--mud-palette-warning); }
.cost-bar.invoice[b-y0u00fzkxb],
.cost-bar.paid[b-y0u00fzkxb] { background: var(--mud-palette-success); }
.cost-bar.forecast[b-y0u00fzkxb] { background: var(--atr-border-strong); }

.hash[b-y0u00fzkxb] {
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    white-space: nowrap;
}


.invoice-lines[b-y0u00fzkxb] {
    overflow-x: auto;
}

.finding-resolution[b-y0u00fzkxb] {
    display: grid;
    gap: 4px;
    min-width: 230px;
}

/* Die Summenbox ist ein MudPaper (Kindkomponente) – ohne ::deep griffen diese Regeln nie. */
[b-y0u00fzkxb] .invoice-review-total {
    display: grid;
    gap: 6px;
    background: var(--atr-surface-sunken);
}

[b-y0u00fzkxb] .invoice-review-total > div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    font-size: .82rem;
}


.analysis-findings[b-y0u00fzkxb]  .mud-table-cell {
    vertical-align: top;
}

@media (max-width: 600px) {
    .price-table .description[b-y0u00fzkxb] {
        min-width: 220px;
        width: 220px;
    }

    .cost-row[b-y0u00fzkxb] {
        grid-template-columns: 1fr 100px;
        gap: 4px 10px;
    }

    .cost-track[b-y0u00fzkxb] {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}
/* /Components/Pages/Cad3dWorkspace.razor.rz.scp.css */
.cad3d[b-gx6su7nck2] { max-width: 1600px; margin: auto; padding: 24px; }
.cad3d-grid[b-gx6su7nck2] { display: grid; grid-template-columns: minmax(360px, 1fr) minmax(360px, 1fr); gap: 32px; }
.cad3d-grid > div[b-gx6su7nck2] { min-width: 0; }
.cad3d-source a[b-gx6su7nck2] { overflow-wrap: anywhere; }
.cad3d input[b-gx6su7nck2], .cad3d select[b-gx6su7nck2], .cad3d textarea[b-gx6su7nck2] { max-width: 100%; box-sizing: border-box; }
.cad3d input[type=file][b-gx6su7nck2] { max-width: 100%; }
.cad3d-source[b-gx6su7nck2], .cad3d-storey[b-gx6su7nck2] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px 0; border-bottom: 1px solid #9aa7b433; }
.cad3d label[b-gx6su7nck2] { display: inline-flex; flex-direction: column; gap: 4px; margin: 6px; }
.cad3d input[b-gx6su7nck2], .cad3d select[b-gx6su7nck2], .cad3d textarea[b-gx6su7nck2] { padding: 8px; border: 1px solid #9aa7b4; border-radius: 6px; background: var(--mud-palette-surface); color: inherit; }
.cad3d textarea[b-gx6su7nck2] { display: block; width: 100%; }
.cad3d button[b-gx6su7nck2], .cad3d-download[b-gx6su7nck2] { padding: 10px; margin: 6px; border: 1px solid #9aa7b4; border-radius: 6px; }
.cad3d-viewer[b-gx6su7nck2] { height: 500px; width: 100%; background: #eaf0f4; border-radius: 12px; }
.cad3d-download[b-gx6su7nck2] { display: inline-block; }
@media (max-width: 900px) { .cad3d-grid[b-gx6su7nck2] { grid-template-columns: 1fr; } .cad3d-viewer[b-gx6su7nck2] { height: 350px; } }
/* /Components/Pages/CadDigitization.razor.rz.scp.css */
.cad-entry[b-1hec9rodj1] {
    --cad-ink: #172027;
    --cad-accent: #d45832;
    --cad-rule: #d8dee5;
    color: var(--cad-ink);
}

.cad-entry__hero[b-1hec9rodj1] {
    align-items: end;
    border-bottom: 1px solid var(--cad-rule);
    display: grid;
    gap: 44px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 34px;
    padding: 8px 0 30px;
}

.cad-kicker[b-1hec9rodj1],
.cad-section-number[b-1hec9rodj1] {
    color: var(--cad-accent);
    font-family: "Roboto Mono", "Cascadia Mono", monospace;
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .13em;
}

.cad-entry__hero h1[b-1hec9rodj1] {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.5rem, 5vw, 5rem);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .98;
    margin: 10px 0 16px;
    max-width: 920px;
}

.cad-entry__hero p[b-1hec9rodj1] {
    color: #55616d;
    font-size: 1.02rem;
    line-height: 1.65;
    margin: 0;
    max-width: 720px;
}

.cad-entry__promise[b-1hec9rodj1] {
    align-items: center;
    display: flex;
    padding-bottom: 8px;
    white-space: nowrap;
}

.cad-entry__promise span[b-1hec9rodj1] {
    font-family: "Roboto Mono", "Cascadia Mono", monospace;
    font-size: .66rem;
    letter-spacing: .06em;
}

.cad-entry__promise i[b-1hec9rodj1] {
    background: var(--cad-rule);
    height: 1px;
    margin: 0 10px;
    width: 22px;
}

.cad-entry__grid[b-1hec9rodj1] {
    display: grid;
    gap: 0;
    grid-template-columns: minmax(310px, 390px) minmax(0, 1fr);
    min-height: 520px;
}

.cad-entry__setup[b-1hec9rodj1] {
    border-right: 1px solid var(--cad-rule);
    padding: 8px 34px 24px 0;
}

.cad-entry h2[b-1hec9rodj1] {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.75rem;
    font-weight: 400;
    letter-spacing: -.025em;
    margin: 8px 0 24px;
}

.cad-field-label[b-1hec9rodj1] {
    display: block;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .045em;
    margin: 18px 0 7px;
    text-transform: uppercase;
}

.cad-select[b-1hec9rodj1],
.cad-input[b-1hec9rodj1] {
    background: transparent;
    border: 1px solid #bfc8d1;
    border-radius: 4px;
    box-sizing: border-box;
    color: inherit;
    font: inherit;
    min-height: 44px;
    padding: 9px 11px;
    width: 100%;
}

.cad-select:focus[b-1hec9rodj1],
.cad-input:focus[b-1hec9rodj1] {
    border-color: #556975;
    outline: 2px solid rgb(31 107 119 / 14%);
}

.cad-mode-grid[b-1hec9rodj1] {
    display: grid;
    gap: 8px;
    grid-template-columns: 1fr 1fr;
    margin-top: 18px;
}

.cad-mode-card[b-1hec9rodj1] {
    background: transparent;
    border: 1px solid var(--cad-rule);
    border-radius: 3px;
    color: inherit;
    cursor: pointer;
    display: grid;
    gap: 7px;
    min-height: 146px;
    padding: 17px;
    text-align: left;
}

.cad-mode-card strong[b-1hec9rodj1] { font-size: .96rem; }
.cad-mode-card span[b-1hec9rodj1] { color: #65717c; font-size: .76rem; line-height: 1.45; }
.cad-mode-card.is-active[b-1hec9rodj1] { background: #172027; border-color: #172027; color: #fff; }
.cad-mode-card.is-active span[b-1hec9rodj1] { color: #bdc6cb; }
.cad-mode-card.is-active[b-1hec9rodj1]  .mud-icon-root { color: #ef7954; }

.cad-entry__setup[b-1hec9rodj1]  .mud-button-root { border-radius: 3px; margin-top: 20px; min-height: 45px; }

.cad-entry__guardrail[b-1hec9rodj1] {
    align-items: start;
    border-top: 1px solid var(--cad-rule);
    color: #606b75;
    display: flex;
    gap: 10px;
    margin-top: 26px;
    padding-top: 17px;
}

.cad-entry__guardrail p[b-1hec9rodj1] { font-size: .76rem; line-height: 1.5; margin: 0; }
.cad-entry__guardrail[b-1hec9rodj1]  .mud-icon-root { color: #4b8c72; font-size: 1.15rem; }

.cad-entry__existing[b-1hec9rodj1] { padding: 8px 0 30px 38px; }
.cad-entry__list-head[b-1hec9rodj1] { align-items: start; display: flex; justify-content: space-between; }
.cad-entry__list-head h2[b-1hec9rodj1] { margin-bottom: 18px; }
.cad-count[b-1hec9rodj1] { color: #ccd2d7; font-family: Georgia, serif; font-size: 4.4rem; line-height: .8; }

.cad-entry__empty[b-1hec9rodj1] {
    align-content: center;
    border: 1px dashed #c8d0d7;
    display: grid;
    justify-items: center;
    min-height: 330px;
    padding: 40px;
    text-align: center;
}

.cad-entry__empty-mark[b-1hec9rodj1] { color: #b9c1c8; font-family: Georgia, serif; font-size: 5rem; font-weight: 200; line-height: 1; }
.cad-entry__empty h3[b-1hec9rodj1] { font-family: Georgia, serif; font-size: 1.4rem; font-weight: 400; margin: 12px 0 7px; }
.cad-entry__empty p[b-1hec9rodj1] { color: #66717b; font-size: .84rem; line-height: 1.55; margin: 0; max-width: 440px; }

.cad-view-list[b-1hec9rodj1] { border-top: 1px solid var(--cad-rule); }
.cad-view-row[b-1hec9rodj1] {
    align-items: center;
    border-bottom: 1px solid var(--cad-rule);
    color: inherit;
    display: grid;
    gap: 17px;
    grid-template-columns: 46px minmax(0, 1fr) auto 24px;
    min-height: 82px;
    padding: 10px 5px;
    text-decoration: none;
    transition: background-color 140ms ease, padding 140ms ease;
}
.cad-view-row:hover[b-1hec9rodj1] { background: rgb(31 107 119 / 6%); padding-left: 12px; }
.cad-view-row__icon[b-1hec9rodj1] { align-items: center; background: #edf1f4; border-radius: 50%; display: flex; height: 42px; justify-content: center; width: 42px; }
.cad-view-row__body[b-1hec9rodj1] { display: grid; gap: 4px; }
.cad-view-row__body strong[b-1hec9rodj1] { font-size: .96rem; }
.cad-view-row__body small[b-1hec9rodj1] { color: #6b7580; }
.cad-view-row__state[b-1hec9rodj1] { color: #65717b; font-family: "Roboto Mono", monospace; font-size: .65rem; letter-spacing: .07em; text-transform: uppercase; }
.cad-view-row__arrow[b-1hec9rodj1] { color: #84909a; }

@media (prefers-color-scheme: dark) {
    .cad-entry[b-1hec9rodj1] { --cad-ink: #e7ecef; --cad-rule: #3a434b; }
    .cad-entry__hero p[b-1hec9rodj1], .cad-entry__empty p[b-1hec9rodj1], .cad-view-row__body small[b-1hec9rodj1], .cad-view-row__state[b-1hec9rodj1] { color: #aab4bc; }
    .cad-select[b-1hec9rodj1], .cad-input[b-1hec9rodj1] { border-color: #4a555f; }
    .cad-mode-card.is-active[b-1hec9rodj1] { background: #e4e9ec; border-color: #e4e9ec; color: #172027; }
    .cad-mode-card.is-active span[b-1hec9rodj1] { color: #53606b; }
    .cad-view-row__icon[b-1hec9rodj1] { background: #2b333a; }
}

@media (max-width: 900px) {
    .cad-entry__hero[b-1hec9rodj1] { grid-template-columns: 1fr; }
    .cad-entry__promise[b-1hec9rodj1] { overflow-x: auto; }
    .cad-entry__grid[b-1hec9rodj1] { grid-template-columns: 1fr; }
    .cad-entry__setup[b-1hec9rodj1] { border-bottom: 1px solid var(--cad-rule); border-right: 0; padding-right: 0; }
    .cad-entry__existing[b-1hec9rodj1] { padding-left: 0; padding-top: 34px; }
}

@media (max-width: 520px) {
    .cad-entry__hero h1[b-1hec9rodj1] { font-size: 2.55rem; }
    .cad-mode-grid[b-1hec9rodj1] { grid-template-columns: 1fr; }
    .cad-view-row[b-1hec9rodj1] { grid-template-columns: 42px minmax(0, 1fr) 20px; }
    .cad-view-row__state[b-1hec9rodj1] { display: none; }
}
/* /Components/Pages/CadWorkspace.razor.rz.scp.css */
.cad-studio[b-ykefy6huwc] {
    --cad-bg: #e8ecef;
    --cad-panel: #f8f9f8;
    --cad-ink: #1d282e;
    --cad-muted: #69757d;
    --cad-rule: #cfd6da;
    --cad-accent: #c85331;
    background: var(--cad-bg);
    color: var(--cad-ink);
    display: grid;
    grid-template-rows: 58px minmax(0, 1fr);
    height: 100%;
    min-height: 0;
    min-width: 0;
}

.cad-workspace-state[b-ykefy6huwc] {
    align-content: center;
    display: grid;
    gap: 12px;
    height: 100%;
    justify-items: center;
    min-height: 480px;
    padding: 40px;
    text-align: center;
}
.cad-workspace-state h1[b-ykefy6huwc] { font-family: Georgia, serif; font-weight: 400; margin: 0; }
.cad-workspace-state p[b-ykefy6huwc] { color: var(--mud-palette-text-secondary); margin: 0 0 8px; }

.cad-studio__topbar[b-ykefy6huwc] {
    align-items: center;
    background: #172228;
    color: #edf1f2;
    display: grid;
    gap: 18px;
    grid-template-columns: 38px minmax(180px, 1fr) auto minmax(180px, 1fr);
    padding: 0 14px;
}

.cad-back[b-ykefy6huwc] { align-items: center; color: #aeb8bd; display: flex; justify-content: center; }
.cad-title-block[b-ykefy6huwc] { min-width: 0; }
.cad-title-block span[b-ykefy6huwc] { color: #8d9aa1; display: block; font-family: "Roboto Mono", "Cascadia Mono", monospace; font-size: .57rem; letter-spacing: .12em; }
.cad-title-block h1[b-ykefy6huwc] { font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; font-weight: 400; margin: 2px 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.cad-stage-strip[b-ykefy6huwc] { align-items: center; display: flex; }
.cad-stage-strip[b-ykefy6huwc]  > span { align-items: center; color: #75838a; display: flex; font-size: .62rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.cad-stage-strip[b-ykefy6huwc]  > span:not(:last-child)::after { background: #3c494f; content: ""; height: 1px; margin: 0 8px; width: 20px; }
.cad-stage-strip[b-ykefy6huwc]  > span i { align-items: center; border: 1px solid #536168; border-radius: 50%; display: inline-flex; font-style: normal; height: 16px; justify-content: center; margin-right: 5px; width: 16px; }
.cad-stage-strip[b-ykefy6huwc]  > span.is-complete { color: #dbe2e4; }
.cad-stage-strip[b-ykefy6huwc]  > span.is-complete i { background: #4f8d75; border-color: #4f8d75; color: #fff; }

.cad-top-actions[b-ykefy6huwc] { align-items: center; display: flex; gap: 8px; justify-content: end; }
.cad-icon-button[b-ykefy6huwc], .cad-toolrail button[b-ykefy6huwc] {
    align-items: center;
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    justify-content: center;
}
.cad-icon-button[b-ykefy6huwc] { border: 1px solid #3e4b51; border-radius: 3px; height: 32px; width: 32px; }

.cad-primary-action[b-ykefy6huwc],
.cad-outline-action[b-ykefy6huwc],
.cad-small-action[b-ykefy6huwc],
.cad-accept-action[b-ykefy6huwc] {
    align-items: center;
    border-radius: 3px;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: .74rem;
    font-weight: 700;
    gap: 7px;
    justify-content: center;
    min-height: 34px;
    padding: 7px 11px;
}
.cad-primary-action[b-ykefy6huwc] { background: var(--cad-accent); border: 1px solid var(--cad-accent); color: white; }
.cad-outline-action[b-ykefy6huwc] { background: transparent; border: 1px solid #aeb8bd; color: inherit; width: 100%; }
.cad-small-action[b-ykefy6huwc] { background: #26373f; border: 1px solid #26373f; color: white; }
button:disabled[b-ykefy6huwc] { cursor: not-allowed; opacity: .43; }

.cad-studio__body[b-ykefy6huwc] {
    display: grid;
    grid-template-columns: 292px minmax(360px, 1fr) 268px;
    min-height: 0;
}
/* Kundenansicht (kein Review-Panel): nur Quelle + Canvas, keine leere 3. Spalte. */
.cad-studio__body--solo[b-ykefy6huwc] { grid-template-columns: 292px minmax(0, 1fr); }

.cad-source-panel[b-ykefy6huwc],
.cad-review-panel[b-ykefy6huwc] {
    background: var(--cad-panel);
    display: grid;
    grid-template-rows: 55px minmax(0, 1fr);
    min-height: 0;
}
.cad-source-panel[b-ykefy6huwc] { border-right: 1px solid var(--cad-rule); }
.cad-review-panel[b-ykefy6huwc] { border-left: 1px solid var(--cad-rule); }
.cad-panel-scroll[b-ykefy6huwc] { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }

.cad-panel-heading[b-ykefy6huwc] {
    align-items: center;
    border-bottom: 1px solid var(--cad-rule);
    display: flex;
    gap: 11px;
    padding: 9px 14px;
}
.cad-panel-heading > span[b-ykefy6huwc] { color: #aeb7bc; font-family: Georgia, serif; font-size: 1.7rem; line-height: 1; }
.cad-panel-heading > div[b-ykefy6huwc] { display: grid; gap: 1px; }
.cad-panel-heading small[b-ykefy6huwc] { color: var(--cad-accent); font-family: "Roboto Mono", monospace; font-size: .54rem; letter-spacing: .13em; }
.cad-panel-heading strong[b-ykefy6huwc] { font-size: .75rem; }

.cad-panel-section[b-ykefy6huwc] { border-bottom: 1px solid var(--cad-rule); padding: 15px 14px; }
.cad-control-label[b-ykefy6huwc] { display: block; font-size: .7rem; font-weight: 700; margin-bottom: 7px; }
.cad-file-input[b-ykefy6huwc] { color: var(--cad-muted); font-size: .68rem; max-width: 100%; }
.cad-file-input[b-ykefy6huwc]::file-selector-button { background: #e4e9ec; border: 1px solid #bdc6cc; border-radius: 2px; color: var(--cad-ink); cursor: pointer; font: inherit; margin-right: 7px; padding: 6px 8px; }
.cad-upload-meta[b-ykefy6huwc] { align-items: center; display: flex; gap: 8px; justify-content: space-between; margin-top: 9px; }
.cad-upload-meta label[b-ykefy6huwc] { align-items: center; color: var(--cad-muted); display: flex; font-size: .64rem; gap: 5px; }
.cad-upload-meta input[b-ykefy6huwc] { border: 1px solid var(--cad-rule); border-radius: 2px; padding: 5px; width: 48px; }

.cad-source-card[b-ykefy6huwc] {
    align-items: center;
    background: #edf1f2;
    border-left: 2px solid #597983;
    display: grid;
    gap: 8px;
    grid-template-columns: 22px minmax(0, 1fr) 20px;
    margin-top: 10px;
    padding: 9px;
}
.cad-source-card > div[b-ykefy6huwc] { display: grid; min-width: 0; }
.cad-source-card strong[b-ykefy6huwc] { font-size: .67rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cad-source-card span[b-ykefy6huwc] { color: var(--cad-muted); font-family: "Roboto Mono", monospace; font-size: .55rem; }
.cad-source-card a[b-ykefy6huwc] { color: var(--cad-muted); }

.cad-section-title[b-ykefy6huwc] { align-items: center; display: flex; justify-content: space-between; margin-bottom: 7px; }
.cad-section-title span[b-ykefy6huwc] { font-size: .69rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.cad-section-title em[b-ykefy6huwc] { color: var(--cad-muted); font-family: "Roboto Mono", monospace; font-size: .55rem; font-style: normal; }
.cad-help[b-ykefy6huwc] { color: var(--cad-muted); font-size: .67rem; line-height: 1.45; margin: 0 0 10px; }
.cad-reopen-note[b-ykefy6huwc] { width: 100%; margin: 6px 0; padding: 6px 8px; border: 1px solid var(--cad-rule); border-radius: 3px; background: var(--cad-panel); color: inherit; font: inherit; font-size: .72rem; resize: vertical; }
.cad-capture-ok[b-ykefy6huwc] { align-items: center; color: #3f7f66; display: flex; font-size: .63rem; gap: 5px; margin-top: 7px; }
.cad-rotation-row[b-ykefy6huwc] { align-items: center; background: #edf1f2; display: grid; grid-template-columns: 32px 1fr 32px; margin-bottom: 8px; }
.cad-rotation-row button[b-ykefy6huwc] { align-items: center; background: transparent; border: 0; color: #51636b; cursor: pointer; display: flex; height: 32px; justify-content: center; }
.cad-rotation-row span[b-ykefy6huwc] { color: var(--cad-muted); font-size: .61rem; text-align: center; }
.cad-rotation-row strong[b-ykefy6huwc] { color: var(--cad-ink); font-family: "Roboto Mono", monospace; }

.cad-measure-row[b-ykefy6huwc] { align-items: stretch; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; margin-bottom: 9px; }
.cad-measure-row input[b-ykefy6huwc] { border: 1px solid #aeb8bd; border-radius: 2px 0 0 2px; min-width: 0; padding: 7px; }
.cad-measure-row > span[b-ykefy6huwc] { align-items: center; background: #e6eaec; border-bottom: 1px solid #aeb8bd; border-top: 1px solid #aeb8bd; color: var(--cad-muted); display: flex; font-size: .58rem; padding: 0 5px; }
.cad-measure-row button[b-ykefy6huwc] { background: #26373f; border: 1px solid #26373f; border-radius: 0 2px 2px 0; color: #fff; cursor: pointer; font-size: .62rem; padding: 5px 8px; }
.cad-reference-row[b-ykefy6huwc] { align-items: center; border-top: 1px dotted #d7dcdf; display: grid; font-size: .62rem; grid-template-columns: 30px 1fr 20px; min-height: 27px; }
.cad-reference-row span[b-ykefy6huwc] { color: var(--cad-accent); font-family: "Roboto Mono", monospace; }
.cad-reference-row button[b-ykefy6huwc] { background: transparent; border: 0; color: #8a9499; cursor: pointer; font-size: 1rem; }
.cad-primary-action--wide[b-ykefy6huwc] { margin-top: 10px; width: 100%; }

.cad-calibration-state[b-ykefy6huwc] { background: #e8f1ed; border-left: 2px solid #4f8d75; display: grid; gap: 2px; margin-top: 9px; padding: 8px; }
.cad-calibration-state.is-conflict[b-ykefy6huwc] { background: #f7ece7; border-color: var(--cad-accent); }
.cad-calibration-state strong[b-ykefy6huwc] { font-size: .65rem; }
.cad-calibration-state span[b-ykefy6huwc], .cad-calibration-state small[b-ykefy6huwc] { color: var(--cad-muted); font-size: .58rem; }
.cad-scale-warning[b-ykefy6huwc] { background: #fff2dc; border-left: 2px solid #b98026; display: grid; gap: 3px; margin-top: 7px; padding: 8px; }
.cad-scale-warning strong[b-ykefy6huwc] { color: #765516; font-size: .64rem; }
.cad-scale-warning span[b-ykefy6huwc], .cad-scale-warning small[b-ykefy6huwc] { color: #765f38; font-size: .58rem; line-height: 1.4; }

.cad-run-card[b-ykefy6huwc] { background: #edf1f2; margin: 8px 0; padding: 9px; }
.cad-run-card > div:first-child[b-ykefy6huwc] { display: flex; font-size: .63rem; justify-content: space-between; }
.cad-progress[b-ykefy6huwc] { background: #d5dce0; height: 3px; margin: 7px 0; overflow: hidden; }
.cad-progress i[b-ykefy6huwc] { background: #397f89; display: block; height: 100%; transition: width 300ms ease; }
.cad-run-card small[b-ykefy6huwc] { color: var(--cad-muted); display: block; font-size: .56rem; }
.cad-run-card p[b-ykefy6huwc] { color: #a4462d; font-size: .61rem; margin: 6px 0 0; }
.cad-run-card p.is-warning[b-ykefy6huwc] { color: #936918; }
.cad-action-pair[b-ykefy6huwc] { display: flex; gap: 6px; }
.cad-action-pair > *[b-ykefy6huwc] { flex: 1; width: auto; }
.cad-pending-merge[b-ykefy6huwc] { background: #fff2dc; border-left: 2px solid #b98026; margin-top: 10px; padding: 9px; }
.cad-pending-merge strong[b-ykefy6huwc] { font-size: .65rem; }
.cad-pending-merge p[b-ykefy6huwc] { color: #756248; font-size: .6rem; line-height: 1.4; margin: 4px 0 8px; }
.cad-pending-merge button[b-ykefy6huwc] { background: transparent; border: 0; color: #8c5c14; cursor: pointer; font-size: .62rem; font-weight: 700; padding: 0; }

.cad-canvas-column[b-ykefy6huwc] { display: grid; grid-template-rows: 42px minmax(0, 1fr) 30px; min-height: 0; min-width: 0; }
.cad-toolrail[b-ykefy6huwc] { align-items: center; background: #f3f5f5; border-bottom: 1px solid var(--cad-rule); display: flex; gap: 3px; overflow-x: auto; padding: 4px 9px; scrollbar-width: thin; }
.cad-toolrail button[b-ykefy6huwc] { border: 1px solid transparent; border-radius: 2px; color: #59666d; flex: 0 0 31px; height: 31px; width: 31px; }
.cad-toolrail button:hover[b-ykefy6huwc] { background: #e4e9eb; }
.cad-toolrail button.is-active[b-ykefy6huwc] { background: #26373f; color: #fff; }
.cad-preview-zoom[b-ykefy6huwc] { color: var(--cad-muted); font-family: "Roboto Mono", monospace; font-size: .7rem; min-width: 54px; text-align: center; }
.cad-preview-tools .cad-preview-fit[b-ykefy6huwc] { flex-basis: auto; font-size: .7rem; gap: 5px; margin-left: auto; padding: 0 8px; white-space: nowrap; width: auto; }
.cad-document-preview[b-ykefy6huwc] { grid-row: 1 / -1; min-height: 0; overflow: auto; padding: 16px; }
.cad-document-preview iframe[b-ykefy6huwc] { border: 0; height: 100%; min-height: 360px; width: 100%; }
.cad-tool-separator[b-ykefy6huwc] { background: var(--cad-rule); height: 22px; margin: 0 4px; width: 1px; }

.cad-canvas-wrap[b-ykefy6huwc] { background-color: #d9dfe2; background-image: linear-gradient(#cdd4d8 1px, transparent 1px), linear-gradient(90deg, #cdd4d8 1px, transparent 1px); background-size: 24px 24px; min-height: 0; overflow: hidden; position: relative; }
.cad-canvas-wrap.is-capturing[b-ykefy6huwc] { cursor: crosshair; }
.cad-canvas[b-ykefy6huwc] { display: block; height: 100%; outline: none; touch-action: none; width: 100%; }
.cad-view-switcher[b-ykefy6huwc] { background: rgb(243 245 245 / 92%); border: 1px solid #bfc8cc; display: flex; left: 50%; padding: 2px; position: absolute; top: 10px; transform: translateX(-50%); z-index: 2; }
.cad-view-switcher button[b-ykefy6huwc] { background: transparent; border: 0; color: #59666d; cursor: pointer; font-size: .57rem; font-weight: 700; padding: 5px 8px; text-transform: uppercase; }
.cad-view-switcher button.is-active[b-ykefy6huwc] { background: #26373f; color: #fff; }
.cad-canvas-empty[b-ykefy6huwc] { background: rgb(238 241 242 / 92%); border: 1px solid #bdc6cb; left: 50%; max-width: 330px; padding: 28px; position: absolute; text-align: center; top: 50%; transform: translate(-50%, -50%); }
.cad-canvas-empty > span[b-ykefy6huwc] { color: #b9c1c5; font-family: Georgia, serif; font-size: 3rem; }
.cad-canvas-empty h2[b-ykefy6huwc] { font-family: Georgia, serif; font-size: 1.3rem; font-weight: 400; margin: 4px 0; }
.cad-canvas-empty p[b-ykefy6huwc] { color: var(--cad-muted); font-size: .72rem; line-height: 1.5; margin: 0; }
.cad-capture-banner[b-ykefy6huwc] { align-items: center; background: #172228; border-radius: 3px; color: #fff; display: flex; font-size: .68rem; gap: 8px; left: 50%; padding: 8px 12px; position: absolute; top: 12px; transform: translateX(-50%); }
.cad-capture-banner kbd[b-ykefy6huwc] { background: #38464d; border: 1px solid #56646b; border-radius: 2px; font: inherit; padding: 2px 5px; }
.cad-pulse[b-ykefy6huwc] { background: #e66f4d; border-radius: 50%; height: 7px; width: 7px; animation: cadPulse-b-ykefy6huwc 1.3s infinite; }
@keyframes cadPulse-b-ykefy6huwc { 50% { box-shadow: 0 0 0 6px rgb(230 111 77 / 0%); opacity: .65; } }
.cad-coordinate-readout[b-ykefy6huwc] { background: rgb(23 34 40 / 82%); bottom: 9px; color: #dfe5e7; font-family: "Roboto Mono", monospace; font-size: .55rem; left: 9px; padding: 4px 7px; position: absolute; }
.cad-mobile-note[b-ykefy6huwc] { display: none; }

.cad-canvas-footer[b-ykefy6huwc] { align-items: center; background: #f3f5f5; border-top: 1px solid var(--cad-rule); color: var(--cad-muted); display: flex; font-size: .55rem; gap: 13px; padding: 0 9px; }
.cad-canvas-footer span[b-ykefy6huwc] { align-items: center; display: inline-flex; gap: 4px; }
.cad-canvas-footer i[b-ykefy6huwc] { border-radius: 50%; display: inline-block; height: 6px; width: 6px; }
.cad-canvas-footer i.is-ai[b-ykefy6huwc] { background: #263943; }
.cad-canvas-footer i.is-user[b-ykefy6huwc] { background: #267b86; }
.cad-canvas-footer i.is-review[b-ykefy6huwc] { background: #d25a35; }
.cad-canvas-footer__right[b-ykefy6huwc] { margin-left: auto; }
.cad-snap-toggle[b-ykefy6huwc] { align-items: center; cursor: pointer; display: inline-flex; gap: 5px; white-space: nowrap; }
.cad-snap-toggle input[b-ykefy6huwc] { accent-color: #2d6972; margin: 0; }

.cad-review-score[b-ykefy6huwc] { display: grid; grid-template-columns: repeat(3, 1fr); }
.cad-review-score > div[b-ykefy6huwc] { border-bottom: 1px solid var(--cad-rule); border-right: 1px solid var(--cad-rule); display: grid; gap: 2px; padding: 11px 8px; }
.cad-review-score > div:last-child[b-ykefy6huwc] { border-right: 0; }
.cad-review-score span[b-ykefy6huwc] { color: var(--cad-muted); font-size: .55rem; text-transform: uppercase; }
.cad-review-score strong[b-ykefy6huwc] { font-family: Georgia, serif; font-size: 1.3rem; font-weight: 400; }
.cad-review-score .is-alert strong[b-ykefy6huwc] { color: var(--cad-accent); }
.cad-property-editor[b-ykefy6huwc] { display: grid; gap: 8px; }
.cad-property-editor .cad-section-title[b-ykefy6huwc] { margin-bottom: 0; }
.cad-property-editor > label[b-ykefy6huwc] { color: var(--cad-muted); display: grid; font-size: .58rem; gap: 3px; }
.cad-property-editor input[b-ykefy6huwc] { background: #fff; border: 1px solid #bdc6ca; border-radius: 2px; color: var(--cad-ink); font: inherit; font-size: .66rem; min-width: 0; padding: 6px; width: 100%; }
.cad-selected-title[b-ykefy6huwc] { align-items: baseline; display: flex; justify-content: space-between; }
.cad-selected-title strong[b-ykefy6huwc] { font-size: .72rem; }
.cad-selected-title span[b-ykefy6huwc] { color: var(--cad-muted); font-family: "Roboto Mono", monospace; font-size: .52rem; }
.cad-readonly-property[b-ykefy6huwc] { align-items: center; border-bottom: 1px dotted #d4dadd; display: flex; font-size: .6rem; justify-content: space-between; padding: 3px 0; }
.cad-readonly-property span[b-ykefy6huwc] { color: var(--cad-muted); }
.cad-confidence-row[b-ykefy6huwc] { background: #edf1f2; display: grid; grid-template-columns: 1fr auto; padding: 7px; }
.cad-confidence-row span[b-ykefy6huwc], .cad-confidence-row em[b-ykefy6huwc] { color: var(--cad-muted); font-size: .55rem; font-style: normal; }
.cad-confidence-row strong[b-ykefy6huwc] { font-family: Georgia, serif; font-size: 1.05rem; font-weight: 400; grid-row: span 2; }
.cad-property-editor .is-warning[b-ykefy6huwc] { background: #fff2dc; border-left: 2px solid #b98026; color: #765516; font-size: .58rem; margin: 0; padding: 6px; }
.cad-repeat-grid[b-ykefy6huwc] { display: grid; gap: 4px; grid-template-columns: 1fr 1fr; }
.cad-repeat-grid button[b-ykefy6huwc] { background: #edf1f2; border: 1px solid #c6ced2; color: #46575f; cursor: pointer; font-size: .56rem; min-height: 28px; padding: 4px; }
.cad-small-action--block[b-ykefy6huwc] { margin-top: 7px; width: 100%; }
.cad-review-clear[b-ykefy6huwc] { align-items: center; color: #3f7f66; display: grid; gap: 3px; justify-items: center; padding: 12px 5px; text-align: center; }
.cad-review-clear strong[b-ykefy6huwc] { font-size: .68rem; }
.cad-review-clear span[b-ykefy6huwc] { color: var(--cad-muted); font-size: .58rem; }

.cad-layer-row[b-ykefy6huwc] { align-items: center; cursor: pointer; display: grid; font-size: .65rem; gap: 8px; grid-template-columns: 16px 7px 1fr; min-height: 29px; }
.cad-layer-row input[b-ykefy6huwc] { accent-color: #2d6972; }
.cad-layer-row i[b-ykefy6huwc] { border-radius: 50%; height: 7px; width: 7px; }
.cad-accept-section[b-ykefy6huwc] { background: #eef1f1; }
.cad-accept-section > p[b-ykefy6huwc] { color: var(--cad-muted); font-size: .63rem; line-height: 1.45; margin: 0 0 10px; }
.cad-drawing-export[b-ykefy6huwc] { background: #fff; border-left: 2px solid #2f7b86; margin-bottom: 12px; padding: 9px; }
.cad-drawing-export > strong[b-ykefy6huwc] { font-size: .68rem; }
.cad-drawing-export > p[b-ykefy6huwc] { color: var(--cad-muted); font-size: .6rem; line-height: 1.45; margin: 4px 0 0; }
.cad-accept-action[b-ykefy6huwc] { background: #26373f; border: 1px solid #26373f; color: white; width: 100%; }
.cad-accepted-stamp[b-ykefy6huwc] { border: 1px solid #5d8a75; color: #45735e; display: grid; justify-items: center; margin-top: 10px; padding: 8px; transform: rotate(-1deg); }
.cad-accepted-stamp span[b-ykefy6huwc] { font-family: "Roboto Mono", monospace; font-size: .72rem; font-weight: 800; letter-spacing: .18em; }
.cad-accepted-stamp small[b-ykefy6huwc] { font-size: .55rem; }
.cad-export-links[b-ykefy6huwc] { display: grid; gap: 4px; margin-top: 10px; }
.cad-export-links a[b-ykefy6huwc] { color: #286b76; font-size: .65rem; font-weight: 700; }

@media (max-width: 1180px) {
    .cad-studio__body[b-ykefy6huwc] { grid-template-columns: 270px minmax(340px, 1fr) 238px; }
    .cad-studio__body--solo[b-ykefy6huwc] { grid-template-columns: 270px minmax(0, 1fr); }
    .cad-stage-strip[b-ykefy6huwc] { display: none; }
    .cad-studio__topbar[b-ykefy6huwc] { grid-template-columns: 38px minmax(180px, 1fr) auto; }
}

@media (max-width: 900px) {
    .cad-studio[b-ykefy6huwc] { display: block; min-height: calc(100dvh - var(--mud-appbar-height)); }
    .cad-studio__topbar[b-ykefy6huwc] { grid-template-columns: 34px minmax(0, 1fr); min-height: 58px; }
    .cad-top-actions[b-ykefy6huwc] { grid-column: 1 / -1; background: #172228; justify-content: stretch; margin: 0 -14px; padding: 7px 14px; }
    .cad-top-actions .cad-primary-action[b-ykefy6huwc] { flex: 1; }
    .cad-studio__body[b-ykefy6huwc] { display: flex; flex-direction: column; }
    .cad-source-panel[b-ykefy6huwc], .cad-review-panel[b-ykefy6huwc] { display: block; }
    .cad-panel-scroll[b-ykefy6huwc] { max-height: none; overflow: visible; }
    .cad-canvas-column[b-ykefy6huwc] { min-height: 480px; order: -1; }
    .cad-toolrail button:not(:first-child):not(:nth-child(2)):not(:last-child)[b-ykefy6huwc] { display: none; }
    .cad-preview-tools button:not(:first-child):not(:nth-child(2)):not(:last-child)[b-ykefy6huwc] { display: inline-flex; }
    .cad-mobile-note[b-ykefy6huwc] { background: rgb(23 34 40 / 88%); bottom: 42px; color: white; display: block; font-size: .66rem; left: 12px; padding: 8px 10px; position: absolute; right: 12px; }
    .cad-source-panel[b-ykefy6huwc] { border-right: 0; }
    .cad-review-panel[b-ykefy6huwc] { border-left: 0; }
    .cad-canvas-footer__right[b-ykefy6huwc] { display: none !important; }
    .cad-snap-toggle[b-ykefy6huwc] { display: none; }
    .cad-view-switcher[b-ykefy6huwc] { max-width: calc(100% - 20px); overflow-x: auto; }
}
/* /Components/Pages/CapacityPlanning.razor.rz.scp.css */
/* Einsatzplanung (Designsystem „Plankopf“): Wochenraster als ruhige Tabelle auf dem Blatt.
   Die Auslastung zeigt sich in den Statustönen des Systems (Ziegel = überplant, Moos = ausgelastet,
   Ocker = teilweise) – vorher drei eigene rgba-Werte, die im Dunkelmodus kaum zu unterscheiden waren.
   Die Zahl steht immer mit in der Zelle; Farbe trägt die Aussage nie allein. */

.cap-legend[b-c3dom3xrf9] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; font-size: .75rem; color: var(--atr-text-2); }
.cap-key[b-c3dom3xrf9] { display: inline-flex; align-items: center; gap: 6px; }
.cap-swatch[b-c3dom3xrf9] {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    border: 1px solid var(--atr-border-strong);
    background: var(--atr-sheet);
}
.cap-swatch.cap-over[b-c3dom3xrf9], .cap-swatch.cap-good[b-c3dom3xrf9], .cap-swatch.cap-part[b-c3dom3xrf9] { border-color: transparent; }
.cap-over[b-c3dom3xrf9] { background: var(--atr-danger-bg); }
.cap-good[b-c3dom3xrf9] { background: var(--atr-success-bg); }
.cap-part[b-c3dom3xrf9] { background: var(--atr-warning-bg); }

/* Das Raster scrollt waagerecht in seiner Karte, nie die Seite (390 px). Die Hülle ist ein echtes
   <div> dieser Datei – die Wurzel des MudPaper erreicht scoped CSS nicht. */
.cap-scroll[b-c3dom3xrf9] { overflow-x: auto; }

.cap-grid[b-c3dom3xrf9] { width: 100%; border-collapse: collapse; table-layout: fixed; }
.cap-grid th:first-child[b-c3dom3xrf9] { width: 240px; }
@media (max-width: 599.98px) {
    .cap-grid th:first-child[b-c3dom3xrf9] { width: 150px; }
}
.cap-grid th[b-c3dom3xrf9] {
    padding: 8px 6px;
    font-size: .75rem;
    font-weight: 600;
    color: var(--atr-text-2);
    text-align: center;
    white-space: nowrap;
    background: var(--atr-surface-subtle);
    border-bottom: 1px solid var(--atr-border);
}
.cap-grid th:first-child[b-c3dom3xrf9] { text-align: left; padding-inline: 16px; }
/* Aktuelle Woche: der einzige Akzent im Raster („aktueller Zustand“, aria-current="date"). */
.cap-grid th.is-current[b-c3dom3xrf9] {
    color: var(--atr-accent);
    background: color-mix(in srgb, var(--atr-accent) 9%, var(--atr-surface-subtle));
    box-shadow: inset 0 -2px 0 var(--atr-accent);
}
.cap-date[b-c3dom3xrf9] { display: block; margin-top: 1px; font-weight: 400; color: var(--atr-text-2); }
.cap-grid th.is-current .cap-date[b-c3dom3xrf9] { color: inherit; }

.cap-grid td[b-c3dom3xrf9] { border-bottom: 1px solid var(--atr-border); }
.cap-grid tbody tr:last-child td[b-c3dom3xrf9] { border-bottom: none; }

.cap-emp[b-c3dom3xrf9] { padding: 8px 16px; overflow-wrap: anywhere; }
.cap-name[b-c3dom3xrf9] { display: block; font-weight: 500; color: var(--atr-text); }
.cap-sub[b-c3dom3xrf9] { display: block; font-size: .75rem; color: var(--atr-text-2); }

.cap-cell[b-c3dom3xrf9] { padding: 0; text-align: center; border-inline-start: 1px solid var(--atr-border); }
/* Keine Kapazität (Feiertage, Betriebsferien, Abwesenheit): abgesenkt statt blass – vorher opacity .55,
   womit die Zahl unter die Kontrastgrenze fiel. */
.cap-cell.cap-none[b-c3dom3xrf9] { background: var(--atr-surface-sunken); }
.cap-cell.cap-none .cap-val[b-c3dom3xrf9] { color: var(--atr-text-2); font-weight: 500; }

.cap-btn[b-c3dom3xrf9] {
    appearance: none;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    width: 100%;
    min-height: 52px;
    margin: 0;
    padding: 6px 4px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--atr-text);
    font: inherit;
    cursor: pointer;
    transition: background-color 150ms ease;
}
.cap-btn:hover[b-c3dom3xrf9] { background: color-mix(in srgb, var(--atr-text) 6%, transparent); }
.cap-btn:focus-visible[b-c3dom3xrf9] { outline: 2px solid var(--atr-accent); outline-offset: -2px; }
.cap-cell.is-selected .cap-btn[b-c3dom3xrf9] { box-shadow: inset 0 0 0 2px var(--atr-accent); }
.cap-val[b-c3dom3xrf9] { font-weight: 600; font-variant-numeric: tabular-nums; }
.cap-act[b-c3dom3xrf9] { font-size: .6875rem; color: var(--atr-text-2); font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
    .cap-btn[b-c3dom3xrf9] { transition: none; }
}
/* /Components/Pages/CustomerDetail.razor.rz.scp.css */
/* Kundendetail (Designsystem „Plankopf“): Ansprechpartner und Projekte als Zeilen mit Haarlinie. */
.contact-row[b-nxsy8zonk7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 12px;
    padding: 10px 0;
    border-top: 1px solid var(--atr-border);
}

.contact-row__main[b-nxsy8zonk7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 8px;
    min-width: 0;
}

.contact-row__name[b-nxsy8zonk7] {
    font-size: .875rem;
    font-weight: 600;
}

.contact-row__meta[b-nxsy8zonk7] {
    flex-basis: 100%;
    font-size: .75rem;
    color: var(--atr-text-2);
    overflow-wrap: anywhere;
}

.customer-projects[b-nxsy8zonk7] {
    list-style: none;
    margin: 0 -8px;
    padding: 0;
}

.customer-project[b-nxsy8zonk7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 8px;
    border-top: 1px solid var(--atr-border);
    border-radius: 6px;
}
/* /Components/Pages/EmployeeDetail.razor.rz.scp.css */
/* Zugewiesene Projekte: ruhige Liste mit Haarlinien statt gestapelter Einzelblöcke. Die ganze Zeile
   öffnet das Projekt (.atrium-rowlink, js/atrium-ui.js); Hover-Tönung kommt aus app.css. */
.emp-projects[b-8lgm1zvtwx] { list-style: none; margin: 0 -8px; padding: 0; }
.emp-projects li[b-8lgm1zvtwx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px;
    border-radius: var(--atr-radius-control);
}
.emp-projects li + li[b-8lgm1zvtwx] { border-top: 1px solid var(--atr-border); }
/* /Components/Pages/GlobalSearch.razor.rz.scp.css */
/* Suche (Designsystem „Plankopf“): Suchfeld in voller Breite ohne Karte, Treffer als Links mit Typ-Symbol. */
.search-bar[b-9g8oir7fp9] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
}

.search-bar[b-9g8oir7fp9]  .search-bar__field {
    flex: 1 1 auto;
}

.search-hits[b-9g8oir7fp9] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.search-hits li + li[b-9g8oir7fp9] {
    border-top: 1px solid var(--atr-border);
}

.search-hit[b-9g8oir7fp9] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    color: var(--atr-text);
    text-decoration: none;
    transition: background-color var(--atr-dur-fast) ease;
}

.search-hit:hover[b-9g8oir7fp9] {
    background: var(--atr-surface-subtle);
    text-decoration: none;
}

.search-hit:focus-visible[b-9g8oir7fp9] {
    outline: 2px solid var(--atr-accent);
    outline-offset: -2px;
}

.search-hit__icon[b-9g8oir7fp9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 32px;
    height: 32px;
    border-radius: var(--atr-radius-control);
    border: 1px solid var(--atr-border);
    background: var(--atr-surface-sunken);
    color: var(--atr-text-2);
}

.search-hit__main[b-9g8oir7fp9] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.search-hit__kind[b-9g8oir7fp9] {
    font-size: .6875rem;
    font-weight: 500;
    letter-spacing: .02em;
    color: var(--atr-text-2);
}

.search-hit__title[b-9g8oir7fp9] {
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.search-hit:hover .search-hit__title[b-9g8oir7fp9] {
    color: var(--atr-accent);
}

.search-hit__sub[b-9g8oir7fp9] {
    font-size: .8125rem;
    color: var(--atr-text-2);
    overflow-wrap: anywhere;
}

.empty-hits__text[b-9g8oir7fp9] {
    margin: 0 0 4px;
    font-size: .9375rem;
    font-weight: 500;
    text-align: center;
}

.empty-hits__hint[b-9g8oir7fp9] {
    margin: 0;
    font-size: .8125rem;
    color: var(--atr-text-2);
    text-align: center;
}
/* /Components/Pages/MyTasks.razor.rz.scp.css */
/* Meine Aufgaben (Designsystem „Plankopf“): Liste und Details. Ab 1280 px stehen die Details rechts neben der
   Liste und bleiben beim Blättern stehen; darunter folgen sie der Liste. */
.task-layout[b-eh13e0bngd] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.task-list[b-eh13e0bngd] {
    min-width: 0;
}

.task-detail[b-eh13e0bngd] {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--atr-border);
    border-radius: var(--atr-radius-card);
    background: var(--atr-sheet);
}

@media (min-width: 1280px) {
    .task-layout.has-detail[b-eh13e0bngd] {
        grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
    }

    .task-detail[b-eh13e0bngd] {
        position: sticky;
        top: calc(var(--mud-appbar-height) + 16px);
        max-height: calc(100vh - var(--mud-appbar-height) - 32px);
        overflow-y: auto;
    }
}

.task-detail__head[b-eh13e0bngd] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.task-detail__title[b-eh13e0bngd] {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.012em;
    overflow-wrap: anywhere;
}

/* Die Überschrift bekommt den Fokus nur zur Orientierung (Screenreader, Bildlauf) – sie ist keine Bedienfläche. */
.task-detail__title:focus[b-eh13e0bngd],
.task-detail__title:focus-visible[b-eh13e0bngd] {
    outline: none;
}

.task-detail__actions[b-eh13e0bngd] {
    display: flex;
    align-items: center;
    gap: 2px;
    flex: none;
}

.task-detail__desc[b-eh13e0bngd] {
    margin: 0 0 16px;
    font-size: .875rem;
    line-height: 1.55;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.task-detail__status[b-eh13e0bngd] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 4px 0 20px;
}

.task-comments[b-eh13e0bngd] {
    border-top: 1px solid var(--atr-border);
    padding-top: 16px;
}

.task-comments__title[b-eh13e0bngd] {
    margin: 0 0 12px;
    font-size: .9375rem;
    font-weight: 600;
}

.task-comments__list[b-eh13e0bngd] {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
    display: grid;
    gap: 12px;
}

.task-comment__meta[b-eh13e0bngd] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 2px;
}

.task-comment__author[b-eh13e0bngd] {
    font-size: .8125rem;
    font-weight: 600;
}

.task-comment__time[b-eh13e0bngd] {
    font-size: .75rem;
    color: var(--atr-text-2);
    font-variant-numeric: tabular-nums;
}

.task-comment__body[b-eh13e0bngd] {
    font-size: .875rem;
    line-height: 1.5;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.task-comments__new[b-eh13e0bngd] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

/* Hinweise unter dem Aufgabentitel: Kommentare, gekoppelte Wiedervorlage, überfällig. */
.task-flags[b-eh13e0bngd] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 10px;
    margin-top: 2px;
}

.task-flag[b-eh13e0bngd] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: .75rem;
    color: var(--atr-text-2);
}

.task-flag[b-eh13e0bngd]  .mud-icon-root {
    font-size: .9375rem;
    width: .9375rem;
    height: .9375rem;
}

.task-flag.is-danger[b-eh13e0bngd] {
    color: var(--atr-danger);
    font-weight: 500;
}

/* Priorität: Normal und Niedrig bleiben ruhig, Hoch und Dringend fallen auf (Gewicht UND Farbe). */
.task-prio[b-eh13e0bngd] {
    font-size: .8125rem;
    color: var(--atr-text-2);
}

.task-prio.prio-high[b-eh13e0bngd] {
    color: var(--atr-warning);
    font-weight: 600;
}

.task-prio.prio-urgent[b-eh13e0bngd] {
    color: var(--atr-danger);
    font-weight: 600;
}
/* /Components/Pages/Neuigkeiten.razor.rz.scp.css */
/* Neuigkeiten (Designsystem „Plankopf“): Artikel auf einem Blatt, durch Haarlinien getrennt. */
.news-item[b-nhi0uq8jnt] {
    padding: 20px 24px;
}

.news-item + .news-item[b-nhi0uq8jnt] {
    border-top: 1px solid var(--atr-border);
}

.news-item__meta[b-nhi0uq8jnt] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    margin-bottom: 8px;
}

.news-item__version[b-nhi0uq8jnt] {
    font-family: var(--atr-font-mono);
    font-size: .75rem;
    color: var(--atr-text-2);
}

.news-item__date[b-nhi0uq8jnt] {
    margin-left: auto;
    font-size: .75rem;
    color: var(--atr-text-2);
    font-variant-numeric: tabular-nums;
}

.news-item__title[b-nhi0uq8jnt] {
    margin: 0 0 6px;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: -0.006em;
}

.news-item__body[b-nhi0uq8jnt] {
    max-width: 75ch;
    margin: 0;
    font-size: .875rem;
    line-height: 1.6;
    color: var(--atr-text-2);
    white-space: pre-line;
}
/* /Components/Pages/Notifications.razor.rz.scp.css */
/* Benachrichtigungen (Designsystem „Plankopf“): ruhiger Verlauf, eine Zeile je Meldung. */
.notif-list[b-dkenijafzj] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.notif-list li + li[b-dkenijafzj] {
    border-top: 1px solid var(--atr-border);
}

.notif[b-dkenijafzj] {
    display: grid;
    grid-template-columns: 8px minmax(0, 1fr) auto;
    align-items: start;
    gap: 12px;
    width: 100%;
    padding: 14px 16px;
    border: 0;
    background: transparent;
    font: inherit;
    color: var(--atr-text);
    text-align: left;
    cursor: pointer;
    transition: background-color var(--atr-dur-fast) ease;
}

.notif:hover[b-dkenijafzj] {
    background: var(--atr-surface-subtle);
}

.notif:focus-visible[b-dkenijafzj] {
    outline: 2px solid var(--atr-accent);
    outline-offset: -2px;
}

.notif__dot[b-dkenijafzj] {
    width: 8px;
    height: 8px;
    margin-top: 6px;
    border-radius: 50%;
}

.notif.is-unread .notif__dot[b-dkenijafzj] {
    background: var(--atr-accent);
}

.notif__main[b-dkenijafzj] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.notif__title[b-dkenijafzj] {
    font-size: .875rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.notif.is-unread .notif__title[b-dkenijafzj] {
    font-weight: 600;
}

.notif.is-read .notif__title[b-dkenijafzj] {
    color: var(--atr-text-2);
}

.notif__body[b-dkenijafzj] {
    font-size: .8125rem;
    line-height: 1.45;
    color: var(--atr-text-2);
    overflow-wrap: anywhere;
}

.notif__time[b-dkenijafzj] {
    font-size: .75rem;
    color: var(--atr-text-2);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    padding-top: 2px;
}

@media (max-width: 599.98px) {
    .notif[b-dkenijafzj] {
        grid-template-columns: 8px minmax(0, 1fr);
    }

    .notif__time[b-dkenijafzj] {
        grid-column: 2;
        padding-top: 0;
    }
}
/* /Components/Pages/Support.razor.rz.scp.css */
/* Öffentliches Kontakt-/Support-Formular (Designsystem „Plankopf“). Läuft über EmptyLayout OHNE
   MudThemeProvider – die Farben kommen deshalb direkt aus den --atr-Tokens (app.css), die für Hell und
   Dunkel über [data-theme] umschalten. Vorher: eigene Teal-Palette mit eigener Dunkel-Abfrage, die dem
   Rest der Anwendung (und der Anmeldeseite) nicht mehr entsprach. */
.sup[b-e8xpc2hesu] {
    --page: var(--atr-canvas);
    --surface: var(--atr-sheet);
    --ink: var(--atr-text);
    --muted: var(--atr-text-2);
    --line: var(--atr-border-strong);
    --field: var(--atr-sheet);
    --field-focus: var(--atr-sheet);
    --accent: var(--atr-accent);
    --accent-glow: color-mix(in srgb, var(--atr-accent) 16%, transparent);
    --danger: var(--atr-danger);

    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 40px 24px;
    background: var(--page);
    font-family: var(--atr-font);
    color: var(--ink);
    -webkit-font-smoothing: antialiased;
}

.card[b-e8xpc2hesu] {
    width: min(680px, 100%);
    background: var(--surface);
    border: 1px solid var(--atr-border);
    border-radius: 12px;
    box-shadow: none;
    padding: 32px clamp(22px, 4vw, 44px) 36px;
}

.top[b-e8xpc2hesu] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.logo[b-e8xpc2hesu] { display: inline-flex; align-items: center; text-decoration: none; color: var(--ink); }
.logo[b-e8xpc2hesu]  svg { height: 26px; width: auto; display: block; }
.back[b-e8xpc2hesu] { font-size: .875rem; color: var(--accent); text-decoration: none; font-weight: 500; }
.back:hover[b-e8xpc2hesu] { text-decoration: underline; }

.intro h1:focus[b-e8xpc2hesu], .done h1:focus[b-e8xpc2hesu] { outline: none; }
.intro h1[b-e8xpc2hesu] { font-size: 1.5rem; font-weight: 600; letter-spacing: -.02em; line-height: 1.25; }
.intro p[b-e8xpc2hesu] { color: var(--muted); margin-top: 8px; font-size: .9375rem; line-height: 1.6; margin-bottom: 24px; }

.form[b-e8xpc2hesu] { display: flex; flex-direction: column; gap: 16px; }
.field[b-e8xpc2hesu] { display: flex; flex-direction: column; }
.field > label[b-e8xpc2hesu] { font-size: .8125rem; font-weight: 500; margin-bottom: 6px; }
.field .opt[b-e8xpc2hesu] { color: var(--muted); font-weight: 400; }
.grid2[b-e8xpc2hesu] { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

/* ::deep, weil InputText/InputTextArea Kind-Komponenten sind (ihr <input> trägt das Scope-Attribut nicht). */
.field[b-e8xpc2hesu]  .in {
    width: 100%; height: 44px; padding: 0 12px;
    border: 1px solid var(--line); background: var(--field);
    border-radius: 8px; font-size: .9375rem; color: var(--ink);
    box-sizing: border-box; transition: border-color .15s, box-shadow .15s;
    font-family: inherit;
}
.field[b-e8xpc2hesu]  .in.area { height: auto; padding: 10px 12px; line-height: 1.55; resize: vertical; min-height: 120px; }
.field[b-e8xpc2hesu]  .in::placeholder { color: var(--atr-text-3); }
.field[b-e8xpc2hesu]  .in:hover { border-color: color-mix(in srgb, var(--atr-text-3) 70%, var(--line)); }
.field[b-e8xpc2hesu]  .in:focus {
    outline: none; border-color: var(--accent); background: var(--field-focus);
    box-shadow: 0 0 0 3px var(--accent-glow);
}
.field[b-e8xpc2hesu]  .val { color: var(--danger); font-size: .78rem; margin-top: 5px; }

/* Anliegen-Auswahl als Karten */
.kinds[b-e8xpc2hesu] { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.kind[b-e8xpc2hesu] {
    position: relative; display: flex; flex-direction: column; gap: 2px;
    padding: 12px 14px 12px 40px; border: 1px solid var(--line); border-radius: 10px;
    background: var(--field); cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s;
}
.kind:hover[b-e8xpc2hesu] { border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); }
.kind.sel[b-e8xpc2hesu] { border-color: var(--accent); background: var(--atr-accent-bg); box-shadow: 0 0 0 1px var(--accent); }
.kind[b-e8xpc2hesu]  input[type="radio"] { position: absolute; left: 13px; top: 14px; width: 17px; height: 17px; accent-color: var(--accent); }
.kind .kt[b-e8xpc2hesu] { font-weight: 600; font-size: .875rem; }
.kind .kd[b-e8xpc2hesu] { font-size: .78rem; color: var(--muted); }

/* Knöpfe wie in der Anwendung: Hauptaktion Graphit gefüllt, Nebenaktion umrandet. */
.btn[b-e8xpc2hesu] {
    display: inline-flex; align-items: center; justify-content: center;
    height: 44px; padding: 0 20px; border: none; border-radius: 8px; cursor: pointer;
    background: var(--atr-primary);
    color: var(--atr-on-primary); font-size: .9375rem; font-weight: 600; text-decoration: none;
    box-shadow: none;
    transition: background-color .15s, transform .12s;
    font-family: inherit;
}
.btn:hover[b-e8xpc2hesu] { background: var(--atr-primary-hover); }
.btn:active[b-e8xpc2hesu] { transform: translateY(1px); }
.btn:focus-visible[b-e8xpc2hesu] { outline: 2px solid var(--accent); outline-offset: 2px; }
.btn.submit[b-e8xpc2hesu] { width: 100%; margin-top: 4px; }
.btn.ghost[b-e8xpc2hesu] { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.btn.ghost:hover[b-e8xpc2hesu] { background: var(--atr-surface-subtle); }

.hint[b-e8xpc2hesu] { font-size: .78rem; color: var(--muted); text-align: center; margin-top: 2px; }
.hint a[b-e8xpc2hesu] { color: var(--accent); font-weight: 500; }

.legal[b-e8xpc2hesu] { display: flex; justify-content: center; gap: 16px; margin-top: 22px; font-size: .75rem; }
.legal a[b-e8xpc2hesu] { color: var(--muted); }
.legal a:hover[b-e8xpc2hesu], .legal a:focus-visible[b-e8xpc2hesu] { color: var(--ink); }

.alert[b-e8xpc2hesu] {
    background: var(--atr-danger-bg);
    color: var(--danger);
    border: 1px solid color-mix(in srgb, var(--danger) 30%, var(--surface));
    padding: .65rem .8rem; border-radius: 8px; font-size: .86rem; margin-bottom: 16px;
}

/* Erfolgs-/Danke-Zustand */
.done[b-e8xpc2hesu] { text-align: center; padding: 18px 8px 8px; }
.done .check[b-e8xpc2hesu] {
    width: 64px; height: 64px; border-radius: 50%; margin: 0 auto 18px;
    background: var(--atr-success-bg);
    color: var(--atr-success); display: flex; align-items: center; justify-content: center;
}
.done .check svg[b-e8xpc2hesu] { width: 30px; height: 30px; }
.done h1[b-e8xpc2hesu] { font-size: 1.5rem; font-weight: 600; letter-spacing: -.02em; }
.done p[b-e8xpc2hesu] { color: var(--muted); margin-top: 8px; line-height: 1.6; }
.done .actions[b-e8xpc2hesu] { display: flex; gap: 12px; justify-content: center; margin-top: 22px; flex-wrap: wrap; }

@media (max-width: 560px) {
    .grid2[b-e8xpc2hesu] { grid-template-columns: 1fr; }
    .kinds[b-e8xpc2hesu] { grid-template-columns: 1fr; }
    .card[b-e8xpc2hesu] { padding: 26px 20px 30px; }
    .sup[b-e8xpc2hesu] { padding: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .btn[b-e8xpc2hesu], .kind[b-e8xpc2hesu], .field[b-e8xpc2hesu]  .in { transition: none; }
}
/* /Components/Shared/CalendarBoard.razor.rz.scp.css */
/* Bildlaufhinweis für das Monatsgitter — dieselbe Aussage wie an den Tabellen (app.css,
   `.mud-table-container`), aus dem in CalendarBoard.razor begründeten Grund als Überlagerer.
   Farbe und Breite sind bewusst identisch: 14 px, über die Textfarbe gemischt, damit der Hinweis
   auch auf der dunklen Fläche (#23282F) sichtbar bleibt, wo ein schwarzer Schatten verschwände. */

.grid-scroll[b-a5rgtietx2] {
    position: relative;
}

.grid-scroll-pane[b-a5rgtietx2] {
    overflow-x: auto;
}

/* Das Gitter hat eine Mindestbreite von 640 px. Der Behälter ist so breit wie der Inhaltsbereich,
   also Fensterbreite minus 32 px Rand des MudContainer (px-4) — bei 390 px gemessen: 358.
   Er rollt somit genau unterhalb von 672 px Fensterbreite; ab 960 px ist die Navigationsleiste
   ohnehin ausgeklappt und der Bereich mindestens 654 px breit. Der Hinweis erscheint deshalb nur
   unter 672 px: dort rollt das Gitter immer, und oberhalb wäre er eine Behauptung ohne Deckung.

   Kein `local`-Trick wie bei den Tabellen, also verschwindet der Hinweis am rechten Ende nicht von
   selbst — dafür bräuchte es JavaScript pro Bildlauf (bewusst nicht: siehe den entfernten Helfer
   atriumHScroll) oder bildlaufgesteuerte Animation, die hier noch nicht überall greift. Ein
   dauerhaft sichtbarer Hinweis ist die ehrlichere Näherung: er sagt „hier geht es seitwärts", und
   das bleibt auf dem Telefon in jeder Bildlaufposition wahr. */
@media (max-width: 671.98px) {
    .grid-scroll[b-a5rgtietx2]::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: 14px;
        border-radius: 0 var(--atr-radius-card) var(--atr-radius-card) 0;
        pointer-events: none;
        background: linear-gradient(to left,
            color-mix(in srgb, var(--mud-palette-text-primary) 18%, transparent), transparent);
    }
}

/* ---- Gitter (Monat/Woche): Haarlinien aus dem Spaltenabstand, Kopf leicht getönt ---- */
.cal-grid[b-a5rgtietx2] {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 1px;
    min-width: 640px;
    background: var(--atr-border);
    border: 1px solid var(--atr-border);
    border-radius: var(--atr-radius-card);
    overflow: hidden;
}

.cal-grid__head[b-a5rgtietx2] {
    padding: 8px 10px;
    background: var(--atr-surface-subtle);
    font-size: .75rem;
    font-weight: 600;
    color: var(--atr-text-2);
}

.cal-cell[b-a5rgtietx2] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    min-height: 108px;
    padding: 6px 6px 8px;
    background: var(--atr-sheet);
    overflow: hidden;
}

.cal-cell.is-outside[b-a5rgtietx2] {
    background: var(--atr-surface-sunken);
}

.cal-cell.is-holiday[b-a5rgtietx2] {
    background: color-mix(in srgb, var(--atr-warning) 8%, var(--atr-sheet));
}

.cal-cell__head[b-a5rgtietx2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    min-height: 24px;
    margin-bottom: 2px;
}

.cal-cell__day[b-a5rgtietx2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 4px;
    border-radius: 999px;
    font-size: .8125rem;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    color: var(--atr-text);
}

.cal-cell.is-outside .cal-cell__day[b-a5rgtietx2] {
    font-weight: 400;
    color: var(--atr-text-2);
}

/* Heute = aktueller Zustand → Tuscheblau (Schrift: on-primary passt in beiden Modi auf den Akzent). */
.cal-cell.is-today .cal-cell__day[b-a5rgtietx2] {
    background: var(--atr-accent);
    color: var(--atr-on-primary);
    font-weight: 600;
}

/* Feiertag rechts neben der Tageszahl, bis zu zwei Zeilen (vorher im Code auf 14 Zeichen gekürzt:
   „Betriebsferie…“ selbst bei 1440 px). Der volle Name steht zusätzlich im title. */
.cal-cell__holiday[b-a5rgtietx2] {
    min-width: 0;
    font-size: .6875rem;
    line-height: 1.2;
    color: var(--atr-warning);
    text-align: right;
    white-space: normal;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* ---- Termine und Abwesenheiten: getönte Fläche + Farbpunkt, Text in Textfarbe ---- */
.cal-ev[b-a5rgtietx2],
.cal-abs[b-a5rgtietx2],
.cal-row[b-a5rgtietx2] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.cal-ev[b-a5rgtietx2]::before,
.cal-abs[b-a5rgtietx2]::before,
.cal-row[b-a5rgtietx2]::before {
    content: "";
    flex: none;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ev);
}

.cal-text[b-a5rgtietx2] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cal-ev[b-a5rgtietx2] {
    padding: 2px 6px;
    border-radius: 5px;
    background: color-mix(in srgb, var(--ev) 13%, var(--atr-sheet));
    color: var(--atr-text);
    font-size: .75rem;
    line-height: 1.35;
    cursor: pointer;
}

.cal-ev:hover[b-a5rgtietx2] {
    background: color-mix(in srgb, var(--ev) 22%, var(--atr-sheet));
}

.cal-abs[b-a5rgtietx2] {
    padding: 1px 8px 1px 6px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ev) 10%, var(--atr-surface-sunken));
    color: var(--atr-text-2);
    font-size: .6875rem;
    line-height: 1.4;
}

.cal-more[b-a5rgtietx2] {
    padding: 0 6px;
    font-size: .6875rem;
    color: var(--atr-text-2);
}

.cal-ev:focus-visible[b-a5rgtietx2],
.cal-row:focus-visible[b-a5rgtietx2] {
    outline: 2px solid var(--atr-accent);
    outline-offset: 1px;
}

/* ---- Tagesansicht ---- */
.cal-day[b-a5rgtietx2] {
    padding: 20px;
    border: 1px solid var(--atr-border);
    border-radius: var(--atr-radius-card);
    background: var(--atr-sheet);
}

.cal-day__title[b-a5rgtietx2] {
    margin: 0 0 12px;
    font-size: 1.125rem;
    font-weight: 600;
    letter-spacing: -0.012em;
}

.cal-day__holiday[b-a5rgtietx2] {
    margin: 0 0 12px;
    font-size: .8125rem;
    color: var(--atr-warning);
}

.cal-day__absences[b-a5rgtietx2] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
}

.cal-day__list[b-a5rgtietx2] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.cal-row[b-a5rgtietx2] {
    align-items: flex-start;
    gap: 12px;
    padding: 10px 12px;
    border-radius: var(--atr-radius-control);
    background: color-mix(in srgb, var(--ev) 9%, var(--atr-sheet));
    cursor: pointer;
}

.cal-row[b-a5rgtietx2]::before {
    margin-top: 7px;
}

.cal-row:hover[b-a5rgtietx2] {
    background: color-mix(in srgb, var(--ev) 16%, var(--atr-sheet));
}

.cal-row__time[b-a5rgtietx2] {
    flex: none;
    min-width: 92px;
    font-size: .8125rem;
    font-variant-numeric: tabular-nums;
    color: var(--atr-text-2);
}

.cal-row__main[b-a5rgtietx2] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.cal-row__title[b-a5rgtietx2] {
    font-size: .875rem;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.cal-row__meta[b-a5rgtietx2] {
    font-size: .8125rem;
    color: var(--atr-text-2);
    overflow-wrap: anywhere;
}
/* /Components/Shared/DocumentsTab.razor.rz.scp.css */
/* Dokumente (Designsystem „Plankopf“): Kategorie als Karte mit Kopfzeile, Dokumente als Zeilen darin. */
.doc-group__head[b-pjslrij4ah] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    cursor: pointer;
    user-select: none;
    transition: background-color var(--atr-dur-fast) ease;
}

.doc-group__head:hover[b-pjslrij4ah] {
    background: var(--atr-surface-subtle);
}

.doc-group__head:focus-visible[b-pjslrij4ah] {
    outline: 2px solid var(--atr-accent);
    outline-offset: -2px;
}

.doc-group__name[b-pjslrij4ah] {
    font-size: .9375rem;
    font-weight: 600;
}

.doc-group__count[b-pjslrij4ah] {
    min-width: 22px;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--atr-nav-active);
    font-size: .75rem;
    font-weight: 600;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.doc-group__body[b-pjslrij4ah]  .doc-row {
    padding: 12px 16px 12px 44px;
    border-top: 1px solid var(--atr-border);
    border-radius: 0;
    background: transparent;
}

.doc-row__title[b-pjslrij4ah] {
    font-weight: 600;
    overflow-wrap: anywhere;
}
/* /Components/Shared/DocxTemplateDetailEditor.razor.rz.scp.css */
/* Vorlagentext zum Markieren: monospaced, Umbrüche erhalten, eigener Scrollbereich.
   Farben ausschliesslich über MudBlazor-Palette, damit Hell- und Dunkelmodus tragen. */
.docx-source[b-0ky9b5z3sh] {
    white-space: pre-wrap;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 0.85rem;
    line-height: 1.6;
    max-height: 60vh;
    overflow-y: auto;
    padding: 12px;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 8px;
    background: color-mix(in srgb, var(--mud-palette-text-primary) 3%, var(--mud-palette-surface));
}

.docx-source[b-0ky9b5z3sh]::selection {
    background: color-mix(in srgb, var(--atr-accent) 30%, transparent);
}
/* /Components/Shared/EmptyState.razor.rz.scp.css */
/* Leerzustand — ruhig, aber nicht leer. Muster wie StatusBadge.razor.css: scoped CSS statt Inline-Styles. */

.empty[b-g36ukmwmss] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 6px 0 2px;
}

/* Mittig nur auf Anforderung (Center). Die Flex-Achse UND die Textausrichtung müssen mit:
   align-items zentriert die Zeilen als Blöcke, text-align den Umbruch innerhalb einer Zeile —
   ohne das zweite steht ein zweizeiliger Satz mittig gestellt, aber innen linksbündig. */
.empty.center[b-g36ukmwmss] {
    align-items: center;
    text-align: center;
}

/* Ganze Liste leer: ruhige Karte an der Stelle der Liste. */
.empty.boxed[b-g36ukmwmss] {
    padding: 32px 24px;
    border: 1px solid var(--atr-border);
    border-radius: var(--atr-radius-card);
    background: var(--atr-sheet);
}

.text[b-g36ukmwmss] {
    margin: 0;
    font-size: 0.875rem;
    color: var(--atr-text);
}

/* Der nächste Schritt trägt die Akzentfarbe und mehr Gewicht — er ist das Einzige, was hier anklickbar ist. */
.action[b-g36ukmwmss] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--atr-accent);
    text-decoration: none;
    border-radius: 4px;
}

.action:hover[b-g36ukmwmss] {
    text-decoration: underline;
}

/* Sichtbarer Fokus für Tastaturbedienung — der Ring darf nicht am Text kleben. */
.action:focus-visible[b-g36ukmwmss] {
    outline: 2px solid var(--atr-accent);
    outline-offset: 3px;
    text-decoration: underline;
}

/* Erklärung statt Handlung: gedämpfter als die Aussage darüber (Farbe statt Deckkraft – AA bleibt erhalten). */
.hint[b-g36ukmwmss] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--atr-text-2);
}
/* /Components/Shared/Fact.razor.rz.scp.css */
.fact[b-t7a7nqqw72] {
    flex: 1 1 var(--fact-min, 180px);
    min-width: 0;
    padding: 10px 14px;
    border-right: 1px solid var(--atr-border);
    border-bottom: 1px solid var(--atr-border);
    margin-right: -1px;
    margin-bottom: -1px;
}

.fact.wide[b-t7a7nqqw72] {
    flex: 2 1 calc(var(--fact-min, 180px) * 2);
}

dt[b-t7a7nqqw72] {
    margin: 0 0 3px;
    font-size: .6875rem;
    font-weight: 500;
    letter-spacing: .02em;
    color: var(--atr-text-2);
}

dd[b-t7a7nqqw72] {
    margin: 0;
    font-size: .875rem;
    line-height: 1.4;
    color: var(--atr-text);
    overflow-wrap: anywhere;
    hyphens: auto;
    font-variant-numeric: tabular-nums;
}

/* Handy: immer zwei Felder je Zeile (auch „Objekt“), die letzte Zeile füllt sich wie oben. */
@media (max-width: 599.98px) {
    .fact[b-t7a7nqqw72],
    .fact.wide[b-t7a7nqqw72] {
        flex: 1 1 40%;
    }
}
/* /Components/Shared/FactGrid.razor.rz.scp.css */
/* Schriftfeld mit Haarlinien: Jede Zelle trägt Rahmen rechts/unten und ragt 1 px über; der Behälter schneidet
   den Überstand ab. So entstehen saubere Linien, ohne dass die letzte Zeile/Spalte doppelt gezogen wird.
   Flex statt Grid: Die Felder einer Zeile wachsen, bis die Zeile voll ist – wie die unterschiedlich breiten
   Felder eines Plankopfs. Ein Raster ließe am Ende eine leere Restfläche stehen. */
.fact-grid[b-ftm0o2ui3d] {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    border: 1px solid var(--atr-border-strong);
    border-radius: var(--atr-radius-card);
    overflow: hidden;
    background: var(--atr-sheet);
}
/* /Components/Shared/LoadingRows.razor.rz.scp.css */
/* Ladeskelett — Muster wie EmptyState.razor.css: scoped CSS statt Inline-Styles. */

.rows[b-yclzkj3eks] {
    padding: 8px;
}

/* 48 px liegt zwischen der Mindesthöhe aus app.css (44) und der gemessenen echten Zeile (56).
   Bewusst eine Näherung: echte Zeilen wachsen mit umbrechenden Titeln. */
.row[b-yclzkj3eks] {
    display: flex;
    align-items: center;
    height: 48px;
    padding: 0 12px;
    border-bottom: 1px solid var(--mud-palette-table-lines);
}

.row:last-child[b-yclzkj3eks] {
    border-bottom: none;
}

/* Nur für Hilfstechnik: trägt die Ansage, die vorher der Fortschrittsbalken selbst mitbrachte.
   Nicht display:none — das nähme sie auch dem Screenreader. */
.sr-only[b-yclzkj3eks] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* /Components/Shared/MyNotesCard.razor.rz.scp.css */
/* Notizen (Designsystem „Plankopf“): Der Kopf steht wie die Abschnittsköpfe des Dashboards über der Karte
   und ist ein echter Aufklapp-Knopf (aria-expanded, Tastatur). Eingeklappt zeigt die Karte eine Zusammenfassung. */
.notes-heading[b-3spsimk51b] {
    margin: 0 0 12px;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: -0.006em;
}

.notes-head[b-3spsimk51b] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: var(--atr-text);
    text-align: left;
    cursor: pointer;
}

.notes-head:focus-visible[b-3spsimk51b] {
    outline: 2px solid var(--atr-accent);
    outline-offset: 2px;
    border-radius: 4px;
}

.notes-head .count[b-3spsimk51b] {
    font-size: .75rem;
    font-weight: 600;
    line-height: 1;
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--atr-nav-active);
    color: var(--atr-text);
}

.notes-head .toggle[b-3spsimk51b] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: .875rem;
    font-weight: 500;
    color: var(--atr-accent);
}

.notes-head:hover .toggle[b-3spsimk51b] { color: var(--atr-accent-hover); }

.notes-card[b-3spsimk51b] {
    background: var(--atr-sheet);
    border: 1px solid var(--atr-border);
    border-radius: var(--atr-radius-card);
    padding: 16px;
}

.teaser[b-3spsimk51b] { margin: 0; font-size: .875rem; color: var(--atr-text-2); }
.tag[b-3spsimk51b] { margin: 0 0 12px; font-size: .75rem; color: var(--atr-text-2); }

.note-input[b-3spsimk51b] { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }

.empty[b-3spsimk51b] { margin: 12px 0 0; font-size: .875rem; color: var(--atr-text-2); }

.note-item[b-3spsimk51b] {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: var(--atr-radius-control);
    border: 1px solid var(--atr-border);
    background: var(--atr-surface-sunken);
}

/* Notiztext: mehrzeilig (Enter bleibt erhalten); im eingeklappten Zustand auf 3 Zeilen begrenzt */
.note-body[b-3spsimk51b] {
    margin: 0;
    font-size: .875rem;
    line-height: 1.5;
    color: var(--atr-text);
    white-space: pre-wrap;
    word-break: break-word;
}
.note-body.clamped[b-3spsimk51b] {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.note-date[b-3spsimk51b] {
    font-size: .75rem;
    color: var(--atr-text-2);
    white-space: nowrap;
}
/* /Components/Shared/MyTimeAccountView.razor.rz.scp.css */
/* Zeitkonto-Berechnung: Zwischen- und Endsummen hervorgehoben (Gewicht + kräftigere Linie). */
.is-sum td[b-tdfl5ndnr7] {
    font-weight: 600;
    border-top: 1px solid var(--atr-border-strong);
}
/* /Components/Shared/PageHeader.razor.rz.scp.css */
/* Seitenkopf — Muster wie EmptyState.razor.css: scoped CSS statt Inline-Styles.
   Den Abstand nach unten setzt bewusst NICHT diese Datei, sondern `.atrium-page-head` in app.css
   (20 px). So bleibt der Wert dort, wo er schon stand, und ist an einer Stelle änderbar. */

/* Rücksprung: 8 px Abstand nach unten — derselbe Wert, den die fünf Detailseiten vorher einzeln als
   `Class="mb-2"` mitgaben. Jetzt steht er einmal hier.
   Die Klasse sitzt auf der <div>-Hülle, nicht am MudButton — begründet in PageHeader.razor. */
.back[b-6qq3rmyfsa] {
    margin-bottom: 8px;
}

/* Rücksprung als leiser Brotkrumen-Link über dem Titel (Designsystem „Plankopf“). ::deep, weil der MudButton
   kein Bereichsmerkmal trägt (siehe PageHeader.razor). */
.back[b-6qq3rmyfsa]  .atrium-back-link {
    color: var(--atr-text-2);
    font-weight: 500;
    min-height: 28px;
    padding-inline: 6px;
    margin-inline-start: -6px;
}

.back[b-6qq3rmyfsa]  .atrium-back-link:hover {
    color: var(--atr-text);
}

/* Strukturierter Kopfbereich (Plankopf, Maßkette) unter Titel und Aktionen. */
.details[b-6qq3rmyfsa] {
    margin-top: 20px;
    min-width: 0;
}

.head[b-6qq3rmyfsa] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 16px;
}

/* Drei Fälle wollen hier gleichzeitig richtig sein, und sie widersprechen sich:

   1. /firmen — mit der Vorgabe `flex-basis: auto` zählt die INHALTSBREITE der ganzen Titelgruppe.
      Eine lange Unterzeile („Ausführende Firmen, Fachplaner und Gutachter — …") macht sie damit
      breiter als der Rest der Zeile, und die Aktion bricht unter den Text um, statt rechts zu stehen.
   2. Projektdetail — der rechte Slot ist breit (Phasenleiste PH0–LP9, Statusplakette, Ampel).
      Schrumpft die Titelspalte daneben ungebremst, bricht der Projektname mehrzeilig um, obwohl
      daneben eine ganze Zeile frei wäre.
   3. Projektzuweisung — Titel 218 px, Werkzeuge 395, zusammen 629 von 718 verfügbaren. Es passt;
      eine erfundene Untergrenze (erster Versuch: 320 px) erzwang hier trotzdem einen Umbruch.

   Alle drei löst `flex-basis: auto` — WENN nur die Titelzeile über die natürliche Breite
   abstimmt. Denn die Umbruchentscheidung einer Flex-Zeile fällt über die Wunschbreite der Kinder
   (max-content), nicht über ihre Mindestbreite: passt Titel + Aktionen nebeneinander, bleiben sie
   nebeneinander (Fall 3); passen sie nicht, rutschen die Aktionen komplett in die zweite Zeile und
   der Titel bekommt die volle Breite (Fall 2). `min-width: 0` erlaubt dabei ausdrücklich, dass die
   Spalte enger wird als der Titel lang ist — dann bricht er um, statt hinauszulaufen.

   Der Vorgänger löste 2 und 3 über `white-space: nowrap` auf der Titelzeile (deren Mindestbreite
   wird damit ihre volle Breite, und `min-width: auto` macht das zur Untergrenze der Spalte). Das
   hatte eine Grenze ohne Ausweg: reichte die Zeile nicht, lief der Titel seitlich aus der Seite
   heraus. Am laufenden System gemessen mit „Sanierung und Erweiterung Verwaltungsgebäude Stadtwerke
   Aschaffenburg" (69 Zeichen, 803 px): bei 640 px Fensterbreite schob das die GANZE Seite 179 px
   nach rechts, bei 1024 px mit offener Navigation 69 px — jedes andere Element wanderte mit. Die
   Schwelle lag bei etwa 51 Zeichen, also mitten im Alltag eines Architekturbüros. */
.titles[b-6qq3rmyfsa] {
    flex: 1 1 auto;
    min-width: 0;
}

/* Nur die Titelzeile stimmt über die natürliche Breite der Spalte ab (siehe oben). Die Unterzeile
   wird davon ausgenommen: `width: 0` nimmt ihr die Stimme, `min-width: 100%` gibt ihr die Breite
   der Spalte zurück. Ohne das wäre Fall 1 wieder da. */
.sub[b-6qq3rmyfsa] {
    width: 0;
    min-width: 100%;
}

/* Symbol und Überschrift auf einer Grundlinie. Immer vorhanden, auch ohne Symbol — dann ist es
   schlicht eine Flex-Zeile mit einem Kind und ändert nichts. */
/* 40 px wie die Aktionszeile: so steht der Titel auf jeder Seite gleich hoch, mit oder ohne Knöpfe
   (vorher sprang er um 5 px, und im Projektkopf hingen Bearbeiten/Löschen zwischen Titel und Kennzeile). */
.title-row[b-6qq3rmyfsa] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    min-width: 0;
    overflow-wrap: anywhere;
}

.actions[b-6qq3rmyfsa] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    min-height: 40px;
    min-width: 0;
    max-width: 100%;
}

/* Unter sm (MudBlazor-Grenze 600 px) untereinander statt nebeneinander. Bei 390 px schrumpfte die
   Titelspalte sonst auf rund 167 px, und eine normale Unterzeile brach dort dreizeilig neben dem
   Knopf um — lesbar, aber gedrängt. Gestapelt bekommt der Text die volle Breite und die Aktion
   steht darunter, wo sie auf dem Telefon ohnehin leichter zu treffen ist. */
@media (max-width: 599.98px) {
    .head[b-6qq3rmyfsa] {
        flex-direction: column;
        align-items: stretch;
    }

}
/* /Components/Shared/PersonnelToday.razor.rz.scp.css */
/* IMP-015 · „Personal – Heute" — ruhige Attention-/Worklist, theme-getrieben (Light + Dark). */

.pt-actions[b-vn4o5wxawd] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pt-card[b-vn4o5wxawd] {
    padding: 16px 18px;
    border-radius: var(--atr-radius-card);
    height: 100%;
}

.pt-card-head[b-vn4o5wxawd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.pt-row[b-vn4o5wxawd] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    border-top: 1px solid var(--atr-border);
}
.pt-row:first-of-type[b-vn4o5wxawd] { border-top: none; }

.pt-links[b-vn4o5wxawd] {
    display: flex;
    flex-wrap: wrap;
    gap: 20px 28px;
    align-items: center;
}
.pt-links[b-vn4o5wxawd]  a { display: inline-flex; align-items: center; gap: 4px; }

@media (max-width: 600px) {
    .pt-actions[b-vn4o5wxawd]  .mud-button-root { flex: 1 1 auto; }
    .pt-row[b-vn4o5wxawd] { flex-direction: column; gap: 0; }
}
/* /Components/Shared/PhaseStepper.razor.rz.scp.css */
/* Maßkette: gleich breite Segmente wie Maßlinien, feine Endmarken an jeder Fuge. */
.phase-chain[b-u25m62f7o9] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 2px;
    min-width: 0;
}

.phase-step[b-u25m62f7o9] {
    position: relative;
    padding-top: 9px;
    text-align: center;
    font-size: .6875rem;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: .01em;
    color: var(--atr-text-2);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Segmentlinie */
.phase-tick[b-u25m62f7o9] {
    position: absolute;
    top: 2px;
    left: 0;
    right: 0;
    height: 2px;
    border-radius: 1px;
    background: var(--atr-border-strong);
}

/* Endmarke links an jeder Fuge (Maßkette) */
.phase-step[b-u25m62f7o9]::before {
    content: "";
    position: absolute;
    top: -1px;
    left: -1px;
    width: 1px;
    height: 8px;
    background: var(--atr-border-strong);
}

.phase-step:last-child[b-u25m62f7o9]::after {
    content: "";
    position: absolute;
    top: -1px;
    right: -1px;
    width: 1px;
    height: 8px;
    background: var(--atr-border-strong);
}

.phase-step.done[b-u25m62f7o9] { color: var(--atr-text); }
.phase-step.done .phase-tick[b-u25m62f7o9] { background: var(--atr-text); }
.phase-step.done[b-u25m62f7o9]::before { background: var(--atr-text); }

.phase-step.current[b-u25m62f7o9] { color: var(--atr-accent); font-weight: 650; }
.phase-step.current .phase-tick[b-u25m62f7o9] { background: var(--atr-accent); height: 4px; top: 1px; }
.phase-step.current[b-u25m62f7o9]::before { background: var(--atr-accent); }

.phase-step.skipped .phase-tick[b-u25m62f7o9],
.phase-step.uncommissioned .phase-tick[b-u25m62f7o9] {
    background: repeating-linear-gradient(90deg, var(--atr-border-strong) 0 4px, transparent 4px 7px);
}

.phase-step.skipped .phase-code[b-u25m62f7o9] { text-decoration: line-through; }

/* Lange Kürzel (z. B. „ABSCHLUSS“) bekommen mehr Platz, statt als „ABSCHLU…“ zu enden. */
.phase-step.long[b-u25m62f7o9] { grid-column: span 2; }

@media (max-width: 599.98px) {
    .phase-step[b-u25m62f7o9] { font-size: .6875rem; letter-spacing: 0; }
    .phase-step.long[b-u25m62f7o9] { grid-column: span 3; }
}
/* /Components/Shared/PmDashboard.razor.rz.scp.css */
/* Dashboard (Designsystem „Plankopf“): Kennzahlen-Reihe, darunter Hauptspalte + Seitenspalte. Keine
   Lade-Choreografie – ein Arbeitswerkzeug lädt in die Aufgabe, nicht in eine Vorführung. */
.kpis[b-bnn7t1arxv] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: 32px;
}

/* Handy: zwei Spalten – einspaltig füllten die vier Kacheln den ganzen ersten Bildschirm, und die
   Aufmerksamkeitsliste (die eigentliche Arbeit) lag unter dem Falz. */
@media (max-width: 599.98px) {
    .kpis[b-bnn7t1arxv] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin-bottom: 24px;
    }
}

.dash-grid[b-bnn7t1arxv] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
    align-items: start;
}

/* Die Aufmerksamkeitstabelle braucht die volle Breite (sieben Spalten); Aufgaben und Notizen stehen
   darunter nebeneinander. */
.dash-aside[b-bnn7t1arxv] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    align-items: start;
    min-width: 0;
}

@media (min-width: 1100px) {
    .dash-aside[b-bnn7t1arxv] {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: stretch;
    }
    /* Aufgaben und Notizen nebeneinander enden auf derselben Linie. */
    .dash-aside > section[b-bnn7t1arxv] { display: flex; flex-direction: column; }
    .dash-aside > section[b-bnn7t1arxv]  .dash-tasks-card { flex: 1 1 auto; }
    .dash-aside[b-bnn7t1arxv]  section.notes { display: flex; flex-direction: column; }
    .dash-aside[b-bnn7t1arxv]  .notes-card { flex: 1 1 auto; }
}

.dash-section-head[b-bnn7t1arxv] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.dash-section-head[b-bnn7t1arxv]  .mud-link { flex: none; white-space: nowrap; }

.dash-tasks[b-bnn7t1arxv] {
    list-style: none;
    margin: 0;
    padding: 4px 0;
}

.dash-task[b-bnn7t1arxv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--atr-border);
}

.dash-task:last-child[b-bnn7t1arxv] {
    border-bottom: none;
}

.dash-task__main[b-bnn7t1arxv] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.dash-task__title[b-bnn7t1arxv] {
    font-size: .875rem;
    font-weight: 500;
    color: var(--atr-text);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.dash-task__meta[b-bnn7t1arxv] {
    font-size: .75rem;
    color: var(--atr-text-2);
}

.dash-task__side[b-bnn7t1arxv] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: none;
}
/* /Components/Shared/ProjectBillingReadiness.razor.rz.scp.css */
/* IMP-016 · „Abrechnungsbereitschaft" — kompakte, read-only Aufmerksamkeitskarte im kaufmännischen Kontext.
   Theme-getrieben (Light + Dark) über MudBlazor-Palette-Variablen. Der Zustand wird als TEXT getragen, nicht
   allein über Farbe/Icon (IMP-001 / AC-038). Keine ARIA-Widget-Interaktivität — statische Karte + ein echter
   Button. Bricht bei schmaler Breite sauber um (kein horizontaler Overflow bei 390 px). */

.readiness[b-g3qzu7xw7j] {
    margin-bottom: 20px;
}

.readiness-card[b-g3qzu7xw7j] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 18px;
    border: 1px solid var(--atr-border);
    border-radius: var(--atr-radius-card);
    background: var(--atr-sheet);
}

/* Designsystem „Plankopf“: kein Farbstreifen – „bereit“ zeigt sich als ruhige Moos-Tönung, der Zustand steht
   zusätzlich als Text im Kopf. */
.readiness-card--ready[b-g3qzu7xw7j] {
    border-color: color-mix(in srgb, var(--atr-success) 28%, var(--atr-border));
    background: color-mix(in srgb, var(--atr-success-bg) 45%, var(--atr-sheet));
}

.readiness-card--idle[b-g3qzu7xw7j] {
    background: var(--atr-surface-subtle);
}

.readiness-head[b-g3qzu7xw7j] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.readiness-icon[b-g3qzu7xw7j] {
    flex: 0 0 auto;
    color: var(--mud-palette-primary);
}

.readiness-card--ready .readiness-icon[b-g3qzu7xw7j] {
    color: var(--mud-palette-success);
}

.readiness-state[b-g3qzu7xw7j] {
    font-weight: 700;
    line-height: 1.2;
}

.readiness-metrics[b-g3qzu7xw7j] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 28px;
}

.readiness-metric[b-g3qzu7xw7j] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    min-width: 0;
}

.readiness-metric-value[b-g3qzu7xw7j] {
    font-size: 1.15rem;
    font-weight: 700;
}

.readiness-metric-label[b-g3qzu7xw7j] {
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
}

.readiness-amount[b-g3qzu7xw7j] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.readiness-amount-value[b-g3qzu7xw7j] {
    font-size: 1.05rem;
    font-weight: 700;
}

.readiness-amount-label[b-g3qzu7xw7j] {
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
}

.readiness-note[b-g3qzu7xw7j] {
    font-size: 0.85rem;
    color: var(--mud-palette-text-secondary);
    display: flex;
    align-items: flex-start;
    gap: 6px;
}

.readiness-note--info[b-g3qzu7xw7j] {
    color: var(--mud-palette-text-secondary);
}

.readiness-action[b-g3qzu7xw7j] {
    align-self: flex-start;
}

.readiness-blockers[b-g3qzu7xw7j] {
    margin-top: 2px;
    padding-top: 10px;
    border-top: 1px solid var(--atr-border);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.readiness-blockers-title[b-g3qzu7xw7j] {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--mud-palette-text-secondary);
}

.readiness-blocker-list[b-g3qzu7xw7j] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 0.85rem;
}

.readiness-blocker-list li[b-g3qzu7xw7j] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 4px 12px;
}

.readiness-blocker-reason[b-g3qzu7xw7j] {
    color: var(--mud-palette-text-primary);
}

.readiness-blocker-figure[b-g3qzu7xw7j] {
    color: var(--mud-palette-text-secondary);
    font-variant-numeric: tabular-nums;
}

/* Schmal (Telefon/390): Metriken dürfen umbrechen, nichts erzwingt Breite ⇒ kein horizontaler Overflow. */
@media (max-width: 720px) {
    .readiness-metrics[b-g3qzu7xw7j] {
        gap: 8px 20px;
    }
}
/* /Components/Shared/ProjectCommercialSummary.razor.rz.scp.css */
/* IMP-009 · „Kaufmännischer Überblick" — eine verbundene, waagerechte Stufenkette, die bei schmaler
   Breite senkrecht stapelt. Theme-getrieben (Light + Dark) über MudBlazor-Palette-Variablen. Rein zur
   Orientierung: die Stufen sind eine semantische geordnete Liste (<ol>/<li>), KEIN interaktives ARIA-Widget. */

.commercial[b-k52disjcrv] {
    margin-bottom: 20px;
}

.commercial-flow[b-k52disjcrv] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 8px;
}

.commercial-stage[b-k52disjcrv] {
    display: flex;
    align-items: stretch;
    flex: 1 1 200px;
    min-width: 200px;
}

.commercial-card[b-k52disjcrv] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 14px 16px;
    border: 1px solid var(--atr-border);
    border-radius: var(--atr-radius-card);
    background: var(--atr-sheet);
}

.commercial-head[b-k52disjcrv] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.commercial-icon[b-k52disjcrv] {
    color: var(--mud-palette-primary);
    flex: 0 0 auto;
}

.commercial-name[b-k52disjcrv] {
    font-weight: 600;
    line-height: 1.2;
}

.commercial-count[b-k52disjcrv] {
    margin-left: auto;
    min-width: 22px;
    text-align: center;
    padding: 1px 7px;
    border-radius: var(--atr-radius-chip);
    font-size: 0.75rem;
    font-weight: 600;
    background: var(--atr-nav-active);
    color: var(--atr-text);
}

.commercial-amount[b-k52disjcrv] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.commercial-amount-value[b-k52disjcrv] {
    font-size: 1.05rem;
    font-weight: 700;
}

.commercial-amount-label[b-k52disjcrv] {
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
}

.commercial-amount--secondary .commercial-amount-value[b-k52disjcrv] {
    font-size: 0.95rem;
    font-weight: 600;
}

.commercial-status[b-k52disjcrv] {
    list-style: none;
    margin: 2px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    font-size: 0.8rem;
}

.commercial-status li[b-k52disjcrv] {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    color: var(--mud-palette-text-secondary);
}

.commercial-status-count[b-k52disjcrv] {
    font-weight: 700;
    color: var(--mud-palette-text-primary);
}

.commercial-note[b-k52disjcrv] {
    font-size: 0.85rem;
    color: var(--mud-palette-text-secondary);
    display: flex;
    align-items: center;
    gap: 6px;
}

.commercial-note--muted[b-k52disjcrv] {
    color: var(--mud-palette-text-disabled);
}

.commercial-note--warn[b-k52disjcrv] {
    color: var(--mud-palette-warning);
}

.commercial-note--sub[b-k52disjcrv] {
    font-size: 0.78rem;
    margin-top: 2px;
}

.commercial-open[b-k52disjcrv] {
    align-self: flex-start;
    margin-top: auto;
    padding-left: 0;
}

/* Verbindungs-Chevron zwischen den Stufen: nur auf breiten Layouts sinnvoll (waagerechter Fluss). */
.commercial-arrow[b-k52disjcrv] {
    align-self: center;
    color: var(--mud-palette-text-disabled);
    flex: 0 0 auto;
}

/* Gesperrte/deaktivierte Stufen ruhiger darstellen (der Name bleibt als Orientierung sichtbar). */
.commercial-stage--gesperrt .commercial-card[b-k52disjcrv],
.commercial-stage--deaktiviert .commercial-card[b-k52disjcrv] {
    background: var(--mud-palette-background-gray);
}

/* Schmal (Telefon/390): senkrecht stapeln, Chevron ausblenden, Karten volle Breite, kein H-Overflow. */
@media (max-width: 720px) {
    .commercial-flow[b-k52disjcrv] {
        flex-direction: column;
    }

    .commercial-stage[b-k52disjcrv] {
        flex: 1 1 auto;
        min-width: 0;
        width: 100%;
    }

    .commercial-arrow[b-k52disjcrv] {
        display: none;
    }
}
/* /Components/Shared/ProjectDueView.razor.rz.scp.css */
/* IMP-018 · „Termine & Fälligkeiten" — vereinte read-only Fälligkeitssicht. Theme-getrieben (Light + Dark)
   über MudBlazor-CSS-Variablen; Dringlichkeit wird zusätzlich zur Farbe stets als Text getragen. */

.dueview[b-94km41d5oz] {
    margin-bottom: 20px;
}

.due-group[b-94km41d5oz] {
    margin-bottom: 18px;
}

.due-group-head[b-94km41d5oz] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0 0 6px;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--mud-palette-text-primary);
}

.due-count[b-94km41d5oz] {
    font-weight: 400;
    color: var(--mud-palette-text-secondary);
    font-size: 0.85rem;
}

/* Dringlichkeit farblich markiert — der Text der Gruppenüberschrift („Überfällig"/„Heute"/„Anstehend")
   trägt die Bedeutung ohnehin, die Farbe ist nur Verstärkung (nicht die einzige Information). */
.due-group--overdue .due-group-head[b-94km41d5oz] { color: var(--mud-palette-error); }
.due-group--today .due-group-head[b-94km41d5oz] { color: var(--mud-palette-warning-darken, var(--mud-palette-warning)); }

.due-list[b-94km41d5oz] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.due-row[b-94km41d5oz] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 4px;
    border-bottom: 1px solid var(--mud-palette-lines-default);
    flex-wrap: wrap;
}

.due-row:last-child[b-94km41d5oz] {
    border-bottom: none;
}

.due-main[b-94km41d5oz] {
    flex: 1 1 240px;
    min-width: 0;
}

.due-line1[b-94km41d5oz] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
}

.due-type[b-94km41d5oz] {
    display: inline-block;
    padding: 1px 8px;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
}

.due-title[b-94km41d5oz] {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.due-line2[b-94km41d5oz] {
    margin-top: 3px;
    font-size: 0.8rem;
    color: var(--mud-palette-text-secondary);
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px;
}

.due-group--overdue .due-date[b-94km41d5oz] {
    color: var(--mud-palette-error);
    font-weight: 600;
}

.due-sep[b-94km41d5oz] {
    opacity: 0.6;
}

/* MudBlazor-Kinder liegen in einem eigenen CSS-Scope — daher ::deep, damit die Layoutregeln greifen. */
.dueview[b-94km41d5oz]  .due-open {
    flex-shrink: 0;
    align-self: center;
}

.dueview[b-94km41d5oz]  .due-icon {
    color: var(--mud-palette-text-secondary);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Bei Telefonbreite bleibt jede Zeile lesbar: Titel/Meta umbrechen, der „Öffnen"-Button rutscht ans Ende
   der Zeile, nichts läuft horizontal aus dem Viewport. */
@media (max-width: 480px) {
    .due-open[b-94km41d5oz] {
        margin-left: auto;
    }
}
/* /Components/Shared/ProjectHoursReportView.razor.rz.scp.css */
/* Stundenbericht: Projektzeilen als Gruppenkopf (leichte Tönung, kräftiger), Leistungsphasen eingerückt darunter. */
.report-group td[b-2e6men3pxg] {
    background: var(--atr-surface-subtle);
    font-weight: 600;
}
/* /Components/Shared/ProjectSetupPanel.razor.rz.scp.css */
/* IMP-019 · „Projekt einrichten" — ruhiger, nicht blockierender Einrichtungsblock in der Projektübersicht. */

.setup[b-vrhshoygo5] {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    padding: 12px 16px;
    margin-bottom: 16px;
    background: var(--mud-palette-surface);
}

.setup-head[b-vrhshoygo5] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.setup-head-text[b-vrhshoygo5] {
    min-width: 0;
}

.setup-inline-icon[b-vrhshoygo5] {
    vertical-align: text-bottom;
    margin-right: 4px;
}

.setup-list[b-vrhshoygo5] {
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
}

.setup-item[b-vrhshoygo5] {
    padding-top: 6px;
    padding-bottom: 6px;
    border-top: 1px solid var(--mud-palette-lines-default);
}

.setup-item:first-child[b-vrhshoygo5] {
    border-top: none;
}

.setup-row[b-vrhshoygo5] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.setup-row-text[b-vrhshoygo5] {
    flex: 1 1 auto;
    min-width: 0;
}

.setup-item-label[b-vrhshoygo5] {
    font-weight: 600;
}

/* Bei sehr schmalen Viewports (≈390 px) bricht die Aktion unter den Text, nichts läuft über. */
@media (max-width: 480px) {
    .setup-row[b-vrhshoygo5] {
        flex-wrap: wrap;
        gap: 4px 12px;
    }

    .setup-row-text[b-vrhshoygo5] {
        flex-basis: 100%;
    }
}
/* /Components/Shared/ProjectSituationPanel.razor.rz.scp.css */
/* IMP-011 · „Projektlage" — vier gleichrangige Dimensionskarten, theme-getrieben (Light + Dark). */

.situation[b-ibozqsvhhu] {
    margin-bottom: 20px;
}

/* Die Karte ist ein MudPaper (Kindkomponente) – ohne ::deep erreichte diese Regel sie nie. */
.situation[b-ibozqsvhhu]  .situation-card {
    padding: 16px 18px;
    border-radius: var(--atr-radius-card);
    height: 100%;
}

.situation-card-head[b-ibozqsvhhu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.situation-link[b-ibozqsvhhu] {
    margin-top: 10px;
}

/* Bei 390 px stapeln die vier Karten (MudGrid xs=12) ohnehin; die Kopfzeile darf zusätzlich umbrechen,
   damit lange Statusnamen nicht aus der Karte laufen. */
@media (max-width: 600px) {
    .situation-card-head[b-ibozqsvhhu] {
        flex-wrap: wrap;
        gap: 6px;
    }
}
/* /Components/Shared/RagIndicator.razor.rz.scp.css */
.rag[b-akrrhcwzr5] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    vertical-align: middle;
}

.rag-red[b-akrrhcwzr5] { --rag-color: var(--atr-risk-red); }
.rag-amber[b-akrrhcwzr5] { --rag-color: var(--atr-risk-amber); }
.rag-green[b-akrrhcwzr5] { --rag-color: var(--atr-risk-green); }

.rag-dot[b-akrrhcwzr5] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rag-color);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rag-color) 20%, transparent);
}

.rag-text[b-akrrhcwzr5] {
    font-size: .8125rem;
    color: var(--atr-text-2);
}
/* /Components/Shared/StatTile.razor.rz.scp.css */
.stat-body[b-gebuk77rwn] {
    display: contents;
}

.stat-tile[b-gebuk77rwn] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    padding: 16px 18px;
    border: 1px solid var(--atr-border);
    border-radius: var(--atr-radius-card);
    background: var(--atr-sheet);
    color: var(--atr-text);
    text-decoration: none;
    transition: border-color var(--atr-dur-fast) ease, background-color var(--atr-dur-fast) ease;
}

.stat-tile.is-link:hover[b-gebuk77rwn] {
    border-color: color-mix(in srgb, var(--atr-text-3) 60%, var(--atr-border));
    background: var(--atr-surface-subtle);
    text-decoration: none;
    color: var(--atr-text);
}

.stat-tile.is-link:focus-visible[b-gebuk77rwn] {
    outline: 2px solid var(--atr-accent);
    outline-offset: 2px;
}

.stat-label[b-gebuk77rwn] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .8125rem;
    font-weight: 500;
    color: var(--atr-text-2);
    min-width: 0;
}

.stat-label[b-gebuk77rwn]  .stat-icon {
    color: var(--atr-text-3);
    font-size: 1.125rem;
}

.tone-success .stat-label[b-gebuk77rwn]  .stat-icon { color: var(--atr-success); }
.tone-warning .stat-label[b-gebuk77rwn]  .stat-icon { color: var(--atr-warning); }
.tone-danger .stat-label[b-gebuk77rwn]  .stat-icon { color: var(--atr-danger); }

@media (max-width: 599.98px) {
    .stat-tile[b-gebuk77rwn] { padding: 12px 14px; gap: 4px; }
}

.stat-value[b-gebuk77rwn] {
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

.value-toned.tone-success .stat-value[b-gebuk77rwn] { color: var(--atr-success); }
.value-toned.tone-warning .stat-value[b-gebuk77rwn] { color: var(--atr-warning); }
.value-toned.tone-danger .stat-value[b-gebuk77rwn] { color: var(--atr-danger); }

.stat-context[b-gebuk77rwn] {
    font-size: .75rem;
    color: var(--atr-text-2);
}

@media (max-width: 599.98px) {
    .stat-value[b-gebuk77rwn] { font-size: 1.5rem; }
}

/* Pfeil oben rechts nur bei verlinkten Kacheln – er erscheint beim Überfahren. */
.stat-go[b-gebuk77rwn] {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid var(--atr-text-3);
    border-top: 1.5px solid var(--atr-text-3);
    transform: rotate(45deg);
    opacity: 0;
    transition: opacity var(--atr-dur-fast) ease;
}

.stat-tile.is-link:hover .stat-go[b-gebuk77rwn],
.stat-tile.is-link:focus-visible .stat-go[b-gebuk77rwn] {
    opacity: 1;
}
/* /Components/Shared/StatusBadge.razor.rz.scp.css */
/* Statusplakette (Designsystem „Plankopf“): Tönung + Punkt + Text, Radius 6, ohne Rahmen.
   Die Farbe ist Mandantendaten (Katalog, frei per Hex) – sie wird hier harmonisiert statt migriert:
   Text zu 55 % zur Textfarbe hin verankert (AA in Hell und Dunkel für alle Katalogtöne), Fläche als leichte
   Tönung auf dem Blatt. Der Punkt trägt den vollen Farbton. */
.status-badge[b-z881ceuv33] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 22px;
    padding: 0 8px;
    border-radius: var(--atr-radius-chip, 6px);
    font-size: .75rem;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .005em;
    color: color-mix(in srgb, var(--badge-color) 45%, var(--atr-text));
    background: color-mix(in srgb, var(--badge-color) 13%, var(--atr-sheet));
    white-space: nowrap;
}

.status-badge[b-z881ceuv33]::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex: none;
    background: var(--badge-color);
}
/* /Components/Shared/SummaryCard.razor.rz.scp.css */
/* Kompakte Kennzahl (AVA) im StatTile-Stil: Haarlinie, Blatt, tabellarische Ziffern. */
.summary[b-qdi2733gnd] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    height: 100%;
    min-width: 0;
    padding: 12px 16px;
    border: 1px solid var(--atr-border);
    border-radius: var(--atr-radius-card);
    background: var(--atr-sheet);
}

.summary__label[b-qdi2733gnd] {
    font-size: .75rem;
    font-weight: 500;
    color: var(--atr-text-2);
}

.summary__value[b-qdi2733gnd] {
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.25;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}

.summary.is-warning .summary__value[b-qdi2733gnd] {
    color: var(--atr-warning);
}

.summary__hint[b-qdi2733gnd] {
    font-size: .75rem;
    color: var(--atr-text-2);
}
/* /Components/Shared/TimerWidget.razor.rz.scp.css */
.atrium-timer-pill[b-faepus55br] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    padding: 0 12px;
    margin: 0 4px;
    border: 1px solid var(--mud-palette-divider);
    border-radius: 19px;
    cursor: pointer;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--mud-palette-text-primary);
    background: var(--mud-palette-background-gray);
    user-select: none;
    white-space: nowrap;
    transition: border-color .15s ease, background .15s ease;
}

.atrium-timer-pill:hover[b-faepus55br] {
    border-color: var(--mud-palette-primary);
    background: var(--mud-palette-action-default-hover);
}

@media (max-width: 959.98px) {
    .atrium-timer-pill[b-faepus55br] { min-height: 40px; padding-inline: 8px; }
}

.atrium-timer-proj[b-faepus55br] {
    color: var(--mud-palette-text-secondary);
    font-weight: 500;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.atrium-timer-dot[b-faepus55br] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--mud-palette-warning);
    flex: 0 0 auto;
}

.atrium-timer-pill.running .atrium-timer-dot[b-faepus55br] {
    background: var(--mud-palette-success);
    animation: atrium-timer-pulse-b-faepus55br 1.5s ease-in-out infinite;
}

@keyframes atrium-timer-pulse-b-faepus55br {
    0%, 100% { box-shadow: 0 0 0 0 rgba(75, 155, 127, .55); opacity: 1; }
    50% { box-shadow: 0 0 0 5px rgba(75, 155, 127, 0); opacity: .6; }
}
