/* Components: buttons, forms, tables, tabs, badges, alerts */

/* Typography scale helpers */
.page-title {
  font-size: 20px;
  font-weight: 650;
  margin: 0 0 8px 0;
}
.section-title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 8px 0;
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0.45rem 0.75rem;
  border-radius: 6px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-table-link);
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
}
.btn--primary {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}
.btn--primary:hover:not(:disabled) {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
}
.btn--secondary {
  background: transparent;
  border-color: var(--color-border);
}
.btn--back-to-list {
  white-space: nowrap;
}
.btn--danger {
  border-color: var(--color-danger);
  color: var(--color-danger);
  background: transparent;
}
.btn--danger:hover {
  background: var(--color-blend-danger-tint);
}
.btn--small {
  padding: 0.3rem 0.6rem;
  font-size: 0.8rem;
  gap: 0.35rem;
}
.btn:disabled,
.btn[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Form controls */
.form-row {
  margin-bottom: 0.6rem;
}
.form-label {
  display: block;
  font-size: 13px;
  color: var(--color-text-muted);
  margin-bottom: 0.25rem;
  font-weight: 600;
}
input[type="text"],
input[type="search"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="tel"],
input[type="url"],
select,
textarea {
  height: 36px;
  padding: 6px 10px;
  border-radius: 6px;
  border: 1px solid var(--color-border);
  background: var(--color-surface-alt);
  color: var(--color-text);
  font-size: 14px;
  box-sizing: border-box;
  width: 100%;
  max-width: 28rem;
}

/* django-two-factor-auth Defaults (Bootstrap-Namen) auf Oncomax-Buttons mappen */
.btn-primary {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}
.btn-primary:hover:not(:disabled) {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
}
.btn-secondary {
  background: transparent;
  border-color: var(--color-border);
}
.btn-link {
  background: transparent;
  border-color: transparent;
  color: var(--color-table-link);
  text-decoration: underline;
}
.btn-block {
  display: flex;
  width: 100%;
  justify-content: center;
}
.float-right {
  float: right;
}
.mb-3 {
  margin-bottom: 1rem;
}

/* Auth-Seiten (Login / TOTP) */
.auth-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  padding: 1.5rem;
  background: var(--color-bg);
}
.auth-brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.auth-brand__logo {
  display: block;
  width: auto;
  height: 52px;
  max-width: min(280px, 80vw);
  object-fit: contain;
  border-radius: 0;
}
.auth-brand__name {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--color-text);
}
.auth-main {
  width: 100%;
  max-width: 26rem;
}
.auth-main:has(.auth-totp) {
  max-width: 44rem;
}
.auth-card {
  padding: 1.25rem 1.35rem 1.5rem;
}
.auth-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin: 1rem 0 0;
}
.auth-divider {
  margin: 1.25rem 0;
  border: 0;
  border-top: 1px solid var(--color-border);
}
.auth-qr {
  display: block;
  max-width: 220px;
  width: 100%;
  height: auto;
  margin: 0.35rem 0 0.75rem;
  background: #fff;
  padding: 0.5rem;
  border-radius: 8px;
  border: 1px solid var(--color-border);
}
.auth-help {
  margin-bottom: 1rem;
}
.auth-help p {
  margin: 0 0 0.65rem;
}
.auth-totp {
  display: grid;
  grid-template-columns: minmax(11rem, 14rem) minmax(0, 1fr);
  gap: 1.25rem 1.5rem;
  align-items: start;
  margin: 0.5rem 0 1rem;
}
.auth-totp__label {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text-muted);
  margin: 0 0 0.35rem;
}
.auth-totp__secret {
  font-size: 12px;
  margin: 0;
  word-break: break-all;
}
.auth-totp__code {
  display: inline-block;
  margin-top: 0.25rem;
  font-size: 12px;
  letter-spacing: 0.02em;
}
.auth-totp__guide .section-title {
  margin-top: 0.75rem;
}
.auth-totp__guide .section-title:first-child {
  margin-top: 0;
}
.auth-totp__steps {
  margin: 0.35rem 0 0.75rem;
  padding-left: 1.2rem;
}
.auth-totp__steps li {
  margin-bottom: 0.35rem;
}
.auth-totp__apps {
  margin: 0.35rem 0 0.5rem;
  padding-left: 1.2rem;
}
.auth-totp__apps li {
  margin-bottom: 0.45rem;
}
.auth-totp__apps a {
  color: var(--color-table-link);
  font-weight: 600;
}
.auth-totp__also {
  font-size: 12px;
  margin: 0.5rem 0 0;
}
.auth-forgot {
  margin: 1rem 0 0;
  font-size: 13px;
}
.auth-forgot a {
  color: var(--color-table-link);
}
@media (max-width: 640px) {
  .auth-totp {
    grid-template-columns: 1fr;
  }
  .auth-qr {
    margin-left: auto;
    margin-right: auto;
  }
}
textarea { height: auto; min-height: 90px; padding-top: 8px; padding-bottom: 8px; }
.help-text {
  font-size: 12px;
  color: var(--color-text-muted);
}

.terminology-box__badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.terminology-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
}

.terminology-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}

.terminology-modal__dialog {
  position: relative;
  width: min(1200px, calc(100vw - 40px));
  max-height: calc(100vh - 40px);
  overflow: auto;
  margin: 20px auto;
}

.terminology-modal__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 20px;
}

@media (max-width: 980px) {
  .terminology-modal__grid {
    grid-template-columns: 1fr;
  }
}
.error-text {
  color: var(--color-danger);
  font-size: 13px;
}

/* Kodierung / ICD-Vorschläge */
.input-readonly {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--color-border);
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.03);
  color: var(--color-text-muted);
  font-size: inherit;
  cursor: default;
}

.case-form-field__label {
  display: block;
  font-size: 0.88rem;
  color: var(--color-text-muted);
  margin-bottom: 0.25rem;
}

.oncotree-select-field__filter {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-bottom: 0.35rem;
}
.oncotree-select-field .js-oncotree-select {
  display: block;
  width: 100%;
  max-width: 100%;
}
.coding-suggest {
  margin-top: 0.35rem;
  margin-bottom: 0.75rem;
  max-height: 280px;
  overflow-y: auto;
  border: 1px solid var(--color-border);
  border-radius: 6px;
  background: var(--color-surface);
  padding: 6px 8px;
}
.coding-suggest:empty {
  display: none;
  margin: 0;
  padding: 0;
  border: 0;
}
.coding-suggest__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.coding-suggest__item + .coding-suggest__item {
  border-top: 1px solid var(--color-border);
}
.coding-suggest__btn {
  display: block;
  width: 100%;
  text-align: left;
  padding: 8px 6px;
  border: 0;
  background: transparent;
  color: var(--color-text);
  cursor: pointer;
  border-radius: 4px;
}
.coding-suggest__btn:hover {
  background: var(--color-bg);
}
.coding-suggest__section {
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text);
  margin: 0 0 6px 0;
}
.coding-suggest__badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 2px 6px;
  margin-right: 6px;
  border-radius: 4px;
  background: var(--color-accent, #1a5f8a);
  color: #fff;
  vertical-align: middle;
}
.coding-suggest__item--bundle .coding-suggest__btn--bundle {
  border-left: 3px solid var(--color-accent, #1a5f8a);
  padding-left: 10px;
}
.coding-suggest__title {
  display: block;
  font-weight: 600;
  font-size: 14px;
}
.coding-suggest__sub {
  display: block;
  font-size: 12px;
  color: var(--color-text-muted);
  margin-top: 2px;
  white-space: pre-line;
}
.coding-suggest__hint,
.coding-suggest__disclaimer,
.coding-suggest__empty {
  font-size: 12px;
  color: var(--color-text-muted);
  margin: 4px 0 0 0;
}
.coding-suggest__disclaimer {
  margin-top: 8px;
  font-style: italic;
}
.case-form-field--hidden-label > label:first-child {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}
/* Zeile nur so breit wie Inhalt; kein flex-grow auf dem Text (sonst „zentriert im Rest“). */
.case-form-field__check {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  width: fit-content;
  max-width: 100%;
  gap: 0.28rem;
  font-weight: 400;
  cursor: pointer;
}
.case-form-field__check span {
  flex: 0 0 auto;
  text-align: start;
  line-height: 1.35;
}

/* Wrapper: Checkbox+Text nur so breit wie Inhalt (Fieldset stretch sonst volle Breite). */
.kp-doc-checkbox-row {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  align-self: flex-start;
}
.kp-doc-checkbox-row > .case-form-field__check {
  flex: 0 0 auto;
}

/* Kein negatives margin: sonst Überlappung mit dem Fieldset-Rahmen (Padding 0.75rem). */
.kp-doc-fieldset .kp-doc-checkbox-row {
  margin-inline-start: 0;
}
.case-form-field__check input[type="checkbox"] {
  margin: 0;
  margin-inline-start: 0;
  flex: 0 0 1.25rem;
  width: 1.25rem;
  height: 1.25rem;
  box-sizing: border-box;
  flex-shrink: 0;
}

/* Tabs */
.tabs {
  display: flex;
  gap: 8px;
  padding: 6px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 8px;
}
.tabs [role="tab"] {
  padding: 8px 12px;
  border-radius: 6px;
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
}
.tabs [role="tab"][aria-selected="true"] {
  background: var(--color-surface-alt);
  border-color: var(--color-border);
  font-weight: 700;
  color: var(--color-table-link);
}

/* Tables — ruhig, professionell (Excel-Bedienung, nicht Excel-Optik) */
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
}
.data-table th,
.data-table td {
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid var(--color-blend-border-faint, var(--color-border));
  vertical-align: middle;
  color: var(--color-table-text);
}
/* Sekundärspalten (Anlage, Aktualisiert …): grau, trotz Farbe auf allen td */
.data-table td.table-muted {
  color: var(--color-text-muted);
  font-size: 0.9rem;
}
.data-table tbody td a {
  color: var(--color-table-link);
}
.data-table tbody td a:hover {
  color: var(--color-table-link-hover);
}
.data-table tbody tr:hover {
  background: var(--color-blend-surface-hover, rgba(0, 0, 0, 0.02));
}
/* Patienten mit Sprechstunden-/Termindatum heute (Patientenliste) */
.data-table tbody tr.patient-row--termin-heute,
.data-table tbody tr.patient-row--termin-heute td {
  color: var(--color-blend-danger-text-strong);
}
.data-table tbody tr.patient-row--termin-heute a {
  color: inherit;
  font-weight: 600;
}
/* Patient an diesem Kalendertag angelegt (Erstellungsdatum) */
.data-table tbody tr.patient-row--neu-heute td {
  font-weight: 700;
}
.data-table tbody tr.patient-row--neu-heute a {
  font-weight: 700;
}

/* Sprechstunden-Liste: visuelle Trennung Termin vorhanden / offen */
.data-table tbody tr.sprechstunden-row--ohne-termin td {
  background: var(--color-blend-warning-tint);
}

.data-table tbody tr.sprechstunden-row--mit-termin td {
  opacity: 0.88;
}

.data-table tbody tr.follow-up-row--overdue-warning td {
  background: var(--color-blend-warning-tint);
}

.data-table tbody tr.follow-up-row--overdue-danger td {
  background: var(--color-blend-danger-tint);
  color: var(--color-blend-danger-text-strong);
}

.data-table tbody tr.follow-up-row--overdue-danger a {
  color: inherit;
  font-weight: 600;
}

.mv-genom-follow-up-table {
  table-layout: fixed;
  width: 100%;
}

.mv-genom-follow-up-table th,
.mv-genom-follow-up-table td {
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
  vertical-align: top;
}

.mv-genom-follow-up-table thead th.data-table__sortable {
  white-space: normal;
  height: auto;
  min-height: 44px;
}

.mv-genom-follow-up-table tbody td {
  height: auto;
  min-height: 46px;
}

.mv-genom-follow-up-table .data-table__th-tools,
.mv-genom-follow-up-table .data-table__sort-link {
  flex-wrap: wrap;
  align-items: flex-start;
}

.mv-genom-follow-up-table .data-table__sort-label {
  white-space: normal;
  line-height: 1.25;
}

/* 1 Fällig am | 2 Fall | 3 Patient | 4 Fälliges FU | 5 Status | 6 Kontaktaufnahme | 7 Monocle-FU | 8 Aktionen */
.mv-genom-follow-up-table th:nth-child(1),
.mv-genom-follow-up-table td:nth-child(1) {
  width: 7.25rem;
}

.mv-genom-follow-up-table th:nth-child(2),
.mv-genom-follow-up-table td:nth-child(2) {
  width: 6.25rem;
}

.mv-genom-follow-up-table th:nth-child(3),
.mv-genom-follow-up-table td:nth-child(3) {
  width: auto;
  min-width: 9rem;
}

.mv-genom-follow-up-table th:nth-child(4),
.mv-genom-follow-up-table td:nth-child(4) {
  width: 4.75rem;
}

.mv-genom-follow-up-table th:nth-child(5),
.mv-genom-follow-up-table td:nth-child(5) {
  width: 6.25rem;
}

.mv-genom-follow-up-table th:nth-child(6),
.mv-genom-follow-up-table td:nth-child(6) {
  width: 6.75rem;
}

.mv-genom-follow-up-table th:nth-child(7),
.mv-genom-follow-up-table td:nth-child(7) {
  width: 6.75rem;
}

.mv-genom-follow-up-table th:nth-child(8),
.mv-genom-follow-up-table td:nth-child(8) {
  width: 5.5rem;
}

.mv-genom-follow-up-table td.action-cell {
  display: table-cell;
  text-align: right;
  white-space: nowrap;
  vertical-align: middle;
}

.mv-genom-follow-up-table__kontakt .table-muted,
.mv-genom-follow-up-table__patient .table-muted {
  display: inline-block;
  margin-top: 0.1rem;
}

.data-table thead tr.data-table__filter-row th {
  vertical-align: bottom;
  padding-top: 4px;
  font-weight: 400;
}
.data-table thead tr.data-table__filter-row input,
.data-table thead tr.data-table__filter-row select {
  width: 100%;
  max-width: 100%;
  font-weight: 400;
  box-sizing: border-box;
}

.patients-panel__head--split {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.patients-panel__head--split .patients-panel__title {
  margin-bottom: 0;
}

.sprechstunden-filter-cols-actions {
  margin: 0.5rem 0 0 0;
}

.sprechstunden-form-context {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 8px;
}
.sprechstunden-calendar {
  margin: 0 0 1rem;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface);
}
.sprechstunden-calendar__title {
  margin: 0 0 0.45rem;
  font-size: 0.9rem;
  color: var(--color-text-muted);
}
.sprechstunden-calendar__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
  gap: 0.35rem 0.45rem;
}
.sprechstunden-calendar__item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.4rem;
  padding: 0.32rem 0.45rem;
  border: 1px solid var(--color-border);
  border-radius: 6px;
  font-size: 0.85rem;
}
.sprechstunden-calendar__item strong {
  font-weight: 500;
}
.sprechstunden-calendar__item em {
  font-style: normal;
  font-size: 0.78rem;
  color: var(--color-text-muted);
}
.sprechstunden-calendar__item.is-selectable {
  cursor: pointer;
}
.sprechstunden-calendar__item.is-selectable:hover {
  border-color: var(--color-blend-link-border-hover);
  box-shadow: 0 0 0 1px var(--color-blend-link-ring);
}
.sprechstunden-calendar__item.is-free {
  background: var(--color-blend-success-bg);
}
.sprechstunden-calendar__item.is-booked {
  background: var(--color-blend-warning-bg-soft);
}
.sprechstunden-calendar__empty {
  margin: 0;
  color: var(--color-text-muted);
}

.sprechstunden-utilization {
  margin-bottom: 1rem;
}

.sprechstunden-utilization__chart {
  display: grid;
  gap: 0.45rem;
}

.sprechstunden-utilization__row {
  display: grid;
  gap: 0.2rem;
}

.sprechstunden-utilization__meta {
  display: flex;
  justify-content: space-between;
  gap: 0.7rem;
  font-size: 0.84rem;
}

.sprechstunden-utilization__meta span {
  color: var(--color-text-muted);
}

.sprechstunden-utilization__bar {
  height: 0.55rem;
  border-radius: 999px;
  background: var(--color-blend-surface-track);
  overflow: hidden;
}

.sprechstunden-utilization__bar > span {
  display: block;
  height: 100%;
  background: var(--color-table-link);
}

.sprechstunden-utilization__empty {
  margin: 0;
  color: var(--color-text-muted);
}
.sprechstunden-form-context__step {
  margin: 0 0 0.35rem 0;
  font-size: 14px;
}
.sprechstunden-form-context__patient {
  margin: 0 0 0.35rem 0;
}
.sprechstunden-form-context__fall {
  margin: 0 0 0.35rem 0;
}

.sprechstunden-history {
  margin-top: 0.75rem;
}
.sprechstunden-history__title {
  margin: 0 0 0.35rem 0;
  font-weight: 600;
}
.sprechstunden-history ul {
  margin: 0;
  padding-left: 1.1rem;
}
.sprechstunden-history li {
  margin: 0.15rem 0;
}

.sprechstunden-date-hint {
  margin: 0.35rem 0 0;
  font-size: 0.85rem;
  color: var(--color-warning);
}

.sprechstunden-selected-list {
  margin-bottom: 1rem;
}
.sprechstunden-selected-list__title {
  margin: 0 0 0.4rem 0;
  color: var(--color-text-muted);
  font-weight: 600;
}
.sprechstunden-selected-list__items {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.sprechstunden-selected-list__item {
  padding: 0.35rem 0.55rem;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--color-text);
  cursor: pointer;
  font-weight: 400;
  transition:
    background-color 0.12s ease,
    border-color 0.12s ease,
    color 0.12s ease,
    box-shadow 0.12s ease;
}
.sprechstunden-selected-list__item:hover {
  border-color: var(--color-blend-link-border);
  background: var(--color-blend-surface-hover-strong);
}
.sprechstunden-selected-list__item.is-active {
  background: var(--color-blend-primary-on-surface-alt);
  border-color: var(--color-blend-link-border-active);
  color: var(--color-heading);
  font-weight: 650;
  box-shadow: 0 0 0 1px var(--color-blend-link-ring-strong);
}

.sprechstunden-step-nav {
  display: flex;
  gap: 0.5rem;
  margin: 0 0 0.85rem 0;
  flex-wrap: wrap;
}

.sprechstunden-form-fields {
  display: grid;
  gap: 0.75rem;
}

.sprechstunden-form-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem 0.85rem;
}

@media (max-width: 900px) {
  .sprechstunden-form-row {
    grid-template-columns: 1fr;
  }
}

.sprechstunden-dashboard #sprechstunden-save-btn {
  background: #256d7b;
  border-color: #256d7b;
}

.sprechstunden-dashboard #sprechstunden-save-btn:hover:not(:disabled) {
  background: var(--color-table-link-hover);
  border-color: var(--color-table-link-hover);
}

.sprechstunden-dashboard #id_bulk-uhrzeit option:disabled {
  color: var(--color-text-muted);
}

.sprechstunden-col-action,
.sprechstunden-row-action {
  width: 1%;
  white-space: nowrap;
  text-align: center;
}

.sprechstunden-row-action__btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  margin: 0;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: 6px;
  background: var(--color-surface-alt);
  color: var(--color-table-link);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}

.sprechstunden-row-action__btn:hover {
  color: var(--color-table-link-hover);
  background: var(--color-blend-surface-hover-strong);
}

.sprechstunden-row-action__btn:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.sprechstunden-row-action__btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.sprechstunden-decision-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
}

.sprechstunden-decision-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 16, 20, 0.4);
}

.sprechstunden-decision-modal__dialog {
  position: relative;
  max-width: 28rem;
  margin: 18vh auto 0;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  padding: 1rem;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.sprechstunden-decision-modal__title {
  margin: 0 0 0.45rem;
}

.sprechstunden-decision-modal__text {
  margin: 0;
}

.sprechstunden-decision-modal__actions {
  margin-top: 1rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

/* Fallanlage bearbeiten — separates Overlay (native <dialog>) */
.case-anlage-dialog {
  border: none;
  padding: 0;
  max-width: min(42rem, 96vw);
  width: 100%;
  margin: auto;
  background: transparent;
}

.case-anlage-dialog::backdrop {
  background: rgba(10, 16, 20, 0.45);
}

.case-anlage-dialog__shell {
  margin: 0;
  max-height: min(90vh, 920px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.case-anlage-dialog__shell > form.case-anlage-dialog__form {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.case-anlage-dialog__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-shrink: 0;
  padding-bottom: 0.75rem;
  margin-bottom: 0;
  border-bottom: 1px solid var(--color-border);
}

.case-anlage-dialog__title {
  margin: 0;
  flex: 1;
  min-width: 0;
}

.case-anlage-dialog__close {
  flex-shrink: 0;
}

.case-anlage-dialog__header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  flex-shrink: 0;
}

.case-anlage-dialog__body {
  overflow-y: auto;
  flex: 1 1 auto;
  min-height: 0;
  padding-top: 0.75rem;
}

.case-anlage-inline {
  margin-top: 1rem;
}

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

.kooperationspartner-inline-actions__icon-btn {
  width: 2rem;
  min-width: 2rem;
  height: 2rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
}

.kooperationspartner-inline-actions__icon {
  font-size: 1rem;
  line-height: 1;
  font-weight: 700;
}

/* MTB-Tab: molekulare Analysen unter MTB1 (Abstand zum Datumsfeld darüber) */
.case-mtb-anlage-analysen {
  margin: 1.75rem 0 0.85rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface-alt);
}

.case-mtb-anlage-analysen__label {
  display: block;
  margin: 0 0 0.65rem;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--color-heading);
}

.case-mtb-anlage-analysen__label.case-analysen-kombi-heading[title] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: nowrap;
  cursor: help;
}

/* Checkbox-Optionen: Text neben der Box (Django 5+: div > div > label; älter: ul > li > label) */
.case-mtb-anlage-analysen .case-form-field > ul,
.case-mtb-anlage-analysen .case-form-field > .case-form-analysen-options {
  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-mtb-anlage-analysen .case-form-field > ul > li,
.case-mtb-anlage-analysen .case-form-field > .case-form-analysen-options > div {
  margin: 0;
  width: 100%;
  min-width: 0;
}

.case-mtb-anlage-analysen .case-form-field > ul > li > label,
.case-mtb-anlage-analysen .case-form-field > .case-form-analysen-options > div > 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;
  margin-bottom: 0;
  padding: 0.22rem 0.35rem;
  border-radius: 5px;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3;
  color: var(--color-text);
  cursor: pointer;
}

.case-mtb-anlage-analysen .case-form-field > ul > li > label input[type="checkbox"],
.case-mtb-anlage-analysen .case-form-field > .case-form-analysen-options > div > label input[type="checkbox"] {
  width: 1.05rem;
  height: 1.05rem;
  margin: 0;
  justify-self: start;
  accent-color: var(--color-checkbox-accent);
}

.case-mtb-anlage-analysen__list {
  margin: 0;
  padding-left: 1.15rem;
}

.case-mtb-anlage-analysen__meta {
  color: var(--color-text-muted);
  font-size: 0.9em;
}

.case-mtb-praediktive-marker {
  margin: 0.7rem 0 0.85rem;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface-alt);
}

.case-mtb-praediktive-marker__title {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-heading);
}

.case-pm-katalog-checkboxes ul {
  list-style: none;
  margin: 0.5rem 0 1rem;
  padding: 0;
  display: grid;
  gap: 0.35rem 1rem;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
}

.case-pm-katalog-checkboxes li label {
  display: flex;
  gap: 0.45rem;
  align-items: flex-start;
}

.case-pm-schnellauswahl {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  margin: 0.65rem 0 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--color-border);
}

.case-pm-schnellauswahl__item {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 600;
  font-size: 0.88rem;
  cursor: pointer;
}

.case-pm-marker-excl {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.85rem;
  white-space: nowrap;
  cursor: pointer;
}

.case-pm-marker-item__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.65rem 1.25rem;
}

.case-pm-marker-status__label {
  display: block;
  font-size: 0.78rem;
  color: var(--color-text-muted);
  margin-bottom: 0.2rem;
}

.case-pm-marker-options {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}

.case-pm-modus-options li,
.case-pm-marker-options li {
  margin: 0;
}

.case-pm-marker-gruppe {
  margin: 0.75rem 0 0;
  padding: 0;
  border: 0;
}

.case-pm-marker-gruppe__title {
  font-size: 0.85rem;
  font-weight: 600;
  margin: 0 0 0.4rem;
}

.case-pm-marker-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.case-pm-marker-item {
  display: grid;
  grid-template-columns: minmax(8rem, 14rem) 1fr;
  gap: 0.35rem 0.75rem;
  align-items: start;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--color-border);
}

.case-pm-marker-gruppe--readonly {
  margin-top: 0.5rem;
}

.case-pm-marker-readonly-list__name {
  font-weight: 500;
}

.case-pm-marker-readonly-list__status {
  color: var(--color-text-muted);
  margin-left: 0.35rem;
}

.case-pm-patho-hinweis {
  border-left: 4px solid var(--color-accent, #2a6b8f);
}

.case-patho-achtung {
  border-left: 4px solid #c45c00;
  background: #fff8f0;
}

.case-patho-achtung__title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 700;
  color: #9a4500;
}

.case-patho-achtung__text {
  margin: 0;
  font-size: 0.92rem;
}

.case-pm-patho-hinweis__list {
  margin: 0.5rem 0 0;
}

.case-pm-marker-item:last-child {
  border-bottom: 0;
}

.case-pm-marker-item__name {
  font-size: 0.88rem;
  padding-top: 0.15rem;
}

.case-pm-readonly {
  margin-top: 0.5rem;
}

.case-pm-marker-readonly-list {
  margin: 0 0 0.75rem;
  padding-left: 1.1rem;
  font-size: 0.9rem;
}

.case-mtb-anlage-analysen__empty {
  margin: 0;
}

.case-mtb-analysen-legend__term {
  cursor: help;
}

/*
 * Sprechstunden-Board: heller „Insel“-Bereich wie Reporting-Dashboard (Tabs + Tabpanels aus reporting.css).
 * Innere Patienten-Panels und Tabelle an dieselbe Stein-/Weiß-Palette gekoppelt, auch bei Dark-Theme-Umgebung.
 */
.patients-page .reporting-dashboard.sprechstunden-dashboard,
.patients-page .reporting-dashboard.patients-dashboard {
  margin: 0.75rem 0 0;
}

.reporting-dashboard.sprechstunden-dashboard .patients-panel,
.reporting-dashboard.patients-dashboard .patients-panel {
  background: var(--reporting-card);
  border-color: var(--reporting-border);
  color: var(--reporting-text);
}

@media (prefers-color-scheme: dark) {
  .reporting-dashboard.sprechstunden-dashboard .patients-panel,
  .reporting-dashboard.patients-dashboard .patients-panel {
    background: var(--reporting-card);
    border-color: var(--reporting-border);
    color: var(--reporting-text);
  }
}

.reporting-dashboard.sprechstunden-dashboard .patients-panel__head,
.reporting-dashboard.patients-dashboard .patients-panel__head {
  border-bottom-color: var(--reporting-border);
}

.reporting-dashboard.sprechstunden-dashboard .patients-panel__title,
.reporting-dashboard.patients-dashboard .patients-panel__title {
  color: var(--color-heading);
}

.reporting-dashboard.sprechstunden-dashboard .patients-search-toolbar label,
.reporting-dashboard.patients-dashboard .patients-search-toolbar label {
  color: var(--reporting-muted);
}

.reporting-dashboard.patients-dashboard .patients-filter-toolbar__cluster-label {
  color: var(--reporting-muted);
}

.reporting-dashboard.sprechstunden-dashboard table th,
.reporting-dashboard.sprechstunden-dashboard table td,
.reporting-dashboard.patients-dashboard table th,
.reporting-dashboard.patients-dashboard table td {
  border-bottom-color: var(--reporting-border);
  color: var(--reporting-text);
}

.reporting-dashboard.sprechstunden-dashboard table td.table-muted,
.reporting-dashboard.patients-dashboard table td.table-muted {
  color: var(--color-text-muted);
  font-size: 0.9rem;
}

.reporting-dashboard.sprechstunden-dashboard table tbody td a,
.reporting-dashboard.patients-dashboard table tbody td a {
  color: var(--color-table-link);
}

.reporting-dashboard.sprechstunden-dashboard table tbody td a:hover,
.reporting-dashboard.patients-dashboard table tbody td a:hover {
  color: var(--color-table-link-hover);
}

.reporting-dashboard.patients-dashboard .table-muted {
  color: var(--reporting-muted);
}

.reporting-dashboard.sprechstunden-dashboard .patients-panel--results .data-table thead th,
.reporting-dashboard.patients-dashboard .patients-panel--results .data-table thead th {
  background: var(--color-surface);
  color: var(--reporting-text);
}

.reporting-dashboard.sprechstunden-dashboard .data-table tbody tr.sprechstunden-row--mit-termin td {
  opacity: 1;
}

.reporting-dashboard.sprechstunden-dashboard .sprechstunden-form-context {
  background: var(--color-bg);
  border-color: var(--reporting-border);
  color: var(--reporting-text);
}
.reporting-dashboard.sprechstunden-dashboard .sprechstunden-calendar {
  background: var(--reporting-card);
  border-color: var(--reporting-border);
}

.reporting-dashboard.sprechstunden-dashboard .sprechstunden-selected-list__title {
  color: var(--reporting-muted);
}

.reporting-dashboard.sprechstunden-dashboard .sprechstunden-selected-list__item {
  background: var(--reporting-card);
  border-color: var(--reporting-border);
  color: var(--reporting-text);
}

.reporting-dashboard.sprechstunden-dashboard .sprechstunden-selected-list__item:hover {
  border-color: var(--color-blend-link-border-hover);
  background: var(--color-blend-reporting-card);
}

.reporting-dashboard.sprechstunden-dashboard .sprechstunden-selected-list__item.is-active {
  background: var(--color-blend-primary-on-card);
  border-color: var(--color-blend-link-border-reporting);
  color: var(--color-heading);
  box-shadow: 0 0 0 1px var(--color-blend-link-ring-reporting);
}

.reporting-dashboard.sprechstunden-dashboard input:not([type="checkbox"]):not([type="radio"]),
.reporting-dashboard.sprechstunden-dashboard select,
.reporting-dashboard.sprechstunden-dashboard textarea,
.reporting-dashboard.patients-dashboard input:not([type="checkbox"]):not([type="radio"]),
.reporting-dashboard.patients-dashboard select,
.reporting-dashboard.patients-dashboard textarea {
  background: #fff;
  border-color: var(--reporting-border);
  color: var(--reporting-text);
}

.reporting-dashboard.sprechstunden-dashboard .action-link,
.reporting-dashboard.patients-dashboard .action-link {
  color: var(--color-table-link);
}

.reporting-dashboard.patients-dashboard .kp-doc-fieldset {
  border-color: var(--reporting-border);
}

.reporting-dashboard.patients-dashboard .kp-doc-label {
  color: var(--reporting-text);
}

.reporting-dashboard.patients-dashboard .kp-doc-help {
  color: var(--reporting-muted);
}

.reporting-dashboard.patients-dashboard .kp-doc-label input[type="text"],
.reporting-dashboard.patients-dashboard .kp-doc-label input[type="date"],
.reporting-dashboard.patients-dashboard .kp-doc-label input.input-date-manual,
.reporting-dashboard.patients-dashboard .kp-doc-label input[type="search"],
.reporting-dashboard.patients-dashboard .kp-doc-label input[type="number"] {
  width: 100%;
  box-sizing: border-box;
  background: #fff;
  border-color: var(--reporting-border);
  color: var(--reporting-text);
}

.reporting-dashboard.patients-dashboard .patients-panel--create .patient-create-form__column .kp-doc-fieldset {
  background: var(--reporting-card);
  border-color: var(--reporting-border);
  box-shadow: 0 1px 2px rgba(28, 25, 23, 0.06);
}

@media (prefers-color-scheme: dark) {
  .reporting-dashboard.patients-dashboard .patients-panel--create .patient-create-form__column .kp-doc-fieldset {
    background: var(--reporting-card);
    border-color: var(--reporting-border);
    box-shadow: none;
  }
}

.reporting-dashboard.patients-dashboard .patients-panel--create .kp-doc-fieldset legend {
  color: var(--reporting-muted);
}

.reporting-dashboard.patients-dashboard .case-form-field__check span {
  color: var(--reporting-text);
}

.reporting-dashboard.patients-dashboard .kp-doc-submit {
  border-color: var(--reporting-border);
  background: var(--color-surface);
  color: var(--reporting-text);
}

.reporting-dashboard.patients-dashboard .kp-doc-submit:hover {
  background: var(--color-blend-surface-muted-88);
}

.reporting-dashboard.patients-dashboard .coding-suggest {
  border-color: var(--reporting-border);
  background: var(--color-bg);
  color: var(--reporting-text);
}

.reporting-dashboard.patients-dashboard .coding-suggest__item + .coding-suggest__item {
  border-top-color: var(--reporting-border);
}

.reporting-dashboard.patients-dashboard .coding-suggest__btn {
  color: var(--reporting-text);
}

.reporting-dashboard.patients-dashboard .coding-suggest__btn:hover {
  background: var(--color-blend-surface-muted-90);
}

.reporting-dashboard.patients-dashboard .coding-suggest__sub,
.reporting-dashboard.patients-dashboard .coding-suggest__hint,
.reporting-dashboard.patients-dashboard .coding-suggest__disclaimer,
.reporting-dashboard.patients-dashboard .coding-suggest__empty {
  color: var(--reporting-muted);
}

.reporting-dashboard.patients-dashboard .patients-panel__head--split .patients-panel__title--sub {
  margin-bottom: 0;
  padding-bottom: 0;
}

/* Patientendetail: alles fett, wenn der Patient am aktuellen Kalendertag angelegt wurde */
.patient-detail--neu-heute .page-title,
.patient-detail--neu-heute .hint,
.patient-detail--neu-heute .module-card h3,
.patient-detail--neu-heute .module-card p,
.patient-detail--neu-heute .data-table th,
.patient-detail--neu-heute .data-table td,
.patient-detail--neu-heute > p {
  font-weight: 700;
}
.patient-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.patient-edit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.patient-deactivate-card .patient-detail-actions {
  margin-top: 1rem;
}
.patient-inline-form {
  display: inline;
}

.case-detail-patient-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  margin: 0.35rem 0 0;
}

.case-detail-patient-actions button.action-link {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

.case-detail-patient-actions .patient-inline-form {
  display: inline-flex;
}

.case-detail-fallnr {
  margin: 0 0 0.15rem;
  font-size: 0.82rem;
  font-weight: 650;
  color: var(--color-text-muted, #52606d);
  letter-spacing: 0.01em;
}

.case-detail-patient-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
}

.case-detail-patient-title a {
  color: inherit;
  text-decoration: none;
}

.case-detail-patient-title a:hover {
  text-decoration: underline;
  color: var(--color-table-link, #256d7b);
}

.case-detail-patient-meta {
  margin: 0.35rem 0 0;
}

.case-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.15rem 0.55rem 0.15rem 0.4rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: 0.01em;
  flex-shrink: 0;
  vertical-align: middle;
}

.case-status-badge--aktiv {
  color: #1f6b45;
  background: rgba(111, 143, 114, 0.22);
  border: 1px solid rgba(111, 143, 114, 0.55);
}

.case-status-badge--inaktiv {
  color: #8f2f2f;
  background: rgba(169, 74, 74, 0.18);
  border: 1px solid rgba(169, 74, 74, 0.5);
}

.case-status-badge__icon {
  display: inline-block;
  font-size: 0.95em;
  font-weight: 700;
  line-height: 1;
  transform: translateY(-0.02em);
}

.patient-geschlecht-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: -0.15em;
  margin-right: 0.2rem;
  color: var(--color-heading, #123a46);
  font-size: 1.05em;
  line-height: 1;
}

.page-title .patient-geschlecht-icon {
  margin-right: 0.35rem;
  font-size: 0.95em;
  vertical-align: -0.08em;
}

.patient-geschlecht-icon svg {
  display: block;
}

.patient-geschlecht-icon--w {
  color: #8a4a6a;
}

.patient-geschlecht-icon--m {
  color: #2f5f7a;
}

.patient-geschlecht-icon--d {
  color: #5a6b4f;
}

.patient-geschlecht-icon--u {
  color: var(--color-text-muted, #52606d);
}

.patient-geburt-icon {
  display: inline-flex;
  align-items: baseline;
  gap: 0.15rem;
  white-space: nowrap;
}

.patient-geburt-icon__mark {
  font-weight: 700;
  color: var(--color-heading, #123a46);
  line-height: 1;
}

a.action-link.action-link--danger,
button.action-link.action-link--danger {
  border-color: var(--color-danger);
  color: var(--color-danger);
}

a.action-link.action-link--danger:hover,
button.action-link.action-link--danger:hover {
  background: var(--color-blend-danger-tint);
  color: var(--color-danger);
}

.patient-status-inaktiv {
  font-weight: 600;
  color: var(--color-text-muted);
}

.patient-detail--neu-heute .table-muted {
  font-weight: 700;
}
/* Fallübersicht: inaktiver Fall (Case.aktiv=False) */
.data-table tbody tr.case-row--fall-inaktiv td {
  color: var(--color-text-muted);
  font-style: italic;
}

.data-table tbody tr.case-row--fall-inaktiv a {
  color: inherit;
}

/* Fallübersicht: Zeilen zu inaktiven Patienten (Patient.aktiv=False) */
.data-table tbody tr.case-row--patient-inaktiv td {
  color: var(--color-text-muted);
}

.data-table tbody tr.case-row--patient-inaktiv a {
  color: inherit;
}

.data-table tbody tr.case-row--patient-inaktiv .pill {
  opacity: 0.85;
}

.data-table thead th {
  text-align: left;
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  color: var(--color-text-muted);
  border-bottom: 1px solid var(--color-blend-border-faint, var(--color-border));
  background: var(--color-surface-alt, #fff);
}

.data-table__sortable {
  white-space: nowrap;
}
.data-table__th-tools {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  max-width: 100%;
  min-height: 1.5rem;
}
.data-table__sort-link {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.15rem 0.2rem;
  margin: -0.15rem -0.2rem;
  border-radius: 4px;
  color: inherit;
  text-decoration: none;
  font-weight: 600;
}
.data-table__sort-link:hover,
.data-table__sort-link:focus-visible {
  color: var(--color-primary);
  background: var(--color-blend-primary-tint);
  text-decoration: none;
  outline: none;
}
.data-table__sort-label {
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}
.data-table__sort-indicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0.95rem;
  font-size: 0.7rem;
  font-weight: 500;
  opacity: 0.28;
  color: var(--color-text-muted);
  transition: opacity 0.12s ease, color 0.12s ease;
}
.data-table__sort-link:hover .data-table__sort-indicator,
.data-table__sort-link:focus-visible .data-table__sort-indicator {
  opacity: 0.65;
}
.data-table__sortable.is-sorted .data-table__sort-indicator {
  opacity: 0.95;
  color: var(--color-primary);
}
.data-table__sortable.is-sorted .data-table__sort-label {
  color: var(--color-heading, var(--color-primary));
  text-decoration: none;
}

/* Fallliste: Sortiericons kompakt — neutral ⇅, aktiv ein Pfeil in Salbei */
.data-table--cases-list .data-table__sort-indicator {
  width: 0.75rem;
  font-size: 0.58rem;
  line-height: 1;
  opacity: 0.32;
  color: var(--om-text-muted, var(--color-text-muted));
}
.data-table--cases-list .data-table__sort-link:hover .data-table__sort-indicator,
.data-table--cases-list .data-table__sort-link:focus-visible .data-table__sort-indicator {
  opacity: 0.55;
}
.data-table--cases-list .data-table__sortable.is-sorted .data-table__sort-indicator {
  font-size: 0.68rem;
  opacity: 1;
  color: var(--om-primary, #557c70);
}
.data-table--cases-list .data-table__sortable.is-sorted .data-table__sort-label {
  color: var(--om-heading, var(--color-heading));
  font-weight: 650;
}
.data-table--cases-list .data-table__sort-link:hover,
.data-table--cases-list .data-table__sort-link:focus-visible {
  color: inherit;
  background: color-mix(in srgb, var(--om-primary, #557c70) 8%, transparent);
}

/* Spaltenfilter-Popover — kompakt, ruhig */
.data-table__col-filter {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
}
.data-table__col-filter-toggle {
  list-style: none;
  cursor: pointer;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  padding: 0;
  border-radius: 4px;
  border: 1px solid transparent;
  color: var(--color-text-muted);
  background: transparent;
  line-height: 1;
  user-select: none;
  transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}
.data-table__col-filter-toggle::-webkit-details-marker {
  display: none;
}
.data-table__col-filter-icon {
  font-size: 0.65rem;
  line-height: 1;
  opacity: 0.55;
}
.data-table__col-filter-toggle:hover,
.data-table__col-filter[open] > .data-table__col-filter-toggle {
  border-color: transparent;
  background: var(--color-blend-primary-tint);
  color: var(--color-primary);
}
.data-table__col-filter-toggle:hover .data-table__col-filter-icon,
.data-table__col-filter[open] > .data-table__col-filter-toggle .data-table__col-filter-icon {
  opacity: 0.9;
}
/* Aktiver Spaltenfilter: Icon klar, aber nicht laut */
.data-table__col-filter-toggle.is-active {
  border-color: color-mix(in srgb, var(--color-primary) 28%, transparent);
  color: var(--color-primary);
  background: var(--color-blend-primary-tint);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-primary) 12%, transparent);
}
.data-table__col-filter-toggle.is-active .data-table__col-filter-icon {
  opacity: 1;
  font-weight: 700;
}
.data-table__col-filter-toggle.is-active::after {
  content: "";
  position: absolute;
  top: 0.12rem;
  right: 0.12rem;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 1.5px var(--color-surface-alt, #fff);
}
th.is-col-filtered {
  background: color-mix(in srgb, var(--color-primary) 4%, var(--color-surface-alt, #fff));
}
th.is-col-filtered .data-table__sort-label {
  color: var(--color-heading, var(--color-text));
}
.data-table__col-filter-panel {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  z-index: 40;
  min-width: 12.5rem;
  max-width: 16.5rem;
  max-height: min(60vh, 18rem);
  overflow: auto;
  padding: 0.55rem 0.65rem 0.6rem;
  border: 1px solid var(--color-blend-border-soft, var(--color-border));
  border-radius: 6px;
  background: var(--color-surface-alt, #fff);
  box-shadow: 0 4px 16px rgba(18, 58, 70, 0.1);
}
/* Fixed-Position (JS): nicht vom .table-scroll overflow abschneiden */
.data-table__col-filter-panel.is-fixed {
  position: fixed;
  top: auto;
  left: auto;
}
.data-table__col-filter-title {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: none;
  color: var(--color-text-muted);
}
.data-table__col-filter-choices {
  list-style: none;
  margin: 0 0 0.4rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  max-height: 10rem;
  overflow: auto;
}
.data-table__col-filter-check {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  padding: 0.15rem 0.2rem;
  border-radius: 4px;
  font-weight: 400;
  font-size: 0.84rem;
  cursor: pointer;
}
.data-table__col-filter-check:hover {
  background: var(--color-blend-surface-hover);
}
.data-table__col-filter-field {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin-bottom: 0.35rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-text-muted);
}
.data-table__col-filter-field input {
  font-weight: 400;
  width: 100%;
  box-sizing: border-box;
  padding: 0.3rem 0.45rem;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  background: var(--color-surface-alt, #fff);
  color: var(--color-text);
}
.data-table__col-filter-field input:focus {
  outline: 2px solid color-mix(in srgb, var(--color-focus) 35%, transparent);
  outline-offset: 1px;
  border-color: var(--color-primary);
}
.data-table__col-filter-dates {
  display: grid;
  gap: 0.3rem;
}
.data-table__col-filter-presence,
.data-table__col-filter-quick {
  border: 0;
  margin: 0.25rem 0 0.35rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.data-table__col-filter-quick legend {
  font-size: 0.72rem;
  font-weight: 600;
  margin-bottom: 0.2rem;
  color: var(--color-text-muted);
}
.data-table__col-filter-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  margin-top: 0.3rem;
  padding-top: 0.4rem;
  border-top: 1px solid var(--color-blend-border-faint, var(--color-border));
}
.data-table__col-filter-actions .btn--small {
  padding: 0.25rem 0.55rem;
  font-size: 0.8rem;
}

/* Ansicht/Filter-Chips + Speichern/Zurücksetzen — innerhalb der Filter-Card */
.cases-active-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.85rem;
  margin: var(--om-space-3, 0.75rem) 0 0;
  padding: var(--om-space-3, 0.75rem) 0 0;
  border: 0;
  border-top: 1px solid var(--om-border, var(--color-blend-border-faint, var(--color-border)));
  border-radius: 0;
  background: transparent;
}
.cases-active-filters[hidden] {
  display: none !important;
}
.cases-active-filters__main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.55rem;
  flex: 1 1 14rem;
  min-width: 0;
}
.cases-active-filters__count {
  font-size: 0.75rem;
  color: var(--om-text-muted, var(--color-text-muted));
  opacity: 0.9;
  white-space: nowrap;
}
.cases-active-filters__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1 1 auto;
  min-width: 0;
}
.cases-active-filters__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.4rem 0.5rem;
  flex: 0 0 auto;
  margin-left: auto;
}
.cases-active-filters__action {
  font-size: 0.8rem;
  white-space: nowrap;
}
.cases-active-filters__action--muted {
  color: var(--om-text-muted, var(--color-text-muted));
  font-weight: 500;
}
.cases-page .cases-active-filters__action--save.btn--soft {
  background: color-mix(in srgb, var(--om-primary, #557c70) 14%, #fff);
  border-color: color-mix(in srgb, var(--om-primary, #557c70) 32%, var(--om-border, #dde4e0));
  color: var(--om-primary-hover, #476a61);
}
.cases-page .cases-active-filters__action--save.btn--soft:hover:not(:disabled) {
  background: color-mix(in srgb, var(--om-primary, #557c70) 22%, #fff);
  border-color: var(--om-primary, #557c70);
  color: var(--om-primary-hover, #476a61);
}

/* Kanonische Filter-Chips (Clinical Clean) */
.om-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  max-width: 100%;
  padding: 0.2rem 0.25rem 0.2rem 0.65rem;
  border-radius: 999px;
  border: 1px solid #dde4e0;
  background: #eef2ef;
  font-size: 0.8rem;
  line-height: 1.25;
  color: #40504c;
}
.om-filter-chip--scope.is-unrestricted {
  opacity: 0.88;
}
.om-filter-chip__text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.om-filter-chip__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.2rem;
  height: 1.2rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #40504c;
  text-decoration: none;
  font: inherit;
  font-size: 1rem;
  line-height: 1;
  flex: 0 0 auto;
  opacity: 0.75;
  cursor: pointer;
}
.om-filter-chip__remove-form {
  display: inline;
  margin: 0;
  padding: 0;
}
.om-filter-chip__remove:hover,
.om-filter-chip__remove:focus-visible {
  background: color-mix(in srgb, #40504c 12%, transparent);
  color: #40504c;
  opacity: 1;
  outline: none;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--om-primary, #557c70) 35%, transparent);
}

.cases-list-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  margin-top: 1rem;
  padding: 0.5rem 0.1rem 0.25rem;
  border-top: 1px solid var(--color-blend-border-faint, var(--color-border));
}

.cases-list-pagination[hidden] {
  display: none !important;
}

/* Fallliste: Pagination in der Tabellen-Toolbar (oben rechts) */
.cases-list-pagination--toolbar {
  margin: 0;
  padding: 0;
  border: 0;
  gap: 0.45rem 0.75rem;
  justify-content: flex-end;
  flex: 0 1 auto;
}

.cases-list-pagination__meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1.25rem;
}

.cases-list-pagination__meta {
  margin: 0;
  color: var(--om-text-muted, var(--color-text-muted));
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.cases-list-pagination__size {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.4rem;
}

.cases-list-pagination__size-label {
  font-size: 0.72rem;
  color: var(--om-text-muted, var(--color-text-muted));
}

.cases-list-pagination__size-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.cases-list-pagination__size-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.55rem;
  padding: 0.12rem 0.3rem;
  border: 1px solid transparent;
  border-radius: 4px;
  color: var(--om-text-muted, var(--color-text-muted));
  text-decoration: none;
  font-size: 0.75rem;
  background: transparent;
}

.cases-list-pagination__size-link:hover,
.cases-list-pagination__size-link:focus-visible {
  border-color: transparent;
  color: var(--om-primary, var(--color-primary));
  background: color-mix(in srgb, var(--om-primary, #557c70) 10%, transparent);
  outline: none;
}

.cases-list-pagination__size-link.is-current {
  border-color: transparent;
  background: color-mix(in srgb, var(--om-primary, #557c70) 12%, transparent);
  color: var(--om-primary-hover, #476a61);
  font-weight: 600;
}

.cases-list-pagination__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.cases-list-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.55rem;
  height: 1.55rem;
  padding: 0 0.3rem;
  border: 1px solid transparent;
  border-radius: 5px;
  color: var(--om-text-muted, var(--color-text-muted));
  text-decoration: none;
  font-size: 0.8rem;
  font-variant-numeric: tabular-nums;
  background: transparent;
  line-height: 1;
}

.cases-list-pagination__link--nav {
  font-size: 1rem;
  font-weight: 500;
}

.cases-list-pagination__link:hover,
.cases-list-pagination__link:focus-visible {
  border-color: transparent;
  color: var(--om-primary, #557c70);
  background: color-mix(in srgb, var(--om-primary, #557c70) 10%, transparent);
  outline: none;
}

.cases-list-pagination__link.is-current {
  border-color: transparent;
  background: var(--om-primary, #557c70);
  color: #fff;
  font-weight: 600;
}


/* Badges / pills */
.badge {
  display: inline-block;
  padding: 0.18rem 0.5rem;
  border-radius: 6px;
  font-size: 12px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}
.badge--muted { opacity: 0.95; color: var(--color-text-muted); }
.badge--fallstatus {
  display: inline-flex;
  align-items: center;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.25;
  border: 1px solid transparent;
}
.om-status-chip--active,
.badge--fallstatus-aktiv {
  border-color: color-mix(in srgb, #39624f 18%, #e5efe9);
  background: #e5efe9;
  color: #39624f;
}
.om-status-chip--inactive,
.badge--fallstatus-inaktiv {
  border-color: #dde4e0;
  background: #eef0ef;
  color: #66706c;
  /* Text „Inaktiv“ + Border: Status nicht nur über Farbe */
  font-style: normal;
  text-decoration: none;
}


.om-status-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.25;
  border: 1px solid transparent;
}

/* MolecularReport DOCX-Import Review */
.mr-import-review__list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 0.75rem;
}
.mr-import-kandidat {
  border: 1px solid var(--color-border);
  border-radius: 6px;
  padding: 0.75rem 1rem;
  background: var(--color-surface);
}
.mr-import-kandidat--done {
  border-left: 4px solid var(--color-success, #2a7a4b);
}
.mr-import-kandidat--rejected {
  border-left: 4px solid var(--color-text-muted);
  opacity: 0.9;
}
.mr-import-kandidat--unresolved {
  border-left: 4px solid var(--color-warning, #b8860b);
}
.mr-import-kandidat__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}
.mr-import-kandidat__title {
  margin: 0;
  font-size: 1rem;
}
.mr-import-kandidat__meta {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 0.35rem 1rem;
  margin: 0 0 0.5rem;
}
.mr-import-kandidat__meta dt {
  font-size: 0.75rem;
  color: var(--color-text-muted);
  margin: 0;
}
.mr-import-kandidat__meta dd {
  margin: 0;
}
.mr-import-kandidat__original {
  margin: 0.5rem 0;
  font-size: 0.9rem;
}
.mr-import-kandidat__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.75rem 0 0;
}

/* Alerts */
.alert {
  padding: 0.7rem 1rem;
  border-radius: 6px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

.case-mtb-panel-hinweis {
  margin: 0 0 0.75rem;
  border-color: var(--color-warning);
  border-left-width: 4px;
  border-left-style: solid;
}

/* Navigation (Sidebar: dunkles Petrol, Clinical Clean) */
.app-nav__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 42px;
  padding: 9px 12px;
  border-radius: 8px;
  color: var(--om-sidebar-text, var(--sidebar-text, var(--color-nav-text)));
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.3;
  border: none;
  box-shadow: none;
}

.app-nav__main {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.app-nav__icon {
  display: inline-flex;
  flex: 0 0 auto;
  color: currentColor;
}

.app-nav__item .om-icon,
.app-nav__icon .om-icon {
  width: 18px;
  height: 18px;
  margin-right: 0;
  color: currentColor;
  opacity: 0.9;
}

.app-nav__item .om-icon svg,
.app-nav__icon .om-icon svg {
  width: 18px;
  height: 18px;
}

.app-nav__label {
  min-width: 0;
}

.app-nav__muted,
.app-nav__hint {
  color: var(--om-sidebar-text-muted);
  font-weight: 400;
}

.app-nav__badge {
  flex: 0 0 auto;
  min-width: 1.25rem;
  padding: 0.05rem 0.4rem;
  border-radius: 999px;
  background: var(--om-sidebar-badge-bg, #dde9e4);
  color: var(--om-sidebar-badge-text, #31554c);
  font-size: 0.7rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  text-align: center;
  line-height: 1.35;
}

.app-nav__badge--warning {
  background: rgba(211, 164, 91, 0.22);
  color: var(--om-sidebar-badge-warning, #d3a45b);
}

.app-nav__badge--critical {
  background: rgba(201, 93, 87, 0.22);
  color: var(--om-sidebar-badge-critical, #c95d57);
}

.app-nav__item:hover {
  background: var(--om-sidebar-hover, var(--sidebar-hover, var(--color-nav-hover)));
  color: var(--om-sidebar-text, var(--sidebar-text, var(--color-nav-text)));
  box-shadow: none;
}

.app-nav__item.is-active,
.app-nav__item[aria-current="page"] {
  background: var(--om-sidebar-active, var(--sidebar-active, var(--color-nav-active-bg)));
  color: #fff;
  font-weight: 600;
  box-shadow: none;
}

.app-nav__item.is-active:hover,
.app-nav__item[aria-current="page"]:hover {
  background: var(--om-sidebar-active, var(--sidebar-active, var(--color-nav-active-bg)));
  color: #fff;
}

.app-nav__item.is-active .om-icon,
.app-nav__item.is-active .app-nav__icon,
.app-nav__item[aria-current="page"] .om-icon,
.app-nav__item[aria-current="page"] .app-nav__icon {
  color: #fff;
  opacity: 1;
}

.app-nav__item.is-active .app-nav__badge,
.app-nav__item[aria-current="page"] .app-nav__badge {
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
}

.app-nav__item.is-active .app-nav__badge--warning,
.app-nav__item[aria-current="page"] .app-nav__badge--warning {
  background: #e8d4a8;
  color: #3d2e14;
}

.app-nav__item.is-active .app-nav__badge--critical,
.app-nav__item[aria-current="page"] .app-nav__badge--critical {
  background: #e8b4b1;
  color: #4a1c1a;
}

/*
 * Formularpaneele wie Wiki „Kooperationspartner“:
 * Raster, bis 760px Breite, Rahmen über Theme-Token.
 */
/* Nur noch Fall-back / Legacy-Klassen für Patienten-Neuanlage an anderer Stelle */
.patient-create-section {
  margin: 0 0 0.6rem;
}
.patient-create-section__title {
  margin: 0 0 0.5rem;
  font-size: 16px;
  font-weight: 700;
}
.doc-form-panel,
.kp-doc-form,
.pathologie-partner-kontakt__web a {
  word-break: break-word;
}

/* Pathologie-Partner: volle Breite, 3 Abschnitte */
.pathologie-partner-kontakt.module-card {
  padding: 0.65rem 0.85rem 0.75rem;
  margin-bottom: 0.65rem;
  background: var(--om-surface-card, var(--color-blend-surface-card, var(--color-surface-alt)));
  border-color: var(--om-border, #dde4e0);
  width: 100%;
  box-sizing: border-box;
}

.pathologie-partner-kontakt__title {
  margin: 0 0 0.55rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--om-heading, var(--color-heading));
  line-height: 1.25;
}

.pathologie-partner-kontakt__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) minmax(0, 1.25fr);
  gap: 0.75rem 1.25rem;
  align-items: start;
  width: 100%;
}

.pathologie-partner-kontakt__section {
  margin: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.pathologie-partner-kontakt__section + .pathologie-partner-kontakt__section {
  border-left: 1px solid var(--om-border, #dde4e0);
  padding-left: 1.1rem;
}

.pathologie-partner-kontakt__section-label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--om-text-muted, var(--color-text-muted));
  line-height: 1.2;
}

.pathologie-partner-kontakt__block {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.pathologie-partner-kontakt__block + .pathologie-partner-kontakt__block {
  margin-top: 0.35rem;
}

.pathologie-partner-kontakt__name,
.pathologie-partner-kontakt__value {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 550;
  color: var(--om-text, var(--color-text));
  line-height: 1.35;
}

.pathologie-partner-kontakt__name {
  font-weight: 650;
}

.pathologie-partner-kontakt__value--anschrift {
  font-weight: 500;
}

.pathologie-partner-kontakt__channels {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  margin: 0;
  min-width: 0;
}

.pathologie-partner-kontakt__channel {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin: 0;
  padding: 0.05rem 0;
  border: none;
  background: transparent;
  color: var(--color-table-link, #256d7b);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.35;
  text-decoration: none;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.pathologie-partner-kontakt__channel .om-icon {
  flex: 0 0 auto;
  font-size: 0.95em;
  opacity: 0.9;
}

.pathologie-partner-kontakt__channel:hover,
.pathologie-partner-kontakt__channel:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.15em;
  outline: none;
}

.pathologie-partner-kontakt__channel:focus-visible {
  outline: 2px solid var(--color-table-link, #256d7b);
  outline-offset: 2px;
}

.pathologie-partner-kontakt__channel--fax {
  color: var(--om-text, var(--color-text));
  cursor: default;
}

.pathologie-partner-kontakt__channel-label {
  color: var(--om-text-muted, var(--color-text-muted));
  font-weight: 500;
  flex: 0 0 auto;
}

.pathologie-partner-kontakt__channel-label::after {
  content: ":";
}

.pathologie-partner-kontakt__channel-value {
  color: inherit;
  min-width: 0;
}

.pathologie-partner-kontakt__web {
  margin: 0.25rem 0 0;
  font-size: 0.8rem;
}

.pathologie-partner-kontakt__web a {
  color: var(--color-table-link, #256d7b);
  word-break: break-word;
}

.pathologie-partner-kontakt__hint {
  margin: 0.45rem 0 0;
  font-size: 0.78rem;
}

@media (max-width: 720px) {
  .pathologie-partner-kontakt__grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .pathologie-partner-kontakt__section + .pathologie-partner-kontakt__section {
    border-left: 0;
    padding-left: 0;
    border-top: 1px solid var(--om-border, #dde4e0);
    padding-top: 0.65rem;
  }
}

.kooperationspartner-form {
  display: grid;
  gap: 0.75rem;
  width: 100%;
  max-width: 760px;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: var(--color-surface-alt);
  box-sizing: border-box;
}
@media (prefers-color-scheme: dark) {
  .doc-form-panel,
  .kp-doc-form,
  .kooperationspartner-form {
    border-color: var(--color-border);
    background: var(--color-surface);
  }
}
/* Wiki-Kooperationspartner: Labels ohne kp-doc-label — volle Eingabebreite */
.kooperationspartner-form label > input:not([type="checkbox"]):not([type="radio"]),
.kooperationspartner-form label > select,
.kooperationspartner-form label > textarea {
  width: 100%;
  margin-top: 0.25rem;
  box-sizing: border-box;
}
.kooperationspartner-name-hint {
  display: none;
  margin-top: 0.35rem;
  color: var(--color-danger);
  font-weight: 600;
  font-size: 13px;
}
.kooperationspartner-error {
  display: none;
  color: var(--color-danger);
  font-size: 0.9rem;
}
#kooperationspartner-cancel-btn {
  display: none;
}
.kp-grid-plz-ort {
  display: grid;
  grid-template-columns: minmax(7rem, 10rem) 1fr;
  gap: 0.75rem;
  margin-top: 0.5rem;
}
@media (max-width: 520px) {
  .kp-grid-plz-ort {
    grid-template-columns: 1fr;
  }
}
/* Wiki-Seite Kooperationspartner: Tabs wie Reporting/Patienten */
.kooperationspartner-wiki .reporting-tabpanel > h2 {
  margin: 0 0 0.85rem;
  font-size: 1.15rem;
  font-weight: 650;
  color: var(--color-heading);
}

.kooperationspartner-toolbar {
  display: flex;
  gap: 0.9rem;
  align-items: flex-end;
  flex-wrap: wrap;
  margin: 0 0 0.6rem;
}
.kooperationspartner-toolbar__field {
  flex: 1 1 320px;
  max-width: 420px;
}
.kooperationspartner-toolbar__field input[type="search"] {
  width: 100%;
}
.kooperationspartner-toolbar__count {
  padding-bottom: 0.2rem;
  font-size: 14px;
  color: var(--color-text-muted);
}
.kooperationspartner-export-bar {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 0 0 0.8rem;
  padding: 0.6rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-bg);
}
@media (prefers-color-scheme: dark) {
  .kooperationspartner-export-bar {
    border-color: var(--color-border);
    background: var(--color-surface-alt);
  }
}
.kooperationspartner-export-bar__cols {
  display: flex;
  gap: 0.5rem 0.65rem;
  flex-wrap: wrap;
  font-size: 0.72rem;
  line-height: 1.25;
}
.kooperationspartner-export-bar__cols label {
  white-space: normal;
  max-width: 9rem;
}
.kooperationspartner-master-detail {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.95fr);
  gap: 1rem;
  align-items: start;
}
@media (max-width: 960px) {
  .kooperationspartner-master-detail {
    grid-template-columns: 1fr;
  }
}
.kooperationspartner-table-wrap {
  overflow: auto;
  max-width: 100%;
}
.kooperationspartner-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  font-size: 0.9rem;
  line-height: 1.35;
}
.kooperationspartner-table thead tr {
  background: transparent;
}
.kooperationspartner-table th {
  text-align: left;
  vertical-align: bottom;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--color-border);
  color: var(--color-table-text);
  background: var(--color-surface-alt);
  font-weight: 650;
  font-size: 0.9rem;
  line-height: 1.25;
  white-space: nowrap;
}
.kooperationspartner-table td {
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--color-border);
  vertical-align: middle;
  color: var(--color-table-text);
  background: var(--color-surface-alt);
}
.kooperationspartner-table tbody td a {
  color: var(--color-table-link);
}
.kooperationspartner-table tbody td a:hover {
  color: var(--color-table-link-hover);
}
.kooperationspartner-table td.kooperationspartner-table__empty {
  padding: 0.75rem;
  color: var(--color-text-muted);
}
.kooperationspartner-table__row {
  cursor: pointer;
}
.kooperationspartner-table__row:hover td {
  background: var(--color-blend-surface-hover-subtle);
}
.kooperationspartner-table__row.is-selected td {
  background: color-mix(in srgb, var(--color-focus) 12%, var(--color-surface-alt));
  box-shadow: inset 3px 0 0 var(--color-focus);
}
.kooperationspartner-table__row:focus {
  outline: none;
}
.kooperationspartner-table__row:focus-visible td {
  outline: 2px solid var(--color-focus);
  outline-offset: -2px;
}

/* Falllisten-Stil: data-table--cases-list überschreibt Legacy-Zellenrahmen */
.kooperationspartner-wiki .data-table.kooperationspartner-table {
  table-layout: fixed;
  font-size: inherit;
}
.kooperationspartner-wiki .data-table.kooperationspartner-table th,
.kooperationspartner-wiki .data-table.kooperationspartner-table td {
  border: none;
  border-bottom: 1px solid color-mix(in srgb, var(--om-border, #dde4e0) 70%, transparent);
  background: var(--om-surface, #fff);
  white-space: normal;
}
.kooperationspartner-wiki .data-table.kooperationspartner-table thead th {
  background: var(--om-surface-soft, #f8f9f7);
  border-bottom: 1px solid var(--om-border, #dde4e0);
}
.kooperationspartner-wiki .data-table.kooperationspartner-table tbody tr:hover td {
  background: #f7f9f7;
}
.kooperationspartner-wiki .data-table.kooperationspartner-table tbody tr.is-selected td {
  background: color-mix(in srgb, var(--om-primary, #557c70) 10%, var(--om-surface, #fff));
  box-shadow: inset 3px 0 0 var(--om-primary, #557c70);
}
.kooperationspartner-wiki .kooperationspartner-map-panel {
  margin-bottom: 1rem;
  /* Leaflet braucht sichtbaren Overflow (Tiles/Controls/Popups). */
  overflow: visible;
}
.kooperationspartner-wiki .kooperationspartner-map-panel .om-table-toolbar {
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}
.kooperationspartner-wiki .om-filter-panel__row {
  flex-wrap: wrap;
}
.kooperationspartner-table th.kooperationspartner-table__col-name,
.kooperationspartner-table td.kooperationspartner-table__col-name {
  width: 42%;
  font-weight: 560;
}
.kooperationspartner-table th.kooperationspartner-table__col-ort,
.kooperationspartner-table td.kooperationspartner-table__col-ort {
  width: 18%;
  white-space: nowrap;
}
.kooperationspartner-table th.kooperationspartner-table__col-rollen,
.kooperationspartner-table td.kooperationspartner-table__col-rollen {
  width: 22%;
}
.kooperationspartner-table th.kooperationspartner-table__col-vertrag,
.kooperationspartner-table td.kooperationspartner-table__col-vertrag {
  width: 8%;
  white-space: nowrap;
}
.kooperationspartner-table th.kooperationspartner-table__col-zugewiesen,
.kooperationspartner-table td.kooperationspartner-table__col-zugewiesen {
  width: 10%;
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.kooperationspartner-role {
  display: inline-block;
  margin: 0.1rem 0.25rem 0.1rem 0;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  font-size: 0.78rem;
  line-height: 1.25;
  white-space: nowrap;
}
.kooperationspartner-table__stack-muted {
  color: var(--color-text-muted);
  font-size: 0.82rem;
  line-height: 1.3;
}
.kooperationspartner-detail {
  min-height: 12rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: var(--color-surface);
}
.kooperationspartner-detail__empty {
  margin: 0;
}
.kooperationspartner-detail__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
}
.kooperationspartner-detail__title {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.3;
}
.kooperationspartner-detail__actions {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}
.kooperationspartner-detail__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1rem;
  margin: 0;
}
@media (max-width: 560px) {
  .kooperationspartner-detail__grid {
    grid-template-columns: 1fr;
  }
}
.kooperationspartner-detail__grid dt {
  margin: 0 0 0.2rem;
  font-size: 0.78rem;
  font-weight: 650;
  color: var(--color-text-muted);
}
.kooperationspartner-detail__grid dd {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.4;
  color: var(--color-table-text);
}
.kooperationspartner-table__url {
  display: inline-block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}
.kooperationspartner-table__homepage-link {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: 6px;
  font-size: 0.95rem;
  font-weight: 650;
  line-height: 1;
  color: var(--color-table-link);
  text-decoration: none;
  background: var(--color-surface-alt);
}
.kooperationspartner-table__homepage-link:hover {
  color: var(--color-table-link-hover);
  background: var(--color-blend-surface-hover-subtle);
}
.kooperationspartner-table__homepage-link:focus {
  outline: none;
}
.kooperationspartner-table__homepage-link:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}
@media (prefers-color-scheme: dark) {
  .kooperationspartner-table th,
  .kooperationspartner-table td {
    border-color: var(--color-border);
    background: var(--color-surface-alt);
  }
  .kooperationspartner-detail {
    border-color: var(--color-border);
  }
}
.kooperationspartner-map {
  height: 520px;
  min-height: 320px;
  width: 100%;
  border: 1px solid var(--om-border, #d6d3d1);
  border-radius: 10px;
  margin-top: 0.75rem;
  z-index: 0;
}
.kooperationspartner-map-panel .kooperationspartner-map {
  margin: 0.75rem 1rem 1rem;
  width: calc(100% - 2rem);
  box-sizing: border-box;
}
.kooperationspartner-map-missing {
  margin-top: 0.75rem;
  font-size: 0.9rem;
}
.kooperationspartner-map-missing summary {
  cursor: pointer;
  color: var(--color-text-muted);
}
.kooperationspartner-map-missing__list {
  margin: 0.45rem 0 0;
  padding-left: 1.1rem;
}
.kooperationspartner-map-missing__list li {
  margin: 0.2rem 0;
}
.kooperationspartner-filter-toolbar .patients-search-toolbar__field {
  flex: 1 1 12rem;
  max-width: 20rem;
}
.kooperationspartner-filter-toolbar .patients-search-toolbar__field:first-child {
  flex: 2 1 18rem;
  max-width: 32rem;
}
.kooperationspartner-filter-toolbar__actions {
  display: flex;
  align-items: flex-end;
  gap: 0.45rem;
  padding-bottom: 0.1rem;
}
@media (prefers-color-scheme: dark) {
  .kooperationspartner-map {
    border-color: var(--color-border);
  }
}
.kp-doc-form__errors {
  margin: 0;
  padding: 0.5rem 0.65rem;
  border-radius: 6px;
  border: 1px solid var(--color-danger);
  color: var(--color-danger);
  font-size: 0.9rem;
}
.kp-doc-fieldset {
  margin: 0;
  padding: 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  /* flex statt grid: vermeidet Darstellungsfehler bei fieldset+legend (Checkbox-Label außerhalb des Rahmens). */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
}
@media (prefers-color-scheme: dark) {
  .kp-doc-fieldset {
    border-color: var(--color-border);
  }
}
.kp-doc-fieldset legend {
  padding: 0 0.35rem;
  font-weight: 600;
  font-size: 14px;
}
.kp-doc-label {
  display: block;
  font-size: 14px;
}
.kp-doc-label input[type="text"],
.kp-doc-label input[type="date"],
.kp-doc-label input.input-date-manual {
  width: 100%;
  margin-top: 0.25rem;
  box-sizing: border-box;
}
/* PatNr: tabellarische Ziffern, wie andere Felder volle Zeilenbreite im Panel */
.kp-doc-input-patnr {
  width: 100%;
  max-width: 100%;
  font-variant-numeric: tabular-nums;
}
.kp-doc-help {
  display: block;
  margin-top: 0.25rem;
  font-size: 12px;
  color: var(--color-text-muted);
}
.kp-doc-label-hint {
  margin-left: 0.35rem;
  font-size: 11px;
  font-weight: 400;
  color: var(--color-text-muted);
}

/* Live-Warnung bei bereits vergebener PatNr (AJAX-Check) */
.pat-nr-live-warn {
  display: block;
  margin: 0.45rem 0 0;
  padding: 0.45rem 0.6rem;
  border-radius: 6px;
  border: 1px solid var(--color-blend-warning-border);
  background: var(--color-blend-warning-tint-soft);
  color: var(--color-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}

.pat-nr-live-warn[hidden] {
  display: none !important;
}
.kp-doc-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
@media (max-width: 520px) {
  .kp-doc-grid-2 {
    grid-template-columns: 1fr;
  }
}
.kp-doc-field-errors {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
  font-size: 13px;
  color: var(--color-danger);
}
.kp-doc-actions {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: wrap;
}
.kp-doc-submit {
  padding: 0.45rem 0.75rem;
  border-radius: 6px;
  border: 1px solid var(--color-border);
  background: var(--color-surface-alt);
  color: var(--color-text);
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
}
.kp-doc-submit:hover {
  background: var(--color-surface);
}
@media (prefers-color-scheme: dark) {
  .kp-doc-submit {
    border-color: var(--color-border);
    background: var(--color-bg);
  }
}

/* Patientenliste: Seitenrahmen und Kopfbereich */
/* Patientenliste / Fallliste: flacher Seitenkopf + Aktionsleiste (Clinical Clean) */
.patients-page,
.cases-page {
  display: flex;
  flex-direction: column;
  gap: var(--om-space-4, 1rem);
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
}

/* Fallliste: Bereichs-Tabs (Fälle | MV Genom) — Unterstrich, kein Kartenrahmen */
.cases-list-tabs {
  min-width: 0;
}

.cases-list-tabs__bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--om-space-1, 0.25rem);
  border-bottom: 1px solid var(--om-border, #dde4e0);
}

.cases-list-tabs__tab {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0.85rem;
  margin-bottom: -1px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--om-text-muted, #687876);
  font: inherit;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}

.cases-list-tabs__tab:hover {
  color: var(--om-text, #1a2e2a);
}

.cases-list-tabs__tab.is-active,
.cases-list-tabs__tab[aria-selected="true"] {
  color: var(--om-text, #1a2e2a);
  border-bottom-color: var(--om-accent, #0d7377);
}

.cases-list-tabs__tab:focus-visible {
  outline: 2px solid var(--om-focus, #0d7377);
  outline-offset: 2px;
}

/* Kein äußerer Reporting-Kartenrahmen: Filter + Tabelle als eigene Ebenen */
.patients-page .patients-list-panel,
.cases-page .cases-list-panel {
  display: flex;
  flex-direction: column;
  gap: var(--om-space-4, 1rem);
  min-width: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.patients-page .patients-create-panel {
  min-width: 0;
}

.patients-page [data-panel][hidden],
.sprechstunden-page [data-panel][hidden],
.follow-up-list-page [data-panel][hidden] {
  display: none !important;
}

.follow-up-list-page .follow-up-list-page__lead {
  margin: 0.35rem 0 0;
  font-size: 0.9rem;
  color: var(--om-text-muted, #687876);
}


.patients-page .patients-create-panel .patients-panel--create,
.sprechstunden-page .patients-create-panel .patients-panel--create {
  margin: 0;
  padding: 1rem 1.15rem 1.15rem;
  background: var(--om-surface, #fff);
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: var(--om-radius, 10px);
  box-shadow: var(--om-shadow, none);
}

/* Visuelle Priorität: Tabelle dominant, Export zurückhaltend */
.patients-page .om-table-panel,
.cases-page .om-table-panel {
  flex: 1 1 auto;
}

.patients-page .om-table-toolbar__export.btn--secondary,
.cases-page .om-table-toolbar__export.btn--secondary {
  font-weight: 500;
  color: var(--om-text-muted, #687876);
  border-color: var(--om-border, #dde4e0);
  background: var(--om-surface, #fff);
}

.patients-page .om-table-toolbar__export.btn--secondary:hover:not(:disabled),
.patients-page .om-table-toolbar__export.btn--secondary:focus-visible,
.cases-page .om-table-toolbar__export.btn--secondary:hover:not(:disabled),
.cases-page .om-table-toolbar__export.btn--secondary:focus-visible {
  color: var(--om-text, #1f2d2e);
  border-color: var(--om-border-accent, var(--color-blend-primary-border-soft));
  background: var(--om-surface, #fff);
}

/* Fokus sichtbar (Listen) */
.patients-page .btn:focus-visible,
.patients-page .om-table-link:focus-visible,
.patients-page .data-table__sort-link:focus-visible,
.patients-page .cases-search-field__input:focus-visible,
.patients-page .om-filter-panel__patient select:focus-visible,
.cases-page .btn:focus-visible,
.cases-page .om-table-link:focus-visible,
.cases-page .data-table__sort-link:focus-visible,
.cases-page .cases-list-pagination__link:focus-visible,
.cases-page .cases-list-pagination__size-link:focus-visible,
.cases-page .cases-search-field__input:focus-visible,
.cases-page .om-filter-panel__patient select:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--om-primary, #557c70) 35%, transparent);
}

/* Responsive: Desktop primär; schmal → stapeln, Tabelle scrollt lokal */
@media (max-width: 960px) {
  .om-actions-toolbar__group {
    width: 100%;
  }

  .om-actions-toolbar__hint {
    margin-left: 0;
    text-align: left;
    max-width: none;
  }

  .om-filter-panel__row {
    flex-direction: column;
    align-items: stretch;
  }

  .om-filter-panel__q,
  .cases-filter-card__q {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    max-width: none;
  }

  .om-filter-panel__patient,
  .cases-filter-card__patient {
    width: 100%;
    max-width: none;
  }

  .om-table-toolbar,
  .cases-table-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .om-table-toolbar__actions,
  .cases-table-toolbar__actions {
    margin-left: 0;
    width: 100%;
    justify-content: flex-start;
  }

  .cases-list-pagination--toolbar.om-pagination {
    width: 100%;
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .om-page-header {
    padding: 0.75rem 0.85rem;
  }

  .om-actions-toolbar__group .btn {
    flex: 1 1 auto;
    justify-content: center;
  }

  .cases-active-filters {
    flex-direction: column;
    align-items: stretch;
  }

  .cases-active-filters__actions {
    margin-left: 0;
    justify-content: flex-start;
  }
}

/* Ebene 1: Header + Aktionen in einer Fläche */
.om-page-header {
  display: flex;
  flex-direction: column;
  gap: var(--om-space-3, 0.75rem);
  padding: 0.85rem 1.15rem 0.95rem;
  margin: 0;
  background: var(--om-surface, #fff);
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: var(--om-radius, 10px);
  box-shadow: var(--om-shadow, none);
}

.om-page-header__intro {
  flex: 1 1 auto;
  min-width: 0;
}

.om-page-header__title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 650;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--om-heading, var(--color-heading));
}

.om-page-header__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
  margin: 0.2rem 0 0;
  font-size: 0.9rem;
  line-height: 1.35;
  color: var(--om-text-muted, #687876);
  font-variant-numeric: tabular-nums;
}

.om-page-header__count {
  font-weight: 600;
  color: var(--om-text, #1f2d2e);
}

.om-page-header__label {
  font-weight: 500;
}

.om-actions-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--om-space-3, 0.75rem) var(--om-space-4, 1rem);
  padding-top: var(--om-space-3, 0.75rem);
  border-top: 1px solid var(--om-border, #dde4e0);
}

.om-actions-toolbar__group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.55rem;
  min-width: 0;
}

.om-actions-toolbar__hint {
  flex: 0 1 auto;
  margin-left: auto;
  text-align: right;
  max-width: 16rem;
  font-size: 0.82rem;
  color: var(--om-text-muted, #687876);
}

/* Listen: Primäraktionen in OncoMax-Salbei, nicht Warn-Orange */
.patients-page .btn--primary,
.cases-page .btn--primary {
  background: var(--om-primary, #557c70);
  border-color: var(--om-primary, #557c70);
  color: #fff;
}

.patients-page .btn--primary:hover:not(:disabled),
.cases-page .btn--primary:hover:not(:disabled) {
  background: var(--om-primary-hover, #476a61);
  border-color: var(--om-primary-hover, #476a61);
  color: #fff;
}

.patients-page .btn--secondary,
.cases-page .btn--secondary {
  background: var(--om-surface, #fff);
  border-color: var(--om-border, var(--color-border));
  color: var(--om-heading, var(--color-heading));
  font-weight: 600;
}

.patients-page .btn--secondary:hover:not(:disabled),
.cases-page .btn--secondary:hover:not(:disabled) {
  background: var(--om-surface-petrol-soft, var(--color-blend-primary-tint));
  border-color: var(--om-border-accent, var(--color-blend-primary-border-soft));
  color: var(--om-heading, var(--color-heading));
}

.btn--soft {
  background: color-mix(in srgb, var(--om-primary, #557c70) 88%, #fff);
  border-color: color-mix(in srgb, var(--om-primary, #557c70) 88%, #fff);
  color: #fff;
  font-weight: 600;
}

.btn--soft:hover:not(:disabled) {
  background: var(--om-primary, #557c70);
  border-color: var(--om-primary, #557c70);
  color: #fff;
}

.patients-overview-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  padding: 1.35rem 1.5rem;
  margin: 0;
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  border-left: 4px solid var(--color-heading);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

@media (prefers-color-scheme: dark) {
  .patients-overview-head {
    background: var(--color-surface);
    box-shadow: none;
  }
}

.patients-overview-head__body {
  flex: 1 1 280px;
  min-width: 0;
}

.patients-overview-head__title {
  margin: 0 0 0.4rem;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.2;
  color: var(--color-heading);
}

.patients-overview-head__lead {
  margin: 0;
  max-width: 40rem;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--color-text-muted);
}

.patients-overview-head__stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.75rem;
}

.patients-overview-head__stat {
  flex: 0 0 auto;
  text-align: right;
  padding: 0.55rem 1rem;
  min-width: 7rem;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: 10px;
}

.patients-overview-head__stat-value {
  display: block;
  font-size: 1.85rem;
  font-weight: 700;
  line-height: 1.15;
  color: rgba(18, 58, 70, 1);
  font-variant-numeric: tabular-nums;
}

.patients-overview-head__stat-label {
  display: block;
  margin-top: 0.2rem;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
}

@media (max-width: 520px) {
  .patients-overview-head__stats {
    flex: 1 1 100%;
    justify-content: stretch;
  }
  .patients-overview-head__stat {
    flex: 1 1 100%;
    text-align: left;
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.35rem 0.65rem;
  }
  .patients-overview-head__stat-value {
    display: inline;
    font-size: 1.65rem;
  }
  .patients-overview-head__stat-label {
    display: inline;
    margin-top: 0;
    font-size: 12px;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 600;
  }
}

.patients-panel {
  margin: 0;
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 1rem 1.25rem 1.2rem;
}

@media (prefers-color-scheme: dark) {
  .patients-panel {
    background: var(--color-surface);
  }
}

.patients-panel__head {
  margin: -0.15rem 0 1rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid var(--color-accent-brown);
}

.patients-panel__title {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.patients-panel__title--sub {
  margin: 0 0 0.85rem;
  padding-bottom: 0;
  border-bottom: none;
  font-size: 16px;
}

.patients-panel--create .kp-doc-form {
  border: none;
  background: transparent;
  padding: 0;
  max-width: min(60rem, 100%);
}

/* Neuer Patient: Stammdaten links, Tumordiagnose rechts */
.patients-panel--create .patient-create-form--split.kp-doc-form {
  max-width: none;
}

.patient-create-form__columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.25rem 1.75rem;
  align-items: start;
}

/* Nur Stammdaten (ohne Tumor-Spalte): volle Breite nutzen, Namen breiter */
.patient-create-form__columns--single {
  grid-template-columns: 1fr;
  width: 100%;
  max-width: min(60rem, 100%);
}

.patients-panel--create .patient-create-form__columns--single .kp-doc-grid-2 {
  grid-template-columns: minmax(14rem, 1fr) minmax(14rem, 1fr);
  gap: 1rem 1.5rem;
}

@media (max-width: 960px) {
  .patient-create-form__columns {
    grid-template-columns: 1fr;
  }
}

@media (prefers-color-scheme: dark) {
  .patients-panel--create .kp-doc-form {
    background: transparent;
  }
}

.patients-panel--results .patients-export-form {
  margin-top: 0;
}

.patients-results__head {
  margin-bottom: 0.95rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid var(--color-accent-brown);
}

.patients-panel--results .data-table thead th {
  background: var(--color-surface);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.02em;
  border-bottom-width: 2px;
}

@media (prefers-color-scheme: dark) {
  .patients-panel--results .data-table thead th {
    background: var(--color-bg);
  }
}

/* Patientenliste: GET-Toolbar (Fallliste nutzt .patients-search-toolbar ohne --structured) */
.patients-search-toolbar {
  display: flex;
  gap: 0.9rem;
  align-items: flex-end;
  flex-wrap: wrap;
  margin: 1rem 0 0.35rem;
}

.patients-filter-toolbar.patients-filter-toolbar--structured.patients-search-toolbar {
  flex-direction: column;
  align-items: stretch;
  align-content: stretch;
  flex-wrap: nowrap;
  gap: 0;
  margin: 0;
}

.patients-filter-toolbar__cluster {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: flex-end;
  padding: 0.85rem 0;
}

.patients-filter-toolbar__cluster:first-child {
  padding-top: 0;
}

.patients-filter-toolbar__cluster:not(:last-child) {
  border-bottom: 1px solid var(--color-border);
}

.patients-filter-toolbar__cluster-label {
  flex: 0 0 100%;
  margin-bottom: -0.35rem;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
}

.patients-filter-toolbar__cluster--find .patients-search-toolbar__field {
  flex: 1 1 200px;
  max-width: 26rem;
}

.patients-filter-toolbar__cluster--find .patients-filter-toolbar__q {
  flex: 2 1 260px;
  max-width: 34rem;
}

.patients-filter-toolbar__cluster--order .patients-search-toolbar__field {
  flex: 1 1 10rem;
  max-width: 13rem;
}

.patients-filter-toolbar__cluster--order .patients-filter-toolbar__sort-dir,
.patients-filter-toolbar__cluster--order .patients-filter-toolbar__sort2-dir {
  flex: 1 1 8rem;
  max-width: 11rem;
}

.patients-filter-toolbar__cluster--actions {
  padding-top: 0.95rem;
  padding-bottom: 0;
  border-bottom: none;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
}

.patients-filter-toolbar__cluster--actions .patients-filter-toolbar__actions {
  flex: 0 1 auto;
  padding-bottom: 0;
  margin: 0;
}

.patients-filter-toolbar__export-wrap {
  margin-inline-start: auto;
  padding-bottom: 0;
}
.patients-search-toolbar__field {
  flex: 1 1 320px;
  max-width: 28rem;
}
.patients-search-toolbar__field.sprechstunden-toolbar__status {
  flex: 0 1 12rem;
  max-width: 14rem;
}
.patients-search-toolbar__field label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.35rem;
}
.patients-search-toolbar__field input[type="search"] {
  width: 100%;
}
.patients-search-toolbar__field select {
  width: 100%;
}
.patients-search-toolbar__count {
  padding-bottom: 0.2rem;
  font-size: 14px;
  color: var(--color-text-muted);
}
.patients-search-toolbar__export {
  margin-inline-start: auto;
  padding-bottom: 0.15rem;
}
.patients-export-link {
  white-space: nowrap;
}
.patients-filter-empty td {
  color: var(--color-text-muted);
}

/* Ebene 2: eine Filter-Fläche (Suche + Patienten + Chips) */
.om-filter-panel,
.cases-filter-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0.9rem 1.1rem 1rem;
  margin: 0;
  background: var(--om-surface, #fff);
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: var(--om-radius, 10px);
  box-shadow: var(--om-shadow, none);
}

.om-filter-panel__title,
.cases-filter-card__title {
  margin: 0 0 0.65rem;
  font-size: 0.92rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--om-heading, var(--color-heading));
}

.om-filter-panel__form,
.cases-filter-card__form {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin: 0;
}

.om-filter-panel__row,
.cases-filter-card__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 0.85rem;
}

.om-filter-panel__q,
.cases-filter-card__q {
  flex: 1 1 18rem;
  min-width: 14rem;
  max-width: none;
}

.cases-search-field {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.cases-search-field__icon {
  position: absolute;
  left: 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--om-text-muted, #687876);
  pointer-events: none;
  font-size: 1rem;
  line-height: 1;
}

.cases-search-field__input,
.om-filter-panel .cases-search-field__input[type="search"],
.om-filter-panel .cases-search-field__input[type="text"],
.cases-filter-card .cases-search-field__input[type="search"],
.cases-filter-card .cases-search-field__input[type="text"] {
  width: 100%;
  max-width: none;
  height: 44px;
  min-height: 44px;
  padding: 0.5rem 0.85rem 0.5rem 2.5rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 9px;
  background: var(--om-surface, #fff);
  color: var(--om-text, #1f2d2e);
  font-size: 0.95rem;
  box-sizing: border-box;
}

/* readonly nur gegen Adressbuch-Autofill — optisch wie normales Suchfeld */
.cases-search-field__input[readonly],
.app-search__input[readonly],
input[data-om-no-contacts][readonly] {
  background: inherit;
  color: inherit;
  opacity: 1;
  cursor: text;
  -webkit-text-fill-color: inherit;
}

.cases-search-field__input:hover,
.cases-search-field__input:focus {
  border-color: color-mix(in srgb, var(--om-primary, #557c70) 45%, var(--om-border, #dde4e0));
  outline: none;
}

.cases-search-field__input:focus {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--om-primary, #557c70) 22%, transparent);
}

.om-filter-panel__hint,
.cases-filter-card__hint {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--om-text-muted, #687876);
}

.om-filter-panel__patient,
.cases-filter-card__patient {
  flex: 0 0 auto;
  min-width: 8.5rem;
  max-width: 11rem;
}

.om-filter-panel__patient label,
.cases-filter-card__patient label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--om-text-muted, #687876);
}

.om-filter-panel__patient select,
.cases-filter-card__patient select {
  width: 100%;
  max-width: none;
  height: 44px;
  min-height: 44px;
  padding: 0.4rem 0.65rem;
  font-size: 0.9rem;
  border-radius: 9px;
  border: 1px solid var(--om-border, #dde4e0);
  background: var(--om-surface, #fff);
  color: var(--om-text, #1f2d2e);
  box-sizing: border-box;
}

.om-filter-panel__patient select:hover,
.om-filter-panel__patient select:focus,
.cases-filter-card__patient select:hover,
.cases-filter-card__patient select:focus {
  border-color: color-mix(in srgb, var(--om-primary, #557c70) 45%, var(--om-border, #dde4e0));
  outline: none;
}

.om-filter-panel__patient select:focus,
.cases-filter-card__patient select:focus {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--om-primary, #557c70) 22%, transparent);
}

/* Legacy Falllisten-Toolbar-Selektoren (Hidden-Felder / Kompatibilität) */
.cases-filter-toolbar.patients-filter-toolbar--structured {
  align-items: stretch;
}
.cases-filter-toolbar__cluster--search {
  align-items: flex-end;
  gap: 0.65rem 1rem;
}
.cases-filter-toolbar .patients-filter-toolbar__cluster--find .cases-filter-toolbar__q {
  flex: 1 1 18rem;
  max-width: none;
  min-width: 14rem;
}
.cases-filter-toolbar__q input[type="search"] {
  min-height: 2.35rem;
  font-size: 1rem;
  padding: 0.5rem 0.75rem;
}
.cases-filter-toolbar__q-hint {
  margin: 0.3rem 0 0;
  font-size: 0.8rem;
  color: var(--color-text-muted);
  line-height: 1.3;
}
.cases-filter-toolbar__patient {
  flex: 0 0 auto;
  max-width: 9.5rem;
  min-width: 7.5rem;
}
.cases-filter-toolbar__patient label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--color-text-muted);
}
.cases-filter-toolbar__patient select {
  width: 100%;
  min-height: 2.35rem;
  padding: 0.35rem 0.5rem;
  font-size: 0.84rem;
  border-radius: 6px;
  border: 1px solid var(--color-blend-border-faint, var(--color-border));
  background: var(--color-surface-alt, var(--color-bg));
  color: var(--color-text-muted);
}
.cases-filter-toolbar__patient select:hover,
.cases-filter-toolbar__patient select:focus {
  color: var(--color-text);
  border-color: var(--color-border);
}
.cases-filter-toolbar__fall-aktiv,
.cases-filter-toolbar__status,
.cases-filter-toolbar__fallart,
.cases-filter-toolbar__sort,
.cases-filter-toolbar__sort-dir {
  flex: 1 1 10rem;
  max-width: 16rem;
}
.cases-filter-toolbar__fall-aktiv select,
.cases-filter-toolbar__status select,
.cases-filter-toolbar__fallart select,
.cases-filter-toolbar__sort select,
.cases-filter-toolbar__sort-dir select {
  width: 100%;
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  border: 1px solid var(--color-border);
  background: var(--color-bg);
  color: var(--color-text);
}
.cases-filter-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  padding-bottom: 0.15rem;
}
.cases-filter-toolbar .cases-filter-toolbar__count {
  flex-basis: 100%;
  padding-bottom: 0;
  margin-top: -0.25rem;
}

/* Patientenliste: GET-Filter */
.patients-filter-toolbar__aktiv select,
.patients-filter-toolbar__sort select,
.patients-filter-toolbar__sort-dir select,
.patients-filter-toolbar__sort2 select,
.patients-filter-toolbar__sort2-dir select {
  width: 100%;
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  border: 1px solid var(--color-border);
  background: var(--color-bg);
  color: var(--color-text);
}

.patients-filter-toolbar .patients-filter-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  padding-bottom: 0.15rem;
}

.patients-export-form {
  margin-top: 1rem;
}

.patients-export-form__actions {
  margin-bottom: 0.55rem;
}

/* Fallliste: kompakte Toolbar über der Tabelle (kein großer Export-Kasten) */
.cases-export-form.patients-export-form {
  margin-top: 0;
}

/* Ebene 3: Tabellenfläche = Toolbar + Tabelle in einer Card */
.om-table-panel,
.cases-table-card {
  margin: 0;
  background: var(--om-surface, #fff);
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 11px;
  box-shadow: var(--om-shadow, none);
  overflow: hidden;
}

.om-table-toolbar,
.cases-table-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  min-height: 2.25rem;
  margin: 0;
  padding: 0.65rem 0.85rem;
  border: 0;
  border-bottom: 1px solid var(--om-border, #dde4e0);
  background: var(--om-surface-soft, #f8f9f7);
}

.om-selection-status,
.cases-table-toolbar__selection {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--om-text-muted, #687876);
  font-variant-numeric: tabular-nums;
}

.om-selection-status.is-selected,
.cases-table-toolbar__selection.is-selected {
  font-weight: 650;
  color: var(--om-text, #1f2d2e);
}

.om-table-toolbar__actions,
.cases-table-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.85rem;
  margin-left: auto;
}

.om-table-panel .table-scroll--cases-overview,
.cases-table-card .table-scroll--cases-overview {
  max-height: 68vh;
  min-height: 12rem;
  overflow: auto;
  border: 0;
  border-radius: 0;
}

.om-export-menu,
.cases-export-menu {
  position: relative;
}

.cases-export-menu__summary {
  list-style: none;
  cursor: pointer;
}

.cases-export-menu__summary::-webkit-details-marker {
  display: none;
}

.cases-export-menu__summary::after {
  content: " ▾";
  font-size: 0.75em;
  opacity: 0.85;
}

.cases-export-menu__panel {
  position: absolute;
  right: 0;
  top: calc(100% + 0.25rem);
  z-index: 30;
  min-width: 12.5rem;
  padding: 0.3rem;
  background: var(--om-surface, #fff);
  border: 1px solid var(--om-border, var(--color-border));
  border-radius: var(--om-radius-sm, 8px);
  box-shadow: var(--om-shadow-soft, 0 1px 2px rgba(18, 58, 70, 0.045));
}

.cases-export-menu__item {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.45rem 0.65rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--om-text, #1f2d2e);
  font: inherit;
  font-size: 0.85rem;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
}

.cases-export-menu__item:hover,
.cases-export-menu__item:focus-visible {
  background: var(--om-surface-petrol-soft, var(--color-blend-primary-tint));
  outline: none;
}

/* Legacy (andere Listen dürfen den alten Export-Block behalten) */
.cases-export-form__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem 0.75rem;
  padding: 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: var(--color-surface-alt);
}

.cases-export-form__field {
  display: grid;
  gap: 0.25rem;
}

.cases-export-form__field label {
  font-weight: 600;
}

.cases-export-form__field select {
  min-width: 12rem;
}

.data-table th.col-select,
.data-table td.col-select {
  width: 2.75rem;
  text-align: center;
  vertical-align: middle;
}

.data-table th.col-select input,
.data-table td.col-select input {
  margin: 0;
}

/* Fallliste: Tabellenkopf/-zeilen innerhalb .om-table-panel */
.data-table--cases-list {
  margin: 0;
}

.data-table--cases-list thead th,
.om-data-table__header {
  height: 44px;
  padding: 0.55rem 0.75rem;
  font-size: 0.8rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  color: var(--om-heading, var(--color-heading));
  background: var(--om-surface-soft, #f8f9f7);
  border-bottom: 1px solid var(--om-border, #dde4e0);
  vertical-align: middle;
}

.data-table--cases-list tbody td {
  height: 46px;
  padding: 0.55rem 0.75rem;
  vertical-align: middle;
  border-bottom: 1px solid color-mix(in srgb, var(--om-border, #dde4e0) 70%, transparent);
  background: var(--om-surface, #fff);
}

.om-data-table tbody tr:hover,
.data-table--cases-list tbody tr:hover {
  background: #f7f9f7;
}

.om-data-table tbody tr:hover td,
.data-table--cases-list tbody tr:hover td {
  background: #f7f9f7;
}

/* Checkbox-Auswahl: sehr leichte Salbei-Hinterlegung */
.om-data-table tbody tr.is-selected td,
.data-table--cases-list tbody tr.is-selected td {
  background: #f0f5f2;
}

.om-data-table tbody tr.is-selected:hover td,
.data-table--cases-list tbody tr.is-selected:hover td {
  background: #f0f5f2;
}

/* Tabellenlinks Fallliste: Petrol, Unterstreichung erst bei Hover/Focus */
.om-table-link,
a.om-table-link,
button.om-table-link {
  color: var(--om-primary, #557c70);
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.om-table-link:hover,
.om-table-link:focus-visible,
a.om-table-link:hover,
a.om-table-link:focus-visible,
button.om-table-link:hover,
button.om-table-link:focus-visible {
  color: var(--om-primary-hover, #476a61);
  text-decoration: underline;
  outline: none;
}

/* Listen-Tabellen: Kopfzeile fixieren + Auswahlspalte links fixieren */
.table-scroll--cases-overview table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: var(--om-surface-soft, #f8f9f7);
  box-shadow: 0 1px 0 var(--om-border, #dde4e0);
}
.table-scroll--cases-overview table thead th.is-col-filtered {
  background: color-mix(in srgb, var(--om-primary, #557c70) 6%, var(--om-surface-soft, #f8f9f7));
}

.table-scroll--cases-overview {
  max-height: 68vh;
  min-height: 12rem;
  overflow-x: auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  isolation: isolate;
}

.table-scroll--cases-overview table th.col-select,
.table-scroll--cases-overview table td.col-select {
  position: sticky;
  left: 0;
  z-index: 4;
  background: var(--om-surface, #fff);
}

.table-scroll--cases-overview table thead th.col-select {
  z-index: 6;
  background: var(--om-surface-soft, #f8f9f7);
}

.table-scroll--cases-overview table tbody tr:hover td.col-select {
  background: #f7f9f7;
}

.table-scroll--cases-overview table tbody tr.is-selected td.col-select,
.table-scroll--cases-overview table tbody tr.is-selected:hover td.col-select {
  background: #f0f5f2;
}

@media (prefers-color-scheme: dark) {
  .cases-table-card {
    background: var(--color-surface);
  }
  .data-table--cases-list thead th,
  .table-scroll--cases-overview table thead th,
  .table-scroll--cases-overview table thead th.col-select {
    background: var(--color-surface-alt, var(--color-surface));
  }
  .table-scroll--cases-overview table th.col-select,
  .table-scroll--cases-overview table td.col-select,
  .data-table--cases-list tbody td {
    background: var(--color-surface);
  }
}

/* --- Einheitliche Seitenköpfe & Formularrhythmus --- */
.page-header {
  margin: 0 0 1.35rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--color-border);
}

.page-header--split {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.5rem;
}

.page-header__intro {
  flex: 1 1 280px;
  min-width: 0;
}

.page-header__lead {
  margin: 0.35rem 0 0;
  max-width: 42rem;
  line-height: 1.45;
}

.page-header__toolbar {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.case-detail-header__side {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.75rem;
  max-width: 100%;
}

.case-detail-header__toolbar {
  justify-content: flex-end;
}

@media (max-width: 640px) {
  .page-header__toolbar {
    flex: 1 1 100%;
  }
  .page-header__toolbar .btn {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 820px) {
  .case-detail-header__side {
    flex: 1 1 100%;
    align-items: flex-end;
  }

  .case-detail-header__toolbar {
    justify-content: flex-end;
  }

  .case-detail-header__toolbar .btn {
    width: auto;
  }
}

.case-create-page {
  max-width: 880px;
}

.case-create-form--main {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.case-create-form--main .case-form-section {
  margin-bottom: 1rem;
  padding: 1rem 1.1rem 1.1rem;
  background: var(--color-bg);
}

.case-create-form--main .case-form-section__title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

@media (prefers-color-scheme: dark) {
  .case-create-form--main .case-form-section {
    background: var(--color-surface-alt);
  }
}

.case-create-patient-overview {
  margin: 0 0 1.35rem;
  padding: 1rem 1.15rem 1.15rem;
  border-radius: 10px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  border-left: 4px solid var(--color-heading);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

@media (prefers-color-scheme: dark) {
  .case-create-patient-overview {
    background: var(--color-surface-alt);
    box-shadow: none;
  }
}

.case-create-patient-overview__title {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

/* MTB „Dokumentation Tumorboards“: ein Feld (Text + Kalender-Button), heller Hintergrund */
.date-unified-field {
  position: relative;
  display: flex;
  align-items: stretch;
  max-width: 22rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.date-unified-field .input-date-manual {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  border: none;
  border-radius: 0;
  padding: 0.5rem 0.65rem;
  font-size: inherit;
  background: #fff;
  color: #0f172a;
}

.date-unified-field .input-date-manual:focus {
  outline: none;
}

.date-unified-field:focus-within {
  border-color: var(--color-heading);
  box-shadow: 0 0 0 1px var(--color-blend-heading-ring);
}

.date-unified-field__btn {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  margin: 0;
  padding: 0;
  border: none;
  border-left: 1px solid var(--color-border);
  background: #fff;
  color: #64748b;
  cursor: pointer;
}

.date-unified-field__btn:hover {
  color: #0f172a;
  background: #f8fafc;
}

.date-unified-field__native {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  opacity: 0;
}

.case-detail-form__actions--footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  margin-top: 1.25rem;
  padding-top: 1.15rem;
  border-top: 1px solid var(--color-border);
}

.mtb-therapy-recommendation {
  border-top: 1px solid var(--color-border);
  margin-top: 0.85rem;
  padding-top: 0.85rem;
}

.mtb-therapy-recommendation h5 {
  margin: 0 0 0.25rem;
}

.mtb-therapy-options-table-wrap {
  overflow-x: auto;
}

.mtb-therapy-options-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}

.mtb-therapy-options-table th,
.mtb-therapy-options-table td {
  border-bottom: 1px solid var(--color-border);
  padding: 0.55rem 0.6rem;
  text-align: left;
  vertical-align: top;
}

.mtb-therapy-options-table th {
  color: var(--color-text-muted);
  font-weight: 700;
}

.patient-edit-page {
  max-width: 1100px;
}

.patient-edit-actions {
  margin-top: 1.25rem;
  padding-top: 1.15rem;
  border-top: 1px solid var(--color-border);
}

/* Patient anlegen: Kopfzeile + Spaltenpanels */
.patients-panel__head--create {
  margin: -0.15rem 0 1.1rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--color-border);
}

.patients-panel__subtitle {
  margin: 0.45rem 0 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--color-text-muted);
  max-width: 48rem;
}

.patient-create-form__column {
  min-width: 0;
}

.patients-panel--create .patient-create-form__column .kp-doc-fieldset,
.patient-edit-page .patient-create-form__column .kp-doc-fieldset {
  height: 100%;
  background: var(--color-bg);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

@media (prefers-color-scheme: dark) {
  .patients-panel--create .patient-create-form__column .kp-doc-fieldset,
  .patient-edit-page .patient-create-form__column .kp-doc-fieldset {
    background: var(--color-surface-alt);
    box-shadow: none;
  }
}

.patients-panel--create .kp-doc-fieldset legend,
.patient-edit-page .kp-doc-fieldset legend {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.patient-edit-page .kp-doc-label input[type="text"],
.patient-edit-page .kp-doc-label input[type="date"],
.patient-edit-page .kp-doc-label input.input-date-manual {
  width: 100%;
}

.patho-analysen-workflow {
  margin-bottom: 0;
  padding: 0.55rem 0.75rem;
}
.patho-analysen-workflow__aktionen {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  align-items: center;
  min-width: 16rem;
  vertical-align: top;
}

.patho-analysen-workflow__row-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  align-items: center;
  margin: 0;
}

.patho-analysen-workflow__row-form .btn {
  margin: 0;
}

.patho-analysen-workflow__aktion-link {
  white-space: nowrap;
}

.patho-neue-analyse-auswahl {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--color-border);
}

.patho-neue-analyse-auswahl--focus {
  outline: 2px solid var(--color-accent, #2563eb);
  outline-offset: 4px;
  border-radius: 6px;
}

.patho-neue-analyse-auswahl h4 {
  margin-top: 0;
}

.patho-weitere-analyse {
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--om-border, #dde4e0);
}

.patho-weitere-analyse > summary {
  cursor: pointer;
  font-weight: 550;
  font-size: 0.9rem;
  list-style: none;
}

.patho-weitere-analyse > summary::-webkit-details-marker {
  display: none;
}

.patho-weitere-analyse > summary::after {
  content: " ▾";
  color: var(--om-text-muted, #687876);
}

.patho-weitere-analyse__form {
  margin-top: 0.5rem;
}

.patho-befund-empty__create {
  margin-top: 0.75rem;
}

.patho-befund-empty__analyse-art {
  margin: 0.15rem 0 0.25rem;
  font-size: 0.95rem;
  line-height: 1.35;
}

.patho-befund-empty__analyse-art .table-muted {
  font-weight: 400;
  margin-left: 0.25rem;
}

/* Externe Annotions-Links pro Variante (ClinVar, cBioPortal, …) */
.variant-extern-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.35rem 0 0;
  max-width: 22rem;
}

.variant-extern-links--kompakt {
  max-width: 17rem;
}

.variant-extern-links__btn {
  padding: 0.2rem 0.45rem;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}

.variant-extern-links__btn--hit {
  color: #39624f;
  background: #e5efe9;
  border-color: #9fc4b0;
  box-shadow: inset 0 0 0 1px #9fc4b0;
}

.variant-extern-links__btn--miss {
  opacity: 0.72;
}

.variant-extern-links__legend {
  display: inline-flex;
  padding: 0.1rem 0.4rem;
  pointer-events: none;
  cursor: default;
}

.patho-variant-card__resources-query {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
}

.patho-variant-card__resources-query code {
  font-size: 0.78rem;
}

.molekular-klinisch-panel .variant-extern-links {
  margin-bottom: 0.75rem;
}

/* MolPath / Pathologie — Rohvarianten-Tabelle */
.molekular-varianten-roh td input[type="text"],
.molekular-varianten-roh td select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.molekular-varianten-roh--molpath {
  table-layout: fixed;
  min-width: 72rem;
}

.molekular-varianten-roh--molpath th,
.molekular-varianten-roh--molpath td {
  vertical-align: top;
}

.molekular-varianten-roh--molpath .col-uuid {
  width: 5.5rem;
}

.molekular-varianten-roh--molpath .molpath-variante-uuid {
  display: block;
  font-size: 0.68rem;
  white-space: nowrap;
  cursor: help;
}

.molekular-varianten-roh--molpath .col-quelle {
  width: 5.5rem;
}

.molekular-varianten-roh--molpath .col-gen {
  width: 5rem;
}

.molekular-varianten-roh--molpath .col-cdna {
  width: 9rem;
}

.molekular-varianten-roh--molpath .col-protein {
  width: 7.5rem;
}

.molekular-varianten-roh--molpath .col-af {
  width: 4.5rem;
}

.molekular-varianten-roh--molpath .col-roh {
  width: 12rem;
  min-width: 12rem;
}

.molekular-varianten-roh--molpath .col-ressourcen {
  width: 17rem;
  min-width: 17rem;
}

.molekular-varianten-roh--molpath .col-loeschen {
  width: 3.25rem;
  text-align: center;
  vertical-align: middle;
}

.data-table .col-ressourcen {
  vertical-align: top;
}

/* Biomarker-Annotationen: Spalten und Formularfelder lesbar (lange Select-Texte). */
.molekular-biomarker-table {
  min-width: 56rem;
  font-size: 0.95rem;
}

.molekular-biomarker-table th,
.molekular-biomarker-table td {
  padding: 0.65rem 0.75rem;
  vertical-align: top;
  white-space: normal;
}

.molekular-biomarker-table th {
  font-size: 0.9rem;
  line-height: 1.3;
}

.molekular-biomarker-table .col-biomarker-rolle {
  min-width: 11rem;
}

.molekular-biomarker-table .col-biomarker-kontext {
  min-width: 8rem;
}

.molekular-biomarker-table .col-biomarker-diagnose {
  min-width: 12rem;
}

.molekular-biomarker-table .col-biomarker-details {
  min-width: 7rem;
  white-space: nowrap;
}

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

.molekular-biomarker-table input:not([type="checkbox"]):not([type="radio"]),
.molekular-biomarker-table select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  font-size: 0.95rem;
  line-height: 1.4;
  min-height: 2.5rem;
  padding: 0.45rem 0.55rem;
}

.molekular-biomarker-table select {
  white-space: normal;
  height: auto;
}

.molekular-biomarker-table .biomarker-details-row > td {
  padding: 0.75rem 0.85rem 1rem;
  background: var(--color-surface-alt, #f7f8f9);
}

.biomarker-annotation-details {
  font-size: 0.95rem;
}

.biomarker-annotation-details__header {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  line-height: 1.4;
}

.biomarker-annotation-details .data-table th,
.biomarker-annotation-details .data-table td {
  padding: 0.6rem 0.7rem;
  vertical-align: top;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.biomarker-annotation-details input:not([type="checkbox"]):not([type="radio"]),
.biomarker-annotation-details select,
.biomarker-annotation-details textarea {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  font-size: 0.95rem;
  line-height: 1.4;
  min-height: 2.5rem;
  padding: 0.45rem 0.55rem;
}

.biomarker-annotation-details select {
  white-space: normal;
  height: auto;
}

.biomarker-annotation-details textarea {
  resize: vertical;
  min-height: 3.25rem;
  line-height: 1.35;
}

/* Therapien & Zulassungen: kompakte Hauptspalten + Metadaten unter Details */
.molekular-annotation-zulassung-table {
  min-width: 48rem;
  font-size: 0.95rem;
}

.molekular-annotation-zulassung-table .col-ann-wirkstoff {
  min-width: 9rem;
  width: 14%;
}

.molekular-annotation-zulassung-table .col-ann-wirkstoffklasse {
  min-width: 10rem;
  width: 18%;
}

.molekular-annotation-zulassung-table .col-ann-evidenz {
  min-width: 7.5rem;
  width: 11%;
}

.molekular-annotation-zulassung-table .col-ann-status {
  min-width: 7.5rem;
  width: 11%;
}

.molekular-annotation-zulassung-table .col-ann-voraussetzungen {
  min-width: 12rem;
  width: 24%;
}

.molekular-annotation-zulassung-table .col-ann-meta {
  min-width: 8rem;
  width: 14%;
}

.molekular-annotation-zulassung-table .col-ann-atc {
  min-width: 7rem;
}

.col-ann-atc__label {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  white-space: nowrap;
}

.col-ann-atc__info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0.9rem;
  height: 0.9rem;
  border: 1px solid var(--color-border, #c5c9d0);
  border-radius: 50%;
  font-size: 0.65rem;
  font-weight: 600;
  font-style: normal;
  line-height: 1;
  text-decoration: none;
  text-transform: lowercase;
  color: var(--color-text-muted, #6b7280);
  cursor: help;
  flex-shrink: 0;
}

.col-ann-atc__info:hover,
.col-ann-atc__info:focus {
  color: var(--color-text, #1f2937);
  border-color: var(--color-text-muted, #6b7280);
}

.molekular-annotation-zulassung-table .col-ann-behoerde {
  min-width: 8.5rem;
}

.molekular-annotation-zulassung-table .col-ann-linie {
  min-width: 8rem;
}

.molekular-annotation-zulassung-table .col-ann-aktualisiert {
  min-width: 8rem;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  color: var(--color-text-muted);
  font-size: 0.9rem;
}

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

.therapie-meta-details {
  margin: 0;
}

.therapie-meta-details__summary {
  cursor: pointer;
  list-style: none;
  font-size: 0.9rem;
  color: var(--color-text, #1f2937);
  user-select: none;
}

.therapie-meta-details__summary::-webkit-details-marker {
  display: none;
}

.therapie-meta-details[open] > .therapie-meta-details__summary {
  margin-bottom: 0.5rem;
  font-weight: 600;
}

.therapie-meta-details__body {
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--color-border, #d7dbe2);
  border-radius: 0.35rem;
  background: var(--color-surface-alt, #f7f8f9);
}

.therapie-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  gap: 0.55rem 0.75rem;
}

.therapie-meta-field {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.therapie-meta-field--wide {
  grid-column: 1 / -1;
}

.therapie-meta-field__label,
.therapie-meta-field__label-inner {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-text-muted, #6b7280);
}

.therapie-meta-field__readonly {
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
  color: var(--color-text-muted, #6b7280);
}

.therapie-meta-readonly {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  gap: 0.45rem 0.75rem;
  margin: 0;
}

.therapie-meta-readonly > div {
  min-width: 0;
}

.therapie-meta-readonly dt {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-text-muted, #6b7280);
}

.therapie-meta-readonly dd {
  margin: 0.15rem 0 0;
  font-size: 0.9rem;
}

/* Evidenz / Studien */
.molekular-annotation-studie-table {
  min-width: 48rem;
  font-size: 0.95rem;
}

.molekular-annotation-studie-table .col-ann-studie {
  min-width: 10rem;
}

.molekular-annotation-studie-table .col-ann-phase {
  min-width: 8rem;
}

.molekular-annotation-studie-table .col-ann-nct {
  min-width: 9rem;
}

.molekular-annotation-studie-table .col-ann-pmid {
  min-width: 7rem;
}

.molekular-annotation-studie-table .col-ann-doi {
  min-width: 12rem;
}

.molekular-annotation-studie-table .col-ann-aktualisiert {
  min-width: 8rem;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  color: var(--color-text-muted);
  font-size: 0.9rem;
}

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

.patients-table .col-klinische-annotation {
  max-width: 18rem;
  font-size: 0.92em;
}


/* MolecularReport: Molekulare Alterationen (Tabelle / Signalwege) */
.mr-alterationen {
  margin-top: 0.75rem;
}
.mr-alterationen__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.mr-alterationen__title {
  margin: 0;
  font-size: 1rem;
}
.mr-alterationen__tabs {
  flex: 0 0 auto;
}
.mr-alterationen__tab:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.mr-variante-row__actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.mr-variante-row--edit td {
  background: var(--surface-muted, #f6f7f9);
}

/* Kompakte somatische Varianten-Zeilen (Phase 7) */
.patho-variant-list {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.patho-variant-card {
  margin: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 0.45rem;
  background: var(--om-surface-card, #fff);
}
.patho-variant-card--edit {
  background: var(--surface-muted, #f6f7f9);
}
.patho-variant-card__gene {
  margin: 0;
  font-size: 0.95rem;
  font-style: italic;
  font-weight: 700;
}
.patho-variant-card__class--muted {
  opacity: 0.85;
}
.patho-variant-card__compact {
  list-style: none;
  margin: 0 0 0.4rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.9rem;
}
.patho-variant-card__compact > li {
  display: grid;
  grid-template-columns: 7.5rem minmax(0, 1fr);
  gap: 0.35rem 0.5rem;
  align-items: baseline;
}
.patho-variant-card__label {
  color: var(--text-muted, #666);
  font-weight: 500;
}
.patho-variant-card__details {
  margin: 0.25rem 0 0.4rem;
  font-size: 0.9rem;
}
.patho-variant-card__details > summary {
  cursor: pointer;
  font-weight: 500;
}
.patho-variant-card__dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.2rem 0.75rem;
  margin: 0.5rem 0;
}
.patho-variant-card__dl dt {
  color: var(--text-muted, #666);
  font-weight: 500;
}
.patho-variant-card__dl dd {
  margin: 0;
}
.patho-variant-card__resources {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--border-subtle, #eee);
}
.patho-variant-card__resources-title {
  margin: 0 0 0.35rem;
  font-size: 0.85rem;
}
.patho-variant-card__actions {
  margin: 0.5rem 0 0;
}

.mr-pathway__subtitle {
  margin: 0.75rem 0 0.35rem;
  font-size: 0.95rem;
}
.mr-pathway__hint {
  margin: 0 0 0.5rem;
}
.mr-pathway__hit-list {
  list-style: none;
  margin: 0 0 0.75rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.mr-pathway__hit-btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  width: 100%;
  text-align: left;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--color-border);
  border-radius: 6px;
  background: var(--color-surface);
  cursor: pointer;
}
.mr-pathway__hit.is-selected .mr-pathway__hit-btn {
  border-color: var(--color-primary);
  background: var(--color-surface-alt);
}
.mr-pathway__hit-name {
  font-weight: 650;
}
.mr-pathway__hit-meta {
  font-size: 0.85rem;
  color: var(--color-text-muted);
}
.mr-pathway__select {
  max-width: 28rem;
  margin-bottom: 0.75rem;
}

.pathway-graph-wrap {
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface);
  padding: 0.25rem;
}
.pathway-cy.js-pathway-cytoscape {
  width: 100%;
  height: 28rem;
  min-height: 16rem;
}
.mr-pathway__gene-detail {
  margin-top: 0.75rem;
  padding: 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface);
}
.mr-pathway-gene__meta {
  margin: 0.25rem 0;
  font-size: 0.9rem;
}

.mr-pathway-gene__head {
  margin-bottom: 0.75rem;
}
.mr-pathway-gene__symbol {
  font-weight: 700;
  letter-spacing: 0.02em;
}
.mr-pathway-gene__label {
  font-weight: 500;
  color: var(--color-text-muted);
}
.mr-pathway-gene__table {
  min-width: 48rem;
  font-size: 0.92rem;
}
.mr-pathway-gene__ref-badge {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  font-size: 0.8rem;
  font-weight: 600;
}

/* MolecularReport Statuskarte */
.molekular-report-panel__title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
}
.mr-summary__rule {
  border: 0;
  border-top: 1px solid var(--color-border);
  margin: 0 0 0.85rem;
}
.mr-summary__meta {
  display: grid;
  gap: 0.35rem 1.25rem;
  margin: 0 0 1rem;
}
.mr-summary__row {
  display: grid;
  grid-template-columns: 9rem 1fr;
  gap: 0.5rem;
  align-items: baseline;
}
.mr-summary__row dt {
  margin: 0;
  color: var(--color-text-muted);
  font-weight: 600;
}
.mr-summary__row dd {
  margin: 0;
}
.mr-summary__block {
  margin: 0 0 1rem;
}
.mr-summary__label {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
}
.mr-summary__doc-name {
  margin: 0 0 0.4rem;
  font-weight: 600;
}
.mr-summary__doc-actions,
.mr-summary__actions {
  margin: 0.4rem 0 0;
}
.mr-summary__status-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.mr-summary__status-list li {
  display: flex;
  gap: 0.45rem;
  align-items: baseline;
}
.mr-summary__bullet {
  color: var(--color-primary);
  line-height: 1;
}
.mr-summary__bullet--status-review_required {
  color: #b45309;
}
.mr-summary__bullet--status-import_failed {
  color: #b91c1c;
}
.mr-summary__bullet--status-reviewed {
  color: #15803d;
}
.mr-summary__status-muted {
  color: var(--color-text-muted);
  font-size: 0.9rem;
  padding-left: 1.1rem;
}

/* -------------------------------------------------------------------------- */
/* OncoMax Card System (.om-card) — Clinical Clean / Scandinavian Medical    */
/* -------------------------------------------------------------------------- */
.om-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow-wrap: anywhere;
  background: var(--om-surface-card, var(--color-blend-surface-card, var(--color-surface-alt)));
  border: 1px solid var(--om-border, var(--color-border));
  border-radius: var(--om-radius, 10px);
  padding: 0;
  box-shadow: var(--om-shadow, none);
}

.om-card__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--om-space-1, 0.25rem) var(--om-space-3, 0.75rem);
  padding: 0.65rem 0.85rem 0.35rem;
}

.om-card__title {
  margin: 0;
  font-size: var(--om-font-size-title, 0.82rem);
  font-weight: 600;
  color: var(--om-heading, var(--color-heading));
  letter-spacing: 0.01em;
  line-height: 1.3;
}

.om-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
  color: var(--om-text-muted, var(--color-text-muted));
  font-size: 0.95rem;
  line-height: 1;
}

.om-card__header-actions {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.65rem;
  margin-left: auto;
}

.om-card__body {
  padding: 0.35rem 0.85rem 0.75rem;
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--om-font-size-body, 0.9rem);
  line-height: var(--om-line-height, 1.4);
  color: var(--om-text, var(--color-text));
}

.om-card__header + .om-card__body {
  padding-top: 0.15rem;
}

.om-card__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.65rem;
  padding: 0.45rem 0.85rem 0.7rem;
  border-top: 1px solid var(--om-border-subtle, var(--color-blend-border-faint, var(--color-border)));
  font-size: 0.82rem;
}

.om-card--compact .om-card__header {
  padding: 0.5rem 0.7rem 0.2rem;
}

.om-card--compact .om-card__body {
  padding: 0.2rem 0.7rem 0.55rem;
}

.om-card--compact .om-card__footer {
  padding: 0.35rem 0.7rem 0.55rem;
}

/* Text-Link im Card-Footer: kein Button-Kasten, nur Label + Pfeil */
.om-card__footer--text {
  border-top: 0;
  padding-top: 0.15rem;
}

.om-card__text-link {
  display: inline;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--om-accent, var(--color-table-link, #0d7377));
  font: inherit;
  font-size: 0.82rem;
  font-weight: 400;
  line-height: 1.35;
  text-decoration: none;
  cursor: pointer;
}

.om-card__text-link:hover,
.om-card__text-link:focus-visible {
  color: var(--om-accent-hover, var(--color-table-link-hover, #0a5c5f));
  text-decoration: underline;
}

.om-card__text-link:focus-visible {
  outline: 2px solid var(--om-accent, var(--color-focus, #0d7377));
  outline-offset: 2px;
}

.om-card--compact .om-card__title {
  font-size: 0.78rem;
}

.om-card--warning {
  border-color: var(--om-warning-border, var(--color-blend-warning-border, var(--color-warning)));
  background: var(--om-surface-sand, var(--color-blend-warning-bg-soft, var(--color-blend-surface-card)));
}

.om-card--interactive {
  cursor: pointer;
  transition: border-color 0.12s ease, background-color 0.12s ease;
}

.om-card--interactive:hover,
.om-card--interactive:focus-within {
  border-color: var(--om-border-accent, var(--color-blend-primary-border-soft));
  background: var(--om-surface-muted, var(--color-blend-surface-hover, var(--color-blend-surface-card)));
  box-shadow: var(--om-shadow-soft);
}

.om-card__value {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.3;
}

.om-card__value--sm {
  font-size: 0.95rem;
  font-weight: 550;
}

.om-card__value--muted {
  color: var(--color-text-muted);
}

.om-card__value--warn {
  color: var(--color-blend-warning-text-strong, var(--color-warning));
}

.om-card__hint {
  margin: 0.35rem 0 0;
  font-size: 0.8rem;
  color: var(--color-text-muted);
  line-height: 1.4;
}

.om-card__hint--warn {
  color: var(--color-blend-warning-text, var(--color-warning));
}

.om-card__meta-list {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(5.5rem, 7.5rem) minmax(0, 1fr);
  gap: 0.25rem 0.75rem;
  align-items: baseline;
}

.om-card__meta-list dt {
  margin: 0;
  font-size: 0.78rem;
  color: var(--color-text-muted);
}

.om-card__meta-list dd {
  margin: 0;
  font-size: 0.88rem;
  color: var(--color-text);
  min-width: 0;
}

/* Prozess-Timeline (abstrakte States) */
.om-process-timeline {
  margin: 0.5rem 0 0.85rem;
}

.om-process-timeline__current-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.12rem 0.45rem;
  border-radius: 6px;
  border: 1px solid var(--color-blend-primary-border-soft);
  background: var(--color-blend-primary-tint);
  color: var(--color-heading);
  font-size: 0.75rem;
  font-weight: 600;
}

.om-process-timeline__track {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  margin: 0;
  padding: 0.25rem 0;
  list-style: none;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.om-process-timeline__step {
  position: relative;
  flex: 1 1 0;
  min-width: 4.5rem;
  text-align: center;
  padding: 0 0.25rem;
}

.om-process-timeline__step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0.7rem;
  left: calc(50% + 0.7rem);
  right: calc(-50% + 0.7rem);
  height: 2px;
  background: var(--color-border);
  z-index: 0;
}

.om-process-timeline__step--completed:not(:last-child)::after {
  background: var(--color-success);
}

.om-process-timeline__step--current:not(:last-child)::after {
  background: linear-gradient(90deg, var(--color-primary), var(--color-border));
}

.om-process-timeline__step-btn,
.om-process-timeline__step-display {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: default;
}

.om-process-timeline__step-btn {
  cursor: pointer;
}

.om-process-timeline__step-btn:hover .om-process-timeline__label,
.om-process-timeline__step-btn:focus-visible .om-process-timeline__label {
  color: var(--color-primary);
  text-decoration: underline;
}

.om-process-timeline__dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 999px;
  border: 2px solid var(--color-border);
  background: var(--color-surface-alt);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  color: var(--color-text-muted);
}

.om-process-timeline__label {
  font-size: 0.72rem;
  line-height: 1.25;
  color: var(--color-text-muted);
  max-width: 7rem;
}

.om-process-timeline__optional {
  display: block;
  font-size: 0.65rem;
  font-weight: 500;
  color: var(--color-text-muted);
  opacity: 0.85;
}

.om-process-timeline__step--completed .om-process-timeline__dot {
  border-color: var(--color-blend-success-border-strong, var(--color-success));
  background: var(--color-blend-success-bg, #f1f4f1);
  color: var(--color-blend-success-text-strong, var(--color-success));
}

.om-process-timeline__step--completed .om-process-timeline__label {
  color: var(--color-blend-success-text-medium, var(--color-text));
}

.om-process-timeline__step--current .om-process-timeline__dot {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: #fff;
  box-shadow: 0 0 0 3px var(--color-blend-primary-tint);
}

.om-process-timeline__step--current .om-process-timeline__label {
  color: var(--color-heading);
  font-weight: 650;
}

.om-process-timeline__step--pending .om-process-timeline__dot {
  border-color: var(--color-border);
  background: var(--color-surface);
}

.om-process-timeline__step--overdue .om-process-timeline__dot {
  border-color: var(--color-blend-warning-border, var(--color-warning));
  background: var(--color-blend-warning-bg-soft, #f7efe1);
  color: var(--color-blend-warning-text-strong, var(--color-warning));
}

.om-process-timeline__step--overdue .om-process-timeline__label {
  color: var(--color-blend-warning-text, var(--color-warning));
  font-weight: 600;
}

.om-process-timeline__step--cancelled .om-process-timeline__dot {
  border-color: var(--color-blend-border-soft);
  background: var(--color-blend-surface-hover);
  color: var(--color-text-muted);
  opacity: 0.7;
}

.om-process-timeline__step--cancelled .om-process-timeline__label {
  text-decoration: line-through;
  opacity: 0.7;
}

.om-process-timeline__empty {
  list-style: none;
  flex: 1 1 100%;
}

/* Biomarker-Chips */
.om-biomarker-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}

.om-biomarker-chip {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  padding: 0.4rem 0.5rem;
  border-radius: 6px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

.om-biomarker-chip__label {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.om-biomarker-chip__value {
  font-size: 0.88rem;
  font-weight: 550;
  color: var(--color-text);
  line-height: 1.3;
  overflow-wrap: anywhere;
}

/* Grün: MSI stabil / TMB low / MMR proficient / HRD low */
.om-biomarker-chip--ok {
  border-color: var(--color-blend-success-border, #a9bdb1);
  background: var(--color-blend-success-bg-soft, #e4ebe8);
}

.om-biomarker-chip--ok .om-biomarker-chip__value {
  color: var(--color-blend-success-text-strong, #5b7662);
}

/* Rot: MSI instabil / TMB high / MMR deficient / HRD high */
.om-biomarker-chip--danger {
  border-color: var(--color-blend-danger-border-badge, #c39e9f);
  background: var(--color-blend-danger-bg-badge, #eadfe0);
}

.om-biomarker-chip--danger .om-biomarker-chip__value {
  color: var(--color-blend-danger-text-strong, #944547);
}

/* Grau: leer, n/a, nicht durchführbar */
.om-biomarker-chip--muted {
  border-color: var(--color-border);
  background: var(--om-surface-soft, #f3f5f4);
}

.om-biomarker-chip--muted .om-biomarker-chip__value {
  color: var(--color-text-muted);
}

/* Legacy-Aliase (ältere Tone-Werte) */
.om-biomarker-chip--info {
  border-color: var(--color-blend-primary-border-soft);
  background: var(--color-blend-primary-tint);
}

.om-biomarker-chip--warn {
  border-color: var(--color-blend-danger-border-badge, #c39e9f);
  background: var(--color-blend-danger-bg-badge, #eadfe0);
}

.om-biomarker-chip--warn .om-biomarker-chip__value {
  color: var(--color-blend-danger-text-strong, #944547);
}

/* Workspace: Aufgaben-Card */
.om-tasks-card > .om-card__header {
  flex-wrap: nowrap;
}

.om-tasks-card__count {
  display: inline-flex;
  min-width: 1.15rem;
  height: 1.15rem;
  align-items: center;
  justify-content: center;
  padding: 0 0.3rem;
  border-radius: 999px;
  border: 0;
  background: var(--om-danger, var(--color-danger));
  color: #fff;
  font-size: 0.68rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.om-tasks-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.om-tasks-list__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.25rem 0.55rem;
  align-items: start;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--color-blend-border-faint);
}

.om-tasks-list__item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.om-tasks-list__check {
  display: flex;
  align-items: flex-start;
  padding-top: 0.15rem;
}

.om-tasks-list__check-link {
  display: inline-flex;
  line-height: 0;
  text-decoration: none;
}

.om-tasks-list__check-label {
  display: inline-flex;
  margin: 0;
  cursor: pointer;
}

.om-tasks-checkbox {
  width: 1.05rem;
  height: 1.05rem;
  margin: 0;
  accent-color: var(--om-accent, var(--color-checkbox-accent));
  cursor: pointer;
}

.om-tasks-list__check-link .om-tasks-checkbox {
  cursor: pointer;
  pointer-events: none;
  opacity: 0.85;
}

.om-tasks-list__main {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}

.om-tasks-list__text {
  font-size: 0.88rem;
  font-weight: 400;
  line-height: 1.35;
}

.om-tasks-list__text-link {
  color: inherit;
  text-decoration: none;
}

.om-tasks-list__text-link:hover,
.om-tasks-list__text-link:focus-visible {
  color: var(--om-accent-strong, var(--color-primary));
  text-decoration: underline;
  outline: none;
}

.om-tasks-list__meta {
  font-size: 0.75rem;
  color: var(--color-text-muted);
}

.om-tasks-urgency {
  justify-self: end;
  align-self: start;
  font-size: 0.75rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--color-text-muted);
  background: transparent;
  white-space: nowrap;
}

.om-tasks-urgency--due_soon {
  color: var(--color-heading);
  background: transparent;
  border: 0;
}

.om-tasks-urgency--due_today {
  color: var(--color-blend-warning-text-strong);
  background: transparent;
  border: 0;
}

.om-tasks-urgency--overdue {
  color: var(--color-blend-danger-text-strong, var(--color-danger));
  background: transparent;
  border: 0;
}

.om-tasks-list__item--overdue {
  background: transparent;
  margin: 0;
  padding-left: 0;
  padding-right: 0;
  border-radius: 0;
}

.om-tasks-card--has-overdue {
  border-color: var(--color-border);
}

/* Kompakte Varianten-Tabelle in Cards */
.data-table--compact {
  min-width: 520px;
  font-size: 0.85rem;
}

.data-table--compact th,
.data-table--compact td {
  padding: 0.35rem 0.45rem;
  vertical-align: top;
}

.om-variants-table {
  width: 100%;
}
.om-gene {
  font-style: italic;
}

/* Klinische Zusammenfassung */
.om-clinical-summary-card__text {
  margin-top: 0.5rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--color-text);
  white-space: pre-wrap;
}

/* Dokumente-Card */
.om-documents-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.om-documents-card > .om-card__header {
  flex-wrap: nowrap;
}

.om-documents-list__item {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--color-blend-border-faint);
  min-width: 0;
}

.om-documents-list__item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.om-documents-list__icon {
  flex: 0 0 auto;
  line-height: 0;
}

.om-documents-list__main {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.om-documents-list__name {
  font-weight: 600;
  font-size: 0.9rem;
  word-break: break-word;
}

.om-documents-list__meta {
  font-size: 0.78rem;
  color: var(--color-text-muted);
}

/* Activity / Verlauf Timeline */
.om-activity-timeline {
  margin: 0;
  padding: 0;
  list-style: none;
}

.om-activity-timeline__item {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  column-gap: 0.75rem;
  row-gap: 0.1rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid var(--color-blend-border-faint);
  align-items: baseline;
}

.om-activity-timeline__item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.om-activity-timeline__date {
  font-size: 0.78rem;
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums;
}

.om-activity-timeline__event {
  font-size: 0.9rem;
  font-weight: 400;
  color: var(--color-text);
}

.om-activity-timeline__detail {
  grid-column: 2;
  font-size: 0.78rem;
  color: var(--color-text-muted);
}

.om-activity-timeline__more {
  margin-top: 0.65rem;
}

.om-activity-timeline__more-link {
  cursor: pointer;
  color: var(--color-table-link);
  font-size: 0.85rem;
  font-weight: 500;
  list-style: none;
}

.om-activity-timeline__more-link::-webkit-details-marker {
  display: none;
}

.om-activity-timeline__more-link::before {
  content: "› ";
  display: inline-block;
  transition: transform 0.15s ease;
}

.om-activity-timeline__more[open] > .om-activity-timeline__more-link::before {
  transform: rotate(90deg);
}

.om-activity-timeline--more {
  margin-top: 0.65rem;
}

/* Notizen-Card */
.om-notes-card__manual,
.om-notes-card__reference {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.om-notes-card__reference {
  margin-top: 0.35rem;
}

.om-notes-card__manual + .om-notes-card__reference,
.om-notes-card__manual + .om-notes-card__form,
.om-notes-card__reference + .om-notes-card__form {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--om-border-subtle, var(--color-border));
}

.om-notes-card__item {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.4;
}

.om-notes-card__item--manual {
  padding: 0.45rem 0.55rem;
  border-radius: var(--om-radius-sm, 8px);
  background: var(--om-surface-muted, var(--color-blend-surface-card));
}

.om-notes-card__meta {
  margin: 0 0 0.2rem;
  font-size: 0.75rem;
  color: var(--om-text-muted, var(--color-text-muted));
}

.om-notes-card__label {
  display: inline;
  margin-right: 0.25rem;
}

.om-notes-card__text {
  margin: 0;
}

.om-notes-card__edit {
  display: inline-block;
  margin-left: 0.35rem;
  font-size: 0.78rem;
}

.om-notes-card__form {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.om-notes-card__input {
  width: 100%;
  min-height: 4.5rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--om-border, var(--color-border));
  border-radius: var(--om-radius-sm, 8px);
  font: inherit;
  font-size: 0.88rem;
  line-height: 1.4;
  resize: vertical;
}

.om-notes-card__input:focus-visible {
  outline: 2px solid var(--om-accent, var(--color-focus));
  outline-offset: 1px;
}

.om-notes-card__submit {
  align-self: flex-start;
}

.om-notes-card__error {
  margin: 0;
  font-size: 0.82rem;
}

/* Follow-up-Card */
.om-followup-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.om-followup-list__item {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid var(--color-blend-border-faint);
}

.om-followup-list__item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.om-followup-list__label {
  font-weight: 600;
  font-size: 0.9rem;
}

.om-followup-list__meta,
.om-followup-list__detail {
  font-size: 0.78rem;
  color: var(--color-text-muted);
}

/* -------------------------------------------------------------------------- */
/* OncoMax Semantic Components (Clinical Clean / Scandinavian Medical)       */
/* Bestehende Klassen bleiben; neue .om-* Namen als kanonische API.          */
/* -------------------------------------------------------------------------- */

/* Layout */
.om-case-layout,
.case-workspace.om-case-layout {
  display: flex;
  flex-direction: column;
  gap: var(--om-space-3, 0.75rem);
  min-width: 0;
  background: transparent;
  color: var(--om-text, var(--color-text));
}

.om-case-layout__grid,
.case-workspace__layout {
  gap: var(--om-space-4, 1rem);
}

.case-workspace-page.om-case-layout,
.om-case-layout.case-workspace-page {
  background: var(--om-bg, var(--color-bg));
}

/* Header — ohne äußere Card-Box (Fallkennzeichen-Kachel bleibt) */
.om-case-header,
.case-workspace-header.om-case-header {
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding-left: 0;
  padding-right: 0;
}

.om-case-meta,
.case-workspace-header__facts.om-case-meta {
  gap: var(--om-space-2, 0.5rem) var(--om-space-4, 1rem);
}

.om-case-meta .om-field,
.om-case-meta .case-workspace-header__fact {
  min-width: 0;
}

/* Tabs — keine Boxen; Unterstrich-Stil aus theme.css (.case-tabs__bar) */
.om-tabs.case-tabs,
.case-workspace-page .om-tabs {
  background: transparent;
}

.om-tabs .case-tabs__bar,
.om-tabs.case-tabs .case-tabs__bar {
  gap: 0.15rem 0.85rem;
  padding: 0 0 0.35rem;
  border: none;
  border-bottom: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.om-tabs .case-tabs__tab,
.om-tabs.case-tabs .case-tabs__tab {
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--om-text, var(--color-text));
}

.om-tabs .case-tabs__tab[aria-selected="true"],
.om-tabs.case-tabs .case-tabs__tab[aria-selected="true"] {
  color: var(--color-table-link);
  background: transparent;
  border: none;
  box-shadow: none;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.35em;
}

.om-tabs .case-tabs__tab:hover,
.om-tabs.case-tabs .case-tabs__tab:hover {
  color: var(--color-table-link);
  background: transparent;
}

/* Field (Label / Value) */
.om-field {
  display: grid;
  grid-template-columns: minmax(5.5rem, 7.5rem) minmax(0, 1fr);
  gap: var(--om-space-1, 0.25rem) var(--om-space-3, 0.75rem);
  align-items: baseline;
  margin: 0;
}

.om-field__label,
.om-card__meta-list dt {
  margin: 0;
  font-size: var(--om-font-size-label, 0.78rem);
  color: var(--om-text-muted, var(--color-text-muted));
  font-weight: 500;
}

.om-field__value,
.om-card__meta-list dd {
  margin: 0;
  font-size: 0.88rem;
  color: var(--om-text, var(--color-text));
  min-width: 0;
  line-height: var(--om-line-height, 1.4);
}

.om-field--stack {
  grid-template-columns: minmax(0, 1fr);
  gap: 0.1rem;
}

.om-field--stack .om-field__label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* Status chips */
.om-status {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.12rem 0.45rem;
  border-radius: var(--om-radius-sm, 8px);
  border: 1px solid var(--om-border, var(--color-border));
  background: var(--om-surface-muted, var(--color-blend-surface-muted-90));
  color: var(--om-text-muted, var(--color-text-muted));
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  line-height: 1.2;
  white-space: nowrap;
}

.om-status--neutral {
  border-color: var(--om-border, var(--color-border));
  background: var(--om-surface-muted, var(--color-blend-surface-muted-90));
  color: var(--om-text-muted, var(--color-text-muted));
}

.om-status--success {
  border-color: var(--color-blend-success-border, var(--om-success));
  background: var(--om-surface-sage-soft, var(--color-blend-success-bg-soft));
  color: var(--om-success-text, var(--color-blend-success-text-strong));
}

.om-status--warning {
  border-color: var(--om-warning-border, var(--color-blend-warning-border));
  background: var(--om-surface-sand, var(--color-blend-warning-bg-soft));
  color: var(--om-warning-text, var(--color-blend-warning-text-strong));
}

.om-status--danger {
  border-color: var(--color-blend-danger-border-badge, var(--om-danger));
  background: var(--color-blend-danger-bg-badge, #eadfe0);
  color: var(--om-danger-text, var(--color-blend-danger-text-strong));
}

/* Process (alias + shared look with timeline) */
.om-process,
.om-process-timeline.om-process {
  border-radius: var(--om-radius-lg, 12px);
}

.om-process__step--completed .om-process-timeline__dot,
.om-process-timeline__step--completed .om-process-timeline__dot {
  background: var(--om-surface-sage-soft, var(--color-blend-success-bg-soft));
  border-color: var(--color-blend-success-border-strong, var(--om-success));
  color: var(--om-success-text, var(--color-blend-success-text-strong));
}

.om-process__step--current .om-process-timeline__dot,
.om-process-timeline__step--current .om-process-timeline__dot {
  background: var(--om-surface-petrol-soft, var(--color-blend-primary-tint));
  border-color: var(--om-accent, var(--color-checkbox-accent));
  color: var(--om-accent-strong, var(--color-primary));
}

.om-process__step--overdue .om-process-timeline__dot,
.om-process-timeline__step--overdue .om-process-timeline__dot {
  background: var(--om-danger-tint, var(--color-blend-danger-tint));
  border-color: var(--om-danger, var(--color-danger));
  color: var(--om-danger-text, var(--color-blend-danger-text-strong));
}

/* Document / Task / Timeline list aliases */
.om-document-list,
.om-documents-list.om-document-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.om-document-list__item,
.om-documents-list__item {
  border-bottom-color: var(--om-border-subtle, var(--color-blend-border-faint));
}

.om-task-list,
.om-tasks-list.om-task-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.om-task-list__item,
.om-tasks-list__item {
  border-bottom-color: var(--om-border-subtle, var(--color-blend-border-faint));
}

.om-task-list__item--overdue,
.om-tasks-list__item--overdue {
  background: transparent;
  border-radius: 0;
}

.om-timeline,
.om-activity-timeline.om-timeline {
  margin: 0;
  padding: 0;
  list-style: none;
}

.om-timeline__item,
.om-activity-timeline__item {
  border-bottom-color: var(--om-border-subtle, var(--color-blend-border-faint));
}

.om-timeline__date,
.om-activity-timeline__date {
  color: var(--om-text-muted, var(--color-text-muted));
}

.om-timeline__event,
.om-activity-timeline__event {
  color: var(--om-text, var(--color-text));
}

/* Urgency → Status-Token-Kopplung (ohne Badge-Box) */
.om-tasks-urgency--due_soon {
  border: 0;
  color: var(--om-heading, var(--color-heading));
  background: transparent;
}

.om-tasks-urgency--due_today {
  border: 0;
  color: var(--om-warning-text, var(--color-blend-warning-text-strong));
  background: transparent;
}

.om-tasks-urgency--overdue {
  border: 0;
  color: var(--om-danger-text, var(--color-blend-danger-text-strong));
  background: transparent;
}

.om-tasks-card--has-overdue {
  border-color: var(--om-border, var(--color-border));
}

/* -------------------------------------------------------------------------- */
/* Icons, Empty, Loading, Focus (A11y) — lokale SVG, kein CDN                */
/* -------------------------------------------------------------------------- */
.om-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.1em;
  height: 1.1em;
  margin-right: 0.35rem;
  color: var(--om-text-muted, var(--color-text-muted));
  vertical-align: -0.12em;
}

.om-icon svg {
  width: 1em;
  height: 1em;
  display: block;
}

.om-card__title .om-icon {
  color: var(--om-accent, var(--color-checkbox-accent));
}

.om-card__title .om-icon--pathology {
  width: 1.35em;
  height: 1.35em;
}

.om-card__title .om-icon--clock {
  width: 1.3em;
  height: 1.3em;
}

.om-status .om-icon {
  margin-right: 0.2rem;
  width: 0.95em;
  height: 0.95em;
}

.om-empty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  padding: 0.15rem 0;
  color: var(--om-text-muted, var(--color-text-muted));
}

.om-empty__title {
  margin: 0;
  font-size: var(--om-font-size-body, 0.9rem);
  color: var(--om-text-muted, var(--color-text-muted));
  font-weight: 500;
}

.om-empty__hint {
  margin: 0;
  font-size: var(--om-font-size-label, 0.78rem);
  line-height: var(--om-line-height, 1.4);
  color: var(--om-text-muted, var(--color-text-muted));
}

.om-loading.htmx-indicator {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  opacity: 0;
  pointer-events: none;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--om-text-muted, var(--color-text-muted));
  transition: opacity 0.12s ease;
}

.htmx-request .om-loading.htmx-indicator,
.om-card.htmx-request .om-loading.htmx-indicator,
.om-process.htmx-request .om-loading.htmx-indicator {
  opacity: 1;
}

.om-card.htmx-request,
.om-process.htmx-request {
  opacity: 0.78;
  transition: opacity 0.12s ease;
}

.om-loading__dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--om-accent, var(--color-checkbox-accent));
  animation: om-loading-pulse 0.9s ease-in-out infinite;
}

@keyframes om-loading-pulse {
  0%, 100% { opacity: 0.35; transform: scale(0.85); }
  50% { opacity: 1; transform: scale(1); }
}

.om-htmx-error,
.om-card__error {
  margin: 0.35rem 0 0;
  padding: 0.4rem 0.55rem;
  border-radius: var(--om-radius-sm, 8px);
  border: 1px solid var(--color-blend-danger-border-badge, var(--om-danger));
  background: var(--color-blend-danger-bg-badge, #eadfe0);
  color: var(--om-danger-text, var(--color-blend-danger-text-strong));
  font-size: 0.82rem;
}

/* Sichtbare Focus States (Tastatur) */
.om-tabs .case-tabs__tab:focus-visible,
.om-process-timeline__step-btn:focus-visible,
.om-card a.action-link:focus-visible,
.om-documents-list__name:focus-visible,
.om-tasks-list__edit:focus-visible,
.om-case-header a:focus-visible {
  outline: 2px solid var(--om-accent, var(--color-focus));
  outline-offset: 2px;
  border-radius: var(--om-radius-sm, 8px);
}

.om-process-timeline__step-btn:focus-visible .om-process-timeline__dot {
  box-shadow: 0 0 0 2px var(--om-surface-card, #fff), 0 0 0 4px var(--om-accent, var(--color-focus));
}

@media (max-width: 719px) {
  .om-card__meta-list,
  .om-field {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.1rem 0;
  }

  .om-activity-timeline__item,
  .om-timeline__item {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* -------------------------------------------------------------------------- */
/* Einschluss §64e — Clinical Clean Workflow-Layout                         */
/* -------------------------------------------------------------------------- */
.om-einschluss {
  --om-einschluss-gap: 0.5rem; /* 8px Card-Gap — dicht */
  --om-einschluss-pad: 0.7rem;
  --om-einschluss-control-h: 2.625rem; /* ~42px */
  display: flex;
  flex-direction: column;
  gap: var(--om-einschluss-gap);
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
  color: var(--om-text, #1f2d2e);
}

.om-einschluss__form {
  margin: 0;
  min-width: 0;
  max-width: 100%;
}

.om-einschluss__alert {
  margin: 0 0 0.75rem;
}

.om-einschluss__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas:
    "primary side"
    "mtb1 mtb1";
  gap: var(--om-einschluss-gap);
  align-items: stretch;
  min-width: 0;
}

.om-einschluss__primary {
  grid-area: primary;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.om-einschluss__primary .om-section-card {
  width: 100%;
  max-width: none;
  flex: 1 1 auto;
}

.om-einschluss__side {
  grid-area: side;
  display: flex;
  flex-direction: column;
  gap: var(--om-einschluss-gap);
  min-width: 0;
}

.om-einschluss-card--mtb1 {
  grid-area: mtb1;
}

/* -------------------------------------------------------------------------- */
/* Section Card System (Einschluss §64e)                                      */
/* -------------------------------------------------------------------------- */
.om-section-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--om-surface, #ffffff);
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 8px;
  box-shadow: none;
}

.om-section-card__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.25rem 0.5rem;
  padding: 0.55rem var(--om-einschluss-pad, 0.7rem) 0.15rem;
}

.om-section-card__intro {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.om-section-card__title {
  margin: 0;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--om-text, #1f2d2e);
  letter-spacing: 0.01em;
  line-height: 1.25;
}

.om-section-card__subtitle {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.3;
  color: var(--om-text-muted, #687876);
}

.om-section-card__actions {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

.om-section-card__body {
  padding: 0.25rem var(--om-einschluss-pad, 0.7rem) 0.55rem;
  min-width: 0;
  flex: 1 1 auto;
}

.om-section-card--status {
  border-left: 3px solid var(--om-border, #dde4e0);
}

.om-subcard {
  min-width: 0;
  padding: 0.5rem 0.6rem 0.55rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 8px;
  background: var(--om-surface, #ffffff);
}

.om-subcard__title {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--om-text, #1f2d2e);
}

.om-form-grid {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-width: 0;
}

.om-form-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.4rem 0.5rem;
  align-items: start;
  width: 100%;
  max-width: none;
}

.om-status-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--om-text-muted, #687876);
  background: var(--om-surface-soft, #f8f9f7);
  border: 1px solid var(--om-border, #dde4e0);
}

.om-status-chip--ok {
  color: #39624f;
  background: #e5efe9;
  border-color: #c9ddd2;
}

.om-status-chip--warn {
  color: #7a5a1e;
  background: #f7f0e4;
  border-color: #e6d5b3;
}

.om-status-chip--danger {
  color: var(--om-danger-text, var(--color-blend-danger-text-strong));
  background: var(--om-danger-tint, var(--color-blend-danger-tint));
  border-color: var(--color-blend-danger-border-badge, #c39e9f);
}

.om-status-chip--muted {
  color: var(--om-text-muted, #687876);
  background: var(--om-surface-soft, #f8f9f7);
  border-color: var(--om-border, #dde4e0);
}

/* Alias: ältere Badge-Klassen → Status-Chip */
.om-einschluss__status-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--om-text-muted, #687876);
  background: var(--om-surface-soft, #f8f9f7);
  border: 1px solid var(--om-border, #dde4e0);
}

.om-einschluss__status-badge--ok {
  color: #39624f;
  background: #e5efe9;
  border-color: #c9ddd2;
}

.om-einschluss__status-badge--warn {
  color: #7a5a1e;
  background: #f7f0e4;
  border-color: #e6d5b3;
}

.om-einschluss__status--complete {
  border-left-color: var(--om-primary, #557c70);
}

.om-einschluss__status--incomplete {
  border-left-color: var(--om-warning, #c49a55);
}

.om-einschluss__status-lead {
  margin: 0 0 0.35rem;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--om-text, #1f2d2e);
}

.om-einschluss__status-missing {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.4;
  color: var(--om-text-muted, #687876);
}

.om-einschluss__status-missing-label {
  font-weight: 600;
  color: var(--om-text, #1f2d2e);
}

/* MTB-Datumshinweise: flach wie „Fehlend:“, keine Extra-Box */
.om-einschluss__status .case-mtb-panel-hinweis {
  margin: 0;
  border: none;
}

.om-einschluss__status-hinweis {
  margin: 0.35rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--om-text-muted, #687876);
}

/* Formfelder: kompakt, Labels oben — volle Kachelbreite nutzen */
.om-einschluss .case-form-field {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.25rem;
  max-width: 100%;
}

.om-einschluss .case-form-field--full,
.om-einschluss .case-form-field--half,
.om-einschluss .case-form-grid--diagnose-compact > .case-form-field--full {
  max-width: 100%;
}

.om-einschluss .case-form-field--half {
  max-width: none;
}

.om-einschluss .case-form-field > label,
.om-einschluss .case-form-field .case-form-field__label,
.om-einschluss .case-form-grid--diagnose-compact label,
.om-einschluss .case-form-grid--diagnose-compact .case-form-field__label,
.om-einschluss__mtb1-gewebe label,
.om-einschluss__datum-keimbahn label {
  display: block;
  margin: 0;
  font-size: 0.75rem;
  font-weight: 550;
  line-height: 1.25;
  color: var(--om-text-muted, #687876);
}

.om-einschluss input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
.om-einschluss select,
.om-einschluss textarea,
.om-einschluss .input,
.om-einschluss .input-readonly {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: var(--om-einschluss-control-h, 2.625rem);
  height: var(--om-einschluss-control-h, 2.625rem);
  padding: 0.4rem 0.65rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 8px;
  background: var(--om-surface, #ffffff);
  color: var(--om-text, #1f2d2e);
  font-size: 0.875rem;
  line-height: 1.3;
}

.om-einschluss textarea {
  height: auto;
  min-height: 4.5rem;
  resize: vertical;
}

.om-einschluss input:focus-visible,
.om-einschluss select:focus-visible,
.om-einschluss textarea:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--om-primary, #557c70) 35%, transparent);
  outline-offset: 1px;
  border-color: var(--om-primary, #557c70);
}

.om-einschluss .case-form-grid--diagnose-compact {
  gap: 0.55rem 0.75rem;
  margin-top: 0;
}

.om-einschluss .case-form-grid {
  margin-top: 0;
  gap: 0.55rem 0.75rem;
}

.om-einschluss .case-detail-autosave-hint {
  margin: 0.55rem 0 0.25rem;
  font-size: 0.72rem;
}

.om-einschluss .case-detail-form__actions--mtb {
  margin: 0.35rem 0 0;
  gap: 0.5rem;
}

.om-einschluss .om-einschluss-card__coding-row {
  margin: 0 0 0.55rem;
}

/* Fieldsets in Cards: keine Doppelrahmen / Beige-Flächen */
.om-einschluss-card > .case-form-section,
.om-einschluss-card > .case-form-section.case-form-section--diagnose,
.om-einschluss-card > .case-form-section.case-form-section--einwilligungen-block,
.om-einschluss-card__body > .case-form-section,
.om-einschluss-card__body > .case-form-section.case-form-section--diagnose,
.om-einschluss-card__body > .case-form-section.case-form-section--einwilligungen-block,
.om-section-card__body > .case-form-section,
.om-section-card__body > .case-form-section.case-form-section--diagnose,
.om-section-card__body > .case-form-section.case-form-section--einwilligungen-block {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.om-einschluss-card__header {
  padding-bottom: 0.15rem;
}

.om-einschluss-card__intro {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.om-einschluss-card__subtitle {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.3;
  color: var(--om-text-muted, #687876);
}

.om-einschluss-card__body {
  padding-top: 0.35rem;
}

.om-einschluss-card__muted-hint {
  font-size: 0.72rem;
  color: var(--om-text-muted, #687876);
}

.om-einschluss-card__coding-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
  margin: 0 0 0.65rem;
}

.om-einschluss-card__coding-row .btn--soft {
  font-size: 0.78rem;
  padding: 0.28rem 0.7rem;
  font-weight: 500;
}

.om-einschluss .case-form-grid--diagnose-compact,
.om-einschluss .case-form-section--diagnose .case-form-grid--diagnose-compact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.55rem 0.75rem;
  align-items: start;
  margin-top: 0;
}

.om-einschluss .case-form-grid--diagnose-compact > .case-form-field--full,
.om-einschluss .case-form-grid--diagnose-compact > .coding-suggest {
  grid-column: 1 / -1;
}

.om-einschluss .case-form-grid--diagnose-compact > .case-form-field--half {
  grid-column: auto;
  max-width: 100%;
}

.om-einschluss .case-form-field--compact,
.om-einschluss .case-form-grid--diagnose-compact .case-form-field {
  max-width: 100%;
}

.om-einschluss .case-form-grid--diagnose-compact label,
.om-einschluss .case-form-grid--diagnose-compact .case-form-field__label {
  font-size: 0.75rem;
  font-weight: 550;
  color: var(--om-text-muted, #687876);
  margin-bottom: 0.2rem;
}

.om-einschluss .case-form-grid--diagnose-compact input,
.om-einschluss .case-form-grid--diagnose-compact select,
.om-einschluss .case-form-grid--diagnose-compact textarea {
  font-size: 0.86rem;
  padding: 0.35rem 0.5rem;
}

.om-einschluss-card > .case-form-section > .case-form-section__title {
  float: none;
  width: 100%;
  margin: 0 0 0.55rem;
  padding: 0;
  font-size: var(--om-font-size-title, 0.82rem);
  font-weight: 600;
  color: var(--om-heading, var(--color-heading));
  letter-spacing: 0.01em;
}

.om-einschluss-card .case-form-section__hint--organboard {
  margin: 0 0 0.65rem;
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--om-text-muted, #687876);
}

.om-einschluss-card .case-form-field__hint,
.om-einschluss-card .hint {
  font-size: 0.75rem;
  line-height: 1.35;
}

.om-einschluss-card .case-detail-form__actions--coding-map {
  margin: 0 0 0.65rem;
  gap: 0.5rem;
}

/* Einwilligungen: Tile-Checkboxen, 2 Spalten, kein Beige */
.om-einschluss-card--einwilligungen .case-form-section--einwilligungen-block,
.om-einschluss-card--einwilligungen .case-form-section--einwilligungen-compact {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
}

.om-einschluss .mv-einwilligungen--compact {
  gap: 0.35rem;
}

.om-einschluss .mv-einwilligungen-grid--tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.3rem;
}

.om-einschluss-card--einwilligungen .om-section-card__actions .btn--soft {
  font-size: 0.72rem;
  padding: 0.2rem 0.55rem;
  font-weight: 500;
}

.om-einschluss .mv-einwilligung-option--tile {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  margin: 0;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}

.om-einschluss .mv-einwilligung-option--tile:hover {
  border-color: var(--om-primary, #557c70);
  background: #f7f9f7;
}

.om-einschluss .mv-einwilligung-option--tile:has(input:checked) {
  border-color: var(--om-primary, #557c70);
  background: #eef4f1;
}

.om-einschluss .mv-einwilligung-option--tile input[type="checkbox"] {
  width: 1.05rem;
  height: 1.05rem;
  margin-top: 0.1rem;
}

.om-einschluss .mv-einwilligung-option--tile .mv-einwilligung-option__label {
  font-size: 0.8rem;
  line-height: 1.25;
  font-weight: 500;
  color: var(--om-text, #1f2d2e);
}

/* Organboard: Badge folgt der Checkbox live (:has) */
.om-einschluss-card--organboard:has(.om-einschluss-organboard-check input[type="checkbox"]:checked) .om-einschluss-organboard-badge--offen {
  display: none !important;
}

.om-einschluss-card--organboard:has(.om-einschluss-organboard-check input[type="checkbox"]:checked) .om-einschluss-organboard-badge--erledigt {
  display: inline-flex !important;
}

.om-einschluss-card--organboard:has(.om-einschluss-organboard-check input[type="checkbox"]:not(:checked)) .om-einschluss-organboard-badge--erledigt {
  display: none !important;
}

.om-einschluss-card--organboard:has(.om-einschluss-organboard-check input[type="checkbox"]:not(:checked)) .om-einschluss-organboard-badge--offen {
  display: inline-flex !important;
}

.om-einschluss-organboard-check,
.om-einschluss-check-tile {
  padding: 0;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.om-einschluss-organboard-check .case-form-field__check--lg,
.om-einschluss-check-tile .case-form-field__check--lg {
  gap: 0.55rem;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0.55rem 0.65rem;
}

.om-einschluss__mtb1-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--om-einschluss-gap, 0.5rem);
  align-items: stretch;
  min-width: 0;
}

.om-einschluss-subcard,
.om-einschluss .om-subcard {
  min-width: 0;
  padding: 0.5rem 0.6rem 0.55rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 8px;
  background: var(--om-surface, #ffffff);
}

.om-einschluss-subcard__title,
.om-einschluss__subhead,
.om-subcard__title {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--om-text, #1f2d2e);
  letter-spacing: 0.01em;
}

.om-einschluss__gewebe-grid {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-top: 0;
}

.om-einschluss__gewebe-grid > .case-form-field,
.om-einschluss__gewebe-grid > .case-form-row {
  margin: 0;
}

.om-einschluss__datum-keimbahn,
.om-einschluss .case-form-row--mtb1-keimbahn {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.4rem 0.5rem;
  align-items: start;
  width: 100%;
}

.om-einschluss__mtb1-gewebe .case-form-field--patho-partner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.35rem 0.5rem;
  align-items: end;
}

.om-einschluss__mtb1-gewebe .case-form-field--patho-partner label {
  grid-column: 1 / -1;
  font-size: 0.75rem;
  font-weight: 550;
  color: var(--om-text-muted, #687876);
  margin-bottom: 0;
}

.om-einschluss__mtb1-gewebe .case-form-field--patho-partner select {
  width: 100%;
  font-size: 0.86rem;
  padding: 0.35rem 0.5rem;
}

.om-einschluss__mtb1-gewebe .kooperationspartner-inline-actions {
  display: inline-flex;
  gap: 0.25rem;
  margin: 0;
}

.om-einschluss__mtb1-gewebe .kooperationspartner-inline-actions__icon-btn {
  padding: 0.28rem 0.4rem;
  min-width: 2rem;
}

.om-einschluss__mtb1-gewebe .case-form-field__hint {
  grid-column: 1 / -1;
  font-size: 0.72rem;
}

.om-einschluss__mtb1-gewebe label,
.om-einschluss__datum-keimbahn label {
  font-size: 0.75rem;
  font-weight: 550;
  color: var(--om-text-muted, #687876);
}

.om-einschluss__mtb1-marker .case-mtb-praediktive-marker {
  margin: 0;
}

.om-einschluss__mtb1-marker .case-mtb-praediktive-marker__title {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--om-text, #1f2d2e);
}

.om-einschluss-card--mtb1 .case-detail-autosave-hint,
.om-einschluss-card--mtb1 .case-detail-form__actions--mtb {
  margin-top: 0.5rem;
}

.om-einschluss-card--mtb1 > .om-section-card__body > .case-form-section,
.om-einschluss-card--mtb1 > .om-card__body > .case-form-section {
  padding: 0;
}

@media (max-width: 1000px) {
  .om-einschluss__layout {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "primary"
      "side"
      "mtb1";
  }

  .om-einschluss__mtb1-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .om-einschluss .case-form-grid--diagnose-compact {
    grid-template-columns: minmax(0, 1fr);
  }

  .om-einschluss .case-form-grid--diagnose-compact > .case-form-field--half {
    grid-column: 1 / -1;
  }

  .om-einschluss .mv-einwilligungen-grid--tiles {
    grid-template-columns: minmax(0, 1fr);
  }

  .om-einschluss__datum-keimbahn,
  .om-einschluss .case-form-row--mtb1-keimbahn,
  .om-einschluss .om-form-row {
    grid-template-columns: minmax(0, 1fr);
    max-width: 100%;
  }
}

/* -------------------------------------------------------------------------- */
/* Prädiktive Marker — tabellenähnlich (.om-marker-table)                      */
/* -------------------------------------------------------------------------- */
.om-marker-table {
  min-width: 0;
  max-width: 100%;
}

.om-einschluss__mtb1-marker {
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

.om-einschluss__mtb1-marker .om-marker-table {
  min-width: 18rem;
}

.om-subcard .om-marker-table.case-mtb-praediktive-marker,
.om-einschluss .om-marker-table.case-mtb-praediktive-marker {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: 0;
}

.om-marker-table__title {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--om-text, #1f2d2e);
}

.om-marker-table__profile {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  color: var(--om-text-muted, #687876);
}

.om-marker-table__profile strong {
  color: var(--om-text, #1f2d2e);
  font-weight: 600;
}

.om-marker-table__hint,
.om-marker-table__meta {
  margin: 0 0 0.45rem;
  font-size: 0.75rem;
  color: var(--om-text-muted, #687876);
}

.om-marker-table__quick {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1rem;
  margin: 0 0 0.55rem;
  padding: 0 0 0.45rem;
  border-bottom: 1px solid var(--om-border, #dde4e0);
}

.om-marker-table__quick-item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--om-text, #1f2d2e);
  cursor: pointer;
}

.om-marker-table__head {
  display: grid;
  grid-template-columns: minmax(5.5rem, 1.35fr) 6.25rem 4.5rem;
  gap: 0.25rem 0.35rem;
  align-items: end;
  padding: 0.2rem 0 0.3rem;
  border-bottom: 1px solid var(--om-border, #dde4e0);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--om-text-muted, #687876);
  text-transform: none;
}

.om-marker-table__head .om-marker-table__col--ausg,
.om-marker-table__head .om-marker-table__col--pruef,
.om-marker-table__head .om-marker-table__col--status {
  text-align: center;
}

.om-marker-table__group {
  margin: 0;
  padding: 0;
  border: 0;
}

.om-marker-table__group-label {
  margin: 0.45rem 0 0.1rem;
  padding: 0.15rem 0;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--om-text-muted, #687876);
}

.om-marker-table__row {
  display: grid;
  grid-template-columns: minmax(5.5rem, 1.35fr) 6.25rem 4.5rem;
  gap: 0.2rem 0.35rem;
  align-items: center;
  margin: 0;
  padding: 0.28rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--om-border, #dde4e0) 70%, transparent);
  background: transparent;
}

.om-marker-table__row:last-child {
  border-bottom-color: var(--om-border, #dde4e0);
}

.om-marker-table__name {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--om-text, #1f2d2e);
  line-height: 1.25;
  min-width: 0;
}

/* Radios: 2-Spalten-Grid (Django 5: div.case-pm-marker-options, nicht ul/li) */
.om-marker-table__radios {
  grid-column: 2 / 4;
  min-width: 0;
}

.om-marker-table__radios .case-pm-marker-options {
  display: grid;
  grid-template-columns: 6.25rem 4.5rem;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0;
  width: 100%;
}

.om-marker-table__radios .case-pm-marker-options > div {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  min-height: 1.75rem;
}

.om-marker-table__radios .case-pm-marker-options label {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0.35rem 0.5rem;
  min-width: 2rem;
  min-height: 1.75rem;
  cursor: pointer;
  border-radius: 6px;
  font-size: 0;
  line-height: 0;
  color: transparent;
}

.om-marker-table__radios .case-pm-marker-options label:hover {
  background: var(--om-surface-soft, #f8f9f7);
}

.om-marker-table__radios .case-pm-marker-options input[type="radio"] {
  width: 1rem;
  height: 1rem;
  margin: 0;
  flex-shrink: 0;
  pointer-events: auto;
  cursor: pointer;
  accent-color: var(--om-primary, #557c70);
  font-size: 1rem;
  line-height: normal;
  opacity: 1;
  position: relative;
  z-index: 1;
}

.om-marker-table__errors {
  grid-column: 1 / -1;
  margin: 0.1rem 0 0;
}

.om-marker-table__row--readonly {
  grid-template-columns: minmax(5.5rem, 1.35fr) minmax(5rem, 0.65fr);
}

.om-marker-table__status {
  font-size: 0.75rem;
  color: var(--om-text-muted, #687876);
  text-align: center;
}

.om-einschluss .om-marker-table .case-pm-marker-item {
  grid-template-columns: minmax(5.5rem, 1.35fr) 6.25rem 4.5rem;
  gap: 0.2rem 0.35rem;
  padding: 0.28rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--om-border, #dde4e0) 70%, transparent);
}

.om-einschluss .om-marker-table .case-pm-marker-gruppe {
  margin: 0;
}

.om-einschluss .om-marker-table .case-pm-marker-gruppe__title {
  margin: 0.45rem 0 0.1rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--om-text-muted, #687876);
}

.om-einschluss .om-marker-table .case-pm-schnellauswahl {
  margin: 0 0 0.55rem;
  padding: 0 0 0.45rem;
  gap: 0.45rem 1rem;
  border-bottom: 1px solid var(--om-border, #dde4e0);
}

.om-einschluss .om-marker-table .case-pm-schnellauswahl__item {
  font-size: 0.78rem;
  font-weight: 500;
}

@media (max-width: 720px) {
  .om-marker-table__head,
  .om-marker-table__row,
  .om-einschluss .om-marker-table .case-pm-marker-item {
    grid-template-columns: minmax(0, 1fr) 4.5rem 3.75rem;
  }

  .om-marker-table__radios .case-pm-marker-options {
    grid-template-columns: 4.5rem 3.75rem;
  }

  .om-marker-table__head .om-marker-table__col--ausg,
  .om-marker-table__head .om-marker-table__col--pruef {
    font-size: 0.62rem;
  }
}


/* Molecular report import upload */
.mr-import-upload,
.mr-docx-upload {
  margin-top: 0.75rem;
}
.mr-import-upload-neu {
  margin-top: 1rem;
}

/* Pathologie-Import: Kopf/Biomarker-Draft-Review */
.mr-patho-review {
  margin: 0;
  padding: 1rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 0.75rem;
  background: var(--om-surface-card, #fff);
}
.mr-patho-review__title,
.mr-import-review__subtitle {
  margin: 0 0 0.75rem;
  font-size: 1rem;
}
.mr-patho-review__warn {
  margin: 0 0 0.75rem;
  padding: 0.5rem 0.75rem;
  background: #fff8e6;
  border-left: 3px solid #c9a227;
  border-radius: 0.35rem;
}
.mr-patho-review__warnings {
  margin: 0 0 0.75rem;
  padding-left: 1.25rem;
  color: var(--text-muted, #555);
  font-size: 0.9rem;
}
.mr-patho-review__grid {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 0.75rem;
}
.mr-patho-review__block h6 {
  margin: 0 0 0.35rem;
  font-size: 0.85rem;
}
.mr-patho-review__fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 0.85rem;
}
.mr-patho-review__field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.mr-patho-review__field--wide {
  grid-column: 1 / -1;
}
.mr-patho-review__label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--om-text-muted, #687876);
}
.mr-patho-review__value {
  display: block;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 0.45rem;
  background: var(--om-surface-soft, #f8f9f7);
  font-size: 0.9rem;
  min-height: 2.1rem;
}
.mr-patho-review__dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.2rem 0.75rem;
  margin: 0;
  font-size: 0.9rem;
}
.mr-patho-review__dl dt {
  color: var(--text-muted, #666);
  font-weight: 500;
}
.mr-patho-review__dl dd {
  margin: 0;
}
.mr-patho-review__biomarkers {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.9rem;
}
.mr-patho-review__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.25rem;
}

/* Assay-Biomarker Cards (Pathologie Phase 6) */
.patho-biomarker-grid__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}
.patho-biomarker-card {
  margin: 0;
  padding: 0.5rem 0.55rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 0.45rem;
  background: var(--om-surface-soft, #f8f9f7);
}
.patho-biomarker-card--missing {
  opacity: 0.92;
  border-style: dashed;
  background: var(--om-surface-card, #fff);
}
.patho-biomarker-card__title {
  margin: 0 0 0.35rem;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.patho-biomarker-card__value {
  margin: 0 0 0.25rem;
  font-size: 0.95rem;
  font-weight: 600;
}
.patho-biomarker-card__comment {
  margin: 0 0 0.35rem;
}
.patho-biomarker-card__cutoff {
  margin: 0.55rem 0 0;
  font-size: 0.75rem;
  line-height: 1.35;
}
.patho-biomarker-card__form .patho-biomarker-card__cutoff {
  margin: 0 0 0.45rem;
}
.patho-biomarker-card__cutoff-label {
  font-weight: 600;
}
.patho-biomarker-card__badge {
  display: inline-flex;
  align-items: center;
  margin-top: 0.4rem;
  padding: 0.28rem 0.7rem;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.2;
  border-width: 1.5px;
}
.patho-biomarker-card__badge--muted {
  opacity: 0.75;
  font-weight: 600;
}
.patho-biomarker-card__badge--draft {
  background: #f3efe4;
  border-color: #d4c4a0;
  color: #6b5a32;
}
.patho-biomarker-card__badge--ok {
  color: #2f5a45;
  background: #dceee4;
  border-color: #8fbfa5;
}
.patho-biomarker-card__badge--warn {
  color: #7a3b12;
  background: #f8e6d4;
  border-color: #e0a875;
}
.patho-biomarker-card__badge--strong {
  color: #2c3a36;
  background: #e8eeec;
  border-color: #a8b8b2;
}
.patho-biomarker-card--draft {
  border-style: solid;
  border-color: #d4c4a0;
}
.patho-biomarker-card__actions {
  margin: 0.5rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.patho-biomarker-card__fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
}
.patho-biomarker-card__field--full,
.patho-biomarker-card__fields label.patho-biomarker-card__field--full {
  grid-column: 1 / -1;
}
.patho-biomarker-card__fields label {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.85rem;
}
.patho-biomarker-card__errors {
  margin: 0 0 0.5rem;
  padding-left: 1.1rem;
  color: var(--color-danger, #a33);
  font-size: 0.85rem;
}

/* Pathologie Prozess A–G — Mockup-Orientierung, dichte Kachelfolge */
.patho-prozess {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.patho-prozess__header {
  margin: 0 0 0.15rem;
}
.patho-prozess__title {
  margin: 0 0 0.1rem;
  font-size: 1.35rem;
  font-weight: 700;
}
.patho-prozess__subtitle {
  margin: 0;
  color: var(--text-muted, #666);
  font-size: 0.9rem;
}
.patho-status-kontext {
  margin: 0;
  padding: 0.55rem 0.75rem;
}
.patho-status-kontext__bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.45rem 1rem;
  align-items: flex-end;
  margin-top: 0.35rem;
  width: 100%;
}
.patho-status-kontext__facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: 0.65rem 1.25rem;
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}
.patho-status-kontext__fact {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
}
.patho-status-kontext__fact dt {
  color: var(--text-muted, #666);
  font-size: 0.75rem;
  font-weight: 600;
  margin: 0;
  flex: 0 0 auto;
}
.patho-status-kontext__fact dd {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}
.patho-status-kontext__mono {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.patho-status-kontext__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
  flex: 0 0 auto;
  align-self: flex-end;
}
.patho-chip--analyse {
  color: #1e4d7b;
  background: #e8f1fb;
  border-color: #c5daf0;
}
.patho-chip--pending {
  color: #1e4d7b;
  background: #eef5fc;
  border-color: #c9dcf0;
}
.patho-material-card {
  margin: 0;
  padding: 0.55rem 0.75rem;
}
.patho-material-card__row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  align-items: flex-start;
}
.patho-material-card__summary {
  margin: 0;
  flex: 1 1 16rem;
}
.patho-material-card__tumorzell {
  margin: 0.35rem 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  font-size: 0.92rem;
}
.patho-material-card__tumorzell-label {
  color: var(--om-text-muted, #687876);
  font-weight: 500;
}
.patho-material-card__tumorzell-value {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.patho-material-card__ok {
  margin: 0;
  font-weight: 500;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.patho-material-card__check {
  color: #39624f;
  font-weight: 700;
}
.patho-material-card__sep {
  color: var(--om-text-muted, #687876);
}
.patho-material-card__ausnahme {
  margin: 0;
  flex: 0 1 16rem;
  padding: 0;
  border: 0;
}
.patho-material-card__ausnahme > summary {
  cursor: pointer;
  font-weight: 500;
  font-size: 0.9rem;
  color: var(--om-text, #243532);
  list-style: none;
}
.patho-material-card__ausnahme > summary::-webkit-details-marker {
  display: none;
}
.patho-material-card__ausnahme > summary::after {
  content: " ▾";
  color: var(--om-text-muted, #687876);
}
.patho-material-card__ausnahme-body {
  margin-top: 0.5rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 0.55rem;
  background: var(--om-surface-soft, #f8f9f7);
}
.patho-analysis-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16.5rem, 1fr));
  gap: 0.65rem;
  align-items: stretch;
}

.patho-analysis-card {
  margin: 0;
  padding: 0;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 10px;
  background: var(--om-surface-card, #fff);
  box-shadow: 0 1px 2px rgba(36, 53, 50, 0.04);
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
}

.patho-analysis-card--selected {
  border-color: color-mix(in srgb, var(--om-primary, #557c70) 55%, var(--om-border, #dde4e0));
  box-shadow:
    inset 3px 0 0 var(--om-primary, #557c70),
    0 1px 3px rgba(36, 53, 50, 0.06);
  background: color-mix(in srgb, var(--om-primary, #557c70) 4%, #fff);
}

.patho-analysis-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.4rem 0.75rem;
  margin: 0;
  padding: 0.7rem 0.85rem 0.35rem;
}

.patho-analysis-card__identity {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  min-width: 0;
}

.patho-analysis-card__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--om-heading, var(--color-heading, #243532));
  line-height: 1.25;
}

.patho-analysis-card__id {
  display: inline-flex;
  align-items: center;
  padding: 0.08rem 0.4rem;
  border-radius: 999px;
  border: 1px solid var(--om-border, #dde4e0);
  background: var(--om-surface-soft, #f8f9f7);
  color: var(--om-text-muted, #687876);
  font-size: 0.72rem;
  font-weight: 550;
  font-variant-numeric: tabular-nums;
  line-height: 1.3;
}

.patho-analysis-card__status {
  margin: 0;
  flex: 0 0 auto;
}

.patho-analysis-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  margin: 0;
  padding: 0 0.85rem 0.65rem;
  font-size: 0.78rem;
  color: var(--om-text, #243532);
  line-height: 1.35;
}

.patho-analysis-card__meta-item {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem;
}

.patho-analysis-card__meta-label {
  color: var(--om-text-muted, #687876);
  font-weight: 500;
}

.patho-analysis-card__meta-label::after {
  content: ":";
}

.patho-analysis-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0;
  padding: 0.55rem 0.75rem;
  border-top: 1px solid var(--om-border, #dde4e0);
  background: var(--om-surface-soft, #f8f9f7);
  justify-content: flex-start;
  align-items: center;
}

.patho-analysis-card--selected .patho-analysis-card__actions {
  background: color-mix(in srgb, var(--om-primary, #557c70) 6%, #f8f9f7);
  border-top-color: color-mix(in srgb, var(--om-primary, #557c70) 22%, var(--om-border, #dde4e0));
}

.patho-analysis-card__actions .btn {
  padding: 0.28rem 0.55rem;
  font-size: 0.78rem;
}

.patho-analysis-card__btn-active {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, #fff 35%, transparent);
}

@media (max-width: 520px) {
  .patho-analysis-card__head {
    flex-direction: column;
    align-items: flex-start;
  }
}
.btn--outline-accent {
  color: var(--om-accent-strong, #c45c26);
  border-color: var(--om-accent, #c45c26);
  background: transparent;
}
.btn--outline-accent:hover:not(:disabled) {
  background: color-mix(in srgb, var(--om-accent, #c45c26) 12%, #fff);
}
.patho-befund-bereich {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.patho-befund-bereich__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  margin: 0 0 0.4rem;
}
.patho-befund-bereich__analyse {
  margin: 0;
  font-size: 0.85rem;
  color: var(--om-text-muted, #687876);
}
.patho-befund-workspace {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 0.4rem;
  align-items: start;
}
@media (max-width: 520px) {
  .patho-befund-workspace {
    grid-template-columns: 1fr;
  }
}
.patho-befund-main {
  margin: 0;
  padding: 0.65rem 0.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.patho-befund-main__summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  cursor: pointer;
  list-style: none;
  margin: 0;
  padding: 0;
}
.patho-befund-main__summary::-webkit-details-marker {
  display: none;
}
.patho-befund-main__summary::after {
  content: "▾";
  flex: 0 0 auto;
  color: var(--om-text-muted, #687876);
  font-size: 0.85rem;
  line-height: 1.4;
  transition: transform 0.15s ease;
}
.patho-befund-main:not([open]) > .patho-befund-main__summary::after {
  transform: rotate(-90deg);
}
.patho-befund-main__summary-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.patho-befund-main__summary-meta {
  font-size: 0.82rem;
  font-weight: 400;
  overflow-wrap: anywhere;
}
.patho-befund-main__body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 0.15rem;
}
.patho-befund-main__block {
  margin: 0;
  padding: 0;
  border: 0;
}
.patho-befund-main__block--review {
  padding-top: 0.65rem;
  border-top: 1px solid var(--om-border, #dde4e0);
}
.patho-befund-main__title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 650;
}
.patho-befund-main__empty {
  margin: 0;
}
.patho-befund-workspace__side {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}
.patho-side-card {
  margin: 0;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: var(--om-radius, 10px);
  background: var(--om-surface-card, #fff);
}
.patho-side-card__title,
.patho-side-card .mr-alterationen__title,
.patho-side-card .patho-biomarker-grid > h5 {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  font-weight: 650;
  color: var(--om-heading, var(--color-heading));
}
.patho-side-card__empty {
  margin: 0;
  font-size: 0.85rem;
}
.patho-side-card--varianten {
  padding-bottom: 0.5rem;
}
.patho-side-card--varianten .mr-alterationen {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.patho-side-card--varianten .mr-alterationen__head {
  margin-bottom: 0.35rem;
}
.patho-biomarker-grid {
  margin: 0;
}
.patho-biomarker-grid__hint {
  display: none;
}
.patho-biomarker-grid__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}
.patho-biomarker-card {
  margin: 0;
  padding: 0.5rem 0.55rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 0.45rem;
  background: var(--om-surface-soft, #f8f9f7);
}
.patho-file-card__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.patho-file-card__icon {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  color: var(--om-text-muted, #687876);
}
.patho-file-card__icon .om-icon {
  margin-right: 0;
  width: 1.75rem;
  height: 1.75rem;
  font-size: 1.75rem;
}
.patho-file-card__info {
  flex: 1 1 8rem;
  min-width: 0;
}
.patho-file-card__name {
  margin: 0;
  font-weight: 600;
  font-size: 0.9rem;
  word-break: break-word;
}
.patho-file-card__meta-line {
  margin: 0.15rem 0 0;
  font-size: 0.8rem;
}
.patho-befund-empty {
  margin: 0;
  padding: 0.75rem 0.85rem;
}
.patho-befund-empty__text {
  margin: 0 0 0.35rem;
  font-weight: 500;
}
.patho-befund-empty__create {
  margin-top: 0.5rem;
}
.patho-befund-empty__create > summary {
  cursor: pointer;
  font-weight: 600;
}
.mr-import-review--embedded {
  margin: 0 !important;
  padding: 0;
  border: 0;
  background: transparent;
}
.mr-import-review--embedded .mr-patho-review {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: 0;
}
.patho-dropzone {
  border: 1.5px dashed var(--om-border, #c9d4cf);
  border-radius: 0.55rem;
  padding: 0.85rem 0.75rem;
  background: var(--om-surface-soft, #f8f9f7);
  text-align: center;
}
.patho-dropzone__lead {
  margin: 0 0 0.55rem;
  color: var(--om-text-muted, #687876);
  font-size: 0.85rem;
}
.patho-dropzone__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: center;
  align-items: center;
}
.patho-dropzone__input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.patho-dropzone__file-btn {
  cursor: pointer;
}
.patho-import-draft {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.55rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 0.45rem;
  background: #fff;
}
.patho-import-draft__meta {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.patho-import-draft__name {
  font-size: 0.88rem;
  word-break: break-word;
}
.patho-legacy-roh {
  margin-top: 0.5rem;
}
.patho-variant-list {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.patho-variant-card {
  margin: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--om-border, #dde4e0);
  border-radius: 0.45rem;
  background: var(--om-surface-soft, #f8f9f7);
}
.patho-variant-card__class:not(.patho-variant-card__class--muted) {
  color: #8a3a4a;
  background: #f8e8ec;
  border-color: #ebc9d2;
}
.patho-side-card--varianten .mr-alterationen {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: 0;
}
.om-status-chip--muted {
  opacity: 0.8;
}
.patho-htmx-indicator {
  display: none;
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  color: var(--text-muted, #666);
}
.patho-htmx-indicator.htmx-request,
.htmx-request .patho-htmx-indicator {
  display: block;
}
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* -------------------------------------------------------------------------- */
/* Startseite — Hero, KPIs, Schnellzugriff, Qualität (bestehende Tokens)      */
/* -------------------------------------------------------------------------- */
.start-page {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.start-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: 1rem 1.25rem;
  align-items: stretch;
  min-height: 13.5rem;
  padding: 1.5rem;
  position: relative;
  overflow: hidden;
}

.start-hero__main {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.55rem;
  min-width: 0;
  position: relative;
  z-index: 2;
}

.start-hero__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.start-hero__title {
  margin: 0;
  font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.75rem);
  font-weight: 650;
  line-height: 1.2;
  color: var(--color-heading);
}

.start-hero__lead {
  margin: 0;
  max-width: 38rem;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--color-text-muted);
}

.start-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.35rem;
  position: relative;
  z-index: 2;
}

.start-hero__actions .btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.start-hero__btn-icon {
  display: inline-flex;
  width: 1.05rem;
  height: 1.05rem;
  color: inherit;
}

.start-hero__btn-icon .om-icon {
  width: 100%;
  height: 100%;
}

.start-hero__brand {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
  min-height: 8rem;
  padding: 0.35rem 0.15rem 0.35rem 0.75rem;
  z-index: 1;
  overflow: hidden;
}

.start-hero__decor {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  pointer-events: none;
  z-index: 0;
}

.start-hero__art {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: right center;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
  opacity: 0.95;
}

.start-hero__brand-text {
  position: absolute;
  z-index: 1;
  /* Optisch über dem dunklen Pflanzenstiel, etwas links/oben */
  left: 22%;
  right: auto;
  top: 28%;
  transform: translate(-8%, -50%);
  margin: 0;
  max-width: 16rem;
  width: max-content;
  text-align: left;
  font-size: 1.02rem;
  line-height: 1.72;
  letter-spacing: 0.09em;
  font-weight: 400;
  color: #6a858c;
}

.start-kpi-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.start-kpi {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1rem 1.05rem;
  text-decoration: none;
  color: inherit;
  background: var(--color-blend-surface-card);
  border: 1px solid var(--color-border);
  border-radius: var(--om-radius, 10px);
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

a.start-kpi:hover,
a.start-kpi:focus-visible {
  border-color: var(--color-blend-primary-border-soft);
  background: var(--color-blend-surface-hover);
  outline: none;
}

a.start-kpi:focus-visible {
  box-shadow: 0 0 0 3px var(--color-blend-link-ring);
}

.start-kpi--mint {
  background: linear-gradient(180deg, #f4f8f6 0%, var(--color-blend-surface-card) 100%);
  border-color: var(--color-blend-success-border-kpi);
}

.start-kpi--soft {
  background: linear-gradient(180deg, #faf6ef 0%, var(--color-blend-surface-card) 100%);
  border-color: var(--color-blend-warning-border-kpi);
}

.start-kpi--slate {
  background: linear-gradient(180deg, #f3f6f8 0%, var(--color-blend-surface-card) 100%);
  border-color: var(--color-blend-primary-border-kpi, #bbc8cd);
}

.start-kpi--attention .start-kpi__value {
  color: var(--color-blend-warning-text-kpi);
}

.start-kpi__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.85);
  color: var(--color-table-link);
  border: 1px solid var(--color-blend-border-soft);
}

/* KPI-Icon-Akzente: Grün / Orange / Grau-Blau */
.start-kpi--mint .start-kpi__icon {
  color: #5f8a72;
  background: #e8f1eb;
  border-color: #c5d8cb;
}

.start-kpi--soft .start-kpi__icon {
  color: #c58a2a;
  background: #f8f0e3;
  border-color: #e2d0ad;
}

.start-kpi--slate .start-kpi__icon {
  color: #4a6d78;
  background: #e8eef1;
  border-color: #c5d3d8;
}

.start-kpi__icon .om-icon {
  width: 1.2rem;
  height: 1.2rem;
  margin: 0;
  color: inherit;
  vertical-align: middle;
}

.start-kpi__icon .om-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
}

.start-kpi__body {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  flex: 1;
}

.start-kpi__label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.start-kpi__value {
  font-size: 1.75rem;
  font-weight: 650;
  line-height: 1.1;
  color: var(--color-heading);
}

.start-kpi__meta {
  font-size: 0.8rem;
  color: var(--color-text-muted);
}

.start-kpi__meta--warn {
  color: var(--color-blend-warning-text);
  font-weight: 500;
}

.start-kpi__chevron {
  display: inline-flex;
  color: var(--color-text-muted);
  opacity: 0.65;
  flex-shrink: 0;
}

.start-kpi__chevron .om-icon {
  width: 1.1rem;
  height: 1.1rem;
}

.start-mid-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
  align-items: stretch;
}

.start-panel {
  display: flex;
  flex-direction: column;
  padding: 0;
  min-height: 0;
}

.start-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1.05rem 0.35rem;
  flex-shrink: 0;
}

.start-panel__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 650;
  color: var(--color-heading);
}

.start-panel__empty {
  margin: 0;
  padding: 0.5rem 1.05rem 1.1rem;
  color: var(--color-text-muted);
  font-size: 0.9rem;
}

.start-quick-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  padding: 0.35rem 1.05rem 1.1rem;
  flex: 1;
  align-content: stretch;
  min-height: 12rem;
}

.start-quick {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  height: 100%;
  min-height: 3.75rem;
  box-sizing: border-box;
  padding: 0.75rem 0.8rem;
  text-decoration: none;
  color: inherit;
  border: 1px solid var(--color-border);
  border-radius: var(--om-radius-sm, 8px);
  background: var(--color-blend-surface-hover-subtle);
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

a.start-quick:hover,
a.start-quick:focus-visible {
  border-color: var(--color-blend-primary-border-soft);
  background: var(--color-blend-surface-hover);
  outline: none;
}

a.start-quick:focus-visible {
  box-shadow: 0 0 0 3px var(--color-blend-link-ring);
}

.start-quick--static {
  opacity: 0.72;
  cursor: default;
}

.start-quick__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 999px;
  color: #5f8a72;
  background: #e8f1eb;
  border: 1px solid #c5d8cb;
}

.start-quick__icon .om-icon {
  width: 1.1rem;
  height: 1.1rem;
  margin: 0;
  color: inherit;
  vertical-align: middle;
}

.start-quick__icon .om-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
}

.start-quick__text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
  gap: 0.1rem;
}

.start-quick__name {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-heading);
}

.start-quick__desc {
  font-size: 0.78rem;
  color: var(--color-text-muted);
}

.start-quick__chevron {
  color: var(--color-text-muted);
  opacity: 0.65;
}

.start-quick__chevron .om-icon {
  width: 1rem;
  height: 1rem;
}

.start-recent {
  list-style: none;
  margin: 0;
  padding: 0.15rem 0.55rem 0.75rem;
  flex: 1;
}

.start-recent__item {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.55rem 0.5rem;
  border-radius: var(--om-radius-sm, 8px);
  text-decoration: none;
  color: inherit;
}

.start-recent__item:hover,
.start-recent__item:focus-visible {
  background: var(--color-blend-surface-hover);
  outline: none;
}

.start-recent__item:focus-visible {
  box-shadow: 0 0 0 3px var(--color-blend-link-ring);
}

.start-recent__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  color: #5f8a72;
  background: #e8f1eb;
  border: 1px solid #c5d8cb;
}

.start-recent__icon .om-icon {
  width: 1rem;
  height: 1rem;
  margin: 0;
  color: inherit;
  vertical-align: middle;
}

.start-recent__icon .om-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
}

.start-recent__text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
  gap: 0.05rem;
}

.start-recent__title {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-heading);
}

.start-recent__sub {
  font-size: 0.78rem;
  color: var(--color-text-muted);
}

.start-recent__when {
  flex-shrink: 0;
  font-size: 0.75rem;
  color: var(--color-text-muted);
  white-space: nowrap;
}

.start-quality__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  padding: 0.25rem 1.05rem 1.15rem;
}

.start-quality__item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.65rem 0.35rem;
}

.start-quality__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  color: #5f8a72;
  background: #e8f1eb;
  border: 1px solid #c5d8cb;
}

.start-quality__icon .om-icon {
  width: 1.35rem;
  height: 1.35rem;
  margin: 0;
  color: inherit;
  vertical-align: middle;
}

.start-quality__icon .om-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
}

.start-quality__icon--warn {
  color: #c58a2a;
  background: #f8f0e3;
  border-color: #e2d0ad;
}

.start-quality__icon--danger {
  color: #a94a4a;
  background: #f3e8e8;
  border-color: #d4b4b5;
}

.start-quality__body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.start-quality__label {
  font-size: 0.8rem;
  color: var(--color-text-muted);
}

.start-quality__value {
  font-size: 1.35rem;
  font-weight: 650;
  color: var(--color-heading);
  line-height: 1.15;
}

.start-quality__status {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  color: var(--color-text-muted);
}

.start-quality__dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 999px;
  background: var(--color-table-link);
}

.start-quality__status--warn {
  color: var(--color-blend-warning-text);
}

.start-quality__status--warn .start-quality__dot {
  background: var(--color-warning);
}

.start-quality__status--danger {
  color: var(--color-blend-danger-text);
}

.start-quality__status--danger .start-quality__dot {
  background: var(--color-danger);
}

.start-quality__status--neutral .start-quality__dot {
  background: var(--color-text-muted);
}

@media (max-width: 1200px) {
  .start-hero {
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    min-height: 0;
  }

  .start-hero__decor {
    opacity: 0.45;
  }

  .start-hero__brand-text {
    left: 20%;
    top: 26%;
    opacity: 0.9;
    font-size: 0.94rem;
    letter-spacing: 0.075em;
    line-height: 1.65;
    max-width: 14.5rem;
  }

  .start-kpi-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .start-kpi-row > :last-child {
    grid-column: 1 / -1;
  }

  .start-mid-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .start-kpi-row,
  .start-quick-grid,
  .start-quality__grid {
    grid-template-columns: 1fr;
  }

  .start-quick-grid {
    grid-template-rows: none;
    min-height: 0;
  }

  .start-kpi-row > :last-child {
    grid-column: auto;
  }

  .start-hero {
    grid-template-columns: 1fr;
    padding: 1.15rem;
  }

  .start-hero__brand {
    display: none;
  }

  .start-recent__when {
    display: none;
  }
}
