﻿:root {
    /* GEN7-UX-PILOT-INTERACTION-POLISH-I1: three-surface PoC only.
       PO REWORK: feedback und guidance nachgeschaerft (170->240, 230->300);
       --motion-flow bleibt auf ausdrueckliche PO-Anweisung unveraendert. */
    --motion-feedback: 240ms;
    --motion-guidance: 300ms;
    --motion-flow: 290ms;
    --motion-ease: cubic-bezier(0.2, 0, 0, 1);
    --page: #f4f3f0;
    --ink: #172a41;
    --ink-2: #43546a;
    --ink-3: #5e6b7f;
    --ink-4: #626f81;
    --ink-5: #c6cbd3;
    --line: #e0e3e6;
    --line-2: #e9ebed;
    --surface-2: #f8f8f6;
    --blue: #2f6bf5;
    --blue-600: #2456d6;
    --blue-bg: #eef4ff;
    --blue-bg-2: #dbe6ff;
    --red-text: #d4373c;
    --orange: #f59331;
    --green: #2bab5b;
    --green-text: #1f8c49;
    --green-bg: #e7f6ed;
    --green-bg-2: #cdecd8;
    --purple: #8257e6;
    --gray-chip: #eef0f3;
    --r-1: 6px;
    --r-2: 8px;
    --r-3: 10px;
    --r-4: 12px;
    --r-5: 14px;
    --r-6: 16px;
    --sh-1: 0 1px 2px rgba(20, 23, 30, 0.05);
    --sh-2: 0 1px 3px rgba(20, 23, 30, 0.06), 0 1px 2px rgba(20, 23, 30, 0.04);
    --sh-3: 0 6px 20px rgba(20, 23, 30, 0.1);
    --sh-pop: 0 12px 32px rgba(20, 23, 30, 0.16);
    --bg: var(--page);
    --surface: #ffffff;
    --surface-soft: var(--surface-2);
    --border: var(--line);
    --text: var(--ink);
    --muted: var(--ink-3);
    --muted-2: var(--ink-4);

    --teal: var(--green);
    --teal-soft: var(--green-bg);
    --teal-border: var(--green-bg-2);

    --amber: #e0a000;
    --amber-soft: #fff4de;
    --amber-border: #efc26b;

    --red: #e5484d;
    --red-soft: #fdecec;
    --red-border: #fbdcdc;

    --blue-soft: var(--blue-bg);
    --blue-border: var(--blue-bg-2);
    --blue-text: var(--blue);

    /* GEN7-UX-CASE-HOME-VISUAL-POLISH-I8: Die Palette fuehrte mit --purple
       bereits eine Violett-Rolle, aber -- als einzige Farbrolle -- ohne
       Flaechen- und Rahmenton. Ergaenzt werden ausschliesslich die fehlenden
       zwei Stufen derselben Rolle, exakt nach dem Muster von amber/red/blue.
       Keine neue Farbbedeutung und keine zweite Farbfamilie. */
    --purple-text: #6d43cf;
    --purple-soft: #f3eefd;
    --purple-border: #ddd0f8;

    --radius-lg: var(--r-6);
    --radius-md: var(--r-5);
    --radius-sm: var(--r-3);

    --shadow-sm: var(--sh-1);
    --shadow-md: var(--sh-2);

    /* GEN7-UX-GLOBAL-CONTEXT-STRIP-REDESIGN-I2: Die strukturierte globale
       Arbeitsleiste braucht auf Desktop eine ruhige zweizeilige Hierarchie.
       80px liegt im vom PO freigegebenen Zielbereich 70-90px; alle bestehenden
       Shell-Offsets bleiben ueber denselben globalen Token gekoppelt. */
    --topbar-height: 80px;
    --sidebar-width: 244px;
    --rail-width: 500px;
    --rail-resize-handle-width: 10px;

    /* Batch 13 token bridge (v2-style semantics) */
    --surface-elevated: #ffffff;
    --surface-muted: var(--surface-2);
    --border-strong: var(--ink-5);
    --border-subtle: var(--line-2);
    --text-strong: var(--ink);
    --text-soft: var(--ink-2);
    --radius-pill: 999px;
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --font-ui: "Inter", system-ui, -apple-system, sans-serif;
    --chip-neutral-bg: var(--surface-soft);
    --chip-neutral-border: var(--border);
    --chip-neutral-text: var(--text-soft);
    --badge-warn-bg: var(--amber-soft);
    --badge-warn-border: var(--amber-border);
    --badge-warn-text: var(--amber);
    --btn-ghost-bg: var(--surface);
    --btn-ghost-border: var(--border-subtle);
    --btn-ghost-text: var(--text-soft);
    --btn-ghost-hover-bg: var(--surface-2);
    /* WORKSPACE-RIGHT-RAIL-POLISH-F19: GEN4_VISUAL_SPEC.md Abschnitt 3/6
       nennt fuer die Kontext-Sidebar exakt 320px (vorher 360px). Token ist
       ausschliesslich fuer die Gen4-Workspace-Rail im Einsatz (siehe
       .case-workspace-shell grid-template-columns), keine Auswirkung auf den
       klassischen Gen3-Right-Rail. */
    --case-workspace-rail-width: 320px;
}

/* Motion follows existing projections, never navigation or domain state.
   Deliberately limited to next-step guidance, question feedback and stepper. */
.case-workspace-case-home-card:has(> .case-home-next-step.is-guidance-change) {
    animation: pilot-guidance var(--motion-guidance) var(--motion-ease);
}

.question-status-grid .dsb-status-button.is-question-action-feedback {
    animation: pilot-question-feedback var(--motion-feedback) var(--motion-ease);
}

.case-workspace-progress.is-progress-change .case-workspace-progress-step.is-active .case-workspace-progress-marker {
    animation: pilot-workflow-progress var(--motion-flow) var(--motion-ease);
}

/* PO REWORK: beide Effekte enden auf Spread 0 desselben bestehenden Tokens --
   die Flaeche ist danach wieder vollstaendig ruhig, es bleibt keine dauerhafte
   Hervorhebung stehen. Ein Durchlauf, kein Pulsieren, keine neue Farbe. */
@keyframes pilot-guidance {
    0% { box-shadow: 0 0 0 0 var(--blue); transform: translateY(3px); }
    35% { box-shadow: 0 0 0 3px var(--blue); transform: none; }
    100% { box-shadow: 0 0 0 0 var(--blue); transform: none; }
}

@keyframes pilot-question-feedback {
    0% { opacity: 0.5; transform: scale(0.92); box-shadow: 0 0 0 0 var(--blue-border); }
    45% { opacity: 1; transform: scale(1.04); box-shadow: 0 0 0 3px var(--blue-border); }
    100% { opacity: 1; transform: none; box-shadow: 0 0 0 0 var(--blue-border); }
}

@keyframes pilot-workflow-progress {
    from { opacity: 0.65; transform: translateY(1px); }
    to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .case-workspace-case-home-card:has(> .case-home-next-step.is-guidance-change),
    .question-status-grid .dsb-status-button.is-question-action-feedback,
    .case-workspace-progress.is-progress-change .case-workspace-progress-step.is-active .case-workspace-progress-marker {
        animation: none;
        transform: none;
    }
}

* {
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
}

body {
    font-family: var(--font-ui);
    font-feature-settings: "cv05", "cv08", "ss01";
    background: var(--bg);
    color: var(--text);
    line-height: 1.5;
}

h1,
h2,
h3,
h4,
p {
    margin: 0;
}

button,
textarea,
select,
input {
    font: inherit;
}

.app-root {
    min-height: 100vh;
    background: var(--bg);
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    height: var(--topbar-height);
    border-bottom: 1px solid var(--border-subtle);
    background: #ffffff;
    box-shadow: 0 1px 5px rgba(15, 23, 42, 0.03);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    padding: 0 var(--space-5);
}

/* GEN7-UX-MOBILE-GLOBAL-NAVIGATION-I1 — mobiler Navigationseinstieg
   (PO-MNF-03) und Schliess-Punkt der geoeffneten Navigation.

   Beide sind ausserhalb des bestehenden Sidebar-Breakpoints nicht vorhanden:
   auf Desktop bleibt die Sidebar dauerhaft sichtbare Gridspalte, ein Toggle
   waere dort ohne Funktion (PO-MNF-04). Kein neues Token, keine neue Farbe —
   die Grammatik ist von `.workbench-ghost-button` uebernommen. */
.topbar-nav-toggle,
.sidebar-mobile-close {
    display: none;
}

.topbar-inner {
    width: 100%;
    display: grid;
    /* GEN7-UX-AUTHENTICATED-CHROME-ALIGNMENT-I1: Die Kopfzeile fuehrt genau
       zwei Grid-Items -- Produktidentitaet links, Account rechts. Die beiden
       frueheren Kontextspuren sind entfallen; ihre Projektion liegt im
       bestehenden Account-Menue. Damit hat die authentifizierte Kopfzeile
       dieselbe Grammatik wie die bereits abgenommene Start-/Loginseite.
       `.topbar-tabs` bleibt `display: none` und erzeugt kein Grid-Item. */
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-5);
}

/* GEN7-IMP-04-F2A — Global Context Shell, Layer 1 + Layer 3.
   Reine Anzeigeschicht ueber bestehendem Zustand; keine Navigation, keine
   Aktion, kein Eingabeelement. Meta-Typografie nach bestehendem Standard
   (Label 11/500, Wert 14/600). */
/* GEN7-UX-GLOBAL-CONTEXT-STRIP-REDESIGN-I2 — eine zusammenhaengende obere
   Arbeitsleiste mit klar getrennten Informationsgruppen. Die bestehenden
   Resolver, Help-IDs und Inhalte bleiben unveraendert; nur ihre Struktur und
   Lesereihenfolge werden im vorhandenen Topbar-Owner weiterentwickelt.

   Bewusste, vom Product Owner angeordnete Abweichung von der Meta-Skala
   (Label 11/500, Wert 14/600) ausschliesslich fuer diesen Streifen: vier
   gleich laut gesetzte 14/600-Werte nebeneinander erzeugten die beanstandete
   Unruhe. Die Hierarchie entsteht jetzt ueber Farbe und Groesse statt ueber
   Fettschrift. Die Meta-Skala der Workspace-Meta-Zeilen bleibt unberuehrt. */
.topbar-context {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-subtle);
}

.topbar-context-entry {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.topbar-context-entry.is-muted .topbar-context-value {
    color: var(--text-soft);
    font-weight: 400;
}

.topbar-context-label {
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.topbar-context-label-line {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    min-height: 15px;
}

.topbar-context-value {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    white-space: normal;
    /* GEN7-UX-AUTHENTICATED-CHROME-ALIGNMENT-I1: uebernommen aus der mit dem
       Kontextstreifen entfallenen Narrow-Desktop-Regel. Im Account-Menue steht
       eine feste, schmale Breite zur Verfuegung; ein langer Organisations- oder
       Fallname bricht dort um, statt seine Karte zu verlassen. */
    overflow-wrap: anywhere;
    color: var(--text-strong);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.35;
}

.topbar-context-role,
.topbar-context-next {
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 400;
}

/* Auftrag Abschnitt 7: Hilfe bleibt funktional vollstaendig erhalten, verliert
   aber die Button-Anmutung zwischen den Textbloecken. Rahmen und Flaeche
   entfallen nur hier; die Trefferflaeche (24px-Pseudoelement), der Fokusring,
   `aria-describedby` und der Katalogeintrag bleiben unveraendert. Die
   Card-Header-Variante (F3B) ist nicht Gegenstand dieses Auftrags und behaelt
   ihre Darstellung. */
.topbar-context .context-help-trigger {
    border-color: transparent;
    background: transparent;
    font-weight: 600;
}

.topbar-context .context-help-trigger:hover {
    border-color: var(--border-subtle);
    background: var(--surface-muted);
}

/* GEN7-IMP-04-F3A — Context Assistance (Layer 2), die eine Erklaerungsschicht.
   Freigabe: docs/decisions/GEN7_PO_CONTEXT_ASSISTANCE_DECISION.md (PO-CA-02).

   Keine neue visuelle Regel: die Grammatik ist von der bestehenden
   `overflow-menu`-Grammatik uebernommen (28px-Pill-Ausloeser + absolut
   positioniertes Panel). Es werden ausschliesslich vorhandene Tokens
   verwendet; kein neues Token, keine neue Typografie-Rolle, keine dritte
   Komponentenklasse. Schatten ueber `--sh-pop`, das bereits fuer Overlays
   existiert (GEN4_DESIGN_SYSTEM.md § 4 "Elevation"). */
.context-help {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
}

/* GEN7-IMP-04-F3B — Card-Header-Zone.

   `buildWorkspaceCardHeader()` liefert selbst ein `<button>`; ein Button im
   Button waere ungueltiges HTML und wuerde beim Klick den Collapse
   mitausloesen. Der Erklaerungs-Einstiegspunkt steht deshalb **neben** dem
   Header-Button in einer gemeinsamen Zeile. Die Zone entsteht ausschliesslich
   opt-in (nur mit `helpId`); ohne sie bleibt die Kartenstruktur exakt wie vor
   F3B.

   Keine neue visuelle Regel: es werden ausschliesslich vorhandene Tokens
   (`--wb-card-header-gap`) und die bestehende Flex-Grammatik des Card-Headers
   uebernommen; kein neues Token, keine neue Typografie-Rolle, keine dritte
   Komponentenklasse (GEN4_DESIGN_SYSTEM.md § 8). */
.wb-card-header-zone {
    display: flex;
    align-items: center;
    gap: var(--wb-card-header-gap);
}

.wb-card-header-zone > .wb-card-header {
    flex: 1 1 auto;
    min-width: 0;
}

.context-help-trigger {
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    flex: 0 0 18px;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    border: 1px solid var(--amber);
    border-radius: 50%;
    background: transparent;
    color: var(--amber);
    font-size: 11px;
    font-weight: 700;
    font-style: italic;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

/* Band 4 § 3.6: Hit-Area mindestens 24x24 CSS-px. Der sichtbare Ring bleibt
   kompakt (18px), die Trefferflaeche wird ueber ein Pseudoelement auf 24px
   bzw. 44px auf Touch-Flaechen vergroessert. */
.context-help-trigger::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 24px;
    transform: translate(-50%, -50%);
}

.context-help-trigger:hover {
    background: transparent;
    color: var(--amber);
    border-color: var(--amber);
}

.context-help-trigger:focus-visible {
    outline: 2px solid var(--amber);
    outline-offset: 2px;
}

.context-help-trigger[aria-expanded="true"] {
    background: transparent;
    color: var(--amber);
    border-color: var(--amber);
}

/* GEN7-UX-CASE-CONTEXT-CONSISTENCY-I1 (PO-KORREKTUR): `.context-help-affordance`
   ist entfallen. Die Klasse hatte genau einen Produzenten (die Legende
   "i = weitere Informationen" am Kopf der Fallbeschreibung); mit ihm faellt
   auch ihre Regel, statt als toter Selektor stehen zu bleiben. Der
   i-Einstiegspunkt (.context-help / .context-help-trigger) bleibt
   unveraendert. */

/* Dauerhafter Ebene-1-Text als Ziel von `aria-describedby`. Bewusst nicht
   `display: none`, damit Screenreader ihn zuverlaessig vorlesen. */
.context-help-sr-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.context-help-panel {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 60;
    width: max-content;
    max-width: min(320px, calc(100vw - var(--space-6)));
    max-height: calc(100vh - var(--space-6));
    overflow-y: auto;
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface-elevated);
    box-shadow: var(--sh-pop);
    display: grid;
    gap: var(--space-2);
    text-align: left;
    white-space: normal;
    cursor: default;
}

.context-help-panel[hidden] {
    display: none;
}

/* Ebene 1 — Kurzinfo. Immer zuerst sichtbar (A5). */
.context-help-level1 {
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
    color: var(--text-strong);
}

/* Ebene 2 und Ebene 4 erscheinen ausschliesslich in der Vertiefung, also nach
   Klick oder Tastaturaktivierung — nie bei blossem Hover (PO-CA-02). */
.context-help-level2,
.context-help-sources,
.context-help-actions {
    display: none;
}

.context-help-expanded .context-help-level2 {
    display: block;
    padding-top: var(--space-2);
    border-top: 1px solid var(--border-subtle);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.45;
    color: var(--text-soft);
}

/* A4 — Erklaerung und Quelle bleiben sichtbar getrennt. */
.context-help-expanded .context-help-sources {
    display: grid;
    gap: var(--space-1);
    padding-top: var(--space-2);
    border-top: 1px solid var(--border-subtle);
}

.context-help-sources-label {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--text-soft);
}

.context-help-source {
    justify-self: start;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--blue-text);
    font-size: 12px;
    font-weight: 600;
    text-align: left;
    text-decoration: underline;
    cursor: pointer;
}

.context-help-source:focus-visible {
    outline: 2px solid rgba(13, 148, 136, 0.35);
    outline-offset: 2px;
}

/* A2 — Aktionsbereich fuer die spaetere Dr.-Workbench-Vertiefung. In F3A leer
   und daher ohne Rahmen und ohne Abstand; A6 verbietet einen ausgegrauten
   oder als "bald verfuegbar" markierten Platzhalter. */
.context-help-expanded .context-help-actions:not(:empty) {
    display: flex;
    gap: var(--space-2);
    padding-top: var(--space-2);
    border-top: 1px solid var(--border-subtle);
}

/* Auf Touch-Flaechen gibt es kein Hover; die Vertiefung wird ausschliesslich
   per Tippen geoeffnet. Trefferflaeche nach Band 4 § 3.6 auf 44px. */
@media (hover: none) {
    .context-help-trigger::after {
        width: 44px;
        height: 44px;
    }
}

/* Schmale Viewports behalten dieselbe zentrale Viewport-Verankerung. Breite
   und Seitenabstaende werden hier aus dem vorhandenen Reflow-Vertrag
   konkretisiert; die reale Triggerposition setzt der gemeinsame Renderer. */
@media (max-width: 640px) {
    .context-help-panel {
        left: var(--space-2);
        /* Der Renderer setzt den linken Viewport-Rand inline auf den bestehenden
           I5-Wert 12px. `width: auto` spannt das Panel bis `right`; deshalb
           muss auch dieser bestehende Mobile-Override denselben I5-Rand tragen
           und darf ihn nicht mit `--space-2` (8px) unterschreiten. */
        right: var(--space-3);
        width: auto;
        max-width: none;
        /* `top` setzt die Komponente beim Oeffnen aus der realen Position des
           Ausloesers. Ein fester Offset waere falsch: der Kontextstreifen
           umbricht auf schmalen Viewports, wodurch der Ausloeser unter die
           nominelle Topbar-Hoehe rutscht und ein starr positioniertes Panel
           ihn ueberdecken wuerde. */
        top: 0;
    }
}

.topbar-brand {
    display: flex;
    align-items: center;
    gap: 8px;
}

.topbar-logo {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #4f8ef7 0%, #2f6ef0 100%);
    color: #ffffff;
    box-shadow: 0 3px 8px rgba(47, 110, 240, 0.16);
}

.topbar-title-wrap strong {
    display: block;
    font-size: 14px;
    line-height: 1.08;
    letter-spacing: -0.01em;
}

.topbar-title-wrap span {
    display: block;
    margin-top: 1px;
    color: var(--text-soft);
    font-size: 10px;
    letter-spacing: 0.02em;
}

/* GEN7-UX-AUTHENTICATED-CHROME-ALIGNMENT-I1 -- Markenangleichung.
   Die authentifizierte Kopfzeile fuehrt bereits denselben Brand-Owner
   (PRODUCT_IDENTITY), dasselbe Logo, denselben Claim und dieselbe Flaeche wie
   die abgenommene Start-/Loginseite -- nur in kleinerem Massstab. Die
   Startseite bleibt dabei ausdruecklich unberuehrt: `:not(.auth-entry-topbar-
   inner)` schliesst sie aus, ihre eigenen Regeln gelten unveraendert weiter.
   Es entsteht keine zweite Produktidentitaet und kein neuer Token; uebernommen
   werden exakt die bereits abgenommenen Werte der Startseite.
   Der Massstab gilt erst oberhalb des bestehenden Chrome-Breakpoints: darunter
   traegt die Markenzeile zusaetzlich den mobilen Navigationseinstieg, und ihre
   dort vermessene Geometrie bleibt unveraendert (PO-CH-07). */
@media (min-width: 861px) {
    .topbar-inner:not(.auth-entry-topbar-inner) .topbar-brand {
        gap: var(--space-3);
    }

    .topbar-inner:not(.auth-entry-topbar-inner) .topbar-logo {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
        border-radius: var(--radius-sm);
    }

    .topbar-inner:not(.auth-entry-topbar-inner) .topbar-title-wrap strong {
        font-size: 21px;
    }

    .topbar-inner:not(.auth-entry-topbar-inner) .topbar-title-wrap span {
        margin-top: 2px;
        font-size: 12px;
    }
}

.topbar-tabs {
    display: none;
    align-items: center;
    gap: 6px;
    padding: 4px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--border-subtle);
    background: var(--surface-muted);
    width: fit-content;
}

.topbar-tab {
    min-height: 36px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-soft);
    padding: 8px 14px;
    border-radius: 999px;
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.01em;
    transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
}

.topbar-tab:hover:not(:disabled) {
    background: #ffffff;
    border-color: var(--border-subtle);
    color: var(--text-strong);
}

.topbar-tab:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.topbar-tab-active {
    background: #ffffff;
    border-color: var(--teal-border);
    color: var(--teal);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.topbar-right {
    display: flex;
    align-items: center;
    gap: 8px;
}

.topbar-user-shell {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 0;
}

.topbar-user-shell[open] {
    z-index: 60;
}

.topbar-user-shell > summary {
    list-style: none;
}

.topbar-user-shell > summary::-webkit-details-marker {
    display: none;
}

.topbar-user-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 10px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    background: #ffffff;
    color: var(--text-strong);
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    user-select: none;
}

.topbar-user-toggle:hover {
    background: #fbfcff;
    border-color: var(--border);
}

.topbar-user-toggle-label {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.topbar-user-toggle-chevron {
    color: var(--muted-2);
    font-size: 10.5px;
    line-height: 1;
}

.topbar-user-panel {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 220px;
    padding: 10px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    background: #ffffff;
    box-shadow: 0 16px 28px rgba(15, 23, 42, 0.1);
    display: grid;
    gap: 8px;
}

/* GEN7-UX-AUTHENTICATED-CHROME-ALIGNMENT-I1: Das Panel fuehrt zusaetzlich die
   unveraenderte Kontextprojektion. Es bleibt derselbe eine Panelknoten mit
   demselben Owner -- nur sein Platzbedarf folgt seinem Inhalt. */
.topbar-user-shell-auth .topbar-user-panel {
    min-width: 264px;
}

/* GEN7-UX-TOPBAR-RESPONSIVE-OVERLAP-CLOSEOUT-I1 ist mit seinem Gegenstand
   entfallen: der dort korrigierte Ueberlauf entstand ausschliesslich dadurch,
   dass die Kontextgruppe drei feste Mindestspuren in der Topbar-Gridzeile
   aufspannte. Diese Spuren existieren nicht mehr (GEN7-UX-AUTHENTICATED-
   CHROME-ALIGNMENT-I1); der Kontext liegt im Account-Menue mit fester Breite
   und kann dort nicht mehr in eine Nachbarspur laufen. Ein Ersatz-Breakpoint
   waere eine Regel ohne Gegenstand. */

.topbar-user-identity {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.topbar-user-name {
    min-width: 0;
    color: var(--text-strong);
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.topbar-login-form {
    display: grid;
    gap: 8px;
}

.topbar-login-field {
    display: grid;
    gap: 4px;
}

.topbar-login-label {
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 600;
}

.topbar-login-fields {
    display: grid;
    gap: 8px;
}

.topbar-login-form input {
    width: 100%;
    min-width: 0;
    min-height: 32px;
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    background: #ffffff;
    color: var(--text);
    padding: 0 12px;
    font-size: 12px;
}

.topbar-login-form input:focus-visible {
    outline: 2px solid rgba(15, 118, 110, 0.25);
    outline-offset: 1px;
}

.topbar-login-form .workbench-ghost-button {
    min-height: 32px;
    border-radius: 12px;
    border-color: var(--btn-ghost-border);
    background: var(--btn-ghost-bg);
    color: var(--btn-ghost-text);
    font-size: 11.5px;
    font-weight: 700;
    padding: 0 12px;
    justify-self: end;
}

.topbar-login-form .workbench-ghost-button:hover:not(:disabled) {
    background: var(--btn-ghost-hover-bg);
    border-color: var(--border-strong);
    color: var(--text-strong);
}

.topbar-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-soft);
    font-size: 11.5px;
    font-weight: 700;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    background: #ffffff;
    padding: 5px 9px;
}

.topbar-status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #16a34a;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.17);
}

.topbar-user {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 600;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    background: #ffffff;
    padding: 3px;
}

.topbar-user > span {
    color: var(--text-soft);
    font-size: 11.5px;
}

.topbar-user input {
    min-height: 30px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    background: #ffffff;
    color: var(--text);
    padding: 0 9px;
    font-size: 11.5px;
    min-width: 122px;
}

.topbar-user input:focus-visible {
    outline: 2px solid rgba(15, 118, 110, 0.25);
    outline-offset: 1px;
}

.topbar-auth-error {
    color: #b91c1c;
    font-size: 11px;
    font-weight: 700;
    margin-left: 4px;
}

/* GEN7-UX-AUTHENTICATED-ENTRY-GATE-I1 — Die Startseite IST die
   unauthenticated Login-Projektion. Der bestehende Login-Owner bleibt in
   render_topbar.js; diese Regeln komponieren ausschliesslich seine oeffentliche
   Surface. Das Security-Gate bleibt DOM-basiert in renderApp(): hinter dieser
   Flaeche existiert kein geschuetzter Workbench-Baum. Alle Werte stammen aus
   den bestehenden Workbench-Tokens; kein zweites Designsystem. */
.auth-entry-topbar-inner {
    grid-template-columns: minmax(0, 1fr);
}

.auth-entry-topbar-inner .topbar-brand {
    gap: var(--space-3);
}

.auth-entry-topbar-inner .topbar-logo {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
    border-radius: var(--radius-sm);
}

.auth-entry-topbar-inner .topbar-title-wrap strong {
    font-size: 21px;
}

.auth-entry-topbar-inner .topbar-title-wrap span {
    margin-top: 2px;
    font-size: 11px;
}

.main.auth-entry-main {
    padding: 0;
    overflow-x: hidden;
    overflow-y: auto;
    background: var(--surface);
}

.auth-entry-page {
    min-height: calc(100vh - var(--topbar-height));
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto auto;
    gap: var(--space-6);
    padding: 52px clamp(28px, 5vw, 84px) 24px;
    background:
        radial-gradient(circle at 18% 8%, var(--blue-bg-2) 0, transparent 34%),
        linear-gradient(135deg, var(--surface) 0%, var(--blue-bg) 58%, var(--page) 100%);
}

.auth-entry-hero,
.auth-entry-trust,
.auth-entry-footer {
    width: min(1360px, 100%);
    margin-inline: auto;
}

.auth-entry-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.72fr);
    align-items: center;
    gap: clamp(44px, 7vw, 112px);
}

.auth-entry-introduction {
    display: grid;
    align-content: center;
    justify-items: start;
    gap: var(--space-5);
    max-width: 760px;
}

.auth-entry-audience {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 12px;
    border: 1px solid var(--blue-border);
    border-radius: var(--radius-pill);
    background: var(--blue-bg);
    color: var(--blue-text);
    font-size: 12px;
    font-weight: 600;
}

.auth-entry-introduction h1 {
    max-width: 15ch;
    color: var(--text-strong);
    font-size: clamp(38px, 4.1vw, 60px);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.auth-entry-description {
    max-width: 62ch;
    color: var(--text-soft);
    font-size: clamp(16px, 1.35vw, 19px);
    line-height: 1.65;
}

.auth-entry-features {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}

.auth-entry-feature {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--text-strong);
    font-size: 13px;
    font-weight: 600;
}

.auth-entry-feature-marker,
.auth-entry-trust-marker {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--blue-bg);
    color: var(--blue-text);
    font-weight: 700;
}

.auth-entry-feature-marker {
    width: 22px;
    height: 22px;
    font-size: 12px;
}

.auth-entry-login-card {
    width: min(100%, 440px);
    justify-self: end;
    display: grid;
    gap: var(--space-5);
    padding: clamp(28px, 3vw, 40px);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface-elevated);
    box-shadow: var(--sh-3);
}

.auth-entry-login-heading {
    display: grid;
    gap: 6px;
}

.auth-entry-login-heading h2 {
    color: var(--text-strong);
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.auth-entry-login-heading p {
    color: var(--text-soft);
    font-size: 14px;
}

.auth-entry-login-form {
    gap: var(--space-4);
}

.auth-entry-login-form .topbar-login-fields {
    gap: var(--space-4);
}

.auth-entry-login-form .topbar-login-field {
    gap: 7px;
}

.auth-entry-login-form .topbar-login-label {
    color: var(--text-strong);
    font-size: 13px;
    font-weight: 600;
}

.auth-entry-login-form input {
    min-height: 46px;
    border-color: var(--border);
    border-radius: var(--radius-sm);
    padding-inline: 14px;
    font-size: 14px;
}

.auth-entry-login-form input::placeholder {
    color: var(--muted-2);
}

.auth-entry-login-form input:focus-visible {
    border-color: var(--blue);
    outline: 2px solid var(--blue-bg-2);
    outline-offset: 1px;
}

.auth-entry-login-form .auth-entry-submit {
    width: 100%;
    min-height: 46px;
    justify-content: center;
    border-radius: var(--radius-sm);
    font-size: 14px;
}

.auth-entry-login-form .topbar-auth-error {
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--red-border);
    border-radius: var(--radius-sm);
    background: var(--red-soft);
    color: var(--red-text);
    font-size: 12px;
}

.auth-entry-trust {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface-elevated);
    box-shadow: var(--shadow-sm);
}

.auth-entry-trust-item {
    min-width: 0;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: var(--space-3);
    padding: var(--space-5) var(--space-6);
}

.auth-entry-trust-item + .auth-entry-trust-item {
    border-left: 1px solid var(--border-subtle);
}

.auth-entry-trust-marker {
    width: 34px;
    height: 34px;
    font-size: 14px;
}

.auth-entry-trust-item h2 {
    color: var(--text-strong);
    font-size: 14px;
    font-weight: 700;
}

.auth-entry-trust-item p {
    margin-top: 4px;
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.5;
}

.auth-entry-footer {
    padding-top: 2px;
    color: var(--muted);
    font-size: 12px;
    text-align: center;
}

@media (max-width: 1100px) {
    .auth-entry-page {
        padding: 44px 32px 24px;
    }

    .auth-entry-hero {
        grid-template-columns: minmax(0, 1fr) minmax(340px, 0.82fr);
        gap: 40px;
    }
}

@media (max-width: 860px) {
    .auth-entry-page {
        min-height: calc(100vh - var(--topbar-height));
        padding-top: 36px;
    }

    .auth-entry-hero {
        grid-template-columns: minmax(0, 1fr);
        gap: 32px;
    }

    .auth-entry-introduction h1 {
        max-width: 18ch;
    }

    .auth-entry-login-card {
        width: min(100%, 560px);
        justify-self: stretch;
    }

    .auth-entry-trust {
        grid-template-columns: minmax(0, 1fr);
    }

    .auth-entry-trust-item + .auth-entry-trust-item {
        border-top: 1px solid var(--border-subtle);
        border-left: 0;
    }
}

@media (max-width: 700px) {
    .auth-entry-topbar-inner .topbar-logo {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
    }

    .auth-entry-topbar-inner .topbar-title-wrap strong {
        font-size: 18px;
    }

    .auth-entry-topbar-inner .topbar-title-wrap span {
        font-size: 10px;
    }

    .auth-entry-page {
        gap: var(--space-5);
        padding: 28px 16px 20px;
    }

    .auth-entry-introduction {
        gap: var(--space-4);
    }

    .auth-entry-introduction h1 {
        font-size: clamp(31px, 10vw, 40px);
    }

    .auth-entry-description {
        font-size: 15px;
        line-height: 1.55;
    }

    .auth-entry-login-card {
        padding: 24px 20px;
    }

    .auth-entry-trust-item {
        padding: var(--space-4);
    }
}

.topbar-user .workbench-ghost-button {
    min-height: 30px;
    border-radius: var(--radius-pill);
    border-color: var(--btn-ghost-border);
    background: var(--btn-ghost-bg);
    color: var(--btn-ghost-text);
    font-size: 11.5px;
    font-weight: 700;
    padding: 0 10px;
}

.topbar-user .workbench-ghost-button:hover:not(:disabled) {
    background: var(--btn-ghost-hover-bg);
    border-color: var(--border-strong);
    color: var(--text-strong);
}

.topbar-avatar {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid #c9d6e7;
    background: linear-gradient(180deg, #f7fbff 0%, #e9f1f9 100%);
    color: #23415f;
    display: grid;
    place-items: center;
    font-size: 9.5px;
    font-weight: 800;
}

.app-shell {
    height: calc(100vh - var(--topbar-height));
    display: grid;
    grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
    overflow: hidden;
}

.app-root.is-public-entry .app-shell {
    grid-template-columns: minmax(0, 1fr);
}

/* PO Visual Fail Follow-up: `.sidebar` besitzt als Autorenregel
   `display: flex` und ueberstimmt damit das UA-Verhalten von [hidden]. Ohne
   diesen eng begrenzten Owner bleibt die leere Sidebar erste Gridzeile und
   schiebt die anonymous Entry-Surface hinter den geclippten Shell-Viewport. */
.app-root.is-public-entry .sidebar[hidden] {
    display: none;
}

.sidebar {
    border-right: 1px solid var(--border-subtle);
    background: #ffffff;
    overflow-y: auto;
    padding: 0 8px 12px;
    position: sticky;
    top: var(--topbar-height);
    height: calc(100vh - var(--topbar-height));
    display: flex;
    flex-direction: column;
    font-family: var(--font-ui);
}

.sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    padding: 10px 0 8px;
}

.sidebar-group {
    margin: 8px 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

.sidebar-group-title {
    margin: 0 0 3px;
    padding: 0 7px;
    color: var(--muted-2);
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 700;
}

.sidebar-group-dsb {
    border-color: var(--teal-border);
    background: #f4fbf9;
}

.sidebar-group-dsb .sidebar-group-title {
    color: var(--teal);
}

.sidebar-nav-item,
.proj-row {
    width: 100%;
    min-height: 36px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #334155;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 11px;
    text-align: left;
    cursor: pointer;
    font-size: 13px;
    font-weight: 500;
    transition: background-color 140ms ease, color 140ms ease;
}

.sidebar-nav-item:hover,
.proj-row:hover {
    background: var(--blue-bg);
    color: var(--text);
}

.sidebar-nav-item-active,
.proj-row.act {
    background: var(--blue-bg);
    color: var(--blue-text);
    font-weight: 600;
}

.sidebar-nav-item-muted {
    color: #94a3b8;
}

.sidebar-nav-icon {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
}

.sidebar-nav-item:hover .sidebar-nav-icon {
    color: #64748b;
}

.sidebar-nav-item-active .sidebar-nav-icon {
    color: var(--blue-text);
}

.sidebar-nav-chevron {
    margin-left: auto;
    color: #94a3b8;
    font-size: 15px;
    line-height: 1;
    transition: transform 140ms ease;
}

.sidebar-nav-chevron.is-open {
    transform: rotate(90deg);
}

.sidebar-nav-marker {
    width: 15px;
    height: 15px;
    border-radius: 6px;
    border: 1px solid var(--border-subtle);
    background: var(--surface-muted);
    color: var(--text-soft);
    text-align: center;
    flex: 0 0 15px;
    font-size: 10px;
    line-height: 13px;
    font-weight: 800;
}

.sidebar-nav-text {
    min-width: 0;
}

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 56px;
    padding: 6px 6px 10px;
    border-bottom: 1px solid var(--border-subtle);
}

.sidebar-brand-logo {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #4f8ef7 0%, #2f6ef0 100%);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(47, 110, 240, 0.22);
}

.sidebar-brand-text {
    min-width: 0;
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.sidebar-brand-name {
    font-size: 14.5px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.2;
}

.sidebar-brand-claim {
    margin-top: 2px;
    color: var(--text-soft);
    font-size: 10px;
    font-weight: 400;
    line-height: 1.25;
}

.sidebar-brand-badge {
    margin-left: auto;
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 700;
    color: var(--blue-text);
    background: #eaf1ff;
    border-radius: 999px;
    padding: 2px 8px;
}

.sidebar-cases-panel {
    margin: 2px 0 4px 12px;
    padding: 4px 0 4px 8px;
    border-left: 2px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sidebar-footer {
    margin-top: auto;
    padding-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sidebar-compliance-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 7px 10px;
    border-radius: 10px;
    background: #eef7f0;
    border: 1px solid #d6ecdb;
    color: #2f855a;
    font-size: 10px;
    font-weight: 600;
}

.sidebar-footer-copy {
    text-align: center;
    color: var(--muted-2);
    font-size: 9px;
}

.nav-badge {
    margin-left: auto;
    border: 1px solid var(--badge-warn-border);
    background: var(--badge-warn-bg);
    color: var(--badge-warn-text);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    padding: 1px 8px;
    letter-spacing: 0.02em;
}

.proj-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.proj-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 8px;
}

.proj-dot-0 { background: #6366f1; }
.proj-dot-1 { background: #f59e0b; }
.proj-dot-2 { background: #10b981; }
.proj-dot-3 { background: #ef4444; }
.proj-dot-4 { background: #8b5cf6; }

.proj-label {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.proj-group {
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    background: #fbfdff;
    padding: 7px;
}

.proj-group-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 6px 8px;
    color: #42566f;
    font-size: 12px;
    font-weight: 700;
    border-bottom: 1px solid rgba(199, 214, 230, 0.5);
    margin-bottom: 3px;
}

.proj-group-head.act {
    color: var(--teal);
}

.sidebar-project-search-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 2px 2px 0;
}

.sidebar-project-search-input {
    flex: 1 1 auto;
    min-height: 36px;
    border-radius: var(--radius-pill);
    background: #ffffff;
    border-color: var(--border-subtle);
    font-size: 12.5px;
}

.sidebar-project-search-clear {
    min-width: 28px;
    min-height: 28px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--border-subtle);
    background: #ffffff;
    color: var(--text-soft);
    font-size: 16px;
    line-height: 1;
    padding: 0;
}

.sidebar-project-search-clear:hover:not(:disabled) {
    background: var(--surface-muted);
    border-color: var(--border-strong);
    color: var(--text-strong);
}

.proj-count {
    margin-left: auto;
    font-size: 11px;
    border-radius: 999px;
    border: 1px solid var(--border-subtle);
    color: var(--text-soft);
    background: #ffffff;
    padding: 1px 8px;
    font-weight: 700;
}

.proj-case-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.proj-case-row {
    display: flex;
    align-items: flex-start;
    gap: 6px;
}

.proj-case-button {
    flex: 1;
    min-width: 0;
    min-height: 30px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: transparent;
    color: #334155;
    padding: 6px 8px;
    text-align: left;
    font-size: 12px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    overflow: hidden;
}

.proj-case-button:hover {
    background: #f6f9fd;
    border-color: var(--border-subtle);
}

.proj-case-button.act {
    background: #ecfaf7;
    color: var(--teal);
    font-weight: 700;
    border-color: var(--teal-border);
}

.proj-case-content {
    width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.proj-case-title {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.proj-case-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
}

.proj-case-risk-chip,
.proj-case-review-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid transparent;
    padding: 1px 7px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.01em;
}

.proj-case-risk-chip.risk-high {
    background: #fee2e2;
    color: #991b1b;
    border-color: #fecaca;
}

.proj-case-risk-chip.risk-medium {
    background: #fff7e6;
    color: #9a6700;
    border-color: #fde68a;
}

.proj-case-risk-chip.risk-low {
    background: #dcfce7;
    color: #166534;
    border-color: #bbf7d0;
}

.proj-case-updated {
    color: var(--muted);
    font-size: 10.5px;
    font-weight: 600;
}

/* Review-Farbtoene: die Seite "Alle Pruefungen" (render_main_workspace.js) nutzt
   jetzt .wb-status-pill + .is-status-* (CASE-LIST-STATUS-GRAMMAR-F1). Diese
   review-* Regeln bleiben ausschliesslich fuer die Sidebar-Fallliste
   (render_sidebar_nav.js, ausserhalb dieses Scopes) erhalten. */
.proj-case-review-chip.review-checked {
    background: #dbeafe;
    color: #1d4ed8;
    border-color: #bfdbfe;
}

.proj-case-review-chip.review-prepared {
    background: #e0f2fe;
    color: #075985;
    border-color: #bae6fd;
}

.proj-case-review-chip.review-open {
    background: #f8fafd;
    color: #526780;
    border-color: #dce5ef;
}

.proj-case-delete,
.delete-btn {
    min-height: 26px;
    border: 1px solid #e5bcbc;
    border-radius: 6px;
    background: transparent;
    color: #c96b6b;
    font-size: 12px;
    font-weight: 600;
    padding: 2px 6px;
    cursor: pointer;
    opacity: 0.7;
}

.proj-case-delete:hover,
.delete-btn:hover {
    background: #fff1f0;
    color: #a8071a;
    border-color: #ffa39e;
    opacity: 1;
}

.proj-case-delete:disabled,
.delete-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.overflow-menu {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
}

.overflow-menu-trigger {
    width: 28px;
    height: 28px;
    min-width: 28px;
    min-height: 28px;
    border: 1px solid var(--border-subtle, #d8e0ea);
    border-radius: 999px;
    background: var(--surface, #ffffff);
    color: var(--text-soft, #64748b);
    padding: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.overflow-menu-trigger:hover:not(:disabled) {
    background: var(--surface-muted, #f8fafc);
    color: var(--text-strong, #0f172a);
    border-color: var(--border-strong, #cbd5e1);
}

.overflow-menu-trigger:focus-visible {
    outline: 2px solid rgba(13, 148, 136, 0.35);
    outline-offset: 2px;
}

.overflow-menu-trigger:disabled {
    opacity: 0.42;
}

.overflow-menu-panel {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 30;
    min-width: 172px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.16);
    padding: 4px;
    display: none;
}

.overflow-menu-open .overflow-menu-panel {
    display: grid;
    gap: 2px;
}

.overflow-menu-item {
    width: 100%;
    min-height: 30px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--text);
    padding: 6px 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 600;
    text-align: left;
}

.overflow-menu-item:hover:not(:disabled) {
    background: var(--surface-soft);
}

.overflow-menu-item.is-danger {
    color: #b91c1c;
}

.overflow-menu-item.is-danger:hover:not(:disabled) {
    background: #fef2f2;
}

.overflow-menu-item-icon {
    width: 16px;
    flex: 0 0 16px;
    text-align: center;
    font-weight: 700;
}

.overflow-menu-item-label {
    min-width: 0;
}

.proj-case-menu {
    margin-left: auto;
    align-self: center;
}

.history-empty {
    color: var(--muted);
    font-size: 13px;
    margin: 0;
    padding: 4px 2px;
}

.history-error {
    margin: 8px 2px 0;
    color: #b91c1c;
    font-size: 12px;
}

/* GEN7-UX-ALL-CASES-COMPACT-VISUAL-REALIGNMENT-I1: EIN konsolidierter Style-Owner
   fuer "Alle Pruefungen". Die frueher spaeter im Blatt liegende zweite
   .all-cases-page*-Schicht (Titel 22px, gap var(--space-6), thead/hover-Farben)
   ist hierher gefaltet und dort entfernt. Werte kommen ausschliesslich aus der
   bestehenden Spacing-Skala (--space-*), den Radius-Tokens und den App-Basis-
   Primitives; keine neuen Tokens, keine neue Rolle. Archiv/Papierkorb teilen
   .all-cases-*-Klassen und bleiben ueber :is(.archive-page, .trash-page) bzw.
   die vorhandenen Sechs-Spalten-Overrides unveraendert. */
.all-cases-page {
    display: grid;
    gap: var(--space-4);
    padding: var(--space-1) 0 var(--space-3);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-family: var(--font-ui);
}

.all-cases-page-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-4);
    align-items: start;
}

.all-cases-page-intro {
    display: grid;
    gap: var(--space-1);
    min-width: 0;
}

.all-cases-page-title {
    font-size: 20px;
    line-height: 1.12;
    letter-spacing: -0.02em;
    font-weight: 700;
    color: var(--text);
}

/* Gen3-Metazeile (CASE-LIST-HEADER-UX-F1): kleine, gedaempfte Zeile unter dem
   Titel mit Punkt-Trennern; ersetzt Kicker + Subtitle der Seite "Alle Pruefungen". */
.all-cases-page-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-1);
    color: var(--muted);
    font-size: 12px;
    line-height: 1.4;
}

.all-cases-page-meta-sep {
    color: var(--muted-2);
}

.all-cases-page-meta-item {
    white-space: nowrap;
}

.all-cases-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-2);
    flex-wrap: nowrap;
}

.all-cases-toolbar .workbench-primary-button,
.all-cases-toolbar .workbench-ghost-button {
    min-height: 32px;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--r-2);
    font-size: 12px;
    line-height: 1.15;
    white-space: nowrap;
    box-shadow: none;
}

.all-cases-search {
    flex: 0 1 340px;
    min-width: 240px;
    max-width: 360px;
}

.all-cases-search-input {
    width: 100%;
    background: #ffffff;
    border: 1px solid var(--border);
    font-size: 12px;
}

/* Hoehe an die kompaktierten Toolbar-Buttons angleichen: die geteilte
   .workbench-project-input-Grammatik (38px) wird nur fuer dieses eine Feld
   ueberstimmt, ohne die App-Eingabegrammatik zu aendern. */
.all-cases-toolbar .all-cases-search-input {
    min-height: 32px;
}

.all-cases-search-input::placeholder {
    color: var(--muted-2);
}

.all-cases-table-card {
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(20, 23, 30, 0.04);
}

.all-cases-content {
    display: grid;
    grid-template-columns: minmax(150px, 172px) minmax(0, 1fr) minmax(220px, 246px);
    gap: var(--space-3);
    align-items: start;
}

/* Archiv und Papierkorb rendern keine Mandantennavigation: nur Tabelle + Detailpanel. */
.archive-page .all-cases-content,
.trash-page .all-cases-content {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 246px);
}

.all-cases-mandant-nav {
    display: grid;
    gap: 2px;
    align-self: start;
    padding: var(--space-2);
    border: 1px solid var(--border-subtle);
    border-radius: var(--r-4);
    background: #ffffff;
}

.all-cases-mandant-nav-title {
    padding: var(--space-1) var(--space-2) var(--space-2);
    color: var(--muted-2);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.all-cases-mandant-filter {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-2);
    align-items: center;
    width: 100%;
    padding: var(--space-1) var(--space-2);
    border: 0;
    border-radius: var(--r-2);
    background: transparent;
    color: var(--text);
    font: inherit;
    font-size: 12px;
    text-align: left;
    cursor: pointer;
}

.all-cases-mandant-filter span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.all-cases-mandant-filter span:last-child { color: var(--muted-2); font-size: 11px; font-weight: 700; }
.all-cases-mandant-filter:hover { background: var(--surface-soft); }
.all-cases-mandant-filter.is-active { background: var(--blue-bg); color: var(--blue-text); font-weight: 700; }

.all-cases-mandant-group td {
    padding: var(--space-1) var(--space-2);
    border-bottom: 1px solid var(--border-subtle);
    background: var(--surface-2);
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
}

.all-cases-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

/* GEN7-UX-PILOT-P2-VISIBLE-DEFECTS-I1: Die aktive Fallliste projiziert den
   vorhandenen Mandanten explizit. Archiv/Papierkorb behalten ihr eigenes,
   unten ueberschriebenes Sechs-Spalten-Schema. */
/* GEN7-UX-ALL-CASES-ROW-DENSITY-AND-COLUMN-BALANCE-I2: Breiten nach gemessenem
   Inhalt statt nach gleichmaessiger Verteilung. Belegt (1536px, Tabellenspur
   816px): die Statuspille "DSB geprueft" misst 97,8px und wurde in der alten
   98px-Spalte (minus 24px Zellpolsterung) geclippt; Mandantennamen brachen auf
   4 Zeilen. Neue Aufteilung + auf 8px reduzierte horizontale Zellpolsterung
   geben Mandant +33px und den Pillen ihre reale Breite. */
.all-cases-table th:nth-child(1),
.all-cases-table td:nth-child(1) {
    width: 16%;
}

.all-cases-table th:nth-child(2),
.all-cases-table td:nth-child(2) {
    width: 17%;
}

.all-cases-table th:nth-child(3),
.all-cases-table td:nth-child(3) {
    width: 14%;
}

.all-cases-table th:nth-child(4),
.all-cases-table td:nth-child(4) {
    width: 13%;
}

.all-cases-table th:nth-child(5),
.all-cases-table td:nth-child(5) {
    width: 16%;
}

.all-cases-table th:nth-child(6),
.all-cases-table td:nth-child(6) {
    width: 11%;
}

.all-cases-page .all-cases-table th:nth-child(7),
.all-cases-page .all-cases-table td:nth-child(7) {
    width: 13%;
}

/* Archiv/Papierkorb haben eine beschriftete Restore-Aktion und ein anderes
   Spaltenschema. Die vorhandene Tabelle reserviert deren reale Bedienbreite. */
:is(.archive-page, .trash-page) .all-cases-table :is(th, td):nth-child(1) { width: calc(42% - 156px); }
:is(.archive-page, .trash-page) .all-cases-table :is(th, td):nth-child(2) { width: 18%; }
:is(.archive-page, .trash-page) .all-cases-table :is(th, td):nth-child(3) { width: 12%; }
:is(.archive-page, .trash-page) .all-cases-table :is(th, td):nth-child(4),
:is(.archive-page, .trash-page) .all-cases-table :is(th, td):nth-child(5) { width: 14%; }
:is(.archive-page, .trash-page) .all-cases-table :is(th, td):nth-child(6) { width: 156px; }

.all-cases-table thead th {
    padding: var(--space-2);
    border-bottom: 1px solid var(--border-subtle);
    background: var(--surface-2);
    color: var(--muted-2);
    /* I2: Gemessen brauchte "VERANTWORTLICH" versal 153px und "RISIKOSTUFE"
       105px auf einer Zeile -- in Spalten, deren Inhalt (Chip 57px,
       "Nicht zugewiesen") nur einen Bruchteil davon belegt. Ueber Breite ist
       das nicht loesbar, ohne Titel und Mandant genau die Breite wieder
       wegzunehmen, die dieser Block ihnen geben soll; `overflow-wrap: anywhere`
       erzeugte stattdessen Brueche mitten im Wort ("RISIKOSTUF/E").
       Traeger der Kopf-Rolle bleiben Groesse, Gewicht und gedaempfte Farbe;
       nur die Versalien entfallen fuer genau diese Tabelle. */
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.01em;
    overflow-wrap: anywhere;
    line-height: 1.3;
    text-align: left;
}

.all-cases-table-chevron-head {
    text-align: right;
}

.all-cases-row {
    cursor: pointer;
    transition: background-color 140ms ease;
}

.all-cases-row:hover td {
    background: var(--surface-2);
}

.all-cases-row.is-active td {
    background: var(--blue-bg);
}

.all-cases-row.is-selected:not(.is-active) td {
    background: #fbfdff;
}

.all-cases-row.is-selected td:first-child {
    box-shadow: inset 3px 0 0 var(--blue);
}

/* B3: ruhigere Zeile. Die zweizeilige Titelstruktur ist entfallen, damit
   traegt die Zeile ihre Aussage in einer Hoehe. */
.all-cases-cell {
    padding: var(--space-1) var(--space-2);
    border-bottom: 1px solid #eef2f7;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* GEN7-UX-ALL-CASES-ROW-DENSITY-AND-COLUMN-BALANCE-I2: `text-overflow: ellipsis`
   der Basisregel war wirkungslos, weil kein `white-space: nowrap` gesetzt war --
   Mandant, Verantwortlich und Datum brachen dadurch vertikal um (gemessen:
   Mandant 4 Zeilen, Zeilenhoehe 89px). Die Textspalten der Tabelle tragen ihre
   Aussage jetzt einzeilig mit "…"-Kuerzung; die Rohdaten bleiben unveraendert
   und ueber Auswahlpanel und Suche vollstaendig erreichbar. Mobile (<=700px)
   loest das im Kartenlayout wieder auf. */
.all-cases-cell-mandant,
.all-cases-cell-responsible,
.all-cases-cell-scope,
.all-cases-cell-date {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* I2: Die Mandantenzelle trug als einzige Textspalte NIE eine eigene Regel und
   erbte deshalb die Browser-Default-Schriftgroesse (gemessen ~16px) -- sie
   stach damit sichtbar aus der 12px-Zeilengrammatik heraus. */
.all-cases-cell-mandant {
    color: var(--text);
    font-size: 12px;
    line-height: 1.25;
}

.all-cases-row:last-child .all-cases-cell {
    border-bottom: 0;
}

.all-cases-cell-title {
    width: auto;
}

.all-cases-title {
    color: var(--text);
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.all-cases-row.is-active .all-cases-title {
    color: var(--blue-text);
}

.all-cases-title-meta {
    margin-top: 4px;
    color: var(--muted-2);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
}

/* GEN7-UX-ALL-CASES-COMPACT-VISUAL-REALIGNMENT-I1: In der aktiven Fallliste
   tragen Status- und Risiko-Pille wieder ihre App-Basis-Grammatik
   (.wb-status-pill: 22px min-height, nowrap; .proj-case-risk-chip: natuerliche
   Hoehe) -- nur die Schrift bleibt mit 11px eine Spur dichter. Der fruehere
   Flaechen-Override (min-height 24px, white-space: normal, overflow-wrap:
   anywhere) liess "DSB geprueft" / "Angepasst" in der schmalen Statusspalte
   mehrzeilig brechen und blies die Pillen ueber das App-Niveau hinaus auf. */
.all-cases-page:not(.archive-page):not(.trash-page) .proj-case-risk-chip,
.all-cases-page:not(.archive-page):not(.trash-page) .wb-status-pill {
    font-size: 11px;
    white-space: nowrap;
}

/* Archiv und Papierkorb behalten die vorherige Pillen-Praesentation unveraendert. */
.archive-page .proj-case-risk-chip,
.archive-page .wb-status-pill,
.trash-page .proj-case-risk-chip,
.trash-page .wb-status-pill {
    min-height: 24px;
    padding: 3px 8px;
    font-size: 11px;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}

.all-cases-cell-scope,
.all-cases-cell-responsible {
    color: var(--text);
    font-size: 12px;
    line-height: 1.25;
}

.all-cases-cell-date {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.25;
}

.all-cases-cell-chevron {
    width: auto;
    padding-right: 4px;
    padding-left: 4px;
    text-align: right;
    color: var(--muted-2);
    font-size: 12px;
    line-height: 1.2;
    /* Der gemeinsame Overflow-Owner positioniert sein Panel absolut. Diese
       Host-Zelle darf es deshalb weder clippen noch hinter Nachbarzellen
       hit-testen lassen. */
    position: relative;
    overflow: visible;
    z-index: 1;
    white-space: nowrap;
}

.all-cases-row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    min-width: 0;
}

/* GEN7-FIX-SILENT-EDIT-LOSS-AND-ACTION-HITBOX-P1 (F-007)
   Die Host-Zelle spannt mit position:relative + z-index:1 einen eigenen
   Stacking Context auf. Das z-index:30 des Menuepanels ist darin gefangen
   und kann die gleichrangigen Kontexte SPAETERER Tabellenzeilen nicht
   ueberragen: das Panel wird gezeichnet, verliert aber das Hit-Testing an
   die danach im DOM stehenden Zellen. Deshalb wird ausschliesslich die
   Zelle mit dem GEOEFFNETEN Menue angehoben - nur solange es offen ist.
   Kein neuer Menue-State, keine z-index-Eskalation am Panel selbst. */
.all-cases-cell-chevron:has(.overflow-menu-open) {
    z-index: 40;
}

.all-cases-cell-chevron .all-cases-row-open {
    min-height: 28px;
    padding: var(--space-1) var(--space-2);
    border-radius: var(--r-2);
    font-size: 12px;
}

.all-cases-muted {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
}

.all-cases-empty-cell {
    padding: var(--space-6) var(--space-4);
    color: var(--muted);
    font-size: 13px;
    text-align: center;
}

.all-cases-row:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: -2px;
}

.all-cases-loading-cell {
    padding: var(--space-6) var(--space-4);
    color: var(--muted);
    font-size: 13px;
    text-align: center;
}

.all-cases-loading-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 9px;
    border-radius: 50%;
    background: var(--blue);
    vertical-align: middle;
    animation: all-cases-loading-pulse 1s ease-in-out infinite;
}

.all-cases-loading-label {
    vertical-align: middle;
}

@keyframes all-cases-loading-pulse {
    0%, 100% {
        opacity: 0.3;
    }
    50% {
        opacity: 1;
    }
}

.all-cases-action-panel {
    display: grid;
    gap: var(--space-3);
    align-self: start;
    min-width: 0;
    max-height: calc(100vh - var(--topbar-height) - 32px);
    overflow-y: auto;
    padding: var(--space-3);
    border: 1px solid var(--border-subtle);
    border-radius: var(--r-4);
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(20, 23, 30, 0.04);
    position: sticky;
    top: calc(var(--topbar-height) + 16px);
}

.all-cases-action-panel-head {
    display: grid;
    gap: var(--space-1);
    min-width: 0;
}

.all-cases-action-panel-eyebrow {
    color: var(--muted-2);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.all-cases-action-panel-title {
    margin: 0;
    color: var(--text);
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
}

.all-cases-action-panel-hint {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.all-cases-action-panel-details {
    display: grid;
    gap: var(--space-2);
    margin: 0;
}

.all-cases-action-panel-detail {
    display: grid;
    gap: var(--space-1);
}

.all-cases-action-panel-detail dt {
    color: var(--muted-2);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.all-cases-action-panel-detail dd {
    margin: 0;
    color: var(--text);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
}

.all-cases-action-panel-actions {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding-top: var(--space-1);
}

.all-cases-action-panel-actions .workbench-primary-button,
.all-cases-action-panel-actions .workbench-ghost-button,
.all-cases-action-panel-group-actions .workbench-primary-button,
.all-cases-action-panel-group-actions .workbench-ghost-button {
    min-height: 32px;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--r-2);
    font-size: 12px;
    line-height: 1.15;
    white-space: nowrap;
}

.all-cases-action-panel-menu {
    flex: 0 0 auto;
}

/* CASE-LIST-ACTION-PANEL-COMPLETE-F1 — gruppiertes Aktionspanel der aktiven Fallliste
   ("Alle Pruefungen"): vorhandene Aktionen werden sichtbar und in Gruppen gebuendelt.
   Nur Struktur und Abstand, keine neuen Farben oder Tokens; Danger nutzt die bereits
   vorhandene .is-danger-Grammatik und den bestehenden --line-Token. Archiv/Papierkorb
   nutzen weiterhin .all-cases-action-panel-actions und bleiben unveraendert. */
.all-cases-action-panel-groups {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.all-cases-action-panel-group {
    display: grid;
    gap: var(--space-2);
}

.all-cases-action-panel-group.is-danger-group {
    padding-top: var(--space-3);
    border-top: 1px solid var(--line);
}

.all-cases-action-panel-group-actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    align-items: stretch;
}

.all-cases-action-panel-group-actions .all-cases-action-panel-menu {
    align-self: flex-start;
}

.all-cases-error {
    margin: 0;
}

.all-cases-filter-wrap {
    position: relative;
}

.all-cases-filter-menu {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 200;
    background: #ffffff;
    border: 1px solid var(--border-subtle);
    border-radius: var(--r-3);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.10), 0 1px 3px rgba(15, 23, 42, 0.06);
    padding: var(--space-1);
    min-width: 170px;
}

.all-cases-filter-item {
    display: block;
    width: 100%;
    padding: var(--space-2);
    text-align: left;
    background: transparent;
    border: 0;
    border-radius: var(--r-2);
    font-size: 12px;
    font-family: var(--font-ui);
    color: var(--text);
    cursor: pointer;
    line-height: 1.3;
}

.all-cases-filter-item:hover {
    background: var(--surface-soft);
}

.all-cases-filter-item.is-active {
    font-weight: 600;
    color: var(--blue-text);
    background: var(--blue-bg);
}

/* CASE-LIST-VISUAL-POLISH-R1 / GEN7-UX-ALL-CASES-COMPACT-VISUAL-REALIGNMENT-I1:
   Der Feinschliff der aktiven Fallliste. Such-Sizing, Suchfeld-Rahmen und die
   dt-Laufweite sind in die Basisregeln oben gefaltet (ein Owner). Hier bleibt
   nur, was aussschliesslich die aktive Liste betrifft und Archiv/Papierkorb
   unveraendert lassen soll. */
.all-cases-page:not(.archive-page):not(.trash-page) .all-cases-title {
    /* I2-R2 / I1: Die verdichtete Arbeitslisten-Grammatik. Der Titel bleibt
       primaer, traegt seine Aussage aber einzeilig -- die zweizeilige
       -webkit-line-clamp: 2 der Basisregel war der groesste Hoehentreiber der
       Zeile. Archiv/Papierkorb behalten die zweizeilige Basis. */
    display: block;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 12px;
}

.all-cases-page:not(.archive-page):not(.trash-page) .all-cases-title-meta {
    font-weight: 500;
}

.main {
    overflow: hidden;
    padding: 20px 16px 16px;
}

.main:has(.case-statusband) {
    padding: 14px 28px 14px;
}

.workbench-main {
    height: calc(100vh - var(--topbar-height) - 28px);
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        var(--rail-resize-handle-width)
        var(--rail-width);
    grid-template-rows: auto auto;
    gap: 14px 16px;
    overflow-y: auto;
    overflow-anchor: none;
}

.workbench-main:not(:has(.right-rail)) {
    grid-template-columns: minmax(0, 1fr);
}

/* CASE-WORKSPACE-SHELL-F1: Strukturelle Grundklassen der additiven Gen4-Workspace-Shell.
   Bewusst nur Struktur (Grid, Abstaende), keine Farben/Optik/Animation. Eigener
   case-workspace-* Namespace ohne .workspace/.right-rail, damit die Preserve-Selektoren
   der Gen3-Fallansicht eindeutig bleiben. */
/* GEN4-WORKSPACE-CHROME-MIGRATION-F1: zuvor zwei separate .case-workspace-shell
   Bloecke (Grid-Basis + spaeterer column-gap-Nachtrag, siehe
   GEN4_WORKSPACE_CHROME_INVENTORY_F1.md Fund #2) zu einem Block
   zusammengefuehrt. Keine Wertaenderung: row-gap bleibt 16px, column-gap
   bleibt 48px (Referenzmessung GEN4-WORKSPACE-RAIL-GUTTER-ALIGNMENT-F1). */
.case-workspace-shell {
    grid-column: 1 / -1;
    display: grid;
    /* PROZESS-WB-F5-REFERENCE-COMPOSITION-R1: Rail als Clamp statt fester
       320px, damit der Hauptbereich (und damit das Fokuspanel) die gesamte
       zusaetzliche Monitorbreite erhaelt. Ersetzt zugleich die fruehere
       1280px-Sonderregel (min(320px, ...)), die dieselbe Funktion hatte. */
    /* GEN7-UX-CASE-CHROME-UNIFICATION-I1: Fall Home ist der
       Geometrieanker. Dieselbe Spaltenverteilung gilt für alle regulären
       Case-Workspace-Reiter; Rail-Inhalte bleiben unverändert. */
    grid-template-columns: minmax(0, 1fr) clamp(240px, 16vw, 280px);
    /* GEN4-WORKSPACE-RAIL-GUTTER-ALIGNMENT-F1: docs/design/reference/hero.png
       vermessen (drei unabhaengige, textfreie Zeilen, Skala 1.0719 aus dem
       bekannten Right-Rail-Wert 320px hergeleitet - siehe
       GEN4-WORKSPACE-CONTENT-WIDTH-ALIGNMENT-F1). Gemessener Column-Gap
       Content<->Right-Rail: ~47px CSS, konsistent an allen drei Zeilen - klar
       ausserhalb der Messunsicherheit (anders als die dort bereits gepruefte
       900px-Spaltenbreite). Row-Gap (16px, relevant nur im gestapelten
       Mobile-Layout unter 900px) ist nicht Teil dieser Referenzmessung. */
    gap: 16px 48px;
    align-items: start;
}

.case-workspace-body {
    display: flex;
    flex-direction: column;
    /* GEN4-WORKSPACE-HERO-LAYOUT-R2: GEN4_VISUAL_SPEC.md Abschnitt 3/10
       verlangt einen gleichmaessig grosszuegigeren Abstand Hero->Stepper und
       Stepper->Workspace als zuvor (16px); kein exakter Pixelwert im Bild
       annotiert, daher der bereits als globaler Spacing-Grundwert
       dokumentierte Wert (24px, Abschnitt 10) statt einer neu erfundenen
       Zahl. */
    gap: 16px;
    min-width: 0;
    /* GEN4-WORKSPACE-HERO-LAYOUT-R4: fallubersicht.html .page (STEP 5
       Pflichtwert: max-width 900px, margin 0 auto). .case-workspace-body
       ist die mittlere Spalte innerhalb von .case-workspace-shell (Grid
       Spalte 1 = minmax(0,1fr)); max-width+margin:auto zentriert den Inhalt
       innerhalb dieser Spalte, ohne die Grid-Aufteilung zu linker
       Navigation/Right Rail zu beruehren. */
    /* GEN7-UX-CASE-CHROME-UNIFICATION-I1: gemeinsamer Breitenowner wie
       Case Home; keine reiterspezifische Width-Regel. */
    max-width: none;
    margin: 0 auto;
    width: 100%;
}

/* GEN4-RESPONSIVE-POLISH-F1: dieselbe Rail-Verschmaelerung, die .workbench-main
   fuer die klassische Ansicht bereits bei 1280px nutzt (siehe Regel oben),
   fehlte fuer .case-workspace-shell, weil die Shell mit grid-column: 1 / -1
   ihre eigene, von .workbench-main unabhaengige Spaltenaufteilung definiert.
   Ohne diese Regel blieb die Rail bei 1280px starr auf 500px, wodurch der
   Body-Bereich zwischen 900px und 1280px staerker gequetscht wurde als bei
   noch schmaleren Breiten (wo der Sidebar-Kollaps bei 1100px wieder Platz
   freigibt). Reine Breitenangleichung, keine neue Breakpoint-Familie. */
/* PROZESS-WB-F5: die fruehere 1280px-Rail-Verschmaelerung ist durch die
   Clamp-Spalte in .case-workspace-shell oben abgeloest (gleiche Funktion,
   eine Regel statt Breakpoint-Sonderfall). */

@media (max-width: 900px) {
    .case-workspace-shell {
        grid-template-columns: 1fr;
    }

    /* Einspaltiges Layout: Rail steht unter dem Body statt daneben, sticky
       waere hier irrefuehrend (wuerde ueber Body-Inhalte kleben bleiben). */
    .case-workspace-shell > .case-workspace-rail {
        position: static;
        max-height: none;
        overflow-y: visible;
    }
}

.case-workspace-header-actions {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

/* GEN4-U1: Persistent Case Context — permanenter Identitätsanker des Workspace.
   Bewusst ruhig: keine neuen Farben, keine Icons, nur Typografie und Weißraum. */
.case-workspace-case-context {
    gap: 8px;
    padding: 18px 0 14px;
}

.case-workspace-context-list {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 24px;
    margin-top: 4px;
}

.case-workspace-context-item {
    display: flex;
    align-items: baseline;
    gap: 6px;
    min-width: 0;
}

.case-workspace-context-label {
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.4;
    white-space: nowrap;
}

.case-workspace-context-value {
    color: var(--text);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    min-width: 0;
}

.case-workspace-case-context .case-workspace-header-actions {
    margin-top: 0;
}

/* GEN4-UI-WORKSPACE-U1: Hero-Card. Größerer Radius (--radius-lg statt
   --radius-md), mehr Innenabstand/Weißraum und eine eigene, ruhigere
   Hierarchie (Projektbeschreibung vor Metadaten, Status als Chip-Reihe statt
   Fließtext-Zeile). Nur bestehende Tokens; keine neue Farbrolle.
   GEN4-WORKSPACE-CHROME-MIGRATION-F1: zuvor zwei separate .case-workspace-hero
   Bloecke (siehe GEN4_WORKSPACE_CHROME_INVENTORY_F1.md Fund #1) zu einem
   Block zusammengefuehrt. Keine Wertaenderung. */
/* GEN7-FIX-DSB-DECISION-CLEAN-DIRTY-RERENDER-INPUT-INTEGRITY-I1
   Rein mechanisch: `.case-workspace-hero` setzt `display: flex` und schlaegt
   als Autorenregel das UA-Verhalten von [hidden]. Ohne diese Zeile waere der
   Knoten trotz `hidden` sichtbar. Keine visuelle Aenderung - sie stellt nur
   her, dass `hidden` auch verbirgt. */
.case-workspace-hero[hidden] {
    display: none;
}

.case-workspace-hero {
    display: flex;
    flex-direction: column;
    /* GEN4-HERO-FINAL-ALIGNMENT-R1: Innenrhythmus der Card live gegen
       hero.png vermessen (Summary->Linie ~31 CSS, Linie->Reihe ~29 CSS,
       Reihe-1->Linie ~22 CSS, Linie->Reihe-2 ~32 CSS) - einheitlich 28px.
       WICHTIG: dieser Wert war zuvor wirkungslos, weil die spaetere
       Sammelregel ".case-workspace-section, .case-workspace-header,
       .case-workspace-rail { gap: 6px }" (gleiche Spezifitaet, spaeter in
       der Datei) ihn ueberschrieb - die Card rendertete real mit 6px.
       Die Sammelregel schliesst die Hero-Card jetzt explizit aus. */
    /* GEN4-WORKSPACE-COMPACT-PROFESSIONAL-SCALE-F1: 28px -> 18px -
       kompaktere vertikale Dichte der Card (PO-Entscheidung), Schichtung
       (Summary/Divider/Meta-Reihe-1/Divider/Meta-Reihe-2) unveraendert. */
    gap: 14px;
    background: var(--surface);
    /* GEN4-REFERENCE-RESOLUTION-F1: Card-Grammatik der Hero-Card ist eine
       dokumentierte, formal im Geltungsbereich erfasste Ausnahme von der
       globalen 12px/#E5E7EB-Grammatik (GEN4_VISUAL_SPEC.md Abschnitt 5,
       "Ausnahme Hero-Card"), Product-Owner-Entscheidung Option A. Quelle:
       docs/design/reference/fallubersicht.html .card. Bereinigt die zuvor
       hier uebereinanderliegenden, sich gegenseitig ueberschreibenden
       Zwischenstaende (WORKSPACE-GLOBAL-SPACING-F20 padding:24px und
       WORKSPACE-HERO-FINAL-POLISH-F12 radius:12px/#e5e7eb, beide seit
       GEN4-WORKSPACE-HERO-LAYOUT-R4 bereits wirkungslos) auf den einen
       tatsaechlich wirksamen Block - keine Wertaenderung, reiner Cleanup.
       Andere Karten/Sections bleiben unveraendert bei 12px/#E5E7EB. */
    border-radius: 18px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    /* GEN4-WORKSPACE-COMPACT-PROFESSIONAL-SCALE-F1: 28px 32px -> 20px 24px
       (kompaktere SaaS-Skalierung, PO-Entscheidung uebersteuert den
       hero.png-Messwert). */
    padding: 16px 20px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}

/* GEN4-HERO-PIXEL-ALIGNMENT-F2: docs/design/reference/hero.png vermessen
   (annotierter Grid-Crop, siehe Abschlussbericht) - die Hero-Card ist dort
   exakt so breit wie die HeaderRow/der Stepper darueber/darunter, keine
   eigene Einrueckung. `.case-workspace-body` (max-width:900px, margin:0
   auto, siehe oben) zentriert bereits die gesamte Spalte inkl. HeaderRow und
   Stepper - die zusaetzliche 96%-Verschmalerung aus
   GEN4-WORKSPACE-HERO-POLISH-R5 wirkte NUR auf die Card und erzeugte dadurch
   einseitig ungenutzten Weissraum, den die Referenz nicht zeigt. Ersatzlos
   entfernt (kein Bildbeleg fuer eine schmalere Card). */

/* GEN4-WORKSPACE-HERO-LAYOUT-R2: .case-workspace-hero-breadcrumb(-icon/-item/
   -separator) entfernt - die Breadcrumb-Zeile wurde aus dem DOM entfernt
   (siehe render_case_workspace_shell.js buildCaseHeader()), diese Regeln
   waren dadurch verwaist. */

/* GEN4-WORKSPACE-HERO-PARITY-F1: Eyebrow-Label "FALLÜBERSICHT" oberhalb des
   Titelbereichs (Zielbild STEP 6.A). Gleiche Typografie wie die bereits
   bestehende Breadcrumb-Zeile (11px/700/uppercase), nur Farbe leicht
   akzentuiert. */
/* GEN4-HERO-FINAL-ALIGNMENT-R1: Eyebrow konsolidiert (vorher zwei
   uebereinanderliegende Bloecke PARITY-F1 + LAYOUT-R4; der spaetere
   F2-Override 12px/700 lag zusaetzlich in einem entfernten Layer).
   Finalwerte = der bislang tatsaechlich gerenderte Stand (12px/700,
   Live-Messung 2026-07-09, deckungsgleich mit hero.png). */
.case-workspace-hero-eyebrow {
    color: var(--blue-text);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
    text-transform: uppercase;
}

/* GEN4-HERO-STRUCTURE-POLISH-R2a: DOM-Umbau nach der im Implementierungs-
   Prompt enthaltenen Product-Owner-Referenz. Neue Zielhierarchie: Wrap
   [BreadcrumbRow, HeaderRow[HeroLeft(Eyebrow+H1), HeroRight(StatusZone+
   Actions)], HeroCard[Fallbeschreibung, Divider, MetadataGrid(4 Spalten),
   FooterMeta(2 Spalten), BottomSpace]]. HeaderRow liegt jetzt ausserhalb der
   Card (vorher: HeroBody innerhalb der Card); die Klasse
   .case-workspace-hero-body wird fuer HeaderRow weiterverwendet (identisches
   2-Spalten-Layout). Die Icon-Kachel aus HERO-IMPLEMENTATION-R1 entfaellt
   (im Ziel-DOM nicht vorgesehen). */
.case-workspace-header-wrap {
    display: flex;
    flex-direction: column;
}

/* GEN4-WORKSPACE-HERO-LAYOUT-R4: vorher trug .case-workspace-header-wrap
   selbst einen Flex-Gap (12px) zwischen allen Kindern (heroTop/HeaderRow/
   HeroCard). Der neue Pflichtwert "HeaderRow margin-bottom:28px" (STEP 5)
   bezieht sich exakt auf den Abstand HeaderRow->HeroCard; ein zusaetzlicher
   Wrapper-Gap wuerde diesen Wert verfaelschen (28px + 12px statt 28px). Gap
   entfernt, stattdessen expliziter margin-bottom je Element - identische
   Gesamtwirkung fuer heroTop->HeaderRow (12px, unveraendert), exakter
   Pflichtwert fuer HeaderRow->HeroCard (28px, siehe .case-workspace-hero-body). */
.case-workspace-hero-top {
    /* GEN4-HERO-FINAL-ALIGNMENT-R1: hero.png vermessen - Abstand
       Zurueck-Button -> Eyebrow ~21 CSS (vorher 12px). */
    /* GEN4-WORKSPACE-COMPACT-PROFESSIONAL-SCALE-F1: 20px -> 12px
       (Above-the-fold-Dichte, PO-Entscheidung). */
    margin-bottom: 9px;
}

.case-workspace-hero-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    min-width: 0;
}

/* HeaderRow: HeroLeft (Eyebrow+H1) und HeroRight (Statuszone+Aktionen)
   nebeneinander, oberhalb der HeroCard. */
.case-workspace-hero-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    /* GEN4-WORKSPACE-HERO-LAYOUT-R4: fallubersicht.html .header-row (STEP 5:
       gap 24px, margin-bottom 28px). */
    gap: 20px;
    margin-bottom: 22px;
}

.case-workspace-hero-left {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

/* GEN4-HERO-FINAL-ALIGNMENT-R1: Falltitel - EINZIGE Regel fuer diese Klasse
   (vorher sechs ueber die Datei verteilte, sich gegenseitig ueberschreibende
   Bloecke; gewonnen hatte stets der R4-Block weiter unten mit 30px/600 und
   max-width:560px, wodurch der Titel real dreizeilig umbrach - alle
   "Polish"-Werte 24/26/25px lagen VOR ihm in der Datei und waren wirkungslos,
   Live-Messung 2026-07-09). Finalwerte aus der hero.png-Messung
   (GEN4-HERO-PIXEL-ALIGNMENT-F2: Titelzeile ~28 CSS bei line-height 1.25,
   volle Content-Breite, zweizeiliger Umbruch wie im Referenzbild - der
   fruehere 25px-Kompromiss hat nie gerendert und ist damit gegenstandslos). */
/* GEN4-WORKSPACE-COMPACT-PROFESSIONAL-SCALE-F1: Product-Owner-Entscheidung
   "kompakter, professioneller SaaS-Scale" uebersteuert den frueheren
   hero.png-Messwert (28px/700, rendertete beim MedLogistik-Fall 3-zeilig/
   105px). 21px/650 + Clamp auf max. 2 Zeilen (STEP 8A "maximal 2 Zeilen"),
   reiner CSS-Clamp analog zum bestehenden Summary-Muster, kein DOM. */
.case-workspace-header-title {
    margin: 0;
    color: #0f172a;
    font-size: 21px;
    font-weight: 650;
    letter-spacing: -0.01em;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* GEN7-UX-SHARED-CASE-HEADER-OWNER-I1: Der Falltitel gehoert zum gemeinsamen
   Fallkopf und traegt deshalb auf jedem Case-Reiter dieselbe Groesse. Nur der
   Selektor wechselt von `.is-overview` auf den Kopf-Marker -- kein Wert
   geaendert, keine zweite Titel-Grammatik. */
.case-workspace-shell.has-shared-case-header .case-workspace-header-title {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
}

.case-workspace-hero-case-identity {
    margin: 0;
    color: #475569;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
}

/* GEN4-HERO-FINAL-ALIGNMENT-R1: Fallbeschreibung konsolidiert (vorher vier
   verteilte Bloecke: POLISH-R1, LAYOUT-R4, TYPOGRAPHY-POLISH-F1 13px/clamp2,
   ALIGNMENT-FINAL-F1 15px/clamp3). Der Clamp liegt jetzt auf der
   Zustandsklasse .is-collapsed statt auf der Basisklasse, damit der neue
   "Mehr anzeigen"-Toggle (hero.png) ihn aufheben kann. */
/* GEN4-WORKSPACE-COMPACT-PROFESSIONAL-SCALE-F1: Summary tritt hinter den
   Titel zurueck (15px -> 13px), Clamp-/Toggle-Verhalten unveraendert. */
/* GEN7-UX-DSB-DECISION-ANALYSIS-CONVERGENCE-FINAL-I1: die frueher hier
   mitgefuehrte Begruendungszone der Fallübersicht
   (.case-workspace-analysis-reason*) ist mit ihrem Renderer entfallen.
   Entfernt wurden ausschliesslich ihre Selektoren -- die geteilten Regeln
   der Fallbeschreibung bleiben unveraendert. */
.case-workspace-hero-summary {
    margin: 0;
    color: #0f172a;
    font-size: 13px;
    line-height: 1.55;
}

/* GEN5-COLLAPSIBLE-TEXT-OWNER-EXTRACTION-F4-1: aus der hero-spezifischen
   Regel .case-workspace-hero-summary.is-collapsed hervorgegangen - identische
   Deklarationen, jetzt am gemeinsamen Owner (buildCollapsibleTextBlock).
   Verantwortet ausschliesslich das Einklappen; Typografie, Farbe und
   Abstaende bleiben bei der jeweiligen Consumer-Klasse. Die Zeilenzahl ist
   ueber --wb-collapsible-text-lines pro Consumer setzbar, Standard bleibt der
   bisherige Hero-Wert 3. */
.wb-collapsible-text.is-collapsed {
    display: -webkit-box;
    -webkit-line-clamp: var(--wb-collapsible-text-lines, 3);
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* GEN5-DESCRIPTION-RICH-TEXT-RENDERING-F1: Fallbeschreibungen mit echter
   Absatz-/Listenstruktur rendern jetzt als <div> mit <p>/<ul>/<ol>-Kindern
   statt eines einzelnen Text-Nodes (siehe buildStructuredSummaryNode() in
   render_case_workspace_shell.js). Reiner Fliesstext ohne Struktur bleibt
   unveraendert ein einzelnes <p> (Clamp-Verhalten fuer den haeufigsten Fall
   identisch zu vorher). Diese Regeln betreffen nur die verschachtelten
   Kindelemente des mehrteiligen Falls. */
/* GEN5-FALLBESCHREIBUNG-TYPOGRAPHY-AND-ACTION-PILL-F1: der Absatzabstand
   (vorher 8px) liess den Hero unnoetig lang wirken - 6px halten die
   Absatztrennung sichtbar, verdichten den Block aber merklich. Struktur
   (p/ul/ol-Aufteilung) bleibt vollstaendig unveraendert. */
div.case-workspace-hero-summary p,
div.case-workspace-hero-summary ul,
div.case-workspace-hero-summary ol {
    margin: 0 0 6px;
    padding: 0;
}

div.case-workspace-hero-summary p:last-child,
div.case-workspace-hero-summary ul:last-child,
div.case-workspace-hero-summary ol:last-child {
    margin-bottom: 0;
}

div.case-workspace-hero-summary ul,
div.case-workspace-hero-summary ol {
    padding-left: 20px;
}

/* GEN4-HERO-FINAL-ALIGNMENT-R1: Block aus Beschreibung + Toggle-Link
   (hero.png: blauer "Mehr anzeigen ⌄"-Link unter der eingeklappten
   Beschreibung, Abstand ~10 CSS). Der Toggle ist ein textlicher Link ohne
   Button-Rahmen - bestehendes --blue-text-Token, keine neue Farbrolle. */
.case-workspace-hero-summary-block {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.case-workspace-hero-summary-toggle {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--blue-text);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
}

/* GEN5-FALLBESCHREIBUNG-TYPOGRAPHY-AND-ACTION-PILL-F1: reine Positionsklasse.
   Optik/Geometrie kommen vollstaendig aus der geteilten Button-Grammatik;
   hier wird bewusst kein Buttonstil dupliziert. Das Alignment stellt sicher,
   dass der Button im flex-column-Block nicht auf volle Breite wachst. */
.case-workspace-hero-summary-edit {
    align-self: flex-start;
}

/* GEN7-UX-CASE-HOME-ZONE-B-EDIT-CTA-ALIGNMENT-I2: Read Mode von Zone B als
   Zeile aus Inhalt (links) und Bearbeitungsaktion (rechts). Der Text bleibt
   die Hauptinformation und behaelt die fuehrende Breite; die Aktion nutzt den
   bislang leeren rechten Raum. Reicht die Breite nicht, bricht die Aktion
   kontrolliert unter den Text -- kein Media Query, kein neuer Breakpoint,
   keine erzwungene Mini-Textspalte. */
.case-workspace-hero-summary-read {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    align-self: stretch;
    gap: var(--space-3);
    width: 100%;
}

.case-workspace-hero-summary-read[hidden] {
    display: none;
}

.case-workspace-hero-summary-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1 1 320px;
    min-width: 0;
    gap: 10px;
}

.case-workspace-hero-summary-action {
    flex: 0 0 auto;
    max-width: 100%;
}

/* GEN7-UX-CASE-HOME-ZONE-B-EDIT-MODE-COMPOSITION-I1: lokales Host Delta fuer
   den bewusst geoeffneten Editor. Die historische Dokumenteditor-Mindesthoehe
   erzeugte bei kurzen Inhalten eine Formularwand. Der Read Mode bleibt davon
   unberuehrt; der Detailbereich bleibt vertikal resizebar und voll editierbar. */
.case-workspace-hero-summary-edit-textarea {
    width: 100%;
    min-height: 144px;
    max-height: 520px;
    margin-top: 8px;
    padding: 16px 18px;
    border: 1px solid var(--border-default, #e5e7eb);
    border-radius: 10px;
    font: inherit;
    font-size: 14px;
    line-height: 1.65;
    color: inherit;
    resize: vertical;
    overflow-y: auto;
}

/* GEN5-FALLBESCHREIBUNG-EDIT-MODE-F1: display darf nur gelten, wenn das
   Element NICHT per [hidden] verborgen ist - ein unbedingtes "display:block/
   flex" hier wuerde die [hidden]-UA-Regel ueberschreiben (Autor-CSS schlaegt
   die User-Agent-Stylesheet-Regel bei gleicher Spezifitaet unabhaengig von
   der Deklarationsreihenfolge), wodurch Editor/Aktionen trotz hidden=true
   dauerhaft sichtbar blieben. */
.case-workspace-hero-summary-edit-textarea:not([hidden]) {
    display: block;
}

/* GEN7-UX-CASE-DESCRIPTION-STRUCTURED-MODEL-I1 (PO-CDF-05): die Rolle
   `description_summary` bleibt ein eigenes Element - die Grenze stammt weiter
   vom Datenbestandteil, nie von einer Zeilen-, Zeichen- oder Absatzgrenze.
   GEN7-FIX-CASE-DESCRIPTION-FONT-WEIGHT-I1 (PO-Entscheidung 2026-08-28): das
   Textgewicht 600 der Einleitung ist damit SUPERSEDED - der Beschreibungstext
   traegt jetzt das normale Fliesstextgewicht wie der Detailbestandteil
   (`.case-workspace-hero-summary` fuehrt ebenfalls kein eigenes Gewicht).
   Farbe ist der bestehende Fliesstextton der Falluebersicht (`--text-soft`,
   derselbe Token wie `.case-workspace-basis-subline`) statt des geerbten
   Volltons. Kein neues Token, keine neue Farbe, keine Layoutaenderung. */
.case-workspace-hero-summary-lead {
    margin: 0 0 10px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.6;
    color: var(--text-soft);
    white-space: pre-line;
}

.case-workspace-hero-summary-lead[hidden] {
    display: none;
}

.case-workspace-hero-summary-edit-fields:not([hidden]) {
    display: flex;
    flex-direction: column;
    width: min(100%, 760px);
    gap: var(--space-3);
}

.case-workspace-hero-summary-edit-field {
    display: block;
}

.case-workspace-hero-summary-edit-label {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-soft);
}

/* Die Einleitung ist kurz; sie braucht nicht die volle Detailhoehe. */
.case-workspace-hero-summary-edit-textarea-lead {
    min-height: 96px;
}

/* GEN7-UX-CASE-DESCRIPTION-EXPLICIT-TRANSFER-I1: der Originaltext ist
   Referenzmaterial, kein Eingabefeld. Er ist deshalb optisch als Quelle
   abgesetzt (gedaempfte Flaeche), bleibt aber vollstaendig selektierbar,
   damit der DSB Inhalte manuell uebernehmen kann. Keine neue Farbe und
   kein neues Token - die bestehende weiche Flaechenfarbe. */
.case-workspace-hero-summary-edit-textarea-source {
    min-height: 96px;
    background: var(--surface-soft, #f8fafc);
    color: var(--text-soft);
    cursor: text;
}

.case-workspace-hero-summary-edit-source .case-workspace-hero-summary-edit-label {
    color: var(--text-soft);
}

.case-workspace-hero-summary-edit-actions:not([hidden]) {
    display: flex;
    gap: var(--space-2);
    margin-top: var(--space-3);
}

.case-workspace-hero-summary-edit-save,
.case-workspace-hero-summary-edit-cancel {
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.case-workspace-hero-summary-edit-save {
    border: 0;
    color: #fff;
    background: var(--blue-text);
}

.case-workspace-hero-summary-edit-save:disabled,
.case-workspace-hero-summary-edit-cancel:disabled {
    opacity: 0.6;
    cursor: default;
}

.case-workspace-hero-summary-edit-cancel {
    border: 1px solid var(--border-default, #e5e7eb);
    background: transparent;
    color: inherit;
}

.case-workspace-hero-summary-edit-feedback {
    margin: 8px 0 0;
    font-size: 12px;
    color: var(--text-muted, #64748b);
}

/* GEN4-WORKSPACE-HERO-POLISH-R6 STEP 4a: fallubersicht.html .desc definiert
   keine max-width - der Text nutzt die volle Kartenbreite. Die zuvor gesetzte
   max-width:68ch (GEN4-HERO-POLISH-R1) war eine erfundene Textspalten-
   Begrenzung ohne Referenzdeckung und wurde entfernt (siehe vorheriger
   .case-workspace-hero-summary-Block). Kein Ersatzwert - Inhaltsfluss nutzt
   den vollen Card-Innenraum. */

/* Divider zwischen Fallbeschreibung und Metadaten (GEN4-HERO-STRUCTURE-
   POLISH-R2a) - rein strukturelles Trennelement, kein Inhalt. Uebernimmt
   die Trennlinie, die zuvor als border-top auf der ersten Metadatenreihe
   lag. */
.case-workspace-hero-divider {
    height: 1px;
    background: #e5e7eb;
    /* GEN4-HERO-FINAL-ALIGNMENT-R1: kein Eigen-Margin mehr - der
       Kartenrhythmus kommt jetzt vollstaendig aus dem Flex-Gap der
       Hero-Card (28px, siehe .case-workspace-hero). Der fruehere
       margin-Wert (24px, spaeter F1-Override 16px) addierte sich zum
       Gap und machte die Abstaende ungleichmaessig. */
    margin: 0;
    flex: 0 0 auto;
    width: 100%;
}

/* HeroRight: vorher Statuszone + Aktionsbereich nebeneinander (Abschnitt
   1.5-Entscheidung aus GEN4-HERO-IMPLEMENTATION-R1). GEN4-WORKSPACE-HERO-
   LAYOUT-R4 STEP 8 (fallubersicht.html .header-actions-inner) verlangt
   explizit gestapelt: Statuslabel oben, Statuspill darunter, Buttons-Zeile
   darunter - alles rechtsbuendig. Diese explizite Block-Anweisung
   ueberschreibt die aeltere Nebeneinander-Entscheidung fuer diesen Block. */
.case-workspace-hero-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 0;
}

.case-workspace-hero-status-card {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    /* GEN4-WORKSPACE-HEADER-POLISH-F1: hero.png vermessen - Abstand
       Statuslabel -> Statuspille ~8 CSS (vorher 4px, Live-Messung
       2026-07-09). */
    gap: 8px;
}

.case-workspace-hero-status-label {
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.2;
    text-align: right;
}

.case-workspace-hero-action-group {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    /* GEN4-WORKSPACE-HEADER-POLISH-F1: hero.png vermessen - Abstand
       Statuspille -> Button-Zeile ~17 CSS (vorher 10px aus
       fallubersicht.html; hero.png hat lt. Referenz-Vorrangregel
       PROJECT_INDEX Abschnitt 4a Vorrang vor der HTML-Referenz). */
    margin-top: 16px;
}

/* GEN4-WORKSPACE-HEADER-POLISH-F1: der Overflow-Trigger (global 28x28,
   geteilt mit den Tabellenzeilen) wirkt in der Hero-Button-Zeile als
   Ausreisser - hero.png zeigt den Punkte-Button auf gleicher visueller
   Hoehe wie Bearbeiten/Loeschen (~34-36 CSS). Hero-lokal gescoped, die
   globale Trigger-Optik in Tabellen/Listen bleibt unveraendert. */
.case-workspace-hero-more-menu .overflow-menu-trigger {
    width: 34px;
    height: 34px;
    min-height: 34px;
}

.case-workspace-hero-action,
.case-workspace-hero-more-menu {
    min-height: 34px;
    padding: 7px 12px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.15;
}

.case-workspace-hero-action.is-danger {
    color: var(--red-text);
    border-color: var(--red-border);
    background: var(--red-soft);
}

/* GEN4-HERO-STRUCTURE-POLISH-R2a: Metadatenzone innerhalb der HeroCard -
   MetadataGrid (4 Spalten) direkt unter dem Divider, FooterMeta (2 Spalten)
   direkt darunter. Die Trennlinie zwischen Fallbeschreibung/Titel und
   Metadaten uebernimmt jetzt .case-workspace-hero-divider (vorher: border-top
   auf MetaPrimary) - kein doppelter Divider. */
.case-workspace-hero-meta {
    display: grid;
    gap: var(--space-3) var(--space-6);
}

/* GEN4-HERO-FINAL-ALIGNMENT-R1: hero.png zeigt die Metadaten als zwei
   getrennte Dreier-Reihen mit Trennlinie dazwischen - jede Reihe ist jetzt
   ein eigenes 3-Spalten-Grid (siehe buildCaseHeader()), der Reihenabstand
   kommt aus dem Karten-Gap (28px) plus Zwischenlinie statt aus einem
   row-gap. Der Spalten-Gap (24px) entspricht der bisherigen Basis; der
   row-gap greift nur noch, wenn eine Reihe im Responsive-Fall umbricht. */
.case-workspace-hero-meta-primary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    /* GEN4-WORKSPACE-COMPACT-PROFESSIONAL-SCALE-F1: row-gap 20px -> 14px
       (greift nur beim Responsive-Umbruch). */
    gap: 14px 24px;
}

@media (max-width: 1100px) {
    .case-workspace-hero-meta-primary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .case-workspace-hero-meta-primary {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* GEN4-HERO-FINAL-VISUAL-ALIGNMENT-F1: Icon links, Label/Wert-Block daneben
   (Zielbild STEP 5 Meta-Zelle). Icon ist reine Deko (aria-hidden), keine
   neue Datenquelle. */
.case-workspace-hero-meta-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
}

/* GEN4-HERO-FINAL-ALIGNMENT-R1: Meta-Icon konsolidiert (vorher vier
   uebereinanderliegende Bloecke: Basis 28px-Chip, F1 22px-Chip, F2 18px
   flach, F2-Pixelkorrektur 24px flach - gerendert hat stets nur die
   letzte). Finalwert = der gerenderte Stand: flaches Icon ohne Chip-Flaeche,
   24px, an der ersten Textzeile ausgerichtet. */
/* GEN4-HERO-META-TYPOGRAPHY-F1: Informationshierarchie Werte > Badges >
   Labels > Icons. Icon tritt hinter das Label zurueck (heller Grau-Blau-Ton
   #94a3b8, bereits etablierte Farbe im Stylesheet, plus kleinere Glyphe) -
   das Icon war vorher farbgleich mit dem Label und damit ein zu starker
   Blickfang. */
.case-workspace-hero-meta-icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: transparent;
    color: #94a3b8;
    font-size: 15px;
    line-height: 1;
}

.case-workspace-hero-meta-text {
    display: flex;
    flex-direction: column;
    /* GEN4-HERO-FINAL-ALIGNMENT-R1: hero.png vermessen - Abstand
       Label -> Wert ~6-7 CSS (vorher 4px). */
    /* GEN4-HERO-META-TYPOGRAPHY-F1: 6px -> 8px, mehr Weissraum zwischen
       Label und Wert staerkt die Trennung Orientierung/Information. */
    gap: 8px;
    min-width: 0;
}

/* GEN4-HERO-FINAL-ALIGNMENT-R1: Label konsolidiert (vorher vier verteilte
   Bloecke). Neu gegenueber dem bisherigen Rendering: text-transform
   uppercase - hero.png zeigt die Labels durchgaengig versal (MANDANT,
   FALL-ID, ...), der Code renderte sie bisher gemischt (Live-Messung
   2026-07-09: text-transform none). */
/* GEN4-HERO-META-TYPOGRAPHY-F1: Labels sind Orientierungselemente, nicht
   Information - sie treten zurueck (heller: #64748b -> #94a3b8, leichter:
   600 -> 500, kleiner: 12px -> 11px, dafuer etwas mehr Letterspacing fuer
   die Lesbarkeit der Versalien). Die Werte dominieren. */
.case-workspace-hero-meta-label {
    color: #94a3b8;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.06em;
    line-height: 1.4;
    text-transform: uppercase;
    white-space: nowrap;
}

/* GEN4-HERO-FINAL-ALIGNMENT-R1: Wert konsolidiert (vorher fuenf verteilte
   Bloecke; zuletzt gerendert 14px aus dem F2-Layer). 15px/500 nach der
   fallubersicht.html-/hero.png-Messung (Werte optisch auf Summary-Groesse);
   mehrzeiliger Umbruch (z. B. lange Fall-ID) bleibt erlaubt wie im
   Referenzbild. */
/* GEN4-HERO-META-TYPOGRAPHY-F1: Werte = primaere Information. Semibold
   statt Medium (500 -> 600) fuer eindeutige Leseführung; Groesse moderat
   auf 14px reduziert (Product-Owner-Vorgabe "Schriftgroesse generell
   kleiner") - die Dominanz kommt jetzt aus Gewicht/Farbe, nicht aus der
   Groesse. */
.case-workspace-hero-meta-value {
    color: #0f172a;
    /* GEN4-WORKSPACE-COMPACT-PROFESSIONAL-SCALE-F1: 14px -> 13px
       (kompaktere Skala, Hierarchie Werte > Labels bleibt ueber
       Gewicht/Farbe erhalten). */
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    min-width: 0;
    white-space: normal;
}

/* GEN4-HERO-FINAL-ALIGNMENT-R1: .case-workspace-hero-bottom-space entfernt -
   das Element existiert nicht mehr im DOM (buildCaseHeader), der untere
   Kartenabstand kommt aus dem Card-Padding (28px, Referenzmessung ~37 CSS
   inkl. Zeilenrest der letzten Meta-Reihe). */

/* GEN4-HERO-FINAL-ALIGNMENT-R1: Hier lagen zuvor zwei vollstaendige
   Override-Kampagnen uebereinander (GEN4-HERO-TYPOGRAPHY-POLISH-F1
   "kompakter" und GEN4-HERO-REFERENCE-ALIGNMENT-FINAL-F1/
   GEN4-HERO-PIXEL-ALIGNMENT-F2 "referenztreu") - insgesamt ~25 Regeln, die
   sich teils gegenseitig, teils gar nichts ueberschrieben: die Titel-Regeln
   (24/26/25px) lagen VOR dem spaeter in der Datei stehenden R4-Basisblock
   (30px/600) und waren komplett wirkungslos (Live-Messung 2026-07-09).
   Alle Finalwerte sind jetzt in die jeweiligen Basisbloecke oben
   konsolidiert; je Klasse existiert nur noch genau eine Regel. */

.case-workspace-back-button {
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.15;
}

.case-workspace-back-button-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    font-size: 11px;
    line-height: 1;
}

/* GEN4-HERO-FINAL-ALIGNMENT-R1: Die Hero-Card traegt ebenfalls die Klasse
   .case-workspace-header und wurde von diesem generischen 6px-Gap bisher
   unbeabsichtigt mitueberschrieben (der dokumentierte Hero-Innenrhythmus,
   frueher 24px, jetzt 28px, war dadurch nie wirksam - Live-Messung
   2026-07-09: real 6px). Expliziter Ausschluss statt Verschieben der
   Hero-Regeln, damit die thematische Gruppierung der Datei erhalten bleibt. */
.case-workspace-section,
.case-workspace-header:not(.case-workspace-hero),
.case-workspace-rail {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* GEN4-WORKSPACE-INTERACTION-F1: Right Rail bleibt beim Scrollen sichtbar,
   analog zum bestehenden Sticky-Muster von .sidebar (top: 0 innerhalb des
   scrollenden .workbench-main-Containers). Eigener Scrollbereich per
   max-height/overflow-y, damit eine lange Rail nicht ueber den Viewport
   hinauswaechst oder die Topbar verdeckt. */
.case-workspace-rail {
    position: sticky;
    top: 12px;
    z-index: 4;
    align-self: start;
    max-height: calc(100vh - var(--topbar-height) - 40px);
    overflow-y: auto;
    padding-bottom: 8px;
    scrollbar-gutter: stable;
}

/* GEN4-UI-WORKSPACE-U8: Right-Rail-Experience - dieselbe Renderer-Ausgabe
   (renderContextPanel(), unveraendert) wirkt aktuell wie ein zweiter
   Arbeitsbereich, weil .context-panel-section die generische Gen3-Kartenregel
   (section-Selektor Zeile ~8294: --line/--r-5/--sh-2-Schatten) erbt - dieselbe
   kraeftige Schattenoptik wie Hauptkarten, obwohl der Hauptbereich seit U3/
   GEN4-UI-POLISH-F1 bewusst schattenfrei ist. Diese Regeln praezisieren
   ausschliesslich auf .case-workspace-rail (Gen4), damit der klassische
   Gen3-Right-Rail (.right-rail .context-panel-section) unveraendert bleibt.
   Kein DOM-Eingriff, kein neuer Block, keine Reihenfolge-/Filterlogik,
   F5-Kontextsteuerung (renderContextPanel-Aufruf, RAIL_SECTION_BLOCK_ORDER)
   unveraendert. */
.case-workspace-rail .context-panel {
    display: grid;
    gap: 12px;
}

/* WORKSPACE-RIGHT-RAIL-POLISH-F19: GEN4_VISUAL_SPEC.md Abschnitt 5 verlangt
   fuer die Right-Rail-Karten "dieselbe Karten-Grammatik ... wie der
   Hauptbereich": Radius 12px, Hintergrund #FFFFFF, Border #E5E7EB -
   identische Werte wie WORKSPACE-CARD-GRAMMAR-GLOBAL-F17 fuer den
   Hauptbereich. Vorher: --radius-md (14px), --surface-soft (#fafbfc statt
   reinem Weiss), --border-subtle (#eef0f3). Scope bleibt auf
   .case-workspace-rail begrenzt, der klassische Gen3-Right-Rail
   (.right-rail .context-panel-section) ist davon unberuehrt. */
.case-workspace-rail .context-panel-section {
    padding: 0;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: none;
    overflow: hidden;
}

/* Kompaktere, zurueckhaltendere Ueberschrift - liest sich als Kontexthinweis,
   nicht als gleichrangiger Sektionstitel des Hauptbereichs
   (.case-workspace-section-title bleibt bei 15px/700). Chevron/Toggle-Verhalten
   unveraendert. */
.case-workspace-rail .context-panel-header {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-soft);
    letter-spacing: 0.01em;
}

.case-workspace-rail .context-panel-count {
    background: var(--surface);
    color: var(--text-soft);
    border: 1px solid #e5e7eb;
    font-weight: 600;
}

.case-workspace-rail .context-panel-section-toggle,
.case-workspace-rail .context-panel-section > .context-panel-head {
    min-height: 52px;
    padding: 12px 16px;
    background: transparent;
}

.case-workspace-rail .context-panel-section-body {
    display: grid;
    gap: 12px;
    padding: 0 16px 16px;
    /* GEN7-UX-WORKBENCH-VISUAL-HIERARCHY-AND-SURFACE-CLEANUP-I1 (E):
       Der Divider sass unmittelbar unter dem Section-Header INNERHALB einer
       bereits vollstaendig berandeten Karte (24px Radius) — Ueberschrift und
       Karte trennen bereits. Die Fallidentitaets-Karte hatte ihn aus genau
       diesem Grund schon entfernt; die Regel gilt jetzt einheitlich fuer
       alle Rail-Karten (§ 11: die Rail bleibt besonders ruhig). */
    border-top: 0;
}

/* Bewusst redundant beibehalten: I3/I12 pruefen genau diesen Selektor als
   eingefrorenen Vertrag ("keine Trennlinie oberhalb von MANDANT"). Die
   allgemeine Regel darueber erfuellt die Absicht bereits; der fremde
   Vertrag wird nicht umgeschrieben, nur weiter erfuellt. */
.case-workspace-rail
.context-panel-section--case-overview
.context-panel-section-body {
    border-top: 0;
}

.case-workspace-rail .context-panel-section-body[hidden] {
    display: none;
}

/* GEN7-UX-RIGHT-RAIL-CONSOLIDATION-AND-RISK-CLOSURE-I11: Die beiden
   orientierenden Karten verwenden dieselbe ruhige Innenraum-Grammatik. Risiko
   ist dabei bewusst kein Toggle-Block: die bestehende Collapse-Grammatik der
   anderen Rail-Karten bleibt unveraendert. */
.case-workspace-rail .context-panel-section--case-overview,
.case-workspace-rail .context-panel-section--risk {
    padding: 18px 20px 20px;
    gap: 14px;
}

.case-workspace-rail .context-panel-section--case-overview .context-panel-head:not(.context-panel-head-action),
.case-workspace-rail .context-panel-section--risk .context-panel-head {
    min-height: 20px;
    padding: 0;
}

.case-workspace-rail .context-panel-head-action {
    width: 100%;
    min-height: 24px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.case-workspace-rail .context-panel-head-action:focus-visible {
    outline: 2px solid var(--blue-text);
    outline-offset: 3px;
    border-radius: 4px;
}

.case-workspace-rail .context-panel-head-action:hover .context-panel-header {
    color: var(--blue-text);
}

.case-workspace-rail .context-panel-section-body--risk {
    display: grid;
    gap: 10px;
    padding: 0;
    border-top: 0;
}

.case-workspace-rail .context-panel-section--risk .context-rail-risk-status {
    margin: 0;
    color: var(--amber);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
}

.case-workspace-rail .context-panel-section--risk .context-panel-meta-label {
    margin: 4px 0 0;
}

.case-workspace-rail .context-panel-section--risk .context-panel-meta {
    line-height: 1.5;
}

/* GEN7-UX-RIGHT-RAIL-CASE-OVERVIEW-VISUAL-ALIGNMENT-I3: Die Fallübersicht
   erbte zwei Innenabstaende, die die Risiko-Karte nicht hat, und wirkte
   dadurch enger und technischer:

   - `.context-panel-section-toggle` bringt im Rail `padding: 12px 16px` und
     `min-height: 52px` mit,
   - die generische `.context-panel-section-body` bringt `padding: 0 16px 16px`.

   Beides addierte sich auf die 20px Kartenpolsterung der gemeinsamen
   I11-Regel: Titel und Werte standen 36px vom Kartenrand, waehrend Risiko bei
   20px steht, und der Kopf war 52px statt 20px hoch.

   Hier wird kein neuer Abstand erfunden, sondern die doppelte Polsterung
   neutralisiert. Danach stammt der gesamte Innenraum beider Karten aus
   derselben einen Regel oben (`padding: 18px 20px 20px; gap: 14px`). Die
   Werte 20px/10px sind exakt die bereits fuer Risiko gesetzten
   (`--risk .context-panel-head`, `--body--risk`), keine optischen Hacks.

   Die Collapse-Grammatik bleibt unveraendert: Der Kopf bleibt ein Button mit
   `aria-expanded`, weil die Karte tatsaechlich einklappbar ist und drei
   Schwesterkarten der Rail dieselbe Grammatik fuehren (siehe I3-Bericht).
   `border-top: 0` oberhalb von MANDANT bleibt bestehen (I12-Contract). */
.case-workspace-rail
.context-panel-section--case-overview
.context-panel-section-toggle {
    min-height: 20px;
    padding: 0;
}

.case-workspace-rail
.context-panel-section--case-overview
.context-panel-section-body {
    padding: 0;
    gap: 10px;
}


.case-workspace-rail .context-panel-chevron {
    font-size: 12px;
}

/* Maßnahmen-Vorschauzeilen in der Rail folgen derselben schattenfreien
   Gen4-Sprache statt der Gen3-.wb-card-Schattenvariable. */
.case-workspace-rail .context-measure-item {
    box-shadow: none;
    border-color: #e5e7eb;
}

.case-workspace-rail .context-measure-item--clickable:hover {
    box-shadow: none;
}

.case-workspace-process-status {
    gap: 12px;
}

.case-workspace-status-list {
    display: grid;
    gap: 8px;
}

.case-workspace-status-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

/* GEN7-UX-DSB-DECISION-SURFACE-CARD-CONVERGENCE-I1 — Eintragsreihe der Karte
   "Übergabe & Review". Der umgebende `.case-workspace-status-list` ist ein
   Grid und machte aus jedem Direkteinstieg eine vollbreite Zeile; die
   Eintraege stehen jetzt in einer umbrechenden Reihe nebeneinander.
   Ausschliesslich Layout: die Eintraege bringen ihre Optik unveraendert aus
   der bestehenden Aktionsfamilie (.wb-action--nav/.wb-action--compact) mit -
   kein neues Token, keine neue Farbe, keine Chip-Grammatik. Der Abstand ist
   derselbe 8px-Wert, den die Liste selbst bereits fuehrt. */
.case-workspace-review-itemrow {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

/* GEN7-UX-DSB-DECISION-FLAT-CARD-GRAMMAR-I1: Eine aeussere Review-Card,
   darin ausschliesslich Sections und Rows. Alle Fachwerte und Aktionen
   bleiben bei ihren bestehenden Ownern; diese Regeln ordnen nur die
   Leserichtung Bereich | Zustand | Aktion. */
/* GEN7-UX-DSB-DECISION-REVIEW-COMPACT-CONVERGENCE-I1: die Karte fuehrt nur
   noch zwei Abschnitte (Pruefbedarf, Übergabe); der Rhythmus folgt dem
   bereits auf der Flaeche gefuehrten 12px-Wert statt 16px. */
.case-workspace-decision-review-body {
    gap: 12px;
}

/* GEN7-UX-DSB-DECISION-REVIEW-COMPACT-CONVERGENCE-I1: der Reviewstatus-Block
   ist ersatzlos entfallen (er wiederholte die Kopfpille). Seine Regeln sind
   mit ihm entfernt -- kein toter Selektor bleibt zurueck. */


/* GEN7-UX-DSB-DECISION-INFORMATION-HIERARCHY-CONVERGENCE-I1 (Root Cause 1)
   Die beiden Innenbereiche sind `<section>`-Elemente und erbten damit ueber
   die globale Elementregel `section { border/background/radius/shadow/padding }`
   die vollstaendige Kartenoptik -- die vom PO gemeldete Box-in-Box. Die
   Flach-Grammatik des Vorblocks setzte nur Layout und hat diese Vererbung nie
   aufgehoben. Korrigiert an der EIGENEN Regel; die is-handover-Variante
   darunter bringt ihren Trennstrich unveraendert selbst mit. */
.case-workspace-decision-review-section {
    display: grid;
    gap: 8px;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.case-workspace-decision-review-section.is-handover {
    grid-template-columns: minmax(0, 1fr) auto;
    /* Genau EIN Separator in der Karte -- er trennt Pruefbedarf von Übergabe. */
    padding-top: 12px;
    border-top: 1px solid var(--line);
    align-items: center;
}

.case-workspace-decision-review-handover-title {
    grid-column: 1 / -1;
}

/* GEN7-UX-DSB-DECISION-REVIEW-COMPACT-CONVERGENCE-I1
   Der Pruefbedarf war eine Liste vollbreiter Zeilen und beanspruchte damit
   den groessten Teil der Karte. Er ist jetzt eine kompakte Statusuebersicht:
   die Bereiche stehen nebeneinander und brechen erst um, wenn der Platz
   wirklich fehlt. `auto-fit` traegt Desktop, schmalen Desktop und Mobile mit
   EINER Regel -- es entsteht keine eigene Mobile-Komponente und kein
   zusaetzlicher Breakpoint. Die Zahl der Bereiche bleibt dynamisch (0..6),
   weil der bestehende Projektionsowner sie liefert. */
.case-workspace-decision-review-needs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    gap: 8px 12px;
    min-width: 0;
}

/* GEN7-UX-DSB-DECISION-REVIEW-COMPACT-CONVERGENCE-I1
   Aus der vollbreiten Dreispaltenzeile wird eine kompakte Statuskachel:
   Bereich ueber Zustand, linksbuendig. Die Kachel bleibt derselbe Button auf
   demselben bestehenden Navigationsowner -- Hover, Fokusring und Radius
   kommen unveraendert aus der Aktionsfamilie.
   Der Kartenscope bleibt zwingend: die Regel stuende sonst auf (0,1,0) und
   verloere gegen die spaeter im Dokument stehende Basisregel der
   Aktionsfamilie (Inline-Flex-Grundform, min-height 28px, font-size 12px).
   Genau dieser Spezifitaetsfehler hatte das vorherige Raster stumm
   wirkungslos gemacht. */
.case-workspace-decision-review-card .case-workspace-decision-review-need {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 2px;
    width: 100%;
    min-width: 0;
    min-height: 40px;
    padding: 6px 8px;
    border-radius: var(--r-2);
    font-size: 13px;
    text-align: left;
}

.case-workspace-decision-review-need-area,
.case-workspace-decision-review-need-state {
    width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    line-height: 1.3;
}

.case-workspace-decision-review-need-area {
    color: var(--ink);
    font-weight: 600;
}

/* Der Zustand bleibt der unveraenderte Wert des bestehenden Owners und traegt
   deshalb auch laengere Fachaussagen ("11 nicht entschieden"). Er darf leiser
   sein als der Bereich, aber nicht kleiner als die uebrige Sekundaerschrift
   der Flaeche. */
.case-workspace-decision-review-need-state {
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
}

.case-workspace-decision-review-handover-facts {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.case-workspace-decision-review-handover-action {
    align-self: end;
}

@media (max-width: 860px) {
    /* GEN7-UX-DSB-DECISION-REVIEW-COMPACT-CONVERGENCE-I1: die Kacheln
       brechen ueber `auto-fit` bereits von selbst um; schmal bekommen sie
       nur das groessere Touch-Ziel. Keine eigene Mobile-Komponente. */
    .case-workspace-decision-review-card .case-workspace-decision-review-need {
        min-height: 44px;
        justify-content: center;
    }

    .case-workspace-decision-review-section.is-handover {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }

    .case-workspace-decision-review-handover-action {
        justify-self: stretch;
    }

    .case-workspace-decision-review-submit {
        width: 100%;
    }
}

.case-workspace-status-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.case-workspace-status-label {
    min-width: 0;
    color: var(--text);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.35;
}

.case-workspace-status-subline {
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.35;
}

/* GEN7-SAAS-03-F2: minimale Untergruppentrennung innerhalb einer Karte
   (Team & Beteiligte), damit technische Fallzuordnung und fachliche
   Beteiligte klar getrennt lesbar bleiben, ohne eine zweite Karte oder ein
   neues Kartenlayout einzufuehren. */
.case-workspace-subgroup-title {
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    margin-top: 4px;
}

.case-workspace-status-pill {
    flex: 0 0 auto;
}

/* GEN7-SAAS-04-F1: Mutationssteuerelemente fuer die Fallzuordnung
   (Rollenwechsel/Entfernen/Verantwortlich-Wechsel/Hinzufuegen). Reine
   Spacing-/Layout-Ergaenzung; Button-/Pill-/Formulargrammatik bleibt
   unveraendert wiederverwendet (workbench-ghost-button, bestehende
   input/select-Basis). */
.case-workspace-membership-row {
    flex-wrap: wrap;
    row-gap: 6px;
}

.case-workspace-membership-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    flex: 0 0 auto;
}

.case-workspace-membership-action {
    font-size: 12px;
    padding: 4px 10px;
}

.case-workspace-membership-feedback {
    flex-basis: 100%;
    color: var(--danger, #b3261e);
    font-size: 12px;
}

.case-workspace-membership-add-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
}

.case-workspace-membership-add-input,
.case-workspace-membership-add-select {
    /* GEN7-SAAS-04-F2: Es existiert keine globale bare input/select-Basis -
       die Steuerelemente erschienen daher in Browser-Defaultchrome. Hier
       werden ausschliesslich die bereits etablierten Werte der bestehenden
       Eingabegrammatik (.all-cases-search-input) wiederverwendet; keine
       neuen Tokens, keine neue visuelle Regel. */
    min-height: 32px;
    padding: 4px 10px;
    border-radius: 8px;
    background: #ffffff;
    border: 1px solid var(--border-subtle);
    font-size: 12.5px;
    color: inherit;
}

.case-workspace-membership-add-input {
    flex: 1 1 200px;
    min-width: 0;
}

.case-workspace-membership-add-input::placeholder {
    color: var(--muted-2);
}

.case-workspace-membership-add-select {
    flex: 0 0 auto;
}

/* GEN4-WORKSPACE-HERO-LAYOUT-R4: fallubersicht.html .pill (STEP 5
   Pflichtwerte: padding 5px 12px, font-size 13px, font-weight 500, gap 7px;
   .pill-dot: 7px). Scoped auf .case-workspace-header-wrap (Statuspill in
   HeaderRow + Einstufungs-/Statuspill in der HeroCard-Metadatenzeile), damit
   die global geteilte .wb-status-pill-Basis (verwendet in Fallliste,
   DSB-Entscheidung u.a.) unveraendert bleibt - keine neue globale
   Pill-Groesse. */
.case-workspace-header-wrap .case-workspace-status-pill {
    padding: 5px 12px;
    min-height: 0;
    gap: 7px;
    font-size: 13px;
    font-weight: 500;
}

.case-workspace-header-wrap .case-workspace-status-pill::before {
    width: 7px;
    height: 7px;
}

/* GEN4-U5: Prozessstatus als Arbeitsplatz — Handlungszone und Untergliederung.
   Der nächste Prüfschritt wird als ruhige, geschlossene Fläche vorangestellt;
   Prüfschritte und fachliche Einschätzung erhalten dezente Zwischentitel.
   Nur bestehende Tokens, keine Icons, keine neuen Farben, keine Wireframes. */
.case-workspace-next-step {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: var(--surface-soft);
    border: 1px solid #e5e7eb;
    border-radius: var(--radius-sm);
}

.case-workspace-next-step-label {
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.4;
    white-space: nowrap;
}

.case-workspace-next-step-value {
    min-width: 0;
    color: var(--text-strong);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.35;
}

.case-workspace-next-step .case-workspace-back-button {
    flex: 0 0 auto;
}

.case-workspace-document-overview {
    align-items: flex-start;
}

.case-workspace-document-list {
    display: grid;
    gap: 8px;
}

.case-workspace-document-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    background: var(--surface);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
}

.case-workspace-document-main {
    min-width: 0;
    display: grid;
    gap: 6px;
    flex: 1 1 auto;
}

.case-workspace-document-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.case-workspace-document-meta-item {
    min-width: 0;
}

.case-workspace-document-open {
    flex: 0 0 auto;
}

/* GEN4-WORKSPACE-V2-TYPOGRAPHY-AND-SPACING-F1: letter-spacing auf 0.02em
   vereinheitlicht (war 0.06em), damit alle vier zurueckgestuften
   Eyebrow-Ueberschriften im Workspace (#block-questions .questions-block-title,
   .legal-context-sidebar-title, .doc-shell-title im Host, hier) denselben
   Wert nutzen. Reine Wertangleichung, keine Struktur-/Groessen-/Farbaenderung. */
.case-workspace-subheading {
    margin: 10px 0 0;
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    line-height: 1.3;
}

/* GEN4-HERO-FINAL-ALIGNMENT-R1: Die frueher hier liegenden drei
   .case-workspace-header-title-Bloecke (U2 20px, F12 24px, R4 30px/600/
   max-width:560px) wurden in die eine finale Regel bei den Hero-Layoutregeln
   (.case-workspace-hero-left) konsolidiert. Der R4-Block gewann bis dahin
   die Kaskade gegen ALLE frueher in der Datei stehenden Polish-Werte -
   der Titel renderte real 30px/600 und brach durch max-width:560px
   dreizeilig um (Live-Messung 2026-07-09). */

/* GEN4-UI-WORKSPACE-U3: konsistente Gen4-Sektionssprache - größerer,
   einheitlicher Radius (--radius-lg, deckungsgleich mit der U1-Hero-Card und
   dem U2-Navigationscontainer) und ein weicherer Rand (--border-subtle statt
   --border) statt der bisherigen, kartigeren Optik. Mehr Innenabstand gibt
   dem Inhalt mehr Arbeitsfläche, ohne die Gesamtsektion höher wirken zu
   lassen als vorher (Padding-Delta bleibt gering). */
.case-workspace-section {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px 22px 18px;
    background: var(--surface);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    scroll-margin-top: 120px;
}

/* WORKSPACE-GLOBAL-SPACING-F20: identische Begruendung wie bei
   .case-workspace-hero oben - globaler Innenabstands-Grundwert 24px statt
   asymmetrisch 20px/22px/18px. Gilt fuer alle 5 Sections + die per
   .case-workspace-hosted-section geteilte Basisklasse (Massnahmen/
   DSB-Entscheidung/Dokumentation), automatisch geerbt, kein separater
   Override noetig. */
.case-workspace-section {
    padding: 24px;
}

/* WORKSPACE-CARD-GRAMMAR-GLOBAL-F17: GEN4_VISUAL_SPEC.md Abschnitt 5
   (Card-Grammatik) nennt fuer alle Karten exakt Radius 12px, Border #E5E7EB,
   kein sichtbarer Schatten - identische Werte wie bereits in
   WORKSPACE-HERO-FINAL-POLISH-F12/WORKSPACE-STEPPER-FINAL-POLISH-F13
   verwendet. .case-workspace-hosted-section (Massnahmen/DSB-Entscheidung/
   Dokumentation) traegt dieselbe Basisklasse und erbt den Fix automatisch -
   kein separater Override noetig. Globale Tokens (--radius-lg,
   --border-subtle) bleiben unveraendert (wuerden andere, nicht in diesem
   Block erlaubte Bereiche mitveraendern); stattdessen scope-lokaler
   Override auf .case-workspace-section selbst. */
.case-workspace-section {
    border-radius: 12px;
    border-color: #e5e7eb;
}

/* WORKSPACE-CARD-GRAMMAR-GLOBAL-F17: .is-active-workspace-section faerbte
   den Rahmen der jeweils aktiven Section teal und legte einen Schatten
   darueber - ein Relikt aus der Zeit vor der finalen Bestaetigung von
   Single-Active (WORKSPACE-ACCORDION-PRODUCT-OWNER-QUESTIONS-F16): die Klasse
   wird von genau der einen, immer sichtbaren Section getragen (siehe
   render_case_workspace_shell.js sectionEl.classList.add(...)), es gibt
   nichts mehr, wovon sie sich visuell absetzen muesste. Widersprach zudem
   Card-Grammatik ("kein sichtbarer/starker Schatten", einheitliche Border
   #E5E7EB fuer alle Karten). Regel entfernt, Klasse bleibt im JS/DOM
   bestehen (kein Renderer-Eingriff), ist jetzt nur folgenlos. */

/* WORKSPACE-PROCESS-STATUS-VISUAL-F10: "Prozessstatus" ist seit
   WORKSPACE-PROCESS-STATUS-CONSOLIDATION-F9 ein reiner Gruppierungs-Wrapper um
   zwei bereits eigenständig gerahmte Bereiche (Beleglage-Wrapper mit
   Prüffragen/Rechtsgrundlagen-Hosts, Verarbeitungstätigkeit-Host). Ohne diese
   Regel würde der äußere Wrapper eine weitere, umschließende Karte um bereits
   gerahmte Karten legen (Card-in-Card). Der Wrapper trägt daher selbst keine
   Kartenoptik mehr; Titel/Hinweistext bleiben unverändert sichtbar, die
   eigentliche Kartenwirkung kommt allein von den untergeordneten
   .case-workspace-hosted-section-Elementen (identisches Muster wie
   GEN4-UI-WORKSPACE-U3 bei .case-workspace-evidence). */
.case-workspace-prozessstatus {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    gap: 16px;
}

/* A-PC-MEASURES-FOCUS-MODEL-F1: die Maßnahmen-Section ist im Workspace jetzt
   dieselbe Workbench-Komposition wie der Prozessstatus (Arbeitsliste-Karte +
   Fokus-Karte). Der Hosted-Wrapper traegt daher — identisches F10-/U3-Muster —
   selbst keine Kartenoptik mehr; die Kartenwirkung kommt von Worklist und
   Fokuspanel-Inhalt. */
.case-workspace-hosted-section[data-host-section="maßnahmen"] {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}

/* GEN7-UX-WORKBENCH-VISUAL-HIERARCHY-AND-SURFACE-CLEANUP-I1 (D: Box-in-Box)
   Dieselbe Wrapper-Regel fehlte fuer "entscheidung" und "dokumentation".
   Real gemessen legten beide Hosts eine weisse Karte (12px Radius, 24px
   Padding) um Kinder, die bereits selbst weisse Karten sind: vier
   .dsb-decision-section bzw. .doc-workbench-worklist + .case-workspace-
   workpanel. Weiss-in-Weiss, getrennt nur durch eine 1px-Linie — die Linie
   trug also keine Grenze, sondern wiederholte eine bereits vorhandene.

   Kein neues Muster: identisch zu F10 (.case-workspace-prozessstatus), U3
   (.case-workspace-evidence) und A-PC-MEASURES-FOCUS-MODEL-F1 (maßnahmen).
   Ueberschrift und Hinweistext des Wrappers bleiben unveraendert sichtbar;
   die Kartenwirkung kommt allein von den untergeordneten Flaechen. */
.case-workspace-hosted-section[data-host-section="entscheidung"],
.case-workspace-hosted-section[data-host-section="dokumentation"] {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}

/* GEN4-UI-WORKSPACE-U3: "Beleglage" ist ein reiner Gruppierungs-Wrapper um
   zwei vollständige, bereits eigenständig gerahmte Host-Sektionen (Prüffragen,
   Rechtsgrundlagen). Ohne diese Regel würde der äußere Wrapper eine dritte,
   umschließende Karte um zwei bereits gerahmte Karten legen (Card-in-Card).
   Der Wrapper trägt daher selbst keine Kartenoptik mehr; Titel/Hinweistext
   bleiben unverändert sichtbar, die eigentliche Kartenwirkung kommt allein
   von den beiden untergeordneten .case-workspace-hosted-section-Elementen. */
/* GEN4-UI-WORKSPACE-U5: gemeinsame Klammer für Prüffragen + Rechtsgrundlagen.
   Ein einzelner, dezenter Akzentstrich links (kein umlaufender Rahmen, keine
   Fläche, kein Schatten) bindet beide bereits eigenständig gerahmten
   Host-Sektionen optisch zu einem Evidence-Bereich, ohne eine dritte Karte zu
   erzeugen (die Fläche/der Rahmen des Wrappers selbst bleibt weiterhin
   neutral). Nur bestehende Tokens (--teal-border), keine neue Farbrolle. */
.case-workspace-evidence {
    padding: 0 0 0 16px;
    background: transparent;
    border: 0;
    border-left: 2px solid var(--teal-border);
    border-radius: 0;
    gap: 10px;
}

/* Innere, historisch aus Gen3 übernommene Zweit-Überschriften ("Prüffragen"
   im Fragen-Toolbar, "Rechtskontext des Falls" im Rechtsgrundlagen-Inhalt)
   dupliziert den bereits im Host-Header sichtbaren Sektionstitel
   ("Prüffragen"/"Rechtsgrundlagen", siehe GEN4-UI-WORKSPACE-U3). Innerhalb
   des Gen4-Hosts werden diese Zweit-Überschriften daher auf eine ruhige,
   sekundäre Eyebrow-Optik zurückgestuft statt entfernt - der Inhalt (Titel,
   Zähler) bleibt vollständig erhalten, nur die visuelle Dominanz sinkt.
   Außerhalb des Hosts (klassischer Gen3-Reiter "Prüffragen") bleibt die
   Original-Optik unverändert, da dort keine übergeordnete Host-Überschrift
   existiert. */
.case-workspace-host-summary #block-questions .questions-block-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--text-soft);
}

.case-workspace-host-summary #block-questions .questions-count-badge {
    height: 18px;
    padding: 0 7px;
    font-size: 10px;
}

.case-workspace-host-summary .legal-context-sidebar-title {
    margin: 0;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--text-soft);
}

.case-workspace-section-title {
    margin: 0;
    color: var(--text-strong);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
}

.case-workspace-section-readonly-hint {
    margin: 0 0 4px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e5e7eb;
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.4;
}

.case-workspace-section-placeholder {
    margin: 2px 0 0;
    padding: 14px 16px;
    background: var(--surface-soft);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-soft);
    font-size: 13px;
    line-height: 1.45;
}

/* GEN4-U3: Workspace-Sections — Identität der Arbeitsbereiche.
   Jeder Bereich erhält Einstieg (Titel + Hinweis mit dezenter Trennung),
   gegliederten Inhalt (Zeilentrennung in Statuslisten) und eine ruhige
   Abschlusszone (Footer mit Sektionsaktion). Leere Zustände sind Teil
   des Designs. Nur bestehende Tokens, keine Icons, keine neuen Farben. */
.case-workspace-section-footer {
    display: flex;
    margin-top: 8px;
    padding-top: 12px;
    border-top: 1px solid var(--border-subtle);
}

.case-workspace-section-footer .case-workspace-back-button {
    align-self: flex-start;
}

.case-workspace-status-list > .case-workspace-status-row + .case-workspace-status-row {
    padding-top: 8px;
    border-top: 1px solid #e5e7eb;
}

/* GEN4-HOST-F1: WorkspaceSectionHost — generischer Summary/Edit-Rahmen.
   Der Host rahmt nur: Header (Titel, Status-Pill, Bearbeiten-Aktion),
   Body je Modus, Aktionszeile und Error-Summary. Guard-Dialog nutzt die
   bestehende rename-modal-Optik. Nur bestehende Tokens; die Fehlerfarbe
   folgt dem etablierten Danger-Fallback-Muster. */
.case-workspace-hosted-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.case-workspace-hosted-headline {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

/* GEN7-UX-PRUEFUNG-DECISION-BASIS-WORKLIST-PARITY-I1: Titelzeile eines
   Sektionskopfs. Sie haelt den Sektionstitel und seinen Erklaerungs-
   Einstiegspunkt zusammen, damit der umbrechende Header (`flex-wrap: wrap`)
   das Icon nie vom Titel loest. Reine Gruppierung -- keine eigene Typografie,
   kein zweiter Header-Owner. */
.case-workspace-hosted-titlerow {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

/* GEN7-UX-PRUEFUNG-DECISION-BASIS-WORKLIST-PARITY-I1: dieselbe Gruppierung im
   Kartenkopf. Sie haelt Kartentitel und Erklaerung zusammen, damit die
   Statuspille des Kopfs nicht mehr zwischen beiden steht. */
.wb-card-titlerow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

/* ==================================================================
   GEN7-UX-PRUEFUNG-WORK-CARD-MEASURES-PARITY-I1
   Gemeinsame Kopfgrammatik der rechten Arbeitskarte. Alle Werte sind
   live an der Referenzflaeche Maßnahmen gemessen
   (.aw-measure-collapse-title-wrap / .aw-measure-meta-line /
   .aw-measure-collapse-title): Badgezeile UEBER dem Titel, Titel
   15px/600, Statuspille rechts daneben.
   ================================================================== */

/* Titel + optionale Badgezeile als eine Einheit, damit die Statuspille
   rechts stehen bleibt und nicht zwischen beide geraet. */
.wb-card-titlewrap,
.case-workspace-focus-titlewrap,
.question-collapse-titlewrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1 1 auto;
}

/* Badgezeile. Wertgleich zur .aw-measure-meta-line der Referenz. */
.case-workspace-focus-metaline,
.case-workspace-workpanel .question-workbench-focus .question-meta-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
}

/* Der Typ-/Quellen-Badge selbst. Die Referenz nutzt .aw-source-badge in
   ihrer Fokusauspraegung (20px Radius, 11px/700); diese Regel traegt
   dieselben Werte fuer die Badges der Pruefflaeche, damit beide Flaechen
   EINE Badge-Auspraegung zeigen. Kein zweites Badge-System: Farbe und
   Semantik bleiben beim jeweiligen Fachowner. */
/* Die Rechtsbezugkarte ist jetzt eine echte Karte im gemeinsamen Rahmen.
   Ihr Titel folgt der gemessenen Referenz (15px/600) statt der bisherigen
   h3-Sonderoptik in 20px/700. */
.case-workspace-workpanel .case-workspace-focus-card {
    display: block;
}

/* GEN4-UI-WORKSPACE-U3: rechte Metazone der Section-Header-Zone (Status +
   Aktionen), getrennt von der Titelzeile links. Reine Layout-Gruppierung
   bereits bestehender Elemente (wb-status-pill, workbench-ghost-button). */
.case-workspace-hosted-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    flex: 0 0 auto;
}

.case-workspace-shell .case-workspace-host-collapse-action {
    min-height: 36px;
    border-radius: 999px;
    padding-inline: 12px;
}

.case-workspace-host-body {
    margin-top: 8px;
}

.case-workspace-host-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #e5e7eb;
}

.case-workspace-host-saving-hint {
    margin-right: auto;
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 600;
}

.case-workspace-host-error-summary {
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(185, 28, 28, 0.35);
    border-radius: var(--radius-sm);
    background: rgba(185, 28, 28, 0.06);
    color: var(--danger, #b91c1c);
    font-size: 13px;
    line-height: 1.45;
}

.case-workspace-host-guard-message {
    margin: 0;
    color: var(--text-strong);
    font-size: 13px;
    line-height: 1.5;
}

.case-workspace-hosted-section[data-host-section="entscheidung"] .case-workspace-hosted-header {
    align-items: flex-start;
    gap: 12px 16px;
    padding: 0 0 12px;
    border-bottom: 1px solid #e5e7eb;
}

.case-workspace-hosted-section[data-host-section="entscheidung"] .case-workspace-hosted-headline {
    gap: 12px;
}

/* GEN4-WORKSPACE-DESIGN-SYSTEM-UNIFICATION-F1: die 19px-Sonderregel fuer
   den Entscheidungs-Titel ist entfernt - alle Section-Titel folgen derselben
   Ebene-1-Skala (.case-workspace-section-title, 15px). Eine Section darf
   sich nicht per eigener Titelgroesse aus dem System herausheben. */

.case-workspace-hosted-section[data-host-section="entscheidung"] .case-workspace-hosted-meta {
    gap: 10px;
}

.case-workspace-hosted-section[data-host-section="entscheidung"] .case-workspace-hosted-meta .wb-status-pill {
    min-height: 24px;
    padding-inline: 10px;
}

.case-workspace-hosted-section[data-host-section="entscheidung"] .case-workspace-host-body {
    margin-top: 16px;
}

/* GEN4-U4: Workspace Progress — Arbeitsfortschritt des Falls.
   Sechs Stationen als ruhige Fortschrittsleiste zwischen Case Context und
   Arbeitsbereichen. Zustaende kommen ausschliesslich aus bestehenden
   Statusresolvern und laufen ueber die bestehende wb-status-pill-Grammatik.
   Keine neue Statuslogik, keine Icons, keine neuen Farben. Sticky urspruenglich
   seit GEN4-WORKSPACE-INTERACTION-F1 als Teil von .case-workspace-sticky-head.
   GEN4-UI-WORKSPACE-U2: reine visuelle Überarbeitung zu einem ruhigeren,
   flacheren Produkt-Flow (ein gemeinsamer Leisten-Container statt sechs
   einzelner Karten mit Schatten/Rand; Statuspillen sekundär; aktive Station
   über eine schlanke Akzentlinie statt Karten-Hervorhebung markiert). Keine
   Klick-/ScrollSpy-/Reihenfolge-/Statuslogik geändert, nur Klassen im
   bestehenden CSS-Namespace angepasst.
   GEN4-WORKSPACE-V2-STICKY-HERO-REMOVAL-F1: Sticky-Rolle vom entfernten
   .case-workspace-sticky-head hierher verschoben (1:1 uebernommene Werte:
   position/top/z-index/background/border-bottom/box-shadow/padding-bottom),
   damit ausschliesslich die Navigation sticky bleibt und der Hero vollstaendig
   aus dem Sichtbereich scrollt. .case-workspace-progress ist das <nav>-Element
   aus buildWorkspaceProgress() (render_case_workspace_shell.js) - kein neues
   Element, keine neue Klasse im Markup. */
.case-workspace-progress {
    position: sticky;
    top: 0;
    z-index: 5;
    background: var(--bg);
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-subtle);
    box-shadow: 0 10px 24px -24px rgba(15, 23, 42, 0.26);
}

/* GEN7-UX-CASE-HOME-I1: sichtbare Benennung der bereits bestehenden
   Stepper-Zähleinheit. Keine neue Fortschrittslogik oder Typografierolle;
   die Werte entsprechen der vorhandenen Subgroup-Mikrotypografie. */
.case-workspace-progress-caption {
    margin: 0 0 8px;
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* GEN4-WORKSPACE-HERO-LAYOUT-R4: fallubersicht.html .steps (STEP 5/6
   Pflichtwert: display grid, gleich breite Spalten, gap 12px) ersetzt das
   vorherige Flex-Wrap-Layout (WORKSPACE-STEPPER-FINAL-POLISH-F13). Der aktuelle
   sichtbare Navigationsowner projiziert fuenf primaere Bereiche. */
.case-workspace-progress-steps {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
    background: transparent;
    border-radius: 0;
}

/* GEN7-UX-WORKFLOW-HIERARCHY-DOCUMENT-READINESS-GRAMMAR-I1:
   Die drei direkten Pruefungsziele bleiben dieselben Navigationseintraege,
   erscheinen im oberen Band aber als kompakte sekundäre Projektion unter dem
   primaeren Bereich Pruefung. Keine zweite Reihenfolge und kein neuer State. */
.case-workspace-shell .case-workspace-progress-secondary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--line);
}

.case-workspace-shell .case-workspace-progress-substep {
    min-height: 32px;
    padding: 6px 10px;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--text-soft);
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
    cursor: pointer;
}

.case-workspace-shell .case-workspace-progress-substep:hover,
.case-workspace-shell .case-workspace-progress-substep:focus-visible {
    border-color: var(--blue-border);
    color: var(--blue-text);
}

.case-workspace-shell .case-workspace-progress-substep.is-active {
    border-color: var(--blue-border);
    background: var(--blue-soft);
    color: var(--blue-text);
}

.case-workspace-progress-item {
    min-width: 0;
    display: flex;
    position: relative;
}

/* WORKSPACE-STEPPER-FINAL-POLISH-F13: GEN4_VISUAL_SPEC.md Abschnitt 2
   schliesst einzelne Verbindungslinien zwischen den Markern ausdruecklich
   aus ("es gibt keine einzelnen Verbindungslinien zwischen den Markern,
   sondern ausschliesslich den einen durchgehenden Balken unterhalb der
   gesamten Reihe") - ersetzt durch .case-workspace-progress-track unten.
   Column-Gap in .case-workspace-progress-steps (10px, siehe oben) uebernimmt
   jetzt die "gleichmaessige Abstaende"-Anforderung zwischen den Karten. */

/* GEN4-WORKSPACE-HERO-POLISH-R5 STEP 4: die R4-Uebernahme der
   fallubersicht.html-Stepper-Proportion (Radius 14px, keine Quadratform,
   linksbuendig) wird explizit zurueckgenommen. Fuer den Stepper gilt laut
   diesem Block die neuere, hoeher priorisierte Product-Owner-Entscheidung
   (GEN4-STEPPER-REFERENCE-UPDATE-R1 / GEN4-WORKSPACE-HERO-LAYOUT-R2):
   quadratische Karten, groesserer Radius, vertikal zentrierter Inhalt. Die
   HTML-Referenzdatei ist fuer diesen Bereich ausdruecklich nicht massgeblich
   (siehe Auftrag). Dot+Text-Statusdarstellung aus R4 bleibt unveraendert
   bestehen (STEP 4: "keine Badge-Optik zurueckbringen"). */
/* GEN4-STEPPER-CARD-CONTENT-SPACING-FIX-F1: reine Innenkomposition,
   Kartenform (aspect-ratio/radius) und Grid unveraendert. gap 8px->12px,
   padding 12px->16px - mehr Luft zwischen Marker/Titel/Statuspille und zum
   Kartenrand, ohne die quadratische Aussenflaeche zu veraendern. */
/* GEN4-STEPPER-FINAL-ALIGNMENT-R1: justify-content center -> flex-start mit
   fester oberer Kante (padding-top 26px, aus hero.png vermessen: ~28px bei
   Skala 0.92). Zentrierung machte die vertikale Position vom Inhaltsvolumen
   abhaengig (Karte ohne Statuspille bzw. mit zweizeiligem Titel verschob
   Marker/Titel um bis zu +-9.8px). Top-Ausrichtung haelt Marker und Titel
   aller vier Karten unabhaengig vom Inhalt exakt auf einer Linie -
   identisch zur Referenzkomposition. */
.case-workspace-progress-step {
    min-width: 0;
    /* GEN4-WORKSPACE-COMPACT-PROFESSIONAL-SCALE-F1: aspect-ratio 1/1 kettete
       die Kartenhoehe an die Spaltenbreite (170px -> 170px hoch, groesster
       Above-the-fold-Posten). PO-Entscheidung "Stepper kleiner/ruhiger"
       uebersteuert die Quadratform aus GEN4-STEPPER-REFERENCE-UPDATE-R1:
       feste min-height statt Seitenverhaeltnis. Top-Alignment aus
       GEN4-STEPPER-FINAL-ALIGNMENT-R1 bleibt unveraendert bestehen.
       width 100%: vorher fuellte die Karte ihre Grid-Zelle nur indirekt
       ueber aspect-ratio + gestreckte Hoehe; ohne Seitenverhaeltnis muss
       der Button die Zellbreite explizit einnehmen. */
    width: 100%;
    min-height: 128px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    padding: 16px 12px 12px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    cursor: pointer;
    text-align: center;
    font: inherit;
    color: var(--text);
    transition:
        background-color 140ms ease,
        border-color 140ms ease,
        transform 140ms ease;
}

.case-workspace-progress-step:hover {
    background: #ffffff;
}

/* WORKSPACE-STEPPER-FINAL-POLISH-F13: GEN4_VISUAL_SPEC.md Abschnitt 2 -
   "Die aktive Karte hat einen deutlich sichtbaren blauen Rahmen um die
   gesamte Karte". Vorher faerbte der aktive Zustand nur den Marker, nicht
   die Karte selbst. Bestehendes --blue-border-Token (identisch zur
   is-active-Faerbung des Markers direkt darunter), keine neue Farbrolle. */
/* GEN4-WORKSPACE-HERO-LAYOUT-R4: fallubersicht.html .step.active setzt
   zusaetzlich zum Rahmen einen getoenten Kartenhintergrund. "teal-bg" ist im
   Referenz-HTML eine eigene, im Workbench-Tokenset nicht existierende
   Farbrolle; statt eine neue Farbe einzufuehren (verboten - Token-
   Exklusivitaet, Band 4 Sec 2.8) wird das bereits bestehende, fuer "aktiv"
   reservierte --blue-soft-Token verwendet (identische Rolle wie am Marker
   direkt darunter). */
/* GEN4-WORKSPACE-HERO-POLISH-R5 STEP 5: aktive Kartenhierarchie verstaerkt -
   Rahmenstaerke 1px->2px und zusaetzlicher Fokus-Ring nach demselben
   bestehenden Muster wie an anderer Stelle im Frontend bereits verwendet
   (box-shadow 0 0 0 3px var(--blue-bg), siehe z.B. bestehende Focus-Ringe im
   selben Stylesheet) - keine neue Farbrolle, nur bereits vorhandene Tokens
   (--blue-border, --blue-bg, --blue-soft). */
.case-workspace-progress-step.is-active {
    background: var(--blue-soft);
    border: 2px solid var(--blue-border);
    box-shadow: 0 0 0 3px var(--blue-bg);
    /* GEN4-STEPPER-FINAL-ALIGNMENT-R1: der 2px-Rahmen (statt 1px) schiebt
       den Karteninhalt bei box-sizing:border-box um 1px nach innen - Marker/
       Titel der aktiven Karte lagen dadurch 1px unter der Linie der uebrigen
       Karten (Playwright-Messung 719.6 vs 718.6). Padding kompensiert die
       Rahmendifferenz auf allen Seiten. */
    /* GEN4-WORKSPACE-COMPACT-PROFESSIONAL-SCALE-F1: an das neue kompakte
       Basis-Padding (18px 12px 14px) angepasst, weiterhin -1px je Seite. */
    padding: 17px 11px 13px;
}

/* GEN4-WORKSPACE-HERO-POLISH-R5 STEP 4: Marker-Groesse zurueck auf den
   Stand der quadratischen Kartenproportion (36px) - der R4-Wert (26px) galt
   fuer die inzwischen zurueckgenommene fallubersicht.html-Proportion. */
/* GEN4-WORKSPACE-COMPACT-PROFESSIONAL-SCALE-F1: 36px -> 30px, passend zur
   kompakteren Kartenhoehe (PO-Entscheidung). */
.case-workspace-progress-marker {
    width: 30px;
    height: 30px;
    border-radius: 999px;
    border: 1px solid var(--border-subtle);
    background: var(--surface);
    color: var(--text-soft);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 30px;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
}

.case-workspace-progress-index {
    color: inherit;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}

.case-workspace-progress-step.is-complete .case-workspace-progress-marker {
    background: var(--green-bg);
    border-color: var(--green-bg-2);
    color: var(--green-text);
}

.case-workspace-progress-step.is-active .case-workspace-progress-marker {
    background: var(--blue-soft);
    border-color: var(--blue-border);
    color: var(--blue-text);
}

/* GEN4-WORKSPACE-HERO-POLISH-R5 STEP 4: Karteninhalt wieder vertikal/
   horizontal zentriert (Ruecknahme der R4-Linksbuendigkeit), passend zur
   wiederhergestellten Quadratform. */
.case-workspace-progress-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* GEN4-STEPPER-CARD-CONTENT-SPACING-FIX-F1: Abstand Titel->Statuspille
       moderat auf 4px angehoben (war 2px seit
       GEN4-WORKSPACE-V2-STICKY-NAVIGATION-REDUCTION-F1) - Teil der
       Innenrhythmus-Normalisierung aus GEN4_WORKSPACE_VISUAL_CONGESTION_
       DIAGNOSIS_F1.md P1, keine Formaenderung der Karte. */
    gap: 4px;
}

/* GEN4-WORKSPACE-HERO-LAYOUT-R4: fallubersicht.html .step-title (STEP 5
   Pflichtwert: 14px, 500, line-height 1.3). Die vorherige Fettung bei
   is-complete/is-active (650) entfaellt - die Referenz kennt keine
   Titel-Gewichtsaenderung fuer aktive/erledigte Schritte, nur Rahmen-/
   Hintergrundfarbe am Kartencontainer aendert sich (siehe .is-active oben). */
.case-workspace-progress-title {
    min-width: 0;
    color: var(--text-soft);
    /* GEN4-WORKSPACE-COMPACT-PROFESSIONAL-SCALE-F1: 14px -> 13px. */
    font-size: 13px;
    font-weight: 500;
    line-height: 1.3;
}

/* GEN4-WORKSPACE-HERO-LAYOUT-R4: font-weight-Erhoehung (650) entfernt, siehe
   Begruendung bei .case-workspace-progress-title oben - Farbaenderung fuer
   aktive/erledigte Schritte bleibt (nicht im Widerspruch zur Referenz, im
   Bild selbst nicht separat verneint). */
.case-workspace-progress-step.is-complete .case-workspace-progress-title,
.case-workspace-progress-step.is-active .case-workspace-progress-title {
    color: var(--text-strong);
}

/* GEN4-WORKSPACE-HERO-LAYOUT-R4: fallubersicht.html .step-status (STEP 6:
   "Status als Dot + Text, nicht als ueberdominante Badge-Struktur"; STEP 5
   Pflichtwert: 12px, 500, gap 6px). Die geteilte .wb-status-pill-Basis
   rendert einen getoenten Badge-Hintergrund (siehe .wb-status-pill weiter
   unten) - das ist genau die per STEP 6 ausgeschlossene Form. Statt die
   globale Basis zu aendern (wuerde jede andere Pill-Verwendung im Frontend
   mitveraendern), wird sie hier scope-lokal auf reinen Dot+Text
   zurueckgebaut: Hintergrund/Rahmen/Innenabstand entfernt, Textfarbe und
   Dot-Farbe laufen weiterhin ueber dieselben bestehenden
   --wb-status-pill-text/-dot-Variablen (keine neue Farbrolle, keine
   Aenderung der Tone-Klassen-Logik). */
.case-workspace-progress-copy .case-workspace-status-pill {
    padding: 0;
    min-height: 0;
    gap: 6px;
    background: transparent;
    border: none;
    font-size: 12px;
    font-weight: 500;
    color: var(--wb-status-pill-text);
}

.case-workspace-progress-copy .case-workspace-status-pill::before {
    width: 6px;
    height: 6px;
}

/* WORKSPACE-STEPPER-FINAL-POLISH-F13: ein durchgehender horizontaler
   Fortschrittsbalken unter der gesamten Kartenreihe (GEN4_VISUAL_SPEC.md
   Abschnitt 2). Fuenf gleich breite, luecken-/randlose Segmente ergeben
   optisch exakt einen zusammenhaengenden Balken; gefuellt = blau bis zur
   aktiven Karte, ungefuellt = grau danach. Nur bestehende Tokens
   (--blue-border, --border-subtle), keine neue Farbrolle. */
.case-workspace-progress-track {
    display: flex;
    width: 100%;
    height: 3px;
    margin-top: 8px;
    border-radius: 999px;
    overflow: hidden;
    background: var(--border-subtle);
}

.case-workspace-progress-track-segment {
    flex: 1 1 0;
    height: 100%;
    background: var(--border-subtle);
}

.case-workspace-progress-track-segment.is-filled {
    background: var(--blue-border);
}

.context-panel-meta-card {
    display: grid;
    gap: 8px;
    padding: 12px;
    background: var(--surface);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
}

.context-panel-meta-row {
    display: grid;
    gap: 2px;
}

.context-panel-meta-label {
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.context-panel-meta-value {
    color: var(--text-strong);
    font-size: 13px;
    line-height: 1.4;
}

.case-workspace-analysis-value {
    min-width: 0;
    color: var(--text);
    font-size: 13px;
    line-height: 1.4;
    text-align: right;
}

.case-workspace-analysis-list-wrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.case-workspace-analysis-list {
    margin: 0;
    padding-left: 18px;
    display: grid;
    gap: 3px;
    color: var(--text);
    font-size: 13px;
    line-height: 1.45;
}

.case-workspace-measure-group-title {
    margin: 10px 0 0;
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 650;
    letter-spacing: 0.02em;
    line-height: 1.3;
}

.case-workspace-measure-list {
    display: grid;
    gap: 8px;
}

.case-workspace-measure-row.wb-card {
    padding: 10px 12px;
    background: var(--surface-soft);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    box-shadow: none;
}

/* GEN4-U6: Maßnahmen als Arbeitsplatz — entschiedene Maßnahmen treten ruhig
   zurück, offene und delegierte behalten volles Gewicht. Reine Dämpfung über
   Opazität, keine neue Farbe, kein Wireframe; Statusfarben bleiben allein
   bei wb-status-pill + is-status-*. */
.case-workspace-measure-row.is-measure-resolved {
    opacity: 0.72;
}

.case-workspace-measure-pill-group {
    display: inline-flex;
    gap: 6px;
    flex: 0 0 auto;
}

.case-workspace-measure-description {
    margin: 4px 0 0;
    color: var(--text);
    font-size: 12px;
    line-height: 1.45;
}

.case-workspace-measure-note {
    margin: 4px 0 0;
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.4;
}

.case-statusband {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    overflow: visible;
    flex-shrink: 0;
    padding: 10px 16px 10px;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.case-statusband-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.case-statusband-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1 1 auto;
}

.case-statusband-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.01em;
    white-space: nowrap;
    overflow: hidden;
}

.case-statusband-breadcrumb-item {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.case-statusband-breadcrumb-item-root,
.case-statusband-breadcrumb-item-project {
    color: var(--blue-text);
}

.case-statusband-breadcrumb-item-current {
    color: var(--text-soft);
}

.case-statusband-breadcrumb-separator {
    color: var(--border-strong);
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    flex: 0 0 auto;
}

.case-statusband-title-row {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.case-statusband-title {
    margin: 0;
    font-size: clamp(20px, 1.45vw, 27px);
    line-height: 1.12;
    letter-spacing: -0.02em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text-strong);
    font-weight: 700;
    min-width: 0;
    max-width: 560px;
}

.case-statusband-title-edit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    color: #9aa3b2;
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
}

.case-statusband-title-edit:hover {
    color: var(--text);
}

.case-statusband-title-edit svg {
    display: block;
}

.case-statusband-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 10px;
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.case-statusband-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}

.case-statusband-meta-label {
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.case-statusband-meta-value {
    color: var(--text-strong);
    font-size: 12px;
    font-weight: 500;
}

.case-statusband-meta-separator {
    color: var(--border-strong);
    font-size: 11px;
    font-weight: 600;
    flex: 0 0 auto;
}

.case-statusband-actions {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 10px;
    flex: 0 0 auto;
    flex-wrap: wrap;
    padding-top: 1px;
    margin-left: auto;
}

.case-statusband-action {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 8px 14px;
    border-radius: 16px;
    border: 1px solid var(--border-subtle);
    background: #ffffff;
    color: var(--text-strong);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.01em;
    box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
}

.case-statusband-action:hover:not(:disabled) {
    background: #fbfcff;
    border-color: var(--border);
    color: var(--text-strong);
}

.case-statusband-action:disabled {
    opacity: 0.6;
}

.case-statusband-action-primary {
    background: #3564f7;
    border-color: #3564f7;
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(53, 100, 247, 0.18);
}

.case-statusband-action-primary:hover:not(:disabled) {
    background: #2f5be6;
    border-color: #2f5be6;
    color: #ffffff;
}

.case-statusband-action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
}

.case-statusband-action-icon svg {
    display: block;
}

.case-statusband-action-primary .case-statusband-action-icon {
    color: #ffffff;
}

.case-statusband-action-label {
    white-space: nowrap;
}

.case-executive-summary {
    width: 100%;
    padding: 6px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    background: #ffffff;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.04);
    overflow: hidden;
}

.case-executive-summary-grid {
    display: grid;
    gap: 0;
    grid-template-columns: 1.05fr 0.95fr 1.15fr 1.05fr;
}

.case-executive-summary-grid-workflow {
    grid-template-columns: 1.05fr 0.95fr 1.15fr 1.05fr;
}

.case-executive-panel {
    min-width: 0;
    min-height: 86px;
    display: grid;
    align-content: start;
    gap: 10px;
    padding: 15px 18px;
    border-right: 1px solid var(--border-subtle);
    background: transparent;
}

.case-executive-panel:last-child {
    border-right: 0;
}

.case-executive-panel-highlight {
    background: #fff6f5;
    border-radius: 16px 0 0 16px;
}

.case-executive-panel-label {
    color: var(--muted-2);
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.case-executive-panel-headline {
    margin: 0;
    color: var(--text);
    font-size: 14.5px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.case-executive-panel-subtext {
    margin: 0;
    color: var(--text-soft);
    font-size: 12.5px;
    line-height: 1.4;
}

.case-executive-panel-list {
    margin: 0;
    padding-left: 16px;
    display: grid;
    gap: 5px;
    color: var(--text-soft);
    font-size: 10.5px;
    line-height: 1.3;
}

.case-executive-panel-list li::marker {
    color: var(--teal);
    font-weight: 800;
}

.case-executive-panel-list-ordered {
    padding-left: 18px;
}

.case-executive-progress {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 18px;
    width: fit-content;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid var(--teal-border);
    background: var(--teal-soft);
    color: var(--teal);
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.case-executive-metric {
    min-width: 0;
    display: grid;
    gap: 4px;
    padding: 0 12px 0 0;
    border: 0;
    border-right: 1px solid var(--border-subtle);
    border-radius: 0;
    background: transparent;
}

.case-executive-summary-grid .case-executive-metric:last-child {
    padding-right: 0;
    border-right: 0;
}

.case-executive-metric-label {
    color: var(--muted-2);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.case-executive-metric-value {
    min-width: 0;
    color: var(--text);
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.32;
    white-space: normal;
}

.case-executive-recommendation {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.4;
    color: var(--text-soft);
}

.case-executive-drivers {
    display: grid;
    gap: 5px;
}

.case-executive-drivers-label {
    color: var(--muted-2);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.case-executive-drivers-list {
    margin: 0;
    padding-left: 18px;
    display: grid;
    gap: 4px;
    color: var(--text-soft);
    font-size: 12.5px;
    line-height: 1.35;
}

.case-statusband-id {
    flex-shrink: 0;
    color: var(--muted);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 11px;
    white-space: nowrap;
    align-self: flex-start;
    margin-top: 2px;
}

/* 4-Kachel-Band — v2-Bausteine (Schild, Status-Punkt, Links, Häkchen, Ring) */
.case-tile-headline-row {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.case-tile-risk-icon {
    flex-shrink: 0;
    display: inline-flex;
    color: #dc2626;
}

.case-tile-risk-headline {
    color: #dc2626;
    text-transform: uppercase;
    letter-spacing: 0.01em;
}

.case-tile-status-dot {
    flex-shrink: 0;
    width: 9px;
    height: 9px;
    border-radius: 999px;
    display: inline-block;
}

.case-tile-status-dot-ok {
    background: #16a34a;
}

.case-tile-status-dot-warn {
    background: #d97706;
}

.case-tile-kv {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.3;
    color: var(--text-soft);
}

.case-tile-kv-label {
    color: var(--muted-2);
}

.case-tile-kv-value {
    color: var(--text);
    font-weight: 600;
}

.case-tile-link {
    align-self: start;
    margin-top: 2px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--blue-text);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

.case-tile-link:hover {
    text-decoration: underline;
}

.case-tile-check-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 7px;
}

.case-tile-check-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12.5px;
    line-height: 1.3;
    color: var(--text);
}

.case-tile-check-icon {
    flex-shrink: 0;
    color: #16a34a;
    font-weight: 800;
    font-size: 11px;
    line-height: 1.3;
}

.case-tile-steps-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.case-tile-step-list {
    margin: 0;
    padding-left: 16px;
    display: grid;
    gap: 7px;
    font-size: 12.5px;
    line-height: 1.3;
    color: var(--text);
}

.case-tile-step-list li::marker {
    color: var(--muted-2);
    font-weight: 700;
}

.case-tile-ring {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.case-tile-ring-label {
    font-size: 9px;
    color: var(--muted-2);
}

.workspace {
    min-width: 0;
    padding-right: 6px;
}

.workbench-main:not(:has(.right-rail)) .workspace {
    grid-column: 1 / -1;
}

.right-rail-resize-handle {
    position: relative;
    min-width: var(--rail-resize-handle-width);
    align-self: stretch;
    cursor: col-resize;
    touch-action: none;
    user-select: none;
}

.right-rail-resize-handle::before {
    content: "";
    position: absolute;
    top: 4px;
    bottom: 4px;
    left: 50%;
    width: 1px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: rgba(100, 116, 139, 0.18);
    opacity: 0.45;
    transition:
        background-color 140ms ease,
        box-shadow 140ms ease,
        opacity 140ms ease,
        width 140ms ease;
}

.right-rail-resize-handle:hover::before {
    width: 2px;
    background: rgba(100, 116, 139, 0.34);
    opacity: 0.8;
    box-shadow: 0 0 0 2px rgba(148, 163, 184, 0.08);
}

.right-rail-resize-handle.is-dragging::before {
    width: 2px;
    background: rgba(47, 107, 245, 0.68);
    opacity: 1;
    box-shadow: 0 0 0 4px rgba(47, 107, 245, 0.14);
}

.is-right-rail-resizing,
.is-right-rail-resizing body {
    cursor: col-resize;
    user-select: none;
}

.workspace > .dsb-decision-actions {
    margin-top: 8px;
}

.workflow-tab {
    display: none;
}

.workflow-tab.tab-active {
    display: block;
}

.workflow-tab-shell {
    padding: 0 0 12px;
    margin: 0 0 12px;
}

.workflow-tab-surface-action {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
}

.workflow-tab-surface-action-btn {
    min-height: 36px;
}

.workflow-tab-main-nav {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 6px 20px;
    border-bottom: 1px solid var(--border-subtle);
    padding: 3px 2px 11px;
}

.workflow-tab-btn {
    min-height: 38px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: #60718a;
    padding: 8px 2px 10px;
    border-radius: 0;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    transition: color 140ms ease, border-color 140ms ease, transform 140ms ease;
}

.workflow-tab-btn:hover {
    color: var(--text);
    border-bottom-color: var(--border-strong);
}

.workflow-tab-btn-active {
    color: var(--blue-text);
    border-bottom-color: var(--blue-text);
}

.workflow-tab-utility-nav {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

section {
    border: 1px solid var(--border);
    background: var(--surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: 14px 16px;
}

.dsb-assistant-card {
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: none;
    padding: 18px;
    margin-bottom: 16px;
    transition:
        padding 160ms ease,
        margin-bottom 160ms ease,
        box-shadow 160ms ease;
}

.dsb-assistant-card progress {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    border: none;
    border-radius: 999px;
    background: #e2e8f0;
    color: var(--teal);
    overflow: hidden;
}

.dsb-assistant-card progress::-webkit-progress-bar {
    background: #e2e8f0;
    border-radius: 999px;
}

.dsb-assistant-card progress::-webkit-progress-value {
    background: var(--teal);
    border-radius: 999px;
}

.dsb-assistant-card progress::-moz-progress-bar {
    background: var(--teal);
    border-radius: 999px;
}

.dsb-assistant-head h2 {
    margin: 4px 0 4px;
    font-size: 22px;
}

.dsb-assistant-head p {
    color: var(--muted);
    font-size: 13px;
    max-height: 48px;
    opacity: 1;
    overflow: hidden;
    transition:
        max-height 160ms ease,
        opacity 120ms ease;
}

.dsb-eyebrow {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #0f766e;
}

.dsb-assistant-steps {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.dsb-assistant-step {
    text-align: left;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    border-radius: var(--radius-md);
    padding: 12px;
    cursor: pointer;
}

.dsb-assistant-step:hover {
    background: #eefdf9;
    border-color: #99f6e4;
}

.dsb-assistant-step strong {
    display: block;
    margin: 6px 0 4px;
    color: #0f172a;
}

.dsb-assistant-step small {
    display: block;
    color: #64748b;
    line-height: 1.35;
    max-height: 72px;
    opacity: 1;
    overflow: hidden;
    transition:
        max-height 160ms ease,
        opacity 120ms ease;
}

.dsb-assistant-card.is-compact {
    padding: 14px 16px 12px;
    margin-bottom: 12px;
}

.dsb-assistant-card.is-compact .dsb-assistant-head h2 {
    margin: 2px 0;
    font-size: 20px;
    line-height: 1.15;
}

.dsb-assistant-card.is-compact .dsb-assistant-head p {
    max-height: 0;
    opacity: 0;
}

.dsb-assistant-card.is-compact .dsb-assistant-steps {
    gap: 8px;
    margin-top: 10px;
}

.dsb-assistant-card.is-compact .dsb-assistant-step {
    padding: 10px;
    border-radius: var(--radius-md);
}

.dsb-assistant-card.is-compact .dsb-assistant-step strong {
    margin: 4px 0 2px;
}

.dsb-assistant-card.is-compact .dsb-assistant-step small {
    max-height: 0;
    opacity: 0;
}

.dsb-assistant-status {
    display: inline-flex;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
}

.dsb-assistant-step-prepared .dsb-assistant-status {
    background: #dff7f3;
    color: #0f766e;
}

.dsb-assistant-step-checked .dsb-assistant-status {
    background: #dcfce7;
    color: #166534;
}

.dsb-assistant-hint {
    margin-top: 14px;
    padding: 14px;
    border-radius: 14px;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
}

.dsb-assistant-hint-label {
    font-size: 12px;
    font-weight: 700;
    color: #047857;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 6px;
}

.dsb-assistant-hint p {
    margin: 0;
    color: #0f172a;
    line-height: 1.45;
}

.dsb-assistant-hint details {
    margin-top: 8px;
}

.dsb-assistant-hint summary {
    cursor: pointer;
    color: #047857;
    font-weight: 700;
}

.dsb-assistant-hint-detail {
    margin-top: 8px;
    white-space: pre-wrap;
    color: #334155;
    line-height: 1.5;
}

.card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.card-title {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--muted);
    font-weight: 800;
}

.card-count {
    font-size: 12px;
    color: var(--muted);
}

.workbench-error,
.dsb-error-text {
    margin-top: 10px;
    color: var(--red);
    font-size: 12px;
}

.workbench-input {
    padding: 10px 14px;
}

.workbench-input-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 6px;
}

.workbench-input-title {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 800;
    color: var(--muted);
}

.workbench-input-status {
    color: var(--muted);
    font-size: 12px;
}

.workbench-input-context {
    margin: 0 0 8px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}

.workbench-input-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 262px;
    gap: 10px;
    align-items: start;
}

.workbench-input-textarea {
    min-height: 60px;
    max-height: 86px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
    background: var(--surface);
    color: var(--text);
    resize: vertical;
}

.workbench-input-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
}

button {
    min-height: 34px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-subtle);
    background: var(--surface-elevated);
    color: var(--text);
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    padding: 7px 11px;
    transition: border-color 140ms ease, background-color 140ms ease, color 140ms ease;
}

button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.workbench-ghost-button {
    background: var(--btn-ghost-bg);
    border-color: var(--btn-ghost-border);
    color: var(--btn-ghost-text);
}

.btn-primary,
.btn-secondary,
.workbench-primary-button,
.workbench-ghost-button {
    padding: 8px 16px;
    font-size: 13px;
    min-width: unset;
}

.workbench-primary-button {
    min-height: 36px;
    background: var(--blue-text);
    color: #ffffff;
    border-color: var(--blue-text);
    font-weight: 600;
    box-shadow: none;
}

.workbench-primary-button:hover:not(:disabled) {
    background: var(--blue-600);
    border-color: var(--blue-600);
}

.workbench-primary-button:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: 2px;
}

.case-header {
    position: relative;
    padding-right: 126px;
}

.case-header-title {
    font-size: 25px;
    line-height: 1.2;
    margin-bottom: 6px;
    letter-spacing: -0.01em;
}

.case-header-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    color: var(--muted);
    font-size: 12.5px;
    margin-bottom: 8px;
}

.case-meta-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--chip-neutral-bg);
    border: 1px solid var(--chip-neutral-border);
    border-radius: 999px;
    padding: 2px 8px 2px 6px;
    white-space: nowrap;
}

.case-meta-chip-label {
    color: var(--muted);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.case-meta-chip-value {
    color: var(--chip-neutral-text);
    font-size: 11.5px;
    font-weight: 500;
}

.case-header-id {
    position: absolute;
    top: 14px;
    right: 16px;
    color: var(--muted);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 11px;
}

.decision-block {
    padding: 16px 18px;
    border-radius: var(--radius-lg);
    background: #f6f3ec;
    border: 1px solid #e5dccf;
    margin-bottom: 14px;
}

.db-icon {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    background: #b76a00;
    border: 0;
    color: #ffffff;
    display: grid;
    place-items: center;
    font-weight: 800;
    font-size: 20px;
}

.db-label {
    margin-bottom: 3px;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #a16207;
    font-weight: 800;
}

.decision-compact {
    border-left: 4px solid var(--amber);
    border-color: var(--amber-border);
    background: #fff6e8;
    box-shadow: none;
}

.decision-compact.is-low {
    border-left-color: var(--teal);
    background: #ecfdf7;
}

.decision-compact.is-neutral {
    border-left-color: var(--border);
    background: var(--surface-soft);
}

.dsb-risk-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0 0 10px;
}

.dsb-risk-badge-lg {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid var(--amber-border);
    background: var(--amber-soft);
    color: var(--amber);
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.decision-compact.is-low .dsb-risk-badge-lg {
    border-color: var(--teal-border);
    background: var(--teal-soft);
    color: var(--teal);
}

.dsb-risk-score {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid var(--amber-border);
    background: #ffffff;
    color: var(--amber);
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 700;
}

.decision-compact.is-low .dsb-risk-score {
    border-color: var(--teal-border);
    color: var(--teal);
}

.decision-compact-line {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
}

.decision-compact-main h2 {
    font-size: 17px;
    line-height: 1.25;
    margin: 0;
    letter-spacing: -0.01em;
}

.db-risk-badge {
    white-space: nowrap;
    border-radius: 999px;
    border: 1px solid var(--amber-border);
    background: var(--amber-soft);
    color: var(--amber);
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 800;
}

.decision-compact-drivers {
    margin: 12px 0 0 58px;
    padding: 0;
    list-style-position: inside;
    display: grid;
    gap: 3px;
}

.decision-compact-drivers li {
    font-size: 13px;
    color: var(--text);
}

.decision-dsb-hint {
    margin: 10px 0 0 58px;
    padding: 8px 10px;
    border-left: 3px solid var(--teal-border);
    background: #f8fafc;
    border-radius: 14px;
}

.dsb-overlay-label {
    display: inline-block;
    margin-bottom: 4px;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--teal);
    font-weight: 800;
}

.decision-dsb-hint p {
    margin: 0;
    font-size: 12.5px;
    color: var(--text);
    line-height: 1.4;
}

.decision-compact-reasons {
    margin: 6px 0 0 18px;
    padding: 0;
}

.decision-compact-reasons li {
    margin: 0;
}

.legal-basis-block p,
.measures-block p,
.dsb-questions-block p {
    color: var(--muted);
    font-size: 13px;
}

.article-card-list {
    display: grid;
    gap: 8px;
}

.article-card {
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-soft);
    padding: 10px 11px;
}

.article-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
}

.article-law-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 700;
    border: 1px solid transparent;
}

.article-law-badge.law-eu {
    background: var(--blue-soft);
    border-color: var(--blue-border);
    color: var(--blue-text);
}

.article-law-badge.law-dsgvo {
    background: var(--teal-soft);
    border-color: var(--teal-border);
    color: var(--teal);
}

.article-law-badge.law-bdsg {
    background: #f5f3ff;
    border-color: #ddd6fe;
    color: #6d28d9;
}

.article-law-badge.law-other {
    background: #f1f5f9;
    border-color: #e2e8f0;
    color: #475569;
}

.article-status {
    font-size: 10px;
    font-weight: 700;
    border-radius: 999px;
    padding: 2px 8px;
}

.article-status-confirmed {
    color: #166534;
    background: #dcfce7;
}

.article-status-possible {
    color: #9a6700;
    background: #fff7e6;
}

.article-card-title {
    font-size: 13px;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 7px;
    color: var(--text);
}

.article-why-button {
    border: 0;
    background: transparent;
    color: var(--teal);
    min-height: 0;
    padding: 0;
    font-size: 12px;
    font-weight: 700;
}

.article-detail {
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
}

.article-alt-title {
    margin-top: 12px;
    margin-bottom: 5px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--muted);
}

.measure-head-meta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--muted);
    font-size: 12px;
}

.aw-wrap {
    font-family: inherit;
    color: #0f172a;
}

.aw-edit-panel {
    margin-top: 10px;
    margin-bottom: 10px;
    border: 1px solid #dbe3ef;
    border-radius: 12px;
    background: #ffffff;
    padding: 12px;
    display: grid;
    gap: 10px;
}

.aw-edit-title {
    font-size: 13px;
    font-weight: 800;
    color: #0f172a;
}

.aw-edit-field {
    display: grid;
    gap: 4px;
}

.aw-edit-label {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted);
}

.aw-edit-input,
.aw-edit-select,
.aw-edit-textarea {
    width: 100%;
    min-height: 44px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    padding: var(--space-3);
    font-size: 14px;
    line-height: 1.5;
}

.aw-status-cell .aw-edit-select {
    width: auto;
    min-width: 100px;
    max-width: 140px;
}

.aw-edit-textarea {
    min-height: 74px;
    resize: vertical;
}

.aw-edit-error {
    color: #b91c1c;
    font-size: 12px;
    font-weight: 700;
}

.aw-edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.aw-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 0 12px;
    border-bottom: 1px solid #e2e8f0;
}

.aw-toolbar-title {
    flex: 1;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

.aw-toolbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.measure-group + .measure-group {
    margin-top: 10px;
}

.measure-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 4px 6px;
}

.measure-group-title {
    margin: 0;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #475569;
}

.measure-group-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 7px;
    border-radius: 999px;
    border: 1px solid #dbe3ef;
    background: #f8fafc;
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
}

.measure-group-rows {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.aw-filter,
.aw-add-btn,
.aw-bulk-btn,
.aw-btn,
.aw-icon-btn,
.aw-art,
.aw-missing-art {
    min-height: auto;
}

.aw-filter,
.aw-add-btn {
    border: 1px solid #dbe3ef;
    border-radius: 999px;
    background: #ffffff;
    padding: 5px 10px;
    font-size: 12px;
    line-height: 1.2;
}

.aw-filter.active {
    border-color: #99f6e4;
    background: #f0fdfa;
    color: #0f766e;
    font-weight: 800;
}

.aw-add-btn {
    border-color: #0f766e;
    background: #0f766e;
    color: #ffffff;
    font-weight: 800;
}

.aw-bulk-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    margin-bottom: 8px;
    border: 1px solid #dbe3ef;
    border-radius: 12px;
    background: #f8fafc;
    padding: 8px 10px;
}

.aw-bulk-count {
    flex: 1;
    font-size: 12px;
    font-weight: 700;
    color: #334155;
}

.aw-bulk-btn {
    border: 1px solid #dbe3ef;
    border-radius: 8px;
    background: #ffffff;
    color: #334155;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 700;
}

.aw-bulk-btn.is-primary {
    border-color: #0f766e;
    background: #0f766e;
    color: #ffffff;
}

.aw-row-main {
    display: grid;
    grid-template-columns: 28px minmax(240px, 1fr) 88px 136px 112px 156px auto;
    gap: 8px;
    align-items: center;
}

.aw-row {
    border-bottom: 1px solid #e2e8f0;
}

.aw-row:last-child {
    border-bottom: 0;
}

.aw-row.is-done {
    opacity: 0.58;
}

.aw-row-main {
    padding: 10px 4px;
    min-height: 52px;
}

.aw-card-view .aw-row {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #ffffff;
    margin-top: 8px;
    padding: 0 6px;
}

.aw-card-view .aw-row:last-child {
    border-bottom: 1px solid #e2e8f0;
}

.aw-card-meta-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.aw-source-cell {
    display: inline-flex;
    align-items: center;
}

.aw-card-actions {
    display: flex;
    align-items: flex-start;
    align-self: start;
    gap: 6px;
    justify-content: flex-end;
    flex-shrink: 0;
}

.aw-card-actions .aw-status-cell {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.aw-card-actions .aw-status-cell.aw-status-workflow {
    border: 1px solid #dbe3ef;
    border-radius: 12px;
    background: #f8fafc;
    padding: 4px;
}

.aw-card-actions .aw-status-cell.aw-status-workflow.is-status-pending {
    border-color: #cfe0f5;
    background: #f8fbff;
}

.aw-card-actions .aw-status-cell.aw-status-workflow.is-status-accepted {
    border-color: #b7e4c7;
    background: #f3fbf6;
}

.aw-card-actions .aw-status-cell.aw-status-workflow.is-status-rejected {
    border-color: #f8c9c9;
    background: #fff8f8;
}

.aw-card-actions .aw-status-cell.aw-status-workflow.is-status-delegated {
    border-color: #fde8b0;
    background: #fffaf0;
}

.aw-card-actions .aw-status-cell.aw-status-workflow.is-status-risk_accepted {
    border-color: #e5d5ff;
    background: #faf6ff;
}

.aw-card-actions .aw-status-cell .aw-status-control {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.aw-card-actions .aw-status-cell .aw-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 2px 7px;
    border: 1px solid transparent;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.1;
    white-space: nowrap;
    max-width: 108px;
    overflow: hidden;
    text-overflow: ellipsis;
    background: #eef2f7;
    color: #475569;
}

.aw-card-actions .aw-status-cell .aw-status-badge.is-status-pending {
    background: #e8f3ff;
    border-color: #cfe0f5;
    color: #1d4ed8;
}

.aw-card-actions .aw-status-cell .aw-status-badge.is-status-accepted {
    background: #dcfce7;
    border-color: #b7e4c7;
    color: #166534;
}

.aw-card-actions .aw-status-cell .aw-status-badge.is-status-rejected {
    background: #fee2e2;
    border-color: #f8c9c9;
    color: #991b1b;
}

.aw-card-actions .aw-status-cell .aw-status-badge.is-status-delegated {
    background: #fef3c7;
    border-color: #fde8b0;
    color: #92400e;
}

.aw-card-actions .aw-status-cell .aw-status-badge.is-status-risk_accepted {
    background: #efe4ff;
    border-color: #e5d5ff;
    color: #6b21a8;
}

.aw-card-actions .aw-status-cell .aw-status-select {
    width: auto;
    min-width: 90px;
    max-width: 112px;
    height: 30px;
    padding: 0 22px 0 9px;
    border-radius: 9px;
    font-size: 12px;
    font-weight: 700;
    background: #ffffff;
}

.aw-card-actions .aw-status-cell .aw-status-details {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.aw-card-actions .aw-status-cell .aw-status-reason-input {
    height: 30px;
    border-radius: 9px;
    padding: 0 9px;
    font-size: 12px;
    background: #ffffff;
}

.aw-card-actions .aw-status-cell .aw-status-error {
    margin: 0;
    padding-top: 1px;
    font-size: 11px;
    line-height: 1.25;
}

.aw-card-actions .aw-action-cell {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0;
    min-width: 0;
    position: relative;
}

.aw-card-actions .aw-action-cell > button {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.aw-card-actions .aw-more-btn {
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
}

.aw-card-meta-row .aw-art-cell .aw-law-pill {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    height: 24px;
    padding: 0 9px;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.aw-card-meta-row .aw-art-cell .aw-law-pill-ai-act {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1d4ed8;
}

.aw-card-meta-row .aw-art-cell .aw-law-pill-gdpr {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #047857;
}

.aw-card-meta-row .aw-art-cell .aw-law-pill-betrvg,
.aw-card-meta-row .aw-art-cell .aw-law-pill-bdsg {
    background: #f5f3ff;
    border-color: #ddd6fe;
    color: #6d28d9;
}

.aw-card-meta-row .aw-art-cell .aw-law-pill-missing {
    border-style: dashed;
    background: #fff7ed;
    border-color: #f0b35a;
    color: #a85f00;
}

.aw-title-main {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    color: #0f172a;
}

.aw-row.is-done .aw-title-main {
    text-decoration: line-through;
}

.aw-title-sub {
    margin-top: 1px;
    font-size: 11.5px;
    line-height: 1.35;
    color: #64748b;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.aw-prio {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    padding: 3px 8px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.1;
}

.prio-hoch {
    background: #fee2e2;
    color: #991b1b;
}

.prio-mittel {
    background: #fef3c7;
    color: #92400e;
}

.prio-niedrig {
    background: #dcfce7;
    color: #166534;
}

.aw-art {
    border: 0;
    background: transparent;
    padding: 0;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    color: #0f766e;
    text-decoration: underline;
}

.aw-art-cell {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    min-width: 0;
    max-width: 100%;
}

.aw-art-static {
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    color: #0f172a;
}

.aw-missing-art {
    border: 0;
    background: transparent;
    padding: 0;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    color: #0f766e;
}

.aw-law-picker {
    margin-top: 6px;
    padding: 8px;
    border: 1px solid #dbe3ef;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    display: grid;
    gap: 4px;
    max-width: 280px;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 20;
}

.aw-law-picker-title {
    font-size: 11px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 4px;
}

.aw-law-current {
    font-size: 11px;
    color: #64748b;
    padding: 6px 8px;
    border-radius: 7px;
    background: #f8fafc;
    margin-bottom: 4px;
}

.aw-law-picker-item,
.aw-law-picker-manual {
    text-align: left;
    border: 0;
    background: transparent;
    padding: 6px 8px;
    border-radius: 7px;
    font-size: 12px;
    cursor: pointer;
    color: #0f172a;
}

.aw-law-picker-item:hover,
.aw-law-picker-manual:hover {
    background: #ecfdf5;
    color: #0f766e;
}

.aw-law-picker-item.is-current {
    background: #f0fdfa;
    color: #0f766e;
    font-weight: 700;
}

.aw-law-picker-manual {
    border-top: 1px solid #e2e8f0;
    margin-top: 4px;
    color: #0f766e;
    font-weight: 700;
}

.aw-law-picker-remove {
    text-align: left;
    border: 0;
    background: transparent;
    padding: 6px 8px;
    border-radius: 7px;
    font-size: 12px;
    cursor: pointer;
    color: #991b1b;
    border-top: 1px solid #e2e8f0;
    margin-top: 4px;
}

.aw-law-picker-remove:hover {
    background: #fef2f2;
}

.aw-art-manual-note {
    display: block;
    flex-basis: 100%;
    margin-top: 2px;
    font-size: 10px;
    color: #64748b;
}

.aw-source-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 3px 8px;
    font-size: 10.5px;
    font-weight: 800;
    line-height: 1.1;
}

.aw-source-badge.is-regelwerk {
    background: #eef2ff;
    color: #334155;
}

.aw-source-badge.is-analyse {
    background: #dff7f3;
    color: #0f766e;
}

.aw-action-cell {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.aw-btn {
    border: 1px solid #99f6e4;
    border-radius: 7px;
    background: #ffffff;
    padding: 5px 8px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.1;
    color: #0f766e;
}

.aw-secondary-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.16s ease;
}

.aw-row:hover .aw-secondary-actions,
.aw-row:focus-within .aw-secondary-actions {
    opacity: 1;
    pointer-events: auto;
}

.aw-icon-btn {
    width: 26px;
    height: 26px;
    border: 1px solid #dbe3ef;
    border-radius: 7px;
    background: #ffffff;
    padding: 0;
    font-size: 14px;
    line-height: 1;
    font-weight: 900;
    color: #334155;
}

.aw-empty {
    padding: 16px 4px 4px;
    color: #64748b;
    font-size: 13px;
}

.aw-restore-measure {
    margin-top: 8px;
    align-self: flex-start;
}

.aw-orphan-measures {
    margin-top: 18px;
    padding-top: 10px;
    border-top: 1px dashed #dbe3ef;
}

.aw-orphan-measures-title {
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
}

.aw-orphan-measure {
    padding: 10px 12px;
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    background: #f8fafc;
    color: #475569;
    margin-bottom: 8px;
    display: grid;
    gap: 4px;
}

.aw-orphan-measure-title {
    font-size: 13px;
    font-weight: 700;
    color: #334155;
    margin-bottom: 4px;
}

.aw-orphan-measure-meta {
    margin: 0;
    font-size: 12px;
    color: #64748b;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.aw-orphan-note {
    margin: 4px 0 0;
    font-size: 12px;
    color: #64748b;
}

.measure-checkbox {
    width: 16px;
    height: 16px;
    min-height: 16px;
    margin: 0;
    accent-color: #0f766e;
    cursor: pointer;
}

.measure-details-list {
    margin: 0;
    padding-left: 18px;
}

.measure-details-list li {
    margin-bottom: 4px;
    font-size: 13px;
    color: #334155;
}

.measure-toggle-all-btn {
    border: 1px solid #dbe3ef;
    background: #ffffff;
    border-radius: 10px;
    padding: 7px 10px;
    font-weight: 700;
    cursor: pointer;
}

.measure-tag {
    border: 1px solid var(--border);
    background: #fff;
    border-radius: 7px;
    padding: 3px 8px;
    font-size: 11px;
    color: var(--muted);
    font-weight: 700;
}

.measure-tag.priority-high {
    color: var(--red);
    border-color: var(--red-border);
    background: var(--red-soft);
}

.measure-tag.priority-medium {
    color: var(--amber);
    border-color: var(--amber-border);
    background: var(--amber-soft);
}

.dsb-questions-block h2 {
    margin-bottom: 0;
}

.dsb-questions-block {
    border: 0;
    background: transparent;
    box-shadow: none;
}

.questions-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

/* QUESTION-INLINE-STYLE-CSS-B1 - statische Inline-Styles aus render_questions.js
   in CSS ueberfuehrt (reine Praesentations-Trennung, identische Werte;
   kein Layout-, Farb-, Abstands- oder Typografie-Wechsel). */
.questions-new-button {
    margin-left: auto;
}

.question-why-relevant-text {
    margin: 2px 0 0;
}

.question-archived-section {
    margin-top: 20px;
}

/* QUESTIONS-CARD-GEN3-HARMONIZATION-F1 — Inline-Styles in CSS-Klassen überführt */
.question-archived-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 0 0 10px;
}

.question-article-badge-wrap {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.question-article-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.question-entity-form {
    display: grid;
    gap: 5px;
}

.question-entity-form .dsb-note-actions {
    gap: 8px;
    align-items: center;
}

#block-questions .dsb-error-text,
.question-entity-form .dsb-error-text,
.question-create-modal-backdrop .dsb-error-text {
    margin-top: 4px;
}

.questions-block-title {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--text-strong);
}

.questions-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 20px;
    padding: 0 8px;
    border-radius: 999px;
    background: var(--blue-soft);
    color: var(--blue-text);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}

#block-questions .question-checklist {
    display: grid;
    gap: 12px;
}

#block-questions .question-check {
    display: block;
    border: 1px solid var(--border-subtle);
    border-left: 3px solid transparent;
    border-radius: 18px;
    padding: 13px 16px;
    background: var(--surface);
    box-shadow: 0 1px 4px rgba(20, 23, 30, 0.04);
    overflow: hidden;
}

#block-questions .question-check--required {
    border-left-color: var(--teal-border);
}

#block-questions .question-check--answered {
    background: #ffffff;
    border-color: #e5ebf2;
}

#block-questions .question-check--confirmed {
    border-left-color: var(--teal-border);
}

#block-questions .question-check--rejected {
    border-left-color: var(--red-border);
    background: #fff8f8;
    border-color: #f0d7d7;
}

#block-questions .question-check--uncertain {
    border-left-color: var(--amber-border);
    background: #fffaf3;
    border-color: #f1dfb9;
}

.question-body {
    display: grid;
    gap: 5px;
}

#block-questions .question-check-text {
    font-size: 14.5px;
    line-height: 1.35;
    color: #18212d;
    font-weight: 500;
}

/* Eingeklappte Prüffragen (Soll-Optik) — reine Darstellung, kein Modell-Eingriff */
#block-questions .question-collapse-header {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: left;
    color: inherit;
    font: inherit;
}

#block-questions .question-collapse-title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.35;
    color: #18212d;
}

#block-questions .question-collapse-pill {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.3;
    padding: 4px 11px;
    border-radius: 999px;
}

/* Statusfarben migriert auf .wb-status-pill + .is-status-* (Gen3-Statussystem).
   Farbe/Dot laufen zentral ueber wb-status-pill; keine lokalen Farbregeln mehr. */

#block-questions .question-collapse-chevron {
    flex: 0 0 auto;
    color: var(--muted-2);
    font-size: 14px;
    line-height: 1;
    transition: transform 140ms ease;
}

#block-questions .question-check:not(.is-collapsed) .question-collapse-chevron {
    transform: rotate(180deg);
}

#block-questions .question-body.question-collapse-content {
    margin-top: 16px;
}

#block-questions .question-check.is-collapsed .question-collapse-content {
    display: none;
}

.question-source-tag {
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    max-width: 180px;
    height: auto;
    border-radius: 999px;
    padding: 2px 8px;
    border: 1px solid var(--line);
    background: var(--surface-soft);
    color: var(--muted);
    font-size: 10px;
    font-weight: 750;
    line-height: 1.35;
    box-shadow: none;
}

.question-note-wrap {
    display: none;
}

.question-note-wrap.is-visible {
    display: grid;
    gap: 6px;
}

.context-panel {
    display: grid;
    gap: 16px;
}

.context-panel-section {
    border: 1px solid var(--line);
    border-radius: var(--r-5);
    background: var(--surface);
    padding: 20px 18px 18px;
    display: grid;
    gap: 10px;
    box-shadow: var(--sh-2);
}

.context-panel-head {
    display: flex;
    align-items: center;
    gap: 8px;
}

.context-panel-header {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
}

.context-panel-count {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 7px;
    border-radius: 999px;
    background: var(--blue-soft);
    color: var(--blue-text);
    font-size: 11px;
    font-weight: 700;
}

.context-panel-meta {
    margin: 0;
    font-size: 12.5px;
    color: var(--muted);
}

.context-panel-list {
    display: grid;
    gap: 0;
}

.context-panel-list > .legal-context-item:last-child,
.context-panel-list > .context-measure-item:last-child {
    border-bottom: 0;
}

/* GEN7-UX-WORKBENCH-RIGHT-RAIL-ACTION-CONSISTENCY-I1 — Right-Rail-Navigation
   traegt die gemeinsame Aktionsfamilie (wb-action--nav + wb-action--compact). Diese
   Klasse ist nur noch Positionierungs-Hook im Grid-Container der Rail; sie
   definiert keine eigene Buttongrammatik mehr (kein eigener Radius, keine
   eigene Typografie, keine eigene Farbe, kein eigener Fokus). */
.context-panel-link {
    align-self: start;
    justify-self: start;
    margin-top: 8px;
}

/* Aufklappbarer Section-Header für alle vier Right-Rail-Blöcke */
.context-panel-section-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.context-panel-section-toggle .context-panel-header {
    flex: 1;
}

.context-panel-section-toggle .context-panel-count {
    margin-left: 0;
}

.context-panel-chevron {
    display: inline-block;
    font-size: 10px;
    color: var(--muted);
    transition: transform 0.15s;
    flex-shrink: 0;
}

.context-panel-section-toggle[aria-expanded="false"] .context-panel-chevron {
    transform: rotate(-90deg);
}

/* Sicherstellung: hidden-Attribut auf section-body wird nie durch andere display-Regeln überschrieben */
.context-panel-section-body[hidden] {
    display: none;
}

.context-measure-item {
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: var(--wb-card-radius, 14px);
    background: var(--surface);
    box-shadow: var(--wb-card-shadow, var(--sh-1));
    transition: var(--wb-card-transition, border-color 140ms ease, box-shadow 140ms ease, background-color 140ms ease);
}

.context-measure-item--clickable {
    cursor: pointer;
    border-radius: var(--wb-card-radius, 14px);
}

.context-measure-item--clickable:hover {
    background: var(--surface-soft);
    border-color: var(--border);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.context-panel-list--measures {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.context-measure-layout {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    align-items: start;
    gap: 12px;
}

.context-measure-icon {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    border: 1px solid var(--border-subtle);
    background: var(--surface-soft);
    color: var(--text-soft);
}

.context-measure-icon.is-high {
    background: var(--red-soft);
    border-color: var(--red-border);
    color: var(--red);
}

.context-measure-icon.is-medium {
    background: var(--amber-soft);
    border-color: var(--amber-border);
    color: var(--amber);
}

.context-measure-icon.is-low,
.context-measure-icon.is-other {
    background: var(--teal-soft);
    border-color: var(--teal-border);
    color: var(--teal);
}

.context-measure-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.context-measure-group-label {
    padding: 10px 0 3px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted);
}

.context-measure-group-label:first-child {
    padding-top: 4px;
}

.context-measure-head {
    display: flex;
    align-items: flex-start;
}

.context-measure-title {
    margin: 0;
    min-width: 0;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--text);
}

.context-measure-meta {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 8px;
}

.context-measure-source-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 20px;
}

.context-measure-priority {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid var(--border);
    padding: 2px 9px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    text-transform: capitalize;
    color: var(--muted);
}

.context-measure-priority.is-high {
    border-color: var(--red-border);
    background: var(--red-soft);
    color: var(--red);
}

.context-measure-priority.is-medium {
    border-color: var(--amber-border);
    background: var(--amber-soft);
    color: var(--amber);
}

.context-measure-priority.is-low {
    border-color: var(--teal-border);
    background: var(--teal-soft);
    color: var(--teal);
}

.context-measure-priority.is-other {
    background: #f1f5f9;
    border-color: #e2e8f0;
    color: #475569;
}

.context-measure-badges {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    align-self: center;
}

.context-measure-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.context-measure-status-label {
    font-size: 11px;
    line-height: 1.2;
}

.context-measure-meta .article-law-badge,
.context-measure-meta .aw-source-badge {
    max-width: 100%;
    min-height: 20px;
    font-size: 10px;
    font-weight: 700;
}

.context-measure-meta .article-law-badge {
    max-width: 100%;
}

@media (max-width: 760px) {
    .context-measure-layout {
        grid-template-columns: 30px minmax(0, 1fr);
    }

    .context-measure-badges {
        grid-column: 1 / -1;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        margin-left: 42px;
        flex-wrap: wrap;
    }
}

.legal-context-sidebar {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
    display: grid;
    gap: 14px;
}

.legal-context-sidebar-title {
    margin: 0;
    font-size: 19px;
    line-height: 1.2;
}

.legal-context-sidebar-summary {
    margin: 0;
    font-size: 12.5px;
    color: var(--muted);
}

.legal-context-sidebar-list {
    display: grid;
    gap: 12px;
}

.legal-context-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 0;
    border-bottom: 1px solid var(--border-subtle);
}

.legal-context-item-main {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.legal-context-item-ref {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
}

.legal-context-item-sub {
    margin: 0;
    font-size: 12px;
    line-height: 1.3;
    color: var(--muted);
}

.legal-context-relevance {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 2px 9px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
}

.legal-context-relevance.is-relevant {
    background: var(--teal-soft);
    color: var(--teal);
    border: 1px solid var(--teal-border);
}

.legal-context-relevance.is-not {
    background: #f1f5f9;
    color: #64748b;
    border: 1px solid #e2e8f0;
}

/* LEGAL-WORKFLOW-UX-F1 — Awareness-/Herkunftsbereich der rechten Rail. */
.legal-context-hintgroup {
    margin-top: 12px;
    display: grid;
    gap: 6px;
}

.legal-context-hintgroup.is-secondary {
    opacity: 0.85;
}

.legal-context-subhead {
    margin: 0 0 2px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--muted);
}

.legal-context-subhead.is-muted {
    font-weight: 600;
    opacity: 0.8;
}

.legal-context-hint {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-subtle);
}

/* LEGAL-WORKFLOW-UX-F4-B4 — Aktionsgruppe (Übernehmen/Ignorieren/Reaktivieren). */
.legal-context-actions {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 12px;
}

/* DESIGN-SYSTEM-F1C / FIX 7 — Prüfbedarf als hervorgehobener Block, damit der
   offene Handlungsbedarf in der rechten Rail nicht untergeht. Nur der primäre
   (nicht-sekundäre) Hinweisblock wird hervorgehoben; "Nicht übernommen" und
   "Bereits referenziert" (is-secondary) bleiben ruhig. */
.legal-context-hintgroup--primary,
.legal-context-hintgroup:not(.is-secondary) {
    margin-top: 12px;
    padding: 16px 16px;
    border: 1px solid var(--amber-border, #fde68a);
    border-radius: 18px;
    background: var(--amber-soft, #fffbeb);
}

.legal-context-hintgroup--primary .legal-context-subhead,
.legal-context-hintgroup:not(.is-secondary) .legal-context-subhead {
    color: var(--amber-text, #b45309);
}

.legal-context-hintgroup--primary .legal-context-hint,
.legal-context-hintgroup:not(.is-secondary) .legal-context-hint {
    border-bottom-color: rgba(180, 83, 9, 0.18);
}

.legal-context-hintgroup--primary .legal-context-hint:last-of-type,
.legal-context-hintgroup:not(.is-secondary) .legal-context-hint:last-of-type {
    border-bottom: 0;
}

/* GEN7-UX-WORKBENCH-RIGHT-RAIL-ACTION-CONSISTENCY-I1 — Uebernehmen /
   Ignorieren / Reaktivieren sind echte Mutationen und tragen deshalb die
   gemeinsame Workbench-Aktionsfamilie (wb-action--add bzw.
   wb-action--secondary, Stufe wb-action--compact) statt einer eigenen
   Pillen-Grammatik mit 999px-Radius und Gewicht 700. Die frueheren
   Selektoren .legal-context-action-pill(.is-muted) sind ersatzlos entfallen;
   Handler, Persistenz und Fachlogik bleiben unveraendert. */

/* FIX 9 — anklickbarer Artikel-Ref (öffnet openLawText). Sieht aus wie der
   bisherige Ref-Text, signalisiert über Farbe/Hover aber Klickbarkeit. */
.legal-context-ref-link {
    align-self: start;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    color: var(--blue-text);
    text-align: left;
    cursor: pointer;
    /* GEN7-UX-PILOT-INTERACTION-POLISH-I1: der diagnostizierte Ref-Link ist
       eine Textaktion und traegt seine Trefferflaeche an seinem EINEN eigenen
       Owner - Right Rail und Kontextpanel derselben Familie gleichermassen. */
    min-height: 24px;
}

.right-rail-law-link--eu-ai-act {
    color: var(--blue-text);
}

.right-rail-law-link--gdpr {
    color: var(--teal);
}

.right-rail-law-link--bdsg {
    color: #6d28d9;
}

.legal-context-ref-link:hover {
    text-decoration: underline;
}

.legal-context-source-row {
    display: flex;
    align-items: center;
    gap: 4px;
}

.legal-context-source-link {
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 11px;
    font-weight: 400;
    color: var(--blue-text);
    cursor: pointer;
    min-height: 0;
}

.legal-context-source-link:hover {
    text-decoration: underline;
}

.is-nav-target {
    outline: 2px solid rgba(47, 107, 245, 0.42);
    outline-offset: 3px;
}

.legal-context-item-badge {
    display: inline-flex;
    align-items: center;
    width: max-content;
    border-radius: 999px;
    border: 1px solid transparent;
    padding: 3px 8px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
}

.legal-context-item-badge.law-eu {
    background: var(--blue-soft);
    border-color: var(--blue-border);
    color: var(--blue-text);
}

.legal-context-item-badge.law-dsgvo {
    background: var(--teal-soft);
    border-color: var(--teal-border);
    color: var(--teal);
}

.legal-context-item-badge.law-bdsg {
    background: #f5f3ff;
    border-color: #ddd6fe;
    color: #6d28d9;
}

.legal-context-item-badge.law-other {
    background: #f1f5f9;
    border-color: #e2e8f0;
    color: #475569;
}

/* RIGHT-RAIL-LEGAL-GROUPING-F1 — Kollabierbare Gesetz-Gruppen (>= 9 Artikel). */
.legal-context-group {
    border-bottom: 1px solid var(--border-subtle);
}

.legal-context-group:last-child {
    border-bottom: 0;
}

.legal-context-group-header {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding: 9px 0;
    border: 0;
    background: transparent;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-align: left;
    cursor: pointer;
    color: var(--muted);
}

.legal-context-group-header::before {
    content: "▾";
    display: inline-block;
    font-size: 10px;
    line-height: 1;
    transition: transform 0.15s;
    flex-shrink: 0;
}

.legal-context-group-header[aria-expanded="false"]::before {
    transform: rotate(-90deg);
}

.legal-context-group-list {
    padding-bottom: 4px;
}

.legal-context-item-title {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
}

.legal-context-item-why {
    margin: 2px 0 0;
    padding-top: 8px;
    border-top: 1px solid var(--border);
    font-size: 13px;
    line-height: 1.5;
    color: var(--text);
}

.question-answer-trail {
    font-size: 11.5px;
    color: var(--muted-2);
    line-height: 1.35;
    letter-spacing: 0.01em;
    margin-top: 2px;
}

.case-summary-panel,
.dsb-decision-actions,
.dsb-enhancer-card,
.dsb-profile-overrides,
.export-actions {
    margin: 0;
}

.case-summary-panel {
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.dsb-decision-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    align-items: start;
}

.dsb-decision-actions > .dsb-panel-header,
.dsb-decision-actions > .dsb-decision-section-context,
.dsb-decision-actions > .dsb-decision-section-review,
.dsb-decision-actions > .dsb-decision-section-action {
    grid-column: 1 / -1;
}

.dsb-decision-actions > .dsb-decision-section-trail {
    grid-column: 1;
    min-width: 0;
}

.dsb-decision-actions > .dsb-decision-section-export {
    grid-column: 2;
    min-width: 0;
}

.dsb-profile-overrides {
    margin-top: 12px;
}

.dsb-profile-override-fields {
    display: grid;
    gap: 10px;
}

.dsb-profile-override-field {
    display: grid;
    gap: 6px;
}

.case-summary-panel h2 {
    font-size: 15px;
    margin-bottom: 5px;
}

.case-summary-subtitle {
    color: var(--muted);
    font-size: 12px;
    margin-bottom: 8px;
}

.case-summary-row {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    padding: 6px 0;
    border-top: 1px solid #eef2f7;
}

.case-summary-label {
    font-size: 11.5px;
    color: var(--muted);
}

.case-summary-value {
    text-align: right;
    font-size: 12px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.case-summary-value-long {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 10px;
}

.overview-context {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.overview-status-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.overview-status-card {
    border: 1px solid var(--border-subtle);
    border-left: 3px solid transparent;
    border-radius: 18px;
    background: var(--surface);
    padding: 13px 16px;
    box-shadow: 0 1px 4px rgba(20, 23, 30, 0.04);
    min-width: 0;
}

.overview-status-title {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 700;
    color: var(--text);
}

.overview-status-value {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    color: var(--muted);
}

/* overview-status-badge: Struktur bleibt erhalten; Farbe/Border/Dot kommen seit
   DSB-STATUS-MIGRATION-F2 aus .wb-status-pill.is-status-* (Gen3-Statussystem).
   Erzeugt gemeinsam von render_dsb_decision.js und render_overview_tab.js. */
.overview-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 2px 7px;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

/* Farbe migriert zu .wb-status-pill.is-status-* (F2). Selektoren bleiben als
   Strukturhaken erhalten. */
.overview-status-badge.is-open {
}

.overview-status-badge.is-prepared {
}

.overview-status-badge.is-checked {
}

/* status-chip: Struktur bleibt erhalten; Farbe/Ton kommt seit
   DSB-STATUS-MIGRATION-F1 aus .wb-status-pill.is-status-* (Gen3-Statussystem). */
.status-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 3px 8px;
    font-size: 10px;
    font-weight: 800;
}

/* Farbe migriert zu .wb-status-pill.is-status-* (F1). Selektoren bleiben als
   Strukturhaken erhalten. */
.status-chip-open {
}

.status-chip-accepted {
}

.status-chip-adjusted {
}

.status-chip-rejected {
}

.case-next-step {
    margin-top: 10px;
    border-top: 1px solid #eef2f7;
    padding-top: 10px;
}

.case-next-step-title {
    font-size: 10px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--muted-2);
    font-weight: 800;
    margin-bottom: 5px;
}

.case-next-step-text {
    display: block;
    width: 100%;
    border: none;
    background: transparent;
    padding: 0;
    margin: 0;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 700;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.case-next-step-text:disabled {
    cursor: default;
}

.dsb-decision-section {
    display: grid;
    gap: 8px;
    margin-bottom: 10px;
    padding: 10px 11px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
}

.dsb-decision-section-action {
    gap: 10px;
    padding: 16px;
    border-color: var(--border-subtle);
    border-radius: var(--radius-lg);
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.dsb-decision-section-context {
    border-color: var(--border-subtle);
    background: var(--surface);
}

.dsb-decision-section-review {
    border-color: var(--border-subtle);
    background: var(--surface-soft);
}

.dsb-decision-section-trail,
.dsb-decision-section-export {
    padding: 9px 10px;
    border-color: var(--border-subtle);
    background: var(--surface-soft);
}

.dsb-decision-section-export .export-actions {
    margin: 0;
}

.dsb-decision-section .dsb-section-head {
    margin: 8px 0 4px;
    font-size: 9.5px;
    letter-spacing: 0.08em;
}

/* GEN5-ANALYSIS-DECISION-BADGE-CLASS-PRESERVATION-F3-1: gilt nur fuer
   Badges ohne Statuspille. Statuspillen behalten die Geometrie von
   .wb-status-pill (Gen3-Statussystem); die Basisklasse bleibt reiner
   Strukturhaken. Keine neuen Werte, keine Farbaenderung. */
.dsb-decision-section .dsb-section-badge:not(.wb-status-pill) {
    padding: 1px 6px;
}

.dsb-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.dsb-panel-title {
    font-size: 13px;
    font-weight: 800;
}

.dsb-case-id {
    color: var(--muted);
    font-size: 10px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.dsb-status-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin-bottom: 8px;
}

/* GEN7-IMP-DSB-DECISION-LIFECYCLE-INTEGRITY-…-I1: Korrekturgrund und
   Konflikt-Recovery. Bewusst keine neuen Tokens und keine neue Buttonrolle —
   Aktion ist Workbench-Blau, nicht die globale gruene Primary-Klasse. */
.dsb-decision-correction {
    display: grid;
    gap: 6px;
    margin-bottom: 8px;
}

.dsb-decision-correction-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted);
}

.dsb-decision-correction-input {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-height: 64px;
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font: inherit;
    font-size: 13px;
    color: var(--text);
    background: var(--surface);
    resize: vertical;
}

.dsb-decision-correction-current {
    margin: 0;
    font-size: 12px;
    color: var(--text-muted);
}

.dsb-decision-conflict {
    display: grid;
    gap: 8px;
    justify-items: start;
}

.dsb-decision-conflict-reload {
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    color: var(--blue-text);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.dsb-decision-conflict-reload:focus-visible {
    outline: 2px solid var(--blue-text);
    outline-offset: -2px;
}

.dsb-context-summary {
    display: grid;
    gap: 6px;
    margin-bottom: 8px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface-soft);
    padding: 8px 10px;
}

.dsb-context-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.dsb-context-summary-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--text);
}

.dsb-warning-stack {
    display: grid;
    gap: 6px;
    margin: 0 0 8px;
}

.dsb-release-warning,
.dsb-conflict-warning {
    border-left: 3px solid var(--amber-border);
    background: var(--amber-soft);
    color: var(--amber);
    border-radius: var(--radius-sm);
    padding: 7px 9px;
}

.dsb-release-warning-title {
    margin: 0;
    font-size: 11.5px;
    font-weight: 700;
}

.dsb-release-warning-list {
    margin: 4px 0 0;
    padding-left: 16px;
    font-size: 11.5px;
    font-weight: 600;
    display: grid;
    gap: 2px;
}

.dsb-conflict-warning {
    font-size: 11.5px;
    font-weight: 700;
}

.dsb-completion-checklist {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
    margin-bottom: 8px;
    overflow: hidden;
}

.dsb-completion-head {
    padding: 5px 9px;
    font-size: 9.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--muted);
    background: var(--surface-soft);
    border-bottom: 1px solid var(--border);
}

/* B11-F4 — Zwischenüberschrift zur Gruppierung der Abschluss-Checkliste.
   Reine Optik: erbt die Kopf-Typografie, ergänzt nur eine Trennlinie nach oben. */
.dsb-completion-group {
    border-top: 1px solid var(--border);
}

.dsb-completion-group:first-child {
    border-top: none;
}

.dsb-completion-section {
    padding: 1px 0;
    border-bottom: 1px solid var(--border);
}

.dsb-completion-section:last-child {
    border-bottom: none;
}

.dsb-completion-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 4px 9px;
    min-height: 26px;
}

.dsb-completion-label {
    font-size: 11.5px;
    color: var(--text);
    flex: 1;
    min-width: 0;
}

/* dsb-completion-status: Struktur bleibt erhalten; Farbe/Border/Dot kommen seit
   DSB-STATUS-MIGRATION-F3 aus .wb-status-pill.is-status-* (Gen3-Statussystem). */
.dsb-completion-status {
    font-size: 9.5px;
    font-weight: 800;
    padding: 1px 6px;
    border-radius: 999px;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Farbe migriert zu .wb-status-pill.is-status-* (F3). Selektoren bleiben als
   Strukturhaken erhalten. */
.dsb-completion-status.is-ok {
}

.dsb-completion-status.is-open {
}

.dsb-completion-status.is-hint {
}

.dsb-completion-meta .dsb-completion-row {
    min-height: 22px;
}

.dsb-completion-meta-value {
    font-size: 11px;
    color: var(--muted);
    text-align: right;
    flex-shrink: 0;
    max-width: 60%;
    word-break: break-word;
}

.dsb-completion-export-note {
    padding: 6px 9px;
    font-size: 10.5px;
    color: var(--muted);
    border-top: 1px solid var(--border);
    font-style: italic;
}

/* B11-F5 — Dezenter Freigabe-/Reifehinweis oberhalb der Export-Aktionen.
   Reine Sichtbarkeit: kein Button, keine Sperre. Status-Farben aus der
   bestehenden dsb-completion-Sprache wiederverwendet. */
.dsb-release-readiness {
    margin: 0 0 10px;
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
}

.dsb-release-readiness-head {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted);
    margin-bottom: 4px;
}

.dsb-release-readiness-summary {
    font-size: 12px;
    font-weight: 600;
    color: var(--ink);
}

.dsb-release-readiness-summary.is-ok {
    color: #166534;
}

.dsb-release-readiness-summary.is-open {
    color: var(--amber);
}

.dsb-release-readiness-list {
    list-style: disc;
    margin: 6px 0 0;
    padding-left: 18px;
    display: grid;
    gap: 2px;
    font-size: 11.5px;
    color: var(--muted);
}

.dsb-release-readiness-note {
    margin-top: 6px;
    font-size: 10.5px;
    color: var(--muted);
    font-style: italic;
}

#block-questions .question-status-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

#block-questions .question-status-grid.is-hidden {
    display: none;
}

#block-questions .question-answer-summary {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid #e5ebf2;
    border-radius: 14px;
    background: #fbfcfe;
    padding: 5px 8px;
    box-shadow: 0 1px 1px rgba(15, 23, 42, 0.02);
}

#block-questions .question-answer-summary.is-visible {
    display: flex;
}

#block-questions .question-answer-summary-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 700;
    color: var(--text);
}

#block-questions .question-answer-summary-label {
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--text-strong);
}

#block-questions .question-answer-edit {
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--blue-text);
    font-size: 12px;
    font-weight: 700;
    padding: 0;
    min-height: 0;
    line-height: 1.2;
    box-shadow: none;
}

#block-questions .question-answer-edit:hover {
    color: #1e40af;
    text-decoration: underline;
}

#block-questions .question-answer-edit:disabled {
    opacity: 0.55;
    color: var(--muted-2);
}

.question-create-modal-backdrop .question-answer-edit {
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--blue-text);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    min-height: 0;
    padding: 0;
    box-shadow: none;
}

.question-create-modal-backdrop .question-answer-edit:hover:not(:disabled) {
    color: #1e40af;
    text-decoration: underline;
}

#block-questions .question-answer-summary--confirmed .dsb-status-dot {
    background: var(--teal);
}

#block-questions .question-answer-summary--rejected .dsb-status-dot {
    background: var(--red);
}

#block-questions .question-answer-summary--uncertain .dsb-status-dot {
    background: var(--amber);
}

#block-questions .question-status-grid .dsb-status-button {
    flex: 1 1 auto;
    min-width: 84px;
    justify-content: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 12px;
    border-color: #e5ebf2;
    background: #ffffff;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    gap: 6px;
    box-shadow: 0 1px 1px rgba(15, 23, 42, 0.02);
}

.dsb-status-button {
    min-height: 32px;
    display: flex;
    align-items: center;
    gap: 6px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid var(--border);
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.dsb-status-button.is-active {
    background: var(--teal-soft);
    border-color: var(--teal-border);
    color: var(--teal);
}

.dsb-status-button.is-pending {
    background: #fff7ed;
    border-color: #fdba74;
    color: #9a3412;
}

#block-questions .question-status-grid .dsb-status-button.is-active {
    background: #eef8f5;
    border-color: #bfe8df;
    color: #14756b;
}

#block-questions .question-status-grid .dsb-status-button.is-pending {
    background: #fff7ed;
    border-color: #f8c98d;
    color: #9a3412;
}

.dsb-status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #94a3b8;
}

#block-questions .question-status-grid .dsb-status-dot,
#block-questions .question-answer-summary .dsb-status-dot {
    width: 6px;
    height: 6px;
}

.dsb-status-label {
    display: inline-block;
    line-height: 1.2;
}

.dsb-status-button.is-active .dsb-status-dot {
    background: var(--teal);
}

.dsb-status-button.is-pending .dsb-status-dot {
    background: #c2410c;
}

.dsb-section-head {
    margin: 10px 0 6px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.11em;
    color: var(--muted-2);
    font-weight: 800;
}

/* GEN5-ANALYSIS-DECISION-BADGE-CLASS-PRESERVATION-F3-1: dieselbe Trennung wie
   oben — Badges mit Statuspille werden ausschliesslich von .wb-status-pill
   gestaltet (inkl. der geerbten Versalien des Section-Heads), Badges ohne
   Statuspille bleiben unveraendert. */
.dsb-section-badge:not(.wb-status-pill) {
    text-transform: none;
    letter-spacing: normal;
    border-radius: 999px;
    padding: 1px 7px;
    background: #f1f5f9;
    color: #475569;
    font-size: 10px;
}

.dsb-proposal-block {
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface-soft);
    padding: 12px;
}

.decision-compact .dsb-proposal-block {
    border: none;
    background: transparent;
    padding: 4px 0;
}

.decision-compact .dsb-next-step-button {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    text-align: left;
    font: inherit;
    color: var(--teal);
    border: 1px solid var(--teal-border);
    background: var(--teal-soft);
    border-radius: var(--radius-md);
    padding: 9px 12px;
    cursor: pointer;
    transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease;
}

.decision-compact .dsb-next-step-button::before {
    content: "→";
    font-size: 13px;
    line-height: 1;
    flex-shrink: 0;
}

.decision-compact .dsb-next-step-button:hover:not(:disabled) {
    background: #cff4ef;
    border-color: #8fdccf;
}

.decision-compact .dsb-next-step-button p {
    margin: 0;
}

.decision-compact .dsb-next-step-button:disabled {
    cursor: default;
    opacity: 0.72;
    color: var(--muted);
    background: #f8fafc;
    border-color: var(--border);
}

.dsb-proposal-block p {
    font-size: 13px;
    line-height: 1.45;
}

.readable-text-p {
    margin: 0 0 10px;
    line-height: 1.55;
}

.readable-text-p:last-child {
    margin-bottom: 0;
}

.dsb-proposal-note {
    margin-top: 6px;
    color: var(--muted);
    font-size: 11px;
}

.dsb-gov-warn {
    border-left: 3px solid var(--amber-border);
    background: var(--amber-soft);
    color: var(--amber);
    font-size: 12px;
    font-weight: 600;
    padding: 7px 10px;
    border-radius: var(--radius-sm);
    margin: 4px 0 6px;
}

.act-btn-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
}

.act-btn {
    min-height: 31px;
    font-size: 11.5px;
    font-weight: 700;
    background: #ffffff;
    border: 1px solid var(--border);
}

.dsb-note-ta {
    width: 100%;
    min-height: 64px;
    border-radius: var(--radius-md);
    border: 1px solid #e4e9f0;
    background: var(--surface-2);
    padding: 8px 11px;
    font-size: 12.5px;
    line-height: 1.38;
    resize: vertical;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.dsb-note-ta:focus {
    border-color: var(--blue-text);
    box-shadow: 0 0 0 3px rgba(47, 107, 245, 0.1);
    outline: none;
}

.dsb-note-actions {
    margin-top: 4px;
    display: flex;
    justify-content: flex-end;
}

.dsb-note-actions[hidden] {
    display: none !important;
}

.question-note-wrap .dsb-note-ta {
    min-height: 66px;
    padding: 9px 12px;
    font-size: 13px;
}

.question-check .dsb-note-actions {
    margin-top: 4px;
}

.dsb-trail-list {
    display: flex;
    flex-direction: column;
}

.dsb-trail-item {
    display: grid;
    grid-template-columns: 14px minmax(0, 1fr);
    gap: 6px;
    align-items: start;
    padding: 5px 0;
    border-top: 1px solid #eef2f7;
}

.dsb-trail-item:first-child {
    border-top: 0;
}

.dsb-trail-dot {
    width: 8px;
    height: 8px;
    margin-top: 2px;
    border-radius: 50%;
    background: #94a3b8;
}

.dsb-trail-dot.sys { background: #64748b; }
.dsb-trail-dot.ok { background: #16a34a; }
.dsb-trail-dot.edit { background: #2563eb; }
.dsb-trail-dot.rej { background: #dc2626; }

.dsb-trail-meta {
    font-size: 9.5px;
    color: var(--muted);
    margin-bottom: 1px;
}

.dsb-trail-text {
    font-size: 11.5px;
    font-weight: 600;
}

/* ==================================================================
   GEN7-UX-CASE-HISTORY-GEN7-PROJECTION-I1 — PO Visual Rework.

   Die Fallhistorie wird in der Gen7-Shell vom BESTEHENDEN Renderer
   renderDsbHistory(vm) erzeugt. Derselbe Renderer laeuft unveraendert im
   klassischen Gen3-Reiter weiter -- deshalb ist jede Regel hier eng auf den
   Scope-Marker `.case-workspace-history` gebunden. Es entsteht keine globale
   Aenderung an den geteilten `dsb-trail-*`-Primitives.

   Dasselbe Muster nutzt die Fallübersicht bereits fuer ihre Aktivitaetskarte
   (`.is-overview .case-workspace-case-home-dashboard .dsb-trail-*`).

   Die Werte sind keine neuen Magic Numbers: 15/600 ist die bestehende
   Gen7-Titelrolle, 14/600 und 12/400 sind die bereits im Produkt belegte
   Titel-/Metagrammatik der Arbeitsflaechen.
   ================================================================== */

/* Der Verlaufs-Umschalter war ein ungestylter <button> und trug damit die
   native Browser-Buttonflaeche -- die vom PO gemeldete zusaetzliche Box
   innerhalb der Historie. Er wird zur Gruppenueberschrift, die er inhaltlich
   ist; Bedienbarkeit, Fokus und Semantik bleiben unveraendert. */
/* PO VISUAL REWORK 2 — die grosse innere Karte.

   `renderCollapsible()` erzeugt ein <section>-Element. Der GROSSE innere
   Rahmen stammt damit weder aus einer Historie- noch aus einer Gen7-Klasse,
   sondern aus der globalen ELEMENTREGEL `section { border, background,
   border-radius, box-shadow, padding }` (app_shell.css). Sie traf die
   Historie unsichtbar mit, weil `.dsb-collapsible` selbst keine einzige
   eigene Regel besitzt.

   Neutralisiert wird ausschliesslich im Gen7-Scope. Die globale Elementregel
   bleibt unveraendert -- sie traegt zahlreiche andere Flaechen und den
   klassischen Gen3-Reiter. Das DOM bleibt vollstaendig erhalten: der
   Collapsible-Vertrag und seine Bedienung sind unberuehrt. */
.case-workspace-history .dsb-collapsible {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.case-workspace-history .dsb-collapsible-toggle {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text-strong);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

.case-workspace-history .dsb-collapsible-content {
    margin-top: 16px;
}

/* Gruppenrhythmus: Ereignisgruppen (Verlauf, Maßnahmen-Änderungen,
   Dokumentereignisse, ...) werden durch Abstand und eine leichte Linie
   getrennt -- nicht durch eine weitere Karte. */
/* PO VISUAL REWORK 2: Der Gruppenwechsel ist die groesste Zaesur der Flaeche
   und muss deutlicher sein als der Abstand zwischen zwei Ereignissen. */
.case-workspace-history .dsb-collapsible-content > * + * {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--border-subtle);
}

/* Die Gruppenueberschriften sind im bestehenden Renderer schmucklose <p>. */
/* PO VISUAL REWORK 2: Gruppenueberschriften lasen sich wie weitere
   Ereignistitel. Sie tragen jetzt exakt die bestehende Gen7-Titelrolle
   (.case-workspace-section-title, 15px/700); der Ereignistitel darunter geht
   im Gegenzug eine Gewichtsstufe zurueck. Damit sind Gruppe, Ereignis und
   Metadatum in Groesse UND Gewicht drei unterscheidbare Ebenen. */
.case-workspace-history .dsb-collapsible-content p {
    margin: 0 0 14px;
    color: var(--text-strong);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
}

/* Ereignisrhythmus: Abstand IM Ereignis < zwischen Ereignissen < zwischen
   Gruppen. Vorher lagen alle drei praktisch gleichauf. */
.case-workspace-history .dsb-trail-item {
    gap: 12px;
    padding: 12px 0;
}

.case-workspace-history .dsb-trail-dot {
    margin-top: 7px;
}

.case-workspace-history .dsb-trail-meta {
    margin-bottom: 3px;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.35;
}

.case-workspace-history .dsb-trail-text {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
}

.case-workspace-history .dsb-collapsible-content ul {
    margin: 0;
    padding-left: 18px;
    color: var(--text-strong);
    font-size: 14px;
    line-height: 1.5;
}
/* GEN7-UX-CASE-HISTORY-GEN7-PROJECTION-I1 — Ende des gescopten Blocks. */

.dsb-decision-section-export .handover-preview-label {
    margin: 8px 0 4px;
    font-size: 10px;
}

.dsb-decision-section-export .handover-preview {
    max-height: 170px;
    padding: 8px;
    font-size: 10px;
    line-height: 1.35;
}

.dsb-decision-section-export .rail-bottom-actions {
    gap: 6px;
    margin-top: 8px;
}

.dsb-enhancer-card {
    border-left: 4px solid var(--teal);
    padding: 14px 16px;
}

.dsb-enhancer-card h2,
.dsb-enhancer-card h3,
.export-actions h2 {
    margin-bottom: 7px;
}

.enhancer-neutral {
    border-left-color: var(--border);
}

.enhancer-warning {
    border-left-color: var(--amber);
    background: #fffaf1;
}

.enhancer-error {
    border-left-color: var(--red);
    background: #fff6f6;
}

.enhancer-success {
    border-left-color: var(--teal);
    background: #f0fdf4;
}

.enhancer-headline-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.enhancer-title {
    font-weight: 700;
    color: var(--text);
    margin-bottom: 4px;
    font-size: 13px;
}

.enhancer-body {
    color: var(--muted);
    font-size: 12.5px;
}

.enhancer-badge {
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 800;
}

.enhancer-badge-success {
    background: var(--teal-soft);
    color: var(--teal);
}

.enhancer-badge-warning {
    background: var(--amber-soft);
    color: var(--amber);
}

.enhancer-content {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.enhancer-section {
    border-top: 1px solid var(--border);
    padding-top: 9px;
}

.enhancer-section h3 {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--muted-2);
    margin-bottom: 5px;
}

.enhancer-text {
    font-size: 12.5px;
    line-height: 1.4;
    color: var(--text);
    margin: 0;
}

.dsb-enhancement-body {
    max-height: 180px;
    overflow: hidden;
    padding-right: 4px;
    line-height: 1.5;
    transition: all 0.2s ease;
}

.dsb-enhancement-body.expanded {
    max-height: 520px;
    overflow-y: auto;
}

.dsb-section {
    margin-bottom: 10px;
    padding-left: 10px;
    border-left: 2px solid #d6e4dc;
}

.dsb-line {
    font-size: 13px;
    color: #2b2b2b;
}

.dsb-expand-btn {
    margin-top: 8px;
}

.enhancer-measure-list {
    margin: 0;
    padding-left: 18px;
    display: grid;
    gap: 4px;
}

.enhancer-measure-list li {
    font-size: 12.5px;
    line-height: 1.35;
}

.enhancer-button {
    margin-top: 10px;
}

.export-actions {
    border-left: 4px solid var(--teal);
}

.handover-preview-label {
    margin: 10px 0 5px;
    font-size: 10.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--muted-2);
    font-weight: 800;
}

.handover-preview {
    margin: 0;
    max-height: 220px;
    overflow: auto;
    padding: 10px;
    border: 1px solid #dbe3ec;
    border-radius: 9px;
    background: #f8fafc;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 10.5px;
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
}

.dsb-enhancer-card.enhancer-neutral .enhancer-content {
    display: none;
}

.rail-bottom-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 140px;
    gap: 8px;
    margin-top: 10px;
}

.rail-bottom-actions.handover-actions {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.rail-export-button {
    background: var(--teal);
    color: #fff;
    border-color: var(--teal);
    font-weight: 800;
}

.rail-finish-button {
    background: #fff;
    color: var(--text);
    border-color: var(--border);
    font-weight: 700;
}

.empty-state {
    min-height: 260px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
}

.empty-state h2 {
    font-size: 24px;
    letter-spacing: -0.01em;
}

.empty-state p {
    max-width: 64ch;
}

.empty-hint {
    color: var(--muted);
}

.workbench-input-fields {
    display: grid;
    gap: 8px;
}

.workbench-input-field {
    display: grid;
    gap: 5px;
}

.workbench-input-label {
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 800;
}

.workbench-project-input {
    min-height: 38px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 8px 11px;
    background: var(--surface);
    color: var(--text);
}

.workbench-input-actions {
    margin-top: 6px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.article-head-actions {
    display: inline-flex;
    align-items: center;
    gap: 14px;
}

.article-correct-button {
    border: 1px solid var(--teal);
    background: transparent;
    color: var(--teal);
    padding: 3px 10px;
    border-radius: 999px;
    min-height: 0;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.article-correct-button:hover:not(:disabled) {
    background: color-mix(in srgb, var(--teal) 8%, transparent);
}

.article-correct-button:disabled {
    border-color: var(--muted);
    color: var(--muted);
    cursor: not-allowed;
}

.legal-overrides-editor {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fbfffe;
    display: grid;
    gap: 8px;
}

.legal-overrides-title {
    margin: 0;
    font-size: 14px;
    color: #0f172a;
}

.legal-overrides-marker {
    margin: 0;
    color: var(--teal);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.legal-overrides-label {
    font-size: 12px;
    color: var(--muted-2);
    font-weight: 700;
}

.legal-overrides-law-selector {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.legal-overrides-law-button {
    border: 1px solid var(--border);
    border-radius: 999px;
    background: #fff;
    color: #334155;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 10px;
    cursor: pointer;
}

.legal-overrides-law-button.is-active {
    border-color: var(--teal);
    background: var(--teal-soft);
    color: var(--teal);
}

.legal-overrides-article-list,
.legal-override-article-list {
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
    padding: 8px;
    display: grid;
    gap: 6px;
    max-height: 320px;
    overflow: auto;
}

.legal-overrides-empty {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.legal-overrides-article-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 8px;
    align-items: center;
    padding: 4px 2px;
    border-radius: 8px;
}

.legal-overrides-article-row.is-added {
    background: #f0fdf4;
}

.legal-overrides-article-row.is-removed {
    background: #fef2f2;
}

.legal-overrides-article-label {
    font-size: 12px;
    color: #0f172a;
}

.legal-overrides-article-state {
    font-size: 10px;
    font-weight: 800;
    color: #475569;
    text-transform: uppercase;
}

.legal-overrides-article-state.is-added {
    color: #166534;
}

.legal-overrides-article-state.is-removed {
    color: #b91c1c;
}

.legal-overrides-article-actions {
    display: flex;
    gap: 6px;
}

.legal-overrides-action-button {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    color: #334155;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 8px;
    cursor: pointer;
}

.legal-overrides-action-button.is-add.is-active {
    border-color: #86efac;
    background: #f0fdf4;
    color: #166534;
}

.legal-overrides-action-button.is-remove.is-active {
    border-color: #fecaca;
    background: #fef2f2;
    color: #b91c1c;
}

.legal-overrides-reasoning {
    width: 100%;
    min-height: 88px;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 8px 10px;
    resize: vertical;
    font-size: 13px;
    color: #0f172a;
    background: #fff;
}

.legal-overrides-status {
    margin: 0;
    font-size: 12px;
    font-weight: 700;
}

.legal-overrides-status.is-error {
    color: #b91c1c;
}

.legal-overrides-status.is-success {
    color: #166534;
}

.legal-overrides-actions,
.legal-override-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    position: sticky;
    bottom: 0;
    padding-top: 8px;
    background: var(--surface, #fff);
    border-top: 1px solid var(--border);
}

.article-row-list {
    display: grid;
    gap: 8px;
}

.article-row {
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    border-left: 4px solid var(--amber);
    background: #ffffff;
    position: relative;
    transition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

.article-row + .article-row {
    margin-top: 0;
}

.article-row.article-row-confirmed {
    border-left-color: #059669;
}

.article-row.is-dsb-added {
    border-left-color: var(--teal);
}

.article-row.article-row-primary {
    border-left-width: 6px;
    box-shadow: inset 0 0 0 1px rgba(217, 119, 6, 0.2);
    background: #fffaf0;
}

.article-row.is-open {
    border-color: var(--border);
    border-left-color: var(--amber);
    background: var(--surface-soft);
}

.article-row.article-row-confirmed.is-open {
    border-left-color: #059669;
}

.article-row.is-dsb-added.is-open,
.article-row.article-row-confirmed.is-dsb-added.is-open {
    border-left-color: var(--teal);
}

.article-row.article-row-primary.is-open {
    background: #fff7e3;
}

.article-row.has-dsb-annotation::after {
    content: "";
    position: absolute;
    top: 10px;
    bottom: 10px;
    right: 6px;
    width: 2px;
    border-radius: 999px;
    background: #d39b3e;
    opacity: 0.68;
    pointer-events: none;
}

.article-row:hover {
    border-color: #cbd5e1;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.04);
}

.article-main-line {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr) 84px;
    gap: 12px;
    align-items: start;
}

.article-law-badge {
    max-width: 128px;
    min-height: 24px;
    height: 24px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    justify-self: start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    padding: 3px 9px;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.article-title-wrap {
    min-width: 0;
}

.article-title-line {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
}

.article-arrow {
    color: var(--muted);
    font-weight: 700;
}

.article-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.article-status-line {
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 700;
}

.article-preview {
    margin-top: 2px;
    font-size: 0.76rem;
    line-height: 1.4;
    font-weight: 400;
    color: var(--color-text-muted, #64748b);
    letter-spacing: 0;
}

.article-overflow-menu {
    margin-left: 4px;
}

/* LEGAL-STATUS-MIGRATION-F1 — Der Statuspunkt kommt jetzt zentral aus
   .wb-status-pill::before; Farbe/Border/Dot des Status laufen ueber
   .wb-status-pill.is-status-*. Struktur bleibt als Strukturhaken, die lokale
   Farblogik ist entfernt. status-confirmed/status-possible bleiben leere
   Strukturhaken am statusLine-Parent. */
.article-status-dot {
    width: 7px;
    height: 7px;
    border-radius: 999px;
}

.status-confirmed .article-status-dot {
}

.status-confirmed {
}

.status-possible {
}

.article-why-toggle {
    justify-self: end;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 7px;
    background: var(--surface);
    border: 1px solid var(--border);
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.article-why-box {
    margin-top: 10px;
    margin-left: 140px;
    max-width: 560px;
    border-left: 3px solid var(--teal-border);
    background: #f8fafc;
    border-radius: 8px;
    padding: 10px 14px;
    color: #475569;
    font-size: 13px;
    line-height: 1.45;
}

.article-why-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
}

.article-why-header .article-section-label {
    margin-bottom: 0;
}

.article-why-box > p {
    margin: 0;
}

.article-dsb-annotation {
    margin-top: 10px;
    border: 1px solid #f4d7a4;
    background: #fff8ec;
    border-radius: 10px;
    padding: 10px 12px;
}

.article-dsb-annotation-label {
    display: inline-block;
    margin-bottom: 4px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #9a5b00;
    font-weight: 800;
}

.article-dsb-annotation p {
    margin: 0;
    font-size: 12.5px;
    color: #6b3f00;
    line-height: 1.45;
}

.article-dsb-annotation-edit {
    margin-top: 0;
    padding: 2px 8px;
    border: 1px solid #c97d1a;
    border-radius: 999px;
    background: transparent;
    color: #9a5b00;
    font-size: 11.5px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.article-dsb-annotation-edit:hover:not(:disabled) {
    background: rgba(201, 125, 26, 0.08);
}

.article-dsb-annotation-edit:disabled {
    border-color: var(--muted);
    color: var(--muted);
    cursor: not-allowed;
}

/* Leerer Zustand: neutral statt amber, damit eine fehlende Anmerkung
   nicht mehr Aufmerksamkeit bekommt als die Arbeitsobjekte selbst. */
.article-dsb-annotation.is-empty {
    border-color: var(--line);
    background: transparent;
}

.article-dsb-annotation.is-empty .article-dsb-annotation-label {
    color: var(--muted);
}

.article-dsb-annotation.is-empty p {
    color: var(--muted);
}

.article-dsb-annotation.is-empty .article-dsb-annotation-edit {
    color: var(--teal);
}

.article-dsb-annotation-editor {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #f2ddb9;
    flex-direction: column;
    gap: 8px;
}

.article-dsb-annotation-editor:not([hidden]) {
    display: flex;
}

.article-dsb-annotation .lo-item-reasoning {
    width: 100%;
    min-height: 74px;
    background: #fffdf9;
    border-color: #e9d4b0;
}

.article-dsb-annotation .lo-item-reasoning:focus {
    border-color: #d39b3e;
    box-shadow: 0 0 0 2px rgba(211, 155, 62, 0.18);
}

.article-dsb-annotation-editor .article-head-actions {
    justify-content: flex-end;
    gap: 8px;
}

.article-dsb-annotation .legal-overrides-status {
    margin: 0;
    font-size: 12px;
}

.article-dsb-hint {
    margin-top: 8px;
    margin-left: 140px;
    max-width: 560px;
    border-left: 3px solid var(--teal-border);
    background: #eefaf7;
    border-radius: 8px;
    padding: 8px 12px;
}

.article-dsb-hint-label {
    display: inline-block;
    margin-bottom: 3px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--teal);
    font-weight: 800;
}

.article-dsb-hint p {
    margin: 0;
    font-size: 12.5px;
    color: var(--text);
    line-height: 1.4;
}

.law-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: rgba(15, 23, 42, 0.42);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.law-modal {
    width: min(860px, 100%);
    max-height: min(760px, 88vh);
    overflow: auto;
    border-radius: 18px;
    background: var(--surface);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--border);
}

.law-modal-head {
    position: sticky;
    top: 0;
    background: var(--surface);
    z-index: 1;
    border-bottom: 1px solid var(--border);
    padding: 16px 18px;
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 16px;
}

.law-modal-kicker {
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.11em;
    font-weight: 800;
}

.law-modal-head h2 {
    font-size: 20px;
    line-height: 1.25;
}

.law-modal-close {
    min-width: 44px;
    min-height: 44px;
    border-radius: 999px;
    padding: 0;
    font-size: 22px;
    line-height: 1;
}

.law-modal-close:focus-visible {
    outline: 3px solid var(--blue);
    outline-offset: 2px;
}

.law-modal-body {
    padding: 18px;
}

.law-modal-body h3 {
    margin-bottom: 14px;
    font-size: 16px;
}

.law-paragraph-list {
    display: grid;
    gap: 14px;
}

.law-paragraph {
    border: 1px solid var(--border);
    background: var(--surface-soft);
    border-radius: 12px;
    padding: 12px 14px;
    display: block;
    width: 100%;
    max-width: none;
    margin-bottom: 18px;
}

.law-paragraph-label {
    margin-bottom: 8px;
    color: var(--teal);
    font-weight: 800;
    font-size: 12px;
}

.law-paragraph-text {
    margin: 0 0 8px;
    color: var(--text);
    font-size: 13.5px;
    line-height: 1.65;
    display: block;
    width: 100%;
    max-width: 100%;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
}

.law-clause-list {
    display: grid;
    gap: 12px;
    width: 100%;
}

.law-clause-row {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.law-clause-id {
    font-weight: 800;
    color: #0f766e;
}

.law-clause-text {
    color: var(--text);
    font-size: 13.5px;
    line-height: 1.65;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
}

.law-paragraph p:last-child {
    margin-bottom: 0;
}

.law-inline-link {
    display: inline;
    border: 0;
    background: transparent;
    color: #0f766e;
    padding: 0 2px;
    font: inherit;
    font-weight: 800;
    text-decoration: underline;
    cursor: pointer;
    min-height: 0;
}

.law-modal-muted {
    padding: 18px;
    color: var(--muted);
}

.law-modal-error {
    padding: 18px;
    color: var(--red);
}

.lo-inline-law-wrap {
    margin-top: 6px;
    border-top: 1px solid var(--border);
    padding: 10px 0 2px;
}

.legal-overrides-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: rgba(15, 23, 42, 0.42);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.legal-overrides-modal {
    width: min(780px, calc(100vw - 48px));
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    border-radius: 18px;
    background: var(--surface);
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.2), 0 2px 8px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--border);
    overflow: hidden;
}

.legal-overrides-modal-head {
    flex-shrink: 0;
    border-bottom: 1px solid var(--border);
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: var(--surface);
}
.legal-overrides-modal-head > :first-child {
    flex: 1;
    min-width: 0;
}

.legal-overrides-modal-eyebrow {
    margin-bottom: 3px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--teal);
}

.legal-overrides-modal-title {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.legal-overrides-modal-subtitle {
    margin-top: 4px;
    font-size: 12px;
    color: var(--muted);
}

.legal-overrides-modal-close {
    flex-shrink: 0;
    min-width: 34px;
    min-height: 34px;
    border-radius: 999px;
    padding: 0;
    font-size: 22px;
    line-height: 1;
}

.legal-overrides-modal-body {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.legal-overrides-modal-foot {
    flex-shrink: 0;
    border-top: 1px solid var(--border);
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--surface-soft);
}

.legal-overrides-modal-foot-info {
    flex: 1;
    font-size: 11px;
    color: var(--muted);
    font-weight: 600;
}

.rename-case-modal {
    width: min(560px, 100%);
}

.rename-case-input {
    width: 100%;
    min-height: 40px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    color: var(--text);
    padding: 9px 11px;
    font-size: 14px;
}

.rename-case-input:focus-visible {
    outline: 2px solid rgba(13, 148, 136, 0.35);
    outline-offset: 1px;
}

.rename-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: rgba(15, 23, 42, 0.65);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.rename-modal {
    width: min(480px, 100%);
    display: flex;
    flex-direction: column;
    border-radius: 16px;
    background: var(--surface);
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.2), 0 2px 8px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--border);
    overflow: hidden;
}

.rename-modal-head {
    flex-shrink: 0;
    border-bottom: 1px solid var(--border);
    padding: 14px 18px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    background: var(--surface);
}

.rename-modal-head > :first-child {
    flex: 1;
    min-width: 0;
}

.rename-modal-eyebrow {
    margin-bottom: 3px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--teal);
}

.rename-modal-title {
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.rename-modal-subtitle {
    margin-top: 3px;
    font-size: 12px;
    color: var(--muted);
}

.rename-modal-close {
    flex-shrink: 0;
    min-width: 32px;
    min-height: 32px;
    border-radius: 999px;
    padding: 0;
    font-size: 20px;
    line-height: 1;
}

.rename-modal-body {
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.question-create-modal-backdrop .rename-modal-body {
    max-height: 70vh;
    overflow-y: auto;
}

.rename-modal-meta {
    margin: 0;
    font-size: 11px;
    color: var(--muted);
    font-weight: 600;
    letter-spacing: 0.04em;
}

.rename-modal-error {
    margin: 0;
    font-size: 12px;
    font-weight: 700;
    color: #b91c1c;
}

.rename-modal-hint {
    margin: 0;
    font-size: 12px;
    color: var(--muted);
    font-style: italic;
}

.rename-case-textarea {
    resize: none;
    line-height: 1.5;
    overflow-y: auto;
    word-break: break-word;
}

.rename-char-counter {
    margin: 0;
    font-size: 11px;
    color: var(--muted);
    text-align: right;
}

.rename-char-counter-warn {
    color: #b45309;
    font-weight: 700;
}

.rename-modal-foot {
    flex-shrink: 0;
    border-top: 1px solid var(--border);
    padding: 10px 18px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--surface-soft);
}

.rename-modal-foot-info {
    flex: 1;
    font-size: 11px;
    color: var(--muted);
    font-weight: 600;
}

/* Variant switcher */
.lo-variant-switcher {
    display: flex;
    align-items: center;
    gap: 3px;
    padding: 3px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 8px;
    margin-right: 8px;
    flex-shrink: 0;
}
.lo-variant-label {
    font-size: 9px;
    font-weight: 800;
    color: var(--muted);
    letter-spacing: 0.07em;
    text-transform: uppercase;
    padding: 0 5px;
    white-space: nowrap;
}
.lo-variant-btn {
    min-height: 0;
    padding: 4px 10px;
    border-radius: 5px;
    font-size: 11px;
    font-weight: 700;
    border: none;
    background: none;
    color: var(--muted);
    cursor: pointer;
}
.lo-variant-btn:hover:not(.is-active) {
    color: var(--text);
    background: var(--surface);
}
.lo-variant-btn.is-active {
    background: var(--text);
    color: #fff;
}

/* Regelwerk tabs */
.lo-reg-tabs {
    display: flex;
    gap: 4px;
    background: var(--bg);
    padding: 4px;
    border-radius: 10px;
    border: 1px solid var(--border);
}
.lo-reg-tab {
    flex: 1;
    min-height: 0;
    padding: 8px 12px;
    border-radius: 7px;
    font-size: 13px;
    font-weight: 600;
    border: none;
    background: none;
    color: var(--muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
}
.lo-reg-tab:hover:not(.is-active) {
    color: var(--text);
}
.lo-reg-tab.is-active {
    background: var(--surface);
    color: var(--text);
    box-shadow: var(--shadow-sm);
}
.lo-reg-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--muted-2);
    flex-shrink: 0;
}
.lo-reg-tab.is-active.lo-reg-eu_ai_act .lo-reg-dot { background: var(--blue-text); }
.lo-reg-tab.is-active.lo-reg-gdpr .lo-reg-dot { background: var(--teal); }
.lo-reg-tab.is-active.lo-reg-bdsg .lo-reg-dot { background: #7c3aed; }
.lo-reg-count {
    font-size: 10px;
    font-weight: 800;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--bg);
    color: var(--muted);
    min-width: 18px;
    text-align: center;
}
.lo-reg-tab.is-active .lo-reg-count {
    background: var(--teal-soft);
    color: var(--teal);
}

/* Search */
.lo-search-wrap {
    position: relative;
}
.lo-search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted);
    font-size: 13px;
    pointer-events: none;
}
.lo-search {
    width: 100%;
    min-height: 0;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 8px 12px 8px 30px;
    font-size: 13px;
    font-family: inherit;
    color: var(--text);
    background: var(--surface-soft);
    outline: none;
    transition: border-color 0.14s, box-shadow 0.14s;
}
.lo-search:focus {
    border-color: var(--teal-border);
    background: var(--surface);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.1);
}

/* 2-Spalten */
.lo-two-col-grid {
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: 12px;
    align-items: start;
}
.lo-col {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-soft);
    overflow: hidden;
    min-height: 200px;
}
.lo-col-head {
    padding: 8px 12px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    font-size: 10px;
    font-weight: 800;
    color: var(--muted);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.lo-col.lo-col-selected .lo-col-head {
    background: var(--teal-soft);
    color: var(--teal);
}
.lo-col-count {
    font-size: 10px;
    font-weight: 800;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--bg);
    color: var(--muted);
}
.lo-col.lo-col-selected .lo-col-count {
    background: var(--teal);
    color: #fff;
}
.lo-col-body {
    flex: 1;
    overflow-y: auto;
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    max-height: min(360px, 42vh);
}
.lo-col-body::-webkit-scrollbar { width: 8px; }
.lo-col-body::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; border: 2px solid var(--surface-soft); }
.lo-col-empty {
    padding: 16px 8px;
    text-align: center;
    font-size: 12px;
    color: var(--muted);
}
.lo-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    border-radius: 8px;
    cursor: pointer;
    border: 1px solid transparent;
    background: var(--surface);
    font-family: inherit;
    text-align: left;
    transition: border-color 0.1s, background 0.1s;
    min-height: 0;
}
.lo-item:hover {
    border-color: var(--border);
    background: #f8fafc;
}
.lo-col-selected .lo-item:hover { background: #fef2f2; border-color: #fecaca; }
.lo-col-available .lo-item:hover { background: #f0fdf4; border-color: #a7f3d0; }
.lo-item-text,
.lo-liste-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
    cursor: pointer;
}
.lo-item-header {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.lo-item-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
}
.lo-item-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
}
.lo-item-preview {
    margin-top: 3px;
    font-size: 0.76rem;
    line-height: 1.35;
    font-weight: 400;
    color: var(--color-text-muted, #64748b);
}
.lo-item-related-link {
    border: none;
    background: transparent;
    padding: 0;
    margin: 0;
    color: inherit;
    cursor: pointer;
    font: inherit;
    text-decoration: underline;
}
.lo-item-act {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    padding: 0;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 900;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--muted);
    cursor: pointer;
    transition: border-color 0.1s, background 0.1s, color 0.1s;
}
.lo-item-act:hover {
    border-color: var(--border);
    background: #f8fafc;
}
.lo-item-law-btn {
    font-size: 12px;
    line-height: 1;
}
.lo-item-wrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.lo-item-reasoning-wrap {
    padding: 6px 8px;
    background: var(--amber-soft, #fff4df);
    border-radius: 6px;
    border: 1px solid var(--amber-border, #f4c16e);
}
.lo-col-reasoning-area {
    flex-shrink: 0;
    border-top: 1px solid var(--border);
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: var(--surface);
}
.lo-item-reasoning-wrap--below-list {
    margin: 0;
}
.lo-item-reasoning-help {
    font-size: 11px;
    line-height: 1.4;
    color: var(--muted);
}
.lo-item-wrap.is-active-detail {
    background: var(--amber-soft, #fff4df);
    border-left: 2px solid var(--amber-border, #f4c16e);
}
.lo-master-detail-reasoning {
    margin: 0;
    border-top: 1px solid var(--border);
    border-radius: 0;
}
.lo-master-detail-header {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}
.lo-master-detail-article {
    font-size: 11px;
    font-weight: 600;
    color: var(--text);
    background: var(--surface-2, #f5f5f5);
    padding: 1px 6px;
    border-radius: 3px;
}
.lo-item-reasoning-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--amber, #a65f00);
    display: block;
    margin-bottom: 3px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.lo-item-reasoning {
    width: 100%;
    border: 1px solid var(--amber-border, #f4c16e);
    border-radius: 6px;
    padding: 5px 8px;
    font-size: 12px;
    resize: vertical;
    min-height: 48px;
    background: var(--surface);
    color: var(--text);
    line-height: 1.4;
}
.lo-item-reasoning:focus {
    outline: none;
    border-color: var(--amber, #a65f00);
    box-shadow: 0 0 0 2px var(--amber-soft, #fff4df);
}

/* Chips */
.lo-chip-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 6px;
    padding: 12px;
    background: var(--surface-soft);
    border: 1px solid var(--border);
    border-radius: 10px;
    max-height: 320px;
    overflow-y: auto;
}
.lo-chip {
    padding: 8px 10px;
    border-radius: 10px;
    background: var(--surface);
    border: 1px solid var(--border);
    font-size: 13px;
    font-weight: 600;
    color: var(--muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    font-family: inherit;
    text-align: left;
    min-height: 0;
    transition: all 0.1s;
}
.lo-chip:hover { border-color: var(--border); background: #f1f5f9; color: var(--text); }
.lo-chip.is-on {
    background: var(--teal-soft);
    border-color: var(--teal-border);
    color: var(--teal);
    font-weight: 700;
}
.lo-chip-icon {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 800;
    background: var(--bg);
    color: var(--muted);
    border: 1px solid var(--border);
    flex-shrink: 0;
}
.lo-chip.is-on .lo-chip-icon {
    background: var(--teal);
    color: #fff;
    border-color: var(--teal);
}
.lo-chip-legend {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 6px;
    font-size: 11px;
    color: var(--muted);
}
.lo-chip-legend-item {
    display: flex;
    align-items: center;
    gap: 5px;
}
.lo-chip-legend-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: 1px solid var(--border);
    background: var(--surface);
}
.lo-chip-legend-dot.is-on { background: var(--teal); border-color: var(--teal); }

/* Liste (Variant A) */
.lo-liste-wrap {
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    overflow: hidden;
}
.lo-liste-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
    transition: background 0.1s;
}
.lo-liste-row:last-child { border-bottom: none; }
.lo-liste-row:hover { background: var(--surface-soft); }
.lo-liste-row.is-current { background: linear-gradient(90deg, rgba(15,118,110,.04), transparent 40%); }
.lo-liste-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 600;
    color: var(--teal);
    text-decoration: underline;
    text-decoration-color: rgba(15,118,110,.3);
    text-underline-offset: 2px;
}
.lo-liste-status {
    font-size: 10px;
    font-weight: 800;
    color: #166534;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    flex-shrink: 0;
    min-width: 120px;
    text-align: right;
}
.lo-liste-status.is-empty { color: var(--muted-2); }

/* V2 frontend design alignment */
body {
    font-family: var(--font-ui);
    font-feature-settings: "cv05", "cv08", "ss01";
    background: var(--page);
    color: var(--ink);
}

.app-root,
.main {
    background: var(--page);
}

.topbar {
    height: var(--topbar-height);
    border-bottom: 1px solid var(--line);
    background: var(--surface);
    box-shadow: none;
}

.topbar-logo,
.sidebar-brand-logo {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
    border-radius: var(--r-2);
    background: linear-gradient(180deg, #3f78f7 0%, #2f6bf5 100%);
    box-shadow: 0 2px 6px rgba(47, 107, 245, 0.35);
}

.topbar-title-wrap strong,
.sidebar-brand-name {
    color: var(--ink);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.topbar-title-wrap span,
.sidebar-footer-copy {
    color: var(--ink-4);
}

.sidebar {
    width: var(--sidebar-width);
    background: var(--surface-2);
    border-right: 1px solid var(--line);
}

.sidebar-nav {
    padding: var(--space-4) var(--space-3) var(--space-2);
}

.sidebar-group {
    margin-bottom: var(--space-3);
}

.sidebar-group-title {
    padding: var(--space-2) var(--space-3) var(--space-2);
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
}

.sidebar-nav-item,
.proj-row {
    min-height: 40px;
    gap: var(--space-2);
    padding: var(--space-2);
    border-radius: var(--r-2);
    color: var(--ink-2);
    font-size: 14px;
    font-weight: 500;
}

.sidebar-nav-item:hover,
.proj-row:hover {
    background: var(--surface-2);
    color: var(--ink-2);
}

.sidebar-nav-item-active,
.proj-row.act {
    background: var(--blue-bg);
    color: var(--blue-600);
    font-weight: 600;
    box-shadow: inset 2px 0 var(--blue);
}

.sidebar-nav-icon {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
    color: var(--ink-4);
}

.sidebar-compliance-badge {
    border-radius: var(--r-2);
    background: var(--green-bg);
    border-color: var(--green-bg-2);
    color: var(--green-text);
    padding: 9px 11px;
    font-size: 12px;
    font-weight: 600;
}

.main:has(.case-statusband) {
    padding: 20px 32px 16px;
}

.workbench-main {
    grid-template-columns:
        minmax(0, 1fr)
        var(--rail-resize-handle-width)
        var(--rail-width);
    gap: 20px;
}

.case-statusband {
    gap: 18px;
    padding: 12px 0 0;
}

.case-statusband-title {
    color: var(--ink);
    font-size: clamp(24px, 1.65vw, 28px);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.case-statusband-meta,
.case-statusband-breadcrumb {
    color: var(--ink-3);
}

.case-statusband-breadcrumb-item-root,
.case-statusband-breadcrumb-item-project {
    color: var(--blue);
}

.case-statusband-action {
    min-height: 40px;
    padding: 8px 14px;
    border-radius: var(--r-3);
    border-color: var(--line);
    box-shadow: var(--sh-1);
}

.case-statusband-action-primary {
    background: var(--blue);
    border-color: var(--blue);
    box-shadow: 0 4px 10px rgba(47, 107, 245, 0.18);
}

.case-executive-summary {
    padding: 0;
    border: 1px solid var(--line);
    border-radius: var(--r-6);
    box-shadow: var(--sh-2);
}

.case-executive-summary-grid,
.case-executive-summary-grid-workflow {
    grid-template-columns: 1fr 1fr 1.15fr 1.25fr;
}

.case-executive-panel {
    min-height: 132px;
    gap: 11px;
    padding: 20px;
    border-right: 1px solid var(--line-2);
}

.case-executive-panel-highlight {
    background: var(--red-soft);
    border-radius: 0;
}

.case-executive-panel-label {
    color: var(--ink-4);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.case-executive-panel-headline {
    color: var(--ink);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.workflow-tab-shell {
    margin: 0 0 22px;
    padding: 0;
}

.workflow-tab-main-nav {
    /* Nie stumm abschneiden: bei Platzmangel umbrechen statt unsichtbar scrollen. */
    flex-wrap: wrap;
    gap: 4px;
    padding: 0;
    border-bottom: 0;
}

.workflow-tab-btn {
    flex: 0 0 auto;
    min-height: 41px;
    padding: 11px 10px;
    color: var(--ink-3);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0;
}

.workflow-tab-btn:hover {
    color: var(--ink-2);
}

.workflow-tab-btn-active {
    color: var(--blue);
    border-bottom-color: var(--blue);
}

.workspace {
    padding-right: 0;
}

.right-rail {
    min-width: 0;
    overflow-y: auto;
    position: sticky;
    top: 8px;
    align-self: start;
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 84px;
    max-height: calc(100vh - var(--topbar-height) - 44px);
}

section,
.all-cases-table-card,
.dsb-assistant-card,
.decision-block,
.dsb-decision-actions,
.dsb-enhancer-card,
.export-actions,
.context-panel-section {
    border: 1px solid var(--line);
    border-radius: var(--r-5);
    background: var(--surface);
    box-shadow: none;
}

.right-rail section {
    padding: 20px 22px;
}

.card-title,
.card-count,
.questions-block-title,
.rail-title,
.dsb-panel-title {
    color: var(--ink);
}

.card-title {
    color: var(--ink-4);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.questions-toolbar {
    align-items: center;
    gap: 9px;
    margin-bottom: 11px;
}

.questions-block-title {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.questions-count-badge {
    min-width: 0;
    height: auto;
    padding: 2px 9px;
    border-radius: 20px;
    background: var(--blue-bg);
    color: var(--blue);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

.dsb-questions-block {
    border: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

#block-questions .question-checklist {
    gap: 11px;
}

#block-questions .question-check {
    border: 1px solid var(--line);
    border-left: 0;
    border-radius: var(--r-5);
    background: var(--surface);
    padding: 16px 18px;
    box-shadow: var(--sh-1);
}

#block-questions .question-check:not(.is-collapsed) {
    border-color: var(--ink-5);
    padding: 16px 18px 18px;
    box-shadow: var(--sh-2);
}

#block-questions .question-check.is-collapsed {
    min-height: 58px;
    padding-top: 16px;
    padding-bottom: 16px;
}

#block-questions .question-collapse-header {
    gap: 13px;
    min-height: 24px;
}

#block-questions .question-collapse-title,
#block-questions .question-check-text {
    color: var(--ink);
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0;
}

#block-questions .question-check:not(.is-collapsed) .question-collapse-title {
    font-size: 14.5px;
    line-height: 1.35;
}

#block-questions .question-collapse-header::before {
    /* GEN3-QUESTIONS-HEADER-STATUS-SYNTAX-F1: neutraler Ausrichtungsslot.
       Statusinformation lebt ausschliesslich in der wb-card-pill. */
    content: "";
    display: block;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    margin-top: -1px;
    pointer-events: none;
}

#block-questions .question-collapse-pill,
.status-chip,
.overview-status-badge,
.dsb-section-badge,
.rail-badge,
.proj-count {
    border-radius: 20px;
}

#block-questions .question-body.question-collapse-content {
    margin-top: 16px;
    /* CARD-GRAMMAR-F2C — Body (Bewertung, Rechtsbezug, DSB-Notiz, Aktionen) leicht
       weiter nach rechts als der Titel; Header/Icon-Slot bleibt unverändert. */
    padding: 0 0 0 51px;
    gap: 16px;
}

#block-questions .question-body.question-collapse-content > .question-status-grid:first-child {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
}

#block-questions .question-body.question-collapse-content > .question-status-grid.is-hidden:first-child {
    display: none;
}

#block-questions .question-body.question-collapse-content > .question-status-grid:first-child .dsb-status-button:first-of-type {
    margin-left: 0;
}

#block-questions .question-answer-summary,
#block-questions .question-status-grid .dsb-status-button,
.dsb-status-button,
.workbench-input-textarea,
.workbench-project-input,
.all-cases-search-input,
.topbar-login-form input,
.dsb-note-ta,
.aw-edit-input,
.aw-edit-select,
.aw-edit-textarea,
.legal-overrides-editor,
.legal-overrides-article-list,
.legal-override-article-list,
.legal-overrides-reasoning {
    border-radius: var(--r-3);
}

button,
.workbench-primary-button,
.workbench-ghost-button,
.all-cases-toolbar .workbench-ghost-button,
.all-cases-toolbar .workbench-primary-button {
    border-radius: var(--r-2);
}

/* GEN7-UX-ALL-CASES-COMPACT-VISUAL-REALIGNMENT-I1: die zweite, hier spaeter im
   Blatt liegende .all-cases-page*-Schicht ist in den einen Owner oben
   (Suchbegriff "EIN konsolidierter Style-Owner") gefaltet und entfernt --
   Titelgroesse, Seiten-gap/-padding, thead-/hover-Flaeche und aktive Zeile
   leben jetzt genau einmal. */

.workbench-input,
.decision-block {
    padding: 20px 22px;
}

.workbench-input-title,
.workbench-input-label,
.db-label,
.dsb-section-head {
    color: var(--ink-4);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.workbench-input-textarea,
.workbench-project-input,
.dsb-note-ta {
    border-color: var(--line);
    background: var(--surface-2);
    color: var(--ink);
}

.decision-block {
    border-radius: var(--r-6);
    box-shadow: var(--sh-2);
}

.dsb-decision-section,
.dsb-context-summary,
.dsb-completion-checklist,
.dsb-proposal-block {
    border-radius: var(--r-4);
}

/* Batch 42a: Prüffragen-Cards näher am Zielbild */
.dsb-questions-block {
    color: #101827;
}

.questions-toolbar {
    min-height: 0;
}

#block-questions .question-check {
    transition: border-color 140ms ease, box-shadow 140ms ease, background-color 140ms ease;
}

#block-questions .question-check:not(.is-collapsed) {
    background: #ffffff;
}

#block-questions .question-check--rejected:not(.is-collapsed),
#block-questions .question-check--uncertain:not(.is-collapsed) {
    background: #ffffff;
    border-color: var(--ink-5);
}

#block-questions .question-collapse-header {
    align-items: flex-start;
}

#block-questions .question-check.is-collapsed .question-collapse-header {
    align-items: center;
}

#block-questions .question-check.is-collapsed .question-collapse-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#block-questions .question-collapse-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    height: auto;
    justify-content: center;
    /* CARD-GRAMMAR-F2D — Status-Pille kompakter (vorher 11.5px / 4px 11px). */
    padding: 3px 9px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
}

/* Statusfarbe und Status-Dot laufen zentral ueber .wb-status-pill /
   .wb-status-pill::before (Gen3). Lokale Farb-, Border- und Dot-Regeln entfernt,
   damit kein doppelter Dot und keine lokale Farbquelle mehr existiert. */

#block-questions .question-collapse-chevron {
    width: 18px;
    height: 24px;
    color: #94a3b8;
    font-size: 18px;
    line-height: 20px;
    text-align: center;
}

#block-questions .question-check:not(.is-collapsed) .question-collapse-chevron {
    transform: rotate(180deg);
}

#block-questions .question-source-tag {
    align-self: flex-start;
    background: var(--surface-soft);
    color: var(--muted);
}

/* QUESTIONS-META-LINE-HARMONIZATION-F1 — Meta-Tags als eine kompakte
   flex-wrap-Zeile analog #block-measures .aw-measure-meta-line (gap 6px,
   align-items center) statt je Tag eine eigene Body-Grid-Zeile. margin-top und
   align-self der Einzel-Tags werden innerhalb der Zeile neutralisiert, damit der
   Rhythmus exakt der Maßnahmen-Meta-Line entspricht. */
#block-questions .question-meta-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

#block-questions .question-meta-line .question-source-tag {
    margin-top: 0;
    align-self: center;
}

#block-questions .question-status-grid .dsb-status-button {
    flex: 0 0 auto;
    min-width: 0;
    height: auto;
    min-height: 0;
    justify-content: center;
    padding: 7px 13px;
    border-radius: var(--r-2);
    border: 1px solid #d9e2ec;
    background: #fcfdfe;
    color: #4b5563;
    font-size: 12.5px;
    font-weight: 600;
    gap: 6px;
    box-shadow: none;
}

#block-questions .question-status-grid .dsb-status-button:hover:not(:disabled) {
    border-color: #cfd8e3;
    background: #f8fafc;
}

#block-questions .question-status-grid .dsb-status-button.is-active[data-status="confirmed"],
#block-questions .question-status-grid .dsb-status-button.is-pending[data-status="confirmed"] {
    border-color: var(--green-bg-2);
    background: var(--green-bg);
    color: var(--green-text);
}

#block-questions .question-status-grid .dsb-status-button.is-active[data-status="rejected"],
#block-questions .question-status-grid .dsb-status-button.is-pending[data-status="rejected"] {
    border-color: var(--red-border);
    background: var(--red-soft);
    color: var(--red-text);
}

#block-questions .question-status-grid .dsb-status-button.is-active[data-status="open"],
#block-questions .question-status-grid .dsb-status-button.is-pending[data-status="open"] {
    border-color: var(--ink-5);
    background: var(--gray-chip);
    color: var(--ink-2);
}

#block-questions .question-status-grid .dsb-status-button.is-active[data-status="uncertain"],
#block-questions .question-status-grid .dsb-status-button.is-pending[data-status="uncertain"] {
    border-color: var(--amber-border);
    background: var(--amber-soft);
    color: var(--amber);
}

#block-questions .question-status-grid .dsb-status-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    border-radius: 0;
    background: transparent;
    color: currentColor;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}

#block-questions .question-status-grid .dsb-status-dot::before {
    content: "–";
}

#block-questions .question-status-grid .dsb-status-button[data-status="confirmed"] .dsb-status-dot::before {
    content: "✓";
}

#block-questions .question-status-grid .dsb-status-button[data-status="rejected"] .dsb-status-dot::before {
    content: "×";
}

#block-questions .question-status-grid .dsb-status-button[data-status="uncertain"] .dsb-status-dot::before {
    content: "?";
    font-size: 15px;
    font-weight: 800;
}

#block-questions .question-note-wrap.is-visible {
    gap: 10px;
}

#block-questions .question-body.question-collapse-content .question-note-wrap {
    display: grid;
    gap: 8px;
    /* CARD-GRAMMAR-F2F — ruhige umrandete DSB-Notiz-Box wie Legal
       (.article-dsb-annotation): heller Grund, 1px Rahmen, abgerundet. */
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(248, 250, 252, 0.48);
    padding: 10px 12px;
}

.question-note-wrap .case-summary-label {
    /* CARD-GRAMMAR-F2E — auf einheitlichen Legal-Section-Label-Stil gebracht. */
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

#block-questions .question-note-wrap .dsb-note-ta {
    min-height: 56px;
    padding: 10px 12px;
    border: 1px solid #dbe3ec;
    border-radius: var(--r-3);
    /* CARD-GRAMMAR-F2F — weißes Feld in der hellen Box (wie Legal-Editor). */
    background: #fcfdfe;
    color: var(--ink);
    font-size: 12.5px;
    font-weight: 400;
    line-height: 1.45;
    box-shadow: none;
}

.question-note-wrap .dsb-note-ta:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px var(--blue-bg);
}

.question-answer-trail {
    justify-self: end;
    margin-top: -6px;
    color: #8a97aa;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.25;
}

.question-answer-trail::after {
    content: " ✓";
    color: #94a3b8;
}

/* Batch 43a: Maßnahmen an das Prüffragen-Designsystem angleichen */
.measures-block {
    border: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

.aw-wrap.aw-card-view {
    display: grid;
    gap: 16px;
}

.aw-toolbar {
    align-items: center;
    gap: 10px;
    padding: 0;
    border-bottom: 0;
}

.aw-toolbar-title,
.measure-group-title {
    color: var(--ink-2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.aw-toolbar-title {
    padding-top: 10px;
}

.aw-toolbar-actions {
    gap: 8px;
}

.aw-filter,
.aw-add-btn,
.aw-bulk-btn {
    min-height: 0;
    padding: 9px 14px;
    border-radius: var(--r-2);
    border: 1.5px solid var(--line);
    background: #ffffff;
    color: var(--ink-2);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    box-shadow: none;
}

.aw-filter.active {
    border-color: var(--blue);
    background: var(--blue-bg);
    color: var(--blue);
    font-weight: 700;
}

.aw-bulk-btn.is-primary {
    border-color: var(--ink);
    background: var(--ink);
    color: #ffffff;
    font-weight: 700;
}

.aw-bulk-bar {
    margin: 0;
    border: 1px solid var(--line);
    border-radius: var(--r-4);
    background: var(--surface);
    padding: 12px 14px;
    box-shadow: var(--sh-1);
}

.aw-bulk-count {
    color: var(--ink-2);
    font-size: 12.5px;
}

.measure-group + .measure-group {
    margin-top: 18px;
}

#block-measures .measure-group {
    border: 0;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.measure-group-header {
    padding: 0 2px 2px;
}

.measure-group-title {
    margin: 0;
}

.measure-group-count {
    min-width: 0;
    height: auto;
    padding: 2px 9px;
    border-radius: 20px;
    border: 1px solid var(--line);
    background: var(--surface-2);
    color: var(--ink-4);
    font-size: 12px;
    font-weight: 700;
}

.measure-group-rows {
    border-top: 0;
    display: grid;
    gap: 11px;
}

.aw-card-view .aw-row.wb-card {
    /* Basis-Optik (Padding/Border/Radius/Background/Shadow/Overflow) kommt aus
       .wb-card (DS-2). Hier nur der Maßnahmen-spezifische Listen-Delta. */
    margin-top: 0;
}

.aw-card-view .aw-row.wb-card:last-child {
    border-bottom: 1px solid var(--line);
}

/* F1C-B2A-R3C — Card-Spacing an Rechtsgrundlagen angleichen: mehr linke
   Luftigkeit in den Maßnahmen-Karten. Scoped auf #block-measures, damit die
   geteilte .wb-card-Basis (DS-2, Prüffragen/Dokumente) unberührt bleibt. Nur
   horizontaler Innenabstand; vertikales Padding (inkl. open-state padding-bottom)
   bleibt aus den bestehenden Regeln erhalten. */
#block-measures .aw-row.wb-card {
    padding-top: 20px;
    padding-bottom: 20px;
    padding-left: 60px;
    padding-right: 16px;
}

.aw-row.wb-card.is-done {
    opacity: 0.82;
}

.aw-row.wb-card:not(.is-collapsed) {
    border-color: var(--ink-5);
    padding-bottom: 22px;
    box-shadow: var(--sh-2);
}

.aw-measure-header-check {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 2px;
}

.aw-measure-header-checkbox {
    width: 18px;
    height: 18px;
    min-height: 18px;
    accent-color: var(--green);
}

/* MEASURES-HEADER-ALIGNMENT-F1 — echte mehrspaltige Main-Line wie
   #block-legal .article-main-line: Meta+Titel+Preview | Status | Chevron.
   align-items:center beruhigt die Hierarchie (vorher flex-start = "Formular").
   div[role=button], daher cursor/focus-visible statt nativem Button. */
.aw-measure-collapse-header {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 14px;
    align-items: center;
    padding: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: left;
    color: inherit;
    font: inherit;
    outline: none;
}

.aw-measure-collapse-header:focus-visible {
    border-radius: 10px;
    box-shadow: 0 0 0 2px rgba(20, 184, 166, 0.14);
}

.aw-measure-collapse-title-wrap {
    min-width: 0;
    display: grid;
    gap: 4px;
}

/* F1C-B2A-R3B — Meta-Line im Maßnahmen-Header (Rechtsgrundlagen-Konvergenz).
   Gleiche Informationshierarchie wie #block-legal .article-meta-line: kompakte
   Rechtsbezug-Pille (Variante C "Art. X +n") plus Quelle-Pille, read-only. */
.aw-measure-meta-line {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.aw-measure-meta-badge {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    max-width: 220px;
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.35;
    border: 1px solid transparent;
}

.aw-measure-meta-badge.aw-law-pill-ai-act {
    background: var(--blue-soft);
    border-color: var(--blue-border);
    color: var(--blue-text);
}

.aw-measure-meta-badge.aw-law-pill-gdpr {
    background: var(--teal-soft);
    border-color: var(--teal-border);
    color: var(--teal);
}

.aw-measure-meta-badge.aw-law-pill-bdsg,
.aw-measure-meta-badge.aw-law-pill-betrvg {
    background: #f5f3ff;
    border-color: #ddd6fe;
    color: #6d28d9;
}

.aw-measure-collapse-title-line {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.aw-measure-collapse-title {
    flex: 1 1 auto;
    min-width: 0;
    color: var(--ink);
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0;
}

/* F1C-B2A-R2 — Kurzbeschreibung im geschlossenen Zustand (wie .article-preview
   bei Rechtsgrundlagen): nur die Kernbotschaft ist fett (Titel), der Rest steht
   normalgewichtig darunter. Im geoeffneten Zustand zeigt der Body die volle
   Beschreibung, daher hier ausgeblendet (keine Dopplung). */
.aw-measure-collapse-preview {
    color: var(--ink-2);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

#block-measures .aw-row.wb-card:not(.is-collapsed) .aw-measure-collapse-preview,
.case-workspace-workpanel .aw-row.wb-card.measure-workbench-focus .aw-measure-collapse-preview {
    display: none;
}

.aw-row.is-done .aw-measure-collapse-preview {
    color: var(--ink-4);
}

.aw-row.is-done .aw-measure-collapse-title {
    text-decoration: line-through;
    color: var(--ink-4);
}

.aw-measure-collapse-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 0;
    height: auto;
    /* CARD-GRAMMAR-F2D — Status-Pille kompakter (vorher 11.5px / 4px 11px). */
    padding: 3px 9px;
    border: 0;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
}

/* MEASURES-STATUS-MIGRATION-F1 — Statusfarbe/Dot der Header-Pille laufen jetzt
   über das gemeinsame Gen3-Statussystem (.wb-status-pill + .is-status-* Tone,
   Dot via .wb-status-pill::before). Die früheren lokalen Farbdefinitionen
   (.aw-measure-collapse-pill background/color) und der manuelle Dot
   (.aw-measure-collapse-pill-dot) sind entfallen; nur Struktur/Layout bleibt. */

#block-measures .aw-row.wb-card:not(.is-collapsed) .aw-measure-collapse-pill {
    display: inline-flex;
}

/* Chevron-Verhalten 1:1 wie .wb-card-chevron (DS-2): ⌄ im eingeklappten
   Zustand, Drehung um 180° beim Öffnen. Vorher fehlte jede Regel, daher
   drehte das Maßnahmen-Chevron nicht. */
.aw-measure-collapse-chevron {
    flex: 0 0 auto;
    color: var(--muted-2);
    font-size: 14px;
    line-height: 1;
    transition: transform 140ms ease;
}

.aw-row.wb-card:not(.is-collapsed) .aw-measure-collapse-chevron {
    transform: rotate(180deg);
}

#block-measures .aw-measure-body.wb-card-body,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-body.wb-card-body {
    margin-top: 16px;
    /* CARD-GRAMMAR-F2C — Arbeits-Body ab Rechtsbezug leicht einrücken
       (Rechtsbezug, Quelle, Status, DSB-Notiz, Aktionen). Titel/Header bleibt
       auf Kartenkante. */
    padding-left: 14px;
    gap: 16px;
    background: transparent;
}

/* CARD-GRAMMAR-F2C — Beschreibung bleibt auf Titel-Ebene (erstes Body-Kind),
   nur sie wird zurückgezogen; alles ab Rechtsbezug bleibt eingerückt. */
#block-measures .aw-measure-body.wb-card-body > .aw-measure-detail-section-wide:first-child,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-body.wb-card-body > .aw-measure-detail-section-wide:first-child {
    margin-left: -14px;
}

#block-measures .aw-measure-detail-grid,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-detail-grid {
    display: contents;
}

#block-measures .aw-measure-detail-section,
#block-measures .aw-measure-detail-section-wide,
#block-measures .aw-measure-detail-section-status,
#block-measures .aw-measure-detail-section-notes,
/* GEN5-MEASURES-FOCUSPANEL-UX-REDESIGN-F1: dieselbe Section-Grammatik im
   Workspace-Fokuspanel (.measure-workbench-focus) — vorher unscoped (keine
   #block-measures-Ahnenschaft im Fokuspanel-DOM), dadurch display:block statt
   grid und keine Section-Abstaende. Keine neuen Werte, nur Selektor-Erweiterung
   analog .case-workspace-workpanel .question-workbench-focus. */
.case-workspace-workpanel .measure-workbench-focus .aw-measure-detail-section,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-detail-section-wide,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-detail-section-status,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-detail-section-notes {
    min-width: 0;
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

#block-measures .aw-measure-detail-section-wide,
#block-measures .aw-measure-detail-section-status,
#block-measures .aw-measure-detail-section-notes,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-detail-section-wide,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-detail-section-status,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-detail-section-notes {
    grid-column: auto;
}

/* GEN7-UX-MASSNAHMEN-REDESIGN-I1 — Regionen der Maßnahmen-Arbeitsflaeche
   (A Aktuelle Maßnahme, B Maßnahmenbasis, C Nachweis und Arbeitsnotiz).
   Reine Gruppierung innerhalb der bestehenden Card-/Section-Grammatik: keine
   neuen Tokens, keine neue Komponente, keine Farb- oder Statusaussage. Die
   Region ist ein Vollbreiten-Kind des Card-Body und stapelt die bereits
   vorhandenen Detailabschnitte. Ausschliesslich im Fokuspanel wirksam — der
   klassische Gen3-Reiter (#block-measures) bleibt unberuehrt. */
.case-workspace-workpanel .measure-workbench-focus .aw-measure-region {
    grid-column: 1 / -1;
    min-width: 0;
    display: grid;
    gap: 14px;
    margin: 0;
    padding: 0;
}

.case-workspace-workpanel .measure-workbench-focus .aw-measure-region
    + .aw-measure-region {
    padding-top: 16px;
    border-top: 1px solid var(--line-soft, #eef2f7);
}

.case-workspace-workpanel .measure-workbench-focus .aw-measure-region-title {
    margin: 0;
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Ehrlicher Leerwert (WSC-09/UX-CH-03): sichtbar als Abwesenheit, nie als
   Fachwert — gleiche Zelle, nur gedaempft und kursiv. */
.case-workspace-workpanel .measure-workbench-focus .aw-source-cell.is-empty {
    color: var(--text-soft);
    font-style: italic;
}

/* GEN7-UX-MEASURES-WORKING-SURFACE-I1 — Typografie der Arbeitsflaeche.
   Nur im Fokuspanel gescoped: Labels und Regionenueberschriften folgen der
   belegten Case-Home-Skala (12/500, keine Versalien, kein Gewicht > 600).
   Der klassische Gen3-Reiter bleibt unveraendert. */
/* GEN7-UX-WORKSPACE-MEASURES-PATTERN-CONVERGENCE-I1 (Slice A): dieselbe
   Normalisierung gilt ab jetzt fuer die Dokumentation. Sie ist der groesste
   einzelne visuelle Unterschied gewesen: die Dokumentation beschriftete ihre
   Regionen und Felder in 11px/800 VERSALIEN mit 0.08em Tracking, waehrend die
   Referenzflaeche Maßnahmen im selben Fokuspanel ruhig in 12px/500 spricht.
   Die Selektorliste waechst, es entsteht keine zweite Regel. */
.case-workspace-workpanel .measure-workbench-focus .aw-measure-region-title,
.case-workspace-workpanel .measure-workbench-focus .measure-detail-label,
.case-workspace-documents-workbench .case-workspace-workpanel .doc-workbench-region-title,
.case-workspace-documents-workbench .case-workspace-workpanel .measure-detail-label,
.case-workspace-documents-workbench .case-workspace-workpanel .doc-shell-meta-label {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

/* =====================================================================
   GEN7-UX-WORKBENCH-ACTION-BUTTON-GRAMMAR-I1
   DER EINE OWNER DER ACTION-/BUTTON-GRAMMATIK DER CASE WORKSPACE SHELL.

   Vorher pflegten drei Flaechen dieselbe blaue Grammatik in drei getrennten,
   wertgleichen Bloecken (.measure-button, .risk-assessment-button und das
   Master-Paar .case-workspace-hero-summary-edit-save/-cancel). Sie drifteten
   bereits im Padding auseinander (6px 14px vs. 8px 16px). Ab jetzt ist es ein
   Block; die bestehenden Klassennamen bleiben als Mitglieder derselben
   Selektorliste erhalten, damit kein Renderer und kein Vertrag umgebaut wird.

   Sechs Aktionstypen, EINE Familie, unterschiedliche Gewichtung:
     --primary    fuehrende Arbeitsaktion   (blau gefuellt)
     --secondary  normale Aktion            (neutraler Rahmen)
     --add        hinzufuegen/zuweisen      (blauer Rahmen, blaue Flaeche)
     --nav        Wechsel der Arbeitsflaeche(ruhig, blauer Text)
     .is-danger   destruktiv                (bestehender Modifier, rot)
     Inline       kompakte Kontextaktion    = bestehender Owner
                  `.measure-detail-action` (kein zweiter Alias)

   Groessenfamilie: Standard 36px, kompakt 28px, auf 390px 44px Touchziel.

   Bewusst NICHT .workbench-primary-button: diese globale Klasse ist
   teal/gruen. Ihre Vereinheitlichung ist eine Designsystem-/Produkt-
   entscheidung (HR-9) und in diesem Block ausdruecklich HARD STOP. */
.wb-action,
.measure-button,
.risk-assessment-button,
.case-workspace-hero-summary-edit-save,
.case-workspace-hero-summary-edit-cancel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 36px;
    padding: 8px 16px;
    border-radius: var(--r-2);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
    cursor: pointer;
}

.wb-action:focus-visible,
.measure-button:focus-visible,
.risk-assessment-button:focus-visible,
.case-workspace-hero-summary-edit-save:focus-visible,
.case-workspace-hero-summary-edit-cancel:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: 2px;
}

.wb-action:disabled,
.measure-button:disabled,
.risk-assessment-button:disabled,
.case-workspace-hero-summary-edit-save:disabled,
.case-workspace-hero-summary-edit-cancel:disabled {
    opacity: .6;
    cursor: not-allowed;
}

/* A — Primary: die eine fuehrende Aktion je Arbeitskontext. */
.wb-action--primary,
.measure-button--primary,
.risk-assessment-button--primary {
    border: 1px solid var(--blue-text);
    background: var(--blue-text);
    color: #ffffff;
}

.wb-action--primary:hover:not(:disabled),
.measure-button--primary:hover:not(:disabled),
.risk-assessment-button--primary:hover:not(:disabled),
.case-workspace-hero-summary-edit-save:hover:not(:disabled) {
    background: var(--blue-600);
    border-color: var(--blue-600);
}

/* B — Secondary: eindeutig klickbar, ohne mit Primary zu konkurrieren. */
.wb-action--secondary,
.measure-button--secondary,
.risk-assessment-button--secondary {
    border: 1px solid var(--line);
    background: transparent;
    color: var(--ink);
}

.wb-action--secondary:hover:not(:disabled),
.measure-button--secondary:hover:not(:disabled),
.risk-assessment-button--secondary:hover:not(:disabled),
.case-workspace-hero-summary-edit-cancel:hover:not(:disabled) {
    background: var(--surface-soft);
}

/* C — Add/Create: eigene, sofort erkennbare Aktionsrolle. Bewusst
   unterscheidbar von Secondary (blaue Flaeche) UND von Primary (nicht
   gefuellt), damit "hinzufuegen/zuweisen" nie wie ein Badge, ein Metadatum
   oder eine Fachklassifikation gelesen wird. */
.wb-action--add,
.measure-button--add {
    border: 1px solid var(--blue-border);
    background: var(--blue-soft);
    color: var(--blue-text);
}

.wb-action--add:hover:not(:disabled),
.measure-button--add:hover:not(:disabled) {
    border-color: var(--blue-text);
    background: var(--blue-bg-2);
}

/* D — Navigation: interaktiv, aber leiser als jede Mutation. */
.wb-action--nav {
    border: 1px solid transparent;
    background: transparent;
    color: var(--blue-text);
    font-weight: 500;
}

.wb-action--nav:hover:not(:disabled) {
    border-color: var(--blue-border);
    background: var(--blue-soft);
}

/* E — Destructive: uebernimmt den BESTEHENDEN `.is-danger`-Modifier; keine
   zweite destruktive Grammatik, keine Blau-Normalisierung. */
.wb-action.is-danger {
    border-color: var(--red-text);
    background: transparent;
    color: var(--red-text);
}

.wb-action.is-danger:hover:not(:disabled) {
    background: var(--red-soft);
}

/* Groessenfamilie: kompakt fuer Inline-/Feldkontexte. */
.wb-action--compact {
    min-height: 28px;
    padding: 4px 10px;
    font-size: 12px;
}

/* GEN7-UX-MEASURES-WORKING-SURFACE-INFO-HELP-I1 — Label und Erklaerungs-
   Einstiegspunkt bilden eine Einheit. Kein neues Token, keine neue Groesse,
   keine neue Farbe: der Ausloeser bringt seine Amber-/18px-Grammatik selbst
   mit (.context-help-trigger). Hier entsteht ausschliesslich die Ausrichtung
   nebeneinander; ohne Erklaerung bleibt das Label unveraendert. */
.measure-detail-label.has-context-help,
.aw-edit-label-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Die Zeile darf die Zeilenhoehe des Labels nicht aufblaehen — der Ring ist
   18px, das Label 11-12px. Ohne diese Grenze wuerde jede beschriftete Zeile
   mit Erklaerung sichtbar hoeher als ihre Nachbarn. */
.measure-detail-label.has-context-help > .measure-detail-label-text,
.aw-edit-label-row > .aw-edit-label {
    min-width: 0;
}

/* Restrisiko: eigene Karte in der bestehenden wb-card-Grammatik. Keine
   eigenen Radien, Schatten oder Breiten — nur Innenabstand und Rhythmus. */
.case-workspace-workpanel .measure-risk-decision-card {
    margin-top: 16px;
}

.measure-risk-decision-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.measure-risk-decision-lead,
.measure-risk-decision-hint {
    margin: 0;
    color: var(--text-soft);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.55;
}

.measure-risk-decision-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0;
}

.measure-risk-decision-meta-label {
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 500;
}

.measure-risk-decision-meta-value {
    font-size: 13px;
    font-weight: 400;
    line-height: 1.5;
}

.measure-risk-decision-field {
    width: 100%;
}

.measure-risk-decision-error {
    margin: 0;
}

/* Footer-Grammatik wie Fallübersicht/Risikobewertung: Inhalt -> Trennlinie
   -> Aktionen, linksbuendig. */
.measure-risk-decision-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}


/* GEN7-UX-QUESTIONS-MEASURES-MASTER-DETAIL-CONVERGENCE-I1 — KASKADENFIX.
   Diese Regel (CARD-GRAMMAR-F2E, 11px/800 VERSALIEN) fuehrte bis hierher
   AUCH den Gen7-Fokuspanel-Selektor `.case-workspace-workpanel
   .measure-workbench-focus .measure-detail-label`. Sie steht spaeter im
   Dokument als die Normalisierungsregel von
   GEN7-UX-MEASURES-WORKING-SURFACE-I1 (12px/500, keine Versalien) und hat sie
   bei gleicher Spezifitaet (0,3,0) still ueberstimmt — die Maßnahmenflaeche
   hielt ihre eigene dokumentierte Typografieentscheidung fuer Feldlabels
   also nie ein.
   Der Gen7-Selektor ist deshalb hier entfernt; der klassische Gen3-Reiter
   (`#block-measures`) behaelt seine Legacy-Grammatik unveraendert.
   Gefunden wurde das erst, weil dieser Block die Referenz MISST statt sie
   aus Berichten zu rekonstruieren. */
#block-measures .measure-detail-label {
    margin: 0;
    /* CARD-GRAMMAR-F2E — Section-Labels exakt wie Legal (.article-section-label):
       klein, fett, getrackt, uppercase, gedämpft. */
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.35;
}

#block-measures .aw-measure-description,
#block-measures .aw-title-sub.aw-measure-description,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-description,
.case-workspace-workpanel .measure-workbench-focus .aw-title-sub.aw-measure-description {
    margin: 0;
    color: var(--muted);
    font-size: 13.5px;
    line-height: 1.45;
    display: block;
    -webkit-line-clamp: unset;
    -webkit-box-orient: initial;
    overflow: visible;
}

#block-measures .aw-art-cell,
.case-workspace-workpanel .measure-workbench-focus .aw-art-cell {
    gap: 8px;
}

/* GEN5-MEASURES-FOCUSPANEL-UX-REDESIGN-F1: Law-Pill-Farbgrammatik war im
   Workspace-Fokuspanel komplett unstyled (kein #block-measures-Ahne) — RecruitAI
   zeigt aktuell nur den Missing-State, der Befund ist aber allgemeingueltig
   fuer jeden Fall mit zugewiesenem Rechtsbezug. Selektor-Erweiterung, keine
   neuen Farben/Werte. */
#block-measures .aw-art-cell .aw-law-pill,
.case-workspace-workpanel .measure-workbench-focus .aw-art-cell .aw-law-pill,
.case-workspace-workpanel .measure-workbench-focus .aw-art-cell .aw-law-pill-missing {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-height: 0;
    /* CARD-GRAMMAR-F2D — Rechtsbezug-Pills kompakter (vorher 13px / 7px 11px /
       Radius 20px wirkten zu groß), näher an Legal. */
    padding: 4px 10px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #ffffff;
    color: var(--ink-2);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#block-measures .aw-art-cell .aw-law-pill-ai-act,
.case-workspace-workpanel .measure-workbench-focus .aw-art-cell .aw-law-pill-ai-act {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1d4ed8;
}

#block-measures .aw-art-cell .aw-law-pill-gdpr,
.case-workspace-workpanel .measure-workbench-focus .aw-art-cell .aw-law-pill-gdpr {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #047857;
}

#block-measures .aw-art-cell .aw-law-pill-betrvg,
#block-measures .aw-art-cell .aw-law-pill-bdsg,
.case-workspace-workpanel .measure-workbench-focus .aw-art-cell .aw-law-pill-betrvg,
.case-workspace-workpanel .measure-workbench-focus .aw-art-cell .aw-law-pill-bdsg {
    background: #f5f3ff;
    border-color: #ddd6fe;
    color: #6d28d9;
}

#block-measures .aw-art-cell .aw-law-pill-missing,
.case-workspace-workpanel .measure-workbench-focus .aw-art-cell .aw-law-pill-missing,
.case-workspace-workpanel .measure-workbench-focus .aw-art-cell .aw-law-pill-missing {
    background: #fff7ed;
    border-color: #f0b35a;
    color: #a85f00;
}

#block-measures .aw-source-badge,
.case-workspace-workpanel .measure-workbench-focus .aw-source-badge {
    border-radius: 20px;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 700;
}

#block-questions .question-entity-article-section,
.question-create-modal-backdrop .question-entity-article-section {
    display: grid;
    gap: 6px;
}

#block-questions .measure-detail-label,
.question-create-modal-backdrop .measure-detail-label {
    margin: 0;
    /* GEN3-QUESTIONS-VISUAL-RHYTHM-F3 — Body-Section-Labels (Warum relevant, Titel,
       Rechtsbezug, DSB-Notiz) projektweit exakt wie Legal/Maßnahmen; ein Label-Dialekt
       (GEN3-CARD-005). Selektor generalisiert (vorher nur .question-entity-article-section),
       da die auf measure-detail-label migrierten Labels ausserhalb der Artikelsektion
       (.question-why-relevant, .question-entity-form, DSB-Notiz) sonst unstyled blieben. */
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.35;
}

#block-questions .question-entity-article-section .aw-art-cell,
.question-create-modal-backdrop .question-entity-article-section .aw-art-cell {
    gap: 8px;
}

#block-questions .question-entity-article-section .aw-art-cell .aw-law-pill,
.case-workspace-workpanel .question-workbench-focus .question-entity-article-section .aw-art-cell .aw-law-pill,
.question-create-modal-backdrop .question-entity-article-section .aw-art-cell .aw-law-pill {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-height: 0;
    /* CARD-GRAMMAR-F2D — Rechtsbezug-Pills kompakter (analog Maßnahmen). */
    padding: 4px 10px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #ffffff;
    color: var(--ink-2);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#block-questions .question-entity-article-section .aw-art-cell .aw-law-pill-ai-act,
.case-workspace-workpanel .question-workbench-focus .question-entity-article-section .aw-art-cell .aw-law-pill-ai-act,
.question-create-modal-backdrop .question-entity-article-section .aw-art-cell .aw-law-pill-ai-act {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1d4ed8;
}

#block-questions .question-entity-article-section .aw-art-cell .aw-law-pill-gdpr,
.case-workspace-workpanel .question-workbench-focus .question-entity-article-section .aw-art-cell .aw-law-pill-gdpr,
.question-create-modal-backdrop .question-entity-article-section .aw-art-cell .aw-law-pill-gdpr {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #047857;
}

#block-questions .question-entity-article-section .aw-art-cell .aw-law-pill-betrvg,
#block-questions .question-entity-article-section .aw-art-cell .aw-law-pill-bdsg,
.case-workspace-workpanel .question-workbench-focus .question-entity-article-section .aw-art-cell .aw-law-pill-betrvg,
.case-workspace-workpanel .question-workbench-focus .question-entity-article-section .aw-art-cell .aw-law-pill-bdsg,
.question-create-modal-backdrop .question-entity-article-section .aw-art-cell .aw-law-pill-betrvg,
.question-create-modal-backdrop .question-entity-article-section .aw-art-cell .aw-law-pill-bdsg {
    background: #f5f3ff;
    border-color: #ddd6fe;
    color: #6d28d9;
}

#block-questions .question-entity-article-section .aw-art-cell .aw-law-pill-missing,
.case-workspace-workpanel .question-workbench-focus .question-entity-article-section .aw-art-cell .aw-law-pill-missing,
.question-create-modal-backdrop .question-entity-article-section .aw-art-cell .aw-law-pill-missing {
    background: #fff7ed;
    border-color: #f0b35a;
    color: #a85f00;
}

#block-questions .question-entity-article-section .aw-art-cell .aw-law-pill:disabled,
.case-workspace-workpanel .question-workbench-focus .question-entity-article-section .aw-art-cell .aw-law-pill:disabled,
.question-create-modal-backdrop .question-entity-article-section .aw-art-cell .aw-law-pill:disabled {
    opacity: 0.72;
    cursor: not-allowed;
}

#block-questions .question-entity-article-section .question-article-remove,
.question-create-modal-backdrop .question-entity-article-section .question-article-remove {
    min-width: 24px;
    min-height: 24px;
    padding: 0 7px;
    border-radius: 999px;
}

/* GEN5-MEASURES-FOCUSPANEL-UX-REDESIGN-F1: Statusbereich (Arbeitsbereich der
   Karte) war im Workspace-Fokuspanel komplett unstyled (display:block statt
   flex/grid, 16px Schwarztext statt kompakter Status-Buttons) — live
   reproduziert (computed style: display block, font-size 16px). Reine
   Selektor-Erweiterung der bestehenden Regeln, keine neuen Farben/Groessen. */
#block-measures .aw-status-cell.aw-status-workflow,
.case-workspace-workpanel .measure-workbench-focus .aw-status-cell.aw-status-workflow {
    border: 0;
    background: transparent;
    padding: 0;
    gap: 10px;
}

#block-measures .aw-measure-status-grid,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-status-grid,
/* GEN7-UX-WORKBENCH-VISUAL-HIERARCHY-AND-SURFACE-CLEANUP-I1 (D: Box-in-Box)
   Real gemessen: das Editorpanel ist eine weisse Karte (12px Radius, eigener
   Rahmen) als DIREKTES Kind der bereits weissen, gerahmten
   .case-workspace-workpanel (16px Radius). Zwei Rahmen, dieselbe Fuellung,
   1px Abstand — die innere Grenze markierte nichts. Der Editor IST der
   Inhalt des Panels. Nur hier gescoped: .aw-edit-panel bedient auch
   Pruef­fragen und behaelt dort seinen Rahmen. Die drei Bereiche des
   Editors bleiben ueber ihre Flaechen und Ueberschriften abgegrenzt. */
.case-workspace-workpanel .aw-edit-panel.measure-edit-panel--structured {
    border: 0;
    border-radius: 0;
    padding: 0;
}

.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-status-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

#block-measures .aw-measure-status-grid .aw-status-button,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-status-grid .aw-status-button,
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-status-grid .aw-status-button {
    flex: 0 0 auto;
    min-width: 0;
    min-height: 0;
    justify-content: center;
    padding: 7px 13px;
    border-radius: var(--r-2);
    border: 1px solid #d9e2ec;
    background: #fcfdfe;
    color: #4b5563;
    font-size: 12.5px;
    font-weight: 600;
    gap: 6px;
    box-shadow: none;
}

#block-measures .aw-measure-status-grid .aw-status-button:hover:not(:disabled),
.case-workspace-workpanel .measure-workbench-focus .aw-measure-status-grid .aw-status-button:hover:not(:disabled),
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-status-grid .aw-status-button:hover:not(:disabled) {
    border-color: #cfd8e3;
    background: #f8fafc;
}

#block-measures .aw-measure-status-grid .aw-status-button.is-active[data-status="accepted"],
.case-workspace-workpanel .measure-workbench-focus .aw-measure-status-grid .aw-status-button.is-active[data-status="accepted"],
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-status-grid .aw-status-button.is-active[data-status="accepted"] {
    border-color: var(--green-bg-2);
    background: var(--green-bg);
    color: var(--green-text);
}

#block-measures .aw-measure-status-grid .aw-status-button.is-active[data-status="rejected"],
.case-workspace-workpanel .measure-workbench-focus .aw-measure-status-grid .aw-status-button.is-active[data-status="rejected"],
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-status-grid .aw-status-button.is-active[data-status="rejected"] {
    border-color: var(--red-border);
    background: var(--red-soft);
    color: var(--red-text);
}

#block-measures .aw-measure-status-grid .aw-status-button.is-active[data-status="pending"],
.case-workspace-workpanel .measure-workbench-focus .aw-measure-status-grid .aw-status-button.is-active[data-status="pending"],
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-status-grid .aw-status-button.is-active[data-status="pending"] {
    border-color: var(--ink-5);
    background: var(--gray-chip);
    color: var(--ink-2);
}

#block-measures .aw-measure-status-grid .aw-status-button.is-active[data-status="delegated"],
.case-workspace-workpanel .measure-workbench-focus .aw-measure-status-grid .aw-status-button.is-active[data-status="delegated"],
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-status-grid .aw-status-button.is-active[data-status="delegated"] {
    border-color: var(--amber-border);
    background: var(--amber-soft);
    color: var(--amber);
}

#block-measures .aw-measure-status-grid .aw-status-button.is-active[data-status="risk_accepted"],
.case-workspace-workpanel .measure-workbench-focus .aw-measure-status-grid .aw-status-button.is-active[data-status="risk_accepted"],
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-status-grid .aw-status-button.is-active[data-status="risk_accepted"] {
    border-color: #d8b4fe;
    background: #f5edff;
    color: #7c3aed;
}

#block-measures .aw-measure-status-grid .dsb-status-dot,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-status-grid .dsb-status-dot,
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-status-grid .dsb-status-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    border-radius: 0;
    background: transparent;
    color: currentColor;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}

#block-measures .aw-measure-note-wrap,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-note-wrap,
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-note-wrap {
    gap: 8px;
    /* CARD-GRAMMAR-F2F — ruhige umrandete DSB-Notiz-Box wie Legal. */
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(248, 250, 252, 0.48);
    padding: 10px 12px;
}

#block-measures .aw-measure-note-wrap .case-summary-label,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-note-wrap .case-summary-label,
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-note-wrap .case-summary-label {
    /* CARD-GRAMMAR-F2E — auf einheitlichen Legal-Section-Label-Stil gebracht. */
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

#block-measures .aw-measure-note-wrap .aw-status-reason-input,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-note-wrap .aw-status-reason-input,
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-note-wrap .aw-status-reason-input {
    min-height: 56px;
    /* CARD-GRAMMAR-F2F — weißes Feld in der hellen Box (wie Legal-Editor). */
    padding: 8px 11px;
    border: 1px solid #dbe3ec;
    border-radius: var(--r-3);
    background: #fcfdfe;
    font-size: 12.5px;
    line-height: 1.42;
    box-shadow: none;
}

#block-measures .aw-measure-note-wrap .aw-status-reason-input:focus,
.case-workspace-workpanel .measure-workbench-focus .aw-measure-note-wrap .aw-status-reason-input:focus,
.case-workspace-workpanel .measure-edit-panel--structured .aw-measure-note-wrap .aw-status-reason-input:focus {
    box-shadow: 0 0 0 3px var(--blue-bg);
}

#block-measures .aw-status-error,
.case-workspace-workpanel .measure-workbench-focus .aw-status-error,
.case-workspace-workpanel .measure-edit-panel--structured .aw-status-error {
    margin: 0;
    font-size: 11px;
    line-height: 1.35;
}

@media (max-width: 1280px) {
    .workbench-main {
        grid-template-columns:
            minmax(0, 1fr)
            var(--rail-resize-handle-width)
            min(340px, var(--rail-width));
    }
}

@media (max-width: 1100px) {
    html,
    body {
        overflow: auto;
    }

    .app-shell {
        height: auto;
        min-height: calc(100vh - var(--topbar-height));
        grid-template-columns: 1fr;
    }

    /* GEN7-UX-MOBILE-GLOBAL-NAVIGATION-I1 — PO-MNF-02 / PO-MNF-05.
       Vorher stand die globale Navigation hier `position: static` im
       Dokumentfluss und schob den Arbeitsgegenstand um gemessene 652,3 px nach
       unten (PO-CH-08 verletzt auf allen vier Working Surfaces).

       Jetzt: im geschlossenen Ausgangszustand `display: none` — kein
       Platzhalter, keine reservierte Hoehe, keine leere Gridspalte, Beitrag
       zur vertikalen Fold-Geometrie exakt 0 px. Geoeffnet ist sie ein
       temporaerer, ausschliesslich durch Nutzeraktion erreichbarer
       Navigationsmodus, der den Viewport ueberlagern darf (PO-MNF-07).
       Umfang, Reihenfolge, Ziele und Owner der Navigation bleiben unveraendert
       (PO-MNF-04). Es entsteht kein neuer Breakpoint. */
    .sidebar {
        display: none;
        border-right: 0;
        border-bottom: 0;
    }

    .sidebar.is-mobile-nav-open {
        display: flex;
        position: fixed;
        top: 0;
        left: 0;
        z-index: 60;
        width: min(320px, 88vw);
        height: 100vh;
        overflow-y: auto;
        border-right: 1px solid var(--border-subtle);
        box-shadow: var(--sh-pop);
    }

    .sidebar-nav-item {
        min-height: 44px;
    }

    .topbar-nav-toggle {
        display: inline-grid;
        place-items: center;
        width: 44px;
        min-width: 44px;
        height: 44px;
        flex: 0 0 44px;
        margin-right: 2px;
        padding: 0;
        border: 1px solid var(--border-subtle);
        border-radius: var(--r-3);
        background: var(--surface-muted);
        color: var(--text-soft);
        cursor: pointer;
    }

    .topbar-nav-toggle:hover {
        color: var(--text-strong);
    }

    .sidebar-mobile-close {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        width: 100%;
        min-height: 44px;
        margin: 8px 0 2px;
        padding: 8px 7px;
        border: 0;
        border-bottom: 1px solid var(--border-subtle);
        border-radius: 0;
        background: transparent;
        color: var(--text-soft);
        font-family: inherit;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        cursor: pointer;
    }

    .sidebar-mobile-close:hover {
        color: var(--text-strong);
    }

    .all-cases-page-head {
        grid-template-columns: 1fr;
    }

    .all-cases-toolbar {
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .all-cases-search {
        min-width: 0;
    }

    .all-cases-content {
        grid-template-columns: 1fr;
    }

    /* Ueberschreibt die spezifischere Desktop-Projection von Archiv und Papierkorb. */
    .archive-page .all-cases-content,
    .trash-page .all-cases-content {
        grid-template-columns: 1fr;
    }

    .all-cases-content {
        grid-template-columns: 1fr;
    }

    .all-cases-mandant-nav {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    }

    .all-cases-mandant-nav-title { grid-column: 1 / -1; }

    .all-cases-action-panel {
        max-height: none;
        overflow: visible;
        position: static;
        top: auto;
    }

    .main {
        overflow: visible;
    }

    .workbench-main {
        height: auto;
        grid-template-columns: 1fr;
    }

    .right-rail-resize-handle {
        display: none;
    }

    .workspace,
    .right-rail {
        overflow: visible;
        max-height: none;
        position: static;
    }

    .dsb-assistant-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .aw-row-main {
        grid-template-columns: 28px minmax(0, 1fr);
        align-items: start;
    }

    .aw-row-main > div:nth-child(3),
    .aw-row-main > div:nth-child(4),
    .aw-row-main > div:nth-child(5),
    .aw-row-main > div:nth-child(6),
    .aw-row-main > div:nth-child(7) {
        grid-column: 2;
    }

    .aw-toolbar {
        align-items: flex-start;
    }

    .aw-toolbar-actions {
        justify-content: flex-start;
    }

    .aw-measure-collapse-title-wrap {
        flex-wrap: wrap;
    }

    .aw-measure-detail-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .aw-measure-detail-section-wide,
    .aw-measure-detail-section-status {
        grid-column: auto;
    }

    .aw-action-cell {
        justify-content: flex-start;
    }

    .aw-law-picker {
        position: static;
        max-width: none;
    }

    .aw-secondary-actions {
        opacity: 1;
        pointer-events: auto;
    }

    .measures-table-head {
        display: none;
    }

    .measure-table-row {
        grid-template-columns: 32px 1fr;
    }

    .measure-table-row > div:nth-child(3),
    .measure-table-row > div:nth-child(4),
    .measure-table-row > div:nth-child(5) {
        grid-column: 2;
    }

    .dsb-decision-actions {
        grid-template-columns: 1fr;
    }

    .dsb-decision-actions > .dsb-panel-header,
    .dsb-decision-actions > .dsb-decision-section-context,
    .dsb-decision-actions > .dsb-decision-section-review,
    .dsb-decision-actions > .dsb-decision-section-action,
    .dsb-decision-actions > .dsb-decision-section-trail,
    .dsb-decision-actions > .dsb-decision-section-export {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .dsb-assistant-steps {
        grid-template-columns: 1fr;
    }

    .all-cases-table .workbench-ghost-button {
        min-height: 44px;
    }

    /* GEN7-UX-ALL-CASES-COMPACT-VISUAL-REALIGNMENT-I1: die Desktop-Verdichtung
       der Toolbar- und Auswahlpanel-Buttons (32px) darf das Touchziel auf
       schmalen Viewports nicht unterschreiten. */
    .all-cases-toolbar .workbench-primary-button,
    .all-cases-toolbar .workbench-ghost-button,
    .all-cases-action-panel-actions .workbench-primary-button,
    .all-cases-action-panel-actions .workbench-ghost-button,
    .all-cases-action-panel-group-actions .workbench-primary-button,
    .all-cases-action-panel-group-actions .workbench-ghost-button {
        min-height: 44px;
    }

    .all-cases-table-card {
        overflow: hidden;
    }

    .all-cases-table {
        min-width: 0;
        display: block;
    }

    .all-cases-table thead {
        display: none;
    }

    .all-cases-table tbody,
    .all-cases-table tr,
    .all-cases-table td {
        display: block;
        width: auto !important;
    }

    .all-cases-table tr.all-cases-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0 12px;
        padding: 10px 14px;
        border-bottom: 1px solid #eef2f7;
    }

    .all-cases-table tr.all-cases-row:last-child {
        border-bottom: 0;
    }

    .all-cases-table tr.all-cases-row > td {
        min-width: 0;
        padding: 4px 0;
        border-bottom: 0;
        overflow: visible;
    }

    /* GEN7-UX-ALL-CASES-ROW-DENSITY-AND-COLUMN-BALANCE-I2: Die Desktop-
       Einzeiligkeit der Textspalten gilt nicht im mobilen Kartenlayout -- dort
       ist vertikaler Raum vorhanden und Umbruch das bestehende Verhalten. */
    .all-cases-table tr.all-cases-row > .all-cases-cell-mandant,
    .all-cases-table tr.all-cases-row > .all-cases-cell-responsible,
    .all-cases-table tr.all-cases-row > .all-cases-cell-scope,
    .all-cases-table tr.all-cases-row > .all-cases-cell-date {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    /* Der Zeilentitel hat im Kartenlayout die volle Breite und darf sie nutzen,
       statt wie auf Desktop einzeilig gekuerzt zu werden. */
    .all-cases-page:not(.archive-page):not(.trash-page) .all-cases-title {
        white-space: normal;
    }

    .all-cases-table tr.all-cases-row > td:not(.all-cases-cell-title):not(.all-cases-cell-chevron)::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 2px;
        color: var(--muted-2);
        font-size: 9.5px;
        font-weight: 700;
        letter-spacing: 0.06em;
        line-height: 1.2;
        text-transform: uppercase;
    }

    .all-cases-table tr.all-cases-row > .all-cases-cell-title {
        grid-column: 1 / -1;
        padding-bottom: 6px;
    }

    .all-cases-table tr.all-cases-row > .all-cases-cell-status {
        grid-column: 1;
    }

    .all-cases-table tr.all-cases-row > .all-cases-cell-chevron {
        grid-column: 2;
        grid-row: 2 / span 5;
        align-self: center;
        width: auto;
        padding: 0;
    }

    .all-cases-table tr.all-cases-row > .all-cases-cell-date {
        grid-column: 1;
    }

    .all-cases-table tr.all-cases-row > .all-cases-cell-chevron::before {
        content: "";
    }

    /* F-008: Das gemeinsame Overflow-Menü bleibt derselbe Owner. In der
       mobilen Fallliste wird allein das geöffnete Panel in den sichtbaren
       Viewport verlagert; weder Aktionsmenge noch Menü-State ändern sich. */
    .all-cases-cell-chevron .overflow-menu-open .overflow-menu-panel {
        position: fixed;
        top: auto;
        right: 12px;
        bottom: max(12px, env(safe-area-inset-bottom));
        left: 12px;
        max-height: calc(100dvh - 24px);
        overflow-y: auto;
    }

    .all-cases-table tr.all-cases-empty-row,
    .all-cases-table tr.all-cases-loading-row {
        display: table-row;
    }

    .case-executive-summary-grid,
    .case-executive-summary-grid-workflow {
        grid-template-columns: 1fr;
    }

    .case-executive-panel {
        min-height: auto;
        padding: 14px 16px;
        border-right: 0;
        border-bottom: 1px solid var(--border-subtle);
    }

    .case-executive-summary-grid .case-executive-panel:last-child {
        border-bottom: 0;
    }

    .workflow-tab-shell {
        padding-bottom: 10px;
    }

    .workflow-tab-main-nav {
        gap: 4px 12px;
        padding-bottom: 8px;
    }

    .workflow-tab-btn {
        min-height: 38px;
        font-size: 13px;
        padding-bottom: 10px;
    }
}

@media (max-width: 860px) {
    .topbar {
        height: auto;
        padding: 12px;
    }

    .topbar-inner {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .workbench-input-actions {
        grid-template-columns: 1fr;
    }

    .decision-compact-line {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .case-statusband {
        flex-direction: column;
        align-items: flex-start;
    }

    .case-statusband-title {
        white-space: normal;
    }

    .case-statusband-id {
        margin-top: 0;
    }

    .case-executive-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .case-executive-summary-grid-workflow {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .case-executive-panel {
        min-height: 132px;
        border-bottom: 1px solid var(--border-subtle);
    }

    .case-executive-panel:nth-child(2n) {
        border-right: 0;
    }

    .case-executive-panel:nth-last-child(-n + 2) {
        border-bottom: 0;
    }

    .db-risk-badge {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .case-header {
        padding-right: 14px;
    }

    .case-header-id {
        position: static;
        display: block;
        margin-top: 6px;
    }
}

/* ============================================================
   DS-2 — Workbench Card System (neutrale Basisklassen)
   ------------------------------------------------------------
   REIN ADDITIV. Werte 1:1 aus der Referenz `.question-check`
   (#block-questions, app_shell.css) abgeleitet.
   Diese Klassen sind dormant: aktuell nutzt KEIN Element `.wb-card`.
   DS-2 verschiebt daher keinen Reiter optisch.
   Migration der Reiter (Maßnahmen, Gesetzesgrundlagen,
   DSB-Ergänzung, Historie) erfolgt in DS-3..DS-6.
   ============================================================ */

@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/InterVariable.woff2") format("woff2-variations");
}

@font-face {
    font-family: "Inter";
    font-style: italic;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/InterVariable-Italic.woff2") format("woff2-variations");
}

:root {
    /* Card-Container (aus #block-questions .question-check, gewinnende Regel) */
    --wb-card-pad: var(--space-5);
    --wb-card-radius: var(--r-4);
    --wb-card-border: 1px solid var(--line);
    --wb-card-bg: var(--surface);
    --wb-card-shadow: none;
    --wb-card-transition: border-color 140ms ease, box-shadow 140ms ease, background-color 140ms ease;
    /* Card-Innenmaße (aus Collapse-Header/-Body der Referenz) */
    --wb-card-header-gap: var(--space-3);
    --wb-card-title-size: 16px;
    --wb-focus-title-size: 18px;
    --wb-card-body-gap: 16px;
    --wb-card-body-margin-top: 16px;
    /* Status-Tone-Foundation: dormant until renderers add .wb-status-pill. */
    --wb-status-pill-bg: var(--surface-soft);
    --wb-status-pill-border: var(--border);
    --wb-status-pill-text: var(--text-soft);
    --wb-status-pill-dot: currentColor;
    --wb-status-open-bg: #e8f3ff;
    --wb-status-open-border: #cfe0f5;
    --wb-status-open-text: #2a5f92;
    --wb-status-success-bg: #e6f7ee;
    --wb-status-success-border: #b7e4c7;
    --wb-status-success-text: #178c4d;
    --wb-status-warning-bg: #fff3dc;
    --wb-status-warning-border: #fde8b0;
    --wb-status-warning-text: #92400e;
    --wb-status-danger-bg: #ffe7e9;
    --wb-status-danger-border: #f8c9c9;
    --wb-status-danger-text: #991b1b;
    --wb-status-info-bg: #eff6ff;
    --wb-status-info-border: #bfdbfe;
    --wb-status-info-text: #1d4ed8;
    --wb-status-neutral-bg: var(--surface-soft);
    --wb-status-neutral-border: var(--border);
    --wb-status-neutral-text: var(--text-soft);
    --wb-status-delegated-bg: #fef3c7;
    --wb-status-delegated-border: #fde8b0;
    --wb-status-delegated-text: #92400e;
    --wb-status-blocked-bg: #fee2e2;
    --wb-status-blocked-border: #f8c9c9;
    --wb-status-blocked-text: #991b1b;
}

/* Card-Container — ruhige Karte (Soll-Optik der Referenz) */
.wb-card {
    display: block;
    border: var(--wb-card-border);
    border-radius: var(--wb-card-radius);
    padding: var(--wb-card-pad);
    background: var(--wb-card-bg);
    box-shadow: var(--wb-card-shadow);
    transition: var(--wb-card-transition);
    overflow: hidden;
}

/* GEN4-UI-POLISH-F1: eingebettete Gen3-Domaenen (Fragen/Massnahmen/Dokumente/
   Verarbeitung/Entscheidung) rendern ihren unveraenderten .wb-card-Inhalt
   direkt in die bereits kartierte Host-Sektion (.case-workspace-section)
   hinein. Ohne diese Regel entsteht eine Karte-in-Karte-Optik (doppelter
   Rahmen/Schatten/Radius). Nur die aeussere Box von .wb-card wird innerhalb
   des Hosts neutralisiert; Titel-/Body-Abstaende (.wb-card-header/-body)
   bleiben unveraendert, ebenso .wb-card ausserhalb des Gen4-Workspace
   (klassische Gen3-Reiter nutzen dieselben Renderer unveraendert weiter).
   Die zweite, hoeher-spezifische Selektorzeile neutralisiert zusaetzlich
   ".aw-row.wb-card:not(.is-collapsed)" (Massnahmen-Open-State,
   app_shell.css ~8671), die sonst wegen hoeherer Spezifitaet gewinnen wuerde. */
/* GEN7-UX-PRUEFUNG-PROCESSING-CARD-GRAMMAR-I1 -- eine belegte Ausnahme.

   Die Referenzkarte der Fallübersicht (.case-workspace-ref-card) ist KEIN
   eingebetteter Gen3-Inhalt, sondern eine eigenstaendige Informationskarte;
   ihre Kontur ist ihre Grammatik. Solange sie nur auf der Fallübersicht
   stand, war das folgenlos -- dort lebt sie ausserhalb einer Host-Summary.
   Seit die Verarbeitungstaetigkeit DIESELBE Karte benutzt, steht sie
   innerhalb einer Host-Summary und wurde von dieser Regel entkleidet:
   live gemessen Rahmen 0, Flaeche transparent, Schatten none gegen die
   Referenz 1px solid / #fff / 0 1px 2px.

   Korrigiert wird an der verursachenden Regel statt durch Ueberstimmen --
   sonst gaebe es zwei Wahrheiten ueber dieselbe Kontur. Fuer alle uebrigen
   .wb-card bleibt die Karte-in-Karte-Neutralisierung unveraendert. */
.case-workspace-host-summary .wb-card:not(.case-workspace-ref-card):not(.dsb-decision-section) {
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.case-workspace-host-summary .aw-row.wb-card:not(.is-collapsed) {
    border: 0;
    border-radius: 0;
    padding: 0;
    padding-bottom: 0;
    background: transparent;
    box-shadow: none;
}

/* GEN7-UX-DSB-DECISION-CARD-VISUAL-CONVERGENCE-I1: Die vier fachlichen
   Decision-Karten sind keine eingebetteten Einzelkarten in einer bereits
   kartierten Hostflaeche. Der Host ist fuer `entscheidung` bewusst neutral;
   seine direkten Decision-Kinder sind daher selbst die sichtbare
   Kartenebene. Die Ausnahme oben laesst ausschliesslich ihre bereits
   vorhandene `.wb-card`-Grammatik wirken. */

/* GEN4-TYPOGRAPHY-POLISH-F1: Kartentitel-Angleichung innerhalb des Gen4-Hosts.
   Ausserhalb des Workspace gilt fuer DSB-Entscheidung und Dokumente je eine
   eigene Kartentitel-Groesse (.dsb-decision-section .wb-card-title bzw.
   .doc-shell-card .wb-card-title, beide 15px/750). Verarbeitungstaetigkeit
   nutzt dort denselben Wert nur ID-gescoped (#block-processing-activity),
   Fragen/Massnahmen nutzen bereits die Basiswerte (14.5px/600). Im Gen4-Host
   existiert weder #block-processing-activity noch #block-questions/
   #block-measures, wodurch Entscheidung/Dokumente als einzige Domaenen mit
   einer abweichenden Kartentitel-Groesse in den Host hineinragen. Diese Regel
   setzt beide Kartentitel nur innerhalb des Hosts auf die bereits von
   Fragen/Massnahmen/Verarbeitung genutzte Basisgroesse zurueck (.wb-card-title),
   ohne die klassischen Gen3-Reiter zu veraendern. */
/* VIS-003: von .case-workspace-host-summary auf die ganze Shell erweitert —
   auch im editierbaren Hostmodus gilt eine Kartentitel-Groesse (vorher ragten
   15-17px-Titel aus dem Gen3-Bestand in den Workspace). */
.case-workspace-shell .dsb-decision-section .wb-card-title,
.case-workspace-shell .doc-shell-card .wb-card-title {
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0;
}

/* GEN4-UI-WORKSPACE-U6: Dokumentation-Experience innerhalb des Gen4-Hosts.
   Wie bei Maßnahmen (U4) neutralisiert GEN4-UI-POLISH-F1 jede eingebettete
   .wb-card vollständig (border/radius/padding/background/shadow = 0), um die
   damalige doppelte Kartenrahmung zu vermeiden. Für Dokumente bedeutet das im
   Ist-Zustand: jede Dokumentkarte verliert Kontur und sogar ihr Innenpolster,
   wodurch die Dokumentenmappe im Gen4-Host wie eine technische Statusliste
   statt wie eigenständige Nachweis-Objekte wirkt - exakt der im Prompt
   benannte Ist-Zustand. Diese Regel gibt ausschließlich den Dokumentkarten
   (über den Nachfahren-Selektor .doc-shell .doc-shell-card, drei Klassen und
   damit spezifischer als die zwei Klassen der Host-Neutralisierung - betrifft
   also nicht Fragen/Rechtsgrundlagen/Maßnahmen/Entscheidung im selben
   Host-Namespace) ihre Kontur zurück, mit demselben Radius-Vokabular wie die
   Maßnahmenzeilen aus U4 (--radius-md, eine Ebene unter dem
   --radius-lg-Sektionscontainer aus U3). Kein DOM-Eingriff, keine
   Status-/Export-/Freigabelogik, kein neuer Resolver. */
.case-workspace-host-summary .doc-shell .doc-shell-card {
    /* GEN4-WORKSPACE-DESIGN-SYSTEM-UNIFICATION-F1: einheitliche
       Karten-Grammatik (12px / #e5e7eb) statt radius-md/border-subtle. */
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: var(--surface);
    box-shadow: none;
}

.case-workspace-host-summary .doc-shell .doc-shell-list {
    gap: 10px;
}

/* GEN5-DOCUMENTATION-WORKSPACE-GRAMMAR-F1: die vormalige GEN4-UI-WORKSPACE-U3-
   "Eyebrow-Downgrade"-Regel fuer .doc-shell-title (3 Klassen) hatte hoehere
   Spezifitaet als die spaeter eingefuehrte Doppeltitel-Ausblendung
   ".case-workspace-host-summary .doc-shell-title { display:none }" (siehe
   unten, 2 Klassen) und gewann dadurch immer - der Zweittitel "DOKUMENTE"
   wurde also nie tatsaechlich entfernt, entgegen dem dort dokumentierten
   Anspruch "Host-Header ist der einzige Section-Titel". Root Cause war ein
   CSS-Spezifitaetskonflikt zwischen zwei Regeln fuer dasselbe Element, keine
   fachliche Notwendigkeit fuer den Zweittitel. Diese Regel entfaellt daher
   ersatzlos; die Ausblendung erfolgt jetzt ausschliesslich ueber die
   bestehende Doppeltitel-Regel unten (jetzt inkl. doc-shell-subtitle).
   Klassischer Gen3-Reiter "Dokumente" bleibt unveraendert, da alle Regeln
   auf .case-workspace-host-summary/.case-workspace-shell gescoped sind. */
.case-workspace-host-summary .doc-shell-gate-hint {
    background: var(--surface-soft);
    border-color: var(--border-subtle);
    color: var(--text-soft);
}

/* GEN4-UI-WORKSPACE-U4: Maßnahmen-Experience innerhalb des Gen4-Hosts.
   GEN4-UI-POLISH-F1 neutralisiert jede eingebettete .wb-card vollständig
   (border/radius/background/shadow = 0), um die damals doppelte Kartenrahmung
   (Host-Sektion + Gen3-Karte) zu vermeiden. Für Maßnahmen bedeutet das im
   Ist-Zustand aber: Zeilen ohne jede eigene Kontur, nur durch Innenabstand
   getrennt - genau die im Prompt benannte "Listen-/Tabellenwirkung" statt
   eigenständiger Maßnahmenzeilen. Diese Regel gibt ausschließlich den
   Maßnahmenzeilen (über die stabile ID #block-measures, betrifft also
   NICHT Fragen/Rechtsgrundlagen/Dokumente/Entscheidung im selben Host-
   Namespace) eine ruhige, eigenständige Zeilenkontur zurück, mit dem in
   U1-U3 etablierten Radius-Vokabular (--radius-md für die einzelne Zeile,
   eine Ebene kleiner als der --radius-lg-Sektionscontainer aus U3). Die
   ID-Spezifität (#block-measures) gewinnt bewusst gegen die Host-
   Neutralisierung, ohne diese für andere Domänen zu verändern. Keine
   Status-/Prioritäts-/Sortierlogik, kein neuer Resolver, kein DOM-Eingriff -
   nur Farbe/Rand/Radius auf denselben, bereits bestehenden Zeilen. */
.case-workspace-host-summary #block-measures .aw-row {
    /* GEN4-WORKSPACE-DESIGN-SYSTEM-UNIFICATION-F1: auf die einheitliche
       Karten-Grammatik normalisiert (12px / #e5e7eb) - die ID-Spezifitaet
       dieser Regel gewinnt gegen die generische Vereinheitlichung am
       Dateiende, daher werden die Werte hier direkt angeglichen. */
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: var(--surface);
    box-shadow: none;
}

.case-workspace-host-summary #block-measures .aw-row:not(.is-collapsed) {
    border-color: var(--border);
    box-shadow: none;
}

.case-workspace-host-summary #block-measures .aw-row.is-done {
    background: var(--surface-soft);
}

/* Ruhigere Gruppen-/Zeilenabstände: mehr Luft zwischen den jetzt wieder
   sichtbaren Zeilenkarten, weniger dichte Listenoptik. Reine Abstandswerte,
   keine neue Gruppierung. */
.case-workspace-host-summary #block-measures .measure-group-rows {
    gap: 12px;
}

/* GEN4-WORKSPACE-V2-TYPOGRAPHY-AND-SPACING-F1: 22px war der einzige Wert in
   diesem Bereich ausserhalb des sonst erkennbaren 4px-Rasters; auf den
   naechsten Rasterwert (24px) angehoben, reine Wertkorrektur. */
.case-workspace-host-summary #block-measures .measure-group + .measure-group {
    margin-top: 24px;
}

/* Toolbar/Filter ruhiger: dieselben Buttons/Handler, nur weniger Kontur
   (transparente Fläche statt weißer Box mit Rand), analog zur in U2
   etablierten Zurückhaltung für Steuerelemente. Aktiver Filter bleibt über
   dieselbe .active-Klasse erkennbar. */
.case-workspace-host-summary #block-measures .aw-filter {
    background: transparent;
    border-color: var(--border-subtle);
}

.case-workspace-host-summary #block-measures .aw-filter.active {
    /* VIS-004: aktiver Filter folgt der Blau-Rolle (Auswahl/Navigation). */
    background: var(--blue-soft);
    border-color: var(--blue-border);
    color: var(--blue-text);
}

/* GEN4-SHARED-EDIT-BUTTON-POLISH-F1: Der Workspace hostet mehrere unveraenderte
   Gen3-Renderer mit historisch gewachsenen Edit-/CTA-Buttons
   (z. B. article-dsb-annotation-edit, question-answer-edit, doc-shell-action-btn,
   case-workspace-back-button). Im Gen4-Host sollen diese Primaeraktionen eine
   gemeinsame visuelle Grammatik sprechen, ohne DOM, Labels oder Click-Handler
   zu veraendern. Die Regel ist bewusst auf .case-workspace-shell gescoped, damit
   klassische Gen3-Reiter unveraendert bleiben. */
.case-workspace-shell :is(
    .case-workspace-host-edit-action,
    .case-workspace-back-button,
    .article-dsb-annotation-edit,
    .question-answer-edit,
    .question-entity-action-button,
    .aw-measure-footer-actions .workbench-ghost-button,
    .doc-shell-action-btn,
    .dsb-completion-export-note .workbench-ghost-button,
    .dsb-completion-section .workbench-ghost-button
) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 32px;
    padding: 6px 12px;
    border-radius: var(--radius-pill);
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    white-space: nowrap;
    text-decoration: none;
    transition:
        background-color 0.16s ease,
        border-color 0.16s ease,
        color 0.16s ease,
        box-shadow 0.16s ease,
        transform 0.16s ease;
}

.case-workspace-shell :is(
    .case-workspace-host-edit-action,
    .case-workspace-back-button,
    .article-dsb-annotation-edit,
    .question-answer-edit,
    .question-entity-action-button,
    .aw-measure-footer-actions .workbench-ghost-button,
    .doc-shell-view-btn,
    .dsb-completion-export-note .workbench-ghost-button,
    .dsb-completion-section .workbench-ghost-button
) {
    /* VIS-004 (A-PC-FUNDING-VISUAL-REDESIGN-F3, Owner-Farbrollen):
       Blau = Primaeraktion/Navigation. Gruen bleibt Erfolg/Status,
       Amber bleibt Speichern, Rot bleibt destruktiv. */
    border: 1px solid var(--blue-border);
    background: var(--blue-soft);
    color: var(--blue-text);
    box-shadow: none;
}

.case-workspace-shell :is(
    .case-workspace-host-edit-action,
    .case-workspace-back-button,
    .article-dsb-annotation-edit,
    .question-answer-edit,
    .question-entity-action-button,
    .aw-measure-footer-actions .workbench-ghost-button,
    .doc-shell-view-btn,
    .dsb-completion-export-note .workbench-ghost-button,
    .dsb-completion-section .workbench-ghost-button
):hover:not(:disabled) {
    border-color: var(--blue);
    background: color-mix(in srgb, var(--blue-soft) 82%, #ffffff);
    color: var(--blue-text);
}

.case-workspace-shell :is(
    .case-workspace-host-edit-action,
    .case-workspace-back-button,
    .article-dsb-annotation-edit,
    .question-answer-edit,
    .question-entity-action-button,
    .aw-measure-footer-actions .workbench-ghost-button,
    .doc-shell-action-btn,
    .dsb-completion-export-note .workbench-ghost-button,
    .dsb-completion-section .workbench-ghost-button
):focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue-soft) 92%, #ffffff);
}

.case-workspace-shell :is(
    .case-workspace-host-edit-action,
    .case-workspace-back-button,
    .article-dsb-annotation-edit,
    .question-answer-edit,
    .question-entity-action-button,
    .aw-measure-footer-actions .workbench-ghost-button,
    .doc-shell-action-btn,
    .dsb-completion-export-note .workbench-ghost-button,
    .dsb-completion-section .workbench-ghost-button
):disabled {
    opacity: 0.58;
    box-shadow: none;
    transform: none;
}

/* GEN4-EMPTY-STATE-POLISH-F1: Im Gen4-Workspace treffen mehrere historische
   Leerzustands-Sprachen aufeinander (.case-workspace-section-placeholder,
   .aw-empty, .doc-shell-timeline-empty, p.dsb-completion-export-note,
   .dashboard-empty-hint). Fuer Gen4 werden sie auf eine gemeinsame, ruhige
   Hinweisflaeche mit identischer Typografie/Abstaenden gezogen. Die Regel ist
   ausschliesslich auf den Workspace bzw. die Dashboard-Surface gescoped, damit
   klassische Gen3-Reiter, Picker-Dialoge und Modals unveraendert bleiben. */
.case-workspace-shell :is(
    .case-workspace-section-placeholder,
    .aw-empty,
    .doc-shell-timeline-empty,
    p.dsb-completion-export-note
),
.dashboard-page .dashboard-empty-hint {
    margin: 0;
    padding: 14px 16px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    background: var(--surface-soft);
    color: var(--text-soft);
    font-size: 13px;
    line-height: 1.45;
}

.case-workspace-shell :is(
    .case-workspace-section-placeholder,
    .aw-empty,
    .doc-shell-timeline-empty,
    p.dsb-completion-export-note
) {
    display: block;
}

.dashboard-page .dashboard-empty-hint {
    display: block;
    max-width: 100%;
}

.case-workspace-shell .doc-shell-timeline-body > .doc-shell-timeline-empty {
    margin-top: 0;
}

/* GEN4-MICRO-INTERACTIONS-F1: Der Gen4-Workspace hostet mehrere bestehende
   Click-Patterns (Progress, Header-Collapse, Action-Buttons, Action-Links)
   mit leicht unterschiedlichem Hover-/Focus-Rhythmus. Dieser Block gleicht nur
   die Rueckmeldung an, ohne neue Interaktionsmodelle oder JS einzufuehren.
   Alles bleibt auf .case-workspace-shell gescoped, damit klassische Gen3-
   Reiter ausserhalb des Workspace unveraendert bleiben. */
.case-workspace-shell :is(
    .case-workspace-progress-step,
    .case-workspace-host-edit-action,
    .case-workspace-back-button,
    .article-dsb-annotation-edit,
    .question-answer-edit,
    .question-entity-action-button,
    .aw-measure-footer-actions .workbench-ghost-button,
    .doc-shell-action-btn,
    .dsb-completion-export-note .workbench-ghost-button,
    .dsb-completion-section .workbench-ghost-button,
    .legal-context-ref-link,
    .legal-context-source-link,
    .pa-gate-reason-action,
    .wb-card-header,
    .aw-measure-collapse-header
) {
    transition:
        background-color 160ms ease,
        border-color 160ms ease,
        color 160ms ease,
        box-shadow 160ms ease,
        transform 160ms ease,
        opacity 160ms ease;
}

.case-workspace-shell .case-workspace-progress-step:hover {
    transform: translateY(-1px);
}

.case-workspace-shell .case-workspace-progress-step:active:not(:disabled) {
    transform: translateY(0);
}

.case-workspace-shell :is(
    .case-workspace-host-edit-action,
    .case-workspace-back-button,
    .article-dsb-annotation-edit,
    .question-answer-edit,
    .question-entity-action-button,
    .aw-measure-footer-actions .workbench-ghost-button,
    .doc-shell-action-btn,
    .dsb-completion-export-note .workbench-ghost-button,
    .dsb-completion-section .workbench-ghost-button
):hover:not(:disabled) {
    transform: translateY(-1px);
}

.case-workspace-shell :is(
    .case-workspace-host-edit-action,
    .case-workspace-back-button,
    .article-dsb-annotation-edit,
    .question-answer-edit,
    .question-entity-action-button,
    .aw-measure-footer-actions .workbench-ghost-button,
    .doc-shell-action-btn,
    .dsb-completion-export-note .workbench-ghost-button,
    .dsb-completion-section .workbench-ghost-button
):active:not(:disabled) {
    transform: translateY(0);
}

.case-workspace-shell :is(
    .case-workspace-host-summary .wb-card-header,
    .case-workspace-host-summary .aw-measure-collapse-header
) {
    border-radius: 10px;
}

.case-workspace-shell :is(
    .case-workspace-host-summary .wb-card-header,
    .case-workspace-host-summary .aw-measure-collapse-header
):hover {
    background: color-mix(in srgb, var(--surface-soft) 78%, #ffffff);
}

.case-workspace-shell :is(
    .case-workspace-host-summary .wb-card-header,
    .case-workspace-host-summary .aw-measure-collapse-header
):focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--teal-soft) 90%, #ffffff);
}

.case-workspace-shell :is(
    .case-workspace-host-summary .wb-card-header,
    .case-workspace-host-summary .aw-measure-collapse-header
):where(:hover, :focus-visible) :is(
    .wb-card-chevron,
    .aw-measure-collapse-chevron
) {
    color: var(--blue-text);
}

.case-workspace-shell :is(
    .legal-context-ref-link,
    .legal-context-source-link,
    .pa-gate-reason-action
):focus-visible {
    outline: none;
    border-radius: 8px;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--teal-soft) 90%, #ffffff);
}

.case-workspace-shell :is(
    .legal-context-ref-link,
    .legal-context-source-link,
    .pa-gate-reason-action
):hover {
    color: var(--blue-text);
    text-decoration: underline;
}

@media (max-width: 900px) {
    .case-workspace-hero-top {
        grid-template-columns: 1fr;
    }

    .case-workspace-hero-meta-zone {
        justify-items: start;
        justify-content: flex-start;
    }

    .case-workspace-hero-actions {
        justify-content: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .case-workspace-shell :is(
        .case-workspace-progress-step,
        .case-workspace-host-edit-action,
        .case-workspace-back-button,
        .article-dsb-annotation-edit,
        .question-answer-edit,
        .question-entity-action-button,
        .aw-measure-footer-actions .workbench-ghost-button,
        .doc-shell-action-btn,
        .dsb-completion-export-note .workbench-ghost-button,
        .dsb-completion-section .workbench-ghost-button,
            .legal-context-ref-link,
        .legal-context-source-link,
        .pa-gate-reason-action,
        .wb-card-header,
        .aw-measure-collapse-header
    ) {
        transition-duration: 0.01ms;
    }
}

/* Card-Header — klickbare Collapse-Zeile: [icon] [titel] [pill] [chevron] */
.wb-card-header {
    width: 100%;
    display: flex;
    align-items: center;
    gap: var(--wb-card-header-gap);
    min-height: 24px;
    padding: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: left;
    color: inherit;
    font: inherit;
}

/* GEN7-UX-CASE-HOME-ACTION-NAVIGATION-FINALIZATION-I5: Ein Kartenkopf ohne
   Collapse-Mechanismus ist kein Bedienelement. `is-static` wird ausschliesslich
   von buildWorkspaceCardHeader() vergeben, wenn kein `onToggle` uebergeben
   wurde, und nimmt genau die Bedien-Anmutung zurueck. Keine geometrische oder
   typografische Aenderung. */
.wb-card-header.is-static {
    cursor: default;
}

/* Card-Titel */
.wb-card-title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--wb-card-title-size);
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0;
    color: var(--ink);
}

/* Status-Pill rechts */
.wb-card-pill {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.3;
    padding: 4px 11px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--surface-soft);
    color: var(--text-soft);
}

/* Status-Tone-Foundation — gemeinsame Basis neben .wb-card-pill.
   Renderer-Migration folgt separat; bestehende Bereichsklassen bleiben unberuehrt. */
.wb-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 22px;
    padding: 3px 9px;
    border: 1px solid var(--wb-status-pill-border);
    border-radius: 999px;
    background: var(--wb-status-pill-bg);
    color: var(--wb-status-pill-text);
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0;
    white-space: nowrap;
}

.wb-status-pill::before {
    content: "";
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--wb-status-pill-dot);
}

.wb-status-pill.is-status-open {
    --wb-status-pill-bg: var(--wb-status-open-bg);
    --wb-status-pill-border: var(--wb-status-open-border);
    --wb-status-pill-text: var(--wb-status-open-text);
    --wb-status-pill-dot: var(--wb-status-open-text);
}

.wb-status-pill.is-status-success {
    --wb-status-pill-bg: var(--wb-status-success-bg);
    --wb-status-pill-border: var(--wb-status-success-border);
    --wb-status-pill-text: var(--wb-status-success-text);
    --wb-status-pill-dot: var(--wb-status-success-text);
}

.wb-status-pill.is-status-warning {
    --wb-status-pill-bg: var(--wb-status-warning-bg);
    --wb-status-pill-border: var(--wb-status-warning-border);
    --wb-status-pill-text: var(--wb-status-warning-text);
    --wb-status-pill-dot: var(--wb-status-warning-text);
}

.wb-status-pill.is-status-danger {
    --wb-status-pill-bg: var(--wb-status-danger-bg);
    --wb-status-pill-border: var(--wb-status-danger-border);
    --wb-status-pill-text: var(--wb-status-danger-text);
    --wb-status-pill-dot: var(--wb-status-danger-text);
}

.wb-status-pill.is-status-info {
    --wb-status-pill-bg: var(--wb-status-info-bg);
    --wb-status-pill-border: var(--wb-status-info-border);
    --wb-status-pill-text: var(--wb-status-info-text);
    --wb-status-pill-dot: var(--wb-status-info-text);
}

.wb-status-pill.is-status-neutral {
    --wb-status-pill-bg: var(--wb-status-neutral-bg);
    --wb-status-pill-border: var(--wb-status-neutral-border);
    --wb-status-pill-text: var(--wb-status-neutral-text);
    --wb-status-pill-dot: var(--wb-status-neutral-text);
}

.wb-status-pill.is-status-delegated {
    --wb-status-pill-bg: var(--wb-status-delegated-bg);
    --wb-status-pill-border: var(--wb-status-delegated-border);
    --wb-status-pill-text: var(--wb-status-delegated-text);
    --wb-status-pill-dot: var(--wb-status-delegated-text);
}

.wb-status-pill.is-status-blocked {
    --wb-status-pill-bg: var(--wb-status-blocked-bg);
    --wb-status-pill-border: var(--wb-status-blocked-border);
    --wb-status-pill-text: var(--wb-status-blocked-text);
    --wb-status-pill-dot: var(--wb-status-blocked-text);
}

/* Chevron — rotiert über die .is-collapsed-Konvention */
.wb-card-chevron {
    flex: 0 0 auto;
    color: var(--muted-2);
    font-size: 14px;
    line-height: 1;
    transition: transform 140ms ease;
}

.wb-card:not(.is-collapsed) .wb-card-chevron {
    transform: rotate(180deg);
}

/* Card-Body — nur im offenen Zustand sichtbar */
.wb-card-body {
    display: grid;
    gap: var(--wb-card-body-gap);
    margin-top: var(--wb-card-body-margin-top);
}

.wb-card.is-collapsed .wb-card-body {
    display: none;
}

/* Card-Aktionsleiste (rechtsbündig) */
.wb-card-actions {
    margin-top: 4px;
    display: flex;
    justify-content: flex-end;
}

/* DSB-Notizfeld (aus .dsb-note-ta, gewinnende Regel) */
.wb-note {
    width: 100%;
    min-height: 64px;
    border-radius: var(--radius-md);
    border: 1px solid var(--line);
    background: var(--surface-2);
    padding: 8px 11px;
    font-size: 12.5px;
    line-height: 1.38;
    resize: vertical;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

/* Workspace-Fehlerbanner: Flow-Fehler bei aktivem Fall sichtbar machen
   (Entscheidung, Export, Override-Trail, Mandanten-Persist). */
.workspace-error-banner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 14px;
    padding: 10px 14px;
    border: 1px solid #f3c0c0;
    border-left: 3px solid #d64545;
    border-radius: 10px;
    background: #fdf2f2;
    color: #8a2424;
    font-size: 13px;
    line-height: 1.45;
}

.workspace-error-banner-text {
    flex: 1 1 auto;
}

.workspace-error-banner-dismiss {
    flex: 0 0 auto;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 16px;
    line-height: 1;
    padding: 0 2px;
    cursor: pointer;
}


/* ============================================================
   B62 / DS-4..6 — Card-Harmonisierung auf die Prüffragen-Referenz
   (radius 14px, padding 16/18, Schatten 0 1px 2px rgba(20,23,30,.05)).
   Border-Left-Farben der Artikel bleiben semantisch erhalten
   (amber = unbestätigt, grün = bestätigt, teal = DSB-ergänzt);
   nur Breite und Flächen werden auf Produktniveau beruhigt.
   ============================================================ */

#block-legal .article-row {
    padding: 14px 16px 14px 60px;
    border-radius: 14px;
    border-left-width: 1px;
    box-shadow: none;
}

#block-legal .article-row.article-row-primary {
    border-left-width: 1px;
    background: #ffffff;
    box-shadow: none;
}

#block-legal .article-row.is-open {
    background: var(--surface-soft);
}

#block-legal .article-row.article-row-primary.is-open {
    background: var(--surface-soft);
}

/* B13-F5 — Spacing-Polish: Der Legal-Tab bleibt eine ruhige Arbeitsflaeche,
   waehrend die Artikelkarten als eigentliche Arbeitseinheiten freier stehen. */
#block-legal.legal-basis-block {
    border: 0;
    background: transparent;
    box-shadow: none;
    padding: 2px 4px 0;
}

#block-legal .questions-toolbar {
    margin-bottom: 14px;
}

#block-legal .article-row-list {
    gap: 11px;
}

/* B13-F4 — Legal-Artikelkarten an das Gen3-Prueffragen-Pattern angleichen:
   Kartenkopf als ruhige Collapse-Zeile, Artikel-/Source-Labels als kleine
   Pills, Details als Karteninhalt statt Legal-Sondermodul. */
#block-legal .article-row,
#block-legal .article-row.article-row-confirmed,
#block-legal .article-row.is-dsb-added,
#block-legal .article-row.article-row-primary,
#block-legal .article-row.is-open,
#block-legal .article-row.article-row-confirmed.is-open,
#block-legal .article-row.is-dsb-added.is-open,
#block-legal .article-row.article-row-confirmed.is-dsb-added.is-open,
#block-legal .article-row.article-row-primary.is-open {
    border-color: var(--line);
    border-left-color: var(--line);
    background: #ffffff;
}

#block-legal .article-row.has-dsb-annotation::after {
    display: none;
}

/* B13-F5 — Linken Icon-Slot vorbereiten, ohne bereits ein Icon oder
   Platzhalter-Element zu rendern. 60px Kartenpadding ergibt ca. 44px
   reservierten Raum vor dem eigentlichen Artikelinhalt. */
#block-legal .article-row::before {
    content: "";
    position: absolute;
    top: 14px;
    left: 16px;
    width: 36px;
    height: 36px;
    pointer-events: none;
}

#block-legal .article-main-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 14px;
    align-items: center;
    cursor: pointer;
    outline: none;
}

#block-legal .article-main-line:focus-visible {
    border-radius: 10px;
    box-shadow: 0 0 0 2px rgba(20, 184, 166, 0.14);
}

#block-legal .article-title-wrap {
    display: grid;
    gap: 4px;
}

#block-legal .article-meta-line {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

#block-legal .article-law-badge,
#block-legal .article-source-pill {
    min-height: 20px;
    height: auto;
    max-width: 180px;
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.35;
    box-shadow: none;
}

#block-legal .article-law-badge {
    justify-self: start;
}

#block-legal .article-source-pill {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--line);
    background: var(--surface-soft);
    color: var(--muted);
}

#block-legal .article-title-line {
    align-items: center;
    gap: 0;
    font-size: 14.5px;
    font-weight: 650;
    line-height: 1.35;
}

#block-legal .article-title {
    white-space: normal;
}

#block-legal .article-preview {
    margin-top: 0;
    color: var(--muted);
    font-size: 12.25px;
}

#block-legal .article-collapse-chevron {
    color: var(--muted-2);
    font-size: 14px;
    line-height: 1;
    transition: transform 140ms ease;
}

#block-legal .article-row.is-open .article-collapse-chevron {
    transform: rotate(180deg);
}

/* B13-F1 — Statussprache an Gen3 angleichen: Status als bestehende
   wb-card-pill, Status-Farbe weiterhin über den Dot. Reine Darstellung,
   keine neue Statuskomponente. */
#block-legal .article-status-line {
    margin-top: 0;
    gap: 8px;
    font-weight: 600;
}

#block-legal .article-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* B13-F1 — Hierarchie beruhigen: Titel bleibt dominant, die sekundäre
   Why-Aktion tritt optisch zurück (Gen3-Arbeitsfluss, keine konkurrierende
   Sekundärinformation). */
#block-legal .article-why-toggle {
    display: none;
}

/* B13-F2 — Sekundärinformationen ruhiger stapeln: Why, DSB-Anmerkung
   und DSB-Hinweis bleiben vollständig sichtbar, treten aber hinter Titel
   und Status zurück. Keine Daten- oder Statuslogik. */
#block-legal .article-why-box {
    margin-top: 12px;
    max-width: none;
    border-left: 0;
    border: 0;
    background: transparent;
    padding: 10px 0 0;
    color: var(--muted);
    font-size: 12.5px;
    line-height: 1.5;
    box-shadow: none;
}

#block-legal .article-why-box > p {
    color: var(--muted);
}

#block-legal .article-section-label {
    display: block;
    margin-bottom: 4px;
    color: var(--text-soft);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

#block-legal .article-dsb-annotation {
    margin-top: 12px;
    border-color: var(--line);
    background: rgba(248, 250, 252, 0.48);
    border-radius: 8px;
    padding: 8px 10px;
}

#block-legal .article-dsb-annotation-label,
#block-legal .article-dsb-hint-label {
    margin-bottom: 3px;
    color: var(--muted);
    letter-spacing: 0.06em;
    font-size: 9.5px;
}

#block-legal .article-dsb-annotation p {
    color: #475569;
    font-size: 12.25px;
    line-height: 1.45;
}

#block-legal .article-dsb-annotation-edit {
    margin-top: 0;
    border-color: var(--teal);
    color: var(--teal);
    font-size: 11.5px;
    font-weight: 600;
}

#block-legal .article-dsb-annotation-editor {
    margin-top: 8px;
    padding-top: 8px;
    border-top-color: var(--line);
}

#block-legal .article-dsb-annotation .lo-item-reasoning {
    min-height: 68px;
    background: #ffffff;
    border-color: var(--border);
}

#block-legal .article-dsb-annotation .lo-item-reasoning:focus {
    border-color: var(--teal-border);
    box-shadow: 0 0 0 2px rgba(20, 184, 166, 0.12);
}

#block-legal .article-dsb-hint {
    margin-top: 12px;
    max-width: 640px;
    border-left: 0;
    border: 0;
    background: transparent;
    border-radius: 8px;
    padding: 0;
}

#block-legal .article-dsb-hint p {
    color: #475569;
    font-size: 12.25px;
    line-height: 1.45;
}

/* B13-F3 — Annex III ist Kontext, nicht das primaere Arbeitsobjekt.
   Der Hinweis bleibt sichtbar und der Button bleibt funktional identisch,
   tritt aber hinter die eigentlichen Rechtsgrundlagenkarten zurueck. */
#block-legal > .dsb-assistant-hint {
    margin: 8px 0 12px;
    padding: 9px 12px;
    border-radius: 10px;
    border-color: var(--line);
    background: rgba(248, 250, 252, 0.78);
    box-shadow: none;
}

#block-legal > .dsb-assistant-hint .dsb-assistant-hint-label {
    margin-bottom: 3px;
    color: #64748b;
    font-size: 9.5px;
    font-weight: 750;
    letter-spacing: 0.07em;
}

#block-legal > .dsb-assistant-hint p {
    max-width: 720px;
    color: #475569;
    font-size: 12.25px;
    line-height: 1.42;
}

#block-legal > .dsb-assistant-hint .article-head-actions {
    margin-top: 6px !important;
}

#block-decision {
    border-radius: 14px;
    padding: 16px 18px;
    box-shadow: 0 1px 2px rgba(20, 23, 30, 0.05);
}

.dsb-decision-actions {
    padding: 16px 18px;
    box-shadow: 0 1px 2px rgba(20, 23, 30, 0.05);
}

/* B15-F2 — DSB-Ergänzung als ruhiger Gen3-Arbeitsfluss in drei Gruppen
   (DSB-Entscheidung, Freigabeprüfung, Audit-Artefakte). Nur Struktur und
   visuelle Gewichtung. Keine neue Logik, keine neue Datenquelle. */

/* Outer-Panel zurücknehmen: der Tab wird ruhiger Fluss statt schwerer
   Panel-Karte. Die Gruppen tragen jetzt die Struktur (Card-in-Card-Reduktion). */
.dsb-decision-actions {
    display: flex;
    flex-direction: column;
    /* B16-F1 — Root Cause Breite: align-items:start aus der alten Grid-Regel
       (~Z.3997) galt hier weiter und ließ alle Gruppen auf Inhaltsbreite
       schrumpfen. stretch stellt die volle Arbeitsbreite her. */
    align-items: stretch;
    gap: 16px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.dsb-workflow-group {
    display: grid;
    gap: 10px;
}

/* B16-F1 — Gruppen sind <section>-Elemente und erbten die globale
   Karten-Regel (section { border/background/shadow }, ~Z.6722): jede Gruppe
   wurde so zur eigenen schweren Karte um die Sektionskarten (Card-in-Card).
   Gruppen sind reine Struktur — die Sektionen bleiben die einzige Kartenebene. */
.dsb-decision-actions .dsb-workflow-group {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

/* B16-F1 — Workspace ausnutzen: Freigabeprüfung (Systemeinschätzung |
   Abschlussprüfung) und Audit-Artefakte (Verlauf | Export) laufen auf
   breiten Viewports zweispaltig. Der Gruppenkopf spannt beide Spalten. */
.dsb-decision-actions .dsb-workflow-group-head {
    grid-column: 1 / -1;
}

.dsb-decision-actions .dsb-workflow-group.is-secondary,
.dsb-decision-actions .dsb-workflow-group.is-tertiary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
}

@media (max-width: 1100px) {
    .dsb-decision-actions .dsb-workflow-group.is-secondary,
    .dsb-decision-actions .dsb-workflow-group.is-tertiary {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* B16-F1 — Schattennormalisierung: Sektionen erbten den schweren
   --sh-2-Schatten aus der globalen section-Regel. Referenzschatten der
   Prüffragen-Karten stattdessen. */
.dsb-decision-actions .dsb-decision-section {
    box-shadow: 0 1px 2px rgba(20, 23, 30, 0.05);
}

/* B16-F2 — Frei stehende Karten: kein Rahmen, weiße Fläche auf dem
   Seitenhintergrund, weicher Referenzschatten. Auf-/zuklappbar über das
   bestehende wb-card-Muster (Header-Button + Chevron wie Verarbeitung). */
.dsb-decision-actions .dsb-decision-section {
    border: 1px solid var(--line);
    border-radius: var(--r-5);
    background: #ffffff;
    padding: 18px 20px;
}

.dsb-decision-actions .dsb-decision-section .wb-card-title {
    font-size: 15px;
    font-weight: 750;
    letter-spacing: -0.01em;
}

.dsb-decision-actions .dsb-decision-section .wb-card-header {
    align-items: center;
    gap: 12px;
}

.dsb-decision-actions .dsb-decision-section .wb-card-pill {
    padding: 3px 10px;
    font-size: 11px;
}

.dsb-decision-actions .dsb-decision-section .wb-card-body {
    margin-top: 12px;
    gap: 10px;
}

.dsb-decision-actions .dsb-decision-section .wb-card-chevron {
    color: var(--ink);
    font-size: 16px;
    font-weight: 800;
}

.dsb-decision-actions .dsb-decision-section .wb-card-header:hover .wb-card-chevron {
    color: var(--blue-text);
}

/* Eingeklappte Karten bleiben ruhige, schlanke Zeilen. */
.dsb-decision-actions .dsb-decision-section.is-collapsed {
    padding-top: 16px;
    padding-bottom: 16px;
}

.dsb-workflow-group .dsb-decision-section {
    margin-bottom: 0;
}

.dsb-workflow-group-head {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
}

/* Gruppe 1 — Primärbereich: Entscheidung ruhig dominant, kein schwerer
   Schlagschatten mehr. */
.dsb-workflow-group.is-primary .dsb-workflow-group-head {
    color: var(--ink);
}

.dsb-decision-actions .dsb-decision-section-action {
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}

/* B15-F3 — DSB-Entscheidung an die Gen3-CI angleichen. Nur Darstellung:
   Toolbar-Kopf wie Prüffragen, schlankes Risiko-Banner, Status-Grid als
   ruhige Segmentwahl, Card-in-Card im Kontext-/Exportbereich aufgelöst. */

/* Risiko-Banner verschlanken: schmaler, kleineres Icon, gleiche Aussage. */
#block-decision.decision-compact {
    padding: 12px 14px;
    margin-bottom: 12px;
    border-radius: 14px;
}

#block-decision .db-icon {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    font-size: 15px;
}

#block-decision .decision-compact-line {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 10px;
}

#block-decision .decision-dsb-hint {
    margin-left: 44px;
}

/* Toolbar-Kopf: Abstand kommt aus dem Gruppen-Gap des Containers. */
.dsb-decision-actions > .questions-toolbar {
    margin-bottom: 0;
}

.dsb-decision-toolbar {
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 2px;
}

.dsb-decision-toolbar .questions-block-title {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
}

.dsb-case-id {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface-2);
    color: var(--ink-4);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.03em;
}

/* Status-Grid als eine ruhige Segmentreihe (Desktop), 2x2 auf schmalen
   Viewports. Bedienlogik unverändert. */
.dsb-decision-section-action .dsb-status-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 0;
}

.dsb-decision-section-action .dsb-status-button {
    min-height: 36px;
    justify-content: center;
    border-radius: 999px;
}

@media (max-width: 900px) {
    .dsb-decision-section-action .dsb-status-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Card-in-Card auflösen: Innenflächen werden weiche Flächen statt eigener
   Karten mit Rahmen. */
.dsb-decision-section .dsb-proposal-block,
.dsb-decision-section .dsb-context-summary {
    border: 0;
    background: var(--surface-soft);
}

.dsb-decision-section .dsb-context-summary,
.dsb-decision-section .dsb-completion-checklist,
.dsb-decision-section .dsb-proposal-block {
    padding: 12px 14px;
    border-radius: var(--r-4);
}

.dsb-decision-section .dsb-completion-checklist {
    border-color: var(--line);
    background: var(--surface-2);
}

.dsb-decision-section .dsb-section-head {
    margin: 10px 0 6px;
}

.dsb-decision-section-release-status .wb-card-body {
    gap: 14px;
}

.dsb-decision-section-release-status .dsb-completion-section {
    border: 1px solid var(--line);
    border-radius: var(--r-4);
    background: var(--surface-2);
    padding: 4px 0;
}

.dsb-decision-section-release-status .dsb-completion-export-note {
    margin: 0;
    padding: 0;
    border-top: 0;
    font-style: normal;
}

.dsb-decision-section-export .export-actions {
    border: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

/* B16 — DSB-Entscheidung Clean-Pass: Lesbarkeit und Luft auf das Niveau der
   übrigen Gen3-Reiter heben (Vorlage: ruhige Karten, echte Status-Pillen,
   Trennlinien wie in der rechten Rail). Nur Darstellung, keine Logik. */

.dsb-decision-actions .dsb-decision-section {
    padding: 16px 18px;
    border-radius: 14px;
    gap: 10px;
}

.dsb-decision-actions .dsb-decision-section .dsb-section-head {
    margin: 2px 0 4px;
    font-size: 10.5px;
    letter-spacing: 0.07em;
    color: var(--muted);
}

/* Entscheidung: Statuswahl deutlicher, Notiz großzügiger, Speichern rechts. */
.dsb-decision-section-action .dsb-status-button {
    min-height: 40px;
    font-size: 12.5px;
}

.dsb-decision-section-action .dsb-note-ta {
    min-height: 96px;
    padding: 10px 12px;
    font-size: 13px;
}

.dsb-decision-section-action .dsb-note-actions {
    margin-top: 8px;
    display: flex;
    justify-content: flex-end;
}

/* Kontext-Zusammenfassung: Zeilen wie in der rechten Rail. */
.dsb-decision-section .dsb-context-summary {
    gap: 0;
    padding: 4px 0;
    border-radius: 12px;
}

.dsb-decision-section .dsb-context-summary-row {
    padding: 8px 12px;
}

.dsb-decision-section .dsb-context-summary-row + .dsb-context-summary-row {
    border-top: 1px solid #eef2f7;
}

.dsb-decision-section .dsb-context-summary-label {
    font-size: 12.5px;
    font-weight: 600;
}

.dsb-decision-section .overview-status-badge {
    padding: 3px 10px;
    font-size: 11px;
    font-weight: 700;
}

/* Abschluss-Checkliste: lesbare Zeilen, echte Pillen. */
.dsb-decision-section .dsb-completion-checklist {
    border-radius: 12px;
}

.dsb-decision-section .dsb-completion-head {
    padding: 8px 12px;
    font-size: 10px;
    letter-spacing: 0.07em;
}

.dsb-decision-section .dsb-completion-row {
    min-height: 34px;
    padding: 6px 12px;
}

.dsb-decision-section .dsb-completion-row + .dsb-completion-row {
    border-top: 1px solid #eef2f7;
}

.dsb-decision-section .dsb-completion-label {
    font-size: 12.5px;
    font-weight: 600;
}

.dsb-decision-section .dsb-completion-status {
    padding: 3px 10px;
    font-size: 11px;
    font-weight: 700;
}

.dsb-decision-section .dsb-completion-export-note {
    padding: 8px 12px;
    font-size: 11.5px;
    font-style: normal;
}

/* Hinweise: ruhige Flächen statt gedrängter Streifen. */
.dsb-decision-section .dsb-release-warning,
.dsb-decision-section .dsb-conflict-warning,
.dsb-decision-section .dsb-gov-warn {
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 12px;
}

.dsb-decision-section .dsb-release-warning-title,
.dsb-decision-section .dsb-release-warning-list {
    font-size: 12px;
}

/* Export: Vorschau lesbarer, Aktionen mit Luft. */
.dsb-decision-section-export .handover-preview {
    max-height: 220px;
    padding: 10px 12px;
    font-size: 11px;
    line-height: 1.45;
    border-radius: 10px;
}

.dsb-decision-section-export .handover-preview-label {
    font-size: 10.5px;
}

.dsb-decision-section-export .rail-bottom-actions {
    gap: 8px;
    margin-top: 10px;
    flex-wrap: wrap;
}

#block-history {
    padding: 16px 18px;
    box-shadow: 0 1px 2px rgba(20, 23, 30, 0.05);
}

/* B66/B41/B1 — Aktionen in der Karte: Maßnahmen- und Prüffragen-Footer-Zeile. */
.aw-measure-footer-actions,
#block-questions .question-entity-actions {
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}

.workbench-ghost-button.is-danger {
    border-color: var(--red-border);
    color: var(--red-text);
}

.workbench-ghost-button.is-danger:hover:not(:disabled) {
    background: var(--red-soft);
}

.question-check .dsb-note-actions {
    gap: 8px;
    align-items: center;
}

#block-questions .question-entity-actions {
    display: flex;
    justify-content: flex-end;
}

#block-questions .question-entity-form-action,
.question-create-modal-backdrop .question-entity-form-action,
.question-article-modal .legal-overrides-modal-foot .workbench-ghost-button {
    border-radius: var(--radius-pill);
    min-height: 32px;
    padding: 6px 12px;
    font-size: 12px;
    line-height: 1.15;
    white-space: nowrap;
    box-shadow: none;
}

#block-questions .question-entity-form-action,
.question-create-modal-backdrop .question-entity-form-action,
.question-article-modal .legal-overrides-modal-foot .workbench-ghost-button {
    background: var(--blue-soft);
    border-color: var(--blue-border);
    color: var(--blue-text);
}

#block-questions .question-entity-form-action:hover:not(:disabled),
.question-create-modal-backdrop .question-entity-form-action:hover:not(:disabled),
.question-article-modal .legal-overrides-modal-foot .workbench-ghost-button:hover:not(:disabled) {
    background: var(--blue-bg-2);
    border-color: var(--blue-text);
    color: var(--blue-text);
    text-decoration: none;
}

#block-questions .question-entity-action-button {
    background: #f8fbff;
    border-color: #d7e5fb;
    color: #335c99;
    min-height: 28px;
    padding: 5px 9px;
    font-size: 11.5px;
    line-height: 1.15;
    white-space: nowrap;
    box-shadow: none;
}

#block-questions .question-entity-action-button:hover:not(:disabled) {
    background: #eef5ff;
    border-color: #bcd2f5;
    color: #274c87;
}

#block-questions .question-entity-action-button.is-danger {
    background: #fffafb;
    border-color: var(--red-border);
    color: var(--red-text);
}

#block-questions .question-entity-action-button.is-danger:hover:not(:disabled) {
    background: var(--red-soft);
    border-color: var(--red-border);
    color: var(--red-text);
}

#block-measures .aw-measure-footer-actions .workbench-ghost-button {
    min-height: 28px;
    padding: 5px 9px;
    border-color: #d7e5fb;
    background: #f8fbff;
    color: #335c99;
    font-size: 11.5px;
    line-height: 1.15;
    box-shadow: none;
}

#block-measures .aw-measure-footer-actions .workbench-ghost-button:hover:not(:disabled) {
    border-color: #bcd2f5;
    background: #eef5ff;
    color: #274c87;
}

#block-measures .aw-measure-footer-actions .workbench-ghost-button.is-danger {
    background: #fffafb;
    border-color: var(--red-border);
    color: var(--red-text);
}

/* ============================================================
   PA-B4 — Tab "Verarbeitung" (Processing Activity)
   Nur ergänzende Layout-Klassen; Cards/Inputs nutzen wb-card*
   und aw-edit-* unverändert.
   ============================================================ */

#block-processing-activity.pa-root {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

#block-processing-activity .pa-head {
    display: flex;
    align-items: center;
    gap: 10px;
}

#block-processing-activity .pa-title {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
}

#block-processing-activity .pa-section {
    position: relative;
    padding: 12px 14px 12px 60px;
}

#block-processing-activity .pa-section:not(.is-collapsed) {
    border-color: var(--teal-border);
    box-shadow: 0 12px 34px rgba(15, 23, 42, 0.08);
}

/* B14-F1 — Linken Icon-Slot fuer spaetere Verarbeitungskarten-Icons
   reservieren, ohne Icon/DOM/Statuslogik einzubauen. */
#block-processing-activity .pa-section::before {
    content: "";
    position: absolute;
    top: 12px;
    left: 14px;
    width: 36px;
    height: 36px;
    pointer-events: none;
}

#block-processing-activity .pa-section .wb-card-header {
    min-height: 0;
    gap: 10px;
    align-items: center;
}

/* ICON-ASSET-F1 — Basis für alle PNG-Icons: feste, einheitliche Grundfläche,
   keine Verzerrung, kein eigener Hintergrund/Rahmen. */
.wb-icon {
    display: inline-block;
    object-fit: contain;
    flex: 0 0 auto;
    user-select: none;
}

/* ICON-ASSET-F1-2 — Sektions-Icon als dezente Orientierungshilfe, nicht als
   Badge/Kachel/Button. Borderlos, sehr heller Hintergrundton, kleinerer Radius,
   reduzierte Fläche; Glyph ≈22px. Eng an den Titel gerückt (negative Marge
   gegen das Header-gap), damit Icon und Überschrift als Einheit wirken.
   Visuelle Hierarchie: zuerst Titel + Status, dann Icon. */
/* FIX 3 — fortlaufende Sektionsnummer im zuvor von Icons belegten Slot:
   ruhige, gleichförmige Marke statt Icon-Vielfalt. */
/* GEN7-UX-PROCESSING-EDITOR-VISUAL-GRAMMAR-I1 -- Entkopplung von der
   Gen3-Container-ID.

   ROOT CAUSE, live gemessen: die gesamte Kopfgrammatik der
   Bearbeitungsbereiche war an `#block-processing-activity` gebunden -- den
   KLASSISCHEN Gen3-Container. Der Gen7-Editor lebt in
   `.case-workspace-processing-edit` und bekam davon nichts ab. Gemessen:
   Titelklammer `display: block` statt Spalte (Titel und Beschreibung auf
   DERSELBEN Zeile -- "VerarbeitungstätigkeitBeschreibung der ..."),
   Beschreibung 16px/400 (also GROESSER als der Titel mit 14,5px), die
   Sektionsnummer als nackter 16px-Text von 7x23px statt als 24x24-Chip, die
   Metazone `display: block` statt Flexzeile.

   Korrigiert wird an den BESTEHENDEN Regeln, indem der Gen7-Editor in ihre
   Selektorliste aufgenommen wird -- keine zweite Grammatik, keine neuen
   Werte, kein Processing-Sonderweg. Dasselbe Muster wie
   GEN7-FIX-PRUEFUNG-DECISION-BASIS-EXACT-CASE-HOME-PARITY-I1 (surface-
   gebundene Regel macht aus einem geteilten Owner zwei Darstellungen). */
.case-workspace-processing-edit .pa-section .pa-section-number,
#block-processing-activity .pa-section .pa-section-number {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.05);
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    margin-right: -2px;
}

#block-processing-activity .pa-section .wb-card-title {
    font-size: 15px;
    line-height: 1.2;
    font-weight: 750;
    letter-spacing: -0.01em;
}

#block-processing-activity .pa-section .wb-card-body {
    gap: 12px;
    margin-top: 12px;
}

/* Statusfarbe migriert auf wb-status-pill + is-status-success (Gen3). */

#block-processing-activity .pa-help-text {
    margin: 4px 0 0;
    font-size: 12px;
    color: var(--text-muted, #6b7280);
}

#block-processing-activity .pa-missing-list {
    margin: 6px 0 0;
    padding-left: 18px;
    font-size: 13px;
    color: var(--red-text, #b42318);
}

#block-processing-activity .pa-save-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

#block-processing-activity .pa-save-status {
    font-size: 13px;
}

#block-processing-activity .pa-status-error {
    color: var(--red-text, #b42318);
}

#block-processing-activity .pa-status-dirty {
    color: var(--text-muted, #6b7280);
}

#block-processing-activity .pa-status-ok {
    color: var(--green-text, #1e7e34);
}

/* PA-B4-R5 — Accordion-Header: Titel + Kurzbeschreibung links,
   Status-Pill + Chevron rechts (wb-card-Konvention, DS-2). */
.case-workspace-processing-edit .pa-card-title-wrap,
#block-processing-activity .pa-card-title-wrap {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.case-workspace-processing-edit .pa-card-sub,
#block-processing-activity .pa-card-sub {
    max-width: 58ch;
    font-size: 11.5px;
    line-height: 1.25;
    color: var(--text-muted, #6b7280);
    font-weight: 400;
}

.case-workspace-processing-edit .pa-card-meta,
#block-processing-activity .pa-card-meta {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-left: auto;
}

#block-processing-activity .pa-card-progress {
    display: none;
    white-space: nowrap;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 700;
    color: var(--text-muted, #6b7280);
}

#block-processing-activity .pa-section-pill,
#block-processing-activity .pa-review-pill {
    padding: 5px 10px;
    font-size: 11px;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
}

/* Statusfarben (is-empty/is-partial/is-complete, Review) migriert auf
   wb-status-pill + is-status-* (Gen3). is-partial bleibt reine Strukturklasse
   und bestimmt keine Farbe mehr; lokale Farbdefinitionen wurden entfernt, damit
   die ID-Spezifitaet die Tone-Klassen nicht ueberschreibt. */

/* B9-C2 — Dokument-Reife-Karte: ruhige, vertikal saubere Zeilen
   (Label links, Status-Pill rechts), gleiche Anmutung wie die PA-Karten. */
#block-processing-activity .pa-gates-row {
    display: grid;
    gap: 8px;
    margin-top: 2px;
}

#block-processing-activity .pa-gate-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: var(--wb-card-radius, 10px);
    background: var(--surface-soft);
}

#block-processing-activity .pa-gate-label {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

/* B10-R3 — Dokument-Reife im Accordion: bei blockiertem Gate bis zu drei
   ruhige Klartext-Gründe unter der Status-Zeile (keine Roh-Codes). */
#block-processing-activity .pa-gate-reasons {
    list-style: none;
    margin: 6px 0 0;
    padding: 0;
    display: grid;
    gap: 4px;
}

#block-processing-activity .pa-gate-reason {
    position: relative;
    padding-left: 16px;
    font-size: 12px;
    line-height: 1.4;
    color: var(--muted);
}

#block-processing-activity .pa-gate-reason::before {
    content: "•";
    position: absolute;
    left: 4px;
    color: var(--muted);
}

/* B12-F2 — Action-Link als klare Handlungsempfehlung unter dem Grund.
   Diagnose (Grund) und Aktion sind visuell getrennt: deutlicher Abstand,
   kräftigere Schrift. Design-Sprache aus .case-tile-link wiederverwendet
   (blue-text, font-weight 600, Hover-Underline) — keine neue Farbwelt,
   kein Button-/CTA-/Badge-Stil. */
#block-processing-activity .pa-gate-reason-action {
    display: block;
    margin-top: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--blue-text);
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

#block-processing-activity .pa-gate-reason-action:hover {
    text-decoration: underline;
}

#block-processing-activity .pa-section .wb-card-chevron {
    width: 18px;
    height: 18px;
    border: 0;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--ink);
    font-size: 16px;
    font-weight: 800;
}

#block-processing-activity .pa-section .wb-card-header:hover .wb-card-chevron {
    color: var(--blue-text);
    background: transparent;
}

@media (max-width: 760px) {
    #block-processing-activity .pa-section .wb-card-header {
        align-items: flex-start;
    }

    #block-processing-activity .pa-card-meta {
        flex-direction: column;
        align-items: flex-end;
        gap: 5px;
    }
}

/* B17 — Dokumentengenerierung im Reiter "DSB-Entscheidung".
   Ruhige wb-card-Optik, dezenter Blau-Akzent nur im freigeschalteten Zustand. */
/* Innerer Dokumentcontainer ohne eigenen Rahmen: nur Layout, keine
   Card-in-Card-Wirkung. Der äußere wb-card-Rahmen bleibt der einzige
   Container; die einzelnen Dokumentkarten behalten ihre dünne Linie. */
.dsb-document-generation {
    display: grid;
    gap: 10px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.dsb-document-generation__status {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.dsb-document-generation__status.is-locked {
    color: var(--muted);
}

.dsb-document-generation__status.is-ready {
    color: var(--blue-text);
}

.dsb-document-generation__hint {
    margin: 0;
    font-size: 12px;
    color: var(--muted);
}

.dsb-document-generation__responsibility {
    margin: 0;
    font-size: 11.5px;
    font-style: italic;
    color: var(--muted);
}

/* Dokumente als kompakte Liste statt Kachelraster: weniger Höhe, mehr
   Dokumentcharakter, nur dünne Trennlinien. */
.dsb-document-generation__grid {
    display: grid;
    gap: 0;
    margin-top: 2px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

/* Eine Dokumentzeile: Name + Status links, kompakte Aktion rechts.
   Kein zweiter Card-Rahmen, keine Füllfläche, nur eine dünne Zeilenlinie. */
.dsb-document-generation__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 6px 10px;
    border-top: 1px solid var(--border);
}

.dsb-document-generation__item:first-child {
    border-top: 0;
}

.dsb-document-generation__item-main {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.dsb-document-generation__item-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--ink);
    overflow-wrap: anywhere;
}

.dsb-document-generation__item-meta {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 10.5px;
}

/* Status steht vor der Aktion und ist die primäre Information. */
.dsb-document-generation__doc-status {
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--muted);
}

.dsb-document-generation__item.is-ready .dsb-document-generation__doc-status {
    color: var(--blue-text);
}

.dsb-document-generation__item.is-ready .dsb-document-generation__doc-status.is-status-open,
.document-modal-status.is-status-open {
    color: var(--muted);
}

.dsb-document-generation__item.is-ready .dsb-document-generation__doc-status.is-status-info,
.document-modal-status.is-status-info {
    color: var(--blue-text);
}

.dsb-document-generation__item.is-ready .dsb-document-generation__doc-status.is-status-success,
.document-modal-status.is-status-success {
    color: var(--green-text);
}

.dsb-document-generation__item.is-ready .dsb-document-generation__doc-status.is-status-neutral,
.document-modal-status.is-status-neutral {
    color: var(--muted-2, var(--muted));
}

.dsb-document-generation__item.is-ready .dsb-document-generation__doc-status.is-status-danger,
.document-modal-status.is-status-danger {
    color: var(--red-text);
}

.dsb-document-generation__btn {
    flex: none;
    font-size: 11px;
    padding: 4px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface);
    color: var(--muted);
    cursor: not-allowed;
}

.dsb-document-generation__item.is-ready .dsb-document-generation__btn {
    border-color: var(--blue-border);
    background: #fff;
    color: var(--blue-text);
    cursor: pointer;
}

.dsb-document-generation__item.is-ready .dsb-document-generation__btn:hover {
    background: var(--blue-soft);
}

/* Dokumentgruppen: dezente Überschrift, klare Abstände, keine schweren Rahmen
   und keine zweite Card-Fläche. */
.dsb-document-generation__group {
    display: grid;
    gap: 6px;
}

.dsb-document-generation__group + .dsb-document-generation__group {
    margin-top: 8px;
}

.dsb-document-generation__group-title {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ink);
}

.dsb-document-generation__group-note {
    margin: 0;
    font-size: 11.5px;
    color: var(--muted);
}

/* Gesperrte Dokumente ruhig und bewusst deaktiviert darstellen: gleicher
   Zeilenaufbau wie freigeschaltete Dokumente, nur gedämpfter Hintergrund und
   gedämpfter Titel. Keine gestrichelte Wireframe-Optik. */
.dsb-document-generation__item.is-unavailable {
    background: var(--surface);
}

.dsb-document-generation__item.is-unavailable .dsb-document-generation__item-title {
    color: var(--muted);
}

/* DOCUMENT-WORLD-SHELL-V1 / B17-F1 — Read-only Dokumentenuebersicht.
   Flat Card Architecture: Pakete sind nur Abschnittsueberschriften, jedes
   Dokument ist eine eigene wb-card-Accordion-Karte (wie Verarbeitung).
   Kein Card-in-Card, ruhig, luftig, blaue CI nur als Akzent. */
.doc-shell {
    display: flex;
    flex-direction: column;
    gap: 34px;
}

.doc-shell-header {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Reiter-Ueberschrift einheitlich mit Verarbeitung (.pa-title 17px/600). */
.doc-shell-title {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--text-strong);
}

.doc-shell-subtitle {
    margin: 0;
    font-size: 13px;
    color: var(--text-soft);
}

.doc-shell-gate-hint {
    margin: 8px 0 0;
    padding: 8px 12px;
    background: var(--blue-soft);
    border: 1px solid var(--blue-border);
    border-radius: 6px;
    font-size: 12px;
    color: var(--text-soft);
    line-height: 1.5;
}

.doc-shell-group {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Paket = reine Abschnittsueberschrift, keine Karte. Blaue CI als Akzent. */
.doc-shell-group-title {
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--blue-text);
}

/* Dokumentkarten als eigenstaendige Objekte mit Luft, nicht als Tabellenzeilen. */
.doc-shell-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.doc-shell-card-titlewrap {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.doc-shell-card-title {
    flex: 0 0 auto;
}

.doc-shell-card-type {
    font-size: 12px;
    color: var(--muted);
}

.doc-shell-card:not(.is-collapsed) .doc-shell-card-title {
    color: var(--blue-text);
}

/* B18-F1 Harmonisierung: Dokumentkarten folgen exakt dem Verarbeitungs-Muster
   (Referenz .pa-section). Gleiche Kartenhoehe (Padding), gleicher reservierter
   linker Icon-Slot ("Luecke" fuer spaetere Icons), gleicher Header-Rhythmus,
   gleiche Titelgroesse und gleicher Body-Abstand. Kein Icon/DOM, nur Raster. */
.doc-shell-card {
    position: relative;
    padding: 12px 14px 12px 60px;
}

/* Linken Icon-Slot reservieren wie Verarbeitung/Gesetzesgrundlagen,
   ohne bereits ein Icon oder Platzhalter-Element zu rendern. */
.doc-shell-card::before {
    content: "";
    position: absolute;
    top: 12px;
    left: 14px;
    width: 36px;
    height: 36px;
    pointer-events: none;
}

.doc-shell-card .wb-card-header {
    min-height: 0;
    gap: 10px;
    align-items: center;
}

.doc-shell-card .wb-card-title {
    font-size: 15px;
    line-height: 1.2;
    font-weight: 750;
    letter-spacing: -0.01em;
}

.doc-shell-card .wb-card-body {
    gap: 12px;
    margin-top: 12px;
}

.doc-shell-status-pill.is-empty {
    color: var(--muted);
}

/* FIX 5 — einheitliches Haken-System: Status-Punkt + Text wie Prueffragen
   (.dsb-status-dot) und Rechtsgrundlagen (.article-status-dot). Vorhandenes
   Dokument = gefuellter gruener Punkt, nicht erstellt = gedaempfter Punkt. */
.doc-shell-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* B19: superseded/archived gemaess R7 nur dezent (gedaempfter, kein Akzent),
   damit veraltete Versionen nicht wie aktive Statuswaende wirken. */
.doc-shell-status-pill.is-muted {
    color: var(--muted-2, var(--muted));
    opacity: 0.85;
}

.doc-shell-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px 24px;
}

.doc-shell-meta-row {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.doc-shell-meta-label {
    font-size: 11px;
    color: var(--muted);
}

.doc-shell-meta-value {
    font-size: 13px;
    color: var(--text-soft);
}

.doc-shell-validity {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin-top: 2px;
}

.doc-shell-validity-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.doc-shell-validity.is-valid .doc-shell-validity-badge {
    background: var(--green-bg);
    border-color: var(--green-bg-2);
    color: var(--green-text);
}

.doc-shell-validity.is-warning .doc-shell-validity-badge {
    background: var(--amber-soft);
    border-color: var(--amber-border);
    color: var(--amber);
}

.doc-shell-validity.is-neutral .doc-shell-validity-badge {
    background: var(--surface-soft);
    border-color: var(--border);
    color: var(--muted);
}

.doc-shell-validity-detail {
    margin: 0;
    font-size: 12.5px;
    color: var(--text-soft);
}

.doc-shell-validity.is-warning .doc-shell-validity-detail {
    color: var(--amber);
}

/* DOCUMENT-EXPORT-VISIBILITY-F1: Export-Nachweis persistent sichtbar,
   auch wenn eine neuere Version vorhanden ist. */
.doc-shell-export-info {
    margin-top: 6px;
    display: flex;
    align-items: center;
}

.doc-shell-export-label {
    font-size: 12.5px;
    color: var(--text-soft);
}

.doc-shell-export-label.is-neutral {
    color: var(--muted);
}

/* DOCUMENT-WORLD-F3: Erstellungsaktion in der Dokumentkarte. */
.doc-shell-action {
    margin-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
}

.doc-shell-action-feedback {
    margin: 0;
    font-size: 12px;
    color: var(--danger, #b91c1c);
}

/* DOCUMENT-WORLD-F2: Anzeige- und Versionsaktionen am vorhandenen Dokument. */
.doc-shell-actions {
    margin-top: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.doc-shell-correction-hint {
    margin: 10px 0 0;
    font-size: 12px;
    color: var(--muted);
}

.doc-shell-history {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border, rgba(15, 23, 42, 0.08));
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.doc-shell-history-title {
    margin: 0;
    font-size: 11px;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.doc-shell-history-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.doc-shell-history-label {
    font-size: 13px;
    color: var(--text-soft);
}

.doc-shell-timeline {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border, rgba(15, 23, 42, 0.08));
}

.doc-shell-timeline > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    cursor: pointer;
    list-style: none;
    margin: 0;
    font-size: 11px;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.doc-shell-timeline > summary::-webkit-details-marker {
    display: none;
}

.doc-shell-timeline > summary::after {
    content: "⌄";
    font-size: 14px;
    line-height: 1;
    color: var(--muted);
    transition: transform 140ms ease;
}

.doc-shell-timeline[open] > summary::after {
    transform: rotate(180deg);
}

.doc-shell-timeline-body {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.doc-shell-timeline-empty {
    margin: 0;
    font-size: 13px;
    color: var(--muted);
}

.doc-shell-timeline-list {
    margin-top: 0;
}

/* DOCUMENT-EXPORT-F1B: Dokumentviewer-Kopfzeile (Status + Aktionen) und
   minimale Druckausgabe. Gedruckt wird ausschliesslich die geoeffnete,
   persistierte Dokumentversion im Viewer. Keine zweite Renderlogik. */
.document-modal-head-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.document-modal-status {
    margin-top: 6px;
    font-size: 13px;
    color: var(--muted);
    font-weight: 600;
}

/* DOCUMENT-EXPORT-F2: Fehlermeldung des Exportnachweises (nur bei Fehlschlag). */
.document-modal-export-feedback {
    margin-top: 6px;
    font-size: 13px;
    color: var(--danger, #b42318);
    font-weight: 600;
}

.document-modal-export-feedback:empty {
    display: none;
}

@media print {
    /* Wurzelursache des Ein-Seiten-Abschnitts: html/body sind app-weit auf
       height:100% + overflow:hidden gesetzt (Zeile 106-112). Ohne diesen
       Reset bleibt der Dokumentinhalt auf eine Bildschirmseite geklemmt,
       auch wenn der Modal-Layer selbst frei fliessen kann. Nur beim
       bewussten Dokumentdruck aktiv, normales Strg+P bleibt unberuehrt. */
    html:has(body.printing-document) {
        height: auto;
        overflow: visible;
    }

    body.printing-document {
        height: auto;
        overflow: visible;
    }

    body.printing-document #topbar,
    body.printing-document .app-shell {
        display: none !important;
    }

    /* Andere Modal-Layer nicht mitdrucken. */
    body.printing-document #modal-root > .law-modal-backdrop:not(.document-modal-backdrop) {
        display: none !important;
    }

    body.printing-document .document-modal-backdrop {
        position: static;
        display: block;
        padding: 0;
        background: none;
        z-index: auto;
    }

    body.printing-document .document-modal-backdrop .law-modal {
        width: 100%;
        max-width: none;
        max-height: none;
        overflow: visible;
        border: none;
        border-radius: 0;
        box-shadow: none;
    }

    body.printing-document .document-modal-backdrop .law-modal-head {
        position: static;
        border-bottom: 1px solid #000;
    }

    /* Aktionsbuttons gehoeren nicht in die Druckausgabe. */
    body.printing-document .document-modal-backdrop .document-modal-print,
    body.printing-document .document-modal-backdrop .document-modal-export,
    body.printing-document .document-modal-backdrop .document-modal-export-feedback,
    body.printing-document .document-modal-backdrop .law-modal-close {
        display: none !important;
    }

    @page {
        margin: 18mm;
    }
}

/* DSB-UX-F1 — KPI-Kacheln im Freigabestatus-Block (BLOCK A).
   Drei kompakte Metriken statt langer Zeilenliste. */
.dsb-kpi-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.dsb-kpi-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--surface);
    text-align: center;
    gap: 2px;
}

.dsb-kpi-tile__label {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted);
}

.dsb-kpi-tile__value {
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    color: var(--ink);
}

.dsb-kpi-tile__sub {
    font-size: 9.5px;
    color: var(--muted);
}

.dsb-kpi-tile.is-ok {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.dsb-kpi-tile.is-ok .dsb-kpi-tile__value {
    color: #166534;
}

.dsb-kpi-tile.is-open {
    background: var(--amber-soft);
    border-color: var(--amber-border);
}

.dsb-kpi-tile.is-open .dsb-kpi-tile__value {
    color: var(--amber);
}

/* DSB-UX-F1 — Entscheidungsbuttons mit Icon und Farbe pro Status (BLOCK B). */
.dsb-status-decision-icon {
    font-size: 13px;
    line-height: 1;
}

.dsb-decision-section-action .dsb-status-button[data-decision-key="checked"].is-active {
    background: #dcfce7;
    border-color: #86efac;
    color: #166534;
}

.dsb-decision-section-action .dsb-status-button[data-decision-key="adjusted"].is-active {
    background: #fff7e6;
    border-color: var(--amber-border);
    color: var(--amber);
}

.dsb-decision-section-action .dsb-status-button[data-decision-key="rejected"].is-active {
    background: var(--red-soft);
    border-color: var(--red-border);
    color: var(--red-text);
}

.dsb-decision-section-action .dsb-status-button[data-decision-key="system"].is-active {
    background: var(--surface-soft);
    border-color: var(--border);
    color: var(--muted);
}

/* DSB-UX-F1 — Analyseergebnis-Callout (BLOCK C).
   Blauer linker Akzent hebt das wichtigste Ergebnis hervor. */
.dsb-analysis-callout {
    border-left: 3px solid var(--blue-border, #bfdbfe);
    background: var(--blue-soft, #eff6ff);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    padding: 2px 0;
}

/* DSB-UX-F1 — Dokument-Bridge-Karte (DOCUMENT-WORLD-F2). */
.dsb-document-bridge {
    display: grid;
    gap: 8px;
}

.dsb-document-bridge__subtitle {
    margin: 0;
    font-size: 12px;
    color: var(--muted);
}

.dsb-document-bridge__summary {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
}

.dsb-document-bridge__hint {
    margin: 0;
    font-size: 11.5px;
    color: var(--muted);
}

.dsb-document-bridge__actions {
    margin-top: 4px;
}

/* ============================================================
   DASHBOARD-SHELL-F1 — Dashboard-Grundstruktur (nur Shell).
   Eigene dashboard-*-Klassen, bewusst getrennt von all-cases-*,
   damit keine Cross-Surface-Kopplung entsteht. Nutzt ausschliesslich
   vorhandene Tokens (wb-card, Farben, Typografie).
   ============================================================ */

.dashboard-page {
    display: grid;
    gap: var(--space-6);
    padding: var(--space-2) 0 var(--space-6);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-family: var(--font-ui);
}

.dashboard-page-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: start;
}

.dashboard-page-intro {
    display: grid;
    gap: 6px;
}

.dashboard-page-title {
    font-size: 26px;
    line-height: 1.25;
    letter-spacing: -0.02em;
    font-weight: 700;
    color: var(--ink);
}

.dashboard-page-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    color: var(--muted);
    font-size: 12.5px;
    line-height: 1.4;
}

.dashboard-page-description {
    margin: 0;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.5;
}

.dashboard-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

/* Dashboard-Karten sind statische Shells, keine Accordions:
   der wb-card-Header darf hier keine Klickbarkeit suggerieren. */
.dashboard-card-header {
    cursor: default;
}

/* A3: Die KPI-Zeile fuehrt genau vier Karten. `auto-fit` erzeugte auf
   breitem Desktop zwei leere 0px-Spuren; die feste Vierer-Spur ist die
   Aussage der Flaeche. Die Karten selbst sind auf eine kompakte
   Kopf-/Wert-Stapelung reduziert (vorher volle wb-card-Polsterung). */
.dashboard-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
}

.dashboard-kpi-card {
    padding: var(--space-4);
}

.dashboard-kpi-card .wb-card-header {
    min-height: 0;
}

.dashboard-kpi-card .wb-card-body {
    gap: 2px;
    margin-top: 4px;
}

/* Der Leerzustands-Hinweis bleibt sichtbar (keine erfundenen Werte), traegt in
   der KPI-Zeile aber die kleinere Sekundaerstufe, damit er die kompakte
   Kartenhoehe nicht wieder aufhebt. */
.dashboard-kpi-card .dashboard-empty-hint {
    font-size: 11px;
    line-height: 1.35;
}

.dashboard-kpi-icon {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--muted-2);
}

.dashboard-kpi-title {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-soft);
}

.dashboard-kpi-value {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--ink);
}

.dashboard-kpi-value.is-empty {
    color: var(--muted-2);
}

.dashboard-empty-hint {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.4;
}

/* A4: drei gleich gewichtete Bereiche je Reihe (Prüfungsüberblick /
   Zuletzt bearbeitet / Schnellaktionen, danach die drei
   Informationskarten). `auto-fit` liess die letzte Reihe je nach
   Kartenzahl unterschiedlich breit auslaufen. */
.dashboard-content-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
    align-items: start;
}

@media (max-width: 1180px) {
    .dashboard-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-content-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .dashboard-kpi-grid,
    .dashboard-content-grid,
    .dashboard-organization-body {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* GEN7-UX-ADMIN-PILOT-OPERATIONS-I1 — read-only Betriebsprojektion in der
   bestehenden globalen Surface- und Card-Grammatik. Keine neuen Farb- oder
   Spacing-Tokens, keine zweite Dashboard-Architektur. */
.admin-operations-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}

/* Pilotbetrieb Bento: existing cards and controls, scoped layout only. */
.admin-operations-system,
.admin-operations-users {
    grid-column: 1 / -1;
}

.admin-identity-list,
.admin-identity-dialog form,
.admin-identity-dialog label {
    display: grid;
    gap: var(--space-3, 12px);
    min-width: 0;
}

.admin-identity-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-4, 16px);
    padding-block: var(--space-3, 12px);
    border-top: 1px solid var(--border-subtle);
    overflow-wrap: anywhere;
}

.admin-identity-row > div { min-width: 0; }
.admin-identity-row p { margin: 4px 0 0; color: var(--text-soft); }
.admin-identity-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-identity-actions button { min-height: 44px; white-space: normal; }

.admin-identity-dialog {
    width: min(560px, calc(100vw - 32px));
    max-height: calc(100dvh - 32px);
    box-sizing: border-box;
    overflow: auto;
    border: 1px solid var(--border-subtle);
    border-radius: var(--r-2);
    padding: 24px;
    color: var(--ink);
    background: var(--surface, white);
}

.admin-identity-dialog input,
.admin-identity-dialog select {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 8px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--r-2);
    font: inherit;
}

.admin-identity-dialog :focus-visible,
.admin-operations-users :focus-visible {
    outline: 2px solid var(--blue-text);
    outline-offset: 2px;
}

.admin-operations-card {
    padding: 16px;
}

.admin-operations-blockades,
.admin-operations-blue-green {
    grid-column: 1 / -1;
}

.admin-operations-blue-green .admin-operations-card-body {
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
}

.admin-operations-blue-green-slot {
    display: grid;
    gap: 4px;
    padding-top: 8px;
    border-top: 1px solid var(--border-subtle);
}

.admin-operations-blue-green-slot-title {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-soft);
}

.admin-operations-card-body,
.admin-operations-issue {
    display: grid;
    gap: 8px;
}

.admin-operations-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 32px;
    padding-block: 4px;
    border-bottom: 1px solid var(--border-subtle);
}

.admin-operations-row:last-child {
    border-bottom: 0;
}

.admin-operations-row-label,
.admin-operations-note,
.admin-operations-issue p {
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.5;
}

.admin-operations-row-value {
    color: var(--ink);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.admin-operations-note,
.admin-operations-issue p {
    margin: 0;
}

.admin-operations-issue {
    padding: 12px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--r-2);
    background: var(--surface-soft);
}

.admin-operations-issue.is-primary {
    border-color: var(--red-border);
    background: var(--red-soft);
}

.admin-operations-issue h3 {
    margin: 0;
    color: var(--ink);
    font-size: 13px;
}

.admin-operations-page-state {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px;
    color: var(--text-soft);
}

.admin-operations-page .workbench-ghost-button:focus-visible,
.admin-operations-page .workbench-ghost-button:focus {
    outline: 2px solid var(--blue-text);
    outline-offset: 2px;
}

@media (max-width: 1180px) {
    .admin-operations-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .admin-operations-blockades {
        grid-column: auto;
    }
}

@media (max-width: 820px) {
    .admin-operations-page-state,
    .admin-operations-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-operations-page .workbench-ghost-button {
        min-height: 44px;
    }

    .admin-operations-row-value {
        text-align: left;
    }
}

/* A5: Prüfungsüberblick — Verteilung EINER kanonischen Dimension
   (Risikoeinstufung) auf der bestehenden Risiko-Farbgrammatik. Kein
   neues Token, keine neue Farbe, keine zweite Zaehlung. */
.dashboard-overview-body {
    display: grid;
    gap: 12px;
}

.dashboard-overview-total {
    display: flex;
    align-items: baseline;
    gap: 8px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.3;
}

.dashboard-overview-total strong {
    color: var(--ink);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.1;
}

.dashboard-overview-scale {
    display: flex;
    gap: 3px;
    height: 10px;
    overflow: hidden;
}

.dashboard-overview-segment {
    flex: 1 1 0;
    min-width: 4px;
    border-radius: 999px;
}

.dashboard-overview-dot {
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    border-radius: 999px;
}

.dashboard-overview-segment.risk-high,
.dashboard-overview-dot.risk-high {
    background: #ef4444;
}

.dashboard-overview-segment.risk-medium,
.dashboard-overview-dot.risk-medium {
    background: #f59e0b;
}

.dashboard-overview-segment.risk-low,
.dashboard-overview-dot.risk-low {
    background: #22c55e;
}

.dashboard-overview-segment.is-unrated,
.dashboard-overview-dot.is-unrated {
    background: var(--muted-2);
}

.dashboard-overview-legend {
    display: grid;
    gap: 6px;
}

.dashboard-overview-legend-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    line-height: 1.3;
}

.dashboard-overview-legend-label {
    flex: 1 1 auto;
    min-width: 0;
    color: var(--text);
}

.dashboard-overview-legend-value {
    flex: 0 0 auto;
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}

/* A2: Organisation und Mitglieder ist ein kompakter Kontextblock ueber der
   KPI-Zeile, kein eigener Flaechenabschnitt mehr. Identitaet und
   Mitgliederliste stehen nebeneinander statt untereinander; die grosse
   vertikale Flaeche des Vorzustands entfaellt dadurch ohne Faktverlust. */
.dashboard-organization-card {
    padding: 14px 16px;
}

.dashboard-organization-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: 10px 24px;
    margin-top: 8px;
}

.dashboard-organization-card .dashboard-organization-role-note {
    grid-column: 1 / -1;
}

.dashboard-organization-summary,
.dashboard-organization-member-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.dashboard-organization-identity,
.dashboard-organization-member-person {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.dashboard-organization-name {
    color: var(--text);
    font-size: 14px;
}

.dashboard-organization-member-count,
.dashboard-organization-member-person span,
.dashboard-organization-id,
.dashboard-organization-role-note {
    color: var(--muted);
    font-size: 12px;
}

/* Technische Kennung: gleiche Muted-Grammatik wie die uebrigen Sekundaer-
   zeilen. Nur der maschinenlesbare Wert erhaelt die bereits im Shell
   etablierte Monospace-Behandlung. Keine neue Farbe, kein neuer
   Groessenschritt. */
.dashboard-organization-id-value {
    color: inherit;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: inherit;
    overflow-wrap: anywhere;
}

.dashboard-organization-member-list {
    display: grid;
    gap: 4px;
}

.dashboard-organization-member-row {
    min-height: 32px;
    padding: 0;
}

.dashboard-organization-role {
    flex: 0 0 auto;
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 700;
}

.dashboard-organization-role-note {
    margin: 0;
}

@media (max-width: 700px) {
    .dashboard-organization-summary,
    .dashboard-organization-member-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }
}

/* DASHBOARD-RECENT-CASES-F1 — Zeilenliste in der Karte "Letzte Prüfungen".
   Reine Anzeige vorhandener historyList-Daten; Pills nutzen die bestehende
   Status-/Risiko-Grammatik (wb-status-pill, proj-case-risk-chip). */
.dashboard-recent-cases-body {
    display: grid;
    gap: 10px;
}

.dashboard-recent-case-list {
    display: grid;
}

.dashboard-recent-case-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 4px;
    border: 0;
    border-bottom: 1px solid var(--line);
    background: transparent;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.dashboard-recent-case-row:last-child {
    border-bottom: 0;
}

.dashboard-recent-case-row:hover,
.dashboard-recent-case-row:focus-visible {
    background: var(--surface-2);
}

.dashboard-recent-case-main {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.dashboard-recent-case-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-recent-case-scope {
    font-size: 12px;
    color: var(--muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* DASHBOARD-ATTENTION-CARD-F1 — bestehender Hinweis (core_problem_statement)
   als dritte Zeile im Eintrag; gleiche Zeilen-Sprache wie Letzte Prüfungen. */
.dashboard-recent-case-hint {
    font-size: 12px;
    color: var(--muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-recent-case-pills {
    display: flex;
    align-items: center;
    gap: 6px;
}

.dashboard-recent-case-date {
    font-size: 12px;
    color: var(--muted);
    white-space: nowrap;
}

.dashboard-recent-case-chevron {
    color: var(--muted-2);
    font-size: 14px;
}

.dashboard-recent-cases-footer {
    display: flex;
    justify-content: flex-start;
}

.dashboard-quick-actions-body {
    display: grid;
    gap: 8px;
}

.dashboard-quick-action-list {
    display: grid;
}

.dashboard-quick-action {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 4px;
    border: 0;
    border-bottom: 1px solid var(--line);
    background: transparent;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.dashboard-quick-action:last-child {
    border-bottom: 0;
}

.dashboard-quick-action:hover:not(:disabled),
.dashboard-quick-action:focus-visible {
    background: var(--surface-2);
}

.dashboard-quick-action:disabled {
    cursor: default;
    opacity: 0.58;
}

.dashboard-quick-action .sidebar-nav-icon {
    color: var(--muted-2);
}

.dashboard-quick-action:hover:not(:disabled) .sidebar-nav-icon,
.dashboard-quick-action:focus-visible .sidebar-nav-icon {
    color: var(--blue-text);
}

.dashboard-quick-action-text {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.dashboard-quick-action-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-quick-action-description {
    font-size: 12px;
    color: var(--muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-quick-action-chevron {
    color: var(--muted-2);
    font-size: 14px;
}

@media (max-width: 900px) {
    .dashboard-page-head {
        grid-template-columns: 1fr;
    }

    .dashboard-toolbar {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}

/* ====================================================================
   GEN4-WORKSPACE-DESIGN-SYSTEM-UNIFICATION-F1 (2026-07-09)
   Globales Workspace-Design-System. Produktentscheidung: alle
   Workspace-Bereiche sprechen dieselbe visuelle Sprache - eine Workbench,
   keine zusammengeklebten Module.

   Scope-Regel: ALLE Regeln dieses Blocks sind auf .case-workspace-shell
   (Gen4 Workspace) begrenzt. Die Gen3-Renderer werden vom klassischen
   Reiter mitgenutzt - ungescopte Aenderungen an den questions-, aw-, wb-
   und doc-shell-Klassen waeren dort Regressionen.
   (Hinweis: keine Stern-Schraegstrich-Sequenzen in diesem Kommentar -
   eine solche Sequenz hat in der ersten Fassung den Kommentar vorzeitig
   beendet und die erste Regel des Blocks als Parse-Fehler verschluckt.)

   Typografie-Skala (verbindlich):
     Ebene 1  Section-Titel (Host)  15px/700  #0f172a-Ton (Bestand)
     Ebene 2  Gruppentitel          11px/600  uppercase  #64748b
     Body     13-14px (Bestand)
     Meta     Label 11px/500 #94a3b8 - Wert 13px/600 (Meta-Standard)
     Pillen   11px, bestehende Tone-Klassen

   Karten-Grammatik (verbindlich):
     Section-Card (Host)  Radius 12px  Border #e5e7eb  Padding 24px
     Zeile/Karte innen    Radius 12px  Border #e5e7eb
     Hinweis-/Notizboxen  Radius 8px
   ==================================================================== */

/* Ebene 2: ein Gruppentitel-Stil fuer alle Sections (vorher: 13px/11px/
   12px/12.5px/19px in fuenf verschiedenen Klassen). */
.case-workspace-shell .measure-group-title,
.case-workspace-shell .doc-shell-group-title,
.case-workspace-shell .case-workspace-subheading,
.case-workspace-shell .legal-context-sidebar-title,
.case-workspace-shell .question-archived-section-header .questions-block-title {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
}

/* Doppel-Titel entfernen: der Host-Header ist der einzige Section-Titel.
   Die eingebetteten Gen3-Modultitel (+ Zaehlerbadge/Fall-ID-Chip) wiederholen
   ihn nur (Prueffragen/Prueffragen, Massnahmen/Massnahmen, Dokumente/
   Dokumente, Entscheidung des DSB/DSB-Entscheidung, Fall-ID aus dem Hero).
   Nur innerhalb der Host-Summary ausgeblendet - im klassischen Reiter
   bleiben dieselben Elemente unveraendert sichtbar. */
.case-workspace-host-summary .questions-toolbar .questions-block-title,
.case-workspace-host-summary .questions-toolbar .questions-count-badge,
.case-workspace-host-summary .questions-toolbar .dsb-case-id,
.case-workspace-host-summary .aw-toolbar .questions-block-title,
.case-workspace-host-summary .aw-toolbar .questions-count-badge,
.case-workspace-host-summary .doc-shell-title,
.case-workspace-host-summary .doc-shell-subtitle,
/* VIS-003 (A-PC-FUNDING-VISUAL-REDESIGN-F3): dieselbe Doppeltitel-Regel gilt
   auch fuer den editierbaren Maßnahmen-Host (nicht host-summary) — der
   eingebettete 18px-Gen3-Titel stand groesser unter dem 15px-Section-Header.
   Klassischer Gen3-Reiter liegt ausserhalb der Shell und bleibt unveraendert. */
.case-workspace-shell .aw-toolbar .questions-block-title,
.case-workspace-shell .aw-toolbar .questions-count-badge {
    display: none;
}

/* Karten-Grammatik: die zweite Kartensprache (wb-card: Radius 14px,
   Border #eef0f3/#e9ebef) wird im Workspace auf die Host-Grammatik
   normalisiert (12px / #e5e7eb, WORKSPACE-CARD-GRAMMAR-GLOBAL-F17). */
.case-workspace-shell .wb-card,
.case-workspace-shell .aw-row {
    border-radius: 12px;
    border-color: #e5e7eb;
}

/* Hinweis-/Notiz-/Innenboxen: eine dritte Radiusstufe (8px) statt des
   bisherigen Gemischs aus 6/10px. */
.case-workspace-shell .dsb-note-ta,
.case-workspace-shell .dsb-completion-export-note,
.case-workspace-shell .doc-shell-gate-hint,
.case-workspace-shell .case-workspace-next-step,
.case-workspace-shell .case-workspace-section-placeholder {
    border-radius: 8px;
}

/* Statuspillen: eine Groesse im gesamten Workspace. */
.case-workspace-shell .wb-status-pill {
    font-size: 11px;
}

/* GEN4-WORKSPACE-DESIGN-SYSTEM-UNIFICATION-F1 (Nachtrag): letzte
   Radius-/Border-Ausreisser auf die zwei Stufen der Karten-Grammatik
   normalisiert (Karte 12px, Hinweisbox 8px; Border einheitlich #e5e7eb). */
.case-workspace-shell .dsb-completion-section,
.case-workspace-shell .dsb-completion-checklist {
    border-radius: 12px;
    border-color: #e5e7eb;
}

.case-workspace-shell .dsb-completion-export-note,
.case-workspace-shell .case-workspace-section .case-workspace-section-placeholder {
    border-radius: 8px;
    border-color: #e5e7eb;
}

/* GEN4-PROZESS-WB-F1: Statuskopf des Prozessstatus (Blueprint Zone 1).
   Eine flache Orientierungszeile, kein Dashboard: drei Kennzahlen +
   Naechster-Schritt-Zeile. Typografie folgt der Workspace-Skala
   (Ebene-2-Label 11px/600 versal, Werte 13px/600). */
.case-workspace-prozessstatus-kopf-zeile {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 24px;
}

.case-workspace-prozessstatus-kopf-item {
    font-size: 13px;
    font-weight: 600;
    color: #0f172a;
}

.case-workspace-prozessstatus-kopf-next {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.case-workspace-prozessstatus-kopf-next-label {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
}

.case-workspace-prozessstatus-kopf-next-title {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 600;
    color: #0f172a;
}

/* ============================================================
   GEN7-UX-PROZESSSTATUS-REDESIGN-I1 — Host Delta der Bereiche A, B und C.

   Vollstaendig auf .case-workspace-prozessstatus gescopt. Es entsteht keine
   neue Komponente und keine neue visuelle Regel: der Kartenrahmen kommt
   unveraendert aus der wb-card-Grammatik (buildCaseHomeCard), Pillen aus
   makeStatusPill(), Labels aus .case-workspace-status-label. Verwendet werden
   ausschliesslich Werte der dokumentierten Gen4-Spacingskala (4/8/12/16/20/24)
   und bereits im Stylesheet etablierte Farben (#0f172a, #64748b, #94a3b8,
   #e5e7eb). Gewichtung entsteht ueber Weissraum und Schriftgewicht, nicht
   ueber Elevation oder Dekoration (Design System § 4).
   ============================================================ */

/* GEN7-UX-QUESTIONS-MEASURES-MASTER-DETAIL-CONVERGENCE-I1: die Regeln des
   frueheren Bereichs A (`.case-workspace-prozess-current-*`) sind mit ihrem
   Renderer ersatzlos entfallen. Die ausgewaehlte Arbeitseinheit wird
   ausschliesslich im Fokuspanel der Master/Detail-Flaeche dargestellt —
   genau wie in der Referenzflaeche Maßnahmen. */

/* Bereich B — Entscheidungsbasis: genau drei gleichrangige Spalten. */
/* GEN7-UX-CASE-HOME-CONTEXT-RAIL-I1 (STEP 7): `.case-workspace-basis` ist aus
   dieser Regel entfernt. Sie stammt aus der Zeit, als der Case-Home-Basisblock
   direkt `.case-workspace-basis-column`-Kinder trug. Seit
   GEN7-UX-CASE-HOME-REFERENCE-ALIGNMENT-I5 traegt er nur noch zwei Kinder --
   die Subline und den eigenen dreispaltigen `.case-workspace-basis-grid`.
   Beide Raster wirkten dadurch verschachtelt: live gemessen landete die
   Subline in Spalte 1, das innere Raster in Spalte 2 und teilte deren 394px
   nochmals durch drei (Karten 120,7px), waehrend Spalte 3 leer blieb.
   Der Case-Home-Basisblock ist deshalb wieder normaler Fluss; die drei
   Spalten besitzt ausschliesslich `.case-workspace-basis-grid` (unveraendert,
   siehe unten). Die Prozessstatus-Variante behaelt ihre Regel unveraendert --
   sie traegt weiterhin echte `-column`-Kinder. */
.case-workspace-prozessstatus .case-workspace-prozess-basis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

@media (max-width: 1100px) {
    .case-workspace-prozessstatus .case-workspace-prozess-basis {
        grid-template-columns: minmax(0, 1fr);
    }
}

.case-workspace-prozessstatus .case-workspace-prozess-basis-column,
.case-workspace-shell.is-overview .case-workspace-basis-column {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.case-workspace-prozessstatus .case-workspace-prozess-basis-head,
.case-workspace-shell.is-overview .case-workspace-basis-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.case-workspace-prozessstatus .case-workspace-prozess-basis-title,
.case-workspace-shell.is-overview .case-workspace-basis-title {
    margin: 0;
    color: #0f172a;
    font-size: 14px;
    font-weight: 600;
}

.case-workspace-prozessstatus .case-workspace-prozess-basis-row,
.case-workspace-shell.is-overview .case-workspace-basis-row {
    margin: 0;
    color: #64748b;
    font-size: 13px;
    line-height: 1.45;
}

.case-workspace-prozessstatus .case-workspace-prozess-basis-action {
    align-self: flex-start;
    margin-top: 4px;
}

/* GEN7-UX-PRUEFUNG-FINAL-HIERARCHY-I1 (Aenderung C) — "Prüfumfang" ist auf
   der Pruefflaeche eine SEKUNDAERE, kompakte Orientierungszeile: keine Karte,
   kein Rahmen, keine eigene Ueberschriftenebene, keine neue Akzentfarbe.
   Wiederverwendet wird ausschliesslich die bereits bestehende Label-/Wert-
   Grammatik dieser Flaeche; nur Container, Laufrichtung und Gewicht aendern
   sich. Linksbuendig, eine Zeile, auf schmalen Viewports umbrechend. */
.case-workspace-prozessstatus .case-workspace-prozess-summary.is-compact {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 8px;
    row-gap: 4px;
    margin: 0 0 12px;
    padding: 0;
}

.case-workspace-prozessstatus .case-workspace-prozess-summary-lead {
    color: var(--text);
    font-weight: 600;
}

.case-workspace-prozessstatus .case-workspace-prozess-summary.is-compact
.case-workspace-prozess-metric {
    display: inline-flex;
    flex-direction: row;
    align-items: baseline;
    gap: 4px;
    min-width: 0;
}

/* Trennzeichen zwischen den Aussagen. Reines Darstellungszeichen im
   bestehenden Rahmenton, kein Inhalt und kein neues Token. */
.case-workspace-prozessstatus .case-workspace-prozess-summary.is-compact
.case-workspace-prozess-metric::before {
    content: "·";
    margin-right: 4px;
    color: #cbd5e1;
}

.case-workspace-prozessstatus .case-workspace-prozess-summary.is-compact
.case-workspace-prozess-metric-value {
    color: var(--text);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
}

/* GEN4-PROZESS-WB-F2: Workbench-Zonen des Prozessstatus (Blueprint §6).
   Zone A Arbeitsliste (~300px, reine Auswahl) + Zone B Fokuspanel.
   Eigener Namespace, keine geteilten Gen3-Klassen. Karten-/Typo-Werte
   folgen dem Workspace-Design-System (12px/#e5e7eb, Ebene-2-Titel). */
.case-workspace-prozessstatus-workbench {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

/* GEN5-PROZESSSTATUS-UI-REDESIGN-R1: Arbeitsliste als EINE Karte in der
   geteilten wb-card-Sprache (wie "Entscheidungsbasis" in Bild 2) - die
   Typgruppen darunter sind flache Zeilenbloecke, keine Karten in der
   Karte mehr. */
.case-workspace-worklist {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    padding: var(--wb-card-pad);
    border: var(--wb-card-border);
    border-radius: var(--wb-card-radius);
    background: var(--wb-card-bg);
    box-shadow: var(--wb-card-shadow);
}

.case-workspace-worklist-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

/* Kartentitel in der geteilten wb-card-Titel-Typografie (14.5/600,
   keine Versalien) - identisch zu den Kartentiteln der DSB-Entscheidung. */
.case-workspace-worklist-head-title {
    margin: 0;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0;
    text-transform: none;
    color: var(--ink);
}

.case-workspace-worklist-head {
    padding-bottom: 12px;
    border-bottom: 1px solid #eef2f7;
}

/* Flacher Typgruppen-Block: Trennlinien statt eigener Kartenkontur
   (keine Karte-in-Karte, analog WORKSPACE-PROCESS-STATUS-VISUAL-F10). */
.case-workspace-worklist-group {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    /* GEN7-UX-PRUEFUNG-DECISION-BASIS-WORKLIST-PARITY-I1: Die Typgruppen der
       Pruefungs-Arbeitsliste sind <section>-Elemente und erbten dadurch die
       globale Elementregel `section { padding: 14px 16px }`. Die
       Referenzflaeche Massnahmen fuehrt ihre Gruppe als <div> und war davon
       nie betroffen -- ihre Zeilen lagen buendig bei x=269/w=311, die der
       Pruefung real gemessen bei x=285/w=279.
       Diese Regel neutralisiert seit jeher genau diese eine Elementregel
       (border, radius, background, shadow); `padding` fehlte schlicht.
       Kein neuer Selektor, keine Wirkung auf die Referenz (dort ein <div>). */
    padding: 0;
}

.case-workspace-worklist-group-title {
    margin: 0;
    padding: 0;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: #0f172a;
}

/* PROZESS-WB-REFERENCE-ALIGNMENT-F1 (Bild 2): Typgruppen-Kopf der Arbeitsliste
   - Kategorietitel links, "N offen"-Pille rechts. */
.case-workspace-worklist-group-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 4px 6px;
    border-bottom: 1px solid #eef2f7;
}

.case-workspace-worklist-group-titlewrap {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 8px;
}

.case-workspace-worklist-group-icon {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    color: #64748b;
}

.case-workspace-worklist-group-icon.is-belegfrage {
    color: var(--blue-text);
}

.case-workspace-worklist-group-icon.is-rechtsbezug {
    color: #64748b;
}

.case-workspace-worklist-group-icon.is-verarbeitung {
    color: var(--green-text, #15803d);
}

.case-workspace-worklist-group-head .case-workspace-worklist-group-title {
    padding: 0;
}

/* PROZESSSTATUS-STRUCTURAL-CONVERGENCE-F1 (STEP 6): kompakter Leerzustand einer
   offenen Gruppe ohne Eintraege. Die Klasse entsteht ausschliesslich im
   Prozessstatus-Worklist-Renderer (buildProzessstatusWorkbenchZone) - lokaler
   Scope ohne Wirkung auf andere Sections. */
.case-workspace-worklist-group-empty {
    margin: 0;
    padding: 10px 4px;
    font-size: 12px;
    color: #94a3b8;
}

/* Einklappbare "Erledigt"-Gruppe: Summenzeile mit Chevron, gleiche Zeilen-
   grammatik wie die Auswahlzeilen. */
.case-workspace-worklist-done-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    margin-top: 0;
    padding: 10px 4px;
    border: none;
    border-top: 1px solid #eef2f7;
    border-radius: 0;
    background: transparent;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
    text-align: left;
}

.case-workspace-worklist-done-toggle:hover {
    color: #0f172a;
}

.case-workspace-worklist-done-chevron {
    flex: 0 0 auto;
    color: #94a3b8;
}

/* GEN5-PROZESSSTATUS-WORKLIST-ROW-GRAMMAR-F4: Zeilenhierarchie im Prozessstatus.
   Typ links als Orientierung, Titel als Hauptsignal, rechts nur vorhandener
   Erledigt-Indikator und Auswahl-Chevron. */
/* GEN5-PROZESSSTATUS-UNIFIED-FOCUSPANEL-AND-WORKLIST-NUMBERING-F1: feste
   schmale Nummernspalte vor dem Typ — gleiche Breite fuer ein- und
   zweistellige Werte, Nummer visuell sekundaer (Mikrolabel-Ton). */
.case-workspace-worklist-row {
    display: grid;
    grid-template-columns: 18px 36px minmax(0, 1fr) auto auto;
    align-items: center;
    column-gap: 10px;
    width: 100%;
    min-width: 0;
    min-height: calc(var(--space-6) + var(--space-6));
    padding: var(--space-3) 4px;
    border: 0;
    border-top: 1px solid #f1f5f9;
    border-radius: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: var(--text);
}

.case-workspace-worklist-group .case-workspace-worklist-row:first-of-type {
    border-top: 0;
}

.case-workspace-worklist-row:hover {
    background: var(--surface-soft);
}

.case-workspace-worklist-row.is-selected {
    background: var(--blue-soft);
    box-shadow: inset 2px 0 0 var(--blue-border);
}

.case-workspace-worklist-row.is-done {
    opacity: 0.7;
}

.case-workspace-worklist-num {
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: #94a3b8;
    text-align: right;
    line-height: 1.2;
}

.case-workspace-worklist-typecell {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    gap: 3px;
}

.case-workspace-worklist-typeicon {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    color: var(--muted-2);
}

.case-workspace-worklist-typeicon.is-belegfrage {
    color: var(--blue-text);
}

.case-workspace-worklist-typeicon.is-rechtsbezug {
    color: var(--muted);
}

.case-workspace-worklist-typeicon.is-verarbeitung {
    color: var(--green-text);
}

.case-workspace-worklist-kind {
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    color: var(--muted-2);
}

.case-workspace-worklist-title {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--ink);
}

.case-workspace-worklist-check {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 700;
    color: var(--green-text);
}

.case-workspace-worklist-chevron {
    flex: 0 0 auto;
    font-size: 14px;
    line-height: 1;
    color: #94a3b8;
}

.case-workspace-worklist-create {
    margin-top: 0;
    align-self: flex-start;
}

.case-workspace-worklist-footer {
    display: flex;
    justify-content: flex-start;
    padding-top: 12px;
    margin-top: 4px;
    border-top: 1px solid #eef2f7;
}

/* GEN5-PROZESSSTATUS-UI-REDESIGN-R1: Fokuspanel in derselben wb-card-
   Kontur wie Statuskopf und Arbeitsliste. */
.case-workspace-workpanel {
    min-width: 0;
    /* A-PC-FUNDING-F1 (FUND-006): min-height:100% entfernt — der Wert
       vererbte die Hoehe der langen Worklist-Spalte (Grid-Row) auf das
       Fokuspanel; zusammen mit der flex-Kette unten wuchs die leere
       Notiz-Textarea auf >2000px. Panelhoehe ist jetzt Inhaltshoehe. */
    padding: var(--wb-card-pad);
    border: var(--wb-card-border);
    border-radius: var(--wb-card-radius);
    background: var(--wb-card-bg);
    box-shadow: var(--wb-card-shadow);
}

/* Fokuspanel: die eine gemountete Frage traegt die einheitliche
   Karten-Grammatik; die Host-Neutralisierung (.case-workspace-host-summary
   .wb-card = randlos) greift hier nicht, weil das Panel ausserhalb einer
   Host-Summary lebt - Kontur explizit setzen. */
.case-workspace-workpanel .question-check.wb-card,
/* GEN7-UX-PRUEFUNG-WORK-CARD-MEASURES-PARITY-I1: Die Rechtsbezugkarte ist
   jetzt ebenfalls eine wb-card im Fokuspanel und teilt sich dieselbe
   Kontur-Neutralisierung. Real gemessen tragen weder die Referenzflaeche
   Maßnahmen noch die Prueffragenkarte im Fokuspanel einen eigenen
   Kartenrahmen -- den traegt das Panel selbst. Ohne diese Erweiterung stuende
   die Rechtsbezugkarte als einzige in einem doppelten Rahmen. */
.case-workspace-workpanel .case-workspace-focus-card.wb-card {
    border: 0;
    border-radius: 0;
    background: var(--surface);
    --wb-card-header-gap: 8px;
    --wb-card-body-gap: 12px;
    --wb-card-body-margin-top: 12px;
}

/* GEN5-PROZESSSTATUS-FOCUSPANEL-HEADER-ORDER-F3: Nur der Prozessstatus-
   Fokuspanel-Mount der bestehenden Frage uebernimmt die ruhigere
   DSB-Entscheidungs-Grammatik. Handler, Status, Notiz, Artikelverwaltung
   und Save-Flow bleiben im Fragen-Owner. Visuelle Reihenfolge folgt der
   natuerlichen DOM-Reihenfolge; keine lokalen CSS-order-Regeln. */
.case-workspace-workpanel .question-workbench-focus {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    /* A-PC-FUNDING-F1 (FUND-006): min-height:100% entfernt (zweite Stufe
       der Stretch-Kette, siehe .case-workspace-workpanel). Die Notizzone
       behaelt ihre F5/F8-Mindesthoehen (260px/220px) als Arbeitsflaeche. */
}

.case-workspace-workpanel .question-workbench-focus .question-collapse-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: var(--space-3);
    padding: 0 0 var(--space-2);
    border: 0;
    background: transparent;
    cursor: default;
}

/* GEN5-PROZESSSTATUS-FOCUSPANEL-TYPOGRAPHY-F6: Titel nochmals bewusst
   reduziert (Produktentscheidung, vorher 14px/1.30 aus F5), bleibt aber das
   gewichtigste Element im Panel. */
/* GEN7-UX-QUESTIONS-MEASURES-MASTER-DETAIL-CONVERGENCE-I1: Der Titel der
   Fokuskarte traegt jetzt den Referenzwert der Maßnahmen-Fokuskarte
   (15px/600/1.35 aus `.measure-workbench-focus .aw-measure-collapse-title`)
   statt eines flaecheneigenen Wertes. Damit loest dieser Block die fruehere
   Einzelentscheidung "13px statt 14px" (GEN5-Fokuspanel-Typografie F5/F8)
   ausdruecklich ab — genannt in Abschnitt 12 des Abschlussberichts. Die
   Rolle bleibt dieselbe: das gewichtigste Element des Panels. */
.case-workspace-workpanel .question-workbench-focus .question-collapse-title {
    font-size: var(--wb-focus-title-size);
    font-weight: 600;
    line-height: 1.35;
    color: var(--ink);
    white-space: normal;
}

.case-workspace-workpanel .question-workbench-focus .question-collapse-pill {
    margin-top: 0;
    white-space: nowrap;
}

.case-workspace-workpanel .question-workbench-focus .question-collapse-chevron {
    display: none;
}

.case-workspace-workpanel .question-workbench-focus .question-body.question-collapse-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0;
    margin-top: 0;
    padding: 0;
}

.case-workspace-workpanel .question-workbench-focus .question-meta-line {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-1);
    margin-bottom: var(--space-4);
}

.case-workspace-workpanel .question-workbench-focus .question-source-tag {
    /* GEN7-UX-PRUEFUNG-WORK-CARD-MEASURES-PARITY-I1: wertgleich zur
       Referenz-Auspraegung `.aw-source-badge` im Fokuspanel -- real gemessen
       Radius 20px, 4px 10px, 11px/700, Flaeche #eef2ff ohne Rahmen. Damit
       tragen die Arbeitskarten beider Flaechen EINE Badge-Optik. */
    min-height: 24px;
    padding: 4px 10px;
    border: 0;
    border-radius: 20px;
    background: #eef2ff;
    color: #334155;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.1;
}

.case-workspace-workpanel .question-workbench-focus .question-why-relevant,
.case-workspace-workpanel .question-workbench-focus .question-entity-article-section {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-4) 0 0;
    border-top: 1px solid var(--line);
}

.case-workspace-workpanel .question-workbench-focus .question-why-relevant {
    margin-bottom: var(--space-4);
}

/* GEN5-PROZESSSTATUS-FOCUSPANEL-SPACING-GRAMMAR-F5: mehr vertikale Trennung
   zwischen Rechtsbezug und Bewertung (vorher 18px). */
.case-workspace-workpanel .question-workbench-focus .question-entity-article-section {
    margin-bottom: var(--space-6);
}

/* GEN7-UX-QUESTIONS-MEASURES-MASTER-DETAIL-CONVERGENCE-I1: die frueher hier
   stehende Beschriftungsregel (10.5px/800, VERSALIEN, 0.07em Tracking) ist
   GELOESCHT, nicht beschattet. Sie wurde von der gemeinsamen Regel des
   Vorblocks bereits ueberstimmt und war damit eine zweite, wirkungslose
   Wahrheit ueber denselben Wert. Es gilt ausschliesslich die
   Referenzgrammatik der Maßnahmenflaeche: 12px/500, keine Versalien. */

/* GEN5-PROZESSSTATUS-FOCUSPANEL-TYPOGRAPHY-F6: Beschreibungstext nochmals
   leicht reduziert (vorher 12.5px/1.5 aus F5). */
.case-workspace-workpanel .question-workbench-focus .question-why-relevant-text {
    margin: 0;
    max-width: 76ch;
    color: var(--ink-3);
    font-size: 12px;
    line-height: 1.45;
}

.case-workspace-workpanel .question-workbench-focus .question-legal-reference-cell {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--space-6);
}

/* GEN5-PROZESSSTATUS-FOCUSPANEL-SPACING-GRAMMAR-F5: "Artikel verwalten" ist
   eine Aktion, keine weitere Rechtsgrundlagen-Pill — bestehender Button
   (question-legal-manage), nur ans rechte Zeilenende der Gruppe geschoben
   und mit Mindestabstand zur Pill-Gruppe getrennt. */
.case-workspace-workpanel .question-workbench-focus .question-legal-manage {
    margin-left: auto;
}

.case-workspace-workpanel .question-workbench-focus .question-status-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    /* GEN5-PROZESSSTATUS-FOCUSPANEL-DECISION-GRAMMAR-F8: engerer Cluster-Gap,
       die vier Stati lesen sich als eine Entscheidungseinheit. */
    gap: var(--space-1);
    margin: 0;
    /* F5: 18px -> var(--space-6), zusammen mit dem groesseren Section-Abstand oben
       trennt das die Bewertung sichtbar vom Rechtsbezug. */
    padding-top: var(--space-6);
    border-top: 1px solid var(--line);
}

.case-workspace-workpanel .question-workbench-focus .question-status-grid.is-hidden {
    display: none;
}

/* GEN5-PROZESSSTATUS-FOCUSPANEL-DECISION-GRAMMAR-F8: identische Geometrie
   fuer alle vier Stati (Hoehe/Breite/Radius/Innenabstand). min-height 32px =
   bestehender Basiswert von .dsb-status-button (Zeile ~6879). */
.case-workspace-workpanel .question-workbench-focus .dsb-status-button {
    width: 100%;
    min-height: 32px;
    justify-content: center;
    padding: 7px 13px;
    border-radius: var(--r-2);
    font-size: 12.5px;
    text-align: center;
}

/* F8: Resting-Stati treten zurueck (ruhige Flaeche statt vier einzelner
   weisser Buttons); is-active/is-pending bleiben unveraendert bei den
   bestehenden State-Ownern (.dsb-status-button.is-active/.is-pending),
   die durch das :not()-Scoping weiterhin alleinige Farbquelle sind. */
.case-workspace-workpanel .question-workbench-focus .dsb-status-button:not(.is-active):not(.is-pending) {
    background: var(--surface-2);
    border-color: transparent;
}

.case-workspace-workpanel .question-workbench-focus .dsb-status-button:not(.is-active):not(.is-pending):hover:not(:disabled) {
    background: #ffffff;
    border-color: var(--line);
}

/* GEN5-PROZESSSTATUS-FOCUSPANEL-HIERARCHY-POLISH-F4: dieselbe Sichtbarkeits-
   Semantik wie im klassischen Reiter (#block-questions, Zeile ~6777) — die
   Zusammenfassung "Status + Bearbeiten" erscheint nur, wenn die
   Bewertungsgruppe eingeklappt ist (is-visible via renderButtonStates).
   Vorher fehlte der Scope und der Block war im Fokuspanel immer sichtbar. */
.case-workspace-workpanel .question-workbench-focus .question-answer-summary {
    display: none;
    margin: 0;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}

.case-workspace-workpanel .question-workbench-focus .question-answer-summary.is-visible {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.case-workspace-workpanel .question-workbench-focus .question-note-wrap {
    display: grid;
    flex: 1 1 auto;
    /* F5: 12px -> 6px, Label "DSB-Notiz" rueckt sichtbar an die Textarea.
       grid-template-rows: die per flex:1 gewonnene Zusatzhoehe gehoert der
       Textarea-Zeile — vorher stretchte das Grid alle Zeilen und riss das
       Label optisch von der Textarea ab. */
    grid-template-rows: auto minmax(0, 1fr);
    gap: var(--space-3);
    min-height: 260px;
    /* F8: 18px/18px -> var(--space-6), gleicher vertikaler Rhythmus wie
       Rechtsbezug -> Bewertung (Abstand vor und nach dem Divider). */
    margin-top: var(--space-6);
    padding: var(--space-6) 0 0;
    border-top: 1px solid var(--line);
}

.case-workspace-workpanel .question-workbench-focus .question-note-wrap:not(.is-visible) {
    display: grid;
}

.case-workspace-workpanel .question-workbench-focus .dsb-note-ta {
    min-height: 220px;
    padding: var(--space-4);
    border: 1px solid var(--line);
    border-radius: var(--r-4);
    background: var(--surface);
    color: var(--ink);
    font-size: 13px;
    line-height: 1.5;
    box-shadow: none;
}

.case-workspace-workpanel .question-workbench-focus .dsb-note-actions,
.case-workspace-workpanel .question-workbench-focus .question-entity-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
    margin-top: var(--space-3);
    padding-top: var(--space-4);
    border-top: 1px solid var(--line);
}

.case-workspace-workpanel .question-workbench-focus .question-entity-actions {
    border-top: 0;
    padding-top: 8px;
}

.case-workspace-workpanel .question-workbench-focus .question-entity-actions:empty {
    display: none;
}

/* GEN5-PROZESSSTATUS-FOCUSPANEL-HIERARCHY-POLISH-F4: die display:flex-Regel
   oben übersteuerte das [hidden]-Attribut (saveActions.hidden in
   render_questions.js) — die Speichern-Zeile war im Fokuspanel dadurch immer
   sichtbar. Wiederhergestellter bestehender Owner: Zeile erscheint erst bei
   ungespeicherter Status-/Notizänderung. */
.case-workspace-workpanel .question-workbench-focus .dsb-note-actions[hidden] {
    display: none;
}

.case-workspace-workpanel .question-workbench-focus .question-answer-trail,
.case-workspace-workpanel .question-workbench-focus .dsb-error-text {
    margin: 0;
}

/* =====================================================================
   GEN7-UX-PRUEFUNG-WORK-CARD-VISUAL-STRUCTURE-PARITY-I2
   Die rechte Arbeitskarte der Pruefflaeche traegt ihren Fachinhalt jetzt in
   derselben beschrifteten Blockgrammatik wie die Referenzflaeche Maßnahmen:
   .measure-detail-group > .measure-detail-row > .aw-measure-detail-section.
   Diese Grammatik ist global definiert (ab ~Z. 16437) und greift damit ohne
   neue Regel auch hier.

   Was hier steht, ist AUSSCHLIESSLICH die Ruecknahme der alten, jetzt
   doppelten Trennlinien-Grammatik: die Bloecke wurden bisher nur durch
   `border-top`-Linien und Eigenabstaende voneinander abgesetzt. Beides ist
   ueberfluessig, sobald Gruppe und Rasterzelle die Trennung uebernehmen -
   sonst stuenden Linie und Zellrahmen doppelt uebereinander.

   Keine neuen Tokens, keine neuen Werte, keine Farb- oder Statusaussage.
   Der klassische Gen3-Reiter (#block-questions) ist nicht betroffen.
   ===================================================================== */

/* (0,4,0) - schlaegt die Bestandsregeln (0,3,0) fuer Statusgrid und
   Zusammenfassung, aber nur innerhalb des neuen Bewertungsblocks. */
.case-workspace-workpanel .question-workbench-focus .question-assessment-section .question-status-grid,
.case-workspace-workpanel .question-workbench-focus .question-assessment-section .question-answer-summary {
    padding-top: 0;
    border-top: 0;
}

/* Der Notizblock ist jetzt eine Rasterzelle. Seine fruehere Eigengeometrie
   (Aussenabstand, Oberlinie, feste Mindesthoehe, zweizeiliges Grid) war die
   Ersatzstruktur fuer die fehlende Blockgrammatik und faellt damit weg. Die
   Mindesthoehe der Textarea selbst bleibt unveraendert bestehen. */
.case-workspace-workpanel .question-workbench-focus .aw-measure-detail-section.question-note-wrap,
.case-workspace-workpanel .question-workbench-focus .aw-measure-detail-section.question-note-wrap:not(.is-visible) {
    display: grid;
    grid-template-rows: none;
    gap: var(--space-3);
    min-height: 0;
    margin-top: 0;
    padding: 0;
    border-top: 0;
}

/* Footer der Karte: dieselbe Rolle wie die Aktionszeile der Referenz -
   abgesetzt vom letzten Fachblock, rechtsbuendig. Die Bestandsregel hatte den
   Trennstrich entfernt, weil es davor keinen Block gab, von dem abzusetzen
   gewesen waere. */
.case-workspace-workpanel .question-workbench-focus .question-entity-actions {
    margin-top: var(--space-4);
    padding-top: var(--space-4);
    border-top: 1px solid var(--line);
}

/* Metazone beider Arbeitskarten: leiser als die Fachbloecke, klar unter
   ihnen - identisch zur Referenz (.measure-detail-meta ab ~Z. 16575). */
.case-workspace-workpanel .question-workbench-focus .measure-detail-meta,
.case-workspace-workpanel .case-workspace-legal-focus .measure-detail-meta {
    margin-top: var(--space-4);
}

@media (max-width: 900px) {
    /* Schmal stapeln die Rasterzeilen, wie in der Referenz. Der senkrechte
       Zelltrenner wird dort zur waagerechten Linie. */
    .case-workspace-workpanel .question-workbench-focus .measure-detail-row.has-2-cells {
        grid-template-columns: minmax(0, 1fr);
    }

    .case-workspace-workpanel .question-workbench-focus .measure-detail-row > .aw-measure-detail-section + .aw-measure-detail-section {
        border-left: 0;
        border-top: 1px solid var(--line);
    }
}

@media (max-width: 900px) {
    .case-workspace-workpanel .question-workbench-focus .question-status-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus {
    display: flex;
    flex-direction: column;
    /* GEN5-PROZESSSTATUS-FOKUSPANEL-KOMPRIMIERUNG-F1: 22px -> 12px
       (space-3-Rhythmus) zwischen Meta/Titel/Inhalt - kompaktere
       Entscheidungskarte, gleiche Zonenfolge. */
    gap: 12px;
    min-height: 100%;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-kind {
    /* GEN7-UX-PRUEFUNG-WORK-CARD-MEASURES-PARITY-I1: aus der freistehenden
       Versalien-Zeile wird derselbe Typ-Badge, den Referenz und
       Prueffragenkarte tragen. Versalien und Buchstabenabstand entfallen --
       sie waren die letzte abweichende Kopfgrammatik im Fokuspanel. */
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 2px 8px;
    border-radius: 20px;
    background: #eef2ff;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: normal;
    text-transform: none;
    color: #334155;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-title {
    /* GEN7-UX-PRUEFUNG-WORK-CARD-MEASURES-PARITY-I1: 15px/600 statt 20px.
       Live gemessen an der Referenzflaeche Maßnahmen
       (.aw-measure-collapse-title) und identisch zur Prueffragenkarte
       derselben Flaeche -- die 20px waren die einzige Titelskala im
       Fokuspanel, die keiner der beiden anderen Karten entsprach. */
    margin: 0;
    font-size: var(--wb-focus-title-size);
    font-weight: 600;
    line-height: 1.3;
    color: var(--ink);
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-context {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    min-width: 0;
}

/* GEN5-LEGAL-FOCUSPANEL-CANONICAL-CONTENT-F4: der geteilte Legal-Renderer
   bleibt unveraendert; im Fokuspanel gilt fuer seinen fachlichen Inhalt die
   Content-Grammatik des Arbeitsbereichs statt der Hinweisflaeche der Rail. */
.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-context
    .legal-context-hintgroup {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-context
    .legal-context-hint {
    display: grid;
    gap: var(--space-3);
    padding: 0;
    border-bottom: 0;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-context
    .legal-context-item-main {
    gap: var(--space-2);
}

/* GEN7-UX-WORK-SURFACE-VISUAL-CONSISTENCY-I1: 16px -> 13px. Die
   Artikelbezeichnung war die einzige Textzeile der drei Arbeitsflaechen, die
   ueber der Referenzskala lag -- eine flaechen-eigene Sonderregel mit
   Spezifitaet (0,4,0), die jede workpanel-gescopte Angleichung ueberstimmte.
   Sie traegt jetzt den Fliesstextwert der Referenzflaeche Maßnahmen (13px).
   Reine Typografie, keine Geometrie, kein Owner. */
.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-context
    .legal-context-item-ref {
    font-size: 13px;
    /* 700 -> 600: das Gewicht der Aktionen und Titel dieser Arbeitsflaechen.
       700 war der einzige Ausreisser nach oben. */
    font-weight: 600;
    line-height: 1.35;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-context
    .legal-context-item-sub {
    font-size: 12px;
    line-height: 1.4;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-context
    .legal-context-source-row {
    gap: var(--space-2);
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-section {
    padding-block: 18px;
    border-block: 1px solid #eef2f7;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-section h4,
.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-section p {
    margin: 0;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-section h4 {
    margin-bottom: 8px;
    font-size: 14px;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-section p {
    font-size: 13px;
    line-height: 1.5;
    color: #475569;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-legal-focus-actions {
    margin-top: auto;
}

/* GEN5-LEGAL-FOCUSPANEL-ACTION-GRAMMAR-F2: Action-Hierarchie nur im
   Rechtsbezug-Fokuspanel (.case-workspace-legal-reference-detail existiert
   ausschliesslich dort; Right Rail nutzt denselben Item-Renderer unveraendert
   horizontal). Informationsblock -> primaere Aktion (Bearbeiten) ->
   Sekundaerentscheidungen (Uebernehmen/Ignorieren). */
.case-workspace-legal-reference-detail .legal-context-hint {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-3);
    padding: 0;
    border-bottom: 0;
}

.case-workspace-legal-reference-detail .legal-context-actions {
    justify-content: flex-start;
    gap: var(--space-2);
}

/* GEN7-UX-SAAS-INNER-CHROME-CONVERGENCE-I2 — SUPERSEDED:
   Die Aktion trug hier eine gefuellte Teal-Flaeche mit Weissschrift, Gewicht
   700 und Schlagschatten (GEN5-LEGAL-FOCUSPANEL-ACTION-GRAMMAR-F2). Sie war
   damit das einzige gefuellte Bedienelement der vier Arbeitskarten -- auf der
   Referenzkarte traegt diese Fuellung ausschliesslich das Speichern eines
   Entwurfs, nie ein Bearbeiten-Einstieg. Zusaetzlich widersprach der Teal-Ton
   der Farbgrammatik (Aktion = blau, positiver Fachstatus = gruen).

   Die Aktion faellt deshalb auf die BESTEHENDE gemeinsame Edit-Button-
   Grammatik zurueck (GEN4-SHARED-EDIT-BUTTON-POLISH-F1 bzw.
   GEN7-UX-WORK-SURFACE-VISUAL-CONSISTENCY-I1, Vertrag V1: 13px/600,
   8px 16px, Radius --r-2, 36/44px), die genau diese Klasse bereits fuehrt.
   Es entsteht KEIN neuer Buttonstil.

   Unveraendert bleiben Owner, Label, Handler, Bedeutung, Position und die
   Reihenfolge Information -> Bearbeiten -> Uebernehmen/Ignorieren: die
   Primaerzeile bleibt eine eigene Zeile oberhalb der Sekundaerentscheidungen
   (Regel unmittelbar darunter). Die Hierarchie kommt jetzt aus der Position
   statt aus einer Fuellung. */

/* Sekundaerzeile ruhig abgesetzt: eigene Zeile unterhalb der Primaeraktion,
   bestehende Pill-Optik unveraendert. */
.case-workspace-legal-reference-detail .legal-context-actions:last-child {
    padding-top: var(--space-1);
}

/* ==================================================================
   GEN5-CANONICAL-FOCUSPANEL-GRAMMAR-F1
   Die im Prozessstatus-Fokuspanel etablierte GEN5-Bewertungsgrammatik
   (DECISION-GRAMMAR-F8: identische Geometrie je Status, ruhige
   Resting-Stati, enger Cluster-Gap) gilt im Workspace fuer ALLE
   Bewertungscluster desselben Button-Owners (.dsb-status-button):
   DSB-Entscheidung (.dsb-status-grid) und Massnahmen
   (.aw-measure-status-grid). Dazu eine Mikrolabel-Skala
   (Referenzwert des Fokuspanels: 10.5px/800/0.07em/var(--muted))
   fuer dsb-section-head und measure-detail-label.
   Scope strikt .case-workspace-shell — die klassischen Gen3-Reiter
   bleiben unveraendert. is-active/is-pending behalten ihre
   bestehenden State-Owner als alleinige Farbquelle.
   ================================================================== */

/* DSB-Entscheidung: 4 Stati als EIN Entscheidungscluster (wie die
   Bewertung der Belegfrage, F8) statt 2x2-Grid mit 6px-Gap. */
.case-workspace-shell .dsb-status-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-1);
    margin-bottom: 0;
}

.case-workspace-shell .dsb-status-grid .dsb-status-button {
    width: 100%;
    min-height: 32px;
    justify-content: center;
    padding: 7px 13px;
    border-radius: var(--r-2);
    font-size: 12.5px;
    /* Labelzeile wie die Referenz (.dsb-status-label: 1.2) — der Label-Span
       dieses Grids traegt keine eigene Klasse und erbte line-height normal,
       was die Buttons 2px hoeher machte als die F8-Referenzgeometrie. */
    line-height: 1.2;
    text-align: center;
}

.case-workspace-shell .dsb-status-grid .dsb-status-button:not(.is-active):not(.is-pending) {
    background: var(--surface-2);
    border-color: transparent;
}

.case-workspace-shell .dsb-status-grid .dsb-status-button:not(.is-active):not(.is-pending):hover:not(:disabled) {
    background: #ffffff;
    border-color: var(--line);
}

/* Massnahmen: 5 Stati, daher bleibt das bestehende Flex-Wrap-Layout;
   Resting-/Hover-Grammatik, Cluster-Gap und Mindesthoehe identisch zu
   F8. Geometrie (Padding 7px 13px, Radius r-2, 12.5px) ist bereits
   deckungsgleich mit der Referenz. Aktive Status-Farbowner
   (is-active[data-status=...]) unveraendert. */
.case-workspace-shell #block-measures .aw-measure-status-grid {
    gap: var(--space-1);
}

.case-workspace-shell #block-measures .aw-measure-status-grid .aw-status-button {
    min-height: 32px;
}

.case-workspace-shell #block-measures .aw-measure-status-grid .aw-status-button:not(.is-active) {
    background: var(--surface-2);
    border-color: transparent;
}

.case-workspace-shell #block-measures .aw-measure-status-grid .aw-status-button:not(.is-active):hover:not(:disabled) {
    background: #ffffff;
    border-color: var(--line);
}

/* Mikrolabel-Skala: eine Fachabschnitts-Label-Grammatik im Workspace
   (Referenz .question-workbench-focus .measure-detail-label, F4).
   dsb-section-head: vorher 10.5px/700/0.08em/ink-4 (Zeile ~9306);
   measure-detail-label: vorher 11px/800/0.08em/text-soft (Zeile ~9929). */
.case-workspace-shell .dsb-section-head {
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.07em;
    color: var(--muted);
}

.case-workspace-shell #block-measures .measure-detail-label {
    font-size: 10.5px;
    letter-spacing: 0.07em;
    color: var(--muted);
}

/* Dokumentation: kein Bewertungscluster (kein Kategorienfehler durch
   erfundene Zonen); Footer-Zeile auf den Token-Rhythmus der uebrigen
   Action-Rows (Abstand space-4, Gap space-2 = bisheriger 8px-Wert). */
.case-workspace-shell .doc-shell-actions {
    margin-top: var(--space-4);
    gap: var(--space-2);
}

/* Naechster-Schritt-Zeile als Auswahl-Link (F2): Button ohne eigene
   Flaeche, blauer Bestandston, sonst identische Typografie wie der
   Textzustand. */
.case-workspace-prozessstatus-kopf-next-link {
    border: none;
    background: transparent;
    padding: 0;
    cursor: pointer;
    color: var(--blue-text);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    text-align: left;
}

/* ==================================================================
   PROZESS-WB-F5-REFERENCE-COMPOSITION-R1
   Zwei Darstellungszustaende derselben Case-Workspace-Shell:
   .is-overview  = Fallübersicht (hero.png): Hero + Stepper, Body bleibt
                   bei der vermessenen 900px-Baseline.
   .is-workmode  = Arbeitszustand (Prozessstatus.png): kompakter Stepper
                   oben, kein Hero, Fokuspanel erhaelt per minmax(0,1fr)
                   die gesamte Restbreite.
   Alle Regeln bleiben auf .case-workspace-shell gescoped.
   ================================================================== */

/* Arbeitszustand: kompakterer vertikaler Rhythmus als die Fallübersicht. */
.case-workspace-shell.is-workmode .case-workspace-body {
    gap: 12px;
}

/* GEN5-WORKSPACE-STEPPER-GEOMETRY-PARITY-F1: eine gemeinsame kompakte
   Stepper-Karten-Geometrie fuer ALLE fuenf Workmodes. Vorher galt die
   horizontale 92px-Karte (Prozessstatus.png) nur fuer
   .is-workmode-prozessstatus; die uebrigen vier Workmodes fielen auf die
   vertikale Overview-Grammatik mit 72px-min-height zurueck (real 116-118px)
   und der Stepper sprang beim Workmode-Wechsel. Die Fallübersicht
   (.is-overview) bleibt unveraendert. */
/* GEN7-UX-SHARED-CASE-HEADER-OWNER-I1: Die vier hier zuvor stehenden
   Workmode-Sonderregeln fuer die Fallnavigation (padding-bottom 0,
   92px-Zeilenkarte, linksbuendige Copy, 34px-Titelreserve) sind ersatzlos
   entfallen. Die Fallnavigation ist Bestandteil des gemeinsamen Fallkopfs und
   besitzt damit genau EINE Grammatik -- die der Fallübersicht, gescopt auf
   `.has-shared-case-header`. Eine zweite, modusabhaengige Stepper-Grammatik
   war die Ursache dafuer, dass die Navigation beim Reiterwechsel sichtbar
   sprang. Es entsteht keine neue Regel und kein neuer Wert; es entfaellt nur
   die konkurrierende zweite. */

/* Sichtbare Section-Ueberschrift "Prozessstatus" entfaellt im
   Arbeitszustand (Prozessstatus.png: der Statuskopf fuehrt); die
   Ueberschrift bleibt fuer Screenreader im DOM. */
.case-workspace-shell.is-workmode .case-workspace-prozessstatus > .case-workspace-section-title {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* Der reale Renderer kapselt den Section-Titel in einer Hosted-Headline.
   Die Referenz beginnt nach dem Stepper direkt mit der Statuskarte. */
.case-workspace-shell.is-workmode-prozessstatus .case-workspace-hosted-headline {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.case-workspace-shell.is-workmode-prozessstatus .case-workspace-prozessstatus {
    margin-top: -12px;
}

.case-workspace-prozessstatus-kopf-aufgabe {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

/* Workgrid: Arbeitsliste als Clamp-Spalte, Fokuspanel erhaelt die gesamte
   Restbreite - keine festen Panelbreiten (STEP 8). */
.case-workspace-prozessstatus-workbench {
    grid-template-columns: clamp(260px, 23vw, 340px) minmax(0, 1fr);
    gap: clamp(12px, 1.25vw, 24px);
}

/* GEN7-UX-MASSNAHMEN-REDESIGN-I1 — Der Maßnahmen-Screen fuehrt die Regionen in
   der DOM-Reihenfolge A -> B -> C (Fokuspanel) vor D (Arbeitsliste). Die
   zweispaltige Darstellung bleibt exakt wie bisher: die Spalten werden hier
   explizit zugewiesen statt aus der DOM-Reihenfolge abgeleitet. Nur diese eine
   Instanz ist betroffen; der gemeinsame Grid-Owner
   .case-workspace-prozessstatus-workbench bleibt unveraendert. */
.case-workspace-measures-workbench > .case-workspace-worklist {
    grid-column: 1;
    grid-row: 1;
}

.case-workspace-measures-workbench > .case-workspace-workpanel {
    grid-column: 2;
    grid-row: 1;
}

/* ==================================================================
   GEN7-UX-MEASURES-WORKING-SURFACE-MASTER-ALIGNMENT-I2
   Visuelle Angleichung der Maßnahmenflaeche an das PO-Zielbild.
   Ausschliesslich bestehende Tokens; kein neuer Farbwert, kein Radius
   ausserhalb der bestehenden Skala (--r-2 .. --r-6), keine Aenderung an
   globalen Klassen. Alles ist auf .case-workspace-measures-workbench
   bzw. auf flaecheneigene measure-*-Klassen gescoped.
   ================================================================== */

/* Titel und Arbeitsanweisung stehen untereinander, sobald eine Anweisung
   existiert. Ohne Untertitel bleibt die Kopfzeile exakt wie bisher. */
.case-workspace-hosted-headline:has(> .case-workspace-section-subtitle) {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

/* Arbeitsanweisung unter dem Sektionstitel (gemeinsamer Chrome-Owner). */
.case-workspace-section-subtitle {
    margin: 4px 0 0;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.45;
    color: var(--text-soft);
}

/* --- Kennzahlen- und Filterleiste -------------------------------- */
.measures-summary-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: clamp(12px, 1.25vw, 20px);
    padding: 10px 16px;
    border: var(--wb-card-border);
    border-radius: var(--r-6);
    background: var(--wb-card-bg);
    box-shadow: var(--wb-card-shadow);
}

.measures-summary-metrics {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px;
    min-width: 0;
}

.measures-summary-metric--work + .measures-summary-metric--work::before {
    content: "·";
    margin-right: 10px;
    color: var(--text-soft);
}

.measures-summary-priority {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding-left: 16px;
    border-left: 1px solid var(--line);
}

.measures-summary-metric {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 500;
    color: var(--ink);
}

.measures-summary-priority-filter {
    border: 1px solid transparent;
    background: transparent;
    padding: 2px 4px;
    border-radius: 6px;
    cursor: pointer;
}

.measures-summary-priority-filter.is-active,
.measures-summary-priority-filter:focus-visible {
    border-color: var(--border-strong, #cbd5e1);
    background: var(--surface-muted, #f8fafc);
    font-weight: 700;
}

/* Ruhige, pastellige Punkte statt grosser Warnflaechen. */
.measures-summary-metric-dot {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    background: var(--blue-bg-2);
}

.measures-summary-metric.is-open .measures-summary-metric-dot { background: var(--blue); }
.measures-summary-metric.is-high .measures-summary-metric-dot { background: #e08a8a; }
.measures-summary-metric.is-medium .measures-summary-metric-dot { background: #e6b25c; }
.measures-summary-metric.is-low .measures-summary-metric-dot { background: #6fc08d; }

.measures-summary-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.measures-summary-quick-filters {
    display: inline-flex;
    gap: 2px;
    padding: 2px;
    border: 1px solid var(--line);
    border-radius: var(--r-2);
}

.measures-summary-quick-filter,
.measures-summary-advanced-filters > summary {
    border: 0;
    border-radius: calc(var(--r-2) - 2px);
    background: transparent;
    color: var(--text-soft);
    font: inherit;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.3;
    padding: 5px 9px;
    cursor: pointer;
}

.measures-summary-quick-filter.is-active {
    background: var(--blue-soft);
    color: var(--blue-text);
}

.measures-summary-advanced-filters { position: relative; }
.measures-summary-advanced-filters > summary { list-style: none; border: 1px solid var(--line); }
.measures-summary-advanced-filters > summary::-webkit-details-marker { display: none; }
.measures-summary-advanced-filter-body {
    position: absolute;
    z-index: 3;
    right: 0;
    top: calc(100% + 6px);
    display: grid;
    gap: 8px;
    min-width: 220px;
    /* GEN7-UX-MEASURES-SENIOR-ATTENTION-AND-MULTI-FILTER-I1: das Panel traegt
       jetzt neun Facetten plus Schnellfilter. Es waechst deshalb nicht mehr
       ueber den Viewport hinaus, sondern scrollt in sich. */
    max-height: min(70vh, 520px);
    overflow-y: auto;
    padding: 10px;
    border: var(--wb-card-border);
    border-radius: var(--r-4);
    background: var(--wb-card-bg);
    box-shadow: var(--wb-card-shadow);
}
.measures-summary-filter-field { display: grid; gap: 4px; font-size: 12px; font-weight: 500; color: var(--text-soft); }

/* Es existiert projektweit keine globale select-Basis — die Grammatik wird
   deshalb flaecheneigen gesetzt (gleiches Vorgehen wie im Edit-State der
   DSB-Risikobewertung). */
.measures-summary-select {
    appearance: none;
    padding: 7px 30px 7px 12px;
    border: 1px solid var(--line);
    border-radius: var(--r-2);
    background-color: var(--surface);
    background-image: linear-gradient(45deg, transparent 50%, var(--text-soft) 50%),
        linear-gradient(135deg, var(--text-soft) 50%, transparent 50%);
    background-position: calc(100% - 15px) 52%, calc(100% - 10px) 52%;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
    font: inherit;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--ink);
    cursor: pointer;
}

.measures-summary-select:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: 1px;
}

/* GEN7-UX-MEASURES-SENIOR-ATTENTION-AND-MULTI-FILTER-I1 ------------------
   Senior-Schnellfilter und aktive Filterchips. Bewusst dieselbe ruhige
   Grammatik wie die bestehenden Schnellfilter (12.5px/500, Blue-Soft im
   aktiven Zustand) -- es entsteht keine neue Designsystem-Sprache. */
.measures-summary-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--line);
}

.measures-summary-preset {
    border: 1px solid var(--line);
    border-radius: var(--r-2);
    background: transparent;
    color: var(--text-soft);
    font: inherit;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    padding: 4px 8px;
    cursor: pointer;
}

.measures-summary-preset.is-active {
    background: var(--blue-soft);
    border-color: var(--blue-soft);
    color: var(--blue-text);
}

/* Die Chipzeile beantwortet "warum sehe ich nur 3 von 22?". Sie belegt eine
   eigene volle Zeile der Leiste, damit sie die Kennzahlen nicht verdraengt. */
.measures-summary-active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    flex-basis: 100%;
    padding-top: 8px;
    border-top: 1px solid var(--line);
}

.measures-summary-active-filter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--blue-soft);
    border-radius: var(--r-2);
    background: var(--blue-soft);
    color: var(--blue-text);
    font: inherit;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    padding: 3px 8px;
    cursor: pointer;
}

.measures-summary-active-filter-remove {
    font-size: 13px;
    line-height: 1;
}

.measures-summary-filter-reset,
.measures-empty-filter-reset {
    border: 0;
    background: transparent;
    color: var(--blue-text);
    font: inherit;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    padding: 3px 4px;
    cursor: pointer;
    text-decoration: underline;
}

.measures-empty-filter-reset {
    margin: 8px auto 0;
    display: block;
}

.measures-summary-preset:focus-visible,
.measures-summary-active-filter:focus-visible,
.measures-summary-filter-reset:focus-visible,
.measures-empty-filter-reset:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: 1px;
}

/* --- Master/Detail-Geometrie (ca. 40/60) -------------------------- */
.case-workspace-measures-workbench {
    grid-template-columns: minmax(220px, 0.52fr) minmax(0, 1fr);
}

/* Falle: `.case-workspace-shell .case-workspace-worklist` (Zeile ~16350)
   setzt spaeter im Dokument bei gleicher Spezifitaet 12px. Die Rundung dieser
   Flaeche braucht deshalb denselben Shell-Praefix, sonst gewinnt die
   Kaskadenreihenfolge. Kein globaler Tokenwechsel — nur diese Instanz. */
.case-workspace-shell .case-workspace-measures-workbench > .case-workspace-worklist,
.case-workspace-shell .case-workspace-measures-workbench > .case-workspace-workpanel,
.case-workspace-shell .case-workspace-measures-workbench .measure-workbench-focus,
.case-workspace-shell .case-workspace-measures-workbench .measure-risk-decision-card {
    border-radius: var(--r-6);
}

/* --- Master-Liste ------------------------------------------------- */
/* GEN7-UX-MEASURES-WORKLIST-TITLE-READABILITY-I4: Die I3-Arbeitskorbgrenze
   bleibt bei sechs Eintraegen. Deshalb darf die Navigation pro Eintrag bis zu
   zwei ruhige Titelzeilen zeigen; Status, Prioritaet, Nummer und Chevron
   bleiben sichtbar, treten aber in ihrer Breite zurueck. */
.case-workspace-measures-workbench > .case-workspace-worklist {
    padding: 4px 8px 8px;
}

.case-workspace-measures-workbench .case-workspace-worklist-head {
    padding: 8px 8px 9px;
}

.case-workspace-measures-workbench .measure-worklist-items {
    display: flex;
    flex-direction: column;
}

/* Zeilengrammatik des Zielbilds: Nummer, Titel, Risikostufe, Status,
   Chevron. Ueberschreibt die geteilte 5-Spalten-Regel nur in dieser Instanz. */
/* Falle: die geteilte Basisregel `.case-workspace-worklist-row` setzt
   `min-height: calc(var(--space-6) + var(--space-6))` = 48px. Ohne deren
   Ueberschreibung bleibt jede Zeile 48px hoch, egal wie klein das Padding
   wird. Beide Groessen muessen zusammen sinken. */
.case-workspace-measures-workbench .measure-worklist-row {
    grid-template-columns: 14px minmax(0, 1fr) auto auto 10px;
    column-gap: 6px;
    min-height: 40px;
    padding: 8px 6px;
    border-radius: var(--r-2);
    border-top: 1px solid #f4f6fa;
}

.case-workspace-measures-workbench .measure-worklist-items
    > .measure-worklist-row:first-child {
    border-top: 0;
}

/* Die laufende Nummer ist Orientierung, kein Statuswert: sekundaere Farbe,
   feste schmale Spalte, keine Badge. */
.case-workspace-measures-workbench .measure-worklist-num {
    font-size: 10px;
    color: #a8b3c4;
}

.case-workspace-measures-workbench .measure-worklist-title {
    font-size: 12px;
    font-weight: 400;
    line-height: 1.3;
    color: var(--ink);
    white-space: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* Pillen: gleiche Farben, gleiche Semantik, nur kompakter. Sie duerfen nicht
   annaehernd so praesent wirken wie der Maßnahmentitel. */
.case-workspace-measures-workbench .measure-worklist-prio,
.case-workspace-measures-workbench .measure-worklist-status {
    min-height: 0;
    padding: 1px 5px;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.25;
}

.case-workspace-measures-workbench .measure-worklist-status {
    gap: 5px;
}

.case-workspace-measures-workbench .measure-worklist-chevron {
    color: #a8b3c4;
    font-size: 14px;
    line-height: 1;
    text-align: right;
}

/* Auswahl: helle blaue Flaeche, blaue Kontur, blauer Titel. Keine dunkle
   Vollflaeche; die Auswahl steht zusaetzlich in aria-current. */
.case-workspace-measures-workbench .measure-worklist-row.is-selected {
    background: var(--blue-soft);
    border: 1px solid var(--blue-border);
    box-shadow: none;
}

.case-workspace-measures-workbench .measure-worklist-row.is-selected
    > .measure-worklist-title {
    color: var(--blue-text);
    font-weight: 600;
}

.case-workspace-measures-workbench .measure-worklist-row.is-selected
    > .measure-worklist-chevron {
    color: var(--blue-text);
}

.case-workspace-measures-workbench .measure-worklist-row:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: -2px;
}

/* Zufuegen-Aktion: Deklaration liegt im gemeinsamen Owner
   (GEN7-UX-WORKBENCH-ACTION-BUTTON-GRAMMAR-I1, `.wb-action--add`). */

.case-workspace-measures-workbench .case-workspace-worklist-done-toggle {
    min-height: 32px;
    padding: 6px 8px;
}

.case-workspace-measures-workbench .measure-worklist-reveal {
    width: 100%;
    min-height: 32px;
    margin-top: 6px;
    padding: 6px 8px;
    border: 0;
    border-top: 1px solid var(--line);
    background: transparent;
    color: var(--blue-text);
    font: inherit;
    font-size: 12.5px;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
}
.case-workspace-measures-workbench .measure-worklist-reveal:hover,
.case-workspace-measures-workbench .measure-worklist-reveal:focus-visible { text-decoration: underline; }

.case-workspace-measures-workbench .case-workspace-worklist-footer {
    padding: 10px 8px 2px;
}

/* Groesse der Zufuegen-Aktion: kompakte Stufe des gemeinsamen
   Action-Owners (`wb-action--compact`) statt eigener Magic Values -
   GEN7-UX-WORKBENCH-ACTION-BUTTON-GRAMMAR-I1 Abschnitt 5 und 12. */

/* --- Detailpanel -------------------------------------------------- */
.case-workspace-measures-workbench .measure-workbench-focus
    > .aw-measure-collapse-header {
    align-items: flex-start;
    cursor: default;
}

.case-workspace-measures-workbench .measure-workbench-focus
    .aw-measure-collapse-title {
    font-size: var(--wb-focus-title-size);
    font-weight: 600;
    line-height: 1.3;
}

/* Informationsraster: zwei bzw. drei ruhige Zellen je Reihe, getrennt durch
   Linien statt durch eigene Karten (keine Karte-in-Karte). */
.measure-detail-row {
    display: grid;
    gap: 0;
    border: 0;
    border-radius: 0;
    overflow: visible;
}

.measure-detail-row + .measure-detail-row {
    margin-top: 12px;
}

.measure-detail-row.has-2-cells { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.measure-detail-row.has-3-cells { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.measure-detail-row > .aw-measure-detail-section {
    margin: 0;
    padding: 12px 14px;
    min-width: 0;
}

.measure-detail-row > .aw-measure-detail-section + .aw-measure-detail-section {
    border-left: 1px solid var(--line);
}

.case-workspace-workpanel .measure-workbench-focus .measure-detail-row .measure-detail-label,
.measure-detail-row .measure-detail-label {
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    color: var(--ink);
}

.case-workspace-workpanel .measure-workbench-focus .measure-detail-row .aw-measure-description,
.measure-detail-row .aw-source-cell,
.measure-detail-row .aw-measure-description {
    font-size: 13px;
    font-weight: 400;
    line-height: 1.5;
    color: var(--text-soft);
}

.measure-detail-row .aw-source-cell.is-empty {
    font-style: italic;
    color: #94a3b8;
}

/* GEN7-UX-MEASURES-SENIOR-OVERVIEW-AND-HISTORY-I1: fachlicher Verlauf aus
   case_measure_state_events, bewusst ruhig unter dem Read-Detail und ohne
   Audit-/Dashboard-Karte. */
.case-workspace-measures-workbench .measure-history {
    display: grid;
    gap: 8px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.case-workspace-measures-workbench .measure-history-title {
    margin: 0;
    font-size: 13px;
    font-weight: 500;
}
.case-workspace-measures-workbench .measure-history-entry {
    display: grid;
    gap: 2px;
    padding: 8px 0;
    border-top: 1px solid var(--line-soft, #eef2f7);
}
.case-workspace-measures-workbench .measure-history-action,
.case-workspace-measures-workbench .measure-history-change,
.case-workspace-measures-workbench .measure-history-meta { margin: 0; }
.case-workspace-measures-workbench .measure-history-action { font-size: 12px; font-weight: 500; color: var(--ink); }
.case-workspace-measures-workbench .measure-history-change { font-size: 12px; font-weight: 400; color: var(--text-soft); }
.case-workspace-measures-workbench .measure-history-meta { font-size: 11px; font-weight: 400; color: var(--text-soft); }
.case-workspace-measures-workbench .measure-history-reveal { justify-self: start; border: 0; padding: 4px 0; background: transparent; color: var(--blue-text); font: inherit; font-size: 12px; font-weight: 500; cursor: pointer; }

/* GEN7-UX-MEASURES-DETAIL-ACTION-CLARITY-I1 — Interaktionsklarheit der
   Detailflaeche. Ausschliesslich visuelle Hierarchie und Aktionsgrammatik;
   Owner, Felder, Status- und Historienlogik bleiben unveraendert.

   Grundregel: Flaeche gruppiert, Farbe allein macht nichts klickbar. Echte
   Aktionen sind Buttons mit Unterstreichung, Hover und sichtbarem Fokusring;
   Informationszellen bekommen bewusst KEINE buttonaehnliche Umrandung. */
.measure-detail-group {
    margin-top: 12px;
    /* GEN7-UX-WORKBENCH-VISUAL-HIERARCHY-AND-SURFACE-CLEANUP-I1: Die Linie
       wurde als Box-in-Box-Kandidat geprueft und BEWUSST ERHALTEN. DAC-16
       (GEN7-UX-MEASURES-DETAIL-ACTION-CLARITY-I1) fordert "Linie und
       Flaeche" ausdruecklich; der Measures-Freeze laesst nur Praesentations-
       bereinigung ohne Vertragsbruch zu. Siehe Abschnitt 20 des Berichts. */
    border: 1px solid var(--line);
    border-radius: var(--r-4);
    background: var(--surface-soft);
    overflow: hidden;
}

/* Die Reihe sitzt jetzt in der Gruppe statt als Geschwister der Vorreihe —
   der Abstand wandert deshalb an die Gruppe. */
.measure-detail-group > .measure-detail-row {
    margin-top: 0;
}

.measure-detail-group + .measure-detail-group {
    margin-top: 10px;
}

.measure-detail-action {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    margin-top: 8px;
    padding: 2px 0;
    border: 0;
    border-radius: var(--r-2);
    background: transparent;
    color: var(--blue-text);
    font: inherit;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
    text-align: left;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.measure-detail-action:hover {
    text-decoration-thickness: 2px;
}

.measure-detail-action:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: 2px;
}

/* „Letzte Änderung" ist Metainformation, nicht Arbeitsdatum. */
.measure-detail-meta {
    margin-top: 14px;
}

.measure-detail-meta .aw-title-sub {
    font-size: 12px;
    color: var(--text-soft);
}

/* Der Verlauf setzt sich deutlicher vom aktuellen Zustand ab: mehr Luft und
   eine ruhige Flaeche. Funktional unveraendert (Actor, Zeitpunkt, Revision,
   Aenderung, Reveal-Button bleiben derselbe Owner). */
.case-workspace-measures-workbench .measure-history {
    margin-top: 20px;
    padding: 14px 14px 12px;
    border-top: 0;
    /* GEN7-UX-WORKBENCH-VISUAL-HIERARCHY-AND-SURFACE-CLEANUP-I1: bewusst
       erhalten — der Verlauf teilt die Gruppen-Grammatik von
       .measure-detail-group, die DAC-16 vertraglich mit Linie festschreibt. */
    border: 1px solid var(--line);
    border-radius: var(--r-4);
    background: var(--surface-soft);
}

/* GEN7-UX-MEASURES-QUICK-EDIT-I1 — kompakte Schnellbearbeitung.
   Werkzeug, kein zweites Formularsystem: Labels 500, Werte 400, keine
   Elevation, keine eigene Kartenfarbe. Der Rahmen kommt unveraendert von
   `.aw-edit-panel`; hier steht nur die Verdichtung. */
.measure-quick-edit-panel {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.measure-quick-edit-title {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-soft);
}

/* Zwei Spalten auf Desktop, eine auf schmal. `minmax(0, 1fr)` verhindert,
   dass ein langer Verantwortlich-Wert das Raster aufsprengt und eine
   horizontale Scrollbar erzeugt. */
.measure-quick-edit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
}

.measure-quick-edit-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.measure-quick-edit-label {
    font-size: 11px;
    font-weight: 500;
    color: var(--text-soft);
}

.measure-quick-edit-control {
    width: 100%;
    min-width: 0;
    /* 32px ist die kompakte Werkzeughoehe; auf schmal waechst sie unten auf
       die 44px Bedienflaeche der Dichteserie. */
    min-height: 32px;
    font-size: 12px;
    font-weight: 400;
}

.measure-quick-edit-notice {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

/* GEN7-IMP-MEASURE-IMPLEMENTATION-LIFECYCLE-I1 — eine bereits umgesetzte
   Maßnahme zeigt ihren Umsetzungszustand in Quick Edit nur an; geaendert wird
   sie ausschliesslich im Detaileditor (Evidence-/Wiedereroeffnungsvertrag).
   Bewusst kein deaktiviertes Select: ein totes Bedienelement waere ein
   falsches Versprechen. Grammatik ist die der uebrigen Quick-Edit-Werte. */
.measure-quick-edit-implementation-static {
    margin: 0;
    min-height: 32px;
    display: flex;
    align-items: center;
    font-size: 12px;
    font-weight: 500;
    color: var(--text);
}

/* Sekundaerzeile der Umsetzungsprojektion: sie benennt, WORAUF die
   Abschlussbehauptung beruht (Nachweis oder begruendete Ausnahme). */
.measure-implementation-note {
    margin: 4px 0 0;
}


.measure-quick-edit-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

/* Der Wechsel in die Vollbearbeitung ist eine Nebenaktion und steht links,
   damit die Primaeraktion rechts allein bleibt. */
.measure-quick-edit-detail {
    margin-right: auto;
}

.measure-detail-reason-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

/* Die Arbeitsnotiz darf keine ueberhohe Zelle erzeugen. */
.measure-detail-row .aw-status-reason-input,
.measure-detail-row .dsb-note-ta {
    min-height: 68px;
    border-radius: var(--r-2);
}

/* Fusszeile des Detailpanels: eine klare Aktionszone. */
.case-workspace-measures-workbench .aw-measure-footer-actions {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.case-workspace-measures-workbench .aw-measure-footer-actions.is-focus {
    justify-content: flex-start;
}

@media (max-width: 1099px) {
    .case-workspace-measures-workbench {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Schmal: die Rasterreihen stapeln, damit keine Steuerelemente abgeschnitten
   werden. Die Trennlinie wandert von links nach oben. */
@media (max-width: 720px) {
    .measure-detail-row.has-2-cells,
    .measure-detail-row.has-3-cells {
        grid-template-columns: minmax(0, 1fr);
    }

    .measure-detail-row > .aw-measure-detail-section + .aw-measure-detail-section {
        border-left: 0;
        border-top: 1px solid var(--line);
    }

    .measures-summary-bar {
        align-items: flex-start;
        flex-direction: column;
    }

    /* Auf schmalen Viewports bleibt das Touch-Ziel mindestens 44px; ein
       geklammerter zweizeiliger Titel darf diese Hoehe fuer Lesbarkeit
       bedarfsgerecht ueberschreiten. */
    .case-workspace-measures-workbench .measure-worklist-row {
        min-height: 44px;
        padding: 8px;
        column-gap: 5px;
    }

    /* GEN7-UX-WORKSPACE-MEASURES-PATTERN-CONVERGENCE-I1 (Slice B): dieselbe
       schmale Zeilengrammatik fuer die Pruefflaeche — wertgleich, im
       BESTEHENDEN Mobile-Owner, kein dritter Media-Block. */
    .case-workspace-prozess-workbench .prozess-worklist-row {
        min-height: 44px;
        padding: 8px;
        column-gap: 5px;
    }

    /* Falle: die geteilte Basisregel `.case-workspace-shell :is(…)` ist
       (0,3,0) — `:is()` zaehlt mit seinem staerksten Argument. Eine
       (0,2,0)-Regel bliebe hier wirkungslos. Letztes Listenglied bewusst
       flaecheneigen, damit `ownerRule()` diese Regel nicht als Basisregel
       der Action-Familie liest. */
    .case-workspace-shell .case-workspace-prozess-workbench .wb-action,
    .case-workspace-shell .case-workspace-prozess-workbench .prozess-worklist-row {
        min-height: 44px;
    }

    /* Geteilte Chrome-Bedienelemente der Gen7-Arbeitsflaechen (Rueckweg in die
       Arbeitsliste, Einklappen, Bearbeiten). Sie lagen auf 390px real bei
       32-37px — in ALLEN drei Instanzen gleichermassen, also auch in der
       Referenzflaeche. Die Regel gilt deshalb fuer alle drei zusammen: sie
       gleicht an, sie gestaltet die Referenz nicht um. Die Basisregeln der
       Chrome-Owner bleiben unberuehrt (mehrere Consumer ausserhalb dieser
       Flaechen). */
    .case-workspace-shell :is(
        .case-workspace-measures-workbench,
        .case-workspace-documents-workbench,
        .case-workspace-prozess-workbench
    ) .case-workspace-workpanel-back,
    .case-workspace-shell .case-workspace-prozessstatus .case-workspace-host-collapse-action,
    .case-workspace-shell .case-workspace-prozessstatus .case-workspace-host-edit-action {
        min-height: 44px;
    }

    /* GEN7-UX-MEASURES-DETAIL-ACTION-CLARITY-I1: volle Bedienflaeche fuer die
       Inline-Aktionen, ohne zweite Mobile-Implementierung. */
    .measure-detail-action {
        min-height: 44px;
    }

    .dsb-decision-section-review .dsb-context-summary {
        grid-template-columns: 1fr;
    }

    .case-workspace-shell .dsb-decision-section-action .dsb-status-grid .dsb-status-button {
        min-height: 44px;
    }

    .case-workspace-shell .dsb-decision-section-action .dsb-decision-flow .dsb-status-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    /* GEN7-FIX-MEASURES-DETAIL-OVERFLOW-MENU-MOBILE-I1 - der geteilte
       Overflow-Trigger ist global 28x28 und damit auf Touchbreiten unter der
       44px-Bedienflaeche, die diese Flaeche sonst durchgaengig einhaelt.
       Vergroessert wird deshalb die TREFFERFLAECHE, nicht die Pille: die
       Optik des gemeinsamen Owners bleibt unveraendert (kein zweiter
       Trigger, keine neue Buttonfamilie, kein Layoutsprung), und Desktop ist
       nicht betroffen. Gescoped nach dem bestehenden Vorbild
       `.case-workspace-hero-more-menu .overflow-menu-trigger`. */
    .case-workspace-measures-workbench .aw-measure-collapse-header .overflow-menu-trigger {
        position: relative;
    }

    .case-workspace-measures-workbench .aw-measure-collapse-header .overflow-menu-trigger::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        width: 44px;
        height: 44px;
        transform: translate(-50%, -50%);
    }
}

/* Schmal: Quick Edit wird einspaltig und bekommt volle Bedienflaeche.
   Falle: dieser Block muss NACH dem Dichte-Media-Block stehen — der
   Dichtetest schneidet ab dem ERSTEN Vorkommen von
   "@media (max-width: 720px)" und wuerde sonst diesen hier vermessen. */
@media (max-width: 720px) {
    /* I1: die Referenz-Einstiege sind auf schmalen Geraeten echte
       Bedienziele und brauchen die 44-px-Flaeche. */
    .dsb-decision-actions .dsb-flow-link {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
    }

    .measure-quick-edit-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .measure-quick-edit-control {
        min-height: 44px;
    }

    .measure-quick-edit-actions {
        justify-content: stretch;
    }

    .measure-quick-edit-actions > button {
        flex: 1 1 auto;
        min-height: 44px;
    }

    /* Auf 390px darf das absolut positionierte Filterpanel nicht ueber den
       rechten Rand laufen. Es wird dort zur normalen Flussflaeche ueber die
       volle Breite -- ohne horizontalen Overflow und ohne neun dauerhaft
       sichtbare Auswahlfelder (sie bleiben hinter der `Filter`-Aktion). */
    .measures-summary-filters,
    .measures-summary-advanced-filters {
        width: 100%;
    }

    .measures-summary-advanced-filter-body {
        position: static;
        min-width: 0;
        width: 100%;
        max-height: none;
        box-shadow: none;
    }

    .measures-summary-select {
        width: 100%;
        min-height: 44px;
    }


    /* GEN7-UX-WORKBENCH-ACTION-BUTTON-GRAMMAR-I1 — Touchziel der gemeinsamen
       Action-Familie. Kompakte Inline-Aktionen behalten ihre Dichte, bekommen
       aber die volle Bedienflaeche. */
    .wb-action,
    .measure-button,
    .risk-assessment-button,
    .workbench-primary-button,
    .case-workspace-hero-summary-edit-save,
    .case-workspace-hero-summary-edit-cancel {
        min-height: 44px;
    }

    .wb-action--compact {
        min-height: 44px;
        padding: 6px 12px;
    }
    .measures-summary-preset,
    .measures-summary-active-filter {
        min-height: 32px;
    }

    .measure-quick-edit-detail {
        margin-right: 0;
    }
    /* GEN7-UX-MEASURES-EDIT-MODE-HIERARCHY-I1 — der Voll-Editor teilt sich den
       bestehenden Mobile-Owner der Maßnahmenflaeche; kein zweiter 720px-Block. */
    .measure-edit-section { padding: 12px; }

    .measure-edit-panel--structured .measure-edit-actions {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .measure-edit-panel--structured .measure-edit-actions > button {
        width: 100%;
        min-height: 44px;
    }

    .case-workspace-workpanel .measure-edit-panel--structured .aw-measure-status-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .case-workspace-workpanel .measure-edit-panel--structured .aw-measure-status-grid .aw-status-button {
        min-height: 44px;
    }

    /* GEN7-UX-DSB-DECISION-SOLL-REFERENCE-CLOSURE-I1 — schmale Bedienflaeche
       im bestehenden Mobile-Owner, kein zweiter Media-Owner. */
    .dsb-decision-section.dsb-decision-section-review .dsb-context-summary {
        grid-template-columns: minmax(0, 1fr);
    }

    .dsb-decision-section.dsb-decision-section-review .dsb-context-summary-nav {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
    }

    .dsb-decision-section.dsb-decision-section-release-gate .dsb-completion-section .dsb-completion-row {
        flex-wrap: nowrap;
        min-height: 44px;
    }

    .dsb-decision-section.dsb-decision-section-release-gate .dsb-completion-nav {
        width: 44px;
        min-width: 44px;
        min-height: 44px;
    }


    /* GEN7-UX-DSB-DECISION-REFERENCE-PIXEL-CONVERGENCE-I1 — schmale Fassung im
       BESTEHENDEN Mobile-Owner. Gleiche Informationshierarchie, sinnvolle
       Stapelung, kein zweiter Media-Owner. */
    .dsb-decision-actions .dsb-decision-flow {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .dsb-decision-actions .dsb-decision-flow-chevron {
        display: none;
    }

    .dsb-decision-actions .dsb-decision-footer {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .dsb-decision-actions .dsb-decision-footer .dsb-note-actions,
    .dsb-decision-actions .dsb-decision-footer .workbench-primary-button {
        width: 100%;
        min-height: 44px;
    }

    .dsb-decision-actions .dsb-status-summary {
        grid-template-columns: minmax(0, 1fr);
    }

    .dsb-decision-actions .dsb-gate-meta {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .dsb-decision-actions .dsb-gate-meta-item {
        padding: 0;
    }

    .dsb-decision-actions .dsb-gate-meta-item + .dsb-gate-meta-item {
        border-left: 0;
    }

    .dsb-decision-actions .dsb-decision-section > .wb-card-header {
        padding: 16px 16px 0 16px;
        /* GEN7-UX-DSB-DECISION-REVIEW-COMPACT-CONVERGENCE-I1 -- gemeldeter
           Ueberlappungsbefund, live reproduziert und vermessen:
           Der Kartenkopf ist eine einzeilige Flexzeile ohne Umbruch. Auf
           390px passen Medaillon + Titel + Statuspille nicht nebeneinander.
           Die Pille ist `flex: 0 0 auto` mit `white-space: nowrap` (187px)
           und schrumpft nicht; die Titelklammer `.dsb-decision-card-lead`
           ist `flex: 0 1 auto` mit `min-width: 0` und wird deshalb auf 95px
           gedrueckt -- ihr Titel "Entscheidung treffen" (104px, laengstes
           Wort nicht umbrechbar) lief 67px aus seinem Elternelement heraus
           und lag mit 55x22px UNTER der Pille.
           Behoben ueber die einzige fehlende Eigenschaft derselben Zeile:
           die Pille darf umbrechen. Keine kleinere Schrift, keine Kuerzung,
           kein Abschneiden, keine neue Komponente -- und auf Desktop
           unveraendert, weil dort alles nebeneinander passt. */
        flex-wrap: wrap;
    }

    .dsb-decision-actions .dsb-decision-section > .wb-card-body {
        padding: 14px 16px 18px 16px;
    }


    /* GEN7-UX-DSB-DECISION-INTERACTION-CLARITY-I1 — Touch-Ziel des
       Massnahmen-Umschalters im bestehenden Mobile-Owner. */
    .dsb-decision-section-review .dsb-measures-disclosure-trigger {
        min-height: 44px;
    }

    /* GEN7-TEST-DOCUMENTATION-REVIEW-APPROVAL-LIVE-CLOSURE-I1 — Touch-Ziel der
       Dokument-Aktionszeile im bestehenden Mobile-Owner. Die geteilte
       Basisregel `.case-workspace-shell :is(..., .doc-shell-action-btn, ...)`
       setzt (0,2,0) min-height: 32px; nur eine (0,3,0)-Regel gewinnt hier. */
    .case-workspace-shell .doc-shell-actions .doc-shell-action-btn {
        min-height: 44px;
    }
}

.measure-risk-decision-card {
    margin-top: 16px;
    padding: 20px 24px;
    border: 1px solid var(--wb-border, #e5e7eb);
    border-radius: 12px;
    background: #fff;
}
.measure-risk-decision-card h3 { margin: 0 0 6px; font-size: 16px; font-weight: 600; }
.measure-risk-decision-card p { margin: 6px 0; color: var(--wb-text-muted, #64748b); }
.measure-risk-decision-card label { display: grid; gap: 6px; margin-top: 14px; font-weight: 500; }
.measure-risk-decision-card textarea { min-height: 96px; padding: 10px 12px; border: 1px solid var(--wb-border, #e5e7eb); border-radius: 8px; font: inherit; }

/* Master-Detail-Rueckweg: nur unterhalb des Master-Detail-Breakpoints
   sichtbar. */
.case-workspace-workpanel-back {
    display: none;
}

/* Master-Detail < 1100px (Blueprint F5): Arbeitsliste zunaechst als
   Auswahlansicht; eine Auswahl (is-detail-open) zeigt das Fokuspanel als
   Detailansicht mit Rueckweg. Kein Drawer, kein Modal - dieselbe Section,
   dieselben Zonen, reine Sichtbarkeitssteuerung. */
@media (max-width: 1099px) {
    .case-workspace-prozessstatus-workbench {
        grid-template-columns: minmax(0, 1fr);
    }

    .case-workspace-prozessstatus-workbench:not(.is-detail-open) .case-workspace-workpanel {
        display: none;
    }

    .case-workspace-prozessstatus-workbench.is-detail-open .case-workspace-worklist {
        display: none;
    }

    .case-workspace-prozessstatus-workbench.is-detail-open .case-workspace-workpanel-back {
        display: inline-flex;
        margin-bottom: 12px;
    }

    /* GEN7-UX-MASSNAHMEN-REDESIGN-I1: einspaltig gilt wieder die
       DOM-Reihenfolge (A -> B -> C vor D); die feste Spaltenzuweisung wird
       zurueckgenommen, damit keine zweite Rasterspalte entsteht. */
    .case-workspace-measures-workbench > .case-workspace-worklist,
    .case-workspace-measures-workbench > .case-workspace-workpanel {
        grid-column: auto;
        grid-row: auto;
    }
}

/* Unter 850px: einspaltige Grammatik - Statuskopf-Zonen untereinander,
   Kennzahlen umbrechen; Rail folgt der bestehenden 900px-Shell-Regel. */
@media (max-width: 850px) {
    .case-workspace-prozessstatus-kopf-zeile {
        flex-direction: column;
        gap: 2px;
    }

    /* GEN7-UX-SHARED-CASE-HEADER-OWNER-I1: entfallen -- die Fallnavigation
       folgt in jedem Modus derselben einen Kopf-Grammatik. */
}

/* ==================================================================
   GEN4-WORKSPACE-STABLE-FRAME-F1
   Korrigiert PROZESSSTATUS-REFERENCE-CLONE-F1: die Referenzmasse aus
   docs/design/reference/Prozessstatus.png lagen faelschlich auf der aeusseren
   Shell (nur im Prozessstatus aktiv, via .is-workmode-prozessstatus) und
   liessen die Gesamtkomposition beim Reiterwechsel springen. Jetzt gilt EIN
   gemeinsamer Desktop-Frame fuer Fallübersicht und alle fuenf
   Workmode-Sections; die Referenzwerte wirken nur noch auf die inneren
   Prozessstatus-Container.

   Frame (>=1100px): Hauptspur minmax(0,1010px) + Gap 28px + Rail
   minmax(0,209px), linksgepackt (justify-content:start). Die Hauptspur muss
   1010px tragen koennen, damit die Prozessstatus-Referenzflaeche bei 1536px
   hineinpasst - mit der frueheren Rail-Baseline (clamp(280px,20vw,340px) +
   48px Gap) ist das bei 1536px rechnerisch unmoeglich
   (Sidebar 256 + 1010 + 48 + 280 > 1536). Die Rail-Breite 209px ist der
   vermessene Referenzwert (autorisierter Korridor 209-220px) und gilt jetzt
   in allen Zustaenden gleich - kein Rail-Sprung mehr. Hero und Stepper
   spannen in allen Zustaenden dieselbe Hauptspur (stabile Aussenkanten).
   Unterhalb der Referenzbreite schrumpfen die minmax-Spuren grazioes statt
   horizontal zu ueberlaufen; <1100px-Master-Detail und <900px-Stapel bleiben
   unveraendert. */
@media (min-width: 1100px) {
    /* VIS-001 (A-PC-FUNDING-VISUAL-REDESIGN-F3, Owner-Gate): revidiert den
       STABLE-FRAME-F1-Kompromiss (Rail fix 209px zugunsten der
       1010px-Prozessstatus-Referenzflaeche). Die Rail erhaelt wieder eine
       produktionsfaehige Breite; die Prozessstatus-Innenspalten werden dafuer
       fluid (siehe unten) statt auf Referenzpixel fixiert. */
    .case-workspace-shell {
        /* GEN7-UX-CASE-CHROME-UNIFICATION-I1V1: keep the later desktop
           override aligned with the Case-Home anchor; this was the rule that
           reintroduced the 982px/921px split for decision/documentation. */
        grid-template-columns: minmax(0, 1fr) clamp(240px, 16vw, 280px);
        column-gap: 32px;
        justify-content: start;
    }

    /* Body fuellt die gemeinsame Hauptspur in allen Zustaenden - Hero,
       Stepper und aktive Section teilen dieselben Aussenkanten. */
    .case-workspace-body {
        max-width: none;
        margin: 0;
    }

    /* Innere Fachbreite: alle Sections ausser Prozessstatus behalten ihre
       900px-Baseline innerhalb der stabilen Hauptspur, linksbuendig an der
       gemeinsamen Hero-/Stepper-Kante. */
    /* A-PC-MEASURES-FOCUS-MODEL-F1: die Maßnahmen-Workbench uebernimmt das
       Prozessstatus-Arbeitsmodell und damit dieselbe volle Hauptspur
       (Liste + Fokuspanel brauchen die identische Breite wie die Referenz). */
    /* GEN7-UX-DSB-DECISION-REFERENCE-PIXEL-CONVERGENCE-I1: die
       DSB-Entscheidung nutzt dieselbe volle Hauptspur wie Fallübersicht,
       Prozessstatus und Maßnahmen. Ihr Entscheidungsfluss, das
       Drei-Kachel-Scanraster und die vierteilige Chipreihe brauchen die
       identische Breite wie die Referenz; 900px liessen 82px der Spur
       ungenutzt. Gleiche Ausnahmeform wie A-PC-MEASURES-FOCUS-MODEL-F1,
       keine neue Regel. */
    .case-workspace-body > .case-workspace-section:not(.case-workspace-prozessstatus):not([data-host-section="maßnahmen"]):not([data-host-section="entscheidung"]):not([data-host-section="dokumentation"]) {
        max-width: 900px;
        width: 100%;
    }

    /* Innerer Prozessstatus-Referenz-Clone: Arbeitsliste ~406 + Gap ~32 +
       Fokuspanel ~571 (zusammen ~1009-1010, Prozessstatus.png). Ersetzt ab
       Desktopbreite die fluide clamp/1fr-Geometrie aus GEN4-PROZESS-WB-F2/F5,
       damit die Spalten auf grossen Monitoren nicht auseinanderlaufen. */
    /* VIS-001: Arbeitsliste behaelt ihre Referenzbreite, das Fokuspanel
       nutzt die verbleibende Hauptspur fluid — die frueheren 571px-Fixpixel
       setzten eine 1010px-Hauptspur voraus, die der Rail die Breite nahm. */
    .case-workspace-prozessstatus-workbench {
        grid-template-columns: minmax(0, 406px) minmax(0, 1fr);
        column-gap: 32px;
        justify-content: start;
    }

    /* I3: Maßnahmen bleibt eine eigene, detaildominante Instanz des
       gemeinsamen Workbench-Grid-Owners. Diese Regel steht bewusst nach der
       Prozessstatus-Desktop-Referenz, die sonst ihre 406px-Masterbreite in
       die Maßnahmenoberfläche vererben würde. */
    .case-workspace-prozessstatus-workbench.case-workspace-measures-workbench {
        grid-template-columns: minmax(220px, 0.52fr) minmax(0, 1fr);
        column-gap: clamp(12px, 1.25vw, 24px);
    }

    /* Die Referenz zeigt den Hero oberhalb des sichtbaren Ausschnitts und
       beide Arbeitszonen bis an den unteren Viewportrand. Die Mindesthoehe
       stellt diesen realen Scrollzustand auch bei datenbedingt kurzen
       Fokusinhalten her, ohne Inhalt oder Fachlogik zu erfinden.
       A-PC-FUNDING-F1 (FUND-006): align-items stretch -> start. stretch
       koppelte die Fokuspanel-Hoehe an die volle Worklist-Spalte (bei 35
       Eintraegen >2500px leere Karte). Die Referenzabsicht "mindestens bis
       an den Viewportrand" liefert jetzt der gleiche 647px-Mindestwert
       direkt am Workpanel — viewport-basiert, nicht worklist-gekoppelt. */
    /* GEN5-PROZESSSTATUS-WORKBENCH-MINHEIGHT-CLEANUP-F1: der fruehere
       Container-Mindestwert 647px war ein redundanter Alt-Owner — die
       Referenzabsicht "mindestens bis an den Viewportrand" traegt seit
       FUND-006 das Workpanel selbst (Regel darunter), und der Legal-Fokus
       hebt sie dort gezielt per :has() auf. Der Container folgt jetzt
       intrinsisch der hoechsten realen Spalte (Worklist oder Workpanel). */
    .case-workspace-shell.is-workmode-prozessstatus .case-workspace-prozessstatus-workbench {
        align-items: start;
    }

    .case-workspace-shell.is-workmode-prozessstatus .case-workspace-workpanel {
        min-height: 647px;
    }

    /* GEN5-PROZESSSTATUS-FOKUSPANEL-KOMPRIMIERUNG-F1: das Rechtsbezug-
       Fokuspanel ist eine kurze Entscheidungskarte — der viewport-basierte
       647px-Mindestwert (FUND-006, gedacht fuer die langen Belegfrage-/
       VVT-Inhalte) erzeugte hier ~377px Leerraum unter Uebernehmen/
       Ignorieren (Live-Messung 1536x1024). Die Karte endet jetzt direkt
       nach den Aktionen; Belegfrage- und VVT-Fokuspanels behalten den
       Mindestwert unveraendert. */
    .case-workspace-shell.is-workmode-prozessstatus
        .case-workspace-workpanel:has(> .case-workspace-legal-focus) {
        min-height: 0;
    }

    /* VIS-001: kein Rail-Sonderfall mehr fuer Prozessstatus — eine
       Spurdefinition fuer alle Zustaende (kein Rail-Sprung). */
}

/* Rail-Haerten gegen horizontales Overflow: gilt in allen Zustaenden, weil
   die Rail ueberall dieselbe Spurbreite hat (keine abgeschnittenen Inhalte,
   Umbruch statt Clipping). Nur Gen4 (.case-workspace-rail); der klassische
   Gen3-Right-Rail bleibt unberuehrt. */
.case-workspace-rail {
    min-width: 0;
    overflow-x: hidden;
}

.case-workspace-rail :is(
    .context-panel,
    .context-panel-section,
    .context-panel-section-body,
    .context-measure-item,
    .legal-context-item
) {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    /* VIS-001: break-word statt anywhere — lange unbrechbare Werte
       (Fall-ID) brechen weiterhin, normale Woerter zerfallen aber nicht
       mehr buchstabenweise. */
    overflow-wrap: break-word;
}

/* VIS-001: Aktionszeilen in der Rail duerfen umbrechen statt aus der Karte
   zu ragen (Uebernehmen/Ignorieren wurden am Rail-Rand abgeschnitten). */
.case-workspace-rail .legal-context-actions {
    flex-wrap: wrap;
}

/* VIS-006: Kontext-Metadaten ohne Card-in-Card — die Rail-Sektion ist
   bereits die Karte, die Innenbox verliert Rahmen/Flaeche. */
.case-workspace-rail .context-panel-meta-card {
    border: 0;
    background: transparent;
    padding: 0;
}

/* VIS-DEN-002 (A-PC-WORKSPACE-CONTENT-DENSITY-REDESIGN-F4): Innerhalb einer
   Prio-Gruppe (HOCH/MITTEL/...) traegt der Gruppenkopf die Prioritaet — das
   Badge je Karte ist dort doppelt. In der Erledigt-Sammelgruppe (gemischte
   Prioritaeten) bleibt es sichtbar. Nur Workspace; Gen3-Reiter unveraendert. */
.case-workspace-shell .measure-group:not(.measure-group-done) .aw-prio {
    display: none;
}

/* VIS-DEN-002: kompaktere Scan-Zeilen (vorher 109px je kollabierter Karte,
   ~7 Eintraege pro Bildschirm). Nur vertikales Padding; Struktur, Radius
   und Grammatik unveraendert. */
.case-workspace-shell #block-measures .aw-row.wb-card {
    padding-top: 12px;
    padding-bottom: 12px;
}

/* GEN4-RIGHT-RAIL-TYPOGRAPHY-POLISH-F1: overflow-wrap ist eine vererbte
   Eigenschaft - die anywhere-Haertung oben (noetig fuer lange unbrechbare
   Werte wie die Fall-ID) erreichte dadurch auch Karten-Header und Labels
   und zerlegte dort Woerter mitten im Wort ("Rechtsgrundlage/n").
   Titel-/Label-Zeilen brechen wieder nur an Wortgrenzen; Fliesstext und
   Wertfelder behalten anywhere. Reine Typografie, keine Geometrie. */
.case-workspace-rail :is(
    .context-panel-header,
    .legal-context-group-label,
    .context-panel-meta-label,
    .context-measure-status-label,
    .legal-context-item-ref
) {
    overflow-wrap: normal;
    word-break: normal;
}

/* Prozessstatus.png: In der Rail stehen Rechtsbezug und Aktionen
   untereinander. VIS-006: gilt jetzt in allen Workspace-Zustaenden gleich
   (vorher nur Prozessstatus) — kein Layoutsprung der Pruefbedarf-Karte. */
.case-workspace-rail .legal-context-hint {
    flex-direction: column;
    align-items: stretch;
}

/* GEN5-RIGHT-RAIL-PROZESSSTATUS-WIDTH-PARITY-F1: Der fruehere
   Prozessstatus-Sonderblock (.is-workmode-prozessstatus .case-workspace-rail
   mit top:128px/max-height sowie Kompakt-Overrides fuer Toggle/Body/
   Meta-Card/Hintgroup/Pills/Fonts/Grouped-List) stammte aus der
   Vor-F1-Drei-Block-Rail und ist ersatzlos entfernt. Es gilt in allen
   fuenf Workmodes derselbe eine Rail-Geometrie-Owner (Zeile ~2208:
   sticky top 12px, max-height calc(100vh - topbar - 40px)) und dieselbe
   Vier-Karten-Grammatik aus GEN5-RIGHT-RAIL-REDESIGN-F1. */

/* ==================================================================
   GEN5-WORKSPACE-UNIFIED-CARD-GRAMMAR-F1
   Eine sichtbare Card-, Label- und Footer-Grammatik fuer alle fuenf
   Workspace-Sections — ausschliesslich bestehende Entscheidungen
   angewendet: WORKSPACE-CARD-GRAMMAR-GLOBAL-F17 (Workspace-Karten
   12px / #e5e7eb), GEN4_DESIGN_SYSTEM.md §4 (Karten ohne Elevation),
   GEN5-CANONICAL-FOCUSPANEL-GRAMMAR-F1 (Mikrolabel-Skala,
   Fachinformations-Wert 13px, Footer-Rhythmus space-2/space-3).
   Scope strikt .case-workspace-shell / .case-workspace-host-summary —
   klassische Gen3-Reiter bleiben unveraendert. Dokumentierte Ausnahmen
   bleiben bestehen: Abschluss-Kartenfamilie (radius-sm, offene
   C11-Produktentscheidung), Massnahmen-Kartenkopf (C2/C8).
   ================================================================== */

/* Statuskopf, Arbeitsliste und Fokuspanel konsumieren die wb-card-Tokens
   direkt (14px / var(--line) / var(--sh-1), Setter 13586/13840/14450) und
   umgingen damit die F17-Workspace-Karten-Grammatik aller uebrigen Karten.
   Kopf-Selektor in (0,3,0) wie sein Setter 14450. */
.case-workspace-shell .case-workspace-worklist,
.case-workspace-shell .case-workspace-workpanel {
    border-radius: 12px;
    border-color: #e5e7eb;
    box-shadow: none;
}

/* GEN5-FALLUEBERSICHT-OVERVIEW-CONTENT-MOUNTING-F1: flacher Content-Halter des
   Overview-Zustands (Hero -> Stepper -> Overview Content). Bewusst ohne eigene
   Kartenkontur/Hintergrund/Padding - die beiden Karten "Aktueller Stand" und
   "Analyse der Workbench" bringen ihre Kontur selbst mit (keine Card-in-Card,
   analog WORKSPACE-PROCESS-STATUS-VISUAL-F10). Abstand identisch zum
   Section-Rhythmus (.case-workspace-section gap: 12px). */
.case-workspace-shell.is-overview .case-workspace-overview-content {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ==========================================================================
   GEN7-UX-CASE-HOME-REDESIGN-I4 — Host Delta "Layout der Fallübersicht"
   ==========================================================================

   Scope:      ausschliesslich .case-workspace-shell.is-overview
   Typ:        Host Delta nach GEN4_DESIGN_SYSTEM.md § 13 (lokal gescopt,
               dokumentiert, rueckbaubar, keine zweite Komponentenfamilie)
   Mechanik:   Weissraum, Schriftgewicht und Spaltenraster. Keine Elevation,
               keine neue Kartenfarbe, keine neue Komponentenklasse.
   Herkunft:   loest den I3-Host-Delta ab. I3 gewichtete sieben gleichrangige
               Karten ueber nth-child; seit I4 gibt es vier gewichtete
               Bereiche, womit die alten Positionsselektoren gegenstandslos
               sind. Die I3-Mechanik (Gewichtung nur ueber Weissraum) bleibt
               unveraendert gueltig und wird hier fortgefuehrt.

   Kartenfolge: 1 Primaerkarte · 2 Entscheidungsbasis · 3 Fallstatus ·
                4 Verantwortung
   ========================================================================== */

/* ==========================================================================
   GEN7-UX-CASE-HOME-REFERENCE-ALIGNMENT-I5 — Host Delta "Referenzlayout"
   ==========================================================================

   Scope:      ausschliesslich .case-workspace-shell.is-overview
   Typ:        Host Delta nach GEN4_DESIGN_SYSTEM.md § 13 (lokal gescopt,
               dokumentiert, rueckbaubar, keine zweite Komponentenfamilie)
   Referenz:   docs/design/reference/Fallübersicht_2.png
   Mechanik:   Raster, Weissraum, Schriftgewicht. Alle Farbwerte stammen aus
               bestehenden Tokens (--blue-*, --wb-status-*, --line, --ink-*);
               es entsteht kein neues Token und keine neue Farbrolle.

   Herkunft:   loest den I4-Host-Delta ab. I4 gewichtete vier gestapelte
               Sammelkarten ueber nth-child; die Referenz fuehrt eine blaue
               Primaerbox, ein dreispaltiges Entscheidungsbasis-Raster und
               eine vierspaltige Dashboardzeile, womit die Positions-
               selektoren gegenstandslos sind. Die I3/I4-Mechanik
               (Gewichtung ueber Raum, nicht ueber Dekoration) bleibt gueltig.
   ========================================================================== */

/* Zone A — Orientierungszeile unter der H1. Reine Chrome-Copy, deshalb
   bewusst zurueckgenommen (kein Fettdruck, gedaempfte Textfarbe). */

/* GEN7-UX-CASE-HOME-CONTEXT-RAIL-I1 (PO-CHR-01 / PO-CHR-08):
   Case Home ist wieder zweispaltig. Die frühere Sonderregel
   `grid-template-columns: minmax(0, 1fr)` (GEN7-UX-CASE-HOME-HUB-
   IMPLEMENTATION-I1, PO-CHH-08) entfaellt ersatzlos -- damit gilt hier
   dieselbe eine Spaltendefinition wie im gesamten Workspace
   (`minmax(0, 1fr) clamp(280px, 20vw, 340px)`, siehe .case-workspace-shell).
   Es entsteht KEINE eigene Case-Home-Breitenregel und kein neuer Zahlenwert:
   die Hauptflaeche bleibt die 1fr-Spalte und damit sichtbar dominant, die
   Case-Context-Rail ist die geclampte Sekundaerspalte.

   Die 900px-Baseline des Bodys bleibt dagegen aufgehoben (PO-CHR-08). Sie war
   fuer den zweispaltigen *Lesefluss* der Arbeitsflaechen gedacht; sie
   zurueckzuholen erzeugte genau die schmale Case-Home-Situation, die diese
   Decision ausschliesst. Das begruendet nach PO-CH-10 Nr. 3 unveraendert
   KEINEN Anspruch auf zusaetzlichen Inhalt.
   Die Arbeitszustaende (.is-workmode) bleiben vollstaendig unveraendert. */
/* GEN7-UX-CASE-HOME-REFERENCE-PROPORTIONS-I1 (STEP 8): Case Home erhaelt eine
   schmalere Rail als die Arbeitsflaechen. Grund ist gemessen, nicht
   geschmacklich: die Referenz fuehrt vier Dashboardkarten von rund 320px; mit
   der Arbeitsflaechen-Rail (307,2px) bleiben je Karte nur 218,2px, wodurch
   Werte wie "Dr. Jonas Kleve, Ärztlicher Direktor …" mehrfach umbrechen und
   die Zeile vertikal aufblaehen. PO-CHR-08 verlangt eine dominante
   Hauptflaeche und eine sekundaere Rail -- beides bleibt erfuellt, die Rail
   wird nur kompakter. Kein neuer Breakpoint, keine neue Rail-Karte, keine
   Aenderung an den Arbeitsflaechen (deren Rail-Spalte ist unberuehrt).

   Die Regel ist an den BESTEHENDEN 900px-Breakpoint geklammert (kein neuer
   Breakpoint). Ohne diese Klammer schlug sie wegen hoeherer Spezifitaet
   (.case-workspace-shell.is-overview) die einspaltige Mobilregel und presste
   den Body live auf 70px -- live gemessen und deshalb hier festgehalten. */
@media (min-width: 901px) {
    .case-workspace-shell.is-overview {
        grid-template-columns: minmax(0, 1fr) clamp(240px, 16vw, 280px);
    }
}

.case-workspace-shell.is-overview .case-workspace-body {
    max-width: none;
}

.case-workspace-shell.has-shared-case-header .case-workspace-hero-subline {
    margin: 8px 0 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
    color: var(--text-soft);
}

/* GEN7-FIX-STEPPER-EXACT-PO-REFERENCE-I1 — verbindliche PO-Projektion:
   ein gemeinsamer Container, fuenf runde Icon-Knoten und Verbindungslinien.
   Eintraege, Reihenfolge, Status-Resolver, Navigation und Dirty Guard bleiben
   unveraendert beim bestehenden Stepper-Owner. */
.case-workspace-shell.has-shared-case-header .case-workspace-progress {
    padding: 23px 22px 18px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: none;
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-caption {
    display: none;
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-steps {
    gap: 0;
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-item {
    position: relative;
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-item:not(:last-child)::after {
    content: "";
    position: absolute;
    z-index: 0;
    top: 24px;
    left: calc(50% + 28px);
    width: calc(100% - 56px);
    height: 3px;
    border-radius: 999px;
    background: var(--border-subtle);
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-item:has(.case-workspace-progress-step.is-complete)::after {
    background: var(--blue);
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-step,
.case-workspace-shell.has-shared-case-header .case-workspace-progress-step.is-active {
    min-height: 50px;
    padding: 0 7px 7px;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 9px;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    text-align: center;
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-step.is-active {
    background: transparent;
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-step.is-active::after {
    content: "";
    width: min(100%, 68px);
    height: 3px;
    margin-top: 2px;
    border-radius: 999px;
    background: var(--blue);
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-marker {
    position: relative;
    z-index: 1;
    width: 50px;
    height: 50px;
    flex-basis: 50px;
    background: var(--surface-soft);
    border: 2px solid var(--border-subtle);
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-step.is-complete .case-workspace-progress-marker {
    background: var(--surface-soft);
    border-color: var(--border-subtle);
    color: var(--muted);
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-step.is-active .case-workspace-progress-marker {
    background: var(--blue-soft);
    border-color: var(--blue);
    color: var(--blue);
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-icon,
.case-workspace-shell.has-shared-case-header .case-workspace-progress-icon svg {
    width: 23px;
    height: 23px;
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-copy {
    align-items: center;
    gap: 6px;
    text-align: center;
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-title {
    font-size: 13.5px;
    line-height: 1.2;
    color: var(--ink);
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-copy .case-workspace-status-pill {
    font-size: 11px;
    line-height: 1.2;
}

.case-workspace-shell.has-shared-case-header .case-workspace-progress-track {
    display: none;
}

@media (max-width: 860px) {
    .case-workspace-shell .case-workspace-progress-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .case-workspace-shell.has-shared-case-header .case-workspace-progress-steps {
        gap: 9px;
    }

    .case-workspace-shell.has-shared-case-header .case-workspace-progress-step,
    .case-workspace-shell.has-shared-case-header .case-workspace-progress-step.is-active {
        min-height: 58px;
        padding: 7px 4px 9px;
        flex-direction: column;
        align-items: center;
        gap: 4px;
        text-align: center;
    }

    .case-workspace-shell.has-shared-case-header .case-workspace-progress-copy {
        align-items: center;
        text-align: center;
    }

    .case-workspace-shell.has-shared-case-header .case-workspace-progress-title {
        font-size: 11px;
    }

    .case-workspace-shell.has-shared-case-header .case-workspace-progress-item::after {
        display: none;
    }

    .case-workspace-shell.has-shared-case-header .case-workspace-progress {
        padding: 14px 9px;
    }

    .case-workspace-shell .case-workspace-progress-secondary {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }

    .case-workspace-shell .case-workspace-progress-substep {
        width: 100%;
        min-height: 44px;
        text-align: left;
    }
}

/* ==================================================================
   GEN7-UX-STEPPER-COLLAPSING-STICKY-I1
   KOMPAKTER STICKY-ZUSTAND DESSELBEN STEPPERS

   PO-autorisierte Ausnahme vom Stepper-Freeze. Der NORMALZUSTAND ist
   unveraendert: keine einzige Regel oberhalb wurde angefasst, alles hier
   haengt an der Modifier-Klasse `.is-compact`, die der bestehende
   Stepper-Owner transient setzt.

   Kein zweiter Stepper, keine zweite Projektion, kein neuer Owner, kein
   neuer State, keine Persistenz. Alle fuenf Schritte bleiben sichtbar,
   mit Icon, Label, Status und Verbindungslinie -- der Stepper wird
   KLEINER, nicht informationsaermer. Es gibt bewusst keine Icon-only-,
   Nur-aktiver-Schritt-, Dropdown- oder Ersatznavigations-Variante.

   Alle Werte sind Verkleinerungen der bereits akzeptierten Geometrie
   (50px Marker -> 30px, 23px Icon -> 15px, 13.5px Titel -> 12px); es
   entsteht keine neue Form, keine neue Farbe und kein neues Token.
   ================================================================== */

/* LIVE-FIX-1: die zuvor hier gesetzte Haftlinie `top: var(--topbar-height)`
   ist ERSATZLOS ENTFALLEN und damit auch die letzte Regel dieses Blocks
   ausserhalb des compact-Scopes. Sie beruhte auf der falschen Annahme, die
   Shell scrolle im Viewport und der Stepper hafte deshalb hinter der
   Topbar. Tatsaechlich scrollt `.workbench-main` (overflow-y: auto) -- der
   Scrollport beginnt bereits unterhalb der Topbar, und die bestehende
   Haftlinie `top: 0` war von jeher richtig. Sie bleibt unveraendert.

   Technischer Scroll-Anker des kompakten Zustands: 1px hoch, unsichtbar,
   ohne Inhalt. Hoehe UND der Flex-Gap der Body-Spalte werden per negativer
   Aussenkante vollstaendig zurueckgenommen, damit der Anker die Geometrie
   nicht um einen einzigen Pixel veraendert. Die beiden Werte spiegeln
   ausschliesslich den bereits bestehenden `gap` von `.case-workspace-body`
   (16px) bzw. seiner Workmode-Auspraegung (12px) -- kein neuer Wert. */
.case-workspace-shell .case-workspace-progress-anchor {
    height: 1px;
    margin-bottom: -17px;
    padding: 0;
    border: 0;
    background: transparent;
    pointer-events: none;
}

.case-workspace-shell.is-workmode .case-workspace-progress-anchor {
    margin-bottom: -13px;
}

@media (min-width: 861px) {
    /* Container flacher; Rahmen, Radius und Flaeche der akzeptierten
       Karte bleiben, damit der gehaftete Stepper dieselbe Sprache
       spricht wie im Normalzustand. */
    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact {
        padding: 8px 22px 6px;
    }

    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact
    .case-workspace-progress-step,
    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact
    .case-workspace-progress-step.is-active {
        min-height: 0;
        padding: 0 7px 4px;
        gap: 6px;
    }

    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact
    .case-workspace-progress-marker {
        width: 30px;
        height: 30px;
        flex-basis: 30px;
    }

    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact
    .case-workspace-progress-icon,
    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact
    .case-workspace-progress-icon svg {
        width: 15px;
        height: 15px;
    }

    /* Verbindungslinie folgt der kleineren Markermitte (30/2 - 1) und
       dem kleineren Markerradius. Dieselbe Linie, dieselbe Fuellregel. */
    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact
    .case-workspace-progress-item:not(:last-child)::after {
        top: 14px;
        left: calc(50% + 18px);
        width: calc(100% - 36px);
        height: 2px;
    }

    /* Titel und Statuschip stehen nebeneinander statt untereinander --
       "Prüfung · Offen" statt zwei Zeilen. Reine Laufrichtung: derselbe
       Chip, derselbe Text, derselbe Statusowner, nichts neu berechnet. */
    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact
    .case-workspace-progress-copy {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 6px;
    }

    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact
    .case-workspace-progress-title {
        font-size: 12px;
    }

    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact
    .case-workspace-progress-copy .case-workspace-status-pill {
        font-size: 10px;
        padding: 1px 6px;
    }

    /* Aktivmarkierung bleibt erhalten (blau gefuellter Marker + blauer
       Unterstrich), nur schmaler. */
    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact
    .case-workspace-progress-step.is-active::after {
        width: min(100%, 52px);
        height: 2px;
        margin-top: 1px;
    }

    /* Die sekundaere Pruefungs-Subnavigation wird im gehafteten Zustand
       ebenfalls kompakter -- sie bleibt vollstaendig sichtbar und
       bedienbar. */
    .case-workspace-shell.has-shared-case-header .case-workspace-progress.is-compact
    .case-workspace-progress-secondary {
        margin-top: 6px;
    }
}


/* Gemeinsamer Fallkontext: neutrale Leseflaeche. Die bestehende Next-Step-
   Projektion und die lokale Fachaktion tragen die visuelle Fuehrung. */
.case-workspace-shell.has-shared-case-header .case-workspace-case-home-project-context {
    padding: var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--wb-card-radius);
    background: var(--surface);
}

.case-workspace-shell.has-shared-case-header .case-workspace-case-home-project-context-body {
    min-width: 0;
}

/* GEN7-UX-CASE-HOME-DESCRIPTION-COMPOSITION-I1 (STEP 5): Die zweispaltige
   Regel aus GEN7-UX-CASE-HOME-REFERENCE-PROPORTIONS-I1 stellte die
   Beschreibung neben den Guidance-Einstieg "Naechster Schritt". Dieser
   Einstieg ist nach PO-CHH-11/PO-CHH-12 aus Zone B entfernt; die zweite
   Spalte haette damit keinen zweiten Inhalt mehr und bliebe als leere
   Flaeche zurueck (bis zu 280px reservierte Breite ohne Inhalt).
   Die Regel entfaellt deshalb ersatzlos -- die Fallbeschreibung nutzt jetzt
   die volle Breite der blauen Zone. Es entsteht KEIN neuer Breakpoint und
   keine neue Layoutregel; es bleibt die bereits bestehende
   flex-column-Basisregel darueber.
   Ebenfalls entfallen: die Slot-Regel `.case-workspace-case-home-primary-next`,
   deren Element dieser Block nicht mehr erzeugt. */

/* Der Beschreibungstext ist Fliesstext, kein Titel: normales Gewicht. */
/* Zone D — Entscheidungsbasis: Subline plus dreispaltiges Kartenraster. */
/* GEN7-FIX-PRUEFUNG-DECISION-BASIS-EXACT-CASE-HOME-PARITY-I1 -- ROOT CAUSE.
   Die Entscheidungsbasis hat seit GEN7-UX-PRUEFUNG-DECISION-BASIS-WORKLIST-
   PARITY-I1 genau EINEN Renderer (buildCaseHomeDecisionBasis) und genau EINEN
   Kartenowner (buildCaseHomeReferenceCard); beide Flaechen erzeugen also
   dasselbe DOM. Sichtbar unterschiedlich war sie trotzdem, weil ihre gesamte
   visuelle Grammatik (Raster, Kartenpolsterung, Icons, Zeilen, Fuss/Link) an
   `.case-workspace-shell.is-overview` hing. `is-overview` wird ausschliesslich
   gesetzt, wenn KEIN Workflow-Schritt offen ist (activeProgressStepId === null),
   also nur auf der Fallübersicht. Auf `Prüfung` blieb dasselbe DOM ungestylt:
   kein dreispaltiges Raster, keine Kartengrammatik.
   Die Surface-Bindung entfaellt deshalb fuer genau die Komponentenklassen
   `.case-workspace-basis*` und `.case-workspace-ref-card*`; Scope bleibt die
   Shell. Das ist exakt das bereits bestehende Muster der Radius-Regel
   `.case-workspace-shell .case-workspace-ref-card` (Abschnitt Verschachtelung).
   `is-overview` bleibt unveraendert an den echten Case-Home-Zonen (Hero,
   Dashboardzeile, Orientierungszeile, Prozessstatus-Metriken).
   KEINE Kopie, KEIN zweiter Owner, KEINE Pruefung-spezifische Regel. */
.case-workspace-shell .case-workspace-basis-subline {
    margin: 0 0 16px;
    font-size: 13px;
    font-weight: 400;
    color: var(--text-soft);
}

.case-workspace-shell .case-workspace-basis-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}

/* GEN7-UX-CASE-HOME-RIGHT-RAIL-AND-ZONE-E-I10R1: Risiko ist der
   fallweite Rail-Kontext. Zone E hat deshalb drei gleichwertige Karten. */
.case-workspace-shell.is-overview .case-workspace-case-home-dashboard {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 12px;
}

.case-workspace-shell.is-overview .case-workspace-case-home-status-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 20px;
}

/* GEN7-UX-CASE-HOME-STATUS-NEXT-STEP-COMPACT-ROW-I6: eigenstaendige Cards,
   gemeinsamer Composition-Owner, relative 60/40-Tracks.
   GEN7-UX-CASE-HOME-ORIENTATION-ROW-EQUAL-HEIGHT-I6R1 (PO-CNS-04): Grid-
   Default-Stretch statt align-items:start, damit beide Karten in derselben
   Row exakt dieselbe sichtbare Hoehe erhalten (Unterkanten buendig). Keine
   feste Pixelhoehe, kein Dummy-Content -- die Hoehe ergibt sich weiterhin
   aus dem hoeheren natuerlichen Inhalt. */
.case-workspace-shell.is-overview .case-workspace-case-home-orientation-row {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 16px;
    align-items: stretch;
}

.case-workspace-shell.is-overview .case-workspace-case-home-orientation-row > .case-workspace-case-home-card {
    height: 100%;
}

.case-workspace-shell.is-overview .case-workspace-case-home-status-metric {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    padding-left: 10px;
    border-left: 2px solid var(--border-subtle);
}

/* GEN7-UX-CASE-HOME-PROCESS-STATUS-I3 — Labels und Metadaten sind bewusst
   Regular. Nur der konkrete Statuswert bleibt als zentrale Information bei
   600; es entsteht keine neue Status- oder Fortschrittslogik. */
.case-workspace-shell.is-overview .case-workspace-case-home-status-metric:first-child {
    border-left-color: var(--blue-border);
}

/* GEN7-UX-CASE-HOME-CARD-TYPOGRAPHY-GRAMMAR-I6R4: Der Prozessstatus ist die
   zweite Strukturform der Flaeche -- eine beschriftete Metrik (Label + Wert).
   Beschriftete Einheit ist hier die Metrik selbst, nicht die Karte; deshalb
   traegt JEDER Metrikwert die Rolle PRIMARY FACT, exakt wie jeder Eintrag der
   Dashboard-Listen seinen eigenen Titel traegt. Label und Zusatz sind META.
   Angeglichen werden ausschliesslich die Rollenwerte (vorher 14px/600/
   --text-strong bzw. --text-soft); Metriken, Werte, Owner und Reihenfolge
   bleiben unveraendert. */
.case-workspace-shell.is-overview .case-workspace-case-home-status-strip .case-workspace-status-label,
.case-workspace-shell.is-overview .case-workspace-case-home-status-hint {
    color: var(--muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.35;
}

.case-workspace-shell.is-overview .case-workspace-case-home-status-value {
    color: var(--ink);
    font-size: 13px;
    font-weight: 600;
    /* Zweiter vom Live-Drift-Guard nachgewiesener Fall: der Metrikwert erbte
       1.45 (18,85px), waehrend dieselbe Rolle in den Referenzkarten mit 1.35
       (17,55px) lief. Gleiche Rolle = gleicher vertikaler Rhythmus. */
    line-height: 1.35;
}

/* Gemeinsame Referenzkarte der Zonen D und E. Sie nutzt den gemeinsamen
   Chrome-Kartenrahmen und setzt nur Dichte und Innenraster. */
.case-workspace-shell .case-workspace-ref-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 14px 16px;
}

.case-workspace-shell .case-workspace-ref-card-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    font-weight: 600;
}

/* GEN7-UX-CASE-HOME-VISUAL-HIERARCHY-I6R2 — kontrollierter Reflow des
   Kartenkopfs.

   Ursache der sichtbaren Kollision in Zone E: Der gemeinsame Kartenkopf
   (.wb-card-header, buildWorkspaceCardHeader) ist eine einzeilige Flexzeile
   ohne Umbruch. Die Statuspille ist `flex: 0 0 auto` + `white-space: nowrap`,
   kann also nicht schrumpfen, und das Textlabel im Titel besass kein
   `min-width: 0`. In der vierspaltigen Dashboardzeile ist die Karte am
   schmalsten; "Risiko" + "Hochrisiko-System" + Chevron ueberschritten dort die
   verfuegbare Breite, wodurch Titel und Pille uebereinander liefen.

   Loesung ohne Verkleinerung und ohne Abschneiden: reicht der Platz, bleibt die
   bestehende einzeilige Darstellung unveraendert; reicht er nicht, faellt die
   Pille kontrolliert in die naechste Zeile. Die Regel ist bewusst auf die
   Referenzkarte der Fallübersicht gescoped -- der gemeinsame Kartenkopf des
   Workspace bleibt unveraendert (Chrome Contract). */
.case-workspace-shell .case-workspace-ref-card > .wb-card-header,
.case-workspace-shell .case-workspace-ref-card
.wb-card-header-zone > .wb-card-header {
    flex-wrap: wrap;
    align-items: flex-start;
    row-gap: 6px;
}

/* Der Titel darf unter seine Inhaltsbreite schrumpfen und umbrechen, damit der
   Umbruch nicht erst durch Ueberlauf entsteht. Nichts wird abgeschnitten. */
.case-workspace-shell .case-workspace-ref-card-title > span:not(.case-workspace-ref-card-icon) {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Letzte Reserve fuer sehr schmale Karten: die Pille darf ihren Text umbrechen,
   statt die Karte horizontal zu ueberschreiten. Statusinformation bleibt
   vollstaendig lesbar. */
.case-workspace-shell .case-workspace-ref-card .wb-card-pill {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
}

.case-workspace-shell .case-workspace-ref-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: var(--radius-sm);
    background: var(--surface-soft);
    font-size: 12px;
    line-height: 1;
    color: var(--text-soft);
}

/* GEN7-UX-CASE-HOME-VISUAL-HIERARCHY-I6: Symbolvariante der Icon-Kachel. Sie
   traegt ein Icon der bestehenden Grammatik (createSidebarNavIcon) statt eines
   Textzeichens und faerbt es ueber die bereits bestehenden semantischen
   Farbrollen -- dieselben Rollen, die die Arbeitsliste des Prozessstatus je
   Arbeitseinheitentyp nutzt (.case-workspace-worklist-group-icon). Keine neue
   Farbbedeutung, kein neues Token, keine verstreute Hex-Farbe. */
.case-workspace-shell .case-workspace-ref-card-icon.is-symbol {
    width: 32px;
    height: 32px;
    background: var(--surface-soft);
    color: var(--muted);
}

.case-workspace-shell .case-workspace-ref-card-icon.is-symbol svg {
    width: 18px;
    height: 18px;
}

/* Blau = Information/Arbeit (bestehende Rolle, u. a.
   .case-workspace-worklist-group-icon.is-belegfrage). */
.case-workspace-shell .case-workspace-ref-card-icon.is-tone-work {
    background: var(--blue-bg);
    color: var(--blue-text);
}

/* Gruen = positiv/erledigt (bestehende Rolle, u. a.
   .case-workspace-worklist-check). */
.case-workspace-shell .case-workspace-ref-card-icon.is-tone-done {
    background: var(--green-bg);
    color: var(--green-text);
}

.case-workspace-shell .case-workspace-ref-card-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 6px;
    min-width: 0;
}

.case-workspace-shell .case-workspace-ref-card-row {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

/* GEN7-UX-CASE-HOME-VISUAL-HIERARCHY-I6: Statuszeile mit Marker. Marker in
   Spalte 1, Primaer- und Sekundaertext gestapelt in Spalte 2 -- damit die
   Sekundaerzeile am Text und nicht am Marker ausgerichtet bleibt und der
   Marker bei Umbruch nie in den Text laeuft. */
.case-workspace-shell .case-workspace-ref-card-row.is-marked {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    column-gap: 8px;
    align-items: start;
}

.case-workspace-shell .case-workspace-ref-card-row.is-marked
> .case-workspace-ref-card-row-primary,
.case-workspace-shell .case-workspace-ref-card-row.is-marked
> .case-workspace-ref-card-row-secondary {
    grid-column: 2;
}

.case-workspace-shell .case-workspace-ref-card-marker {
    grid-column: 1;
    grid-row: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border: 1px solid var(--border-subtle);
    border-radius: 50%;
    background: var(--surface-soft);
    font-size: 11px;
    line-height: 1;
    color: var(--muted-2);
}

/* Marker-Toene: ausschliesslich bestehende semantische Farbrollen. */
.case-workspace-shell .case-workspace-ref-card-marker.is-done {
    border-color: var(--green-border);
    background: var(--green-bg);
    color: var(--green-text);
}

.case-workspace-shell .case-workspace-ref-card-marker.is-open {
    border-color: var(--blue-border);
    background: var(--blue-bg);
    color: var(--blue-text);
}

/* Ebene 3: ruhige Schlusszeile. I6R4 -- die eigene Typografieregel dieser
   Zeile ist ENTFALLEN. Sie setzte 12px/var(--text-soft) und war damit die
   einzige Stelle der Flaeche, an der die Meta-Rolle ein anderes Farbtoken trug
   als dieselbe Rolle im Dashboard (var(--muted)). Die Rolle wird jetzt
   vollstaendig von der gemeinsamen Sekundaer-/Meta-Regel weiter unten
   getragen; `is-meta` bleibt reiner Struktur-/Positionsmarker (nie
   Primaerzeile, siehe buildCaseHomeReferenceCard). */

/* GEN7-UX-CASE-HOME-REFERENCE-PROPORTIONS-I1 (STEP 7): Die Karten "Aktivitäten"
   und "Team & Beteiligte" montieren bestehende Fremdbauteile, die Label und
   Wert NEBENEINANDER fuehren (.case-workspace-status-row:
   justify-content: space-between). Diese Grammatik stammt von breiten
   Flaechen; in einer 218px-Dashboardkachel bleiben dem Wert ~100px, wodurch
   "Verantwortliche Person / Dr. Jonas Kleve, …" live auf 145,5px Hoehe
   umbrach. Die Folge trug die gesamte Zeile: die hoechste Karte bestimmte
   415,1px Reihenhoehe, waehrend "Risikobild" mit 44,3px Inhalt 371px
   Leerraum fuellte -- das Gegenteil der gleichgewichteten Referenzzeile.
   Innerhalb der Dashboardzeile stapeln Label und Wert deshalb wie die
   benachbarte, bereits gestapelte .case-workspace-ref-card-row-Grammatik.
   Kein Wort Inhalt entfaellt, kein Owner und kein Wert aendert sich.

   Die Regel greift bewusst NUR fuer wertetragende Zeilen: der Umbruch wird
   ueber den Wert selbst ausgeloest. Die Zeile "Dokumentierte Fallereignisse"
   traegt statt eines Werts eine Statuspille und bleibt einzeilig -- ein
   pauschales Stapeln hatte sie live von 24,0 auf 59,4px verlaengert. */
.case-workspace-shell.is-overview .case-workspace-case-home-dashboard
.case-workspace-status-row {
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 12px;
}

.case-workspace-shell.is-overview .case-workspace-case-home-dashboard
.case-workspace-status-row > .case-workspace-analysis-value {
    flex: 1 1 100%;
    text-align: left;
}

/* GEN7-UX-CASE-HOME-ZONE-E-DENSITY-F1 (STEP 6, Prioritaet 5): Der Hinweis
   "N weitere Ereignisse im Verlauf dokumentiert." ist kein Leerzustand, trug
   aber die gemeinsame Leerzustands-Boxgrammatik aus GEN4-EMPTY-STATE-POLISH-F1
   (Rahmen, Flaeche, 14px/16px Padding). In der Dashboardkachel kostete das
   live 67,7px fuer zwei Textzeilen -- und weil die Karte "Aktivitäten" mit
   371,9px die hoechste der Zeile ist, bestimmte dieser Aufschlag die Hoehe der
   GESAMTEN Zone E (Gegenprobe mit `align-items: start`: Zeilenhoehe
   unveraendert 371,9px, die Streckung erzeugt also KEINE zusaetzliche Hoehe).
   Der Hinweis nutzt jetzt die bereits bestehende ruhige Hinweistypografie der
   Flaeche (13px, --text-soft, ohne Box) -- dieselbe Sprache wie
   .case-workspace-basis-subline. Kein Wort Text, kein Wert und kein Owner
   aendert sich; echte Leerzustaende (auch die der Aktivitaetenkarte) behalten
   ihre Boxgrammatik unveraendert. Die Regel ist bewusst auf die
   Dashboardzeile gescoped. */
.case-workspace-shell.is-overview .case-workspace-case-home-dashboard
.case-workspace-activity-more-hint {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
}

/* GEN7-UX-CASE-HOME-CARD-TYPOGRAPHY-GRAMMAR-I6R4 — Zone E: "Aktivitäten" und
   "Team & Beteiligte" montieren bestehende FREMDBAUTEILE (.dsb-trail-*,
   .case-workspace-status-label, .case-workspace-analysis-value). Deren
   Herkunftsflaechen tragen eigene, historisch gewachsene Werte, die auf Case
   Home als lokale Sondergrammatik erscheinen:

     .case-workspace-status-label   13px/650/--text  -> Label war FETTER als
                                                       sein eigener Wert
     .case-workspace-analysis-value 13px/400/--text  -> Wert war die leiseste
                                                       Zeile seiner Karte
     .dsb-trail-text                11.5px/600       -> Ereignistitel kleiner
                                                       als jede andere
                                                       Primaeraussage
     .dsb-trail-meta                9.5px            -> kleinster Text der
                                                       gesamten Flaeche

   Die Zuordnung folgt derselben Rollenlogik wie der Prozessstatus: Label =
   META, zugehoeriger Wert = PRIMARY FACT; je Aktivitaetseintrag ist der
   Ereignistitel die Primaeraussage seines Eintrags, Zeit/Actor sind META.
   Die Regeln sind bewusst ENG auf die Dashboardzeile der Fallübersicht
   gescoped -- die Herkunftsflaechen (DSB-Verlauf, Analyseflaechen) bleiben
   unveraendert; es entsteht keine globale Aenderung an gemeinsamen
   Primitives. */
.case-workspace-shell.is-overview .case-workspace-case-home-dashboard
.case-workspace-status-label,
.case-workspace-shell.is-overview .case-workspace-case-home-dashboard
.dsb-trail-meta {
    color: var(--muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.35;
}

.case-workspace-shell.is-overview .case-workspace-case-home-dashboard
.case-workspace-status-row > .case-workspace-analysis-value,
.case-workspace-shell.is-overview .case-workspace-case-home-dashboard
.dsb-trail-text {
    color: var(--ink);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
}

/* ==================================================================
   GEN7-UX-CASE-HOME-CARD-TYPOGRAPHY-GRAMMAR-I6R4
   Rollen-Grammatik der Fallübersicht: ROLLE -> STIL, nicht KARTE -> STIL.

   Die Werte sind KEINE neuen Magic Numbers, sondern die bereits im Produkt
   belegte Grammatik zweier unabhaengiger bestehender Flaechen:

     PRIMARY FACT  13px / 600 / var(--ink)
                   Beleg: .dashboard-recent-case-title,
                          .dashboard-quick-action-title
                          (dieselbe Rolle in der Rail: .legal-context-item-ref)
     SECONDARY     12px / 400 / var(--muted)
                   Beleg: .dashboard-recent-case-scope,
                          .dashboard-quick-action-description
     META          12px / 400 / var(--muted)
                   Beleg: .dashboard-recent-case-hint -- die bestehende
                          Grammatik unterscheidet Sekundaer und Meta NICHT
                          typografisch, sondern ausschliesslich ueber
                          Position. I6R4 erfindet diesen Unterschied nicht.
     PRIMARY leer  wie PRIMARY, Farbe var(--muted-2)
                   Beleg: .dashboard-kpi-value.is-empty

   I6R3 hatte Primaertext auf 13px/400 vereinheitlicht. Das war technisch
   konsistent, modellierte aber alle Fachaussagen als EINE Rolle: die
   kanonische Rechtsreferenz sah aus wie ihre eigene Fussnote. I6R4 ersetzt
   diese Einheitsregel durch die Rollentrennung -- ohne Legal-Sonderfall und
   ohne flaechiges Bold: je beschrifteter Einheit genau eine Primaerzeile.
   ================================================================== */

/* SECONDARY FACT — Standardrolle jeder weiteren Zeile einer Karte. */
.case-workspace-shell .case-workspace-ref-card-row-primary,
.case-workspace-shell .case-workspace-ref-card-row-secondary {
    font-size: 12px;
    font-weight: 400;
    /* Der Live-Drift-Guard wies fuer dieselbe Rolle zwei Zeilenhoehen nach:
       17,4px (geerbte 1.45) in den Referenzkarten gegen 16,2px (explizite
       1.35) im Prozessstatus. Verbindlich ist der bereits explizit gesetzte
       Bestandswert der Flaeche (.case-workspace-status-label, 1.35). */
    line-height: 1.35;
    color: var(--muted);
    overflow-wrap: anywhere;
}

/* PRIMARY FACT — genau die erste wertetragende Zeile je Karte (`is-lead`,
   vergeben in buildCaseHomeReferenceCard, nicht je Karte lokal entschieden). */
.case-workspace-shell .case-workspace-ref-card-row.is-lead
> .case-workspace-ref-card-row-primary {
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
}

/* Ehrlicher Leerzustand: bleibt Primaerzeile, wird aber wie im bestehenden
   Dashboard farblich zurueckgenommen. */
.case-workspace-shell .case-workspace-ref-card-row.is-lead.is-unset
> .case-workspace-ref-card-row-primary {
    color: var(--muted-2);
}

/* Genau ein Aktionsfuss je Karte: Inhalt -> Linie -> Aktion. */
.case-workspace-shell .case-workspace-ref-card-footer {
    margin-top: auto;
    padding: 10px 0 0;
    border-top: 1px solid var(--line);
}

/* Genau ein Navigationslink je Karte, am Fuss, mit Chevron rechts. */
.case-workspace-shell .case-workspace-ref-card-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: auto;
    border: 0;
    border-top: 1px solid var(--line);
    background: none;
    font: inherit;
    font-size: 13px;
    font-weight: 400;
    color: var(--blue-text);
    text-align: left;
    cursor: pointer;
}

.case-workspace-shell .case-workspace-ref-card-link:hover,
.case-workspace-shell .case-workspace-ref-card-link:focus-visible {
    text-decoration: underline;
}

.case-workspace-shell .case-workspace-ref-card-chevron {
    flex: 0 0 auto;
    font-size: 16px;
    line-height: 1;
}

/* GEN7-UX-CASE-HOME-ZONE-E-CONSISTENCY-I9: zweite Auspraegung DESSELBEN
   Fussslots. "Team & Beteiligte" fuehrt dort keinen Navigationslink, sondern
   den bestehenden Aufklapper -- fuer die Fallzuordnung existiert keine eigene
   Zielflaeche (Bericht I9 Abschnitt 4). Position und Rahmen sind mit
   .case-workspace-ref-card-link identisch (dieselben Werte, derselbe
   --line-Token), damit beide Karten denselben Fuss zeigen. Kein neues Token,
   keine Magic Number, keine kartenspezifische Hoehe. */
.case-workspace-shell .case-workspace-ref-card-disclosure {
    border: 0;
    background: none;
    font: inherit;
}

.case-workspace-shell .case-workspace-ref-card-disclosure-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-size: 13px;
    font-weight: 400;
    color: var(--blue-text);
    cursor: pointer;
    list-style: none;
}

.case-workspace-shell.is-overview
.case-workspace-ref-card-disclosure-summary::-webkit-details-marker {
    display: none;
}

/* Chevron in derselben Zeichen- und Groessengrammatik wie
   .case-workspace-ref-card-chevron; er dreht beim Aufklappen und ist reine
   Zustandsanzeige (der Zustand steht zusaetzlich in `details[open]`). */
.case-workspace-shell.is-overview
.case-workspace-ref-card-disclosure-summary::after {
    content: "›";
    flex: 0 0 auto;
    font-size: 16px;
    line-height: 1;
    transition: transform 120ms ease;
}

.case-workspace-shell.is-overview
.case-workspace-ref-card-disclosure[open]
> .case-workspace-ref-card-disclosure-summary::after {
    transform: rotate(90deg);
}

.case-workspace-shell.is-overview
.case-workspace-ref-card-disclosure-summary:hover,
.case-workspace-shell.is-overview
.case-workspace-ref-card-disclosure-summary:focus-visible {
    text-decoration: underline;
}

/* GEN7-UX-CASE-HOME-ZONE-E-CONSISTENCY-I9 — Behebung eines VORBEFUNDS, der die
   eigentliche mechanische Ursache des gemeldeten Symptoms war.

   Der Inhaltscontainer des Aufklappers traegt die ungescopte Basisregel
   `.case-workspace-status-list { display: grid }` (app_shell.css ~Z. 2925).
   Ein Author-`display` auf dem Kind eines GESCHLOSSENEN <details> ueberschreibt
   das `display: none` des UA-Slots — der Aufklapper zeigte seinen kompletten
   Inhalt (live gemessen: 433px Inhalt in einem 42px hohen <details>, inkl.
   E-Mail-Feld, Rollenauswahl und "Hinzufügen") dauerhaft an. Genau daraus
   entstand der Eindruck, "Team & Beteiligte" sei zu einer Mini-Arbeitsflaeche
   angewachsen.

   Markup und Basisregel bestanden unveraendert schon vor diesem Block; die
   Korrektur ist bewusst eng auf den Zone-E-Aufklapper gescoped und aendert
   weder die Status-List-Grammatik noch das <details>-Verhalten anderswo. */
.case-workspace-shell.is-overview
.case-workspace-ref-card-disclosure:not([open]) > *:not(summary) {
    display: none;
}

/* Der aufgeklappte Detailbereich ist Arbeitsflaeche, nicht Summary: er bekommt
   Luft zum Fuss, bleibt aber innerhalb der Karte. */
.case-workspace-shell.is-overview
.case-workspace-ref-card-disclosure[open] > .case-workspace-status-list {
    margin-top: 12px;
}

/* I6R1: Im schmalen Desktopkorridor wuerde die unverkuerzte Legal-Referenz
   stark umbrechen und dadurch in den beiden kurzen Statuskarten erneut
   grosse Leerflaechen erzwingen. Nur Zone D stapelt hier deshalb ihre drei
   vollstaendigen Projektionen; Inhalte und bestehender 1100px-Shell-
   Breakpoint bleiben unveraendert. */
@media (min-width: 1101px) and (max-width: 1280px) {
    .case-workspace-shell .case-workspace-basis-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Mobile 390px und schmale Viewports: beide Raster stapeln. Der Umbruch
   liegt bei 1100px, identisch zum bestehenden Workspace-Breakpoint. */
@media (max-width: 1100px) {
    .case-workspace-shell .case-workspace-basis-grid,
    .case-workspace-shell.is-overview .case-workspace-case-home-dashboard,
    .case-workspace-shell.is-overview .case-workspace-case-home-orientation-row,
    .case-workspace-shell.is-overview .case-workspace-case-home-status-strip {
        grid-template-columns: minmax(0, 1fr);
    }

}

/* Entscheidungs-Karten trugen als einzige klassierte Workspace-Karten eine
   sichtbare Elevation (Setter ~11652, ausserhalb des Host-Scopes). */
.case-workspace-shell .dsb-decision-actions .dsb-decision-section {
    box-shadow: none;
}

/* Die Host-Neutralisierung (~10572) setzte das Eigen-Padding der
   Dokumentkarten (12px 14px 12px 60px, Basis ~12666) mit auf 0; die
   U6-Reaktivierung (~10624) stellte nur Kontur/Radius wieder her. Gleicher
   Icon-Gutter wie die Massnahmenzeilen (20px 16px 20px 60px). */
.case-workspace-host-summary .doc-shell .doc-shell-card {
    padding: 12px 14px 12px 60px;
}

/* Mikrolabel-Skala (GEN5-CANONICAL-FOCUSPANEL-GRAMMAR-F1) fuer die letzte
   nicht angeglichene Feldlabel-Zone: Dokument-Metazeilen (vorher 11px/400
   ohne Uppercase; text-transform braucht die Basisregel ~12733 nicht und
   muss hier explizit gesetzt werden). */
.case-workspace-shell .doc-shell-meta-label {
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--muted);
}

/* Fachinformations-Wert der Referenz (13px im Belegfrage-Fokuspanel,
   13px in den Dokument-Metazeilen) — die Massnahmen-Textzellen
   (Verantwortlich/Faelligkeit/Nachweis) erbten 16px. */
.case-workspace-shell #block-measures .aw-source-cell {
    font-size: 13px;
}

/* Footer-Rhythmus der Referenz (gap space-2, margin-top space-3,
   padding-top space-2 — vorher 6/4/10). Der bestehende
   Massnahmen-Footer-Divider bleibt unveraendert. */
.case-workspace-shell #block-measures .aw-measure-footer-actions {
    gap: var(--space-2);
    margin-top: var(--space-3);
    padding-top: var(--space-2);
}

/* Divider-lose Action-Row wie die Dokumentation seit
   GEN5-CANONICAL-FOCUSPANEL-GRAMMAR-F1 (margin-top space-4, gap space-2). */
.case-workspace-shell .dsb-decision-section .dsb-note-actions {
    margin-top: var(--space-4);
    gap: var(--space-2);
}

/* ==================================================================
   A-PC-FUNDING-F1 (FUND-005): Kompakter Hero im Arbeitszustand.
   Freigegebener Backlog-Punkt "Hero kompakter und hochwertiger
   gestalten": Im Workmode (aktive Section) zaehlt die Arbeitsflaeche;
   die volle Fallbeschreibung gehoert zur Fallübersicht (is-overview,
   dort unveraendert). Nur bestehende Werte/Muster: display:none folgt
   dem etablierten Workmode-Praezedenzfall (Section-Titel/Hosted-
   Headline werden im Workmode bereits per CSS zurueckgenommen), keine
   neuen Tokens, keine neue Grammatik. Alle sechs Metadatenfelder
   bleiben sichtbar.
   ================================================================== */
.case-workspace-shell.is-workmode .case-workspace-hero {
    padding: 16px 20px;
    gap: 10px;
}

/* GEN5-CASE-CONTEXT-SUMMARY-PARITY-F1 (Product-Owner-Entscheidung,
   supersediert FUND-005 ausschliesslich fuer die Fallbeschreibung):
   Die Summary bleibt auch im Workmode sichtbar — derselbe Summary-DOM,
   derselbe 3-Zeilen-Clamp (.is-collapsed) und derselbe "Mehr anzeigen"-
   Toggle wie in der Fallübersicht (ein Owner, keine Kopie). Der Summary-
   Divider bleibt sichtbar; nachgelagerte Hero-Divider bleiben im Workmode
   ausgeblendet (Kompaktheit, FUND-005). */
.case-workspace-shell.is-workmode .case-workspace-hero-divider {
    display: none;
}

.case-workspace-shell.is-workmode
    .case-workspace-hero-summary-block + .case-workspace-hero-divider {
    display: block;
}

/* HeaderRow -> HeroCard-Abstand im Workmode (28px ist der Overview-
   Referenzwert aus GEN4-WORKSPACE-HERO-LAYOUT-R4). */
.case-workspace-shell.is-workmode .case-workspace-hero-body {
    margin-bottom: 12px;
}

/* ============================================================
   GEN5-RIGHT-RAIL-REDESIGN-F1 — Vier-Karten-Rail (nur Workspace).
   Strikt .case-workspace-rail-gescoped; der klassische Gen3-Right-Rail
   (.right-rail) bleibt unberührt. Referenz:
   docs/design/reference/right_rail.png — ruhige weiße Karten, hellblaue
   vollbreite Aktionszeilen, Blau nur für Navigation/Primäraktion,
   Orange nur für echten Prüfbedarf, neutrale Metadaten in Grau.
   ============================================================ */

/* Vollbreite Primär-Aktionszeile (hellblau, Chevron rechts). */
.case-workspace-rail .context-rail-action-row {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 38px;
    padding: 9px 12px;
    border: 0;
    border-radius: 10px;
    background: var(--blue-soft);
    color: var(--blue-text);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
    transition: background-color 140ms ease;
}

.case-workspace-rail .context-rail-action-row:hover {
    background: var(--blue-border, #dbe7ff);
}

.case-workspace-rail .context-rail-action-label {
    flex: 1;
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
}

.case-workspace-rail .context-rail-action-chevron {
    flex-shrink: 0;
    font-size: 14px;
    line-height: 1;
}

/* Karte 1 — Fallidentität. */
/* GEN7-UX-RIGHT-RAIL-CASE-OVERVIEW-VISUAL-ALIGNMENT-I3: Label -> Wert bleibt
   eng (2px aus `.context-panel-meta-row`, unveraendert); der Abstand
   Datenblock -> Datenblock folgt jetzt derselben 10px-Rhythmik wie der
   Risiko-Body, statt mit 6px fast mit dem Label-Abstand zu verschmelzen.
   Kein neuer Wert: 10px ist der bereits gesetzte Body-Gap der Risiko-Karte. */
.case-workspace-rail .context-rail-identity {
    display: grid;
    gap: 10px;
}

.case-workspace-rail .context-rail-case-title {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--text, #0f172a);
    line-height: 1.35;
    overflow-wrap: normal;
    word-break: normal;
}

/* Statuszeile: Label grau, Wert blau (Referenz "Status / In Bearbeitung"). */
.case-workspace-rail .context-rail-status {
    display: grid;
    gap: 2px;
    padding-top: 10px;
    border-top: 1px solid #e5e7eb;
}

.case-workspace-rail .context-rail-status-value {
    font-size: 13px;
    font-weight: 700;
    color: var(--blue-text);
}

/* Fortschrittsblock: Ring + Prozent + erledigt/gesamt aus derselben
   Work-Unit-Ableitung. Ring rein dekorativ (aria-hidden), Prozentwert
   kommt als Text daneben. */
.case-workspace-rail .context-rail-progress {
    display: grid;
    gap: 6px;
    padding-top: 10px;
    border-top: 1px solid #e5e7eb;
}

.case-workspace-rail .context-rail-progress-body {
    display: flex;
    align-items: center;
    gap: 12px;
}

.case-workspace-rail .context-rail-progress-ring {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background:
        radial-gradient(closest-side, #ffffff 74%, transparent 75% 100%),
        conic-gradient(var(--blue) calc(var(--rail-progress, 0) * 1%), #e5e7eb 0);
}

.case-workspace-rail .context-rail-progress-copy {
    display: grid;
    gap: 1px;
    min-width: 0;
}

.case-workspace-rail .context-rail-progress-percent {
    font-size: 17px;
    font-weight: 800;
    color: var(--text, #0f172a);
    line-height: 1.2;
}

.case-workspace-rail .context-rail-progress-count {
    font-size: 12px;
    color: var(--muted);
}

/* Karte 2 — Aufgabenzeilen: Statuspunkt, Bezeichnung, Count, Chevron. */
.case-workspace-rail .context-rail-task-list {
    display: grid;
    gap: 2px;
}

.case-workspace-rail .context-rail-task-row {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 34px;
    padding: 6px 4px;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    border-radius: 8px;
    transition: background-color 140ms ease;
}

.case-workspace-rail .context-rail-task-row:hover {
    background: var(--surface-soft, #f8fafc);
}

.case-workspace-rail .context-rail-task-dot {
    flex-shrink: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--muted);
}

.case-workspace-rail .context-rail-task-label {
    flex: 1;
    min-width: 0;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--text, #0f172a);
    overflow-wrap: normal;
    word-break: normal;
}

.case-workspace-rail .context-rail-task-count {
    flex-shrink: 0;
    font-size: 12px;
    font-weight: 700;
    color: var(--blue-text);
}

.case-workspace-rail .context-rail-task-row .context-rail-action-chevron {
    color: var(--muted);
    font-size: 12px;
}

/* Karte 3 — ruhiger positiver Leerzustand ohne große leere Fläche. */
.case-workspace-rail .context-rail-hints-empty {
    color: var(--green-text, #15803d);
    font-weight: 600;
}

/* Karte 4 — "Bereits referenziert" als verdichteter Unterblock mit Divider,
   kein Card-in-Card. */
.case-workspace-rail .context-rail-referenced {
    display: grid;
    gap: 6px;
    padding-top: 10px;
    border-top: 1px solid #e5e7eb;
}

/* ============================================================
   GEN7-UX-CASE-INTAKE-GUIDED-IMPLEMENTATION-I1: gefuehrte Fallannahme.
   Eigener Top-Level-Seiten-Root wie .mandanten-page/.dashboard-page. Es
   entsteht keine neue Designsprache: Karten (.wb-card*), Formularfelder
   (.aw-edit-*), Buttons (.workbench-primary-button/.workbench-ghost-button)
   und Hilfetexte (.pa-help-text) sind die bestehenden Owner; hier steht nur
   das Seitenraster, der Intake-Fortschritt und die Reviewzeile.
   Kein neues Token.

   Bewusst OHNE eigenen Breakpoint: Fortschritt, Feldaktionen, Reviewzeile und
   Aktionsleiste sind durchgaengig `flex-wrap: wrap` mit `flex-basis`, sie
   stapeln also von selbst, sobald der Platz fehlt. Ein zusaetzliches
   `@media` waere ein zweiter Mobile-Owner neben den bestehenden - genau das,
   was die Chrome-Vertraege dieser Codebasis verbieten.
   ============================================================ */

.case-intake-page {
    display: grid;
    gap: 16px;
    padding: 16px 12px 24px;
    font-family: var(--font-ui);
    width: 100%;
    max-width: 900px;
}

.case-intake-header {
    display: grid;
    gap: 6px;
}

.case-intake-title {
    font-size: 26px;
    line-height: 1.25;
    letter-spacing: -0.02em;
    font-weight: 700;
    margin: 0;
}

.case-intake-intro,
.case-intake-note,
.case-intake-step-description {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-muted);
}

.case-intake-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 6px;
}

.case-intake-progress {
    display: grid;
    gap: 8px;
}

.case-intake-progress-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.case-intake-progress-item {
    flex: 1 1 180px;
    min-width: 0;
}

.case-intake-progress-button {
    width: 100%;
    text-align: left;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid var(--border-soft, #e2e8f0);
    background: var(--surface-subtle, #fafbfc);
    color: var(--text-muted);
    cursor: pointer;
}

.case-intake-progress-item.is-complete .case-intake-progress-button {
    color: var(--text-default);
}

.case-intake-progress-item.is-current .case-intake-progress-button {
    border-color: var(--blue, #2563eb);
    background: #eef2ff;
    color: var(--text-default);
}

.case-intake-progress-button:focus-visible {
    outline: 2px solid var(--blue, #2563eb);
    outline-offset: 2px;
}

.case-intake-progress-position {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.case-intake-card-body {
    display: grid;
    gap: 16px;
}

.case-intake-form,
.case-intake-review,
.case-intake-created {
    display: grid;
    gap: 16px;
}

.case-intake-field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.case-intake-required {
    margin-left: 8px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--text-muted);
}

.case-intake-textarea {
    width: 100%;
    min-height: 88px;
    resize: vertical;
}

.case-intake-select {
    width: 100%;
}

.case-intake-field-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.case-intake-field-status {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
}

.case-intake-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

/* GEN7-UX-INTAKE-UNIFIED-DRAFT-AND-STICKY-SAVE-I1: Die eine Speicheraktion des
   Schrittes bleibt waehrend der Bearbeitung erreichbar, statt am Ende langer
   Stufen zu verschwinden. Sie bleibt dabei Teil der Intake-Arbeitsflaeche --
   kein globaler Footer, keine zweite Navigation, kein Overlay ueber dem
   Inhalt. Flaeche und Linie stammen aus den bestehenden Karten-Token
   (`.case-intake-page .case-intake-card { background: var(--surface) }`),
   damit keine neue Designsprache entsteht. */
/* Gemessene Ursache, warum `position: sticky` hier zunaechst wirkungslos war:
   die geteilte Kartengrammatik setzt `.wb-card { overflow: hidden }`. Damit ist
   die Karte selbst der naechste Scrollcontainer -- ein sticky Kind klebt an
   ihr statt am echten Scroller (oberhalb 1100px `.workbench-main`, darunter
   `body`), und die Karte scrollt nie. Die Klammer wird deshalb AUSSCHLIESSLICH
   fuer diese eine Flaeche aufgehoben; die gemeinsame `.wb-card`-Regel bleibt
   unangetastet. Die Karte fuehrt keinen abgeschnittenen Inhalt, ihre Kinder
   liegen innerhalb der Kartenpolsterung. */
.case-intake-page .case-intake-card {
    overflow: visible;
}

.case-intake-save-row {
    position: sticky;
    bottom: 0;
    z-index: 1;
    align-items: center;
    margin-top: 4px;
    padding: 12px 0;
    background: var(--surface);
    border-top: 1px solid var(--line);
}

/* Unterhalb des bestehenden Breakpoints scrollt nicht `.workbench-main`,
   sondern `body` (gemessen: `.workbench-main` behaelt `overflow-y: auto`, hat
   dort aber `height: auto` und damit nichts zu scrollen; `.app-shell` klammert
   zusaetzlich mit `overflow: hidden`). Beide bilden deshalb einen
   Scrollcontainer, an dem ein sticky Kind haengen bleibt, ohne dass er sich je
   bewegt. Die beiden Klammern werden AUSSCHLIESSLICH fuer die Fallannahme
   geloest -- funktional aendert sich dort nichts, weil beide ohnehin nichts
   scrollen; sie geben nur den echten Scroller frei. Keine andere Flaeche ist
   betroffen. */
@media (max-width: 1100px) {
    .app-shell:has(.case-intake-page),
    .workbench-main:has(.case-intake-page) {
        overflow: visible;
    }
}

/* Der Browser scrollt ein fokussiertes Bedienelement an den Rand des
   Sichtbereichs -- und weiss nichts von der Leiste davor. Ohne diesen Abstand
   landet die Tastaturnavigation dahinter (gemessen bei 390px: 5 von 21
   Elementen). Der Wert deckt Leistenhoehe plus Innenabstand ab. */
.case-intake-page input,
.case-intake-page textarea,
.case-intake-page select,
.case-intake-page .case-intake-chip {
    scroll-margin-bottom: 96px;
}

.case-intake-review-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-soft, #e2e8f0);
}

.case-intake-review-label {
    flex: 0 0 200px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.case-intake-review-value {
    flex: 1 1 240px;
    min-width: 0;
    font-size: 13px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.case-intake-review-value.is-unclear {
    font-style: italic;
    color: var(--text-muted);
}

.case-intake-error {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--red, #b42318);
}

.case-intake-created-headline {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
}

/* ---- GEN7-UX-CASE-INTAKE-V2-PROJECTION-I1 -------------------------------
   Ergaenzt die vorhandene Intake-Grammatik um Kopfzeile, Fragengruppen,
   Auswahlchips und die dreiteilige Zusammenfassung. Weiterhin bewusst OHNE
   eigene `@media`: die Fläche bricht ueber `flex-wrap` und `auto-fit` um,
   damit kein zweiter Mobile-Owner entsteht. Keine neuen Farben, keine neuen
   Tokens - ausschliesslich bestehende Variablen.
   --------------------------------------------------------------------- */

.case-intake-heading-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
}

.case-intake-header-actions {
    margin-top: 0;
}

.case-intake-inline-action {
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    padding: 6px 10px;
    min-height: 32px;
    border-radius: 8px;
    border: 1px solid var(--border-soft, #e2e8f0);
    background: transparent;
    color: var(--text-muted);
    font-family: inherit;
    cursor: pointer;
}

.case-intake-inline-action:hover:not(:disabled) {
    color: var(--text-default);
    background: var(--surface-subtle, #fafbfc);
}

/* GEN7-ENG-INTAKE-AI-REAL-PRE-ENABLE-CLOSURE-I1: the explicit AI action
   keeps the shared intake button owner, but carries the established calm
   purple semantic role. Normal inline actions remain unchanged. */
.case-intake-inline-action.case-intake-ai-action {
    border-color: var(--purple-border);
    background: var(--purple-soft);
    color: var(--purple-text);
}

.case-intake-inline-action.case-intake-ai-action:hover:not(:disabled) {
    border-color: var(--purple);
    background: var(--purple-soft);
    color: var(--purple-text);
}

.case-intake-inline-action:disabled {
    opacity: 0.55;
    cursor: default;
}

.case-intake-inline-action:focus-visible {
    outline: 2px solid var(--blue, #2563eb);
    outline-offset: 2px;
}

.case-intake-inline-action.case-intake-ai-action:focus-visible {
    outline-color: var(--purple);
}

.case-intake-inline-action.is-danger {
    border-color: var(--red-border);
    color: var(--red-text);
}

.case-intake-inline-action.is-danger:hover:not(:disabled) {
    background: var(--red-soft);
}

.case-intake-inline-create {
    display: grid;
    gap: 8px;
    margin-top: 8px;
    padding-top: 12px;
    border-top: 1px solid var(--border-soft, #e5e7eb);
}

.case-intake-inline-create .case-intake-actions {
    margin-top: 0;
}

.case-intake-compact-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
    align-items: start;
}

.case-intake-field.is-lead .case-intake-textarea {
    min-height: 150px;
}

.case-intake-phase {
    display: grid;
    gap: 16px;
}

.case-intake-preview-note {
    font-style: italic;
}

.case-intake-question-set {
    display: grid;
    gap: 14px;
}

.case-intake-question {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.case-intake-question-label {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--text-default);
}

.case-intake-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.case-intake-chip {
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    min-height: 32px;
    padding: 7px 12px;
    border-radius: 999px;
    border: 1px solid var(--border-soft, #e2e8f0);
    background: var(--surface-subtle, #fafbfc);
    color: var(--text-muted);
    cursor: pointer;
}

.case-intake-chip:hover {
    color: var(--text-default);
}

.case-intake-chip.is-selected {
    border-color: var(--blue, #2563eb);
    background: #eef2ff;
    color: var(--text-default);
}

.case-intake-chip:focus-visible {
    outline: 2px solid var(--blue, #2563eb);
    outline-offset: 2px;
}

.case-intake-group {
    display: grid;
    gap: 12px;
    padding-top: 14px;
    border-top: 1px solid var(--border-soft, #e2e8f0);
}

.case-intake-group-title {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.case-intake-disclosure,
.case-intake-phase-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.case-intake-summary-group {
    display: grid;
    gap: 8px;
}

.case-intake-summary-list {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.case-intake-summary-item {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
    min-width: 0;
    font-size: 13px;
    line-height: 1.5;
}

.case-intake-summary-item .case-intake-review-row {
    flex: 1 1 320px;
    min-width: 0;
    padding: 0;
    border-bottom: none;
}

.case-intake-summary-label {
    flex: 0 0 200px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.case-intake-summary-value {
    flex: 1 1 240px;
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Der bestehende Hint-Owner bleibt .pa-help-text; diese lokale Einordnung
   verhindert nur das geerbte Fließtextgewicht der Intake-Surface. */
.case-intake-page .case-intake-help {
    margin: 4px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: var(--text-muted);
}

.case-intake-ready {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--text-default);
}

/* ============================================================
   GEN5-MANDANTEN-WORKSPACE-FOUNDATION-F1: eigener Top-Level-Seiten-Root,
   analog zu .dashboard-page/.all-cases-page — kein Bezug zu
   .case-workspace-shell, eigene Kartengrammatik (globale .wb-card* /
   .aw-edit-* / workbench-*-button-Klassen werden direkt wiederverwendet).
   ============================================================ */

.mandanten-page {
    display: grid;
    gap: var(--space-6);
    padding: var(--space-2) 0 var(--space-6);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-family: var(--font-ui);
    width: 100%;
    max-width: none;
}

.mandanten-page-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.mandanten-page-intro {
    display: grid;
    gap: 6px;
}

.mandanten-page-title {
    font-size: 26px;
    line-height: 1.25;
    letter-spacing: -0.02em;
    font-weight: 700;
    color: var(--ink);
}

.mandanten-page-description {
    margin: 0;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.5;
}

.mandanten-page-count {
    color: var(--muted);
    font-size: 12.5px;
    white-space: nowrap;
}

.mandanten-create-action {
    display: flex;
}

.mandanten-list {
    display: grid;
    gap: 8px;
}

.mandanten-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: var(--space-4) var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--r-4);
    background: var(--surface);
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
}

.mandanten-row:hover {
    border-color: #cbd5e1;
}

.mandanten-row-main {
    display: grid;
    gap: 2px;
    flex: 1 1 auto;
    min-width: 0;
}

.mandanten-row-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
}

.mandanten-row-meta {
    font-size: 12.5px;
    color: var(--muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mandanten-row-date {
    font-size: 12px;
    color: var(--muted);
    white-space: nowrap;
}

.mandanten-row-chevron {
    color: var(--muted);
    font-size: 16px;
}

.mandanten-loading-hint,
.mandanten-error-hint {
    margin: 0;
    font-size: 13px;
    color: var(--muted);
}

.mandanten-error-hint {
    color: var(--red-text, #b91c1c);
}

.mandanten-detail-page {
    display: grid;
    gap: 12px;
}

.mandanten-back-button {
    justify-self: start;
}

.mandanten-detail-head {
    display: flex;
    align-items: center;
    gap: 10px;
}

.mandanten-detail-card {
    padding: 0;
}

.mandanten-detail-card-header {
    cursor: default;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.mandanten-detail-fields {
    display: grid;
    gap: 18px;
}

.mandanten-detail-group {
    display: grid;
    gap: 10px;
}

.mandanten-detail-group + .mandanten-detail-group {
    padding-top: 16px;
    border-top: 1px solid var(--border-subtle);
}

.mandanten-detail-group-title {
    margin: 0;
    color: var(--muted-2);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mandanten-detail-row {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 8px;
    font-size: 13px;
}

.mandanten-detail-label {
    color: var(--muted);
    font-weight: 600;
}

.mandanten-detail-value {
    color: var(--ink);
}

.mandanten-form {
    display: grid;
    gap: 4px;
    padding: 16px;
}

.mandanten-form-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 8px;
}

.mandanten-form-error {
    margin: 0 0 8px;
    color: var(--red-text, #b91c1c);
    font-size: 13px;
}

.mandanten-form-fields {
    display: grid;
    gap: 4px;
}

.mandanten-form-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding-top: 12px;
}

/* GEN7-UX-MANDANT-CASE-WORKSPACE-I1: Abschnitt "Prüfungen" der Mandantenseite.
   Es entsteht keine neue Kartengrammatik - Rahmen, Kopf und Polsterung kommen
   unveraendert aus wb-card/.mandanten-detail-card; hier stehen nur Zeilen- und
   Auswahlgrammatik derselben Seite (identische Werte wie .mandanten-row). */
.mandanten-case-list,
.mandanten-assign-list {
    display: grid;
    gap: 8px;
}

.mandanten-case-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.mandanten-case-open {
    display: grid;
    gap: 4px;
    flex: 1 1 260px;
    min-width: 0;
    padding: 12px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
}

.mandanten-case-open:hover {
    border-color: #cbd5e1;
}

.mandanten-case-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mandanten-case-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 12px;
    color: var(--muted);
}

.mandanten-case-responsible,
.mandanten-case-date,
.mandanten-case-muted {
    font-size: 12px;
    color: var(--muted);
}

.mandanten-case-remove {
    flex: 0 0 auto;
}

.mandanten-assign-panel {
    display: grid;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #e5e7eb;
}

.mandanten-assign-title {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
}

.mandanten-assign-option {
    display: grid;
    gap: 2px;
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
}

.mandanten-assign-option:hover {
    border-color: #cbd5e1;
}

.mandanten-assign-option.is-selected {
    border-color: var(--blue-border);
    background: var(--blue-soft);
}

.mandanten-assign-option-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
}

.mandanten-assign-option-meta {
    font-size: 12px;
    color: var(--muted);
}

/* Mobile: einspaltig, Bedienziele bleiben vollbreit - keine gequetschte
   Zeile, kein zweiter responsiver Owner. */
@media (max-width: 860px) {
    .mandanten-case-row {
        align-items: stretch;
    }

    .mandanten-case-open {
        flex: 1 1 100%;
    }

    .mandanten-case-remove {
        width: 100%;
    }
}

/* GEN7-UX-CHROME-MOBILE-F1: gemeinsame mobile Chrome-Owner verdichten. */
@media (max-width: 860px) {
    .topbar { padding: 4px 12px; }
    .topbar-inner { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; }
    .topbar-brand { grid-column: 1; grid-row: 1; min-width: 0; }
    .topbar-right { grid-column: 2; grid-row: 1; }
    /* GEN7-UX-AUTHENTICATED-CHROME-ALIGNMENT-I1: Die frueheren mobilen
       Umbruchregeln der beiden Kontextwrapper sind mit ihrem Gegenstand
       entfallen. Der Kontext belegt auf schmalen Breiten keine zusaetzlichen
       Chrome-Zeilen (2 und 3) mehr, weil er nicht mehr in der Kopfzeile liegt;
       damit kann dort weder eine horizontale Scrollbar noch eine erzwungene
       Desktopzeile entstehen. Die Typografie der Eintraege bleibt unveraendert,
       sie gilt jetzt im Account-Menue. */
    .topbar-context-entry { align-items: flex-start; gap: 2px; padding: 0; }
    .topbar-context-label,
    .topbar-context-role,
    .topbar-context-next { font-size: 10px; }
    .topbar-context-value { font-size: 12px; }
    /* Unveraenderte Fold-Entscheidung des mobilen Chrome-Owners: der Next-Step
       bleibt auf schmalen Breiten ausgeblendet. Nicht Gegenstand dieses
       Auftrags. Der Markerbezeichner wird hier bewusst nicht wiederholt, weil
       der zustaendige Vertragstest ab seinem letzten Vorkommen schneidet. */
    .topbar-context-next { display: none; }

    /* GEN7-UX-PILOT-VISUAL-GUIDANCE-AND-CLEAN-SYSTEM-I1: Der gemeinsame
       Fallkopf stapelt Titel und Aktionen auf allen Reitern. Die bisherige
       Workmode-Restspalte mass bei 390px live 0px. Bestehender Breakpoint,
       unveraenderte Inhalte, Reihenfolge und Shared-Header-Owner. */
    .case-workspace-shell.has-shared-case-header .case-workspace-hero-body {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
    .case-workspace-shell.has-shared-case-header .case-workspace-hero-right {
        align-items: flex-start;
    }
    .case-workspace-shell.has-shared-case-header .case-workspace-hero-action-group {
        justify-content: flex-start;
    }

    .case-workspace-shell.is-workmode .case-workspace-hero-top { margin-bottom: 4px; }
    .case-workspace-shell.is-workmode .case-workspace-hero-body { gap: 8px; margin-bottom: 8px; }
    .case-workspace-shell.is-workmode .case-workspace-hero-left { gap: 2px; }
    .case-workspace-shell.is-workmode .case-workspace-header-title { font-size: 18px; line-height: 1.2; }
    .case-workspace-shell.is-workmode .case-workspace-hero { padding: 12px; gap: 8px; }
    .case-workspace-shell.is-workmode .case-workspace-hero-meta-primary {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
    }
    .case-workspace-shell.is-workmode .case-workspace-hero-meta-item { gap: 6px; }
    .case-workspace-shell.is-workmode .case-workspace-hero-meta-icon { display: none; }
    .case-workspace-shell.is-workmode .case-workspace-hero-meta-text { gap: 2px; }

    .case-workspace-shell.has-shared-case-header .case-workspace-header-wrap {
        display: flex;
        flex-direction: column;
        gap: var(--space-3);
    }
    .case-workspace-shell.is-workmode .case-workspace-hero-meta-item {
        align-items: center;
    }
    .case-workspace-shell.is-workmode .case-workspace-hero-meta-text {
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;
        gap: 2px 6px;
    }

    /* GEN7-UX-SHARED-CASE-HEADER-OWNER-I1: Der mobile Stepper-Block dieses
       Breakpoints ist ersatzlos entfallen. Er war die zweite, nur im
       Arbeitsmodus geltende Navigationsgrammatik; die Fallnavigation gehoert
       jetzt zum gemeinsamen Fallkopf und folgt in JEDEM Modus derselben einen
       860px-Regel unter `.case-workspace-shell.has-shared-case-header`
       (Marker-Kommentar dort). Kein Wert wurde ersetzt, kein neuer
       Breakpoint eingefuehrt -- es entfaellt nur die Konkurrenzregel. */
}

/* ============================================================================
   GEN7-UX-CASE-HOME-VISUAL-POLISH-I8 — Radius- und Farbgrammatik der
   Fallübersicht.

   Diagnose: Die Flaeche war fachlich richtig, aber visuell flach. Alle
   Container liefen auf demselben Radius (--wb-card-radius = --r-5 = 14px), und
   die semantisch unterschiedlichen Karten (Prueffragen, Rechtsgrundlagen,
   Maßnahmen, Fallstatus, Risiko, Aktivitäten, Team) waren visuell identische
   weiss-graue Rechtecke.

   Zwei Regeln, kein neues Designsystem:

   1. RADIUS — zwei Stufen statt einer, damit Verschachtelung sichtbar wird.
      Grosse Bereiche (Entscheidungsbasis, Prozessstatus, Fallbeschreibung,
      Rail-Karten, Sektionskarten der Arbeitsschritte) tragen den
      Container-Radius; alles, was IN einer Karte liegt, den kleineren
      Innenradius. Kleine Elemente (Pillen, Buttons, Marker, Icon-Kacheln)
      bleiben bewusst unveraendert bei ihrer bestehenden Grammatik -- ein
      pauschaler 25px-Radius wuerde sie verformen.

   2. FARBE — Bedeutung, nicht Dekoration. Eingefaerbt wird ausschliesslich die
      bereits bestehende Icon-Kachel (plus ein Rahmenton bei Risiko). Keine
      Kartenflaeche wird gefuellt, kein Gradient, kein zusaetzlicher Schatten.
      Die Aussage steht ausnahmslos weiterhin im Text und in der bestehenden
      Statuspille; Farbe ist nie alleiniger Informationstraeger.

   Die Tokens haengen an .case-workspace-shell, damit die Grammatik in ALLEN
   vier Fallreitern identisch greift (keine Case-Home-Sonderregel), aber
   Dashboard, Fallliste und Gen3-Reiter unveraendert bleiben.
   ============================================================================ */

.case-workspace-shell {
    --radius-container: var(--radius-lg);
    --radius-inner-card: var(--r-4);
}

/* Grosse Flaechen. Die Selektoren benennen bewusst die tatsaechlichen
   Container einzeln und NICHT pauschal `.wb-card`: die Klasse traegt im
   Workspace auch Listenzeilen (z. B. `#block-measures .aw-row.wb-card`), die
   mit einem Container-Radius verformt wuerden. */
.case-workspace-shell .case-workspace-hero,
.case-workspace-shell .case-workspace-case-home-card,
.case-workspace-shell .case-workspace-rail .context-panel-section,
.case-workspace-shell.has-shared-case-header .case-workspace-case-home-project-context {
    border-radius: var(--radius-container);
}

/* Verschachtelung: was IN einem dieser Container liegt, rundet schwaecher,
   damit Aussen- und Innenradius nicht gegeneinander arbeiten. Betrifft die
   drei Referenzkarten der Entscheidungsbasis und die vier Karten der Zone E. */
.case-workspace-shell .case-workspace-ref-card,
.case-workspace-shell .case-workspace-rail .context-panel-section .wb-card {
    border-radius: var(--radius-inner-card);
}

/* --- Semantische Kartenidentitaet ---------------------------------------- */

/* Violett = Rechtsgrundlagen und dokumentarischer Kontext (Aktivitäten). */
.case-workspace-shell .case-workspace-ref-card-icon.is-tone-legal {
    background: var(--purple-soft);
    color: var(--purple-text);
}

/* Amber = Risiko/Aufmerksamkeit. Bestehende Amber-Rolle, unveraendert. */
.case-workspace-shell .case-workspace-ref-card-icon.is-tone-risk {
    background: var(--amber-soft);
    color: var(--amber);
}

/* Der Risikoakzent ist bewusst nur ein Rahmenton: die Karte soll relevant
   wirken, nicht wie ein Fehlerzustand. Keine Flaechenfuellung, kein Schatten.
   Die Einstufung bleibt zusaetzlich textuell ("Hochrisiko-System"). */
.case-workspace-shell .case-workspace-ref-card.is-accent-risk {
    border-color: var(--amber-border);
}

/* --- Prozessstatus: schneller scanbar ------------------------------------ */

/* Die drei Metriken trugen bisher denselben grauen Markerstrich (nur die erste
   war blau). Jede Metrik bekommt den Ton ihrer Aussage: beantwortet = Arbeit/
   Information, offene Schritte = Aufmerksamkeit, letzte Aktivität =
   dokumentarisch. Werte, Reihenfolge und Owner sind unveraendert; der Strich
   ist reine Praesentation und traegt keine eigene Aussage. */
.case-workspace-shell.is-overview
.case-workspace-case-home-status-metric:nth-child(2) {
    border-left-color: var(--amber-border);
}

.case-workspace-shell.is-overview
.case-workspace-case-home-status-metric:nth-child(3) {
    border-left-color: var(--purple-border);
}

/* GEN7-UX-DOKUMENTATION-REDESIGN-I1 — Working Surface des Dokumentations-
   screens (PO-DOC-WS-01). Ausschliesslich Layout und Rhythmus bereits
   vorhandener Bausteine: gleiche Regionen-Typografie wie das Fokuspanel des
   Maßnahmen-Screens, gleicher Workbench-Grid-Owner
   (.case-workspace-prozessstatus-workbench), gleiche Worklist-Grammatik.
   Keine neuen Tokens, keine neue Komponente, keine Farb- oder Statusaussage.
   Wirkt nur im Gen4-Workpanel — der klassische Gen3-Reiter (.doc-shell im
   Reiter "Dokumente") bleibt unberuehrt. */
.case-workspace-workpanel .doc-workbench-region {
    min-width: 0;
    display: grid;
    gap: 14px;
    margin: 0;
    padding: 0;
}

.case-workspace-workpanel .doc-workbench-region + .doc-workbench-region {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line-soft, #eef2f7);
}

.case-workspace-workpanel .doc-workbench-region-title {
    margin: 0;
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Region A: Titel und Zustand des aktiven Nachweises in einer Zeile. */
.case-workspace-workpanel .doc-workbench-focus-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

/* Region B: Gate-Projektion. Die Listen tragen keine eigene Statusfarbe —
   die Aussage steht im Text, die Pille nutzt die geteilte wb-status-pill. */
.case-workspace-workpanel .doc-workbench-gate-ready {
    display: flex;
    align-items: center;
    gap: 10px;
}

.case-workspace-workpanel .doc-workbench-gate-block {
    display: grid;
    gap: 6px;
}

.case-workspace-workpanel .doc-workbench-gate-list {
    margin: 0;
    padding-left: 18px;
    display: grid;
    gap: 4px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--text);
}

/* Region D: die Bestandszeile fuehrt Titel, Zustand und Chevron — nicht die
   fuenfspaltige Nummern-/Typgrammatik der Prueffragen- und Maßnahmenliste.
   Deshalb ein eigenes Raster auf derselben Zeilenkomponente. */
.doc-workbench-worklist .doc-workbench-row {
    grid-template-columns: minmax(0, 1fr) auto auto;
}

/* GEN7-UX-DOCUMENTATION-REFERENCE-CONVERGENCE-I1: documentation-spezifische
   Referenzhierarchie. Owner und Interaktionen bleiben in render_documents.js;
   diese Regeln gewichten ausschliesslich Master/Detail und Regionen.

   GEN7-UX-WORKSPACE-MEASURES-PATTERN-CONVERGENCE-I1 (Slice A): die Regeln der
   frueheren Introkarte (.doc-workbench-intro*) sind ersatzlos entfallen — ihr
   Renderer existiert nicht mehr (dekorativer Container mit zweiter
   Ueberschrift; die Arbeitsanweisung liegt jetzt im gemeinsamen
   `subtitle`-Slot wie bei Maßnahmen). Die frueher noetige Ausblendregel fuer
   `.doc-shell-gate-hint` entfaellt damit ebenfalls: der Satz steht jetzt an
   der Lifecycle-Aktion, wo er gilt. */

/* ==================================================================
   GEN7-UX-WORKSPACE-MEASURES-PATTERN-CONVERGENCE-I1 — Slice A
   Dokumentation uebernimmt die Arbeitsgrammatik der Referenzflaeche
   Maßnahmen. Keine neue Komponente, kein zweites CSS-System: die Regeln
   nennen dieselben Werte, die `.case-workspace-measures-workbench`
   bereits fuehrt, und sind auf die Dokumentationsinstanz gescoped.
   Maßnahmen selbst wird durch diesen Block nicht veraendert.
   ================================================================== */

/* Desktop geometry only: below 1100px the existing shared master/detail
   owner supplies one column. An unconditional instance rule defeated it. */
@media (min-width: 1100px) {
    .case-workspace-documents-workbench {
        grid-template-columns: minmax(220px, 0.52fr) minmax(0, 1fr);
    }
}

.case-workspace-documents-workbench {
    gap: clamp(12px, 1.25vw, 24px);
}

/* Falle (identisch zur Referenzflaeche): `.case-workspace-shell
   .case-workspace-worklist` setzt spaeter im Dokument bei gleicher
   Spezifitaet 12px Radius. Ohne denselben Shell-Praefix gewinnt die
   Kaskadenreihenfolge. */
.case-workspace-shell .case-workspace-documents-workbench > .case-workspace-worklist,
.case-workspace-shell .case-workspace-documents-workbench > .case-workspace-workpanel {
    border-radius: var(--r-6);
}

.case-workspace-documents-workbench > .case-workspace-worklist {
    padding: 4px 8px 8px;
}

.case-workspace-documents-workbench .case-workspace-worklist-head {
    padding: 8px 8px 9px;
}

/* Zeilengrammatik der Referenz: kompakte Hoehe, ruhiger Titel, zurueck-
   genommene Pille, r-2-Radius. Die Dokumentenzeile fuehrt bewusst KEINE
   laufende Nummer (Dokumenttypen sind eine feste, benannte Menge — eine
   Nummerierung waere eine erfundene Ordnungsaussage), deshalb bleibt ihr
   eigenes Dreispaltenraster erhalten. */
.doc-workbench-worklist .doc-workbench-row {
    grid-template-columns: minmax(0, 1fr) auto auto;
    column-gap: 6px;
    min-height: 40px;
    padding: 8px 6px;
    border-radius: var(--r-2);
    border-top: 1px solid #f4f6fa;
}

.case-workspace-documents-workbench .case-workspace-worklist-group
    > .doc-workbench-row:first-of-type {
    border-top: 0;
}

.case-workspace-documents-workbench .doc-workbench-row
    > .case-workspace-worklist-title {
    font-size: 12px;
    font-weight: 400;
    line-height: 1.3;
    color: var(--ink);
    white-space: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.case-workspace-documents-workbench .doc-workbench-row > .wb-status-pill {
    min-height: 0;
    padding: 1px 5px;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.25;
}

.case-workspace-documents-workbench .doc-workbench-row
    > .case-workspace-worklist-chevron {
    color: #a8b3c4;
    font-size: 14px;
    line-height: 1;
    text-align: right;
}

/* Auswahl: helle blaue Flaeche, blaue Kontur, blauer Titel — nicht die
   dunkle Vollflaeche der geteilten Basisregel. */
.case-workspace-documents-workbench .doc-workbench-row.is-selected {
    background: var(--blue-soft);
    border: 1px solid var(--blue-border);
    box-shadow: none;
}

.case-workspace-documents-workbench .doc-workbench-row.is-selected
    > .case-workspace-worklist-title {
    color: var(--blue-text);
    font-weight: 600;
}

.case-workspace-documents-workbench .doc-workbench-row.is-selected
    > .case-workspace-worklist-chevron {
    color: var(--blue-text);
}

.case-workspace-documents-workbench .doc-workbench-row:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: -2px;
}

/* ==================================================================
   GEN7-UX-WORKSPACE-MEASURES-PATTERN-CONVERGENCE-I1 — Slice B
   Prozessstatus uebernimmt dieselbe Arbeitsgrammatik. Wertgleich zu
   Slice A und zur Referenzflaeche Maßnahmen; gescoped auf die
   Prozessstatus-Instanz, damit der geteilte Grid-Owner
   `.case-workspace-prozessstatus-workbench` (den Maßnahmen und
   Dokumentation mitbenutzen) unveraendert bleibt.

   Die fachliche Gliederung der Flaeche bleibt unangetastet: die
   Typgruppen (Prüffragen / Rechtsbezüge / Verarbeitungstätigkeit) mit
   ihren Kopfpillen sind eine fachliche Aussage dieser Flaeche und
   ausdruecklich KEIN Angleichungsgegenstand.
   ================================================================== */

.case-workspace-prozess-workbench {
    grid-template-columns: minmax(220px, 0.52fr) minmax(0, 1fr);
    gap: clamp(12px, 1.25vw, 24px);
}

/* GEN7-UX-PRUEFUNG-DECISION-BASIS-WORKLIST-PARITY-I1 -- Mobilparitaet.
   FALLE (real gemessen): die Instanzregel darueber steht auf TOP LEVEL und
   damit spaeter im Dokument als
   `@media (max-width: 1099px) { .case-workspace-prozessstatus-workbench {
   grid-template-columns: minmax(0, 1fr) } }`. Bei gleicher Spezifitaet (0,1,0)
   gewinnt die spaetere Regel -- die Zweispaltigkeit galt dadurch bis 390px
   hinunter. Real gemessen standen dort `220px 126px` nebeneinander, waehrend
   die Referenzflaeche Maßnahmen einspaltig auf volle Breite geht.
   Die Show/Hide-Regeln des Master-Detail-Zustands (`is-detail-open`) griffen
   bereits, nur die Spaltengeometrie nicht -- die sichtbare Spalte war 220px
   statt voller Breite.
   Die Referenz loest das mit einer eigenen Instanzregel
   (`.case-workspace-measures-workbench`, max-width: 1099px). Diese Regel ist
   deren wertgleiches Gegenstueck fuer die Pruefflaeche. Kein neuer
   Breakpoint, kein neuer Owner, keine Wirkung auf die Referenz. */
@media (max-width: 1099px) {
    .case-workspace-prozess-workbench {
        grid-template-columns: minmax(0, 1fr);
    }
}

.case-workspace-shell .case-workspace-prozess-workbench > .case-workspace-worklist,
.case-workspace-shell .case-workspace-prozess-workbench > .case-workspace-workpanel {
    border-radius: var(--r-6);
}

.case-workspace-prozess-workbench > .case-workspace-worklist {
    padding: 4px 8px 8px;
}

.case-workspace-prozess-workbench .case-workspace-worklist-head {
    padding: 8px 8px 9px;
}

/* Zeilengrammatik der Referenz. Die Prozessstatuszeile fuehrt fachlich eine
   Typspalte mehr (Icon + Art der Arbeitseinheit) — deshalb bleibt ihr
   Fuenfspaltenraster erhalten, nur Dichte und Gewichtung folgen der
   Referenz. */
.case-workspace-prozess-workbench .prozess-worklist-row {
    column-gap: 6px;
    min-height: 40px;
    padding: 8px 6px;
    border-radius: var(--r-2);
    border-top: 1px solid #f4f6fa;
}

/* GEN7-UX-PRUEFUNG-DECISION-BASIS-WORKLIST-PARITY-I1 -- dieselbe Falle wie
   beim Raster, zweite Auspraegung: die schmale Zeilengrammatik der Referenz
   (`min-height: 44px; padding: 8px`) steht in einem FRUEHEREN @media-Block
   (max-width: 700px); die Instanzregel direkt darueber steht spaeter auf Top
   Level. Bei gleicher Spezifitaet gewinnt die spaetere -- real gemessen
   `8px 6px` gegen `8px` der Referenz.
   Diese Regel stellt den schmalen Referenzwert wieder her und steht dafuer
   bewusst NACH der Instanzregel. Desktop bleibt unveraendert. */
@media (max-width: 700px) {
    .case-workspace-prozess-workbench .prozess-worklist-row {
        min-height: 44px;
        padding: 8px;
    }
}

.case-workspace-prozess-workbench .case-workspace-worklist-group
    > .prozess-worklist-row:first-of-type {
    border-top: 0;
}

.case-workspace-prozess-workbench .prozess-worklist-num {
    font-size: 10px;
    color: #a8b3c4;
}

.case-workspace-prozess-workbench .prozess-worklist-title {
    font-size: 12px;
    font-weight: 400;
    line-height: 1.3;
    color: var(--ink);
    white-space: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.case-workspace-prozess-workbench .prozess-worklist-row
    > .case-workspace-worklist-chevron {
    color: #a8b3c4;
    font-size: 14px;
    line-height: 1;
    text-align: right;
}

.case-workspace-prozess-workbench .prozess-worklist-row.is-selected {
    background: var(--blue-soft);
    border: 1px solid var(--blue-border);
    box-shadow: none;
}

.case-workspace-prozess-workbench .prozess-worklist-row.is-selected
    > .prozess-worklist-title {
    color: var(--blue-text);
    font-weight: 600;
}

.case-workspace-prozess-workbench .prozess-worklist-row.is-selected
    > .case-workspace-worklist-chevron {
    color: var(--blue-text);
}

.case-workspace-prozess-workbench .prozess-worklist-row:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: -2px;
}

/* Beschriftungsgrammatik des Fokuspanels. Der Prueffragen-Fokus fuehrte hier
   als einzige Gen7-Arbeitsflaeche 10.5px/800 VERSALIEN mit 0.07em Tracking;
   die Referenz spricht in 12px/500 ohne Versalien. Die frueher eigene Regel
   ist damit abgeloest — es entsteht keine zweite, sie wird ueberschrieben.
   Die Regionenueberschrift der Maßnahmenkarte steht hier bewusst NICHT: sie
   gehoert ausschliesslich jener Karte, und ihr Vertrag (STEP 7 in
   `measures_working_surface_i1`) haelt sie auf das Maßnahmen-Fokuspanel
   gescoped. Falle: dieser Vertrag scannt ZEILEN — der Klassenname darf hier
   auch nicht in Prosa auftauchen. */
.case-workspace-workpanel .question-workbench-focus .measure-detail-label,
.case-workspace-prozess-workbench .case-workspace-workpanel .measure-detail-label {
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

/* ==================================================================
   GEN7-UX-PRUEFUNG-WORK-SURFACE-GRAMMAR-CONVERGENCE-I1
   GEMEINSAME ARBEITSFLAECHEN-GRAMMATIK DES FOKUSPANELS

   MEASURES = REFERENCE WORK-SURFACE GRAMMAR.

   Alle Werte dieses Blocks sind LIVE an der Maßnahmen-Fokuskarte gemessen
   (.aw-row.wb-card.measure-workbench-focus): Karte ohne Eigenpolsterung und
   ohne Eigenrahmen, Titel auf der Kartenkante, Body 14px eingerueckt mit
   16px Rhythmus, Detailabschnitte als rasterfoermige Label/Wert-Paare ohne
   eigene Box, Fussaktionen LINKS.

   Vorher fuehrten die vier Flaechen desselben Panels drei verschiedene
   Grammatiken: Maßnahmen 0px Kartenpolsterung / Titel bei x=628,
   Prueffrage und Rechtsbezug 16px 18px / Titel bei x=646, und die
   Verarbeitungstaetigkeit als eingerueckte SEKTION bei x=653 mit eigener
   Kartenkontur (Radius 12px) -- also Karte-in-Karte.

   Es entsteht KEINE neue parallele Grammatik: dieser Block verallgemeinert
   die bereits bestehende Referenzgrammatik auf die drei uebrigen Flaechen
   desselben Panels. Fachowner, Renderer, Draft-, Save- und Dirty-Owner
   bleiben unberuehrt.
   ================================================================== */

/* 1 -- Karte: keine Eigenpolsterung, keine zweite Kontur. */
.case-workspace-workpanel > .wb-card.question-workbench-focus,
.case-workspace-workpanel > .wb-card.case-workspace-legal-focus,
.case-workspace-workpanel > .case-workspace-section.case-workspace-hosted-section {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

/* 2 -- Kopf auf der Kartenkante, wie in der Referenz. */
.case-workspace-workpanel > .wb-card.question-workbench-focus > .question-collapse-header,
.case-workspace-workpanel > .wb-card.case-workspace-legal-focus > .wb-card-header,
.case-workspace-workpanel > .case-workspace-hosted-section > .case-workspace-hosted-header {
    padding: 0;
    align-items: flex-start;
}

/* Badge UEBER dem Titel, Titel linksbuendig auf der Kartenkante -- wertgleich
   zur geteilten Titelklammer `.wb-card-titlewrap` (Spalte, 4px, flex 1 1 auto).
   Ohne diese Zeile bleibt die Kopfzeile eine Reihe: Badge und Titel stehen
   nebeneinander, die Klammer kollabiert auf 1px Breite und der Titel wird
   zentriert -- live gemessen bei x=776 statt x=628. */
.case-workspace-workpanel > .case-workspace-hosted-section .case-workspace-hosted-headline {
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

/* 3 -- Body: 16px Abstand zum Kopf, 14px Einzug, 16px Rhythmus. */
.case-workspace-workpanel > .wb-card.question-workbench-focus > .question-body.question-collapse-content,
.case-workspace-workpanel > .wb-card.case-workspace-legal-focus > .wb-card-body,
.case-workspace-workpanel > .case-workspace-hosted-section > .case-workspace-host-body {
    margin-top: 16px;
    padding: 0 0 0 14px;
    gap: 16px;
}

/* 4 -- Detailabschnitte der Verarbeitung folgen derselben Rastergrammatik
   wie Maßnahmen, Prueffragen und Rechtsbezuege (vgl. die gleichlautende
   Regel der Referenzflaeche). */
.case-workspace-workpanel .case-workspace-processing-summary .aw-measure-detail-section,
.case-workspace-workpanel .case-workspace-processing-summary .aw-measure-detail-section-wide {
    min-width: 0;
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.case-workspace-workpanel .case-workspace-processing-summary .measure-detail-label {
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

/* 4b -- Kopf der Verarbeitungstaetigkeit: Badgezeile ueber dem Titel und
   Titelgewicht wie in der Referenz. Der Sektionstitel ist ein <h2> und trug
   als einziges der vier Fokuspanel-Titelelemente 700 statt 600. Die
   Badge-Werte sind wertgleich zur bereits konvergierten Badge-Auspraegung
   dieses Panels (Radius 20px, 4px 10px, 11px/700, #eef2ff). */
.case-workspace-workpanel > .case-workspace-hosted-section .case-workspace-section-title {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
}

.case-workspace-workpanel .case-workspace-hosted-metaline {
    margin-bottom: 4px;
}

.case-workspace-workpanel .case-workspace-hosted-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 10px;
    border: 0;
    border-radius: 20px;
    background: #eef2ff;
    color: #334155;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.1;
}

/* 5 -- Fussaktionen LINKS. Die Referenz fuehrt ihre Fussaktionen am linken
   Rand (.aw-measure-footer-actions); .dsb-note-actions traegt als geteilte
   Basis flex-end und war der einzige Grund, aus dem die Prueffragenkarte
   ihre Aktionen rechts fuehrte. */
.case-workspace-workpanel > .wb-card.question-workbench-focus .dsb-note-actions,
.case-workspace-workpanel > .wb-card.case-workspace-legal-focus .dsb-note-actions {
    justify-content: flex-start;
}

/* 6 -- Verarbeitung: Arbeitsflaechen-Typografie statt Dokumentfliesstext.
   Der Gen3-Rumpf erbte 16px; die uebrigen drei Flaechen sprechen in 13px. */
.case-workspace-workpanel .case-workspace-processing-summary {
    display: flex;
    flex-direction: column;
    gap: 16px;
    font-size: 13px;
}

/* GEN7-UX-PROCESSING-EDITOR-VISUAL-GRAMMAR-I1: dieselbe Regel gilt jetzt fuer
   BEIDE Modi derselben Flaeche. Im Bearbeitungsmodus erbten Beschreibung und
   Hilfetext bisher den 16px-Fliesstext des Gen3-Rumpfes und wirkten damit
   staerker als der Titel. Kein neuer Wert -- es ist der bereits fuer diese
   Flaeche akzeptierte. */
.case-workspace-workpanel .case-workspace-processing-summary .pa-help-text,
.case-workspace-workpanel .case-workspace-processing-summary .pa-missing-list,
.case-workspace-workpanel .case-workspace-processing-summary .pa-gate-reasons,
.case-workspace-workpanel .case-workspace-processing-summary .pa-card-sub,
.case-workspace-workpanel .case-workspace-processing-edit .pa-help-text,
.case-workspace-workpanel .case-workspace-processing-edit .pa-missing-list,
.case-workspace-workpanel .case-workspace-processing-edit .pa-card-sub {
    font-size: 12px;
    line-height: 1.45;
}

/* GEN7-ENG-LEGAL-FACT-COMPLETENESS-PROJECTION-I1: Listengrammatik der
   Completeness-Hinweise. Rein praesentational -- kein neues Token, keine neue
   Farbe, keine Statusflaeche; Groessen stammen aus der bereits akzeptierten
   Skala dieser Flaeche. */
.pa-legal-completeness .pa-missing-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.pa-legal-completeness .pa-missing-list > li {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.pa-legal-completeness-title {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
}

.pa-legal-completeness .pa-help-text {
    margin: 0;
}

/* ==================================================================
   GEN7-UX-PROCESSING-EDITOR-HIERARCHY-CLEANUP-I1
   STATUS ZURUECKGENOMMEN -- NUR VISUELL

   Live gemessen stand die Aufmerksamkeit auf dem Kopf: zehn gruen gefuellte
   "Vollständig"-Pillen (bg #e6f7ee) dominierten den Editor, waehrend der
   PROBLEMzustand "Nicht ausgefüllt" mit einer fast weissen Flaeche
   (bg #fafbfc) leiser war als der erledigte.

   Zurueckgenommen wird deshalb ausschliesslich die ERLEDIGT-Auspraegung, und
   nur im Bearbeitungsmodus dieser Flaeche. "Teilweise" (Warnton) und
   "Nicht ausgefüllt" bleiben vollstaendig unveraendert und ragen dadurch
   heraus.

   Es aendert sich NICHTS an der Statussemantik: gleiche Labels, gleiche
   Klassen, gleiche Berechnung, gleiche Punktmarkierung. Umgesetzt allein
   ueber bereits bestehende Tokens -- keine neue Klasse, keine neue Farbe,
   kein neuer Wert.
   ==================================================================
   HINWEIS zur Umsetzung: bewusst OHNE Umbelegung der Pillen-Variablen.
   `documentation_working_surface_i1` schneidet seinen CSS-Block bis DATEIENDE
   und verbietet darin jede `--token:`-Zeile; eine Variablenzuweisung hier
   haette diesen fremden, gruenen Vertrag rot gefaerbt, obwohl kein neues
   Token entsteht (bekannte Slice-bis-EOF-Falle). Deshalb direkte
   Eigenschaften mit BESTEHENDEN Tokens. */
.case-workspace-processing-edit .pa-section-pill.is-status-success {
    background: transparent;
    border-color: var(--line);
    color: var(--muted);
    font-weight: 500;
}

.case-workspace-processing-edit .pa-section-pill.is-status-success::before {
    background: var(--muted);
}

/* Der bestehende Kartenkopf bleibt eine Zeile: Titel/Beschreibung bilden links
   eine Spalte; Status und Chevron bleiben als Kopfmetadaten rechts oben. */
.case-workspace-processing-edit .pa-card-meta,
.case-workspace-processing-edit .pa-section .wb-card-chevron {
    align-self: flex-start;
}

/* Bereichstitel des Editors auf der bereits etablierten Gen7-Titelrolle
   (15px/600 -- derselbe Wert, den der Bereichstitel und die Kartentitel
   dieser Flaeche fuehren). Gen3 behaelt unveraendert seine eigene
   Auspraegung; es entsteht kein dritter Wert. */
.case-workspace-workpanel .case-workspace-processing-edit .pa-section .wb-card-title {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.case-workspace-processing-edit {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}

@media (min-width: 900px) {
    .case-workspace-processing-edit {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .case-workspace-processing-edit > .pa-section:not(.is-collapsed),
    .case-workspace-processing-edit > .pa-section[data-pa-section="activity"],
    .case-workspace-processing-edit > .is-span-full {
        grid-column: 1 / -1;
    }
}

/* 7 -- Keine Karte in der Karte: die beiden aufklappbaren Bereiche der
   Verarbeitung (Dokument-Reife, Pflichtangaben) tragen die dezente
   Flaechengrammatik der geteilten Detailgruppe statt einer zweiten
   Kartenkontur. Der Aufklappmechanismus bleibt unveraendert. */
.case-workspace-workpanel .case-workspace-processing-summary > .wb-card.pa-section {
    border: 1px solid var(--line);
    border-radius: var(--r-2);
    background: var(--surface-soft);
    box-shadow: none;
    padding: 10px 12px;
}

.case-workspace-workpanel .case-workspace-processing-summary > .wb-card.pa-section > .wb-card-header {
    padding: 0;
}

.case-workspace-workpanel .case-workspace-processing-summary > .wb-card.pa-section .wb-card-title {
    font-size: 12px;
    font-weight: 600;
}

/* ==================================================================
   GEN7-UX-CALM-WORKBENCH-PRUEFUNG-I1
   RUHIGERE VISUELLE HIERARCHIE DER PRUEFFLAECHE

   Scope: ausschliesslich `.case-workspace-prozessstatus-workbench` -- die
   Arbeitszone des Schritts "Prüfung". Maßnahmen, Dokumentation,
   DSB-Entscheidung, Fallübersicht, Fallaufnahme und die klassischen
   Gen3-Flaechen teilen keinen dieser Selektoren.

   ROOT CAUSE der visuellen Unruhe ist verschachteltes Kartenchrome, nicht
   zu viel Inhalt: die Fokusspalte fuehrte Panelkarte (Rahmen + Schatten)
   -> Fragenkarte -> zwei Detailgruppen mit eigenem Rahmen, eigener
   Fuellung und einer inneren Senkrechttrennlinie. Die Arbeitsliste daneben
   trug dieselbe Kartenstaerke wie die Arbeitsflaeche und stand damit
   gleichrangig neben ihr statt darunter.

   Dieser Block aendert AUSSCHLIESSLICH Praesentation: kein Renderer, kein
   DOM, kein Owner, keine SoT, keine Fachlogik, keine Statussemantik, keine
   neue Klasse, kein neues Token, kein neuer Interaktionszustand. Die
   Basisregeln `.measure-detail-group` (DAC-16) und `.measure-detail-row`
   bleiben unveraendert -- hier steht nur eine Pruefungs-gescopte
   Auspraegung derselben Grammatik.
   ================================================================== */

/* 1 -- Rangfolge der beiden Spalten. Die Arbeitsliste ist Auswahl, nicht
   Arbeit: sie tritt auf die bereits bestehende weiche Flaeche zurueck und
   verliert ihren Schatten. Die Fokusspalte bleibt die einzige weisse
   Flaeche der Zone und dominiert dadurch, ohne groesser zu werden.
   Rahmen, Radius, Innenabstaende und Geometrie bleiben unveraendert. */
.case-workspace-prozessstatus-workbench > .case-workspace-worklist {
    background: var(--surface-soft);
    box-shadow: none;
}

.case-workspace-prozessstatus-workbench > .case-workspace-workpanel {
    box-shadow: none;
}

/* 2 -- Karte in der Karte aufgeloest. Die beiden Detailgruppen der
   Prueffragenkarte ("Prüfbasis", "DSB-Notiz") waren die einzigen Stellen
   der Zone mit einem Kasten in einem Kasten in einem Kasten. Sie bleiben
   als Gruppe erhalten -- als flacher Block mit genau einer ruhigen
   Trennlinie statt Rahmen, Fuellung und Radius. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .measure-detail-group,
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .measure-detail-group + .measure-detail-group {
    margin-top: 16px;
    padding-top: 14px;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    overflow: visible;
}

/* 3 -- Die Detailabschnitte richten sich an der Kartenkante aus statt in
   einer eigenen Innenpolsterung zu sitzen; die senkrechte Trennlinie
   zwischen "Rechtsbezug" und "Bewertung" weicht dem Spaltenabstand. Eine
   Trennlinie weniger bei unveraenderter Zweispaltigkeit; auf schmalen
   Viewports bleibt der bestehende 720px-Owner allein zustaendig. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .measure-detail-group > .measure-detail-row {
    column-gap: 24px;
}

.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .measure-detail-group > .measure-detail-row
> .aw-measure-detail-section {
    padding: 0;
}

.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .measure-detail-group > .measure-detail-row
> .aw-measure-detail-section + .aw-measure-detail-section {
    border-left: 0;
}

/* ------------------------------------------------------------------
   GEN7-UX-CALM-WORKBENCH-PRUEFUNG-I1 / PO-KORREKTUR 1
   Zwei Befunde der PO-Sichtpruefung, beide rein praesentational und im
   selben Pruefungs-Scope. Kein DOM, kein Renderer, kein Handler, keine
   Statussemantik, keine neue Klasse, kein neues Token.
   ------------------------------------------------------------------ */

/* 4 -- DSB-NOTIZ: EIN Eingabebereich statt Karte in Karte in Karte.
   Die Textarea trug Kartenwerte (Radius `--r-4`, 16px Innenabstand,
   220px Mindesthoehe) und wirkte dadurch als weitere Ebene innerhalb der
   Detailgruppe. Sie behaelt ihren Rahmen — ohne ihn waere das Feld nicht
   mehr eindeutig als editierbar erkennbar — spricht aber in der
   Feldgrammatik der Flaeche statt in Kartengrammatik. Werte stammen
   ausschliesslich aus bestehenden Tokens dieser Flaeche. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .dsb-note-ta {
    min-height: 150px;
    padding: var(--space-3);
    border-radius: var(--r-2);
}

/* Die Speichern-Zeile gehoert fachlich zur Notiz und stand bisher hinter
   einer eigenen Oberlinie — die dritte Trennung innerhalb desselben
   Bereichs. Sie entfaellt; der Abstand bleibt. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .dsb-note-actions {
    margin-top: var(--space-3);
    padding-top: 0;
    border-top: 0;
}

/* 5 -- BEWERTUNG: kompakte Zustandsauswahl statt vier Aktionskacheln.
   Die vier Optionen fuellten als 4-Spalten-Raster (`width: 100%`,
   min-height 32px, 7px/13px) die gesamte Kartenbreite und lasen sich
   dadurch als vier Hauptaktionen. Fachlich sind sie EINE Auswahl: sie
   stehen jetzt als zusammenhaengende Gruppe in ihrer Inhaltsbreite.

   Unveraendert bleiben Reihenfolge, Beschriftungen, Handler, die
   Statussemantik und die aktiven Zustandsowner
   (`.dsb-status-button.is-active/.is-pending` bleiben alleinige
   Farbquelle) — die Auswahl bleibt eindeutig erkennbar. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .question-status-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .dsb-status-button {
    width: auto;
    min-height: 30px;
    padding: 4px 12px;
    font-size: 12px;
}

/* ------------------------------------------------------------------
   GEN7-UX-CALM-PRUEFFRAGEN-FOCUS-I2
   INFORMATIONSHIERARCHIE DER PRUEFFLAECHE: LINKS NAVIGATION, RECHTS ARBEIT

   PO-Befund nach I1: die Flaeche ist weiterhin zu voll -- nicht wegen
   fehlender Reduktion von Rahmen, sondern weil beide Spalten dieselbe
   Gewichtung tragen. Die Arbeitsliste liest sich als zweite Hauptflaeche
   statt als Navigation.

   Dieser Block stellt die Rangfolge her. Er entfernt keine Angabe, keine
   Aktion und keinen Zustand; Renderer, Handler, Auswahlsemantik, Status,
   Draft, Save und Dirty Guard bleiben unberuehrt. Alle Selektoren sind auf
   `.case-workspace-prozessstatus-workbench` gescopt.
   ------------------------------------------------------------------ */

/* 6 -- Spaltenverhaeltnis. Desktop fuehrte die Navigation mit 406px und
   32px Rinne -- mehr als ein Drittel der Zone fuer eine Auswahlliste. Sie
   tritt auf 300px zurueck; die Arbeitsflaeche gewinnt 110px ruhige
   Inhaltsbreite, ohne dass ein Element groesser wird.

   Die Regel steht ausdruecklich IM bestehenden Desktop-Breakpoint: eine
   unbedingte Regel haette hier spaeter in der Datei gestanden als der
   Master-Detail-Owner `@media (max-width: 1099px)` und dessen einspaltige
   Stapelung ueberstimmt -- also genau die mobile Projektion zerstoert, die
   dieser Block bewahren soll. Kein neuer Breakpoint: es ist derselbe, in
   dem die 406px-Spur heute definiert wird. */
@media (min-width: 1100px) {
    .case-workspace-prozessstatus-workbench:not(.case-workspace-measures-workbench):not(.case-workspace-documents-workbench) {
        grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
        column-gap: 28px;
    }

    /* 7 -- Die Arbeitsliste ist Navigation, keine Karte. Kontur und Radius
       entfallen; die bereits in I1 gesetzte weiche Flaeche traegt die Spalte
       allein. Innenabstand verdichtet. */
    .case-workspace-prozessstatus-workbench:not(.case-workspace-measures-workbench):not(.case-workspace-documents-workbench) > .case-workspace-worklist {
        padding: 10px 12px;
        border: 0;
        border-radius: 0;
    }

    /* Zeilen einer Navigation statt Karteneintraege: niedriger, enger, und
       nicht ausgewaehlte Eintraege treten hoerbar zurueck. 38px bleibt
       komfortabel klickbar; Auswahlmarkierung (blaue Flaeche + Balken),
       Auswahlsemantik und Handler sind unveraendert. Unterhalb 1100px greift
       keine dieser Regeln -- dort gilt die bestehende Master-Detail-Projektion
       samt ihrer 44px-Touchziele unveraendert weiter. */
    .case-workspace-prozessstatus-workbench:not(.case-workspace-measures-workbench):not(.case-workspace-documents-workbench) .case-workspace-worklist-row {
        min-height: 38px;
        padding: 7px 6px;
        column-gap: 8px;
    }

    .case-workspace-prozessstatus-workbench:not(.case-workspace-measures-workbench):not(.case-workspace-documents-workbench) .case-workspace-worklist-title {
        font-weight: 500;
        color: var(--text-soft);
    }

    .case-workspace-prozessstatus-workbench:not(.case-workspace-measures-workbench):not(.case-workspace-documents-workbench) .case-workspace-worklist-row.is-selected
    .case-workspace-worklist-title {
        font-weight: 600;
        color: var(--ink);
    }

    .case-workspace-prozessstatus-workbench:not(.case-workspace-measures-workbench):not(.case-workspace-documents-workbench) .case-workspace-worklist-head {
        padding-bottom: 8px;
    }

    .case-workspace-prozessstatus-workbench:not(.case-workspace-measures-workbench):not(.case-workspace-documents-workbench) .case-workspace-worklist-head-title {
        font-size: 13px;
    }

    .case-workspace-prozessstatus-workbench:not(.case-workspace-measures-workbench):not(.case-workspace-documents-workbench) .case-workspace-worklist-group-head {
        padding: 10px 2px 4px;
    }

    .case-workspace-prozessstatus-workbench:not(.case-workspace-measures-workbench):not(.case-workspace-documents-workbench) .case-workspace-worklist-group-title {
        font-size: 12px;
    }

    .case-workspace-prozessstatus-workbench:not(.case-workspace-measures-workbench):not(.case-workspace-documents-workbench) .case-workspace-worklist-group-icon {
        width: 14px;
        height: 14px;
    }

    .case-workspace-prozessstatus-workbench:not(.case-workspace-measures-workbench):not(.case-workspace-documents-workbench) .case-workspace-worklist-footer {
        padding-top: 8px;
        margin-top: 0;
    }
}

/* Der Fragetext ist der Arbeitsgegenstand. Auch der spaetere Prozessstatus-
   Owner verwendet die gemeinsame Titelrolle fuer das Fokuspanel. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .question-collapse-title {
    font-size: var(--wb-focus-title-size);
    line-height: 1.3;
}

/* 9 -- Metabadges sind Einordnung, nicht Ueberschrift: kompakter und
   dichter am Titel. Dieselben Badges, dieselbe Semantik, dieselben Farben. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .question-source-tag {
    min-height: 20px;
    padding: 2px 8px;
    font-size: 10.5px;
}

.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .question-meta-line {
    gap: 6px;
    margin-top: 0;
    margin-bottom: var(--space-3);
}

.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .question-collapse-header {
    padding-bottom: 6px;
}

/* 10 -- Leeres "Warum relevant" erzeugt kaum noch Masse: Beschriftung und
   die ehrliche Leeraussage stehen in einer Zeile statt in zwei Bloecken.
   Sobald Inhalt vorhanden ist, greift diese Regel nicht -- der Block bleibt
   dann unveraendert vollstaendig sichtbar. Keine Collapse-Logik, kein
   Ausblenden, keine neue Klasse: der bestehende Marker `.is-empty` traegt
   die Aussage bereits. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .measure-detail-row.is-row-auftrag:has(.aw-source-cell.is-empty)
> .aw-measure-detail-section {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
}

.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .measure-detail-row.is-row-auftrag:has(.aw-source-cell.is-empty)
.measure-detail-label {
    margin-bottom: 0;
}

/* 11 -- Vertikale Dichte der Arbeitsebenen. Zusammengehoerendes eng, neue
   Fachebene mit erkennbarem Abstand -- die in I1 gesetzten Trennlinien
   bleiben, nur ihr Rhythmus wird knapper. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .measure-detail-group,
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .measure-detail-group + .measure-detail-group {
    margin-top: 14px;
    padding-top: 12px;
}

/* Die leere Notiz beansprucht weniger Hoehe. `resize: vertical` und der
   Save-/Dirty-Owner bleiben unveraendert; das Feld waechst wie bisher. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .dsb-note-ta {
    min-height: 118px;
}

/* 12 -- Fussaktionen: eine Primaeraktion, Bearbeiten sekundaer,
   Archivieren zurueckhaltend. Es wird KEINE Aktion ergaenzt und keine
   Speichern-Logik erfunden -- die vorhandenen Knoepfe behalten Reihenfolge,
   Beschriftung und Handler. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.question-workbench-focus .question-entity-actions {
    margin-top: var(--space-3);
    padding-top: var(--space-3);
    gap: 6px;
}

/* ==================================================================
   GEN7-UX-CALM-PRUEFUNG-TOP-CONTEXT-I3
   ORIENTIERUNGSZONE OBEN -- ARBEITSZONE DARUNTER

   PO-Livebefund nach I1/I2: die Prueffrage selbst ist ruhig, aber die
   Arbeit beginnt zu weit unten. Ursache ist NICHT ein Sticky-Problem --
   die Pruefung hat bereits genau eine gehaftete Zone: `.case-workspace-
   progress` (Stepper). Hero, Fallbeschreibung und Prüfumfang stehen im
   normalen Dokumentfluss und scrollen bereits vollstaendig weg; die
   Subnavigation ist Teil DESSELBEN einen Stepperknotens und damit keine
   zweite gehaftete Navigation. Es entsteht hier deshalb keine neue
   Sticky-Bar, kein Arbeitsheader, kein zweiter Scrollcontainer und keine
   Aenderung am Scrollowner `.workbench-main`.

   Uebrig bleibt reine vertikale Dichte: die Fallbeschreibung traegt im
   Arbeitsmodus unveraendert ihre Case-Home-Zone-B-Polsterung (20px 18px),
   obwohl sie dort Kontext und nicht Hauptinhalt ist. Dieser Block nimmt
   ausschliesslich Polsterung und Abstaende zurueck -- keine Information,
   keine Aktion, keine Zeile und kein Zustand entfaellt.

   Scope ist ausschliesslich `.is-workmode-prozessstatus` (die eine Klasse,
   die die Shell nur fuer die Pruefflaeche setzt). Maßnahmen, DSB-
   Entscheidung, Dokumentation und die Fallübersicht bleiben unberuehrt.

   AUSDRUECKLICH NICHT angefasst: `.case-workspace-body { gap }` und der
   Sticky-Anker. Beide bestimmen zusammen die Ausloeseschwelle des
   Compact-Steppers; eine Aenderung dort waere eine Aenderung am
   eingefrorenen Stepper-Trigger (STEPPER = FROZEN).
   ================================================================== */

/* GEN7-UX-CASE-CONTEXT-CONSISTENCY-I1 -- SUPERSEDED DURCH PO-BEFUND.

   Hier standen vier Regeln, die den GEMEINSAMEN Fallkopf (Hero-Polsterung,
   Abstand der Kopfzeile) und die GEMEINSAME Zone B (Fallbeschreibung,
   Polsterung 20px 18px -> 12px 16px) ausschliesslich auf der Pruefflaeche
   verdichtet haben. Sie waren auf `.is-workmode-prozessstatus` gescopt und
   damit die einzige Stelle im Produkt, an der derselbe Fallkontext je nach
   Reiter eine andere Darstellung bekam -- genau die Reiterabhaengigkeit, die
   GEN7-UX-SHARED-CASE-HEADER-OWNER-I1 beendet hat.

   Datenowner, Wert und DOM waren nie betroffen: `buildCaseHeader()` und
   `buildCaseHomeOverviewPrimary()` werden unveraendert und bedingungslos auf
   jedem Case-Reiter montiert, beide lesen dieselbe `resolveCaseContext()`
   /`vm.descriptionSummary`-Quelle. Abweichend war ausschliesslich die
   Projektion.

   CASE CONTEXT CONTRACT: Der gemeinsame Fallkontext (Fallkopf + Zone B)
   folgt auf allen Case-Reitern der einen Basisgrammatik unter
   `.case-workspace-shell.has-shared-case-header`. Nur der Arbeitsinhalt
   darunter gehoert der jeweiligen Flaeche.

   Die beiden pruefungs-EIGENEN Dichteregeln dieses Blocks (Prüfumfang,
   Arbeitsflaeche) bleiben unveraendert bestehen -- sie betreffen den
   Arbeitsinhalt der Pruefung, nicht den gemeinsamen Fallkontext. */

/* Prüfumfang bleibt vollstaendig erhalten (Bezeichnung, beide Aussagen,
   Trennzeichen); nur der Abstand zur Arbeitsflaeche wird kuerzer. */
.case-workspace-shell.is-workmode-prozessstatus
.case-workspace-prozess-summary.is-compact {
    margin-bottom: 8px;
}

/* Die Arbeitsflaeche darf frueher beginnen: obere Polsterung auf den
   bereits vorhandenen unteren Wert der eigenen Regel. */
.case-workspace-shell.is-workmode-prozessstatus
.case-workspace-prozessstatus-workbench {
    padding-top: 18px;
}

/* ==================================================================
   GEN7-UX-CALM-WORKBENCH-CASE-SURFACES-I1
   UEBERTRAGUNG DER CALM-GRAMMATIK VON PRUEFFRAGEN AUF DIE UEBRIGEN
   CASE-SURFACES

   Referenz ist die vom PO akzeptierte Pruefflaeche (I1 / PO-KORREKTUR 1 /
   I2 / I3). Uebertragen werden ausschliesslich Prinzipien, keine
   Pixelwerte: Navigation sekundaer, Arbeitsflaeche dominant, weniger
   Karte-in-Karte, weniger Rahmen und Schatten, Farbe nur mit Bedeutung.

   Jede Regel ist auf ihre Surface gescopt. Es entsteht keine globale
   Basisregel, keine neue Klasse, kein neues Token, kein DOM, kein
   Renderer, kein Interaktionszustand und keine Fachlogik.
   ================================================================== */

/* ------------------------------------------------------------------
   A -- FALLUEBERSICHT

   Befund: Orientierungszeile (Prioritaet 1), Entscheidungsbasis
   (Prioritaet 2) und Dashboardzeile (Prioritaet 4: Fallstatus,
   Aktivitaeten, Team/Review) tragen dieselbe Kartenstaerke -- weisse
   Flaeche, Rahmen und Schatten. Die Seite liest sich dadurch als Raster
   gleich wichtiger Kacheln.

   Genau eine Aenderung: die Karten der Dashboardzeile treten auf die
   bereits bestehende weiche Flaeche zurueck und verlieren ihren
   Schatten. Rahmen, Radius, Polsterung, Inhalte, Zaehlungen,
   Navigationen und Aktionen bleiben unveraendert -- die Zeile bleibt
   vollstaendig, nur nicht mehr gleichrangig. */
.case-workspace-shell.is-overview .case-workspace-case-home-dashboard
.wb-card {
    background: var(--surface-soft);
    box-shadow: none;
}

/* ------------------------------------------------------------------
   B -- RECHTSGRUNDLAGEN
   C -- VERARBEITUNGSTAETIGKEITEN

   Strukturbefund vorweg: beide sind KEINE eigenen Workspace-Sections.
   `CASE_WORKSPACE_SECTIONS` fuehrt vier Eintraege (prozessstatus,
   massnahmen, entscheidung, dokumentation); Rechtsbezug und Verarbeitung
   sind Arbeitseinheitstypen INNERHALB der Pruefung und teilen deren
   Arbeitsliste und Fokuspanel. Der komplette Rahmen der Calm-Grammatik
   (I1/I2/I3) gilt fuer sie damit bereits -- offen bleibt nur der Inhalt
   des Fokuspanels.

   B, Befund: ein OFFENER Rechtsbezug wird in eine bernsteinfarbene Karte
   gelegt (`.legal-context-hintgroup--primary`: Rahmen, Flaeche, Radius
   18px). Sie liegt in der weissen Fokuskarte und enthaelt ihrerseits den
   Bezugseintrag -- Karte in Karte in Karte, und die Farbe entsteht nicht
   aus einer Aussage, sondern daraus, DASS gerade daran gearbeitet wird.
   Nach der Farbgrammatik ist Amber Aufmerksamkeit, nicht Arbeitsobjekt.

   Die Flaeche wird deshalb im Fokuspanel flach; die Aussage bleibt
   vollstaendig erhalten, weil sie ohnehin im Text steht (Zwischenkopf in
   Amber, Statuszeile der Arbeitseinheit, unveraenderte Aktionen
   Uebernehmen/Ignorieren/Bearbeiten). Die geteilte Basisklasse bleibt
   unangetastet -- der Right Rail nutzt dieselbe Klasse und behaelt seine
   bernsteinfarbene Karte. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.case-workspace-legal-reference-detail.legal-context-hintgroup--primary,
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.case-workspace-legal-reference-detail.legal-context-hintgroup:not(.is-secondary) {
    margin-top: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

/* C, Befund: der Wrapper der Verarbeitung ist bereits flach
   (`.case-workspace-workpanel > .case-workspace-hosted-section`), und der
   Editor wurde in GEN7-UX-PROCESSING-EDITOR-HIERARCHY-CLEANUP-I1 bereits
   auf diese Grammatik gezogen. Offen bleibt nur, dass die Fachgruppen als
   weisse Karten in der weissen Fokuskarte stehen. Sie behalten Rahmen,
   Radius, Polsterung, Titel und alle 13 Angaben -- sie treten lediglich
   auf dieselbe weiche Flaeche zurueck, die auch die Arbeitsliste traegt,
   und verlieren ihren Schatten. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.case-workspace-hosted-section .case-workspace-ref-card {
    background: var(--surface-soft);
    box-shadow: none;
}

/* ------------------------------------------------------------------
   D -- MASSNAHMEN

   Strukturbefund: die Maßnahmenflaeche verwendet DIESELBE Containerklasse
   wie die Pruefung (`case-workspace-prozessstatus-workbench
   case-workspace-measures-workbench`). Die Rangfolge-Regel aus I1
   (Arbeitsliste weich und schattenlos, Fokuspanel als einzige weisse
   Flaeche) galt damit bereits fuer Maßnahmen -- inhaltlich genau das, was
   dieser Auftrag verlangt, und deshalb bewusst BEIBEHALTEN.

   Die Geometrie- und Typografieregeln aus I2 galten dagegen ebenfalls
   und ueberstimmten die eigenen, vermessenen Werte des Maßnahmen-Owners
   (`measures_master_alignment_i2`: 0.52fr-Spalte;
   `measures_worklist_title_readability_i4`: bis zu zwei Titelzeilen).
   Das war unbeabsichtigt. Die elf I2-Regeln tragen deshalb ab hier
   `:not(.case-workspace-measures-workbench)`; Maßnahmen bekommt seine
   vermessene Navigationsgeometrie zurueck.

   Bleibt als echte Calm-Arbeit auf dieser Flaeche das Fokuspanel: die
   Risikoentscheidungskarte steht als zweite gleich starke weisse Karte
   neben der Maßnahmenkarte, obwohl sie Kontext ist, und der
   Bearbeitungsbereich legt eine dritte weisse Karte in die weisse
   Fokuskarte. Beide treten zurueck; Rahmen, Felder, Aktionen, Handler und
   jede Angabe bleiben unveraendert. */
.case-workspace-measures-workbench .case-workspace-workpanel
.measure-risk-decision-card {
    background: var(--surface-soft);
    box-shadow: none;
}

.case-workspace-measures-workbench .case-workspace-workpanel
.aw-edit-panel {
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    padding: 12px 0 0;
}

/* ------------------------------------------------------------------
   E -- DSB-ENTSCHEIDUNG

   Befund: die Flaeche fuehrt sechs gleich gerahmte weisse Karten --
   Entscheidung, Uebergabe/Review, Freigabegate, Dokumentenbruecke,
   Export und Freigabestatus. Die eigentliche fachliche Entscheidung ist
   darin optisch eine von sechs. Der aeussere Host ist bereits flach
   (GEN7-UX-WORKBENCH-VISUAL-HIERARCHY-AND-SURFACE-CLEANUP-I1), die
   Gleichrangigkeit entsteht also innerhalb.

   Genau eine Karte bleibt Karte: `.dsb-decision-section-action` -- die
   Entscheidung samt ihrer Begruendung (Prioritaet 1 und 2). Die
   uebrigen fuenf werden flache, durch eine Haarlinie getrennte Bloecke.
   Sie behalten Ueberschrift, Inhalt, Status, Zaehlung, Aktionen und
   Handler vollstaendig; es entfaellt ausschliesslich Kartenchrome.

   Entscheidungs-, Review-, Rollen- und Gate-Semantik bleiben bei ihren
   Ownern; die geteilte Basisklasse `.dsb-decision-section` bleibt fuer
   den klassischen Gen3-Reiter unveraendert. */
.case-workspace-hosted-section[data-host-section="entscheidung"]
.dsb-decision-section:not(.dsb-decision-section-action) {
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    margin-bottom: 0;
    padding: 14px 0 4px;
}

/* ------------------------------------------------------------------
   F -- DOKUMENTATION

   Strukturbefund: auch die Dokumentation nutzt die Containerklasse
   `case-workspace-prozessstatus-workbench` (plus
   `case-workspace-documents-workbench`). Dieselbe Lage wie bei
   Maßnahmen: die Rangfolge-Regel aus I1 galt bereits und bleibt --
   Dokumentenbestand weich, Arbeitspanel dominant. Die I2-Geometrie
   ueberstimmte dagegen die in
   GEN7-UX-DOCUMENTATION-REFERENCE-VISUAL-CONVERGENCE-I1 /
   -VISUAL-POLISH-I1 vermessene Master/Detail-Spur und die 44px-Zeilen.
   Die elf I2-Regeln tragen deshalb zusaetzlich
   `:not(.case-workspace-documents-workbench)`.

   Darueber hinaus ist auf dieser Flaeche NICHTS zu tun, und es wird
   bewusst nichts erfunden: Metadatenraster, Historie und Timeline sind
   bereits flache, durch Haarlinien getrennte Bloecke ohne eigene
   Kartenoptik (`.doc-shell-meta`, `.doc-shell-history`,
   `.doc-shell-timeline`), die Schnellaktionszone ist eine reine
   Aktionsreihe, und der Host-Wrapper wurde bereits entkleidet. Die
   Dokumentation erfuellt die Calm-Grammatik damit bereits.
   ------------------------------------------------------------------ */

/* ==================================================================
   GEN7-UX-SAAS-MASTER-DETAIL-NORMALIZATION-I1
   EINE ARBEITSGRAMMATIK FUER RECHTSGRUNDLAGEN, VERARBEITUNG UND MASSNAHMEN

   Referenz ist die vom PO abgenommene Prueffragen-Fokuskarte
   (GEN7-UX-CALM-WORKBENCH-PRUEFUNG-I1 / PO-KORREKTUR 1 / PO-CALM-FOCUS-I2 /
   PO-CALM-TOP-CONTEXT-I3). Sie wird von diesem Block NICHT veraendert; die
   drei Zielflaechen werden an sie herangezogen.

   Strukturbefund: Rechtsgrundlagen und Verarbeitung sind keine eigenen
   Workspace-Sections, sondern Arbeitseinheitstypen der Pruefung. Sie teilen
   deren Navigationsspalte und deren Fokuspanel und tragen die
   Master-Grammatik der Referenz (Spurbreite, Rinne, Zeilenhoehe,
   Zeilentypografie) damit bereits unveraendert. Offen war allein der Inhalt
   der Arbeitskarte.

   Normalisiert werden ausschliesslich Rollen, die auf allen drei Flaechen
   dieselbe sind: der Titel des Arbeitsgegenstands, der Typ-/Metabadge im
   Kartenkopf und die Gruppierung innerhalb der Arbeitskarte. Fachliche
   Unterschiede bleiben ausdruecklich bestehen -- Prioritaet, Faelligkeit,
   Nachweis, Restrisiko, Verantwortlichkeit, Verlauf, Massnahmenstatus,
   Uebernehmen/Ignorieren/Reaktivieren und die Pflichtangaben der
   Verarbeitung sind unveraendert.

   Kein Renderer, kein DOM, kein Owner, keine SoT, keine Fachlogik, keine
   Statussemantik, keine neue Klasse, kein neues Token, kein neuer
   Breakpoint und kein neuer Interaktionszustand. Kein Selektor dieses
   Blocks beruehrt den Stepper, die Prueffragenkarte, die Seitenleisten, die
   Fallübersicht, die DSB-Entscheidung, die Dokumentation oder die
   Fallaufnahme.
   ================================================================== */

/* A -- RECHTSGRUNDLAGEN: die Fachgruppe der Arbeitskarte war der letzte
   Kasten im Kasten dieser Flaeche. Sie bleibt als Gruppe erhalten und
   spricht in derselben flachen Haarlinien-Grammatik, die die Referenzkarte
   seit der Calm-Konvergenz traegt. Die geteilte Basisregel der Gruppe
   bleibt unangetastet: der Vertrag DAC-16 fordert dort Linie UND Flaeche,
   und die Massnahmenflaeche behaelt sie unveraendert. */
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.case-workspace-legal-focus .measure-detail-group,
.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.case-workspace-legal-focus .measure-detail-group + .measure-detail-group {
    margin-top: 14px;
    padding-top: 12px;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    overflow: visible;
}

.case-workspace-prozessstatus-workbench .case-workspace-workpanel
.case-workspace-legal-focus .measure-detail-group > .measure-detail-row
> .aw-measure-detail-section {
    padding: 0;
}

/* B -- VERARBEITUNG: der Titel der Taetigkeit ist der Arbeitsgegenstand
   dieser Flaeche und traegt deshalb dieselbe Titelrolle wie der Fragetext
   der Referenz. Reine Typografie; Kopfaufbau, Badge, Statuszone und alle
   Aktionen bleiben unveraendert. */
.case-workspace-shell.is-workmode-prozessstatus .case-workspace-workpanel
> .case-workspace-hosted-section .case-workspace-section-title {
    font-size: 16px;
    line-height: 1.3;
}

/* Derselbe Typ-Badge wie im Kartenkopf der Referenz: gleiche Rolle, gleiche
   Groessen- und Schriftgrammatik. Farbe, Radius, Gewicht und Semantik
   bleiben bei ihrem bestehenden Owner -- es entsteht keine zweite
   Badge-Komponente und keine neue Farbaussage. */
.case-workspace-shell.is-workmode-prozessstatus .case-workspace-workpanel
.case-workspace-hosted-badge {
    min-height: 20px;
    padding: 2px 8px;
    font-size: 10.5px;
}

/* Die Fachgruppen der Verarbeitung bleiben vollstaendig erhalten -- alle
   Bereiche, alle Titel, alle Angaben, alle Bearbeiten-Einstiege. Sie tragen
   ihre Gruppierung aber nicht mehr als Kachel.

   I1 hatte hier nur die Kontur zurueckgenommen; der PO-Befund nach der
   Sichtpruefung war weiterhin "zehn Karten in einer grossen Karte". Ursache
   sind die verbleibenden drei gleichzeitigen Traeger derselben Aussage:
   eigene Flaeche, eigener Radius und eigene Polsterung. Die Gruppe spricht
   ab hier in derselben Grammatik wie die Fachgruppen der Referenzkarte:
   eine ruhige Linie plus Abstand.

   Ueberschrift, Wert und Bearbeiten-Einstieg bleiben in unveraenderter
   Reihenfolge und Typografie erkennbar. Ausserhalb des Fokuspanels
   (Fallübersicht, Right Rail) bleibt die geteilte Kartengrammatik
   unberuehrt. */
.case-workspace-shell.is-workmode-prozessstatus .case-workspace-workpanel
.case-workspace-hosted-section .case-workspace-ref-card {
    padding: 12px 0 0;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
}

/* Ohne eigene Kachelflaeche brauchen zwei nebeneinanderstehende Zellen den
   Spaltenabstand der Referenzzeilen. Die Zeilenrinne bleibt unveraendert bei
   ihrem bestehenden Rasterowner; hier steht nur die Spaltenrinne, gescopt auf
   die Pruefflaeche. */
.case-workspace-shell.is-workmode-prozessstatus .case-workspace-workpanel
.case-workspace-processing-cards {
    column-gap: 24px;
}

/* C -- MASSNAHMEN: dieselbe Rinne zwischen Navigation und Arbeitsflaeche
   wie auf der Referenzflaeche. Die Spurbreite selbst bleibt der vermessene
   Wert des Massnahmen-Owners (siehe Abschlussbericht, Abschnitt SKIP) --
   sie ist vertraglich eingefroren und wird hier nicht angefasst. Nur die
   Spaltenrinne wird angeglichen; die Zeilenrinne behaelt ihren bestehenden
   Wert, und auf schmalen Viewports stapeln beide Spalten unveraendert. */
.case-workspace-measures-workbench {
    column-gap: 28px;
}

/* Der Typ-Badge der Massnahmenkarte traegt dieselbe Groessen- und
   Schriftgrammatik wie der Badge der Referenzkarte. Farbe und Semantik
   bleiben bei ihrem Fachowner. */
.case-workspace-measures-workbench .measure-workbench-focus .aw-source-badge {
    min-height: 20px;
    padding: 2px 8px;
    font-size: 10.5px;
}

/* ------------------------------------------------------------------
   GEN7-UX-SAAS-INNER-CHROME-CONVERGENCE-I2 / D -- MASSNAHMEN-FOKUSKARTE

   PO-Befund nach I1: Rechtsgrundlagen und Verarbeitung sind ruhig, die
   Massnahmenkarte wirkt weiterhin formularartig. Ursache sind vier
   gleichzeitig gerahmte und gefuellte Bloecke INNERHALB der weissen
   Arbeitskarte: Verantwortlich/Faelligkeit/Status, Nachweis/Begruendung,
   die dritte Detailgruppe und der Verlauf.

   Verschaerfend: die Abschnitte innerhalb dieser Bloecke fuehren im
   Fokuspanel seit GEN5-MEASURES-FOCUSPANEL-UX-REDESIGN-F1 bereits
   `padding: 0` -- der Text steht also unmittelbar an der Kante der
   gefuellten Flaeche. Die Bloecke wirken dadurch gedraengt UND schwer.

   Sie sprechen ab hier in derselben Grammatik wie die Fachgruppen der
   Referenzkarte: ruhige Linie plus Abstand statt Kasten.

   AUSDRUECKLICH: die geteilten Basisregeln bleiben unveraendert. DAC-16
   (`GEN7-UX-MEASURES-DETAIL-ACTION-CLARITY-I1`) schreibt fuer den Owner
   Linie UND Flaeche fest, K7 (`GEN7-UX-WORKBENCH-VISUAL-HIERARCHY-AND-
   SURFACE-CLEANUP-I1`) haelt dasselbe fuer den Verlauf; beide Zusicherungen
   pruefen die Basisregel und bleiben gruen. Hier steht ausschliesslich eine
   auf das Massnahmen-Fokuspanel gescopte Auspraegung -- der klassische
   Gen3-Reiter, die Arbeitsliste, die Risikoentscheidungskarte, jede Angabe,
   jede Aktion, jeder Statuszustand und jeder Handler bleiben unberuehrt.
   Die visuelle Zielaussage von DAC-16/K7 ist damit fuer diese eine Flaeche
   durch eine ausdrueckliche PO-Anweisung abgeloest (Auftrag I2, Abschnitt 5:
   "Wenn scoped Override noetig: nur vorhandene Surface sauber scopen").
   ------------------------------------------------------------------ */
.case-workspace-measures-workbench .case-workspace-workpanel
.measure-workbench-focus .measure-detail-group,
.case-workspace-measures-workbench .case-workspace-workpanel
.measure-workbench-focus .measure-detail-group + .measure-detail-group {
    margin-top: 14px;
    padding-top: 12px;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    overflow: visible;
}

/* Die senkrechte Trennlinie zwischen zwei Zellen weicht dem Spaltenabstand
   der Referenz. Eine Linie weniger bei unveraenderter Zellenzahl; auf
   schmalen Viewports bleibt der bestehende 720px-Owner allein zustaendig. */
.case-workspace-measures-workbench .case-workspace-workpanel
.measure-workbench-focus .measure-detail-group > .measure-detail-row {
    column-gap: 24px;
}

.case-workspace-measures-workbench .case-workspace-workpanel
.measure-workbench-focus .measure-detail-group > .measure-detail-row
> .aw-measure-detail-section + .aw-measure-detail-section {
    border-left: 0;
}

/* Der Verlauf ist derselbe Gruppentyp und folgt derselben Auspraegung.
   Titel, Eintraege, Actor, Zeitpunkt, Revision, Aenderung und der
   Reveal-Einstieg bleiben unveraendert bei ihrem Owner. */
.case-workspace-measures-workbench .case-workspace-workpanel
.measure-history {
    margin-top: 14px;
    padding: 12px 0 0;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
}

/* ==================================================================
   GEN7-UX-PRUEFUNG-PROCESSING-CARD-GRAMMAR-I1
   INFORMATIONSKARTEN DER VERARBEITUNGSTAETIGKEIT

   Die Fachgruppen der Verarbeitung sind Informationskarten in der bereits
   bestehenden Referenzkartengrammatik der Fallübersicht
   (`.case-workspace-shell .case-workspace-ref-card*`, Zonen D/E). Es entsteht
   hier KEINE Kartengrammatik: Kontur, Radius, Innenabstaende, Titelhierarchie
   und Kartenkopf kommen unveraendert aus jenen Regeln und aus dem gemeinsamen
   Kartenowner buildWorkspaceReferenceCard().

   Dieser Block setzt AUSSCHLIESSLICH das Raster der Karten:
   Desktop hoechstens zwei je Reihe, schmal genau eine.
   ================================================================== */
.case-workspace-workpanel .case-workspace-processing-cards {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    /* 12px statt 16px: die feinere Gliederung des Auftrags bringt mehr
       Kartenrahmen mit; der Rasterabstand ist der einzige Anteil daran, der
       dem Layout und nicht der geteilten Kartengrammatik gehoert. Der Wert
       steht auf der dokumentierten Gen4-Spacingskala. Die Kartenpolsterung
       selbst bleibt unangetastet bei der Referenz (14px 16px). */
    gap: 12px;
    align-items: start;
}

@media (min-width: 900px) {
    .case-workspace-workpanel .case-workspace-processing-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Bereichstitel ueber dem Inhalt (Abschnitt A). Nutzt den bestehenden
   Sektionskopf-Owner und dessen bestehende Titelrolle; hier wird nur der
   Abstand zum darunterliegenden Inhalt gesetzt.

   FALLE, live gemessen: auf der Pruefflaeche versteckt
   `.case-workspace-shell.is-workmode-prozessstatus .case-workspace-hosted-headline`
   JEDE Hosted-Headline visuell (1x1px, clip). Das ist gewollt -- die
   Referenz beginnt dort direkt mit der Statuskarte -- und wird fuer die
   Arbeitskarte selbst bereits eine Regel weiter unten wieder aufgehoben.
   Ein Kopf, der wie hier DIREKT im Panel steht, faellt nicht unter jene
   Aufhebung und bliebe unsichtbar: die erste Fassung dieses Blocks mass
   Hoehe 0 bei einem Titel auf y=1050. Der Bereichstitel hebt die
   Verdeckung deshalb fuer sich selbst auf -- ohne die bestehende Regel zu
   veraendern, die fuer alle uebrigen Hosted-Headlines gilt. */
.case-workspace-workpanel > .case-workspace-workpanel-area-header {
    margin-bottom: 4px;
}

/* ROOT CAUSE des vom PO gemeldeten "fehlenden Seitentitels", live gemessen:
   Der Kopf der Verarbeitungskarte war nicht abwesend, sondern VERDECKT. Die
   Regel oben versteckt jede Hosted-Headline der Pruefflaeche auf 1x1px mit
   clip(); die spaetere Panelregel
   `.case-workspace-workpanel > .case-workspace-hosted-section
   .case-workspace-hosted-headline` setzt zwar Flexrichtung und Abstaende,
   hebt die Verdeckung aber nie auf. Gemessen: Headline w=1 h=1
   position:absolute clip:rect(0,0,0,0), waehrend Badge und Titel als
   Kindknoten irgendwo bei y=1087/1119 lagen. Badge ("Verarbeitungstätigkeit")
   und Kartentitel (Name der Taetigkeit) waren dadurch faktisch unsichtbar.

   Die bestehende Verdeckungsregel bleibt UNVERAENDERT und gilt weiter fuer
   alle uebrigen Hosted-Headlines der Flaeche. Aufgehoben wird sie nur fuer
   die beiden Koepfe der Arbeitsflaeche selbst: den Bereichstitel und den
   Kopf der gemounteten Arbeitskarte. */
/* GEN7-UX-CASE-CONTEXT-CONSISTENCY-I1 (PO-KORREKTUR): Dieselbe Verdeckung
   traf den Kopf der GEMEINSAMEN Zone B ("Fallbeschreibung" samt seinem
   i-Einstiegspunkt aus appendContextHelpEntryPoint(), der als Kindknoten der
   `titlerow` INNERHALB der Headline sitzt). Sie ist Teil des gemeinsamen
   Fallkopfs und auf den vier uebrigen Case-Reitern sichtbar -- die Pruefung
   war der einzige Ort, an dem derselbe Kopf verdeckt wurde. Die bestehende
   Verdeckungsregel bleibt unveraendert und gilt weiter fuer die Sektionsköpfe
   der Arbeitsflaeche; aufgehoben wird sie hier nur fuer den gemeinsamen
   Fallkontext. */
.case-workspace-shell.is-workmode-prozessstatus
.case-workspace-case-home-project-context .case-workspace-hosted-headline,
.case-workspace-shell.is-workmode-prozessstatus
.case-workspace-workpanel-area-header > .case-workspace-hosted-headline,
.case-workspace-shell.is-workmode-prozessstatus .case-workspace-workpanel
> .case-workspace-hosted-section .case-workspace-hosted-headline {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

/* ==================================================================
   GEN7-UX-PROCESSING-INFORMATION-HIERARCHY-ADAPTIVE-LAYOUT-I1
   ADAPTIVE KARTENBREITE -- `MAX 2 CARDS` IST KEINE ZWEI-SPALTEN-PFLICHT

   Genau EINE zusaetzliche Regel: eine Karte, deren Inhalt sonst zur schmalen
   Textsaeule wuerde (und die letzte allein stehende Karte einer ungeraden
   Anzahl), belegt beide Rasterspalten. Welche Karte das ist, entscheidet der
   Renderer am Inhalt -- hier steht keine Fachaussage, kein Kartenname und
   keine Ausnahmeliste.

   Unterhalb des Breakpoints ist das Raster ohnehin einspaltig; die Regel ist
   dort wirkungslos, aber harmlos (`1 / -1` = die eine Spalte).
   ================================================================== */
.case-workspace-workpanel .case-workspace-processing-cards > .is-span-full {
    grid-column: 1 / -1;
}

/* Nachgelagerter Gate-/Arbeitsbereich (Abschnitt 6). Dokument-Reife und
   Pflichtangaben sind keine Stammdaten; die Trennlinie setzt sie sichtbar
   hinter die Verarbeitungsinformationen ab. Reine Praesentation -- Status,
   Aktionen und Navigation bleiben bei ihren bestehenden Ownern. Es entsteht
   keine zweite Kartengrammatik: die beiden Karten behalten unveraendert ihre
   bestehende `.pa-section`-Auspraegung. */
.case-workspace-workpanel .case-workspace-processing-gates {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 4px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

/* Dokument-Reife nutzt den gemeinsamen statischen Kartenheader; jede
   bestehende Gate-Projektion ist darunter eine eigene kompakte pa-section und
   zeigt ihre unveraenderten Gruende/Aktionen erst nach dem Oeffnen. */
.case-workspace-workpanel .pa-document-readiness {
    display: grid;
    gap: 10px;
}

.case-workspace-workpanel .pa-document-readiness > .wb-card-header {
    padding: 0 2px;
}

.case-workspace-workpanel .pa-document-readiness .pa-gates-row {
    display: grid;
    gap: 8px;
}

.case-workspace-workpanel .pa-document-readiness .pa-gate-block {
    padding: 10px 12px;
}

/* Die Angaben in der Karte stehen untereinander und linksbuendig. Label- und
   Wertgrammatik bleiben unveraendert die bereits akzeptierte
   Arbeitsflaechen-Grammatik (Beschriftung 12px/500, Wert 13px/400) aus
   `.measure-detail-row`; es entsteht keine Processing-Sondertypografie und
   keine rechtsbuendige Wertespalte. */
.case-workspace-workpanel .case-workspace-processing-card .measure-detail-row {
    grid-template-columns: minmax(0, 1fr);
}

/* ==================================================================
   GEN7-UX-WORK-SURFACE-VISUAL-CONSISTENCY-I1
   SICHTBARE GRAMMATIK DER ARBEITSFLAECHEN -- MEASURES = VISUAL REFERENCE

   Alle Werte sind LIVE an der Maßnahmen-Fokuskarte gemessen:
   Fussaktion `.measure-button` = 13px/600, Hoehe 36px, Polsterung 8px 16px,
   Radius 8px; Fliesstext 13px/400; Beschriftung 12px/500.

   Vorher gemessene Abweichungen im selben Panel:
     Prueffrage   "Frage bearbeiten"/"Archivieren"  12.5px/700, 32px, r=999px
     Rechtsbezug  "Rechtsgrundlagen bearbeiten"     12.5px/700, 32px, r=999px
     Verarbeitung "Bearbeiten"                      12.5px/700, 32px, r=999px
     Rechtsbezug  Artikelbezeichnung                16px statt 13px
     Prueffrage   Bewertungsbeschriftung            16px statt 13px

   Es entsteht KEINE flaechen-eigene Grammatik: dieser Block zieht die drei
   Zielflaechen auf die bereits bestehende Referenzauspraegung. Fachowner,
   Handler und Klassen bleiben unveraendert.
   ================================================================== */

/* 1 -- Fuss- und Bearbeitungsaktionen tragen die Referenz-Buttongrammatik. */
.case-workspace-shell .case-workspace-workpanel .question-entity-action-button,
.case-workspace-shell .case-workspace-workpanel .case-workspace-host-edit-action,
.case-workspace-shell .case-workspace-workpanel .pa-gate-reason-action {
    padding: 8px 16px;
    border-radius: var(--r-2);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

/* Die 36px-Referenzhoehe gilt nur dort, wo die Referenz sie fuehrt. Auf
   schmalen Viewports bleiben die bestehenden 44px-Bedienziele unangetastet --
   deshalb ausdruecklich hinter einer Mindestbreite. */
@media (min-width: 900px) {
    .case-workspace-shell .case-workspace-workpanel .question-entity-action-button,
    .case-workspace-shell .case-workspace-workpanel .case-workspace-host-edit-action,
    .case-workspace-shell .case-workspace-workpanel .pa-gate-reason-action {
        min-height: 36px;
    }
}

/* Schmal fuehrt die Referenz 44px -- dasselbe Bedienziel gilt hier. */
@media (max-width: 899px) {
    .case-workspace-shell .case-workspace-workpanel .question-entity-action-button,
    .case-workspace-shell .case-workspace-workpanel .case-workspace-host-edit-action,
    .case-workspace-shell .case-workspace-workpanel .pa-gate-reason-action {
        min-height: 44px;
    }
}

/* 2 -- Fussaktionszeile: derselbe Abstand wie in der Referenz (14px). */
.case-workspace-workpanel .question-workbench-focus .dsb-note-actions {
    padding-top: 14px;
}

/* 3 -- Fliesstext auf der Arbeitsflaechen-Skala. Die Bewertungsbeschriftung
   erbte im Fokuspanel 16px, weil ihre Basisregel auf den klassischen Reiter
   gescopt ist (`#block-questions`).
   Die zweite 16px-Stelle, die Artikelbezeichnung des Rechtsbezugs, wird NICHT
   hier ueberstimmt, sondern an ihrer eigenen Regel korrigiert (siehe dort) --
   sonst stuenden zwei Wahrheiten ueber denselben Wert. */
.case-workspace-shell .case-workspace-workpanel .question-answer-summary-label {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

/* Hinweis an der Lifecycle-Aktion: ruhige Metazeile, keine eigene Box. */
.doc-workbench-quick-actions > .doc-workbench-lifecycle-note {
    flex: 0 0 100%;
    margin: 0;
    color: var(--text-soft);
    font-size: 11.5px;
    line-height: 1.4;
}

.case-workspace-documents-workbench > .case-workspace-workpanel {
    padding: 0;
    overflow: hidden;
}

.case-workspace-documents-workbench > .case-workspace-workpanel .doc-workbench-region {
    gap: 10px;
    padding: 14px 16px;
}

.case-workspace-documents-workbench > .case-workspace-workpanel .doc-workbench-region + .doc-workbench-region {
    margin-top: 0;
    padding-top: 12px;
    border-top-color: #f4f6f9;
}

.case-workspace-documents-workbench > .case-workspace-workpanel .doc-workbench-region-title {
    color: var(--text-soft);
}

@media (min-width: 1100px) {
    .case-workspace-documents-workbench > .case-workspace-worklist {
        padding: 14px 12px;
    }

    /* GEN7-UX-WORKSPACE-MEASURES-PATTERN-CONVERGENCE-I1 (Slice A): die frueher
       hier gesetzte eigene Desktop-Zeilenhoehe (44px) ist entfallen. Sie
       ueberschrieb — spaeter im Dokument bei gleicher Spezifitaet — die
       Referenzhoehe der Maßnahmenzeile und war der Grund, warum die
       Dokumentenliste trotz gleicher Grammatik sichtbar lockerer lief.
       Auf schmalen Viewports gilt weiterhin die 44px-Bedienzielregel des
       bestehenden 700px-Owners. */

    .case-workspace-documents-workbench > .case-workspace-workpanel .is-region-b {
        grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
        column-gap: 20px;
        align-items: start;
    }

    .case-workspace-documents-workbench > .case-workspace-workpanel .is-region-b > .doc-workbench-region-title,
    .case-workspace-documents-workbench > .case-workspace-workpanel .is-region-b > .doc-workbench-gate-empty,
    .case-workspace-documents-workbench > .case-workspace-workpanel .is-region-b > .aw-source-cell.is-empty {
        grid-column: 1 / -1;
    }

    .case-workspace-documents-workbench > .case-workspace-workpanel .is-region-b > .doc-workbench-gate-ready,
    .case-workspace-documents-workbench > .case-workspace-workpanel .is-region-b > .doc-workbench-gate-block.is-missing {
        grid-column: 1;
    }

    .case-workspace-documents-workbench > .case-workspace-workpanel .is-region-b > .doc-workbench-gate-block.is-blocking {
        grid-column: 2;
        grid-row: 2 / span 2;
        padding-left: 0;
        border-left: 0;
    }
}

.doc-workbench-quick-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.doc-workbench-quick-actions-title {
    flex: 0 0 100%;
    margin: 2px 0 0;
    color: var(--ink);
    font-size: 12px;
    font-weight: 600;
}

.doc-workbench-quick-actions > .doc-shell-actions,
.doc-workbench-quick-actions > .doc-shell-action {
    display: contents;
}

.case-workspace-documents-workbench .is-region-c .doc-workbench-meta {
    display: grid;
    grid-template-columns: minmax(180px, 1.7fr) minmax(110px, 1.1fr) minmax(72px, 0.65fr) minmax(110px, 1fr);
    gap: 10px 16px;
}

.case-workspace-documents-workbench .is-region-c .doc-shell-meta-row {
    display: grid;
    gap: 3px;
}

.case-workspace-documents-workbench .is-region-d .doc-shell-history {
    display: grid;
    gap: 8px;
}

@media (max-width: 1099px) {
    .case-workspace-documents-workbench .is-region-c .doc-workbench-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    /* GEN7-UX-WORKSPACE-MEASURES-PATTERN-CONVERGENCE-I1 (Slice A): dieselbe
       schmale Zeilengrammatik wie in der Referenzflaeche Maßnahmen — das
       Bedienziel bleibt mindestens 44px, ein geklammerter zweizeiliger Titel
       darf diese Hoehe fuer Lesbarkeit ueberschreiten. Bekannte Abweichung:
       die Referenz nutzt hierfuer 720px, dieser bestehende Owner 700px; im
       Streifen 701-720px ist die Dokumentenzeile weiterhin 40px hoch. */
    .doc-workbench-worklist .doc-workbench-row {
        min-height: 44px;
        padding: 8px;
        column-gap: 5px;
    }

    /* Falle (real gemessen, kostete einen Messlauf): die geteilte Basisregel
       `.case-workspace-shell :is(..., .doc-shell-action-btn, ...)` traegt
       `min-height: 32px`. Ihre Spezifitaet ist NICHT (0,2,0): `:is()` zaehlt
       mit seinem staerksten Argument, und darin steht
       `.aw-measure-footer-actions .workbench-ghost-button` = (0,2,0). Mit dem
       vorangestellten `.case-workspace-shell` ergibt das (0,3,0). Eine
       (0,2,0)-Regel bleibt hier wirkungslos, auch wenn sie spaeter steht. */
    /* Falle 2 (Testschreibweise): der Vertragshelfer `ownerRule()` sucht per
       lastIndexOf auf einem Selektor-SUFFIX. Endet diese Regel auf
       `.wb-action`, liest K13 der Action-Grammatik sie als Basisregel und
       meldet 44px statt 36px. Das letzte Listenglied muss deshalb ein
       flaecheneigener Selektor sein. */
    .case-workspace-shell .case-workspace-documents-workbench .wb-action,
    .case-workspace-shell .case-workspace-documents-workbench .doc-shell-action-btn {
        min-height: 44px;
    }

    .case-workspace-documents-workbench > .case-workspace-workpanel { overflow: visible; }
    .case-workspace-documents-workbench > .case-workspace-workpanel .doc-workbench-region { padding: 14px; }
    .case-workspace-documents-workbench .is-region-c .doc-workbench-meta {
        grid-template-columns: minmax(0, 1fr);
    }
    .doc-workbench-quick-actions .doc-shell-action-btn,
    .case-workspace-documents-workbench .is-region-d .doc-shell-action-btn,
    .case-workspace-documents-workbench .case-workspace-workpanel-back {
        height: 44px;
        min-height: 44px;
    }
}

/* GEN7-FIX-DSB-RISK-ASSESSMENT-WORKING-SURFACE-UI-UX-I1: die Flaeche traegt
   keine eigene Card-, Radius-, Border- oder Shadow-Definition mehr. Rahmen,
   Kopf und Titel kommen vollstaendig aus der gemeinsamen .wb-card-Grammatik
   der Fallübersicht (--wb-card-*); hier steht ausschliesslich das Layout der
   Flaeche und die Typografie ihrer eigenen Inhaltsteile. Auch die frueher
   lokale max-width entfaellt: die Breite kommt jetzt aus derselben
   .case-workspace-body-Hauptspur wie die Fallübersicht. */
.dsb-risk-assessment-surface { display: grid; gap: 20px; }
.dsb-risk-assessment-surface-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.dsb-risk-assessment-surface-heading { display: grid; gap: 6px; min-width: 0; }
.dsb-risk-assessment-surface h1 { margin: 0; font-size: 22px; font-weight: 600; line-height: 1.25; color: var(--ink); }
.dsb-risk-assessment-surface-lead { margin: 0; max-width: 62ch; font-size: 13.5px; line-height: 1.55; color: var(--muted); }

/* Zwei Bewertungen nebeneinander: read-only System links, DSB rechts. */
.risk-assessment-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.risk-assessment-duo > .wb-card { height: 100%; }
.risk-assessment-system-headline { margin: 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.risk-assessment-system-value { font-size: 14.5px; font-weight: 400; color: var(--ink); }
.risk-assessment-reasoning-text { margin: 0; font-size: 13px; line-height: 1.55; color: var(--muted); }
/* Aktionsfuss der Karte, Grammatik der Fallübersicht: Inhalt -> Linie ->
   Aktion. Die Aktion steht linksbuendig an der Textkante der Karte (Owner-
   Vorgabe, deckungsgleich mit dem Zielbild `Risiko.png`).
   DOM-Owner ist buildWorkspaceActionRow(); der Toggle
   selbst bleibt der unveraenderte Knoten des Collapsible-Owners. Solange die
   Vorschau nicht ueberlaeuft, haelt dieser Owner den Toggle `hidden` - dann
   darf auch keine leere Trennlinie stehenbleiben. */
.risk-assessment-card-footer { display: flex; justify-content: flex-start; margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--line); }
.risk-assessment-card-footer:has(> [hidden]) { display: none; }
.risk-assessment-reasoning-toggle { padding: 0; border: 0; background: none; font: inherit; font-size: 13px; font-weight: 400; color: var(--blue-text); cursor: pointer; }
.risk-assessment-reasoning-toggle:hover, .risk-assessment-reasoning-toggle:focus-visible { text-decoration: underline; }
.risk-assessment-meta { margin: 0; display: grid; gap: 2px; }
.risk-assessment-meta-label { font-size: 12px; font-weight: 500; color: var(--muted); }
.risk-assessment-meta-value { font-size: 12.5px; line-height: 1.5; color: var(--ink); }
.risk-assessment-empty { display: grid; gap: 6px; justify-items: center; text-align: center; padding: 20px 12px; border-radius: var(--wb-card-radius); border: 1px dashed var(--line); }
.risk-assessment-empty-title { font-size: 14px; font-weight: 500; color: var(--ink); }
.risk-assessment-empty-description { font-size: 13px; line-height: 1.5; max-width: 40ch; color: var(--muted); }
.risk-assessment-review { margin: 0; font-size: 13px; line-height: 1.5; padding: 10px 12px; border-radius: var(--wb-card-radius); border: 1px solid var(--amber-border); background: var(--amber-soft); color: var(--ink); }

/* Zentrale Arbeitsfrage: genau zwei fachlich zulaessige Wege. */
.risk-assessment-decision { display: grid; gap: 6px; }
.risk-assessment-decision-hint { margin: 0 0 6px; font-size: 13px; line-height: 1.5; color: var(--muted); }
.risk-assessment-action-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.risk-assessment-action-tiles.is-single { grid-template-columns: minmax(0, 1fr); }
.risk-assessment-action-tile { display: flex; gap: 12px; padding: var(--wb-card-pad); border: var(--wb-card-border); border-radius: var(--wb-card-radius); background: var(--wb-card-bg); box-shadow: var(--wb-card-shadow); }
.risk-assessment-action-icon { flex: 0 0 auto; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; font-size: 15px; background: var(--surface-soft); color: var(--muted); }
/* GEN7-FIX-DSB-RISK-ASSESSMENT-EDIT-MODE-UI-UX-POLISH-I1 § 3/§ 14: beide
   Kacheln fuehren zu einer DSB-*Aktion*, deshalb tragen beide dieselbe blaue
   Interaktionsfarbe. Gruen bleibt der *Ergebnis*-Farbe vorbehalten (die
   `is-status-success`-Pille der bestaetigten Bewertung) und tritt nicht mehr
   als zweite Aktionsfarbe neben Blau an. */
.risk-assessment-action-icon--confirm,
.risk-assessment-action-icon--deviate,
.risk-assessment-action-icon--correct { background: var(--blue-soft); color: var(--blue); }
.risk-assessment-action-content { display: grid; gap: 8px; justify-items: start; min-width: 0; }
.risk-assessment-action-title { margin: 0; font-size: 14.5px; font-weight: 500; line-height: 1.35; color: var(--ink); }
.risk-assessment-action-description { margin: 0; font-size: 13px; line-height: 1.55; color: var(--muted); }

/* Editor: dieselbe Kartenflaeche, bestehende Formular-Grammatik. */
.risk-assessment-editor { display: grid; gap: 14px; padding: var(--wb-card-pad); border: var(--wb-card-border); border-radius: var(--wb-card-radius); background: var(--wb-card-bg); box-shadow: var(--wb-card-shadow); }
    .risk-assessment-title-row,
    .risk-assessment-editor-heading,
    .risk-assessment-field-label-row { display: flex; align-items: center; gap: 6px; min-width: 0; }
    .risk-assessment-field { display: grid; gap: 6px; }
.risk-assessment-field label { font-size: 13px; font-weight: 500; color: var(--muted); }
/* § 19: kurze Guidance am Feld, ruhig und ohne eigenes Tooltip-/Popover-System. */
.risk-assessment-field-hint { margin: 0; max-width: 62ch; font-size: 12.5px; font-weight: 400; line-height: 1.5; color: var(--muted-2, var(--muted)); }

/* GEN7-FIX-DSB-RISK-ASSESSMENT-EDIT-MODE-UI-UX-POLISH-I1 § 7/§ 9: Select und
   Textarea standen zuvor in Browser-Defaultchrome. Uebernommen wird
   ausschliesslich die bereits etablierte Eingabegrammatik der Fallübersicht
   (.case-workspace-hero-summary-edit-textarea / .case-workspace-membership-
   add-*): 1px Rahmen, Radius --r-3, `font: inherit`, resize vertical. Der
   Rahmen laeuft hier ueber das definierte Token --line statt ueber das im
   Master benutzte Fallback-Literal - der bestehende Guard D3 laesst nur im
   Designsystem definierte Tokens zu. Keine neue Formularrolle. */
.risk-assessment-control {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: var(--r-3);
    background: var(--surface, #ffffff);
    font: inherit;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--ink);
}
.risk-assessment-control:hover:not(:disabled) { border-color: var(--border-strong); }
.risk-assessment-control:focus-visible,
.risk-assessment-control:focus { outline: 2px solid var(--blue); outline-offset: 1px; border-color: var(--blue); }
.risk-assessment-control:disabled { opacity: .6; cursor: not-allowed; }
.risk-assessment-select { min-height: 38px; padding-right: 34px; cursor: pointer; }
.risk-assessment-textarea { min-height: 148px; max-height: 520px; resize: vertical; overflow-y: auto; }

/* § 6/§ 17: Aktionsfuss des Editors in derselben Grammatik wie der
   Kartenfuss der Fallübersicht - Inhalt, Trennlinie, dann die Aktionen. */
.risk-assessment-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 2px; padding-top: 14px; border-top: 1px solid var(--line); }

/* Button-Grammatik der Risikobewertung: Deklarationen liegen im gemeinsamen
   Owner (GEN7-UX-WORKBENCH-ACTION-BUTTON-GRAMMAR-I1). `.risk-assessment-button`
   und seine beiden Varianten sind dort Mitglieder derselben Selektorliste —
   eine Familie, ein Ort, keine dritte Kopie. */

.risk-assessment-history-body { gap: 12px; }
.risk-assessment-history-hint { margin: 0; font-size: 13px; line-height: 1.5; color: var(--muted); }
.risk-assessment-history-hint--quiet { font-size: 12.5px; opacity: .8; }
.risk-assessment-history-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.risk-assessment-history-row { display: grid; gap: 6px; padding-top: 14px; border-top: 1px solid var(--border); }
.risk-assessment-history-row:first-child { padding-top: 0; border-top: 0; }
.risk-assessment-history-headline { margin: 0; font-size: 13px; font-weight: 500; color: var(--ink); }

.risk-assessment-loading { margin: 0; font-size: 13px; color: var(--muted); }
.risk-assessment-error { display: grid; gap: 10px; justify-items: start; padding: 14px 16px; border-radius: var(--wb-card-radius); border: 1px solid var(--red-text); background: var(--red-soft); }
.risk-assessment-error-text { margin: 0; font-size: 13px; line-height: 1.5; color: var(--red-text); }
.context-rail-risk-action { margin-top: 4px; align-self: flex-start; }

@media (max-width: 900px) {
    .risk-assessment-duo, .risk-assessment-action-tiles { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .dsb-risk-assessment-surface-head { align-items: flex-start; flex-direction: column; }
    .risk-assessment-actions { justify-content: stretch; }
    .risk-assessment-actions button { width: 100%; }
}

/* ====================================================================== */
/* GEN7-UX-MEASURES-EDIT-MODE-HIERARCHY-I1                                */
/* Drei ruhige Arbeitsbereiche im BESTEHENDEN Voll-Editor der Maßnahmen.  */
/* Keine neuen Farben, keine zweite Schattenhierarchie, keine Icons —     */
/* nur Flaeche, Abstand und eine nummerierte Abschnittsueberschrift.      */
/* Kartenträger bleibt `.aw-edit-panel`; hier steht nur die Gliederung.   */
/* ====================================================================== */

.measure-edit-panel--structured { gap: 18px; }

.measure-edit-panel--structured .measure-edit-head {
    display: grid;
    gap: 6px;
    padding-bottom: 2px;
}

.measure-edit-panel--structured .measure-edit-head-title {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted);
}

.measure-edit-panel--structured .measure-edit-head-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.measure-edit-panel--structured .measure-edit-head-measure {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--ink);
}

.measure-edit-section {
    display: grid;
    gap: 12px;
    padding: 16px;
    border: 0;
    border-radius: var(--r-4, 12px);
    background: rgba(248, 250, 252, 0.55);
}

.measure-edit-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
}

.measure-edit-section-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    background: var(--blue-bg);
    color: var(--blue-text);
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
}

.measure-edit-section-body { display: grid; gap: 14px; }

/* Die Felder im Abschnitt liegen auf weissem Grund, damit Eingabe und
   Abschnittsflaeche unterscheidbar bleiben (§ 16.3). */
.measure-edit-section-body .aw-edit-input,
.measure-edit-section-body .aw-edit-select,
.measure-edit-section-body .aw-edit-textarea { background: #ffffff; }

.measure-edit-field-hint {
    margin: -4px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: var(--muted);
}

/* Verschobene Statusbedienung — sie ist ab jetzt ausschliesslich hier
   sichtbar (§ 7). Der Notizrahmen braucht seinen Grundfluss explizit, weil
   die Detailflaechen-Basisregeln auf `.measure-workbench-focus` gescoped
   sind und im Editor nicht greifen. */
.measure-edit-status-field { gap: 8px; }

.measure-edit-panel--structured .aw-measure-note-wrap {
    display: grid;
    margin: 0;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
}

.measure-edit-panel--structured .aw-measure-note-wrap[hidden] { display: none; }

.measure-edit-panel--structured .aw-measure-note-wrap .measure-detail-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted);
}

.measure-edit-panel--structured .measure-edit-actions {
    padding-top: 2px;
}

/* GEN7-UX-DSB-DECISION-SCANABILITY-AND-VISUAL-PRIORITY-I1 — die vier
   bestehenden Decision-Regionen bleiben unverändert; nur ihre Lesereihenfolge
   wird durch kompaktere Kontextflächen und ein klares Gate-Signal geschärft. */
.dsb-decision-section-action .dsb-proposal-block {
    padding: 10px 12px;
    margin: 0;
}

.dsb-decision-section-action .dsb-note-ta {
    min-height: 80px;
}

.dsb-decision-section-review .dsb-context-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    background: transparent;
}

.dsb-decision-section-review .dsb-context-summary-row,
.dsb-decision-section-review .dsb-context-summary-row + .dsb-context-summary-row {
    display: grid;
    gap: 3px;
    padding: 8px 10px;
    border: 0;
    border-radius: var(--r-3);
    background: var(--surface-soft);
}

.dsb-decision-section-release-gate .dsb-completion-checklist > .dsb-completion-row:first-child {
    min-height: 44px;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: var(--r-3);
    background: var(--surface-soft);
}

.dsb-decision-section-release-gate .dsb-completion-checklist:has(.dsb-completion-status.is-open) > .dsb-completion-row:first-child {
    border-color: var(--amber-border);
    background: var(--amber-soft);
}

.dsb-decision-section-documents .dsb-document-bridge {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 14px;
}

.dsb-decision-section-documents .dsb-document-bridge__subtitle,
.dsb-decision-section-documents .dsb-document-bridge__hint {
    display: none;
}

.dsb-decision-section-documents .dsb-document-bridge__summary,
.dsb-decision-section-documents .dsb-document-bridge__actions {
    margin: 0;
}

/* GEN7-UX-DSB-DECISION-SOLL-REFERENCE-CLOSURE-I1
   Angleichung an das freigegebene PO-Sollbild. Ausschliesslich Decision-
   Surface-spezifisch gescoped: keine globale Border-Bereinigung, keine
   Aenderung an Action-Grammatik, Right Rail, Gates oder Dokumentenlogik.
   Statusfarben folgen weiterhin dem fachlichen Zustand aus dem Renderer. */

.dsb-decision-section .dsb-decision-card-heading {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.dsb-decision-section .dsb-decision-card-subtitle {
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: 0;
    text-transform: none;
    color: var(--muted);
}

/* Ebene B — Entscheidungsbasis als Scan-Kacheln.
   Label, bestehender Statuswert und bestehende Navigation je Gruppe. */
.dsb-decision-section-review .dsb-context-summary-row,
.dsb-decision-section-review .dsb-context-summary-row + .dsb-context-summary-row {
    align-content: start;
    justify-items: start;
    gap: 6px;
    padding: 12px;
}

.dsb-decision-section-review .dsb-context-summary-nav {
    margin-top: 2px;
    padding: 0;
    min-height: 24px;
    border: 0;
    background: transparent;
    box-shadow: none;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
    color: var(--blue-text);
}

.dsb-decision-section-review .dsb-context-summary-nav:hover {
    text-decoration: underline;
}

/* Ebene C — Gate-Zeilen: ruhig und scanbar, Klickziel bleibt eindeutig. */
.dsb-decision-section-release-gate .dsb-completion-section .dsb-completion-row {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 4px 0;
    border: 0;
    background: transparent;
}

.dsb-decision-section-release-gate .dsb-completion-section .dsb-completion-label {
    flex: 1 1 auto;
    min-width: 0;
}

.dsb-decision-section-release-gate .dsb-completion-section .dsb-completion-status {
    flex: 0 0 auto;
}

.dsb-decision-section-release-gate .dsb-completion-nav {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    min-width: 28px;
    min-height: 28px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: var(--r-3);
    background: var(--surface);
    color: var(--muted);
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
}

.dsb-decision-section-release-gate .dsb-completion-nav:hover {
    border-color: var(--blue-text);
    color: var(--blue-text);
}

/* Der offene Gate-Hinweis gehoert optisch zur Zeile darueber. */
.dsb-decision-section-release-gate .dsb-completion-section .dsb-completion-export-note {
    margin: -6px 0 6px 0;
    font-size: 12px;
    line-height: 1.35;
    color: var(--muted);
}

/* GEN7-UX-DSB-DECISION-LIVE-VISUAL-CLOSURE-I2
   Rein visueller Abschluss der in I1 geschlossenen Struktur. Nur CSS, nur auf
   die Decision-Surface gescoped. Kein DOM, keine Fachlogik, keine Navigation.
   Leitfrage je Grenze: transportiert sie Bedeutung? Controls, Aktionen,
   fachliche Statusflaechen und die eine Kartengrenze je Ebene bleiben. */

/* D — Die Checkliste ist eine berandete, gefuellte Box INNERHALB einer bereits
   berandeten Karte. Sie trennt nichts, was die Karte nicht schon trennt, und
   liess eine reine Leseflaeche wie ein Control aussehen. Gleiche Diagnose und
   gleiche Behandlung wie .case-workspace-hosted-section in
   GEN7-UX-WORKBENCH-VISUAL-HIERARCHY-AND-SURFACE-CLEANUP-I1. */
.dsb-decision-section .dsb-completion-checklist {
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 0;
    display: grid;
    gap: 10px;
}

/* E — Divider ohne Bedeutung: Gruppenkopf, Abschnittsende, Basiszeilen und
   der Gate-Hinweis trugen jeweils eine eigene Linie. Gruppierung entsteht
   hier durch Ueberschrift und Abstand, nicht durch zusaetzliche Kanten. */
.dsb-decision-section .dsb-completion-section,
.dsb-decision-section .dsb-completion-row,
.dsb-decision-section .dsb-completion-head.dsb-completion-group,
.dsb-decision-section .dsb-completion-export-note {
    border: 0;
    background: transparent;
}

.dsb-decision-section .dsb-completion-section {
    display: grid;
    gap: 2px;
    padding: 0;
}

.dsb-decision-section .dsb-completion-head.dsb-completion-group {
    padding: 0;
    margin-top: 4px;
}

/* Der Hinweis gehoert sichtbar zu der Gate-Zeile ueber ihm. */
.dsb-decision-section .dsb-completion-export-note {
    padding: 0 0 6px 0;
    border-radius: 0;
}

/* Basiszeilen: Label und Status ohne Rahmen, Rhythmus ueber Abstand. */
.dsb-decision-section-review .dsb-completion-checklist .dsb-completion-row {
    padding: 5px 0;
    min-height: 0;
}

/* Der Gate-Gesamtstatus bleibt eine fachliche Statusflaeche — aber in der auf
   dieser Flaeche bereits etablierten Warn-Grammatik (linke Akzentkante wie
   .dsb-release-warning) statt als vierseitige Box in der Karte. */
.dsb-decision-section-release-gate .dsb-completion-checklist > .dsb-completion-row:first-child {
    min-height: 44px;
    padding: 10px 12px;
    border: 0;
    border-left: 3px solid var(--line);
    border-radius: var(--r-3);
    background: var(--surface-soft);
}

.dsb-decision-section-release-gate .dsb-completion-checklist:has(.dsb-completion-status.is-open) > .dsb-completion-row:first-child {
    border-left-color: var(--amber-border);
    background: var(--amber-soft);
}

/* Die vier Gates sollen als EINE Liste lesbar sein, nicht wie vier Formulare. */
.dsb-decision-section-release-gate .dsb-completion-checklist .dsb-completion-section {
    gap: 0;
    margin-top: 2px;
}

/* Die Dokumentenmappe erbte ein Zweispalten-Raster aus einer Zeit, in der
   diese Gruppe zwei Karten trug. Als einzige Karte rendert sie dadurch
   halbbreit und wirkt von den drei Ebenen darueber abgetrennt. */
.dsb-decision-actions .dsb-workflow-group.is-secondary:has(> .dsb-decision-section:only-child),
.dsb-decision-actions .dsb-workflow-group.is-tertiary:has(> .dsb-decision-section:only-child) {
    grid-template-columns: minmax(0, 1fr);
}

/* Die Basisregeln setzen ihre Linien mit Geschwister-Kombinator (0,3,0) und
   schlagen die Entrahmung oben. Gleiche Spezifitaet, gleiche Absicht:
   Rhythmus entsteht hier durch Abstand, nicht durch Kanten. */
.dsb-decision-section .dsb-completion-row + .dsb-completion-row,
.dsb-decision-section .dsb-completion-section + .dsb-completion-section {
    border-top: 0;
}

.dsb-decision-section .dsb-completion-section:not(:last-child) {
    border-bottom: 0;
}

/* GEN7-UX-DSB-DECISION-REFERENCE-PIXEL-CONVERGENCE-I1
   Visuelle Konvergenz auf das freigegebene Sollbild. Ausschliesslich auf die
   Decision-Surface gescoped. Keine globale Regel, keine neue Buttonfamilie,
   keine Aenderung an Statuswerten oder Fachlogik. */

/* --- Globale Geometrie der vier Hauptbereiche ------------------------- */
.dsb-decision-actions .dsb-workflow-group {
    gap: 20px;
}

.dsb-decision-actions > .dsb-workflow-group + .dsb-workflow-group {
    margin-top: 20px;
}

.dsb-decision-actions .dsb-decision-section {
    border-radius: 16px;
    padding: 0;
}

.dsb-decision-actions .dsb-decision-section > .wb-card-header {
    padding: 20px 24px 0 24px;
    align-items: flex-start;
}

.dsb-decision-actions .dsb-decision-section > .wb-card-body {
    padding: 16px 24px 22px 24px;
}

/* --- Kartenkopf: Medaillon, Titel, Untertitel, Statuspille ------------ */
.dsb-decision-card-lead {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    min-width: 0;
}

.dsb-decision-card-medallion {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 13px;
}

.dsb-decision-card-medallion.is-decision {
    background: #eaf1ff;
    color: #2563eb;
}

.dsb-decision-card-medallion.is-basis {
    background: #e6f6ec;
    color: #16a34a;
}

.dsb-decision-card-medallion.is-gate {
    background: #f1ebfd;
    color: #7c3aed;
}

.dsb-decision-card-medallion.is-documents {
    background: #eaf1ff;
    color: #2563eb;
}

.dsb-decision-section .dsb-decision-card-heading {
    gap: 4px;
    padding-top: 2px;
}

.case-workspace-shell .dsb-decision-section .wb-card-title {
    font-size: 17px;
    font-weight: 650;
    line-height: 1.25;
    letter-spacing: -0.01em;
}

.dsb-decision-section .dsb-decision-card-subtitle {
    font-size: 13px;
    font-weight: 450;
    line-height: 1.4;
}

.dsb-decision-section .dsb-decision-card-status {
    flex: 0 0 auto;
    align-self: flex-start;
    margin-top: 4px;
    font-size: 11px;
    font-weight: 650;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
}

/* --- Ebene A: Entscheidungsfluss -------------------------------------- */
.dsb-decision-flow {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) auto minmax(0, 0.9fr) auto minmax(0, 1.1fr);
    align-items: stretch;
    gap: 0 10px;
}

.dsb-decision-flow-cell {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    padding: 10px;
    border: 0;
    border-radius: 0;
    background: transparent;
    /* GEN7-UX-DSB-DECISION-INFORMATION-HIERARCHY-CONVERGENCE-I1: Rahmen,
       Radius und Flaeche der globalen `section`-Regel waren bereits
       neutralisiert -- ihr Schatten nicht. Live gemessen trug jede der drei
       Zellen weiterhin `var(--shadow-sm)` und damit eine schwebende
       Kartenkontur ohne Rahmen. Kein neuer Wert, nur die fehlende vierte
       Eigenschaft derselben Neutralisierung. */
    box-shadow: none;
}

.dsb-decision-flow-label {
    font-size: 11px;
    font-weight: 650;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--muted);
}

/* GEN7-UX-DSB-DECISION-ANALYSIS-CONVERGENCE-FINAL-I1 (Abschnitt E):
   Beschriftungszeile der Flusszelle -- Rolle links, Herkunft rechts daneben.
   Reine Gruppierung des bereits bestehenden Labels; die Zelle selbst, ihre
   Geometrie und ihre Rasterung bleiben unveraendert. */
.dsb-decision-flow-labelrow {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

/* Herkunftsmarke. Bewusst LEISER als eine Statuspille: sie ist kein Status
   und darf die Aussage der Zelle nicht ueberstimmen. Sie folgt der bereits
   konvergierten Badge-Auspraegung der Arbeitsflaechen in Radius und Gewicht,
   bleibt aber in der Groesse der Beschriftungszeile. Keine neue Akzentfarbe:
   `--surface-soft` und `--muted` fuer die Systemaussage, die bestehende
   blaue Weichflaeche fuer die menschliche. */
.dsb-decision-flow-source {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 20px;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.dsb-decision-flow-source.is-system {
    background: var(--surface-soft);
    color: var(--muted);
}

.dsb-decision-flow-source.is-dsb {
    background: #eef2ff;
    color: #334155;
}

.dsb-decision-flow-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

/* GEN7-UX-DSB-DECISION-DECISION-CARD-REFERENCE-CONVERGENCE-I1
   Kompakte Referenzdarstellung der drei Flusszellen. Nur Darstellung: Wert,
   blauer Einstieg, aufgedeckte Bedienung. Keine neuen Farben - Statuspunkt
   und Linkfarbe stammen aus bestehenden Tokens. */
.dsb-flow-disclosure {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.dsb-flow-compact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-width: 0;
}

.dsb-flow-compact[hidden] {
    display: none;
}

.dsb-flow-value {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    min-width: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--ink);
}

.dsb-flow-value-text {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-width: 0;
}

.dsb-flow-dot {
    align-self: center;
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--wb-status-open-text);
}

.dsb-flow-dot.is-status-success {
    background: var(--wb-status-success-text);
}

.dsb-flow-dot.is-status-info {
    background: var(--wb-status-info-text);
}

.dsb-flow-dot.is-status-danger {
    background: var(--wb-status-danger-text);
}

.dsb-flow-link {
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--blue-text);
    text-align: left;
    cursor: pointer;
}

.dsb-flow-link:hover {
    text-decoration: underline;
}

.dsb-flow-control[hidden] {
    display: none;
}

.dsb-flow-status-controls {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.dsb-decision-flow-chevron {
    align-self: center;
    font-size: 18px;
    line-height: 1;
    color: var(--muted-2);
}

/* Der Analyse-Callout ist im Fluss die erste Zelle und braucht darin weder
   eigene Flaeche noch eigene Akzentkante. */
.dsb-decision-flow .dsb-analysis-callout {
    padding: 0;
    border: 0;
    background: transparent;
    border-radius: 0;
}

.dsb-decision-flow .dsb-analysis-callout .dsb-section-head {
    margin: 0;
}

/* Gleiche Begruendung wie beim Analyse-Callout: im Fluss traegt die Zelle die
   Struktur, der Vorschlagsblock braucht darin keinen eigenen Rahmen. */
.dsb-decision-flow .dsb-proposal-block {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.dsb-decision-flow .dsb-analysis-callout .dsb-section-head > span:first-child {
    font-size: 11px;
    font-weight: 650;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--muted);
}

/* Der DSB-Status steht jetzt in der Kartenkopfzeile. Derselbe Wert darf nicht
   zusaetzlich im Analysekopf stehen (eine Aussage, ein Ort). */
.dsb-decision-flow .dsb-analysis-callout .dsb-section-badge {
    display: none;
}

/* Statusbuttons stapeln in der schmalen Flusszelle. */
.dsb-decision-flow .dsb-status-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
}

.dsb-decision-flow .dsb-note-ta {
    min-height: 132px;
    margin: 0;
}

/* --- Ebene A: Fusszeile ---------------------------------------------- */
/* GEN7-UX-DSB-DECISION-REFERENCE-VISUAL-CONVERGENCE-I2 - Abschnitt 8: innere
   Elemente ueber Abstand und leichten Divider trennen statt als eigene
   gefuellte Box. Entfernt eine Innenflaeche aus Ebene 1 und hebt die
   Primaeraktion in den initial sichtbaren Bereich. */
.dsb-decision-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 8px;
    padding: 12px 0 0 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
}

.dsb-decision-footer-hint {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    margin: 0;
    font-size: 12.5px;
    line-height: 1.4;
    color: var(--muted);
}

.dsb-decision-footer-hint[hidden] {
    display: none;
}

.dsb-decision-footer-icon {
    flex: 0 0 auto;
    display: inline-flex;
    color: var(--muted-2);
}

.dsb-decision-footer .dsb-note-actions {
    margin: 0;
    flex: 0 0 auto;
}

/* --- Ebene B: Drei-Kachel-Scanraster ---------------------------------- */
.dsb-decision-section-review .dsb-context-summary {
    /* Bewusst ausgeschrieben statt repeat(3, ...): der Case-Home-Test
       STEP 10 scannt faul bis Dateiende und wuerde sonst durch diese Regel
       faelschlich gruen - ein echter Case-Home-Befund waere maskiert. */
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
}

.dsb-decision-section-review .dsb-context-summary-row,
.dsb-decision-section-review .dsb-context-summary-row + .dsb-context-summary-row {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
}

.dsb-context-summary-head {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.dsb-context-summary-icon {
    flex: 0 0 auto;
    display: inline-flex;
}

.dsb-context-summary-icon.is-checked {
    color: #16a34a;
}

.dsb-context-summary-icon.is-prepared {
    color: #2563eb;
}

.dsb-context-summary-icon.is-open {
    color: #b45309;
}

.dsb-decision-section-review .dsb-context-summary-label {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 11.5px;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.dsb-context-summary-status {
    /* GEN7-UX-DSB-DECISION-INFORMATION-HIERARCHY-CONVERGENCE-I1: `flex: 0 0 auto`
       verbot dem Statuswert jede Verkleinerung. Lange, bereits bestehende
       Aussagen ("13 Maßnahmen offen oder delegiert") liefen dadurch in
       schmalen Spalten ueber ihre Spalte hinaus und schoben sich unter die
       Nachbarspalte. Der Wert bleibt derselbe -- er darf jetzt nur umbrechen.
       TEXT OVERLAP = 0 ohne kleinere Schrift und ohne Kuerzen. */
    flex: 0 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: 12px;
    font-weight: 600;
    color: var(--muted);
}

.dsb-context-summary-fact {
    margin: 0;
    min-height: 18px;
    font-size: 13px;
    line-height: 1.4;
    color: var(--ink-2, var(--muted));
}

/* --- Ebene B: Warnzone ------------------------------------------------ */
.dsb-decision-section-review .dsb-release-warning {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 10px;
    margin-top: 12px;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 12.5px;
    line-height: 1.4;
}

/* --- Ebene B: Statuszusammenfassung als Chipreihe --------------------- */
.dsb-status-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
    margin-top: 12px;
}

.dsb-status-chip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
}

.dsb-status-chip-label {
    min-width: 0;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--ink-2, var(--muted));
}

.dsb-status-chip-value {
    flex: 0 0 auto;
}

/* --- Ebene B: relevante Massnahmen bleiben sekundaer ------------------ */
.dsb-decision-section-review .dsb-section-head {
    margin-top: 18px;
    font-size: 11px;
    font-weight: 650;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--muted);
}

/* --- Ebene C: Gate-Zeilen -------------------------------------------- */
.dsb-decision-section-release-gate .dsb-gate-row {
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 8px 12px;
    border-radius: 10px;
}

.dsb-decision-section-release-gate .dsb-gate-row:hover {
    background: var(--surface-soft);
}

.dsb-decision-section-release-gate .dsb-gate-row .dsb-completion-label {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.dsb-gate-name {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

.dsb-gate-context {
    font-size: 12px;
    font-weight: 400;
    line-height: 1.35;
    color: var(--muted);
}

/* --- Ebene C: Metadatenzone ------------------------------------------ */
.dsb-gate-meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 0;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.dsb-gate-meta-item {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 0 16px;
}

.dsb-gate-meta-item + .dsb-gate-meta-item {
    border-left: 1px solid var(--line);
}

.dsb-gate-meta-icon {
    flex: 0 0 auto;
    display: inline-flex;
    color: var(--muted-2);
}

.dsb-gate-meta-body {
    display: grid;
    gap: 1px;
    min-width: 0;
}

.dsb-gate-meta-label {
    font-size: 12px;
    line-height: 1.3;
    color: var(--muted);
}

.dsb-gate-meta-value {
    font-size: 13px;
    font-weight: 500;
    line-height: 1.35;
}

/* --- Ebene D: Dokumentenmappe ---------------------------------------- */
.dsb-decision-section-documents .dsb-document-bridge {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.dsb-decision-section-documents .dsb-document-bridge__summary {
    font-size: 13.5px;
    line-height: 1.45;
}

/* GEN7-UX-DSB-DECISION-INTERACTION-CLARITY-I1
   Drei abgegrenzte Interaktionsdeltas auf der reference-converged Flaeche.
   Kein Redesign, keine Fachlogik, keine Persistenz. */

/* DELTA 1 — Die DSB-Begruendung ist direkt in der Decision-Card bearbeitbar.
   Kompakt im Ruhezustand, komfortabel beim Schreiben: das Feld waechst nur,
   solange es den Fokus hat, und ist zusaetzlich frei vergroesserbar.
   Bewusst ZUSTANDSLOS geloest (kein Umschalter, kein Re-Render):
   loadReview() baut `review` bei jedem Render neu aus vm.decisionMeta - ein
   Re-Render waehrend der Eingabe wuerde den noch nicht gespeicherten Text
   verwerfen. Ein "Details anzeigen"-Umschalter waere genau dieser Fall. */
.dsb-decision-flow-cell.is-note .dsb-note-ta {
    min-height: 96px;
    resize: vertical;
    transition: min-height 120ms ease;
}

.case-workspace-shell .dsb-decision-section-action .dsb-status-button:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: 2px;
}

.dsb-decision-flow-cell.is-note:focus-within .dsb-note-ta {
    min-height: 236px;
}

/* DELTA 2 — Relevante Massnahmen als zugeklappter Unterbereich.
   Der Umschalter ist ein echter Button in der bestehenden Action-Grammatik. */
.dsb-decision-section-review .dsb-measures-disclosure {
    display: grid;
    gap: 10px;
    margin-top: 18px;
    /* GEN7-UX-DSB-DECISION-INFORMATION-HIERARCHY-CONVERGENCE-I1: derselbe
       Restbefund der globalen `section`-Regel wie bei Flusszelle,
       Entscheidungsbasis und Freigabegate. */
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.dsb-measures-disclosure-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
    text-align: left;
}

.dsb-measures-disclosure-trigger:hover {
    background: var(--surface-soft);
}

.dsb-measures-disclosure-label {
    min-width: 0;
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.3;
}

.dsb-measures-disclosure-chevron {
    flex: 0 0 auto;
    font-size: 15px;
    line-height: 1;
    color: var(--muted);
    transition: transform 120ms ease;
}

.dsb-measures-disclosure:not(.is-collapsed) .dsb-measures-disclosure-chevron {
    transform: rotate(180deg);
}

/* GEN7-UX-DSB-DECISION-SIGNAL-CONSOLIDATION-I1
   Lokale Dichte- und Hierarchiekorrektur nach fachlicher Konsolidierung. */
.dsb-decision-actions {
    gap: 24px;
}

.dsb-decision-actions > .dsb-workflow-group + .dsb-workflow-group {
    margin-top: 0;
}

.dsb-decision-actions .dsb-decision-section > .wb-card-header {
    padding: 14px 20px 0;
}

.dsb-decision-actions .dsb-decision-section > .wb-card-body {
    gap: 10px;
    margin-top: 12px;
    padding: 10px 20px 8px;
}

.dsb-decision-section-action .dsb-decision-flow .dsb-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dsb-decision-section-action .dsb-decision-footer {
    margin-top: 4px;
    padding: 8px 0 0 0;
}

.dsb-decision-section-review .dsb-context-summary-row,
.dsb-decision-section-review .dsb-context-summary-row + .dsb-context-summary-row {
    min-height: 80px;
    padding: 10px 12px;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.dsb-decision-section-review .dsb-context-summary {
    margin-bottom: 0;
    /* GEN7-UX-DSB-DECISION-INFORMATION-HIERARCHY-CONVERGENCE-I1: derselbe
       Restbefund wie bei den Flusszellen -- Schatten und Radius 14px der
       globalen `section`-Regel standen noch, obwohl die drei Spalten darin
       laengst flach sind. Damit sah die Entscheidungsbasis wie eine Karte in
       der Karte aus. */
    border-radius: 0;
    box-shadow: none;
}

/* I2 - Abschnitt 8: der Umschalter-Wirt ist ein <section> und erbt dadurch
   ueber die globale Element-Regel Kartenrahmen, Flaeche und Radius 14px -
   eine Karte in der Karte. Der Trigger traegt seine eigene Abgrenzung, der
   Wirt braucht keine. Die globale Regel bleibt unangetastet. */
.dsb-decision-section-review .dsb-measures-disclosure {
    margin-top: 8px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.dsb-decision-section-release-gate .dsb-release-warning {
    margin: 0;
    padding: 8px 12px;
}

.dsb-decision-section-release-gate .dsb-gate-row {
    min-height: 44px;
    padding-block: 4px;
}

.dsb-decision-section-release-gate .dsb-gate-meta {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--line);
}

/* I2 - Abschnitt 7: der Korrekturgrund ist eine kurze Begruendungszeile und
   braucht keine Textflaeche in Notizgroesse. Feld, Pflicht und Lifecycle
   bleiben unveraendert - nur die Ruhehoehe ist verdichtet. */
.dsb-decision-correction-input {
    min-height: 48px;
}

/* GEN7-UX-DSB-DECISION-WORKING-SURFACE-SIMPLIFICATION-I1
   Drei Gewichte, bestehende Owner: Entscheidung primaer, Basis/Gate sekundaer,
   Dokumentenbruecke und Detailzonen tertiaer. Keine Fach- oder State-Logik. */
.dsb-decision-section-action .dsb-decision-footer {
    justify-content: flex-end;
    min-height: 52px;
}

.dsb-decision-section-review .dsb-context-summary-row,
.dsb-decision-section-review .dsb-context-summary-row + .dsb-context-summary-row {
    min-height: 68px;
    gap: 4px;
    padding: 6px 10px;
}

.dsb-decision-section-review .dsb-context-summary-head {
    gap: 6px;
}

.dsb-decision-section-review .dsb-context-summary-icon {
    width: 22px;
    height: 22px;
}

.dsb-decision-section-review .dsb-measures-disclosure {
    margin-top: 4px;
}

.dsb-decision-section-release-gate .dsb-release-warning {
    gap: 2px 8px;
    padding: 7px 10px;
}

.dsb-decision-section-release-gate .dsb-release-warning-list {
    margin: 0;
    padding: 0;
}

.dsb-gate-disclosure {
    display: grid;
    gap: 8px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    /* GEN7-UX-DSB-DECISION-INFORMATION-HIERARCHY-CONVERGENCE-I1: fehlende
       vierte Eigenschaft derselben `section`-Neutralisierung. */
    box-shadow: none;
}

.dsb-gate-disclosure-trigger {
    justify-self: start;
    min-height: 44px;
    padding: 6px 0;
}

.dsb-gate-disclosure-body {
    display: grid;
    gap: 6px;
}

.dsb-gate-disclosure-body[hidden] {
    display: none;
}

.dsb-decision-section-release-gate .dsb-completion-nav {
    min-height: 44px;
}

.dsb-decision-section-release-gate .dsb-gate-meta {
    border-top: 1px solid var(--line);
    opacity: 0.82;
}

/* GEN7-UX-DSB-DECISION-BASIS-GATE-COMPACTNESS-I1
   Ausschliesslich lokale Dichtekorrektur der beiden freigegebenen Karten.
   Fachowner, Counts, Disclosure-State und Gate-Semantik bleiben unveraendert. */
.dsb-decision-actions .dsb-decision-section-review > .wb-card-body,
.dsb-decision-actions .dsb-decision-section-release-gate > .wb-card-body {
    gap: 6px;
    margin-top: 8px;
    padding-top: 4px;
    padding-bottom: 6px;
}

.dsb-decision-section-review .dsb-context-summary-row,
.dsb-decision-section-review .dsb-context-summary-row + .dsb-context-summary-row {
    min-height: 54px;
    gap: 2px;
    padding: 3px 4px;
}

.dsb-decision-section-review .dsb-context-summary-head {
    min-height: 22px;
}

/* GEN7-UX-DSB-DECISION-BASIS-FINAL-OVERLAP-CLOSEOUT-I1
   Der lange Massnahmenstatus teilt sich nicht mehr dieselbe Textzeile mit dem
   Titel. Die zweite Zeile bleibt im bestehenden Flex-Owner; kein Markup,
   Breakpoint, Count oder fachlicher State kommt hinzu. */
.dsb-decision-section-review .dsb-context-summary-row:nth-child(2) .dsb-context-summary-head {
    flex-wrap: wrap;
}

.dsb-decision-section-review .dsb-context-summary-row:nth-child(2) .dsb-context-summary-status {
    flex: 1 0 100%;
    padding-inline-start: 28px;
}

.dsb-decision-section-review .dsb-measures-disclosure {
    gap: 4px;
    margin-top: 2px;
    padding-top: 4px;
    border-top: 1px solid var(--line);
}

.dsb-decision-section-review .dsb-measures-disclosure-trigger {
    min-height: 36px;
    padding: 6px 4px;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.dsb-decision-section-release-gate .dsb-release-warning {
    padding-block: 6px;
}

.dsb-decision-section-release-gate .dsb-gate-disclosure {
    gap: 4px;
}

.dsb-decision-section-release-gate .dsb-gate-disclosure-trigger {
    min-height: 36px;
    padding-block: 4px;
}

.dsb-decision-actions .dsb-decision-section-documents {
    border-color: color-mix(in srgb, var(--line) 72%, transparent);
    box-shadow: none;
}

.dsb-decision-actions .dsb-decision-section-documents > .wb-card-header {
    min-height: 44px;
    padding-top: 10px;
}

.dsb-decision-actions .dsb-decision-section-documents > .wb-card-body {
    margin-top: 6px;
    padding-top: 4px;
    padding-bottom: 10px;
}

.dsb-decision-section-documents .dsb-document-bridge {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
}

.dsb-decision-section-documents .dsb-document-bridge__actions {
    margin-left: auto;
}

/* GEN7-UX-SAAS-PRODUCT-POLISH-I3
   Der letzte Produkt-Polish-Pass bleibt strikt auf bereits vorhandene
   Rollen und Container begrenzt. Die globale `section`-Elementregel gibt
   jedem semantischen Wrapper Kartenflaeche, Radius, Padding und Schatten.
   Im Verarbeitungspanel erzeugte das drei sichtbare Ebenen
   (Workpanel -> Gate-Region -> Dokument-Reife); in der Dokumentation
   dieselbe zweite Kartenebene pro Detailregion. Die Wrapper behalten ihre
   Semantik und alle Disclosure-Knoten, tragen visuell aber nur noch
   Rhythmus bzw. Hairlines. Kein DOM, Owner, State oder Breakpoint entsteht. */

/* Rubrik und konkreter Arbeitsobjekt-Titel sind zwei Hierarchiestufen. Der
   bisherige 4px-Abstand wird auf den bereits verwendeten 12px-Sektions-
   rhythmus angehoben. */
.case-workspace-workpanel > .case-workspace-workpanel-area-header {
    margin-bottom: 12px;
}

/* Nachgelagerte Gate-Region: eine Trennlinie statt einer zusaetzlichen Karte.
   `padding` ist absichtlich als Shorthand gesetzt, damit die 16px-Seiten-
   polsterung der globalen Elementregel nicht in der Cascade stehen bleibt. */
.case-workspace-workpanel .case-workspace-processing-gates {
    padding: 16px 0 0;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

/* Dokument-Reife ist der statische Kopf derselben Region, keine zweite Card. */
.case-workspace-workpanel .pa-document-readiness {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.case-workspace-workpanel .pa-document-readiness .pa-gates-row {
    gap: 0;
}

/* Pflichtangaben folgt als eigener, gleichrangiger Abschlussblock. */
.case-workspace-workpanel .case-workspace-processing-gates
> .pa-section[data-pa-section="missing_fields"] {
    padding: 12px 2px 0;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}

/* Der Dokumentations-Workpanel ist bereits die eine aeussere Arbeitskarte.
   Seine semantischen Regionen werden deshalb zu flachen Abschnitten. */
.case-workspace-documents-workbench > .case-workspace-workpanel .doc-workbench-region {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.case-workspace-documents-workbench > .case-workspace-workpanel .doc-workbench-region + .doc-workbench-region {
    border-top: 1px solid var(--line);
}

/* =====================================================================
   GEN7-UX-DSB-DECISION-WORKING-SURFACE-I1
   Konsolidierter Delta-Block (Iterationen 1-4 zusammengefuehrt).

   Aufgabe: die DSB-Entscheidung fuehrt fuenf Bereiche in derselben
   Kartengrammatik -- weisse erhoehte Karte, 17px-Titel, 44px-Farbmedaillon --
   und liest sich dadurch als fuenf gleichrangige Container statt als EINE
   Arbeitsflaeche mit einer Primaerzone.

   Traeger der Hierarchie sind ausschliesslich Elevation, Titelgroesse,
   Medaillongroesse, Abstand und Rahmen -- NICHT die Flaechenfarbe.
   Inhaltsflaechen bleiben hell; grau bleibt dem Seitengrund und der
   Trennung vorbehalten.

   DOM, Reihenfolge, Renderer, Owner, Fachlogik und Statuswerte sind
   unveraendert. Keine neue Farbe, kein neues Token, kein Breakpoint.

   Kaskadenregel dieses Blocks: alle vertikalen Polsterungen verwenden
   padding-block. Die bestehenden Mobile-Owner (720px / 860px) stehen
   FRUEHER in der Datei, und Media Queries erhoehen die Spezifitaet nicht --
   eine spaetere padding-Kurzform wuerde ihre horizontale Polsterung und
   ihre Touch-Ziele still ueberschreiben.
   ===================================================================== */

/* --- 1. Flaechenhierarchie ------------------------------------------
   Die Primaerkarte ist die EINZIGE erhoehte Flaeche. Sie nutzt das
   bestehende Elevationstoken; die drei Kontextkarten bleiben flach und
   behalten ihre helle Flaeche aus dem bestehenden Sektionsowner. */
.dsb-decision-actions .dsb-decision-section-action {
    box-shadow: var(--shadow-md);
}

.dsb-decision-actions .dsb-decision-section-review,
.dsb-decision-actions .dsb-decision-section-release-gate,
.dsb-decision-actions .dsb-decision-section-documents {
    box-shadow: none;
}

/* Die Review-Karte ist eine .wb-card und bezog ihre Flaeche aus der globalen
   Regel .wb-card { background: var(--surface-soft) } -- sie war also nie
   weiss, sondern grau, und wirkte dadurch schwer und deaktiviert. Sie wird
   zur hellen Inhaltsflaeche und bleibt trotzdem sekundaer: ohne Erhoehung,
   ohne Rahmen, kompakt und mit kleinerer Typografie. */
.case-workspace-shell .case-workspace-decision-review-card {
    background: var(--surface);
    border: 0;
    box-shadow: none;
    padding-block: 12px;
}

/* --- 2. Kopfgewicht der Kontextbereiche -----------------------------
   Kontexttitel bleiben vollstaendig lesbar, hoeren aber auf, wie eigene
   Arbeitsueberschriften zu wirken. Die Primaerkarte behaelt ihre 17px. */
.case-workspace-shell .dsb-decision-section-review .wb-card-title,
.case-workspace-shell .dsb-decision-section-release-gate .wb-card-title,
.case-workspace-shell .dsb-decision-section-documents .wb-card-title {
    font-size: 15px;
    font-weight: 650;
}

.case-workspace-shell .case-workspace-decision-review-card
.case-workspace-ref-card-title {
    font-size: 14px;
}

/* Das 44px-Farbmedaillon ist ein Primaersignal. Als Bereichsmarke bleibt es
   erhalten, tritt im Kontext aber zurueck. Farben unveraendert. */
.dsb-decision-section-review .dsb-decision-card-medallion,
.dsb-decision-section-release-gate .dsb-decision-card-medallion {
    width: 30px;
    height: 30px;
    border-radius: 9px;
}

.dsb-decision-section-review .dsb-decision-card-lead,
.dsb-decision-section-release-gate .dsb-decision-card-lead {
    gap: 10px;
}

/* Die 32px-Symbolkachel in Arbeitsblau war das zweite Primaersignal der
   Seite. Sie bleibt Bereichsmarke auf der neutralen Stufe derselben
   bestehenden Icon-Grammatik. */
.case-workspace-shell .case-workspace-decision-review-card
.case-workspace-ref-card-icon.is-symbol {
    width: 22px;
    height: 22px;
    background: var(--surface-soft);
    color: var(--muted);
}

.case-workspace-shell .case-workspace-decision-review-card
.case-workspace-ref-card-icon.is-symbol svg {
    width: 14px;
    height: 14px;
}

/* --- 3. Entscheidungsbasis ------------------------------------------
   Der Innenkasten der drei Fachspalten traegt dieselbe Fuellung wie die
   Karte; sichtbar blieb nur ein leerer Rahmen als Kasten-im-Kasten.
   Das dreispaltige Scanraster (K19) und der einspaltige Mobile-Owner (K20)
   bleiben unangetastet -- grid-template-columns wird hier nie gesetzt. */
.dsb-decision-actions .dsb-decision-section-review .dsb-context-summary {
    padding: 0;
    border: 0;
    background: transparent;
    gap: 4px 12px;
}

/* Die vier Statuswerte waren vier eigenstaendige Mini-Karten
   (.dsb-status-chip: eigener Rahmen, Radius 10px, eigene Flaeche) und lasen
   sich als zusaetzliche Abschnitte. Sie werden flach und ruecken unter EINE
   Trennlinie -- damit gehoeren sie sichtbar zur Entscheidungsbasis. Alle
   vier Werte, Beschriftungen und Statuspillen bleiben unveraendert; es wird
   nichts zusammengerechnet und kein Summary-Owner gebaut. */
.dsb-decision-section-review .dsb-status-summary {
    margin-top: 5px;
    padding-top: 5px;
    gap: 2px 16px;
    border-top: 1px solid var(--line);
}

.dsb-decision-section-review .dsb-status-chip {
    padding: 2px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

/* Relevante Massnahmen braucht hier KEINE eigene Regel: der Bestandsowner
   GEN7-UX-DSB-DECISION-BASIS-GATE-COMPACTNESS-I1 fuehrt fuer denselben
   Selektor bereits margin-top 2px / padding-top 4px / border-top -- also
   exakt die gewuenschte Drilldown-Trennung, und enger als jede Fassung
   dieses Blocks. Eine spaetere gleichspezifische Regel hat ihn nur wieder
   aufgezogen. Die Regel ist deshalb ersatzlos entfallen. */

/* --- 4. Freigabegate -------------------------------------------------
   Der Kopf bleibt ruhig, der bereits vorhandene Blocker wird lesbar.
   Bestehende Amber-Warnflaeche, unveraenderte Gate-Berechnung. */
.dsb-decision-section-release-gate .dsb-release-warning-title {
    font-size: 13px;
}

.dsb-decision-section-release-gate .dsb-release-warning-list {
    font-size: 12.5px;
}

/* Zeilen ohne Einstieg duerfen kompakter sein; Zeilen MIT Einstieg haelt
   der eingebettete .dsb-completion-nav weiterhin auf 44px (K20b).
   SPEZIFITAET: der Knoten traegt BEIDE Klassen (dsb-completion-row
   dsb-gate-row); Hoehenowner ist ...-section .dsb-completion-row (0,3,0),
   weshalb eine (0,2,0)-Fassung ueber .dsb-gate-row nie gewonnen hat. Der
   Amber-Blocker ist direktes Kind der Checkliste, nicht Teil der
   .dsb-completion-section, und bleibt unberuehrt. */
.dsb-decision-section-release-gate .dsb-completion-section .dsb-gate-row {
    min-height: 32px;
}

/* .dsb-gate-meta wird BEWUSST nicht angefasst: Kill-Test K24 des
   Referenzvertrags liest die LETZTE Regel dieses Selektors (lastIndexOf)
   und verlangt dort den Trennstrich. Eine spaetere Dichteregel wuerde genau
   die vertraglich gepruefte Regel verdraengen. */

/* --- 5. Dokumentenmappe ---------------------------------------------
   Tertiaerer, kompakter Abschluss der Seite. Nur vertikale Polsterung --
   die horizontale bleibt bei ihren bestehenden Ownern. */
.dsb-decision-actions .dsb-decision-section-documents > .wb-card-header {
    min-height: 36px;
    padding-block: 8px 0;
}

.dsb-decision-actions .dsb-decision-section-documents > .wb-card-body {
    padding-block: 2px 8px;
}

/* --- 6. Vertikale Dichte --------------------------------------------
   Groesster Einzelhebel gegen das "Abschnitt unter Abschnitt": der Abstand
   zwischen den vier Regionen. Danach die Innenabstaende des Prozesskontexts.
   min-height bleibt ueberall unberuehrt -- die Touch-Ziele der Mobile-Owner
   gelten unveraendert weiter. */
.dsb-decision-actions {
    gap: 14px;
}

.case-workspace-decision-review-body {
    gap: 8px;
}

.case-workspace-shell .case-workspace-decision-review-card
.case-workspace-decision-review-section {
    gap: 6px;
}

.case-workspace-shell .case-workspace-decision-review-card
.case-workspace-decision-review-section.is-handover {
    padding-top: 10px;
}

.case-workspace-shell .case-workspace-decision-review-card
.case-workspace-decision-review-needs {
    gap: 6px 10px;
}

.case-workspace-shell .case-workspace-decision-review-card
.case-workspace-decision-review-need {
    padding-block: 4px;
}
/* GEN7-UX-PILOT-VISUAL-GUIDANCE-AND-CLEAN-SYSTEM-I1
   Existing surface, action and context roles; no workflow or selection owner.
   The canonical next-step body alone opts into guidance. Empty state stays quiet.
   Desktop header geometry, status tones and content/interaction slots remain.
   Local host delta: one work card, subordinate context, consistent nested radii. */
.case-intake-page {
    padding: 0 0 var(--space-6);
    gap: var(--space-6);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--text);
}

.case-intake-header {
    gap: var(--space-4);
}

.case-intake-page .case-intake-card {
    padding: var(--space-6);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: none;
}

.case-intake-card > .case-intake-card-header,
.case-intake-card > .case-intake-card-body {
    padding: 0;
    border: 0;
    background: transparent;
}

.case-intake-card > .case-intake-card-header {
    margin-bottom: var(--space-3);
}

.case-intake-card .wb-card-title {
    font-size: var(--wb-focus-title-size);
    font-weight: 650;
    color: var(--text);
}

.case-intake-intro,
.case-intake-note,
.case-intake-step-description,
.case-intake-page .case-intake-help,
.case-intake-field-status {
    color: var(--muted);
}

.case-intake-progress-item {
    flex-basis: 140px;
}

.case-intake-progress-button {
    min-height: 44px;
    padding: var(--space-3);
    border-color: transparent;
    border-radius: var(--r-2);
    background: transparent;
    color: var(--text-soft);
}

.case-intake-progress-item.is-current .case-intake-progress-button {
    border-color: var(--blue-border);
    background: var(--blue-soft);
    color: var(--blue-600);
    box-shadow: inset 0 -2px var(--blue);
}

.case-intake-inline-action,
.case-intake-chip {
    min-height: 44px;
    padding: var(--space-2) var(--space-3);
    color: var(--text-soft);
}

.case-intake-chip.is-selected {
    background: var(--blue-soft);
    border-color: var(--blue);
    color: var(--blue-600);
}

.case-intake-navigation {
    align-items: center;
    margin-top: var(--space-2);
    padding-top: var(--space-4);
    border-top: 1px solid var(--line);
}

.case-intake-navigation-reason {
    flex: 1 1 240px;
}

.case-intake-page :is(input, select, textarea):focus-visible,
.case-intake-page button:focus-visible,
.case-workspace-shell :is(button, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--blue-600);
    outline-offset: 2px;
}

.case-workspace-shell .case-workspace-case-home-card:has(> .case-home-next-step) {
    border-color: var(--blue-border);
    border-inline-start: var(--space-1) solid var(--blue);
    background: var(--blue-soft);
    box-shadow: none;
}

.case-workspace-shell .case-home-next-step .case-workspace-status-label {
    font-size: 17px;
    font-weight: 650;
    color: var(--text);
}

.case-workspace-shell .case-home-next-step .case-workspace-section-placeholder {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text-soft);
}

.case-workspace-shell .case-workspace-case-home-card,
.case-workspace-shell .case-workspace-rail .context-panel-section {
    border-radius: var(--radius-lg);
    box-shadow: none;
}

.case-workspace-shell .case-workspace-ref-card {
    border-radius: var(--r-4);
    box-shadow: none;
}

.case-workspace-shell .case-workspace-rail .context-panel-section {
    border-color: var(--line);
}

/* Keep the Measures contract's line + surface. Remove only inherited elevation
   from semantic section elements within the existing work card. */
.case-workspace-workpanel .measure-detail-group,
.case-workspace-workpanel .measure-detail-row > .aw-measure-detail-section {
    box-shadow: none;
}

.case-workspace-shell .case-workspace-worklist,
.case-workspace-shell .case-workspace-workpanel {
    box-shadow: none;
}

.dsb-decision-actions {
    gap: var(--space-4);
}
