/* ==========================================================
   Sidebar-first layout
   ========================================================== */

/* Sidebar column: fixed width, full height on md+ */
@media (min-width: 768px) {
  .sidebar-column {
    width: 220px;
    min-width: 220px;
    max-width: 220px;
    position: sticky !important;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    transform: none !important;
    visibility: visible !important;
    z-index: 1040;
  }
}

/* Content column: takes remaining width */
.content-column {
  flex: 1;
  min-width: 0;
}

/* Content header: sticky within content column */
.content-header {
  z-index: 1030;
}

/* Sidebar branding */
.sidebar-logo {
  width: 150px;
  height: auto;
  object-fit: contain;
}

.sidebar-app-title {
  font-size: 1.25rem;
  letter-spacing: 0.05em;
  color: #fff;
}

.sidebar-app-subtitle {
  font-size: 0.8rem;
  color: #ccc;
}

/* Login page branding (larger than sidebar) */
.login-logo {
  width: 150px;
  height: auto;
  object-fit: contain;
}

.login-app-title {
  font-size: 1.75rem;
  letter-spacing: 0.05em;
}

.login-app-subtitle {
  font-size: 1.25rem;
}

/* Login page: reduce top whitespace for unauthenticated pages */
.login-page-compact {
  padding-top: 1rem !important;
}

/* Keep sidebar tidy */
.sidebar .nav-link {
  border-radius: .5rem;
  margin: .125rem .5rem;
  color: var(--bs-body-color);
}
.sidebar .nav-link.active {
  color: #fff;
  background-color: #1a5ea8;
}
.sidebar .nav-link:hover {
  color: var(--bs-body-color);
  background-color: rgba(0,0,0,.08);
}
.sidebar-section-label {
  display: block;
  padding-top: .5rem;
  padding-bottom: .25rem;
  opacity: 0.85;
  cursor: default;
}

/* Fix border rendering in card corners */
.card {
  overflow: hidden;
}

/* Edge-to-edge tables in cards - remove card-body padding for table containers */
.card-body.p-0 {
  padding: 0;
}

/* Utility classes */
.w-40 {
  width: 40%;
}

.min-vh-60 {
  min-height: 60vh;
}

.fs-forbidden-icon {
  font-size: 6rem;
}
