:root {
  --hc-brand: #182433;
}
body { background: var(--tblr-bg-surface-secondary, #f6f8fb); }
.navbar { background: var(--tblr-bg-surface, #fff); }
.navbar-brand { min-width: 13rem; }
.brand-mark {
  width:2.25rem; height:2.25rem; border-radius:.65rem;
  display:inline-grid; place-items:center;
  background:var(--hc-brand); color:#fff; font-weight:800;
  margin-right:.65rem; flex:0 0 auto;
}
.brand-text { line-height:1.05; color:var(--tblr-body-color); }
.brand-text small { font-size:.68rem; font-weight:500; color:var(--tblr-secondary); margin-top:.2rem; }
.navbar .nav-link-icon { width:1.35rem; margin-right:.35rem; }
.navbar .nav-link.active { font-weight:600; }
.app-header-sticky {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: var(--tblr-bg-surface, #fff);
  box-shadow: 0 1px 3px rgba(4, 32, 69, .08);
}
.app-navbar-primary {
  min-height: 4rem;
}
.app-navbar-secondary {
  min-height: 3rem;
  background: var(--tblr-bg-surface, #fff);
}
.app-navbar-secondary .navbar-nav {
  width: 100%;
}
.app-navbar-secondary .nav-link {
  min-height: 3rem;
  display: flex;
  align-items: center;
}
.app-navbar-secondary .nav-item {
  position: relative;
}
.app-navbar-secondary .setup-dropdown-menu {
  max-height: calc(100vh - 8rem);
  max-height: calc(100dvh - 8rem);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.setup-dropdown-menu { min-width: 18rem; padding:.4rem; }
.setup-dropdown-menu .setup-section + .setup-section { border-top:1px solid var(--tblr-border-color); }
.setup-dropdown-menu .setup-section-toggle { display:flex; align-items:center; justify-content:space-between; gap:1rem; font-weight:600; padding:.7rem .8rem; }
.setup-dropdown-menu .setup-section-chevron { font-size:1.35rem; line-height:1; transition:transform .15s ease; }
.setup-dropdown-menu .setup-section-toggle[aria-expanded="true"] .setup-section-chevron { transform:rotate(90deg); }
.setup-dropdown-menu .setup-section-items { display:none; padding:0 0 .4rem .65rem; }
.setup-dropdown-menu .setup-section-items.show { display:block; }
.setup-dropdown-menu .setup-section-items .dropdown-item { padding:.5rem .8rem; border-left:2px solid var(--tblr-border-color); }
.setup-dropdown-menu .setup-section-items .dropdown-item.active { border-left-color:var(--tblr-primary); }
.app-navbar-secondary .nav-link.active {
  color: var(--tblr-primary);
  box-shadow: none;
}
.app-navbar-secondary .nav-link.active:not(.dropdown-toggle)::after {
  display: none !important;
}
.app-navbar-secondary .nav-item.active::after,
.app-navbar-secondary .nav-item:has(> .nav-link.active)::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  border-radius: 0;
  background: var(--tblr-primary);
}
.page-header-lite { margin-bottom:1.25rem; }
.card { border-color: var(--tblr-border-color-translucent, rgba(4,32,69,.1)); }
.card-stat .card-body { min-height:116px; }
.card-stat .display-6, .card-stat .h1 { letter-spacing:-.03em; }
.table > :not(caption) > * > * { vertical-align:middle; }
.table thead th {
  font-size:.75rem; text-transform:uppercase; letter-spacing:.04em;
  color:var(--tblr-secondary); white-space:nowrap;
}
.auth-shell { min-height:100vh; display:flex; align-items:center; padding:2rem 0; }
.auth-brand { text-align:center; margin-bottom:1.5rem; }
.auth-brand .brand-mark { width:3rem; height:3rem; margin:0 auto .75rem; }
.auth-split { min-height:calc(100vh - 4rem); align-items:center; }
.auth-panel { width:100%; max-width:31rem; margin-inline:auto; }
.auth-split-brand { display:flex; align-items:center; justify-content:center; margin-bottom:1.5rem; }
.auth-split-brand .brand-mark { width:2.5rem; height:2.5rem; margin-right:.75rem; border-radius:.7rem; font-size:1.15rem; }
.auth-split-card { border:1px solid var(--tblr-border-color); box-shadow:0 .25rem 1rem rgba(4,32,69,.06); }
.auth-split-card .card-body { padding:2rem 2.5rem; }
.auth-divider { display:flex; align-items:center; gap:1rem; color:var(--tblr-secondary); font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; }
.auth-divider::before,.auth-divider::after { content:""; height:1px; flex:1; background:var(--tblr-border-color); }
.auth-illustration { display:flex; align-items:center; justify-content:center; padding:2rem; }
.auth-illustration svg { width:min(100%,31rem); height:auto; }
.password-field { position:relative; }
.password-field .form-control { padding-right:3rem; }
.password-toggle { position:absolute; top:50%; right:.6rem; transform:translateY(-50%); border:0; background:transparent; color:var(--tblr-secondary); padding:.4rem; display:inline-flex; }
.password-toggle:hover { color:var(--tblr-body-color); }
.avatar-initials { text-transform:uppercase; }
@media (max-width: 767.98px) {
  .navbar-brand { min-width:0; }
  .app-navbar-secondary .navbar-collapse { padding:.5rem 0 .75rem; }
  .navbar .nav-link { padding:.65rem .25rem; }
  .app-navbar-secondary .nav-item.active::after,
  .app-navbar-secondary .nav-item:has(> .nav-link.active)::after { display:none; }
  .auth-shell { align-items:flex-start; padding:1.25rem 0; }
  .auth-split { min-height:auto; }
  .auth-split-card .card-body { padding:1.5rem; }
  .auth-illustration { display:none; }
}

.theme-toggle { cursor:pointer; color:var(--tblr-body-color); }
.theme-toggle:hover { color:var(--tblr-primary); }
.theme-icon { display:inline-flex; align-items:center; justify-content:center; }
[data-bs-theme="light"] .theme-icon-sun { display:none; }
[data-bs-theme="dark"] .theme-icon-moon { display:none; }


.badge .status-dot {
  width: .45rem;
  height: .45rem;
  display: inline-block;
  border-radius: 50%;
  vertical-align: .05rem;
}

.student-dropzone {
  min-height: 310px;
  border: 2px dashed var(--tblr-border-color);
  border-radius: var(--tblr-border-radius-lg, .5rem);
  background: var(--tblr-bg-surface-secondary, rgba(98,105,118,.04));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2.25rem 1.5rem;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease, transform .15s ease;
}
.student-dropzone:hover,
.student-dropzone.is-dragover {
  border-color: var(--tblr-primary);
  background: rgba(var(--tblr-primary-rgb), .06);
}
.student-dropzone.is-dragover { transform: scale(1.005); }
.student-dropzone.has-file { border-style: solid; }
.student-dropzone-icon {
  width: 4.25rem;
  height: 4.25rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  color: var(--tblr-primary);
  background: rgba(var(--tblr-primary-rgb), .1);
}
.student-dropzone-file {
  max-width: 100%;
  padding: .5rem .75rem;
  border-radius: .375rem;
  background: var(--tblr-bg-surface);
  border: 1px solid var(--tblr-border-color);
  color: var(--tblr-body-color);
  font-weight: 600;
  overflow-wrap: anywhere;
}
