:root {
  /* Basis */
  --color-bg: #f8f7f3;
  --color-surface: #f4f7f8;
  --color-surface-alt: #ffffff;
  --color-border: #d8e2e5;
  --color-text: #1f2933;
  /* Tabellen: Fließtext Anthrazit, Verweise Petrol */
  --color-table-text: #1f2933;
  --color-table-link: #256d7b;
  --color-table-link-hover: #1d5663;
  --color-text-muted: #52606d;

  /* Akzente: Petrol für Links, Buttons, Überschriften */
  --color-heading: #123a46;
  --color-primary: #123a46;
  --color-primary-hover: #0e2f38;
  --color-success: #6f8f72;
  --color-warning: #c58a2a;
  --color-danger: #a94a4a;
  --color-focus: #123a46;

  /* Native Checkbox/Radio: gefüllter Zustand (Safari/Chrome accent-color) */
  --color-checkbox-accent: #256d7b;

  /* Warmes Braun: Header-Rand & Akzentlinien (nicht Flächenrahmen) */
  --color-accent-brown: #8b7355;

  /* Navigation (Sidebar) — dunkles Petrol */
  --color-nav-bg: #123a46;
  --color-nav-text: #e8eef0;
  --color-nav-text-muted: #a8bcc4;
  --color-nav-hover: rgba(255, 255, 255, 0.08);
  --color-nav-active-bg: #1a5261;
  --color-nav-active-text: #ffffff;
  --color-nav-border: rgba(255, 255, 255, 0.12);

  --color-header-bg: #ffffff;

  /* Semantic blends (precomputed; replaces per-selector color-mix) */
  --color-blend-primary-tint: rgba(18, 58, 70, 0.08);
  --color-blend-surface-card: #fdfefe;
  --color-blend-surface-card-88: #fefefe;
  --color-blend-primary-border-soft: rgba(18, 58, 70, 0.35);
  --color-blend-success-border: #a9bdb1;
  --color-blend-success-border-kpi: #bbcbc5;
  --color-blend-success-bg: #f1f4f1;
  --color-blend-success-border-strong: #9eb4a6;
  --color-blend-success-bg-medium: #dce4e0;
  --color-blend-success-bg-soft: #e4ebe8;
  --color-blend-success-bg-surface: #e1e8e5;
  --color-blend-success-text: #57705f;
  --color-blend-success-text-strong: #5b7662;
  --color-blend-success-text-medium: #536b5c;
  --color-blend-success-text-soft: #4b6156;
  --color-blend-warning-text: #936d2d;
  --color-blend-warning-text-strong: #9c722c;
  --color-blend-warning-text-kpi: #7a5e2e;
  --color-blend-danger-text: #8d4345;
  --color-blend-danger-text-strong: #944547;
  --color-blend-border-faint: rgba(216, 226, 229, 0.85);
  --color-blend-surface-hover: #f1f5f6;
  --color-blend-border-soft: rgba(216, 226, 229, 0.70);
  --color-blend-primary-border: rgba(18, 58, 70, 0.40);
  --color-blend-surface-glass: rgba(255, 255, 255, 0.90);
  --color-blend-primary-text-strong: #143743;
  --color-blend-border-dashed: rgba(216, 226, 229, 0.80);
  --color-blend-surface-glass-muted: rgba(244, 247, 248, 0.55);
  --color-blend-danger-tint: rgba(169, 74, 74, 0.12);
  --color-blend-warning-tint: rgba(197, 138, 42, 0.12);
  --color-blend-link-border-hover: #87adb5;
  --color-blend-link-ring: rgba(37, 109, 123, 0.24);
  --color-blend-warning-bg-soft: #f7efe1;
  --color-blend-surface-track: #f7f9fa;
  --color-blend-link-border: #90b3bb;
  --color-blend-surface-hover-strong: #fafcfc;
  --color-blend-primary-on-surface-alt: #e3e7e9;
  --color-blend-link-border-active: #76a2ab;
  --color-blend-link-ring-strong: rgba(37, 109, 123, 0.28);
  --color-blend-surface-hover-subtle: #fcfdfd;
  --color-blend-surface-muted-85: #f0f4f5;
  --color-blend-surface-muted-88: #f1f4f6;
  --color-blend-surface-muted-90: #f1f5f6;
  --color-blend-reporting-card: #fcfdfd;
  --color-blend-primary-on-card: #dee3e5;
  --color-blend-link-border-reporting: #7ea8b0;
  --color-blend-link-ring-reporting: rgba(37, 109, 123, 0.30);
  --color-blend-warning-border: #ceb688;
  --color-blend-warning-tint-soft: rgba(197, 138, 42, 0.14);
  --color-blend-heading-ring: rgba(18, 58, 70, 0.35);
  --color-blend-primary-accent: #8da2a9;
  --color-blend-warning-border-kpi: #d1c3a4;
  --color-blend-warning-bg-kpi: #f8f1e5;
  --color-blend-danger-border-kpi: #cab4b6;
  --color-blend-danger-bg-kpi: #f6eded;
  --color-blend-danger-text-kpi: #6f3c40;
  --color-blend-primary-border-kpi: #acbdc2;
  --color-blend-primary-bg-kpi: #eceff0;
  --color-blend-primary-text-kpi: #1a2f3a;
  --color-blend-danger-border-badge: #c39e9f;
  --color-blend-danger-bg-badge: #eadfe0;
  --color-blend-danger-text-badge: #804043;
  --color-blend-warning-border-badge: #cfba91;
  --color-blend-warning-bg-badge: #eeeadf;
  --color-blend-warning-text-badge: #9c722c;
  --color-blend-primary-border-badge: #7f969d;
  --color-blend-primary-bg-badge: #d9e0e3;
  --color-blend-primary-text-badge: #17343f;
}

/* Dunkelmodus: petrol-warm, ohne kaltes Blau-Schwarz */
@media (prefers-color-scheme: dark) {
  :root {
    --color-bg: #15262c;
    --color-surface: #1b3139;
    --color-surface-alt: #223a44;
    --color-border: #2f4a54;
    --color-text: #e8eef0;
    --color-table-text: var(--color-text);
    --color-table-link: var(--color-primary);
    --color-table-link-hover: var(--color-primary-hover);
    --color-text-muted: #9fb0b8;

    --color-heading: #c9dae1;
    --color-primary: #6eb8c9;
    --color-primary-hover: #5aa5b8;
    --color-success: #7faa82;
    --color-warning: #d9a84e;
    --color-danger: #c96b6b;
    --color-focus: #6eb8c9;

    /* Checkbox-Füllung (Petrol heller als Primärfläche) */
    --color-checkbox-accent: #256d7b;

    --color-accent-brown: #a69078;

    --color-nav-bg: #0f2f38;
    --color-nav-text: #e8eef0;
    --color-nav-text-muted: #8faab4;
    --color-nav-hover: rgba(255, 255, 255, 0.06);
    --color-nav-active-bg: #1a5261;
    --color-nav-active-text: #ffffff;
    --color-nav-border: rgba(255, 255, 255, 0.1);

    --color-header-bg: #1b3139;

    --color-blend-primary-tint: rgba(110, 184, 201, 0.08);
    --color-blend-surface-card: #213942;
    --color-blend-surface-card-88: #213943;
    --color-blend-primary-border-soft: rgba(110, 184, 201, 0.35);
    --color-blend-success-border: #537569;
    --color-blend-success-border-kpi: #456561;
    --color-blend-success-bg: #2b454a;
    --color-blend-success-border-strong: #5b7f6d;
    --color-blend-success-bg-medium: #2d4746;
    --color-blend-success-bg-soft: #274042;
    --color-blend-success-bg-surface: #294243;
    --color-blend-success-text: #9ebea3;
    --color-blend-success-text-strong: #99bb9e;
    --color-blend-success-text-medium: #a4c2a8;
    --color-blend-success-text-soft: #aec9b4;
    --color-blend-warning-text: #debd7f;
    --color-blend-warning-text-strong: #ddba76;
    --color-blend-warning-text-kpi: #e0c897;
    --color-blend-danger-text: #cf8586;
    --color-blend-danger-text-strong: #ce7f7f;
    --color-blend-border-faint: rgba(47, 74, 84, 0.85);
    --color-blend-surface-hover: #27404a;
    --color-blend-border-soft: rgba(47, 74, 84, 0.70);
    --color-blend-primary-border: rgba(110, 184, 201, 0.40);
    --color-blend-surface-glass: rgba(34, 58, 68, 0.90);
    --color-blend-primary-text-strong: #80c0cf;
    --color-blend-border-dashed: rgba(47, 74, 84, 0.80);
    --color-blend-surface-glass-muted: rgba(27, 49, 57, 0.55);
    --color-blend-danger-tint: rgba(201, 107, 107, 0.12);
    --color-blend-warning-tint: rgba(217, 168, 78, 0.12);
    --color-blend-link-border-hover: #4b7c89;
    --color-blend-link-ring: rgba(110, 184, 201, 0.24);
    --color-blend-warning-bg-soft: #3c4945;
    --color-blend-surface-track: #253d47;
    --color-blend-link-border: #487683;
    --color-blend-surface-hover-strong: #243c46;
    --color-blend-primary-on-surface-alt: #2b4954;
    --color-blend-link-border-active: #528694;
    --color-blend-link-ring-strong: rgba(110, 184, 201, 0.28);
    --color-blend-surface-hover-subtle: #233b45;
    --color-blend-surface-muted-85: #1e353d;
    --color-blend-surface-muted-88: #1d343c;
    --color-blend-surface-muted-90: #1d343c;
    --color-blend-reporting-card: #233b45;
    --color-blend-primary-on-card: #2d4c57;
    --color-blend-link-border-reporting: #4e818e;
    --color-blend-link-ring-reporting: rgba(110, 184, 201, 0.30);
    --color-blend-warning-border: #847951;
    --color-blend-warning-tint-soft: rgba(217, 168, 78, 0.14);
    --color-blend-heading-ring: rgba(201, 218, 225, 0.35);
    --color-blend-primary-accent: #477480;
    --color-blend-warning-border-kpi: #6a6b52;
    --color-blend-warning-bg-kpi: #384745;
    --color-blend-danger-border-kpi: #5d545b;
    --color-blend-danger-bg-kpi: #333f48;
    --color-blend-danger-text-kpi: #d6a2a3;
    --color-blend-primary-border-kpi: #3d626e;
    --color-blend-primary-bg-kpi: #28444f;
    --color-blend-primary-text-kpi: #bddbe2;
    --color-blend-danger-border-badge: #74595e;
    --color-blend-danger-bg-badge: #333940;
    --color-blend-danger-text-badge: #d29293;
    --color-blend-warning-border-badge: #7c7451;
    --color-blend-warning-bg-badge: #323f3c;
    --color-blend-warning-text-badge: #ddba76;
    --color-blend-primary-border-badge: #4b7c89;
    --color-blend-primary-bg-badge: #25414a;
    --color-blend-primary-text-badge: #99cbd7;
  }
}

* {
  box-sizing: border-box;
}

body.app{
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: "Segoe UI", Arial, sans-serif;
}

.shell {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  grid-template-rows: 64px minmax(0, 1fr);
  grid-template-areas:
    "sidebar header"
    "sidebar main";
  min-height: 100vh;
}

.sidebar {
  grid-area: sidebar;
  background: var(--color-nav-bg);
  border-right: 1px solid var(--color-nav-border);
  padding: 1rem;
}

.header {
  grid-area: header;
  padding: 0.75rem 1rem;
  border-bottom: 2px solid var(--color-accent-brown);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: var(--color-header-bg);
}

.main {
  grid-area: main;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  padding: 1rem;
}

.main--single {
  grid-template-columns: 1fr;
}

.col-main,
.col-right,
.module-card,
.context-panel {
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: 10px;
}

.context-panel__actions {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
}

.col-main {
  padding: 1rem;
}

.col-right {
  padding: 1rem;
}

/* Fall-Detail: Workflow-Timeline (kompakt, dezent) */
.case-workflow-timeline.module-card {
  padding: 0.65rem 0.75rem 0.7rem;
  margin: 0.5rem 0 0.75rem;
}
.case-workflow-timeline__track {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0;
  overflow-x: auto;
  padding: 0.35rem 0.15rem 0.2rem;
}
.case-workflow-timeline__step {
  position: relative;
  flex: 1 1 0;
  min-width: 3.75rem;
  max-width: 7rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
/* Verbindungslinie zwischen Dots (gruen bis zum aktuellen Schritt) */
.case-workflow-timeline__step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 7px;
  left: calc(50% + 8px);
  width: calc(100% - 8px);
  height: 2px;
  background: var(--color-border, #c8c4bc);
  z-index: 0;
  pointer-events: none;
}
.case-workflow-timeline__step.is-done:not(:last-child)::after {
  background: var(--color-workflow-done, #2e7d32);
}
.case-workflow-timeline__step-display {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.case-workflow-timeline__step-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-align: center;
}
.case-workflow-timeline__step-btn:hover .case-workflow-timeline__dot,
.case-workflow-timeline__step-btn:focus-visible .case-workflow-timeline__dot {
  background: var(--color-primary-muted, #5a8fc4);
  box-shadow: 0 0 0 2px var(--color-primary-muted, #5a8fc4);
}
.case-workflow-timeline__step-btn:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
  border-radius: 4px;
}
.case-workflow-jump-dialog__message {
  margin: 0;
  line-height: 1.5;
}
.case-workflow-jump-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.75rem 0 0;
  border-top: 1px solid var(--color-border);
  margin-top: 0.75rem;
}
.case-workflow-timeline__dot {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color-border, #c8c4bc);
  border: 1.5px solid var(--color-surface, #fff);
  box-shadow: 0 0 0 1px var(--color-border, #c8c4bc);
}
.case-workflow-timeline__check {
  font-size: 0.58rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
.case-workflow-timeline__step.is-done .case-workflow-timeline__dot {
  background: var(--color-workflow-done, #3d7a47);
  box-shadow: 0 0 0 1px var(--color-workflow-done, #3d7a47);
}
.case-workflow-timeline__step.is-done.is-warning .case-workflow-timeline__dot {
  background: var(--color-warn, #b45309);
  box-shadow: 0 0 0 1px var(--color-warn, #b45309);
}
.case-workflow-timeline__step.is-done.is-warning:not(:last-child)::after {
  background: var(--color-warn, #b45309);
}
.case-workflow-timeline__step.is-done .case-workflow-timeline__label {
  color: var(--color-workflow-done, #3d7a47);
}
.case-workflow-timeline__step.is-done.is-warning .case-workflow-timeline__label {
  color: var(--color-warn, #b45309);
}
.case-workflow-timeline__step.is-current.is-warning .case-workflow-timeline__dot {
  width: 16px;
  height: 16px;
  background: var(--color-warn, #b45309);
  box-shadow: 0 0 0 1px var(--color-warn, #b45309);
}
.case-workflow-timeline__step.is-current.is-warning .case-workflow-timeline__label {
  color: var(--color-warn, #b45309);
  font-weight: 600;
}
.case-workflow-timeline__current-missing {
  margin: 0.5rem 0 0;
  font-size: 0.8125rem;
}
.case-workflow-timeline__warn {
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
}
.case-workflow-timeline__step.is-current .case-workflow-timeline__dot {
  width: 18px;
  height: 18px;
  background: var(--color-primary);
  box-shadow: 0 0 0 2px var(--color-primary-muted, rgba(18, 58, 70, 0.18));
}
/* Aktueller Schritt noch offen: kein Häkchen (blauer Punkt). */
.case-workflow-timeline__step.is-current:not(.is-done) .case-workflow-timeline__dot .case-workflow-timeline__check {
  display: none;
}
/* Aktueller Schritt vollständig (z. B. Abrechnung abgerechnet + VNk/VNg): grün mit Häkchen. */
.case-workflow-timeline__step.is-current.is-done .case-workflow-timeline__dot {
  width: 16px;
  height: 16px;
  background: var(--color-workflow-done, #3d7a47);
  box-shadow: 0 0 0 1px var(--color-workflow-done, #3d7a47);
}
.case-workflow-timeline__step.is-current.is-done .case-workflow-timeline__dot .case-workflow-timeline__check {
  display: inline-flex;
}
.case-workflow-timeline__step.is-current.is-done .case-workflow-timeline__label {
  color: var(--color-workflow-done, #3d7a47);
  font-weight: 500;
}
.case-workflow-timeline__step.is-upcoming .case-workflow-timeline__dot {
  background: var(--color-surface-alt, #f0eeea);
  box-shadow: 0 0 0 1px var(--color-border, #c8c4bc);
}
.case-workflow-timeline__step.is-inactive .case-workflow-timeline__dot {
  opacity: 0.45;
}
.case-workflow-timeline__closed-hint {
  margin: 0 0 0.35rem;
  font-size: 0.8125rem;
  color: var(--color-workflow-done, #2e7d32);
}
.case-workflow-timeline__step.is-optional {
  flex: 0.85 1 0;
  min-width: 3.25rem;
  opacity: 0.92;
}
/* Verbindung Abrechnung → Follow Up: gestrichelt (Linie sitzt am Vorgänger-Schritt). */
.case-workflow-timeline__step:has(+ .case-workflow-timeline__step.is-optional):not(:last-child)::after {
  top: 7px;
  height: 0;
  background: none;
  border-top: 2px dashed var(--color-border, #c8c4bc);
}
.case-workflow-timeline__step.is-done:has(+ .case-workflow-timeline__step.is-optional):not(:last-child)::after {
  background: none;
  border-top-color: var(--color-workflow-done, #2e7d32);
}
.case-workflow-timeline__optional-tag {
  display: block;
  font-size: 0.625rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--color-text-muted, #6b6560);
  line-height: 1.2;
}
.case-workflow-timeline--closed .case-workflow-timeline__step.is-optional .case-workflow-timeline__dot {
  border: 1px dashed var(--color-border, #c8c4bc);
  background: var(--color-surface, #fff);
}
.case-workflow-timeline__step-btn:hover .case-workflow-timeline__dot.is-done,
.case-workflow-timeline__step-btn:focus-visible .case-workflow-timeline__dot {
  filter: brightness(1.05);
}
.case-workflow-timeline__label {
  margin-top: 0.3rem;
  font-size: 0.62rem;
  line-height: 1.15;
  color: var(--color-muted, #888);
}
.case-workflow-timeline__step.is-current .case-workflow-timeline__label {
  font-weight: 500;
  color: var(--color-text-muted, #555);
}
.case-workflow-timeline__aufgabe {
  margin: 0.45rem 0 0;
  padding: 0.35rem 0.5rem;
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--color-text-muted, #666);
  background: transparent;
  border-left: 2px solid var(--color-border, #d8d4cc);
  border-radius: 0 4px 4px 0;
}
.case-workflow-timeline__aufgabe-label {
  font-weight: 500;
  color: var(--color-muted, #999);
}
.case-workflow-timeline__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.case-workflow-timeline__empty {
  margin: 0;
  font-size: 0.9rem;
  color: var(--color-muted, #666);
}

/* Fall-Detail: Änderungsprotokoll */
.case-audit-log__table td {
  vertical-align: top;
}
.case-audit-log__row--status {
  background: var(--color-blend-primary-tint);
}
.case-audit-log__time {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.case-audit-log__action {
  display: block;
  font-weight: 600;
}
.case-audit-log__object,
.case-audit-log__note {
  display: block;
  font-size: 0.82rem;
  color: var(--color-muted, #666);
  margin-top: 0.15rem;
}
.case-audit-log__changes {
  margin: 0;
  padding: 0;
  list-style: none;
}
.case-audit-log__changes li + li {
  margin-top: 0.35rem;
}
.case-audit-log__field {
  font-weight: 600;
}
.case-audit-log__old {
  color: var(--color-muted, #666);
  text-decoration: line-through;
}
.case-audit-log__arrow {
  margin: 0 0.2rem;
  color: var(--color-muted, #666);
}
.case-audit-log__new {
  font-weight: 500;
}
.case-audit-log__empty {
  margin: 0.5rem 0 0;
  color: var(--color-muted, #666);
}

/* Fall-Detail: Tabs */
.case-tabs {
  margin-top: 0.5rem;
}

.case-tabs__bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 1rem;
  padding: 0.25rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 10px;
}

.case-tabs__bar [role="tab"] {
  margin: 0;
  padding: 0.5rem 0.85rem;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--color-text);
  font: inherit;
  cursor: pointer;
}

.case-tabs__bar [role="tab"]:hover {
  background: var(--color-bg);
}

.case-tabs__bar [role="tab"][aria-selected="true"] {
  background: var(--color-surface-alt);
  border-color: var(--color-border);
  font-weight: 600;
  color: var(--color-table-link);
}

.case-tabs__panel {
  min-height: 2rem;
}

.case-tabs__panel[hidden] {
  display: none !important;
}

.case-stack {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.nav ul {
  list-style: none;
  padding: 0;
  margin: 1rem 0;
}

.nav {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.nav li + li {
  margin-top: 0.5rem;
}

.sidebar-secondary {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--color-nav-border);
}

.sidebar-secondary__heading {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-nav-text-muted);
}

.sidebar-secondary .sidebar-secondary__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sidebar-secondary .sidebar-secondary__list li + li {
  margin-top: 0.45rem;
}

.breadcrumbs {
  margin-bottom: 1rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid var(--color-accent-brown);
  color: var(--color-text-muted);
  font-size: 0.95rem;
}

/* Fließtext anthrazit; Überschriften Petrol */
.page-title,
.section-title,
.case-follow-up-block {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
}

.case-follow-up-block:first-of-type {
  margin-top: 0.75rem;
  padding-top: 0;
  border-top: none;
}

.case-follow-up-block__actions {
  margin: 0.5rem 0 0;
}

.case-tabs__panel-title,
.page-header .page-title,
.patients-panel__title,
.patients-overview-head__title,
.reporting-dashboard__header h2,
.reporting-card > h3,
.module-card > h3 {
  color: var(--color-heading);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.header-actions form {
  margin: 0;
}

.logo {
  height: 40px;
  width: auto;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.5rem;
}

.message-stack {
  margin-bottom: 1rem;
}

.alert {
  padding: 0.75rem 1rem;
  margin-bottom: 0.5rem;
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-primary);
}

.module-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}

.content-split {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  gap: 1rem;
}

.module-card {
  padding: 1rem;
  margin-bottom: 1rem;
}

.meta-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.25rem;
}

.meta-list dt {
  color: var(--color-text-muted);
  font-size: 0.9rem;
}

.meta-list dd {
  margin: 0 0 0.5rem 0;
}

.meta-list--grid {
  display: grid;
  grid-template-columns: minmax(9rem, 12rem) 1fr;
  gap: 0.35rem 1rem;
  align-items: baseline;
}

.meta-list--grid dt {
  margin: 0;
  max-width: none;
}

.meta-list--grid dd {
  margin: 0 0 0.35rem 0;
}

.case-overview-panel-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1.25rem;
  margin-bottom: 0.35rem;
}

.case-overview-panel-head__actions {
  margin: 0;
}

.case-detail-summary h3 {
  margin-top: 0;
}

.case-detail-meta {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.case-overview-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}

@media (min-width: 980px) {
  .case-overview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .case-overview-grid--secondary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.case-overview-card {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 0.7rem 0.8rem;
  background: var(--color-blend-surface-card);
}

.case-overview-card h4 {
  margin: 0 0 0.45rem;
  font-size: 0.9rem;
}

.case-overview-card .meta-list {
  margin: 0;
}

.case-overview-card--full {
  grid-column: 1 / -1;
}

.case-overview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.5rem;
}

.case-overview-edit-section {
  margin-top: 0.25rem;
}

.case-overview-edit-section > h4 {
  margin: 0 0 0.25rem;
  font-size: 1rem;
}

.case-overview-meta-footnote {
  margin-top: 0.25rem;
  padding-top: 0.4rem;
  border-top: 1px dashed var(--color-border);
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.9rem;
  font-size: 0.78rem;
  color: var(--color-text-muted);
}

.case-overview-meta-footnote strong {
  font-weight: 600;
}

.case-detail-muted {
  color: var(--color-text-muted);
  font-size: 0.85rem;
}

.sub-form--compact {
  margin: 0;
  padding: 0.75rem 1rem;
}

.sub-form--compact h4 {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
}

/* Fallübersicht (MV_Genom): Einwilligungen optisch wie Analysen-Hinweise */
.case-detail-einwilligungen__value {
  display: inline-block;
  padding: 0.2rem 0.45rem;
  border-radius: 6px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

.case-detail-einwilligungen__hint {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 0.2rem 0.45rem;
  border-radius: 6px;
  font-size: 0.88rem;
  border: 1px solid transparent;
}

.case-detail-einwilligungen__hint--ok {
  color: var(--color-primary, #123a46);
  border-color: var(--color-blend-primary-border-soft);
  background: rgba(44, 110, 155, 0.08);
}

.case-detail-einwilligungen__hint--missing {
  color: var(--color-text-muted);
  border-color: var(--color-border);
  background: var(--color-surface);
}

.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.data-table {
  min-width: 720px;
}

/* Prädiktiver Biomarker: alle Spalten lesbar, lange Texte mit Zeilenumbruch */
.molekular-praediktiv-zulassung-table {
  min-width: 980px;
}

.molekular-praediktiv-studie-table {
  min-width: 520px;
}

.molekular-praediktiv-zulassung-table th,
.molekular-praediktiv-zulassung-table td,
.molekular-praediktiv-studie-table th,
.molekular-praediktiv-studie-table td {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  vertical-align: top;
}

.molekular-praediktiv-zulassung-table .col-behoerde {
  min-width: 8.5rem;
  max-width: 10rem;
}

.molekular-praediktiv-zulassung-table .col-behoerde select {
  white-space: normal;
  line-height: 1.35;
  min-height: 2.75rem;
  height: auto;
}

.molekular-praediktiv-zulassung-table .col-wirkstoff {
  min-width: 9rem;
}

.molekular-praediktiv-zulassung-table .col-wirkstoffklasse {
  min-width: 14rem;
  max-width: 26rem;
}

.molekular-praediktiv-zulassung-table .col-medikament {
  min-width: 9rem;
}

.molekular-praediktiv-zulassung-table .col-atc {
  min-width: 6.5rem;
}

.molekular-praediktiv-zulassung-table .col-zulassung {
  min-width: 16rem;
  max-width: 28rem;
}

.molekular-praediktiv-zulassung-table .col-loeschen {
  width: 1%;
  min-width: 4.5rem;
  white-space: nowrap;
}

.molekular-praediktiv-studie-table .col-phase {
  min-width: 7rem;
  white-space: nowrap;
}

.molekular-praediktiv-studie-table .col-referenz {
  min-width: 14rem;
}

.molekular-praediktiv-panel input:not([type="checkbox"]):not([type="radio"]),
.molekular-praediktiv-panel select,
.molekular-praediktiv-panel textarea {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.molekular-praediktiv-panel textarea.js-textarea-wrap {
  resize: vertical;
  min-height: 2.75rem;
  line-height: 1.35;
  field-sizing: content;
}

.table-muted {
  color: var(--color-text-muted);
  font-size: 0.9rem;
}

.table-num {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.pill {
  display: inline-block;
  padding: 0.1rem 0.4rem;
  margin-right: 0.25rem;
  border-radius: 6px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  font-size: 0.85rem;
}

.pill--muted {
  opacity: 0.95;
}

/* Fallliste: Fallart ohne Kasten/Rahmen */
.pill--fallart {
  border: none;
  background: transparent;
  padding: 0;
}

a {
  color: var(--color-primary);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1rem;
}

th,
td {
  padding: 0.65rem 0.5rem;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  vertical-align: top;
  color: var(--color-table-text);
}

button,
.action-link {
  display: inline-block;
  padding: 0.55rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface);
  color: var(--color-table-link);
}

/* .action-link muss globales `a`-Primary überschreiben */
a.action-link,
button.action-link {
  color: var(--color-table-link);
}

a.action-link:hover,
button.action-link:hover {
  color: var(--color-table-link-hover);
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  width: 100%;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface-alt);
  color: var(--color-text);
  font: inherit;
}

/* Browser-Default bei type=number oft kleiner/größer als Textfelder */
.case-form-number-input,
.case-detail-form input[type="number"] {
  font-size: inherit;
  font-family: inherit;
  line-height: 1.35;
  max-width: 6rem;
}

/* Globales width:100% gilt nicht für Checkbox/Radio (sonst volle Zeilenbreite). */
input[type="checkbox"],
input[type="radio"] {
  width: auto;
  max-width: 100%;
  padding: 0;
  border-radius: 4px;
  vertical-align: middle;
}

form p {
  margin-bottom: 0.9rem;
}

.action-cell {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.action-cell form {
  margin: 0;
}

/* Symbol „Öffnet andere Ansicht“ bei Navigations-Links in Aktions-Spalten */
.action-cell > a[href]::after {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  width: 0.95em;
  height: 0.95em;
  margin-left: 0.28em;
  vertical-align: -0.14em;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%23000' d='M14 3h4v4h-1.5V6.5l-5.8 5.8-1.1-1.1L15.4 5H14V3zM5 5h7v2H7v9h9v-5h2v6a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%23000' d='M14 3h4v4h-1.5V6.5l-5.8 5.8-1.1-1.1L15.4 5H14V3zM5 5h7v2H7v9h9v-5h2v6a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.action-cell > a[href].link-no-outicon::after {
  display: none;
}

form.inline-form {
  display: inline;
}

.sub-form {
  margin: 1rem 0;
  padding: 1rem;
  border: 1px dashed var(--color-border);
  border-radius: 8px;
  background: var(--color-surface);
}

.sub-form h4 {
  margin-top: 0;
}

.hint {
  font-size: 0.9rem;
  color: var(--color-text-muted);
  margin: 0 0 0.75rem;
}

/* Fall-Detail: Übersichtskarte und Registerkarten */
.case-detail-caseform .case-detail-form {
  margin-top: 0.5rem;
}

.case-form-section {
  border: 1px solid var(--color-border);
  border-radius: 10px;
  padding: 0.85rem 1rem 1rem;
  margin: 0 0 1rem;
  background: var(--color-surface);
}

.case-form-section__title {
  padding: 0 0.35rem;
  font-weight: 650;
  font-size: 0.95rem;
  color: var(--color-heading);
}

/* Fall-Detail: große Checkboxen (Touch, bewusste fachliche Bestätigung) */
.case-form-field--checkbox-lg {
  grid-column: 1 / -1;
}

.case-form-field--patho-partner select {
  width: 100%;
  max-width: 100%;
}

/* MTB1: Datum und Keimbahnbefund nebeneinander */
.case-form-row--mtb1-keimbahn {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(min(100%, 12rem), 1fr) minmax(min(100%, 16rem), 1.4fr);
  gap: 0.75rem 1.25rem;
  align-items: end;
}

.case-form-row--mtb1-keimbahn .case-form-field--keimbahn select {
  width: 100%;
  max-width: 100%;
}

@media (max-width: 720px) {
  .case-form-row--mtb1-keimbahn {
    grid-template-columns: 1fr;
    align-items: start;
  }
}

/* MTB-Beschluss: Anmeldungsdatum und MTB-Arzt kompakt nebeneinander */
.case-form-row--mtb2-anmeldung {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.25rem 0.5rem;
  max-width: 28rem;
}

.case-form-row--mtb2-anmeldung .case-form-field--mtb2-datum {
  flex: 0 1 auto;
  min-width: 0;
}

.case-form-row--mtb2-anmeldung .case-form-field--mtb-arzt {
  flex: 0 0 auto;
  min-width: 0;
}

.case-form-row--mtb2-anmeldung .case-form-field--mtb-arzt label {
  margin-bottom: 0.2rem;
}

.case-form-row--mtb2-anmeldung .input-mtb-arzt-kuerzel {
  width: 5.5rem;
  max-width: 5.5rem;
  padding-left: 0.45rem;
  padding-right: 0.45rem;
}

.case-form-field__check--lg {
  gap: 0.75rem;
  padding: 0.55rem 0.85rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.02);
}

.case-form-field__check--lg input[type="checkbox"] {
  width: 1.5rem;
  height: 1.5rem;
  flex: 0 0 1.5rem;
  accent-color: var(--color-checkbox-accent);
  cursor: pointer;
}

.case-form-field__check--lg span {
  font-size: 0.95rem;
  line-height: 1.4;
  font-weight: 500;
}

@media (prefers-color-scheme: dark) {
  .case-form-field__check--lg {
    background: rgba(255, 255, 255, 0.03);
  }
}

.case-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: 0.75rem 1.25rem;
  margin-top: 0.65rem;
}

.case-form-field {
  margin: 0;
  min-width: 0;
}

.case-form-field--full {
  grid-column: 1 / -1;
}

/* Diagnose: Organ, Histologie, OncoTree in einer Zeile (schmal: umbrechen) */
.case-form-section--diagnose .case-form-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 720px) {
  .case-form-section--diagnose .case-form-grid {
    grid-template-columns: 1fr;
  }
}

.case-create-option-panel {
  margin: 0 0 1rem;
  min-height: 2rem;
}

.case-create-option-panel__placeholder {
  margin: 0;
}

.case-create-option-panel .case-form-section {
  margin-bottom: 0;
}

.case-create-option-panel .case-form-grid ul,
.case-create-option-panel .case-form-field > .case-form-analysen-options {
  list-style: none;
  padding-left: 0;
  margin: 0.35rem 0 0;
}

.case-create-option-panel .case-form-grid ul li,
.case-create-option-panel .case-form-field > .case-form-analysen-options > div {
  margin: 0;
}

.case-form-section--tumor-kodierung {
  margin: 0 0 1rem;
  padding: 0.65rem 0.85rem 0.85rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.02);
}

.case-form-section--tumor-kodierung > .case-form-section__title {
  font-size: 0.92rem;
}

/* NCT Master (Fall anlegen): strukturierter Anlagenblock */
.case-master-create-layout {
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
}

.case-master-create-intro {
  margin: 0;
  padding: 0.6rem 0.75rem;
  border-radius: 8px;
  border: 1px solid var(--color-border);
  background: var(--color-bg);
  color: var(--color-text-muted);
  font-size: 0.88rem;
  line-height: 1.4;
}

.case-master-create-grid {
  margin-top: 0;
}

.case-master-create-grid__top {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem 1rem;
  margin-bottom: 0.75rem;
}

.case-master-create-grid__zuweiser {
  grid-column: 1 / span 2;
}

.case-master-create-grid__pseudonym {
  grid-column: 3;
}

.case-master-create-grid__pseudonym {
  margin-bottom: 0;
}

.case-master-create-grid__dates {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem 1rem;
}

@media (max-width: 900px) {
  .case-master-create-grid__top {
    grid-template-columns: 1fr;
  }
  .case-master-create-grid__zuweiser,
  .case-master-create-grid__pseudonym {
    grid-column: auto;
  }
  .case-master-create-grid__dates {
    grid-template-columns: 1fr;
  }
}

.case-form-section--master-asservate {
  margin: 0;
  padding: 0.7rem 0.9rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.02);
}

.case-form-section--master-asservate > .case-form-section__title {
  font-size: 0.9rem;
  font-weight: 650;
}

.case-master-create-toggles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.6rem 0.9rem;
}

.case-master-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.35rem 0.45rem;
  border-radius: 6px;
  cursor: pointer;
}

.case-master-toggle:hover {
  background: rgba(44, 110, 155, 0.08);
}

.case-master-toggle input[type="checkbox"] {
  width: 1.2rem;
  height: 1.2rem;
  accent-color: var(--color-checkbox-accent);
  cursor: pointer;
  flex: none;
}

@media (prefers-color-scheme: dark) {
  .case-master-create-intro {
    background: var(--color-surface);
  }
  .case-form-section--master-asservate {
    background: rgba(255, 255, 255, 0.03);
  }
  .case-master-toggle:hover {
    background: rgba(255, 255, 255, 0.06);
  }
}

/* Fall anlegen MV Genom: Rubrik Einwilligungen */
.case-create-mv64-layout {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.case-create-mv64-identity-row,
.case-create-mv64-insurance-row {
  grid-column: 1 / -1;
}

.case-create-mv64-identity-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.55rem 1rem;
}

.case-create-mv64-insurance-row {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.6rem 0.9rem;
  align-items: start;
}

.case-create-mv64-insurance-row .case-form-field {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.case-create-mv64-insurance-row input:not([type="checkbox"]):not([type="radio"]),
.case-create-mv64-insurance-row select {
  min-height: 2.3rem;
}

.case-create-mv64-insurance-row .case-form-field > label:not(.case-form-field__check) {
  margin-bottom: 0.2rem;
}

@media (max-width: 960px) {
  .case-create-mv64-insurance-row {
    grid-template-columns: 1fr;
  }
}

/* MV Genom: Einwilligungen links, Analysen rechts (schmal: untereinander) */
.case-create-mv64-einw-analysen {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
  align-items: start;
}

.case-create-mv64-einw-analysen > .case-form-section {
  min-width: 0;
}

@media (min-width: 880px) {
  .case-create-mv64-einw-analysen {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.75rem 1rem;
  }
}

.case-create-mtb-only {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.case-create-mtb-only__lead {
  margin: 0;
  font-size: 0.85rem;
  color: var(--color-text-muted);
  line-height: 1.45;
}

/* MV Genom — Übersichtskacheln auf der Fall-Detailseite */
.mv-genom-overview-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

@media (min-width: 720px) {
  .mv-genom-overview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.mv-genom-overview-card {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 0.65rem 0.75rem 0.75rem;
  background: var(--color-blend-surface-card-88);
}

.mv-genom-overview-card h4 {
  margin: 0 0 0.45rem;
  font-size: 0.88rem;
  font-weight: 600;
}

.mv-genom-overview-card__diag-lead {
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  font-weight: 500;
}

.mv-genom-overview-card .meta-list {
  margin: 0;
}

.mv-genom-overview-card--full {
  grid-column: 1 / -1;
}

.mv-follow-up-overview__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin-bottom: 0.65rem;
}

.mv-follow-up-overview__head h4 {
  margin-bottom: 0;
}

.mv-follow-up-overview__monocle {
  font-size: 0.8rem;
  color: var(--color-text-muted);
}

.mv-follow-up-timeline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.mv-follow-up-timeline__item {
  position: relative;
  flex: 1 1 150px;
  min-width: 140px;
}

.mv-follow-up-timeline__item::before {
  content: "";
  position: absolute;
  top: 0.6rem;
  left: 1.1rem;
  right: -0.7rem;
  height: 2px;
  background: var(--color-border);
}

.mv-follow-up-timeline__item:last-child::before {
  display: none;
}

.mv-follow-up-timeline__point {
  position: relative;
  display: block;
  height: 100%;
  padding: 0 0.35rem 0.25rem 0;
  color: inherit;
  text-decoration: none;
}

.mv-follow-up-timeline__point:hover .mv-follow-up-timeline__label {
  color: var(--color-table-link-hover);
}

.mv-follow-up-timeline__dot {
  position: relative;
  z-index: 1;
  display: inline-block;
  width: 0.8rem;
  height: 0.8rem;
  margin-bottom: 0.35rem;
  border: 2px solid var(--color-primary);
  border-radius: 999px;
  background: var(--color-surface);
}

.mv-follow-up-timeline__item--overdue .mv-follow-up-timeline__dot {
  border-color: var(--color-blend-danger-text-strong);
  background: var(--color-blend-danger-tint);
}

.mv-follow-up-timeline__label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.82rem;
  font-weight: 650;
}

.mv-follow-up-timeline__meta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.12rem 0.4rem;
  margin: 0;
  font-size: 0.76rem;
  line-height: 1.25;
}

.mv-follow-up-timeline__meta dt {
  color: var(--color-text-muted);
}

.mv-follow-up-timeline__meta dd {
  margin: 0;
}

.mv-follow-up-timeline__flags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-top: 0.4rem;
}

.mv-follow-up-flag {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  border-radius: 999px;
  padding: 0.1rem 0.45rem;
  font-size: 0.68rem;
  font-weight: 650;
  line-height: 1.25;
}

.mv-follow-up-flag--terminal {
  border: 1px solid var(--color-blend-danger-border-badge);
  background: var(--color-blend-danger-tint);
  color: var(--color-blend-danger-text-strong);
}

.mv-follow-up-flag--lost {
  border: 1px solid var(--color-blend-warning-border);
  background: var(--color-blend-warning-tint);
  color: var(--color-text);
}

.mv-overview-field--missing {
  color: var(--color-warn, #b45309);
  font-weight: 600;
}

.mv-overview-field__hint {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.78rem;
}

/* Zuweiser-Übersicht: kompakte Kontaktzeilen */
.zuweiser-kontakt {
  font-size: 0.88rem;
  line-height: 1.35;
}

.zuweiser-kontakt__zeile {
  margin: 0 0 0.15rem;
}

.zuweiser-kontakt__zeile:last-child {
  margin-bottom: 0;
}

.zuweiser-kontakt__label {
  display: inline-block;
  min-width: 3.25rem;
  margin-right: 0.35rem;
  font-size: 0.8rem;
  color: var(--color-text-muted);
}

.zuweiser-kontakt__kommunikation a {
  word-break: break-word;
}

.zuweiser-kontakt__fax .zuweiser-kontakt__label {
  min-width: auto;
  margin-right: 0.2rem;
}

.zuweiser-kontakt__sep {
  margin: 0 0.3rem;
  color: var(--color-text-muted);
  user-select: none;
}

.zuweiser-kontakt__anschrift {
  margin-top: 0.1rem;
  font-size: 0.86rem;
}

.zuweiser-kontakt--freitext {
  white-space: pre-line;
}

.mv-genom-einschluss-status__value {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.12rem 0.55rem;
  font-size: 0.82rem;
  font-weight: 600;
  border: 1px solid var(--color-blend-success-border-strong);
  background: var(--color-blend-success-bg-medium);
  color: var(--color-blend-success-text-strong);
}

.case-detail-meta-card__actions {
  margin: 0.6rem 0 0;
}

.mv-genom-overview-card--mtb-complete {
  border-color: var(--color-blend-success-border);
  background: var(--color-blend-success-bg);
}

.mv-mtb-overview-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}

.mv-mtb-fertig-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.1rem 0.45rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  border: 1px solid var(--color-blend-success-border-strong);
  background: var(--color-blend-success-bg-medium);
  color: var(--color-text);
}

.mv-status-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.35rem;
}

.mv-overview-monocle-form {
  margin: 0;
}

.mv-status-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.12rem 0.45rem;
  font-size: 0.72rem;
  font-weight: 600;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text-muted);
}

.mv-status-pill--on {
  border-color: var(--color-blend-success-border);
  background: var(--color-blend-success-bg-soft);
  color: var(--color-blend-success-text);
}

.mv-status-pill--off {
  opacity: 0.65;
}

.mv-status-pills--table {
  margin-top: 0;
  gap: 0.25rem;
  max-width: 11rem;
}

.mv-status-pills--table .mv-status-pill {
  font-size: 0.65rem;
  padding: 0.08rem 0.32rem;
}

.cases-list-status-cell {
  white-space: nowrap;
}
.cases-list-status-cell__text {
  display: inline;
}
.cases-list-status-cell__warn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 0.35rem;
  min-width: 1rem;
  height: 1rem;
  padding: 0 0.2rem;
  border-radius: 3px;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
  background: var(--color-warn, #b45309);
  vertical-align: middle;
  cursor: help;
}
.cases-list-status-cell--warn .cases-list-status-cell__text {
  font-weight: 600;
}

.gewebe-arbeitsliste-section {
  margin-bottom: 1.5rem;
}

.gewebe-arbeitsliste-section h3 {
  margin-top: 0;
}

.gewebe-arbeitsliste-row--hinweis {
  --gewebe-arbeitsliste-row-bg: color-mix(
    in srgb,
    var(--color-warn, #b45309) 8%,
    var(--color-surface, #fff)
  );
}

.gewebe-arbeitsliste-row--kritisch {
  --gewebe-arbeitsliste-row-bg: color-mix(
    in srgb,
    var(--color-danger, #b91c1c) 10%,
    var(--color-surface, #fff)
  );
}

.gewebe-arbeitsliste-row--erneut {
  --gewebe-arbeitsliste-row-bg: color-mix(
    in srgb,
    var(--color-accent, #1d4ed8) 7%,
    var(--color-surface, #fff)
  );
}

.gewebe-arbeitsliste-row--erneut.gewebe-arbeitsliste-row--kritisch {
  --gewebe-arbeitsliste-row-bg: color-mix(
    in srgb,
    var(--color-danger, #b91c1c) 12%,
    var(--color-surface, #fff)
  );
}

.gewebe-arbeitsliste-row--hinweis td,
.gewebe-arbeitsliste-row--kritisch td,
.gewebe-arbeitsliste-row--erneut td {
  background: var(--gewebe-arbeitsliste-row-bg);
}

.gewebe-arbeitsliste-section .data-table td.action-cell {
  display: table-cell;
  background: var(--gewebe-arbeitsliste-row-bg, inherit);
  white-space: nowrap;
}

.gewebe-arbeitsliste-section .action-cell .inline-form {
  display: inline-block;
  margin-right: 0.5rem;
  background: transparent;
}

.gewebe-arbeitsliste-laufnummer {
  margin-left: 0.25rem;
  white-space: nowrap;
}

.gewebe-arbeitsliste-badge {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.1rem 0.4rem;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 3px;
}

.gewebe-arbeitsliste-badge--hinweis {
  color: var(--color-warn, #b45309);
  background: color-mix(in srgb, var(--color-warn, #b45309) 15%, transparent);
}

.gewebe-arbeitsliste-badge--kritisch {
  color: var(--color-danger, #b91c1c);
  background: color-mix(in srgb, var(--color-danger, #b91c1c) 12%, transparent);
}

.gewebe-arbeitsliste-badge--erneut {
  color: var(--color-accent, #1d4ed8);
  background: color-mix(in srgb, var(--color-accent, #1d4ed8) 14%, transparent);
}

.patho-gewebeeingang-card__form {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  margin-top: 0.75rem;
}

.patho-gewebeeingang-card__check-row {
  align-self: flex-start;
  margin-bottom: 0.15rem;
}

.patho-gewebeeingang-card__check-row .case-form-field__check {
  gap: 0.75rem;
  padding: 0.55rem 0.85rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.02);
}

.patho-gewebeeingang-card__check-row .case-form-field__check input[type="checkbox"] {
  width: 1.35rem;
  height: 1.35rem;
  flex-basis: 1.35rem;
}

.patho-gewebeeingang-card__check-row .case-form-field__check span {
  font-size: 0.95rem;
  line-height: 1.4;
}

.patho-gewebeeingang-card__status > label {
  display: block;
  font-size: 0.88rem;
  color: var(--color-text-muted);
  margin-bottom: 0.35rem;
}

.patho-gewebeeingang-card__status select {
  display: block;
  width: min(100%, 22rem);
  max-width: 100%;
}

.patho-befund-felder__form #id_tumorzellgehalt,
.patho-befund-felder__form #id_e_nummer,
.patho-befund-felder__form #id_tumorzellgehalt:disabled,
.patho-befund-felder__form #id_e_nummer:disabled {
  background: #fff !important;
  color: #0f172a;
  opacity: 1;
}

.cases-mv-list-ew {
  font-weight: 600;
  white-space: nowrap;
}

.cases-mv-list-ew--ok {
  color: var(--color-blend-success-text-strong);
}

.cases-mv-list-ew--miss {
  color: var(--color-blend-warning-text);
}

.cases-mv-list-ew-cell {
  position: relative;
  vertical-align: top;
}

.cases-mv-list-ew-cell:has(.cases-mv-ew-pop[open]) {
  z-index: 25;
}

.cases-mv-ew-pop {
  max-width: 16rem;
}

.cases-mv-ew-summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-weight: 600;
  white-space: nowrap;
}

.cases-mv-ew-summary::-webkit-details-marker {
  display: none;
}

.cases-mv-ew-panel {
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 30;
  margin-top: 0.35rem;
  min-width: 15rem;
  max-width: min(18rem, 92vw);
  padding: 0.55rem 0.65rem 0.65rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface, #fff);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.cases-mv-ew-fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

.cases-mv-ew-legend {
  padding: 0;
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--color-heading);
}

.cases-mv-ew-check {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0.25rem 0;
  font-size: 0.82rem;
  cursor: pointer;
}

.cases-mv-ew-check input {
  width: 1.1rem;
  height: 1.1rem;
  flex-shrink: 0;
}

.cases-mv-ew-actions {
  margin-top: 0.5rem;
  padding-top: 0.45rem;
  border-top: 1px solid var(--color-border);
}

.cases-mv-ew-actions .btn {
  font-size: 0.82rem;
  padding: 0.25rem 0.65rem;
}

.cases-mv-list-mtb {
  max-width: 15rem;
  font-size: 0.82rem;
  white-space: normal;
  line-height: 1.35;
}

.cases-mv-list-mono {
  font-weight: 600;
  white-space: nowrap;
}

.cases-mv-list-mono--fehler {
  color: var(--color-blend-danger-text);
}

.cases-mv-list-mono--gestoppt {
  color: var(--color-blend-warning-text-strong);
}

.cases-mv-list-mono--ubermittelt {
  color: var(--color-blend-success-text-medium);
}

.cases-mv-list-mono--angelegt {
  color: var(--color-text-muted);
}

.cases-mv-list-mono--offen {
  color: var(--color-text-muted);
}

.cases-mv-list-abrechnung {
  font-weight: 600;
  white-space: nowrap;
}

.cases-mv-list-abrechnung--offen {
  color: var(--color-text-muted);
}

.cases-mv-list-abrechnung--gesendet {
  color: var(--color-blend-success-text-soft);
}

.cases-mv-list-abrechnung--abgerechnet {
  color: var(--color-blend-success-text-strong);
}

.cases-mv-inline-select {
  box-sizing: border-box;
  max-width: 100%;
  width: 100%;
  min-width: 0;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 0.2rem 0.4rem;
  border-radius: 6px;
  border: 1px solid var(--color-border);
  background: var(--color-surface, #fff);
  color: inherit;
  cursor: pointer;
}

.case-form-section--einwilligungen-block {
  margin: 0;
  padding: 0.75rem 0.9rem 0.95rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.02);
}

.case-form-section--einwilligungen-block > .case-form-section__title {
  font-size: 0.88rem;
  font-weight: 400;
}

/* Einwilligungs-Checkboxen bewusst größer als Standard-Inputs, damit sie
   bei der Fallanlage als bewusste fachliche Entscheidung gut sichtbar und
   leicht klickbar sind (auch auf Touch-Geräten). */
.case-form-section--einwilligungen-block input[type="checkbox"] {
  width: 1.4rem;
  height: 1.4rem;
  cursor: pointer;
  accent-color: var(--color-checkbox-accent);
  flex-shrink: 0;
  margin: 0;
}

.mv-einwilligungen {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.mv-einwilligungen-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  padding-bottom: 0.35rem;
  margin-bottom: 0.15rem;
  border-bottom: 1px solid var(--color-blend-border-faint);
}

.mv-einwilligungen-toolbar__btn {
  padding: 0.28rem 0.6rem;
  font-size: 0.8125rem;
}

/* Überschreibt .btn { font-weight: 600 } aus components.css (lädt nach theme.css) */
.case-form-section--einwilligungen-block .mv-einwilligungen-toolbar .btn {
  font-weight: 400;
}

.mv-einwilligungen-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 10.5rem), 1fr));
  gap: 0.35rem 0.65rem;
}

.mv-einwilligung-item {
  min-width: 0;
}

.mv-einwilligung-option {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0.35rem 0.45rem;
  border-radius: 6px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color 0.12s ease, border-color 0.12s ease;
}

.mv-einwilligung-option:hover {
  background: var(--color-blend-surface-hover);
  border-color: var(--color-blend-border-soft);
}

.mv-einwilligung-option__label {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.25;
  color: var(--color-text);
}

.mv-einwilligung-item__errors {
  margin: 0.15rem 0 0 0.15rem;
  padding-left: 1.1rem;
}

@media (prefers-color-scheme: dark) {
  .case-form-section--einwilligungen-block {
    background: rgba(255, 255, 255, 0.03);
  }

  .mv-einwilligung-option:hover {
    background: rgba(255, 255, 255, 0.06);
    border-color: var(--color-border);
  }
}

/* Fall anlegen MV Genom: Rubrik Analysen — eigene Box (Hintergrund), ohne Akzentlinie */
.case-form-section--analysen-block {
  margin: 0;
  padding: 0.55rem 0.65rem 0.72rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: rgba(44, 110, 155, 0.06);
}

.case-form-section--analysen-block > .case-form-section__title {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--color-primary, #123a46);
}

/* Django 5+: div.case-form-analysen-options > div > label — linksbündige Liste, eine Spalte Checkbox | Text */
.case-form-analysen-options,
.case-form-analysen-options ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.3rem;
  width: 100%;
  max-width: min(22rem, 100%);
  text-align: left;
}

.case-form-analysen-options > div,
.case-form-analysen-options ul > li {
  margin: 0;
  min-width: 0;
  width: 100%;
}

.case-form-analysen-options label {
  display: grid;
  grid-template-columns: 1.125rem 1fr;
  column-gap: 0.45rem;
  align-items: center;
  justify-items: start;
  width: 100%;
  box-sizing: border-box;
  cursor: pointer;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.3;
  color: var(--color-text);
  padding: 0.22rem 0.35rem;
  border-radius: 5px;
  transition: background-color 0.12s ease-in-out;
}

.case-form-analysen-options label:hover {
  background-color: rgba(44, 110, 155, 0.1);
}

/* Per JS deaktivierte Optionen: visuell klar zurückgenommen, aber lesbar. */
.case-form-analysen-options label.is-disabled {
  opacity: 0.4;
  cursor: not-allowed;
  background-color: transparent;
}

.case-form-analysen-options label.is-disabled:hover {
  background-color: transparent;
}

.case-form-analysen-options input[type="checkbox"] {
  width: 1.05rem;
  height: 1.05rem;
  margin: 0;
  justify-self: start;
  cursor: pointer;
  accent-color: var(--color-checkbox-accent);
}

.case-form-analysen-options input[type="checkbox"]:disabled {
  cursor: not-allowed;
}

@media (prefers-color-scheme: dark) {
  .case-form-section--analysen-block {
    background: rgba(255, 255, 255, 0.04);
  }
  .case-form-analysen-options label:hover {
    background-color: rgba(255, 255, 255, 0.06);
  }
}

/* MV-Genom: Überschrift „Molekulare Analysen“ + Tooltip (title), kleines i als Hinweis */
label.case-analysen-kombi-heading[title],
span.case-analysen-kombi-heading[title] {
  cursor: help;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: nowrap;
}

.case-analysen-kombi-i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 auto;
  width: 1.2em;
  height: 1.2em;
  margin: 0;
  padding: 0;
  font-size: 0.62em;
  font-weight: 700;
  font-style: italic;
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1;
  color: var(--color-primary, #123a46);
  border: 1px solid var(--color-blend-primary-border);
  border-radius: 50%;
  background: var(--color-blend-surface-glass);
}

@media (prefers-color-scheme: dark) {
  .case-analysen-kombi-i {
    color: var(--color-blend-primary-text-strong);
    border-color: var(--color-blend-border-dashed);
    background: var(--color-blend-surface-glass-muted);
  }
}

/* Nur das Feld-Label (direktes Kind), nicht Checkbox-Sonderlayout (.case-form-field__check) */
.case-form-field > label:not(.case-form-field__check) {
  display: block;
  font-size: 0.88rem;
  color: var(--color-text-muted);
  margin-bottom: 0.25rem;
}

/* Nach allgemeinem Feld-Label: MV-Analysen-Überschrift bleibt inline (Text + Info-i) */
.case-form-field > label.case-analysen-kombi-heading[title] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: nowrap;
  cursor: help;
}

.case-form-field__errors {
  margin: 0.25rem 0 0;
  padding-left: 1.1rem;
  color: var(--color-danger);
  font-size: 0.85rem;
}

.case-form-field__hint {
  display: block;
  font-size: 0.8rem;
  color: var(--color-text-muted);
  margin-top: 0.2rem;
}

/* Auto-Hinweis bei automatisch vorgeschlagenen Werten (z. B. PKV-Erkennung) */
.case-form-field__hint--auto {
  color: #1f6f46;
  font-style: italic;
}

.case-detail-form__actions {
  margin: 0.25rem 0 0;
}

@media (max-width: 1100px) {
  .main {
    grid-template-columns: 1fr;
  }

  .content-split {
    grid-template-columns: 1fr;
  }
}

/* --- theme.dekoration (Konfiguration): Spaß-Overlays, pointer-events: none --- */
.dekoration-layer {
  position: fixed;
  inset: 0;
  z-index: 9998;
  overflow: hidden;
  pointer-events: none;
}

/* Kinder dürfen nie Klicks abfangen (sonst wirkt die Oberfläche wie „erst Doppelklick“). */
.dekoration-layer *,
.fun-layer * {
  pointer-events: none !important;
}

.dekoration-sprite {
  position: absolute;
  left: -12%;
  font-size: 1.85rem;
  line-height: 1;
  animation-name: dekoration-stroll;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}

@keyframes dekoration-stroll {
  to {
    left: 110%;
  }
}

.dekoration-footprint {
  position: fixed;
  font-size: 0.95rem;
  line-height: 1;
  opacity: 0.5;
  animation: dekoration-fadeout 4s ease-out forwards;
}

@keyframes dekoration-fadeout {
  from {
    opacity: 0.45;
  }

  to {
    opacity: 0;
    transform: scale(0.88);
  }
}

.dekoration-sparkle {
  position: fixed;
  font-size: 1.15rem;
  line-height: 1;
  opacity: 0.75;
  animation: dekoration-twinkle 2.4s ease-out forwards;
}

@keyframes dekoration-twinkle {
  0% {
    opacity: 0;
    transform: scale(0.6);
  }

  35% {
    opacity: 0.85;
  }

  100% {
    opacity: 0;
    transform: scale(1.15) rotate(12deg);
  }
}

.dekoration-wave {
  position: absolute;
  right: -15%;
  font-size: 2rem;
  line-height: 1;
  opacity: 0.3;
  animation: dekoration-wave-sail 32s linear infinite;
}

@keyframes dekoration-wave-sail {
  to {
    right: 112%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dekoration-layer {
    display: none;
  }
}

/* Sanfte Farbanpassungen pro Dekor (Light/Dark getrennt) */
@media (prefers-color-scheme: light) {
  body.app[data-dekoration="cats"] {
    --color-primary: #b45309;
    --color-bg: #fffdf8;
    --color-surface: #fff8f0;
    --color-surface-alt: #fffbf5;
  }

  body.app[data-dekoration="unicorns"] {
    --color-primary: #9333ea;
    --color-bg: #fdfaff;
    --color-surface: #f8f4ff;
  }

  body.app[data-dekoration="sailing"] {
    --color-primary: #0369a1;
    --color-bg: #f6fbff;
    --color-surface: #eef6fc;
  }

  body.app[data-dekoration="firebrigade"] {
    --color-primary: #b91c1c;
    --color-bg: #fff8f7;
    --color-surface: #fff1ef;
  }
}

@media (prefers-color-scheme: dark) {
  body.app[data-dekoration="cats"] {
    --color-primary: #fbbf24;
    --color-bg: #120f0a;
    --color-surface: #18120c;
    --color-surface-alt: #0f0c08;
  }

  body.app[data-dekoration="unicorns"] {
    --color-primary: #c084fc;
    --color-bg: #100818;
    --color-surface: #140d1c;
  }

  body.app[data-dekoration="sailing"] {
    --color-primary: #38bdf8;
    --color-bg: #070f16;
    --color-surface: #0a141c;
  }

  body.app[data-dekoration="firebrigade"] {
    --color-primary: #f87171;
    --color-bg: #140a0a;
    --color-surface: #1a0f0f;
  }
}

