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

/* Login choice cards */
.login-choices {
  max-width: 700px;
  margin: 0 auto;
}

.login-card-staff {
  background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
}

.login-card-teacher {
  background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%);
}

.login-card-icon {
  font-size: 2rem;
}

.login-card-teacher .login-card-icon {
  color: #7b1fa2;
}

.btn-teacher-reg {
  background-color: #7b1fa2;
  color: #fff;
}

.btn-teacher-reg:hover {
  background-color: #6a1b9a;
  color: #fff;
}

/* 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 to replace inline styles */
.w-40 {
  width: 40%;
}

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

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

/* Colored panels for teacher registration formsets */
.formset-row.appointment-row {
  background: #f0f8f1 !important;
  border: 1px solid #a5d6a7 !important;
  border-radius: 0.375rem !important;
  padding: 1.25rem !important;
}

.formset-row.education-row {
  background: #fafafa !important;
  border: 1px solid #dee2e6 !important;
  border-radius: 0.375rem !important;
  padding: 1.25rem !important;
}

.formset-row.training-row {
  background: #d1ecf1 !important;
  border: 1px solid #bee5eb !important;
  border-radius: 0.375rem !important;
  padding: 1.25rem !important;
}

/* Add padding to duties list items within appointment panels */
.appointment-row .duties-list-container .list-group-item {
  padding-left: 0.5rem !important;
}

/* PDF split results table column widths */
.col-page-num {
  width: 80px;
}
.col-download {
  width: 100px;
}
