/* 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;
}
.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: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;
  border-radius: 8px;
}
.auth-brand__name {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--color-text);
}
.auth-main {
  width: 100%;
  max-width: 26rem;
}
.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;
  margin: 0.75rem 0;
  background: #fff;
  padding: 0.5rem;
  border-radius: 8px;
  border: 1px solid var(--color-border);
}
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 */
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
}
.data-table th,
.data-table td {
  padding: 8px 10px;
  border-bottom: 1px solid 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: 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;
}

.mv-genom-follow-up-table th:nth-child(1),
.mv-genom-follow-up-table td:nth-child(1) {
  width: 150px;
}

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

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

.mv-genom-follow-up-table th:nth-child(6),
.mv-genom-follow-up-table td:nth-child(6),
.mv-genom-follow-up-table th:nth-child(7),
.mv-genom-follow-up-table td:nth-child(7),
.mv-genom-follow-up-table th:nth-child(8),
.mv-genom-follow-up-table td:nth-child(8) {
  width: 120px;
}

.mv-genom-follow-up-table th:nth-child(9),
.mv-genom-follow-up-table td:nth-child(9) {
  width: 96px;
}

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

.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;
}

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: 700;
  font-size: 13px;
  color: var(--color-table-text);
}

/* 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); }

/* 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) */
.nav h3 {
  margin: 0 0 0.5rem 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-nav-text);
}
.nav ul { list-style: none; padding: 0; margin: 0; }
.nav a,
.sidebar-secondary__list a {
  display: block;
  padding: 8px 6px;
  border-radius: 6px;
  color: var(--color-nav-text);
  text-decoration: none;
}
.nav .nav__back {
  display: block;
  width: 100%;
  margin: 0 0 0.35rem;
  padding: 8px 6px;
  border-radius: 6px;
  border: 1px solid var(--color-nav-border);
  background: rgba(255, 255, 255, 0.06);
  color: var(--color-nav-text);
  font: inherit;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.nav .nav__back:hover {
  background: var(--color-nav-hover);
  color: var(--color-nav-text);
}
.nav a:hover,
.sidebar-secondary__list a:hover {
  background: var(--color-nav-hover);
  color: var(--color-nav-text);
}
.nav a.active,
.sidebar-secondary__list a.active {
  background: var(--color-nav-active-bg);
  color: var(--color-nav-active-text);
  font-weight: 700;
}

/*
 * 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__meta dd a {
  word-break: break-word;
}

.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-table-wrap {
  overflow: auto;
  max-width: 100%;
}
.kooperationspartner-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: clamp(0.68rem, 0.62rem + 0.2vw, 0.8rem);
  line-height: 1.28;
}
.kooperationspartner-table thead tr {
  background: transparent;
}
.kooperationspartner-table th {
  text-align: left;
  vertical-align: bottom;
  padding: 0.3rem 0.34rem;
  border: 1px solid var(--color-border);
  color: var(--color-table-text);
  background: var(--color-surface-alt);
  font-weight: 650;
  font-size: clamp(0.8rem, 0.72rem + 0.35vw, 0.96rem);
  line-height: 1.22;
  white-space: normal;
  hyphens: none;
  word-break: normal;
  overflow-wrap: normal;
}
.kooperationspartner-table .kooperationspartner-table__th-sub {
  display: block;
  margin-top: 0.28rem;
  font-weight: 530;
  font-size: 0.74em;
  line-height: 1.3;
  letter-spacing: 0.025em;
  color: var(--color-text-muted);
}
.kooperationspartner-table td {
  padding: 0.28rem 0.32rem;
  border: 1px solid var(--color-border);
  vertical-align: top;
  color: var(--color-table-text);
  background: var(--color-surface-alt);
  min-width: 0;
  hyphens: none;
  word-break: normal;
  overflow-wrap: normal;
  white-space: normal;
}
.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.55rem;
  color: var(--color-text-muted);
  font-size: 0.75rem;
}
/* Name: begrenzte Breite, mehrzeilig */
.kooperationspartner-table th.kooperationspartner-table__col-name,
.kooperationspartner-table td.kooperationspartner-table__col-name {
  width: 14%;
  min-width: 0;
  max-width: 9.5rem;
  white-space: normal;
}
.kooperationspartner-table th.kooperationspartner-table__col-kopf-anschrift,
.kooperationspartner-table td.kooperationspartner-table__col-anschrift {
  width: 18%;
  min-width: 0;
}
.kooperationspartner-table th.kooperationspartner-table__col-kopf-leitung,
.kooperationspartner-table td.kooperationspartner-table__col-leitung {
  width: 14%;
  min-width: 0;
}
.kooperationspartner-table th.kooperationspartner-table__col-telefon,
.kooperationspartner-table td.kooperationspartner-table__col-telefon,
.kooperationspartner-table th.kooperationspartner-table__col-email,
.kooperationspartner-table td.kooperationspartner-table__col-email {
  width: 12%;
  min-width: 0;
  white-space: normal;
}
.kooperationspartner-table td.kooperationspartner-table__col-telefon,
.kooperationspartner-table td.kooperationspartner-table__col-email {
  font-size: 0.66rem;
  line-height: 1.25;
}
.kooperationspartner-table th.kooperationspartner-table__col-kopf-kooperation,
.kooperationspartner-table td.kooperationspartner-table__col-kooperation {
  width: 8%;
  min-width: 0;
  max-width: 5.5rem;
}
.kooperationspartner-table th.kooperationspartner-table__col-zugewiesen,
.kooperationspartner-table td.kooperationspartner-table__col-zugewiesen {
  width: 9%;
  min-width: 6.75rem;
}
.kooperationspartner-table th.kooperationspartner-table__col-zugewiesen {
  vertical-align: top;
  text-align: left;
  white-space: normal;
}
.kooperationspartner-table th.kooperationspartner-table__col-zugewiesen .kooperationspartner-table__th-with-hint {
  display: inline-flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0.32rem;
  max-width: 100%;
  cursor: help;
}
.kooperationspartner-table th.kooperationspartner-table__col-zugewiesen .kooperationspartner-table__th-label {
  min-width: 0;
  text-align: left;
  line-height: 1.2;
}
.kooperationspartner-table th.kooperationspartner-table__col-zugewiesen .kooperationspartner-table__th-hint-icon {
  display: inline-flex;
  flex-shrink: 0;
  margin-top: 0.14em;
  color: var(--color-text-muted);
  opacity: 0.9;
  line-height: 0;
}
.kooperationspartner-table th.kooperationspartner-table__col-zugewiesen .kooperationspartner-table__th-hint-icon svg {
  display: block;
}
.kooperationspartner-table th.kooperationspartner-table__col-zugewiesen .kooperationspartner-table__th-with-hint:hover .kooperationspartner-table__th-hint-icon {
  opacity: 1;
  color: var(--color-table-link);
}
.kooperationspartner-table td.kooperationspartner-table__col-zugewiesen {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-size: 0.66rem;
  line-height: 1.25;
}
.kooperationspartner-table__stack {
  line-height: 1.25;
}
.kooperationspartner-table__stack-line,
.kooperationspartner-table__stack-muted {
  white-space: normal;
  hyphens: none;
  word-break: normal;
  overflow-wrap: normal;
}
.kooperationspartner-table__stack-muted {
  color: var(--color-text-muted);
  font-size: 0.62rem;
  margin-top: 0.1rem;
  line-height: 1.2;
}
/* Aktionen: echtes table-cell (Flex nur innen — vermeidet Doppelrahmen / falscher Header-Farbstreifen) */
.kooperationspartner-table th.kooperationspartner-table__col-actions,
.kooperationspartner-table td.kooperationspartner-table__actions {
  width: 4.25rem;
  min-width: 4.25rem;
  max-width: 4.25rem;
  white-space: nowrap;
  padding-left: 0.2rem;
  padding-right: 0.2rem;
}
.kooperationspartner-table td.kooperationspartner-table__actions {
  vertical-align: top;
}
.kooperationspartner-table th.kooperationspartner-table__col-actions {
  text-align: center;
  vertical-align: middle;
}
.kooperationspartner-table__actions-inner {
  display: inline-flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.2rem;
  vertical-align: middle;
}
.kooperationspartner-table__url {
  display: inline-block;
  max-width: 20rem;
  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.4rem;
  height: 1.4rem;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 4px;
  font-size: 0.85rem;
  font-weight: 650;
  line-height: 1;
  color: var(--color-table-link);
  text-decoration: none;
  background: transparent;
  box-shadow: none;
}
.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;
}
.kooperationspartner-table__homepage-slot {
  box-sizing: border-box;
  flex-shrink: 0;
  width: 1.4rem;
  height: 1.4rem;
}
.kooperationspartner-table__icon-btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.4rem;
  height: 1.4rem;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: transparent;
  font-size: 0.85rem;
  line-height: 1;
  cursor: pointer;
}
.kooperationspartner-table__icon-btn:hover {
  background: var(--color-blend-surface-hover-subtle);
}
.kooperationspartner-table__icon-btn: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-map {
  height: 520px;
  border: 1px solid #d6d3d1;
  border-radius: 10px;
  margin-top: 0.75rem;
}
.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);
}

/* 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 */
.patients-page {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-width: 100%;
}

.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);
}

/* Fallliste: GET-Filter (Layout wie Patientensuche) */
.cases-filter-toolbar {
  align-items: flex-end;
}
.cases-filter-toolbar__q {
  flex: 1 1 280px;
  max-width: 32rem;
}
.cases-filter-toolbar__patient,
.cases-filter-toolbar__status,
.cases-filter-toolbar__sort,
.cases-filter-toolbar__sort-dir {
  flex: 0 1 12rem;
  max-width: 16rem;
}
.cases-filter-toolbar__patient select,
.cases-filter-toolbar__status 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__nutzer 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;
}

.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: Kopfzeile fixieren + Auswahlspalte links fixieren */
.table-scroll--cases-overview #cases-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: var(--color-surface-alt);
}

.table-scroll--cases-overview {
  max-height: 68vh;
  overflow-y: auto;
}

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

.table-scroll--cases-overview #cases-table thead th.col-select {
  z-index: 6;
}

@media (prefers-color-scheme: dark) {
  .table-scroll--cases-overview #cases-table thead th,
  .table-scroll--cases-overview #cases-table th.col-select,
  .table-scroll--cases-overview #cases-table td.col-select {
    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__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;
}

/* 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;
}

.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;
}

