:root { --sidebar-width: 16rem; }
body { background: #f5f7fa; }
.auth-card { width: min(100% - 2rem, 28rem); }
.app-sidebar { width: var(--sidebar-width); min-height: 100vh; }
.app-content { min-width: 0; }
.nav-link.active { background: rgba(255,255,255,.14); }
.stat-card { border: 0; box-shadow: 0 .25rem 1rem rgba(0,0,0,.06); }
.loading-overlay { position: fixed; inset: 0; display: grid; place-items: center; background: rgba(255,255,255,.7); z-index: 1080; }
@media (max-width: 991.98px) { .app-sidebar { width: 100%; min-height: auto; } }

.table th { white-space: nowrap; }
.table td { vertical-align: middle; }
[aria-busy="true"] { opacity: .75; }

.editor-body { min-height: 28rem; resize: vertical; }
#news-editor-form .card-header { padding: 1rem 1.5rem; }

/* Patch 5: sichtbarer Benutzer- und Tenant-Kontext */
.app-header { min-height: 4.25rem; gap: 1rem; }
.tenant-select-card { width: min(100% - 2rem, 38rem); border: 0; }
.tenant-option { border-color: var(--bs-border-color); background: #fff; }
.tenant-option:hover,
.tenant-option:focus { background: var(--bs-light); border-color: var(--bs-primary); color: var(--bs-body-color); }
.tenant-context { min-width: 15rem; line-height: 1.15; padding: .55rem .8rem; }
.tenant-context::after { margin-left: .8rem; }
.tenant-context-label { display: block; color: var(--bs-secondary-color); font-size: .7rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.tenant-context-name { display: inline-block; max-width: 18rem; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; white-space: nowrap; font-weight: 600; }
.tenant-context-role { margin-left: .35rem; color: var(--bs-secondary-color); font-size: .8rem; }
.tenant-menu { min-width: 17rem; }
.user-context { max-width: 18rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 575.98px) {
  .app-header { align-items: stretch; }
  .tenant-context { min-width: 0; max-width: calc(100vw - 7rem); }
  .tenant-context-name { max-width: calc(100vw - 11rem); }
}

/* Patch 8: Dashboard 2.0 */
.dashboard-card-link { display: block; height: 100%; color: inherit; text-decoration: none; }
.dashboard-card-link .dashboard-metric { transition: transform .12s ease, box-shadow .12s ease; }
.dashboard-card-link:hover .dashboard-metric,
.dashboard-card-link:focus .dashboard-metric { transform: translateY(-2px); box-shadow: 0 .4rem 1.25rem rgba(0,0,0,.09); }
.dashboard-metric { border: 0; box-shadow: 0 .25rem 1rem rgba(0,0,0,.06); }
.dashboard-metric-danger { border-left: .25rem solid var(--bs-danger); }
.dashboard-metric-value { font-size: clamp(1.8rem, 4vw, 2.5rem); font-weight: 600; line-height: 1; }
.dashboard-panel { border: 0; box-shadow: 0 .25rem 1rem rgba(0,0,0,.06); }
.dashboard-progress { height: .55rem; background: var(--bs-tertiary-bg); }
.dashboard-unlimited-line { height: .55rem; border-radius: var(--bs-border-radius-pill); background: repeating-linear-gradient(135deg, var(--bs-secondary-bg), var(--bs-secondary-bg) .5rem, var(--bs-tertiary-bg) .5rem, var(--bs-tertiary-bg) 1rem); }
.dashboard-warning { border: 0; border-left: .25rem solid var(--bs-warning); }

/* Patch 9: API-Key-Verwaltung */
.api-key-description { max-width: 18rem; }
.api-key-permissions { max-height: 18rem; overflow-y: auto; background: var(--bs-tertiary-bg); }
#api-key-secret-value { font-size: .85rem; }


/* Patch 10: Webhook-Verwaltung */
.webhook-url { max-width: 24rem; }
.webhook-events { max-height: 18rem; overflow-y: auto; background: var(--bs-tertiary-bg); }
.webhook-delivery-error { max-width: 24rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Patch 12: Benutzergruppen */
#group-detail { position: sticky; top: 1rem; }
#group-members { max-height: 28rem; overflow-y: auto; }
.min-width-0 { min-width: 0; }
@media (max-width: 1199.98px) { #group-detail { position: static; } }

/* Patch 13: Gruppen in News */
.group-selection { max-height: 18rem; overflow-y: auto; background: var(--bs-tertiary-bg); }
.group-selection-item { cursor: pointer; }
.group-selection-item:hover { background: var(--bs-secondary-bg); }
.group-selection-item:has(.form-check-input:checked) { background: var(--bs-primary-bg-subtle); }

/* Patch 15: Kontaktanfragen-Liste */
.contact-subject { min-width: 16rem; max-width: 32rem; }
#contact-pagination .pagination { justify-content: flex-end; }
@media (max-width: 767.98px) {
  #contact-pagination { width: 100%; overflow-x: auto; }
  #contact-pagination .pagination { justify-content: flex-start; flex-wrap: nowrap !important; }
}

.contact-request-row {
  cursor: pointer;
}

.contact-request-row:focus-visible {
  outline: 3px solid rgba(13, 110, 253, .35);
  outline-offset: -3px;
}

.contact-message {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  min-height: 8rem;
}

/* Patch 17: Medienverwaltung */
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: 1rem; }
.media-card { width: 100%; padding: 0; background: var(--bs-body-bg); transition: border-color .12s ease, box-shadow .12s ease, transform .12s ease; }
.media-card:hover, .media-card:focus-visible { border-color: var(--bs-primary); box-shadow: 0 .35rem 1rem rgba(0,0,0,.09); transform: translateY(-1px); }
.media-card-preview { display: grid; min-height: 8rem; place-items: center; background: var(--bs-tertiary-bg); border-bottom: var(--bs-border-width) solid var(--bs-border-color); }
.media-file-icon, .media-detail-icon { display: grid; place-items: center; color: var(--bs-secondary-color); font-weight: 700; letter-spacing: .04em; }
.media-file-icon { width: 4.5rem; height: 4.5rem; border: .2rem solid currentColor; border-radius: .6rem; font-size: 1rem; }
.media-detail-icon { min-height: 8rem; border-radius: var(--bs-border-radius); background: var(--bs-tertiary-bg); font-size: 1.5rem; }
.media-name { max-width: 22rem; }
.media-row { cursor: pointer; }
.media-row:focus-visible { outline: 3px solid rgba(13,110,253,.35); outline-offset: -3px; }
#media-detail { position: sticky; top: 1rem; }
@media (max-width: 1199.98px) { #media-detail { position: static; } }
@media (max-width: 575.98px) { .media-grid { grid-template-columns: 1fr 1fr; gap: .75rem; } }

/* Patch 18: Wiederverwendbarer Medienbrowser */
.media-browser-body { min-height: 30rem; }
.media-browser-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: .75rem; align-content: start; }
.media-browser-card { display: grid; grid-template-columns: 3.25rem minmax(0,1fr); align-items: center; gap: .75rem; width: 100%; padding: .75rem; text-align: left; color: inherit; background: var(--bs-body-bg); border: var(--bs-border-width) solid var(--bs-border-color); border-radius: var(--bs-border-radius); }
.media-browser-card:hover, .media-browser-card:focus-visible { border-color: var(--bs-primary); outline: none; box-shadow: 0 0 0 .2rem rgba(13,110,253,.15); }
.media-browser-card.is-selected { border-color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
.media-browser-icon, .media-browser-preview-icon { display: grid; place-items: center; color: var(--bs-secondary-color); background: var(--bs-tertiary-bg); border-radius: var(--bs-border-radius); font-size: .7rem; font-weight: 700; letter-spacing: .04em; }
.media-browser-icon { width: 3.25rem; height: 3.25rem; }
.media-browser-preview-icon { min-height: 10rem; font-size: 1rem; }
.media-browser-empty { grid-column: 1 / -1; padding: 4rem 1rem; text-align: center; color: var(--bs-secondary-color); }
@media (min-width: 992px) { .border-end-lg { border-right: var(--bs-border-width) solid var(--bs-border-color); } }
@media (max-width: 575.98px) { .media-browser-grid { grid-template-columns: 1fr; } }

/* Patch 19: News-Editor 2.0 */
.tag-editor { min-height: calc(1.5em + .75rem + 2px); cursor: text; }
.tag-editor:focus-within { border-color: #86b7fe; box-shadow: 0 0 0 .25rem rgba(13,110,253,.25); }
.tag-editor-input { min-width: 9rem; outline: 0; background: transparent; }
.tag-remove { padding: 0; color: inherit; line-height: 1; background: transparent; border: 0; font-size: 1rem; }
.news-media-preview { min-height: 6.5rem; background: var(--bs-tertiary-bg); }
.news-media-preview.border-danger { box-shadow: 0 0 0 .15rem rgba(220,53,69,.12); }

/* Patch 20: Reduzierter Markdown-Editor */
.markdown-editor:focus-within { border-color: #86b7fe !important; box-shadow: 0 0 0 .25rem rgba(13,110,253,.25); }
.markdown-toolbar-separator { align-self: stretch; width: 1px; margin: 0 .25rem; background: var(--bs-border-color); }
.markdown-pane-label { padding: .45rem .75rem; color: var(--bs-secondary-color); background: var(--bs-tertiary-bg); border-bottom: var(--bs-border-width) solid var(--bs-border-color); font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.markdown-input { min-height: 28rem; resize: vertical; box-shadow: none !important; }
.markdown-preview { min-height: 28rem; max-height: 42rem; padding: 1rem 1.25rem; overflow: auto; overflow-wrap: anywhere; }
.markdown-preview > :first-child { margin-top: 0; }
.markdown-preview > :last-child { margin-bottom: 0; }
.markdown-preview h2 { margin: 1.5rem 0 .75rem; font-size: 1.45rem; }
.markdown-preview h3 { margin: 1.25rem 0 .65rem; font-size: 1.2rem; }
.markdown-preview p { white-space: pre-line; }
.markdown-preview blockquote { padding: .25rem 0 .25rem 1rem; color: var(--bs-secondary-color); border-left: .25rem solid var(--bs-border-color); }
.markdown-preview a { overflow-wrap: anywhere; }
@media (max-width: 991.98px) {
  .markdown-input { min-height: 20rem; }
  .markdown-preview { min-height: 12rem; max-height: 28rem; border-top: var(--bs-border-width) solid var(--bs-border-color); }
}

.markdown-media-reference { margin: 1rem 0; padding: .75rem; border: 1px dashed var(--bs-border-color); border-radius: var(--bs-border-radius); background: var(--bs-tertiary-bg); }
.markdown-media-reference__placeholder { display: grid; min-height: 8rem; place-items: center; color: var(--bs-secondary-color); font-weight: 600; background: var(--bs-body-bg); border-radius: calc(var(--bs-border-radius) - 2px); }
.markdown-media-reference figcaption { margin-top: .5rem; color: var(--bs-secondary-color); font-size: .8rem; overflow-wrap: anywhere; }


/* Patch 21: Event-Liste */
.event-title { min-width: 15rem; max-width: 28rem; }
#events-pagination .pagination { justify-content: flex-end; }
@media (max-width: 767.98px) {
  #events-pagination { width: 100%; overflow-x: auto; }
  #events-pagination .pagination { justify-content: flex-start; flex-wrap: nowrap !important; }
}

.dashboard-metric-success { border-left: .25rem solid var(--bs-success); }
.dashboard-healthy { border: 0; border-left: .25rem solid var(--bs-success); }
.dashboard-quick-link { border: 0; box-shadow: 0 .25rem 1rem rgba(0,0,0,.05); transition: transform .12s ease, box-shadow .12s ease; }
.dashboard-quick-link:hover,
.dashboard-quick-link:focus { transform: translateY(-2px); box-shadow: 0 .4rem 1.25rem rgba(0,0,0,.09); }
.dashboard-quick-link-arrow { font-size: 1.4rem; color: var(--bs-secondary-color); }


/* Patch 32: Einheitliche Komponenten und UI-Zustände */
:focus-visible { outline: 3px solid rgba(13, 110, 253, .35); outline-offset: 2px; }
.btn:focus-visible, .form-control:focus-visible, .form-select:focus-visible, .form-check-input:focus-visible, .page-link:focus-visible { outline: none; }
.btn[aria-busy="true"] { cursor: wait; }
.btn:disabled, .page-link:disabled { cursor: not-allowed; }
.form-label { font-weight: 600; }
.form-text { max-width: 52rem; }
.invalid-feedback.d-block { margin-top: .35rem; }
.card { border-color: rgba(var(--bs-emphasis-color-rgb), .1); }
.table-responsive { border-radius: var(--bs-border-radius); }
.table > :not(caption) > * > * { padding-block: .7rem; }
.badge { font-weight: 600; letter-spacing: .01em; }
.modal-content { box-shadow: 0 1rem 3rem rgba(0,0,0,.18); }
.modal-header, .modal-footer { background: var(--bs-tertiary-bg); }
.alert > :last-child { margin-bottom: 0; }

.loading-overlay { background: rgba(var(--bs-body-bg-rgb), .72); backdrop-filter: blur(2px); }
.loading-panel { display: flex; align-items: center; gap: .85rem; min-width: 14rem; padding: 1rem 1.25rem; background: var(--bs-body-bg); border: var(--bs-border-width) solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); box-shadow: 0 .75rem 2.5rem rgba(0,0,0,.14); font-weight: 600; }

.ui-toast { min-width: min(24rem, calc(100vw - 2rem)); box-shadow: 0 .6rem 1.8rem rgba(0,0,0,.16); }
.ui-empty-state { display: grid; justify-items: center; gap: .5rem; padding: 4rem 1.5rem; color: var(--bs-secondary-color); text-align: center; }
.ui-empty-state-compact { padding: 2.5rem 1rem; }
.ui-empty-state-title { color: var(--bs-body-color); font-size: 1rem; font-weight: 600; }
.ui-empty-state-message { max-width: 34rem; margin: 0; }
.ui-table-state { display: flex; align-items: center; justify-content: center; gap: .65rem; min-height: 8rem; color: var(--bs-secondary-color); }
.ui-paginator { min-height: 2rem; }
.ui-error-page { max-width: 42rem; }

.status-badge, [class*="status-badge-"] { display: inline-flex; align-items: center; gap: .35rem; border-radius: var(--bs-border-radius-pill); }

@media (max-width: 575.98px) {
  .ui-paginator { align-items: stretch !important; }
  .ui-paginator nav { width: 100%; overflow-x: auto; }
  .ui-paginator .pagination { flex-wrap: nowrap !important; }
  .loading-panel { min-width: 0; max-width: calc(100vw - 2rem); }
  .modal-footer { align-items: stretch; }
  .modal-footer .btn { flex: 1 1 auto; }
}

.unsaved-changes-indicator {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 1080;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .55rem .8rem;
  border: 1px solid var(--bs-warning-border-subtle);
  border-radius: .5rem;
  background: var(--bs-warning-bg-subtle);
  color: var(--bs-warning-text-emphasis);
  font-size: .875rem;
  font-weight: 600;
}

@media (max-width: 575.98px) {
  .unsaved-changes-indicator {
    right: .75rem;
    bottom: .75rem;
    left: .75rem;
    justify-content: center;
  }
}

/* Patch 35.2: Responsive Tabellen und kompakter Mobile-Modus */
.app-sidebar-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1035;
  padding: 0;
  background: rgba(0, 0, 0, .45);
  border: 0;
}

.table-responsive {
  position: relative;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}

.table-responsive > .table {
  min-width: 46rem;
}

.table-responsive > .table.table-sm {
  min-width: 38rem;
}

.table-responsive::after {
  position: sticky;
  right: 0;
  display: block;
  width: 2.5rem;
  height: 0;
  margin-left: auto;
  pointer-events: none;
  content: "";
  box-shadow: -1rem 0 1.25rem rgba(var(--bs-body-color-rgb), .08);
}

@media (min-width: 992px) {
  .app-sidebar {
    position: sticky;
    top: 0;
    align-self: flex-start;
    max-height: 100vh;
    overflow-y: auto;
  }
}

@media (max-width: 991.98px) {
  body.mobile-nav-open {
    overflow: hidden;
  }

  .app-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1040;
    width: min(19rem, calc(100vw - 3rem));
    min-height: 100vh;
    max-height: 100vh;
    overflow-y: auto;
    transform: translateX(-105%);
    transition: transform .18s ease-out;
    box-shadow: .75rem 0 2rem rgba(0, 0, 0, .22);
  }

  .app-sidebar.is-open {
    transform: translateX(0);
  }

  .app-content {
    width: 100%;
  }

  .app-header {
    position: sticky;
    top: 0;
    z-index: 1020;
  }

  #page-content {
    overflow-x: clip;
  }
}

@media (max-width: 767.98px) {
  #page-content {
    padding: 1rem !important;
  }

  .app-header {
    min-height: 3.5rem;
    gap: .5rem;
  }

  .tenant-context {
    max-width: calc(100vw - 9rem);
    padding: .4rem .6rem;
  }

  .tenant-context-label,
  .tenant-context-role {
    display: none;
  }

  .tenant-context-name {
    max-width: calc(100vw - 13rem);
  }

  .card-body,
  .card-header,
  .card-footer {
    padding: 1rem;
  }

  .table-responsive {
    margin-inline: -.25rem;
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
  }

  .table-responsive > .table {
    min-width: 42rem;
    margin-bottom: 0;
  }

  .table-responsive .table > :not(caption) > * > * {
    padding: .6rem .75rem;
  }

  .table-responsive .btn-group,
  .table-responsive .d-flex {
    flex-wrap: nowrap;
  }

  .ui-paginator {
    gap: .75rem !important;
  }

  .ui-paginator > :first-child {
    width: 100%;
  }

  .dashboard-metric-value {
    font-size: 1.75rem;
  }
}

@media (max-width: 575.98px) {
  h1, .h1 { font-size: 1.55rem; }
  h2, .h2 { font-size: 1.25rem; }

  .btn {
    min-height: 2.5rem;
  }

  .btn-sm {
    min-height: 2rem;
  }

  .media-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-quick-link,
  .dashboard-metric,
  .dashboard-panel {
    box-shadow: 0 .15rem .6rem rgba(0, 0, 0, .06);
  }

  .modal-dialog {
    margin: .5rem;
  }

  .modal-content {
    max-height: calc(100dvh - 1rem);
  }

  .modal-body {
    overflow-y: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .app-sidebar {
    transition: none;
  }
}

/* Patch 35.3: globale Suche, Verlauf und Farbschema */
.app-search-button kbd {
  padding: .1rem .35rem;
  color: var(--bs-secondary-color);
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: .3rem;
  font-size: .72rem;
  font-weight: 500;
}

.quick-search-dialog {
  width: min(46rem, calc(100vw - 2rem));
  max-width: none;
  margin: min(12vh, 6rem) auto auto;
  padding: 0;
  color: var(--bs-body-color);
  background: transparent;
  border: 0;
}

.quick-search-dialog::backdrop {
  background: rgba(0, 0, 0, .48);
  backdrop-filter: blur(2px);
}

.quick-search-panel {
  overflow: hidden;
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: .85rem;
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .25);
}

.quick-search-header {
  display: flex;
  gap: .65rem;
  padding: .85rem;
  border-bottom: 1px solid var(--bs-border-color);
}

.quick-search-header .form-control {
  border: 0;
  box-shadow: none;
}

.quick-search-results {
  max-height: min(60vh, 34rem);
  overflow-y: auto;
  padding: .45rem;
}

.quick-search-group {
  padding: .65rem .75rem .3rem;
  color: var(--bs-secondary-color);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.quick-search-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: .7rem .8rem;
  color: inherit;
  text-align: left;
  background: transparent;
  border: 0;
  border-radius: .55rem;
}

.quick-search-result span:first-child {
  display: grid;
  gap: .1rem;
}

.quick-search-result small {
  color: var(--bs-secondary-color);
}

.quick-search-result.is-active,
.quick-search-result:hover {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary-text-emphasis);
}

.quick-search-result mark {
  padding: 0;
  color: inherit;
  background: transparent;
  text-decoration: underline;
  text-decoration-thickness: .15em;
}

.quick-search-arrow {
  padding-left: 1rem;
  font-size: 1.2rem;
}

.quick-search-empty {
  padding: 2.5rem 1rem;
  color: var(--bs-secondary-color);
  text-align: center;
}

.quick-search-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .55rem .9rem;
  border-top: 1px solid var(--bs-border-color);
}

[data-bs-theme="dark"] .app-header {
  background: var(--bs-body-bg) !important;
}

[data-bs-theme="dark"] .app-sidebar {
  background: #111827 !important;
}

[data-bs-theme="dark"] .card,
[data-bs-theme="dark"] .modal-content,
[data-bs-theme="dark"] .dropdown-menu {
  box-shadow: 0 .25rem 1.2rem rgba(0, 0, 0, .24);
}

@media (max-width: 575.98px) {
  .app-search-button {
    padding-inline: .65rem;
  }

  .quick-search-dialog {
    width: calc(100vw - 1rem);
    margin-top: .5rem;
  }

  .quick-search-results {
    max-height: calc(100dvh - 10rem);
  }

  .quick-search-footer span {
    display: none;
  }
}

/* Dashboard 2.0 */
.dashboard-activity-list { display: grid; gap: .25rem; }
.dashboard-activity-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 0; color: inherit; text-decoration: none; border-bottom: 1px solid var(--bs-border-color-translucent); }
.dashboard-activity-item:first-child { padding-top: 0; }
.dashboard-activity-item:last-child { padding-bottom: 0; border-bottom: 0; }
.dashboard-activity-item:hover .dashboard-activity-title,
.dashboard-activity-item:focus .dashboard-activity-title { text-decoration: underline; }
.dashboard-activity-title { display: block; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-activity-meta { display: block; margin-top: .2rem; color: var(--bs-secondary-color); font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-activity-trailing { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .6rem; color: var(--bs-secondary-color); }
.dashboard-empty { min-height: 3rem; display: flex; align-items: center; }
.dashboard-platform-stat { display: flex; flex-direction: column; gap: .25rem; padding: .85rem; border-radius: var(--bs-border-radius); background: var(--bs-tertiary-bg); }
.dashboard-platform-stat strong { font-size: 1.4rem; }
.min-w-0 { min-width: 0; }

@media (max-width: 575.98px) {
  .dashboard-activity-item { align-items: flex-start; }
  .dashboard-activity-trailing .badge { display: none; }
}

/* Patch 36.1: robuste Shell ohne Abhängigkeit von Bootstrap-Responsive-Utilities */
.app-shell {
  min-height: 100vh;
}

#mobile-nav-open,
#mobile-nav-close,
.app-sidebar-backdrop {
  display: none;
}

@media (min-width: 992px) {
  .app-shell {
    display: flex;
  }

  .app-sidebar {
    flex: 0 0 var(--sidebar-width);
    pointer-events: auto;
    visibility: visible;
    transform: none;
  }
}

@media (max-width: 991.98px) {
  #mobile-nav-open,
  #mobile-nav-close {
    display: inline-flex;
  }

  .app-sidebar {
    pointer-events: none;
    visibility: hidden;
  }

  .app-sidebar.is-open {
    pointer-events: auto;
    visibility: visible;
  }

  .app-sidebar-backdrop:not([hidden]) {
    display: block;
  }
}

/* Authenticated media previews */
.media-card-preview,
.media-browser-icon,
.media-browser-preview-icon,
.media-detail-preview {
  overflow: hidden;
  position: relative;
}
.media-card-image,
.media-browser-card-image,
.media-browser-detail-image,
.media-detail-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.media-card-image { min-height: 8rem; }
.media-browser-card-image { border-radius: inherit; }
.media-browser-detail-image { min-height: 10rem; max-height: 22rem; object-fit: contain; background: var(--bs-tertiary-bg); }
.media-detail-preview { min-height: 12rem; display: grid; place-items: center; border-radius: var(--bs-border-radius); background: var(--bs-tertiary-bg); }
.media-detail-image { max-height: 24rem; object-fit: contain; }

/* Patch 37: gemeinsame SEO-Vorschau */
.seo-preview-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; }
.seo-preview-card { border:1px solid var(--bs-border-color); border-radius:.75rem; overflow:hidden; background:var(--bs-body-bg); }
.seo-preview-label { padding:.65rem .85rem; border-bottom:1px solid var(--bs-border-color); color:var(--bs-secondary-color); font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.seo-google-url { color:#188038; font-size:.82rem; padding:.9rem 1rem .2rem; overflow-wrap:anywhere; }
.seo-google-title { color:#1a0dab; font-size:1.2rem; line-height:1.3; padding:0 1rem .25rem; }
.seo-google-description { color:var(--bs-body-color); padding:0 1rem 1rem; font-size:.9rem; line-height:1.45; }
.seo-social-image { aspect-ratio:1.91/1; display:grid; place-items:center; overflow:hidden; background:var(--bs-tertiary-bg); color:var(--bs-secondary-color); }
.seo-social-image-element { width:100%; height:100%; object-fit:cover; display:block; }
.seo-social-body { padding:.85rem 1rem 1rem; }
.seo-social-domain { color:var(--bs-secondary-color); font-size:.72rem; letter-spacing:.05em; }
.seo-social-title { font-weight:700; margin-top:.2rem; }
.seo-social-description { color:var(--bs-secondary-color); font-size:.88rem; margin-top:.25rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.seo-analysis { border:1px solid var(--bs-border-color); border-radius:.75rem; padding:1rem; background:var(--bs-tertiary-bg); }
.seo-checklist { list-style:none; padding:0; display:grid; gap:.35rem; font-size:.88rem; }
.seo-checklist span { display:inline-grid; place-items:center; width:1.25rem; height:1.25rem; border-radius:50%; margin-right:.35rem; font-weight:700; }
.seo-ok span { background:rgba(25,135,84,.15); color:var(--bs-success); }
.seo-warning span { background:rgba(255,193,7,.2); color:#8a6500; }
@media (min-width: 992px) { .seo-preview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
[data-bs-theme="dark"] .seo-google-title { color:#8ab4f8; }
[data-bs-theme="dark"] .seo-google-url { color:#81c995; }


/* Diagnostics administration */
.diagnostics-row { cursor: pointer; }
.diagnostics-row-unread > td { background: var(--bs-primary-bg-subtle); }
.diagnostics-row-unread:hover > td { background: color-mix(in srgb, var(--bs-primary-bg-subtle) 82%, var(--bs-body-bg)); }
.diagnostics-app-id { overflow-wrap: anywhere; }
.diagnostics-metadata dt,
.diagnostics-metadata dd { margin-bottom: .65rem; }
.diagnostics-payload { max-height: 38rem; overflow: auto; padding: 1rem; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius); background: var(--bs-tertiary-bg); font-size: .82rem; line-height: 1.45; white-space: pre-wrap; word-break: break-word; }
.diagnostics-note { white-space: pre-wrap; }
