/* Hafenmanager – eigene Stile */

:root {
  --sidebar-breite: 240px;
  --header-hoehe: 56px;
}

body {
  padding-top: var(--header-hoehe);
}

/* App-Shell mit Sidebar links und Hauptbereich rechts */
.app-shell {
  display: flex;
  min-height: calc(100vh - var(--header-hoehe));
}

.app-sidebar {
  width: var(--sidebar-breite);
  background: #fff;
  border-right: 1px solid var(--bs-border-color);
}

@media (min-width: 992px) {
  .app-sidebar {
    position: fixed;
    top: var(--header-hoehe);
    bottom: 0;
    left: 0;
    z-index: 1020;
    overflow-y: auto;
    visibility: visible !important;
    transform: none !important;
  }
  .app-main {
    margin-left: var(--sidebar-breite);
    flex: 1 1 auto;
    min-width: 0;
  }
  .app-footer {
    margin-left: var(--sidebar-breite);
  }
}

@media (max-width: 991.98px) {
  .app-main {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
  }
}

/* Sidebar-Links */
.app-sidebar .nav-link {
  color: var(--bs-body-color);
  border-radius: 0.375rem;
  padding: 0.55rem 0.75rem;
  margin-bottom: 0.15rem;
}
.app-sidebar .nav-link:hover {
  background: var(--bs-tertiary-bg);
}
.app-sidebar .nav-link.active {
  background: var(--bs-primary);
  color: #fff;
}

/* Login-/Aktivierungs-Seiten */
.auth-card {
  max-width: 420px;
  margin: 4rem auto;
}

/* Pflichtfeld-Sternchen */
.pflicht::after {
  content: " *";
  color: var(--bs-danger);
  font-weight: 700;
}

/* Tabellen kompakter auf kleinen Geräten */
@media (max-width: 575.98px) {
  .table-responsive table { font-size: 0.92rem; }
}
