@charset "UTF-8";

/*
 |--------------------------------------------------------------------------
 | style.scss (entry point)
 |--------------------------------------------------------------------------
 */

:root {
  --plp-green: #006837;
  --plp-green-dark: #005028;
  --plp-yellow: #ffd100;
  --plp-white: #ffffff;
  --plp-gray: #f5f5f5;
  --plp-border: #cccccc;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  font-family: "Poppins", sans-serif;
  background-color: var(--plp-white);
  color: #333;
  height: 100%;
  overflow-x: hidden;
}

body {
  display: flex;
  flex-direction: column;
}

main {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
}

select,
select:focus,
select:active,
select:hover {
  outline: none !important;
  box-shadow: none !important;
}

/*
 |--------------------------------------------------------------------------
 | style.scss (entry point)
 |--------------------------------------------------------------------------
 */

:root {
  --plp-green: #006837;
  --plp-green-dark: #005028;
  --plp-yellow: #ffd100;
  --plp-white: #ffffff;
  --plp-gray: #f5f5f5;
  --plp-border: #cccccc;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  font-family: "Poppins", sans-serif;
  background-color: var(--plp-white);
  color: #333;
  height: 100%;
  overflow-x: hidden;
}

body {
  display: flex;
  flex-direction: column;
}

main {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
}

select,
select:focus,
select:active,
select:hover {
  outline: none !important;
  box-shadow: none !important;
}

/* Reports & Admin */

.rep-dashboard {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.rep-dashboard,
.rep-dashboard button,
.rep-dashboard input,
.rep-dashboard select,
.rep-dashboard textarea {
  font-family: "Poppins", sans-serif;
}

.rep-top-row {
  display: flex;
  gap: 16px;
  align-items: stretch;
  justify-content: flex-start;
}

.rep-sys-card {
  width: 100%;
  background: #ffffff;
  border: 1px solid #d8e3dc;
  border-radius: 8px;
  padding: 14px 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.rep-sys-card.rep-sys-card--compact {
  width: min(100%, 760px);
  min-width: 0;
  max-width: 760px;
}

.rep-sys-title {
  color: #006837;
  font-weight: 800;
  min-width: 330px;
  font-size: 0.98rem;
  font-size: 0.78rem;
  margin-bottom: 10px;
}

.rep-sys-grid {
  display: grid;
  grid-template-columns: minmax(180px, 230px) minmax(140px, 190px) auto;
  gap: 12px;
  align-items: flex-end;
  justify-content: start;
}

.rep-sys-card--compact .rep-sys-grid {
  grid-template-columns: minmax(170px, 210px) minmax(130px, 170px) auto;
  gap: 10px;
}

.rep-sys-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.rep-sys-field .app-filter-label {
  color: #006837;
  font-weight: 700;
  text-transform: uppercase;
}

.rep-sys-field .app-filter-select {
  width: 100% !important;
  min-width: 0;
}

.rep-sys-action {
  display: flex;
  align-items: flex-end;
}

.rep-group-card {
  width: 100%;
  background: #ffffff;
  border: 1px solid #d8e3dc;
  border-radius: 8px;
  padding: 14px;
}

.rep-group-title {
  color: #1e3a5f;
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}

.rep-grid-3,
.rep-grid-2 {
  display: grid;
  gap: 10px;
}

.rep-grid-3 {
  grid-template-columns: repeat(3, minmax(220px, 1fr));
}

.rep-grid-2 {
  grid-template-columns: repeat(2, minmax(240px, 1fr));
}

.rep-btn {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #d6e6dc;
  background: #f8fcf9;
  color: #154734;
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1.35;
  border-radius: 8px;
  padding: 10px 12px;
  min-height: 48px;
  text-align: left;
  word-break: break-word;
  overflow-wrap: anywhere;
  cursor: pointer;
  transition: all 0.2s ease;
}

.rep-btn:hover {
  border-color: #8fc8a7;
  background: #eef8f1;
  transform: translateY(-1px);
}

.rep-btn:focus-visible {
  outline: 2px solid #0a813c;
  outline-offset: 1px;
}

.rep-preview-modal-box {
  width: min(980px, 96vw);
  max-height: 90vh;
  overflow: auto;
  padding: 0;
}

.rep-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 18px;
  border-bottom: 1px solid #dbe6de;
  background: #f5fbf7;
}

.rep-preview-head h3 {
  margin: 0;
  color: #006837;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.rep-preview-doc-wrap {
  padding: 20px;
  background: #eef3ef;
}

.rep-doc-sheet {
  width: 100%;
  max-width: 780px;
  margin: 0 auto;
  background: #ffffff;
  border: 1px solid #cfd8d2;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
  padding: 38px 44px;
  color: #1f2937;
}

.rep-doc-header {
  text-align: center;
  border-bottom: 1px solid #d7e2da;
  padding-bottom: 12px;
  margin-bottom: 18px;
}

.rep-doc-school {
  font-size: 0.95rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.rep-doc-meta {
  margin-top: 5px;
  font-size: 0.78rem;
  color: #4b5563;
}

.rep-doc-title {
  margin: 18px 0 14px;
  text-align: center;
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1f2937;
}

.rep-doc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 16px;
  margin-bottom: 14px;
  font-size: 0.84rem;
}

.rep-doc-line {
  border-top: 1px solid #cfd8d2;
  margin: 14px 0;
}

.rep-doc-p {
  font-size: 0.88rem;
  line-height: 1.65;
  color: #374151;
  margin-bottom: 10px;
  text-align: justify;
}

.rep-doc-table {
  width: 100%;
  border-collapse: collapse;
  margin: 14px 0;
  font-size: 0.8rem;
}

.rep-doc-table th,
.rep-doc-table td {
  border: 1px solid #d7e2da;
  padding: 8px 10px;
  text-align: left;
}

.rep-doc-table th {
  background: #f5fbf7;
  color: #0f5132;
  font-weight: 700;
}

.rep-doc-sign {
  margin-top: 28px;
  display: flex;
  justify-content: flex-end;
}

.rep-doc-sign-box {
  width: 280px;
  text-align: center;
}

.rep-doc-sign-line {
  border-top: 1px solid #374151;
  margin-top: 24px;
  padding-top: 6px;
  font-size: 0.8rem;
  font-weight: 600;
}

@media (max-width: 860px) {
  .rep-preview-modal-box {
    width: 96vw;
  }

  .rep-preview-doc-wrap {
    padding: 12px;
  }

  .rep-doc-sheet {
    padding: 22px 18px;
  }

  .rep-doc-grid {
    grid-template-columns: 1fr;
  }

  .rep-doc-p {
    text-align: left;
  }

  .rep-doc-table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}

/* Tagging of Graduates status text (plain, no pills) */

.ga-status-text {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.ga-status-active {
  color: #0f7b43;
}

.ga-status-graduated {
  color: #b98300;
}

.ga-status-suspend,
.ga-status-suspended {
  color: #d32f2f;
}

@media (max-width: 1024px) {
  .rep-sys-grid,
  .rep-sys-card--compact .rep-sys-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .rep-sys-action {
    grid-column: 1/-1;
    justify-content: flex-start;
  }

  .rep-sys-action .req-btn-save {
    min-width: 140px !important;
  }

  .rep-grid-3 {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }
}

@media (max-width: 860px) {
  .rep-sys-grid {
    grid-template-columns: 1fr;
  }

  .rep-sys-card.rep-sys-card--compact {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }

  .rep-sys-grid .app-filter-select {
    width: 100% !important;
  }

  .rep-sys-grid .req-btn-save {
    width: 100%;
    min-width: 0 !important;
  }

  .rep-grid-3,
  .rep-grid-2 {
    grid-template-columns: 1fr;
  }

  .rep-btn {
    min-height: 44px;
    padding: 10px;
  }
}

body {
  display: flex;
  flex-direction: column;
}

main {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
}

select,
select:focus,
select:active,
select:hover {
  outline: none !important;
  box-shadow: none !important;
}

.plp-header {
  background-color: var(--plp-green);
  width: 100%;
  min-height: 100px;
}

.plp-header-logo {
  width: auto;
  height: 72px;
  -o-object-fit: contain;
  object-fit: contain;
  flex-shrink: 0;
  transform: translateY(2px);
}

.plp-footer {
  background-color: var(--plp-white);
  border-top: 2px dashed #999;
  padding: 12px 20px;
  font-size: 0.88rem;
  color: #555555;
  z-index: 10;
  position: relative;
  margin-top: auto;
}

.footer-powered-line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px;
}

.footer-line-1,
.footer-line-2 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}

.plp-footer a {
  color: #333333;
  text-decoration: underline;
  font-weight: 600;
}

.plp-footer a:hover {
  color: var(--plp-green);
}

.footer-logo-rushpoint {
  display: inline-block;
  height: 32px;
  width: auto;
  vertical-align: middle;
  margin: 0 4px;
}

.footer-logo-obanana {
  display: inline-block;
  height: 30px;
  width: auto;
  vertical-align: middle;
  margin: 0 4px;
}

.obanana-text {
  color: #d4a017;
  font-size: 1rem;
  font-weight: 700;
}

.student-portal-body {
  background-color: #ffffff;
  min-height: 100vh;
}

.student-portal-body .student-layout {
  display: flex;
  min-height: 100vh;
  position: relative;
}

.student-portal-body .sidebar-overlay {
  display: none;
}

.student-portal-body .sidebar-toggle {
  display: none;
  border: 0;
  background: transparent;
  color: #333333;
  padding: 0;
}

.student-portal-body .plp-sidebar {
  width: 285px;
  min-width: 285px;
  height: 100vh;
  background-color: #0a813c;
  border-top-right-radius: 22px;
  border-bottom-right-radius: 22px;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  box-shadow: 4px 0 14px rgba(0, 0, 0, 0.15);
  z-index: 5;
}

.student-portal-body .sidebar-brand {
  padding: 10px 14px 8px;
  border-bottom: 2px solid rgba(255, 255, 255, 0.9);
  margin-bottom: 10px;
}

.student-portal-body .sidebar-logo {
  width: 94px;
  height: auto;
  display: block;
  margin: 0 auto 4px;
}

.student-portal-body .sidebar-text-logo {
  width: 200px;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.student-portal-body .sidebar-nav {
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.student-portal-body .sidebar-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border-radius: 8px;
  color: #ffffff;
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  transition: all 0.2s ease;
}

.student-portal-body .sidebar-link svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.student-portal-body .sidebar-link span {
  font-size: 1rem;
  line-height: 1;
}

.student-portal-body .sidebar-link:hover {
  background-color: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

.student-portal-body .sidebar-link.active {
  background-color: #ffffff;
  color: #0a813c;
  font-weight: 700;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
}

.student-portal-body .sidebar-logout {
  margin-top: auto;
  padding: 8px;
}

.student-portal-body .logout-link {
  background-color: #ffffff;
  color: #111111;
  border-radius: 10px;
  padding: 12px 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-decoration: none;
  font-size: 1rem;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
}

.student-portal-body .logout-link svg {
  width: 22px;
  height: 22px;
}

.student-portal-body .student-main-wrapper {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background-color: #ffffff;
  overflow-y: visible !important;
  overflow-x: hidden;
}

.student-portal-body .content-footer-wrap {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: calc(100vh - 72px);
  overflow-y: visible !important;
  overflow-x: hidden;
}

.student-portal-body .student-topbar {
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 28px;
  background-color: #ffffff;
  border-bottom: 1px solid #0a813c;
  position: relative;
  z-index: 10;
}

.student-portal-body .topbar-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
  border: 3px solid #ffffff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.student-portal-body .student-page-header {
  position: relative;
  margin-top: 6px;
  border-top: 2px solid #0a813c;
  height: 40px;
  background-color: #0a813c;
  color: #ffffff;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.6px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
}

.student-portal-body .student-content {
  flex: 0 0 auto;
  padding: 30px 28px 16px;
  overflow-y: visible !important;
  overflow-x: hidden;
  background-color: #ffffff;
}

.student-portal-body .student-main-wrapper .plp-footer {
  background-color: transparent;
  border-top: 1px dashed #a8a8a8;
  font-size: 11px;
  color: #555555;
  padding: 6px 12px 8px;
  margin-top: auto;
}

.student-portal-body .student-main-wrapper .plp-footer p {
  margin-bottom: 0;
  line-height: 1.15;
}

.student-portal-body .student-main-wrapper .plp-footer a {
  color: #5f5f5f;
}

/* Keep registrar shell stable: long pages scroll inside content area, not the full document. */

.registrar-body .content-footer-wrap {
  min-height: calc(100vh - 72px);
  max-height: calc(100vh - 72px);
  overflow: hidden;
}

.registrar-body .student-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto !important;
  overflow-x: hidden;
  scrollbar-gutter: stable;
}

.registrar-body .student-main-wrapper .plp-footer {
  flex-shrink: 0;
}

.registrar-body .student-page-header {
  flex-shrink: 0;
  min-height: 40px;
}

@media (max-width: 991px) {
  .student-portal-body .plp-sidebar {
    width: 250px;
    min-width: 250px;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 1000;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
  }

  .student-portal-body .plp-sidebar.sidebar-open {
    transform: translateX(0);
  }

  .student-portal-body .sidebar-overlay {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease;
  }

  .student-portal-body .sidebar-overlay.active {
    opacity: 1;
    visibility: visible;
  }

  .student-portal-body .sidebar-toggle {
    display: inline-flex;
    align-items: center;
    margin-right: auto;
  }
}

@media (max-width: 768px) {
  .student-portal-body .student-content {
    padding: 16px 12px 10px;
  }

  .student-portal-body .student-page-header {
    font-size: 0.95rem;
    height: 36px;
  }

  .registrar-body .student-page-header {
    min-height: 36px;
  }
}

@media (max-width: 991px) {
  .registrar-body .plp-sidebar {
    width: 250px;
    min-width: 250px;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 1000;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    border-top-right-radius: 22px;
    border-bottom-right-radius: 22px;
  }

  .registrar-body .plp-sidebar.sidebar-open {
    transform: translateX(0);
  }

  .registrar-body .sidebar-overlay {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease;
  }

  .registrar-body .sidebar-overlay.active {
    opacity: 1;
    visibility: visible;
  }

  .registrar-body .sidebar-toggle {
    display: inline-flex;
    align-items: center;
    margin-right: auto;
  }
}

/* Access module reusable blocks */

.access-module-section {
  position: relative;
  text-align: center;
  padding: 0 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  min-height: calc(100vh - 200px);
  background: #efefef;
}

.bg-watermark {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.27;
  pointer-events: none;
}

.bg-watermark img {
  width: min(80vw, 700px);
  height: auto;
}

.access-module-title {
  font-size: clamp(2.1rem, 8vw, 5.5rem);
  font-weight: 900;
  color: transparent;
  text-transform: uppercase;
  letter-spacing: clamp(1px, 0.6vw, 6px);
  margin-bottom: 50px;
  position: relative;
  z-index: 1;
  -webkit-text-stroke: 3px var(--plp-green);
}

.module-cards-wrapper {
  position: relative;
  z-index: 1;
  max-width: 900px;
  width: 100%;
}

.module-card {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.module-card-icon {
  width: 100%;
  max-width: 200px;
  aspect-ratio: 1/1;
  border: 2px solid var(--plp-green);
  border-radius: 4px;
  background: #fff;
  margin-bottom: 12px;
}

.module-card-btn {
  display: inline-block;
  background-color: var(--plp-green);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 10px 32px;
  border: none;
  border-radius: 4px;
  text-decoration: none;
  letter-spacing: 0.4px;
  min-width: 150px;
  text-align: center;
}

.module-card-btn:hover {
  color: var(--plp-yellow);
  background-color: var(--plp-green-dark);
}

/* New module selector reusable blocks */

.am-section {
  position: relative;
  min-height: calc(100vh - 190px);
  overflow: hidden;
  background: #efefef;
}

.am-watermark {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.25;
  pointer-events: none;
}

.am-watermark img {
  width: min(70vw, 700px);
  height: auto;
}

.am-title {
  font-size: clamp(2.1rem, 8vw, 5.5rem);
  font-weight: 900;
  letter-spacing: clamp(1px, 0.6vw, 6px);
  color: transparent;
  -webkit-text-stroke: 3px #006837;
  line-height: 1;
  z-index: 1;
}

.am-cards-row {
  max-width: 900px;
  z-index: 1;
}

.am-card {
  max-width: 230px;
}

.am-card-box {
  width: 100%;
  aspect-ratio: 1/1;
  border: 2px solid #0a7d3f;
  border-radius: 4px;
  background: #ffffff;
  margin-bottom: 12px;
}

.am-btn {
  background-color: #006837;
  color: #fff;
  font-weight: 800;
  font-size: clamp(0.82rem, 1.4vw, 1rem);
  border-radius: 4px;
  padding: 8px 10px;
  letter-spacing: 0.4px;
}

.am-btn:hover,
.am-btn:focus {
  background-color: #005028;
  color: #ffd100;
}

/* Login */

.login-body {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.login-bg-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}

.login-bg-wrapper::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(218, 165, 32, 0.25);
  z-index: 1;
  pointer-events: none;
}

.login-main {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
  padding: 24px;
}

.login-card-wrapper {
  position: relative;
  width: 100%;
  max-width: 480px;
}

.login-card {
  background: #ffffff;
  border-radius: 12px;
  padding: 40px 36px 36px;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.25);
}

.login-card-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.6rem;
  font-weight: 900;
  color: #222;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 28px;
}

.login-field-group {
  margin-bottom: 20px;
}

.login-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: #0a7d3f;
  text-transform: uppercase;
  letter-spacing: 3px;
  margin-bottom: 6px;
}

.login-input {
  width: 100%;
  padding: 10px 14px;
  font-size: 0.95rem;
  font-family: "Poppins", sans-serif;
  border: 1px solid #ddd;
  border-radius: 6px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  color: #333;
  background: #fff;
}

.login-input::-moz-placeholder {
  color: #bbb;
}

.login-input::placeholder {
  color: #bbb;
}

.login-input:focus {
  border-color: #0a7d3f;
  box-shadow: 0 0 0 3px rgba(26, 110, 26, 0.12);
}

.login-input.is-invalid {
  border-color: #dc3545;
}

.login-password-wrapper {
  position: relative;
}

.login-password-wrapper .login-input {
  padding-right: 44px;
}

.password-toggle-btn {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  display: flex;
  align-items: center;
}

.password-toggle-btn:hover svg {
  fill: #0a7d3f;
}

.login-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.82rem;
  color: #555;
  margin-top: 6px;
}

.login-options .form-check-label {
  font-size: 0.82rem;
  color: #555;
}

.login-forgot {
  font-size: 0.82rem;
  color: #555;
}

.login-forgot a {
  color: #0a7d3f;
  font-weight: 700;
  text-decoration: underline;
}

.login-forgot a:hover {
  color: #145a14;
}

.login-submit-btn {
  display: inline-block;
  background-color: #0a7d3f;
  color: #ffffff;
  font-family: "Poppins", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  padding: 12px 60px;
  border: none;
  border-radius: 30px;
  cursor: pointer;
  letter-spacing: 0.5px;
  transition: all 0.2s ease;
  min-width: 200px;
}

.login-submit-btn:hover {
  background-color: #145a14;
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(26, 110, 26, 0.35);
}

.login-bg-wrapper .plp-footer {
  background-color: transparent;
  border-top: 2px dashed rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.85);
  position: relative;
  z-index: 2;
}

.login-bg-wrapper .plp-footer a {
  color: rgba(255, 255, 255, 0.95);
}

.login-bg-wrapper .plp-footer a:hover {
  color: #1a2a6c;
}

.login-bg-wrapper .plp-footer .obanana-text {
  color: #d4a017;
}

/* Form controls */

.form-label-plp {
  color: #006837;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 3px;
  margin-bottom: 7px;
}

.form-input-long,
.form-input-short {
  border: 1px solid #bfbfbf;
  border-radius: 8px;
  padding: 0 14px;
  font-size: 0.95rem;
  color: #555;
  font-family: "Poppins", sans-serif;
  background-color: #ffffff;
  height: 42px;
  width: 100%;
  box-shadow: none;
}

.form-input-long:focus,
.form-input-short:focus {
  outline: none;
  border-color: #9c9c9c;
  box-shadow: none;
}

/* Filter grid guarantees cross-row alignment */

.filter-grid {
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 14px 20px;
}

.filter-cell--action {
  align-self: end;
}

.btn-view-cor {
  width: 100%;
  height: 42px;
  background-color: #00843d;
  color: #ffffff;
  border: none;
  border-radius: 4px;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.24);
}

.btn-view-cor:hover {
  background-color: #006f33;
}

.applicant-apply-now-link {
  color: #0f7b43;
  font-size: 0.86rem;
  font-weight: 600;
  text-decoration: none;
}

.applicant-apply-now-link:hover {
  color: #0c6638;
  text-decoration: underline;
}

.app-apply-shell {
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 20px 12px;
}

.app-apply-card {
  width: 100%;
  max-width: 880px;
  background: #ffffff;
  border: 1px solid #dbe4db;
  border-radius: 14px;
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.12);
  padding: 20px;
}

.app-apply-intro-card {
  max-width: 860px;
}

.app-apply-basic-card {
  max-width: 760px;
  border-color: #0f7b43;
  background: #0f7b43;
  color: #ffffff;
  box-shadow: 0 16px 36px rgba(3, 52, 27, 0.34);
  padding: 22px 22px 18px;
}

.app-apply-basic-card-minimal {
  max-width: 560px;
}

.app-apply-title {
  margin: 0 0 10px;
  font-size: 1.9rem;
  font-weight: 800;
  color: #0f7b43;
}

.app-apply-basic-card .app-apply-title {
  color: #ffffff;
  font-size: 1.6rem;
  margin-bottom: 14px;
  text-align: center;
}

.app-apply-subtitle {
  margin: 0 0 14px;
  color: #2f4a3d;
  font-size: 1rem;
}

.app-apply-inline-note {
  margin: 0 0 14px;
  border: 1px solid #dce9df;
  background: #f4fbf6;
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 0.86rem;
  color: #21533a;
  font-weight: 600;
}

.app-apply-basic-subtitle {
  margin: 0 auto 14px;
  max-width: 720px;
  text-align: center;
  color: #e8f7ed;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.35;
}

.app-apply-basic-subtitle-minimal {
  margin-bottom: 10px;
  font-size: 0.84rem;
}

.app-apply-section-line {
  width: 100%;
  border-top: 1px solid rgba(232, 247, 236, 0.55);
  margin-bottom: 10px;
}

.app-apply-reminder-group {
  border: 1px solid #dfe6df;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 16px;
}

.app-apply-reminder-group h3 {
  margin: 0 0 8px;
  font-size: 1.1rem;
  color: #193a2d;
  font-weight: 700;
}

.app-apply-reminder-group ul {
  margin: 0;
  padding-left: 20px;
  color: #3a4f45;
}

.app-apply-reminder-group li {
  margin-bottom: 6px;
}

.app-apply-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 12px;
  border: 1px solid #e2e8e3;
  border-radius: 10px;
  padding: 10px 12px;
}

.app-apply-check input {
  margin-top: 2px;
}

.app-apply-check span {
  color: #2f453a;
  font-weight: 500;
}

.app-apply-check-input {
  width: 16px;
  height: 16px;
  margin: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: #ffffff;
  border: 2px solid #0a813c;
  border-radius: 3px;
  cursor: pointer;
  position: relative;
  flex: 0 0 16px;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.app-apply-check-input:checked {
  border-color: #006837;
  background: #006837;
}

.app-apply-check-input:checked::after {
  content: "";
  position: absolute;
  width: 4px;
  height: 7px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  top: 1px;
  left: 4px;
  transform: rotate(45deg);
}

.app-apply-check-input:hover {
  box-shadow: 0 0 0 3px rgba(0, 104, 55, 0.14);
}

.app-apply-check-input:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 104, 55, 0.2);
}

.app-apply-errors {
  border: 1px solid #f5c2c7;
  background: #fff5f5;
  color: #9f1239;
  border-radius: 8px;
  padding: 8px 12px;
  margin-bottom: 12px;
  font-size: 0.84rem;
}

.app-apply-errors ul {
  margin: 0;
  padding-left: 18px;
}

.app-apply-actions {
  margin-top: 10px;
  display: flex;
  justify-content: flex-end;
}

.app-apply-actions-spread {
  justify-content: space-between;
  align-items: center;
}

.app-apply-actions-sticky {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.24);
}

.app-apply-primary-btn {
  min-height: 40px;
  min-width: 132px;
  border-radius: 10px;
}

.app-apply-link-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 18px;
  border-radius: 10px;
  border: 1px solid #c7d3c8;
  background: #ffffff;
  color: #3f5647;
  font-weight: 600;
  text-decoration: none;
}

.app-apply-link-btn:hover {
  text-decoration: none;
  background: #f4f7f4;
  color: #2c3f33;
}

.app-apply-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px 14px;
}

.app-apply-grid-single {
  grid-template-columns: 1fr;
  gap: 9px;
}

.app-apply-grid-compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
}

.app-apply-inline-check {
  margin-top: 7px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.78rem;
  color: #e8f7ec;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.app-apply-inline-check span {
  color: #e8f7ec;
}

.app-apply-inline-check input[type=checkbox] {
  width: 14px;
  height: 14px;
  min-width: 14px;
  border-width: 1.5px;
}

.app-apply-inline-check input[type=checkbox]:checked::after {
  font-size: 10px;
}

.app-apply-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.app-apply-field label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #d8f1df;
}

.app-apply-label-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.app-apply-field input,
.app-apply-field select,
.app-apply-select-trigger {
  width: 100%;
  min-height: 40px;
  border: 1px solid #d4ded6;
  border-radius: 12px;
  padding: 8px 11px;
  font-size: 0.9rem;
  color: #21312a;
  background-color: #ffffff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.app-apply-selectbox {
  position: relative;
  width: 100%;
}

.app-apply-native-select.is-enhanced {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}

.app-apply-select-trigger {
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  text-align: left;
}

.app-apply-native-select.is-enhanced + .app-apply-select-trigger {
  display: inline-flex;
}

.app-apply-select-trigger-text {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-apply-select-trigger-caret {
  width: 10px;
  height: 10px;
  border-right: 2px solid #0f7b43;
  border-bottom: 2px solid #0f7b43;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 0.2s ease;
}

.app-apply-field select {
  border-color: #a9cdb7;
  padding-right: 34px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #0f7b43 50%), linear-gradient(135deg, #0f7b43 50%, transparent 50%);
  background-position: calc(100% - 17px) calc(50% + 1px), calc(100% - 11px) calc(50% + 1px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

.app-apply-native-select.is-enhanced + .app-apply-select-trigger {
  background-image: none;
}

.app-apply-selectbox.is-open .app-apply-select-trigger-caret {
  transform: rotate(225deg) translateY(2px);
}

.app-apply-field select:hover {
  border-color: #0f7b43;
  box-shadow: 0 0 0 2px rgba(15, 123, 67, 0.12);
}

.app-apply-field select option {
  background-color: #ffffff;
  color: #21312a;
}

.app-apply-select-menu {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  margin: 0;
  padding: 6px;
  list-style: none;
  background: #ffffff;
  border: 1px solid #2d8b5a;
  border-radius: 12px;
  box-shadow: 0 12px 24px rgba(9, 52, 30, 0.2);
  max-height: 220px;
  overflow-y: auto;
  z-index: 30;
}

.app-apply-selectbox.is-open .app-apply-select-menu {
  display: block;
}

.app-apply-select-option-btn {
  width: 100%;
  border: 0;
  border-radius: 9px;
  background: #ffffff;
  color: #163b28;
  text-align: left;
  padding: 9px 10px;
  font-size: 0.95rem;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color 0.16s ease, color 0.16s ease, font-weight 0.16s ease;
}

.app-apply-select-option-btn:hover,
.app-apply-select-option-btn:focus,
.app-apply-select-option-btn.is-active,
.app-apply-select-option-btn:active {
  outline: none;
  background: #0f7b43;
  color: #ffffff;
}

.app-apply-select-option-btn.is-selected {
  background: rgba(15, 123, 67, 0.1);
  color: #0f7b43;
  font-weight: 600;
}

.app-apply-field input:focus,
.app-apply-field select:focus,
.app-apply-select-trigger:focus,
.app-apply-selectbox.is-open .app-apply-select-trigger {
  outline: none;
  border-color: #0f7b43;
  box-shadow: 0 0 0 4px rgba(15, 123, 67, 0.18);
}

.app-apply-field-check {
  justify-content: flex-end;
  align-self: end;
}

.app-apply-field-checkline {
  justify-content: flex-start;
}

.app-apply-field-check-minimal {
  margin-top: 0;
  grid-column: span 2;
}

.app-apply-check-inline {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 40px;
  width: 100%;
  padding: 0 11px;
  border: 1px solid rgba(232, 247, 236, 0.36);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  color: #e8f7ec;
  font-size: 0.8rem;
  margin-bottom: 0;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.app-apply-check-inline-minimal {
  justify-content: flex-start;
  gap: 8px;
  min-height: 24px;
  width: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #e8f7ec;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0;
}

.app-apply-check-inline-minimal input[type=checkbox] {
  margin-top: 0;
}

.app-apply-basic-form .setup-checkbox-label.app-apply-inline-check input[type=checkbox],
.app-apply-basic-form .setup-checkbox-label.app-apply-check-inline-minimal input[type=checkbox] {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  margin-top: 0 !important;
  border-radius: 3px !important;
}

.app-apply-check-inline-minimal span {
  color: #e8f7ec;
}

.app-apply-field-full {
  grid-column: span 2;
}

.app-apply-field-compact {
  grid-column: span 1;
}

.app-apply-field-type select {
  width: 100%;
  max-width: none;
}

.app-apply-actions-sticky .app-apply-link-btn {
  min-width: 96px;
}

.app-apply-actions-sticky .app-apply-primary-btn {
  width: 140px;
  min-width: 140px;
}

.app-apply-actions-minimal {
  margin-top: 14px;
}

.app-apply-clear-btn {
  background: #f2de5a;
  border-color: #f2de5a;
  color: #2d3a32;
  font-weight: 700;
}

.app-apply-clear-btn:hover {
  background: #e4d04d;
  color: #1f2a24;
}

.app-apply-login-note {
  margin: 8px 0 0;
  font-size: 0.76rem;
  color: #d8eee0;
}

.app-apply-login-note a {
  color: #ffffff;
  font-weight: 700;
  text-decoration: underline;
}

.applicant-preview-nav {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 auto 10px;
  padding: 10px;
  border: 1px solid #dce6df;
  border-radius: 10px;
  background: #ffffff;
}

.applicant-preview-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 7px 12px;
  border-radius: 8px;
  border: 1px solid #c8d5cd;
  background: #f5faf7;
  color: #20533a;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}

.applicant-preview-link:hover {
  text-decoration: none;
  background: #ebf6ef;
  color: #16452f;
}

.applicant-preview-link.active {
  background: #0f7b43;
  color: #ffffff;
  border-color: #0f7b43;
}

@media (max-width: 767px) {
  .app-apply-title {
    font-size: 1.55rem;
  }

  .app-apply-grid {
    grid-template-columns: 1fr;
  }

  .app-apply-grid-compact {
    grid-template-columns: 1fr;
  }

  .app-apply-inline-check {
    font-size: 0.76rem;
  }

  .app-apply-field-full {
    grid-column: span 1;
  }

  .app-apply-field-compact {
    grid-column: span 1;
  }

  .app-apply-field-type select {
    max-width: none;
  }

  .app-apply-actions-spread {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .app-apply-link-btn,
  .app-apply-primary-btn {
    width: 100%;
  }
}

/* COR */

.cor-scroll-wrapper {
  width: 100%;
  display: flex;
  justify-content: center;
}

.cor-container {
  border: 2px solid #000;
  border-radius: 4px;
  padding: 0;
  background-color: #fff;
  margin-top: 30px;
  overflow: hidden;
  width: 210mm;
  min-height: 250mm;
  margin-left: auto;
  margin-right: auto;
  transform-origin: top center;
}

.cor-header {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 8px 20px;
  min-height: 70px;
  background-color: #006837;
  border-bottom: 2px solid #006837;
}

.cor-header-left {
  display: flex;
  align-items: center;
  gap: 0;
}

.cor-header-left img,
.cor-school-text-img {
  width: auto;
  height: 48px;
  flex-shrink: 0;
  -o-object-fit: contain;
  object-fit: contain;
}

.cor-header-center {
  text-align: center;
  padding: 0 12px;
  white-space: nowrap;
}

.cor-title {
  font-family: "Roboto", "Poppins", sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  margin: 0;
  line-height: 1;
}

.cor-header-right {
  text-align: right;
  white-space: nowrap;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  align-self: stretch;
}

.cor-label {
  font-size: 0.65rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
  text-transform: uppercase;
}

.cor-reg-number {
  font-size: 0.85rem;
  font-weight: 700;
  color: #ff3333;
  margin: 0;
}

.cor-student-info {
  padding: 20px 30px;
  border-bottom: 1px solid #000;
}

.cor-info-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6px;
}

.cor-info-row:last-child {
  margin-bottom: 0;
}

.cor-info-group {
  display: flex;
  flex: 1;
  align-items: baseline;
  gap: 4px;
  min-width: 0;
}

.cor-info-label,
.cor-info-value {
  font-size: 0.7rem;
  color: #000;
  font-weight: 700;
}

.cor-info-label {
  white-space: nowrap;
}

.cor-schedule-header {
  background-color: #006837;
  padding: 8px;
  text-align: center;
}

.cor-schedule-title {
  font-size: 0.75rem;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  margin: 0;
  letter-spacing: 1px;
}

.cor-table {
  width: 100%;
  border-collapse: collapse;
}

.cor-table thead {
  background-color: #fff;
  border-bottom: 1px solid #000;
}

.cor-th,
.cor-td {
  padding: 10px 12px;
  font-size: 0.7rem;
  color: #000;
  border: none;
  font-weight: 700;
  text-align: left;
}

.cor-table tbody tr {
  border-bottom: 1px solid #ddd;
}

.cor-table tbody tr:last-child {
  border-bottom: none;
}

.cor-td {
  vertical-align: top;
}

.cor-td:nth-child(2) {
  white-space: normal;
}

.cor-totals {
  padding: 15px 30px;
  border-top: 1px solid #000;
}

.cor-totals-text {
  font-size: 0.7rem;
  color: #000;
  margin: 0;
}

.cor-note-bar {
  background-color: #006837;
  padding: 8px;
  text-align: center;
}

.cor-note-text {
  font-size: 0.7rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
}

.cor-signatures {
  display: flex;
  justify-content: space-between;
  padding: 40px 60px 30px;
  margin-top: 20px;
}

.cor-signature-left,
.cor-signature-right {
  text-align: center;
  flex: 1;
  max-width: 300px;
}

.cor-signature-left {
  margin-right: 80px;
}

.cor-signature-right {
  margin-left: 80px;
}

.cor-signature-name {
  font-size: 0.7rem;
  font-weight: 700;
  color: #000;
  text-transform: uppercase;
  margin: 0 0 5px 0;
}

.cor-signature-role {
  font-size: 0.65rem;
  color: #555;
  margin: 0;
}

/* Schedule */

.sched-page-container {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.sched-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background-color: #ffffff;
  border: 2px solid #c0c0c0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.sched-th {
  background-color: #006837;
  color: #ffffff;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 0.85rem;
  padding: 12px 16px;
  text-align: center;
  letter-spacing: 0.3px;
}

.sched-td {
  font-family: "Poppins", sans-serif;
  font-size: 0.85rem;
  color: #333;
  padding: 12px 16px;
  text-align: center;
  border-bottom: 1px solid #c0c0c0;
}

.sched-table tbody tr:last-child .sched-td {
  border-bottom: none;
}

.sched-table tbody tr:hover {
  background-color: #f6fbf8;
}

.weekly-box {
  background-color: #ffffff;
  border-radius: 8px;
  padding: 24px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.weekly-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #006837;
  margin: 0 0 20px 0;
}

.weekly-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  overflow: hidden;
}

.weekly-col {
  display: flex;
  flex-direction: column;
  border-right: 1px solid #e0e0e0;
}

.weekly-col:last-child {
  border-right: none;
}

.weekly-day-header {
  background-color: #ffffff;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 0.78rem;
  color: #333;
  text-align: center;
  padding: 10px 4px;
  border-bottom: 1px solid #e0e0e0;
}

.weekly-day-body {
  flex: 1;
  padding: 8px 6px;
  min-height: 140px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.weekly-card {
  background-color: #006837;
  border-radius: 6px;
  padding: 10px 8px;
  text-align: center;
  color: #ffffff;
}

.wc-code {
  font-family: "Poppins", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  margin: 0 0 3px 0;
}

.wc-name {
  font-family: "Poppins", sans-serif;
  font-size: 0.68rem;
  font-weight: 400;
  margin: 0 0 5px 0;
  line-height: 1.3;
}

.wc-time,
.wc-room {
  font-family: "Poppins", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  margin: 0 0 3px 0;
}

.wc-room {
  margin: 0;
  letter-spacing: 0.3px;
}

.sched-scroll-wrapper,
.weekly-scroll-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
}

.sched-scroll-wrapper {
  border-radius: 8px;
}

/* Toast */

.toast-notification {
  position: fixed;
  top: 20px;
  right: 20px;
  background-color: #d4edda;
  border: 1px solid #28a745;
  border-radius: 8px;
  padding: 15px 20px;
  display: none;
  align-items: center;
  gap: 15px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.toast-notification.show {
  display: flex;
  opacity: 1;
  visibility: visible;
}

.toast-message {
  font-size: 0.9rem;
  color: #155724;
  font-weight: 600;
  margin: 0;
}

.toast-close {
  background: none;
  border: none;
  font-size: 1.5rem;
  color: #155724;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  opacity: 0.7;
  transition: opacity 0.2s ease;
}

.toast-close:hover {
  opacity: 1;
}

.toast-notification.toast-error {
  background-color: #f8d7da;
  border-color: #dc3545;
}

.toast-notification.toast-error .toast-message,
.toast-notification.toast-error .toast-close {
  color: #842029;
}

.toast-notification.toast-warning {
  background-color: #fff3cd;
  border-color: #ffc107;
}

.toast-notification.toast-warning .toast-message,
.toast-notification.toast-warning .toast-close {
  color: #664d03;
}

/* Calendar */

.cal-controls {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.cal-nav {
  display: flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
}

.cal-btn {
  background: #fff;
  border: 1px solid #ccc;
  color: #333333;
  font-family: "Poppins", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  padding: 6px 13px;
  cursor: pointer;
  line-height: 1.4;
  transition: background 0.15s ease;
}

.cal-btn:first-child {
  border-radius: 4px 0 0 4px;
}

.cal-btn:last-child {
  border-radius: 0 4px 4px 0;
}

.cal-btn:not(:first-child) {
  border-left: none;
}

.cal-btn:hover {
  background: #f0f0f0;
}

.cal-btn svg {
  display: block;
}

.cal-month-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #333333;
  margin: 0;
  line-height: 1.2;
  flex: 1;
  text-align: center;
}

.cal-legend {
  text-align: right;
  flex-shrink: 0;
}

.cal-legend strong {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #333333;
  margin-bottom: 5px;
}

.cal-legend-items {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.cal-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8rem;
  color: #333333;
}

.dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}

.dot-holiday {
  background-color: #e53935;
}

.dot-event {
  background-color: #1e6fe0;
}

/* Reuses .sched-th for the day-name header row */

.cal-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background-color: #fff;
  border: 2px solid #c0c0c0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
  table-layout: fixed;
}

.cal-td {
  vertical-align: top;
  padding: 10px 12px;
  border: 1px solid #c0c0c0;
  height: 110px;
  font-family: "Poppins", sans-serif;
  background-color: #fafafa;
  width: 14.2857142857%;
  position: relative;
}

.cal-td.empty-cell {
  background-color: #ebebeb;
}

.cal-td.today-cell {
  background-color: rgba(0, 104, 55, 0.1);
  border-color: rgba(0, 104, 55, 0.3);
}

.cal-td.holiday-cell {
  background-color: rgba(229, 57, 53, 0.12);
  border-color: rgba(229, 57, 53, 0.35);
}

.cal-td.event-cell {
  background-color: rgba(30, 111, 224, 0.1);
  border-color: rgba(30, 111, 224, 0.3);
}

.day-number {
  font-size: 1rem;
  font-weight: 600;
  color: #333333;
  line-height: 1;
}

.cal-td.today-cell .day-number {
  color: #006837;
}

.cal-td.holiday-cell .day-number {
  color: #c62828;
}

.cal-td.event-cell .day-number {
  color: #1565c0;
}

.cal-event-label {
  position: absolute;
  bottom: 8px;
  right: 10px;
  left: 10px;
  font-size: 0.6rem;
  font-weight: 700;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: right;
}

.cal-td.holiday-cell .cal-event-label {
  color: #c62828;
}

.cal-td.event-cell .cal-event-label {
  color: #1565c0;
}

/* Calendar Event Popup (mobile tap-to-reveal) */

.cal-event-popup {
  position: fixed;
  z-index: 9999;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
  padding: 14px 18px;
  min-width: 180px;
  max-width: 260px;
  font-family: "Poppins", sans-serif;
  pointer-events: auto;
  animation: calPopupIn 0.18s ease;
}

@keyframes calPopupIn {
  from {
    opacity: 0;
    transform: translateY(6px) scale(0.96);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.cal-event-popup::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 12px;
  height: 12px;
  background: #fff;
  border-radius: 2px;
  rotate: 45deg;
  box-shadow: -2px -2px 4px rgba(0, 0, 0, 0.06);
}

.cal-popup-type {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 4px;
}

.cal-popup-type.popup-holiday {
  color: #c62828;
}

.cal-popup-type.popup-event {
  color: #1565c0;
}

.cal-popup-type .popup-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.popup-holiday .popup-dot {
  background: #e53935;
}

.popup-event .popup-dot {
  background: #1e6fe0;
}

.cal-popup-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: #1a1a2e;
  line-height: 1.35;
}

/* Profile / Setup Wizard */

.setup-steps {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}

.step-item {
  flex-shrink: 0;
}

.step-pill {
  padding: 7px 22px;
  border-radius: 30px;
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  font-weight: 700;
  border: 2px solid #006837;
  background-color: #fff;
  color: #006837;
  white-space: nowrap;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  transition: background 0.2s, color 0.2s;
  cursor: pointer;
}

.step-item.active .step-pill {
  background-color: #006837;
  color: #fff;
}

.step-item.completed .step-pill {
  background-color: #005028;
  color: #fff;
}

.step-line {
  flex: 1;
  height: 2px;
  background-color: #ccc;
  margin: 0 4px;
  transition: background 0.2s;
}

.step-line.active {
  background-color: #006837;
}

.setup-form-container {
  background: #fff;
  border-radius: 8px;
  padding: 32px 36px;
  border: 2px dashed #006837;
  margin-bottom: 20px;
  width: auto;
  max-width: 100%;
}

.setup-section {
  margin-bottom: 28px;
}

.setup-section-header {
  border-bottom: 2px solid #006837;
  margin-bottom: 20px;
  padding-bottom: 4px;
}

.setup-section-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: #333333;
  margin: 0;
}

.setup-subsection-title {
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: #006837;
  margin: 0 0 12px;
}

.setup-divider {
  border: none;
  border-top: 1px solid #e8e8e8;
  margin: 20px 0;
}

.setup-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
  align-items: flex-end;
}

.setup-col {
  flex: 1;
  min-width: 130px;
}

.setup-col-sm {
  flex: 0 0 90px;
  min-width: 80px;
}

.setup-col-toggle {
  flex: 1;
  min-width: 200px;
  display: flex;
  align-items: center;
}

.setup-label {
  color: #006837;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 3px;
  margin-bottom: 7px;
  display: block;
}

.setup-input {
  border: 1px solid #bfbfbf;
  border-radius: 8px;
  padding: 0 14px;
  font-size: 0.95rem;
  color: #555;
  font-family: "Poppins", sans-serif;
  background-color: #ffffff;
  height: 42px;
  width: 100%;
  box-shadow: none;
  outline: none;
  -webkit-appearance: auto;
  -moz-appearance: auto;
  appearance: auto;
}

.setup-input:focus {
  border-color: #9c9c9c;
  box-shadow: none;
}

.setup-input:disabled {
  background-color: #f0f0f0;
  color: #aaa;
  cursor: not-allowed;
  border-color: #e0e0e0;
}

.setup-input[readonly] {
  background-color: #f7f7f7;
  color: #555555;
  cursor: default;
  border-color: #e8e8e8;
}

.religion-back-btn {
  display: inline-block;
  margin-top: 5px;
  background: none;
  border: none;
  padding: 0;
  font-size: 0.72rem;
  color: #006837;
  cursor: pointer;
  font-family: "Poppins", sans-serif;
}

.religion-back-btn:hover {
  text-decoration: underline;
}

.religion-input-wrap {
  position: relative;
}

.religion-input-wrap .setup-input {
  padding-right: 34px;
}

.religion-back-arrow {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 0;
  font-size: 1rem;
  line-height: 1;
  color: #555555;
  cursor: pointer;
  font-family: "Poppins", sans-serif;
}

.religion-back-arrow:hover {
  color: #006837;
}

.setup-helper {
  display: block;
  font-size: 0.72rem;
  color: #555555;
  margin-top: 5px;
  line-height: 1.4;
}

.setup-input-inline {
  height: 36px;
  font-size: 0.85rem;
  margin-top: 6px;
  border-radius: 4px;
}

.setup-personal-top {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.setup-personal-left {
  flex: 1;
  min-width: 0;
}

.setup-profile-photo {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.profile-photo-square {
  width: 110px;
  height: 110px;
  border: 2px solid #ccc;
  border-radius: 4px;
  background: #f5f5f5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.profile-photo-square img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.profile-photo-icon {
  width: 38px;
  height: 38px;
  color: #aaa;
}

.profile-photo-btn {
  display: inline-block;
  font-family: "Poppins", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  color: #555555;
  background: #f0f0f0;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 4px 10px;
  cursor: pointer;
  white-space: nowrap;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  text-align: center;
  transition: background 0.15s;
}

.profile-photo-btn:hover {
  background: #e0e0e0;
}

.setup-radio-group {
  display: flex;
  align-items: center;
  gap: 18px;
  height: 42px;
}

.setup-radio {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  color: #333333;
  cursor: pointer;
  white-space: nowrap;
}

.setup-radio input[type=radio] {
  accent-color: #006837;
  width: 15px;
  height: 15px;
  cursor: pointer;
}

.setup-same-address {
  margin: 10px 0 14px;
}

.setup-checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  color: #333333;
  cursor: pointer;
}

.setup-checkbox-label input[type=checkbox] {
  accent-color: #006837;
  width: 15px;
  height: 15px;
  cursor: pointer;
}

.setup-toggles {
  margin: 18px 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.setup-toggle-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 40px;
}

.setup-toggle-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  flex: 1;
  min-width: 240px;
}

.toggle-switch {
  position: relative;
  display: inline-block;
  width: 42px;
  height: 23px;
  flex-shrink: 0;
  margin-top: 2px;
}

.toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.toggle-slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background-color: #ccc;
  border-radius: 23px;
  transition: background 0.25s;
}

.toggle-slider::before {
  content: "";
  position: absolute;
  width: 17px;
  height: 17px;
  left: 3px;
  bottom: 3px;
  background-color: #fff;
  border-radius: 50%;
  transition: transform 0.25s;
}

.toggle-switch input:checked + .toggle-slider {
  background-color: #006837;
}

.toggle-switch input:checked + .toggle-slider::before {
  transform: translateX(19px);
}

.toggle-text {
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  color: #333333;
  line-height: 1.45;
}

.setup-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 6px;
}

.setup-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  color: #333333;
  cursor: pointer;
}

.setup-checkbox input[type=checkbox] {
  accent-color: #006837;
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  cursor: pointer;
}

.setup-mini-add {
  width: 26px;
  height: 26px;
  border: none;
  border-radius: 50%;
  background: #006837;
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
}

.setup-mini-add:hover {
  background: #005028;
}

.setup-address-preview {
  background: #f9f9f9;
  border: 1px solid #e4e4e4;
  border-radius: 4px;
  padding: 14px 16px;
  margin-top: 18px;
}

.btn-setup-prev {
  background: #fff;
  border: 2px solid #006837;
  color: #006837;
  font-family: "Poppins", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 9px 28px;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.btn-setup-prev:hover {
  background: #006837;
  color: #fff;
}

.btn-setup-next,
.btn-setup-submit {
  background: #006837;
  border: none;
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 9px 36px;
  border-radius: 4px;
  cursor: pointer;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
  transition: background 0.15s;
}

.btn-setup-prev:disabled,
.btn-setup-next:disabled,
.btn-setup-submit:disabled,
.btn-setup-prev.is-loading,
.btn-setup-next.is-loading,
.btn-setup-submit.is-loading {
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.72;
  box-shadow: none;
}

.btn-setup-next:hover,
.btn-setup-submit:hover {
  background: #005028;
}

@media (max-width: 991px) {
  .filter-grid {
    grid-template-columns: 1fr;
  }

  .filter-cell--action {
    align-self: stretch;
  }

  .cal-controls {
    flex-direction: column;
    align-items: stretch;
  }

  .cal-month-title {
    text-align: center;
    font-size: 1.25rem;
  }

  .cal-legend {
    text-align: left;
  }

  .cal-legend-items {
    justify-content: flex-start;
  }

  .cal-td {
    height: 52px;
    padding: 5px 6px;
  }

  .day-number {
    font-size: 0.8rem;
  }

  /* Hide text label, show colored dot instead */

  .cal-event-label {
    font-size: 0;
    bottom: 6px;
    right: 0;
    left: 0;
    text-align: center;
    overflow: visible;
  }

  .cal-event-label::after {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
  }

  .cal-td.holiday-cell .cal-event-label::after {
    background: #e53935;
  }

  .cal-td.event-cell .cal-event-label::after {
    background: #1e6fe0;
  }

  .cal-td.holiday-cell,
  .cal-td.event-cell {
    cursor: pointer;
  }
}

@media (max-width: 768px) {
  .login-card {
    padding: 30px 24px 28px;
  }

  .login-card-title {
    font-size: 1.3rem;
  }

  .login-options {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .form-label-plp {
    letter-spacing: 1.8px;
  }

  .btn-view-cor {
    font-size: 1rem;
  }

  .sched-th,
  .sched-td {
    padding: 9px 10px;
    font-size: 0.78rem;
    white-space: nowrap;
  }

  .weekly-grid {
    display: flex;
    min-width: -moz-max-content;
    min-width: max-content;
  }

  .weekly-col {
    min-width: 100px;
  }

  .weekly-box {
    padding-bottom: 16px;
  }

  .setup-form-container {
    padding: 18px 16px;
  }

  .setup-personal-top {
    flex-direction: column-reverse;
    align-items: center;
  }

  .setup-col,
  .setup-col-sm,
  .setup-col-toggle {
    flex: 0 0 100%;
    min-width: 0;
  }

  .setup-toggle-item {
    min-width: 100%;
  }

  .setup-steps {
    overflow-x: auto;
    padding-bottom: 4px;
  }

  .step-pill {
    padding: 5px 14px;
    font-size: 0.8rem;
  }
}

@media (max-width: 575.98px) {
  .am-title {
    -webkit-text-stroke: 2px #006837;
  }
}

@media (max-width: 480px) {
  .login-submit-btn {
    padding: 10px 40px;
    font-size: 1rem;
  }

  .sched-th,
  .sched-td {
    padding: 8px 8px;
    font-size: 0.72rem;
  }

  .weekly-col {
    min-width: 88px;
  }

  .wc-code,
  .wc-name,
  .wc-time,
  .wc-room {
    font-size: 0.62rem;
  }

  .weekly-day-header {
    font-size: 0.68rem;
    padding: 8px 4px;
  }

  .weekly-card {
    padding: 7px 5px;
  }

  .weekly-title {
    font-size: 0.95rem;
  }

  .weekly-box {
    padding: 16px;
  }
}

@media print {
  .plp-sidebar,
  .student-topbar,
  .student-page-header,
  #filter-section,
  .plp-footer {
    display: none !important;
  }

  .cor-container {
    display: block !important;
    zoom: 1 !important;
    width: 210mm;
    height: 297mm;
    margin: 0;
    padding: 0;
    border: 2px solid #000;
    box-shadow: none;
  }

  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}

.req {
  color: #dc3545;
  margin-left: 2px;
}

.visually-hidden,
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.u-nowrap {
  white-space: nowrap !important;
}

.u-text-center {
  text-align: center !important;
}

/* Remark status colors */

.remark-passed {
  color: #006837;
  font-weight: 700;
}

.remark-incomplete {
  color: #dc3545;
  font-weight: 700;
}

.remark-nyp {
  color: #555555;
  font-weight: 600;
}

.section-offering-page {
  max-width: 100%;
  margin: 0;
  padding: 6px 0 0;
}

/* Messaging (Registrar) */

.messaging-page {
  width: 100%;
  padding: 6px 0 0;
}

.messaging-shell {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 16px;
  align-items: start;
  max-width: 100%;
}

.msg-sidebar {
  background: #f7f7f7;
  border: 1px solid #e6eaee;
  border-radius: 8px;
  padding: 8px 10px;
  min-height: 520px;
}

.msg-nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  color: #666666;
  text-decoration: none;
  font-size: 0.9rem;
  border-radius: 8px;
  border-left: 3px solid transparent;
  margin: 4px 0;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.msg-nav-link:hover {
  background: #eeeeee;
  color: #333333;
  transform: translateX(2px);
  text-decoration: none;
}

.msg-nav-link.active {
  background: #0a813c;
  color: #ffffff;
  border-left-color: #0a813c;
  font-weight: 600;
  text-decoration: none;
}

.msg-nav-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 7px;
  background: #f2f2f2;
  color: #7a7a7a;
  flex-shrink: 0;
}

.msg-nav-link.active .msg-nav-icon {
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
}

.msg-content {
  background: #ffffff;
  border: 1px solid #e6eaee;
  border-radius: 10px;
  padding: 14px;
  min-width: 0;
  max-width: 100%;
}

.msg-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.msg-folder-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #555555;
  text-transform: capitalize;
}

.msg-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.msg-search {
  position: relative;
}

.msg-search-input {
  height: 30px;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  padding: 0 10px 0 28px;
  font-size: 0.82rem;
  color: #333333;
  width: 200px;
}

.msg-search-icon {
  position: absolute;
  left: 9px;
  top: 50%;
  transform: translateY(-50%);
  color: #888888;
}

.msg-compose-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #0a813c;
  color: #ffffff;
  border: none;
  border-radius: 6px;
  padding: 6px 12px;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

.msg-compose-btn:hover {
  background: #086a31;
}

.msg-table-wrap {
  border: 1px solid #e6eaee;
  border-radius: 10px;
  overflow: hidden;
  background: #ffffff;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  display: block;
}

.msg-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
  min-width: 700px;
}

.msg-table thead tr {
  background: #0a813c;
}

.msg-table thead th {
  color: #ffffff;
  padding: 10px 14px;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
}

.msg-table tbody td {
  padding: 12px 14px;
  border-bottom: 1px solid #f0f0f0;
  color: #777777;
}

.msg-empty {
  text-align: center;
  color: #888888;
  font-size: 0.84rem;
}

.msg-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 10px;
  font-size: 0.8rem;
  color: #777777;
}

.msg-footer-left {
  display: flex;
  align-items: center;
  gap: 6px;
}

.msg-folder-form {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.msg-folder-label {
  font-size: 0.76rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.msg-folder-select {
  height: 30px;
  border: 1px solid #d3ddd8;
  border-radius: 8px;
  padding: 0 28px 0 10px;
  font-size: 0.82rem;
  color: #2f4b40;
  background: #ffffff;
}

.msg-folder-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #006837;
  font-weight: 600;
}

.msg-dropdown-caret {
  color: #888888;
  font-size: 0.7rem;
}

.msg-footer-right {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.msg-page-list {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.msg-page-btn,
.msg-page-num {
  min-width: 32px;
  height: 32px;
  border: 1px solid #ced7d2;
  border-radius: 8px;
  background: #ffffff;
  color: #2d4b40;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  padding: 0 8px;
}

.msg-page-btn {
  font-size: 14px;
  font-weight: 800;
}

.msg-page-btn:hover:not(:disabled),
.msg-page-num:hover {
  background: #f2f6f4;
  border-color: #b7c8bf;
  color: #27453a;
}

.msg-page-btn:disabled {
  opacity: 0.45;
}

.msg-page-num.active,
.msg-page-num.active:hover {
  background: #0f7b43;
  border-color: #0f7b43;
  color: #ffffff;
}

.msg-modal-header {
  background: #0a813c;
  color: #ffffff;
}

.msg-modal-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.msg-form-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.msg-form-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: #5f6368;
  letter-spacing: 0.06em;
}

.msg-form-input,
.msg-form-textarea {
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 0.88rem;
  color: #333333;
  background: #ffffff;
}

.msg-form-textarea {
  resize: vertical;
}

.msg-theme-lite .msg-sidebar {
  background: #fdfdfd;
  border: 1px solid #e0e7ef;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.msg-theme-lite .msg-content {
  border: 1px solid #d6dee8;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
}

.msg-theme-lite .msg-table-wrap {
  border: 2px solid #c0c0c0;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.04);
}

.msg-theme-lite .msg-table thead tr {
  background: #006837;
}

.msg-theme-lite .msg-table thead th {
  background: #006837 !important;
  color: #ffffff !important;
  border-bottom: 1px solid #006837;
}

.msg-theme-lite .msg-table tbody td {
  color: #475569;
  border-bottom: 1px solid #d6dee8;
}

.msg-theme-lite .msg-table tbody tr:nth-child(even) {
  background: #fafbfc;
}

.msg-theme-lite .msg-table tbody tr:hover {
  background: #f3f7fb;
}

.msg-theme-lite .msg-empty {
  color: #64748b;
}

.msg-compose-modal-box {
  max-width: 600px;
  padding-bottom: 24px;
}

.msg-compose-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #e6eaee;
  padding-bottom: 12px;
  margin-bottom: 20px;
}

.msg-compose-modal-title-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0;
  color: #0a813c;
}

.msg-compose-modal-title {
  margin-bottom: 0;
  text-align: left;
  letter-spacing: 0.06em;
  line-height: 1;
}

.msg-compose-close {
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: #888;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.msg-compose-close:hover {
  background: #f5f5f5;
  color: #d9534f;
}

.msg-compose-textarea {
  resize: vertical;
}

.msg-compose-modal-actions {
  margin-top: 24px;
  justify-content: flex-end;
  gap: 12px;
}

.msg-compose-send-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

@media (max-width: 768px) {
  .msg-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .msg-toolbar-actions {
    width: 100%;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }

  .msg-search {
    flex: 1;
    min-width: 150px;
  }

  .msg-search-input {
    width: 100%;
  }

  .msg-compose-btn {
    flex-shrink: 0;
  }

  .msg-footer {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .msg-footer-right {
    justify-content: flex-end;
  }

  .msg-folder-form {
    width: 100%;
  }

  .msg-folder-select {
    width: 100%;
  }

  .pf-modal-actions.msg-compose-modal-actions {
    flex-direction: column;
    justify-content: stretch;
    width: 100%;
  }

  .pf-modal-actions.msg-compose-modal-actions button {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 900px) {
  .messaging-shell {
    grid-template-columns: 1fr;
  }

  .msg-sidebar {
    display: flex;
    flex-direction: row;
    width: 100%;
    margin-bottom: 20px;
    padding: 0;
    background: #fdfdfd;
    border: 1px solid #eaeaea;
    border-radius: 8px;
    min-height: auto;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
  }

  .msg-nav-link {
    flex: 1 1 0;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 12px 0;
    border-left: none;
    border-right: 1px solid #eaeaea;
    border-radius: 0;
    background: transparent;
    color: #777;
    font-weight: 500;
    font-size: 0.9rem;
    transform: none;
  }

  .msg-nav-link:last-child {
    border-right: none;
  }

  .msg-nav-link:hover {
    background: #f4f4f4;
    transform: none;
  }

  .msg-nav-link.active {
    background: #0a813c;
    color: #ffffff;
  }

  .msg-nav-icon {
    display: none;
  }
}

/* Faculty Pages */

.faculty-section-header {
  font-size: 0.9rem;
  color: #555555;
  margin-bottom: 18px;
}

.faculty-table-wrap {
  overflow-x: auto;
  border: 2px solid #c0c0c0;
  border-radius: 10px;
  background: #fff;
  position: relative;
}

.faculty-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  font-size: 0.84rem;
}

.faculty-table thead tr {
  background-color: #006837;
}

.faculty-table thead th {
  padding: 12px 14px;
  font-weight: 600;
  color: #fff;
  text-align: left;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.faculty-table tbody tr {
  border-bottom: 1px solid #c0c0c0;
}

.faculty-table tbody tr:last-child {
  border-bottom: none;
}

.faculty-table tbody tr td {
  padding: 11px 14px;
  color: #333;
  vertical-align: middle;
  border-bottom: 1px solid #c0c0c0;
}

.faculty-table tbody tr:last-child td {
  border-bottom: none;
}

.faculty-table tbody td.score-cell {
  text-align: center !important;
}

.faculty-table tbody td.avg-cell {
  font-weight: 700;
}

.faculty-table tbody tr td.td-code {
  color: #333333;
  font-weight: 500;
}

.faculty-click-row {
  cursor: pointer;
}

.faculty-click-row:hover {
  background: #f9fffe;
}

.faculty-load-wrap {
  padding: 10px 8px;
}

.faculty-load-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
}

.btn-faculty-download {
  background-color: #006837;
  color: #fff;
  border: none;
  padding: 10px 22px;
  border-radius: 4px;
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s;
}

.btn-faculty-download:hover {
  background-color: #005028;
  color: #fff;
  text-decoration: none;
}

.faculty-class-list-wrap {
  padding: 24px;
}

.faculty-view-btn {
  display: none;
  margin-top: 16px;
  text-align: right;
}

.faculty-view-btn.visible {
  display: block;
}

.btn-view-list {
  background-color: #006837;
  color: #fff;
  padding: 9px 20px;
  border: 1px solid #006837;
  border-radius: 8px;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  line-height: 1.1;
  box-shadow: 0 2px 8px rgba(0, 104, 55, 0.2);
  transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.12s ease;
}

.btn-view-list:hover {
  background-color: #005028;
  border-color: #005028;
  transform: translateY(-1px);
}

.grading-sheet-wrap {
  padding: 10px 8px;
}

.faculty-gs-hidden {
  display: none !important;
}

.faculty-grading-sheet-page .gs-filter-bar,
.faculty-load-page .gs-filter-bar,
.faculty-class-list-page .gs-filter-bar {
  background: #ffffff;
  border: 1px solid #e4e9e6;
  border-radius: 8px;
  margin-bottom: 14px;
}

.faculty-gs-school-year {
  margin: 0 0 10px;
  text-align: center;
  color: #0d6f3b;
  font-size: 1.9rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.faculty-gs-search-btn-wrap,
.faculty-load-display-btn-wrap {
  flex: 0 0 auto;
  align-self: flex-end;
}

.faculty-gs-detail-tools-row {
  display: flex;
  justify-content: flex-start;
  background: #ffffff;
  border: 1px solid #e4e9e6;
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 12px;
  margin-top: 2px;
  align-items: flex-end;
}

.faculty-gs-detail-search-wrap {
  width: min(420px, 100%);
}

.faculty-class-list-page .faculty-cl-detail-search-wrap {
  width: min(420px, 100%);
}

.faculty-class-list-page .faculty-gs-detail-tools-row {
  justify-content: space-between;
}

.faculty-class-list-page .faculty-cl-detail-tools-actions {
  margin-left: auto;
  display: flex;
  align-items: flex-end;
}

.faculty-class-list-page .faculty-cl-detail-tools-actions .btn-faculty-download {
  min-width: 132px;
}

.faculty-class-list-page .faculty-cl-pager {
  margin-top: 12px;
}

.faculty-class-list-page #classListBody .class-list-open-link {
  min-width: 56px;
}

.faculty-class-list-page .class-list-eye-btn {
  min-width: 38px;
  width: 38px;
  height: 28px;
  padding: 0;
}

.faculty-class-list-page #classListTable {
  table-layout: fixed;
  min-width: 1040px;
}

.faculty-class-list-page #classListTable thead th,
.faculty-class-list-page #classListTable tbody td {
  text-align: left;
}

.faculty-class-list-page #classListTable thead th:nth-child(1),
.faculty-class-list-page #classListTable tbody td:nth-child(1),
.faculty-class-list-page #classListTable thead th:nth-child(4),
.faculty-class-list-page #classListTable tbody td:nth-child(4),
.faculty-class-list-page #classListTable thead th:nth-child(7),
.faculty-class-list-page #classListTable tbody td:nth-child(7),
.faculty-class-list-page #classListTable thead th:nth-child(8),
.faculty-class-list-page #classListTable tbody td:nth-child(8) {
  text-align: center;
}

.faculty-class-list-page #classListTable thead th:nth-child(1),
.faculty-class-list-page #classListTable tbody td:nth-child(1) {
  width: 86px;
}

.faculty-class-list-page #classListTable thead th:nth-child(2),
.faculty-class-list-page #classListTable tbody td:nth-child(2) {
  width: 130px;
}

.faculty-class-list-page #classListTable thead th:nth-child(3),
.faculty-class-list-page #classListTable tbody td:nth-child(3) {
  width: 430px;
}

.faculty-class-list-page #classListTable thead th:nth-child(4),
.faculty-class-list-page #classListTable tbody td:nth-child(4) {
  width: 72px;
}

.faculty-class-list-page #classListTable thead th:nth-child(5),
.faculty-class-list-page #classListTable tbody td:nth-child(5) {
  width: 96px;
}

.faculty-class-list-page #classListTable thead th:nth-child(6),
.faculty-class-list-page #classListTable tbody td:nth-child(6) {
  width: 188px;
}

.faculty-class-list-page #classListTable thead th:nth-child(7),
.faculty-class-list-page #classListTable tbody td:nth-child(7) {
  width: 92px;
}

.faculty-class-list-page #classListTable thead th:nth-child(8),
.faculty-class-list-page #classListTable tbody td:nth-child(8) {
  width: 108px;
}

.faculty-class-list-page #classListDetailTable {
  table-layout: fixed;
  min-width: 880px;
}

.faculty-class-list-page #classListDetailTable thead th,
.faculty-class-list-page #classListDetailTable tbody td {
  text-align: left;
}

.faculty-class-list-page #classListDetailTable thead th:nth-child(1),
.faculty-class-list-page #classListDetailTable tbody td:nth-child(1),
.faculty-class-list-page #classListDetailTable thead th:nth-child(5),
.faculty-class-list-page #classListDetailTable tbody td:nth-child(5) {
  text-align: center;
}

.faculty-class-list-page #classListDetailTable thead th:nth-child(1),
.faculty-class-list-page #classListDetailTable tbody td:nth-child(1) {
  width: 56px;
}

.faculty-class-list-page #classListDetailTable thead th:nth-child(2),
.faculty-class-list-page #classListDetailTable tbody td:nth-child(2) {
  width: 150px;
}

.faculty-class-list-page #classListDetailTable thead th:nth-child(3),
.faculty-class-list-page #classListDetailTable tbody td:nth-child(3) {
  width: 300px;
}

.faculty-class-list-page #classListDetailTable thead th:nth-child(4),
.faculty-class-list-page #classListDetailTable tbody td:nth-child(4) {
  width: 270px;
}

.faculty-class-list-page #classListDetailTable thead th:nth-child(5),
.faculty-class-list-page #classListDetailTable tbody td:nth-child(5) {
  width: 104px;
}

.faculty-class-list-page #classListTable tbody tr,
.faculty-class-list-page #classListDetailTable tbody tr {
  cursor: pointer;
}

.faculty-class-list-page #classListTable tbody tr:hover,
.faculty-class-list-page #classListDetailTable tbody tr:hover {
  background: #f1f8f4;
}

@media (max-width: 768px) {
  .faculty-class-list-page .gs-filter-row {
    gap: 10px;
  }

  .faculty-class-list-page .faculty-load-display-btn-wrap,
  .faculty-class-list-page .faculty-load-display-btn-wrap .gs-view-btn {
    width: 100%;
  }

  .faculty-class-list-page .faculty-gs-detail-tools-row {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .faculty-class-list-page .faculty-cl-detail-search-wrap,
  .faculty-class-list-page .faculty-cl-detail-tools-actions,
  .faculty-class-list-page .faculty-cl-detail-tools-actions .btn-faculty-download {
    width: 100%;
  }

  .faculty-class-list-page .faculty-cl-detail-tools-actions {
    margin-left: 0;
  }
}

#gradingSubjectTable tbody tr,
#gradingDetailTable tbody tr {
  cursor: pointer;
}

#gradingSubjectTable tbody tr:hover,
#gradingDetailTable tbody tr:hover {
  background: #f1f8f4;
}

#gradingSubjectTable thead th,
#gradingSubjectTable tbody td {
  text-align: left;
}

#gradingSubjectTable thead th:first-child,
#gradingSubjectTable tbody td:first-child,
#gradingSubjectTable thead th:last-child,
#gradingSubjectTable tbody td:last-child {
  text-align: center;
}

.faculty-gs-detail-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  margin-bottom: 10px;
  gap: 8px;
}

.faculty-gs-back-inline {
  justify-self: start;
}

.faculty-gs-pager {
  margin-top: 10px;
  padding-top: 0;
}

#gradingDetailTable {
  table-layout: fixed;
  min-width: 980px;
}

#gradingDetailTable thead th,
#gradingDetailTable tbody td {
  text-align: center;
  white-space: nowrap;
}

#gradingDetailTable thead th:nth-child(2),
#gradingDetailTable tbody td:nth-child(2),
#gradingDetailTable thead th:nth-child(3),
#gradingDetailTable tbody td:nth-child(3) {
  text-align: left;
}

#gradingDetailTable thead th:nth-child(1),
#gradingDetailTable tbody td:nth-child(1) {
  width: 46px;
}

#gradingDetailTable thead th:nth-child(2),
#gradingDetailTable tbody td:nth-child(2) {
  width: 130px;
}

#gradingDetailTable thead th:nth-child(3),
#gradingDetailTable tbody td:nth-child(3) {
  width: 240px;
}

#gradingDetailTable thead th:nth-child(4),
#gradingDetailTable tbody td:nth-child(4),
#gradingDetailTable thead th:nth-child(5),
#gradingDetailTable tbody td:nth-child(5),
#gradingDetailTable thead th:nth-child(6),
#gradingDetailTable tbody td:nth-child(6),
#gradingDetailTable thead th:nth-child(7),
#gradingDetailTable tbody td:nth-child(7),
#gradingDetailTable thead th:nth-child(8),
#gradingDetailTable tbody td:nth-child(8) {
  width: 110px;
}

.faculty-grading-sheet-page .faculty-detail-actions {
  margin-top: 12px;
}

.grading-status-submitted {
  color: #006837;
  font-weight: 600;
}

.grading-status-open {
  color: #5f5f5f;
}

.grading-view-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 68px;
  padding: 5px 12px;
  border: 1px solid #0a9a56;
  border-radius: 6px;
  background: #f3fbf6;
  color: #006837;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.8rem;
  cursor: pointer;
  line-height: 1;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.grading-view-link:hover {
  background: #006837;
  border-color: #006837;
  color: #ffffff;
}

.faculty-detail-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.faculty-back-btn {
  border: 1px solid #006837;
  background: #ffffff;
  color: #006837;
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  padding: 8px 14px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 104, 55, 0.12);
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.faculty-back-btn::before {
  content: none;
}

.faculty-back-btn:hover {
  background: #006837;
  border-color: #006837;
  color: #ffffff;
}

.faculty-detail-title {
  text-align: center;
  font-size: 1rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: normal;
  overflow-wrap: anywhere;
}

.faculty-detail-section {
  font-size: 1rem;
  font-weight: 700;
  color: var(--plp-green);
  white-space: normal;
  text-align: right;
}

.faculty-detail-actions {
  margin-top: 14px;
  display: flex;
  justify-content: flex-end;
}

.grading-input {
  width: 88px;
  border: 1px solid #0f8f4b;
  border-radius: 0;
  height: 24px;
  padding: 2px 6px;
  font-size: 0.84rem;
}

.grading-readonly {
  background: #f7fff9;
}

.faculty-calendar-wrap {
  padding: 24px;
}

.fc-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}

.fc-nav-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.cal-nav {
  gap: 0;
}

.cal-nav .fc-btn:first-child {
  border-radius: 4px 0 0 4px;
}

.cal-nav .fc-btn:last-child {
  border-radius: 0 4px 4px 0;
}

.cal-nav .fc-btn:not(:first-child) {
  border-left: none;
}

.fc-btn {
  background: #fff;
  border: 1px solid #ccc;
  color: #333333;
  font-family: "Poppins", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  border-radius: 4px;
  padding: 6px 13px;
  cursor: pointer;
  line-height: 1.4;
  transition: background 0.15s ease;
}

.fc-btn:hover {
  background: #f0f0f0;
}

.fc-month-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: #333333;
  text-align: center;
  flex: 1;
}

.fc-legend {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.78rem;
  color: #555555;
}

.fc-legend .fc-legend-title {
  font-weight: 700;
  font-size: 0.78rem;
  color: #333333;
  margin-bottom: 2px;
}

.fc-legend .fc-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
}

.fc-legend .fc-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  display: inline-block;
}

.fc-legend .fc-dot.holiday {
  background: #e53935;
}

.fc-legend .fc-dot.university {
  background: #1e88e5;
}

.fc-grid {
  width: 100%;
  border-collapse: collapse;
  border: 1.5px solid #d0d0d0;
}

.fc-grid thead tr {
  background-color: #006837;
}

.fc-grid thead th {
  padding: 10px 0;
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
  text-align: center;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.fc-grid thead th:last-child {
  border-right: none;
}

.fc-grid tbody tr td {
  width: 14.28%;
  height: 110px;
  vertical-align: top;
  padding: 10px 12px;
  border-right: 1px solid #e0e0e0;
  border-bottom: 1px solid #e0e0e0;
  font-size: 1rem;
  font-weight: 600;
  color: #333333;
  background: #fff;
}

.fc-grid tbody tr td:last-child {
  border-right: none;
}

.fc-grid tbody tr td.fc-other-month {
  color: #ccc;
  background: #fafafa;
}

.fc-grid tbody tr td.fc-today {
  background: rgba(0, 104, 55, 0.07);
  font-weight: 700;
  color: #006837;
}

.fc-grid tbody tr:last-child td {
  border-bottom: none;
}

.faculty-evaluation-wrap {
  padding: 6px 6px;
}

.faculty-eval-page .faculty-eval-layout {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 36%);
  gap: 16px;
  align-items: stretch;
}

.faculty-eval-page .faculty-eval-results-panel,
.faculty-eval-page .faculty-eval-list-panel {
  padding: 14px 14px 12px;
  border-radius: 10px;
}

.faculty-eval-panel-title {
  margin: 0 0 10px;
  text-align: left;
  color: #1a1a2e;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  line-height: 1.25;
}

.faculty-eval-list-subtitle {
  margin: 0 0 10px;
  color: #555;
  font-size: 0.82rem;
  font-weight: 600;
}

.faculty-eval-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-radius: 9px;
  overflow: hidden;
  border: 1.5px solid #e0e0e0;
  background: #fff;
  margin-bottom: 10px;
}

.faculty-eval-tab {
  height: 36px;
  border: 0;
  background: #fff;
  color: #434343;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
}

.faculty-eval-tab.active {
  background: #006837;
  color: #fff;
}

.faculty-eval-results-body {
  min-height: 480px;
  max-height: 480px;
  overflow: auto;
  padding: 2px;
}

.faculty-eval-empty-message {
  min-height: 420px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 0.84rem;
  color: #8a8a8a;
  padding: 16px;
}

.faculty-eval-group-card {
  border: 1px solid #d9d9d9;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.11);
  margin-bottom: 12px;
  overflow: hidden;
}

.faculty-eval-group-card.is-open {
  border-color: #b5d5b5;
}

.faculty-eval-group-head {
  width: 100%;
  border: 0;
  background: #fff;
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 8px;
  padding: 10px 11px;
  cursor: pointer;
}

.faculty-eval-group-title {
  text-align: left;
  color: #2f2f2f;
  font-size: 0.9rem;
  font-weight: 700;
}

.faculty-eval-comment-count,
.faculty-eval-group-toggle {
  color: #8b8b8b;
  font-size: 0.71rem;
  font-weight: 600;
}

.faculty-eval-group-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #8b8b8b;
}

.faculty-eval-group-chevron {
  display: block;
  transform: rotate(0deg);
  transition: transform 0.16s ease;
}

.faculty-eval-group-chevron.is-open {
  transform: rotate(180deg);
}

.faculty-eval-group-body {
  border-top: 1px solid #efefef;
  padding: 9px 11px 10px;
}

.faculty-eval-score-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.faculty-eval-score-metric {
  border: 1px solid #e4ebe6;
  border-radius: 6px;
  padding: 9px 10px;
  background: #f9fcfa;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.faculty-eval-score-label {
  color: #4a4a4a;
  font-size: 0.78rem;
  font-weight: 600;
}

.faculty-eval-score-pill {
  min-width: 56px;
  border: 1px solid #006837;
  border-radius: 4px;
  color: #006837;
  font-weight: 700;
  text-align: center;
  padding: 1px 7px;
}

.faculty-eval-interpretation {
  color: #0b5f35;
  font-weight: 700;
  font-size: 0.82rem;
  text-align: right;
}

.faculty-eval-comment-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.faculty-eval-comment-item {
  background: #eef3ef;
  border: 1px solid #e1e8e3;
  border-radius: 6px;
  padding: 7px 9px;
  font-size: 0.76rem;
  color: #4a4a4a;
  line-height: 1.35;
  margin-top: 5px;
}

.faculty-eval-comment-item:first-child {
  margin-top: 0;
}

.faculty-eval-comment-num {
  color: #006837;
  font-weight: 700;
}

.faculty-eval-list-item {
  width: 100%;
  text-align: left;
  cursor: pointer;
  background: #fff;
  padding: 11px 12px;
}

.faculty-eval-list-item.is-active {
  border-color: #b5d5b5;
  box-shadow: 0 2px 7px rgba(181, 213, 181, 0.45);
}

.faculty-eval-page .eval-lib-name {
  font-size: 1rem;
  font-weight: 700;
  color: #1e1e1e;
}

.faculty-eval-page .eval-lib-card-bottom {
  font-size: 0.76rem;
}

.faculty-eval-page .eval-status-badge {
  margin-left: 4px;
}

@media (max-width: 768px) {
  .faculty-detail-header {
    grid-template-columns: 1fr;
    justify-items: start;
    gap: 8px;
  }

  .faculty-detail-title {
    font-size: 1.2rem;
    text-align: left;
  }

  .faculty-detail-section {
    font-size: 1rem;
  }

  .faculty-eval-page .faculty-eval-layout {
    grid-template-columns: 1fr;
  }

  .faculty-eval-page .faculty-eval-list-panel {
    order: 2;
  }

  .faculty-eval-panel-title {
    font-size: 1.2rem;
  }

  .faculty-eval-results-body {
    min-height: 360px;
    max-height: 360px;
  }

  .faculty-eval-score-grid {
    grid-template-columns: 1fr;
  }
}

/* Registrar Section Offering */

.so-card {
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  padding: 16px;
  margin-top: 0;
}

.so-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: transparent;
  border-radius: 10px;
  padding: 6px 0;
  margin-bottom: 8px;
}

.so-card-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #006837;
}

.so-print-btn {
  font-size: 0.88rem;
  font-weight: 600;
  padding: 9px 18px;
  border-radius: 8px;
  background: #006837;
  border-color: #006837;
  min-height: 38px;
}

.so-print-btn:hover {
  background: #005028;
  border-color: #005028;
}

.so-weekly {
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  padding: 16px;
  margin-top: 8px;
}

.so-weekly-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #006837;
  margin-bottom: 8px;
}

.so-weekly-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.so-weekly-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  overflow: hidden;
  background: #ffffff;
}

.so-weekly-col {
  display: flex;
  flex-direction: column;
  border-right: 1px solid #e0e0e0;
  min-height: 180px;
}

.so-weekly-col:last-child {
  border-right: none;
}

.so-weekly-day {
  background: #f7f7f7;
  font-size: 0.75rem;
  font-weight: 700;
  color: #555555;
  text-align: center;
  padding: 8px 4px;
  border-bottom: 1px solid #e0e0e0;
}

.so-weekly-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
}

.so-weekly-card {
  background: #0f7b3d;
  color: #ffffff;
  border-radius: 8px;
  padding: 8px 6px;
  text-align: center;
  border: 1px solid #0c6f36;
}

.so-weekly-code {
  font-size: 0.7rem;
  font-weight: 800;
  margin-bottom: 3px;
  color: #ffffff;
}

.so-weekly-section {
  font-size: 0.68rem;
  font-weight: 600;
  margin-bottom: 3px;
  color: #ffffff;
}

.so-weekly-time,
.so-weekly-room {
  font-size: 0.66rem;
  font-weight: 600;
  margin-bottom: 2px;
  color: #ffffff;
}

.so-weekly-room {
  margin-bottom: 0;
}

.so-weekly-empty {
  font-size: 0.7rem;
  color: #9aa0a6;
  text-align: center;
  padding: 6px 4px;
}

.so-filter-search {
  min-width: 0;
}

.so-add-btn {
  width: auto;
  min-height: 42px;
  border-radius: 10px;
  font-weight: 700;
  padding: 8px 16px;
  letter-spacing: 0.01em;
}

.page-section-offering .so-filter-row {
  display: grid;
  grid-template-columns: minmax(220px, 2.1fr) repeat(5, minmax(110px, 1fr));
  gap: 14px 12px;
  align-items: flex-end;
}

.page-section-offering .so-filter-row .sched-filter-group {
  margin: 0;
  min-width: 0;
}

.page-section-offering .so-filter-row .app-filter-label {
  margin-bottom: 6px;
}

.page-section-offering .so-filter-sy,
.page-section-offering .so-filter-term,
.page-section-offering .so-filter-year,
.page-section-offering .so-filter-section,
.page-section-offering .so-filter-program,
.page-section-offering .so-filter-search {
  grid-column: auto;
}

.page-section-offering .so-filter-row .app-filter-input,
.page-section-offering .so-filter-row .app-filter-select {
  width: 100% !important;
  max-width: none !important;
  min-height: 40px;
}

.so-directory-card {
  margin-bottom: 8px;
}

.so-directory-note {
  font-size: 0.8rem;
  color: #557a64;
  font-weight: 600;
}

.so-directory-header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.so-card-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.so-back-btn {
  min-height: 40px;
  border-radius: 10px;
  padding: 8px 16px;
  font-weight: 700;
  border: 1px solid #6c757d;
  color: #ffffff;
  background: #6c757d;
  box-shadow: none;
}

.so-back-btn:hover {
  background: #5a6268;
  color: #ffffff;
  border-color: #5a6268;
}

#soSectionTable tbody .so-section-row {
  cursor: pointer;
  transition: background-color 0.2s ease;
}

#soSectionTable tbody .so-section-row:hover {
  background: #eef8f1;
}

#soSectionTable tbody .so-section-row.is-active {
  background: #e2f1e8;
}

.so-empty-row {
  text-align: center;
  color: #6b7280;
  padding: 14px 10px !important;
}

#soTable th:last-child,
#soTable td:last-child {
  min-width: 240px;
}

.so-schedule-cell {
  white-space: normal;
  line-height: 1.35;
}

.so-schedule-line {
  display: block;
  margin-bottom: 6px;
}

.so-schedule-line:last-child {
  margin-bottom: 0;
}

.so-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(0, 0, 0, 0.45);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.so-modal.is-open {
  display: flex;
}

.so-modal-dialog {
  width: 100%;
  max-width: 860px;
  max-height: calc(100vh - 24px);
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 20px 44px rgba(0, 0, 0, 0.22);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.so-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid #e5e7eb;
}

.so-modal-title {
  margin: 0;
  color: #006837;
  font-size: 1rem;
  font-weight: 700;
}

.so-modal-close {
  border: 0;
  background: transparent;
  color: #3a3a3a;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.so-modal-body {
  padding: 16px 18px;
  overflow-y: auto;
  max-height: calc(100vh - 190px);
}

.so-modal-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 12px;
}

.so-modal-col-3 {
  grid-column: span 3;
}

.so-modal-col-4 {
  grid-column: span 4;
}

.so-modal-col-5 {
  grid-column: span 5;
}

.so-modal-col-6 {
  grid-column: span 6;
}

.so-modal-col-7 {
  grid-column: span 7;
}

.so-modal-col-8 {
  grid-column: span 8;
}

.so-modal-col-12 {
  grid-column: span 12;
}

.so-modal-field label {
  display: block;
  font-size: 0.76rem;
  font-weight: 700;
  color: #5f6368;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 5px;
}

.so-modal-field .app-filter-input,
.so-modal-field .app-filter-select {
  width: 100%;
  min-height: 40px;
  box-sizing: border-box;
}

.so-modal-field-wide {
  grid-column: span 2;
}

.so-curriculum-picker {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
}

.so-curriculum-list-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.so-curriculum-list-title {
  font-size: 0.73rem;
  font-weight: 700;
  color: #5f6368;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.so-curriculum-list {
  width: 100%;
  min-height: 208px;
  border: 1px solid #b8d8c2;
  border-radius: 8px;
  background: #e8f5ed;
  padding: 6px;
  font-size: 0.8rem;
  line-height: 1.3;
}

.so-curriculum-list option {
  padding: 2px 4px;
}

.so-curriculum-actions {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}

.so-curriculum-btn {
  min-width: 112px;
  min-height: 34px;
  border: 1px solid #c5c9ce;
  border-radius: 7px;
  background: #ffffff;
  color: #344054;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 6px 10px;
}

.so-curriculum-btn:hover {
  background: #f2f4f7;
}

.so-curriculum-summary {
  margin-top: 8px;
  font-size: 0.78rem;
  font-weight: 600;
  color: #557a64;
}

.so-modal-feedback {
  margin-top: 10px;
  min-height: 20px;
  font-size: 0.85rem;
  font-weight: 600;
}

.so-modal-feedback.is-error {
  color: #b42318;
}

.so-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 18px 18px;
}

.so-modal-btn {
  min-height: 40px;
  border-radius: 9px;
  font-size: 0.86rem;
  font-weight: 700;
  padding: 8px 16px;
  border: 1px solid transparent;
}

.so-modal-btn-cancel {
  background: #ffffff;
  border-color: #c9ced6;
  color: #475467;
}

.so-modal-btn-cancel:hover {
  background: #f3f5f7;
}

.so-modal-btn-primary {
  background: #006837;
  border-color: #006837;
  color: #ffffff;
}

.so-modal-btn-primary:hover {
  background: #005028;
  border-color: #005028;
}

#soEditSubjectModal {
  z-index: 1250;
}

#soEditSubjectModal .so-edit-modal-dialog {
  max-width: 980px;
}

#soEditSubjectModal .so-edit-modal-header {
  border-bottom: 1px solid #e6edf2;
  padding-bottom: 12px;
}

#soEditSubjectModal .so-edit-modal-grid {
  row-gap: 12px;
}

#soEditSubjectModal .so-edit-warning {
  margin-bottom: 12px;
  border: 1px solid #f0c6c6;
  border-radius: 8px;
  background: #fff7f7;
  color: #b54747;
  font-size: 0.96rem;
  font-style: italic;
  line-height: 1.45;
  padding: 9px 12px;
}

#soEditSubjectModal .so-edit-section {
  border: 1px solid #d9e4dd;
  border-radius: 10px;
  background: #fbfdfb;
  padding: 14px;
  margin-bottom: 12px;
}

#soEditSubjectModal .so-edit-section:last-child {
  margin-bottom: 0;
}

#soEditSubjectModal .so-edit-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

#soEditSubjectModal .so-edit-section-title {
  font-size: 0.84rem;
  font-weight: 800;
  color: #0f5132;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 10px;
}

#soEditSubjectModal .so-edit-section-head .so-edit-section-title {
  margin-bottom: 0;
}

#soEditSubjectModal .so-edit-readonly {
  background: #ffffff;
  border: 1px solid #cfd8df;
  color: #374151;
}

#soEditSubjectModal .so-modal-field label {
  font-size: 0.72rem;
  color: #5b6470;
}

#soEditSubjectModal .so-edit-slots {
  text-align: center;
}

#soEditSubjectModal .so-edit-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 4px;
  padding: 10px 12px;
  border: 1px dashed #c9d9cf;
  border-radius: 8px;
  background: #ffffff;
}

#soEditSubjectModal .so-edit-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #4b5563;
  text-transform: none;
  letter-spacing: 0;
  margin: 0;
}

#soEditSubjectModal .so-edit-check input {
  margin: 0;
}

#soEditSubjectModal .so-edit-close-row {
  display: flex;
  justify-content: flex-end;
  margin: 6px 0 10px;
}

#soEditSubjectModal .so-edit-schedule-wrap {
  border: 1px solid #b8d4c1;
  border-radius: 8px;
  overflow: hidden;
  background: #ffffff;
}

#soEditSubjectModal .so-edit-schedule-table {
  margin-bottom: 0;
}

#soEditSubjectModal .so-edit-schedule-table thead th {
  background: #006837;
  color: #ffffff;
  border-right: 1px solid #1a7a4d;
  text-transform: uppercase;
  font-size: 0.78rem;
  letter-spacing: 0.03em;
  padding: 10px 8px;
  vertical-align: middle;
  text-align: left;
}

#soEditSubjectModal .so-edit-schedule-table thead .so-edit-schedule-main-head {
  text-align: center;
}

#soEditSubjectModal .so-edit-schedule-table thead th:last-child {
  border-right: 0;
  text-align: center;
  width: 110px;
}

#soEditSubjectModal .so-edit-schedule-table thead .so-edit-schedule-subhead-row th {
  font-size: 0.72rem;
  padding: 6px 8px;
  text-align: center;
  background: #0a7c42;
}

#soEditSubjectModal .so-edit-schedule-table tbody td {
  padding: 8px;
  vertical-align: middle;
  border-top: 1px solid #d9e2dc;
  background: #ffffff;
  text-align: center;
}

#soEditSubjectModal .so-edit-schedule-table tbody td:first-child,
#soEditSubjectModal .so-edit-schedule-table tbody td:nth-child(4) {
  text-align: left;
}

#soEditSubjectModal .so-edit-day-cell {
  display: flex;
  align-items: center;
  gap: 8px;
}

#soEditSubjectModal .so-edit-day-cell .app-filter-select {
  min-width: 132px;
}

#soEditSubjectModal .so-edit-time-inline {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #f7faf8;
  border: 1px solid #cfdbd3;
  border-radius: 6px;
  padding: 4px;
}

#soEditSubjectModal .so-edit-time-select {
  min-width: 48px;
  height: 30px;
  border: 1px solid #cfd8df;
  border-radius: 4px;
  background: #ffffff;
  color: #374151;
  font-size: 0.8rem;
  padding: 0 4px;
}

#soEditSubjectModal .so-edit-time-divider {
  color: #6b7280;
  font-weight: 700;
  padding-bottom: 6px;
}

#soEditSubjectModal .so-edit-room-select {
  background: #ffffff;
  border: 1px solid #cfd8df;
  min-width: 136px;
}

#soEditSubjectModal .so-edit-lab-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

#soEditSubjectModal .so-edit-day-cell .req-checkbox-input,
#soEditSubjectModal .so-edit-lab-cell .req-checkbox-input,
#soEditSubjectModal .so-edit-check .req-checkbox-input {
  margin: 0;
}

#soEditSubjectModal .so-edit-add-row-btn {
  border: 1px solid #0a813c;
  background: #ffffff;
  color: #0a813c;
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1;
  padding: 6px 8px;
  border-radius: 6px;
}

#soEditSubjectModal .so-edit-add-row-btn:hover {
  background: #0a813c;
  color: #ffffff;
}

@media (max-width: 920px) {
  .page-section-offering .so-filter-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .page-section-offering .so-filter-sy,
  .page-section-offering .so-filter-term,
  .page-section-offering .so-filter-year,
  .page-section-offering .so-filter-section,
  .page-section-offering .so-filter-program,
  .page-section-offering .so-filter-search {
    grid-column: span 1;
  }

  .so-directory-header-actions {
    width: 100%;
    justify-content: space-between;
  }

  .so-card-header-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .so-modal-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .so-modal-col-3,
  .so-modal-col-4,
  .so-modal-col-5,
  .so-modal-col-6 {
    grid-column: span 3;
  }

  .so-modal-col-7,
  .so-modal-col-8,
  .so-modal-col-12 {
    grid-column: span 6;
  }

  .so-curriculum-picker {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .so-curriculum-list {
    min-height: 160px;
  }

  .so-curriculum-actions {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .so-curriculum-btn {
    min-width: 120px;
  }

  #soEditSubjectModal .so-edit-section-head {
    align-items: flex-start;
  }
}

@media (max-width: 767px) {
  .page-section-offering .so-filter-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .so-card-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .so-directory-header-actions,
  .so-card-header-actions {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .so-directory-header-actions .so-add-btn {
    width: 100%;
    min-width: 100%;
    justify-content: center;
  }

  #soTable th:last-child,
  #soTable td:last-child {
    min-width: 210px;
  }

  .so-modal-grid {
    grid-template-columns: 1fr;
  }

  .so-modal {
    padding: 10px;
  }

  .so-modal-dialog {
    max-height: calc(100vh - 20px);
    border-radius: 10px;
  }

  .so-modal-body {
    padding: 12px;
    max-height: calc(100vh - 170px);
  }

  .so-modal-col-3,
  .so-modal-col-4,
  .so-modal-col-6,
  .so-modal-col-12,
  .so-modal-field-wide {
    grid-column: span 1;
  }

  #soEditSubjectModal .so-edit-section {
    padding: 12px;
  }

  #soEditSubjectModal .so-edit-section-head {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  #soEditSubjectModal .so-edit-section-head .so-modal-btn {
    width: 100%;
  }

  #soEditSubjectModal .so-edit-flags {
    flex-direction: column;
    gap: 10px;
  }

  #soEditSubjectModal .so-edit-day-cell {
    flex-wrap: wrap;
  }

  #soEditSubjectModal .so-edit-time-select {
    min-width: 40px;
  }

  #soEditSubjectModal .so-edit-schedule-table {
    min-width: 680px;
  }

  .so-curriculum-actions {
    width: 100%;
  }

  .so-curriculum-btn {
    flex: 1 1 120px;
  }

  .so-curriculum-list {
    min-height: 130px;
  }

  .so-modal-footer {
    padding: 10px 12px 12px;
    flex-wrap: wrap;
  }

  .so-modal-btn {
    flex: 1 1 140px;
  }

  .so-directory-note {
    display: none;
  }
}

/* Grades page */

.grades-page {
  max-width: 100%;
  margin: 0;
  padding: 6px 0 0;
}

.grades-filter-row #semesterFilter {
  width: 100%;
  max-width: 360px;
}

/* Events page */

.events-page {
  max-width: 100%;
  margin: 0 auto;
  padding: 6px 0 0;
}

/* Profile / setup wizard */

.profile-page {
  max-width: 1080px;
  margin: 0 auto;
  padding: 6px 0 0;
  overflow-x: hidden;
}

.profile-save-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #e9f7ef;
  border: 1px solid #006837;
  color: #004d28;
  border-radius: 6px;
  padding: 10px 16px;
  margin-bottom: 14px;
  font-size: 0.9rem;
  font-weight: 500;
}

.profile-save-banner button {
  background: none;
  border: none;
  color: #006837;
  font-size: 1rem;
  cursor: pointer;
  line-height: 1;
}

.profile-save-banner.profile-error-banner {
  background: #fdecea;
  border-color: #c0392b;
  color: #7b0f0f;
}

.profile-save-banner.profile-error-banner button {
  color: #c0392b;
}

.grades-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.events-page .grades-scroll {
  height: 620px;
  overflow-y: auto;
  scrollbar-gutter: stable both-edges;
}

/* Left-align Code & Course columns, keep numerics centered */

.grades-page .sched-th:nth-child(1),
.grades-page .sched-th:nth-child(2),
.grades-page .sched-td:nth-child(1),
.grades-page .sched-td:nth-child(2) {
  text-align: left;
}

@media (max-width: 991px) {
  .section-offering-page,
  .grades-page,
  .events-page,
  .profile-page {
    max-width: 100%;
  }
}

@media (max-width: 768px) {
  .section-offering-page,
  .grades-page,
  .events-page,
  .profile-page {
    padding-top: 0;
  }

  .events-page .grades-scroll {
    height: 520px;
  }
}

.pv-page {
  padding: 32px;
  box-sizing: border-box;
}

.pv-layout {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  max-width: 1280px;
  margin: 0 auto;
}

/* Applicant form helpers migrated from inline styles */

.step-hidden {
  display: none;
}

.setup-photo-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.setup-photo-img--hidden {
  display: none;
}

.setup-subsection-title--mt18 {
  margin-top: 18px;
}

.setup-radio-group--spaced {
  height: auto;
  gap: 16px;
  margin-top: 4px;
}

.setup-col--flex-3 {
  flex: 3;
}

.setup-col--flex-23 {
  flex: 2.3;
}

.setup-col--flex-2 {
  flex: 2;
}

.setup-col--flex-16 {
  flex: 1.6;
}

.setup-col--flex-14 {
  flex: 1.4;
}

.setup-col--flex-12 {
  flex: 1.2;
}

.setup-col--flex-1 {
  flex: 1;
}

.setup-col--flex-08 {
  flex: 0.8;
}

.setup-col--w-280 {
  flex: 0 0 280px;
  min-width: 280px;
}

.setup-col--w-220 {
  flex: 0 0 220px;
  min-width: 220px;
}

.setup-col--w-180 {
  flex: 0 0 180px;
  min-width: 180px;
}

.setup-col--w-160 {
  flex: 0 0 160px;
  min-width: 160px;
}

.setup-col--w-130 {
  min-width: 130px;
}

.setup-col--w-110 {
  min-width: 110px;
}

.setup-col--w-90 {
  min-width: 90px;
}

.setup-col--w-34 {
  flex: 0 0 34px;
  min-width: 34px;
}

.setup-row--app-meta {
  flex-wrap: nowrap;
  gap: 14px;
}

@media (max-width: 768px) {
  .setup-row--app-meta {
    flex-wrap: wrap;
  }
}

.pv-sidebar {
  background: #fff;
  border-radius: 14px;
  padding: 30px 22px 24px;
  width: 270px;
  min-width: 270px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  position: sticky;
  top: 20px;
  align-self: flex-start;
}

.pv-avatar-wrap {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid #006837;
  margin-bottom: 16px;
  flex-shrink: 0;
  box-shadow: 0 0 0 3px rgba(0, 104, 55, 0.12);
}

.pv-avatar {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  display: block;
}

.pv-avatar-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
}

.pv-name {
  font-size: 0.88rem;
  font-weight: 800;
  color: #1a1a2e;
  margin: 0 0 2px;
  text-align: center;
  line-height: 1.3;
  word-break: break-word;
}

.pv-student-id {
  font-size: 0.72rem;
  color: #888;
  margin: 0 0 14px;
  font-weight: 500;
}

.pv-sidebar-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

.pv-sidebar-info {
  text-align: center;
}

.pv-divider {
  width: 100%;
  border: none;
  border-top: 1px solid #eee;
  margin: 0 0 14px;
}

.pv-meta-grid {
  width: 100%;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pv-meta-row {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 5px 10px;
  border-radius: 6px;
}

.pv-meta-label {
  font-size: 0.56rem;
  font-weight: 700;
  color: #aaa;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.pv-meta-value {
  font-size: 0.76rem;
  color: #1a1a2e;
  font-weight: 600;
  word-break: break-all;
}

.pv-meta-email {
  color: #1a1a2e;
}

.pv-meta-course {
  color: #1a1a2e;
  font-weight: 700;
}

.pv-btn-group {
  display: flex;
  flex-direction: row;
  gap: 8px;
  width: 100%;
  margin-top: 20px;
}

.pv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex: 1;
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  border: none;
  letter-spacing: 0.02em;
}

.pv-btn svg {
  flex-shrink: 0;
}

.pv-btn:hover {
  text-decoration: none;
  opacity: 0.88;
}

.pv-btn-edit {
  background: #006837;
  color: #fff;
}

.pv-btn-edit:hover {
  background: #007a42;
  color: #fff;
}

.pv-btn-back {
  background: #f0f0f0;
  color: #444;
  border: 1px solid #ddd;
}

.pv-btn-back:hover {
  background: #e4e4e4;
  color: #333;
}

.pv-body {
  flex: 1;
  min-width: 0;
}

.pv-body-title {
  color: #fff;
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 16px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.pv-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}

.pv-tab {
  background: rgba(255, 255, 255, 0.08);
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  color: rgba(255, 255, 255, 0.8);
  border-radius: 20px;
  padding: 8px 18px;
  font-size: 0.74rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  font-family: inherit;
}

.pv-tab:hover {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.7);
  color: #fff;
}

.pv-tab.active {
  background: #fff;
  border-color: #fff;
  color: #006837;
  font-weight: 700;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.pv-panel {
  display: none;
  width: 100%;
}

.pv-panel.active {
  display: block;
}

.pv-panel-card {
  background: rgba(255, 255, 255, 0.22);
  border-radius: 14px;
  padding: 22px 24px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  backdrop-filter: blur(16px);
  width: 100%;
  box-sizing: border-box;
}

.pv-section-rule {
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  margin: 16px 0;
}

.pv-sub-heading {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 12px;
}

.pv-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 9px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.pv-row:last-child {
  border-bottom: none;
}

.pv-label {
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  min-width: 200px;
  max-width: 200px;
  flex-shrink: 0;
  padding-top: 1px;
}

.pv-sep {
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.8rem;
  flex-shrink: 0;
  padding-top: 1px;
}

.pv-value {
  color: #fff;
  font-size: 0.82rem;
  font-weight: 600;
  flex: 1;
  min-width: 0;
  word-break: break-word;
}

.pv-row--multiline .pv-value {
  white-space: normal;
}

@media (max-width: 991px) {
  .pv-page {
    padding: 18px;
  }

  .pv-layout {
    flex-direction: column;
    gap: 20px;
    align-items: center;
  }

  .pv-sidebar {
    width: 100%;
    min-width: unset;
    position: static;
    align-self: auto;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    text-align: left;
    padding: 20px 24px;
    gap: 0;
  }

  .pv-sidebar-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 8px;
    margin-bottom: 4px;
  }

  .pv-sidebar-header .pv-avatar-wrap {
    margin-bottom: 0;
    margin-right: 0;
  }

  .pv-sidebar-info {
    flex: 1;
    min-width: 0;
    text-align: center;
  }

  .pv-avatar-wrap {
    width: 72px;
    height: 72px;
    margin-bottom: 0;
    margin-right: 0;
  }

  .pv-name {
    text-align: center;
    font-size: 0.85rem;
  }

  .pv-student-id {
    text-align: center;
    margin-bottom: 0;
  }

  .pv-divider {
    margin: 14px 0;
  }

  .pv-meta-grid {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
  }

  .pv-meta-row {
    flex: 1;
    min-width: 140px;
  }

  .pv-btn-group {
    margin-top: 14px;
    padding-top: 0;
  }

  .pv-body {
    width: 100%;
  }

  .pv-body-title {
    text-align: center;
    font-size: 0.95rem;
  }

  .pv-tabs {
    justify-content: center;
  }

  .pv-panel-card {
    padding: 16px 18px;
  }

  .pv-label {
    min-width: 130px;
    max-width: 130px;
    font-size: 0.65rem;
  }

  .pv-value {
    font-size: 0.75rem;
  }

  .pv-tab {
    padding: 6px 14px;
    font-size: 0.68rem;
  }
}

@media (max-width: 480px) {
  .pv-page {
    padding: 12px;
  }

  .pv-sidebar {
    flex-direction: column;
    text-align: center;
    align-items: center;
  }

  .pv-sidebar-header {
    flex-direction: column;
    text-align: center;
    gap: 8px;
  }

  .pv-sidebar-info {
    text-align: center;
  }

  .pv-avatar-wrap {
    margin-right: 0;
    margin-bottom: 12px;
  }

  .pv-name {
    text-align: center;
  }

  .pv-student-id {
    text-align: center;
  }

  .pv-meta-grid {
    flex-direction: column;
  }

  .pv-label {
    min-width: 110px;
    max-width: 110px;
  }
}

.student-portal-body .sidebar-dropdown {
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

.student-portal-body .sidebar-dropdown .sidebar-link {
  margin: 0;
  border-radius: 12px;
}

.student-portal-body .sidebar-dropdown.open {
  background-color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  border-radius: 12px;
}

.student-portal-body .sidebar-dropdown.open .sidebar-link {
  color: #0a813c;
  font-weight: 700;
}

.student-portal-body .sidebar-dropdown-toggle {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}

.student-portal-body .sidebar-dropdown-toggle span {
  flex: 1;
}

.student-portal-body .sidebar-chevron {
  margin-left: auto;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.student-portal-body .sidebar-dropdown.open > .sidebar-dropdown-toggle > .sidebar-chevron {
  transform: rotate(180deg);
  color: #0a813c;
}

.student-portal-body .sidebar-dropdown-menu {
  display: none;
  flex-direction: column;
}

.student-portal-body .sidebar-dropdown.open .sidebar-dropdown-menu {
  display: flex;
}

.student-portal-body .sidebar-sublink {
  display: block;
  position: relative;
  padding: 8px 18px 8px 34px;
  color: #333;
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
  border-radius: 6px;
  transition: color 0.15s, background 0.15s;
}

.student-portal-body .sidebar-sublink::before {
  content: "\2022";
  position: absolute;
  left: 20px;
  color: inherit;
}

.student-portal-body .sidebar-sublink:hover {
  color: #0a813c;
  background-color: rgba(0, 104, 55, 0.06);
}

.student-portal-body .sidebar-sublink.active {
  color: #0a813c;
  font-weight: 700;
}

/* Nested sub-dropdowns (e.g. Academic Master) */

.student-portal-body .sidebar-nested-dropdown {
  display: flex;
  flex-direction: column;
}

.student-portal-body .sidebar-nested-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}

.student-portal-body .sidebar-nested-toggle .sidebar-chevron {
  margin-left: auto;
  transition: transform 0.2s;
}

.student-portal-body .sidebar-nested-dropdown.open > .sidebar-nested-toggle .sidebar-chevron {
  transform: rotate(180deg);
}

.student-portal-body .sidebar-nested-menu {
  display: none;
  flex-direction: column;
}

.student-portal-body .sidebar-nested-dropdown.open > .sidebar-nested-menu {
  display: flex;
}

.student-portal-body .sidebar-nested-sublink {
  padding-left: 50px !important;
  font-size: 0.82rem;
}

.student-portal-body .sidebar-nested-sublink::before {
  left: 36px;
}

/* Program File / Academic Master pages */

.pf-page {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pf-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  flex-wrap: wrap;
}

.pf-search-wrap {
  position: relative;
  flex: 1;
  max-width: 360px;
  min-width: 180px;
}

.pf-search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: #999;
  pointer-events: none;
}

.pf-search-input {
  width: 100%;
  padding: 9px 14px 9px 36px;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 0.88rem;
  font-family: inherit;
  background: #fff;
  transition: border-color 0.15s;
}

.pf-search-input:focus {
  outline: none;
  border-color: #006837;
}

.pf-btn-new {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 9px 18px;
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.88rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
}

.pf-btn-new:hover {
  background: #005a2e;
}

.pf-top-filter {
  border: 1.5px solid #d4d4d4;
  border-radius: 10px;
  padding: 12px 12px 10px;
  background: #f8f8f8;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.pf-top-filter-grid {
  display: grid;
  grid-template-columns: minmax(150px, 1.2fr) minmax(140px, 1fr) minmax(130px, 0.9fr) minmax(200px, 1.5fr) minmax(98px, 108px);
  gap: 10px;
  align-items: flex-end;
}

.pf-toolbar-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.pf-top-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

.pf-top-label {
  font-size: 0.73rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.pf-top-search-btn-wrap {
  display: flex;
}

.pf-top-search-btn {
  width: 100%;
  min-width: 100px;
}

.pf-table-controls {
  margin: 6px 0 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.pf-entries-control {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}

.pf-entries-control label {
  font-size: 0.75rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pf-entries-control span {
  font-size: 0.75rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.pf-entries-select {
  width: 64px;
  height: 34px;
  border: 1.5px solid #d0d0d0;
  border-radius: 6px;
  background: #fff;
  color: #555;
  font-size: 0.88rem;
  padding: 4px 6px;
}

.pf-modal-box.pf-dept-modal-box {
  width: -moz-fit-content;
  width: fit-content;
  max-width: min(95vw, 920px);
  min-width: 0;
  max-height: 90vh;
  overflow-y: auto;
}

.pf-dept-modal-title {
  text-align: left;
  border-bottom: 1px solid #d0d0d0;
  padding-bottom: 8px;
  margin-bottom: 10px;
}

.pf-dept-form-grid {
  display: grid;
  grid-template-columns: minmax(120px, auto) minmax(140px, auto) minmax(220px, 1.25fr) minmax(120px, auto);
  gap: 10px;
  align-items: flex-end;
}

.pf-item-program-type {
  grid-column: 1/2;
}

.pf-item-program-code {
  grid-column: 2/3;
}

.pf-item-department {
  grid-column: 3/5;
}

.pf-item-description {
  grid-column: 1/3;
}

.pf-item-slots {
  grid-column: 3/5;
}

.pf-item-track {
  grid-column: 1/4;
}

.pf-item-dean {
  grid-column: 1/3;
}

.pf-track-options {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  overflow-x: visible;
  padding: 7px 0;
}

.pf-track-option {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #1f1f1f;
  white-space: nowrap;
  flex: 0 0 auto;
}

.pf-item-program-type .pf-modal-label,
.pf-item-program-code .pf-modal-label,
.pf-item-department .pf-modal-label,
.pf-item-description .pf-modal-label,
.pf-item-slots .pf-modal-label,
.pf-item-track .pf-modal-label,
.pf-item-dean .pf-modal-label {
  color: #006837;
}

.pf-track-option input[type=radio],
.pf-track-option input[type=checkbox] {
  width: 16px;
  height: 16px;
  margin: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: #fff;
  border: 2px solid #0a813c;
  cursor: pointer;
  position: relative;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.pf-track-option input[type=radio] {
  border-radius: 50%;
}

.pf-track-option input[type=checkbox] {
  border-radius: 4px;
}

.pf-track-option input[type=radio]:checked,
.pf-track-option input[type=checkbox]:checked {
  border-color: #006837;
  background: #006837;
}

.pf-track-option input[type=radio]:checked::after {
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #fff;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.pf-track-option input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  top: 0px;
  left: 4px;
  transform: rotate(45deg);
}

.pf-track-option input[type=radio]:hover,
.pf-track-option input[type=checkbox]:hover {
  box-shadow: 0 0 0 3px rgba(0, 104, 55, 0.14);
}

.pf-modal-input,
.pf-modal-select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.pf-form-error-box {
  margin-bottom: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #fdecea;
  color: #b32222;
  font-size: 0.84rem;
  font-weight: 600;
}

.pf-dept-modal-actions {
  margin-top: 12px;
}

.pf-new-modal-box {
  width: min(96vw, 820px);
  max-width: 820px;
  min-width: min(96vw, 620px);
}

.pf-new-modal-title {
  text-align: left;
  border-bottom: 1px solid #d0d0d0;
  padding-bottom: 8px;
  margin-bottom: 12px;
}

.pf-new-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
}

.pf-new-modal-actions {
  margin-top: 14px;
}

@media (max-width: 991px) {
  .pf-top-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pf-toolbar {
    align-items: stretch;
  }

  .pf-toolbar-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .pf-top-search-btn-wrap {
    grid-column: span 2;
  }

  .pf-top-search-btn {
    width: 100%;
  }

  .pf-dept-modal-box {
    min-width: 0;
  }

  .pf-dept-form-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .pf-track-options {
    flex-wrap: wrap;
    overflow-x: visible;
  }

  .pf-item-program-type,
  .pf-item-program-code,
  .pf-item-description,
  .pf-item-slots,
  .pf-item-track,
  .pf-item-dean,
  .pf-item-department {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  .pf-modal-box.pf-dept-modal-box {
    width: 94vw;
    max-width: 94vw;
    padding: 18px 14px;
    max-height: 88vh;
  }
}

.pf-table-wrap {
  overflow-x: auto;
  border-radius: 10px;
  background: #fff;
  border: 2px solid #c0c0c0;
}

.pf-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.84rem;
}

.pf-table thead tr {
  background: #006837;
  color: #fff;
}

.pf-table thead th {
  padding: 12px 14px;
  font-weight: 600;
  text-align: left;
  letter-spacing: 0.03em;
  white-space: nowrap;
  color: #fff;
}

.pf-table thead th:first-child {
  border-radius: 8px 0 0 0;
}

.pf-table thead th:last-child {
  border-radius: 0 8px 0 0;
}

.pf-table tbody td {
  padding: 11px 14px;
  color: #333;
  vertical-align: middle;
  border-bottom: 1px solid #c0c0c0;
}

.pf-table tbody tr:last-child td {
  border-bottom: none;
}

.pf-table tbody tr:hover {
  background: #f9fffe;
}

.pf-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.pf-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  transition: background 0.15s, transform 0.1s;
}

.pf-action-btn:hover {
  transform: translateY(-1px);
}

.pf-view-btn {
  background: #e3f2fd;
  color: #1565c0;
}

.pf-view-btn:hover {
  background: #bbdefb;
}

.pf-edit-btn {
  background: #e8f5e9;
  color: #2e7d32;
}

.pf-edit-btn:hover {
  background: #c8e6c9;
}

.pf-delete-btn {
  background: #ffebee;
  color: #c62828;
}

.pf-delete-btn:hover {
  background: #ffcdd2;
}

.pf-action-link {
  color: #006837;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.pf-action-link:hover {
  text-decoration: underline;
}

/* Program File Modal */

.pf-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.pf-modal-box {
  background: #fff;
  border-radius: 12px;
  padding: 28px 32px 24px;
  min-width: 420px;
  max-width: 520px;
  width: 90%;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
}

@media (max-width: 600px) {
  .pf-modal-box {
    min-width: unset;
    padding: 20px 16px;
  }
}

.pf-modal-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 18px;
  text-align: center;
}

.pf-modal-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.pf-modal-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.pf-modal-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: #555;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pf-modal-input,
.pf-modal-select {
  padding: 9px 12px;
  border: 1.5px solid #d0d0d0;
  border-radius: 8px;
  font-size: 0.88rem;
  font-family: inherit;
  background: #fff;
  transition: border-color 0.15s;
}

.pf-modal-input:focus,
.pf-modal-select:focus {
  outline: none;
  border-color: #006837;
}

.pf-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 6px;
}

.pf-modal-btn-cancel {
  padding: 9px 20px;
  border: 1.5px solid #d0d0d0;
  border-radius: 8px;
  background: #fff;
  color: #555;
  font-size: 0.85rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s;
}

.pf-modal-btn-cancel:hover {
  background: #f5f5f5;
}

.pf-modal-btn-save {
  padding: 9px 20px;
  border: none;
  border-radius: 8px;
  background: #006837;
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s;
}

.pf-modal-btn-save:hover {
  background: #005a2e;
}

.pf-pagination {
  display: flex;
  justify-content: flex-end;
  padding: 4px 0;
}

.pf-page-info {
  font-size: 0.82rem;
  color: #666;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .pf-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .pf-toolbar-actions {
    width: 100%;
    justify-content: stretch;
  }

  .pf-toolbar-actions .pf-btn-new {
    flex: 1;
    min-width: 0;
  }

  .pf-table-controls {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .pf-entries-control {
    justify-content: space-between;
    width: 100%;
  }

  .pf-page-info {
    text-align: left;
  }

  .pf-top-filter-grid,
  .pf-dept-form-grid,
  .pf-new-form-grid {
    grid-template-columns: 1fr;
  }

  .pf-top-search-btn-wrap {
    grid-column: auto;
  }

  .pf-modal-box,
  .pf-dept-modal-box,
  .pf-new-modal-box {
    width: 94vw;
    min-width: 0;
    max-width: 94vw;
    padding: 18px 14px;
  }
}

.student-portal-body .topbar-icons {
  display: flex;
  align-items: center;
  gap: 10px;
}

.student-portal-body .topbar-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: #f0f0f0;
  color: #444;
  text-decoration: none;
  transition: background 0.15s, color 0.15s, box-shadow 0.15s, transform 0.15s;
}

.student-portal-body .topbar-icon-link:hover {
  background-color: #e0e0e0;
  color: #222;
}

.student-portal-body .topbar-icon-link.msg-icon:hover {
  background-color: #e8f4ed;
  color: #006837;
  box-shadow: 0 2px 8px rgba(0, 104, 55, 0.2);
  transform: translateY(-1px);
}

.student-portal-body .topbar-icon-link.msg-icon.is-active {
  background-color: #006837;
  color: #ffffff;
  box-shadow: 0 4px 10px rgba(0, 104, 55, 0.25);
}

.student-table-wrapper {
  overflow-x: auto;
  border: 2px solid #c0c0c0;
  border-radius: 8px;
}

.student-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.88rem;
  background: #fff;
}

.student-table thead {
  background-color: #006837;
}

/* Global registrar table-header color standard */

.registrar-body table thead tr,
.registrar-body table thead th {
  background-color: #006837 !important;
  background: #006837 !important;
  color: #ffffff !important;
  border-color: #006837 !important;
}

.student-table thead th {
  color: #fff;
  font-weight: 700;
  text-align: center;
  padding: 12px 16px;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.student-table tbody tr {
  transition: background-color 0.15s ease;
}

.student-table tbody tr:hover {
  background-color: #f0f7f0;
}

.student-table tbody td {
  padding: 14px 16px;
  text-align: center;
  vertical-align: middle;
  color: #333;
  border-bottom: 1px solid #c0c0c0;
}

.student-table tbody tr:last-child td {
  border-bottom: none;
}

.registrar-form-row {
  display: flex;
  gap: 16px;
  align-items: flex-end;
  margin-bottom: 24px;
}

.registrar-form-group {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.registrar-form-label {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--plp-green);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 4px;
  font-family: "Poppins", sans-serif;
}

.registrar-form-input {
  width: 100%;
  padding: 10px 14px;
  font-size: 0.85rem;
  font-family: "Poppins", sans-serif;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  background: #fff;
  color: #333;
  outline: none;
  transition: border-color 0.2s ease;
}

.registrar-form-input:focus {
  border-color: var(--plp-green);
}

.registrar-form-input::-moz-placeholder {
  color: #bbb;
}

.registrar-form-input::placeholder {
  color: #bbb;
}

.registrar-form-btn-group {
  flex: 0 0 auto;
}

.btn-registrar-save {
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: #fff;
  background-color: var(--plp-green);
  border: none;
  border-radius: 6px;
  padding: 10px 40px;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.15s ease;
  letter-spacing: 0.5px;
}

.btn-registrar-save:hover {
  background-color: var(--plp-green-dark);
  transform: translateY(-1px);
}

.registrar-table {
  table-layout: auto;
  min-width: 860px;
}

.registrar-table thead th {
  text-align: center;
}

.registrar-table thead th:last-child {
  text-align: left;
}

.registrar-table tbody td {
  text-align: center;
}

.registrar-table tbody td:last-child {
  text-align: left;
}

/* Program File table all columns left-aligned, Action centered */

.pf-page .registrar-table thead th,
.pf-page .registrar-table tbody td {
  text-align: left;
}

.pf-page #pfTable thead th {
  background-color: #005229;
  color: #ffffff;
  border-color: #004824;
}

.pf-page .registrar-table thead th:last-child,
.pf-page .registrar-table tbody td:last-child {
  text-align: center;
}

.doclist-page {
  padding: 4px 0;
}

.doclist-filter-bar {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.doclist-filter-left {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex: 1;
  flex-wrap: wrap;
}

.doclist-filter-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-width: 140px;
}

.doclist-filter-right {
  display: flex;
  align-items: flex-end;
}

.doclist-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 22px;
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-family: "Poppins", sans-serif;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
}

.doclist-add-btn:hover {
  background: #005229;
}

.doclist-options-row {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.doclist-radios {
  display: flex;
  align-items: center;
  gap: 18px;
}

.doclist-radio-label,
.doclist-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Poppins", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  color: #333;
  cursor: pointer;
}

.doclist-radio-label input[type=radio],
.doclist-radio-label input[type=checkbox],
.doclist-checkbox-label input[type=radio],
.doclist-checkbox-label input[type=checkbox] {
  accent-color: var(--plp-green);
  width: 16px;
  height: 16px;
  cursor: pointer;
}

.doclist-save-wrap {
  margin-left: auto;
}

.doclist-table thead th {
  text-align: center;
}

.doclist-table thead th:last-child {
  text-align: center;
}

.doclist-table tbody td {
  text-align: center;
}

.doclist-table tbody td:last-child {
  text-align: center;
}

#doclistTable .apst-dropdown {
  position: fixed;
}

#doclistTable td:last-child .apst-action-btn {
  margin: 0 auto;
}

.doclist-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.doclist-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  transition: background 0.15s, transform 0.1s;
}

.doclist-action-btn:hover {
  transform: translateY(-1px);
}

.doclist-edit-btn {
  background: #e8f5e9;
  color: #2e7d32;
}

.doclist-edit-btn:hover {
  background: #c8e6c9;
}

.doclist-delete-btn {
  background: #ffebee;
  color: #c62828;
}

.doclist-delete-btn:hover {
  background: #ffcdd2;
}

.batch-upload-wrapper {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.batch-dropzone {
  border: 2px dashed var(--plp-green);
  border-radius: 8px;
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  background: #fff;
}

.batch-dropzone:hover,
.batch-dropzone.dragover {
  background-color: #f0f7f0;
  border-color: #005028;
}

.dropzone-text {
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: #999;
  margin: 0;
  pointer-events: none;
}

.batch-upload-note {
  padding: 0;
}

.batch-upload-note p {
  font-family: "Poppins", sans-serif;
  font-size: 0.85rem;
  color: #333;
  margin: 0;
  line-height: 1.6;
}

@media (max-width: 991px) {
  .registrar-body .registrar-form-row {
    gap: 12px;
  }
}

@media (max-width: 768px) {
  .registrar-body .registrar-form-row {
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
  }

  .registrar-body .registrar-form-group[style*="flex: 2"] {
    flex: 1 !important;
  }

  .registrar-body .registrar-form-btn-group {
    align-self: flex-start;
  }

  .registrar-body .student-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .registrar-body .student-table thead th {
    padding: 10px 12px;
    font-size: 0.75rem;
  }

  .registrar-body .student-table tbody td {
    padding: 10px 12px;
    font-size: 0.82rem;
  }

  .registrar-body .btn-registrar-save {
    padding: 8px 28px;
    font-size: 0.82rem;
  }

  .registrar-body .registrar-form-input {
    padding: 8px 12px;
    font-size: 0.82rem;
  }
}

.reg-dashboard {
  padding: 4px 0;
}

.reg-stat-card-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: #555;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.reg-stat-card-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-top: 4px;
}

.reg-stat-left {
  display: flex;
  flex-direction: column;
}

.reg-stat-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.reg-stat-sparkline {
  width: 150px;
  flex-shrink: 0;
  overflow: visible;
  display: block;
}

.reg-applicants-dept {
  font-size: 0.9rem;
  font-weight: 700;
  color: #c2607a;
  margin-top: 4px;
}

.reg-announce-card,
.reg-schedule-card {
  background: #ffffff;
  border: 1px solid #e2e6e9;
  border-radius: 16px;
  padding: 20px 22px;
  box-shadow: 0 6px 18px rgba(26, 26, 46, 0.06);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.reg-announce-card {
  min-height: 320px;
}

.reg-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.reg-card-title {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 1.02rem;
  font-weight: 700;
  color: #1a1a2e;
}

.reg-card-date {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.74rem;
  color: #9aa0a6;
  background: #f6f7f9;
  padding: 4px 10px;
  border-radius: 999px;
}

.reg-announce-text {
  flex: 1;
  min-width: 0;
}

.reg-announce-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #1a1a2e;
  line-height: 1.35;
  margin-bottom: 4px;
}

.reg-see-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: auto auto 0;
  padding: 8px 16px;
  border-radius: 999px;
  border: 1px solid #dfe3e7;
  background: #f9fafb;
  font-size: 0.82rem;
  font-weight: 700;
  color: #006837;
  text-decoration: none;
  width: -moz-fit-content;
  width: fit-content;
}

.reg-see-all:hover {
  background: #f1f4f6;
  border-color: #cfd6dc;
  text-decoration: none;
}

.reg-sched-priority-label,
.reg-sched-other-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #888;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 8px;
  margin-top: 4px;
}

.reg-sched-other-label {
  margin-top: 14px;
}

.reg-dash-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 20px;
  margin-bottom: 24px;
  align-items: stretch;
}

.reg-stat-card {
  background: #fff;
  border: 1.5px solid #d0d0d0;
  border-radius: 14px;
  padding: 20px 22px 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
}

.reg-stat-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #555;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.reg-stat-number {
  font-size: 2rem;
  font-weight: 800;
  color: #1a1a2e;
  line-height: 1.1;
}

.reg-stat-sub {
  font-size: 0.78rem;
  color: #888;
  margin-top: 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.reg-stat-sub span {
  display: block;
}

.reg-stat-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #f0f0f0;
  color: #555;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 20px;
  white-space: nowrap;
}

.reg-sparkline-wrap {
  margin-top: 12px;
  width: 100%;
  overflow: hidden;
}

.reg-sparkline-wrap svg {
  width: 100%;
  height: auto;
  display: block;
}

.reg-applicants-card {
  background: #fce8f0;
  border: 1.5px solid #e8b0c4;
  border-radius: 14px;
  padding: 20px 24px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.reg-applicants-card .reg-stat-card-title {
  font-size: 1rem;
  margin-bottom: 6px;
}

.reg-applicants-card .reg-stat-number {
  font-size: 2.8rem;
}

.reg-applicants-card .reg-applicants-dept {
  font-size: 1rem;
  margin-top: 6px;
}

.reg-faculty-card {
  background: #e8f0fe;
  border: 1.5px solid #a8c0f0;
  border-radius: 14px;
  padding: 20px 24px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.reg-faculty-card .reg-stat-card-title {
  font-size: 1rem;
  margin-bottom: 6px;
}

.reg-faculty-card .reg-stat-number {
  font-size: 2.8rem;
}

.reg-faculty-card .reg-faculty-dept {
  font-size: 1rem;
  margin-top: 6px;
  color: #3b6fd4;
  font-weight: 600;
}

.reg-applicants-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #1a1a2e;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.reg-applicants-number {
  font-size: 2rem;
  font-weight: 800;
  color: #1a1a2e;
  line-height: 1.1;
}

.reg-applicants-sub {
  font-size: 0.78rem;
  color: #1a1a2e;
  margin-top: 2px;
  opacity: 0.8;
}

.reg-dash-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.reg-section-card {
  background: #fff;
  border-radius: 14px;
  padding: 18px 20px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
}

.reg-section-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #006837;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid #e8f5ee;
}

.reg-announce-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.reg-announce-date {
  font-size: 0.8rem;
  font-weight: 600;
  color: #444;
}

.reg-announce-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #f2f3f5;
}

.reg-announce-item.pinned {
  padding: 12px 12px;
  border-radius: 10px;
  background: #f4fbf6;
  border: 1px solid #e1f1e6;
}

.reg-announce-item:last-of-type {
  border-bottom: none;
}

.reg-announce-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #006837;
  flex-shrink: 0;
  margin-top: 6px;
}

.reg-announce-time {
  font-size: 0.74rem;
  color: #9aa0a6;
  margin-top: 2px;
}

.reg-sched-item {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  background: #fafbfc;
  border: 1px solid #eef0f2;
  border-radius: 12px;
  padding: 12px 14px;
  position: relative;
  overflow: hidden;
}

.reg-sched-color-bar {
  display: none;
}

.reg-sched-color-bar.priority-high {
  background: #e74c3c;
}

.reg-sched-color-bar.priority-normal {
  background: #006837;
}

.reg-sched-priority-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 4px;
  vertical-align: middle;
}

.reg-sched-priority-dot.priority-high {
  background: #e74c3c;
}

.reg-sched-priority-dot.priority-normal {
  background: #006837;
}

.reg-sched-info {
  flex: 1;
  min-width: 0;
}

.reg-sched-name {
  font-size: 0.9rem;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 4px;
  line-height: 1.35;
}

.reg-sched-time {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.74rem;
  color: #9aa0a6;
}

.reg-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
  color: #9aa0a6;
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
}

.reg-icon-btn:hover {
  background: #f3f5f7;
  color: #006837;
  border-color: #e3e6e9;
}

.reg-pin-btn {
  color: #9aa0a6;
}

.reg-pin-btn.active {
  color: #006837;
  background: #eaf6ef;
  border-color: #cfe7d8;
}

.reg-sched-badge {
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 12px;
  white-space: nowrap;
  flex-shrink: 0;
}

.reg-sched-badge.badge-green {
  background: #e5f4ec;
  color: #006837;
}

.reg-sched-badge.badge-blue {
  background: #e8f0fe;
  color: #1a73e8;
}

.reg-sched-badge.badge-orange {
  background: #fff3e0;
  color: #e65100;
}

/* Registrar dashboard page-scoped interactive menu + modal styles */

.page-registrar-dashboard .reg-more-wrap {
  position: relative;
  z-index: 20;
}

.page-registrar-dashboard .reg-more-wrap.is-open {
  z-index: 80;
}

.page-registrar-dashboard .reg-more-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 178px;
  padding: 6px;
  border: 1px solid #d6dee8;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
  z-index: 80;
  white-space: nowrap;
}

.page-registrar-dashboard .reg-more-menu.is-flip-left {
  right: auto;
  left: 0;
}

.page-registrar-dashboard .reg-more-menu[hidden] {
  display: none;
}

.page-registrar-dashboard .reg-more-action {
  display: flex;
  align-items: center;
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 8px 10px;
  border-radius: 6px;
  color: #1f2937;
  font-size: 0.82rem;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}

.page-registrar-dashboard .reg-more-action:hover {
  background: #eef7f0;
  color: #006837;
}

.page-registrar-dashboard .reg-more-action.danger:hover {
  background: #fef2f2;
  color: #b91c1c;
}

.page-registrar-dashboard .reg-menu-backdrop {
  position: fixed;
  inset: 0;
  background: transparent;
  z-index: 70;
  display: none;
}

.page-registrar-dashboard .reg-menu-backdrop.is-active {
  display: block;
}

.page-registrar-dashboard .reg-announce-card,
.page-registrar-dashboard .reg-schedule-card,
.page-registrar-dashboard .reg-dash-bottom,
.page-registrar-dashboard .reg-announce-item,
.page-registrar-dashboard .reg-sched-item {
  overflow: visible;
}

.page-registrar-dashboard .reg-sched-section-tag {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 5px 12px;
  margin-bottom: 8px;
}

.page-registrar-dashboard .reg-sched-section-tag::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
}

.page-registrar-dashboard .reg-sched-section-tag-priority {
  background: #fff7ed;
  color: #9a3412;
  border: 1px solid #fed7aa;
}

.page-registrar-dashboard .reg-sched-section-tag-priority::before {
  background: #f97316;
}

.page-registrar-dashboard .reg-sched-section-tag-other {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}

.page-registrar-dashboard .reg-sched-section-tag-other::before {
  background: #2563eb;
}

.page-registrar-dashboard .reg-sched-item.is-done {
  opacity: 0.65;
}

.page-registrar-dashboard .reg-sched-item.is-done .reg-sched-name {
  text-decoration: line-through;
}

/* Registrar dashboard cursor map: text stays default, actions stay pointer. */

.page-registrar-dashboard .reg-card-date,
.page-registrar-dashboard .reg-announce-item,
.page-registrar-dashboard .reg-sched-item,
.page-registrar-dashboard .reg-announce-title,
.page-registrar-dashboard .reg-announce-time,
.page-registrar-dashboard .reg-sched-name,
.page-registrar-dashboard .reg-sched-time {
  cursor: default;
}

.page-registrar-dashboard .reg-icon-btn,
.page-registrar-dashboard .reg-more-toggle,
.page-registrar-dashboard .reg-more-action,
.page-registrar-dashboard .reg-see-all {
  cursor: pointer;
}

.app-process-page {
  padding: 4px 0;
}

.app-filter-bar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  margin-bottom: 12px;
  background: #fff;
  border: 1px solid #d9e3dd;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
  width: 100%;
}

.app-filter-row {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}

.app-filter-group {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1 1 170px;
  min-width: 170px;
}

.app-filter-actions-row {
  align-items: center;
  justify-content: space-between;
}

.app-filter-action-btn {
  min-width: 108px;
}

.app-filter-actions-group {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin-left: auto;
}

.app-filter-auto-note {
  margin: 0;
  font-size: 0.74rem;
  color: #4f5a53;
  line-height: 1.35;
}

.sidebar-logout-form {
  margin: 0;
}

.sidebar-logout-form .sidebar-link.logout-link {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
}

.app-filter-input-search {
  min-width: 180px;
}

.app-filter-input-sort {
  min-width: 140px;
}

.app-filter-select-sm {
  min-width: 80px;
  max-width: 100px;
}

.app-filter-select-wide {
  min-width: 200px;
  flex: 1;
}

.app-status-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  margin-right: 5px;
  vertical-align: middle;
}

.app-filter-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  white-space: nowrap;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.app-filter-input {
  padding: 6px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.8rem;
  outline: none;
  min-height: 36px;
  min-width: 100px;
}

.app-filter-input:focus {
  border-color: #006837;
}

.app-filter-select {
  padding: 6px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.8rem;
  outline: none;
  background: #fff;
  cursor: pointer;
  min-height: 36px;
}

.app-filter-select:focus {
  border-color: #006837;
}

.app-filter-search {
  display: flex;
  align-items: center;
  border: 1px solid #ccc;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

.app-filter-search input {
  padding: 7px 10px;
  border: none;
  outline: none;
  font-size: 0.82rem;
  min-width: 160px;
}

.app-filter-search button {
  background: #006837;
  color: #fff;
  border: none;
  padding: 7px 14px;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 600;
  transition: background 0.15s;
}

.app-filter-search button:hover {
  background: #005229;
}

.app-table-wrap {
  overflow-x: auto;
  border: 2px solid #c0c0c0;
  border-radius: 10px;
  position: relative;
}

.app-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  font-size: 0.84rem;
}

.app-table thead tr {
  background: #006837;
  color: #fff;
}

.app-table thead th {
  padding: 12px 14px;
  font-weight: 600;
  text-align: left;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.app-table tbody tr {
  border-bottom: 1px solid #c0c0c0;
}

.app-table tbody tr:last-child {
  border-bottom: none;
}

.app-table tbody tr:hover {
  background: #f9fffe;
}

.app-table td {
  padding: 11px 14px;
  color: #333;
  vertical-align: middle;
  border-bottom: 1px solid #c0c0c0;
}

.app-table tbody tr:last-child td {
  border-bottom: none;
}

.app-status-accepted {
  color: #006837;
  font-weight: 600;
}

.app-status-pending {
  color: #e6a817;
  font-weight: 600;
}

.app-status-rejected {
  color: #c0392b;
  font-weight: 600;
}

.app-status-inprogress {
  color: #1a73e8;
  font-weight: 600;
}

.schedule-exam-feedback {
  margin: 8px 0 12px;
  color: #555;
  min-height: 20px;
  font-size: 0.84rem;
}

.schedule-exam-feedback.is-error {
  color: #b42318;
}

.schedule-exam-feedback.is-success {
  color: #14532d;
}

#panel-exam-result .is-hidden {
  display: none;
}

.result-score-message {
  margin-top: 8px;
}

.applicant-no-result {
  padding: 20px;
  color: #555;
}

.app-process-print-page .app-process-print-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.app-process-print-page .app-process-print-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

@media print {
  .app-process-print-page .no-print {
    display: none !important;
  }

  .app-process-print-page {
    background: #fff;
  }

  .app-process-print-page .container-fluid {
    max-width: 100%;
    padding: 0;
  }
}

@media (max-width: 991px) {
  .reg-dash-top {
    grid-template-columns: 1fr 1fr;
  }

  .reg-stat-card {
    grid-column: 1/-1;
  }

  .reg-dash-bottom {
    grid-template-columns: 1fr;
  }

  .reg-applicants-card {
    padding: 20px 24px;
  }

  .reg-faculty-card {
    padding: 20px 24px;
  }

  .app-filter-row {
    flex-direction: column;
    align-items: stretch;
  }

  .app-filter-actions-row {
    gap: 8px;
  }

  .app-filter-group {
    width: 100%;
  }

  .app-filter-actions-group {
    margin-left: 0;
    width: 100%;
    justify-content: stretch;
  }

  .app-filter-actions-group .app-filter-action-btn {
    flex: 1 1 120px;
  }

  .app-filter-auto-note {
    font-size: 0.72rem;
  }

  .app-filter-select-wide,
  .app-filter-input-search,
  .app-filter-input-sort {
    min-width: unset;
    width: 100%;
  }
}

@media (max-width: 768px) {
  .reg-dash-top {
    grid-template-columns: 1fr;
  }

  .reg-dash-bottom {
    gap: 14px;
  }

  .reg-card-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .doclist-filter-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .doclist-filter-left {
    flex-direction: column;
  }

  .doclist-filter-group {
    min-width: unset;
    width: 100%;
  }

  .doclist-add-btn {
    width: 100%;
    justify-content: center;
  }
}

.req-page {
  padding: 4px 0;
}

.req-search-wrap {
  margin-bottom: 20px;
}

.req-search-box {
  position: relative;
  display: inline-block;
  width: 280px;
}

.req-search-box.req-search-box-sm {
  width: 220px;
}

.req-search-input {
  width: 100%;
  padding: 8px 36px 8px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.85rem;
  outline: none;
  box-sizing: border-box;
}

.req-search-input:focus {
  border-color: #006837;
}

.req-search-icon {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}

.req-cards-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

@media (max-width: 1100px) {
  .req-cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .req-cards-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.req-card {
  background: #fff;
  border: 1px solid #80b497;
  border-radius: 8px;
  padding: 18px 16px;
  cursor: pointer;
  transition: box-shadow 0.18s, transform 0.15s;
  box-shadow: 0 0 0 1px rgba(15, 123, 67, 0.08), 0 1px 3px rgba(0, 0, 0, 0.03);
  box-sizing: border-box;
  min-width: 0;
  overflow: hidden;
}

.req-card:hover {
  box-shadow: 0 4px 14px rgba(0, 104, 55, 0.15);
  transform: translateY(-2px);
}

.req-card-name {
  font-size: 0.88rem;
  font-weight: 700;
  color: #006837;
  text-transform: uppercase;
  margin-bottom: 4px;
  line-height: 1.3;
  word-break: break-word;
  overflow-wrap: break-word;
}

.req-card-id {
  font-size: 0.78rem;
  color: #555;
  margin-bottom: 12px;
}

.req-progress-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}

.req-progress-blocks {
  display: flex;
  gap: 3px;
  flex-shrink: 0;
}

.req-progress-block {
  width: 18px;
  height: 10px;
  border-radius: 3px;
  background: #ddd;
}

.req-progress-block.done {
  background: #006837;
}

.req-progress-count {
  font-size: 0.75rem;
  color: #555;
  white-space: nowrap;
}

.req-card-status {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 3px 10px;
  border-radius: 12px;
}

.req-card-status.status-verified {
  background: #e5f4ec;
  color: #006837;
}

.req-card-status.status-inprogress {
  background: #f0f0f0;
  color: #777;
}

.req-detail-topbar {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}

.req-back-btn {
  background: none;
  border: none;
  color: #006837;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.req-back-btn:hover {
  text-decoration: underline;
}

.req-detail-header {
  background: #fff;
  border: 1px solid #80b497;
  border-radius: 8px;
  padding: 12px 20px;
  margin-bottom: 16px;
  font-size: 0.88rem;
  font-weight: 600;
  color: #1a1a2e;
  display: flex;
  gap: 32px;
  box-shadow: 0 0 0 1px rgba(15, 123, 67, 0.08), 0 1px 3px rgba(0, 0, 0, 0.03);
}

.req-detail-name-label span,
.req-detail-id-label span {
  color: #006837;
  font-weight: 700;
  margin-left: 6px;
}

.req-checkbox {
  width: 22px;
  height: 22px;
  border: 2px solid #aaa;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  margin: 0 auto;
  transition: border-color 0.15s, background 0.15s;
}

.req-checkbox.checked {
  background: #006837;
  border-color: #006837;
}

.req-checkbox.checked svg {
  width: 14px;
  height: 14px;
  display: block;
}

.req-checkbox:not(.checked) svg {
  display: none;
}

.req-action-link {
  color: #c0392b;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: underline;
  margin-left: 6px;
}

.req-action-link:hover {
  color: #a93226;
}

.req-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  z-index: 9999;
  padding: 40px 20px;
  overflow-y: auto;
}

.req-modal-box {
  background: #fff;
  border-radius: 12px;
  padding: 28px 32px 24px;
  min-width: 420px;
  max-width: 620px;
  width: 100%;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
  margin: auto;
  position: relative;
}

.rep-modal-close-x {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  border: 1px solid #d1ddd5;
  border-radius: 50%;
  background: #ffffff;
  color: #3b4b42;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.18s ease;
  z-index: 2;
}

.rep-modal-close-x:hover {
  border-color: #0a813c;
  color: #0a813c;
  background: #f5fbf7;
}

@media (max-width: 768px) {
  .req-modal-box {
    min-width: unset;
    padding: 20px 16px;
  }
}

@media (max-width: 640px) {
  .rep-sys-title {
    font-size: 0.74rem;
    letter-spacing: 0.06em;
  }

  .rep-group-card {
    padding: 12px 10px;
  }

  .rep-group-title {
    font-size: 0.92rem;
    margin-bottom: 8px;
  }

  .rep-btn {
    font-size: 0.8rem;
    min-height: 42px;
    padding: 8px 10px;
  }

  .req-modal-overlay {
    padding: 12px 8px;
  }

  .req-modal-box {
    border-radius: 10px;
    padding: 14px 12px 12px;
  }

  .rep-preview-modal-box {
    max-height: 95vh;
  }

  .rep-preview-head {
    padding: 10px 12px;
  }

  .rep-preview-head h3 {
    font-size: 0.82rem;
    padding-right: 30px;
  }

  .rep-modal-close-x {
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    font-size: 1rem;
  }

  .req-modal-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .req-modal-actions .req-btn-save,
  .req-modal-actions .req-btn-cancel {
    width: 100%;
    min-width: 0 !important;
  }
}

.req-modal-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 14px;
  text-align: center;
}

.req-modal-meta {
  display: flex;
  gap: 24px;
  font-size: 0.83rem;
  color: #444;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #eee;
}

.req-modal-meta strong {
  color: #1a1a2e;
}

.req-modal-fields {
  display: flex;
  gap: 16px;
}

@media (max-width: 768px) {
  .req-modal-fields {
    flex-direction: column;
  }
}

.req-modal-field-group {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 5px;
}

.req-modal-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #555;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.req-modal-hint {
  font-size: 0.72rem;
  color: #999;
  margin-top: 3px;
  display: block;
}

.req-modal-input {
  padding: 8px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.85rem;
  outline: none;
  width: 100%;
  box-sizing: border-box;
}

.req-modal-input:focus {
  border-color: #006837;
}

.req-photo-group {
  border-top: 1px dashed #e0e0e0;
  padding-top: 12px;
}

.req-modal-file {
  font-size: 0.83rem;
  padding: 6px 0;
  width: 100%;
  cursor: pointer;
}

.req-photo-preview {
  margin-top: 8px;
}

.req-photo-preview img {
  max-width: 120px;
  max-height: 120px;
  border-radius: 6px;
  border: 1px solid #e0e0e0;
  -o-object-fit: cover;
  object-fit: cover;
  display: block;
}

.req-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 22px;
}

.req-btn-cancel {
  background: #e0e0e0;
  color: #444;
  border: none;
  border-radius: 6px;
  padding: 9px 22px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.req-btn-cancel:hover {
  background: #ccc;
}

.req-btn-save {
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 9px 28px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.req-btn-save:hover {
  background: #005229;
}

.req-modal-success {
  text-align: center;
  min-width: 320px;
  max-width: 380px;
}

.req-modal-success-title {
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #006837;
  margin-bottom: 10px;
}

.req-modal-success-msg {
  font-size: 0.9rem;
  color: #444;
  margin-bottom: 22px;
}

.req-btn-ok {
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 20px;
  padding: 10px 36px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.req-btn-ok:hover {
  background: #005229;
}

.req-modal-field-group {
  display: flex;
  flex-direction: column;
}

.req-modal-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 4px;
}

select.req-modal-input {
  -webkit-appearance: auto;
  -moz-appearance: auto;
  appearance: auto;
}

.apst-page {
  padding: 4px 0;
}

#apstTable {
  width: 100%;
  table-layout: auto;
}

#apstTable th:nth-child(1),
#apstTable td:nth-child(1) {
  width: 1%;
  text-align: center;
  white-space: nowrap;
}

#apstTable th:nth-child(2),
#apstTable td:nth-child(2) {
  width: 14%;
  white-space: nowrap;
}

#apstTable th:nth-child(3),
#apstTable td:nth-child(3) {
  width: 20%;
  white-space: nowrap;
}

#apstTable th:nth-child(4),
#apstTable td:nth-child(4) {
  width: 65%;
  white-space: normal;
  word-break: break-word;
}

.apst-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  gap: 12px;
}

.apst-search-box {
  position: relative;
  width: 280px;
}

.apst-search-input {
  width: 100%;
  padding: 8px 36px 8px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.85rem;
  outline: none;
  box-sizing: border-box;
}

.apst-search-input:focus {
  border-color: #006837;
}

.apst-search-icon {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}

.apst-new-btn {
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 9px 22px;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  letter-spacing: 0.02em;
  transition: background 0.15s;
}

.apst-new-btn:hover {
  background: #005229;
}

.apst-action-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: 30px;
  height: 30px;
  border: 1.5px solid #aaa;
  border-radius: 5px;
  cursor: pointer;
  padding: 4px;
  box-sizing: border-box;
  position: relative;
}

.apst-action-btn span {
  display: block;
  width: 4px;
  height: 4px;
  background: #555;
  border-radius: 50%;
}

.apst-action-btn:hover {
  border-color: #006837;
}

.apst-action-btn:hover span {
  background: #006837;
}

.apst-dropdown {
  display: none;
  position: absolute;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 7px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
  z-index: 9999;
  min-width: 110px;
  overflow: hidden;
  left: 36px;
  top: 0;
}

.apst-dropdown.drop-up {
  top: auto;
  bottom: 0;
}

/* Use fixed positioning so wrapper overflow doesn't clip dropdowns */

#sfTable .apst-dropdown,
#apstTable .apst-dropdown,
#rfTable .apst-dropdown,
#smTable .apst-dropdown,
#gpTable .apst-dropdown,
#tmTable .apst-dropdown,
#gsTable .apst-dropdown,
#torTable .apst-dropdown,
#diplomaTable .apst-dropdown {
  position: fixed;
}

.apst-dropdown.open {
  display: block;
}

.apst-dropdown button {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  padding: 9px 14px;
  background: none;
  border: none;
  font-size: 0.83rem;
  color: #333;
  cursor: pointer;
  text-align: left;
  transition: background 0.12s;
}

.apst-dropdown button:hover {
  background: #f5f5f5;
}

.apst-dropdown .apst-del-btn {
  color: #c0392b;
}

.apst-dropdown .apst-del-btn:hover {
  background: #fff0ee;
}

#apstTable td:first-child,
#sfTable td:first-child,
#rfTable td:first-child,
#smTable td:first-child,
#gpTable td:first-child,
#dfTable td:first-child,
#tmTable td:first-child,
#gsTable td:first-child {
  position: relative;
}

#rfTable .rf-sort-btn {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 2px 0;
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 700;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: color 0.15s ease;
}

#rfTable .rf-sort-btn:hover:not(:disabled),
#rfTable .rf-sort-btn:focus-visible {
  color: #0a813c;
  outline: none;
}

#rfTable .rf-sort-btn:disabled {
  opacity: 0.62;
  cursor: wait;
}

#rfTable .rf-sort-btn .rf-sort-indicator {
  min-width: 40px;
  padding: 2px 7px;
  border-radius: 999px;
  border: 1px solid #c6dbcf;
  background: #f6fbf8;
  color: #5a7061;
  text-align: center;
  font-size: 0.65rem;
  line-height: 1.1;
  text-transform: uppercase;
}

#rfTable .rf-sort-btn.is-active .rf-sort-indicator {
  border-color: #0f7b43;
  background: #0f7b43;
  color: #ffffff;
}

.rf-hallway-inline,
.rf-building-inline,
.rf-program-inline {
  display: flex;
  align-items: center;
  gap: 8px;
}

#newRoomModal .pf-modal-title,
#newRoomModal .pf-modal-label {
  color: #0a6e3a;
}

#newRoomModal .pf-modal-input::-moz-placeholder {
  color: #8e96a0;
}

#newRoomModal .pf-modal-input::placeholder {
  color: #8e96a0;
}

.rf-hallway-modal-box {
  max-width: 460px;
}

.rf-building-modal-box {
  max-width: 460px;
}

.rf-hallway-modal-box #addHallwayBuilding {
  background: #f2fbf6;
  border-color: #c6e1cf;
  color: #0d6336;
}

.rf-hallway-inline .pf-modal-select,
.rf-building-inline .pf-modal-select,
.rf-program-inline .pf-modal-select {
  flex: 1;
  min-width: 0;
}

.rf-hallway-add-btn,
.rf-setup-add-btn {
  width: 36px;
  height: 36px;
  border: 1px solid #9ac7a6;
  border-radius: 8px;
  background: #f4fbf7;
  color: #0a6e3a;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: all 0.15s ease;
}

.rf-hallway-add-btn:hover:not(:disabled),
.rf-setup-add-btn:hover:not(:disabled) {
  background: #0f7b43;
  border-color: #0f7b43;
  color: #ffffff;
}

.rf-hallway-add-btn:disabled,
.rf-setup-add-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

#gsTable th:first-child,
#gsTable td:first-child {
  text-align: center;
}

#gsTable td:first-child .apst-action-btn {
  margin: 0 auto;
}

#torTable td:last-child .apst-action-btn,
#diplomaTable td:last-child .apst-action-btn {
  margin: 0 auto;
}

/* TOR/Diploma selection checkboxes */

#torTable input[type=checkbox],
#diplomaTable input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid #9ca3af;
  border-radius: 5px;
  background: #ffffff;
  display: inline-grid;
  place-content: center;
  vertical-align: middle;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

#torTable input[type=checkbox]:hover,
#diplomaTable input[type=checkbox]:hover {
  border-color: #006837;
}

#torTable input[type=checkbox]:focus-visible,
#diplomaTable input[type=checkbox]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 104, 55, 0.2);
}

#torTable input[type=checkbox]:checked,
#diplomaTable input[type=checkbox]:checked {
  background: #006837;
  border-color: #006837;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 11px 9px;
}

#torTable input[type=checkbox]:indeterminate,
#diplomaTable input[type=checkbox]:indeterminate {
  background: #ffffff;
  border-color: #006837;
  background-image: linear-gradient(#006837, #006837);
  background-size: 10px 2px;
  background-position: center;
  background-repeat: no-repeat;
}

#torTable thead input[type=checkbox],
#diplomaTable thead input[type=checkbox] {
  border-color: #ffffff;
  background-color: rgba(255, 255, 255, 0.12);
}

#torTable thead input[type=checkbox]:checked,
#diplomaTable thead input[type=checkbox]:checked {
  background: #ffffff;
  border-color: #ffffff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23006837' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 11px 9px;
}

#torTable thead input[type=checkbox]:hover,
#diplomaTable thead input[type=checkbox]:hover {
  border-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.18);
}

/* Override global .app-table checkbox pseudo-checkmark to avoid duplicate icon */

#torTable td > input[type=checkbox]:checked::after,
#diplomaTable td > input[type=checkbox]:checked::after,
#torTable thead input[type=checkbox]:checked::after,
#diplomaTable thead input[type=checkbox]:checked::after {
  content: none;
}

#gsTable {
  table-layout: auto;
  min-width: 860px;
}

#gsTable th:nth-child(1),
#gsTable td:nth-child(1) {
  width: 124px;
}

#gsTable th:nth-child(2),
#gsTable td:nth-child(2) {
  min-width: 140px;
  padding-left: 74px;
}

#gsTable th:nth-child(3),
#gsTable td:nth-child(3) {
  min-width: 120px;
}

#gsTable th:nth-child(4),
#gsTable td:nth-child(4) {
  min-width: 260px;
}

#gsTable th,
#gsTable td {
  padding-left: 14px;
  padding-right: 14px;
}

#gsTable td:nth-child(2),
#gsTable td:nth-child(3) {
  white-space: nowrap;
}

#gsTable td:nth-child(4) {
  white-space: normal;
}

@media (max-width: 900px) {
  #gsTable {
    min-width: 700px;
  }
}

#gaNewPeriodModal .req-modal-box {
  width: min(620px, 94vw);
}

#gaNewPeriodModal .req-modal-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
}

#gaNewPeriodModal .req-modal-field-group {
  min-width: 0;
}

#gaNewPeriodModal .req-modal-actions {
  flex-wrap: wrap;
}

@media (max-width: 760px) {
  #gaNewPeriodModal .req-modal-box {
    width: min(620px, 96vw);
    padding: 16px;
  }

  #gaNewPeriodModal .req-modal-fields {
    grid-template-columns: 1fr;
  }

  #gaNewPeriodModal .req-modal-actions {
    justify-content: stretch;
  }

  #gaNewPeriodModal .req-modal-actions .req-btn-cancel,
  #gaNewPeriodModal .req-modal-actions .req-btn-save {
    flex: 1 1 100%;
  }
}

#dfTable td:last-child .apst-action-btn {
  margin: 0 auto;
}

.page-services-grading-academic .ga-trans-table .ga-trans-head-top th[colspan] {
  border-bottom: 1.5px solid rgba(255, 255, 255, 0.35);
  text-align: center;
  letter-spacing: 0.03em;
}

.page-services-grading-academic .ga-trans-table .ga-trans-head-sub th {
  font-size: 0.72rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.88);
  text-align: center;
  padding-top: 5px;
  padding-bottom: 9px;
}

.page-services-grading-academic .ga-trans-table {
  table-layout: fixed;
  min-width: 980px;
}

.page-services-grading-academic .ga-trans-table thead th {
  vertical-align: middle;
}

.page-services-grading-academic .ga-trans-table .ga-trans-head-top th[rowspan="2"] {
  padding-top: 10px;
  padding-bottom: 10px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-sy {
  width: 95px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-term {
  width: 84px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-program {
  width: 100px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-initial {
  width: 90px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-grade {
  width: 120px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-code {
  width: 80px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-remarks {
  width: 140px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-action {
  width: 82px;
}

.page-services-grading-academic .ga-trans-table thead th,
.page-services-grading-academic .ga-trans-table tbody td {
  text-align: center;
  white-space: nowrap;
  padding-left: 8px;
  padding-right: 8px;
}

.page-services-grading-academic .ga-trans-table tbody td:nth-child(9) {
  text-align: center;
  padding-left: 0;
}

#tmTable td:first-child .apst-action-btn {
  margin: 0 auto;
}

.page-services-grading-academic .ga-trans-chip {
  display: inline-block;
  min-width: 40px;
  text-align: center;
  background: #e5e7eb;
  color: #374151;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 0.74rem;
  line-height: 1.2;
}

#apstTable td:first-child .apst-action-btn {
  margin: 0 auto;
}

@media (max-width: 900px) {
  .apst-topbar {
    flex-wrap: wrap;
    align-items: stretch;
  }

  .apst-search-box {
    width: 100%;
  }

  .apst-new-btn {
    margin-left: auto;
  }

  .page-services-grading-academic .apst-topbar .apst-new-btn {
    flex: 1 1 100%;
    width: 100%;
    margin-left: 0;
  }

  #apstTable {
    min-width: 700px;
  }
}

/* Scheduling Filter Bar */

.sched-filter-bar {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
}

.sched-filter-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.sched-filter-row-main {
  align-items: flex-end;
}

.sched-filter-group {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
  min-width: 120px;
  max-width: 180px;
}

.sched-filter-group-lg {
  flex: 2;
  max-width: 260px;
}

.sched-filter-actions {
  display: flex;
  align-items: flex-end;
}

.sched-filter-bar .app-filter-label {
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  color: #006837;
}

.sched-filter-bar .app-filter-select {
  height: 34px;
  padding: 5px 10px;
  font-size: 0.8rem;
  border-radius: 6px;
}

/* Section Offering: compact one-line desktop filters, responsive below desktop. */

.page-section-offering .so-filter-row {
  display: grid;
  grid-template-columns: minmax(220px, 2.1fr) repeat(5, minmax(110px, 1fr));
  gap: 14px 12px;
  align-items: flex-end;
}

.page-section-offering .so-filter-row .sched-filter-group,
.page-section-offering .so-filter-row .sched-filter-group-lg {
  min-width: 0;
  max-width: none;
}

.page-section-offering .sched-filter-bar {
  width: 100%;
}

.page-section-offering .student-page-header {
  width: 100%;
}

/* Slot Monitoring: keep one row on desktop and responsive wrapping on smaller widths. */

.page-slot-monitoring .sm-filter-row {
  display: grid;
  grid-template-columns: 150px 130px 140px 210px minmax(220px, 1fr);
  gap: 10px;
  align-items: flex-end;
}

.page-slot-monitoring .sm-filter-row .sched-filter-group {
  min-width: 0;
  max-width: none;
}

.page-slot-monitoring .sm-search-input {
  width: 100%;
  font-family: "Poppins", sans-serif;
}

.page-slot-monitoring .pf-modal-overlay.is-hidden {
  display: none;
}

.page-slot-monitoring .pf-modal-overlay {
  z-index: 12010;
  padding: 14px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.page-slot-monitoring .pf-modal-box {
  width: min(720px, 100%);
}

.page-slot-monitoring .sm-action-wrap {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 14px;
}

.page-slot-monitoring #smTable td.sm-number-cell {
  text-align: center;
}

@media (max-width: 920px) {
  .page-section-offering .so-filter-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-slot-monitoring .sm-filter-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .sched-filter-row {
    flex-direction: column;
  }

  .page-slot-monitoring .sm-filter-row {
    grid-template-columns: 1fr;
  }

  .page-section-offering .so-filter-row {
    grid-template-columns: 1fr;
  }

  .sched-filter-group-lg {
    max-width: none;
  }

  .sched-filter-actions {
    width: 100%;
  }

  .sched-filter-actions .so-print-btn,
  .sched-filter-actions .sched-download-btn {
    width: 100%;
  }

  .page-slot-monitoring .sm-action-wrap {
    justify-content: stretch;
  }

  .page-slot-monitoring .sm-action-wrap .pf-btn-new {
    width: 100%;
    justify-content: center;
  }

  .page-slot-monitoring .pf-modal-overlay {
    align-items: flex-start;
    padding: 10px;
  }

  .page-slot-monitoring .sm-slot-modal-box,
  .page-slot-monitoring .sm-confirm-modal-box {
    max-width: 100%;
    width: 100%;
    margin: 0;
    max-height: calc(100vh - 20px);
  }

  .page-slot-monitoring .sm-slot-modal-box .pf-modal-form {
    gap: 10px;
  }
}

/* Slot Monitoring Progress Bar */

.slot-status-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 168px;
}

.slot-progress-bar {
  flex: 1;
  height: 10px;
  background: #e8e8e8;
  border-radius: 6px;
  overflow: hidden;
}

.slot-progress-fill {
  height: 100%;
  border-radius: 6px;
  transition: width 0.3s ease;
}

.slot-progress-fill.is-open {
  background: #006837;
}

.slot-progress-fill.is-warning {
  background: #f9a825;
}

.slot-progress-fill.is-critical {
  background: #e53935;
}

.slot-pct {
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
  min-width: 36px;
  text-align: right;
}

.slot-status-label {
  font-size: 0.73rem;
  font-weight: 700;
  min-width: 56px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.slot-pct.is-open,
.slot-status-label.is-open {
  color: #006837;
}

.slot-pct.is-warning,
.slot-status-label.is-warning {
  color: #f9a825;
}

.slot-pct.is-critical,
.slot-status-label.is-critical {
  color: #e53935;
}

.page-slot-monitoring .sm-slot-modal-box {
  max-width: 680px;
  width: min(680px, 100%);
  max-height: calc(100vh - 28px);
  overflow-y: auto;
}

.page-slot-monitoring .sm-confirm-modal-box {
  text-align: center;
  max-width: 420px;
}

.page-slot-monitoring .sm-confirm-icon-wrap {
  margin-bottom: 16px;
  color: #c62828;
}

.page-slot-monitoring .sm-success-icon-wrap {
  color: #006837;
}

.page-slot-monitoring .sm-danger-title {
  color: #c62828;
}

.page-slot-monitoring .sm-success-title {
  color: #006837;
}

.page-slot-monitoring .sm-confirm-text {
  font-size: 0.9rem;
  color: #444;
  margin-bottom: 6px;
}

.page-slot-monitoring .sm-confirm-name {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 20px;
}

.page-slot-monitoring .sm-confirm-note {
  font-size: 0.78rem;
  color: #999;
  margin-bottom: 22px;
}

.page-slot-monitoring .sm-success-message {
  font-size: 0.92rem;
  color: #444;
  margin-bottom: 24px;
}

.page-slot-monitoring .sm-center-actions {
  justify-content: center;
}

.page-slot-monitoring .sm-danger-btn {
  background: #c62828;
}

.page-slot-monitoring .sm-danger-btn:hover {
  background: #a31f1f;
}

@media (max-width: 768px) {
  .slot-status-wrap {
    min-width: 0;
    flex-wrap: wrap;
    row-gap: 4px;
  }

  .slot-status-label {
    min-width: 0;
  }
}

/* Grading Sheet Page */

.gs-filter-bar {
  padding: 18px 22px 14px;
  margin-bottom: 22px;
}

.gs-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 10px;
  align-items: flex-end;
}

.gs-filter-group {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 130px;
}

.gs-filter-even {
  flex: 1;
  min-width: 120px;
}

.gs-filter-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.gs-filter-select {
  height: 36px;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  padding: 0 10px;
  font-size: 0.82rem;
  font-family: "Poppins", sans-serif;
  background: #fff;
  color: #333;
  width: 100%;
}

.gs-view-btn {
  height: 36px;
  padding: 0 28px;
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  font-family: "Poppins", sans-serif;
  cursor: pointer;
  transition: background 0.18s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.gs-view-btn:hover {
  background: #004d29;
}

/* Grading Sheet: Two-row table header */

.gs-list-table thead {
  background: #006837;
}

.gs-list-table thead th {
  background: #006837;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  text-align: left;
  vertical-align: middle;
  border: none;
  padding: 8px 12px;
  letter-spacing: 0.2px;
  white-space: nowrap;
}

/* Center the # column header */

.gs-list-table thead th:first-child {
  text-align: center;
}

/* Center the Date Posted group header and Approved By */

.gs-date-group-header {
  text-align: center !important;
  border-bottom: 1.5px solid rgba(255, 255, 255, 0.35) !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.4px !important;
  padding-bottom: 6px !important;
}

.gs-thead-sub th {
  text-align: center !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  color: rgba(255, 255, 255, 0.88) !important;
  padding-top: 4px !important;
  padding-bottom: 8px !important;
}

/* Body cell defaults */

.gs-list-table tbody td {
  font-size: 0.82rem;
  padding: 10px 12px;
  vertical-align: middle;
  text-align: left;
  color: #333;
}

/* Center # column */

.gs-list-table tbody td:first-child {
  text-align: center;
}

/* Center Approved By (last column) */

.gs-list-table tbody td:last-child {
  text-align: center;
}

/* Approved By header also centered */

.gs-list-table .gs-thead-top th:last-child {
  text-align: center;
}

.gs-date-cell {
  text-align: center !important;
  font-size: 0.76rem !important;
  color: #777 !important;
  white-space: nowrap;
}

/* Section link */

.gs-section-link {
  color: #006837;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: color 0.18s, -webkit-text-decoration 0.18s;
  transition: color 0.18s, text-decoration 0.18s;
  transition: color 0.18s, text-decoration 0.18s, -webkit-text-decoration 0.18s;
}

.gs-section-link:hover {
  color: #004d29;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gs-section-row:hover {
  background: #f0faf4;
}

/* Section Info Banner v2 (detail view) */

.gs-section-banner-v2 {
  background: #fff;
  border: 1.5px solid #c8e6c9;
  border-radius: 10px;
  padding: 18px 28px;
  margin-bottom: 16px;
}

.gs-banner-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 40px;
}

.gs-banner-pair {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.gs-banner-key {
  font-size: 0.82rem;
  font-weight: 600;
  color: #555;
  min-width: 80px;
  flex-shrink: 0;
}

.gs-banner-val {
  font-size: 0.88rem;
  font-weight: 700;
  color: #1a1a2e;
}

/* Back button */

.gs-back-wrap {
  margin-bottom: 12px;
}

.gs-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #ffffff;
  border: 1.5px solid #c9d8cf;
  border-radius: 8px;
  padding: 7px 14px;
  min-height: 34px;
  font-size: 0.79rem;
  font-weight: 600;
  font-family: "Poppins", sans-serif;
  color: #444;
  cursor: pointer;
  transition: border-color 0.18s, color 0.18s, background 0.18s;
}

.gs-back-btn:hover {
  border-color: #006837;
  color: #006837;
  background: #f2faf5;
}

/* Detail table spacing */

#gsDetailTable {
  table-layout: fixed;
  min-width: 1080px;
}

#gsDetailTable thead th,
#gsDetailTable tbody td {
  padding: 10px 10px;
  white-space: nowrap;
}

#gsDetailTable th:nth-child(1),
#gsDetailTable td:nth-child(1) {
  width: 50px;
  text-align: center;
}

#gsDetailTable th:nth-child(2),
#gsDetailTable td:nth-child(2) {
  width: 130px;
  text-align: left;
}

#gsDetailTable th:nth-child(3),
#gsDetailTable td:nth-child(3) {
  width: 250px;
  text-align: left;
}

#gsDetailTable th:nth-child(4),
#gsDetailTable td:nth-child(4),
#gsDetailTable th:nth-child(5),
#gsDetailTable td:nth-child(5) {
  width: 58px;
  text-align: center;
}

#gsDetailTable th:nth-child(6),
#gsDetailTable td:nth-child(6),
#gsDetailTable th:nth-child(7),
#gsDetailTable td:nth-child(7),
#gsDetailTable th:nth-child(8),
#gsDetailTable td:nth-child(8),
#gsDetailTable th:nth-child(9),
#gsDetailTable td:nth-child(9) {
  width: 96px;
  text-align: center;
}

#gsDetailTable th:nth-child(10),
#gsDetailTable td:nth-child(10) {
  width: 120px;
  text-align: center;
}

#gsDetailTable .gs-col-name {
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Remarks & checkbox */

.gs-remarks-passed {
  color: #006837;
  font-weight: 600;
  font-size: 0.82rem;
}

.gs-checkbox {
  width: 16px;
  height: 16px;
  accent-color: #006837;
  cursor: pointer;
}

@media (max-width: 768px) {
  .gs-filter-row {
    flex-direction: column;
    gap: 10px;
  }

  .gs-filter-group,
  .gs-filter-even {
    width: 100%;
    min-width: 0;
  }

  .gs-filter-group[style*="flex:0"] {
    align-self: stretch !important;
  }

  .gs-filter-group[style*="flex:0"] .gs-view-btn {
    width: 100%;
  }

  .gs-banner-grid {
    grid-template-columns: 1fr;
    gap: 8px 0;
  }

  .faculty-gs-school-year {
    font-size: 1.45rem;
  }

  .faculty-gs-search-btn-wrap,
  .faculty-load-display-btn-wrap {
    width: 100%;
  }

  .faculty-gs-detail-search-wrap {
    width: 100%;
    margin-left: 0;
  }

  .faculty-gs-search-btn-wrap .gs-view-btn,
  .faculty-load-display-btn-wrap .gs-view-btn {
    width: 100%;
  }

  .faculty-gs-detail-heading {
    grid-template-columns: 1fr;
  }

  .gs-back-wrap {
    margin-bottom: 10px;
  }

  .gs-back-btn {
    width: 100%;
    justify-content: center;
  }

  #gsDetailTable {
    min-width: 980px;
  }

  #gsDetailTable th:nth-child(3),
  #gsDetailTable td:nth-child(3) {
    width: 220px;
  }
}

/* Evaluation Page */

.eval-layout {
  display: grid;
  grid-template-columns: 1fr 520px;
  gap: 24px;
  align-items: stretch;
}

.eval-builder {
  background: #fff;
  border: 1.5px solid #e0e0e0;
  border-radius: 10px;
  padding: 20px 22px;
}

.eval-section-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: #1a1a2e;
  margin: 0 0 14px;
  letter-spacing: 0.3px;
}

/* Step tabs */

.eval-steps {
  display: flex;
  border-radius: 8px;
  overflow: hidden;
  border: 1.5px solid #e0e0e0;
  margin-bottom: 20px;
}

.eval-step {
  flex: 1;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #fff;
  border: none;
  font-size: 0.84rem;
  font-weight: 600;
  font-family: "Poppins", sans-serif;
  color: #666;
  cursor: pointer;
  transition: background 0.22s, color 0.22s;
  position: relative;
}

.eval-step.active {
  background: #006837;
  color: #fff;
}

.eval-step.completed {
  background: #006837;
  color: #fff;
}

.eval-step:not(.active):not(.completed):hover {
  background: #f0faf4;
  color: #006837;
}

.eval-step-check {
  vertical-align: middle;
}

/* Define form */

.eval-define-form {
  padding: 8px 0;
}

.eval-define-row {
  display: flex;
  gap: 14px;
  margin-bottom: 14px;
  align-items: flex-end;
}

.eval-define-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 160px;
}

.eval-define-field-lg {
  flex: 1;
  min-width: 200px;
}

.eval-define-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #333;
  text-transform: uppercase;
}

.eval-define-select,
.eval-define-input {
  height: 38px;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  padding: 0 10px;
  font-size: 0.82rem;
  font-family: "Poppins", sans-serif;
  background: #fff;
  color: #333;
  width: 100%;
}

/* Date input wrapper with calendar icon */

.eval-date-wrap {
  position: relative;
}

.eval-date-wrap .eval-define-input {
  padding-right: 34px;
  cursor: pointer;
}

.eval-date-icon {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: #888;
  pointer-events: none;
}

/* Build step */

.eval-build-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.eval-build-info {
  font-size: 0.84rem;
  color: #555;
  font-weight: 500;
}

.eval-new-block-btn {
  background: none;
  border: 1.5px solid #006837;
  color: #006837;
  border-radius: 6px;
  padding: 5px 14px;
  font-size: 0.78rem;
  font-weight: 600;
  font-family: "Poppins", sans-serif;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.eval-new-block-btn:hover {
  background: #006837;
  color: #fff;
}

/* Block card */

.eval-block {
  background: #fff;
  border: 1.5px solid #e0e0e0;
  border-radius: 10px;
  padding: 22px 26px;
  margin-bottom: 20px;
}

.eval-block-preview {
  border-color: #b5d5b5;
  background: #fafff8;
}

.eval-block-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #eee;
}

.eval-block-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1a1a2e;
  flex: 1;
  min-width: 0;
}

/* Question row */

.eval-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0 4px;
  gap: 14px;
}

.eval-q-num {
  font-size: 0.88rem;
  color: #444;
  font-weight: 600;
  flex-shrink: 0;
}

.eval-q-text {
  font-size: 0.88rem;
  color: #444;
  flex: 1;
  min-width: 0;
  line-height: 1.5;
  cursor: default;
}

/* Inline edit input */

.eval-inline-input {
  width: 100%;
  padding: 5px 10px;
  font-size: 0.88rem;
  font-family: "Poppins", sans-serif;
  border: 1.5px solid #006837;
  border-radius: 6px;
  outline: none;
  background: #fafff8;
  color: #1a1a2e;
  transition: box-shadow 0.15s;
}

.eval-inline-input:focus {
  box-shadow: 0 0 0 3px rgba(0, 104, 55, 0.12);
}

.eval-block-title .eval-inline-input {
  font-weight: 700;
  font-size: 0.95rem;
}

.eval-q-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

.eval-q-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 6px;
  border: 1.5px solid #d0d0d0;
  background: #f8f8f8;
  padding: 0;
  cursor: pointer;
  color: #666;
  transition: all 0.18s ease;
}

.eval-q-icon:hover {
  border-color: #006837;
  background: #e8f5ec;
  color: #006837;
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0, 104, 55, 0.12);
}

/* Delete icon - red accent */

.eval-q-icon[title=Delete] {
  border-color: #e0c0c0;
  color: #b04040;
}

.eval-q-icon[title=Delete]:hover {
  border-color: #dc3545;
  background: #fff0ee;
  color: #dc3545;
  box-shadow: 0 2px 6px rgba(220, 53, 69, 0.15);
}

/* Add icon - blue accent */

.eval-q-icon[title="Add Question"] {
  border-color: #b0c8e0;
  color: #2979b0;
}

.eval-q-icon[title="Add Question"]:hover {
  border-color: #1976d2;
  background: #e3f2fd;
  color: #1976d2;
  box-shadow: 0 2px 6px rgba(25, 118, 210, 0.15);
}

/* Block header edit icon */

.eval-block-header .eval-q-icon {
  width: 30px;
  height: 30px;
}

/* Likert scale */

.eval-likert {
  display: flex;
  gap: 22px;
  padding: 14px 0 16px 20px;
}

.eval-likert-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: 70px;
  cursor: pointer;
}

.eval-likert-item:hover .eval-likert-num {
  background: #e8f5ec;
  border-color: #004d29;
  transform: scale(1.08);
}

.eval-likert-item.selected .eval-likert-num {
  background: #006837;
  color: #fff;
  border-color: #006837;
  box-shadow: 0 2px 8px rgba(0, 104, 55, 0.25);
}

.eval-likert-num {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #006837;
  border-radius: 8px;
  font-size: 1.05rem;
  font-weight: 700;
  color: #006837;
  background: #fff;
  transition: all 0.18s ease;
}

.eval-likert-label {
  font-size: 0.66rem;
  color: #666;
  text-align: center;
  line-height: 1.2;
  white-space: nowrap;
  font-weight: 500;
}

/* Action buttons row */

.eval-build-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
}

.eval-btn-outline {
  height: 36px;
  padding: 0 28px;
  background: #fff;
  color: #555;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  font-family: "Poppins", sans-serif;
  cursor: pointer;
  transition: border-color 0.18s, color 0.18s, background 0.18s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.eval-btn-outline:hover {
  border-color: #006837;
  color: #006837;
  background: #f0faf4;
}

/* Preview info line */

.eval-preview-info {
  font-size: 0.84rem;
  color: #555;
  margin-bottom: 16px;
  font-weight: 500;
}

/* Evaluation Dashboard (right panel) */

.eval-dashboard {
  background: #fff;
  border: 1.5px solid #e0e0e0;
  border-radius: 10px;
  padding: 18px;
  display: flex;
  flex-direction: column;
}

.eval-dash-subtitle {
  font-size: 0.82rem;
  font-weight: 600;
  color: #555;
  margin: 0 0 12px;
}

/* Library card */

.eval-lib-card {
  border: 1.5px solid #e0e0e0;
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 10px;
  position: relative;
}

.eval-lib-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}

.eval-lib-name {
  font-size: 0.86rem;
  font-weight: 600;
  color: #1a1a2e;
}

.eval-lib-menu {
  background: none;
  border: none;
  font-size: 1.2rem;
  color: #999;
  cursor: pointer;
  padding: 0 4px;
  line-height: 1;
}

.eval-lib-menu:hover {
  color: #333;
}

/* Lib dropdown */

.eval-lib-dropdown {
  display: none;
  position: absolute;
  top: 36px;
  right: 14px;
  background: #fff;
  border: 1.5px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
  z-index: 50;
  min-width: 100px;
  overflow: hidden;
}

.eval-lib-dropdown.open {
  display: block;
}

.eval-lib-dropdown button {
  display: block;
  width: 100%;
  text-align: left;
  padding: 7px 14px;
  border: none;
  background: none;
  font-size: 0.8rem;
  font-family: "Poppins", sans-serif;
  color: #333;
  cursor: pointer;
}

.eval-lib-dropdown button:hover {
  background: #f0faf4;
  color: #006837;
}

.eval-lib-card-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.76rem;
  color: #888;
}

/* Status badges */

.eval-status-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 10px;
  font-size: 0.7rem;
  font-weight: 600;
}

.eval-status-published {
  background: #006837;
  color: #fff;
}

.eval-status-draft {
  background: #f9a825;
  color: #fff;
}

.eval-status-closed {
  background: #ccc;
  color: #555;
}

/* Responsive: Grading Sheet + Evaluation */

@media (max-width: 1200px) {
  .eval-layout {
    grid-template-columns: 1fr 280px;
    gap: 16px;
  }
}

@media (max-width: 900px) {
  .eval-layout {
    grid-template-columns: 1fr;
  }

  .eval-dashboard {
    order: -1;
  }
}

@media (max-width: 768px) {
  .gs-section-banner {
    padding: 14px 16px;
  }

  .eval-builder {
    padding: 14px 14px;
  }

  .eval-dashboard {
    padding: 14px;
  }

  .eval-steps {
    border-radius: 6px;
  }

  .eval-step {
    font-size: 0.76rem;
    height: 38px;
  }
}

@media (max-width: 600px) {
  .eval-define-row {
    flex-direction: column;
    gap: 10px;
  }

  .eval-define-field {
    min-width: 0;
    width: 100%;
  }

  .eval-likert {
    flex-wrap: wrap;
    gap: 8px;
    padding-left: 0;
  }

  .eval-build-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .eval-build-actions {
    flex-direction: column;
  }

  .eval-build-actions button {
    width: 100%;
  }

  .eval-btn-outline {
    width: 100%;
  }

  .gs-back-btn {
    width: 100%;
    justify-content: center;
  }

  .eval-question {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .eval-q-actions {
    align-self: flex-end;
  }
}

/* Eval CRUD Modal */

.eval-crud-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.eval-crud-modal {
  background: #fff;
  border-radius: 10px;
  padding: 28px 28px 22px;
  width: 460px;
  max-width: 92vw;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
}

.eval-crud-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1a1a2e;
  margin: 0 0 16px;
}

.eval-crud-label {
  font-size: 0.74rem;
  font-weight: 700;
  color: #333;
  text-transform: uppercase;
  display: block;
  margin-bottom: 5px;
}

.eval-crud-input {
  width: 100%;
  height: 40px;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  padding: 0 12px;
  font-size: 0.85rem;
  font-family: "Poppins", sans-serif;
  color: #333;
  margin-bottom: 16px;
  box-sizing: border-box;
}

.eval-crud-input:focus {
  outline: none;
  border-color: #006837;
}

.eval-crud-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 6px;
}

/* Placeholder Page Card */

.placeholder-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 320px;
  background: #fff;
  border: 2px dashed #d4e6d4;
  border-radius: 14px;
  padding: 48px 32px;
  text-align: center;
}

.placeholder-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: #1a1a2e;
  margin: 18px 0 8px;
}

.placeholder-text {
  font-size: 0.88rem;
  color: #888;
  max-width: 400px;
  line-height: 1.5;
}

/* System Config: Announcement / Academic Calendar */

.sc-page {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sc-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.sc-search-wrap {
  position: relative;
  width: 280px;
  max-width: 100%;
}

.sc-search-input {
  width: 100%;
  height: 34px;
  border: 1px solid #cbd5d1;
  border-radius: 6px;
  padding: 0 34px 0 10px;
  font-size: 0.8rem;
}

.sc-search-icon {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #8a9590;
  pointer-events: none;
}

.sc-search-icon svg {
  width: 14px;
  height: 14px;
}

.sc-table-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.sc-show-entry {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 6px;
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.sc-show-entry span,
.sc-show-entry label {
  white-space: nowrap;
}

.sc-action-buttons {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.sc-link-btn {
  border: none;
  background: transparent;
  color: #0b7d48;
  font-size: 0.76rem;
  font-weight: 600;
  text-decoration: underline;
  cursor: pointer;
}

.sc-icon-btn {
  width: 24px;
  height: 20px;
  border: none;
  border-radius: 4px;
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.sc-icon-btn.edit {
  background: #ef5a7b;
}

.sc-icon-btn.delete {
  background: #f08fa2;
}

.sc-empty-row {
  text-align: center;
  color: #8a9590;
  font-style: italic;
}

.sc-modal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
}

.sc-modal-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px 12px;
}

.sc-modal-full {
  grid-column: 1/-1;
}

.sc-modal-textarea {
  min-height: 140px;
  resize: vertical;
}

/* System Config: Configuration Page */

.cfg-page {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* System Config: Admission Config Page */

.adm-page {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.adm-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.adm-setting-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px 12px;
  align-items: flex-end;
}

.adm-setting-field {
  min-width: 0;
}

.adm-setting-field .req-modal-label {
  color: #006837;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.adm-setting-action {
  display: flex;
  flex-direction: column;
}

.adm-setting-save {
  width: 100%;
}

.adm-setting-note {
  margin-top: 10px;
  font-size: 0.82rem;
  color: #35614f;
  background: #f3faf6;
  border: 1px solid #d8e8df;
  border-radius: 8px;
  padding: 8px 10px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.adm-setting-note .adm-note-label {
  color: #006837;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.adm-setting-note .adm-note-value {
  color: #2f5446;
  font-weight: 700;
}

.adm-card {
  background: #ffffff;
  border: 1px solid #d6e4dd;
  border-radius: 10px;
  padding: 12px;
  min-width: 0;
}

.adm-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.adm-card-head h3 {
  margin: 0;
  font-size: 1.06rem;
  color: #0f7b43;
  font-weight: 700;
}

.adm-table thead th,
.adm-table tbody td {
  text-align: left;
}

.adm-table thead th:last-child,
.adm-table tbody td:last-child {
  text-align: center;
}

.adm-pagination {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 10px 2px 2px;
}

.adm-page-nav-wrap {
  display: inline-flex;
}

.adm-page-list {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.adm-page-btn {
  min-width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ced7d2;
  border-radius: 8px;
  color: #3c544a;
  background: #ffffff;
  padding: 0 8px;
  font-size: 14px;
  font-weight: 800;
}

.adm-page-btn:hover:not(:disabled) {
  background: #f2f6f4;
  border-color: #b7c8bf;
  color: #27453a;
}

.adm-page-btn:disabled {
  opacity: 0.45;
}

.adm-page-num {
  min-width: 32px;
  height: 32px;
  border: 1px solid #ced7d2;
  border-radius: 8px;
  background: #ffffff;
  color: #2d4b40;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  padding: 0 8px;
}

.adm-page-num:hover {
  background: #f2f6f4;
  border-color: #b7c8bf;
  color: #27453a;
}

.adm-page-num.active,
.adm-page-num.active:hover {
  background: #0f7b43;
  border-color: #0f7b43;
  color: #ffffff;
}

#admAdmissionTable .apst-dropdown,
#admOrientationTable .apst-dropdown,
#admFormAgreementTable .apst-dropdown,
#admEnrollmentTable .apst-dropdown,
#admAppGuidelinesTable .apst-dropdown,
#admComplianceTable .apst-dropdown {
  position: fixed;
}

#admOrientationTable td:last-child .apst-action-btn,
#admFormAgreementTable td:last-child .apst-action-btn,
#admEnrollmentTable td:last-child .apst-action-btn,
#admAppGuidelinesTable td:last-child .apst-action-btn,
#admComplianceTable td:last-child .apst-action-btn {
  margin: 0 auto;
}

.cfg-grid-top {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.cfg-card {
  background: #ffffff;
  border: 1px solid #d6e4dd;
  border-radius: 10px;
  padding: 12px;
  min-width: 0;
}

.cfg-card.cfg-card-full {
  width: 100%;
}

.cfg-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.cfg-card-head h3 {
  margin: 0;
  font-size: 1.06rem;
  color: #0f7b43;
  font-weight: 700;
}

.cfg-table thead th,
.cfg-table tbody td {
  text-align: left;
}

#cfgSchoolSemTable,
#cfgGradePostingTable {
  table-layout: auto;
}

#cfgSchoolSemTable thead th,
#cfgSchoolSemTable tbody td,
#cfgGradePostingTable thead th,
#cfgGradePostingTable tbody td {
  white-space: nowrap !important;
}

#cfgSchoolSemTable {
  min-width: 420px;
}

#cfgGradePostingTable {
  min-width: 640px;
}

.cfg-table thead th:last-child,
.cfg-table tbody td:last-child {
  text-align: center;
}

.cfg-icon-btn-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 5px;
  background: #fff0ee;
  color: #c0392b;
  cursor: pointer;
}

.cfg-icon-btn-delete:hover {
  background: #ffdcd8;
}

.cfg-pagination {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 10px 2px 2px;
}

.cfg-page-nav-wrap {
  display: inline-flex;
}

.cfg-page-list {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.cfg-page-btn {
  min-width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ced7d2;
  border-radius: 8px;
  color: #3c544a;
  background: #ffffff;
  padding: 0 8px;
  font-size: 14px;
  font-weight: 800;
}

.cfg-page-btn:hover:not(:disabled) {
  background: #f2f6f4;
  border-color: #b7c8bf;
  color: #27453a;
}

.cfg-page-btn:disabled {
  opacity: 0.45;
}

.cfg-page-num {
  min-width: 32px;
  height: 32px;
  border: 1px solid #ced7d2;
  border-radius: 8px;
  background: #ffffff;
  color: #2d4b40;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  padding: 0 8px;
}

.cfg-page-num:hover {
  background: #f2f6f4;
  border-color: #b7c8bf;
  color: #27453a;
}

.cfg-page-num.active,
.cfg-page-num.active:hover {
  background: #0f7b43;
  border-color: #0f7b43;
  color: #ffffff;
}

.rtp-pagination {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 10px 2px 2px;
}

.rtp-nav {
  display: inline-flex;
}

.rtp-list {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.rtp-page-btn,
.rtp-page-num {
  min-width: 32px;
  height: 32px;
  border: 1px solid #ced7d2;
  border-radius: 8px;
  background: #ffffff;
  color: #2d4b40;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  padding: 0 8px;
}

.rtp-page-btn {
  font-size: 14px;
  font-weight: 800;
}

.rtp-page-btn:hover:not(:disabled),
.rtp-page-num:hover {
  background: #f2f6f4;
  border-color: #b7c8bf;
  color: #27453a;
}

.rtp-page-btn:disabled {
  opacity: 0.45;
}

.rtp-page-num.active,
.rtp-page-num.active:hover {
  background: #0f7b43;
  border-color: #0f7b43;
  color: #ffffff;
}

.cfg-modal-box {
  width: min(720px, 94vw);
}

.cfg-modal-box.cfg-modal-wide {
  width: min(860px, 95vw);
}

@media (max-width: 1320px) {
  .cfg-grid-top {
    grid-template-columns: 1fr;
  }

  .cfg-grid-top > .cfg-card {
    min-width: 0;
  }
}

@media (max-width: 980px) {
  .cfg-grid-top {
    grid-template-columns: 1fr;
  }

  #cfgSchoolSemTable thead th,
  #cfgSchoolSemTable tbody td,
  #cfgGradePostingTable thead th,
  #cfgGradePostingTable tbody td {
    font-size: 0.83rem;
    padding: 10px 10px;
  }
}

@media (max-width: 820px) {
  .adm-setting-row {
    grid-template-columns: 1fr;
  }

  .adm-setting-action .req-modal-label {
    display: none;
  }

  .adm-card {
    padding: 10px;
  }

  .adm-card-head {
    flex-direction: column;
    align-items: stretch;
  }

  .adm-card-head .pf-btn-new {
    width: 100%;
  }

  .adm-pagination {
    justify-content: center;
    padding-top: 12px;
  }

  .adm-page-btn,
  .adm-page-num {
    min-width: 36px;
    height: 36px;
  }

  .cfg-page {
    gap: 10px;
  }

  .cfg-card {
    padding: 10px;
  }

  .cfg-card .app-table-wrap {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
  }

  .cfg-card-head h3 {
    font-size: 0.98rem;
  }

  .cfg-card-head {
    flex-direction: column;
    align-items: stretch;
  }

  .cfg-card-head .pf-btn-new {
    width: 100%;
  }

  .cfg-modal-box,
  .cfg-modal-box.cfg-modal-wide {
    width: min(860px, 96vw);
  }

  .cfg-modal-box .sc-modal-grid,
  .cfg-modal-box .sc-modal-grid-3 {
    grid-template-columns: 1fr;
  }

  .cfg-modal-box .req-modal-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .cfg-modal-box .req-modal-actions .req-btn-cancel,
  .cfg-modal-box .req-modal-actions .req-btn-save {
    width: 100%;
  }

  .cfg-pagination {
    justify-content: center;
    padding-top: 12px;
  }

  .cfg-page-btn {
    min-width: 36px;
    height: 36px;
  }

  .cfg-page-num,
  .cfg-page-num:hover,
  .cfg-page-num.active,
  .cfg-page-num.active:hover {
    min-width: 36px;
    height: 36px;
  }

  .rtp-pagination {
    justify-content: center;
    padding-top: 12px;
  }

  .rtp-page-btn,
  .rtp-page-num {
    min-width: 36px;
    height: 36px;
  }
}

#acTable .apst-dropdown,
#anTable .apst-dropdown {
  position: fixed;
}

#cfgSchoolSemTable .apst-dropdown,
#cfgGradePostingTable .apst-dropdown,
#cfgRegistrationTable .apst-dropdown {
  position: fixed;
}

#acTable td:last-child .apst-action-btn,
#anTable td:last-child .apst-action-btn {
  margin: 0 auto;
}

#cfgSchoolSemTable td:last-child .apst-action-btn,
#cfgGradePostingTable td:last-child .apst-action-btn,
#cfgRegistrationTable td:last-child .apst-action-btn {
  margin: 0 auto;
}

@media (max-width: 900px) {
  .sc-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .sc-search-wrap {
    width: 100%;
  }

  .sc-toolbar .pf-btn-new {
    width: 100%;
  }

  .sc-table-head {
    flex-direction: column;
    align-items: stretch;
  }

  .sc-table-head .pf-btn-new {
    width: 100%;
  }

  .sc-modal-grid,
  .sc-modal-grid-3 {
    grid-template-columns: 1fr;
  }
}

/* Clinic Record / Infirmary Log */

/* Filter Bar */

.cr-filter-bar {
  margin-bottom: 18px;
}

.cr-filter-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: flex-end;
}

.cr-filter-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 140px;
}

.cr-filter-grow {
  flex: 1;
  min-width: 200px;
  max-width: 340px;
}

.cr-filter-actions {
  display: flex;
  align-items: flex-end;
  margin-left: auto;
}

.cr-filter-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.cr-filter-select {
  height: 38px;
  padding: 0 12px;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  font-size: 0.84rem;
  font-family: "Poppins", sans-serif;
  color: #333;
  background: #fff;
  width: 100%;
}

.cr-filter-select:focus {
  border-color: #006837;
  outline: none;
}

/* Student Table (uses shared .student-table pattern) */

.cr-name-link {
  color: #006837;
  text-decoration: none;
  font-weight: 600;
  cursor: pointer;
}

.cr-name-link:hover {
  color: #004d29;
}

.cr-total-cell {
  padding: 12px 16px;
  font-size: 0.84rem;
  font-weight: 600;
  color: #006837;
  text-align: left !important;
  border-top: 2px solid #c0c0c0;
  background: #f8fcf9;
}

/* Card (shared for Personal Info, Medical, Immunization) */

.cr-card {
  background: #fff;
  border: 1.5px solid #e0e0e0;
  border-radius: 10px;
  padding: 28px 32px;
}

.cr-card-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: #1a1a2e;
  letter-spacing: 1.5px;
  margin: 0 0 24px;
  padding-bottom: 12px;
  border-bottom: 1.5px solid #e0e0e0;
}

.cr-card-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px;
}

/* Parents Information */

.cr-parent-card {
  padding-bottom: 0;
  display: flex;
  flex-direction: column;
}

.cr-parent-card > .cr-card-title {
  margin-bottom: 0px;
  border-bottom: none;
}

.cr-parent-body {
  background: transparent;
  padding: 24px 4px 24px 0;
  max-height: 520px;
  overflow-y: auto;
  border-top: 1.5px solid #e0e0e0;
}

.cr-parent-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.cr-parent-col {
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: #eef6f1;
  border-radius: 10px;
  padding: 20px;
  border: 1px solid #dfe8e3;
}

.cr-form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.cr-parent-meta-section {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.cr-parent-section-title {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #0a813c;
  text-transform: uppercase;
}

.cr-parent-input {
  width: 100%;
  border: 1px solid #d0d0d0;
  border-radius: 6px;
  padding: 8px 10px;
  font-size: 0.84rem;
  background: #ffffff;
}

.cr-parent-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.cr-parent-meta {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.cr-parent-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.cr-parent-toggle-group {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 0.82rem;
  color: #333333;
}

.cr-parent-toggle-group input[type=radio] {
  accent-color: #0a813c;
}

.cr-parent-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.cr-parent-meta-grid-top {
  margin-bottom: 8px;
}

.cr-parent-inline-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
  align-items: center;
}

.cr-parent-inline-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.cr-pill-group {
  display: inline-flex;
  align-items: center;
  background: #e8f2ec;
  border-radius: 999px;
  padding: 4px;
  gap: 4px;
}

.cr-pill-container {
  display: inline-flex;
  align-items: center;
  justify-content: space-evenly;
  background: #e8f2ec;
  border-radius: 6px;
  padding: 8px 16px;
  gap: 20px;
  width: 100%;
}

.cr-pill-container.border-pill {
  border-radius: 999px;
}

.cr-pill-radio {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #555;
  cursor: pointer;
  margin: 0;
}

.cr-pill-radio input[type=radio] {
  display: inline-block;
  -webkit-appearance: auto;
     -moz-appearance: auto;
          appearance: auto;
  accent-color: #0a813c;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
}

.cr-pill {
  display: inline-flex;
  margin: 0;
  cursor: pointer;
}

.cr-pill input[type=radio] {
  display: none;
}

.cr-pill span {
  padding: 4px 16px;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #3d3d3d;
  transition: all 0.2s ease;
}

.cr-pill input[type=radio]:checked + span {
  background: #0a813c;
  color: #ffffff;
}

.cr-parent-actions {
  margin-top: 0;
  padding-top: 20px;
  padding-bottom: 20px;
  border-top: 1.5px solid #e0e0e0;
  background: #fff;
}

/* Personal Information Grid */

.cr-info-grid {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.cr-info-row {
  display: flex;
  gap: 20px;
  padding: 10px 4px;
  border-bottom: 1px solid #f0f0f0;
}

.cr-info-row:last-child {
  border-bottom: none;
}

.cr-info-row:hover {
  background: #f8fcf9;
}

.cr-info-cell {
  flex: 1;
  display: flex;
  gap: 10px;
  align-items: baseline;
  min-width: 0;
}

.cr-info-label {
  font-size: 0.74rem;
  font-weight: 700;
  color: #006837;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  white-space: nowrap;
  min-width: 130px;
}

.cr-info-value {
  font-size: 0.86rem;
  color: #333;
  font-weight: 600;
}

/* Medical History */

.cr-med-table-wrap {
  margin-bottom: 28px;
}

.cr-med-header {
  display: flex;
  gap: 8px;
  padding: 8px 0 10px;
  border-bottom: 1.5px solid #e0e0e0;
  margin-bottom: 4px;
}

.cr-med-hcol {
  flex: 1;
  font-size: 0.72rem;
  font-weight: 700;
  color: #1a1a2e;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  min-width: 0;
  padding-left: 14px;
}

.cr-med-hcol-item {
  min-width: 130px;
  flex: 0 0 130px;
  padding-left: 0;
}

.cr-med-hcol-actions {
  flex: 0 0 60px;
}

.cr-med-row {
  display: flex;
  gap: 8px;
  padding: 8px 0;
  align-items: center;
  border-bottom: 1px solid #f0f0f0;
}

.cr-med-col {
  flex: 1;
  min-width: 0;
}

.cr-med-col-item {
  min-width: 130px;
  flex: 0 0 130px;
}

.cr-med-col-actions {
  flex: 0 0 60px;
  display: flex;
  gap: 6px;
  justify-content: center;
}

.cr-med-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.84rem;
  color: #333;
  cursor: pointer;
}

/* Custom Checkboxes (all clinic sections) */

.cr-med-check input[type=checkbox],
.cr-imm-check input[type=checkbox],
.cr-imm-sub-check input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid #0a813c;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.cr-med-check input[type=checkbox]:checked,
.cr-imm-check input[type=checkbox]:checked,
.cr-imm-sub-check input[type=checkbox]:checked {
  background: #0a813c;
  border-color: #0a813c;
}

.cr-med-check input[type=checkbox]:checked::after,
.cr-imm-check input[type=checkbox]:checked::after,
.cr-imm-sub-check input[type=checkbox]:checked::after {
  content: "\2713";
  position: absolute;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.cr-med-check input[type=checkbox]:hover,
.cr-imm-check input[type=checkbox]:hover,
.cr-imm-sub-check input[type=checkbox]:hover {
  border-color: #004d29;
  box-shadow: 0 0 0 3px rgba(10, 129, 60, 0.12);
}

.cr-imm-sub-check input[type=checkbox] {
  width: 16px;
  height: 16px;
}

.cr-med-input {
  width: 100%;
  padding: 6px 10px;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  font-size: 0.82rem;
  font-family: "Poppins", sans-serif;
  color: #333;
  background: #fff;
}

.cr-med-input:focus {
  border-color: #006837;
  outline: none;
}

.cr-med-btn {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: none;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.cr-med-btn-add {
  background: #006837;
  color: #fff;
}

.cr-med-btn-add:hover {
  background: #004d29;
}

.cr-med-btn-del {
  background: #dc3545;
  color: #fff;
}

.cr-med-btn-del:hover {
  background: #b02a37;
}

.cr-subtitle {
  font-size: 0.88rem;
  font-weight: 700;
  color: #1a1a2e;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0 0 12px;
}

.cr-cond-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f0;
}

.cr-cond-row .cr-med-check {
  min-width: 110px;
  flex-shrink: 0;
}

.cr-cond-row:last-child {
  border-bottom: none;
}

.cr-cond-input {
  flex: 1;
  padding: 6px 12px;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  font-size: 0.82rem;
  font-family: "Poppins", sans-serif;
  color: #333;
}

.cr-cond-input:focus {
  border-color: #006837;
  outline: none;
}

/* Immunization */

.cr-imm-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 28px;
}

.cr-imm-box {
  border: 1.5px solid #c8e6c9;
  border-radius: 8px;
  padding: 12px 14px;
  background: #fafff8;
}

.cr-imm-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  color: #333;
  cursor: pointer;
  margin-bottom: 8px;
}

.cr-imm-section-label {
  font-size: 0.82rem;
  color: #1a1a2e;
  display: block;
  margin-bottom: 10px;
}

.cr-imm-doses {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.cr-imm-dose {
  display: flex;
  align-items: center;
  gap: 8px;
}

.cr-imm-dose span {
  font-size: 0.76rem;
  font-weight: 600;
  color: #006837;
  white-space: nowrap;
  min-width: 72px;
}

.cr-imm-dose input {
  flex: 1;
  padding: 4px 8px;
  border: 1.5px solid #ccc;
  border-radius: 5px;
  font-size: 0.78rem;
  font-family: "Poppins", sans-serif;
  color: #333;
  min-width: 0;
}

.cr-imm-dose input:focus {
  border-color: #006837;
  outline: none;
}

.cr-imm-sub-check {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  color: #333;
  cursor: pointer;
}

.cr-imm-sub-input {
  width: 100%;
  padding: 4px 8px;
  border: 1.5px solid #ccc;
  border-radius: 5px;
  font-size: 0.78rem;
  font-family: "Poppins", sans-serif;
  color: #333;
}

.cr-imm-sub-input:focus {
  border-color: #006837;
  outline: none;
}

/* Doctor Info (grid item) */

.cr-doctor-box {
  grid-column: span 2;
}

.cr-doctor-fields {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cr-doctor-field {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.cr-doctor-field-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

/* Clinic Record Responsive */

@media (max-width: 1100px) {
  .cr-imm-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .cr-doctor-box {
    grid-column: span 2;
  }
}

@media (max-width: 900px) {
  .cr-imm-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .cr-doctor-box {
    grid-column: span 2;
  }

  .cr-card {
    padding: 22px 20px;
  }
}

@media (max-width: 768px) {
  .cr-filter-row {
    flex-direction: column;
  }

  .cr-filter-group {
    width: 100%;
    min-width: 0;
  }

  .cr-filter-grow {
    max-width: 100%;
  }

  .cr-info-row {
    flex-direction: column;
    gap: 6px;
  }

  .cr-info-cell {
    gap: 6px;
  }

  .cr-info-label {
    min-width: 100px;
    font-size: 0.7rem;
  }

  .cr-med-header {
    display: none;
  }

  .cr-med-row {
    flex-wrap: wrap;
  }

  .cr-med-col {
    min-width: 80px;
    flex: 1 1 40%;
  }

  .cr-med-col-item {
    flex: 1 1 100%;
  }

  .cr-doctor-box {
    grid-column: span 1;
  }

  .cr-parent-grid {
    grid-template-columns: 1fr;
  }

  .cr-parent-row {
    grid-template-columns: 1fr;
  }

  .cr-parent-meta-grid {
    grid-template-columns: 1fr;
  }

  .cr-parent-inline-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .cr-imm-grid {
    grid-template-columns: 1fr;
  }

  .cr-doctor-box {
    grid-column: span 1;
  }

  .cr-card {
    padding: 16px 14px;
  }

  .cr-card-title {
    font-size: 0.95rem;
    letter-spacing: 1px;
  }

  .cr-cond-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .cr-cond-input {
    width: 100%;
  }
}

/* Pre-requisites Page */

.prereq-page {
  padding: 4px 0;
}

.prereq-filter-bar {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.app-filter-bar,
.doclist-filter-bar,
.sched-filter-bar,
.gs-filter-bar,
.cr-filter-bar,
.prereq-filter-bar {
  background: #ffffff;
  border: 1px solid #e6eaee;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
}

.prereq-filter-left {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex: 1;
  flex-wrap: wrap;
}

.prereq-filter-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 2;
  min-width: 180px;
}

.prereq-filter-group-sm {
  flex: 1;
  min-width: 100px;
}

.prereq-filter-right {
  display: flex;
  align-items: flex-end;
}

.prereq-view-btn {
  padding: 8px 28px;
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-family: "Poppins", sans-serif;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
}

.prereq-view-btn:hover {
  background: #005229;
}

/* List View */

.prereq-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  padding: 16px 20px;
  background: linear-gradient(135deg, #005d31 0%, #007b42 48%, #009f56 100%);
  border-radius: 10px;
  text-align: left;
  gap: 14px;
}

.prereq-program-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.08rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.06em;
  line-height: 1.35;
  margin: 0;
  text-transform: uppercase;
  flex: 1 1 auto;
  text-align: left;
}

.prereq-download-btn {
  padding: 8px 22px;
  background: #fff;
  color: #006837;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-radius: 6px;
  font-family: "Poppins", sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
}

.prereq-download-btn:hover {
  background: rgba(255, 255, 255, 0.9);
  color: #005229;
}

.prereq-year-block {
  margin-bottom: 12px;
}

.prereq-year-label {
  font-family: "Poppins", sans-serif;
  font-size: 0.95rem;
  font-weight: 800;
  color: #006837;
  margin: 20px 0 6px;
  letter-spacing: 0.02em;
}

.prereq-sem-label {
  font-family: "Poppins", sans-serif;
  font-size: 0.84rem;
  font-weight: 700;
  color: #333;
  text-align: center;
  margin: 10px 0 6px;
  letter-spacing: 0.01em;
}

.prereq-table-wrap {
  overflow-x: auto;
  border: 1.5px solid #c0c0c0;
  border-radius: 8px;
  margin-bottom: 10px;
}

.prereq-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  font-size: 0.82rem;
}

.prereq-table thead tr {
  background: #006837;
  color: #fff;
}

.prereq-table thead th {
  padding: 9px 12px;
  font-weight: 600;
  text-align: center;
  white-space: nowrap;
  font-size: 0.78rem;
}

.prereq-table tbody tr {
  border-bottom: 1px solid #e0e0e0;
  cursor: pointer;
  transition: background 0.12s;
}

.prereq-table tbody tr:hover {
  background: #f0faf5;
}

.prereq-table tbody tr:last-child {
  border-bottom: none;
}

.prereq-table td {
  padding: 9px 12px;
  color: #333;
  text-align: center;
  vertical-align: middle;
  border-bottom: 1px solid #e0e0e0;
}

.prereq-table td.prereq-desc-cell {
  text-align: left;
}

.prereq-table tbody tr:last-child td {
  border-bottom: none;
}

.prereq-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 8px;
}

.prereq-pagination-btn {
  padding: 6px 14px;
  border: 1px solid #006837;
  border-radius: 6px;
  background: #fff;
  color: #006837;
  font-family: "Poppins", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}

.prereq-pagination-btn:hover:not(:disabled) {
  background: #006837;
  color: #fff;
}

.prereq-pagination-btn:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.prereq-pagination-info {
  font-family: "Poppins", sans-serif;
  font-size: 0.78rem;
  color: #444;
}

.prereq-empty-msg {
  text-align: center !important;
  color: #999;
  font-style: italic;
  padding: 18px 12px !important;
}

/* Detail / Edit View */

.prereq-detail-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  padding: 14px 20px;
  background: linear-gradient(135deg, #006837 0%, #00894a 100%);
  border-radius: 10px;
  flex-wrap: wrap;
  gap: 10px;
}

.prereq-detail-info {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}

.prereq-detail-code {
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
}

.prereq-detail-name {
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.prereq-save-btn {
  padding: 8px 32px;
  background: #fff;
  color: #006837;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-radius: 6px;
  font-family: "Poppins", sans-serif;
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s;
}

.prereq-save-btn:hover {
  background: rgba(255, 255, 255, 0.9);
  color: #005229;
}

.prereq-section {
  background: #fff;
  border: 1.5px solid #d0d0d0;
  border-radius: 10px;
  margin-bottom: 16px;
  overflow: hidden;
}

.prereq-section-label {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f0f8f4;
  padding: 11px 16px;
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: #006837;
  border-bottom: 1.5px solid #d0e8dc;
}

.prereq-section-label svg {
  flex-shrink: 0;
  opacity: 0.75;
}

.prereq-section-body {
  display: flex;
  gap: 0;
  min-height: 180px;
}

.prereq-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  border-right: 1px solid #e0e0e0;
}

.prereq-col:last-child {
  border-right: none;
}

.prereq-search-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 12px;
  border-bottom: 1px solid #ececec;
}

.prereq-search-input {
  flex: 1;
  padding: 6px 10px;
  border: 1px solid #ccc;
  border-radius: 5px;
  font-size: 0.8rem;
  outline: none;
  font-family: "Poppins", sans-serif;
}

.prereq-search-input:focus {
  border-color: #006837;
}

.prereq-search-btn {
  padding: 6px 16px;
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 5px;
  font-family: "Poppins", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
}

.prereq-search-btn:hover {
  background: #005229;
}

.prereq-available-list {
  flex: 1;
  overflow-y: auto;
  padding: 6px 0;
  max-height: 200px;
}

.prereq-avail-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 12px;
  font-size: 0.78rem;
  color: #333;
  border-bottom: 1px solid #f0f0f0;
}

.prereq-avail-item:last-child {
  border-bottom: none;
}

.prereq-avail-item span {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #222;
  font-weight: 500;
}

.prereq-arrow-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #e8f5e9;
  color: #006837;
  border: none;
  cursor: pointer;
  transition: background 0.15s;
  flex-shrink: 0;
}

.prereq-arrow-btn:hover {
  background: #c8e6c9;
}

.prereq-avail-empty {
  padding: 14px 12px;
  font-size: 0.78rem;
  color: #aaa;
  font-style: italic;
}

.prereq-selected-label {
  padding: 10px 12px;
  font-size: 0.78rem;
  color: #aaa;
  font-style: italic;
  border-bottom: 1px solid #ececec;
}

.prereq-selected-list {
  flex: 1;
  overflow-y: auto;
  padding: 6px 0;
  max-height: 200px;
}

.prereq-sel-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 12px;
  font-size: 0.8rem;
  color: #222;
  font-weight: 500;
  border-bottom: 1px solid #f0f0f0;
}

.prereq-sel-item:last-child {
  border-bottom: none;
}

.prereq-remove-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #ffebee;
  color: #c62828;
  border: none;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 700;
  transition: background 0.15s;
  flex-shrink: 0;
}

.prereq-remove-btn:hover {
  background: #ffcdd2;
}

@media print {
@page {
    margin: 10mm;
}

  .plp-sidebar,
  .student-topbar,
  .student-page-header,
  .plp-footer,
  .sidebar-overlay,
  #registrar-toast {
    display: none !important;
  }

  body:not(.prereq-print-subject) .prereq-filter-bar,
  body:not(.prereq-print-subject) #btnViewList,
  body:not(.prereq-print-subject) #prereqDownloadBtn,
  body:not(.prereq-print-subject) #prereqPagination,
  body:not(.prereq-print-subject) #prereqDetailView {
    display: none !important;
  }

  body.prereq-print-subject .prereq-filter-bar,
  body.prereq-print-subject #btnViewList,
  body.prereq-print-subject #prereqDownloadBtn,
  body.prereq-print-subject #prereqBackBtn,
  body.prereq-print-subject #prereqSubjectDownloadBtn,
  body.prereq-print-subject #prereqSaveBtn,
  body.prereq-print-subject #prereqPagination,
  body.prereq-print-subject .prereq-search-row,
  body.prereq-print-subject .prereq-available-list,
  body.prereq-print-subject .prereq-remove-btn {
    display: none !important;
  }

  .student-main-wrapper,
  .content-footer-wrap,
  .student-content,
  .prereq-page {
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  body:not(.prereq-print-subject) #prereqListView {
    display: block !important;
  }

  body.prereq-print-subject #prereqListView {
    display: none !important;
  }

  body.prereq-print-subject #prereqDetailView {
    display: block !important;
  }

  .prereq-list-header {
    margin: 0 0 12px !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 16px 20px !important;
    background: linear-gradient(135deg, #005d31 0%, #007b42 48%, #009f56 100%) !important;
    border-radius: 10px !important;
  }

  .prereq-program-title {
    color: #fff !important;
    font-size: 1.08rem !important;
    line-height: 1.35 !important;
    margin: 0 !important;
    letter-spacing: 0.06em;
    text-align: center !important;
    flex: 0 1 auto !important;
  }

  .prereq-year-label,
  .prereq-sem-label {
    color: #000 !important;
    background: #fff !important;
    border-color: #bdbdbd !important;
  }

  .prereq-table {
    font-size: 0.72rem !important;
  }

  .prereq-table thead tr {
    background: #fff !important;
    color: #000 !important;
  }

  .prereq-table th,
  .prereq-table td {
    border-color: #bdbdbd !important;
    color: #000 !important;
  }

  body.prereq-print-subject .prereq-detail-banner {
    margin: 0 0 10px !important;
    padding: 0 0 10px !important;
    border-bottom: 1px solid #bdbdbd !important;
    background: #fff !important;
  }

  body.prereq-print-subject .prereq-detail-code,
  body.prereq-print-subject .prereq-detail-name {
    color: #000 !important;
  }

  body.prereq-print-subject .prereq-section {
    box-shadow: none !important;
    border: 1px solid #d0d0d0 !important;
    page-break-inside: avoid;
  }

  body.prereq-print-subject .prereq-section-label {
    color: #000 !important;
    background: #fff !important;
    border-bottom: 1px solid #d0d0d0 !important;
  }

  body.prereq-print-subject .prereq-section-body {
    display: block !important;
  }

  body.prereq-print-subject .prereq-col {
    border: none !important;
    padding: 8px 12px !important;
    min-height: 0 !important;
  }

  body.prereq-print-subject .prereq-col:first-child {
    display: none !important;
  }

  body.prereq-print-subject .prereq-selected-list {
    max-height: none !important;
    overflow: visible !important;
  }
}

@media (max-width: 768px) {
  .prereq-filter-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .prereq-filter-left {
    flex-direction: column;
  }

  .prereq-filter-group {
    min-width: unset;
    width: 100%;
  }

  .prereq-pagination {
    justify-content: center;
    flex-wrap: wrap;
  }

  .prereq-section-body {
    flex-direction: column;
  }

  .prereq-col {
    border-right: none;
    border-bottom: 1px solid #e0e0e0;
  }

  .prereq-col:last-child {
    border-bottom: none;
  }
}

/* Subject File Page */

.sf-page {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sf-topbar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.sf-search-box {
  position: relative;
  flex: 1;
  min-width: 180px;
  max-width: 320px;
}

.sf-search-input {
  width: 100%;
  padding: 9px 14px 9px 36px;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 0.88rem;
  font-family: inherit;
  background: #fff;
  transition: border-color 0.15s;
}

.sf-search-input:focus {
  outline: none;
  border-color: #006837;
}

.sf-search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}

.sf-sort-wrap {
  flex: 0 0 auto;
}

.sf-sort-select {
  padding: 9px 14px;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 0.88rem;
  font-family: inherit;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.15s;
}

.sf-sort-select:focus {
  outline: none;
  border-color: #006837;
}

.sf-new-btn {
  margin-left: auto;
  padding: 9px 20px;
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.88rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}

.sf-new-btn:hover {
  background: #005a2e;
}

.sf-total {
  font-size: 0.85rem;
  font-weight: 600;
  color: #555;
  padding: 2px 0;
}

.sf-pagination-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 2px 2px;
  border-top: 1px solid #dce8e1;
}

.sf-pagination-compact {
  justify-content: flex-end;
}

.sf-pagination-compact .rtp-pagination {
  width: 100%;
  padding: 0;
  justify-content: flex-end;
}

.sf-pagination-compact .rtp-list {
  gap: 6px;
}

.sf-pagination-compact .rtp-pages {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.sf-pagination-left,
.sf-pagination-right {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.sf-pagination-left label,
#sfPageInfo,
#sfTotalInfo {
  font-size: 0.82rem;
  color: #0f7b43;
  font-weight: 700;
  margin: 0;
}

.sf-pagination-left select {
  min-width: 76px;
  height: 32px;
  border: 1px solid #ced7d2;
  border-radius: 8px;
  background: #ffffff;
  color: #0f7b43;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0 10px;
}

.sf-page-btn {
  min-width: 80px;
  height: 32px;
  border: 1px solid #ced7d2;
  border-radius: 8px;
  background: #ffffff;
  color: #0f7b43;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  padding: 0 12px;
}

.sf-page-btn:hover:not(:disabled) {
  background: #eef8f1;
  border-color: #b7c8bf;
  color: #0d6c3b;
}

.sf-page-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.sf-page .rtp-pagination {
  display: flex;
}

#rfPaginationBar,
#sfPaginationBar,
#pfPaginationBar,
#smPaginationBar {
  margin-top: 8px;
  padding-top: 10px;
}

.sf-check-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.88rem;
  color: #444;
  cursor: pointer;
}

@media (max-width: 768px) {
  .sf-topbar {
    flex-direction: column;
    align-items: stretch;
  }

  .sf-search-box {
    max-width: 100%;
  }

  .sf-new-btn {
    margin-left: 0;
  }

  .sf-pagination-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .sf-pagination-left,
  .sf-pagination-right {
    justify-content: space-between;
  }

  .sf-pagination-compact .rtp-pagination {
    justify-content: center;
  }
}

.app-table tbody tr {
  cursor: pointer;
  transition: background 0.12s;
}

.app-table tbody tr:hover {
  background-color: #f0faf4;
}

#applicantDetailView {
  display: none;
}

.appl-detail-header {
  display: flex;
  gap: 16px;
  margin-bottom: 20px;
  flex-wrap: wrap;
  align-items: flex-end;
  background: #fff;
  border: 1px solid #80b497;
  border-radius: 8px;
  box-shadow: 0 0 0 1px rgba(15, 123, 67, 0.08), 0 1px 3px rgba(0, 0, 0, 0.03);
  padding: 12px 14px;
}

.appl-detail-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.appl-detail-field label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #006837;
  text-transform: uppercase;
  margin: 0;
}

.appl-detail-field input[type=text] {
  border: 1px solid #d0d0d0;
  border-radius: 6px;
  padding: 7px 12px;
  font-size: 14px;
  color: #444;
  background: #f7f7f7;
  outline: none;
  min-width: 150px;
}

.appl-detail-field.wide input[type=text] {
  min-width: 320px;
}

.applicant-panel {
  display: none;
}

.applicant-panel.active {
  display: block;
}

/* Applicant portal pages (Application Form / Schedule / Exam Result) */

.applicant-body {
  background: #ffffff;
}

.applicant-form-wrap,
.applicant-exam-wrap {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}

.applicant-consistent-page {
  width: 100%;
  max-width: none;
  margin: 0;
}

.applicant-filter-readonly {
  background: #f8f8f8;
  color: #666;
  border-color: #d7d7d7;
}

.applicant-content-shell {
  background: #fff;
  border-radius: 8px;
  padding: 18px 20px;
}

.applicant-content-shell-schedule {
  min-height: 560px;
}

.applicant-alert {
  border-radius: 8px;
  margin-bottom: 10px;
  padding: 10px 12px;
  font-size: 0.84rem;
}

.applicant-alert-success {
  border: 1px solid #bde5c8;
  background: #e8f7ec;
  color: #236841;
}

.applicant-section-card {
  border: 1px solid #0a9a56;
  border-radius: 8px;
  padding: 8px 10px 10px;
  margin-bottom: 10px;
  background: #fff;
}

.applicant-section-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 4px;
}

.applicant-section-title {
  margin: 0;
  font-size: 1.98rem;
  font-weight: 800;
  color: #222;
  border-bottom: 1px solid #0a9a56;
  padding-bottom: 6px;
  width: 100%;
  max-width: 680px;
}

.applicant-photo-upload {
  flex-shrink: 0;
}

.photo-upload-label {
  width: 104px;
  height: 94px;
  border: 1px solid #d8d8d8;
  background: #f8f8f8;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  overflow: hidden;
}

.photo-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: #9a9a9a;
  font-size: 0.74rem;
  font-weight: 600;
}

.photo-preview-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.applicant-field-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 5px;
}

.applicant-field-group {
  flex: 1;
  min-width: 140px;
}

.applicant-field-group.full-width {
  flex: 1 0 100%;
}

.applicant-field-group.narrow {
  flex: 0 0 96px;
}

.applicant-field-group.flex-1 {
  flex: 1;
}

.applicant-field-group.flex-2 {
  flex: 2;
}

.applicant-field-group.flex-3 {
  flex: 3;
}

.applicant-field-label {
  display: block;
  margin-bottom: 3px;
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 2px;
  color: #0a813c;
  text-transform: uppercase;
  white-space: nowrap;
}

.applicant-input,
.applicant-select {
  width: 100%;
  height: 31px;
  border: 1px solid #d3d3d3;
  border-radius: 3px;
  background: #fff;
  color: #3e3e3e;
  font-size: 0.75rem;
  font-weight: 500;
  padding: 4px 8px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.applicant-input::-moz-placeholder {
  color: #b9b9b9;
}

.applicant-input::placeholder {
  color: #b9b9b9;
}

.applicant-input:focus,
.applicant-select:focus {
  outline: none;
  border-color: #0a9a56;
  box-shadow: 0 0 0 2px rgba(10, 154, 86, 0.12);
}

.applicant-select {
  padding-right: 24px;
}

.applicant-gender-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 31px;
}

.applicant-radio-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.82rem;
  color: #3a3a3a;
}

.applicant-radio-label input[type=radio] {
  accent-color: #0a813c;
}

.applicant-subsection-title {
  margin: 8px 0 4px;
  font-size: 1.36rem;
  font-weight: 800;
  color: #0a813c;
}

.applicant-same-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 2px 0 4px;
  font-size: 0.7rem;
  color: #8a8a8a;
}

.applicant-same-check input {
  width: 11px;
  height: 11px;
  accent-color: #0a813c;
}

.applicant-form-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 8px;
}

.btn-applicant-next {
  min-width: 124px;
  height: 36px;
  border: 0;
  border-radius: 9px;
  background: #0a813c;
  color: #fff;
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.btn-applicant-next:hover {
  background: #066830;
}

.applicant-info-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 12px;
}

.applicant-info-field {
  width: 100%;
  max-width: 330px;
}

.applicant-info-field.flex-grow-1 {
  max-width: 380px;
}

.applicant-readonly {
  background: #f8f8f8;
  color: #a0a0a0;
}

.applicant-permit-box,
.applicant-no-result,
.applicant-result-box {
  min-height: 350px;
  border: 0;
  border-radius: 0;
  background: #fff;
  padding: 4px;
}

.applicant-permit-details {
  margin-bottom: 24px;
}

.permit-detail-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  font-size: 0.88rem;
}

.permit-label {
  font-weight: 700;
  color: #0a813c;
}

.permit-value {
  color: #3a3a3a;
}

.applicant-reminders {
  max-width: 700px;
  margin-top: 24px;
  color: #212121;
}

.applicant-permit-box-schedule {
  min-height: 520px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.applicant-reminders-schedule {
  max-width: 820px;
  margin-top: 0;
}

.applicant-reminders-schedule .reminders-heading {
  font-size: 1.06rem;
  margin-bottom: 8px;
}

.applicant-reminders-schedule ul {
  margin-left: 22px;
  margin-bottom: 18px;
}

.applicant-reminders-schedule li {
  font-size: 0.96rem;
  line-height: 1.55;
}

.reminders-heading {
  margin: 0 0 2px;
  font-size: 0.78rem;
}

.applicant-reminders ul {
  margin: 0 0 8px 14px;
  padding: 0;
}

.applicant-reminders li {
  font-size: 0.68rem;
  line-height: 1.25;
}

.applicant-result-box {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 10px;
}

.applicant-no-result {
  min-height: 310px;
}

.result-status-badge {
  border-radius: 999px;
  padding: 8px 18px;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.5px;
}

.result-passed {
  background: #e7f7eb;
  color: #156635;
}

.result-failed {
  background: #fdeaea;
  color: #9f2222;
}

.result-score {
  margin: 0;
  font-size: 1rem;
}

.registrar-body #panel-exam-result .applicant-content-shell,
.registrar-body #panel-exam-result .applicant-no-result,
.registrar-body #panel-exam-result .applicant-result-box,
.registrar-body #panel-exam-result .result-score {
  text-align: center;
}

.registrar-body #panel-exam-result .applicant-result-box {
  min-height: 310px;
  justify-content: center;
  align-items: center;
}

.registrar-body #panel-exam-result .applicant-no-result {
  min-height: 310px;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 1200px) {
  .applicant-section-title {
    font-size: 1.7rem;
  }
}

@media (max-width: 768px) {
  .applicant-section-title {
    font-size: 1.3rem;
    max-width: 100%;
  }

  .applicant-photo-upload {
    width: 100%;
  }

  .photo-upload-label {
    margin-left: auto;
  }

  .applicant-field-group,
  .applicant-field-group.narrow,
  .applicant-field-group.flex-1,
  .applicant-field-group.flex-2,
  .applicant-field-group.flex-3,
  .applicant-info-field,
  .applicant-info-field.flex-grow-1 {
    flex: 1 0 100%;
    max-width: 100%;
  }

  .applicant-reminders {
    margin-top: 10px;
  }

  .applicant-permit-box,
  .applicant-no-result,
  .applicant-result-box {
    min-height: 260px;
    padding: 0;
  }

  .applicant-content-shell {
    padding: 12px;
  }

  .applicant-content-shell-schedule {
    min-height: 420px;
  }

  .applicant-permit-box-schedule {
    min-height: 380px;
  }

  .applicant-reminders-schedule li {
    font-size: 0.88rem;
  }
}

.under-dev-notice {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  color: #aaa;
  font-size: 1rem;
  font-style: italic;
  letter-spacing: 0.04em;
  border: 2px dashed #e0e0e0;
  border-radius: 10px;
  background: #fafafa;
}

.sched-exam-card {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 26px 28px;
}

.sched-fields-row {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  align-items: flex-end;
  margin-bottom: 22px;
}

.sched-field-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.sched-field-group.flex-grow {
  flex: 1;
}

.sched-field-group label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #006837;
  text-transform: uppercase;
  margin: 0;
}

.sched-field-group select,
.sched-field-group input[type=text] {
  border: 1px solid #d0d0d0;
  border-radius: 6px;
  padding: 7px 12px;
  font-size: 14px;
  color: #333;
  background: #fff;
  outline: none;
  min-width: 150px;
}

.sched-field-group select {
  min-width: 165px;
  padding-right: 10px;
}

.sched-field-group.flex-grow input[type=text] {
  width: 100%;
}

.sched-actions {
  display: flex;
  gap: 14px;
  margin-bottom: 28px;
}

.sched-btn-save {
  background: #0a813c;
  color: #fff;
  border: none;
  border-radius: 25px;
  padding: 10px 38px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.sched-btn-save:hover {
  background: #076b31;
}

.sched-btn-print {
  background: transparent;
  color: #0a813c;
  border: 2px solid #0a813c;
  border-radius: 25px;
  padding: 10px 38px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}

.sched-btn-print:hover {
  background: #0a813c;
  color: #fff;
}

.sched-reminders {
  border-top: 1px solid #eee;
  padding-top: 18px;
}

.sched-reminders p {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 6px;
  text-transform: uppercase;
  color: #333;
}

.sched-reminders ul {
  font-size: 13px;
  padding-left: 20px;
  margin-bottom: 16px;
  color: #444;
}

.sched-reminders ul li {
  margin-bottom: 4px;
}

#applicantSidebar {
  display: none;
}

.appl-sidebar-back {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  color: #fff;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.15);
  border: none;
  width: 100%;
  text-align: left;
  border-radius: 8px;
  transition: background 0.15s;
  letter-spacing: 0.03em;
  text-decoration: none;
}

.appl-sidebar-back:hover {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.appl-sidebar-back svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* profile-edit: keep header fixed, content scrolls normally */

/* Profile View: bg on wrapper like login */

body.page-profile-view .student-main-wrapper {
  background-color: #006837;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

body.page-profile-view .student-topbar {
  position: relative;
  z-index: 2;
}

body.page-profile-view .student-page-header {
  position: relative;
  z-index: 2;
  box-shadow: 0 -6px 0 0 #ffffff, 0 2px 7px rgba(0, 0, 0, 0.2);
}

body.page-profile-view .student-content {
  padding: 0;
  background-color: rgba(0, 80, 40, 0.75);
}

body.page-profile-view .student-main-wrapper .plp-footer {
  background-color: rgba(0, 80, 40, 0.75);
  border-top: 1px dashed rgba(255, 255, 255, 0.35);
  color: rgba(255, 255, 255, 0.8);
}

body.page-profile-view .student-main-wrapper .plp-footer a {
  color: rgba(255, 255, 255, 0.9);
}

body.page-profile-view .student-main-wrapper .plp-footer a:hover {
  color: #d4a017;
}

body.page-profile-view .student-main-wrapper .plp-footer .obanana-text {
  color: #d4a017;
}

/* Unified custom checkboxes (consistent with Clinic Record design) */

/* Label wrappers (flex row with gap) */

.setup-checkbox-label,
.setup-checkbox,
.doclist-checkbox-label,
.sf-check-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.84rem;
  color: #333;
  cursor: pointer;
}

/* Checkbox group (flex-wrap row for multi-select lists) */

.setup-checkbox-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
}

/* Custom checkbox appearance (matches clinic record) */

.setup-checkbox-label input[type=checkbox],
.setup-checkbox input[type=checkbox],
.doclist-checkbox-label input[type=checkbox],
.sf-check-label input[type=checkbox],
.req-checkbox-input,
.app-table td > input[type=checkbox],
.faculty-subject-checkbox,
.registrar-table td > input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid #0a813c;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}

/* Checked state */

.setup-checkbox-label input[type=checkbox]:checked,
.setup-checkbox input[type=checkbox]:checked,
.doclist-checkbox-label input[type=checkbox]:checked,
.sf-check-label input[type=checkbox]:checked,
.req-checkbox-input:checked,
.app-table td > input[type=checkbox]:checked,
.faculty-subject-checkbox:checked,
.registrar-table td > input[type=checkbox]:checked {
  background: #0a813c;
  border-color: #0a813c;
}

/* Checkmark icon */

.setup-checkbox-label input[type=checkbox]:checked::after,
.setup-checkbox input[type=checkbox]:checked::after,
.doclist-checkbox-label input[type=checkbox]:checked::after,
.sf-check-label input[type=checkbox]:checked::after,
.req-checkbox-input:checked::after,
.app-table td > input[type=checkbox]:checked::after,
.faculty-subject-checkbox:checked::after,
.registrar-table td > input[type=checkbox]:checked::after {
  content: "\2713";
  position: absolute;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* Hover glow */

.setup-checkbox-label input[type=checkbox]:hover,
.setup-checkbox input[type=checkbox]:hover,
.doclist-checkbox-label input[type=checkbox]:hover,
.sf-check-label input[type=checkbox]:hover,
.req-checkbox-input:hover,
.app-table td > input[type=checkbox]:hover,
.faculty-subject-checkbox:hover,
.registrar-table td > input[type=checkbox]:hover {
  border-color: #004d29;
  box-shadow: 0 0 0 3px rgba(10, 129, 60, 0.12);
}

/* Custom radio buttons (document list modals) */

.doclist-radio-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.84rem;
  color: #333;
  cursor: pointer;
}

.doclist-radio-label input[type=radio] {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid #0a813c;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.doclist-radio-label input[type=radio]:checked {
  border-color: #0a813c;
  background: #fff;
}

.doclist-radio-label input[type=radio]:checked::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #0a813c;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.doclist-radio-label input[type=radio]:hover {
  border-color: #004d29;
  box-shadow: 0 0 0 3px rgba(10, 129, 60, 0.12);
}

/* Faculty Loads */

.rfl-wrap {
  padding: 24px;
}

.rfl-alert {
  border-radius: 10px;
  font-size: 0.9rem;
  margin-bottom: 16px;
}

.rfl-tabs {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-bottom: 14px;
  border-bottom: 2px solid rgba(0, 104, 55, 0.25);
}

.rfl-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: 6px 6px 0 0;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.9rem;
  color: #006837;
  border: 1px solid rgba(0, 104, 55, 0.35);
  border-bottom: none;
  background: #fff;
  transition: background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.rfl-tab:hover,
.rfl-tab:focus {
  text-decoration: none;
  color: #005028;
  background: #f3faf6;
  box-shadow: inset 0 -2px 0 rgba(0, 104, 55, 0.25);
}

.rfl-tab.active {
  background: #006837;
  color: #fff;
  border-color: #006837;
}

.rfl-tab.active:hover,
.rfl-tab.active:focus {
  color: #fff;
  background: #006837;
  box-shadow: none;
}

.rfl-filters {
  display: flex;
  gap: 16px;
  align-items: flex-end;
  margin: 16px 0 10px;
  flex-wrap: wrap;
}

.rfl-filter-label {
  font-size: 0.65rem;
  letter-spacing: 0.35em;
  font-weight: 800;
  color: #5f5f5f;
  margin-bottom: 6px;
}

.rfl-select {
  min-width: 200px;
  font-size: 0.9rem;
}

.rfl-set-btn {
  min-width: 86px;
  height: 38px;
  font-weight: 700;
  background-color: #006837;
  border-color: #006837;
}

.rfl-set-btn:hover {
  background-color: #005028;
  border-color: #005028;
}

.rfl-faculty-pill {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  border-radius: 6px;
  background: #006837;
  color: #fff;
  font-weight: 800;
  font-size: 0.85rem;
  margin: 6px 0 16px;
}

.rfl-subject-line {
  font-size: 0.86rem;
  font-weight: 700;
  color: #555555;
  margin: 6px 0 4px;
}

.rfl-subject-schedule {
  font-size: 0.84rem;
  color: #5f5f5f;
  font-weight: 600;
  padding-left: 26px;
  line-height: 1.45;
}

.rfl-faculty-code {
  font-weight: 700;
  opacity: 0.95;
}

.rfl-search {
  margin-bottom: 14px;
}

.rfl-search-label {
  font-size: 0.65rem;
  letter-spacing: 0.35em;
  font-weight: 800;
  color: #5f5f5f;
  margin-bottom: 6px;
}

.rfl-search-form {
  position: relative;
  max-width: 360px;
}

.rfl-search-input {
  padding-right: 44px;
  border-radius: 6px;
  height: 38px;
  font-size: 0.9rem;
}

.rfl-search-btn {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: transparent;
  color: #9a9a9a;
  padding: 6px;
}

.rfl-search-btn:disabled {
  opacity: 0.5;
}

.rfl-meta {
  font-size: 0.85rem;
  color: #5f5f5f;
  margin-bottom: 10px;
}

.rfl-row {
  cursor: pointer;
}

.rfl-row:hover {
  background: rgba(0, 104, 55, 0.03);
}

.rfl-name-link {
  color: #006837;
  text-decoration: underline;
  font-weight: 600;
}

.rfl-name-link:hover {
  color: #005028;
}

.rfl-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.rfl-list-total-cell strong {
  font-size: 1.1em;
}

.rfl-load-card {
  margin-top: 6px;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.rfl-course-title {
  font-size: 0.7rem;
  letter-spacing: 0.28em;
  font-weight: 900;
  color: #006837;
  margin: 18px 0 8px;
}

.rfl-schedule-box {
  background: #f2fbf5;
  border: 2px solid rgba(0, 104, 55, 0.28);
  border-radius: 14px;
  padding: 16px 18px;
  box-shadow: 0 6px 16px rgba(0, 104, 55, 0.12);
  margin-bottom: 20px;
}

.rfl-year-title {
  font-weight: 800;
  color: #555555;
  margin: 10px 0 6px;
}

.rfl-schedule-line {
  font-size: 0.85rem;
  color: #555555;
  line-height: 1.45;
}

.rfl-line-code {
  font-weight: 800;
  margin-right: 6px;
}

.rfl-line-desc {
  font-weight: 700;
  margin-right: 6px;
}

.rfl-line-meta {
  color: #5f5f5f;
  font-weight: 600;
}

.rfl-loading-wrap {
  margin-top: 6px;
}

.rfl-loading-header {
  font-size: 0.65rem;
  letter-spacing: 0.28em;
  font-weight: 900;
  color: #006837;
  margin: 10px 0 8px;
}

.rfl-assign-form {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.rfl-assign-top {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
  width: 100%;
}

.rfl-subject-select {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
}

.rfl-add-btn {
  font-weight: 700;
  height: 38px;
  padding: 0 18px;
  white-space: nowrap;
  min-width: 130px;
  background-color: #006837;
  border-color: #006837;
  color: #fff;
}

.rfl-add-btn:hover,
.rfl-add-btn:focus {
  background-color: #005028;
  border-color: #005028;
  color: #fff;
}

.rfl-assign-options {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  width: 100%;
  margin-top: 8px;
}

.rfl-assign-options .form-check-input {
  accent-color: #006837;
}

.rfl-assign-options .form-check-input:checked {
  background-color: #006837;
  border-color: #006837;
}

.rfl-assign-options .form-check-input:focus {
  border-color: rgba(0, 104, 55, 0.6);
  box-shadow: 0 0 0 0.15rem rgba(0, 104, 55, 0.15);
}

.rfl-num-wrap {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.rfl-num-label {
  font-size: 0.82rem;
  color: #5f5f5f;
  font-weight: 700;
}

.rfl-num {
  width: 110px;
  height: 34px;
  font-size: 0.9rem;
}

.rfl-assigned-table {
  margin-top: 10px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.rfl-assigned-table .app-table {
  table-layout: auto;
  width: 100%;
  min-width: 980px;
}

@media (max-width: 900px) {
  .rfl-assigned-table .app-table {
    table-layout: auto;
    min-width: 920px;
  }

  .rfl-assigned-table .app-table th,
  .rfl-assigned-table .app-table td {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
  }
}

.rfl-assigned-table .app-table th:nth-child(1),
.rfl-assigned-table .app-table td:nth-child(1) {
  min-width: 110px;
}

.rfl-assigned-table .app-table th:nth-child(2),
.rfl-assigned-table .app-table td:nth-child(2) {
  min-width: 170px;
}

.rfl-assigned-table .app-table th:nth-child(3),
.rfl-assigned-table .app-table td:nth-child(3),
.rfl-assigned-table .app-table th:nth-child(4),
.rfl-assigned-table .app-table td:nth-child(4),
.rfl-assigned-table .app-table th:nth-child(5),
.rfl-assigned-table .app-table td:nth-child(5) {
  min-width: 64px;
  text-align: center;
  white-space: nowrap;
}

.rfl-assigned-table .app-table th:nth-child(6),
.rfl-assigned-table .app-table td:nth-child(6) {
  min-width: 90px;
}

.rfl-assigned-table .app-table th:nth-child(7),
.rfl-assigned-table .app-table td:nth-child(7) {
  min-width: 150px;
}

.rfl-assigned-table .app-table th:nth-child(8),
.rfl-assigned-table .app-table td:nth-child(8),
.rfl-assigned-table .app-table th:nth-child(9),
.rfl-assigned-table .app-table td:nth-child(9) {
  min-width: 110px;
}

.rfl-schedule-table-title {
  margin-top: 18px;
}

.rfl-schedule-table {
  margin-top: 8px;
}

.rfl-weekly-scroll {
  margin-top: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
}

@media (max-width: 900px) {
  .rfl-weekly-board {
    min-width: 720px;
  }

  .rfl-weekly-day {
    font-size: 0.8rem;
  }

  .rfl-weekly-card {
    padding: 8px 8px 8px;
  }

  .rfl-weekly-time {
    font-size: 0.68rem;
  }

  .rfl-weekly-code {
    font-size: 0.72rem;
  }

  .rfl-weekly-section {
    font-size: 1rem;
  }

  .rfl-weekly-room {
    font-size: 0.72rem;
  }
}

.rfl-weekly-board {
  display: grid;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  gap: 1px;
  border: 1px solid #0f8f4b;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  min-width: 840px;
}

.rfl-weekly-col {
  border-right: 1px solid #0f8f4b;
}

.rfl-weekly-col:nth-child(7n) {
  border-right: none;
}

.rfl-weekly-day {
  min-height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px;
  border-bottom: 1px solid #0f8f4b;
  font-size: 0.9rem;
  color: #006837;
  font-weight: 900;
  text-transform: uppercase;
}

.rfl-weekly-body {
  padding: 6px;
  background: #f7f7f7;
  min-height: 240px;
}

.rfl-weekly-card {
  background: #007f3b;
  color: #fff;
  padding: 8px 8px 8px;
  margin-bottom: 8px;
  text-align: center;
  border-radius: 10px;
}

.rfl-weekly-time {
  font-size: 0.72rem;
  font-weight: 800;
  margin-bottom: 6px;
}

.rfl-weekly-code {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.rfl-weekly-section {
  font-size: 1.05rem;
  line-height: 1.1;
  font-weight: 700;
  margin: 3px 0 6px;
}

.rfl-weekly-room {
  font-size: 0.78rem;
  font-weight: 600;
}

.rfl-weekly-empty {
  min-height: 120px;
}

.rfl-totals-row td {
  border-top: none;
  padding-top: 10px;
  color: var(--plp-green);
  font-weight: 900;
}

.rfl-total-cell {
  text-align: left;
  font-weight: 900;
  color: var(--plp-green);
}

.page-services-faculty-loads .rfl-wrap {
  padding: 20px 24px;
}

.page-services-faculty-loads .rfl-topbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.page-services-faculty-loads .rfl-search {
  margin-bottom: 6px;
  flex: 1 1 320px;
  max-width: 420px;
}

.page-services-faculty-loads .rfl-search-form {
  max-width: 100%;
}

.page-services-faculty-loads .rfl-meta {
  margin-bottom: 0;
  white-space: nowrap;
}

.page-services-faculty-loads .rfl-table-wrap {
  margin-top: 0;
}

.page-services-faculty-loads .rfl-footer {
  border-top: 1px solid #e7ece9;
  padding-top: 10px;
}

.page-services-faculty-loads .rfl-filters {
  margin: 10px 0 12px;
  padding: 12px 14px;
  border: 1px solid #dbe8e0;
  border-radius: 10px;
  background: #f7fbf8;
}

.page-services-faculty-loads .rfl-filter {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.page-services-faculty-loads .rfl-faculty-pill {
  margin: 0 0 14px;
}

.page-services-faculty-loads .rfl-loading-wrap {
  display: grid;
  gap: 10px;
}

.page-services-faculty-loads .rfl-loading-tools {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.page-services-faculty-loads .rfl-loading-tools .rfl-search {
  margin-bottom: 6px;
  flex: 1 1 320px;
  max-width: 420px;
}

.page-services-faculty-loads .rfl-loading-tools + .rfl-assign-form {
  margin-top: 8px;
}

.page-services-faculty-loads .rfl-assign-form + .rfl-assigned-table {
  margin-top: 14px;
}

.page-services-faculty-loads .rfl-loading-tools .rfl-loading-header {
  margin: 0;
}

.page-services-faculty-loads .rfl-assign-form {
  background: #f8fbf9;
  border: 1px solid #dbe8e0;
  border-radius: 10px;
  padding: 10px 12px;
}

.page-services-faculty-loads .rfl-subject-select {
  min-width: 380px;
}

.page-services-faculty-loads .rfl-assign-options {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) auto;
  gap: 10px 14px;
  align-items: flex-end;
}

.page-services-faculty-loads .rfl-load-type-group {
  display: flex;
  align-items: center;
  gap: 10px 14px;
  flex-wrap: wrap;
  min-height: 34px;
}

.page-services-faculty-loads .rfl-load-type-group .form-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding-left: 0;
}

.page-services-faculty-loads .rfl-load-type-group .form-check-input[type=radio] {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  margin: 0;
  border: 2px solid #0f8f4b;
  border-radius: 50%;
  background: #ffffff;
  position: relative;
  box-shadow: none;
  flex-shrink: 0;
}

.page-services-faculty-loads .rfl-load-type-group .form-check-input[type=radio]:checked {
  background: radial-gradient(circle at center, #0f8f4b 0 45%, #ffffff 48% 100%);
  border-color: #0f8f4b;
}

.page-services-faculty-loads .rfl-load-type-group .form-check-input[type=radio]:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(15, 143, 75, 0.18);
}

.page-services-faculty-loads .rfl-load-type-group .form-check-label {
  color: #355246;
  font-size: 0.83rem;
  font-weight: 700;
  line-height: 1.2;
}

.page-services-faculty-loads .rfl-metric-group {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.page-services-faculty-loads .rfl-num-wrap {
  min-height: 34px;
}

.page-services-faculty-loads .rfl-num-label {
  white-space: nowrap;
}

.page-services-faculty-loads .rfl-num {
  width: 94px;
  height: 34px;
}

.page-services-faculty-loads .rfl-schedule-table-title {
  margin-top: 12px;
}

.page-services-faculty-loads .rfl-weekly-board {
  display: grid;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  overflow: hidden;
  background: #ffffff;
  min-width: 840px;
  gap: 0;
}

.page-services-faculty-loads .rfl-weekly-col {
  display: flex;
  flex-direction: column;
  border-right: 1px solid #e0e0e0;
  min-height: 180px;
}

.page-services-faculty-loads .rfl-weekly-col:nth-child(7n) {
  border-right: none;
}

.page-services-faculty-loads .rfl-weekly-day {
  background: #f7f7f7;
  color: #555555;
  font-size: 0.75rem;
  font-weight: 700;
  text-align: center;
  min-height: 0;
  padding: 8px 4px;
  border-bottom: 1px solid #e0e0e0;
}

.page-services-faculty-loads .rfl-weekly-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
  min-height: 0;
  background: #ffffff;
}

.page-services-faculty-loads .rfl-weekly-card {
  background: transparent;
  color: #0a6a36;
  border-radius: 0;
  padding: 6px 4px;
  text-align: center;
  border: 0;
  margin: 0;
}

.page-services-faculty-loads .rfl-weekly-time,
.page-services-faculty-loads .rfl-weekly-room {
  font-size: 0.66rem;
  font-weight: 600;
  margin-bottom: 2px;
  color: #0a6a36;
}

.page-services-faculty-loads .rfl-weekly-code {
  font-size: 0.7rem;
  font-weight: 800;
  margin-bottom: 3px;
  color: #0a6a36;
}

.page-services-faculty-loads .rfl-weekly-section {
  font-size: 0.68rem;
  line-height: 1.25;
  font-weight: 600;
  margin-bottom: 3px;
  color: #0a6a36;
}

.page-services-faculty-loads .rfl-weekly-empty {
  font-size: 0.7rem;
  color: #9aa0a6;
  text-align: center;
  padding: 6px 4px;
  min-height: 56px;
}

@media (max-width: 900px) {
  .page-services-faculty-loads .rfl-filters {
    padding: 10px;
  }

  .page-services-faculty-loads .rfl-filter,
  .page-services-faculty-loads .rfl-set-btn {
    flex: 1 1 180px;
  }

  .page-services-faculty-loads .rfl-loading-tools .rfl-loading-header {
    width: 100%;
  }

  .page-services-faculty-loads .rfl-assign-options {
    grid-template-columns: 1fr;
  }

  .page-services-faculty-loads .rfl-metric-group {
    justify-content: flex-start;
  }

  .page-services-faculty-loads .rfl-subject-select {
    min-width: 260px;
  }
}

@media (max-width: 640px) {
  .page-services-faculty-loads .rfl-wrap {
    padding: 14px 12px;
  }

  .page-services-faculty-loads .rfl-topbar {
    align-items: stretch;
  }

  .page-services-faculty-loads .rfl-meta {
    white-space: normal;
  }

  .page-services-faculty-loads .rfl-set-btn,
  .page-services-faculty-loads .rfl-add-btn {
    width: 100%;
  }

  .page-services-faculty-loads .rfl-assign-top {
    flex-wrap: wrap;
  }

  .page-services-faculty-loads .rfl-subject-select,
  .page-services-faculty-loads .rfl-load-type-group,
  .page-services-faculty-loads .rfl-metric-group,
  .page-services-faculty-loads .rfl-num-wrap,
  .page-services-faculty-loads .rfl-num {
    width: 100%;
  }

  .page-services-faculty-loads .rfl-metric-group {
    gap: 8px;
  }
}

/* ==========================================================================
   SECTION MERGING PAGE
   ========================================================================== */

.smrg-content {
  padding: 24px;
  width: 100%;
  margin: 0;
  box-sizing: border-box;
}

.smrg-card {
  width: 100%;
  margin-bottom: 24px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}

.smrg-card-header {
  background: linear-gradient(90deg, #f4fbf7 0%, #f9fcfb 100%);
  border-bottom: 1px solid #e2e8f0;
  padding: 14px 20px;
}

.smrg-card-title {
  margin: 0;
  color: #006837;
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}

.smrg-card-body {
  padding: 20px;
}

.smrg-config-form {
  display: grid;
  grid-template-columns: minmax(180px, 220px) minmax(160px, 200px) auto;
  gap: 14px;
  align-items: flex-end;
}

.smrg-config-field,
.smrg-config-save {
  min-width: 0;
}

.smrg-config-save {
  align-items: flex-start;
}

.smrg-form-group {
  display: flex;
  flex-direction: column;
  position: relative;
}

.smrg-form-group label {
  margin-bottom: 6px;
  color: #006837;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
}

.smrg-search-input {
  width: 100%;
  border: 1px solid #c5ddce;
  background: #ffffff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.smrg-search-input:focus {
  outline: none;
  border-color: #0f7b43;
  box-shadow: 0 0 0 3px rgba(15, 123, 67, 0.14);
}

.smrg-search-wrap {
  position: relative;
}

.smrg-search-dropdown {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 40;
  display: none;
  max-height: 230px;
  overflow-y: auto;
  padding: 4px;
  border: 1px solid #b8d8c5;
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(0, 104, 55, 0.14);
}

.smrg-search-dropdown.is-open {
  display: block;
}

.smrg-search-option {
  display: block;
  width: 100%;
  border: none;
  border-left: 3px solid transparent;
  border-radius: 8px;
  background: #ffffff;
  color: #14532d;
  text-align: left;
  font-size: 0.84rem;
  font-weight: 600;
  padding: 9px 10px;
  cursor: pointer;
}

.smrg-search-option:hover,
.smrg-search-option:focus {
  outline: none;
  border-left-color: #0f7b43;
  background: linear-gradient(90deg, #eef8f2 0%, #f7fcf9 100%);
}

.smrg-search-option.is-selected {
  border-left-color: #0f7b43;
  background: #e8f6ee;
}

.smrg-search-empty {
  padding: 10px;
  color: #5d7063;
  font-size: 0.82rem;
}

.smrg-hidden-select {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
}

.smrg-split-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.smrg-side {
  background: linear-gradient(180deg, #fcfefd 0%, #f7fbf9 100%);
  border: 1px solid #dbe7df;
  border-radius: 9px;
  padding: 16px;
}

.smrg-side-source {
  border-top: 3px solid #2f855a;
}

.smrg-side-target {
  border-top: 3px solid #38a169;
}

.smrg-side-title {
  margin: 0 0 16px;
  text-align: center;
  color: #14532d;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

.smrg-form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}

.smrg-form-group.full-width {
  width: 100%;
  margin-bottom: 12px;
}

.smrg-form-group.flex-1 {
  min-width: 0;
}

.smrg-clear-wrap {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
}

.smrg-bottom-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid #e5e7eb;
}

.pf-btn {
  border: none;
  border-radius: 7px;
  padding: 9px 20px;
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.smrg-config-form .pf-btn {
  min-width: 100px;
}

.smrg-config-save .pf-btn {
  width: auto;
  min-width: 90px;
}

.smrg-clear-wrap .pf-btn {
  padding: 7px 12px;
  font-size: 0.82rem;
}

.pf-btn-primary {
  background: #006837;
  color: #fff;
}

.pf-btn-primary:hover {
  background: #00552d;
}

.page-section-merging .pf-btn-secondary {
  background: #e0e0e0;
  color: #444;
}

.page-section-merging .pf-btn-secondary:hover {
  background: #ccc;
}

.pf-btn-danger {
  background: #ef4444;
  color: #fff;
}

.pf-btn-danger:hover {
  background: #dc2626;
}

@media (max-width: 1024px) {
  .smrg-content {
    padding: 18px;
  }

  .smrg-config-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .smrg-config-save {
    grid-column: 1/-1;
  }
}

@media (max-width: 768px) {
  .smrg-split-layout,
  .smrg-form-row,
  .smrg-config-form {
    grid-template-columns: 1fr;
  }

  .smrg-search-dropdown {
    max-height: 180px;
  }

  .smrg-bottom-actions {
    flex-wrap: wrap;
  }
}

/* ==========================================================================
   ALUMNI TRACKER
   ========================================================================== */

.page-alumni-tracker .at-top-row {
  display: grid;
  grid-template-columns: minmax(230px, 1fr) minmax(430px, 1.25fr);
  gap: 8px;
  align-items: start;
  border: 1px solid #d7dde2;
  border-radius: 10px;
  background: #f8fafb;
  padding: 10px;
}

.page-alumni-tracker .at-search-card,
.page-alumni-tracker .at-config-card {
  border: none;
  border-radius: 0;
  background: transparent;
  padding: 0;
  box-shadow: none;
}

.page-alumni-tracker .at-search-block {
  min-width: 0;
}

.page-alumni-tracker .at-search-wrap {
  max-width: 100%;
  margin-top: 2px;
}

.page-alumni-tracker .at-config-card {
  padding-left: 10px;
  border-left: 1px solid #d2d9df;
}

.page-alumni-tracker .at-config-title {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #4b4f56;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.page-alumni-tracker .at-config-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(210px, 1fr) auto;
  gap: 6px;
  align-items: center;
}

.page-alumni-tracker .at-config-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.page-alumni-tracker .at-config-inline-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.page-alumni-tracker .at-config-item .app-filter-select {
  min-width: 0;
}

.page-alumni-tracker .at-filter-group {
  min-width: 0;
  max-width: none;
}

.page-alumni-tracker .at-config-action {
  display: flex;
  align-items: flex-end;
}

.page-alumni-tracker .at-btn-set {
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 0.75rem;
  min-width: 52px;
}

.page-alumni-tracker .at-filter-row {
  display: grid;
  grid-template-columns: minmax(200px, 1.35fr) minmax(150px, 0.95fr) minmax(240px, 1.45fr) max-content;
  gap: 6px;
  align-items: flex-end;
}

.page-alumni-tracker .at-program-group {
  min-width: 170px;
}

.page-alumni-tracker .at-sort-row {
  display: grid;
  grid-template-columns: minmax(100px, 1fr) minmax(110px, 1fr);
  gap: 8px;
}

.page-alumni-tracker .at-filter-action {
  display: flex;
  justify-content: flex-end;
}

.page-alumni-tracker .at-filter-action .pf-btn-new {
  padding: 8px 14px;
  font-size: 0.84rem;
}

.page-alumni-tracker .at-table-wrap {
  margin-top: 4px;
}

.page-alumni-tracker .at-table td a {
  color: #4b4f56;
  text-decoration: none;
}

.page-alumni-tracker .at-table td a:hover {
  color: #1f2937;
}

.page-alumni-tracker .at-total-cell strong {
  font-weight: 800;
}

@media (max-width: 1100px) {
  .page-alumni-tracker .at-top-row {
    grid-template-columns: 1fr;
  }

  .page-alumni-tracker .at-search-wrap {
    max-width: 100%;
  }

  .page-alumni-tracker .at-search-card,
  .page-alumni-tracker .at-config-card {
    padding: 0;
  }

  .page-alumni-tracker .at-config-card {
    padding-left: 0;
    border-left: none;
    border-top: 1px solid #d2d9df;
    padding-top: 8px;
  }

  .page-alumni-tracker .at-filter-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-alumni-tracker .at-sort-group,
  .page-alumni-tracker .at-filter-action {
    grid-column: span 2;
  }

  .page-alumni-tracker .at-filter-action {
    justify-content: flex-start;
  }
}

@media (max-width: 768px) {
  .page-alumni-tracker .at-config-grid,
  .page-alumni-tracker .at-filter-row,
  .page-alumni-tracker .at-sort-row {
    grid-template-columns: 1fr;
  }

  .page-alumni-tracker .at-config-item {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .page-alumni-tracker .at-config-action {
    width: 100%;
    justify-content: stretch;
  }

  .page-alumni-tracker .at-btn-set {
    width: 100%;
    min-height: 36px;
    border-radius: 8px;
    font-size: 0.84rem;
  }

  .page-alumni-tracker .at-sort-group,
  .page-alumni-tracker .at-filter-action {
    grid-column: span 1;
  }

  .page-alumni-tracker .at-filter-action .pf-btn-new {
    width: 100%;
  }

  .page-alumni-tracker .at-total-cell {
    font-size: 0.9rem;
    white-space: nowrap;
    flex-wrap: nowrap;
    gap: 6px;
  }
}

/* ==========================================================================
   STUDENT ENROLLMENT
   ========================================================================== */

.page-student-enrollment .se-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.page-student-enrollment .se-toolbar-left {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  flex: 1;
  min-width: 260px;
}

.page-student-enrollment .se-search-wrap {
  min-width: 220px;
  max-width: 360px;
  flex: 1;
}

.page-student-enrollment .se-sort-wrap {
  width: 190px;
}

.page-student-enrollment .se-search-wrap .pf-search-wrap {
  height: 36px;
}

.page-student-enrollment .se-search-wrap .pf-search-input {
  height: 36px;
  padding-top: 0;
  padding-bottom: 0;
}

.page-student-enrollment .se-sort-wrap .app-filter-select {
  height: 36px;
  padding-top: 0;
  padding-bottom: 0;
}

.page-student-enrollment .se-toolbar-right {
  display: flex;
  gap: 8px;
  align-items: center;
}

.page-student-enrollment .se-total-cell {
  text-align: left !important;
  padding-left: 14px;
  font-weight: 700;
  color: #006837;
  white-space: nowrap;
}

.page-student-enrollment #seTable {
  min-width: 860px;
}

.page-student-enrollment .se-name-link {
  color: #0f7b43;
  text-decoration: none;
  font-weight: 600;
}

.page-student-enrollment .se-name-link:hover {
  color: #0c6336;
  text-decoration: underline;
}

.page-student-enrollment .se-row-actions {
  display: inline-flex;
  gap: 6px;
}

.page-student-enrollment .se-row-btn {
  border: none;
  border-radius: 4px;
  padding: 4px 8px;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
}

.page-student-enrollment .se-row-btn-edit {
  background: #e8f5e9;
  color: #0f7b43;
}

.page-student-enrollment .se-row-btn-edit:hover {
  background: #d8eddc;
}

.page-student-enrollment .se-row-btn-delete {
  background: #ffebee;
  color: #c62828;
}

.page-student-enrollment .se-row-btn-delete:hover {
  background: #ffd9df;
}

.page-student-enrollment .se-row-btn-add {
  background: #e6f4ea;
  color: #0f7b43;
}

.page-student-enrollment .se-row-btn-add:hover {
  background: #d7eddc;
}

.page-student-enrollment .se-detail-topbar {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-bottom: 10px;
}

.page-student-enrollment .se-student-card {
  border: 1px solid #80b497;
  border-radius: 8px;
  background: #fff;
  padding: 12px 14px;
  margin-bottom: 10px;
  box-shadow: 0 0 0 1px rgba(15, 123, 67, 0.08), 0 1px 3px rgba(0, 0, 0, 0.03);
}

.page-student-enrollment .se-student-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 20px;
  font-size: 0.8rem;
  color: #555;
}

.page-student-enrollment .se-meta-label {
  color: #7b7b7b;
  margin-right: 4px;
}

.page-student-enrollment .se-subject-card {
  background: #fff;
  border: 1px solid #d7dde2;
  border-radius: 6px;
  padding: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.page-student-enrollment .se-section {
  margin-top: 14px;
  background: #fff;
  border: 1px solid #d7dde2;
  border-radius: 6px;
  padding: 12px;
}

.page-student-enrollment .se-section-plain {
  border: none;
  background: transparent;
  padding: 0;
  margin-top: 12px;
}

.page-student-enrollment .se-subject-title {
  font-size: 0.95rem;
  color: #4b4f56;
  margin-bottom: 12px;
  font-weight: 700;
}

.page-student-enrollment .se-note-inline {
  font-weight: 400;
  font-size: 0.78rem;
  color: #777;
}

.page-student-enrollment .se-mini-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 280px));
  gap: 10px 14px;
  margin-bottom: 10px;
}

.page-student-enrollment .se-mini-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.page-student-enrollment .se-search-subject-field {
  max-width: 360px;
  margin-bottom: 10px;
}

.page-student-enrollment .se-catalog-filters-row {
  display: grid;
  grid-template-columns: minmax(0, 220px) minmax(0, 220px);
  gap: 10px 14px;
  align-items: flex-end;
  margin-bottom: 10px;
}

.page-student-enrollment .se-subject-tools {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 8px;
  margin-bottom: 8px;
}

.page-student-enrollment .se-subject-tools-search {
  margin-right: auto;
  min-width: 300px;
  max-width: 420px;
}

.page-student-enrollment .se-subject-tools-search .pf-search-wrap {
  width: 100%;
}

.page-student-enrollment .se-action-note {
  font-size: 0.76rem;
  color: #6b7280;
  margin: -2px 0 8px;
}

.page-student-enrollment .se-tool-btn {
  min-width: 124px;
  border-radius: 4px;
  font-weight: 700;
}

.page-student-enrollment .se-subject-tools .se-tool-btn,
.page-student-enrollment .se-subject-tools .pf-btn-new {
  height: 36px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.82rem;
  line-height: 1;
  white-space: nowrap;
}

.page-student-enrollment .se-current-section-inline {
  margin-right: auto;
  font-weight: 700;
  color: #006837;
  font-size: 0.84rem;
  align-self: center;
}

.page-student-enrollment .se-tool-btn-edit {
  border: 1px solid #0f7b43;
  background: #fff;
  color: #0f7b43;
  cursor: pointer;
}

.page-student-enrollment .se-tool-btn-edit:hover {
  background: #eef8f1;
}

.page-student-enrollment .se-tool-btn-danger {
  border: 1px solid #c62828;
  background: #fff;
  color: #c62828;
  cursor: pointer;
}

.page-student-enrollment .se-tool-btn-danger:hover {
  background: #fff0f2;
}

.page-student-enrollment .se-subject-table {
  font-size: 0.78rem;
  min-width: 1120px;
}

.page-student-enrollment #seChangeFromTable {
  table-layout: fixed;
}

.page-student-enrollment #seAddSubjectsTable {
  table-layout: fixed;
}

.page-student-enrollment .se-subject-table td,
.page-student-enrollment .se-subject-table th {
  padding: 7px 9px;
}

.page-student-enrollment .se-subject-table thead th {
  font-size: 0.72rem;
  text-align: center !important;
}

.page-student-enrollment #seChangeFromTable tbody td {
  text-align: center !important;
}

.page-student-enrollment #seChangeFromTable tbody td:nth-child(3),
.page-student-enrollment #seChangeFromTable tbody td:nth-child(6) {
  text-align: left !important;
}

.page-student-enrollment #seAddSubjectsTable tbody td {
  text-align: center !important;
}

.page-student-enrollment #seAddSubjectsTable tbody td:nth-child(2),
.page-student-enrollment #seAddSubjectsTable tbody td:nth-child(3),
.page-student-enrollment #seAddSubjectsTable tbody td:nth-child(5) {
  text-align: left !important;
}

.page-student-enrollment #seAddSubjectsTable thead th:nth-child(2),
.page-student-enrollment #seAddSubjectsTable thead th:nth-child(3),
.page-student-enrollment #seAddSubjectsTable thead th:nth-child(5) {
  text-align: left !important;
}

.page-student-enrollment #seChangeFromTable thead th:nth-child(6),
.page-student-enrollment #seChangeFromTable tbody td:nth-child(6) {
  min-width: 280px;
}

.page-student-enrollment #seAddSubjectsTable thead th:nth-child(5),
.page-student-enrollment #seAddSubjectsTable tbody td:nth-child(5) {
  min-width: 280px;
}

.page-student-enrollment #seChangeFromTable tbody td.se-schedule-cell {
  text-align: center !important;
  white-space: normal;
  line-height: 1.35;
  padding-left: 9px;
  padding-right: 9px;
}

.page-student-enrollment #seChangeFromTable thead th:nth-child(6) {
  text-align: center !important;
}

.page-student-enrollment #seChangeFromTable .se-schedule-line {
  padding: 2px 0;
  margin: 0;
  text-align: center;
}

.page-student-enrollment #seChangeFromTable .se-schedule-line + .se-schedule-line {
  border-top: 1px dashed #d8dfda;
  margin-top: 2px;
}

.page-student-enrollment #seChangeFromTable thead th:nth-child(4),
.page-student-enrollment #seChangeFromTable tbody td:nth-child(4) {
  min-width: 96px;
  text-align: center !important;
  white-space: nowrap;
}

.page-student-enrollment #seAddSubjectsTable tbody td.se-catalog-schedule-cell {
  white-space: normal;
  line-height: 1.35;
  padding-left: 8px;
  padding-right: 8px;
}

.page-student-enrollment #seAddSubjectsTable .se-catalog-schedule-line {
  padding: 2px 0;
  margin: 0;
}

.page-student-enrollment .se-total-units-row td,
.page-student-enrollment .se-units-cell {
  font-weight: 700;
  color: #006837;
  text-align: left !important;
}

.page-student-enrollment #seChangeFromTable tbody tr.se-total-units-row td,
.page-student-enrollment #seChangeFromTable tbody tr.se-total-units-row td.se-units-cell {
  text-align: left !important;
}

.page-student-enrollment .se-units-cell {
  padding-left: 12px;
  white-space: nowrap;
}

.page-student-enrollment .se-section-actions {
  margin-top: 10px;
  display: flex;
  justify-content: flex-end;
}

.page-student-enrollment .se-schedule-section {
  padding: 0;
  border: none;
  background: transparent;
}

.page-student-enrollment .se-schedule-section .so-weekly-card,
.page-student-enrollment .se-schedule-section .so-weekly-code,
.page-student-enrollment .se-schedule-section .so-weekly-section,
.page-student-enrollment .se-schedule-section .so-weekly-time,
.page-student-enrollment .se-schedule-section .so-weekly-room {
  color: #ffffff !important;
}

.page-student-enrollment .se-schedule-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.page-student-enrollment .se-schedule-head .pf-btn-new {
  padding: 7px 12px;
  font-size: 0.84rem;
}

.page-student-enrollment .se-download-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}

.page-student-enrollment .se-detail-actions {
  margin-top: 10px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.page-student-enrollment .se-btn {
  border: none;
  border-radius: 4px;
  padding: 6px 14px;
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
}

.page-student-enrollment .se-btn-save {
  background: #0f7b43;
  color: #fff;
}

.page-student-enrollment .se-btn-save:hover {
  background: #0c6336;
}

.page-student-enrollment .se-btn-reset,
.page-student-enrollment .se-btn-danger {
  background: #ff5a5a;
  color: #fff;
}

.page-student-enrollment .se-btn-reset:hover,
.page-student-enrollment .se-btn-danger:hover {
  background: #e24747;
}

.page-student-enrollment .se-modal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.page-student-enrollment .se-modal-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.page-student-enrollment .se-import-help {
  font-size: 0.82rem;
  color: #5c6470;
  line-height: 1.45;
  background: #f8fafb;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 8px 10px;
}

@media (max-width: 900px) {
  .page-student-enrollment .se-toolbar {
    align-items: stretch;
  }

  .page-student-enrollment .se-toolbar-right {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .page-student-enrollment .se-student-grid {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .page-student-enrollment .se-mini-form-grid {
    grid-template-columns: 1fr;
  }

  .page-student-enrollment .se-catalog-filters-row {
    grid-template-columns: 1fr;
  }

  .page-student-enrollment .se-subject-tools-search {
    min-width: 100%;
    max-width: none;
  }
}

.page-student-enrollment .se-tool-btn-disabled,
.page-student-enrollment .se-subject-tools .se-tool-btn:disabled,
.page-student-enrollment .se-subject-tools .pf-btn-new:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}

@media (max-width: 768px) {
  .page-student-enrollment .se-toolbar-left {
    width: 100%;
  }

  .page-student-enrollment .se-page-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
  }

  .page-student-enrollment .se-page-actions-wrap {
    margin-top: 12px;
    padding: 10px 12px;
  }

  .page-student-enrollment .se-search-wrap .page-student-enrollment .se-page-actions,
  .page-student-enrollment .se-sort-wrap .page-student-enrollment .se-page-actions {
    flex-wrap: wrap;
  }

  .page-student-enrollment .se-search-wrap .page-student-enrollment .se-page-actions .se-btn,
  .page-student-enrollment .se-sort-wrap .page-student-enrollment .se-page-actions .se-btn {
    width: 100%;
  }

  .page-student-enrollment .se-search-wrap,
  .page-student-enrollment .se-sort-wrap {
    width: 100%;
    max-width: none;
  }

  .page-student-enrollment .se-toolbar-right .pf-btn-new {
    width: 100%;
  }

  .page-student-enrollment .se-subject-tools {
    justify-content: stretch;
    flex-wrap: wrap;
  }

  .page-student-enrollment .se-subject-tools .se-tool-btn,
  .page-student-enrollment .se-subject-tools .pf-btn-new {
    width: 100%;
  }

  .page-student-enrollment .se-detail-actions {
    flex-wrap: wrap;
  }

  .page-student-enrollment .se-detail-actions .se-btn {
    width: 100%;
  }

  .page-student-enrollment .se-section-actions {
    justify-content: stretch;
  }

  .page-student-enrollment .se-section-actions .se-btn {
    width: 100%;
  }

  .page-student-enrollment .se-schedule-head {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .page-student-enrollment .se-schedule-head .pf-btn-new {
    width: 100%;
  }

  .page-student-enrollment .se-modal-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   STUDENT ACCOUNT (Shared)
   ========================================================================== */

.page-student-account .ga-page {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.page-student-account .ga-card {
  background: #fff;
  border: 1px solid #d6dde4;
  border-radius: 8px;
  padding: 10px;
}

.page-student-account .ga-filter-card {
  padding: 10px 10px 8px;
}

.page-student-account .ga-table-wrap {
  overflow: auto;
}

.page-student-account .ga-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 880px;
}

.page-student-account .ga-table thead th {
  background: #006837;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid #0c7b42;
}

.page-student-account .ga-table tbody td {
  padding: 11px 14px;
  font-size: 0.8rem;
  color: #333;
  border-bottom: 1px solid #c0c0c0;
  vertical-align: middle;
}

.page-student-account .ga-table tbody tr:hover {
  background: #f9fffe;
}

.page-student-account .ga-table tbody tr:last-child td {
  border-bottom: none;
}

/* ==========================================================================
   STUDENT DISCIPLINE
   ========================================================================== */

.page-student-discipline .sd-filter-card {
  margin-bottom: 6px;
}

.page-student-discipline .sd-top-row {
  display: grid;
  grid-template-columns: minmax(480px, 1.25fr) auto minmax(280px, 0.75fr);
  gap: 16px;
  align-items: stretch;
}

.page-student-discipline .sd-filter-divider {
  width: 2px;
  background: #d6e7dc;
  align-self: stretch;
}

.page-student-discipline .sd-search-card,
.page-student-discipline .sd-system-card {
  padding: 0;
}

.page-student-discipline .sd-filter-title {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #0a6f3a;
  margin-bottom: 8px;
}

.page-student-discipline .sd-field-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.page-student-discipline .sd-field-grid .rg-listbox,
.page-student-discipline .sd-system-grid .rg-listbox {
  width: 100%;
}

.page-student-discipline .sd-field-grid .rg-listbox-trigger,
.page-student-discipline .sd-system-grid .rg-listbox-trigger {
  min-height: 34px;
  height: 34px;
}

.page-student-discipline .sd-filter-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.page-student-discipline .sd-field-grid .pf-search-input,
.page-student-discipline .sd-field-grid .app-filter-select,
.page-student-discipline .sd-system-grid .app-filter-select {
  width: 100%;
  min-height: 34px;
  height: 34px;
  padding: 6px 10px;
  box-sizing: border-box;
}

.page-student-discipline .sd-set-btn {
  min-height: 34px;
  margin-left: auto;
}

.page-student-discipline .sd-system-grid {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 8px;
  align-items: flex-end;
}

.page-student-discipline .sd-criteria-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.page-student-discipline .sd-filter-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.page-student-discipline .sd-clear-btn {
  border: none;
  border-radius: 6px;
  min-height: 34px;
  height: 34px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f35a5a;
  color: #fff;
  font-size: 0.76rem;
  font-weight: 700;
  cursor: pointer;
}

.page-student-discipline .sd-filter-actions .pf-btn-new,
.page-student-discipline .sd-set-btn {
  min-height: 34px;
  height: 34px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.76rem;
}

.page-student-discipline .sd-clear-btn:hover {
  background: #db4d4d;
}

.page-student-discipline .sd-hidden {
  display: none !important;
}

.page-student-discipline #sdStudentsTable th,
.page-student-discipline #sdStudentsTable td,
.page-student-discipline #sdConductTable th,
.page-student-discipline #sdConductTable td {
  text-align: center;
}

.page-student-discipline .sd-col-action {
  width: 70px;
}

.page-student-discipline .sd-col-index {
  width: 50px;
}

.page-student-discipline .sd-total-cell strong {
  font-size: 1.1em;
  color: #006837 !important;
}

.page-student-discipline .sd-total-row td,
.page-student-discipline .sd-total-cell {
  color: #006837 !important;
  text-align: left !important;
  font-weight: 700;
  background: #f8fcf9 !important;
}

.page-student-discipline .sd-table-head {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin: 4px 0 2px;
}

.page-student-discipline .sd-add-student-btn {
  min-height: 34px;
  font-size: 0.75rem;
}

.page-student-discipline #sdStudentsTable .apst-dropdown,
.page-student-discipline #sdConductTable .apst-dropdown {
  position: fixed;
}

.page-student-discipline #sdStudentsTable th:first-child,
.page-student-discipline #sdStudentsTable tbody tr:not(.sd-total-row) td:first-child {
  width: 70px;
  text-align: center;
}

.page-student-discipline #sdStudentsTable td:first-child .apst-action-btn {
  margin: 0 auto;
}

.page-student-discipline #sdStudentsTable .sd-total-row td {
  text-align: left !important;
}

.page-student-discipline .sd-name-link {
  color: #0f7b43;
  text-decoration: none;
  font-weight: 600;
}

.page-student-discipline .sd-name-link-btn {
  border: none;
  background: transparent;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

.page-student-discipline .sd-name-link:hover {
  text-decoration: underline;
}

.page-student-discipline .sd-detail-topbar {
  display: flex;
  justify-content: flex-start;
  margin-bottom: 8px;
}

.page-student-discipline .sd-student-banner {
  border: 1px solid #cde3d6;
  background: linear-gradient(180deg, #f5fbf7 0%, #ecf7f1 100%);
  border-radius: 8px;
  padding: 14px 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  font-size: 0.84rem;
}

.page-student-discipline .sd-student-banner span {
  color: #4e6c5b;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.page-student-discipline .sd-student-banner strong {
  color: #0a6f3a;
  font-size: 1rem;
  font-weight: 700;
}

.page-student-discipline .sd-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  gap: 10px;
}

.page-student-discipline .sd-detail-title {
  font-size: 0.8rem;
  color: #006837;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.page-student-discipline .sd-detail-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.page-student-discipline .sd-new-btn,
.page-student-discipline .gs-view-btn {
  height: 36px;
  min-height: 36px;
  padding: 0 18px;
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-student-discipline .sd-new-btn:hover,
.page-student-discipline .gs-view-btn:hover {
  background: #004d29;
}

.page-student-discipline #sdConductTable {
  min-width: 850px;
}

.page-student-discipline #sdConductTable thead th:nth-child(1),
.page-student-discipline #sdConductTable tbody td:nth-child(1) {
  width: 15%;
}

.page-student-discipline #sdConductTable thead th:nth-child(2),
.page-student-discipline #sdConductTable tbody td:nth-child(2) {
  width: 25%;
}

.page-student-discipline #sdConductTable thead th:nth-child(3),
.page-student-discipline #sdConductTable tbody td:nth-child(3) {
  width: 35%;
}

.page-student-discipline #sdConductTable thead th:nth-child(4),
.page-student-discipline #sdConductTable tbody td:nth-child(4) {
  text-align: center !important;
  width: 15%;
}

.page-student-discipline #sdConductTable th:last-child,
.page-student-discipline #sdConductTable tbody tr:not(.sd-total-row) td:last-child {
  width: 10%;
  text-align: center !important;
}

.page-student-discipline #sdConductTable td:last-child .apst-action-btn {
  margin: 0 auto;
}

.page-student-discipline .sd-empty-row td {
  color: #9aa0a6;
  text-align: center !important;
  font-size: 0.8rem;
}

.page-student-discipline .sd-record-hint {
  margin: 0 0 10px;
  color: #4d5f54;
  font-size: 0.78rem;
  font-weight: 600;
}

.page-student-discipline #sdConductTable tbody tr[data-sd-record-row] {
  cursor: pointer;
}

.page-student-discipline #sdConductTable tbody tr.sd-record-row-selected {
  background: linear-gradient(90deg, #eef8f2 0%, #fbfefc 100%);
}

.page-student-discipline .sd-record-detail-card {
  margin-top: 14px;
  border: 1px solid #c8dfd1;
  border-radius: 10px;
  background: linear-gradient(180deg, #f9fcfa 0%, #f3faf6 100%);
  padding: 14px;
  box-shadow: 0 8px 20px rgba(0, 104, 55, 0.08);
}

.page-student-discipline .sd-record-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.page-student-discipline .sd-record-detail-title {
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #0a6f3a;
}

.page-student-discipline .sd-record-detail-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
  color: #0b5f34;
  background: #dff3e8;
  border: 1px solid #bde3cc;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.page-student-discipline .sd-record-detail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.page-student-discipline .sd-record-detail-item {
  background: #fff;
  border: 1px solid #d6e9dc;
  border-radius: 8px;
  padding: 8px 10px;
}

.page-student-discipline .sd-record-detail-label {
  display: block;
  margin-bottom: 3px;
  color: #5c7265;
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
}

.page-student-discipline .sd-record-detail-item strong {
  color: #173728;
  font-size: 0.8rem;
  font-weight: 700;
}

.page-student-discipline .sd-record-detail-body-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.page-student-discipline .sd-record-detail-block {
  background: #fff;
  border: 1px solid #d6e9dc;
  border-radius: 8px;
  padding: 10px;
}

.page-student-discipline .sd-record-detail-block h4 {
  margin: 0 0 6px;
  color: #0e6f3c;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 800;
}

.page-student-discipline .sd-record-detail-block p {
  margin: 0;
  color: #344739;
  font-size: 0.8rem;
  line-height: 1.45;
  white-space: pre-wrap;
}

.page-student-discipline .sd-add-help {
  margin: 0 0 10px;
  color: #4b5563;
  font-size: 0.82rem;
}

.page-student-discipline .sd-student-search-wrap .smrg-search-dropdown,
.page-student-discipline .sd-program-search-wrap .smrg-search-dropdown {
  top: calc(100% + 4px);
}

.page-student-discipline .sd-record-search-wrap .smrg-search-dropdown {
  top: calc(100% + 4px);
  z-index: 55;
}

.page-student-discipline .sd-row-gap {
  margin-top: 10px;
}

.page-student-discipline .sd-student-type-fixed .rg-listbox-trigger {
  pointer-events: none;
  background: #f4f6f5;
  color: #5e6c63;
  border-color: #d5ddd8;
}

.page-student-discipline .sd-student-type-fixed .rg-listbox-menu {
  display: none !important;
}

.page-student-discipline .sd-field-note {
  margin: 6px 0 0;
  font-size: 0.72rem;
  color: #5f7165;
  font-weight: 600;
}

.page-student-discipline .sd-auto-filled-input[disabled] {
  background: #f4f6f5;
  color: #5e6c63;
  border-color: #d5ddd8;
  cursor: not-allowed;
}

.page-student-discipline .sd-auto-filled-select .rg-listbox-trigger {
  pointer-events: none;
  background: #f4f6f5;
  color: #5e6c63;
  border-color: #d5ddd8;
  cursor: not-allowed;
}

.page-student-discipline .sd-auto-filled-select .rg-listbox-menu {
  display: none !important;
}

.page-student-discipline .sd-auto-filled-select .rg-listbox-native {
  background: #f4f6f5;
  color: #5e6c63;
}

.page-student-discipline .sd-auto-filled-search .smrg-search-input[disabled] {
  background: #f4f6f5;
  color: #5e6c63;
  border-color: #d5ddd8;
  cursor: not-allowed;
}

.page-student-discipline .sd-auto-filled-search .smrg-search-dropdown {
  display: none !important;
}

.page-student-discipline .sd-student-modal {
  max-width: 640px;
}

.page-student-discipline .sd-delete-modal {
  min-width: 320px;
}

.page-student-discipline .sd-delete-title {
  color: #c0392b;
}

.page-student-discipline .sd-delete-text {
  font-size: 0.88rem;
  color: #444;
  margin-bottom: 20px;
  text-align: center;
}

.page-student-discipline .sd-delete-actions {
  justify-content: center;
}

.page-student-discipline .sd-delete-confirm-btn {
  background: #c0392b;
}

.page-student-discipline .req-modal-overlay {
  display: none;
}

.page-student-discipline .req-modal-overlay.is-open {
  display: flex;
}

.page-student-discipline #sdEditStudentModal .rg-listbox,
.page-student-discipline #sdAddStudentModal .rg-listbox,
.page-student-discipline .sd-modal-grid .rg-listbox {
  width: 100%;
}

.page-student-discipline .sd-modal-box {
  max-width: 780px;
  width: min(94vw, 780px);
  padding: 22px 22px 18px;
  border-radius: 10px;
}

.page-student-discipline .sd-modal-section {
  background: #f9fcfa;
  border: 1px solid #e2ece5;
  border-radius: 10px;
  padding: 14px 14px 12px;
}

.page-student-discipline .sd-modal-section + .sd-modal-section {
  margin-top: 12px;
}

.page-student-discipline .sd-modal-section-head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid #e3ece6;
}

.page-student-discipline .sd-modal-title {
  font-size: 0.9rem;
  color: #006837;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin: 0;
  padding-bottom: 0;
  border-bottom: none;
  text-align: center;
}

.page-student-discipline .sd-modal-title-action {
  margin-top: 0;
}

.page-student-discipline .sd-section-toggle {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.8rem;
  font-weight: 600;
  color: #2f4f40;
}

.page-student-discipline .sd-modal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px 14px;
  align-items: start;
}

.page-student-discipline .sd-modal-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.page-student-discipline .sd-modal-field-full {
  grid-column: 1/-1;
}

.page-student-discipline .sd-modal-field-2col {
  grid-column: span 2;
}

.page-student-discipline .sd-check-inline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #0a6f3a;
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
}

.page-student-discipline .sd-modal-textarea {
  min-height: 70px;
  resize: vertical;
}

.page-student-discipline .sd-date-input {
  color-scheme: light;
}

.page-student-discipline .sd-date-input::-webkit-calendar-picker-indicator {
  cursor: pointer;
  border-radius: 4px;
  padding: 2px;
  -webkit-transition: background-color 0.2s ease, transform 0.2s ease;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.page-student-discipline .sd-date-input::-webkit-calendar-picker-indicator:hover {
  background-color: rgba(15, 123, 67, 0.14);
  transform: scale(1.05);
}

.page-student-discipline .sd-date-input::-webkit-datetime-edit {
  color: #14532d;
}

.page-student-discipline .sd-date-input:invalid::-webkit-datetime-edit {
  color: #8b8b8b;
}

.page-student-discipline .sd-modal-actions {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid #e8efea;
}

.page-student-discipline .sd-print-records-sheet {
  display: none;
  margin-top: 12px;
}

.page-student-discipline .sd-print-sheet-head {
  border: 1px solid #cde3d6;
  background: linear-gradient(180deg, #f5fbf7 0%, #ecf7f1 100%);
  border-radius: 8px;
  padding: 10px 14px;
}

.page-student-discipline .sd-print-sheet-title {
  margin: 0 0 6px;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #0a6f3a;
  font-weight: 800;
}

.page-student-discipline .sd-print-sheet-student-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  font-size: 0.76rem;
  color: #476153;
  font-weight: 600;
}

.page-student-discipline .sd-print-sheet-student-meta strong {
  color: #0a6f3a;
}

.page-student-discipline .sd-print-records-list {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.page-student-discipline .sd-print-record-card {
  margin-top: 0;
  box-shadow: none;
  background: #fff;
  page-break-inside: avoid;
  -moz-column-break-inside: avoid;
       break-inside: avoid;
}

.page-student-discipline .sd-print-record-grid {
  gap: 8px;
}

.page-student-discipline .sd-print-record-body-grid {
  margin-top: 8px;
  gap: 8px;
}

@media (max-width: 1080px) {
  .page-student-discipline .sd-top-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .page-student-discipline .sd-field-grid {
    grid-template-columns: 1fr;
  }

  .page-student-discipline .sd-system-grid {
    grid-template-columns: 1fr;
  }

  .page-student-discipline .sd-filter-actions {
    align-items: stretch;
  }

  .page-student-discipline .sd-filter-actions .pf-btn-new,
  .page-student-discipline .sd-filter-actions .sd-clear-btn,
  .page-student-discipline .sd-system-grid .sd-set-btn {
    width: 100%;
  }

  .page-student-discipline .sd-table-head {
    flex-direction: column;
    align-items: stretch;
  }

  .page-student-discipline .sd-add-student-btn {
    width: 100%;
  }

  .page-student-discipline .sd-student-banner {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .page-student-discipline .sd-detail-head {
    flex-direction: column;
    align-items: stretch;
  }

  .page-student-discipline .sd-detail-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .page-student-discipline .sd-detail-actions .gs-view-btn,
  .page-student-discipline .sd-detail-actions .sd-new-btn {
    width: 100%;
  }

  .page-student-discipline .sd-modal-grid {
    grid-template-columns: 1fr;
  }

  .page-student-discipline .sd-record-detail-grid,
  .page-student-discipline .sd-record-detail-body-grid {
    grid-template-columns: 1fr;
  }

  .page-student-discipline .sd-section-toggle {
    position: static;
    transform: none;
    margin-left: auto;
  }
}

@media print {
  body.page-student-discipline .plp-sidebar,
  body.page-student-discipline .student-topbar,
  body.page-student-discipline .student-page-header,
  body.page-student-discipline .plp-footer,
  body.page-student-discipline #registrar-toast,
  body.page-student-discipline #sdListView,
  body.page-student-discipline .sd-detail-topbar,
  body.page-student-discipline .sd-student-banner,
  body.page-student-discipline .sd-detail-actions,
  body.page-student-discipline .apst-action-btn,
  body.page-student-discipline .apst-dropdown,
  body.page-student-discipline #sdDetailView .ga-table-wrap,
  body.page-student-discipline #sdRecordDetailCard,
  body.page-student-discipline .req-modal-overlay {
    display: none !important;
  }

  body.page-student-discipline .student-content,
  body.page-student-discipline .pf-page,
  body.page-student-discipline .ga-page,
  body.page-student-discipline #sdDetailView {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: none !important;
  }

  body.page-student-discipline #sdDetailView {
    display: block !important;
  }

  body.page-student-discipline .sd-record-hint {
    display: none !important;
  }

  body.page-student-discipline .sd-print-records-sheet {
    display: block !important;
    margin-top: 10px !important;
  }

  body.page-student-discipline .sd-print-sheet-head {
    page-break-inside: avoid;
    -moz-column-break-inside: avoid;
         break-inside: avoid;
  }

  body.page-student-discipline .sd-print-records-list {
    display: grid !important;
    gap: 8px !important;
  }

  body.page-student-discipline .sd-print-record-card {
    margin: 0 !important;
    padding: 10px !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    background: #fff !important;
    page-break-inside: avoid;
    -moz-column-break-inside: avoid;
         break-inside: avoid;
  }

  body.page-student-discipline .sd-print-record-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  body.page-student-discipline .sd-print-record-body-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    margin-top: 6px !important;
  }

  body.page-student-discipline .sd-print-record-card .sd-record-detail-item {
    padding: 6px 8px !important;
  }

  body.page-student-discipline .sd-print-record-card .sd-record-detail-item strong,
  body.page-student-discipline .sd-print-record-card .sd-record-detail-block p {
    font-size: 0.74rem !important;
  }

  body.page-student-discipline .sd-print-record-card .sd-record-detail-block h4 {
    font-size: 0.66rem !important;
  }
}

/* ===== Process: Reports ===== */

.page-reports .rp-page {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.page-reports .rp-stats-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 1fr;
  gap: 8px;
}

.page-reports .rp-stat-card {
  border-radius: 8px;
  padding: 12px;
  background: #fff;
  border: 1px solid #d6dde4;
  min-height: 112px;
}

.page-reports .rp-stat-card-main {
  border-color: #ccd6dd;
}

.page-reports .rp-stat-card-verified {
  background: #f7e7f5;
  border-color: #eed4eb;
}

.page-reports .rp-stat-card-incomplete {
  background: #e9f0fb;
  border-color: #d2dff5;
}

.page-reports .rp-stat-card-approval {
  border-color: #69b483;
}

.page-reports .rp-stat-title {
  font-size: 0.7rem;
  font-weight: 700;
  color: #4b5563;
  margin-bottom: 4px;
}

.page-reports .rp-stat-subtitle {
  font-size: 0.84rem;
  color: #434a54;
  font-weight: 700;
  margin-bottom: 4px;
}

.page-reports .rp-stat-main-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.page-reports .rp-stat-number {
  font-size: 1.84rem;
  font-weight: 800;
  line-height: 1;
  color: #111827;
  letter-spacing: -0.02em;
}

.page-reports .rp-stat-card-approval .rp-stat-number {
  font-size: 1.56rem;
}

.page-reports .rp-mini-spark {
  width: 112px;
  position: relative;
}

.page-reports .rp-mini-spark svg {
  width: 100%;
  height: 48px;
  display: block;
}

.page-reports .rp-mini-growth {
  position: absolute;
  top: -4px;
  right: 6px;
  font-size: 0.7rem;
  color: #0d8a4a;
  font-weight: 700;
}

.page-reports .rp-stat-foot {
  margin-top: 6px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.64rem;
  color: #6b7280;
}

.page-reports .rp-stat-badge {
  background: #f8ede0;
  color: #7a5d3a;
  border: 1px solid #efd7b5;
  border-radius: 4px;
  padding: 1px 6px;
  font-weight: 700;
}

.page-reports .rp-stat-label-sm {
  font-size: 0.7rem;
  color: #d946be;
  font-weight: 700;
  margin-bottom: 4px;
}

.page-reports .rp-stat-sub-label {
  font-size: 0.79rem;
  color: #d946be;
  font-weight: 700;
  margin-bottom: 8px;
}

.page-reports .rp-stat-card-incomplete .rp-stat-label-sm,
.page-reports .rp-stat-card-incomplete .rp-stat-sub-label {
  color: #2563eb;
}

.page-reports .rp-stat-note {
  margin-top: 6px;
  font-size: 0.62rem;
  font-weight: 600;
  color: #7a8392;
}

.page-reports .rp-stat-card-approval .rp-stat-title,
.page-reports .rp-stat-card-approval .rp-stat-subtitle,
.page-reports .rp-stat-card-approval .rp-stat-note {
  color: #0d7a43;
}

.page-reports .rp-controls-row {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  width: 100%;
  min-width: 0;
}

.page-reports .rp-filter-group {
  flex: 0 0 184px;
  max-width: 184px;
  min-width: 184px;
  min-height: 0;
}

.page-reports .rp-filter-group .app-filter-select {
  width: 100%;
  max-width: 100%;
  min-height: 34px;
  box-sizing: border-box;
}

.page-reports .rp-export-btn {
  min-width: 110px;
  height: 34px;
  border-radius: 3px;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1;
}

.page-reports .rp-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(0, 2.2fr);
  gap: 10px;
}

.page-reports .rp-main-grid .rp-panel {
  min-height: 430px;
}

.page-reports .rp-panel {
  background: #fff;
  border: 1px solid #d6dde4;
  border-radius: 8px;
}

.page-reports .rp-table-wrap {
  overflow-x: auto;
  overflow-y: auto;
  max-height: 430px;
}

.page-reports .rp-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.page-reports .rp-table thead th {
  text-align: left;
  font-size: 0.78rem;
  color: #1f2937;
  font-weight: 500;
  padding: 12px 12px;
  border-bottom: 1px solid #e5e7eb;
  position: sticky;
  top: 0;
  z-index: 2;
  background: #fff;
}

.page-reports .rp-table tbody td {
  padding: 11px 12px;
  font-size: 0.75rem;
  color: #6b7280;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: top;
}

.page-reports .rp-table tbody tr:last-child td {
  border-bottom: none;
}

.page-reports .rp-table th:nth-child(1),
.page-reports .rp-table td:nth-child(1) {
  width: 26%;
}

.page-reports .rp-table th:nth-child(2),
.page-reports .rp-table td:nth-child(2) {
  width: 14%;
}

.page-reports .rp-table th:nth-child(3),
.page-reports .rp-table td:nth-child(3) {
  width: 31%;
}

.page-reports .rp-table th:nth-child(4),
.page-reports .rp-table td:nth-child(4) {
  width: 20%;
  white-space: nowrap;
}

.page-reports .rp-chart-panel {
  padding: 10px 10px 12px;
  display: flex;
  flex-direction: column;
}

.page-reports .rp-missing-chart {
  width: 100%;
  min-height: 0;
  flex: 1;
}

.page-reports .rp-missing-chart .apexcharts-data-labels text {
  fill: #1f2937 !important;
}

.page-reports .rp-chart-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #2f3642;
  margin-bottom: 10px;
}

.page-reports .rp-bars {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.page-reports .rp-bar-row {
  display: grid;
  grid-template-columns: minmax(0, 112px) minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.page-reports .rp-bar-label {
  font-size: 0.73rem;
  color: #4b5563;
}

.page-reports .rp-bar-track {
  width: 100%;
  height: 12px;
  border-radius: 999px;
  background: #eef2f7;
  overflow: hidden;
  border: 1px solid #dbe3ee;
}

.page-reports .rp-bar-fill {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #3f7fde 0%, #5a94e8 100%);
  width: 0;
  transition: width 0.45s ease;
}

.page-reports .rp-bar-value {
  font-size: 0.62rem;
  color: #94a3b8;
  white-space: nowrap;
}

.page-reports .rp-axis {
  margin-top: 10px;
  border-top: 1px dashed #d3d8df;
  padding-top: 4px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.58rem;
  color: #94a3b8;
  gap: 4px;
}

.page-reports .rp-axis-label {
  text-align: center;
  margin-top: 5px;
  font-size: 0.62rem;
  color: #9ca3af;
}

.page-reports .rp-timeline-panel {
  padding: 10px 12px;
}

.page-reports .rp-timeline-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.page-reports .rp-timeline-head .rp-chart-title {
  margin-bottom: 0;
}

.page-reports #rpTimelineRange {
  width: 122px;
  min-width: 122px;
  height: 34px;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #374151;
  background: #fff;
}

.page-reports .rp-approval-card {
  border: 1px solid #d6dde4;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  padding: 12px 14px 8px;
}

.page-reports .rp-approval-chart {
  width: 100%;
  min-height: 300px;
}

.page-reports .rp-approval-chart .apexcharts-tooltip {
  border: 1px solid #d6dde4 !important;
  background: #ffffff !important;
}

.page-reports .rp-approval-chart .apexcharts-tooltip-title {
  background: #f8fafc !important;
  border-bottom: 1px solid #e5e7eb !important;
}

.page-reports .rp-approval-chart .apexcharts-yaxis-title,
.page-reports .rp-approval-chart .apexcharts-xaxis-title {
  fill: #6b7280 !important;
}

.page-reports .rp-export-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1200;
}

.page-reports .rp-export-modal {
  width: min(92vw, 560px);
  background: #fff;
  border-radius: 10px;
  border: 1px solid #d1d5db;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.18);
  padding: 52px 26px 62px;
}

.page-reports .rp-export-title {
  text-align: center;
  letter-spacing: 0.34em;
  font-size: 1rem;
  font-weight: 800;
  color: #0d8a4a;
  margin-bottom: 22px;
}

.page-reports .rp-export-track {
  width: min(92%, 460px);
  margin: 0 auto;
  height: 16px;
  border-radius: 999px;
  background: #edf7f0;
  border: 1.4px solid #4eaf77;
  overflow: hidden;
}

.page-reports .rp-export-progress {
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #0d8a4a 0%, #23b368 100%);
  transition: width 0.08s linear;
}

.page-reports .rp-toast {
  position: fixed;
  top: 76px;
  right: 26px;
  z-index: 1300;
  min-width: 260px;
  max-width: 360px;
  background: #d5f1d9;
  color: #137a3f;
  border: 1px solid #9dd8aa;
  border-radius: 6px;
  padding: 12px 14px;
  font-size: 0.85rem;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.page-reports .rp-toast.show {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1250px) {
  .page-reports .rp-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-reports .rp-main-grid {
    grid-template-columns: 1fr;
  }

  .page-reports .rp-main-grid .rp-panel {
    min-height: auto;
  }

  .page-reports .rp-table-wrap {
    max-height: 380px;
  }
}

@media (max-width: 780px) {
  .page-reports .rp-stats-grid {
    grid-template-columns: 1fr;
  }

  .page-reports .rp-controls-row {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .page-reports .rp-filter-group,
  .page-reports .rp-export-btn {
    flex: 0 0 auto;
    max-width: none;
    min-width: 0;
    width: 100%;
  }

  .page-reports .rp-bar-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  .page-reports .rp-bar-value {
    justify-self: end;
  }

  .page-reports .rp-toast {
    right: 12px;
    left: 12px;
    max-width: none;
  }

  .page-reports .rp-timeline-head {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .page-reports #rpTimelineRange {
    width: 100%;
    min-width: 0;
  }
}

/* ===== Services: Classroom & Faculty ===== */

.page-services-class-list .svc-top-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
  gap: 12px;
  align-items: stretch;
  margin-bottom: 12px;
}

.page-services-class-list .svc-search-card,
.page-services-class-list .svc-config-card {
  background: #ecf5ee;
  border: 1px solid #d7e7db;
  border-radius: 4px;
  padding: 10px;
}

.page-services-class-list .svc-search-card .pf-search-wrap {
  width: 100%;
}

.page-services-class-list .svc-config-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: #0f7b43;
  margin-bottom: 6px;
}

.page-services-class-list .svc-config-grid {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 8px;
  align-items: flex-end;
}

.page-services-class-list .svc-config-inline-label {
  display: block;
  margin-bottom: 4px;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #3f6150;
  font-weight: 700;
}

.page-services-class-list .svc-actions-row {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-bottom: 8px;
}

.page-services-class-list .svc-btn-pdf,
.page-services-class-list .svc-btn-excel {
  border: none;
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
}

.page-services-class-list .svc-btn-pdf {
  background: #ff4b4b;
}

.page-services-class-list .svc-btn-excel {
  background: #0f7b43;
}

.page-services-class-list .svc-link {
  color: #0f7b43;
  text-decoration: none;
  font-weight: 600;
}

.page-services-class-list .svc-link:hover {
  text-decoration: underline;
}

.svc-selected-info {
  background: #ecf5ee;
  border: 1px solid #d7e7db;
  border-radius: 4px;
  padding: 10px;
  margin-bottom: 10px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 16px;
  font-size: 0.8rem;
  color: #2f4c3c;
}

.page-services-class-list .svc-table {
  min-width: 860px;
}

/* Class List top controls: mirror Alumni Tracker Search + System Configuration */

.page-services-class-list .at-top-row {
  display: grid;
  grid-template-columns: minmax(230px, 1fr) minmax(430px, 1.25fr);
  gap: 8px;
  align-items: start;
  border: 1px solid #d7dde2;
  border-radius: 10px;
  background: #f8fafb;
  padding: 10px;
}

.page-services-class-list .at-search-card,
.page-services-class-list .at-config-card {
  border: none;
  border-radius: 0;
  background: transparent;
  padding: 0;
  box-shadow: none;
}

.page-services-class-list .at-search-block {
  min-width: 0;
}

.page-services-class-list .at-search-wrap {
  max-width: 100%;
  margin-top: 2px;
}

.page-services-class-list .at-config-card {
  padding-left: 10px;
  border-left: 1px solid #d2d9df;
}

.page-services-class-list .at-config-title {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #4b4f56;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.page-services-class-list .at-config-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(210px, 1fr) auto;
  gap: 6px;
  align-items: center;
}

.page-services-class-list .at-config-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.page-services-class-list .at-config-inline-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.page-services-class-list .at-config-item .app-filter-select {
  min-width: 0;
}

.page-services-class-list .at-config-action {
  display: flex;
  align-items: flex-end;
}

.page-services-class-list .at-btn-set {
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 0.75rem;
  min-width: 52px;
}

.page-services-attendance .svc-filter-panel {
  background: #f8fbf9;
  border: 1px solid #dbe8e0;
  border-radius: 10px;
  padding: 14px;
  margin-bottom: 14px;
}

.page-services-attendance .svc-filter-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr)) auto;
  gap: 10px 12px;
  align-items: flex-end;
}

.page-services-attendance .svc-filter-item {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.page-services-attendance .svc-filter-item .app-filter-select {
  min-height: 36px;
  width: 100%;
}

.page-services-attendance .svc-filter-professor {
  min-width: 0;
  max-width: none;
}

.page-services-attendance .svc-filter-action {
  display: flex;
  align-items: flex-end;
}

.page-services-attendance .svc-filter-action .pf-btn-new {
  min-width: 96px;
  min-height: 36px;
}

.page-services-attendance .att-summary-row {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin: 4px 0 10px;
  font-size: 0.76rem;
  color: #2f4c3c;
  font-weight: 700;
}

.page-services-attendance .att-assignment-wrap {
  margin-bottom: 16px;
}

.page-services-attendance .att-assignment-empty {
  display: none;
  padding: 12px;
  color: #666;
  border: 1px solid #d9d9d9;
  border-top: 0;
  background: #fff;
}

.page-services-attendance #attResult {
  display: none;
}

.page-services-attendance .att-summary-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid #c7d8cf;
  border-radius: 8px;
  background: linear-gradient(180deg, #f7fcf9 0%, #eef8f2 100%);
  margin-bottom: 10px;
}

.page-services-attendance .att-summary-meta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.page-services-attendance .att-summary-pill {
  background: #ffffff;
  border: 1px solid #d3e3da;
  border-radius: 6px;
  padding: 8px 12px;
  min-width: 220px;
  color: #234;
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.page-services-attendance .att-summary-label {
  color: #006837;
  letter-spacing: 0.02em;
  font-size: 0.73rem;
  text-transform: uppercase;
  font-weight: 700;
}

.page-services-attendance .att-summary-value {
  color: #1a2a21;
  font-size: 0.96rem;
  font-weight: 700;
}

.page-services-attendance .att-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #ffffff;
  border: 1.5px solid #c9d8cf;
  border-radius: 8px;
  padding: 7px 14px;
  min-height: 34px;
  font-size: 0.79rem;
  font-weight: 600;
  color: #444;
  cursor: pointer;
}

.page-services-attendance .att-back-btn:hover {
  border-color: #006837;
  color: #006837;
  background: #f2faf5;
}

.page-services-attendance .att-table {
  width: 100%;
  min-width: 1120px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
}

.page-services-attendance .att-col-index {
  width: 46px;
}

.page-services-attendance .att-col-name {
  width: 240px;
}

.page-services-attendance .att-col-metric {
  width: 62px;
}

.page-services-attendance .att-col-summary {
  width: 150px;
}

.page-services-attendance .att-table thead {
  background: #006837;
}

.page-services-attendance .att-table thead th {
  background: #006837;
  color: #fff;
  border: none;
  text-align: center !important;
  vertical-align: middle;
  white-space: nowrap;
  letter-spacing: 0.2px;
  padding: 8px 8px;
  text-transform: uppercase;
}

.page-services-attendance .att-table .att-thead-top th {
  font-size: 0.78rem;
  font-weight: 600;
  padding: 8px 12px;
}

.page-services-attendance .att-table .att-thead-top th[colspan="2"] {
  border-bottom: 1.5px solid rgba(255, 255, 255, 0.32);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.35px;
  padding-bottom: 6px;
  padding-left: 0;
  padding-right: 0;
  text-align: center !important;
}

.page-services-attendance .att-table .att-thead-sub th {
  font-size: 0.71rem !important;
  font-weight: 500 !important;
  color: rgba(255, 255, 255, 0.86) !important;
  padding: 4px 0 8px !important;
  text-align: center !important;
  letter-spacing: 0 !important;
  line-height: 1;
}

.page-services-attendance .att-table .att-thead-sub .att-sub-metric {
  width: 62px;
  min-width: 62px;
  box-sizing: border-box;
  padding-left: 0 !important;
  padding-right: 0 !important;
  font-variant-numeric: tabular-nums;
}

.page-services-attendance .att-table tbody td:nth-child(n+3):nth-child(-n+12) {
  width: 62px;
  min-width: 62px;
  padding-left: 0;
  padding-right: 0;
  text-align: center !important;
  font-variant-numeric: tabular-nums;
}

.page-services-attendance .att-table .att-thead-sub th:nth-child(2n) {
  border-right: none;
}

.page-services-attendance .att-table .att-thead-sub th:last-child {
  border-right: none;
}

.page-services-attendance .att-table .att-name-head,
.page-services-attendance .att-table tbody td:nth-child(2) {
  text-align: left !important;
}

.page-services-attendance .att-table tbody td:nth-child(2) {
  color: #0f7b43;
}

.page-services-attendance .att-table tbody td:nth-child(4),
.page-services-attendance .att-table tbody td:nth-child(6),
.page-services-attendance .att-table tbody td:nth-child(8),
.page-services-attendance .att-table tbody td:nth-child(10),
.page-services-attendance .att-table tbody td:nth-child(12) {
  border-right: none;
}

.page-services-attendance .att-table tbody td {
  font-size: 0.82rem;
  padding: 10px 8px;
  text-align: center;
  vertical-align: middle;
  color: #333;
  border-bottom: 1px solid #c0c0c0;
}

.page-services-attendance .att-table tbody tr:last-child td {
  border-bottom: none;
}

.page-services-attendance .att-table tbody tr:hover {
  background-color: #f0f7f0;
}

.page-services-attendance .att-table tbody td:nth-child(2) {
  font-weight: 600;
  color: #0f7b43;
}

.page-services-attendance .att-table th:last-child,
.page-services-attendance .att-table td:last-child {
  width: 150px;
  min-width: 150px;
  white-space: nowrap;
}

@media (max-width: 1000px) {
  .page-services-class-list .svc-top-row {
    grid-template-columns: 1fr;
  }

  .page-services-class-list .svc-config-grid {
    grid-template-columns: 1fr 1fr;
  }

  .page-services-class-list .svc-config-action {
    grid-column: 1/-1;
  }

  .page-services-attendance .svc-filter-grid {
    grid-template-columns: 1fr 1fr;
  }

  .page-services-attendance .svc-filter-action {
    grid-column: 1/-1;
    justify-content: flex-end;
  }

  .page-services-attendance .att-table {
    min-width: 1020px;
  }

  .page-services-attendance .att-col-name {
    width: 200px;
  }

  .page-services-attendance .att-col-metric {
    width: 56px;
  }
}

@media (max-width: 640px) {
  .page-services-attendance .svc-filter-grid {
    grid-template-columns: 1fr;
  }

  .page-services-attendance .svc-filter-panel {
    padding: 12px;
  }

  .page-services-attendance .svc-filter-action,
  .page-services-attendance .svc-filter-action .pf-btn-new {
    width: 100%;
  }

  .page-services-attendance .svc-filter-action .pf-btn-new {
    min-height: 36px;
  }

  .page-services-attendance .att-table {
    min-width: 980px;
  }

  .page-services-attendance .att-col-name {
    width: 180px;
  }

  .page-services-class-list .at-top-row {
    grid-template-columns: 1fr;
  }

  .page-services-class-list .at-search-wrap {
    max-width: 100%;
  }

  .page-services-class-list .at-search-card,
  .page-services-class-list .at-config-card {
    padding: 0;
  }

  .page-services-class-list .at-config-card {
    padding-left: 0;
    border-left: none;
    border-top: 1px solid #d2d9df;
    padding-top: 8px;
  }
}

@media (max-width: 768px) {
  .page-services-class-list .svc-actions-row {
    flex-direction: column;
  }

  .page-services-class-list .svc-btn-pdf,
  .page-services-class-list .svc-btn-excel {
    width: 100%;
  }

  .svc-selected-info {
    grid-template-columns: 1fr;
  }

  .page-services-class-list .at-config-grid {
    grid-template-columns: 1fr;
  }

  .page-services-class-list .at-config-item {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .page-services-class-list .at-config-action {
    width: 100%;
    justify-content: stretch;
  }

  .page-services-class-list .at-btn-set {
    width: 100%;
    min-height: 36px;
    border-radius: 8px;
    font-size: 0.84rem;
  }

  .page-services-attendance .att-summary-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ===== Services: Grading & Academic ===== */

.page-services-grading-academic .ga-page {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.page-services-grading-academic .ga-card {
  background: #fff;
  border: 1px solid #d6dde4;
  border-radius: 8px;
  padding: 10px;
}

.page-services-grading-academic .ga-filter-card {
  padding: 10px 10px 8px;
}

.page-services-grading-academic .ga-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.page-services-grading-academic .ga-toolbar-end {
  justify-content: flex-end;
}

.page-services-grading-academic .ga-search-wrap {
  min-width: 260px;
  max-width: 360px;
}

.page-services-grading-academic .ga-btn:not(.pf-btn-new) {
  border: none;
  border-radius: 6px;
  min-height: 32px;
  padding: 7px 12px;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: transform 0.12s ease, filter 0.2s ease;
}

.page-services-grading-academic .ga-btn:not(.pf-btn-new):hover {
  transform: translateY(-1px);
  filter: brightness(0.97);
}

.page-services-grading-academic .pf-btn-new.ga-btn {
  min-height: 34px;
  border-radius: 6px;
  font-size: 0.78rem;
  padding: 7px 14px;
}

.page-services-grading-academic .ga-btn-primary {
  background: #006837;
  color: #fff;
}

.page-services-grading-academic .ga-btn-primary:hover {
  background: #005a2e;
}

.page-services-grading-academic .ga-btn-danger {
  background: #f45b5b;
  color: #fff;
}

.page-services-grading-academic .ga-btn-muted {
  background: #e5e7eb;
  color: #374151;
}

.page-services-grading-academic .ga-toolbar {
  gap: 10px;
}

.page-services-grading-academic .ga-toolbar .ga-search-wrap.sf-search-box {
  width: min(460px, 100%);
  max-width: 460px;
}

.page-services-grading-academic .ga-trans-table {
  table-layout: fixed;
  min-width: 980px;
}

.page-services-grading-academic .ga-trans-table thead th {
  vertical-align: middle;
}

.page-services-grading-academic .ga-trans-table .ga-trans-head-top th[colspan] {
  border-bottom: 1.5px solid rgba(255, 255, 255, 0.35);
  text-align: center;
  letter-spacing: 0.03em;
}

.page-services-grading-academic .ga-trans-table .ga-trans-head-sub th {
  font-size: 0.72rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.88);
  text-align: center;
  padding-top: 5px;
  padding-bottom: 9px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-head-top th[rowspan="2"] {
  padding-top: 10px;
  padding-bottom: 10px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-sy {
  width: 95px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-term {
  width: 84px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-program {
  width: 100px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-initial {
  width: 90px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-grade {
  width: 120px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-code {
  width: 80px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-remarks {
  width: 140px;
}

.page-services-grading-academic .ga-trans-table .ga-trans-col-action {
  width: 82px;
}

.page-services-grading-academic .ga-trans-table thead th,
.page-services-grading-academic .ga-trans-table tbody td {
  text-align: center;
  white-space: nowrap;
  padding-left: 8px;
  padding-right: 8px;
}

.page-services-grading-academic .ga-trans-table tbody td:nth-child(9) {
  text-align: center;
  padding-left: 0;
}

.page-services-grading-academic .ga-trans-table td.ga-state-pass,
.page-services-grading-academic .ga-trans-table td.ga-state-fail {
  text-align: center;
}

.page-services-grading-academic .ga-trans-table td.ga-state-pass {
  color: #28a745;
  font-weight: 700;
}

.page-services-grading-academic .ga-trans-table td.ga-state-fail {
  color: #dc3545;
  font-weight: 700;
}

.page-services-grading-academic .ga-trans-chip {
  display: inline-block;
  min-width: 40px;
  text-align: center;
  background: #e5e7eb;
  color: #374151;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 0.74rem;
  line-height: 1.2;
}

.page-services-grading-academic .ga-table-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
  color: #355649;
  font-size: 0.83rem;
  font-weight: 600;
}

.page-services-grading-academic .ga-trans-modal-overlay {
  display: none;
}

.page-services-grading-academic .ga-trans-modal-box {
  max-width: 640px;
  padding: 25px;
}

.page-services-grading-academic .ga-trans-modal-box--delete {
  min-width: 300px;
}

.page-services-grading-academic .ga-trans-modal-title {
  margin-bottom: 20px;
}

.page-services-grading-academic .ga-trans-modal-title--delete {
  color: #c0392b;
}

.page-services-grading-academic .ga-trans-delete-text {
  font-size: 0.88rem;
  color: #444;
  margin-bottom: 20px;
  text-align: center;
}

.page-services-grading-academic .ga-trans-modal-panel {
  border-radius: 8px;
  padding: 15px;
  margin-bottom: 16px;
}

.page-services-grading-academic .ga-trans-modal-panel--standard {
  background: #fff;
  border: 1px solid #e2e8f0;
}

.page-services-grading-academic .ga-trans-modal-panel--accent {
  background: #f8fbf9;
  border: 1px solid #cce3d6;
}

.page-services-grading-academic .ga-trans-modal-panel .tm-modal-grid,
.page-services-grading-academic .ga-trans-modal-panel .tm-modal-grid-3 {
  margin-top: 0;
}

.page-services-grading-academic .ga-trans-modal-panel__label {
  text-align: center;
  display: block;
  margin-bottom: 12px;
  color: #006837;
}

.page-services-grading-academic .ga-trans-modal-actions {
  margin-top: 25px;
  gap: 12px;
}

.page-services-grading-academic .ga-trans-modal-actions--center {
  justify-content: center;
}

.page-services-grading-academic .ga-trans-btn-cancel {
  padding: 10px 20px;
}

.page-services-grading-academic .ga-trans-btn-save {
  padding: 10px 24px;
  background: #006837;
}

.page-services-grading-academic .ga-trans-btn-save:hover {
  background: #005a2e;
}

.page-services-grading-academic .ga-trans-btn-save--danger {
  background: #c0392b;
}

.page-services-grading-academic .ga-trans-btn-save--danger:hover {
  background: #a93226;
}

.page-services-grading-academic .tm-modal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 15px;
}

.page-services-grading-academic .tm-modal-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 15px;
}

.page-services-grading-academic .tm-modal-initial-group {
  grid-column: span 2;
  background: #f8f9fa;
  padding: 12px 16px;
  border-radius: 6px;
  border: 1px solid #e2e8f0;
}

.page-services-grading-academic .tm-modal-initial-group .req-modal-label {
  margin-bottom: 12px;
  display: block;
  color: #555;
}

.page-services-grading-academic .tm-modal-initial-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.page-services-grading-academic .tm-modal-grid .tm-modal-remarks {
  margin-left: 0;
}

.page-services-grading-academic .tm-modal-grid .rg-listbox,
.page-services-grading-academic .tm-modal-grid-3 .rg-listbox,
.page-services-grading-academic .tm-modal-initial-grid .rg-listbox {
  width: 100%;
}

.page-services-grading-academic .tm-modal-field-group--full {
  grid-column: 1/-1;
}

.page-services-grading-academic #tmTable td:first-child .apst-action-btn {
  margin: 0 auto;
}

.page-services-grading-academic .ga-toolbar .ga-btn {
  min-width: 0;
}

@media (max-width: 720px) {
  .page-services-grading-academic .ga-toolbar .ga-search-wrap.sf-search-box,
  .page-services-grading-academic .ga-toolbar .ga-btn {
    width: 100%;
  }

  .page-services-grading-academic .tm-modal-grid,
  .page-services-grading-academic .tm-modal-grid-3,
  .page-services-grading-academic .tm-modal-initial-grid {
    grid-template-columns: 1fr;
  }

  .page-services-grading-academic .tm-modal-initial-group {
    grid-column: 1/-1;
  }
}

.page-services-grading-academic .ga-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 8px;
}

.page-services-grading-academic .ga-filter-grid-periods {
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  align-items: flex-end;
}

.page-services-grading-academic .ga-filter-grid-periods-lite {
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  align-items: flex-end;
}

.page-services-grading-academic .ga-filter-grid-periods .ga-filter-placeholder {
  min-height: 1px;
}

.page-services-grading-academic .ga-filter-action-btn {
  width: 100%;
  min-height: 32px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #d1d5db;
  color: #ffffff;
  font-size: 0.69rem;
  font-weight: 700;
  line-height: 1.15;
  padding: 6px 8px;
  cursor: not-allowed;
}

.page-services-grading-academic .ga-filter-inline-check {
  min-height: 30px;
  display: flex;
  align-items: center;
}

.page-services-grading-academic .ga-filter-inline-action {
  min-height: 30px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.page-services-grading-academic .ga-filter-update-btn {
  width: 100%;
  min-height: 32px;
}

.page-services-grading-academic .ga-filter-grid-compact {
  grid-template-columns: repeat(6, minmax(110px, 1fr));
}

.page-services-grading-academic #gcTable th,
.page-services-grading-academic #gcTable td {
  white-space: nowrap;
  vertical-align: middle;
}

.page-services-grading-academic #gcTable .apst-dropdown {
  position: fixed;
}

.page-services-grading-academic .ga-filter-grid-deficiency {
  grid-template-columns: 2.2fr repeat(3, minmax(140px, 1fr));
  align-items: flex-end;
}

.page-services-grading-academic .ga-filter-search {
  display: flex;
  align-items: flex-end;
}

.page-services-grading-academic .ga-search-wrap-wide {
  max-width: none;
  width: 100%;
}

.page-services-grading-academic .df-detail-toolbar {
  margin-bottom: 20px;
}

.page-services-grading-academic .df-list-table-wrap {
  margin-top: 14px;
}

.page-services-grading-academic .df-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-color: #d1d5db;
  background: #fff;
}

.page-services-grading-academic .df-back-btn:hover {
  border-color: #0f7b43;
}

.page-services-grading-academic .df-students-table th,
.page-services-grading-academic .df-students-table td {
  vertical-align: middle;
}

.page-services-grading-academic .df-col-action,
.page-services-grading-academic .df-col-index,
.page-services-grading-academic .df-col-program,
.page-services-grading-academic .df-col-year,
.page-services-grading-academic .df-col-completed,
.page-services-grading-academic .df-col-action-detail {
  text-align: center;
}

.page-services-grading-academic .df-col-action {
  width: 76px;
}

.page-services-grading-academic .df-col-index {
  width: 58px;
}

.page-services-grading-academic .df-col-program {
  width: 170px;
}

.page-services-grading-academic .df-col-year {
  width: 120px;
}

.page-services-grading-academic .df-col-completed {
  width: 106px;
}

.page-services-grading-academic #dfStudentsTable th,
.page-services-grading-academic #dfStudentsTable td {
  text-align: center;
}

.page-services-grading-academic .df-empty-row {
  text-align: center;
  color: #6b7280;
}

.page-services-grading-academic .df-student-link {
  color: #1f2937;
  font-weight: 600;
  text-decoration: none;
}

.page-services-grading-academic .df-student-link:hover,
.page-services-grading-academic .df-student-link:focus {
  color: #0f7b43;
  text-decoration: underline;
}

.page-services-grading-academic .df-selected-info {
  margin-top: 10px;
  margin-bottom: 20px;
}

.page-services-grading-academic .df-check-center {
  justify-content: center;
}

.page-services-grading-academic #dfStudentsTable td:first-child,
.page-services-grading-academic #dfTable td:last-child {
  position: relative;
}

.page-services-grading-academic #dfStudentsTable td:first-child .apst-action-btn,
.page-services-grading-academic #dfTable td:last-child .apst-action-btn {
  margin: 0 auto;
}

.page-services-grading-academic #dfStudentsTable .apst-dropdown {
  left: calc(50% + 21px);
  right: auto;
  top: 50%;
  transform: translateY(-50%);
}

.page-services-grading-academic #dfTable .apst-dropdown {
  left: auto;
  right: calc(100% + 6px);
  top: 50%;
  transform: translateY(-50%);
}

.page-services-grading-academic #dfStudentsTable .apst-dropdown.drop-up,
.page-services-grading-academic #dfTable .apst-dropdown.drop-up {
  top: auto;
  bottom: 0;
  transform: none;
}

.page-services-grading-academic .apst-action-btn.apst-action-btn-eye {
  gap: 0;
  width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 999px;
  border-color: #9bcfb3;
  background: #ecf9f1;
  box-shadow: 0 1px 2px rgba(6, 78, 59, 0.16);
  transition: transform 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.page-services-grading-academic .apst-action-btn.apst-action-btn-eye span {
  display: none;
}

.page-services-grading-academic .apst-action-btn.apst-action-btn-eye svg {
  color: #0f7b43;
}

.page-services-grading-academic .apst-action-btn.apst-action-btn-eye:hover,
.page-services-grading-academic .apst-action-btn.apst-action-btn-eye:focus {
  background: #dbf2e5;
  border-color: #6bb38b;
  transform: translateY(-1px);
}

.page-services-grading-academic .df-student-modal-box {
  max-width: 500px;
}

.page-services-grading-academic .df-student-modal-fields {
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 14px;
}

.page-services-grading-academic .df-student-modal-actions {
  margin-top: 20px;
}

.page-services-grading-academic .df-modal-help {
  margin: 0;
  color: #4b5563;
  font-size: 0.82rem;
}

.page-services-grading-academic .df-student-search-wrap .smrg-search-dropdown {
  top: calc(100% + 4px);
}

.page-services-grading-academic .df-deficiency-modal-box {
  max-width: 620px;
}

.page-services-grading-academic .df-modal-stack-gap {
  margin-top: 10px;
}

.page-services-grading-academic .df-summary-modal-box {
  max-width: 500px;
  text-align: center;
}

.page-services-grading-academic .df-summary-title {
  margin-bottom: 5px;
}

.page-services-grading-academic .df-summary-student {
  color: #6b7280;
  font-size: 0.95rem;
  margin: 0 0 20px;
}

.page-services-grading-academic .df-summary-body {
  background: #fafafa;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 20px;
  text-align: left;
}

.page-services-grading-academic .df-summary-list {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.9rem;
  color: #444;
}

.page-services-grading-academic .df-summary-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.page-services-grading-academic .df-summary-item.has-top-border {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #eaeaea;
}

.page-services-grading-academic .df-summary-status {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 12px;
}

.page-services-grading-academic .df-summary-status.is-pending {
  color: #d93025;
  background: #ffe5e5;
}

.page-services-grading-academic .df-summary-status.is-completed {
  color: #0b7a39;
  background: #ddf8e8;
}

.page-services-grading-academic .df-summary-empty {
  margin: 0;
  color: #888;
  font-style: italic;
}

.page-services-grading-academic .df-summary-actions {
  justify-content: center;
}

.page-services-grading-academic .df-summary-manage-btn {
  background: #006837;
}

.page-services-grading-academic .df-delete-modal-box {
  min-width: 300px;
}

.page-services-grading-academic .df-delete-modal-title {
  color: #c0392b;
}

.page-services-grading-academic .df-delete-modal-text {
  font-size: 0.88rem;
  color: #444;
  margin-bottom: 20px;
  text-align: center;
}

.page-services-grading-academic .df-delete-modal-actions {
  justify-content: center;
}

.page-services-grading-academic .df-delete-modal-confirm {
  background: #c0392b;
}

.page-services-grading-academic .ga-inline-actions {
  margin-top: 8px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.page-services-grading-academic .ga-inline-actions-deficiency {
  justify-content: space-between;
  gap: 10px;
}

.page-services-grading-academic .ga-inline-btns {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.page-services-grading-academic .ga-choice-group {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.page-services-grading-academic .ga-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.74rem;
  color: #4b5563;
}

.page-services-grading-academic .ga-check input[type=radio],
.page-services-grading-academic .ga-check input[type=checkbox] {
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: #0f7b43;
}

.page-services-grading-academic .ga-check input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  width: 16px;
  height: 16px;
  border: 2px solid #0a813c;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  position: relative;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.page-services-grading-academic .ga-check input[type=checkbox]:checked {
  background: #0a813c;
  border-color: #0a813c;
}

.page-services-grading-academic .ga-check input[type=checkbox]:checked::after {
  content: "\2713";
  position: absolute;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -56%);
}

.page-services-grading-academic .ga-check input[type=checkbox]:hover {
  border-color: #004d29;
  box-shadow: 0 0 0 3px rgba(10, 129, 60, 0.12);
}

.page-services-grading-academic .ga-check-tight {
  white-space: nowrap;
  font-size: 0.7rem;
}

.page-services-grading-academic .ga-check-pill {
  border: 1px solid #d7dde6;
  border-radius: 999px;
  padding: 4px 10px;
  background: #fff;
}

.page-services-grading-academic .ga-label {
  display: block;
  font-size: 0.62rem;
  font-weight: 800;
  color: #0f7b43;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 3px;
}

.page-services-grading-academic .ga-input,
.page-services-grading-academic .ga-page .app-filter-select {
  width: 100%;
  min-height: 30px;
  border: 1px solid #d2d7de;
  border-radius: 5px;
  padding: 5px 8px;
  font-size: 0.73rem;
  color: #374151;
  background: #fff;
}

.page-services-grading-academic .ga-input[type=date],
.page-services-grading-academic .ga-input[type=time] {
  font-family: inherit;
}

.page-services-grading-academic .ga-input:focus,
.page-services-grading-academic .ga-page .app-filter-select:focus {
  outline: none;
  border-color: #0f7b43;
  box-shadow: 0 0 0 2px rgba(15, 123, 67, 0.15);
}

.page-services-grading-academic .ga-table-wrap {
  overflow: auto;
}

.page-services-grading-academic .ga-table-wrap-shell {
  background: #fff;
  border: 1px solid #d6dde4;
  border-radius: 8px;
  padding: 2px;
}

.page-services-grading-academic .ga-table-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
}

.page-services-grading-academic .ga-table-head-between {
  justify-content: space-between;
}

.page-services-grading-academic .ga-table-head-end {
  justify-content: flex-end;
}

.page-services-grading-academic .ga-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  min-width: 880px;
}

.page-services-grading-academic .ga-table thead th {
  background: #006837;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid #0c7b42;
}

.page-services-grading-academic .ga-table tbody td {
  padding: 11px 14px;
  font-size: 0.8rem;
  color: #333;
  border-bottom: 1px solid #c0c0c0;
  vertical-align: middle;
}

.page-services-grading-academic .ga-table tbody tr:hover {
  background: #f9fffe;
}

.page-services-grading-academic .ga-table-compact tbody td,
.page-services-grading-academic .ga-table-compact thead th {
  white-space: nowrap;
}

.page-services-grading-academic .ga-actions-cell {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}

.page-services-grading-academic .ga-icon-btn {
  border: 1px solid #d7dde6;
  background: #fff;
  color: #1f2937;
  border-radius: 5px;
  min-height: 24px;
  padding: 3px 7px;
  font-size: 0.64rem;
  font-weight: 700;
  cursor: pointer;
}

.page-services-grading-academic .ga-icon-btn-action {
  min-width: 26px;
  padding: 3px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-services-grading-academic .ga-icon-btn-action svg {
  width: 14px;
  height: 14px;
  fill: currentColor;
}

.page-services-grading-academic .ga-icon-btn:hover {
  border-color: #0f7b43;
  color: #0f7b43;
}

.page-services-grading-academic .ga-icon-btn-danger {
  color: #b91c1c;
}

.page-services-grading-academic .ga-icon-btn-danger:hover {
  border-color: #ef4444;
  color: #ef4444;
}

.page-services-grading-academic .ga-state-pass {
  color: #0f7b43;
  font-weight: 700;
}

.page-services-grading-academic .ga-state-fail {
  color: #b91c1c;
  font-weight: 700;
}

.page-services-grading-academic .ga-student-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px 14px;
  background: #f3faf4;
}

.page-services-grading-academic .ga-student-summary-card {
  background: #f8fbf9;
  border-color: #dbe8e0;
  gap: 10px;
}

.page-services-grading-academic .ga-student-summary-card .ga-student-item {
  background: #fff;
  border: 1px solid #dbe8e0;
  border-radius: 6px;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.page-services-grading-academic .ga-student-summary-card .ga-mini-label {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.page-services-grading-academic .ga-mini-label {
  color: #6b7280;
  font-size: 0.68rem;
}

.page-services-grading-academic .ga-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(17, 24, 39, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1300;
  padding: 18px;
}

.page-services-grading-academic .ga-modal {
  width: min(760px, 96vw);
  max-height: 90vh;
  overflow: auto;
  background: #fff;
  border-radius: 10px;
  border: 1px solid #d6dde4;
  box-shadow: 0 20px 35px rgba(0, 0, 0, 0.24);
}

.page-services-grading-academic .ga-modal-sm {
  width: min(460px, 94vw);
}

.page-services-grading-academic .ga-modal-lg {
  width: min(880px, 96vw);
}

.page-services-grading-academic .ga-modal.ga-modal-danger {
  border-color: #fca5a5;
  box-shadow: 0 20px 35px rgba(185, 28, 28, 0.2);
}

.page-services-grading-academic .ga-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid #e5e7eb;
}

.page-services-grading-academic .ga-modal-head h3 {
  margin: 0;
  font-size: 0.9rem;
  color: #0f7b43;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-services-grading-academic .ga-modal.ga-modal-danger .ga-modal-head {
  background: #fff1f2;
  border-bottom-color: #fecaca;
}

.page-services-grading-academic .ga-modal.ga-modal-danger .ga-modal-head h3 {
  color: #b91c1c;
}

.page-services-grading-academic .ga-modal.ga-modal-danger .ga-help {
  color: #7f1d1d;
}

.page-services-grading-academic .ga-close {
  border: none;
  background: transparent;
  color: #6b7280;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.page-services-grading-academic .ga-modal-body {
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.page-services-grading-academic .ga-help {
  margin: 0;
  font-size: 0.8rem;
  color: #4b5563;
}

.page-services-grading-academic .ga-form-grid {
  display: grid;
  gap: 8px;
}

.page-services-grading-academic .ga-form-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-services-grading-academic .ga-form-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-services-grading-academic .ga-dual-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.page-services-grading-academic .ga-dual-col ul {
  margin: 0;
  list-style: none;
  border: 1px solid #d2d7de;
  border-radius: 6px;
  min-height: 120px;
  padding: 8px;
  background: #f8fafc;
}

.page-services-grading-academic .ga-dual-col li {
  font-size: 0.76rem;
  color: #374151;
  padding: 3px 0;
}

.page-services-grading-academic .ga-dual-controls {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.page-services-grading-academic .ga-mini-btn {
  border: none;
  border-radius: 5px;
  min-width: 32px;
  min-height: 24px;
  background: #ef4444;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
}

.page-services-grading-academic .ga-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 14px 14px;
}

.page-services-grading-academic .gs-modal-wide .ga-modal-head {
  justify-content: center;
  position: relative;
  padding-right: 44px;
}

.page-services-grading-academic .gs-modal-wide .ga-close {
  position: absolute;
  right: 14px;
  top: 9px;
}

.page-services-grading-academic .gs-modal-wide .ga-modal-body {
  padding: 16px 18px;
  gap: 12px;
}

.page-services-grading-academic .gs-modal-wide .ga-modal-actions {
  padding: 12px 18px 18px;
}

.page-services-grading-academic .gs-modal-form {
  width: min(560px, 94vw);
}

.page-services-grading-academic .gs-modal-add {
  width: min(680px, 95vw);
}

.page-services-grading-academic .gs-modal-add .ga-choice-group-periods {
  display: grid;
  grid-template-columns: repeat(2, minmax(130px, 1fr));
  gap: 8px 12px;
  margin-top: 4px;
}

.page-services-grading-academic .gs-modal-add .ga-choice-group-periods .ga-check {
  font-size: 0.78rem;
}

.page-services-grading-academic .gs-modal-form .ga-modal-head {
  justify-content: center;
  padding: 16px 18px 10px;
  border-bottom: 1px solid #d1d5db;
}

.page-services-grading-academic .gs-modal-form .ga-modal-head h3 {
  font-size: 1.02rem;
  letter-spacing: 0.12em;
}

.page-services-grading-academic .gs-modal-form .ga-modal-body {
  padding: 16px 20px;
  gap: 12px;
}

.page-services-grading-academic .gs-modal-form .ga-label {
  color: #374151;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
}

.page-services-grading-academic .gs-modal-form .ga-input {
  min-height: 38px;
  border-radius: 7px;
  font-size: 1rem;
}

.page-services-grading-academic .gs-modal-form textarea.ga-input {
  min-height: 78px;
  resize: vertical;
}

.page-services-grading-academic .gs-modal-form .ga-modal-actions {
  padding: 8px 20px 20px;
}

.page-services-grading-academic .gs-modal-form .ga-btn {
  min-height: 40px;
  min-width: 92px;
  border-radius: 8px;
  font-size: 1rem;
}

body.ga-modal-open {
  overflow: hidden;
}

@media (max-width: 1180px) {
  .page-services-grading-academic .ga-filter-grid {
    grid-template-columns: repeat(3, minmax(120px, 1fr));
  }

  .page-services-grading-academic .ga-filter-grid-periods {
    grid-template-columns: repeat(3, minmax(120px, 1fr));
  }

  .page-services-grading-academic .ga-filter-grid-periods-lite {
    grid-template-columns: repeat(3, minmax(120px, 1fr));
  }

  .page-services-grading-academic .ga-filter-grid-periods .ga-filter-placeholder {
    display: none;
  }

  .page-services-grading-academic .ga-filter-grid-compact {
    grid-template-columns: repeat(3, minmax(120px, 1fr));
  }

  .page-services-grading-academic .ga-filter-grid-deficiency {
    grid-template-columns: repeat(2, minmax(150px, 1fr));
  }
}

@media (max-width: 860px) {
  .page-services-grading-academic .ga-filter-grid,
  .page-services-grading-academic .ga-filter-grid-compact,
  .page-services-grading-academic .ga-form-grid-2,
  .page-services-grading-academic .ga-form-grid-3,
  .page-services-grading-academic .ga-student-summary {
    grid-template-columns: 1fr;
  }

  .page-services-grading-academic .gs-modal-add .ga-choice-group-periods {
    grid-template-columns: 1fr;
  }

  .page-services-grading-academic .ga-dual-list {
    grid-template-columns: 1fr;
  }

  .page-services-grading-academic .ga-dual-controls {
    flex-direction: row;
    justify-content: center;
  }

  .page-services-grading-academic .ga-search-wrap {
    max-width: none;
    width: 100%;
  }

  .page-services-grading-academic .ga-toolbar {
    align-items: stretch;
  }

  .page-services-grading-academic .ga-btn {
    width: 100%;
  }

  .page-services-grading-academic .ga-inline-actions-deficiency {
    flex-direction: column;
    align-items: stretch;
  }

  .page-services-grading-academic .ga-inline-btns {
    width: 100%;
  }

  .page-services-grading-academic .ga-inline-btns .ga-btn {
    flex: 1;
    width: auto;
  }

  .page-services-grading-academic .ga-table-head,
  .page-services-grading-academic .ga-table-head-between {
    flex-direction: column;
    align-items: stretch;
  }

  .page-services-grading-academic .ga-table-head .ga-btn,
  .page-services-grading-academic .ga-table-head .ga-search-wrap {
    width: 100%;
    max-width: none;
  }
}

/* MIGRATED STUDENT UWIS BLOCK START */

/* Profile view wrapper/background overrides */

body.page-profile-view .content-footer-wrap {
  background-image: linear-gradient(rgba(0, 104, 55, 0.74), rgba(0, 104, 55, 0.74)), url(/images/schoolbg.png?73745313351ba4c1f04c5019d2bc9c31);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center top;
}

body.page-profile-view .student-main-wrapper {
  background-image: none !important;
}

body.page-profile-view .student-page-header {
  margin-top: 0;
  border-top: 0;
}

body.page-profile-view .student-content {
  background: transparent;
  padding: 0;
}

body.page-profile-view .plp-footer {
  background: transparent;
  border-top: 0;
  color: rgba(255, 255, 255, 0.92);
}

/* Profile edit overflow behavior */

body.page-profile-edit .student-main-wrapper {
  overflow-y: auto !important;
}

body.page-profile-edit .student-content {
  flex: none !important;
}

/* Program File page additions */

/* Student forms canvas and printable form systems */

.acd-page {
  padding-top: 8px;
  overflow-x: hidden;
}

.acd-canvas {
  --acd-scale: 1;
  --acd-paper-width: 210mm;
  width: var(--acd-paper-width);
  min-width: var(--acd-paper-width);
  margin: 0 auto;
}

.acd-actions {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 8px;
}

.acd-print-btn {
  background-color: #006837;
  border: 1px solid #006837;
  color: #fff;
  font-weight: 700;
}

.acd-print-btn:hover,
.acd-print-btn:focus {
  background-color: #0b5f37;
  border-color: #0b5f37;
  color: #fff;
}

.acd-form {
  width: var(--acd-paper-width);
  min-width: var(--acd-paper-width);
  min-height: 297mm;
  border: 1.5px solid #9aa1a8;
  border-radius: 0 !important;
  transform: scale(var(--acd-scale));
  transform-origin: top left;
}

.acd-form .cor-header {
  border-radius: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  position: relative;
  padding: 16px 20px;
  background: transparent !important;
  border-bottom: none !important;
}

.acd-form .cor-header-left {
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-right: 10px;
}

.acd-form .cor-header-center {
  text-align: center;
  padding: 0;
  white-space: normal;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.acd-form .cor-header-right {
  position: absolute;
  right: 20px;
  top: 20px;
  font-size: 11pt;
}

.acd-header {
  background: transparent;
  border-bottom: none;
}

.acd-header-center {
  text-align: center;
}

.acd-school-name,
.acd-office-name,
.acd-contact {
  margin: 0;
  color: #000;
  font-weight: 700;
  letter-spacing: 0.2px;
  font-family: "Times New Roman", Times, serif;
}

.acd-office-name {
  color: #c4d600;
}

.acd-school-name {
  font-size: 16pt;
}

.acd-office-name {
  font-size: 14pt;
}

.acd-contact {
  font-size: 12pt;
  font-weight: 600;
}

.acd-body {
  padding: 14px 16px 18px;
  color: #000;
  font-size: 0.74rem;
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}

.acd-form-number {
  font-weight: 700;
  margin: 0 0 10px;
}

.acd-meta-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 16px;
  margin-bottom: 10px;
}

.acd-label {
  margin: 0 0 6px;
  font-weight: 700;
}

.acd-check {
  display: block;
  margin: 2px 0;
  font-weight: 600;
}

.acd-check input {
  width: 12px;
  height: 12px;
  margin-right: 6px;
  vertical-align: middle;
}

.acd-line-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
  font-weight: 700;
}

.acd-line {
  flex: 1;
  border-bottom: 1px solid #98a0a8;
  min-height: 10px;
  display: inline-flex;
  align-items: flex-end;
  padding: 0 4px;
  font-weight: 600;
}

.acd-table-block {
  margin-top: 8px;
}

.acd-table-title {
  margin: 0;
  padding: 3px 0;
  text-align: center;
  font-weight: 700;
  border-top: 1px solid #9aa1a8;
  border-bottom: 1px solid #9aa1a8;
}

.acd-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 3px;
}

.acd-table th,
.acd-table td {
  border: 1px solid #a6adb5;
  padding: 3px 4px;
  font-size: 0.67rem;
  text-align: center;
  height: 24px;
}

.acd-cell-input {
  width: 100%;
  border: 0;
  outline: none;
  background: transparent;
  font: inherit;
  color: inherit;
  text-align: center;
  line-height: 1.1;
  padding: 0;
}

.acd-cell-input--left {
  text-align: left;
}

.acd-table th {
  font-weight: 700;
  background: #f8fafb;
}

.acd-total-label {
  text-align: right;
  font-weight: 700;
  padding-right: 12px;
}

.acd-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 14px;
}

.acd-bottom-grid p {
  margin: 0 0 8px;
  font-weight: 600;
}

.acd-emphasis {
  font-style: italic;
}

.acd-sign-row {
  margin: 0 0 8px;
}

.acd-sign-main {
  margin: 0;
  font-weight: 600;
}

.acd-sign-sub {
  margin: 2px 0 0;
  padding-left: 2px;
  font-weight: 600;
}

.acd-inline-line {
  display: inline-block;
  border-bottom: 1px solid #8f98a0;
  height: 0.9em;
  vertical-align: baseline;
}

.acd-inline-input {
  display: inline-block;
  border: 0;
  border-bottom: 1px solid #8f98a0;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: 1.2;
  padding: 0 2px;
}

.acd-inline-input:focus {
  outline: none;
  border-bottom-color: #1f2a35;
}

.acd-inline-input--xs {
  width: 72px;
}

.acd-inline-input--sm {
  width: 110px;
}

.acd-inline-input--md {
  width: 180px;
}

.acd-inline-input--lg {
  width: 250px;
}

.acd-inline-input--xl {
  width: 320px;
}

.acd-inline-input--center {
  text-align: center;
}

.acd-inline-input--caps {
  text-transform: uppercase;
}

.cog-box.acd-inline-input {
  display: inline-flex;
  align-items: center;
}

.acd-inline-line--md {
  width: 170px;
}

.acd-inline-line--lg {
  width: 250px;
}

.acd-inline-line--xl {
  width: 240px;
}

.acd-mt-lg {
  margin-top: 12px !important;
}

.acd-footer-note {
  margin-top: 14px;
  font-size: 0.7rem;
  color: #000;
  text-align: center;
}

@media print {
@page {
    size: A4 portrait;
    margin: 0.5in;
}

  html,
  body.student-portal-body,
  .student-layout,
  .student-main-wrapper,
  .content-footer-wrap,
  .student-content,
  .cor-scroll-wrapper {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }

  .student-topbar,
  .student-page-header,
  .plp-sidebar,
  .sidebar-overlay,
  .plp-footer,
  #download-toast {
    display: none !important;
  }

  .acd-page {
    padding-top: 0;
    overflow: visible;
  }

  .acd-actions {
    display: none !important;
  }

  .acd-canvas {
    --acd-paper-width: auto !important;
    --acd-scale: 1 !important;
    width: calc(100% - 1in) !important;
    max-width: calc(100% - 1in) !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 auto !important;
  }

  .acd-form {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: auto !important;
    transform: none !important;
    border: 1.5px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
  }

  .acd-form,
  .acd-form * {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 16px !important;
    line-height: 1.1 !important;
  }

  .acd-school-name,
  .loa-school,
  .ce-school,
  .cog-school {
    font-size: 16pt !important;
  }

  .acd-office-name,
  .loa-office,
  .ce-office,
  .cog-office {
    font-size: 14pt !important;
  }

  .loa-body h2,
  .cog-body h2,
  .ce-body h2,
  .acd-container h2 {
    font-size: 18pt !important;
  }

  .acd-body,
  .loa-body,
  .cog-body,
  .ce-body {
    padding-left: 0.15in !important;
    padding-right: 0.15in !important;
    padding-top: 0 !important;
    padding-bottom: 0.1in !important;
  }

  .acd-table th,
  .acd-table td {
    padding: 2px 3px !important;
    height: 18px !important;
  }

  .acd-bottom-grid p {
    margin: 0 0 4px !important;
  }

  .acd-footer-note {
    margin-top: 6px !important;
  }

  .loa-page .acd-canvas {
    --acd-paper-width: auto !important;
  }

  .cor-container.acd-form,
  .cor-container.acd-form * {
    box-shadow: none !important;
  }

  .cor-container {
    width: 100% !important;
    height: auto !important;
    border: none !important;
    border-radius: 0 !important;
  }

  .acd-inline-input {
    border: 0 !important;
    border-bottom: 1px solid #000 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .acd-inline-input.has-value {
    border-bottom: 1px solid #000 !important;
  }

  .acd-inline-input.has-value.no-print-underline {
    border-bottom: 0 !important;
  }

  .loa-check input[type=checkbox] {
    display: none !important;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  .loa-check {
    position: relative;
    display: inline !important;
    font-weight: 600;
  }

  .loa-check::before {
    content: "( ) ";
  }

  .loa-check[data-print-checked=true]::before {
    content: "(\2713) ";
  }

  .loa-grid-third .acd-inline-input--lg {
    width: calc(100% - 12px) !important;
    max-width: calc(100% - 12px) !important;
    box-sizing: border-box !important;
  }

  /* LOA print should stay readable within reduced margins */

  .loa-form,
  .loa-form * {
    font-size: 14px !important;
    line-height: 1.1 !important;
  }

  .loa-form h2 {
    font-size: 16px !important;
  }

  /* Ensure Change of Grade print remains exactly 16px */

  .cog-form,
  .cog-form * {
    font-size: 16px !important;
    line-height: 1.1 !important;
  }

  .cog-form h2,
  .cog-title-main {
    font-size: 16px !important;
  }

  .cog-line-row--details {
    flex-wrap: wrap !important;
    white-space: normal !important;
    gap: 6px !important;
  }

  .cog-line-row--details .cog-box--sm {
    width: 96px !important;
  }

  .cog-line-row--details .cog-box--prog {
    width: 150px !important;
  }

  .cog-line-row--details .cog-box--course {
    flex: 0 0 170px !important;
    width: 170px !important;
    min-width: 170px !important;
    max-width: 170px !important;
  }

  .cog-line-row--details .cog-course-combo {
    flex: 0 0 210px !important;
    width: 210px !important;
    min-width: 210px !important;
    max-width: 210px !important;
  }

  .cog-line-row--details .cog-box--course-short {
    width: 42px !important;
  }

  .cog-line-row--details .cog-box--course-long {
    width: 168px !important;
  }

  .cog-signatures > div {
    min-width: 0 !important;
  }

  .cog-signatures .cog-line {
    overflow: hidden !important;
  }

  .cog-signatures .acd-inline-input--lg {
    width: calc(100% - 8px) !important;
    max-width: calc(100% - 8px) !important;
    box-sizing: border-box !important;
  }
}

/* Late Leave Appeal */

.loa-form {
  min-height: 320mm;
}

.loa-header,
.cog-header,
.ce-header {
  background: transparent;
  border-bottom: none;
  min-height: 74px;
  padding-top: 8px;
  padding-bottom: 8px;
}

.loa-header-center,
.cog-header-center,
.ce-header-center {
  color: #000;
}

.form-logo-left {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.form-logo-left .cor-logo {
  height: 108px;
  width: auto;
  max-height: 108px;
}

/* If the header area is narrow, allow the logo to reposition above the pyramid */

@media (max-width: 600px) {
  .acd-form .cor-header-left {
    position: relative;
    left: 0;
    top: 0;
    transform: none;
    margin-bottom: 8px;
    justify-content: center;
  }

  .acd-form .cor-header-center {
    position: relative;
    left: 0;
    top: 0;
    transform: none;
    width: 100%;
    max-width: none;
  }
}

.form-header-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  gap: 0;
}

.loa-gov,
.ce-gov {
  margin: 0;
  font-size: 0.58rem;
  font-weight: 600;
  color: #000;
}

.loa-school,
.ce-school,
.cog-school {
  margin: 0;
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 1px;
  color: #000;
}

.loa-office,
.ce-office,
.cog-office {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 800;
  color: #c4d600;
  letter-spacing: 1.8px;
}

.loa-address,
.loa-contact,
.ce-contact {
  margin: 0;
  font-size: 0.52rem;
  font-weight: 600;
  color: #000;
}

.loa-body,
.cog-body,
.ce-body {
  padding: 16px 18px 20px;
  font-size: 0.76rem;
  color: #000;
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}

.loa-top-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.loa-body h2,
.cog-body h2,
.ce-body h2 {
  margin: 4px 0 10px;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.3px;
}

.loa-text-line,
.ce-body p,
.cog-body p {
  margin: 7px 0;
  line-height: 1.35;
}

.loa-first-indent {
  display: inline-block;
  padding-left: 20px;
}

.loa-page .acd-canvas {
  --acd-paper-width: 232mm;
}

.loa-body h2 {
  font-size: 1.55rem;
  white-space: nowrap;
}

.loa-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2px 14px;
  margin: 6px 0 8px;
}

.loa-check {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  line-height: 1.2;
  font-weight: 600;
}

.loa-check input[type=checkbox] {
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
  width: 12px;
  height: 12px;
  margin: 0;
  border: 1px solid #4c5660;
  background: #fff;
  position: relative;
  display: inline-block;
  vertical-align: middle;
}

.loa-check input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 0;
  width: 4px;
  height: 8px;
  border: solid #1f2a35;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.loa-medical-check {
  padding-left: 18px;
}

.loa-body ul {
  margin: 6px 0 8px 20px;
}

.loa-sign,
.loa-sign-sub,
.loa-student-no {
  text-align: center;
  margin: 0;
}

.loa-student-no {
  margin-top: 6px;
}

.loa-student-divider {
  border-top: 1px dashed #9ea6ae;
  margin: 8px 0 10px;
}

.loa-grid {
  display: grid;
  grid-template-columns: 34.3% 35.8% 29.9%;
  gap: 0;
  border: 1px solid #9ea6ae;
  margin-top: 10px;
}

.loa-box {
  padding: 8px;
  border-right: 1px solid #9ea6ae;
  min-height: 130px;
}

.loa-grid .loa-box:last-child {
  border-right: none;
}

.loa-box p {
  margin: 2px 0;
  line-height: 1.3;
}

.loa-box table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.68rem;
}

.loa-box table td {
  border: 1px solid #b0b7be;
  padding: 3px 4px;
}

.loa-box table td:last-child {
  white-space: nowrap;
}

.loa-box table .loa-check {
  margin-right: 8px;
}

.loa-remark-line {
  margin: 2px 0;
}

.loa-remark-cont {
  padding-left: 24px;
}

.loa-assessed {
  margin-top: 18px !important;
}

.loa-assessor {
  font-weight: 700;
  text-align: center;
}

.loa-grid-second,
.loa-grid-third {
  margin-top: 0;
  border-top: none;
}

.loa-grid-second {
  grid-template-columns: 34.3% 35.8% 29.9%;
}

.loa-grid-third {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.loa-small-sign {
  min-height: 90px;
}

.loa-grid-third .loa-sign-line {
  overflow: hidden;
}

.loa-grid-third .acd-inline-input--lg {
  width: calc(100% - 12px);
  max-width: calc(100% - 12px);
  box-sizing: border-box;
}

.loa-sign-line {
  margin-top: 8px !important;
  min-height: 12px;
}

.loa-sign-row {
  display: flex;
  justify-content: space-between;
  font-weight: 600;
}

.loa-present-box {
  margin-top: 10px;
  border: 1px solid #9ea6ae;
  padding: 8px;
}

.loa-present-divider {
  border-top: 1px dashed #9ea6ae;
  margin-top: 10px;
}

/* Change Grade */

.cog-form {
  min-height: 240mm;
}

.cog-form .cog-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.cog-form .form-header-copy {
  align-items: center;
  text-align: center;
  gap: 2px;
}

.cog-form .loa-school,
.cog-form .cog-title-main,
.cog-form .cog-form-no-header {
  font-family: Arial, Helvetica, sans-serif;
  color: #000;
}

.cog-form .loa-school {
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 1px;
}

.cog-header-right {
  display: none;
}

.cog-form-no-header {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  color: #000;
  white-space: nowrap;
  letter-spacing: 0.15px;
}

.cog-title-main {
  margin-top: 0;
  font-size: 0.9rem;
  font-weight: 700;
  text-align: center;
}

.cog-date {
  text-align: right;
  margin: 4px 0 14px;
}

.cog-line-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  margin: 8px 0;
  white-space: nowrap;
}

.cog-line-row--details {
  flex-wrap: wrap;
  white-space: normal;
}

.cog-box {
  display: inline-flex;
  align-items: center;
  height: 24px;
  border: 1px solid #9ea6ae;
  vertical-align: middle;
  background: #fff;
  padding: 0 6px;
  overflow: visible;
  white-space: nowrap;
  text-overflow: clip;
}

.cog-box--sm {
  width: 108px;
}

.cog-box--md {
  width: 250px;
}

.cog-box--lg {
  width: 340px;
}

.cog-box--xl {
  width: 470px;
}

.cog-box--xxl {
  width: 560px;
}

.cog-box--prog {
  width: 170px;
}

.cog-box--course {
  flex: 1;
  min-width: 220px;
  max-width: 100%;
}

.cog-course-combo {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  white-space: nowrap;
}

.cog-box--course-short {
  width: 54px;
}

.cog-box--course-long {
  width: 185px;
}

.cog-course-combo .cog-box {
  margin: 0;
}

.cog-course-combo .cog-box--course-long {
  border-left: 0;
}

.cog-line-fill {
  display: inline-block;
  flex: 1;
  border-bottom: 1px solid #9ea6ae;
  min-height: 18px;
}

.cog-line-fill--full {
  display: block;
  width: 100%;
  margin-top: 2px;
}

.cog-subtitle {
  font-size: 1.35rem;
  font-weight: 800;
  margin: 16px 0 8px;
}

.cog-computation table {
  width: 56%;
  border-collapse: collapse;
  margin: 4px 0 16px;
}

.cog-computation th,
.cog-computation td {
  border: 1px solid #98a1aa;
  padding: 5px 8px;
  font-size: 0.72rem;
}

.cog-signatures {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.cog-signatures > div {
  min-width: 0;
}

.cog-line {
  min-height: 14px;
  margin: 8px 0 4px;
  overflow: hidden;
}

.cog-signatures .acd-inline-input--lg {
  width: calc(100% - 8px);
  max-width: calc(100% - 8px);
  box-sizing: border-box;
}

.cog-attachment {
  margin-top: 12px;
}

.cog-cut-divider {
  border-top: 1px dashed #9ea6ae;
  margin-top: 12px;
}

/* Cross Enroll */

.ce-form {
  min-height: 320mm;
}

.ce-date {
  text-align: right;
  margin-top: 8px !important;
}

.ce-subject-grid {
  display: grid;
  grid-template-columns: 1fr 0.8fr;
  gap: 36px;
  margin: 10px 0;
}

.ce-subject-grid p {
  margin: 6px 0;
}

.ce-total {
  text-align: center;
  font-size: 0.95rem;
  font-weight: 700;
  margin: 8px 0 !important;
}

.ce-sign-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  margin-top: 12px;
}

.ce-invalid {
  font-size: 1.9rem;
  font-weight: 800;
  line-height: 1.05;
  text-align: center;
  margin: 6px 0 18px !important;
}

.ce-line {
  min-height: 14px;
  margin: 10px 0 4px;
}

.ce-mt {
  margin-top: 22px !important;
}

.ce-print-by {
  margin-top: 20px !important;
  font-size: 0.64rem;
}

/* Completion Grade */

.comp-body {
  min-height: 200mm;
}

.comp-date-wrap {
  text-align: right;
  margin-bottom: 20px;
}

.comp-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  border: 1px solid #9ea6ae;
  padding: 16px;
  margin-bottom: 20px;
}

.comp-info-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.comp-info-row {
  display: flex;
  gap: 12px;
  align-items: baseline;
}

.comp-info-row span:first-child {
  font-weight: 700;
  min-width: 90px;
}

.comp-info-title {
  font-weight: 800;
  font-size: 0.85rem;
  margin: 0 0 10px;
  text-decoration: underline;
}

.comp-cert {
  margin: 20px 0;
  text-align: justify;
  line-height: 1.5;
}

.comp-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0 30px;
}

.comp-table th,
.comp-table td {
  border: 1px solid #9aa1a8;
  padding: 8px;
  text-align: center;
}

.comp-table th {
  background: #f8fafb;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.72rem;
}

.comp-sigs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  margin-top: 40px;
}

.comp-sig-col {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.comp-sig-line {
  text-align: center;
  padding-top: 6px;
  font-weight: 700;
}

.comp-sig-line span {
  font-weight: 400;
  font-size: 0.7rem;
  display: block;
  margin-top: 2px;
}

/* Student schedule premium text/readability (scoped) */

.sched-page-container .so-weekly-card,
.sched-page-container .so-weekly-code,
.sched-page-container .so-weekly-section,
.sched-page-container .so-weekly-time,
.sched-page-container .so-weekly-room {
  color: #ffffff !important;
}

/* MIGRATED STUDENT UWIS BLOCK END */

/* ===== Merged from css/styles.css on 2026-03-21 ===== */

/* Registrar Admin Tools: Access Management, Master Files, Student Maintenance */

.page-user-accounts .ua-page,
.page-report-access .ra-page,
.page-faculty-file .ff-page,
.page-student-profile .sp-page,
.page-student-grade-file .sgf-page,
.page-bed-days .bd-page,
.page-bed-status .bs-page,
.page-student-update .su-page {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.page-user-accounts .cfg-card,
.page-report-access .cfg-card,
.page-bed-days .cfg-card,
.page-bed-status .cfg-card,
.page-student-update .su-card,
.page-student-update .su-left {
  box-shadow: 0 2px 12px rgba(8, 64, 34, 0.04);
}

.page-user-accounts .ua-filter-grid,
.page-bed-status .bs-toolbar,
.page-bed-days .bd-toolbar,
.page-report-access .ra-toolbar,
.page-faculty-file .ff-toolbar,
.page-student-profile .sp-toolbar,
.page-student-grade-file .sgf-toolbar {
  display: grid;
  gap: 10px;
  align-items: flex-end;
}

.page-user-accounts .ua-filter-grid {
  grid-template-columns: repeat(4, minmax(160px, 1fr)) auto auto;
}

.page-bed-status .bs-toolbar {
  grid-template-columns: minmax(240px, 1.6fr) repeat(4, minmax(120px, 1fr)) auto;
}

.page-bed-days .bd-toolbar {
  grid-template-columns: repeat(4, minmax(130px, 1fr)) auto;
}

.page-report-access .ra-toolbar {
  grid-template-columns: minmax(260px, 1.6fr) auto minmax(180px, 1fr);
}

.page-faculty-file .ff-toolbar,
.page-student-profile .sp-toolbar,
.page-student-grade-file .sgf-toolbar {
  grid-template-columns: auto;
}

.page-bed-status .bs-search-wrap,
.page-faculty-file .ff-search-wrap,
.page-student-profile .sp-search-wrap,
.page-student-grade-file .sgf-search-wrap,
.page-report-access .ra-search-wrap {
  min-width: 0;
}

.page-bed-status .bs-field,
.page-bed-days .bd-field,
.page-student-update .su-field,
.page-user-accounts .ua-filter-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.page-bed-status .bs-toolbar-label,
.page-user-accounts .ua-form-label,
.page-user-accounts .ua-selected-label,
.page-user-accounts .ua-table-caption,
.page-report-access .ra-caption,
.page-student-update .su-subtitle,
.page-student-update .su-note,
.page-student-update .su-task-sub,
.page-student-update .su-task-foot,
.page-student-update .su-meta-label {
  font-size: 0.78rem;
  color: #4f6058;
}

.page-user-accounts .ua-table-caption,
.page-report-access .ra-caption {
  font-weight: 500;
}

.page-bed-status .bs-table-head,
.page-faculty-file .ff-table-head,
.page-student-profile .sp-table-head,
.page-student-grade-file .sgf-table-head {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 8px;
}

.page-user-accounts .ua-page-list,
.page-report-access .ra-page-list,
.page-faculty-file .ff-page-list,
.page-student-profile .sp-page-list,
.page-student-grade-file .sgf-page-list,
.page-bed-days .bd-page-list,
.page-bed-status .bs-page-list {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.page-user-accounts .ua-page-btn,
.page-user-accounts .ua-page-num,
.page-report-access .ra-page-btn,
.page-report-access .ra-page-num,
.page-faculty-file .ff-page-btn,
.page-faculty-file .ff-page-num,
.page-student-profile .sp-page-btn,
.page-student-profile .sp-page-num,
.page-student-grade-file .sgf-page-btn,
.page-student-grade-file .sgf-page-num,
.page-bed-days .bd-page-btn,
.page-bed-days .bd-page-num,
.page-bed-status .bs-page-btn,
.page-bed-status .bs-page-num {
  min-width: 32px;
  height: 32px;
  border: 1px solid #ced7d2;
  border-radius: 8px;
  background: #fff;
  color: #2d4b40;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  padding: 0 8px;
}

.page-user-accounts .ua-page-btn,
.page-report-access .ra-page-btn,
.page-faculty-file .ff-page-btn,
.page-student-profile .sp-page-btn,
.page-student-grade-file .sgf-page-btn,
.page-bed-days .bd-page-btn,
.page-bed-status .bs-page-btn {
  font-size: 14px;
  font-weight: 800;
}

.page-user-accounts .ua-page-btn:hover:not(:disabled),
.page-user-accounts .ua-page-num:hover,
.page-report-access .ra-page-btn:hover:not(:disabled),
.page-report-access .ra-page-num:hover,
.page-faculty-file .ff-page-btn:hover:not(:disabled),
.page-faculty-file .ff-page-num:hover,
.page-student-profile .sp-page-btn:hover:not(:disabled),
.page-student-profile .sp-page-num:hover,
.page-student-grade-file .sgf-page-btn:hover:not(:disabled),
.page-student-grade-file .sgf-page-num:hover,
.page-bed-days .bd-page-btn:hover:not(:disabled),
.page-bed-days .bd-page-num:hover,
.page-bed-status .bs-page-btn:hover:not(:disabled),
.page-bed-status .bs-page-num:hover {
  background: #f2f6f4;
  border-color: #b7c8bf;
  color: #27453a;
}

.page-user-accounts .ua-page-btn:disabled,
.page-report-access .ra-page-btn:disabled,
.page-faculty-file .ff-page-btn:disabled,
.page-student-profile .sp-page-btn:disabled,
.page-student-grade-file .sgf-page-btn:disabled,
.page-bed-days .bd-page-btn:disabled,
.page-bed-status .bs-page-btn:disabled {
  opacity: 0.45;
}

.page-user-accounts .ua-page-num.active,
.page-report-access .ra-page-num.active,
.page-faculty-file .ff-page-num.active,
.page-student-profile .sp-page-num.active,
.page-student-grade-file .sgf-page-num.active,
.page-bed-days .bd-page-num.active,
.page-bed-status .bs-page-num.active {
  background: #0f7b43;
  border-color: #0f7b43;
  color: #fff;
}

.page-user-accounts .ua-table-meta,
.page-report-access .ra-table-meta,
.page-faculty-file .ff-pager-row,
.page-student-profile .sp-pager-row,
.page-student-grade-file .sgf-pager-row,
.page-bed-days .bd-pager-row,
.page-bed-status .bs-pager-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 2px 2px;
}

.page-faculty-file .ff-pager-row,
.page-student-profile .sp-pager-row,
.page-student-grade-file .sgf-pager-row,
.page-bed-days .bd-pager-row,
.page-bed-status .bs-pager-row {
  justify-content: flex-end;
}

.page-user-accounts .ua-clear-btn {
  border: 1px solid #0f7b43;
  background: #0f7b43;
  color: #fff;
  border-radius: 8px;
  min-height: 38px;
  padding: 0 14px;
  font-weight: 600;
}

.page-user-accounts .ua-clear-btn:hover {
  background: #0c6a39;
  border-color: #0c6a39;
}

.page-user-accounts .ua-clear-btn:active {
  background: #0a5c31;
  border-color: #0a5c31;
}

.page-user-accounts .ua-clear-btn:focus-visible {
  outline: 2px solid rgba(15, 123, 67, 0.32);
  outline-offset: 2px;
}

.page-user-accounts .ua-selected-user {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  margin-bottom: 10px;
}

.page-user-accounts .ua-selected-item {
  border: 1px solid #d9e4de;
  border-radius: 9px;
  padding: 9px 10px;
  background: #fbfdfc;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex: 1 1 0;
  min-width: 0;
}

.page-user-accounts .ua-selected-label {
  font-size: 0.75rem;
  color: #60756a;
  font-weight: 600;
}

.page-user-accounts .ua-selected-value {
  display: inline;
  margin-top: 0;
  font-size: 0.9rem;
  color: #173a2b;
  font-weight: 600;
  text-align: right;
}

.page-user-accounts .ua-form-grid {
  display: grid;
  grid-template-columns: 170px minmax(260px, 420px) minmax(220px, 1fr);
  gap: 10px;
  align-items: center;
}

.page-user-accounts .ua-form-grid .app-filter-input,
.page-user-accounts .ua-form-grid .ua-password-wrap {
  max-width: 420px;
}

.page-user-accounts .ua-form-note {
  font-size: 0.74rem;
  color: #63736c;
}

.page-user-accounts .ua-password-wrap {
  position: relative;
  width: 100%;
}

.page-user-accounts .ua-autofill-trap {
  position: absolute;
  left: -9999px;
  top: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.page-user-accounts .ua-password-wrap .app-filter-input {
  width: 100%;
  padding-right: 40px;
}

.page-user-accounts .ua-pass-toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: transparent;
  color: #4f6058;
  width: 28px;
  height: 28px;
}

.page-user-accounts .ua-pass-toggle .ua-eye-off {
  display: none;
}

.page-user-accounts .ua-pass-toggle.is-visible .ua-eye-on {
  display: none;
}

.page-user-accounts .ua-pass-toggle.is-visible .ua-eye-off {
  display: inline;
}

.page-user-accounts .ua-status-badge {
  display: inline-block;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 700;
}

.page-user-accounts .ua-status-active {
  background: #e8f8ef;
  color: #0f7b43;
}

.page-user-accounts .ua-status-inactive {
  background: #fdeceb;
  color: #c0392b;
}

.page-user-accounts .ua-selected-row {
  background: #f4faf7;
}

.page-user-accounts .ua-bottom-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}

.page-user-accounts .ua-access-card {
  overflow: hidden;
}

.page-user-accounts .ua-access-meta {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.page-user-accounts .ua-access-user-note {
  font-size: 0.8rem;
  color: #2f4e40;
  font-weight: 600;
}

.page-user-accounts .ua-access-copy-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.page-user-accounts .ua-access-copy-wrap .app-filter-label {
  margin: 0;
}

.page-user-accounts #uaCopyAccessFrom {
  min-width: 210px;
}

.page-user-accounts .ua-copy-access-btn {
  border: 1px solid #0f7b43;
  background: #0f7b43;
  color: #fff;
  border-radius: 8px;
  min-height: 36px;
  padding: 0 14px;
  font-weight: 600;
}

.page-user-accounts .ua-copy-access-btn:hover {
  background: #0c6a39;
  border-color: #0c6a39;
}

.page-user-accounts .ua-access-quick-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px 14px;
}

.page-user-accounts .ua-access-quick-wrap {
  border: 1px solid #d6e3dc;
  background: #f8fcfa;
  border-radius: 10px;
  padding: 10px;
  margin-bottom: 12px;
}

.page-user-accounts .ua-access-quick-title {
  font-size: 0.8rem;
  font-weight: 700;
  color: #1f4d38;
  margin-bottom: 8px;
}

.page-user-accounts .ua-access-check {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.81rem;
  color: #2a4539;
  margin: 0;
}

.page-user-accounts .ua-access-check input {
  margin-top: 0;
}

.page-user-accounts .ua-access-grid {
  display: flex;
  justify-content: center;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.page-user-accounts .ua-access-group {
  flex: 0 0 min(320px, 24%);
  min-width: 280px;
}

.page-user-accounts .ua-access-card .rtp-pagination,
.page-user-accounts .ua-access-card .pf-pagination,
.page-user-accounts .ua-access-card .app-table-pager {
  display: none !important;
}

.page-user-accounts .ua-access-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  border: 1px solid #b9c9c0;
}

.page-user-accounts .ua-access-table thead th {
  background: #1f6f36;
  color: #fff;
  border: 1px solid #b9c9c0;
  padding: 6px 6px;
  font-size: 0.79rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.page-user-accounts .ua-access-head-check {
  margin-left: 0;
  margin-right: 0;
  vertical-align: middle;
}

.page-user-accounts .ua-access-table tbody td {
  border: 1px solid #c8d4ce;
  background: #f7faf8;
  color: #163a2b;
  font-size: 0.8rem;
  line-height: 1.25;
  padding: 4px 6px;
  vertical-align: middle;
}

.page-user-accounts .ua-access-table tbody tr:nth-child(even) td {
  background: #eff5f1;
}

.page-user-accounts .ua-access-rw-col {
  width: 44px;
  text-align: center;
  vertical-align: middle;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.page-user-accounts .ua-access-rw-head {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  line-height: 1;
}

.page-user-accounts .ua-access-rw-text {
  display: inline-block;
  min-width: 10px;
  text-align: center;
}

.page-user-accounts .ua-access-rw-col .req-checkbox-input,
.page-user-accounts .ua-access-rw-head .req-checkbox-input {
  margin: 0;
}

.page-user-accounts .ua-access-footnote {
  margin-top: 10px;
  font-size: 0.73rem;
  color: #5f6f67;
}

.page-report-access .ra-type-filter,
.page-report-access .ra-modal-head,
.page-report-access .ra-modal-tools,
.page-report-access .ra-group-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

.page-report-access .ra-modal-box {
  width: min(1080px, 96vw);
}

.page-report-access .ra-modal-user {
  font-size: 0.79rem;
  color: #50635a;
  font-weight: 600;
}

.page-report-access .ra-section-title {
  margin: 0;
  color: #1f4d38;
  font-size: 0.88rem;
  font-weight: 700;
}

.page-report-access .ra-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.page-report-access .ra-group {
  border: 1px solid #dce7e1;
  border-radius: 10px;
  padding: 10px;
  background: #fbfdfc;
}

.page-report-access .ra-group-title h4 {
  margin: 0;
  color: #0f5132;
  font-size: 0.84rem;
  font-weight: 700;
}

.page-report-access .ra-group-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 8px;
  max-height: 180px;
  overflow: auto;
  padding-right: 6px;
}

.page-report-access .ra-check {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  color: #2f4e40;
}

.page-report-access .ra-check-master {
  font-weight: 700;
  color: #1f4d38;
}

.page-report-access .ra-action-btn,
.page-bed-status .bs-export-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #cfe0d7;
  background: #fff;
  color: #1f4d38;
  border-radius: 8px;
  min-height: 34px;
  min-width: 34px;
  padding: 0 10px;
}

.page-report-access .ra-action-btn:hover,
.page-bed-status .bs-export-btn:hover {
  background: #f4faf7;
  border-color: #9ec7b3;
}

.page-report-access .ra-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
}

.page-faculty-file .ff-status {
  display: inline-block;
  min-width: 72px;
  text-align: center;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 0.74rem;
  font-weight: 700;
}

.page-faculty-file .ff-status-active {
  background: #e8f8ef;
  color: #0f7b43;
}

.page-faculty-file .ff-status-inactive {
  background: #fdeceb;
  color: #c0392b;
}

#ffTable .apst-dropdown,
#spTable .apst-dropdown,
#sgfTable .apst-dropdown,
#bdTable .apst-dropdown,
#bsTable .apst-dropdown {
  position: fixed;
}

#ffTable td:last-child .apst-action-btn,
#spTable td:last-child .apst-action-btn,
#sgfTable td:last-child .apst-action-btn,
#bdTable td:last-child .apst-action-btn,
#bsTable td:last-child .apst-action-btn,
#raTable td:last-child .ra-action-btn {
  margin: 0 auto;
}

.page-report-access .ra-toolbar {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 10px;
}

.page-report-access .ra-table-meta {
  justify-content: flex-start;
  gap: 14px;
}

.page-report-access .ra-page-list {
  margin-right: 0;
}

.page-report-access .ra-search-wrap {
  flex: 1 1 320px;
  min-width: 260px;
}

.page-report-access #raSearchBtn {
  margin-left: 0;
}

.page-report-access .ra-type-filter {
  margin-left: 0;
  min-width: 210px;
}

.page-report-access #raSearchBtn {
  margin-left: auto;
}

.page-faculty-file .ff-toolbar,
.page-student-profile .sp-toolbar,
.page-student-grade-file .sgf-toolbar {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 8px;
}

.page-faculty-file .ff-search-wrap,
.page-student-profile .sp-search-wrap,
.page-student-grade-file .sgf-search-wrap {
  flex: 1 1 420px;
}

.page-bed-status .pf-search-wrap,
.page-report-access .pf-search-wrap,
.page-faculty-file .pf-search-wrap,
.page-student-profile .pf-search-wrap,
.page-student-grade-file .pf-search-wrap {
  max-width: none;
  min-width: 360px;
}

.page-bed-status .pf-search-input,
.page-report-access .pf-search-input,
.page-faculty-file .pf-search-input,
.page-student-profile .pf-search-input,
.page-student-grade-file .pf-search-input {
  min-height: 38px;
  font-size: 0.85rem;
  line-height: 1.2;
}

.page-faculty-file #ffSearchBtn,
.page-student-profile #spSearchBtn,
.page-student-grade-file #sgfSearchBtn {
  margin-left: 0;
}

.page-bed-status .bs-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
}

.page-bed-status .bs-search-wrap {
  order: 1;
  flex: 1 1 420px;
}

.page-bed-status .bs-field {
  order: 2;
  flex: 0 1 130px;
}

.page-bed-status #bsSearchBtn {
  order: 3;
  margin-left: auto;
}

.page-bed-status .bs-filter-foot {
  padding-top: 8px;
}

.page-bed-status .bs-filter-checks,
.page-student-update .su-rule-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.page-bed-status .bs-check,
.page-student-update .su-checkline,
.page-student-update .su-danger-note {
  font-size: 0.81rem;
  color: #2f4e40;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.page-bed-status .bs-table-export {
  position: relative;
}

.page-bed-status .bs-export-caret {
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
}

.page-bed-status .bs-export-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  border: 1px solid #d8e4dd;
  border-radius: 9px;
  background: #fff;
  min-width: 150px;
  box-shadow: 0 10px 28px rgba(18, 49, 34, 0.12);
  display: none;
  z-index: 12;
}

.page-bed-status .bs-export-menu.open {
  display: block;
}

.page-bed-status .bs-export-menu button {
  width: 100%;
  border: none;
  background: transparent;
  text-align: left;
  padding: 9px 11px;
  font-size: 0.8rem;
  color: #1f4d38;
}

.page-bed-status .bs-export-menu button:hover {
  background: #f4faf7;
}

.page-bed-status .bs-export-btn {
  background: #006837;
  border-color: #006837;
  color: #ffffff;
}

.page-bed-status .bs-export-btn:hover {
  background: #005a2e;
  border-color: #005a2e;
  color: #ffffff;
}

.page-student-update .su-page {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 12px;
}

.page-student-update .su-left,
.page-student-update .su-op-card {
  border: 1px solid #d8e4dd;
  border-radius: 10px;
  background: #fff;
  padding: 12px;
}

.page-student-update .su-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.page-student-update .su-title,
.page-student-update .su-task-title,
.page-student-update .su-section-title,
.page-student-update .su-rule-title {
  margin: 0;
  color: #0f5132;
  font-weight: 700;
}

.page-student-update .su-title {
  font-size: 0.97rem;
}

.page-student-update .su-task-title {
  font-size: 0.92rem;
}

.page-student-update .su-section-title {
  margin-top: 12px;
  margin-bottom: 8px;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.page-student-update .su-grid-4,
.page-student-update .su-grid-5 {
  display: grid;
  gap: 10px;
}

.page-student-update .su-grid-4 {
  grid-template-columns: repeat(4, minmax(120px, 1fr));
}

.page-student-update .su-grid-5 {
  grid-template-columns: repeat(5, minmax(110px, 1fr));
}

.page-student-update .su-rule-box {
  border: 1px dashed #c4d7cc;
  border-radius: 8px;
  background: #fbfdfc;
  padding: 10px;
  margin-top: 12px;
}

.page-student-update .su-danger-note {
  margin-top: 10px;
}

.page-student-update .su-save-wrap {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}

.page-student-update .su-right {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.page-student-update .su-task-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.page-student-update .su-meta-item {
  border: 1px solid #e0e9e3;
  border-radius: 8px;
  padding: 8px;
  background: #fbfdfc;
}

.page-student-update .su-meta-value {
  color: #1f4d38;
  font-size: 0.82rem;
  font-weight: 600;
}

.page-student-update .su-progress {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  color: #5f7268;
}

.page-student-update .su-progress-icon {
  width: 20px;
  height: 20px;
}

.page-student-update .su-progress-icon svg {
  width: 100%;
  height: 100%;
}

.page-student-update .su-progress-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #c9d8d0;
}

.page-student-update .su-progress.running .su-progress-dot {
  background: #0f7b43;
  animation: suPulse 1s ease-in-out infinite;
}

@keyframes suPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }

  50% {
    transform: scale(1.45);
    opacity: 0.55;
  }
}

.page-student-update .su-task-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}

.page-student-update .su-task-actions .pf-btn-new,
.page-student-update .su-task-actions .req-btn-cancel {
  min-width: 110px;
}

@media (max-width: 1180px) {
  .page-user-accounts .ua-filter-grid {
    grid-template-columns: repeat(2, minmax(150px, 1fr));
  }

  .page-student-update .su-page {
    grid-template-columns: 1fr;
  }

  .page-student-update .su-grid-4,
  .page-student-update .su-grid-5 {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
  }
}

@media (max-width: 900px) {
  .page-user-accounts .ua-filter-grid,
  .page-bed-days .bd-toolbar,
  .page-faculty-file .ff-toolbar,
  .page-student-profile .sp-toolbar,
  .page-student-grade-file .sgf-toolbar {
    grid-template-columns: 1fr;
  }

  .page-user-accounts .ua-selected-user,
  .page-user-accounts .ua-form-grid,
  .page-report-access .ra-groups,
  .page-student-update .su-grid-4,
  .page-student-update .su-grid-5,
  .page-student-update .su-task-meta {
    grid-template-columns: 1fr;
  }

  .page-user-accounts .ua-selected-user {
    display: grid;
  }

  .page-user-accounts .ua-access-quick-options,
  .page-user-accounts .ua-access-grid {
    grid-template-columns: 1fr;
  }

  .page-user-accounts .ua-access-meta {
    align-items: stretch;
  }

  .page-user-accounts .ua-selected-item {
    flex-direction: column;
    align-items: flex-start;
  }

  .page-user-accounts .ua-selected-value {
    text-align: left;
  }

  .page-user-accounts .ua-access-grid {
    display: grid;
    overflow-x: visible;
  }

  .page-user-accounts .ua-access-group {
    flex: none;
    min-width: 0;
  }

  .page-user-accounts .ua-bottom-actions,
  .page-report-access .ra-modal-actions,
  .page-student-update .su-task-actions,
  .page-student-update .su-save-wrap {
    flex-direction: column;
    align-items: stretch;
  }

  .page-user-accounts .ua-bottom-actions .req-btn-cancel,
  .page-user-accounts .ua-bottom-actions .req-btn-save,
  .page-report-access .ra-modal-actions .req-btn-cancel,
  .page-report-access .ra-modal-actions .req-btn-save,
  .page-student-update .su-task-actions .pf-btn-new,
  .page-student-update .su-task-actions .req-btn-cancel,
  .page-student-update .su-save-wrap .pf-btn-new {
    width: 100%;
  }

  .page-user-accounts .ua-table-meta,
  .page-report-access .ra-table-meta,
  .page-faculty-file .ff-pager-row,
  .page-student-profile .sp-pager-row,
  .page-student-grade-file .sgf-pager-row,
  .page-bed-days .bd-pager-row,
  .page-bed-status .bs-pager-row {
    justify-content: flex-end;
  }

  .page-user-accounts .ua-table-meta,
  .page-report-access .ra-table-meta {
    justify-content: center;
  }

  .page-report-access .ra-table-meta {
    justify-content: flex-start;
  }

  .page-bed-status .bs-search-wrap,
  .page-bed-status #bsSearchBtn,
  .page-bed-status .bs-field {
    order: initial;
    flex: 1 1 100%;
  }

  .page-report-access .ra-search-wrap,
  .page-report-access .ra-type-filter,
  .page-faculty-file .ff-search-wrap,
  .page-student-profile .sp-search-wrap,
  .page-student-grade-file .sgf-search-wrap {
    min-width: 0;
    flex: 1 1 100%;
  }

  .page-bed-status .pf-search-wrap,
  .page-report-access .pf-search-wrap,
  .page-faculty-file .pf-search-wrap,
  .page-student-profile .pf-search-wrap,
  .page-student-grade-file .pf-search-wrap {
    min-width: 0;
  }

  .page-report-access .ra-toolbar,
  .page-faculty-file .ff-toolbar,
  .page-student-profile .sp-toolbar,
  .page-student-grade-file .sgf-toolbar {
    flex-wrap: wrap;
  }

  .page-student-profile .sp-toolbar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    width: 100%;
  }

  .page-student-profile .sp-search-wrap,
  .page-student-profile #spSearchBtn {
    width: 100%;
    flex: 1 1 100%;
  }

  .page-student-profile .sp-search-wrap .pf-search-wrap {
    width: 100%;
  }

  .page-student-profile .app-table-wrap {
    overflow-x: auto;
    overflow-y: visible;
  }

  .page-student-profile #spTable {
    min-width: 980px;
  }

  .page-student-profile #spTable th,
  .page-student-profile #spTable td {
    white-space: nowrap;
  }

  .page-report-access #raSearchBtn,
  .page-faculty-file #ffSearchBtn,
  .page-student-profile #spSearchBtn,
  .page-student-grade-file #sgfSearchBtn,
  .page-faculty-file #ffNewRecordBtn,
  .page-student-profile #spNewRecordBtn,
  .page-student-grade-file #sgfNewRecordBtn {
    width: 100%;
  }

  .page-report-access .ra-type-filter {
    margin-left: 0;
  }

  .page-faculty-file .ff-table-head,
  .page-student-profile .sp-table-head,
  .page-student-grade-file .sgf-table-head {
    align-items: stretch;
  }
}

.page-student-profile-config .spc-page {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.page-student-profile-config .spc-head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.page-student-profile-config .spc-back-link {
  text-decoration: none;
  color: #5e666f !important;
}

.page-student-profile-config .spc-back-link:hover,
.page-student-profile-config .spc-back-link:focus {
  text-decoration: none;
  color: #4f5861 !important;
  background: #eef1f4;
  border-color: #d0d6dd;
}

.page-student-profile-config .spc-back-link:visited {
  color: #5e666f !important;
}

.page-student-profile-config .spc-view-form-btn {
  font-size: 0.8rem;
  padding: 7px 12px;
}

.page-student-profile-config .spc-card {
  padding: 10px;
}

.page-student-profile-config .app-filter-label {
  white-space: normal;
  line-height: 1.2;
  display: block;
  margin-bottom: 4px;
}

.page-student-profile-config .app-filter-input {
  min-height: 36px;
  font-size: 0.82rem;
}

.page-student-profile-config .spc-grid-top,
.page-student-profile-config .spc-grid-contact,
.page-student-profile-config .spc-grid-birth,
.page-student-profile-config .spc-grid-address,
.page-student-profile-config .spc-grid-acad,
.page-student-profile-config .spc-grid-status,
.page-student-profile-config .spc-grid-transfer {
  display: grid;
  gap: 8px 10px;
  margin-bottom: 8px;
}

.page-student-profile-config .spc-grid-top {
  grid-template-columns: repeat(5, minmax(120px, 1fr)) minmax(140px, 170px);
}

.page-student-profile-config .spc-grid-contact,
.page-student-profile-config .spc-grid-birth,
.page-student-profile-config .spc-grid-address {
  grid-template-columns: repeat(5, minmax(120px, 1fr));
}

.page-student-profile-config .spc-grid-acad,
.page-student-profile-config .spc-grid-status {
  grid-template-columns: repeat(4, minmax(140px, 1fr));
}

.page-student-profile-config .spc-grid-transfer {
  grid-template-columns: minmax(190px, 2fr) minmax(130px, 1fr) minmax(190px, 2fr);
}

.page-student-profile-config .spc-field {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.page-student-profile-config .spc-field-grow {
  min-width: 0;
}

.page-student-profile-config .spc-field-sm {
  max-width: 120px;
}

.page-student-profile-config .spc-photo-box {
  border: 1px solid #d8e4dd;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  color: #9aa7a0;
  font-size: 0.76rem;
  min-height: 104px;
  padding: 6px;
  cursor: pointer;
  overflow: hidden;
}

.page-student-profile-config .spc-photo-input {
  display: none;
}

.page-student-profile-config .spc-photo-preview {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 6px;
}

.page-student-profile-config .spc-photo-icon {
  opacity: 0.8;
}

.page-student-profile-config .spc-checkline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #5d6b65;
  font-size: 0.74rem;
  margin-top: 8px;
}

.page-student-profile-config .spc-divider {
  border-top: 1px solid #d8e4dd;
  margin: 6px 0;
}

.page-student-profile-config .spc-transfer-row {
  margin: 2px 0 6px;
}

.page-student-profile-config .spc-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 4px;
}

@media (max-width: 1100px) {
  .page-student-profile-config .spc-grid-top,
  .page-student-profile-config .spc-grid-contact,
  .page-student-profile-config .spc-grid-birth,
  .page-student-profile-config .spc-grid-address,
  .page-student-profile-config .spc-grid-acad,
  .page-student-profile-config .spc-grid-status,
  .page-student-profile-config .spc-grid-transfer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-student-profile-config .spc-field-grow {
    grid-column: span 1;
  }

  .page-student-profile-config .spc-photo-box {
    min-height: 92px;
  }
}

@media (max-width: 760px) {
  .page-student-profile-config .spc-head-row {
    flex-direction: column;
    align-items: stretch;
  }

  .page-student-profile-config .spc-view-form-btn,
  .page-student-profile-config .spc-back-link,
  .page-student-profile-config .spc-actions .pf-btn-new {
    width: 100%;
  }

  .page-student-profile-config .spc-grid-top,
  .page-student-profile-config .spc-grid-contact,
  .page-student-profile-config .spc-grid-birth,
  .page-student-profile-config .spc-grid-address,
  .page-student-profile-config .spc-grid-acad,
  .page-student-profile-config .spc-grid-status,
  .page-student-profile-config .spc-grid-transfer {
    grid-template-columns: 1fr;
  }
}

.page-faculty-file-config .ffc-page {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.page-faculty-file-config .ffc-head-row {
  display: flex;
  justify-content: flex-start;
}

.page-faculty-file-config .ffc-back-link {
  text-decoration: none;
  color: #5e666f !important;
}

.page-faculty-file-config .ffc-back-link:hover,
.page-faculty-file-config .ffc-back-link:focus {
  text-decoration: none;
  color: #4f5861 !important;
  background: #eef1f4;
  border-color: #d0d6dd;
}

.page-faculty-file-config .ffc-back-link:visited {
  color: #5e666f !important;
}

.page-faculty-file-config .ffc-card {
  padding: 12px;
}

.page-faculty-file-config .ffc-section-title,
.page-faculty-file-config .ffc-subtitle {
  color: #0b5c36;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 0.9rem;
  line-height: 1.2;
  margin: 4px 0 10px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.page-faculty-file-config .ffc-section-title::before,
.page-faculty-file-config .ffc-subtitle::before {
  content: "";
  width: 4px;
  height: 14px;
  border-radius: 999px;
  background: #0f7b43;
  box-shadow: 0 0 0 1px rgba(15, 123, 67, 0.18);
}

.page-faculty-file-config .ffc-subtitle {
  margin-top: 12px;
}

.page-faculty-file-config .ffc-grid-top,
.page-faculty-file-config .ffc-grid-profile,
.page-faculty-file-config .ffc-grid-main,
.page-faculty-file-config .ffc-grid-edu {
  display: grid;
  gap: 9px 10px;
  margin-bottom: 10px;
}

.page-faculty-file-config .ffc-grid-top {
  grid-template-columns: minmax(240px, 2.1fr) minmax(150px, 1fr) minmax(150px, 1fr);
  align-items: flex-end;
}

.page-faculty-file-config .ffc-grid-top .app-filter-input,
.page-faculty-file-config .ffc-grid-top .app-filter-select,
.page-faculty-file-config .ffc-grid-main .app-filter-input,
.page-faculty-file-config .ffc-grid-main .app-filter-select {
  width: 100%;
}

.page-faculty-file-config .ffc-grid-main {
  grid-template-columns: repeat(5, minmax(120px, 1fr));
}

.page-faculty-file-config .ffc-grid-profile {
  grid-template-columns: repeat(3, minmax(180px, 1fr));
}

.page-faculty-file-config .ffc-grid-edu {
  grid-template-columns: 1fr 1.8fr 1fr 1fr;
}

.page-faculty-file-config .ffc-grid-personal {
  display: grid;
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  gap: 9px 10px;
  margin-bottom: 10px;
}

.page-faculty-file-config .ffc-grid-parent {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  gap: 9px 10px;
  margin-bottom: 10px;
}

.page-faculty-file-config .ffc-field {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.page-faculty-file-config .ffc-field-grow {
  grid-column: span 2;
}

.page-faculty-file-config .ffc-field .app-filter-input {
  min-height: 36px;
  font-size: 0.82rem;
}

.page-faculty-file-config .ffc-field .app-filter-select {
  min-height: 36px;
  font-size: 0.82rem;
}

.page-faculty-file-config .ffc-divider {
  border-top: 1px solid #deebe4;
  margin: 8px 0 10px;
}

.page-faculty-file-config .ffc-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  margin-bottom: 6px;
}

.page-faculty-file-config .ffc-list-title {
  margin: 0;
  color: #0b5c36;
  font-weight: 800;
  letter-spacing: 0.085em;
  text-transform: uppercase;
  font-size: 0.83rem;
  line-height: 1.2;
}

.page-faculty-file-config .ffc-add-btn {
  min-width: 78px;
  padding: 6px 10px;
  font-size: 0.76rem;
}

.page-faculty-file-config .ffc-table-wrap {
  margin-top: 4px;
  margin-bottom: 8px;
}

.page-faculty-file-config .ffc-table thead th,
.page-faculty-file-config .ffc-table tbody td {
  font-size: 0.78rem;
}

.page-faculty-file-config .ffc-table td:last-child .apst-action-btn {
  margin: 0 auto;
}

.page-faculty-file-config .ffc-table .apst-dropdown {
  position: fixed;
}

.page-faculty-file-config .ffc-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 10px;
}

@media (max-width: 980px) {
  .page-faculty-file-config .ffc-grid-top,
  .page-faculty-file-config .ffc-grid-profile,
  .page-faculty-file-config .ffc-grid-main,
  .page-faculty-file-config .ffc-grid-edu,
  .page-faculty-file-config .ffc-grid-personal,
  .page-faculty-file-config .ffc-grid-parent {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-faculty-file-config .ffc-field-grow {
    grid-column: span 1;
  }
}

@media (max-width: 760px) {
  .page-faculty-file-config .ffc-grid-top,
  .page-faculty-file-config .ffc-grid-profile,
  .page-faculty-file-config .ffc-grid-main,
  .page-faculty-file-config .ffc-grid-edu,
  .page-faculty-file-config .ffc-grid-personal,
  .page-faculty-file-config .ffc-grid-parent {
    grid-template-columns: 1fr;
  }

  .page-faculty-file-config .ffc-list-head {
    flex-direction: column;
    align-items: stretch;
  }

  .page-faculty-file-config .ffc-add-btn {
    width: 100%;
  }

  .page-faculty-file-config .ffc-actions {
    flex-direction: column;
  }

  .page-faculty-file-config .ffc-actions .pf-btn-new,
  .page-faculty-file-config .ffc-actions .req-btn-cancel {
    width: 100%;
  }
}

/* Unified registrar total row style for all tables */

.registrar-body .app-table tr[class$=-total-row] td,
.registrar-body .app-table tr[class$=-totals-row] td,
.registrar-body .app-table tr[class*=-total-][class$=-row] td,
.registrar-body .cfg-table tr[class$=-total-row] td,
.registrar-body .cfg-table tr[class$=-totals-row] td,
.registrar-body .cfg-table tr[class*=-total-][class$=-row] td,
.registrar-body .student-table tr[class$=-total-row] td,
.registrar-body .student-table tr[class$=-totals-row] td,
.registrar-body .student-table tr[class*=-total-][class$=-row] td,
.registrar-body .registrar-table tr[class$=-total-row] td,
.registrar-body .registrar-table tr[class$=-totals-row] td,
.registrar-body .registrar-table tr[class*=-total-][class$=-row] td {
  background: #f8fcf9 !important;
  color: #006837 !important;
  font-size: 0.82rem;
  font-weight: 700;
  border-top: 1px solid #dce7e1;
  text-align: left !important;
  white-space: nowrap;
  cursor: default;
}

.registrar-body .app-table [class$=-total-cell],
.registrar-body .cfg-table [class$=-total-cell],
.registrar-body .student-table [class$=-total-cell],
.registrar-body .registrar-table [class$=-total-cell] {
  text-align: left !important;
  white-space: nowrap;
}

.registrar-body .page-alumni-tracker .at-total-cell {
  display: table-cell !important;
  text-align: left !important;
}

.registrar-body .page-alumni-tracker .at-total-row td,
.registrar-body .page-alumni-tracker .at-total-cell,
.registrar-body .page-services-class-list .svc-total-row td,
.registrar-body .page-services-class-list .svc-total-cell,
.registrar-body .page-services-faculty-loads .rfl-list-total-row td,
.registrar-body .page-services-faculty-loads .rfl-totals-row td,
.registrar-body .page-services-faculty-loads .rfl-list-total-cell,
.registrar-body .page-services-faculty-loads .rfl-total-cell,
.registrar-body .page-student-discipline .sd-total-row td,
.registrar-body .page-student-discipline .sd-total-cell {
  color: #006837 !important;
  text-align: left !important;
  background: #f8fcf9 !important;
  display: table-cell !important;
}

.registrar-body .app-table tr[class$=-total-row]:hover,
.registrar-body .app-table tr[class$=-totals-row]:hover,
.registrar-body .app-table tr[class*=-total-][class$=-row]:hover,
.registrar-body .cfg-table tr[class$=-total-row]:hover,
.registrar-body .cfg-table tr[class$=-totals-row]:hover,
.registrar-body .cfg-table tr[class*=-total-][class$=-row]:hover,
.registrar-body .student-table tr[class$=-total-row]:hover,
.registrar-body .student-table tr[class$=-totals-row]:hover,
.registrar-body .student-table tr[class*=-total-][class$=-row]:hover,
.registrar-body .registrar-table tr[class$=-total-row]:hover,
.registrar-body .registrar-table tr[class$=-totals-row]:hover,
.registrar-body .registrar-table tr[class*=-total-][class$=-row]:hover {
  background-color: transparent !important;
}

/* Canonical lock for registrar total rows (prevents style regressions) */

.registrar-body tr.pf-total-row td,
.registrar-body tr.sf-total-row td,
.registrar-body tr.at-total-row td,
.registrar-body tr.se-total-row td,
.registrar-body tr.se-total-units-row td,
.registrar-body tr.sd-total-row td,
.registrar-body tr.svc-total-row td,
.registrar-body tr.rfl-list-total-row td,
.registrar-body tr.rfl-totals-row td,
.registrar-body tr.ff-total-row td,
.registrar-body tr.sp-total-row td,
.registrar-body tr.sgf-total-row td,
.registrar-body tr.bd-total-row td,
.registrar-body tr.bs-total-row td {
  background: #f8fcf9 !important;
  color: #006837 !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  border-top: 1px solid #dce7e1 !important;
  text-align: left !important;
  white-space: nowrap !important;
  display: table-cell !important;
}

.registrar-body .pf-total-cell,
.registrar-body .sf-total-cell,
.registrar-body .at-total-cell,
.registrar-body .se-total-cell,
.registrar-body .se-units-cell,
.registrar-body .sd-total-cell,
.registrar-body .svc-total-cell,
.registrar-body .rfl-list-total-cell,
.registrar-body .rfl-total-cell,
.registrar-body .ff-total-cell,
.registrar-body .sp-total-cell,
.registrar-body .sgf-total-cell,
.registrar-body .bd-total-cell,
.registrar-body .bs-total-cell {
  color: #006837 !important;
  text-align: left !important;
  white-space: nowrap !important;
  font-weight: 700 !important;
  display: table-cell !important;
}

.registrar-body tr.pf-total-row:hover,
.registrar-body tr.sf-total-row:hover,
.registrar-body tr.at-total-row:hover,
.registrar-body tr.se-total-row:hover,
.registrar-body tr.se-total-units-row:hover,
.registrar-body tr.sd-total-row:hover,
.registrar-body tr.svc-total-row:hover,
.registrar-body tr.rfl-list-total-row:hover,
.registrar-body tr.rfl-totals-row:hover,
.registrar-body tr.ff-total-row:hover,
.registrar-body tr.sp-total-row:hover,
.registrar-body tr.sgf-total-row:hover,
.registrar-body tr.bd-total-row:hover,
.registrar-body tr.bs-total-row:hover {
  background-color: transparent !important;
}

/* Consistent total typography: both label and value are bold on all pages */

.registrar-body tr[class*=total][class$=-row] td,
.registrar-body .pf-total-cell,
.registrar-body .sf-total-cell,
.registrar-body .at-total-cell,
.registrar-body .se-total-cell,
.registrar-body .se-units-cell,
.registrar-body .sd-total-cell,
.registrar-body .svc-total-cell,
.registrar-body .rfl-list-total-cell,
.registrar-body .rfl-total-cell,
.registrar-body .ff-total-cell,
.registrar-body .sp-total-cell,
.registrar-body .sgf-total-cell,
.registrar-body .bd-total-cell,
.registrar-body .bs-total-cell,
.registrar-body .cr-total-cell {
  color: #006837 !important;
  font-weight: 700 !important;
}

.registrar-body tr[class*=total][class$=-row] td strong,
.registrar-body .pf-total-cell strong,
.registrar-body .sf-total-cell strong,
.registrar-body .at-total-cell strong,
.registrar-body .se-total-cell strong,
.registrar-body .se-units-cell strong,
.registrar-body .sd-total-cell strong,
.registrar-body .svc-total-cell strong,
.registrar-body .rfl-list-total-cell strong,
.registrar-body .rfl-total-cell strong,
.registrar-body .ff-total-cell strong,
.registrar-body .sp-total-cell strong,
.registrar-body .sgf-total-cell strong,
.registrar-body .bd-total-cell strong,
.registrar-body .bs-total-cell strong,
.registrar-body .cr-total-cell strong {
  color: inherit !important;
  font-weight: 800 !important;
}

/* ===== Merged from css/registrar-faculty-loads.css ===== */

:root {
  --plp-green: #006837;
  --plp-green-dark: #005028;
  --plp-yellow: #ffd100;
  --plp-white: #ffffff;
  --plp-gray: #f5f5f5;
  --plp-border: #cccccc;
}

.rfl-wrap {
  padding: 24px;
}

.rfl-alert {
  border-radius: 10px;
  font-size: 0.9rem;
  margin-bottom: 16px;
}

.rfl-tabs {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-bottom: 14px;
  border-bottom: 2px solid rgba(0, 104, 55, 0.25);
}

.rfl-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: 6px 6px 0 0;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.9rem;
  color: #006837;
  border: 1px solid rgba(0, 104, 55, 0.35);
  border-bottom: none;
  background: #fff;
}

.rfl-tab.active {
  background: #006837;
  color: #fff;
  border-color: #006837;
}

.rfl-filters {
  display: flex;
  gap: 16px;
  align-items: flex-end;
  margin: 16px 0 10px;
  flex-wrap: wrap;
}

.rfl-filter-label {
  font-size: 0.65rem;
  letter-spacing: 0.35em;
  font-weight: 800;
  color: #5f5f5f;
  margin-bottom: 6px;
}

.rfl-select {
  min-width: 200px;
  font-size: 0.9rem;
}

.rfl-set-btn {
  min-width: 86px;
  height: 38px;
  font-weight: 700;
  background-color: #006837;
  border-color: #006837;
}

.rfl-set-btn:hover {
  background-color: #005028;
  border-color: #005028;
}

.rfl-faculty-pill {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  border-radius: 6px;
  background: #006837;
  color: #fff;
  font-weight: 800;
  font-size: 0.85rem;
  margin: 6px 0 16px;
}

.rfl-subject-line {
  font-size: 0.86rem;
  font-weight: 700;
  color: #555555;
  margin: 6px 0 4px;
}

.rfl-subject-schedule {
  font-size: 0.84rem;
  color: #5f5f5f;
  font-weight: 600;
  padding-left: 26px;
  line-height: 1.45;
}

.rfl-faculty-code {
  font-weight: 700;
  opacity: 0.95;
}

.rfl-search {
  margin-bottom: 14px;
}

.rfl-search-label {
  font-size: 0.65rem;
  letter-spacing: 0.35em;
  font-weight: 800;
  color: #5f5f5f;
  margin-bottom: 6px;
}

.rfl-search-form {
  position: relative;
  max-width: 360px;
}

.rfl-search-input {
  padding-right: 44px;
  border-radius: 6px;
  height: 38px;
  font-size: 0.9rem;
}

.rfl-search-btn {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: transparent;
  color: #9a9a9a;
  padding: 6px;
}

.rfl-search-btn:disabled {
  opacity: 0.5;
}

.rfl-meta {
  font-size: 0.85rem;
  color: #5f5f5f;
  margin-bottom: 10px;
}

.rfl-row {
  cursor: pointer;
}

.rfl-row:hover {
  background: rgba(0, 104, 55, 0.03);
}

.rfl-name-link {
  color: #006837;
  text-decoration: underline;
  font-weight: 600;
}

.rfl-name-link:hover {
  color: #005028;
}

.rfl-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.rfl-total {
  font-size: 0.9rem;
  color: #555555;
}

.rfl-total span {
  color: #006837;
  font-weight: 800;
}

.rfl-load-card {
  margin-top: 6px;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.rfl-course-title {
  font-size: 0.7rem;
  letter-spacing: 0.28em;
  font-weight: 900;
  color: #006837;
  margin: 18px 0 8px;
}

.rfl-schedule-box {
  background: #f2fbf5;
  border: 2px solid rgba(0, 104, 55, 0.28);
  border-radius: 14px;
  padding: 16px 18px;
  box-shadow: 0 6px 16px rgba(0, 104, 55, 0.12);
  margin-bottom: 20px;
}

.rfl-year-title {
  font-weight: 800;
  color: #555555;
  margin: 10px 0 6px;
}

.rfl-schedule-line {
  font-size: 0.85rem;
  color: #555555;
  line-height: 1.45;
}

.rfl-line-code {
  font-weight: 800;
  margin-right: 6px;
}

.rfl-line-desc {
  font-weight: 700;
  margin-right: 6px;
}

.rfl-line-meta {
  color: #5f5f5f;
  font-weight: 600;
}

.rfl-loading-wrap {
  margin-top: 6px;
}

.rfl-loading-header {
  font-size: 0.65rem;
  letter-spacing: 0.28em;
  font-weight: 900;
  color: #006837;
  margin: 10px 0 8px;
}

.rfl-assign-form {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.rfl-assign-top {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
  width: 100%;
}

.rfl-subject-select {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
}

.rfl-add-btn {
  font-weight: 700;
  height: 38px;
  padding: 0 18px;
  white-space: nowrap;
  min-width: 130px;
}

.rfl-assign-options {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  width: 100%;
  margin-top: 8px;
}

.rfl-assign-options .form-check-input {
  accent-color: #006837;
}

.rfl-assign-options .form-check-input:checked {
  background-color: #006837;
  border-color: #006837;
}

.rfl-assign-options .form-check-input:focus {
  border-color: rgba(0, 104, 55, 0.6);
  box-shadow: 0 0 0 0.15rem rgba(0, 104, 55, 0.15);
}

.rfl-num-wrap {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.rfl-num-label {
  font-size: 0.82rem;
  color: #5f5f5f;
  font-weight: 700;
}

.rfl-num {
  width: 110px;
  height: 34px;
  font-size: 0.9rem;
}

.rfl-assigned-table {
  margin-top: 10px;
}

.rfl-totals-row td {
  border-top: none;
  padding-top: 10px;
}

.rfl-total-cell {
  text-align: left;
  font-weight: 900;
  color: #006837;
}

.rfl-list-total-row td,
.rfl-list-total-cell,
.rfl-totals-row td,
.rfl-total-cell {
  color: #006837 !important;
  text-align: left !important;
  background: #f8fcf9 !important;
  font-weight: 700 !important;
}

.rfl-list-total-row td strong,
.rfl-list-total-cell strong,
.rfl-totals-row td strong,
.rfl-total-cell strong {
  color: inherit !important;
  font-weight: 800 !important;
}

/* ===== Restored Admin Tools Layout Overrides (post styles.css merge) ===== */

.registrar-body .page-user-accounts .ua-filter-grid,
.registrar-body .page-bed-status .bs-toolbar,
.registrar-body .page-bed-days .bd-toolbar,
.registrar-body .page-report-access .ra-toolbar,
.registrar-body .page-faculty-file .ff-toolbar,
.registrar-body .page-student-profile .sp-toolbar,
.registrar-body .page-student-grade-file .sgf-toolbar {
  gap: 10px;
  align-items: flex-end;
}

.registrar-body .page-user-accounts .ua-filter-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(160px, 1fr)) auto auto !important;
}

.registrar-body .page-bed-status .bs-toolbar {
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-end;
}

.registrar-body .page-bed-days .bd-toolbar {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(130px, 1fr)) auto !important;
}

.registrar-body .page-report-access .ra-toolbar {
  display: flex !important;
  flex-wrap: nowrap;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 10px;
}

.registrar-body .page-faculty-file .ff-toolbar,
.registrar-body .page-student-profile .sp-toolbar,
.registrar-body .page-student-grade-file .sgf-toolbar {
  display: inline-flex !important;
  flex-wrap: nowrap;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 8px;
}

.registrar-body .page-faculty-file .ff-search-wrap,
.registrar-body .page-student-profile .sp-search-wrap,
.registrar-body .page-student-grade-file .sgf-search-wrap {
  flex: 1 1 420px;
  min-width: 0;
}

.registrar-body .page-report-access .ra-search-wrap {
  flex: 1 1 320px;
  min-width: 260px;
}

.registrar-body .page-report-access .ra-type-filter {
  margin-left: 0;
  min-width: 210px;
}

.registrar-body .page-report-access #raSearchBtn {
  margin-left: auto;
}

.registrar-body .page-faculty-file #ffSearchBtn,
.registrar-body .page-student-profile #spSearchBtn,
.registrar-body .page-student-grade-file #sgfSearchBtn {
  margin-left: 0;
}

.registrar-body .page-bed-status .pf-search-wrap,
.registrar-body .page-report-access .pf-search-wrap,
.registrar-body .page-faculty-file .pf-search-wrap,
.registrar-body .page-student-profile .pf-search-wrap,
.registrar-body .page-student-grade-file .pf-search-wrap {
  max-width: none;
  min-width: 360px;
}

.registrar-body .page-bed-status .pf-search-input,
.registrar-body .page-report-access .pf-search-input,
.registrar-body .page-faculty-file .pf-search-input,
.registrar-body .page-student-profile .pf-search-input,
.registrar-body .page-student-grade-file .pf-search-input {
  min-height: 38px;
  font-size: 0.85rem;
  line-height: 1.2;
}

.registrar-body .page-bed-status .bs-search-wrap {
  order: 1;
  flex: 1 1 420px;
}

.registrar-body .page-bed-status .bs-field {
  order: 2;
  flex: 0 1 130px;
}

.registrar-body .page-bed-status #bsSearchBtn {
  order: 3;
  margin-left: auto;
}

.registrar-body .page-bed-status .bs-table-head,
.registrar-body .page-faculty-file .ff-table-head,
.registrar-body .page-student-profile .sp-table-head,
.registrar-body .page-student-grade-file .sgf-table-head {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 8px;
}

@media (max-width: 900px) {
  .registrar-body .page-user-accounts .ua-filter-grid,
  .registrar-body .page-bed-days .bd-toolbar,
  .registrar-body .page-faculty-file .ff-toolbar,
  .registrar-body .page-student-profile .sp-toolbar,
  .registrar-body .page-student-grade-file .sgf-toolbar {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .registrar-body .page-report-access .ra-toolbar,
  .registrar-body .page-faculty-file .ff-toolbar,
  .registrar-body .page-student-profile .sp-toolbar,
  .registrar-body .page-student-grade-file .sgf-toolbar {
    flex-wrap: wrap;
  }

  .registrar-body .page-report-access .ra-search-wrap,
  .registrar-body .page-report-access .ra-type-filter,
  .registrar-body .page-faculty-file .ff-search-wrap,
  .registrar-body .page-student-profile .sp-search-wrap,
  .registrar-body .page-student-grade-file .sgf-search-wrap,
  .registrar-body .page-bed-status .bs-search-wrap,
  .registrar-body .page-bed-status #bsSearchBtn,
  .registrar-body .page-bed-status .bs-field {
    min-width: 0;
    flex: 1 1 100%;
    order: initial;
  }

  .registrar-body .page-bed-status .pf-search-wrap,
  .registrar-body .page-report-access .pf-search-wrap,
  .registrar-body .page-faculty-file .pf-search-wrap,
  .registrar-body .page-student-profile .pf-search-wrap,
  .registrar-body .page-student-grade-file .pf-search-wrap {
    min-width: 0;
  }

  .registrar-body .page-report-access #raSearchBtn,
  .registrar-body .page-faculty-file #ffSearchBtn,
  .registrar-body .page-student-profile #spSearchBtn,
  .registrar-body .page-student-grade-file #sgfSearchBtn,
  .registrar-body .page-faculty-file #ffNewRecordBtn,
  .registrar-body .page-student-profile #spNewRecordBtn,
  .registrar-body .page-student-grade-file #sgfNewRecordBtn {
    width: 100%;
  }

  .registrar-body .page-student-profile .sp-toolbar {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    width: 100%;
  }

  .registrar-body .page-student-profile .sp-search-wrap,
  .registrar-body .page-student-profile #spSearchBtn {
    width: 100%;
    flex: 1 1 100%;
  }

  .registrar-body .page-student-profile .sp-search-wrap .pf-search-wrap {
    width: 100%;
  }
}

:root {
  --plp-green: #006837;
  --plp-green-dark: #005028;
  --plp-yellow: #ffd100;
  --plp-white: #ffffff;
  --plp-gray: #f5f5f5;
  --plp-border: #cccccc;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  font-family: "Poppins", sans-serif;
  background-color: var(--plp-white);
  color: #333;
  height: 100%;
  overflow-x: hidden;
}

body {
  display: flex;
  flex-direction: column;
}

main {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
}

select,
select:focus,
select:active,
select:hover {
  outline: none !important;
  box-shadow: none !important;
}

.plp-header {
  background-color: var(--plp-green);
  width: 100%;
  min-height: 100px;
}

.plp-header-logo {
  width: auto;
  height: 80px;
  -o-object-fit: contain;
  object-fit: contain;
  flex-shrink: 0;
}

.plp-footer {
  background-color: var(--plp-white);
  border-top: 2px dashed #999;
  padding: 12px 20px;
  font-size: 0.88rem;
  color: #555555;
  z-index: 10;
  position: relative;
  margin-top: auto;
}

.footer-powered-line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px;
}

.footer-line-1,
.footer-line-2 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}

.plp-footer a {
  color: #333333;
  text-decoration: underline;
  font-weight: 600;
}

.plp-footer a:hover {
  color: var(--plp-green);
}

.footer-logo-rushpoint {
  display: inline-block;
  height: 32px;
  width: auto;
  vertical-align: middle;
  margin: 0 4px;
}

.footer-logo-obanana {
  display: inline-block;
  height: 30px;
  width: auto;
  vertical-align: middle;
  margin: 0 4px;
}

.obanana-text {
  color: #d4a017;
  font-size: 1rem;
  font-weight: 700;
}

.student-portal-body {
  background-color: #ffffff;
  min-height: 100vh;
}

.student-portal-body .student-layout {
  display: flex;
  min-height: 100vh;
  position: relative;
}

.student-portal-body .sidebar-overlay {
  display: none;
}

.student-portal-body .sidebar-toggle {
  display: none;
  border: 0;
  background: transparent;
  color: #333333;
  padding: 0;
}

.student-portal-body .plp-sidebar {
  width: 285px;
  min-width: 285px;
  background-color: #0a813c;
  border-top-right-radius: 22px;
  border-bottom-right-radius: 22px;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  box-shadow: 4px 0 14px rgba(0, 0, 0, 0.15);
  z-index: 5;
}

.student-portal-body .sidebar-brand {
  padding: 10px 14px 8px;
  border-bottom: 2px solid rgba(255, 255, 255, 0.9);
  margin-bottom: 10px;
}

.student-portal-body .sidebar-logo {
  width: 94px;
  height: auto;
  display: block;
  margin: 0 auto 4px;
}

.student-portal-body .sidebar-text-logo {
  width: 200px;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.student-portal-body .sidebar-nav {
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.student-portal-body .sidebar-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border-radius: 8px;
  color: #ffffff;
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  transition: all 0.2s ease;
}

.student-portal-body .sidebar-link svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.student-portal-body .sidebar-link span {
  font-size: 1rem;
  line-height: 1;
}

.student-portal-body .sidebar-link:hover {
  background-color: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

.student-portal-body .logout-link svg {
  width: 22px;
  height: 22px;
}

.student-portal-body .student-main-wrapper {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background-color: #ffffff;
  overflow-y: visible !important;
  overflow-x: hidden;
}

.student-portal-body .content-footer-wrap {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: calc(100vh - 72px);
  overflow-y: visible !important;
  overflow-x: hidden;
}

.student-portal-body .student-topbar {
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 28px;
  background-color: #ffffff;
  border-bottom: 1px solid #0a813c;
  position: relative;
  z-index: 10;
}

.student-portal-body .topbar-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
  border: 3px solid #ffffff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.student-portal-body .student-page-header {
  position: relative;
  margin-top: 6px;
  border-top: 2px solid #0a813c;
  height: 40px;
  background-color: #0a813c;
  color: #ffffff;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.6px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
}

.student-portal-body .student-content {
  flex: 0 0 auto;
  padding: 30px 28px 16px;
  overflow-y: visible !important;
  overflow-x: hidden;
  background-color: #ffffff;
}

.student-portal-body .student-main-wrapper .plp-footer {
  background-color: transparent;
  border-top: 1px dashed #a8a8a8;
  font-size: 11px;
  color: #555555;
  padding: 6px 12px 8px;
  margin-top: auto;
}

.student-portal-body .student-main-wrapper .plp-footer p {
  margin-bottom: 0;
  line-height: 1.15;
}

.student-portal-body .student-main-wrapper .plp-footer a {
  color: #5f5f5f;
}

@media (max-width: 991px) {
  .student-portal-body .plp-sidebar {
    width: 250px;
    min-width: 250px;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 1000;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
  }

  .student-portal-body .plp-sidebar.sidebar-open {
    transform: translateX(0);
  }

  .student-portal-body .sidebar-overlay {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease;
  }

  .student-portal-body .sidebar-overlay.active {
    opacity: 1;
    visibility: visible;
  }

  .student-portal-body .sidebar-toggle {
    display: inline-flex;
    align-items: center;
    margin-right: auto;
  }
}

@media (max-width: 768px) {
  .student-portal-body .student-content {
    padding: 16px 12px 10px;
  }

  .student-portal-body .student-page-header {
    font-size: 0.95rem;
    height: 36px;
  }
}

@media (max-width: 991px) {
  .registrar-body .plp-sidebar {
    width: 250px;
    min-width: 250px;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 1000;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    border-top-right-radius: 22px;
    border-bottom-right-radius: 22px;
  }

  .registrar-body .plp-sidebar.sidebar-open {
    transform: translateX(0);
  }

  .registrar-body .sidebar-overlay {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease;
  }

  .registrar-body .sidebar-overlay.active {
    opacity: 1;
    visibility: visible;
  }

  .registrar-body .sidebar-toggle {
    display: inline-flex;
    align-items: center;
    margin-right: auto;
  }
}

/* Access module reusable blocks */

.access-module-section {
  position: relative;
  text-align: center;
  padding: 0 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  min-height: calc(100vh - 200px);
  background: #efefef;
}

.bg-watermark {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.27;
  pointer-events: none;
}

.bg-watermark img {
  width: min(80vw, 700px);
  height: auto;
}

.access-module-title {
  font-size: clamp(2.1rem, 8vw, 5.5rem);
  font-weight: 900;
  color: transparent;
  text-transform: uppercase;
  letter-spacing: clamp(1px, 0.6vw, 6px);
  margin-bottom: 50px;
  position: relative;
  z-index: 1;
  -webkit-text-stroke: 3px var(--plp-green);
}

.module-cards-wrapper {
  position: relative;
  z-index: 1;
  max-width: 900px;
  width: 100%;
}

.module-card {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.module-card-icon {
  width: 100%;
  max-width: 200px;
  aspect-ratio: 1/1;
  border: 2px solid var(--plp-green);
  border-radius: 4px;
  background: #fff;
  margin-bottom: 12px;
}

.module-card-btn {
  display: inline-block;
  background-color: var(--plp-green);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 10px 32px;
  border: none;
  border-radius: 4px;
  text-decoration: none;
  letter-spacing: 0.4px;
  min-width: 150px;
  text-align: center;
}

.module-card-btn:hover {
  color: var(--plp-yellow);
  background-color: var(--plp-green-dark);
}

/* New module selector reusable blocks */

.am-section {
  position: relative;
  min-height: calc(100vh - 190px);
  overflow: hidden;
  background: #efefef;
}

.am-watermark {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.25;
  pointer-events: none;
}

.am-watermark img {
  width: min(70vw, 700px);
  height: auto;
}

.am-title {
  font-size: clamp(2.1rem, 8vw, 5.5rem);
  font-weight: 900;
  letter-spacing: clamp(1px, 0.6vw, 6px);
  color: transparent;
  -webkit-text-stroke: 3px #006837;
  line-height: 1;
  z-index: 1;
}

.am-cards-row {
  max-width: 900px;
  z-index: 1;
}

.am-card {
  max-width: 230px;
}

.am-card-box {
  width: 100%;
  aspect-ratio: 1/1;
  border: 2px solid #0a7d3f;
  border-radius: 4px;
  background: #ffffff;
  margin-bottom: 12px;
}

.am-btn {
  background-color: #006837;
  color: #fff;
  font-weight: 800;
  font-size: clamp(0.82rem, 1.4vw, 1rem);
  border-radius: 4px;
  padding: 8px 10px;
  letter-spacing: 0.4px;
}

.am-btn:hover,
.am-btn:focus {
  background-color: #005028;
  color: #ffd100;
}

/* Login */

.login-body {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.login-bg-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}

.login-bg-wrapper::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(218, 165, 32, 0.25);
  z-index: 1;
  pointer-events: none;
}

.login-main {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
  padding: 24px;
}

.login-card-wrapper {
  position: relative;
  width: 100%;
  max-width: 480px;
}

.login-card {
  background: #ffffff;
  border-radius: 12px;
  padding: 40px 36px 36px;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.25);
}

.login-card-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.6rem;
  font-weight: 900;
  color: #222;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 28px;
}

.login-field-group {
  margin-bottom: 20px;
}

.login-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: #0a7d3f;
  text-transform: uppercase;
  letter-spacing: 3px;
  margin-bottom: 6px;
}

.login-input {
  width: 100%;
  padding: 10px 14px;
  font-size: 0.95rem;
  font-family: "Poppins", sans-serif;
  border: 1px solid #ddd;
  border-radius: 6px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  color: #333;
  background: #fff;
}

.login-input::-moz-placeholder {
  color: #bbb;
}

.login-input::placeholder {
  color: #bbb;
}

.login-input:focus {
  border-color: #0a7d3f;
  box-shadow: 0 0 0 3px rgba(26, 110, 26, 0.12);
}

.login-input.is-invalid {
  border-color: #dc3545;
}

.login-password-wrapper {
  position: relative;
}

.login-password-wrapper .login-input {
  padding-right: 44px;
}

.password-toggle-btn {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  display: flex;
  align-items: center;
}

.password-toggle-btn:hover svg {
  fill: #0a7d3f;
}

.login-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.82rem;
  color: #555;
  margin-top: 6px;
}

.login-options .form-check-label {
  font-size: 0.82rem;
  color: #555;
}

.login-forgot {
  font-size: 0.82rem;
  color: #555;
}

.login-forgot a {
  color: #0a7d3f;
  font-weight: 700;
  text-decoration: underline;
}

.login-forgot a:hover {
  color: #145a14;
}

.login-submit-btn {
  display: inline-block;
  background-color: #0a7d3f;
  color: #ffffff;
  font-family: "Poppins", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  padding: 12px 60px;
  border: none;
  border-radius: 30px;
  cursor: pointer;
  letter-spacing: 0.5px;
  transition: all 0.2s ease;
  min-width: 200px;
}

.login-submit-btn:hover {
  background-color: #145a14;
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(26, 110, 26, 0.35);
}

.login-bg-wrapper .plp-footer {
  background-color: transparent;
  border-top: 2px dashed rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.85);
  position: relative;
  z-index: 2;
}

.login-bg-wrapper .plp-footer a {
  color: rgba(255, 255, 255, 0.95);
}

.login-bg-wrapper .plp-footer a:hover {
  color: #1a2a6c;
}

.login-bg-wrapper .plp-footer .obanana-text {
  color: #ffd700;
}

/* Form controls */

.form-label-plp {
  color: #006837;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 3px;
  margin-bottom: 7px;
}

.form-input-long,
.form-input-short {
  border: 1px solid #bfbfbf;
  border-radius: 8px;
  padding: 0 14px;
  font-size: 0.95rem;
  color: #555;
  font-family: "Poppins", sans-serif;
  background-color: #ffffff;
  height: 42px;
  width: 100%;
  box-shadow: none;
}

.form-input-long:focus,
.form-input-short:focus {
  outline: none;
  border-color: #9c9c9c;
  box-shadow: none;
}

/* Filter grid guarantees cross-row alignment */

.filter-grid {
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 14px 20px;
}

.filter-cell--action {
  align-self: end;
}

.btn-view-cor {
  width: 100%;
  height: 42px;
  background-color: #00843d;
  color: #ffffff;
  border: none;
  border-radius: 4px;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.24);
}

.btn-view-cor:hover {
  background-color: #006f33;
}

/* COR */

.section-offering-page .cor-scroll-wrapper {
  width: 100%;
  display: flex;
  justify-content: center;
}

.section-offering-page .cor-container {
  --cor-header-min-height: clamp(74px, 8vw, 86px);
  --cor-header-pad-y: clamp(8px, 1vw, 10px);
  --cor-header-pad-x: clamp(12px, 1.8vw, 18px);
  --cor-header-gap: clamp(8px, 1.2vw, 10px);
  --cor-logo-size: clamp(62px, 7vw, 74px);
  --cor-school-size: clamp(30px, 4.4vw, 36px);
  --cor-title-size: clamp(19px, 2.6vw, 24px);
  --cor-reg-size: clamp(13px, 1.5vw, 16px);
  border: 2px solid #000;
  border-radius: 0;
  padding: 0;
  background-color: #fff;
  overflow: hidden;
  width: 210mm;
  min-height: 250mm;
  margin-left: auto;
  margin-right: auto;
  transform-origin: top center;
}

.section-offering-page .cor-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-areas: "left . right" "title title title";
  align-items: center;
  padding: var(--cor-header-pad-y) var(--cor-header-pad-x);
  min-height: calc(var(--cor-header-min-height) + 14px);
  row-gap: 2px;
  background-color: #006837;
  border-bottom: 2px solid #006837;
}

.section-offering-page .cor-header-left {
  grid-area: left;
  display: flex;
  align-items: center;
  gap: var(--cor-header-gap);
}

.section-offering-page .cor-header-left img {
  width: auto;
  flex-shrink: 0;
  -o-object-fit: contain;
  object-fit: contain;
}

.section-offering-page .cor-logo {
  height: var(--cor-logo-size);
}

.section-offering-page .cor-school-text-img {
  height: var(--cor-school-size);
}

.section-offering-page .cor-header-center {
  grid-area: title;
  justify-self: center;
  align-self: center;
  text-align: center;
  padding: 0 12px;
  white-space: nowrap;
}

.section-offering-page .cor-title {
  font-family: "Roboto", "Poppins", sans-serif;
  font-size: var(--cor-title-size);
  font-weight: 800;
  color: #ffffff;
  text-transform: uppercase;
  margin: 0;
  line-height: 1;
}

.section-offering-page .cor-header-right {
  grid-area: right;
  text-align: right;
  white-space: nowrap;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  align-self: stretch;
  z-index: 2;
}

.section-offering-page .cor-label {
  font-size: 12px;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
  text-transform: uppercase;
}

.section-offering-page .cor-reg-number {
  font-size: var(--cor-reg-size);
  font-weight: 700;
  color: #ff3333;
  margin: 0;
}

.section-offering-page {
  --cor-col-name: 16%;
  --cor-col-desc: 28%;
  --cor-col-section: 10%;
  --cor-col-units: 8%;
  --cor-col-room: 8%;
  --cor-col-days: 10%;
  --cor-col-time: 12%;
  --cor-col-pay: 8%;
}

.section-offering-page .cor-student-info {
  padding: 20px 42px 12px;
  border-bottom: none !important;
  margin-bottom: 10px;
}

.section-offering-page .cor-info-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6px;
}

.section-offering-page .cor-info-row--grid {
  display: grid;
  grid-template-columns: 1fr 1fr 0.5fr !important;
  -moz-column-gap: 12px;
  column-gap: 12px;
  align-items: start;
  justify-content: start;
}

.section-offering-page .cor-info-row:last-child {
  margin-bottom: 0;
}

.section-offering-page .cor-info-group,
.section-offering-page .cor-info-col {
  display: flex;
  flex: 1;
  align-items: baseline;
  gap: 4px;
  min-width: 0;
  flex-direction: column;
}

.section-offering-page .cor-info-col {
  flex: 0 1 auto !important;
  width: -moz-fit-content !important;
  width: fit-content !important;
  justify-self: start !important;
  align-self: start !important;
}

.section-offering-page .cor-info-label,
.section-offering-page .cor-info-value {
  font-size: 12px;
  color: #000;
  font-weight: 700;
}

.section-offering-page .cor-info-label {
  white-space: nowrap;
}

.section-offering-page .cor-info-row--scholar {
  padding: 6px 0 8px;
  border-top: 1px dotted #000;
  border-bottom: 1px dotted #000;
}

.section-offering-page .cor-schedule-header {
  background-color: #006837;
  padding: 8px;
  text-align: center;
}

.section-offering-page .cor-schedule-title {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  margin: 0;
  letter-spacing: 1px;
}

.section-offering-page .cor-table {
  width: calc(100% - 84px);
  margin-left: auto;
  margin-right: auto;
  margin-top: 10px;
  border-collapse: collapse;
  border-spacing: 0;
  border: 1px solid #000;
  border-top: 1px solid #000;
}

.section-offering-page .cor-table thead {
  background-color: #fff;
  border-bottom: 1px solid #000;
  border-top: none;
}

.section-offering-page .cor-th,
.section-offering-page .cor-td {
  padding: 10px 12px;
  font-size: 12px;
  color: #000;
  font-weight: 700;
  border-left: 1px solid #000;
  border-right: 1px solid #000;
}

.section-offering-page .cor-th {
  text-align: center;
  white-space: nowrap;
  border-bottom: 1px solid #000 !important;
}

.section-offering-page .cor-td {
  text-align: left;
  vertical-align: top;
}

.section-offering-page .cor-table .cor-th:first-child,
.section-offering-page .cor-table .cor-td:first-child {
  padding-left: 24px;
}

.section-offering-page .cor-table .cor-th:last-child,
.section-offering-page .cor-table .cor-td:last-child {
  padding-right: 24px;
}

.section-offering-page .cor-table tbody tr {
  border-bottom: 1px solid #000;
}

.section-offering-page .cor-table tfoot tr {
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
}

.section-offering-page .cor-table-title {
  text-align: center;
  font-weight: 700;
  background: #fff;
  color: #000;
  border-bottom: 1px solid #000 !important;
}

.section-offering-page .cor-table thead tr:first-child th {
  border-top: none;
}

.section-offering-page .cor-total-label {
  text-align: right;
  font-weight: 700;
}

.section-offering-page .col-name {
  width: var(--cor-col-name);
}

.section-offering-page .col-desc {
  width: var(--cor-col-desc);
}

.section-offering-page .col-section {
  width: var(--cor-col-section);
}

.section-offering-page .col-units {
  width: var(--cor-col-units);
}

.section-offering-page .col-room {
  width: var(--cor-col-room);
}

.section-offering-page .col-days {
  width: var(--cor-col-days);
}

.section-offering-page .col-time {
  width: var(--cor-col-time);
}

.section-offering-page .col-pay {
  width: var(--cor-col-pay);
}

.section-offering-page .cor-td:nth-child(2) {
  white-space: normal;
}

.section-offering-page .cor-table .cor-th:nth-child(5),
.section-offering-page .cor-table .cor-th:nth-child(6),
.section-offering-page .cor-table .cor-th:nth-child(7),
.section-offering-page .cor-table .cor-td:nth-child(5),
.section-offering-page .cor-table .cor-td:nth-child(6),
.section-offering-page .cor-table .cor-td:nth-child(7) {
  white-space: nowrap;
}

.section-offering-page .cor-totals {
  padding: 15px 42px;
  border-top: 1px solid #000;
}

.section-offering-page .cor-totals-text {
  font-size: 12px;
  color: #000;
  margin: 0;
}

.section-offering-page .cor-note-bar {
  background-color: #006837;
  padding: 8px;
  text-align: center;
}

.section-offering-page .cor-note-text {
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  margin: 0;
}

.section-offering-page .cor-signatures {
  display: flex;
  justify-content: space-between;
  padding: 40px 80px 30px;
  margin-top: 20px;
}

.section-offering-page .cor-signature-left,
.section-offering-page .cor-signature-right {
  text-align: center;
  flex: 1;
  max-width: 300px;
}

.section-offering-page .cor-signature-left {
  margin-right: 80px;
}

.section-offering-page .cor-signature-right {
  margin-left: 80px;
}

.section-offering-page .cor-signature-name {
  font-size: 12px;
  font-weight: 700;
  color: #000;
  text-transform: uppercase;
  margin: 0 0 5px 0;
}

.section-offering-page .cor-signature-role {
  font-size: 12px;
  color: #555;
  margin: 0;
}

/* Schedule */

.sched-page-container {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.sched-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background-color: #ffffff;
  border: 2px solid #c0c0c0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.sched-th {
  background-color: #006837;
  color: #ffffff;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 0.85rem;
  padding: 12px 16px;
  text-align: center;
  letter-spacing: 0.3px;
}

.sched-td {
  font-family: "Poppins", sans-serif;
  font-size: 0.85rem;
  color: #333;
  padding: 12px 16px;
  text-align: center;
  border-bottom: 1px solid #c0c0c0;
}

.sched-table tbody tr:last-child .sched-td {
  border-bottom: none;
}

.sched-table tbody tr:hover {
  background-color: #f6fbf8;
}

.weekly-box {
  background-color: #ffffff;
  border-radius: 8px;
  padding: 24px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.weekly-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #006837;
  margin: 0 0 20px 0;
}

.weekly-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  overflow: hidden;
}

.weekly-col {
  display: flex;
  flex-direction: column;
  border-right: 1px solid #e0e0e0;
}

.weekly-col:last-child {
  border-right: none;
}

.weekly-day-header {
  background-color: #ffffff;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 0.78rem;
  color: #333;
  text-align: center;
  padding: 10px 4px;
  border-bottom: 1px solid #e0e0e0;
}

.weekly-day-body {
  flex: 1;
  padding: 8px 6px;
  min-height: 140px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.weekly-card {
  background-color: #006837;
  border-radius: 6px;
  padding: 10px 8px;
  text-align: center;
  color: #ffffff;
}

.wc-code {
  font-family: "Poppins", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  margin: 0 0 3px 0;
}

.wc-name {
  font-family: "Poppins", sans-serif;
  font-size: 0.68rem;
  font-weight: 400;
  margin: 0 0 5px 0;
  line-height: 1.3;
}

.wc-time,
.wc-room {
  font-family: "Poppins", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  margin: 0 0 3px 0;
}

.wc-room {
  margin: 0;
  letter-spacing: 0.3px;
}

.sched-scroll-wrapper,
.weekly-scroll-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
}

.sched-scroll-wrapper {
  border-radius: 8px;
}

.so-weekly {
  background: #ffffff;
  border: 1px solid #d7e2db;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(6, 61, 35, 0.08);
}

.so-weekly-title {
  margin: 0;
  padding: 14px 20px;
  background: #006837;
  color: #ffffff;
  font-size: 1.9rem;
  font-weight: 800;
  letter-spacing: 0.2px;
}

.so-weekly-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.so-weekly-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(150px, 1fr));
  width: 100%;
  min-width: 980px;
  border-top: 1px solid #d7e2db;
}

.so-weekly-col {
  border-right: 1px solid #d7e2db;
  background: #fbfdfb;
}

.so-weekly-col:last-child {
  border-right: none;
}

.so-weekly-day {
  background: #f3f8f4;
  color: #1f2a35;
  font-weight: 700;
  text-align: center;
  padding: 12px 8px;
  border-bottom: 1px solid #d7e2db;
}

.so-weekly-body {
  min-height: 220px;
  padding: 10px 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.so-weekly-card {
  background: linear-gradient(180deg, #0b8746 0%, #006837 100%);
  color: #ffffff;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 8px 14px rgba(0, 79, 39, 0.2);
  padding: 10px 8px;
  text-align: center;
}

.so-weekly-code {
  margin: 0 0 3px;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.3px;
}

.so-weekly-section {
  margin: 0 0 5px;
  font-size: 0.66rem;
  line-height: 1.25;
  font-weight: 600;
}

.so-weekly-time,
.so-weekly-room {
  margin: 0;
  font-size: 0.64rem;
  font-weight: 700;
}

.so-weekly-room {
  margin-top: 4px;
}

.so-weekly-empty {
  background: #f1f3f2;
  border: 1px dashed #c8d0cb;
  border-radius: 8px;
  color: #6d7a74;
  font-size: 0.72rem;
  font-weight: 600;
  text-align: center;
  padding: 10px 6px;
}

.sched-page-container .sched-filter-bar {
  margin-bottom: 2px;
}

.sched-page-container .sched-filter-row {
  justify-content: space-between;
}

.sched-page-container .sched-filter-group {
  max-width: 210px;
}

.sched-page-container .sched-filter-actions {
  margin-left: auto;
}

.sched-page-container .sched-download-btn {
  min-width: 210px;
  width: auto;
  font-size: 1rem;
}

.sched-print-meta {
  display: none;
  padding: 8px 20px 0;
  font-size: 0.82rem;
  color: #1f2a35;
  font-weight: 600;
}

.sched-print-head {
  display: none;
}

@media print {
@page {
    size: A4 landscape;
    margin: 10mm;
}

  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  body,
  .student-body {
    background: #ffffff !important;
  }

  .student-sidebar,
  .student-topbar,
  .sidebar-overlay,
  .student-page-header,
  .content-footer-wrap > footer,
  .content-footer-wrap .footer {
    display: none !important;
  }

  .student-main-wrapper,
  .content-footer-wrap,
  .student-content,
  .sched-page-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .student-layout {
    display: block !important;
    width: 100% !important;
  }

  .sched-page-container {
    gap: 12px !important;
  }

  .sched-filter-bar {
    display: none !important;
  }

  .sched-scroll-wrapper,
  .so-weekly-scroll {
    overflow: visible !important;
  }

  .sched-scroll-wrapper,
  .so-weekly {
    width: 100% !important;
    page-break-inside: avoid;
  }

  .sched-print-meta {
    display: none !important;
  }

  .sched-print-head {
    display: flex !important;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    border: 1px solid #cddbd4;
    background: #eef6f1;
    border-radius: 8px;
    padding: 8px 10px;
    font-size: 0.78rem;
    margin-bottom: 8px;
    color: #1f2a35;
  }

  .sched-print-head-left {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .sched-print-head-right {
    text-align: right;
    font-weight: 700;
    color: #0f5132;
  }

  .sched-table {
    width: 100% !important;
    table-layout: fixed;
    border-collapse: collapse;
    border: 1px solid #98a6a0 !important;
  }

  .sched-th,
  .sched-td {
    font-size: 0.74rem !important;
    padding: 7px 8px !important;
    white-space: normal !important;
    word-break: break-word;
    border-color: #b8c6bf !important;
  }

  .sched-th {
    background: #0b8746 !important;
    color: #ffffff !important;
    font-weight: 700;
  }

  .sched-table,
  .so-weekly {
    box-shadow: none !important;
    border-color: #b7b7b7 !important;
  }

  .so-weekly-grid {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .so-weekly {
    border: 1px solid #b7c5be !important;
    border-radius: 8px;
    overflow: visible !important;
  }

  .so-weekly-col {
    flex: 1 1 0;
    min-width: 0 !important;
    border-right: 1px solid #d7e3db;
  }

  .so-weekly-col:last-child {
    border-right: none;
  }

  .so-weekly-title {
    background: #0b8746 !important;
    color: #ffffff !important;
    font-size: 1.2rem !important;
    padding: 10px 12px !important;
    margin: 0 !important;
  }

  .sched-print-meta {
    background: #ecf5ef;
    border-top: 1px solid #d3dfd8;
    border-bottom: 1px solid #d3dfd8;
    padding: 6px 12px !important;
  }

  .so-weekly-day {
    background: #edf6ef !important;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 8px 4px;
    border-bottom: 1px solid #d7e3db;
  }

  .so-weekly-body {
    min-height: 128px !important;
    padding: 6px 4px !important;
    gap: 5px !important;
  }

  .so-weekly-card {
    background: #0b8746 !important;
    color: #ffffff !important;
    border: 1px solid #0a6f3b !important;
    border-radius: 8px;
    padding: 6px 4px;
    box-shadow: none !important;
  }

  .so-weekly-code,
  .so-weekly-section,
  .so-weekly-time,
  .so-weekly-room {
    font-size: 0.56rem;
  }
}

/* Toast */

.toast-notification {
  position: fixed;
  top: 20px;
  right: 20px;
  background-color: #d4edda;
  border: 1px solid #28a745;
  border-radius: 8px;
  padding: 15px 20px;
  display: none;
  align-items: center;
  gap: 15px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.toast-notification.show {
  display: flex;
  opacity: 1;
  visibility: visible;
}

.toast-message {
  font-size: 0.9rem;
  color: #155724;
  font-weight: 600;
  margin: 0;
}

.toast-close {
  background: none;
  border: none;
  font-size: 1.5rem;
  color: #155724;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  opacity: 0.7;
  transition: opacity 0.2s ease;
}

.toast-close:hover {
  opacity: 1;
}

.toast-notification.toast-error {
  background-color: #f8d7da;
  border-color: #dc3545;
}

.toast-notification.toast-error .toast-message,
.toast-notification.toast-error .toast-close {
  color: #842029;
}

/* Calendar */

.cal-controls {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.cal-nav {
  display: flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
}

.cal-btn {
  background: transparent;
  border: 1px solid rgba(16, 24, 32, 0.06);
  color: #333333;
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 6px 10px;
  cursor: pointer;
  line-height: 1.2;
  transition: background 0.12s ease, transform 0.08s ease, box-shadow 0.12s ease;
  border-radius: 4px;
  box-shadow: none;
}

.cal-btn svg {
  display: block;
}

.cal-btn:hover {
  background: #fafafa;
  transform: translateY(-1px);
}

.cal-btn:active {
  transform: translateY(0);
}

/* Calendar nav variants (minimal) */

.cal-nav .cal-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.cal-nav #prevMonthBtn,
.cal-nav #nextMonthBtn {
  width: 36px;
  height: 36px;
  padding: 0;
  border-radius: 999px;
  /* circular */
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.cal-nav #prevMonthBtn svg,
.cal-nav #nextMonthBtn svg {
  width: 16px;
  height: 16px;
}

.cal-nav #todayBtn {
  padding: 6px 12px;
  margin: 0 8px;
  background: transparent;
  color: #333333;
  border: 1px solid rgba(16, 24, 32, 0.06);
  font-weight: 600;
  border-radius: 4px;
}

.cal-nav #todayBtn:hover {
  background: #f6f6f6;
}

.cal-month-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #333333;
  margin: 0;
  line-height: 1.2;
  flex: 1;
  text-align: center;
}

.cal-legend {
  text-align: right;
  flex-shrink: 0;
}

.cal-legend strong {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #333333;
  margin-bottom: 5px;
}

.cal-legend-items {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.cal-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8rem;
  color: #333333;
}

.dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}

.dot-holiday {
  background-color: #e53935;
}

.dot-event {
  background-color: #1e6fe0;
}

/* Reuses .sched-th for the day-name header row */

.cal-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background-color: #fff;
  border: 2px solid #c0c0c0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
  table-layout: fixed;
}

.cal-td {
  vertical-align: top;
  padding: 10px 12px;
  border: 1px solid #c0c0c0;
  height: 110px;
  font-family: "Poppins", sans-serif;
  background-color: #fafafa;
  width: 14.2857142857%;
  position: relative;
}

.cal-td.empty-cell {
  background-color: #ebebeb;
}

.cal-td.today-cell {
  background-color: rgba(0, 104, 55, 0.1);
  border-color: rgba(0, 104, 55, 0.3);
}

.cal-td.holiday-cell {
  background-color: rgba(229, 57, 53, 0.12);
  border-color: rgba(229, 57, 53, 0.35);
}

.cal-td.event-cell {
  background-color: rgba(30, 111, 224, 0.1);
  border-color: rgba(30, 111, 224, 0.3);
}

.day-number {
  font-size: 1rem;
  font-weight: 600;
  color: #333333;
  line-height: 1;
}

.cal-td.today-cell .day-number {
  color: #006837;
}

.cal-td.holiday-cell .day-number {
  color: #c62828;
}

.cal-td.event-cell .day-number {
  color: #1565c0;
}

.cal-event-label {
  position: absolute;
  bottom: 8px;
  right: 10px;
  left: 10px;
  font-size: 0.6rem;
  font-weight: 700;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: right;
}

.cal-td.holiday-cell .cal-event-label {
  color: #c62828;
}

.cal-td.event-cell .cal-event-label {
  color: #1565c0;
}

/* Profile / Setup Wizard */

.setup-steps {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}

.step-item {
  flex-shrink: 0;
}

.step-pill {
  padding: 7px 22px;
  border-radius: 30px;
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  font-weight: 700;
  border: 2px solid #006837;
  background-color: #fff;
  color: #006837;
  white-space: nowrap;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  transition: background 0.2s, color 0.2s;
  cursor: pointer;
}

.step-item.active .step-pill {
  background-color: #006837;
  color: #fff;
}

.step-item.completed .step-pill {
  background-color: #005028;
  color: #fff;
}

.step-line {
  flex: 1;
  height: 2px;
  background-color: #ccc;
  margin: 0 4px;
  transition: background 0.2s;
}

.step-line.active {
  background-color: #006837;
}

.setup-form-container {
  background: #fff;
  border-radius: 8px;
  padding: 32px 36px;
  border: 2px dashed #006837;
  margin-bottom: 20px;
}

.setup-section {
  margin-bottom: 28px;
}

.setup-section-header {
  border-bottom: 2px solid #006837;
  margin-bottom: 20px;
  padding-bottom: 4px;
}

.setup-section-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: #333333;
  margin: 0;
}

.setup-subsection-title {
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: #006837;
  margin: 0 0 12px;
}

.setup-divider {
  border: none;
  border-top: 1px solid #e8e8e8;
  margin: 20px 0;
}

.setup-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
  align-items: flex-end;
}

.setup-col {
  flex: 1;
  min-width: 130px;
}

.setup-col-sm {
  flex: 0 0 90px;
  min-width: 80px;
}

.setup-col-toggle {
  flex: 1;
  min-width: 200px;
  display: flex;
  align-items: center;
}

.setup-label {
  color: #006837;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 3px;
  margin-bottom: 7px;
  display: block;
}

.setup-input {
  border: 1px solid #bfbfbf;
  border-radius: 8px;
  padding: 0 14px;
  font-size: 0.95rem;
  color: #555;
  font-family: "Poppins", sans-serif;
  background-color: #ffffff;
  height: 42px;
  width: 100%;
  box-shadow: none;
  outline: none;
  -webkit-appearance: auto;
  -moz-appearance: auto;
  appearance: auto;
}

.setup-input:focus {
  border-color: #9c9c9c;
  box-shadow: none;
}

.setup-input:disabled {
  background-color: #f0f0f0;
  color: #aaa;
  cursor: not-allowed;
  border-color: #e0e0e0;
}

.setup-input[readonly] {
  background-color: #f7f7f7;
  color: #555555;
  cursor: default;
  border-color: #e8e8e8;
}

.religion-back-btn {
  display: inline-block;
  margin-top: 5px;
  background: none;
  border: none;
  padding: 0;
  font-size: 0.72rem;
  color: #006837;
  cursor: pointer;
  font-family: "Poppins", sans-serif;
}

.religion-back-btn:hover {
  text-decoration: underline;
}

.religion-input-wrap {
  position: relative;
}

.religion-input-wrap .setup-input {
  padding-right: 34px;
}

.religion-back-arrow {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 0;
  font-size: 1rem;
  line-height: 1;
  color: #555555;
  cursor: pointer;
  font-family: "Poppins", sans-serif;
}

.religion-back-arrow:hover {
  color: #006837;
}

.setup-helper {
  display: block;
  font-size: 0.72rem;
  color: #555555;
  margin-top: 5px;
  line-height: 1.4;
}

.setup-input-inline {
  height: 36px;
  font-size: 0.85rem;
  margin-top: 6px;
  border-radius: 4px;
}

.setup-personal-top {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.setup-personal-left {
  flex: 1;
  min-width: 0;
}

.setup-profile-photo {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.profile-photo-square {
  width: 110px;
  height: 110px;
  border: 2px solid #ccc;
  border-radius: 4px;
  background: #f5f5f5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.profile-photo-square img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.profile-photo-icon {
  width: 38px;
  height: 38px;
  color: #aaa;
}

.profile-photo-btn {
  display: inline-block;
  font-family: "Poppins", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  color: #555555;
  background: #f0f0f0;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 4px 10px;
  cursor: pointer;
  white-space: nowrap;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  text-align: center;
  transition: background 0.15s;
}

.profile-photo-btn:hover {
  background: #e0e0e0;
}

.setup-radio-group {
  display: flex;
  align-items: center;
  gap: 18px;
  height: 42px;
}

.setup-radio {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  color: #333333;
  cursor: pointer;
  white-space: nowrap;
}

.setup-radio input[type=radio] {
  accent-color: #006837;
  width: 15px;
  height: 15px;
  cursor: pointer;
}

.setup-same-address {
  margin: 10px 0 14px;
}

.setup-checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  color: #333333;
  cursor: pointer;
}

.setup-checkbox-label input[type=checkbox] {
  accent-color: #006837;
  width: 15px;
  height: 15px;
  cursor: pointer;
}

.setup-toggles {
  margin: 18px 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.setup-toggle-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 40px;
}

.setup-toggle-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  flex: 1;
  min-width: 240px;
}

.toggle-switch {
  position: relative;
  display: inline-block;
  width: 42px;
  height: 23px;
  flex-shrink: 0;
  margin-top: 2px;
}

.toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.toggle-slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background-color: #ccc;
  border-radius: 23px;
  transition: background 0.25s;
}

.toggle-slider::before {
  content: "";
  position: absolute;
  width: 17px;
  height: 17px;
  left: 3px;
  bottom: 3px;
  background-color: #fff;
  border-radius: 50%;
  transition: transform 0.25s;
}

.toggle-switch input:checked + .toggle-slider {
  background-color: #006837;
}

.toggle-switch input:checked + .toggle-slider::before {
  transform: translateX(19px);
}

.toggle-text {
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  color: #333333;
  line-height: 1.45;
}

.setup-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 6px;
}

.setup-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  color: #333333;
  cursor: pointer;
}

.setup-checkbox input[type=checkbox] {
  accent-color: #006837;
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  cursor: pointer;
}

.setup-address-preview {
  background: #f9f9f9;
  border: 1px solid #e4e4e4;
  border-radius: 4px;
  padding: 14px 16px;
  margin-top: 18px;
}

.address-preview-title {
  font-family: "Poppins", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  color: #555555;
  margin: 0 0 6px;
  text-transform: uppercase;
}

.address-preview-text {
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  color: #333333;
  margin: 0 0 4px;
}

.address-preview-text.is-empty {
  color: #bbb;
  font-style: italic;
  font-size: 0.8rem;
}

.address-preview-format {
  font-size: 0.7rem;
  color: #555555;
  margin: 0;
}

.setup-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid #ebebeb;
  margin-top: 4px;
}

.btn-setup-prev {
  background: #fff;
  border: 2px solid #006837;
  color: #006837;
  font-family: "Poppins", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 9px 28px;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.btn-setup-prev:hover {
  background: #006837;
  color: #fff;
}

.btn-setup-next,
.btn-setup-submit {
  background: #006837;
  border: none;
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 9px 36px;
  border-radius: 4px;
  cursor: pointer;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
  transition: background 0.15s;
}

.btn-setup-prev:disabled,
.btn-setup-next:disabled,
.btn-setup-submit:disabled,
.btn-setup-prev.is-loading,
.btn-setup-next.is-loading,
.btn-setup-submit.is-loading {
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.72;
  box-shadow: none;
}

.btn-setup-next:hover,
.btn-setup-submit:hover {
  background: #005028;
}

@media (max-width: 991px) {
  .filter-grid {
    grid-template-columns: 1fr;
  }

  .filter-cell--action {
    align-self: stretch;
  }

  .cal-controls {
    flex-direction: column;
    align-items: stretch;
  }

  .cal-month-title {
    text-align: center;
    font-size: 1.25rem;
  }

  .cal-legend {
    text-align: left;
  }

  .cal-legend-items {
    justify-content: flex-start;
  }

  .cal-td {
    height: 52px;
    padding: 5px 6px;
  }

  .day-number {
    font-size: 0.8rem;
  }
}

@media (max-width: 768px) {
  .login-card {
    padding: 30px 24px 28px;
  }

  .login-card-title {
    font-size: 1.3rem;
  }

  .login-options {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .form-label-plp {
    letter-spacing: 1.8px;
  }

  .btn-view-cor {
    font-size: 1rem;
  }

  .sched-th,
  .sched-td {
    padding: 9px 10px;
    font-size: 0.78rem;
    white-space: nowrap;
  }

  .weekly-grid {
    display: flex;
    min-width: -moz-max-content;
    min-width: max-content;
  }

  .weekly-col {
    min-width: 100px;
  }

  .weekly-box {
    padding-bottom: 16px;
  }

  .so-weekly-title {
    font-size: 1.45rem;
    padding: 12px 16px;
  }

  .so-weekly-grid {
    min-width: 860px;
  }

  .so-weekly-body {
    min-height: 190px;
  }

  .setup-form-container {
    padding: 18px 16px;
  }

  .setup-personal-top {
    flex-direction: column-reverse;
    align-items: center;
  }

  .setup-col,
  .setup-col-sm,
  .setup-col-toggle {
    flex: 0 0 100%;
    min-width: 0;
  }

  .setup-toggle-item {
    min-width: 100%;
  }

  .setup-steps {
    overflow-x: auto;
    padding-bottom: 4px;
  }

  .step-pill {
    padding: 5px 14px;
    font-size: 0.8rem;
  }
}

@media (max-width: 575.98px) {
  .am-title {
    -webkit-text-stroke: 2px #006837;
  }
}

@media (max-width: 480px) {
  .login-submit-btn {
    padding: 10px 40px;
    font-size: 1rem;
  }

  .sched-th,
  .sched-td {
    padding: 8px 8px;
    font-size: 0.72rem;
  }

  .weekly-col {
    min-width: 88px;
  }

  .wc-code,
  .wc-name,
  .wc-time,
  .wc-room {
    font-size: 0.62rem;
  }

  .weekly-day-header {
    font-size: 0.68rem;
    padding: 8px 4px;
  }

  .weekly-card {
    padding: 7px 5px;
  }

  .weekly-title {
    font-size: 0.95rem;
  }

  .weekly-box {
    padding: 16px;
  }

  .so-weekly-title {
    font-size: 1.2rem;
  }

  .so-weekly-grid {
    min-width: 760px;
  }

  .so-weekly-day {
    font-size: 0.76rem;
    padding: 9px 6px;
  }

  .so-weekly-card {
    padding: 8px 6px;
  }

  .so-weekly-code,
  .so-weekly-section,
  .so-weekly-time,
  .so-weekly-room {
    font-size: 0.6rem;
  }
}

@media print {
@page {
    size: A4 portrait;
    margin: 0.35in 1in;
}

  html,
  body.student-portal-body,
  .student-layout,
  .student-main-wrapper,
  .content-footer-wrap,
  .student-content,
  .section-offering-page .cor-scroll-wrapper {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
    background: #fff !important;
  }

  .plp-sidebar,
  .student-topbar,
  .student-page-header,
  #filter-section,
  .plp-footer {
    display: none !important;
  }

  .section-offering-page .cor-container {
    display: block !important;
    zoom: 1 !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0;
    box-shadow: none;
  }

  .section-offering-page,
  .section-offering-page * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .section-offering-page .cor-container {
    font-family: "Times New Roman", Times, serif !important;
  }

  .section-offering-page .cor-container * {
    font-family: inherit;
  }

  .section-offering-page .cor-info-label,
  .section-offering-page .cor-info-value,
  .section-offering-page .cor-th,
  .section-offering-page .cor-td,
  .section-offering-page .cor-totals-text,
  .section-offering-page .cor-note-text,
  .section-offering-page .cor-signature-name,
  .section-offering-page .cor-signature-role,
  .section-offering-page .cor-label,
  .section-offering-page .cor-schedule-title,
  .section-offering-page .cor-title,
  .section-offering-page .cor-reg-number {
    font-size: 16px !important;
  }

  .section-offering-page .cor-student-info {
    padding-left: 42px !important;
    padding-right: 42px !important;
  }

  .section-offering-page .cor-table .cor-th:first-child,
  .section-offering-page .cor-table .cor-td:first-child {
    padding-left: 24px !important;
  }

  .section-offering-page .cor-table .cor-th:last-child,
  .section-offering-page .cor-table .cor-td:last-child {
    padding-right: 24px !important;
  }

  .section-offering-page .cor-totals {
    padding-left: 42px !important;
    padding-right: 42px !important;
  }

  .section-offering-page .cor-signatures {
    padding-left: 80px !important;
    padding-right: 80px !important;
  }
}

.req {
  color: #dc3545;
  margin-left: 2px;
}

.visually-hidden,
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.u-nowrap {
  white-space: nowrap !important;
}

.u-text-center {
  text-align: center !important;
}

/* Remark status colors */

.remark-passed {
  color: #006837;
  font-weight: 700;
}

.remark-incomplete,
.remark-nyp {
  color: #dc3545;
  font-weight: 700;
}

.remark-nyp {
  /* fallback for any special overrides, now same as incomplete */
  color: #dc3545;
  font-weight: 700;
}

.section-offering-page {
  max-width: 1080px;
  margin: 0;
  padding: 6px 0 0;
}

/* Grades page */

.grades-page {
  max-width: 1080px;
  margin: 0;
  padding: 6px 0 0;
}

/* Events page */

.events-page {
  max-width: 100%;
  margin: 0 auto;
  padding: 6px 0 0;
}

/* Profile / setup wizard */

.profile-page {
  max-width: 1080px;
  margin: 0 auto;
  padding: 6px 0 0;
}

.profile-save-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #e9f7ef;
  border: 1px solid #006837;
  color: #004d28;
  border-radius: 6px;
  padding: 10px 16px;
  margin-bottom: 14px;
  font-size: 0.9rem;
  font-weight: 500;
}

.profile-save-banner button {
  background: none;
  border: none;
  color: #006837;
  font-size: 1rem;
  cursor: pointer;
  line-height: 1;
}

.profile-save-banner.profile-error-banner {
  background: #fdecea;
  border-color: #c0392b;
  color: #7b0f0f;
}

.profile-save-banner.profile-error-banner button {
  color: #c0392b;
}

.grades-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Left-align Code & Course columns, keep numerics centered */

.grades-page .sched-th:nth-child(1),
.grades-page .sched-th:nth-child(2),
.grades-page .sched-td:nth-child(1),
.grades-page .sched-td:nth-child(2) {
  text-align: left;
}

@media (max-width: 991px) {
  .section-offering-page,
  .grades-page,
  .events-page,
  .profile-page {
    max-width: 100%;
  }
}

@media (max-width: 768px) {
  .section-offering-page,
  .grades-page,
  .events-page,
  .profile-page {
    padding-top: 0;
  }
}

/* Applicant form helpers migrated from inline styles */

.step-hidden {
  display: none;
}

.setup-photo-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.setup-photo-img--hidden {
  display: none;
}

.setup-subsection-title--mt18 {
  margin-top: 18px;
}

.setup-radio-group--spaced {
  height: auto;
  gap: 16px;
  margin-top: 4px;
}

.setup-col--flex-3 {
  flex: 3;
}

.setup-col--flex-23 {
  flex: 2.3;
}

.setup-col--flex-2 {
  flex: 2;
}

.setup-col--flex-16 {
  flex: 1.6;
}

.setup-col--flex-14 {
  flex: 1.4;
}

.setup-col--flex-12 {
  flex: 1.2;
}

.setup-col--flex-1 {
  flex: 1;
}

.setup-col--flex-08 {
  flex: 0.8;
}

.setup-col--w-280 {
  flex: 0 0 280px;
  min-width: 280px;
}

.setup-col--w-220 {
  flex: 0 0 220px;
  min-width: 220px;
}

.setup-col--w-180 {
  flex: 0 0 180px;
  min-width: 180px;
}

.setup-col--w-160 {
  flex: 0 0 160px;
  min-width: 160px;
}

.setup-col--w-130 {
  min-width: 130px;
}

.setup-col--w-110 {
  min-width: 110px;
}

.setup-col--w-90 {
  min-width: 90px;
}

.setup-col--w-34 {
  flex: 0 0 34px;
  min-width: 34px;
}

.setup-row--app-meta {
  flex-wrap: nowrap;
  gap: 14px;
}

@media (max-width: 768px) {
  .setup-row--app-meta {
    flex-wrap: wrap;
  }
}

.pv-page {
  background: #006837;
  min-height: calc(100vh - 120px);
  padding: 20px;
  box-sizing: border-box;
}

.pv-layout {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  max-width: 1060px;
}

.pv-sidebar {
  background: #fff;
  border-radius: 10px;
  padding: 24px 18px 20px;
  width: 230px;
  min-width: 230px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.pv-avatar-wrap {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid #006837;
  margin-bottom: 12px;
  flex-shrink: 0;
}

.pv-avatar {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  display: block;
}

.pv-name {
  font-size: 0.8rem;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 4px;
  text-align: center;
  line-height: 1.3;
  word-break: break-word;
}

.pv-student-id {
  font-size: 0.75rem;
  color: #555;
  margin: 0 0 14px;
}

.pv-divider {
  width: 100%;
  border: none;
  border-top: 1px solid #ddd;
  margin: 0 0 14px;
}

.pv-meta-grid {
  width: 100%;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pv-meta-row {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.pv-meta-label {
  font-size: 0.6rem;
  font-weight: 700;
  color: #888;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pv-meta-value {
  font-size: 0.72rem;
  color: #222;
  font-weight: 500;
  word-break: break-all;
}

.pv-meta-email {
  color: #1a73e8;
}

.pv-meta-course {
  color: #006837;
  font-weight: 700;
}

.pv-btn-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  margin-top: 20px;
}

.pv-btn {
  display: block;
  width: 100%;
  padding: 10px;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: opacity 0.15s;
}

.pv-btn:hover {
  opacity: 0.85;
  text-decoration: none;
}

.pv-btn-edit {
  background: #006837;
  color: #fff;
}

.pv-btn-back {
  background: #006837;
  color: #fff;
}

.pv-body {
  flex: 1;
  min-width: 0;
}

.pv-body-title {
  color: #fff;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 14px;
}

.pv-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 16px;
}

.pv-tab {
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, 0.7);
  color: rgba(255, 255, 255, 0.85);
  border-radius: 4px;
  padding: 6px 14px;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  font-family: inherit;
}

.pv-tab:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #fff;
  color: #fff;
}

.pv-tab.active {
  background: #fff;
  border-color: #fff;
  color: #006837;
}

.pv-panel {
  display: none;
}

.pv-panel.active {
  display: block;
}

.pv-section-rule {
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  margin: 12px 0;
}

.pv-sub-heading {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 10px;
}

.pv-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.pv-row:last-child {
  border-bottom: none;
}

.pv-label {
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  min-width: 190px;
  max-width: 190px;
  flex-shrink: 0;
  padding-top: 1px;
}

.pv-sep {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.8rem;
  flex-shrink: 0;
  padding-top: 1px;
}

.pv-value {
  color: #fff;
  font-size: 0.8rem;
  font-weight: 600;
  flex: 1;
  min-width: 0;
  word-break: break-word;
}

.pv-row--multiline .pv-value {
  white-space: normal;
}

@media (max-width: 768px) {
  .pv-page {
    padding: 12px;
  }

  .pv-layout {
    flex-direction: column;
  }

  .pv-sidebar {
    width: 100%;
    min-width: unset;
  }

  .pv-label {
    min-width: 130px;
    max-width: 130px;
  }
}

.pv-page {
  background: rgba(0, 104, 55, 0.74);
  border-radius: 0;
  backdrop-filter: saturate(115%) blur(1px);
}

body.page-profile-view .content-footer-wrap {
  background-image: linear-gradient(rgba(0, 104, 55, 0.74), rgba(0, 104, 55, 0.74)), url(/images/schoolbg.png?73745313351ba4c1f04c5019d2bc9c31);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center top;
}

body.page-profile-view .student-main-wrapper {
  background-image: none !important;
}

body.page-profile-view .student-page-header {
  margin-top: 0;
  border-top: 0;
}

body.page-profile-view .student-content {
  background: transparent;
  padding: 0;
}

body.page-profile-view .plp-footer {
  background: transparent;
  border-top: 0;
  color: rgba(255, 255, 255, 0.92);
}

body.page-profile-view .plp-footer a {
  color: #ffffff;
}

body.page-profile-view .pv-page {
  min-height: calc(100vh - 118px);
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
}

body.page-profile-view .pv-layout {
  max-width: none;
  width: 100%;
  min-height: calc(100vh - 118px);
  gap: 18px;
  padding: 18px 22px 24px;
  box-sizing: border-box;
  position: relative;
  z-index: 1;
}

body.page-profile-view .pv-sidebar .pv-meta-grid {
  gap: 10px;
}

body.page-profile-view .pv-sidebar .pv-meta-row {
  display: grid;
  grid-template-columns: minmax(118px, 46%) minmax(0, 54%);
  align-items: center;
  -moz-column-gap: 12px;
       column-gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

body.page-profile-view .pv-sidebar .pv-meta-label {
  font-size: 0.68rem;
  letter-spacing: 0.05em;
  color: #4f5962;
  font-weight: 700;
  text-align: left;
  min-width: 0;
  white-space: nowrap;
}

body.page-profile-view .pv-sidebar .pv-meta-value {
  font-size: 0.76rem;
  font-weight: 700;
  color: #1f2428;
  text-align: right;
  min-width: 0;
  justify-self: end;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pv-sidebar {
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(255, 255, 255, 0.45);
  min-height: 100%;
}

.pv-sidebar-header {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.pv-sidebar-info {
  width: 100%;
  text-align: center;
}

.pv-avatar-wrap {
  margin: 0 auto 12px;
  border: 2px solid #3b3b3b;
}

.pv-avatar-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f0f4f2;
}

.pv-name {
  font-size: 0.92rem;
  text-transform: uppercase;
  margin: 0 0 6px;
}

.pv-student-id {
  color: #30353a;
  margin: 0 0 12px;
}

body.page-profile-view .pv-sidebar-header {
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
}

body.page-profile-view .pv-sidebar-info {
  text-align: left;
}

body.page-profile-view .pv-avatar-wrap {
  margin: 0 0 12px;
}

body.page-profile-view .pv-name,
body.page-profile-view .pv-student-id {
  text-align: left;
}

.pv-meta-grid {
  gap: 18px;
}

.pv-meta-row {
  flex-direction: row;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.pv-meta-label {
  font-size: 0.62rem;
  color: #4e5964;
  flex: 0 0 auto;
}

.pv-meta-value {
  text-align: right;
  font-size: 0.64rem;
  font-weight: 700;
  flex: 1;
}

.pv-btn-group {
  margin-top: auto;
  padding-top: 22px;
}

.pv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 8px;
}

.pv-btn-edit {
  background: rgba(255, 255, 255, 0.96);
  color: #006837;
  border: 1px solid rgba(0, 104, 55, 0.35);
}

.pv-btn-back {
  background: #0b8a47;
  color: #fff;
  border: 1px solid #0a7a3f;
}

.pv-body-title {
  margin: 6px 0 10px;
  font-size: 0.98rem;
}

.pv-tabs {
  gap: 8px;
  margin-bottom: 12px;
}

.pv-tab {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.52);
  color: #ffffff;
  font-size: 0.62rem;
  font-weight: 700;
  padding: 5px 12px;
}

.pv-tab.active {
  background: #f5f7f8;
  color: #1f2428;
  border-color: #f5f7f8;
}

.pv-panel-card {
  background: rgba(0, 104, 55, 0.38);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  padding: 8px 12px;
}

.pv-row {
  border-bottom-color: rgba(255, 255, 255, 0.16);
  padding: 6px 0;
}

.pv-label {
  font-size: 0.95rem;
  min-width: 165px;
  max-width: 165px;
  color: #f6f9f7;
  line-height: 1.1;
}

.pv-sep,
.pv-value {
  font-size: 0.95rem;
  color: #fff;
  line-height: 1.1;
}

.pv-value {
  font-weight: 700;
}

.pv-row--multiline {
  align-items: flex-start;
}

.pv-row--multiline .pv-value {
  max-width: 100%;
}

.pv-section-rule {
  border-top-color: rgba(255, 255, 255, 0.22);
}

.pv-sub-heading {
  color: rgba(255, 255, 255, 0.9);
}

@media (max-width: 992px) {
  .pv-label {
    min-width: 145px;
    max-width: 145px;
    font-size: 0.82rem;
  }

  .pv-sep,
  .pv-value {
    font-size: 0.82rem;
  }
}

.student-portal-body .sidebar-dropdown {
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

.student-portal-body .sidebar-dropdown .sidebar-link {
  margin: 0;
  border-radius: 12px;
}

.student-portal-body .sidebar-dropdown.open {
  background-color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  border-radius: 12px;
}

.student-portal-body .sidebar-dropdown.open .sidebar-link {
  color: #0a813c;
  font-weight: 700;
}

.student-portal-body .sidebar-dropdown-toggle {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}

.student-portal-body .sidebar-dropdown-toggle span {
  flex: 1;
}

.student-portal-body .sidebar-chevron {
  margin-left: auto;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.student-portal-body .sidebar-dropdown.open .sidebar-chevron {
  transform: rotate(180deg);
  color: #0a813c;
}

.student-portal-body .sidebar-dropdown-menu {
  display: none;
  flex-direction: column;
}

.student-portal-body .sidebar-dropdown.open .sidebar-dropdown-menu {
  display: flex;
}

.student-portal-body .sidebar-sublink {
  display: block;
  position: relative;
  padding: 8px 18px 8px 34px;
  color: #333;
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
  border-radius: 6px;
  transition: color 0.15s, background 0.15s;
}

.student-portal-body .sidebar-sublink::before {
  content: "\2022";
  position: absolute;
  left: 20px;
  color: inherit;
}

.student-portal-body .sidebar-sublink:hover {
  color: #0a813c;
  background-color: rgba(0, 104, 55, 0.06);
}

.student-portal-body .sidebar-sublink.active {
  color: #0a813c;
  font-weight: 700;
}

.student-portal-body .topbar-icons {
  display: flex;
  align-items: center;
  gap: 10px;
}

.student-portal-body .topbar-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: #f0f0f0;
  color: #444;
  text-decoration: none;
  transition: background 0.15s;
}

.student-portal-body .topbar-icon-link:hover {
  background-color: #e0e0e0;
  color: #222;
}

.student-table-wrapper {
  overflow-x: auto;
  border: 2px solid #c0c0c0;
  border-radius: 8px;
}

.student-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.88rem;
  background: #fff;
}

.student-table thead {
  background-color: #0a813c;
}

.student-table thead th {
  color: #fff;
  font-weight: 700;
  text-align: center;
  padding: 12px 16px;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.student-table tbody tr {
  transition: background-color 0.15s ease;
}

.student-table tbody tr:hover {
  background-color: #f0f7f0;
}

.student-table tbody td {
  padding: 14px 16px;
  text-align: center;
  vertical-align: middle;
  color: #333;
  border-bottom: 1px solid #c0c0c0;
}

.student-table tbody tr:last-child td {
  border-bottom: none;
}

.registrar-form-row {
  display: flex;
  gap: 16px;
  align-items: flex-end;
  margin-bottom: 24px;
}

.registrar-form-group {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.registrar-form-label {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--plp-green);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 4px;
  font-family: "Poppins", sans-serif;
}

.registrar-form-input {
  width: 100%;
  padding: 10px 14px;
  font-size: 0.85rem;
  font-family: "Poppins", sans-serif;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  background: #fff;
  color: #333;
  outline: none;
  transition: border-color 0.2s ease;
}

.registrar-form-input:focus {
  border-color: var(--plp-green);
}

.registrar-form-input::-moz-placeholder {
  color: #bbb;
}

.registrar-form-input::placeholder {
  color: #bbb;
}

.registrar-form-btn-group {
  flex: 0 0 auto;
}

.btn-registrar-save {
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: #fff;
  background-color: var(--plp-green);
  border: none;
  border-radius: 6px;
  padding: 10px 40px;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.15s ease;
  letter-spacing: 0.5px;
}

.btn-registrar-save:hover {
  background-color: var(--plp-green-dark);
  transform: translateY(-1px);
}

.registrar-table {
  table-layout: auto;
}

.registrar-table thead th {
  text-align: center;
}

.registrar-table thead th:last-child {
  text-align: left;
}

.registrar-table tbody td {
  text-align: center;
}

.registrar-table tbody td:last-child {
  text-align: left;
}

.doclist-page {
  padding: 4px 0;
}

.doclist-form-card {
  background: #fff;
  border: 1.5px solid #d0d0d0;
  border-radius: 10px;
  padding: 20px 24px;
  margin-bottom: 24px;
}

.doclist-options-row {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.doclist-radios {
  display: flex;
  align-items: center;
  gap: 18px;
}

.doclist-radio-label,
.doclist-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Poppins", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  color: #333;
  cursor: pointer;
}

.doclist-radio-label input[type=radio],
.doclist-radio-label input[type=checkbox],
.doclist-checkbox-label input[type=radio],
.doclist-checkbox-label input[type=checkbox] {
  accent-color: var(--plp-green);
  width: 16px;
  height: 16px;
  cursor: pointer;
}

.doclist-save-wrap {
  margin-left: auto;
}

.doclist-table thead th {
  text-align: center;
}

.doclist-table thead th:last-child {
  text-align: center;
}

.doclist-table tbody td {
  text-align: center;
}

.doclist-table tbody td:last-child {
  text-align: center;
}

.doclist-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.doclist-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  transition: background 0.15s, transform 0.1s;
}

.doclist-action-btn:hover {
  transform: translateY(-1px);
}

.doclist-edit-btn {
  background: #e8f5e9;
  color: #2e7d32;
}

.doclist-edit-btn:hover {
  background: #c8e6c9;
}

.doclist-delete-btn {
  background: #ffebee;
  color: #c62828;
}

.doclist-delete-btn:hover {
  background: #ffcdd2;
}

.batch-upload-wrapper {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.batch-dropzone {
  border: 2px dashed var(--plp-green);
  border-radius: 8px;
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  background: #fff;
}

.batch-dropzone:hover,
.batch-dropzone.dragover {
  background-color: #f0f7f0;
  border-color: #005028;
}

.dropzone-text {
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: #999;
  margin: 0;
  pointer-events: none;
}

.batch-upload-note {
  padding: 0;
}

.batch-upload-note p {
  font-family: "Poppins", sans-serif;
  font-size: 0.85rem;
  color: #333;
  margin: 0;
  line-height: 1.6;
}

@media (max-width: 991px) {
  .registrar-body .registrar-form-row {
    gap: 12px;
  }
}

@media (max-width: 768px) {
  .registrar-body .registrar-form-row {
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
  }

  .registrar-body .registrar-form-group[style*="flex: 2"] {
    flex: 1 !important;
  }

  .registrar-body .registrar-form-btn-group {
    align-self: flex-start;
  }

  .registrar-body .student-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .registrar-body .student-table thead th {
    padding: 10px 12px;
    font-size: 0.75rem;
  }

  .registrar-body .student-table tbody td {
    padding: 10px 12px;
    font-size: 0.82rem;
  }

  .registrar-body .btn-registrar-save {
    padding: 8px 28px;
    font-size: 0.82rem;
  }

  .registrar-body .registrar-form-input {
    padding: 8px 12px;
    font-size: 0.82rem;
  }
}

.reg-dashboard {
  padding: 4px 0;
}

.reg-stat-card-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: #555;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.reg-stat-card-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-top: 4px;
}

.reg-stat-left {
  display: flex;
  flex-direction: column;
}

.reg-stat-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.reg-stat-sparkline {
  width: 150px;
  flex-shrink: 0;
  overflow: visible;
  display: block;
}

.reg-applicants-dept {
  font-size: 0.9rem;
  font-weight: 700;
  color: #c2607a;
  margin-top: 4px;
}

.reg-announce-card,
.reg-schedule-card {
  background: #fff;
  border: 1.5px solid #d0d0d0;
  border-radius: 14px;
  padding: 18px 20px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
}

.reg-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.reg-card-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1a1a2e;
}

.reg-card-date {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.78rem;
  color: #888;
  cursor: pointer;
}

.reg-announce-text {
  flex: 1;
  min-width: 0;
}

.reg-announce-title {
  font-size: 0.85rem;
  font-weight: 600;
  color: #1a1a2e;
  line-height: 1.3;
  margin-bottom: 3px;
}

.reg-announce-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  margin-left: 10px;
  color: #aaa;
}

.reg-announce-actions svg {
  cursor: pointer;
}

.reg-announce-actions svg:hover {
  color: #006837;
}

.reg-see-all {
  display: block;
  text-align: center;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #f0f0f0;
  font-size: 0.85rem;
  font-weight: 600;
  color: #006837;
  text-decoration: none;
}

.reg-see-all:hover {
  text-decoration: underline;
}

.reg-sched-priority-label,
.reg-sched-other-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #888;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 8px;
  margin-top: 4px;
}

.reg-sched-other-label {
  margin-top: 14px;
}

.reg-sched-dots {
  font-size: 1.3rem;
  color: #ccc;
  letter-spacing: 2px;
  cursor: pointer;
  padding: 2px 4px;
  flex-shrink: 0;
  line-height: 1;
}

.reg-sched-dots:hover {
  color: #006837;
}

.reg-dash-top {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 24px;
  align-items: flex-start;
}

.reg-stat-card {
  width: -moz-fit-content;
  width: fit-content;
  min-width: 300px;
  background: #fff;
  border: 1.5px solid #d0d0d0;
  border-radius: 14px;
  padding: 20px 22px 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
}

.reg-stat-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #555;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.reg-stat-number {
  font-size: 2rem;
  font-weight: 800;
  color: #1a1a2e;
  line-height: 1.1;
}

.reg-stat-sub {
  font-size: 0.78rem;
  color: #888;
  margin-top: 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.reg-stat-sub span {
  display: block;
}

.reg-stat-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #f0f0f0;
  color: #555;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 20px;
  white-space: nowrap;
}

.reg-sparkline-wrap {
  margin-top: 12px;
  width: 100%;
  overflow: hidden;
}

.reg-sparkline-wrap svg {
  width: 100%;
  height: auto;
  display: block;
}

.reg-applicants-card {
  background: #fce8f0;
  border: 1.5px solid #e8b0c4;
  border-radius: 14px;
  padding: 28px 64px 28px 36px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  display: inline-flex;
  flex-direction: column;
  align-self: end;
  width: auto;
  white-space: nowrap;
}

.reg-applicants-card .reg-stat-card-title {
  font-size: 1rem;
  margin-bottom: 6px;
}

.reg-applicants-card .reg-stat-number {
  font-size: 2.8rem;
}

.reg-applicants-card .reg-applicants-dept {
  font-size: 1rem;
  margin-top: 6px;
}

.reg-faculty-card {
  background: #e8f0fe;
  border: 1.5px solid #a8c0f0;
  border-radius: 14px;
  padding: 28px 64px 28px 36px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  display: inline-flex;
  flex-direction: column;
  align-self: end;
  width: auto;
  white-space: nowrap;
}

.reg-faculty-card .reg-stat-card-title {
  font-size: 1rem;
  margin-bottom: 6px;
}

.reg-faculty-card .reg-stat-number {
  font-size: 2.8rem;
}

.reg-faculty-card .reg-faculty-dept {
  font-size: 1rem;
  margin-top: 6px;
  color: #3b6fd4;
  font-weight: 600;
}

.reg-applicants-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #1a1a2e;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.reg-applicants-number {
  font-size: 2rem;
  font-weight: 800;
  color: #1a1a2e;
  line-height: 1.1;
}

.reg-applicants-sub {
  font-size: 0.78rem;
  color: #1a1a2e;
  margin-top: 2px;
  opacity: 0.8;
}

.reg-dash-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.reg-section-card {
  background: #fff;
  border-radius: 14px;
  padding: 18px 20px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
}

.reg-section-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #006837;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid #e8f5ee;
}

.reg-announce-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.reg-announce-date {
  font-size: 0.8rem;
  font-weight: 600;
  color: #444;
}

.reg-announce-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid #d8d8d8;
}

.reg-announce-item:last-child {
  border-bottom: none;
}

.reg-announce-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #006837;
  margin-top: 5px;
  flex-shrink: 0;
}

.reg-announce-time {
  font-size: 0.72rem;
  color: #aaa;
  margin-top: 2px;
}

.reg-sched-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  gap: 8px;
  background: #f8f8f8;
  border: 1px solid #d0d0d0;
  border-radius: 8px;
  padding: 10px 14px;
}

/* Registrar dashboard depth polish */

.page-registrar-dashboard .reg-stat-card,
.page-registrar-dashboard .reg-applicants-card,
.page-registrar-dashboard .reg-faculty-card,
.page-registrar-dashboard .reg-announce-card,
.page-registrar-dashboard .reg-schedule-card,
.page-registrar-dashboard .reg-section-card {
  border-color: #c6d1cb;
  box-shadow: 0 14px 30px rgba(16, 24, 40, 0.08), 0 2px 6px rgba(16, 24, 40, 0.05);
  transition: box-shadow 0.18s ease, transform 0.18s ease;
}

.page-registrar-dashboard .reg-stat-card:hover,
.page-registrar-dashboard .reg-applicants-card:hover,
.page-registrar-dashboard .reg-faculty-card:hover,
.page-registrar-dashboard .reg-announce-card:hover,
.page-registrar-dashboard .reg-schedule-card:hover,
.page-registrar-dashboard .reg-section-card:hover {
  box-shadow: 0 18px 34px rgba(16, 24, 40, 0.1), 0 4px 10px rgba(16, 24, 40, 0.06);
  transform: none;
}

.page-registrar-dashboard .reg-announce-item,
.page-registrar-dashboard .reg-sched-item {
  background: #ffffff;
  border: 1px solid #d4ddd8;
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(16, 24, 40, 0.04);
  margin-bottom: 10px;
  padding: 10px 12px;
}

.page-registrar-dashboard .reg-announce-item:last-child,
.page-registrar-dashboard .reg-sched-item:last-child {
  margin-bottom: 0;
}

.page-registrar-dashboard .reg-card-header {
  padding-bottom: 8px;
  border-bottom: 1px solid #e3ebe6;
  margin-bottom: 12px;
}

.reg-sched-info {
  flex: 1;
  min-width: 0;
}

.reg-sched-name {
  font-size: 0.88rem;
  font-weight: 600;
  color: #1a1a2e;
  margin-bottom: 3px;
  line-height: 1.3;
}

.reg-sched-time {
  font-size: 0.75rem;
  color: #888;
}

.reg-sched-badge {
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 12px;
  white-space: nowrap;
  flex-shrink: 0;
}

.reg-sched-badge.badge-green {
  background: #e5f4ec;
  color: #006837;
}

.reg-sched-badge.badge-blue {
  background: #e8f0fe;
  color: #1a73e8;
}

.reg-sched-badge.badge-orange {
  background: #fff3e0;
  color: #e65100;
}

.app-process-page {
  padding: 4px 0;
}

.app-filter-bar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  margin-bottom: 12px;
  background: #fff;
  border: 1px solid #d9e3dd;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

.app-filter-row {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.app-filter-group {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1 1 170px;
  min-width: 170px;
}

.app-filter-actions-row {
  align-items: center;
  justify-content: space-between;
}

.app-filter-action-btn {
  min-width: 108px;
}

.app-filter-actions-group {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin-left: auto;
}

.app-filter-auto-note {
  margin: 0;
  font-size: 0.74rem;
  color: #4f5a53;
  line-height: 1.35;
}

.app-filter-input-search {
  min-width: 180px;
}

.app-filter-input-sort {
  min-width: 140px;
}

.app-filter-select-sm {
  min-width: 80px;
  max-width: 100px;
}

.app-filter-select-wide {
  min-width: 200px;
  flex: 1;
}

.app-status-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  margin-right: 5px;
  vertical-align: middle;
}

.app-filter-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  white-space: nowrap;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.app-filter-input {
  padding: 7px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.82rem;
  outline: none;
  min-height: 36px;
  min-width: 100px;
}

.app-filter-input:focus {
  border-color: #006837;
}

.app-filter-select {
  padding: 7px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.82rem;
  outline: none;
  background: #fff;
  cursor: pointer;
  min-height: 36px;
}

.app-filter-select:focus {
  border-color: #006837;
}

.app-filter-search {
  display: flex;
  align-items: center;
  border: 1px solid #ccc;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

.app-filter-search input {
  padding: 7px 10px;
  border: none;
  outline: none;
  font-size: 0.82rem;
  min-width: 160px;
}

.app-filter-search button {
  background: #006837;
  color: #fff;
  border: none;
  padding: 7px 14px;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 600;
  transition: background 0.15s;
}

.app-filter-search button:hover {
  background: #005229;
}

.app-table-wrap {
  overflow-x: auto;
  border: 2px solid #c0c0c0;
  border-radius: 10px;
}

.app-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  font-size: 0.84rem;
}

.app-table thead tr {
  background: #006837;
  color: #fff;
}

.app-table thead th {
  padding: 12px 14px;
  font-weight: 600;
  text-align: left;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.app-table tbody tr {
  border-bottom: 1px solid #c0c0c0;
}

.app-table tbody tr:last-child {
  border-bottom: none;
}

.app-table tbody tr:hover {
  background: #f9fffe;
}

.app-table td {
  padding: 11px 14px;
  color: #333;
  vertical-align: middle;
  border-bottom: 1px solid #c0c0c0;
}

.app-table tbody tr:last-child td {
  border-bottom: none;
}

.app-status-accepted {
  color: #006837;
  font-weight: 600;
}

.app-status-pending {
  color: #e6a817;
  font-weight: 600;
}

.app-status-rejected {
  color: #c0392b;
  font-weight: 600;
}

.app-status-inprogress {
  color: #1a73e8;
  font-weight: 600;
}

@media (max-width: 991px) {
  .reg-dash-bottom {
    grid-template-columns: 1fr;
  }

  .reg-stat-card {
    min-width: unset;
    width: 100%;
  }

  .reg-applicants-card {
    padding: 20px 28px;
  }

  .reg-faculty-card {
    padding: 20px 28px;
  }

  .app-filter-row {
    flex-direction: column;
    align-items: stretch;
  }

  .app-filter-actions-row {
    gap: 8px;
  }

  .app-filter-group {
    width: 100%;
  }

  .app-filter-actions-group {
    margin-left: 0;
    width: 100%;
    justify-content: stretch;
  }

  .app-filter-actions-group .app-filter-action-btn {
    flex: 1 1 120px;
  }

  .app-filter-auto-note {
    font-size: 0.72rem;
  }

  .app-filter-select-wide,
  .app-filter-input-search,
  .app-filter-input-sort {
    min-width: unset;
    width: 100%;
  }
}

@media (max-width: 768px) {
  .reg-dash-top {
    gap: 14px;
  }

  .reg-stat-card-inner {
    flex-direction: column;
    gap: 10px;
  }

  .reg-stat-sparkline {
    width: 100%;
  }

  .reg-applicants-card {
    width: 100%;
    padding: 16px 20px;
  }

  .reg-faculty-card {
    width: 100%;
    padding: 16px 20px;
  }

  .reg-dash-bottom {
    gap: 14px;
  }

  .reg-card-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .doclist-form-card {
    padding: 14px 16px;
  }

  .doclist-options-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .doclist-save-wrap {
    align-self: flex-start;
  }
}

.req-page {
  padding: 4px 0;
}

.req-search-wrap {
  margin-bottom: 20px;
}

.req-search-box {
  position: relative;
  display: inline-block;
  width: 280px;
}

.req-search-box.req-search-box-sm {
  width: 220px;
}

.req-search-input {
  width: 100%;
  padding: 8px 36px 8px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.85rem;
  outline: none;
  box-sizing: border-box;
}

.req-search-input:focus {
  border-color: #006837;
}

.req-search-icon {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}

.req-cards-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

@media (max-width: 1100px) {
  .req-cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .req-cards-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.req-card {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 18px 16px;
  cursor: pointer;
  transition: box-shadow 0.18s, transform 0.15s;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  min-width: 0;
  overflow: hidden;
}

.req-card:hover {
  box-shadow: 0 4px 14px rgba(0, 104, 55, 0.15);
  transform: translateY(-2px);
}

.req-card-name {
  font-size: 0.88rem;
  font-weight: 700;
  color: #006837;
  text-transform: uppercase;
  margin-bottom: 4px;
  line-height: 1.3;
  word-break: break-word;
  overflow-wrap: break-word;
}

.req-card-id {
  font-size: 0.78rem;
  color: #555;
  margin-bottom: 12px;
}

.req-progress-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}

.req-progress-blocks {
  display: flex;
  gap: 3px;
  flex-shrink: 0;
}

.req-progress-block {
  width: 18px;
  height: 10px;
  border-radius: 3px;
  background: #ddd;
}

.req-progress-block.done {
  background: #006837;
}

.req-progress-count {
  font-size: 0.75rem;
  color: #555;
  white-space: nowrap;
}

.req-card-status {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 3px 10px;
  border-radius: 12px;
}

.req-card-status.status-verified {
  background: #e5f4ec;
  color: #006837;
}

.req-card-status.status-inprogress {
  background: #f0f0f0;
  color: #777;
}

.req-detail-topbar {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}

.req-back-btn {
  background: none;
  border: none;
  color: #006837;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.req-back-btn:hover {
  text-decoration: underline;
}

.req-detail-header {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 12px 20px;
  margin-bottom: 16px;
  font-size: 0.88rem;
  font-weight: 600;
  color: #1a1a2e;
  display: flex;
  gap: 32px;
}

.req-detail-name-label span,
.req-detail-id-label span {
  color: #006837;
  font-weight: 700;
  margin-left: 6px;
}

.req-checkbox {
  width: 22px;
  height: 22px;
  border: 2px solid #aaa;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  margin: 0 auto;
  transition: border-color 0.15s, background 0.15s;
}

.req-checkbox.checked {
  background: #006837;
  border-color: #006837;
}

.req-checkbox.checked svg {
  width: 14px;
  height: 14px;
  display: block;
}

.req-checkbox:not(.checked) svg {
  display: none;
}

.req-action-link {
  color: #c0392b;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: underline;
  margin-left: 6px;
}

.req-action-link:hover {
  color: #a93226;
}

.req-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.req-modal-box {
  background: #fff;
  border-radius: 12px;
  padding: 28px 32px 24px;
  min-width: 420px;
  max-width: 520px;
  width: 90%;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
}

@media (max-width: 600px) {
  .req-modal-box {
    min-width: unset;
    padding: 20px 16px;
  }
}

.req-modal-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 14px;
  text-align: center;
}

.req-modal-meta {
  display: flex;
  gap: 24px;
  font-size: 0.83rem;
  color: #444;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #eee;
}

.req-modal-meta strong {
  color: #1a1a2e;
}

.req-modal-fields {
  display: flex;
  gap: 16px;
}

@media (max-width: 600px) {
  .req-modal-fields {
    flex-direction: column;
  }
}

.req-modal-field-group {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 5px;
}

.req-modal-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #555;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.req-modal-hint {
  font-size: 0.72rem;
  color: #999;
  margin-top: 3px;
  display: block;
}

.req-modal-input {
  padding: 8px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.85rem;
  outline: none;
  width: 100%;
  box-sizing: border-box;
}

.req-modal-input:focus {
  border-color: #006837;
}

.req-photo-group {
  border-top: 1px dashed #e0e0e0;
  padding-top: 12px;
}

.req-modal-file {
  font-size: 0.83rem;
  padding: 6px 0;
  width: 100%;
  cursor: pointer;
}

.req-photo-preview {
  margin-top: 8px;
}

.req-photo-preview img {
  max-width: 120px;
  max-height: 120px;
  border-radius: 6px;
  border: 1px solid #e0e0e0;
  -o-object-fit: cover;
  object-fit: cover;
  display: block;
}

.req-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 22px;
}

.req-btn-cancel {
  background: #e0e0e0;
  color: #444;
  border: none;
  border-radius: 6px;
  padding: 9px 22px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.req-btn-cancel:hover {
  background: #ccc;
}

.req-btn-save {
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 9px 28px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.req-btn-save:hover {
  background: #005229;
}

.req-modal-success {
  text-align: center;
  min-width: 320px;
  max-width: 380px;
}

.req-modal-success-title {
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #006837;
  margin-bottom: 10px;
}

.req-modal-success-msg {
  font-size: 0.9rem;
  color: #444;
  margin-bottom: 22px;
}

.req-btn-ok {
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 20px;
  padding: 10px 36px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.req-btn-ok:hover {
  background: #005229;
}

.req-modal-field-group {
  display: flex;
  flex-direction: column;
}

.req-modal-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 4px;
}

select.req-modal-input {
  -webkit-appearance: auto;
  -moz-appearance: auto;
  appearance: auto;
}

.apst-page {
  padding: 4px 0;
}

.apst-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  gap: 12px;
}

.apst-search-box {
  position: relative;
  width: 280px;
}

.apst-search-input {
  width: 100%;
  padding: 8px 36px 8px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.85rem;
  outline: none;
  box-sizing: border-box;
}

.apst-search-input:focus {
  border-color: #006837;
}

.apst-search-icon {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}

.apst-new-btn {
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 9px 22px;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  letter-spacing: 0.02em;
  transition: background 0.15s;
}

.apst-new-btn:hover {
  background: #005229;
}

.apst-action-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: 30px;
  height: 30px;
  border: 1.5px solid #aaa;
  border-radius: 5px;
  cursor: pointer;
  padding: 4px;
  box-sizing: border-box;
  position: relative;
}

.apst-action-btn span {
  display: block;
  width: 4px;
  height: 4px;
  background: #555;
  border-radius: 50%;
}

.apst-action-btn:hover {
  border-color: #006837;
}

.apst-action-btn:hover span {
  background: #006837;
}

.apst-dropdown {
  display: none;
  position: absolute;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 7px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
  z-index: 100;
  min-width: 110px;
  overflow: hidden;
  left: 36px;
  top: 0;
}

.apst-dropdown.open {
  display: block;
}

.apst-dropdown button {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  padding: 9px 14px;
  background: none;
  border: none;
  font-size: 0.83rem;
  color: #333;
  cursor: pointer;
  text-align: left;
  transition: background 0.12s;
}

.apst-dropdown button:hover {
  background: #f5f5f5;
}

.apst-dropdown .apst-del-btn {
  color: #c0392b;
}

.apst-dropdown .apst-del-btn:hover {
  background: #fff0ee;
}

#apstTable td:first-child {
  position: relative;
}

.app-table tbody tr {
  cursor: pointer;
  transition: background 0.12s;
}

.app-table tbody tr:hover {
  background-color: #f0faf4;
}

#applicantDetailView {
  display: none;
}

.appl-detail-header {
  display: flex;
  gap: 16px;
  margin-bottom: 20px;
  flex-wrap: wrap;
  align-items: flex-end;
}

.appl-detail-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.appl-detail-field label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #006837;
  text-transform: uppercase;
  margin: 0;
}

.appl-detail-field input[type=text] {
  border: 1px solid #d0d0d0;
  border-radius: 6px;
  padding: 7px 12px;
  font-size: 14px;
  color: #444;
  background: #f7f7f7;
  outline: none;
  min-width: 150px;
}

.appl-detail-field.wide input[type=text] {
  min-width: 320px;
}

.applicant-panel {
  display: none;
}

.applicant-panel.active {
  display: block;
}

.under-dev-notice {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  color: #aaa;
  font-size: 1rem;
  font-style: italic;
  letter-spacing: 0.04em;
  border: 2px dashed #e0e0e0;
  border-radius: 10px;
  background: #fafafa;
}

.sched-exam-card {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 26px 28px;
}

.sched-fields-row {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  align-items: flex-end;
  margin-bottom: 22px;
}

.sched-field-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.sched-field-group.flex-grow {
  flex: 1;
}

.sched-field-group label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #006837;
  text-transform: uppercase;
  margin: 0;
}

.sched-field-group select,
.sched-field-group input[type=text] {
  border: 1px solid #d0d0d0;
  border-radius: 6px;
  padding: 7px 12px;
  font-size: 14px;
  color: #333;
  background: #fff;
  outline: none;
  min-width: 150px;
}

.sched-field-group select {
  min-width: 165px;
  padding-right: 10px;
}

.sched-field-group.flex-grow input[type=text] {
  width: 100%;
}

.sched-actions {
  display: flex;
  gap: 14px;
  margin-bottom: 28px;
}

.sched-btn-save {
  background: #0a813c;
  color: #fff;
  border: none;
  border-radius: 25px;
  padding: 10px 38px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.sched-btn-save:hover {
  background: #076b31;
}

.sched-btn-print {
  background: transparent;
  color: #0a813c;
  border: 2px solid #0a813c;
  border-radius: 25px;
  padding: 10px 38px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}

.sched-btn-print:hover {
  background: #0a813c;
  color: #fff;
}

.sched-reminders {
  border-top: 1px solid #eee;
  padding-top: 18px;
}

.sched-reminders p {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 6px;
  text-transform: uppercase;
  color: #333;
}

.sched-reminders ul {
  font-size: 13px;
  padding-left: 20px;
  margin-bottom: 16px;
  color: #444;
}

.sched-reminders ul li {
  margin-bottom: 4px;
}

#applicantSidebar {
  display: none;
}

.appl-sidebar-back {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  color: #fff;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.15);
  border: none;
  width: 100%;
  text-align: left;
  border-radius: 8px;
  transition: background 0.15s;
  letter-spacing: 0.03em;
  text-decoration: none;
}

.appl-sidebar-back:hover {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.appl-sidebar-back svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

body.page-profile-edit .student-main-wrapper {
  overflow-y: auto !important;
}

body.page-profile-edit .student-content {
  flex: none !important;
}

/* Program File page additions */

.pf-top-filter {
  border: 1.5px solid #d4d4d4;
  border-radius: 10px;
  padding: 12px;
  background: #f8f8f8;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.pf-top-filter-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.6fr) minmax(92px, 108px);
  gap: 8px;
  align-items: flex-end;
}

.pf-toolbar-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.pf-top-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.pf-top-label {
  font-size: 0.73rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.pf-top-search-btn-wrap {
  display: flex;
}

.pf-top-search-btn {
  width: 100%;
  min-width: 100px;
}

.pf-table-controls {
  margin: 12px 0 8px;
  display: flex;
  align-items: center;
}

.pf-entries-control {
  display: inline-flex;
  flex-direction: column;
  gap: 6px;
}

.pf-entries-control label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.pf-entries-select {
  width: 58px;
  height: 34px;
  border: 1.5px solid #d0d0d0;
  border-radius: 6px;
  background: #fff;
  color: #555;
  font-size: 0.88rem;
  padding: 4px 6px;
}

.pf-modal-box.pf-dept-modal-box {
  width: -moz-fit-content;
  width: fit-content;
  max-width: min(95vw, 920px);
  min-width: 0;
  max-height: 90vh;
  overflow-y: auto;
}

.pf-dept-modal-title {
  text-align: left;
  border-bottom: 1px solid #d0d0d0;
  padding-bottom: 8px;
  margin-bottom: 10px;
}

.pf-dept-form-grid {
  display: grid;
  grid-template-columns: minmax(120px, auto) minmax(140px, auto) minmax(220px, 1.25fr) minmax(120px, auto);
  gap: 10px;
  align-items: flex-end;
}

.pf-item-program-type {
  grid-column: 1/2;
}

.pf-item-program-code {
  grid-column: 2/3;
}

.pf-item-department {
  grid-column: 3/5;
}

.pf-item-description {
  grid-column: 1/3;
}

.pf-item-slots {
  grid-column: 3/5;
}

.pf-item-track {
  grid-column: 1/4;
}

.pf-item-dean {
  grid-column: 1/3;
}

.pf-track-options {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  overflow-x: visible;
  padding: 7px 0;
}

.pf-track-option {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  color: #1f1f1f;
  white-space: nowrap;
  flex: 0 0 auto;
}

.pf-item-program-type .pf-modal-label,
.pf-item-program-code .pf-modal-label,
.pf-item-department .pf-modal-label,
.pf-item-description .pf-modal-label,
.pf-item-slots .pf-modal-label,
.pf-item-track .pf-modal-label,
.pf-item-dean .pf-modal-label {
  color: #006837;
}

.pf-track-option input {
  width: 17px;
  height: 17px;
  accent-color: #0b8043;
}

.pf-modal-input,
.pf-modal-select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.pf-form-error-box {
  margin-bottom: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #fdecea;
  color: #b32222;
  font-size: 0.84rem;
  font-weight: 600;
}

.pf-dept-modal-actions {
  margin-top: 12px;
}

.pf-new-modal-box {
  width: min(96vw, 820px);
  max-width: 820px;
  min-width: min(96vw, 620px);
}

.pf-new-modal-title {
  text-align: left;
  border-bottom: 1px solid #d0d0d0;
  padding-bottom: 8px;
  margin-bottom: 12px;
}

.pf-new-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
}

.pf-new-modal-actions {
  margin-top: 14px;
}

@media (max-width: 991px) {
  .pf-top-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pf-toolbar {
    align-items: stretch;
  }

  .pf-toolbar-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .pf-top-search-btn-wrap {
    grid-column: span 2;
  }

  .pf-top-search-btn {
    width: 100%;
  }

  .pf-dept-modal-box {
    min-width: 0;
  }

  .pf-dept-form-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .pf-track-options {
    flex-wrap: wrap;
    overflow-x: visible;
  }

  .pf-item-program-type,
  .pf-item-program-code,
  .pf-item-description,
  .pf-item-slots,
  .pf-item-track,
  .pf-item-dean,
  .pf-item-department {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  .pf-modal-box.pf-dept-modal-box {
    width: 94vw;
    max-width: 94vw;
    padding: 18px 14px;
    max-height: 88vh;
  }
}

@media (max-width: 768px) {
  .pf-toolbar-actions {
    width: 100%;
    justify-content: stretch;
  }

  .pf-toolbar-actions .pf-btn-new {
    flex: 1;
    min-width: 0;
  }

  .pf-top-filter-grid,
  .pf-dept-form-grid,
  .pf-new-form-grid {
    grid-template-columns: 1fr;
  }

  .pf-top-search-btn-wrap {
    grid-column: auto;
  }

  .pf-modal-box,
  .pf-dept-modal-box,
  .pf-new-modal-box {
    width: 94vw;
    min-width: 0;
    max-width: 94vw;
    padding: 18px 14px;
  }
}

.student-portal-body .sidebar-dropdown-menu--forms {
  padding-bottom: 8px;
}

.student-portal-body .sidebar-dropdown-menu--forms .sidebar-sublink {
  white-space: normal;
  line-height: 1.28;
  padding-top: 10px;
  padding-bottom: 10px;
}

.acd-page {
  padding-top: 8px;
  overflow-x: hidden;
}

.acd-canvas {
  --acd-scale: 1;
  --acd-paper-width: 210mm;
  width: var(--acd-paper-width);
  min-width: var(--acd-paper-width);
  margin: 0 auto;
}

.acd-actions {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 8px;
}

.acd-print-btn {
  background-color: #006837;
  border: 1px solid #006837;
  color: #fff;
  font-weight: 700;
}

.acd-print-btn:hover,
.acd-print-btn:focus {
  background-color: #0b5f37;
  border-color: #0b5f37;
  color: #fff;
}

.acd-form {
  width: var(--acd-paper-width);
  min-width: var(--acd-paper-width);
  min-height: 297mm;
  border: 1.5px solid #9aa1a8;
  border-radius: 0 !important;
  transform: scale(var(--acd-scale));
  transform-origin: top left;
}

.acd-form .cor-header {
  border-radius: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  position: relative;
  padding: 16px 20px;
  background: transparent !important;
  border-bottom: none !important;
}

.acd-form .cor-header-left {
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-right: 10px;
}

.acd-form .cor-header-center {
  text-align: center;
  padding: 0;
  white-space: normal;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.acd-form .cor-header-right {
  position: absolute;
  right: 20px;
  top: 20px;
  font-size: 11pt;
}

.acd-header {
  background: transparent;
  border-bottom: none;
}

.acd-header-center {
  text-align: center;
}

.acd-school-name,
.acd-office-name,
.acd-contact {
  margin: 0;
  color: #000;
  font-weight: 700;
  letter-spacing: 0.2px;
  font-family: "Times New Roman", Times, serif;
}

.acd-office-name {
  color: #c4d600;
}

.acd-school-name {
  font-size: 16pt;
}

.acd-office-name {
  font-size: 14pt;
}

.acd-contact {
  font-size: 12pt;
  font-weight: 600;
}

.acd-body {
  padding: 14px 16px 18px;
  color: #000;
  font-size: 0.74rem;
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}

.acd-form-number {
  font-weight: 700;
  margin: 0 0 10px;
}

.acd-meta-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 16px;
  margin-bottom: 10px;
}

.acd-label {
  margin: 0 0 6px;
  font-weight: 700;
}

.acd-check {
  display: block;
  margin: 2px 0;
  font-weight: 600;
}

.acd-check input {
  width: 12px;
  height: 12px;
  margin-right: 6px;
  vertical-align: middle;
}

.acd-line-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
  font-weight: 700;
}

.acd-line {
  flex: 1;
  border-bottom: 1px solid #98a0a8;
  min-height: 10px;
  display: inline-flex;
  align-items: flex-end;
  padding: 0 4px;
  font-weight: 600;
}

.acd-table-block {
  margin-top: 8px;
}

.acd-table-title {
  margin: 0;
  padding: 3px 0;
  text-align: center;
  font-weight: 700;
  border-top: 1px solid #9aa1a8;
  border-bottom: 1px solid #9aa1a8;
}

.acd-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 3px;
}

.acd-table th,
.acd-table td {
  border: 1px solid #a6adb5;
  padding: 3px 4px;
  font-size: 0.67rem;
  text-align: center;
  height: 24px;
}

.acd-cell-input {
  width: 100%;
  border: 0;
  outline: none;
  background: transparent;
  font: inherit;
  color: inherit;
  text-align: center;
  line-height: 1.1;
  padding: 0;
}

.acd-cell-input--left {
  text-align: left;
}

.acd-table th {
  font-weight: 700;
  background: #f8fafb;
}

.acd-total-label {
  text-align: right;
  font-weight: 700;
  padding-right: 12px;
}

.acd-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 14px;
}

.acd-bottom-grid p {
  margin: 0 0 8px;
  font-weight: 600;
}

.acd-emphasis {
  font-style: italic;
}

.acd-sign-row {
  margin: 0 0 8px;
}

.acd-sign-main {
  margin: 0;
  font-weight: 600;
}

.acd-sign-sub {
  margin: 2px 0 0;
  padding-left: 2px;
  font-weight: 600;
}

.acd-inline-line {
  display: inline-block;
  border-bottom: 1px solid #8f98a0;
  height: 0.9em;
  vertical-align: baseline;
}

.acd-inline-input {
  display: inline-block;
  border: 0;
  border-bottom: 1px solid #8f98a0;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: 1.2;
  padding: 0 2px;
}

.acd-inline-input:focus {
  outline: none;
  border-bottom-color: #1f2a35;
}

.acd-inline-input--xs {
  width: 72px;
}

.acd-inline-input--sm {
  width: 110px;
}

.acd-inline-input--md {
  width: 180px;
}

.acd-inline-input--lg {
  width: 250px;
}

.acd-inline-input--xl {
  width: 320px;
}

.acd-inline-input--center {
  text-align: center;
}

.acd-inline-input--caps {
  text-transform: uppercase;
}

.cog-box.acd-inline-input {
  display: inline-flex;
  align-items: center;
}

.acd-inline-line--md {
  width: 170px;
}

.acd-inline-line--lg {
  width: 250px;
}

.acd-inline-line--xl {
  width: 240px;
}

.acd-mt-lg {
  margin-top: 12px !important;
}

.acd-footer-note {
  margin-top: 14px;
  font-size: 0.7rem;
  color: #000;
  text-align: center;
}

@media print {
@page {
    size: A4 portrait;
    margin: 0.5in;
}

  html,
  body.student-portal-body,
  .student-layout,
  .student-main-wrapper,
  .content-footer-wrap,
  .student-content,
  .cor-scroll-wrapper {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }

  .student-topbar,
  .student-page-header,
  .plp-sidebar,
  .sidebar-overlay,
  .plp-footer,
  #download-toast {
    display: none !important;
  }

  .acd-page {
    padding-top: 0;
    overflow: visible;
  }

  .acd-actions {
    display: none !important;
  }

  .acd-canvas {
    --acd-paper-width: auto !important;
    --acd-scale: 1 !important;
    width: calc(100% - 1in) !important;
    max-width: calc(100% - 1in) !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 auto !important;
  }

  .acd-form {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: auto !important;
    transform: none !important;
    border: 1.5px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
  }

  .acd-form,
  .acd-form * {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 16px !important;
    line-height: 1.1 !important;
  }

  .acd-school-name,
  .loa-school,
  .ce-school,
  .cog-school {
    font-size: 16pt !important;
  }

  .acd-office-name,
  .loa-office,
  .ce-office,
  .cog-office {
    font-size: 14pt !important;
  }

  .loa-body h2,
  .cog-body h2,
  .ce-body h2,
  .acd-container h2 {
    font-size: 18pt !important;
  }

  .acd-body,
  .loa-body,
  .cog-body,
  .ce-body {
    padding-left: 0.15in !important;
    padding-right: 0.15in !important;
    padding-top: 0 !important;
    padding-bottom: 0.1in !important;
  }

  .acd-table th,
  .acd-table td {
    padding: 2px 3px !important;
    height: 18px !important;
  }

  .acd-bottom-grid p {
    margin: 0 0 4px !important;
  }

  .acd-footer-note {
    margin-top: 6px !important;
  }

  .loa-page .acd-canvas {
    --acd-paper-width: auto !important;
  }

  .cor-container.acd-form,
  .cor-container.acd-form * {
    box-shadow: none !important;
  }

  .cor-container {
    width: 100% !important;
    height: auto !important;
    border: none !important;
    border-radius: 0 !important;
  }

  .acd-inline-input {
    border: 0 !important;
    border-bottom: 1px solid #000 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .acd-inline-input.has-value {
    border-bottom: 1px solid #000 !important;
  }

  .acd-inline-input.has-value.no-print-underline {
    border-bottom: 0 !important;
  }

  .loa-check input[type=checkbox] {
    display: none !important;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  .loa-check {
    position: relative;
    display: inline !important;
    font-weight: 600;
  }

  .loa-check::before {
    content: "( ) ";
  }

  .loa-check[data-print-checked=true]::before {
    content: "(\2713) ";
  }

  .loa-grid-third .acd-inline-input--lg {
    width: calc(100% - 12px) !important;
    max-width: calc(100% - 12px) !important;
    box-sizing: border-box !important;
  }

  /* LOA print should stay readable within reduced margins */

  .loa-form,
  .loa-form * {
    font-size: 14px !important;
    line-height: 1.1 !important;
  }

  .loa-form h2 {
    font-size: 16px !important;
  }

  /* Ensure Change of Grade print remains exactly 16px */

  .cog-form,
  .cog-form * {
    font-size: 16px !important;
    line-height: 1.1 !important;
  }

  .cog-form h2,
  .cog-title-main {
    font-size: 16px !important;
  }

  .cog-line-row--details {
    flex-wrap: wrap !important;
    white-space: normal !important;
    gap: 6px !important;
  }

  .cog-line-row--details .cog-box--sm {
    width: 96px !important;
  }

  .cog-line-row--details .cog-box--prog {
    width: 150px !important;
  }

  .cog-line-row--details .cog-box--course {
    flex: 0 0 170px !important;
    width: 170px !important;
    min-width: 170px !important;
    max-width: 170px !important;
  }

  .cog-line-row--details .cog-course-combo {
    flex: 0 0 210px !important;
    width: 210px !important;
    min-width: 210px !important;
    max-width: 210px !important;
  }

  .cog-line-row--details .cog-box--course-short {
    width: 42px !important;
  }

  .cog-line-row--details .cog-box--course-long {
    width: 168px !important;
  }

  .cog-signatures > div {
    min-width: 0 !important;
  }

  .cog-signatures .cog-line {
    overflow: hidden !important;
  }

  .cog-signatures .acd-inline-input--lg {
    width: calc(100% - 8px) !important;
    max-width: calc(100% - 8px) !important;
    box-sizing: border-box !important;
  }
}

/* Late Leave Appeal */

.loa-form {
  min-height: 320mm;
}

.loa-header,
.cog-header,
.ce-header {
  background: transparent;
  border-bottom: none;
  min-height: 74px;
  padding-top: 8px;
  padding-bottom: 8px;
}

.loa-header-center,
.cog-header-center,
.ce-header-center {
  color: #000;
}

.form-logo-left {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.form-logo-left .cor-logo {
  height: 108px;
  width: auto;
  max-height: 108px;
}

/* If the header area is narrow, allow the logo to reposition above the pyramid */

@media (max-width: 600px) {
  .acd-form .cor-header-left {
    position: relative;
    left: 0;
    top: 0;
    transform: none;
    margin-bottom: 8px;
    justify-content: center;
  }

  .acd-form .cor-header-center {
    position: relative;
    left: 0;
    top: 0;
    transform: none;
    width: 100%;
    max-width: none;
  }
}

.form-header-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  gap: 0;
}

.loa-gov,
.ce-gov {
  margin: 0;
  font-size: 0.58rem;
  font-weight: 600;
  color: #000;
}

.loa-school,
.ce-school,
.cog-school {
  margin: 0;
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 1px;
  color: #000;
}

.loa-office,
.ce-office,
.cog-office {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 800;
  color: #c4d600;
  letter-spacing: 1.8px;
}

.loa-address,
.loa-contact,
.ce-contact {
  margin: 0;
  font-size: 0.52rem;
  font-weight: 600;
  color: #000;
}

.loa-body,
.cog-body,
.ce-body {
  padding: 16px 18px 20px;
  font-size: 0.76rem;
  color: #000;
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}

.loa-top-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.loa-body h2,
.cog-body h2,
.ce-body h2 {
  margin: 4px 0 10px;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.3px;
}

.loa-text-line,
.ce-body p,
.cog-body p {
  margin: 7px 0;
  line-height: 1.35;
}

.loa-first-indent {
  display: inline-block;
  padding-left: 20px;
}

.loa-page .acd-canvas {
  --acd-paper-width: 232mm;
}

.loa-body h2 {
  font-size: 1.55rem;
  white-space: nowrap;
}

.loa-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2px 14px;
  margin: 6px 0 8px;
}

.loa-check {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  line-height: 1.2;
  font-weight: 600;
}

.loa-check input[type=checkbox] {
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
  width: 12px;
  height: 12px;
  margin: 0;
  border: 1px solid #4c5660;
  background: #fff;
  position: relative;
  display: inline-block;
  vertical-align: middle;
}

.loa-check input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 0;
  width: 4px;
  height: 8px;
  border: solid #1f2a35;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.loa-medical-check {
  padding-left: 18px;
}

.loa-body ul {
  margin: 6px 0 8px 20px;
}

.loa-sign,
.loa-sign-sub,
.loa-student-no {
  text-align: center;
  margin: 0;
}

.loa-student-no {
  margin-top: 6px;
}

.loa-student-divider {
  border-top: 1px dashed #9ea6ae;
  margin: 8px 0 10px;
}

.loa-grid {
  display: grid;
  grid-template-columns: 34.3% 35.8% 29.9%;
  gap: 0;
  border: 1px solid #9ea6ae;
  margin-top: 10px;
}

.loa-box {
  padding: 8px;
  border-right: 1px solid #9ea6ae;
  min-height: 130px;
}

.loa-grid .loa-box:last-child {
  border-right: none;
}

.loa-box p {
  margin: 2px 0;
  line-height: 1.3;
}

.loa-box table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.68rem;
}

.loa-box table td {
  border: 1px solid #b0b7be;
  padding: 3px 4px;
}

.loa-box table td:last-child {
  white-space: nowrap;
}

.loa-box table .loa-check {
  margin-right: 8px;
}

.loa-remark-line {
  margin: 2px 0;
}

.loa-remark-cont {
  padding-left: 24px;
}

.loa-assessed {
  margin-top: 18px !important;
}

.loa-assessor {
  font-weight: 700;
  text-align: center;
}

.loa-grid-second,
.loa-grid-third {
  margin-top: 0;
  border-top: none;
}

.loa-grid-second {
  grid-template-columns: 34.3% 35.8% 29.9%;
}

.loa-grid-third {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.loa-small-sign {
  min-height: 90px;
}

.loa-grid-third .loa-sign-line {
  overflow: hidden;
}

.loa-grid-third .acd-inline-input--lg {
  width: calc(100% - 12px);
  max-width: calc(100% - 12px);
  box-sizing: border-box;
}

.loa-sign-line {
  margin-top: 8px !important;
  min-height: 12px;
}

.loa-sign-row {
  display: flex;
  justify-content: space-between;
  font-weight: 600;
}

.loa-present-box {
  margin-top: 10px;
  border: 1px solid #9ea6ae;
  padding: 8px;
}

.loa-present-divider {
  border-top: 1px dashed #9ea6ae;
  margin-top: 10px;
}

/* Change Grade */

.cog-form {
  min-height: 240mm;
}

.cog-form .cog-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.cog-form .form-header-copy {
  align-items: center;
  text-align: center;
  gap: 2px;
}

.cog-form .loa-school,
.cog-form .cog-title-main,
.cog-form .cog-form-no-header {
  font-family: Arial, Helvetica, sans-serif;
  color: #000;
}

.cog-form .loa-school {
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 1px;
}

.cog-header-right {
  display: none;
}

.cog-form-no-header {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  color: #000;
  white-space: nowrap;
  letter-spacing: 0.15px;
}

.cog-title-main {
  margin-top: 0;
  font-size: 0.9rem;
  font-weight: 700;
  text-align: center;
}

.cog-date {
  text-align: right;
  margin: 4px 0 14px;
}

.cog-line-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  margin: 8px 0;
  white-space: nowrap;
}

.cog-line-row--details {
  flex-wrap: wrap;
  white-space: normal;
}

.cog-box {
  display: inline-flex;
  align-items: center;
  height: 24px;
  border: 1px solid #9ea6ae;
  vertical-align: middle;
  background: #fff;
  padding: 0 6px;
  overflow: visible;
  white-space: nowrap;
  text-overflow: clip;
}

.cog-box--sm {
  width: 108px;
}

.cog-box--md {
  width: 250px;
}

.cog-box--lg {
  width: 340px;
}

.cog-box--xl {
  width: 470px;
}

.cog-box--xxl {
  width: 560px;
}

.cog-box--prog {
  width: 170px;
}

.cog-box--course {
  flex: 1;
  min-width: 220px;
  max-width: 100%;
}

.cog-course-combo {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  white-space: nowrap;
}

.cog-box--course-short {
  width: 54px;
}

.cog-box--course-long {
  width: 185px;
}

.cog-course-combo .cog-box {
  margin: 0;
}

.cog-course-combo .cog-box--course-long {
  border-left: 0;
}

.cog-line-fill {
  display: inline-block;
  flex: 1;
  border-bottom: 1px solid #9ea6ae;
  min-height: 18px;
}

.cog-line-fill--full {
  display: block;
  width: 100%;
  margin-top: 2px;
}

.cog-subtitle {
  font-size: 1.35rem;
  font-weight: 800;
  margin: 16px 0 8px;
}

.cog-computation table {
  width: 56%;
  border-collapse: collapse;
  margin: 4px 0 16px;
}

.cog-computation th,
.cog-computation td {
  border: 1px solid #98a1aa;
  padding: 5px 8px;
  font-size: 0.72rem;
}

.cog-signatures {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.cog-signatures > div {
  min-width: 0;
}

.cog-line {
  min-height: 14px;
  margin: 8px 0 4px;
  overflow: hidden;
}

.cog-signatures .acd-inline-input--lg {
  width: calc(100% - 8px);
  max-width: calc(100% - 8px);
  box-sizing: border-box;
}

.cog-attachment {
  margin-top: 12px;
}

.cog-cut-divider {
  border-top: 1px dashed #9ea6ae;
  margin-top: 12px;
}

/* Cross Enroll */

.ce-form {
  min-height: 320mm;
}

.ce-date {
  text-align: right;
  margin-top: 8px !important;
}

.ce-subject-grid {
  display: grid;
  grid-template-columns: 1fr 0.8fr;
  gap: 36px;
  margin: 10px 0;
}

.ce-subject-grid p {
  margin: 6px 0;
}

.ce-total {
  text-align: center;
  font-size: 0.95rem;
  font-weight: 700;
  margin: 8px 0 !important;
}

.ce-sign-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  margin-top: 12px;
}

.ce-invalid {
  font-size: 1.9rem;
  font-weight: 800;
  line-height: 1.05;
  text-align: center;
  margin: 6px 0 18px !important;
}

.ce-line {
  min-height: 14px;
  margin: 10px 0 4px;
}

.ce-mt {
  margin-top: 22px !important;
}

.ce-print-by {
  margin-top: 20px !important;
  font-size: 0.64rem;
}

/* Completion Grade */

.comp-body {
  min-height: 200mm;
}

.comp-date-wrap {
  text-align: right;
  margin-bottom: 20px;
}

.comp-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  border: 1px solid #9ea6ae;
  padding: 16px;
  margin-bottom: 20px;
}

.comp-info-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.comp-info-row {
  display: flex;
  gap: 12px;
  align-items: baseline;
}

.comp-info-row span:first-child {
  font-weight: 700;
  min-width: 90px;
}

.comp-info-title {
  font-weight: 800;
  font-size: 0.85rem;
  margin: 0 0 10px;
  text-decoration: underline;
}

.comp-cert {
  margin: 20px 0;
  text-align: justify;
  line-height: 1.5;
}

.comp-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0 30px;
}

.comp-table th,
.comp-table td {
  border: 1px solid #9aa1a8;
  padding: 8px;
  text-align: center;
}

.comp-table th {
  background: #f8fafb;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.72rem;
}

.comp-sigs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  margin-top: 40px;
}

.comp-sig-col {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.comp-sig-line {
  text-align: center;
  padding-top: 6px;
  font-weight: 700;
}

.comp-sig-line span {
  font-weight: 400;
  font-size: 0.7rem;
  display: block;
  margin-top: 2px;
}

/* Readonly Overrides */

.page-student-profile-config .spc-card.spc-readonly .spc-grid-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.7fr) minmax(0, 1.7fr) minmax(0, 0.95fr) 64px 140px;
  gap: 6px 10px;
  align-items: start;
  margin-bottom: 8px;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-top > .spc-field {
  min-width: 0;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-top > .spc-field .app-filter-input {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-top > .spc-field-sm {
  width: 64px !important;
  min-width: 64px !important;
  max-width: 64px !important;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-top > .spc-photo-box {
  width: 140px !important;
  height: 140px;
  min-height: 140px;
  margin: 0;
  position: relative;
  z-index: 10;
  background: #fff;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-contact,
.page-student-profile-config .spc-card.spc-readonly .spc-grid-birth,
.page-student-profile-config .spc-card.spc-readonly .spc-grid-address,
.page-student-profile-config .spc-card.spc-readonly .spc-grid-acad,
.page-student-profile-config .spc-card.spc-readonly .spc-grid-status,
.page-student-profile-config .spc-card.spc-readonly .spc-grid-transfer {
  display: grid;
  gap: 6px 8px;
  margin-bottom: 6px;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-contact {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 2.5fr) minmax(0, 0.8fr) minmax(0, 1fr);
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-birth {
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr);
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-address {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr) max-content minmax(0, 2fr) minmax(0, 0.8fr);
  align-items: flex-end;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-acad {
  grid-template-columns: minmax(0, 2.5fr) minmax(0, 0.8fr) minmax(0, 0.5fr) minmax(0, 0.8fr);
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-status {
  grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.2fr) minmax(0, 1.2fr) minmax(0, 1.5fr);
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-transfer {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 2.5fr);
}

.page-student-profile-config .spc-card.spc-readonly .app-filter-label {
  margin-bottom: 2px;
  display: block;
}

.page-student-profile-config .spc-card.spc-readonly .app-filter-input {
  min-height: 34px;
  box-sizing: border-box;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-address .spc-checkline {
  margin-top: 0;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
}

@media (max-width: 1100px) {
  .page-student-profile-config .spc-card.spc-readonly .spc-grid-top {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .page-student-profile-config .spc-card.spc-readonly .spc-grid-top .spc-photo-box {
    grid-column: span 2;
    justify-self: start;
    width: 124px !important;
    height: 124px !important;
    min-height: 124px !important;
  }
}

@media (max-width: 760px) {
  .page-student-profile-config .spc-card.spc-readonly .spc-grid-top .spc-photo-box {
    width: 112px !important;
    height: 112px !important;
    min-height: 112px !important;
  }
}

.spc-card.spc-readonly .spc-readonly-banner {
  margin: 0 0 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #14532d;
  background: #dcfce7;
  border: 1px solid #bbf7d0;
}

.spc-card.spc-readonly .spc-photo-preview {
  display: block !important;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
  border-radius: 6px;
}

.spc-card.spc-readonly .spc-photo-icon {
  display: none !important;
}

.spc-card.spc-layout-lock .spc-photo-icon {
  display: none !important;
}

.spc-card.spc-readonly .spc-readonly-note {
  margin: 0;
  font-size: 0.83rem;
  color: #4b5563;
}

.page-student-profile-config .spc-card.spc-readonly {
  padding: 12px;
}

.spc-card.spc-readonly .app-filter-input[readonly],
.spc-card.spc-readonly .app-filter-input[disabled],
.spc-card.spc-readonly .req-checkbox-input[disabled],
.spc-card.spc-readonly .spc-photo-box {
  cursor: not-allowed;
}

.spc-card.spc-readonly .app-filter-input[readonly],
.spc-card.spc-readonly .app-filter-input[disabled] {
  background: #eef3ef;
  color: #374151;
}

.spc-card.spc-readonly .spc-readonly-fieldset .app-filter-input {
  background: #e5e7eb !important;
  color: #6b7280 !important;
  border-color: #d1d5db !important;
  box-shadow: none !important;
}

.spc-card.spc-readonly .spc-photo-box {
  opacity: 0.82;
  pointer-events: none;
}

.spc-card.spc-readonly .spc-readonly-fieldset {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}

/* Editable layout lock for registrar profile page */

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.7fr) minmax(0, 1.7fr) minmax(0, 0.95fr) 64px 140px;
  gap: 6px 10px;
  align-items: start;
  margin-bottom: 8px;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top > .spc-field {
  min-width: 0;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top > .spc-field .app-filter-input {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top > .spc-field-sm {
  width: 64px !important;
  min-width: 64px !important;
  max-width: 64px !important;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top > .spc-photo-box {
  width: 140px !important;
  height: 140px;
  min-height: 140px;
  margin: 0;
  position: relative;
  z-index: 10;
  background: #fff;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-contact,
.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-birth,
.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-address,
.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-acad,
.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-status,
.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-transfer {
  display: grid;
  gap: 6px 8px;
  margin-bottom: 6px;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-contact {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 2.5fr) minmax(0, 0.8fr) minmax(0, 1fr);
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-birth {
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr);
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-address {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr) max-content minmax(0, 2fr) minmax(0, 0.8fr);
  align-items: flex-end;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-acad {
  grid-template-columns: minmax(0, 2.5fr) minmax(0, 0.8fr) minmax(0, 0.5fr) minmax(0, 0.8fr);
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-status {
  grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.2fr) minmax(0, 1.2fr) minmax(0, 1.5fr);
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-transfer {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 2.5fr);
}

.page-student-profile-config .spc-card.spc-layout-lock .app-filter-label {
  margin-bottom: 2px;
  display: block;
}

.page-student-profile-config .spc-card.spc-layout-lock .app-filter-input {
  min-height: 34px;
  box-sizing: border-box;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-address .spc-checkline {
  margin-top: 0;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
}

@media (max-width: 1100px) {
  .page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top .spc-photo-box {
    grid-column: span 2;
    justify-self: start;
    width: 124px !important;
    height: 124px !important;
    min-height: 124px !important;
  }
}

@media (max-width: 760px) {
  .page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top .spc-photo-box {
    width: 112px !important;
    height: 112px !important;
    min-height: 112px !important;
  }
}

/* Ensure action links look exactly like green action buttons in both config and app preview modes */

.page-student-profile-config .spc-view-form-btn,
.page-student-profile-app-preview .spc-view-form-btn {
  text-decoration: none !important;
}

.page-student-profile-config .spc-view-form-btn:hover,
.page-student-profile-config .spc-view-form-btn:focus,
.page-student-profile-config .spc-view-form-btn:visited,
.page-student-profile-app-preview .spc-view-form-btn:hover,
.page-student-profile-app-preview .spc-view-form-btn:focus,
.page-student-profile-app-preview .spc-view-form-btn:visited {
  text-decoration: none !important;
  color: #fff !important;
}

/* Applicant process compact filter layout override */

.app-process-page .app-filter-bar {
  gap: 6px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid #d9e3dd;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

.app-process-page .app-filter-row {
  gap: 8px;
}

.app-process-page .app-filter-group {
  gap: 3px;
  flex: 1 1 170px;
  min-width: 170px;
}

.app-process-page .app-filter-actions-row {
  align-items: center;
  justify-content: space-between;
}

.app-process-page .app-filter-actions-group {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin-left: auto;
}

.app-process-page .app-filter-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 108px;
  min-height: 38px;
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid #006837;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-decoration: none;
  transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.app-process-page .app-filter-action-btn:focus {
  outline: none;
  box-shadow: 0 0 0 0.16rem rgba(0, 104, 55, 0.22);
}

.app-process-page .app-filter-action-btn--reset {
  background: #f2faf5;
  color: #006837;
  border-color: #0b7a47;
}

.app-process-page .app-filter-action-btn--reset:hover {
  background: #e5f4ec;
  color: #005028;
  text-decoration: none;
}

.app-process-page .app-filter-action-btn--print {
  background: #006837;
  color: #fff;
  border-color: #006837;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.14);
}

.app-process-page .app-filter-action-btn--print:hover {
  background: #005028;
  color: #fff;
  text-decoration: none;
}

.app-process-page .app-filter-auto-note {
  margin: 0;
  font-size: 0.74rem;
  color: #4f5a53;
  line-height: 1.35;
}

.app-process-page .app-filter-input,
.app-process-page .app-filter-select {
  min-height: 36px;
}

@media (max-width: 991px) {
  .app-process-page .app-filter-row .app-filter-group {
    flex: 0 0 auto;
    min-width: 100%;
    width: 100%;
  }

  .app-process-page .app-filter-actions-row {
    gap: 8px;
    align-items: stretch;
  }

  .app-process-page .app-filter-actions-group {
    margin-left: 0;
    width: 100%;
    justify-content: stretch;
    gap: 6px;
  }

  .app-process-page .app-filter-actions-group .app-filter-action-btn {
    flex: 1 1 calc(50% - 3px);
    min-width: 0;
  }

  .app-process-page .app-filter-auto-note {
    font-size: 0.72rem;
  }
}

.plp-header {
  background-color: var(--plp-green);
  width: 100%;
  min-height: 100px;
}

.plp-header-logo {
  width: auto;
  height: 80px;
  -o-object-fit: contain;
     object-fit: contain;
  flex-shrink: 0;
}

.plp-footer {
  background-color: var(--plp-white);
  border-top: 2px dashed #999;
  padding: 12px 20px;
  font-size: 0.88rem;
  color: #555555;
  z-index: 10;
  position: relative;
  margin-top: auto;
}

.footer-powered-line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px;
}

.footer-line-1,
.footer-line-2 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}

.plp-footer a {
  color: #333333;
  text-decoration: underline;
  font-weight: 600;
}

.plp-footer a:hover {
  color: var(--plp-green);
}

.footer-logo-rushpoint {
  display: inline-block;
  height: 32px;
  width: auto;
  vertical-align: middle;
  margin: 0 4px;
}

.footer-logo-obanana {
  display: inline-block;
  height: 30px;
  width: auto;
  vertical-align: middle;
  margin: 0 4px;
}

.obanana-text {
  color: #d4a017;
  font-size: 1rem;
  font-weight: 700;
}

.student-portal-body {
  background-color: #ffffff;
  min-height: 100vh;
}

.student-portal-body .student-layout {
  display: flex;
  min-height: 100vh;
  position: relative;
}

.student-portal-body .sidebar-overlay {
  display: none;
}

.student-portal-body .sidebar-toggle {
  display: none;
  border: 0;
  background: transparent;
  color: #333333;
  padding: 0;
}

.student-portal-body .plp-sidebar {
  width: 285px;
  min-width: 285px;
  background-color: #0a813c;
  border-top-right-radius: 22px;
  border-bottom-right-radius: 22px;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  box-shadow: 4px 0 14px rgba(0, 0, 0, 0.15);
  z-index: 5;
}

.student-portal-body .sidebar-brand {
  padding: 10px 14px 8px;
  border-bottom: 2px solid rgba(255, 255, 255, 0.9);
  margin-bottom: 10px;
}

.student-portal-body .sidebar-logo {
  width: 94px;
  height: auto;
  display: block;
  margin: 0 auto 4px;
}

.student-portal-body .sidebar-text-logo {
  width: 200px;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.student-portal-body .sidebar-nav {
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.student-portal-body .sidebar-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border-radius: 8px;
  color: #ffffff;
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  transition: all 0.2s ease;
}

.student-portal-body .sidebar-link svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.student-portal-body .sidebar-link span {
  font-size: 1rem;
  line-height: 1;
}

.student-portal-body .sidebar-link:hover {
  background-color: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

.student-portal-body .sidebar-link.active {
  background-color: #ffffff;
  color: #0a813c;
  font-weight: 700;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
}

.student-portal-body .sidebar-logout {
  margin-top: auto;
  padding: 8px;
}

.student-portal-body .logout-link {
  background-color: #ffffff;
  color: #111111;
  border-radius: 10px;
  padding: 12px 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-decoration: none;
  font-size: 1rem;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
}

.student-portal-body .logout-link svg {
  width: 22px;
  height: 22px;
}

.student-portal-body .student-main-wrapper {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background-color: #ffffff;
  overflow-y: visible !important;
  overflow-x: hidden;
}

.student-portal-body .content-footer-wrap {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: calc(100vh - 72px);
  overflow-y: visible !important;
  overflow-x: hidden;
}

.student-portal-body .student-topbar {
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 28px;
  background-color: #ffffff;
  border-bottom: 1px solid #0a813c;
  position: relative;
  z-index: 10;
}

.student-portal-body .topbar-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  border: 3px solid #ffffff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.student-portal-body .student-page-header {
  position: relative;
  margin-top: 6px;
  border-top: 2px solid #0a813c;
  height: 40px;
  background-color: #0a813c;
  color: #ffffff;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.6px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
}

.student-portal-body .student-content {
  flex: 0 0 auto;
  padding: 30px 28px 16px;
  overflow-y: visible !important;
  overflow-x: hidden;
  background-color: #ffffff;
}

.student-portal-body .student-main-wrapper .plp-footer {
  background-color: transparent;
  border-top: 1px dashed #a8a8a8;
  font-size: 11px;
  color: #555555;
  padding: 6px 12px 8px;
  margin-top: auto;
}

.student-portal-body .student-main-wrapper .plp-footer p {
  margin-bottom: 0;
  line-height: 1.15;
}

.student-portal-body .student-main-wrapper .plp-footer a {
  color: #5f5f5f;
}

@media (max-width: 991px) {
  .student-portal-body .plp-sidebar {
    width: 250px;
    min-width: 250px;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 11000;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
  }

  .student-portal-body .plp-sidebar.sidebar-open {
    transform: translateX(0);
  }

  .student-portal-body .sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 10999;
    opacity: 0;
    transition: opacity 0.2s ease;
  }

  .student-portal-body .sidebar-overlay.active {
    display: block;
    opacity: 1;
  }

  .student-portal-body .sidebar-toggle {
    display: inline-flex;
    align-items: center;
    margin-right: auto;
    position: relative;
    z-index: 11001;
  }
}

@media (max-width: 768px) {
  .student-portal-body .student-content {
    padding: 16px 12px 10px;
  }

  .student-portal-body .student-page-header {
    font-size: 0.95rem;
    height: 36px;
  }
}

@media (max-width: 991px) {
  .registrar-body .plp-sidebar,
  .parent-portal-body .plp-sidebar {
    width: 250px;
    min-width: 250px;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 1000;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    border-top-right-radius: 22px;
    border-bottom-right-radius: 22px;
  }

  .registrar-body .plp-sidebar.sidebar-open,
  .parent-portal-body .plp-sidebar.sidebar-open {
    transform: translateX(0);
  }

  .registrar-body .sidebar-overlay,
  .parent-portal-body .sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 999;
    opacity: 0;
    transition: opacity 0.2s ease;
  }

  .registrar-body .sidebar-overlay.active,
  .parent-portal-body .sidebar-overlay.active {
    display: block;
    opacity: 1;
  }

  .registrar-body .sidebar-toggle,
  .parent-portal-body .sidebar-toggle {
    display: inline-flex;
    align-items: center;
    margin-right: auto;
  }
}

/* Access module reusable blocks */

.access-module-section {
  position: relative;
  text-align: center;
  padding: 0 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  min-height: calc(100vh - 200px);
  background: #efefef;
}

.bg-watermark {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.27;
  pointer-events: none;
}

.bg-watermark img {
  width: min(80vw, 700px);
  height: auto;
}

.access-module-title {
  font-size: clamp(2.1rem, 8vw, 5.5rem);
  font-weight: 900;
  color: transparent;
  text-transform: uppercase;
  letter-spacing: clamp(1px, 0.6vw, 6px);
  margin-bottom: 50px;
  position: relative;
  z-index: 1;
  -webkit-text-stroke: 3px var(--plp-green);
}

.module-cards-wrapper {
  position: relative;
  z-index: 1;
  max-width: 900px;
  width: 100%;
}

.module-card {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.module-card-icon {
  width: 100%;
  max-width: 200px;
  aspect-ratio: 1/1;
  border: 2px solid var(--plp-green);
  border-radius: 4px;
  background: #fff;
  margin-bottom: 12px;
}

.module-card-btn {
  display: inline-block;
  background-color: var(--plp-green);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 10px 32px;
  border: none;
  border-radius: 4px;
  text-decoration: none;
  letter-spacing: 0.4px;
  min-width: 150px;
  text-align: center;
}

.module-card-btn:hover {
  color: var(--plp-yellow);
  background-color: var(--plp-green-dark);
}

/* New module selector reusable blocks */

.am-section {
  position: relative;
  min-height: calc(100vh - 190px);
  overflow: hidden;
  background: #efefef;
}

.am-watermark {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.25;
  pointer-events: none;
}

.am-watermark img {
  width: min(70vw, 700px);
  height: auto;
}

.am-title {
  font-size: clamp(2.1rem, 8vw, 5.5rem);
  font-weight: 900;
  letter-spacing: clamp(1px, 0.6vw, 6px);
  color: transparent;
  -webkit-text-stroke: 3px #006837;
  line-height: 1;
  z-index: 1;
}

.am-cards-row {
  max-width: 900px;
  z-index: 1;
}

.am-card {
  max-width: 230px;
}

.am-card-box {
  width: 100%;
  aspect-ratio: 1/1;
  border: 2px solid #0a7d3f;
  border-radius: 4px;
  background: #ffffff;
  margin-bottom: 12px;
}

.am-btn {
  background-color: #006837;
  color: #fff;
  font-weight: 800;
  font-size: clamp(0.82rem, 1.4vw, 1rem);
  border-radius: 4px;
  padding: 8px 10px;
  letter-spacing: 0.4px;
}

.am-btn:hover,
.am-btn:focus {
  background-color: #005028;
  color: #ffd100;
}

/* Login */

.login-body {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.login-bg-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}

.login-bg-wrapper::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(218, 165, 32, 0.25);
  z-index: 1;
  pointer-events: none;
}

.login-main {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
  padding: 24px;
}

.login-card-wrapper {
  position: relative;
  width: 100%;
  max-width: 480px;
}

.login-card {
  background: #ffffff;
  border-radius: 12px;
  padding: 40px 36px 36px;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.25);
}

.login-card-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.6rem;
  font-weight: 900;
  color: #222;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 28px;
}

.login-field-group {
  margin-bottom: 20px;
}

.login-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: #0a7d3f;
  text-transform: uppercase;
  letter-spacing: 3px;
  margin-bottom: 6px;
}

.login-input {
  width: 100%;
  padding: 10px 14px;
  font-size: 0.95rem;
  font-family: "Poppins", sans-serif;
  border: 1px solid #ddd;
  border-radius: 6px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  color: #333;
  background: #fff;
}

.login-input::-moz-placeholder {
  color: #bbb;
}

.login-input::placeholder {
  color: #bbb;
}

.login-input:focus {
  border-color: #0a7d3f;
  box-shadow: 0 0 0 3px rgba(26, 110, 26, 0.12);
}

.login-input.is-invalid {
  border-color: #dc3545;
}

.login-password-wrapper {
  position: relative;
}

.login-password-wrapper .login-input {
  padding-right: 44px;
}

.password-toggle-btn {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  display: flex;
  align-items: center;
}

.password-toggle-btn:hover svg {
  fill: #0a7d3f;
}

.login-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.82rem;
  color: #555;
  margin-top: 6px;
}

.login-options .form-check-label {
  font-size: 0.82rem;
  color: #555;
}

.login-options .login-remember-check {
  margin-bottom: 0;
  font-size: 0.82rem;
  color: #555;
}

.login-options .login-remember-check input[type=checkbox] {
  margin-top: 0;
}

.login-forgot {
  font-size: 0.82rem;
  color: #555;
}

.login-forgot a {
  color: #0a7d3f;
  font-weight: 700;
  text-decoration: underline;
}

.login-forgot a:hover {
  color: #145a14;
}

.login-submit-btn {
  display: inline-block;
  background-color: #0a7d3f;
  color: #ffffff;
  font-family: "Poppins", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  padding: 12px 60px;
  border: none;
  border-radius: 30px;
  cursor: pointer;
  letter-spacing: 0.5px;
  transition: all 0.2s ease;
  min-width: 200px;
}

.login-submit-btn:hover {
  background-color: #145a14;
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(26, 110, 26, 0.35);
}

.login-parent-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 100%;
}

.login-submit-btn--block {
  width: 100%;
  max-width: 260px;
  min-width: 0;
}

.login-parent-caption {
  margin: 2px 0 0;
  font-size: 0.78rem;
  color: #666;
}

.login-parent-create-link {
  color: #0a7d3f;
  font-family: "Poppins", sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.2s ease;
}

.login-parent-create-link:visited {
  color: #0a7d3f;
}

.login-parent-create-link:hover,
.login-parent-create-link:focus {
  color: #145a14;
}

.login-parent-create-link-btn {
  border: 0;
  background: transparent;
  padding: 0;
  line-height: 1;
}

.login-parent-create-modal {
  position: fixed;
  inset: 0;
  z-index: 2100;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(12, 22, 16, 0.08);
}

.login-parent-create-modal.is-open {
  display: flex;
}

.login-parent-create-modal-dialog {
  width: min(900px, 100%);
  pointer-events: auto;
}

.login-parent-create-modal-content {
  border-radius: 28px;
  border: 0;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.18);
  pointer-events: auto;
}

.login-parent-create-modal-content .modal-body {
  padding: 28px 34px 30px;
  background: #f4f4f4;
}

.login-parent-create-close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #5f5f5f;
  font-size: 1.2rem;
  line-height: 1;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.login-parent-create-close:hover,
.login-parent-create-close:focus {
  background: #ebeff1;
  color: #1d1d1d;
}

.login-parent-create-title {
  text-align: center;
  margin: 0 0 20px;
  font-size: 2rem;
  font-weight: 800;
  color: #121212;
  letter-spacing: 0.02em;
}

.login-parent-create-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.login-parent-create-field label {
  display: block;
  margin-bottom: 7px;
  color: #0a7d3f;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.login-parent-create-field label span {
  color: #ef5b5b;
  margin-left: 2px;
}

.login-parent-create-field .form-control {
  height: 42px;
  border: 1px solid #d2d2d2;
  border-radius: 6px;
  font-size: 0.93rem;
  box-shadow: none;
  padding: 0 12px;
  background: #fff;
}

.login-parent-create-field .form-control:disabled,
.login-parent-create-field .form-control[readonly] {
  opacity: 1;
  background: #fff;
  color: #2d2d2d;
  cursor: text;
  pointer-events: auto;
}

.login-parent-create-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 18px;
}

.login-parent-create-actions .btn {
  min-width: 106px;
  height: 42px;
  border-radius: 10px;
  border: 0;
  background: #0a7d3f;
  color: #fff;
  font-weight: 700;
  font-size: 1.05rem;
}

body.login-body .modal-backdrop.show {
  opacity: 0.24;
}

@media (max-width: 991px) {
  .login-parent-create-modal-dialog {
    width: 100%;
  }

  .login-parent-create-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .login-parent-create-modal-content .modal-body {
    padding: 20px 16px 22px;
  }

  .login-parent-create-title {
    font-size: 1.55rem;
    margin-bottom: 16px;
  }

  .login-parent-create-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

.login-bg-wrapper .plp-footer {
  background-color: transparent;
  border-top: 2px dashed rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.85);
  position: relative;
  z-index: 2;
}

.login-bg-wrapper .plp-footer a {
  color: rgba(255, 255, 255, 0.95);
}

.login-bg-wrapper .plp-footer a:hover {
  color: #1a2a6c;
}

.login-bg-wrapper .plp-footer .obanana-text {
  color: #ffd700;
}

/* Form controls */

.form-label-plp {
  color: #006837;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 3px;
  margin-bottom: 7px;
}

.form-input-long,
.form-input-short {
  border: 1px solid #bfbfbf;
  border-radius: 8px;
  padding: 0 14px;
  font-size: 0.95rem;
  color: #555;
  font-family: "Poppins", sans-serif;
  background-color: #ffffff;
  height: 42px;
  width: 100%;
  box-shadow: none;
}

.form-input-long:focus,
.form-input-short:focus {
  outline: none;
  border-color: #9c9c9c;
  box-shadow: none;
}

/* Filter grid guarantees cross-row alignment */

.filter-grid {
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 14px 20px;
}

.filter-cell--action {
  align-self: end;
}

.btn-view-cor {
  width: 100%;
  height: 42px;
  background-color: #00843d;
  color: #ffffff;
  border: none;
  border-radius: 4px;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.24);
}

.btn-view-cor:hover {
  background-color: #006f33;
}

/* COR */

.section-offering-page .cor-scroll-wrapper {
  width: 100%;
  display: flex;
  justify-content: center;
}

.section-offering-page .cor-container {
  --cor-header-min-height: clamp(74px, 8vw, 86px);
  --cor-header-pad-y: clamp(8px, 1vw, 10px);
  --cor-header-pad-x: clamp(12px, 1.8vw, 18px);
  --cor-header-gap: clamp(8px, 1.2vw, 10px);
  --cor-logo-size: clamp(62px, 7vw, 74px);
  --cor-school-size: clamp(30px, 4.4vw, 36px);
  --cor-title-size: clamp(19px, 2.6vw, 24px);
  --cor-reg-size: clamp(13px, 1.5vw, 16px);
  border: 2px solid #000;
  border-radius: 0;
  padding: 0;
  background-color: #fff;
  overflow: hidden;
  width: 210mm;
  min-height: 250mm;
  margin-left: auto;
  margin-right: auto;
  transform-origin: top center;
}

.section-offering-page .cor-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-areas: "left . right" "title title title";
  align-items: center;
  padding: var(--cor-header-pad-y) var(--cor-header-pad-x);
  min-height: calc(var(--cor-header-min-height) + 14px);
  row-gap: 2px;
  background-color: #006837;
  border-bottom: 2px solid #006837;
}

.section-offering-page .cor-header-left {
  grid-area: left;
  display: flex;
  align-items: center;
  gap: var(--cor-header-gap);
}

.section-offering-page .cor-header-left img {
  width: auto;
  flex-shrink: 0;
  -o-object-fit: contain;
     object-fit: contain;
}

.section-offering-page .cor-logo {
  height: var(--cor-logo-size);
}

.section-offering-page .cor-school-text-img {
  height: var(--cor-school-size);
}

.section-offering-page .cor-header-center {
  grid-area: title;
  justify-self: center;
  align-self: center;
  text-align: center;
  padding: 0 12px;
  white-space: nowrap;
}

.section-offering-page .cor-title {
  font-family: "Roboto", "Poppins", sans-serif;
  font-size: var(--cor-title-size);
  font-weight: 800;
  color: #ffffff;
  text-transform: uppercase;
  margin: 0;
  line-height: 1;
}

.section-offering-page .cor-header-right {
  grid-area: right;
  text-align: right;
  white-space: nowrap;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  align-self: stretch;
  z-index: 2;
}

.section-offering-page .cor-label {
  font-size: 12px;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
  text-transform: uppercase;
}

.section-offering-page .cor-reg-number {
  font-size: var(--cor-reg-size);
  font-weight: 700;
  color: #ff3333;
  margin: 0;
}

.section-offering-page {
  --cor-col-name: 16%;
  --cor-col-desc: 28%;
  --cor-col-section: 10%;
  --cor-col-units: 8%;
  --cor-col-room: 8%;
  --cor-col-days: 10%;
  --cor-col-time: 12%;
  --cor-col-pay: 8%;
}

.section-offering-page .cor-student-info {
  padding: 20px 42px 12px;
  border-bottom: none !important;
  margin-bottom: 10px;
}

.section-offering-page .cor-info-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6px;
}

.section-offering-page .cor-info-row--grid {
  display: grid;
  grid-template-columns: 1fr 1fr 0.5fr !important;
  -moz-column-gap: 12px;
       column-gap: 12px;
  align-items: start;
  justify-content: start;
}

.section-offering-page .cor-info-row:last-child {
  margin-bottom: 0;
}

.section-offering-page .cor-info-group,
.section-offering-page .cor-info-col {
  display: flex;
  flex: 1;
  align-items: baseline;
  gap: 4px;
  min-width: 0;
  flex-direction: column;
}

.section-offering-page .cor-info-col {
  flex: 0 1 auto !important;
  width: -moz-fit-content !important;
  width: fit-content !important;
  justify-self: start !important;
  align-self: start !important;
}

.section-offering-page .cor-info-label,
.section-offering-page .cor-info-value {
  font-size: 12px;
  color: #000;
  font-weight: 700;
}

.section-offering-page .cor-info-label {
  white-space: nowrap;
}

.section-offering-page .cor-info-row--scholar {
  padding: 6px 0 8px;
  border-top: 1px dotted #000;
  border-bottom: 1px dotted #000;
}

.section-offering-page .cor-schedule-header {
  background-color: #006837;
  padding: 8px;
  text-align: center;
}

.section-offering-page .cor-schedule-title {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  margin: 0;
  letter-spacing: 1px;
}

.section-offering-page .cor-table {
  width: calc(100% - 84px);
  margin-left: auto;
  margin-right: auto;
  margin-top: 10px;
  border-collapse: collapse;
  border-spacing: 0;
  border: 1px solid #000;
  border-top: 1px solid #000;
}

.section-offering-page .cor-table thead {
  background-color: #fff;
  border-bottom: 1px solid #000;
  border-top: none;
}

.section-offering-page .cor-th,
.section-offering-page .cor-td {
  padding: 10px 12px;
  font-size: 12px;
  color: #000;
  font-weight: 700;
  border-left: 1px solid #000;
  border-right: 1px solid #000;
}

.section-offering-page .cor-th {
  text-align: center;
  white-space: nowrap;
  border-bottom: 1px solid #000 !important;
}

.section-offering-page .cor-td {
  text-align: left;
  vertical-align: top;
}

.section-offering-page .cor-table .cor-th:first-child,
.section-offering-page .cor-table .cor-td:first-child {
  padding-left: 24px;
}

.section-offering-page .cor-table .cor-th:last-child,
.section-offering-page .cor-table .cor-td:last-child {
  padding-right: 24px;
}

.section-offering-page .cor-table tbody tr {
  border-bottom: 1px solid #000;
}

.section-offering-page .cor-table tfoot tr {
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
}

.section-offering-page .cor-table-title {
  text-align: center;
  font-weight: 700;
  background: #fff;
  color: #000;
  border-bottom: 1px solid #000 !important;
}

.section-offering-page .cor-table thead tr:first-child th {
  border-top: none;
}

.section-offering-page .cor-total-label {
  text-align: right;
  font-weight: 700;
}

.section-offering-page .col-name {
  width: var(--cor-col-name);
}

.section-offering-page .col-desc {
  width: var(--cor-col-desc);
}

.section-offering-page .col-section {
  width: var(--cor-col-section);
}

.section-offering-page .col-units {
  width: var(--cor-col-units);
}

.section-offering-page .col-room {
  width: var(--cor-col-room);
}

.section-offering-page .col-days {
  width: var(--cor-col-days);
}

.section-offering-page .col-time {
  width: var(--cor-col-time);
}

.section-offering-page .col-pay {
  width: var(--cor-col-pay);
}

.section-offering-page .cor-td:nth-child(2) {
  white-space: normal;
}

.section-offering-page .cor-table .cor-th:nth-child(5),
.section-offering-page .cor-table .cor-th:nth-child(6),
.section-offering-page .cor-table .cor-th:nth-child(7),
.section-offering-page .cor-table .cor-td:nth-child(5),
.section-offering-page .cor-table .cor-td:nth-child(6),
.section-offering-page .cor-table .cor-td:nth-child(7) {
  white-space: nowrap;
}

.section-offering-page .cor-totals {
  padding: 15px 42px;
  border-top: 1px solid #000;
}

.section-offering-page .cor-totals-text {
  font-size: 12px;
  color: #000;
  margin: 0;
}

.section-offering-page .cor-note-bar {
  background-color: #006837;
  padding: 8px;
  text-align: center;
}

.section-offering-page .cor-note-text {
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  margin: 0;
}

.section-offering-page .cor-signatures {
  display: flex;
  justify-content: space-between;
  padding: 40px 80px 30px;
  margin-top: 20px;
}

.section-offering-page .cor-signature-left,
.section-offering-page .cor-signature-right {
  text-align: center;
  flex: 1;
  max-width: 300px;
}

.section-offering-page .cor-signature-left {
  margin-right: 80px;
}

.section-offering-page .cor-signature-right {
  margin-left: 80px;
}

.section-offering-page .cor-signature-name {
  font-size: 12px;
  font-weight: 700;
  color: #000;
  text-transform: uppercase;
  margin: 0 0 5px 0;
}

.section-offering-page .cor-signature-role {
  font-size: 12px;
  color: #555;
  margin: 0;
}

/* Schedule */

.sched-page-container {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.sched-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background-color: #ffffff;
  border: 2px solid #c0c0c0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.sched-th {
  background-color: #006837;
  color: #ffffff;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 0.85rem;
  padding: 12px 16px;
  text-align: center;
  letter-spacing: 0.3px;
}

.sched-td {
  font-family: "Poppins", sans-serif;
  font-size: 0.85rem;
  color: #333;
  padding: 12px 16px;
  text-align: center;
  border-bottom: 1px solid #c0c0c0;
}

.sched-table tbody tr:last-child .sched-td {
  border-bottom: none;
}

.sched-table tbody tr:hover {
  background-color: #f6fbf8;
}

.weekly-box {
  background-color: #ffffff;
  border-radius: 8px;
  padding: 24px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.weekly-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #006837;
  margin: 0 0 20px 0;
}

.weekly-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  overflow: hidden;
}

.weekly-col {
  display: flex;
  flex-direction: column;
  border-right: 1px solid #e0e0e0;
}

.weekly-col:last-child {
  border-right: none;
}

.weekly-day-header {
  background-color: #ffffff;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 0.78rem;
  color: #333;
  text-align: center;
  padding: 10px 4px;
  border-bottom: 1px solid #e0e0e0;
}

.weekly-day-body {
  flex: 1;
  padding: 8px 6px;
  min-height: 140px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.weekly-card {
  background-color: #006837;
  border-radius: 6px;
  padding: 10px 8px;
  text-align: center;
  color: #ffffff;
}

.wc-code {
  font-family: "Poppins", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  margin: 0 0 3px 0;
}

.wc-name {
  font-family: "Poppins", sans-serif;
  font-size: 0.68rem;
  font-weight: 400;
  margin: 0 0 5px 0;
  line-height: 1.3;
}

.wc-time,
.wc-room {
  font-family: "Poppins", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  margin: 0 0 3px 0;
}

.wc-room {
  margin: 0;
  letter-spacing: 0.3px;
}

.sched-scroll-wrapper,
.weekly-scroll-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
}

.sched-scroll-wrapper {
  border-radius: 8px;
}

.so-weekly {
  background: #ffffff;
  border: 1px solid #d7e2db;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(6, 61, 35, 0.08);
}

.so-weekly-title {
  margin: 0;
  padding: 14px 20px;
  background: #006837;
  color: #ffffff;
  font-size: 1.9rem;
  font-weight: 800;
  letter-spacing: 0.2px;
}

.so-weekly-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.so-weekly-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(150px, 1fr));
  width: 100%;
  min-width: 980px;
  border-top: 1px solid #d7e2db;
}

.so-weekly-col {
  border-right: 1px solid #d7e2db;
  background: #fbfdfb;
}

.so-weekly-col:last-child {
  border-right: none;
}

.so-weekly-day {
  background: #f3f8f4;
  color: #1f2a35;
  font-weight: 700;
  text-align: center;
  padding: 12px 8px;
  border-bottom: 1px solid #d7e2db;
}

.so-weekly-body {
  min-height: 220px;
  padding: 10px 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.so-weekly-card {
  background: linear-gradient(180deg, #0b8746 0%, #006837 100%);
  color: #ffffff;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 8px 14px rgba(0, 79, 39, 0.2);
  padding: 10px 8px;
  text-align: center;
}

.so-weekly-code {
  margin: 0 0 3px;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.3px;
}

.so-weekly-section {
  margin: 0 0 5px;
  font-size: 0.66rem;
  line-height: 1.25;
  font-weight: 600;
}

.so-weekly-time,
.so-weekly-room {
  margin: 0;
  font-size: 0.64rem;
  font-weight: 700;
}

.so-weekly-room {
  margin-top: 4px;
}

.so-weekly-empty {
  background: #f1f3f2;
  border: 1px dashed #c8d0cb;
  border-radius: 8px;
  color: #6d7a74;
  font-size: 0.72rem;
  font-weight: 600;
  text-align: center;
  padding: 10px 6px;
}

/* Toast */

.toast-notification {
  position: fixed;
  top: 20px;
  right: 20px;
  background-color: #d4edda;
  border: 1px solid #28a745;
  border-radius: 8px;
  padding: 15px 20px;
  display: none;
  align-items: center;
  gap: 15px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.toast-notification.show {
  display: flex;
  opacity: 1;
  visibility: visible;
}

.toast-message {
  font-size: 0.9rem;
  color: #155724;
  font-weight: 600;
  margin: 0;
}

.toast-close {
  background: none;
  border: none;
  font-size: 1.5rem;
  color: #155724;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  opacity: 0.7;
  transition: opacity 0.2s ease;
}

.toast-close:hover {
  opacity: 1;
}

.toast-notification.toast-error {
  background-color: #f8d7da;
  border-color: #dc3545;
}

.toast-notification.toast-error .toast-message,
.toast-notification.toast-error .toast-close {
  color: #842029;
}

/* -- Calendar ------------------------------------------- */

.cal-controls {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.cal-nav {
  display: flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
}

.cal-btn {
  background: transparent;
  border: 1px solid rgba(16, 24, 32, 0.06);
  color: #333333;
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 6px 10px;
  cursor: pointer;
  line-height: 1.2;
  transition: background 0.12s ease, transform 0.08s ease, box-shadow 0.12s ease;
  border-radius: 4px;
  box-shadow: none;
}

.cal-btn svg {
  display: block;
}

.cal-btn:hover {
  background: #fafafa;
  transform: translateY(-1px);
}

.cal-btn:active {
  transform: translateY(0);
}

/* Calendar nav variants (minimal) */

.cal-nav .cal-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.cal-nav #prevMonthBtn,
.cal-nav #nextMonthBtn {
  width: 36px;
  height: 36px;
  padding: 0;
  border-radius: 999px;
  /* circular */
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.cal-nav #prevMonthBtn svg,
.cal-nav #nextMonthBtn svg {
  width: 16px;
  height: 16px;
}

.cal-nav #todayBtn {
  padding: 6px 12px;
  margin: 0 8px;
  background: transparent;
  color: #333333;
  border: 1px solid rgba(16, 24, 32, 0.06);
  font-weight: 600;
  border-radius: 4px;
}

.cal-nav #todayBtn:hover {
  background: #f6f6f6;
}

.cal-month-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #333333;
  margin: 0;
  line-height: 1.2;
  flex: 1;
  text-align: center;
}

.cal-legend {
  text-align: right;
  flex-shrink: 0;
}

.cal-legend strong {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #333333;
  margin-bottom: 5px;
}

.cal-legend-items {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.cal-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8rem;
  color: #333333;
}

.dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}

.dot-holiday {
  background-color: #e53935;
}

.dot-event {
  background-color: #1e6fe0;
}

/* Reuses .sched-th for the day-name header row */

.cal-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background-color: #fff;
  border: 2px solid #c0c0c0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
  table-layout: fixed;
}

.cal-td {
  vertical-align: top;
  padding: 10px 12px;
  border: 1px solid #c0c0c0;
  height: 110px;
  font-family: "Poppins", sans-serif;
  background-color: #fafafa;
  width: 14.2857142857%;
  position: relative;
}

.cal-td.empty-cell {
  background-color: #ebebeb;
}

.cal-td.today-cell {
  background-color: rgba(0, 104, 55, 0.1);
  border-color: rgba(0, 104, 55, 0.3);
}

.cal-td.holiday-cell {
  background-color: rgba(229, 57, 53, 0.12);
  border-color: rgba(229, 57, 53, 0.35);
}

.cal-td.event-cell {
  background-color: rgba(30, 111, 224, 0.1);
  border-color: rgba(30, 111, 224, 0.3);
}

.day-number {
  font-size: 1rem;
  font-weight: 600;
  color: #333333;
  line-height: 1;
}

.cal-td.today-cell .day-number {
  color: #006837;
}

.cal-td.holiday-cell .day-number {
  color: #c62828;
}

.cal-td.event-cell .day-number {
  color: #1565c0;
}

.cal-event-label {
  position: absolute;
  bottom: 8px;
  right: 10px;
  left: 10px;
  font-size: 0.6rem;
  font-weight: 700;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: right;
}

.cal-td.holiday-cell .cal-event-label {
  color: #c62828;
}

.cal-td.event-cell .cal-event-label {
  color: #1565c0;
}

/* -- Profile / Setup Wizard ------------------------------- */

.setup-steps {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}

.step-item {
  flex-shrink: 0;
}

.step-pill {
  padding: 7px 22px;
  border-radius: 30px;
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  font-weight: 700;
  border: 2px solid #006837;
  background-color: #fff;
  color: #006837;
  white-space: nowrap;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: background 0.2s, color 0.2s;
  cursor: pointer;
}

.step-item.active .step-pill {
  background-color: #006837;
  color: #fff;
}

.step-item.completed .step-pill {
  background-color: #005028;
  color: #fff;
}

.step-line {
  flex: 1;
  height: 2px;
  background-color: #ccc;
  margin: 0 4px;
  transition: background 0.2s;
}

.step-line.active {
  background-color: #006837;
}

.setup-form-container {
  background: #fff;
  border-radius: 8px;
  padding: 32px 36px;
  border: 2px dashed #006837;
  margin-bottom: 20px;
}

.setup-section {
  margin-bottom: 28px;
}

.setup-section-header {
  border-bottom: 2px solid #006837;
  margin-bottom: 20px;
  padding-bottom: 4px;
}

.setup-section-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: #333333;
  margin: 0;
}

.setup-subsection-title {
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: #006837;
  margin: 0 0 12px;
}

.setup-divider {
  border: none;
  border-top: 1px solid #e8e8e8;
  margin: 20px 0;
}

.setup-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
  align-items: flex-end;
}

.setup-col {
  flex: 1;
  min-width: 130px;
}

.setup-col-sm {
  flex: 0 0 90px;
  min-width: 80px;
}

.setup-col-toggle {
  flex: 1;
  min-width: 200px;
  display: flex;
  align-items: center;
}

.setup-label {
  color: #006837;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 3px;
  margin-bottom: 7px;
  display: block;
}

.setup-input {
  border: 1px solid #bfbfbf;
  border-radius: 8px;
  padding: 0 14px;
  font-size: 0.95rem;
  color: #555;
  font-family: "Poppins", sans-serif;
  background-color: #ffffff;
  height: 42px;
  width: 100%;
  box-shadow: none;
  outline: none;
  -webkit-appearance: auto;
     -moz-appearance: auto;
          appearance: auto;
}

.setup-input:focus {
  border-color: #9c9c9c;
  box-shadow: none;
}

.setup-input:disabled {
  background-color: #f0f0f0;
  color: #aaa;
  cursor: not-allowed;
  border-color: #e0e0e0;
}

.setup-input[readonly] {
  background-color: #f7f7f7;
  color: #555555;
  cursor: default;
  border-color: #e8e8e8;
}

.religion-back-btn {
  display: inline-block;
  margin-top: 5px;
  background: none;
  border: none;
  padding: 0;
  font-size: 0.72rem;
  color: #006837;
  cursor: pointer;
  font-family: "Poppins", sans-serif;
}

.religion-back-btn:hover {
  text-decoration: underline;
}

.religion-input-wrap {
  position: relative;
}

.religion-input-wrap .setup-input {
  padding-right: 34px;
}

.religion-back-arrow {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 0;
  font-size: 1rem;
  line-height: 1;
  color: #555555;
  cursor: pointer;
  font-family: "Poppins", sans-serif;
}

.religion-back-arrow:hover {
  color: #006837;
}

.setup-helper {
  display: block;
  font-size: 0.72rem;
  color: #555555;
  margin-top: 5px;
  line-height: 1.4;
}

.setup-input-inline {
  height: 36px;
  font-size: 0.85rem;
  margin-top: 6px;
  border-radius: 4px;
}

.setup-personal-top {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.setup-personal-left {
  flex: 1;
  min-width: 0;
}

.setup-profile-photo {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.profile-photo-square {
  width: 110px;
  height: 110px;
  border: 2px solid #ccc;
  border-radius: 4px;
  background: #f5f5f5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.profile-photo-square img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.profile-photo-icon {
  width: 38px;
  height: 38px;
  color: #aaa;
}

.profile-photo-btn {
  display: inline-block;
  font-family: "Poppins", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  color: #555555;
  background: #f0f0f0;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 4px 10px;
  cursor: pointer;
  white-space: nowrap;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  text-align: center;
  transition: background 0.15s;
}

.profile-photo-btn:hover {
  background: #e0e0e0;
}

.setup-radio-group {
  display: flex;
  align-items: center;
  gap: 18px;
  height: 42px;
}

.setup-radio {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  color: #333333;
  cursor: pointer;
  white-space: nowrap;
}

.setup-radio input[type=radio] {
  accent-color: #006837;
  width: 15px;
  height: 15px;
  cursor: pointer;
}

.setup-same-address {
  margin: 10px 0 14px;
}

.setup-checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  color: #333333;
  cursor: pointer;
}

.setup-checkbox-label input[type=checkbox] {
  accent-color: #006837;
  width: 15px;
  height: 15px;
  cursor: pointer;
}

.setup-toggles {
  margin: 18px 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.setup-toggle-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 40px;
}

.setup-toggle-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  flex: 1;
  min-width: 240px;
}

.toggle-switch {
  position: relative;
  display: inline-block;
  width: 42px;
  height: 23px;
  flex-shrink: 0;
  margin-top: 2px;
}

.toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.toggle-slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background-color: #ccc;
  border-radius: 23px;
  transition: background 0.25s;
}

.toggle-slider::before {
  content: "";
  position: absolute;
  width: 17px;
  height: 17px;
  left: 3px;
  bottom: 3px;
  background-color: #fff;
  border-radius: 50%;
  transition: transform 0.25s;
}

.toggle-switch input:checked + .toggle-slider {
  background-color: #006837;
}

.toggle-switch input:checked + .toggle-slider::before {
  transform: translateX(19px);
}

.toggle-text {
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  color: #333333;
  line-height: 1.45;
}

.setup-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 6px;
}

.setup-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  color: #333333;
  cursor: pointer;
}

.setup-checkbox input[type=checkbox] {
  accent-color: #006837;
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  cursor: pointer;
}

.setup-address-preview {
  background: #f9f9f9;
  border: 1px solid #e4e4e4;
  border-radius: 4px;
  padding: 14px 16px;
  margin-top: 18px;
}

.address-preview-title {
  font-family: "Poppins", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  color: #555555;
  margin: 0 0 6px;
  text-transform: uppercase;
}

.address-preview-text {
  font-family: "Poppins", sans-serif;
  font-size: 0.88rem;
  color: #333333;
  margin: 0 0 4px;
}

.address-preview-text.is-empty {
  color: #bbb;
  font-style: italic;
  font-size: 0.8rem;
}

.address-preview-format {
  font-size: 0.7rem;
  color: #555555;
  margin: 0;
}

.setup-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid #ebebeb;
  margin-top: 4px;
}

.btn-setup-prev {
  background: #fff;
  border: 2px solid #006837;
  color: #006837;
  font-family: "Poppins", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 9px 28px;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.btn-setup-prev:hover {
  background: #006837;
  color: #fff;
}

.btn-setup-next,
.btn-setup-submit {
  background: #006837;
  border: none;
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 9px 36px;
  border-radius: 4px;
  cursor: pointer;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.2);
  transition: background 0.15s;
}

.btn-setup-next:hover,
.btn-setup-submit:hover {
  background: #005028;
}

@media (max-width: 991px) {
  .filter-grid {
    grid-template-columns: 1fr;
  }

  .filter-cell--action {
    align-self: stretch;
  }

  .cal-controls {
    flex-direction: column;
    align-items: stretch;
  }

  .cal-month-title {
    text-align: center;
    font-size: 1.25rem;
  }

  .cal-legend {
    text-align: left;
  }

  .cal-legend-items {
    justify-content: flex-start;
  }

  .cal-td {
    height: 52px;
    padding: 5px 6px;
  }

  .day-number {
    font-size: 0.8rem;
  }
}

@media (max-width: 768px) {
  .login-card {
    padding: 30px 24px 28px;
  }

  .login-card-title {
    font-size: 1.3rem;
  }

  .login-options {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .form-label-plp {
    letter-spacing: 1.8px;
  }

  .btn-view-cor {
    font-size: 1rem;
  }

  .sched-th,
  .sched-td {
    padding: 9px 10px;
    font-size: 0.78rem;
    white-space: nowrap;
  }

  .weekly-grid {
    display: flex;
    min-width: -moz-max-content;
    min-width: max-content;
  }

  .weekly-col {
    min-width: 100px;
  }

  .weekly-box {
    padding-bottom: 16px;
  }

  .so-weekly-title {
    font-size: 1.45rem;
    padding: 12px 16px;
  }

  .so-weekly-grid {
    min-width: 860px;
  }

  .so-weekly-body {
    min-height: 190px;
  }

  .setup-form-container {
    padding: 18px 16px;
  }

  .setup-personal-top {
    flex-direction: column-reverse;
    align-items: center;
  }

  .setup-col,
  .setup-col-sm,
  .setup-col-toggle {
    flex: 0 0 100%;
    min-width: 0;
  }

  .setup-toggle-item {
    min-width: 100%;
  }

  .setup-steps {
    overflow-x: auto;
    padding-bottom: 4px;
  }

  .step-pill {
    padding: 5px 14px;
    font-size: 0.8rem;
  }
}

@media (max-width: 575.98px) {
  .am-title {
    -webkit-text-stroke: 2px #006837;
  }
}

@media (max-width: 480px) {
  .login-submit-btn {
    padding: 10px 40px;
    font-size: 1rem;
  }

  .sched-th,
  .sched-td {
    padding: 8px 8px;
    font-size: 0.72rem;
  }

  .weekly-col {
    min-width: 88px;
  }

  .wc-code,
  .wc-name,
  .wc-time,
  .wc-room {
    font-size: 0.62rem;
  }

  .weekly-day-header {
    font-size: 0.68rem;
    padding: 8px 4px;
  }

  .weekly-card {
    padding: 7px 5px;
  }

  .weekly-title {
    font-size: 0.95rem;
  }

  .weekly-box {
    padding: 16px;
  }

  .so-weekly-title {
    font-size: 1.2rem;
  }

  .so-weekly-grid {
    min-width: 760px;
  }

  .so-weekly-day {
    font-size: 0.76rem;
    padding: 9px 6px;
  }

  .so-weekly-card {
    padding: 8px 6px;
  }

  .so-weekly-code,
  .so-weekly-section,
  .so-weekly-time,
  .so-weekly-room {
    font-size: 0.6rem;
  }
}

@media print {
@page {
    size: A4 portrait;
    margin: 0.35in 1in;
}

  html,
  body.student-portal-body,
  .student-layout,
  .student-main-wrapper,
  .content-footer-wrap,
  .student-content,
  .section-offering-page .cor-scroll-wrapper {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
    background: #fff !important;
  }

  .plp-sidebar,
  .student-topbar,
  .student-page-header,
  #filter-section,
  .plp-footer {
    display: none !important;
  }

  .section-offering-page .cor-container {
    display: block !important;
    zoom: 1 !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0;
    box-shadow: none;
  }

  .section-offering-page,
  .section-offering-page * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .section-offering-page .cor-container {
    font-family: "Times New Roman", Times, serif !important;
  }

  .section-offering-page .cor-container * {
    font-family: inherit;
  }

  .section-offering-page .cor-info-label,
  .section-offering-page .cor-info-value,
  .section-offering-page .cor-th,
  .section-offering-page .cor-td,
  .section-offering-page .cor-totals-text,
  .section-offering-page .cor-note-text,
  .section-offering-page .cor-signature-name,
  .section-offering-page .cor-signature-role,
  .section-offering-page .cor-label,
  .section-offering-page .cor-schedule-title,
  .section-offering-page .cor-title,
  .section-offering-page .cor-reg-number {
    font-size: 16px !important;
  }

  .section-offering-page .cor-student-info {
    padding-left: 42px !important;
    padding-right: 42px !important;
  }

  .section-offering-page .cor-table .cor-th:first-child,
  .section-offering-page .cor-table .cor-td:first-child {
    padding-left: 24px !important;
  }

  .section-offering-page .cor-table .cor-th:last-child,
  .section-offering-page .cor-table .cor-td:last-child {
    padding-right: 24px !important;
  }

  .section-offering-page .cor-totals {
    padding-left: 42px !important;
    padding-right: 42px !important;
  }

  .section-offering-page .cor-signatures {
    padding-left: 80px !important;
    padding-right: 80px !important;
  }
}

.req {
  color: #dc3545;
  margin-left: 2px;
}

.visually-hidden,
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.u-nowrap {
  white-space: nowrap !important;
}

.u-text-center {
  text-align: center !important;
}

/* Reusable native select styling component */

.plp-select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 100%;
  min-height: 36px;
  border: 1px solid #a9cdb7;
  border-radius: 10px;
  background-color: #ffffff;
  color: #173b29;
  padding: 7px 34px 7px 10px;
  background-image: linear-gradient(45deg, transparent 50%, #0f7b43 50%), linear-gradient(135deg, #0f7b43 50%, transparent 50%);
  background-position: calc(100% - 17px) calc(50% + 1px), calc(100% - 11px) calc(50% + 1px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.plp-select:focus {
  outline: none;
  border-color: #0f7b43;
  box-shadow: 0 0 0 3px rgba(15, 123, 67, 0.18);
}

.plp-select:disabled {
  background-color: #f5f8f6;
  color: #6f8077;
}

/* Reusable server-side pagination styling component */

.plp-pagination {
  display: flex;
  justify-content: center;
}

.plp-pagination__nav {
  width: 100%;
}

.plp-pagination__list {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.plp-pagination__pages {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.plp-pagination__btn,
.plp-pagination__page {
  min-width: 34px;
  height: 34px;
  border: 1px solid #d7dfda;
  border-radius: 8px;
  background: #ffffff;
  color: #0f7b43;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1;
  padding: 0 10px;
  transition: background-color 0.14s ease, border-color 0.14s ease, color 0.14s ease;
}

.plp-pagination__btn:hover:not(:disabled),
.plp-pagination__page:hover {
  background: #eef8f1;
  border-color: #b9d0c3;
  color: #0c6839;
}

.plp-pagination__btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.plp-pagination__page.is-active,
.plp-pagination__page.is-active:hover {
  background: #0f7b43;
  border-color: #0f7b43;
  color: #ffffff;
}

/* Remark status colors */

.remark-passed {
  color: #006837;
  font-weight: 700;
}

.remark-incomplete,
.remark-nyp {
  color: #dc3545;
  font-weight: 700;
}

.remark-nyp {
  /* fallback for any special overrides, now same as incomplete */
  color: #dc3545;
  font-weight: 700;
}

.section-offering-page {
  max-width: 1080px;
  margin: 0;
  padding: 6px 0 0;
}

.faculty-grading-sheet-page .fgs-col-action {
  text-align: center;
  vertical-align: middle;
}

.faculty-grading-sheet-page .fgs-row-edit-btn {
  min-height: 28px;
  border: 1px solid #11733f;
  border-radius: 6px;
  background: #ffffff;
  color: #0c6f3a;
  font-size: 0.73rem;
  font-weight: 700;
  padding: 4px 10px;
  line-height: 1;
}

.faculty-grading-sheet-page .fgs-row-edit-btn:hover {
  background: #e8f4ed;
}

.faculty-grading-sheet-page .fgs-row-edit-overlay {
  position: fixed;
  inset: 0;
  z-index: 12020;
  background: rgba(0, 0, 0, 0.34);
  align-items: center;
  justify-content: center;
  padding: 12px;
}

.faculty-grading-sheet-page .fgs-row-edit-box {
  width: min(460px, 96vw);
  max-width: 460px;
  border-radius: 10px;
  border: 1px solid #d5e1d8;
  background: #ffffff;
  padding: 0;
  overflow: hidden;
}

.faculty-grading-sheet-page .fgs-row-edit-head {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  background: #edf6f0;
  border-bottom: 1px solid #d7e6db;
  padding: 10px 12px;
}

.faculty-grading-sheet-page .fgs-row-edit-head .rep-modal-close-x {
  position: static;
  margin: 0;
  justify-self: end;
  width: 32px;
  height: 32px;
}

.faculty-grading-sheet-page .fgs-row-edit-title {
  margin: 0 !important;
  color: #0a6f39;
  font-size: 1.05rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.faculty-grading-sheet-page .fgs-row-edit-student {
  padding: 10px 14px 2px;
  color: #374540;
  font-size: 0.8rem;
  font-weight: 700;
}

.faculty-grading-sheet-page .fgs-row-edit-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 8px 14px 0;
}

.faculty-grading-sheet-page .fgs-row-edit-field-remarks {
  grid-column: 1/-1;
}

.faculty-grading-sheet-page .fgs-row-edit-fields .req-modal-label {
  font-size: 0.7rem;
  margin-bottom: 4px;
}

.faculty-grading-sheet-page .fgs-row-edit-fields .req-modal-input {
  height: 34px;
  font-size: 0.79rem;
}

.faculty-grading-sheet-page .fgs-row-edit-fields textarea.req-modal-input {
  min-height: 46px;
  max-height: 58px;
  height: 46px;
  resize: none;
}

.faculty-grading-sheet-page .fgs-row-edit-box .req-modal-actions {
  padding: 12px 14px 14px;
}

.page-registrar-grading-sheet .gs-filter-bar {
  background: #f7f7f7;
  border: 1px solid #dfe6e1;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

.page-registrar-grading-sheet .gs-filter-select {
  height: 37px;
  border: 1px solid #bcc7bf;
  border-radius: 7px;
  font-size: 0.8rem;
}

.page-registrar-grading-sheet .gs-section-banner-v2 {
  background: #f9faf9;
  border: 1px solid #b9dbbf;
  border-radius: 11px;
}

.page-registrar-grading-sheet .gs-detail-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.page-registrar-grading-sheet .gs-detail-toolbar-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.page-registrar-grading-sheet .gs-print-btn {
  min-height: 34px;
  border: 0;
  border-radius: 8px;
  background: #00753d;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  padding: 7px 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.page-registrar-grading-sheet .gs-print-btn:hover {
  background: #005e31;
}

.page-registrar-grading-sheet .gs-print-btn.gs-print-secondary {
  background: #2c7cb6;
}

.page-registrar-grading-sheet .gs-print-btn.gs-print-secondary:hover {
  background: #1f6697;
}

.page-registrar-grading-sheet .gs-grade-header-cell {
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: background-color 0.15s ease;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}

.page-registrar-grading-sheet .gs-grade-header-cell:hover {
  background: #1e7b46;
}

.page-registrar-grading-sheet .gs-grade-head-title,
.page-registrar-grading-sheet .gs-grade-head-hint {
  display: block;
  text-align: center;
  line-height: 1.1;
}

.page-registrar-grading-sheet .gs-grade-head-title {
  font-size: 0.79rem;
  font-weight: 700;
  letter-spacing: 0.3px;
}

.page-registrar-grading-sheet .gs-grade-head-hint {
  font-size: 0.68rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  margin-top: 2px;
}

.page-registrar-grading-sheet .gs-grade-na {
  color: #9aa3ad;
  font-style: italic;
  font-weight: 600;
}

.page-registrar-grading-sheet .gs-remarks-failed {
  color: #1f1f1f;
  font-weight: 700;
}

.page-registrar-grading-sheet .gs-grade-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 12010;
  background: rgba(0, 0, 0, 0.34);
  align-items: center;
  justify-content: center;
  padding: 12px;
}

.page-registrar-grading-sheet #gsGradeModal.req-modal-overlay {
  align-items: center;
  padding: 20px;
}

.page-registrar-grading-sheet #gsGradeModal .req-modal-box.gs-grade-modal-box {
  width: min(1080px, 95vw);
  max-width: 1080px;
  min-width: 0;
  max-height: 92vh;
  overflow: auto;
  background: #fbfbfb;
  border: 1px solid #d5e1d8;
  border-radius: 10px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.24);
  padding: 0;
  display: flex;
  flex-direction: column;
}

.page-registrar-grading-sheet .gs-grade-modal-head {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  margin-bottom: 0;
  min-height: 56px;
  padding: 0 14px;
  background: linear-gradient(180deg, #f1faf4 0%, #e2f1e8 100%);
  border-bottom: 1px solid #c3d9cb;
  position: sticky;
  top: 0;
  z-index: 2;
}

.page-registrar-grading-sheet .gs-grade-modal-title {
  grid-column: 2;
  margin: 0 !important;
  margin-bottom: 0 !important;
  text-align: center;
  width: auto;
  padding: 0;
  line-height: 1.2;
  transform: none;
  letter-spacing: 0.03em;
  font-size: 1.55rem;
  text-transform: uppercase;
  color: #0a6f39;
  font-weight: 800;
}

.page-registrar-grading-sheet .gs-grade-modal-head .rep-modal-close-x {
  grid-column: 3;
  justify-self: end;
  position: static;
  margin: 0;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid #ccd9d0;
  background: #f4f7f5;
  color: #6b7370;
  font-size: 1.35rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.page-registrar-grading-sheet .gs-grade-modal-subtitle {
  padding: 8px 14px 3px;
  color: #3e5247;
  font-weight: 700;
  font-size: 0.78rem;
}

.page-registrar-grading-sheet .gs-grade-tabs {
  padding: 4px 14px 8px;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.page-registrar-grading-sheet .gs-grade-tab {
  border: 1px solid #a8bcb0;
  background: #e7efea;
  color: #3b4f45;
  border-radius: 6px;
  min-height: 28px;
  padding: 4px 9px;
  font-size: 0.74rem;
  font-weight: 700;
}

.page-registrar-grading-sheet .gs-grade-tab.is-active {
  background: #0a6f39;
  color: #fff;
  border-color: #0a6f39;
}

.page-registrar-grading-sheet .gs-grade-table-wrap {
  padding: 0 12px 12px;
  overflow: auto;
}

.page-registrar-grading-sheet .gs-grade-modal-table {
  min-width: 960px;
}

.page-registrar-grading-sheet .gs-grade-modal-table thead th {
  background: #006837;
  color: #fff;
  border: 0;
  text-transform: uppercase;
  font-size: 0.73rem;
  letter-spacing: 0.2px;
}

.page-registrar-grading-sheet .gs-grade-modal-table tbody tr:nth-child(even) {
  background: #f4f8f5;
}

.page-registrar-grading-sheet .gs-grade-modal-table td {
  vertical-align: middle;
  font-size: 0.8rem;
}

.page-registrar-grading-sheet .gs-grade-input {
  width: 100%;
  height: 26px;
  border: 1px solid #aec2b5;
  border-radius: 5px;
  background: #fff;
  text-align: center;
  font-size: 0.74rem;
  font-weight: 700;
  color: #313131;
  padding: 2px 6px;
}

.page-registrar-grading-sheet .gs-grade-input-readonly {
  background: #dfe8e3;
}

@media (max-width: 991px) {
  .page-registrar-grading-sheet .gs-detail-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .page-registrar-grading-sheet .gs-detail-toolbar-right {
    width: 100%;
  }

  .page-registrar-grading-sheet .gs-print-btn {
    flex: 1;
    justify-content: center;
  }
}

@media (max-width: 768px) {
  .page-registrar-grading-sheet #gsGradeModal .req-modal-box.gs-grade-modal-box {
    min-width: 0;
    max-height: calc(100vh - 16px);
  }

  .page-registrar-grading-sheet .gs-grade-modal-title {
    font-size: 1.15rem;
  }

  .page-registrar-grading-sheet .gs-grade-tabs {
    padding-top: 8px;
  }
}

.page-services-class-list .svc-top-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
  gap: 12px;
  align-items: stretch;
  margin-bottom: 12px;
}

.page-services-class-list .svc-search-card,
.page-services-class-list .svc-config-card {
  background: #ecf5ee;
  border: 1px solid #d7e7db;
  border-radius: 4px;
  padding: 10px;
}

.page-services-class-list .svc-config-grid {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 8px;
  align-items: flex-end;
}

.page-services-class-list .svc-actions-row {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-bottom: 8px;
}

.page-services-class-list .svc-btn-pdf,
.page-services-class-list .svc-btn-excel {
  border: none;
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #fff;
}

.page-services-class-list .svc-btn-pdf {
  background: #ff4b4b;
}

.page-services-class-list .svc-btn-excel {
  background: #0f7b43;
}

.page-services-class-list .svc-link {
  color: #0f7b43;
  text-decoration: none;
  font-weight: 600;
}

.page-services-class-list .svc-link:hover {
  text-decoration: underline;
}

.page-services-class-list .svc-table {
  min-width: 860px;
}

.page-services-class-list .at-top-row {
  display: grid;
  grid-template-columns: minmax(230px, 1fr) minmax(430px, 1.25fr);
  gap: 8px;
  align-items: start;
  border: 1px solid #d7dde2;
  border-radius: 10px;
  background: #f8fafb;
  padding: 10px;
}

.page-services-class-list .at-config-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(210px, 1fr) auto;
  gap: 6px;
  align-items: center;
}

.page-services-class-list .at-config-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.page-services-class-list .at-config-action {
  display: flex;
  align-items: flex-end;
}

.page-services-class-list .at-btn-set {
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 0.75rem;
  min-width: 52px;
}

.svc-selected-info {
  background: #ecf5ee;
  border: 1px solid #d7e7db;
  border-radius: 4px;
  padding: 10px;
  margin-bottom: 10px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 16px;
  font-size: 0.8rem;
  color: #2f4c3c;
}

.page-deficiency .ga-filter-grid-deficiency {
  grid-template-columns: 2.2fr repeat(3, minmax(140px, 1fr));
  align-items: flex-end;
}

.page-deficiency .ga-filter-search {
  display: flex;
  align-items: flex-end;
}

.page-deficiency .ga-search-wrap-wide {
  max-width: none;
  width: 100%;
}

.page-deficiency .df-detail-toolbar {
  margin-bottom: 20px;
}

.page-deficiency .df-list-table-wrap {
  margin-top: 14px;
}

.page-deficiency .df-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-color: #d1d5db;
  background: #fff;
}

.page-deficiency .df-back-btn:hover {
  border-color: #0f7b43;
}

.page-deficiency .df-students-table th,
.page-deficiency .df-students-table td {
  vertical-align: middle;
}

.page-deficiency .df-col-action,
.page-deficiency .df-col-index,
.page-deficiency .df-col-program,
.page-deficiency .df-col-year,
.page-deficiency .df-col-completed,
.page-deficiency .df-col-action-detail,
.page-deficiency #dfStudentsTable th,
.page-deficiency #dfStudentsTable td {
  text-align: center;
}

.page-deficiency .df-col-action {
  width: 76px;
}

.page-deficiency .df-col-index {
  width: 58px;
}

.page-deficiency .df-col-program {
  width: 170px;
}

.page-deficiency .df-col-year {
  width: 120px;
}

.page-deficiency .df-col-completed {
  width: 106px;
}

.page-deficiency .df-empty-row {
  text-align: center;
  color: #6b7280;
}

.page-deficiency .df-student-link {
  color: #1f2937;
  font-weight: 600;
  text-decoration: none;
}

.page-deficiency .df-student-link:hover,
.page-deficiency .df-student-link:focus {
  color: #0f7b43;
  text-decoration: underline;
}

.page-deficiency #dfStudentsTable td:first-child,
.page-deficiency #dfTable td:last-child {
  position: relative;
}

.page-deficiency #dfStudentsTable td:first-child .apst-action-btn,
.page-deficiency #dfTable td:last-child .apst-action-btn {
  margin: 0 auto;
}

.page-deficiency #dfStudentsTable .apst-dropdown {
  left: calc(50% + 21px);
  right: auto;
  top: 50%;
  transform: translateY(-50%);
}

.page-deficiency #dfTable .apst-dropdown {
  left: auto;
  right: calc(100% + 6px);
  top: 50%;
  transform: translateY(-50%);
}

.page-deficiency #dfStudentsTable .apst-dropdown.drop-up,
.page-deficiency #dfTable .apst-dropdown.drop-up {
  top: auto;
  bottom: 0;
  transform: none;
}

.page-deficiency .apst-action-btn.apst-action-btn-eye {
  gap: 0;
  width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 999px;
  border-color: #9bcfb3;
  background: #ecf9f1;
  box-shadow: 0 1px 2px rgba(6, 78, 59, 0.16);
  transition: transform 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.page-deficiency .apst-action-btn.apst-action-btn-eye span {
  display: none;
}

.page-deficiency .apst-action-btn.apst-action-btn-eye svg {
  color: #0f7b43;
}

.page-deficiency .apst-action-btn.apst-action-btn-eye:hover,
.page-deficiency .apst-action-btn.apst-action-btn-eye:focus {
  background: #dbf2e5;
  border-color: #6bb38b;
  transform: translateY(-1px);
}

.page-deficiency .df-student-modal-box {
  max-width: 500px;
}

.page-deficiency .df-deficiency-modal-box {
  max-width: 620px;
}

.page-deficiency .df-summary-modal-box {
  max-width: 500px;
  text-align: center;
}

.page-deficiency .df-summary-body {
  background: #fafafa;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 20px;
  text-align: left;
}

.page-deficiency .df-summary-list {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.9rem;
  color: #444;
}

.page-deficiency .df-summary-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.page-deficiency .df-summary-status {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 12px;
}

.page-deficiency .df-summary-status.is-pending {
  color: #d93025;
  background: #ffe5e5;
}

.page-deficiency .df-summary-status.is-completed {
  color: #0b7a39;
  background: #ddf8e8;
}

@media (max-width: 1000px) {
  .page-services-class-list .svc-top-row {
    grid-template-columns: 1fr;
  }

  .page-services-class-list .svc-config-grid {
    grid-template-columns: 1fr 1fr;
  }

  .page-services-class-list .svc-config-action {
    grid-column: 1/-1;
  }
}

@media (max-width: 860px) {
  .page-deficiency .ga-inline-actions-deficiency {
    flex-direction: column;
    align-items: stretch;
  }

  .page-deficiency .ga-inline-btns {
    width: 100%;
  }

  .page-deficiency .ga-inline-btns .ga-btn {
    flex: 1;
    width: auto;
  }
}

@media (max-width: 768px) {
  .page-services-class-list .svc-actions-row {
    flex-direction: column;
  }

  .page-services-class-list .svc-btn-pdf,
  .page-services-class-list .svc-btn-excel {
    width: 100%;
  }

  .svc-selected-info {
    grid-template-columns: 1fr;
  }

  .page-services-class-list .at-config-grid {
    grid-template-columns: 1fr;
  }

  .page-services-class-list .at-config-item {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .page-services-class-list .at-config-action {
    width: 100%;
    justify-content: stretch;
  }

  .page-services-class-list .at-btn-set {
    width: 100%;
    min-height: 36px;
    border-radius: 8px;
    font-size: 0.84rem;
  }
}

@media (max-width: 640px) {
  .page-services-class-list .at-top-row {
    grid-template-columns: 1fr;
  }

  .page-services-class-list .at-search-wrap {
    max-width: 100%;
  }

  .page-services-class-list .at-config-card {
    padding-left: 0;
    border-left: none;
    border-top: 1px solid #d2d9df;
    padding-top: 8px;
  }
}

@media (max-width: 1180px) {
  .page-deficiency .ga-filter-grid-deficiency {
    grid-template-columns: repeat(2, minmax(150px, 1fr));
  }
}

.sched-page-container .sched-filter-row-main {
  display: flex;
  gap: 12px;
}

.sched-page-container .sched-filter-controls {
  display: flex;
  align-items: flex-end;
  gap: 12px;
}

.sched-page-container .sched-filter-actions {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-left: auto;
}

.sched-page-container .sched-action-btn {
  min-height: 42px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .sched-page-container .sched-filter-row-main {
    align-items: stretch !important;
    flex-wrap: wrap;
  }

  .sched-page-container .sched-filter-controls {
    width: 100%;
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .sched-page-container .sched-filter-group {
    margin-right: 0 !important;
    max-width: none;
  }

  .sched-page-container .sched-filter-actions {
    width: 100%;
    margin-left: 0;
    align-items: stretch;
    justify-content: stretch;
    flex-direction: column;
    gap: 8px;
  }

  .sched-page-container .sched-filter-actions .sched-action-btn,
  .sched-page-container .sched-filter-actions .sched-download-btn,
  .sched-page-container .sched-filter-actions .btn-view-cor {
    width: 100%;
    min-width: 0;
    margin-right: 0 !important;
  }
}

@media (max-width: 480px) {
  .sched-page-container .sched-filter-controls {
    grid-template-columns: 1fr;
  }
}

#applicantSidebar {
  display: none;
}

.appl-sidebar-back {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0 0 18px;
  background: rgba(255, 255, 255, 0.15);
  border: none;
  width: 100%;
  text-align: left;
  letter-spacing: 0.03em;
  color: #fff;
  text-decoration: none;
  border-radius: 8px;
  cursor: pointer;
}

.appl-sidebar-back:hover {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.appl-sidebar-back svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

body.page-profile-edit .pf-table-controls .pf-entries-control span,
body.page-profile-edit .sc-table-head .pf-entries-control.sc-show-entry span {
  margin: 0;
  white-space: nowrap;
}

.grades-page .sched-th:nth-child(2),
.grades-page .sched-td:nth-child(1),
.grades-page .sched-td:nth-child(2) {
  text-align: left;
}

.parent-grades-snapshot-page {
  max-width: 100%;
  padding-right: 2px;
}

.parent-grades-snapshot-page .parent-grades-student-row {
  max-width: 420px;
  margin-bottom: 16px;
}

.parent-grades-snapshot-page .parent-grades-term-block {
  border: 1px solid #d7e2da;
  border-radius: 12px;
  background: #f8fbf9;
  padding: 14px;
  margin-bottom: 18px;
}

.parent-grades-snapshot-page .parent-grades-deficiency-shell {
  border: 1px solid #d7e2da;
  border-radius: 12px;
  background: #f8fbf9;
  padding: 20px;
  margin-bottom: 18px;
  min-height: clamp(360px, 100vh - 360px, 520px);
  height: clamp(360px, 100vh - 360px, 520px);
  max-height: calc(100vh - 260px);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow-y: auto;
}

.parent-grades-snapshot-page .parent-grades-deficiency-alert {
  width: 100%;
  max-width: 960px;
  margin: 0;
  border: 1px solid #ff8f8f;
  border-radius: 12px;
  background: #fff4f4;
  padding: 20px 26px;
  color: #2f2f2f;
}

.parent-grades-snapshot-page .parent-grades-deficiency-alert h2 {
  margin: 0 0 10px;
  font-size: 2.2rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #111;
}

.parent-grades-snapshot-page .parent-grades-deficiency-alert .parent-grades-alert-icon {
  width: 34px;
  height: 34px;
  color: #ff1f1f;
  flex: 0 0 auto;
}

.parent-grades-snapshot-page .parent-grades-deficiency-alert p {
  max-width: 840px;
  margin: 0 auto 10px;
  font-size: 1.16rem;
  line-height: 1.4;
}

.parent-grades-snapshot-page .parent-grades-deficiency-alert ul {
  max-width: 840px;
  margin: 0 auto;
  padding-left: 22px;
  color: #da2e2e;
  font-weight: 600;
  line-height: 1.45;
  font-size: 1.08rem;
}

.parent-grades-snapshot-page .parent-grades-meta-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.parent-grades-snapshot-page .parent-meta-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.parent-grades-snapshot-page .parent-meta-item span {
  font-size: 0.74rem;
  color: #2f5e43;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 2px;
}

.parent-grades-snapshot-page .parent-meta-item .parent-meta-value,
.parent-grades-snapshot-page .parent-meta-item .parent-meta-note {
  display: block;
  padding: 0;
  font-size: 0.84rem;
  color: #202020;
  line-height: 1.35;
  font-weight: 600;
  min-height: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}

.parent-grades-snapshot-page .parent-meta-item .parent-meta-note {
  font-size: 0.8rem;
  font-weight: 500;
  color: #3d3d3d;
}

.parent-grades-snapshot-page .parent-grade-grid-table {
  font-size: 0.79rem;
  min-width: 1180px;
  background: #fff;
  border: 1px solid #d4ddd7;
  border-radius: 10px;
  overflow: hidden;
}

.parent-grades-snapshot-page .parent-grade-grid-table .sched-th,
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td {
  padding: 9px 10px;
  vertical-align: top;
  white-space: normal;
  line-height: 1.35;
  border-color: #dbe5df;
}

.parent-grades-snapshot-page .parent-grade-grid-table .sched-th {
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  background: #006837;
  color: #ffffff;
  position: sticky;
  top: 0;
  z-index: 1;
}

.parent-grades-snapshot-page .parent-grade-grid-table tbody tr:nth-child(even) {
  background: #fcfefd;
}

.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(3),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(3),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(4),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(4) {
  text-align: left;
}

.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(1),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(1),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(2),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(2),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(5),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(5),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(6),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(6),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(7),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(7),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(8),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(8),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(9),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(9),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(10),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(10) {
  white-space: nowrap;
}

.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(3),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(3) {
  min-width: 260px;
}

.parent-grades-snapshot-page .parent-grade-grid-table .sched-th:nth-child(4),
.parent-grades-snapshot-page .parent-grade-grid-table .sched-td:nth-child(4) {
  min-width: 170px;
}

.parent-student-profile-page .parent-student-picker {
  max-width: 430px;
  margin-bottom: 14px;
}

.parent-student-profile-page .parent-student-top-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 148px;
  gap: 10px;
  align-items: start;
}

.parent-student-profile-page .parent-student-card {
  border: 1px solid #d5ddd8;
  border-radius: 12px;
  background: #f8fbf9;
  padding: 14px;
}

.parent-student-profile-page .parent-student-profile-grid {
  display: grid;
  gap: 10px;
  margin-bottom: 10px;
}

.parent-student-profile-page .parent-student-profile-grid--top {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, 1.2fr);
}

.parent-student-profile-page .parent-student-field--top-email {
  grid-column: auto;
  max-width: none;
}

.parent-student-profile-page .parent-student-profile-grid--address,
.parent-student-profile-page .parent-student-profile-grid--bio {
  grid-template-columns: 2fr 1fr 1fr 1fr;
}

.parent-student-profile-page .parent-student-profile-grid--identity {
  grid-template-columns: 1.1fr 1fr 1fr 1fr 1fr 1fr;
}

.parent-student-profile-page .parent-student-profile-grid--acad2 {
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1.15fr) minmax(0, 0.72fr) minmax(0, 1fr) minmax(0, 1fr);
}

.parent-student-profile-page .parent-student-field--program {
  grid-column: span 2;
}

.parent-student-profile-page .parent-student-field--acad-compact {
  max-width: none;
}

.parent-student-profile-page .parent-student-field--acad-status {
  grid-column: span 2;
}

.parent-student-profile-page .parent-student-profile-grid--transfer {
  grid-template-columns: 2fr 1fr 1.2fr;
  margin-bottom: 0;
}

.parent-student-profile-page .parent-student-field label {
  display: block;
  margin-bottom: 4px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: #187646;
  text-transform: uppercase;
}

.parent-student-profile-page .parent-student-field input,
.parent-student-profile-page .parent-student-field select {
  width: 100%;
  height: 34px;
  border: 1px solid #cfd8d1;
  border-radius: 5px;
  padding: 6px 10px;
  background: #f3f5f4;
  color: #424242;
  font-size: 0.8rem;
}

.parent-student-profile-page .parent-student-field select {
  appearance: auto;
  -webkit-appearance: auto;
  -moz-appearance: auto;
  cursor: default;
  background-image: none;
  padding-right: 10px;
}

.parent-student-profile-page .parent-student-field select:disabled {
  color: #424242;
  opacity: 1;
}

.parent-student-profile-page .parent-student-field .parent-student-readonly-select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23718179' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 12px 8px;
  padding-right: 32px;
}

.parent-student-profile-page .parent-student-profile-panel {
  border: 1px solid #d3dad5;
  border-radius: 8px;
  background: #f2f5f3;
  min-height: 136px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #7d8782;
  padding: 8px 6px;
}

.parent-student-profile-page .parent-student-profile-panel .parent-student-profile-label {
  margin: 0 0 3px;
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  font-weight: 800;
  color: #6a756f;
}

.parent-student-profile-page .parent-student-profile-panel p {
  margin: 4px 0 0;
  font-size: 0.78rem;
  line-height: 1.2;
  color: #7f8783;
}

.parent-student-profile-page .parent-student-profile-icon {
  line-height: 0;
  color: #a1a8a4;
}

.parent-student-profile-page .parent-student-field--sm {
  max-width: none;
}

.parent-student-profile-page .parent-student-field--wide {
  min-width: 0;
}

.parent-student-profile-page .parent-student-divider {
  height: 1px;
  margin: 12px 0 14px;
  background: #93c7a8;
}

.parent-student-profile-page .parent-student-transfer-row {
  margin: 2px 0 10px;
}

.parent-student-profile-page .parent-student-transfer-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.parent-student-profile-page .parent-student-transfer-check span {
  font-size: 0.72rem;
  color: #18633f;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.parent-student-profile-page .parent-student-transfer-check input[type=checkbox] {
  margin-top: 0;
}

.parent-profile-snapshot-page .parent-profile-form-grid {
  display: grid;
  grid-template-columns: 0.6fr 1fr 1fr 1fr;
  gap: 10px;
  margin-bottom: 10px;
  max-width: 740px;
}

.parent-profile-snapshot-page .parent-profile-email-row {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  max-width: 740px;
  margin-bottom: 16px;
}

.parent-profile-snapshot-page .parent-form-field label {
  display: block;
  margin-bottom: 4px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #0a813c;
}

.parent-profile-snapshot-page .parent-form-field input {
  width: 100%;
  height: 36px;
  border: 1px solid #cbcbcb;
  border-radius: 6px;
  padding: 6px 10px;
  background: #f2f2f2;
  color: #555;
  font-size: 0.9rem;
}

.parent-profile-snapshot-page .parent-form-field-email {
  flex: 1;
}

.parent-profile-snapshot-page .parent-save-email-btn {
  height: 36px;
  border: 0;
  border-radius: 5px;
  padding: 0 14px;
  background: #0a813c;
  color: #fff;
  font-weight: 700;
  font-size: 0.86rem;
}

.parent-profile-snapshot-page .parent-linked-children-box {
  border: 1px solid #cfcfcf;
  border-radius: 10px;
  background: #f4f4f4;
  padding: 12px;
  min-height: 260px;
}

.parent-profile-snapshot-page .parent-linked-children-head {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 10px;
}

.parent-profile-snapshot-page .parent-child-table .sched-th,
.parent-profile-snapshot-page .parent-child-table .sched-td {
  padding: 7px 10px;
  font-size: 0.76rem;
  text-align: center;
}

.parent-profile-snapshot-page .parent-child-table .sched-th {
  background: #006837;
  color: #fff;
}

.parent-link-child-btn {
  min-height: 34px;
  border-radius: 7px;
  padding: 8px 18px;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.parent-empty-note {
  color: #61716a;
  font-size: 0.85rem;
}

.parent-link-modal {
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid #d6e2db;
  box-shadow: 0 16px 34px rgba(12, 42, 28, 0.16);
}

.parent-link-modal .parent-link-modal-head {
  border-bottom: 1px solid #e5ece8;
  padding: 14px 16px 12px;
  background: #ffffff;
}

.parent-link-modal .modal-title {
  font-size: 0.92rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 800;
  color: #0a6f39;
}

.parent-link-modal .btn-close {
  width: 0.82em;
  height: 0.82em;
  opacity: 0.72;
}

.parent-link-modal .parent-link-modal-body {
  padding: 14px 16px 10px;
}

.parent-link-modal .parent-empty-note {
  margin-bottom: 10px;
  font-size: 0.78rem;
  line-height: 1.45;
}

.parent-link-modal .req-modal-label {
  margin-bottom: 4px;
}

.parent-link-modal .req-modal-input {
  height: 36px;
}

.parent-link-modal .parent-link-modal-actions {
  border-top: 1px solid #e8efea;
  background: #ffffff;
  padding: 10px 16px 14px;
  gap: 10px;
}

.parent-link-modal .req-btn-cancel,
.parent-link-modal .req-btn-save {
  min-width: 112px;
}

.parent-contact-page {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 10px 0 16px;
}

.parent-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 18px;
}

.parent-contact-card {
  border: 1px solid #cfe1d7;
  border-radius: 14px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbf9 100%);
  min-height: 420px;
  box-shadow: 0 14px 28px rgba(14, 41, 28, 0.09);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  padding: 34px 24px 24px;
}

.parent-contact-icon-wrap {
  width: 128px;
  height: 128px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  background: radial-gradient(circle at 30% 25%, #f7fcf9 0%, #e5f2eb 100%);
  border: 1px solid #c7ddd2;
  box-shadow: inset 0 0 0 4px #f2f9f5, 0 4px 10px rgba(12, 44, 29, 0.08);
}

.parent-contact-icon {
  color: #132219;
  line-height: 0;
}

.parent-contact-card-title {
  margin: 0 0 8px;
  font-size: 0.94rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #147447;
}

.parent-contact-value {
  margin: 0 0 10px;
  font-size: 2.28rem;
  font-weight: 800;
  color: #111417;
  line-height: 1.1;
}

.parent-contact-value a {
  color: #2675dc;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.parent-contact-value a:hover,
.parent-contact-value a:focus {
  color: #1658ad;
}

.parent-contact-note {
  margin: 0;
  max-width: 540px;
  font-size: 1.02rem;
  line-height: 1.45;
  color: #1f2723;
}

.parent-contact-guidelines {
  border-radius: 14px;
  background: linear-gradient(180deg, #f8faf9 0%, #edf3ef 100%);
  border: 1px solid #d3dfd8;
  padding: 18px 20px;
  min-height: 0;
  height: auto;
  align-self: start;
  color: #1a1f1d;
  box-shadow: 0 10px 20px rgba(18, 39, 28, 0.07);
}

.parent-contact-guidelines h4 {
  margin: 0 0 8px;
  font-size: 1.42rem;
  font-weight: 800;
}

.parent-contact-guidelines p {
  margin: 0 0 8px;
  font-size: 1.05rem;
  line-height: 1.35;
}

.parent-contact-guidelines ul {
  margin: 0;
  padding-left: 20px;
}

.parent-contact-guidelines li {
  font-size: 1rem;
  line-height: 1.42;
}

.parent-account-profile-page {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.parent-account-profile-page .parent-account-profile-card,
.parent-account-profile-page .parent-account-linked-card {
  border: 1px solid #d5ddd8;
  border-radius: 12px;
  background: #f8fbf9;
  padding: 14px;
}

.parent-account-profile-page .parent-account-profile-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.parent-account-profile-page .parent-account-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #e8f3eb;
  color: #1e7148;
  border: 1px solid #cfe0d4;
  flex-shrink: 0;
}

.parent-account-profile-page .parent-account-head-meta h2 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 800;
  color: #1d1d1d;
}

.parent-account-profile-page .parent-account-head-meta p {
  margin: 2px 0 0;
  font-size: 0.84rem;
  color: #42684f;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.parent-account-profile-page .parent-account-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.parent-account-profile-page .parent-account-field label {
  display: block;
  margin: 0 0 3px;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  color: #1d7348;
  text-transform: uppercase;
}

.parent-account-profile-page .parent-account-value {
  min-height: 34px;
  display: flex;
  align-items: center;
  padding: 7px 10px;
  border: 1px solid #ced8d1;
  border-radius: 6px;
  background: #ffffff;
  color: #222;
  font-size: 0.82rem;
  font-weight: 600;
}

.parent-account-profile-page .parent-account-field--wide {
  grid-column: span 2;
}

.parent-account-profile-page .parent-account-linked-card h3 {
  margin: 0 0 10px;
  font-size: 0.95rem;
  font-weight: 800;
  color: #21563b;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.parent-account-profile-page .parent-account-linked-table {
  min-width: 760px;
}

.parent-account-profile-page .parent-account-linked-table .sched-th {
  background: #006837;
  color: #fff;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
}

.parent-account-profile-page .parent-account-linked-table .sched-th,
.parent-account-profile-page .parent-account-linked-table .sched-td {
  padding: 8px 10px;
  border-color: #dbe4de;
  font-size: 0.8rem;
}

.parent-portal-body .student-page-header {
  min-height: 40px;
  height: 40px;
  font-size: 1.05rem;
  line-height: 1;
  letter-spacing: 0.6px;
  flex-shrink: 0;
}

.parent-portal-body .student-layout {
  align-items: stretch;
}

.parent-portal-body .plp-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  max-height: 100vh;
  z-index: 40;
}

.parent-portal-body .student-main-wrapper {
  margin-left: 285px;
  width: calc(100% - 285px);
}

.parent-portal-body .student-topbar {
  position: sticky;
  top: 0;
  z-index: 35;
}

.parent-portal-body .student-main-wrapper,
.parent-portal-body .content-footer-wrap,
.parent-portal-body .student-content {
  max-height: none !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
}

.parent-grades-snapshot-page .grades-scroll {
  width: 100%;
  overflow-x: auto;
  overflow-y: visible;
}

@media (max-width: 991px) {
  .section-offering-page,
  .grades-page,
  .events-page,
  .profile-page {
    max-width: 100%;
  }

  .parent-grades-snapshot-page .parent-grades-meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .parent-grades-snapshot-page .parent-grades-term-block {
    padding: 12px;
  }

  .parent-grades-snapshot-page .parent-grades-deficiency-shell {
    padding: 12px;
    min-height: clamp(300px, 100vh - 330px, 460px);
    height: clamp(300px, 100vh - 330px, 460px);
    max-height: calc(100vh - 230px);
  }

  .parent-student-profile-page .parent-student-top-wrap {
    grid-template-columns: minmax(0, 1fr) 126px;
  }

  .parent-student-profile-page .parent-student-profile-grid--top,
  .parent-student-profile-page .parent-student-profile-grid--address,
  .parent-student-profile-page .parent-student-profile-grid--bio,
  .parent-student-profile-page .parent-student-profile-grid--identity,
  .parent-student-profile-page .parent-student-profile-grid--acad2,
  .parent-student-profile-page .parent-student-profile-grid--transfer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .parent-student-profile-page .parent-student-field--program,
  .parent-student-profile-page .parent-student-field--acad-compact,
  .parent-student-profile-page .parent-student-field--acad-status {
    grid-column: auto;
    max-width: 100%;
  }

  .parent-account-profile-page .parent-account-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .parent-account-profile-page .parent-account-field--wide {
    grid-column: span 2;
  }

  .parent-profile-snapshot-page .parent-profile-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .parent-contact-grid {
    grid-template-columns: 1fr;
  }

  .parent-contact-card {
    min-height: 310px;
  }

  .parent-contact-value {
    font-size: 1.7rem;
  }

  .parent-contact-icon-wrap {
    width: 96px;
    height: 96px;
  }

  .parent-portal-body .plp-sidebar {
    position: fixed;
    top: 0;
    z-index: 1000;
  }

  .parent-portal-body .student-main-wrapper {
    margin-left: 0;
    width: 100%;
  }
}

@media (max-width: 768px) {
  .section-offering-page,
  .grades-page,
  .events-page,
  .profile-page {
    padding-top: 0;
  }

  .parent-grades-snapshot-page .parent-grades-meta-grid {
    grid-template-columns: 1fr;
  }

  .parent-grades-snapshot-page .parent-grades-deficiency-shell {
    padding: 10px;
    min-height: 0;
    height: auto;
    max-height: none;
    align-items: flex-start;
  }

  .parent-grades-snapshot-page .parent-grades-deficiency-alert {
    padding: 14px 14px;
  }

  .parent-grades-snapshot-page .parent-grades-deficiency-alert h2 {
    font-size: 1.85rem;
  }

  .parent-grades-snapshot-page .parent-grades-deficiency-alert .parent-grades-alert-icon {
    width: 28px;
    height: 28px;
  }

  .parent-grades-snapshot-page .parent-grades-deficiency-alert p,
  .parent-grades-snapshot-page .parent-grades-deficiency-alert li {
    font-size: 0.95rem;
  }

  .parent-grades-snapshot-page .parent-grades-deficiency-alert p,
  .parent-grades-snapshot-page .parent-grades-deficiency-alert ul {
    max-width: 100%;
  }

  .parent-student-profile-page .parent-student-top-wrap {
    grid-template-columns: minmax(0, 1fr) 104px;
  }

  .parent-student-profile-page .parent-student-card {
    padding: 12px 10px;
  }

  .parent-student-profile-page .parent-student-profile-grid--address,
  .parent-student-profile-page .parent-student-profile-grid--bio,
  .parent-student-profile-page .parent-student-profile-grid--identity,
  .parent-student-profile-page .parent-student-profile-grid--acad2,
  .parent-student-profile-page .parent-student-profile-grid--transfer {
    grid-template-columns: 1fr;
  }

  .parent-student-profile-page .parent-student-profile-grid--top {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .parent-student-profile-page .parent-student-field--sm {
    max-width: 100%;
  }

  .parent-student-profile-page .parent-student-field--program,
  .parent-student-profile-page .parent-student-field--acad-compact,
  .parent-student-profile-page .parent-student-field--acad-status {
    max-width: 100%;
  }

  .parent-account-profile-page .parent-account-profile-card,
  .parent-account-profile-page .parent-account-linked-card {
    padding: 12px 10px;
  }

  .parent-account-profile-page .parent-account-profile-head {
    align-items: flex-start;
  }

  .parent-account-profile-page .parent-account-grid {
    grid-template-columns: 1fr;
  }

  .parent-account-profile-page .parent-account-field--wide {
    grid-column: auto;
  }

  .parent-profile-snapshot-page .parent-profile-form-grid {
    grid-template-columns: 1fr;
  }

  .parent-profile-snapshot-page .parent-profile-email-row {
    flex-direction: column;
    align-items: stretch;
  }

  .parent-contact-page {
    padding-top: 0;
  }

  .parent-contact-card {
    padding: 18px 12px 14px;
    min-height: 250px;
  }

  .parent-contact-icon svg {
    width: 60px;
    height: 60px;
  }

  .parent-contact-icon-wrap {
    width: 82px;
    height: 82px;
  }

  .parent-contact-value {
    font-size: 1.35rem;
  }

  .parent-contact-note {
    font-size: 0.84rem;
  }

  .parent-contact-guidelines {
    padding: 12px;
  }

  .parent-contact-guidelines h4 {
    font-size: 1.2rem;
  }

  .parent-contact-guidelines p,
  .parent-contact-guidelines li {
    font-size: 0.88rem;
  }
}

@media (max-width: 560px) {
  .parent-student-profile-page .parent-student-top-wrap {
    grid-template-columns: 1fr;
  }

  .parent-student-profile-page .parent-student-profile-panel {
    min-height: 96px;
    width: 100%;
  }

  .parent-student-profile-page .parent-student-profile-grid--top {
    grid-template-columns: 1fr;
  }
}

/* Applicant form helpers migrated from inline styles */

.step-hidden {
  display: none;
}

.setup-photo-img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.setup-photo-img--hidden {
  display: none;
}

.setup-subsection-title--mt18 {
  margin-top: 18px;
}

.setup-radio-group--spaced {
  height: auto;
  gap: 16px;
  margin-top: 4px;
}

.setup-col--flex-3 {
  flex: 3;
}

.setup-col--flex-23 {
  flex: 2.3;
}

.setup-col--flex-2 {
  flex: 2;
}

.setup-col--flex-16 {
  flex: 1.6;
}

.setup-col--flex-14 {
  flex: 1.4;
}

.setup-col--flex-12 {
  flex: 1.2;
}

.setup-col--flex-1 {
  flex: 1;
}

.setup-col--flex-08 {
  flex: 0.8;
}

.setup-col--w-280 {
  flex: 0 0 280px;
  min-width: 280px;
}

.setup-col--w-220 {
  flex: 0 0 220px;
  min-width: 220px;
}

.setup-col--w-180 {
  flex: 0 0 180px;
  min-width: 180px;
}

.setup-col--w-160 {
  flex: 0 0 160px;
  min-width: 160px;
}

.setup-col--w-130 {
  min-width: 130px;
}

.setup-col--w-110 {
  min-width: 110px;
}

.setup-col--w-90 {
  min-width: 90px;
}

.setup-col--w-34 {
  flex: 0 0 34px;
  min-width: 34px;
}

.setup-row--app-meta {
  flex-wrap: nowrap;
  gap: 14px;
}

.setup-row--apply-program {
  flex-wrap: nowrap;
  gap: 12px;
}

.setup-col--apply-choice {
  max-width: 220px;
}

.application-form-page .step-save-feedback {
  margin-top: 6px;
}

.application-form-page .setup-helper--tight {
  margin-top: 6px;
  margin-bottom: 0;
}

.application-form-page .setup-required-legend {
  margin: 10px 0 14px;
  font-size: 0.8rem;
  color: #5f6368;
  font-weight: 600;
}

.application-form-page .setup-label.is-required::after {
  content: " *";
  color: #d94141;
  font-weight: 700;
}

.application-form-page .setup-checkbox-label--inline-note {
  align-items: flex-start;
  gap: 10px;
  line-height: 1.45;
  color: #5a5a5a;
  font-size: 0.8rem;
}

.application-form-page .setup-checkbox-label--inline-note input[type=checkbox] {
  margin-top: 2px;
}

.application-form-page .submitted-intro-card {
  min-height: 480px;
  border-style: solid;
}

.application-form-page .submitted-intro-title-row {
  margin-bottom: 14px;
}

.application-form-page .submitted-intro-title {
  font-size: 12pt;
  color: #006837;
}

.application-form-page .submitted-intro-text {
  font-size: 12pt;
  color: #333333;
  line-height: 1.45;
  margin-bottom: 16px;
  max-width: 1120px;
}

.application-form-page .submitted-intro-note {
  color: #4e5f55;
  font-size: 11pt;
  line-height: 1.45;
  margin-bottom: 14px;
}

.application-form-page .submitted-intro-list {
  margin: 0 0 16px;
  padding-left: 18px;
  color: #3f4f46;
  font-size: 0.95rem;
  line-height: 1.45;
}

.application-form-page .submitted-intro-list li {
  margin-bottom: 6px;
}

.application-form-page .submitted-intro-note--bottom {
  margin-top: 16px;
  margin-bottom: 18px;
  max-width: 1130px;
  text-align: center;
}

.application-form-page .submitted-credentials-box {
  border: 1px solid #b9d9c7;
  border-radius: 12px;
  max-width: 760px;
  margin: 0 auto;
  padding: 18px 22px;
  background: linear-gradient(180deg, #f6fbf8 0%, #ffffff 100%);
  box-shadow: 0 6px 16px rgba(0, 104, 55, 0.1);
}

.application-form-page .submitted-credentials-title {
  margin: 0 0 12px;
  color: #006837;
  font-size: 1.05rem;
  font-weight: 800;
}

.application-form-page .submitted-credentials-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.application-form-page .submitted-credentials-list li {
  border: 1px dashed #b6d6c3;
  border-radius: 10px;
  background: #ffffff;
  padding: 10px 12px;
}

.application-form-page .submitted-credentials-label {
  display: block;
  color: #5f6368;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.application-form-page .submitted-credentials-value {
  display: block;
  margin-top: 3px;
  color: #0f1720;
  font-size: 1rem;
  font-weight: 800;
}

.application-form-page .submitted-credentials-note {
  display: block;
  margin-top: 3px;
  color: #4e5f55;
  font-size: 0.8rem;
}

.application-form-page .submitted-continue-form {
  display: flex;
  justify-content: center;
}

.application-form-page .submitted-continue-btn {
  min-width: 330px;
  font-size: 0.98rem;
}

.application-form-page .submitted-header-row {
  display: flex;
  gap: 16px;
  margin-bottom: 14px;
}

.application-form-page .submitted-header-field {
  flex: 0 0 240px;
}

.application-form-page .submitted-header-field--name {
  flex: 0 0 300px;
}

.application-form-page .submitted-status-card {
  border-style: solid;
}

.application-form-page .submitted-status-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.application-form-page .submitted-panel-title {
  text-align: center;
  color: #006837;
  font-family: "Poppins", sans-serif;
  font-size: 1.35rem;
  margin-bottom: 12px;
  font-weight: 800;
}

.application-form-page .submitted-calendar-panel {
  border: 1px solid #dbdbdb;
  border-radius: 14px;
  padding: 10px 12px 12px;
}

.application-form-page .submitted-status-summary {
  border: 1px dashed #bcd2c4;
  border-radius: 12px;
  background: #f4f8f5;
  padding: 18px 14px;
  text-align: center;
  margin-top: 6px;
}

.application-form-page .submitted-status-label {
  margin: 0 0 8px;
  color: #55685d;
  font-size: 0.95rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.application-form-page .submitted-status-date {
  margin: 0;
  color: #006837;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.2;
}

.application-form-page .submitted-status-note {
  margin: 10px 0 0;
  color: #4e5f55;
  font-size: 0.92rem;
  line-height: 1.4;
}

.application-form-page .submitted-calendar-toolbar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-bottom: 8px;
}

.application-form-page .submitted-calendar-nav {
  border: 0;
  background: transparent;
  color: #2a2a2a;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: 1.35rem;
  line-height: 1;
  padding: 0;
  cursor: pointer;
}

.application-form-page .submitted-calendar-nav:hover {
  background: #e9efe9;
}

.application-form-page .submitted-calendar-select {
  height: 36px;
  border-radius: 10px;
  border: 1px solid #d3d3d3;
  padding: 0 10px;
  font-size: 1.05rem;
  color: #383838;
  background: #fff;
}

.application-form-page .submitted-calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  text-align: center;
  font-size: 1rem;
  color: #8b8b8b;
  margin-bottom: 4px;
}

.application-form-page .submitted-calendar-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.application-form-page .submitted-calendar-day {
  height: 38px;
  border: 0;
  background: transparent;
  border-radius: 8px;
  font-size: 1.05rem;
  color: #2f2f2f;
  cursor: pointer;
}

.application-form-page .submitted-calendar-day:hover {
  background: #edf3ed;
}

.application-form-page .submitted-calendar-day.is-muted {
  color: #c7c7c7;
  cursor: default;
}

.application-form-page .submitted-calendar-day.is-muted:hover {
  background: transparent;
}

.application-form-page .submitted-calendar-day.is-selected {
  background: #006837;
  color: #fff;
  font-weight: 700;
}

.application-form-page .submitted-calendar-current {
  margin-top: 12px;
  font-size: 1.05rem;
  color: #3a3a3a;
}

.application-form-page .submitted-assessment-panel {
  background: #e5eeea;
  border-radius: 12px;
  padding: 12px;
}

.application-form-page .submitted-assessment-box {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.application-form-page .submitted-assessment-item {
  background: #006837;
  color: #fff;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.application-form-page .submitted-assessment-item span {
  font-weight: 700;
  font-size: 1.2rem;
}

.application-form-page .submitted-assessment-item strong {
  font-size: 1.15rem;
  font-weight: 600;
}

/* Faculty profile wizard cleanup */

body.page-faculty-profile-edit .profile-page {
  max-width: 1320px;
}

body.page-faculty-profile-edit .faculty-profile-form .setup-form-container {
  width: 100%;
  max-width: 1320px !important;
  box-sizing: border-box;
}

body.page-faculty-profile-edit .faculty-profile-form .setup-section-header {
  min-height: 38px;
  display: flex;
  align-items: flex-end;
}

body.page-faculty-profile-edit .faculty-profile-form .faculty-step-consistent {
  display: flex;
  flex-direction: column;
  min-height: 540px;
}

body.page-faculty-profile-edit .faculty-profile-form .faculty-step-consistent .faculty-step-content {
  flex: 1;
  padding-right: 0;
}

body.page-faculty-profile-edit .faculty-profile-form .faculty-step-consistent .setup-nav {
  margin-top: auto;
}

body.page-faculty-profile-edit .faculty-profile-form .setup-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0.04em;
}

body.page-faculty-profile-edit .faculty-action-cell {
  text-align: center;
  white-space: nowrap;
}

body.page-faculty-profile-edit .faculty-action-btn {
  display: inline-block;
  border: none;
  border-radius: 8px;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 3px;
}

body.page-faculty-profile-edit .faculty-action-btn--edit {
  background: #0a7a3f;
  color: #fff;
}

body.page-faculty-profile-edit .faculty-action-btn--delete {
  background: #c0392b;
  color: #fff;
}

body.page-faculty-profile-edit .faculty-action-btn:focus,
body.page-faculty-profile-edit .faculty-action-btn:hover {
  opacity: 0.9;
}

@media (max-width: 991px) {
  body.page-faculty-profile-edit .faculty-profile-form .setup-label {
    white-space: normal;
  }
}

@media (max-width: 768px) {
  .setup-row--app-meta {
    flex-wrap: wrap;
  }

  .setup-row--apply-program {
    flex-wrap: wrap;
  }

  .setup-col--apply-choice {
    flex: 0 0 100%;
    min-width: 100%;
    max-width: 100%;
  }

  .application-form-page .submitted-header-row {
    flex-wrap: wrap;
  }

  .application-form-page .submitted-header-field,
  .application-form-page .submitted-header-field--name {
    flex: 0 0 100%;
  }

  .application-form-page .submitted-status-grid {
    grid-template-columns: 1fr;
  }

  .application-form-page .submitted-intro-text,
  .application-form-page .submitted-intro-note,
  .application-form-page .submitted-credentials-title,
  .application-form-page .submitted-credentials-label,
  .application-form-page .submitted-credentials-value,
  .application-form-page .submitted-credentials-note,
  .application-form-page .submitted-panel-title,
  .application-form-page .submitted-status-date,
  .application-form-page .submitted-status-note,
  .application-form-page .submitted-calendar-select,
  .application-form-page .submitted-calendar-current,
  .application-form-page .submitted-assessment-item span,
  .application-form-page .submitted-assessment-item strong {
    font-size: 1rem;
  }

  .application-form-page .submitted-continue-btn {
    min-width: 220px;
  }

  .application-form-page .submitted-calendar-day {
    height: 34px;
    font-size: 0.95rem;
  }
}

.pv-page {
  background: #006837;
  min-height: calc(100vh - 120px);
  padding: 20px;
  box-sizing: border-box;
}

.pv-layout {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  max-width: 1060px;
}

.pv-sidebar {
  background: #fff;
  border-radius: 10px;
  padding: 24px 18px 20px;
  width: 230px;
  min-width: 230px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.pv-avatar-wrap {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid #006837;
  margin-bottom: 12px;
  flex-shrink: 0;
}

.pv-avatar {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.pv-name {
  font-size: 0.8rem;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 4px;
  text-align: center;
  line-height: 1.3;
  word-break: break-word;
}

.pv-student-id {
  font-size: 0.75rem;
  color: #555;
  margin: 0 0 14px;
}

.pv-divider {
  width: 100%;
  border: none;
  border-top: 1px solid #ddd;
  margin: 0 0 14px;
}

.pv-meta-grid {
  width: 100%;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pv-meta-row {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.pv-meta-label {
  font-size: 0.6rem;
  font-weight: 700;
  color: #888;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pv-meta-value {
  font-size: 0.72rem;
  color: #222;
  font-weight: 500;
  word-break: break-all;
}

.pv-meta-email {
  color: #1a73e8;
}

.pv-meta-course {
  color: #006837;
  font-weight: 700;
}

.pv-btn-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  margin-top: 20px;
}

.pv-btn {
  display: block;
  width: 100%;
  padding: 10px;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: opacity 0.15s;
}

.pv-btn:hover {
  opacity: 0.85;
  text-decoration: none;
}

.pv-btn-edit {
  background: #006837;
  color: #fff;
}

.pv-btn-back {
  background: #006837;
  color: #fff;
}

.pv-body {
  flex: 1;
  min-width: 0;
}

.pv-body-title {
  color: #fff;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 14px;
}

.pv-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 16px;
}

.pv-tab {
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, 0.7);
  color: rgba(255, 255, 255, 0.85);
  border-radius: 4px;
  padding: 6px 14px;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  font-family: inherit;
}

.pv-tab:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #fff;
  color: #fff;
}

.pv-tab.active {
  background: #fff;
  border-color: #fff;
  color: #006837;
}

.pv-panel {
  display: none;
}

.pv-panel.active {
  display: block;
}

.pv-section-rule {
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  margin: 12px 0;
}

.pv-sub-heading {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 10px;
}

.pv-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.pv-row:last-child {
  border-bottom: none;
}

.pv-label {
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  min-width: 190px;
  max-width: 190px;
  flex-shrink: 0;
  padding-top: 1px;
}

.pv-sep {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.8rem;
  flex-shrink: 0;
  padding-top: 1px;
}

.pv-value {
  color: #fff;
  font-size: 0.8rem;
  font-weight: 600;
  flex: 1;
  min-width: 0;
  word-break: break-word;
}

.pv-row--multiline .pv-value {
  white-space: normal;
}

@media (max-width: 768px) {
  .pv-page {
    padding: 12px;
  }

  .pv-layout {
    flex-direction: column;
  }

  .pv-sidebar {
    width: 100%;
    min-width: unset;
  }

  .pv-label {
    min-width: 130px;
    max-width: 130px;
  }
}

.pv-page {
  background: rgba(0, 104, 55, 0.74);
  border-radius: 0;
  backdrop-filter: none;
}

body.page-profile-view .content-footer-wrap {
  background-image: linear-gradient(rgba(0, 104, 55, 0.74), rgba(0, 104, 55, 0.74)), url(/images/schoolbg.png?73745313351ba4c1f04c5019d2bc9c31);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center top;
}

body.page-profile-view .student-main-wrapper {
  background-image: none !important;
}

body.page-profile-view .student-page-header {
  margin-top: 0;
  border-top: 0;
}

body.page-profile-view .student-content {
  background: transparent;
  padding: 0;
}

body.page-profile-view .plp-footer {
  background: transparent;
  border-top: 0;
  color: rgba(255, 255, 255, 0.92);
}

body.page-profile-view .plp-footer a {
  color: #ffffff;
}

body.page-profile-view .pv-page {
  min-height: calc(100vh - 118px);
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
}

body.page-profile-view .pv-layout {
  max-width: none;
  width: 100%;
  min-height: calc(100vh - 118px);
  gap: 18px;
  padding: 18px 14px 24px 8px;
  margin: 0;
  box-sizing: border-box;
  position: relative;
  z-index: 1;
}

.pv-sidebar {
  width: 292px;
  min-width: 292px;
  max-width: 324px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: 0 10px 24px rgba(0, 28, 14, 0.16);
  min-height: 100%;
}

.pv-body {
  background: rgba(0, 88, 47, 0.44);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  padding: 12px 14px 14px;
}

.pv-sidebar-header {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.pv-sidebar-info {
  width: 100%;
  text-align: center;
}

.pv-avatar-wrap {
  margin: 0 auto 12px;
  border: 2px solid #3b3b3b;
}

.pv-avatar-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f0f4f2;
}

.pv-name {
  font-size: 0.92rem;
  text-transform: uppercase;
  margin: 0 0 6px;
}

.pv-student-id {
  color: #30353a;
  margin: 0 0 12px;
}

.pv-meta-grid {
  gap: 18px;
}

.pv-meta-row {
  display: grid;
  grid-template-columns: minmax(98px, auto) minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.pv-meta-label {
  font-size: 0.62rem;
  color: #4e5964;
  flex: 0 0 auto;
}

.pv-meta-value {
  text-align: left;
  font-size: 0.76rem;
  font-weight: 700;
  flex: 1;
  line-height: 1.28;
  word-break: normal;
  overflow-wrap: anywhere;
}

.pv-meta-department,
.pv-meta-email {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pv-btn-group {
  margin-top: auto;
  padding-top: 22px;
}

.pv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 8px;
}

.pv-btn-edit {
  background: rgba(255, 255, 255, 0.96);
  color: #006837;
  border: 1px solid rgba(0, 104, 55, 0.35);
}

.pv-btn-back {
  background: #0b8a47;
  color: #fff;
  border: 1px solid #0a7a3f;
}

.pv-body-title {
  margin: 4px 0 11px;
  font-size: 1rem;
}

.pv-tabs {
  gap: 8px;
  margin-bottom: 12px;
}

.pv-tab {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.52);
  color: #ffffff;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 6px 13px;
}

.pv-tab.active {
  background: #f5f7f8;
  color: #1f2428;
  border-color: #f5f7f8;
}

.pv-panel-card {
  background: rgba(0, 69, 36, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 10px;
  padding: 12px 14px;
}

.pv-row {
  display: grid;
  grid-template-columns: 210px 16px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  border-bottom-color: rgba(255, 255, 255, 0.16);
  padding: 7px 0;
}

.pv-label {
  font-size: 0.84rem;
  min-width: 0;
  max-width: none;
  color: #f6f9f7;
  line-height: 1.24;
}

.pv-sep,
.pv-value {
  font-size: 0.86rem;
  color: #fff;
  line-height: 1.28;
}

.pv-value {
  font-weight: 700;
}

.pv-row--multiline {
  align-items: flex-start;
}

.pv-row--multiline .pv-value {
  max-width: 100%;
}

.pv-section-rule {
  border-top-color: rgba(255, 255, 255, 0.22);
}

.pv-sub-heading {
  color: rgba(255, 255, 255, 0.9);
}

@media (max-width: 992px) {
  .pv-sidebar {
    width: 100%;
    min-width: 0;
    max-width: none;
  }

  .pv-meta-row {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .pv-meta-department,
  .pv-meta-email {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  .pv-label {
    min-width: 0;
    max-width: none;
    font-size: 0.82rem;
  }

  .pv-row {
    grid-template-columns: 145px 14px minmax(0, 1fr);
  }

  .pv-sep,
  .pv-value {
    font-size: 0.82rem;
  }
}

@media (max-width: 576px) {
  .pv-body {
    padding: 10px;
  }

  .pv-row {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .pv-sep {
    display: none;
  }

  .pv-label,
  .pv-value {
    font-size: 0.8rem;
  }
}

.student-portal-body .sidebar-dropdown {
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

.student-portal-body .sidebar-dropdown .sidebar-link {
  margin: 0;
  border-radius: 12px;
}

.student-portal-body .sidebar-dropdown.open {
  background-color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  border-radius: 12px;
}

.student-portal-body .sidebar-dropdown.open .sidebar-link {
  color: #0a813c;
  font-weight: 700;
}

.student-portal-body .sidebar-dropdown-toggle {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}

.student-portal-body .sidebar-dropdown-toggle span {
  flex: 1;
}

.student-portal-body .sidebar-chevron {
  margin-left: auto;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.student-portal-body .sidebar-dropdown.open > .sidebar-dropdown-toggle .sidebar-chevron {
  transform: rotate(180deg);
  color: #0a813c;
}

.student-portal-body .sidebar-dropdown-menu {
  display: none;
  flex-direction: column;
}

.student-portal-body .sidebar-dropdown.open .sidebar-dropdown-menu {
  display: flex;
}

.student-portal-body .sidebar-nested-dropdown {
  display: flex;
  flex-direction: column;
}

.student-portal-body .sidebar-nested-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}

.student-portal-body .sidebar-nested-menu {
  display: none;
  flex-direction: column;
}

.student-portal-body .sidebar-nested-dropdown.open .sidebar-nested-menu {
  display: flex;
}

.student-portal-body .sidebar-nested-dropdown.open > .sidebar-nested-toggle .sidebar-chevron {
  transform: rotate(180deg);
}

.student-portal-body .sidebar-sublink {
  display: block;
  position: relative;
  padding: 8px 18px 8px 34px;
  color: #333;
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
  border-radius: 6px;
  transition: color 0.15s, background 0.15s;
}

.student-portal-body .sidebar-sublink::before {
  content: "\2022";
  position: absolute;
  left: 20px;
  color: inherit;
}

.student-portal-body .sidebar-sublink:hover {
  color: #0a813c;
  background-color: rgba(0, 104, 55, 0.06);
}

.student-portal-body .sidebar-sublink.active {
  color: #0a813c;
  font-weight: 700;
}

.student-portal-body .topbar-icons {
  display: flex;
  align-items: center;
  gap: 10px;
}

.student-portal-body .topbar-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: #f0f0f0;
  color: #444;
  text-decoration: none;
  transition: background 0.15s;
}

.student-portal-body .topbar-icon-link:hover {
  background-color: #e0e0e0;
  color: #222;
}

.student-portal-body .topbar-icon-link.msg-icon:hover,
.student-portal-body .topbar-icon-link.msg-icon:focus-visible,
.student-portal-body .topbar-icon-link.topbar-help-icon:hover,
.student-portal-body .topbar-icon-link.topbar-help-icon:focus-visible,
.student-portal-body .topbar-icon-link.topbar-notif-icon:hover,
.student-portal-body .topbar-icon-link.topbar-notif-icon:focus-visible {
  background-color: #e8f4ed;
  color: #0a813c;
  box-shadow: 0 2px 8px rgba(0, 104, 55, 0.2);
  transform: translateY(-1px);
}

.student-portal-body .topbar-icon-link.msg-icon.is-active,
.student-portal-body .topbar-icon-link.topbar-help-icon.is-active,
.student-portal-body .topbar-icon-link.topbar-notif-icon.is-active {
  background-color: #0a813c;
  color: #fff;
  box-shadow: 0 4px 10px rgba(0, 104, 55, 0.25);
}

.student-portal-body .topbar-user {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.student-portal-body .topbar-user.topbar-profile-trigger {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  padding: 0;
  justify-content: center;
  background-color: #f0f0f0;
  color: #444;
  transition: background 0.15s, box-shadow 0.15s, transform 0.15s;
}

.student-portal-body .topbar-user.topbar-profile-trigger:hover,
.student-portal-body .topbar-user.topbar-profile-trigger:focus-visible {
  background-color: #e8f4ed;
  color: #0a813c;
  box-shadow: 0 2px 8px rgba(0, 104, 55, 0.2);
  transform: translateY(-1px);
}

.student-portal-body .topbar-user.topbar-profile-trigger.is-active {
  background-color: #0a813c;
  color: #fff;
  box-shadow: 0 4px 10px rgba(0, 104, 55, 0.25);
  transform: none;
}

.student-portal-body .topbar-avatar-placeholder,
.student-portal-body .topbar-avatar-image {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.student-portal-body .topbar-avatar-placeholder {
  width: 20px;
  height: 20px;
  background-color: transparent;
  color: inherit;
  transition: background-color 0.15s, color 0.15s;
}

.student-portal-body .topbar-user.topbar-profile-trigger:hover .topbar-avatar-placeholder,
.student-portal-body .topbar-user.topbar-profile-trigger:focus-visible .topbar-avatar-placeholder {
  background-color: transparent;
  color: inherit;
}

.student-portal-body .topbar-user.topbar-profile-trigger.is-active .topbar-avatar-placeholder {
  background-color: transparent;
  color: #fff;
}

.student-portal-body .topbar-avatar-image {
  -o-object-fit: cover;
     object-fit: cover;
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: #fff;
}

.student-portal-body .topbar-avatar-placeholder--neutral {
  background-color: transparent;
  color: inherit;
}

.student-portal-body {
  /* Higher specificity than students.css to avoid duplicate legacy overrides. */
}

.student-portal-body .student-topbar .topbar-user.topbar-profile-trigger .topbar-avatar-placeholder,
.student-portal-body .student-topbar .topbar-user.topbar-profile-trigger .topbar-avatar-placeholder--neutral {
  background-color: transparent;
}

.student-portal-body .student-topbar .topbar-user.topbar-profile-trigger.is-active .topbar-avatar-placeholder,
.student-portal-body .student-topbar .topbar-user.topbar-profile-trigger.is-active .topbar-avatar-placeholder--neutral {
  color: #fff;
}

/* Restore registrar sidebar baseline behavior (match original shared menu look) */

.registrar-body .sidebar-dropdown-toggle,
.registrar-body .sidebar-nested-toggle {
  display: flex;
  align-items: center;
  width: 100%;
}

.registrar-body .sidebar-dropdown-toggle .sidebar-chevron,
.registrar-body .sidebar-nested-toggle .sidebar-chevron {
  margin-left: auto;
  flex-shrink: 0;
}

.registrar-body .sidebar-dropdown-menu,
.registrar-body .sidebar-nested-menu {
  display: none;
  max-height: none;
  opacity: 1;
  overflow: visible;
  transform: none;
  transition: none;
}

.registrar-body .sidebar-dropdown.open > .sidebar-dropdown-menu,
.registrar-body .sidebar-nested-dropdown.open > .sidebar-nested-menu {
  display: flex;
}

.registrar-body .sidebar-nested-menu {
  margin-left: 0;
  padding-left: 0;
  border-left: 0;
}

.registrar-body .sidebar-nested-sublink {
  padding-left: 50px !important;
}

.registrar-body .sidebar-nested-sublink::before {
  left: 36px;
}

.registrar-body {
  /* Prevent parent open state from rotating all nested chevrons */
}

.registrar-body .sidebar-dropdown.open > .sidebar-dropdown-toggle > .sidebar-chevron {
  transform: rotate(180deg);
  color: #0a813c;
}

.registrar-body .sidebar-dropdown.open .sidebar-nested-toggle .sidebar-chevron {
  transform: none;
  color: inherit;
}

.registrar-body .sidebar-nested-dropdown.open > .sidebar-nested-toggle .sidebar-chevron {
  transform: rotate(180deg);
}

.student-table-wrapper {
  overflow-x: auto;
  border: 2px solid #c0c0c0;
  border-radius: 8px;
}

.student-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.88rem;
  background: #fff;
}

.student-table thead {
  background-color: #0a813c;
}

.student-table thead th {
  color: #fff;
  font-weight: 700;
  text-align: center;
  padding: 12px 16px;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.student-table tbody tr {
  transition: background-color 0.15s ease;
}

.student-table tbody tr:hover {
  background-color: #f0f7f0;
}

.student-table tbody td {
  padding: 14px 16px;
  text-align: center;
  vertical-align: middle;
  color: #333;
  border-bottom: 1px solid #c0c0c0;
}

.student-table tbody tr:last-child td {
  border-bottom: none;
}

.registrar-form-row {
  display: flex;
  gap: 16px;
  align-items: flex-end;
  margin-bottom: 24px;
}

.registrar-form-group {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.registrar-form-label {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--plp-green);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 4px;
  font-family: "Poppins", sans-serif;
}

.registrar-form-input {
  width: 100%;
  padding: 10px 14px;
  font-size: 0.85rem;
  font-family: "Poppins", sans-serif;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  background: #fff;
  color: #333;
  outline: none;
  transition: border-color 0.2s ease;
}

.registrar-form-input:focus {
  border-color: var(--plp-green);
}

.registrar-form-input::-moz-placeholder {
  color: #bbb;
}

.registrar-form-input::placeholder {
  color: #bbb;
}

.registrar-form-btn-group {
  flex: 0 0 auto;
}

.btn-registrar-save {
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: #fff;
  background-color: var(--plp-green);
  border: none;
  border-radius: 6px;
  padding: 10px 40px;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.15s ease;
  letter-spacing: 0.5px;
}

.btn-registrar-save:hover {
  background-color: var(--plp-green-dark);
  transform: translateY(-1px);
}

.registrar-table {
  table-layout: auto;
}

.registrar-table thead th {
  text-align: center;
}

.registrar-table thead th:last-child {
  text-align: left;
}

.registrar-table tbody td {
  text-align: center;
}

.registrar-table tbody td:last-child {
  text-align: left;
}

.doclist-page {
  padding: 4px 0;
}

.doclist-form-card {
  background: #fff;
  border: 1.5px solid #d0d0d0;
  border-radius: 10px;
  padding: 20px 24px;
  margin-bottom: 24px;
}

.doclist-options-row {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.doclist-radios {
  display: flex;
  align-items: center;
  gap: 18px;
}

.doclist-filter-input,
.doclist-filter-select {
  width: 100%;
}

.req-modal-overlay.doclist-modal-hidden {
  display: none;
}

.doclist-modal-fields-stacked {
  flex-direction: column;
  gap: 14px;
}

.doclist-modal-option-row {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
}

.doclist-modal-option-group {
  flex: 0 0 auto;
}

.doclist-modal-option-list {
  display: flex;
  gap: 14px;
  margin-top: 4px;
}

.doclist-non-filipino-label {
  margin-top: 4px;
}

.doclist-radio-label,
.doclist-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Poppins", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  color: #333;
  cursor: pointer;
}

.doclist-radio-label input[type=radio],
.doclist-radio-label input[type=checkbox],
.doclist-checkbox-label input[type=radio],
.doclist-checkbox-label input[type=checkbox] {
  accent-color: var(--plp-green);
  width: 16px;
  height: 16px;
  cursor: pointer;
}

.doclist-save-wrap {
  margin-left: auto;
}

.doclist-table thead th {
  text-align: center;
}

.doclist-table thead th:last-child {
  text-align: center;
}

.doclist-table tbody td {
  text-align: center;
}

.doclist-table tbody td:last-child {
  text-align: center;
}

.doclist-empty-row td {
  text-align: center;
  color: #666;
  padding: 20px 12px;
}

.doclist-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.doclist-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  transition: background 0.15s, transform 0.1s;
}

.doclist-action-btn:hover {
  transform: translateY(-1px);
}

.doclist-edit-btn {
  background: #e8f5e9;
  color: #2e7d32;
}

.doclist-edit-btn:hover {
  background: #c8e6c9;
}

.doclist-delete-btn {
  background: #ffebee;
  color: #c62828;
}

.doclist-delete-btn:hover {
  background: #ffcdd2;
}

.doclist-delete-modal {
  text-align: center;
  max-width: 420px;
}

.doclist-delete-icon-wrap {
  margin-bottom: 16px;
  color: #c62828;
}

.doclist-delete-title {
  color: #c62828;
}

.doclist-delete-text {
  font-size: 0.9rem;
  color: #444;
  margin-bottom: 6px;
}

.doclist-delete-name {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 20px;
}

.doclist-delete-note {
  font-size: 0.78rem;
  color: #999;
  margin-bottom: 22px;
}

.doclist-delete-actions {
  justify-content: center;
}

.req-btn-danger {
  background: #c62828;
}

.req-btn-danger:hover {
  background: #a31f1f;
}

.batch-upload-wrapper {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.batch-upload-alert {
  margin-bottom: 0;
}

.batch-upload-report-list {
  margin: 8px 0 0;
  padding-left: 18px;
}

.batch-dropzone {
  border: 2px dashed var(--plp-green);
  border-radius: 8px;
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  background: #fff;
}

.batch-dropzone:hover,
.batch-dropzone.dragover {
  background-color: #f0f7f0;
  border-color: #005028;
}

.dropzone-text {
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: #999;
  margin: 0;
  pointer-events: none;
}

.batch-upload-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
  padding: 12px 0 18px;
  border-bottom: 1px solid #e8e8e8;
}

.batch-file-count {
  margin: 0;
  font-family: "Poppins", sans-serif;
  font-size: 0.9rem;
  color: #3b3b3b;
}

.batch-upload-btn {
  min-width: 220px;
  min-height: 42px;
  padding: 0 18px;
  border: none;
  border-radius: 8px;
  background: #0f7b43;
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: background-color 0.16s ease, transform 0.12s ease;
}

.batch-upload-btn:hover:not(:disabled) {
  background: #0c6a39;
}

.batch-upload-btn:active:not(:disabled) {
  transform: translateY(1px);
}

.batch-upload-btn:disabled {
  background: #9bcda9;
  color: #f7fff9;
  cursor: not-allowed;
}

.batch-upload-note {
  padding: 0;
}

.batch-upload-note p {
  font-family: "Poppins", sans-serif;
  font-size: 0.85rem;
  color: #333;
  margin: 0;
  line-height: 1.6;
}

.batch-upload-results {
  margin-top: 14px;
  border-top: 1px solid #e5e5e5;
  padding-top: 20px;
}

.batch-upload-results-title {
  margin: 0 0 12px;
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #1f2d1f;
}

@media (max-width: 991px) {
  .registrar-body .registrar-form-row {
    gap: 12px;
  }
}

@media (max-width: 768px) {
  .registrar-body .registrar-form-row {
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
  }

  .registrar-body .registrar-form-group[style*="flex: 2"] {
    flex: 1 !important;
  }

  .registrar-body .registrar-form-btn-group {
    align-self: flex-start;
  }

  .registrar-body .student-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .registrar-body .student-table thead th {
    padding: 10px 12px;
    font-size: 0.75rem;
  }

  .registrar-body .student-table tbody td {
    padding: 10px 12px;
    font-size: 0.82rem;
  }

  .registrar-body .btn-registrar-save {
    padding: 8px 28px;
    font-size: 0.82rem;
  }

  .registrar-body .registrar-form-input {
    padding: 8px 12px;
    font-size: 0.82rem;
  }
}

.reg-dashboard {
  padding: 4px 0;
  width: 100%;
  min-width: 0;
}

.page-registrar-dashboard .student-content {
  padding: 24px 24px 16px;
}

.reg-stat-card-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: #555;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.reg-stat-card-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-top: 4px;
}

.reg-stat-left {
  display: flex;
  flex-direction: column;
}

.reg-stat-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.reg-stat-sparkline {
  width: 150px;
  flex-shrink: 0;
  overflow: visible;
  display: block;
}

.reg-applicants-dept {
  font-size: 0.9rem;
  font-weight: 700;
  color: #c2607a;
  margin-top: 4px;
}

.reg-announce-card,
.reg-schedule-card {
  background: #fff;
  border: 1.5px solid #d0d0d0;
  border-radius: 14px;
  padding: 18px 20px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
}

.reg-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.reg-card-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1a1a2e;
}

.reg-card-date {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.78rem;
  color: #888;
  cursor: pointer;
}

.reg-announce-text {
  flex: 1;
  min-width: 0;
}

.reg-announce-title {
  font-size: 0.85rem;
  font-weight: 600;
  color: #1a1a2e;
  line-height: 1.3;
  margin-bottom: 3px;
}

.reg-announce-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  margin-left: 10px;
  color: #aaa;
}

.reg-announce-actions svg {
  cursor: pointer;
}

.reg-announce-actions svg:hover {
  color: #006837;
}

.reg-see-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-end;
  margin-top: auto;
  padding: 8px 14px;
  border: 1px solid #0a813c;
  border-radius: 999px;
  background: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  color: #0a813c;
  line-height: 1;
  text-decoration: none;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.reg-see-all:hover,
.reg-see-all:focus,
.reg-see-all:active,
.reg-see-all:visited {
  color: #0a813c;
  text-decoration: none;
}

.reg-see-all:hover,
.reg-see-all:focus {
  background: #edf8f1;
  border-color: #076b31;
  outline: none;
}

.reg-sched-priority-label,
.reg-sched-other-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #888;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 8px;
  margin-top: 4px;
}

.reg-sched-other-label {
  margin-top: 14px;
}

.reg-sched-dots {
  font-size: 1.3rem;
  color: #ccc;
  letter-spacing: 2px;
  cursor: pointer;
  padding: 2px 4px;
  flex-shrink: 0;
  line-height: 1;
}

.reg-sched-dots:hover {
  color: #006837;
}

.reg-dash-top {
  display: grid;
  grid-template-columns: minmax(320px, 1.35fr) repeat(2, minmax(240px, 1fr));
  gap: 20px;
  margin-bottom: 24px;
  align-items: stretch;
}

.reg-stat-card {
  width: 100%;
  min-width: 0;
  background: #fff;
  border: 1.5px solid #d0d0d0;
  border-radius: 14px;
  padding: 20px 22px 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
}

.reg-stat-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #555;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.reg-stat-number {
  font-size: 2rem;
  font-weight: 800;
  color: #1a1a2e;
  line-height: 1.1;
}

.reg-stat-sub {
  font-size: 0.78rem;
  color: #888;
  margin-top: 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.reg-stat-sub span {
  display: block;
}

.reg-stat-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #f0f0f0;
  color: #555;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 20px;
  white-space: nowrap;
}

.reg-sparkline-wrap {
  margin-top: 12px;
  width: 100%;
  overflow: hidden;
}

.reg-sparkline-wrap svg {
  width: 100%;
  height: auto;
  display: block;
}

.reg-applicants-card {
  background: #fce8f0;
  border: 1.5px solid #e8b0c4;
  border-radius: 14px;
  padding: 28px 64px 28px 36px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  display: inline-flex;
  flex-direction: column;
  align-self: end;
  width: 100%;
  min-width: 0;
}

.reg-applicants-card .reg-stat-card-title {
  font-size: 1rem;
  margin-bottom: 6px;
}

.reg-applicants-card .reg-stat-number {
  font-size: 2.8rem;
}

.reg-applicants-card .reg-applicants-dept {
  font-size: 1rem;
  margin-top: 6px;
}

.reg-faculty-card {
  background: #e8f0fe;
  border: 1.5px solid #a8c0f0;
  border-radius: 14px;
  padding: 28px 64px 28px 36px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  display: inline-flex;
  flex-direction: column;
  align-self: end;
  width: 100%;
  min-width: 0;
}

.reg-faculty-card .reg-stat-card-title {
  font-size: 1rem;
  margin-bottom: 6px;
}

.reg-faculty-card .reg-stat-number {
  font-size: 2.8rem;
}

.reg-faculty-card .reg-faculty-dept {
  font-size: 1rem;
  margin-top: 6px;
  color: #3b6fd4;
  font-weight: 600;
}

.reg-applicants-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #1a1a2e;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.reg-applicants-number {
  font-size: 2rem;
  font-weight: 800;
  color: #1a1a2e;
  line-height: 1.1;
}

.reg-applicants-sub {
  font-size: 0.78rem;
  color: #1a1a2e;
  margin-top: 2px;
  opacity: 0.8;
}

.reg-dash-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.reg-section-card {
  background: #fff;
  border-radius: 14px;
  padding: 18px 20px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
}

.reg-section-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #006837;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid #e8f5ee;
}

.reg-announce-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.reg-announce-date {
  font-size: 0.8rem;
  font-weight: 600;
  color: #444;
}

.reg-announce-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid #d8d8d8;
}

.reg-announce-item:last-child {
  border-bottom: none;
}

.reg-announce-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #006837;
  margin-top: 5px;
  flex-shrink: 0;
}

.reg-announce-time {
  font-size: 0.72rem;
  color: #aaa;
  margin-top: 2px;
}

.reg-sched-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  gap: 8px;
  background: #f8f8f8;
  border: 1px solid #d0d0d0;
  border-radius: 8px;
  padding: 10px 14px;
}

.reg-sched-info {
  flex: 1;
  min-width: 0;
}

.reg-sched-name {
  font-size: 0.88rem;
  font-weight: 600;
  color: #1a1a2e;
  margin-bottom: 3px;
  line-height: 1.3;
}

.reg-sched-time {
  font-size: 0.75rem;
  color: #888;
}

.reg-sched-badge {
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 12px;
  white-space: nowrap;
  flex-shrink: 0;
}

.reg-sched-badge.badge-green {
  background: #e5f4ec;
  color: #006837;
}

.reg-sched-badge.badge-blue {
  background: #e8f0fe;
  color: #1a73e8;
}

.reg-sched-badge.badge-orange {
  background: #fff3e0;
  color: #e65100;
}

.app-process-page {
  padding: 4px 0;
}

.app-filter-bar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  margin-bottom: 18px;
  background: #fff;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
}

.app-filter-row {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.app-filter-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.app-filter-input-search {
  min-width: 180px;
}

.app-filter-input-sort {
  min-width: 140px;
}

.app-filter-select-sm {
  min-width: 80px;
  max-width: 100px;
}

.app-filter-select-wide {
  min-width: 200px;
  flex: 1;
}

.app-status-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  margin-right: 5px;
  vertical-align: middle;
}

.app-filter-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  white-space: nowrap;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.app-filter-input {
  padding: 7px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.82rem;
  outline: none;
  min-width: 100px;
}

.app-filter-input:focus {
  border-color: #006837;
}

.ga-page .ga-table .tog-input {
  width: 100%;
  max-width: 100%;
  min-height: 32px;
  border: 1px solid #cfd9d3;
  border-radius: 6px;
  padding: 5px 8px;
  font-size: 0.82rem;
  color: #2e3b34;
  background: #fff;
  outline: none;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.ga-page .ga-table .tog-input:focus {
  border-color: #0b8043;
  box-shadow: 0 0 0 2px rgba(11, 128, 67, 0.12);
}

.ga-page .ga-table .tog-input-date {
  min-width: 138px;
}

.ga-page .ga-table .tog-input-so {
  min-width: 120px;
  max-width: 140px;
}

.ga-page .ga-table .tog-check {
  width: 16px;
  height: 16px;
  accent-color: #0b8043;
  cursor: pointer;
}

.ga-page .ga-table .tog-suspend-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: #2f3d36;
}

.ga-page .ga-table .tog-save-btn {
  margin-left: 8px;
  min-width: 72px;
  padding: 6px 14px;
  font-size: 0.76rem;
}

.app-filter-select {
  padding: 7px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.82rem;
  outline: none;
  background: #fff;
  cursor: pointer;
}

.app-filter-select:focus {
  border-color: #006837;
}

.app-filter-search {
  display: flex;
  align-items: center;
  border: 1px solid #ccc;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

.app-filter-search input {
  padding: 7px 10px;
  border: none;
  outline: none;
  font-size: 0.82rem;
  min-width: 160px;
}

.app-filter-search button {
  background: #006837;
  color: #fff;
  border: none;
  padding: 7px 14px;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 600;
  transition: background 0.15s;
}

.app-filter-search button:hover {
  background: #005229;
}

.app-table-wrap {
  overflow-x: auto;
  border: 2px solid #c0c0c0;
  border-radius: 10px;
}

.app-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  font-size: 0.84rem;
}

.app-table thead tr {
  background: #006837;
  color: #fff;
}

.app-table thead th {
  padding: 12px 14px;
  font-weight: 600;
  text-align: left;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.app-table tbody tr {
  border-bottom: 1px solid #c0c0c0;
}

.app-table tbody tr:last-child {
  border-bottom: none;
}

.app-table tbody tr:hover {
  background: #f9fffe;
}

.app-table td {
  padding: 11px 14px;
  color: #333;
  vertical-align: middle;
  border-bottom: 1px solid #c0c0c0;
}

.app-table tbody tr:last-child td {
  border-bottom: none;
}

.app-process-page .app-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.app-process-page .app-table {
  width: -moz-max-content;
  width: max-content;
  min-width: 100%;
  table-layout: auto;
}

.app-process-page .app-table thead th,
.app-process-page .app-table tbody td {
  white-space: nowrap;
}

.app-status-accepted {
  color: #006837;
  font-weight: 600;
}

.app-status-pending {
  color: #e6a817;
  font-weight: 600;
}

.app-status-rejected {
  color: #c0392b;
  font-weight: 600;
}

.app-status-inprogress {
  color: #1a73e8;
  font-weight: 600;
}

@media (max-width: 991px) {
  .reg-dash-top {
    grid-template-columns: 1fr;
  }

  .reg-dash-bottom {
    grid-template-columns: 1fr;
  }

  .reg-stat-card {
    min-width: unset;
    width: 100%;
  }

  .reg-applicants-card {
    padding: 20px 28px;
  }

  .reg-faculty-card {
    padding: 20px 28px;
  }

  .app-filter-row {
    flex-direction: column;
    align-items: stretch;
  }

  .app-filter-group {
    width: 100%;
  }

  .app-filter-select-wide,
  .app-filter-input-search,
  .app-filter-input-sort {
    min-width: unset;
    width: 100%;
  }
}

@media (max-width: 768px) {
  .reg-dash-top {
    gap: 14px;
  }

  .reg-stat-card-inner {
    flex-direction: column;
    gap: 10px;
  }

  .reg-stat-sparkline {
    width: 100%;
  }

  .reg-applicants-card {
    width: 100%;
    padding: 16px 20px;
  }

  .reg-faculty-card {
    width: 100%;
    padding: 16px 20px;
  }

  .reg-dash-bottom {
    gap: 14px;
  }

  .reg-card-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .doclist-form-card {
    padding: 14px 16px;
  }

  .doclist-options-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .doclist-save-wrap {
    align-self: flex-start;
  }
}

.req-page {
  padding: 4px 0;
}

.req-search-wrap {
  margin-bottom: 20px;
}

.req-search-box {
  position: relative;
  display: inline-block;
  width: 280px;
}

.req-search-box.req-search-box-sm {
  width: 220px;
}

.req-search-input {
  width: 100%;
  padding: 8px 36px 8px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.85rem;
  outline: none;
  box-sizing: border-box;
}

.req-search-input:focus {
  border-color: #006837;
}

.req-search-icon {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}

.req-cards-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

@media (max-width: 1100px) {
  .req-cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .req-cards-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.req-card {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 18px 16px;
  cursor: pointer;
  transition: box-shadow 0.18s, transform 0.15s;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  min-width: 0;
  overflow: hidden;
}

.req-card:hover {
  box-shadow: 0 4px 14px rgba(0, 104, 55, 0.15);
  transform: translateY(-2px);
}

.req-card-name {
  font-size: 0.88rem;
  font-weight: 700;
  color: #006837;
  text-transform: uppercase;
  margin-bottom: 4px;
  line-height: 1.3;
  word-break: break-word;
  overflow-wrap: break-word;
}

.req-card-id {
  font-size: 0.78rem;
  color: #555;
  margin-bottom: 12px;
}

.req-progress-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}

.req-progress-blocks {
  display: flex;
  gap: 3px;
  flex-shrink: 0;
}

.req-progress-block {
  width: 18px;
  height: 10px;
  border-radius: 3px;
  background: #ddd;
}

.req-progress-block.done {
  background: #006837;
}

.req-progress-count {
  font-size: 0.75rem;
  color: #555;
  white-space: nowrap;
}

.req-card-status {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 3px 10px;
  border-radius: 12px;
}

.req-card-status.status-verified {
  background: #e5f4ec;
  color: #006837;
}

.req-card-status.status-inprogress {
  background: #f0f0f0;
  color: #777;
}

.req-detail-topbar {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}

.req-back-btn {
  background: none;
  border: none;
  color: #006837;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.req-back-btn:hover {
  text-decoration: underline;
}

.req-detail-header {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 12px 20px;
  margin-bottom: 16px;
  font-size: 0.88rem;
  font-weight: 600;
  color: #1a1a2e;
  display: flex;
  gap: 32px;
}

.req-detail-name-label span,
.req-detail-id-label span {
  color: #006837;
  font-weight: 700;
  margin-left: 6px;
}

.req-checkbox {
  width: 22px;
  height: 22px;
  border: 2px solid #aaa;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  margin: 0 auto;
  transition: border-color 0.15s, background 0.15s;
}

.req-checkbox.checked {
  background: #006837;
  border-color: #006837;
}

.req-checkbox.checked svg {
  width: 14px;
  height: 14px;
  display: block;
}

.req-checkbox:not(.checked) svg {
  display: none;
}

.req-action-link {
  color: #c0392b;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: underline;
  margin-left: 6px;
}

.req-action-link:hover {
  color: #a93226;
}

.req-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.req-modal-box {
  background: #fff;
  border-radius: 12px;
  padding: 28px 32px 24px;
  min-width: 420px;
  max-width: 520px;
  width: 90%;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
}

@media (max-width: 600px) {
  .req-modal-box {
    min-width: unset;
    padding: 20px 16px;
  }
}

.req-modal-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 14px;
  text-align: center;
}

.req-modal-meta {
  display: flex;
  gap: 24px;
  font-size: 0.83rem;
  color: #444;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #eee;
}

.req-modal-meta strong {
  color: #1a1a2e;
}

.req-modal-fields {
  display: flex;
  gap: 16px;
}

@media (max-width: 600px) {
  .req-modal-fields {
    flex-direction: column;
  }
}

.req-modal-field-group {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 5px;
}

.req-modal-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #555;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.req-modal-hint {
  font-size: 0.72rem;
  color: #999;
  margin-top: 3px;
  display: block;
}

.req-modal-input {
  padding: 8px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.85rem;
  outline: none;
  width: 100%;
  box-sizing: border-box;
}

.req-modal-input:focus {
  border-color: #006837;
}

.req-photo-group {
  border-top: 1px dashed #e0e0e0;
  padding-top: 12px;
}

.req-modal-file {
  font-size: 0.83rem;
  padding: 6px 0;
  width: 100%;
  cursor: pointer;
}

.req-photo-preview {
  margin-top: 8px;
}

.req-photo-preview img {
  max-width: 120px;
  max-height: 120px;
  border-radius: 6px;
  border: 1px solid #e0e0e0;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.req-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 22px;
}

.req-btn-cancel {
  background: #e0e0e0;
  color: #444;
  border: none;
  border-radius: 6px;
  padding: 9px 22px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.req-btn-cancel:hover {
  background: #ccc;
}

.req-btn-save {
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 9px 28px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.req-btn-save:hover {
  background: #005229;
}

.req-modal-success {
  text-align: center;
  min-width: 320px;
  max-width: 380px;
}

.req-modal-success-title {
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #006837;
  margin-bottom: 10px;
}

.req-modal-success-msg {
  font-size: 0.9rem;
  color: #444;
  margin-bottom: 22px;
}

.req-btn-ok {
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 20px;
  padding: 10px 36px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.req-btn-ok:hover {
  background: #005229;
}

.req-modal-field-group {
  display: flex;
  flex-direction: column;
}

.req-modal-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 4px;
}

select.req-modal-input {
  -webkit-appearance: auto;
     -moz-appearance: auto;
          appearance: auto;
}

.apst-page {
  padding: 4px 0;
}

.apst-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  gap: 12px;
}

.apst-search-box {
  position: relative;
  width: 280px;
}

.apst-search-input {
  width: 100%;
  padding: 8px 36px 8px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.85rem;
  outline: none;
  box-sizing: border-box;
}

.apst-search-input:focus {
  border-color: #006837;
}

.apst-search-icon {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}

.apst-new-btn {
  background: #006837;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 9px 22px;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  letter-spacing: 0.02em;
  transition: background 0.15s;
}

.apst-new-btn:hover {
  background: #005229;
}

.apst-action-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: 30px;
  height: 30px;
  border: 1.5px solid #aaa;
  border-radius: 5px;
  cursor: pointer;
  padding: 4px;
  box-sizing: border-box;
  position: relative;
}

.apst-action-btn span {
  display: block;
  width: 4px;
  height: 4px;
  background: #555;
  border-radius: 50%;
}

.apst-action-btn:hover {
  border-color: #006837;
}

.apst-action-btn:hover span {
  background: #006837;
}

.apst-dropdown {
  display: none;
  position: absolute;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 7px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
  z-index: 100;
  min-width: 110px;
  overflow: hidden;
  left: 36px;
  top: 0;
}

.apst-dropdown.open {
  display: block;
}

.apst-dropdown button {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  padding: 9px 14px;
  background: none;
  border: none;
  font-size: 0.83rem;
  color: #333;
  cursor: pointer;
  text-align: left;
  transition: background 0.12s;
}

.apst-dropdown button:hover {
  background: #f5f5f5;
}

.apst-dropdown .apst-del-btn {
  color: #c0392b;
}

.apst-dropdown .apst-del-btn:hover {
  background: #fff0ee;
}

#apstTable td:first-child {
  position: relative;
}

#examListTable td:first-child,
#examCategoryTable td:first-child {
  position: relative;
}

#examListTable .apst-dropdown,
#examCategoryTable .apst-dropdown {
  position: fixed;
  z-index: 9999;
}

.exam-modal-delete-box {
  min-width: 300px;
}

.exam-modal-delete-text {
  font-size: 0.88rem;
  color: #444;
  margin-bottom: 20px;
  text-align: center;
}

.exam-modal-delete-title {
  color: #c0392b;
}

.exam-modal-delete-actions {
  justify-content: center;
}

.exam-btn-danger {
  background: #c0392b;
}

.exam-btn-danger:hover {
  background: #a93226;
}

body.page-registrar-help {
  background: #f4f6f5;
  height: auto !important;
  min-height: 100vh;
}

body.page-registrar-help .reg-help-shell {
  width: 100%;
  max-width: 100%;
  /* Fully maximize */
  margin: 0;
  padding: 16px 3.5% 32px;
}

body.page-registrar-help .plp-footer {
  margin-top: 20px;
}

body.page-registrar-help .reg-help,
body.page-registrar-help .reg-help-topic-page {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  color: #1f2d2a;
  position: relative;
  /* Anchor back button */
}

body.page-registrar-help .reg-help-chat-page {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  color: #1f2d2a;
  position: relative;
  /* Anchor back button */
}

body.page-registrar-help .reg-help-head {
  margin-bottom: 20px;
}

body.page-registrar-help .reg-help-top-nav {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

body.page-registrar-help .reg-help-top-nav .reg-help-back-btn {
  position: static;
  top: auto;
  left: auto;
  z-index: auto;
}

body.page-registrar-help .reg-help-title,
body.page-registrar-help .reg-help-topic-title {
  margin: 0;
  gap: 10px;
}

body.page-registrar-help .reg-help-breadcrumb-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.95rem;
  color: #1f2d2a;
  line-height: 1;
}

body.page-registrar-help .reg-help-breadcrumb-parent {
  color: #667570;
  font-weight: 500;
}

body.page-registrar-help .reg-help-breadcrumb-sep {
  color: #9ca9a4;
}

body.page-registrar-help .reg-help-breadcrumb-current {
  color: #0b2b1d;
  font-weight: 700;
}

body.page-registrar-help .reg-help-title-icon,
body.page-registrar-help .reg-help-topic-title-icon {
  color: #0a813c;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body.page-registrar-help .reg-help-subtitle,
body.page-registrar-help .reg-help-topic-subtitle {
  margin: 8px 0 0;
  font-size: 1.05rem;
  color: #4b5a56;
}

body.page-registrar-help .reg-help-search {
  position: relative;
  width: 100%;
  max-width: 600px;
  margin: 18px auto 0;
  border-radius: 12px;
  box-shadow: 0 4px 18px rgba(16, 24, 40, 0.08);
  /* deeper shadow */
}

body.page-registrar-help .reg-help-search input {
  width: 100%;
  border: 1px solid #d4ded9;
  border-radius: 12px;
  padding: 12px 40px 12px 16px;
  font-size: 0.95rem;
  outline: none;
  background: #fff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

body.page-registrar-help .reg-help-search input:focus {
  border-color: #0a813c;
  box-shadow: 0 0 0 4px rgba(10, 129, 60, 0.1);
}

body.page-registrar-help .reg-help-search-icon {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: #87948f;
}

body.page-registrar-help .reg-help-topic-grid {
  margin-top: 40px;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  width: 100%;
  max-width: 100%;
}

body.page-registrar-help .reg-help-topic-card {
  flex: 1;
  /* allow flex items to grow equally */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-decoration: none;
  background: linear-gradient(155deg, #f0f7f3 0%, #e6f0e9 100%);
  border: 1px solid #d4e2da;
  border-radius: 16px;
  padding: 20px 14px;
  color: #0b7839;
  box-shadow: 0 8px 24px rgba(10, 129, 60, 0.08);
  /* pops up */
  min-height: 160px;
  /* Make containers smaller so no scrollbar */
  transition: all 0.25s cubic-bezier(0.1, 0.6, 0.3, 1);
}

body.page-registrar-help .reg-help-topic-card:hover {
  background: linear-gradient(155deg, #eefbf4 0%, #d8e8de 100%);
  border-color: #b9d2c5;
  text-decoration: none;
  color: #09612c;
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(10, 129, 60, 0.12);
}

body.page-registrar-help .reg-help-topic-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  margin-bottom: 2px;
  box-shadow: 0 4px 16px rgba(10, 129, 60, 0.12);
  /* Make icon pop up */
}

body.page-registrar-help .reg-help-topic-icon svg {
  width: 44px;
  height: 44px;
}

body.page-registrar-help .reg-help-topic-name {
  text-align: center;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.35;
}

body.page-registrar-help .reg-help-bottom {
  margin-top: 40px;
  display: flex;
  gap: 32px;
  width: 100%;
}

body.page-registrar-help .reg-help-panel {
  flex: 1;
  /* evenly split */
  background: transparent;
  border-radius: 12px;
}

body.page-registrar-help .reg-help-panel-title,
body.page-registrar-help .reg-help-side-title {
  font-size: 1.35rem;
  font-weight: 800;
  margin: 0 0 16px;
  color: #16241e;
  letter-spacing: -0.01em;
  text-align: left;
  /* Align exactly with FAQ containers */
}

body.page-registrar-help .reg-help-faq-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.page-registrar-help .reg-help-faq-item {
  border: 1px solid #e0ede6;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(16, 24, 40, 0.06);
  overflow: hidden;
  transition: box-shadow 0.2s ease;
}

body.page-registrar-help .reg-help-faq-item:hover {
  box-shadow: 0 6px 20px rgba(16, 24, 40, 0.09);
}

body.page-registrar-help .reg-help-faq-q {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  font-size: 0.94rem;
  color: #0b7839;
  font-weight: 700;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}

body.page-registrar-help .reg-help-faq-a {
  display: none;
  padding: 0 16px 14px;
  font-size: 0.9rem;
  color: #485c54;
  line-height: 1.45;
  border-top: 1px solid #edf1ef;
}

body.page-registrar-help .reg-help-faq-item[data-expanded=true] .reg-help-faq-a {
  display: block;
}

body.page-registrar-help .reg-help-faq-item[data-expanded=true] .reg-help-faq-caret {
  transform: rotate(180deg);
}

body.page-registrar-help .reg-help-faq-caret {
  color: #7d8b86;
  transition: transform 0.15s ease;
}

body.page-registrar-help .reg-help-contact-grid {
  display: flex;
  gap: 24px;
  width: 100%;
  max-width: 100%;
}

body.page-registrar-help .reg-help-contact-card {
  flex: 1;
  /* Stretch properly to maximize width */
  border: 1px solid #e9f2ee;
  background: #fff;
  border-radius: 16px;
  min-height: 160px;
  /* Big boxes */
  padding: 24px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-decoration: none;
  color: #1a2420;
  font-weight: 800;
  font-size: 1.05rem;
  box-shadow: 0 8px 24px rgba(10, 129, 60, 0.08);
  /* strong uniform shadow */
  transition: all 0.25s cubic-bezier(0.1, 0.6, 0.3, 1);
}

body.page-registrar-help .reg-help-contact-card svg {
  width: 56px;
  height: 56px;
  color: #0b7839;
  filter: drop-shadow(0 6px 8px rgba(10, 129, 60, 0.18));
}

body.page-registrar-help .reg-help-contact-card:hover {
  text-decoration: none;
  color: #08632e;
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(10, 129, 60, 0.12);
}

body.page-registrar-help .reg-help-back-btn,
body.page-registrar-help .reg-help-chat-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #dce8e0;
  background: #fff;
  color: #3e4e46;
  text-decoration: none;
  border-radius: 8px;
  padding: 8px 16px;
  font-size: 0.94rem;
  font-weight: 600;
  box-shadow: 0 4px 14px rgba(10, 129, 60, 0.08);
  /* pops out slightly */
  transition: all 0.2s ease;
  position: absolute;
  /* Push up along the row of back */
  top: 0;
  left: 0;
  z-index: 10;
}

body.page-registrar-help .reg-help-back-btn:hover,
body.page-registrar-help .reg-help-chat-back:hover {
  text-decoration: none;
  color: #16241e;
  background: #f7fbf8;
  border-color: #c9dacd;
  box-shadow: 0 6px 18px rgba(10, 129, 60, 0.12);
  transform: translateY(-1px);
}

body.page-registrar-help .reg-help-breadcrumb {
  font-size: 0.84rem;
  color: #5b6964;
  margin-bottom: 10px;
}

body.page-registrar-help .reg-help-breadcrumb span {
  margin: 0 6px;
  color: #9da9a4;
}

body.page-registrar-help .reg-help-topic-layout {
  margin-top: 14px;
  border-top: 2px solid #97c8af;
  padding-top: 14px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 24px;
}

body.page-registrar-help .reg-help-steps-card {
  border: 1px solid #d3ddda;
  border-radius: 10px;
  background: #fff;
  padding: 24px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
}

body.page-registrar-help .reg-help-step-item {
  display: flex;
  gap: 16px;
  padding: 0 0 32px 0;
  position: relative;
}

body.page-registrar-help .reg-help-step-item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 9px;
  top: 24px;
  bottom: 4px;
  width: 2px;
  background: #0a813c;
  /* Connect the steps */
}

body.page-registrar-help .reg-help-step-item:last-child {
  padding-bottom: 0;
}

body.page-registrar-help .reg-help-step-check {
  width: 20px;
  height: 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: #0a813c;
  font-size: 0.76rem;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 2px;
  position: relative;
  z-index: 2;
}

body.page-registrar-help .reg-help-step-title {
  font-size: 1.04rem;
  font-weight: 700;
  color: #27322d;
}

body.page-registrar-help .reg-help-step-desc {
  font-size: 0.86rem;
  color: #acb9b4;
  /* Muted color */
  margin-top: 4px;
}

body.page-registrar-help .reg-help-side-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.page-registrar-help .reg-help-topic-layout .reg-help-side-title {
  text-align: center;
  margin-top: 6px;
}

body.page-registrar-help .reg-help-faq-list-topic {
  margin-bottom: 24px;
}

body.page-registrar-help .reg-help-contact-inline {
  border: 1px solid #dce8e0;
  background: #ebf2ef;
  border-radius: 12px;
  padding: 16px;
}

body.page-registrar-help .reg-help-contact-inline-title {
  text-align: center;
  font-size: 0.95rem;
  font-weight: 800;
  margin-bottom: 12px;
  color: #1a2622;
}

body.page-registrar-help .reg-help-contact-inline-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: #fff;
  border-radius: 8px;
  padding: 10px;
  gap: 6px;
}

body.page-registrar-help .reg-help-contact-inline-actions a {
  color: #2b3934;
  font-size: 0.86rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px 8px;
  border-radius: 6px;
  transition: background 0.15s ease;
}

body.page-registrar-help .reg-help-contact-icon {
  color: #0a813c;
  margin-right: 6px;
  flex-shrink: 0;
}

body.page-registrar-help .reg-help-contact-inline-actions a:hover {
  color: #0a813c;
  background: #f4f8f6;
  text-decoration: none;
}

body.page-registrar-help .reg-help-chat-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

body.page-registrar-help .reg-help-chat-head h2 {
  margin: 0;
  font-size: 2rem;
  font-weight: 800;
}

body.page-registrar-help .reg-help-chat-window {
  border: 1px solid #d5ddda;
  border-radius: 10px;
  background: #f2f6f4;
  height: calc(100vh - 470px);
  /* Slightly smaller so footer stays visible */
  min-height: 150px;
  overflow-y: auto;
  /* The chat scroll wheel */
  padding: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
  /* add depth */
}

body.page-registrar-help .reg-help-chat-row {
  display: flex;
  margin-bottom: 10px;
}

body.page-registrar-help .reg-help-chat-row.user {
  justify-content: flex-end;
}

body.page-registrar-help .reg-help-chat-bubble {
  max-width: 80%;
  border-radius: 12px;
  padding: 14px 18px;
  font-size: 1rem;
  line-height: 1.45;
  box-shadow: 0 4px 12px rgba(16, 24, 40, 0.08);
}

body.page-registrar-help .reg-help-chat-row.bot .reg-help-chat-bubble {
  background: #0a813c;
  color: #fff;
}

body.page-registrar-help .reg-help-chat-row.user .reg-help-chat-bubble {
  background: #dce9e2;
  color: #1e2c27;
}

body.page-registrar-help .reg-help-chat-input-wrap {
  margin-top: 12px;
  border: 1px solid #d5ddda;
  border-radius: 12px;
  background: #edf3ef;
  padding: 12px;
  display: flex;
  gap: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

body.page-registrar-help .reg-help-chat-input-wrap input {
  flex: 1;
  border: 1px solid #ccd7d2;
  border-radius: 8px;
  padding: 14px 16px;
  font-size: 1.05rem;
  outline: none;
}

body.page-registrar-help .reg-help-chat-input-wrap button {
  border: 0;
  background: #0a813c;
  color: #fff;
  border-radius: 8px;
  min-width: 110px;
  padding: 14px 28px;
  font-size: 1.05rem;
  font-weight: 700;
  cursor: pointer;
}

body.page-registrar-help .reg-help-chat-input-wrap button:hover {
  background: #086930;
}

@media (max-width: 1000px) {
  body.page-registrar-help .reg-help-bottom {
    flex-direction: column;
  }

  body.page-registrar-help .reg-help-contact-grid {
    flex-direction: column;
  }
}

@media (max-width: 768px) {
  body.page-registrar-help .reg-help-topic-layout {
    grid-template-columns: 1fr;
  }

  body.page-registrar-help .reg-help-breadcrumb-nav {
    font-size: 0.9rem;
  }
}

@media (max-width: 768px) {
  body.page-registrar-help .reg-help-shell {
    padding: 10px 12px 4px;
  }

  body.page-registrar-help .reg-help-title,
  body.page-registrar-help .reg-help-topic-title,
  body.page-registrar-help .reg-help-chat-head h2 {
    font-size: 1.45rem;
  }

  body.page-registrar-help .reg-help-topic-grid {
    grid-template-columns: repeat(2, minmax(132px, 1fr));
  }

  body.page-registrar-help .reg-help-contact-grid {
    grid-template-columns: 1fr;
  }

  body.page-registrar-help .reg-help-contact-inline-actions {
    grid-template-columns: 1fr;
  }

  body.page-registrar-help .reg-help-chat-bubble {
    max-width: 88%;
  }
}

.app-table tbody tr {
  cursor: pointer;
  transition: background 0.12s;
}

.app-table tbody tr:hover {
  background-color: #f0faf4;
}

#applicantDetailView {
  display: none;
}

.appl-detail-header {
  display: flex;
  gap: 16px;
  margin-bottom: 20px;
  flex-wrap: wrap;
  align-items: flex-end;
}

.appl-detail-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.appl-detail-field label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #006837;
  text-transform: uppercase;
  margin: 0;
}

.appl-detail-field input[type=text] {
  border: 1px solid #d0d0d0;
  border-radius: 6px;
  padding: 7px 12px;
  font-size: 14px;
  color: #444;
  background: #f7f7f7;
  outline: none;
  min-width: 150px;
}

.appl-detail-field.wide input[type=text] {
  min-width: 320px;
}

.applicant-panel {
  display: none;
}

.applicant-panel.active {
  display: block;
}

.under-dev-notice {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  color: #aaa;
  font-size: 1rem;
  font-style: italic;
  letter-spacing: 0.04em;
  border: 2px dashed #e0e0e0;
  border-radius: 10px;
  background: #fafafa;
}

.applicant-panel .apc-card {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 18px;
}

.applicant-panel .apc-panel-filter {
  margin-bottom: 12px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.applicant-panel .apc-panel-filter .app-filter-row {
  gap: 12px;
}

.applicant-panel .app-row-checkbox {
  width: 15px;
  height: 15px;
  accent-color: #0a813c;
  cursor: pointer;
}

.applicant-panel .apc-col-check {
  width: 36px;
  text-align: center;
}

.applicant-panel #docsTable input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid #9ca3af;
  border-radius: 5px;
  background: #ffffff;
  display: inline-grid;
  place-content: center;
  vertical-align: middle;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.applicant-panel #docsTable input[type=checkbox]:hover {
  border-color: #006837;
}

.applicant-panel #docsTable input[type=checkbox]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 104, 55, 0.2);
}

.applicant-panel #docsTable input[type=checkbox]:checked {
  background: #006837;
  border-color: #006837;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 11px 9px;
}

.applicant-panel #docsTable input[type=checkbox]:indeterminate {
  background: #ffffff;
  border-color: #006837;
  background-image: linear-gradient(#006837, #006837);
  background-size: 10px 2px;
  background-position: center;
  background-repeat: no-repeat;
}

.applicant-panel #docsTable thead input[type=checkbox] {
  border-color: #ffffff;
  background-color: rgba(255, 255, 255, 0.12);
}

.applicant-panel #docsTable thead input[type=checkbox]:checked {
  background: #ffffff;
  border-color: #ffffff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23006837' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 11px 9px;
}

.applicant-panel #docsTable thead input[type=checkbox]:hover {
  border-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.18);
}

.applicant-panel #docsTable td > input[type=checkbox]:checked::after,
.applicant-panel #docsTable thead input[type=checkbox]:checked::after {
  content: none;
}

.applicant-panel .apc-col-check--tor {
  width: 54px;
  text-align: center;
}

.applicant-panel .apc-check-cell {
  text-align: center;
}

.applicant-panel .apc-input,
.applicant-panel .apc-select {
  width: 100%;
  min-height: 34px;
  border: 1px solid #ccd6dd;
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 13px;
  color: #2f3a45;
  background: #fff;
  outline: none;
  transition: border-color 0.2s;
}

.applicant-panel .apc-input:focus,
.applicant-panel .apc-select:focus {
  border-color: #0a813c;
}

.applicant-panel .apc-input--grade {
  max-width: 100px;
}

.applicant-panel .apc-input--date {
  max-width: 145px;
  min-width: 120px;
  text-transform: uppercase;
}

.applicant-panel .apc-dimension-subrow td:first-child {
  padding-left: 28px;
  color: #4b5b68;
}

.applicant-panel .apc-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 74px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.applicant-panel .apc-pill--pending {
  background: #fff6df;
  color: #8a6412;
}

.applicant-panel .apc-grid {
  display: grid;
  gap: 12px;
  margin-bottom: 12px;
}

.applicant-panel .apc-grid--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.applicant-panel .apc-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.applicant-panel .apc-field--wide {
  grid-column: span 1;
}

.applicant-panel .apc-field--date-save {
  display: flex;
  align-items: flex-end;
  gap: 10px;
}

.applicant-panel .apc-field--date-save > div {
  flex: 1;
}

.applicant-panel .apc-field--save-only .apc-save-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.applicant-panel .apc-label {
  margin: 0;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #006837;
}

.applicant-panel .apc-banner {
  margin-top: 10px;
  padding: 8px 10px;
  border: 1px solid #c7e8d5;
  border-radius: 6px;
  background: #f2fbf6;
  color: #0a813c;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.applicant-panel .apc-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 14px;
}

.applicant-panel .apc-actions--between {
  justify-content: space-between;
}

.applicant-panel .apc-btn {
  min-width: 108px;
  border-radius: 999px;
  border: 1px solid #0a813c;
  padding: 8px 20px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
}

.applicant-panel .apc-btn--save {
  background: #0a813c;
  color: #fff;
}

.applicant-panel .apc-btn--save:hover {
  background: #076b31;
  border-color: #076b31;
}

.applicant-panel .apc-btn--ghost {
  background: #fff;
  color: #0a813c;
}

.applicant-panel .apc-btn--ghost:hover {
  background: #edf8f1;
}

@media (max-width: 991px) {
  .applicant-panel .apc-grid--three {
    grid-template-columns: 1fr;
  }

  .applicant-panel .apc-card {
    padding: 14px;
  }

  .applicant-panel .apc-field--date-save,
  .applicant-panel .apc-field--save-only .apc-save-row {
    flex-direction: column;
    align-items: stretch;
  }

  .applicant-panel .apc-actions,
  .applicant-panel .apc-actions--between {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

.sched-exam-card {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 26px 28px;
}

.sched-fields-row {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  align-items: flex-end;
  margin-bottom: 22px;
}

.sched-field-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.sched-field-group.flex-grow {
  flex: 1;
}

.sched-field-group label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #006837;
  text-transform: uppercase;
  margin: 0;
}

.sched-field-group select,
.sched-field-group input[type=text] {
  border: 1px solid #d0d0d0;
  border-radius: 6px;
  padding: 7px 12px;
  font-size: 14px;
  color: #333;
  background: #fff;
  outline: none;
  min-width: 150px;
}

.sched-field-group select {
  min-width: 165px;
  padding-right: 10px;
}

.sched-field-group.flex-grow input[type=text] {
  width: 100%;
}

.sched-field-group--venue {
  flex: 1 1 360px;
  min-width: 260px;
  max-width: 560px;
}

.sched-field-group--venue input[type=text] {
  width: 100%;
  max-width: 100%;
}

.sched-actions {
  display: flex;
  gap: 14px;
  margin-bottom: 28px;
}

.sched-btn-save {
  background: #0a813c;
  color: #fff;
  border: none;
  border-radius: 25px;
  padding: 10px 38px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.sched-btn-save:hover {
  background: #076b31;
}

.sched-btn-print {
  background: transparent;
  color: #0a813c;
  border: 2px solid #0a813c;
  border-radius: 25px;
  padding: 10px 38px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}

.sched-btn-print:hover {
  background: #0a813c;
  color: #fff;
}

.sched-reminders {
  border-top: 1px solid #eee;
  padding-top: 18px;
}

.sched-reminders p {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 6px;
  text-transform: uppercase;
  color: #333;
}

.sched-reminders ul {
  font-size: 13px;
  padding-left: 20px;
  margin-bottom: 16px;
  color: #444;
}

.sched-reminders ul li {
  margin-bottom: 4px;
}

.applicant-identity-row .app-filter-group--compact {
  max-width: 260px;
}

.applicant-identity-row .app-filter-group--wide {
  max-width: 360px;
}

.applicant-meta-bar {
  background: #f6f6f6;
  border: 1px solid #d7d7d7;
  box-shadow: none;
}

.applicant-sched-card {
  padding: 30px 32px;
}

.applicant-exam-result-card .apc-btn[disabled] {
  opacity: 0.65;
  cursor: not-allowed;
}

.applicant-result-note {
  margin-top: 12px;
  font-size: 13px;
  color: #555;
}

.applicant-schedule-empty {
  margin: 0 0 12px;
  color: #4f4f4f;
  font-size: 13px;
}

.applicant-correspondence-shell {
  background: #fff;
  border: 1px solid #0a813c;
  border-radius: 10px;
  padding: 14px 16px 16px;
  margin: 0;
  overflow: visible;
}

.applicant-correspondence-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 0;
}

.applicant-correspondence-logo {
  width: 72px;
  height: 72px;
  -o-object-fit: contain;
     object-fit: contain;
}

.applicant-correspondence-meta {
  flex: 1;
}

.applicant-correspondence-meta h3 {
  margin: 0;
  font-size: 48px;
  line-height: 1.04;
  font-weight: 900;
  letter-spacing: 0.02em;
  color: #1f1f1f;
}

.applicant-correspondence-meta p {
  margin: 5px 0 0;
  font-size: 14px;
  color: #444;
}

body.page-profile-view .content-footer-wrap {
  background-image: linear-gradient(rgba(0, 104, 55, 0.74), rgba(0, 104, 55, 0.74)), url(/images/schoolbg.png?73745313351ba4c1f04c5019d2bc9c31) !important;
  background-size: cover !important;
  background-position: center top !important;
}

body.page-profile-view .pv-page {
  backdrop-filter: none !important;
}

body.page-profile-view .pv-sidebar {
  width: 100%;
  max-width: 320px;
  min-width: 260px;
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid rgba(255, 255, 255, 0.72) !important;
}

body.page-profile-view .pv-body {
  background: rgba(0, 88, 47, 0.3) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 10px;
  padding: 10px 12px 12px;
}

body.page-profile-view .pv-panel-card {
  background: rgba(0, 104, 55, 0.46) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  backdrop-filter: none !important;
}

body.page-profile-view .pv-body-title {
  margin: 4px 0 8px;
  font-size: 0.94rem;
}

body.page-profile-view .pv-tabs {
  gap: 6px;
  margin-bottom: 10px;
}

body.page-profile-view .pv-tab {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.42);
  color: rgba(255, 255, 255, 0.95);
}

body.page-profile-view .pv-tab.active {
  background: #f2f6f4;
  border-color: #f2f6f4;
  color: #1d262c;
}

body.page-profile-view .pv-sidebar-header {
  width: 100%;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

body.page-profile-view .pv-avatar-wrap {
  align-self: center !important;
  margin: 0 auto 12px !important;
}

body.page-profile-view .pv-sidebar-info {
  width: 100%;
  text-align: center !important;
}

body.page-profile-view .pv-name,
body.page-profile-view .pv-student-id {
  text-align: center !important;
}

body.page-profile-view .pv-meta-row {
  display: grid !important;
  grid-template-columns: minmax(118px, 46%) minmax(0, 54%) !important;
  -moz-column-gap: 12px !important;
       column-gap: 12px !important;
  align-items: center !important;
}

body.page-profile-view .pv-meta-label {
  font-size: 0.64rem;
  letter-spacing: 0.05em;
}

body.page-profile-view .pv-meta-value {
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.24;
  text-align: right !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.page-profile-view .pv-label,
body.page-profile-view .pv-sep,
body.page-profile-view .pv-value {
  font-size: 0.83rem;
  line-height: 1.22;
}

body.page-profile-view .pv-label {
  font-weight: 700;
  color: rgba(246, 249, 247, 0.95);
}

body.page-profile-view .pv-value {
  font-weight: 600;
}

body.page-profile-view .pv-meta-department,
body.page-profile-view .pv-meta-email,
body.page-profile-view .pv-meta-course {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.faculty-body.page-profile-view .pv-meta-status,
body.faculty-body.page-profile-view .pv-meta-department,
body.faculty-body.page-profile-view .pv-meta-position {
  color: #0a813c;
  font-weight: 700;
}

body.faculty-body.page-profile-view .pv-panel-card--compact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  -moz-column-gap: 18px;
       column-gap: 18px;
  row-gap: 0;
}

body.faculty-body.page-profile-view .pv-panel-card--compact-grid .pv-row {
  margin: 0;
}

body.faculty-body.page-profile-view .pv-panel-card--split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  -moz-column-gap: 18px;
       column-gap: 18px;
}

body.faculty-body.page-profile-view .pv-panel-card--split .pv-grid-col {
  min-width: 0;
}

body.student-body.page-profile-view:not(.faculty-body) .pv-meta-value,
body.student-body.page-profile-view:not(.faculty-body) .pv-meta-email,
body.student-body.page-profile-view:not(.faculty-body) .pv-meta-course {
  color: #0a813c !important;
  font-weight: 700;
}

@media (max-width: 1200px) {
  body.page-profile-view .pv-sidebar {
    max-width: 100%;
    min-width: 0;
  }
}

@media (max-width: 992px) {
  body.page-profile-view .pv-meta-row {
    grid-template-columns: minmax(88px, 44%) minmax(0, 56%) !important;
    -moz-column-gap: 10px !important;
         column-gap: 10px !important;
  }

  body.page-profile-view .pv-row {
    grid-template-columns: 132px 12px minmax(0, 1fr) !important;
    gap: 6px;
  }

  body.page-profile-view .pv-label,
  body.page-profile-view .pv-sep,
  body.page-profile-view .pv-value {
    font-size: 0.8rem;
    line-height: 1.2;
  }
}

@media (max-width: 576px) {
  body.page-profile-view .pv-avatar-wrap {
    width: 88px;
    height: 88px;
  }

  body.page-profile-view .pv-meta-row {
    grid-template-columns: minmax(82px, 46%) minmax(0, 54%) !important;
  }

  body.page-profile-view .pv-row {
    grid-template-columns: 118px 10px minmax(0, 1fr) !important;
    gap: 5px;
  }

  body.page-profile-view .pv-sep {
    display: inline !important;
  }

  body.page-profile-view .pv-label,
  body.page-profile-view .pv-value {
    font-size: 0.76rem;
  }
}

@media (max-width: 1100px) {
  body.faculty-body.page-profile-view .pv-panel-card--compact-grid {
    grid-template-columns: 1fr;
  }

  body.faculty-body.page-profile-view .pv-panel-card--split {
    grid-template-columns: 1fr;
  }
}

body.faculty-body.page-profile-view .pv-edu-item {
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 10px;
  background: rgba(255, 255, 255, 0.03);
}

body.faculty-body.page-profile-view .pv-edu-item-head {
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

body.faculty-body.page-profile-view .pv-edu-item--empty {
  padding: 10px;
}

body.faculty-body.page-profile-view .pv-row--edu .pv-label {
  min-width: 160px;
  max-width: 160px;
}

body.faculty-body.page-profile-view .pv-row--edu .pv-value {
  font-weight: 600;
}

@media (max-width: 768px) {
  body.faculty-body.page-profile-view .pv-row--edu .pv-label {
    min-width: 125px;
    max-width: 125px;
  }
}

.applicant-correspondence-date {
  font-size: 13px;
  color: #4d4d4d;
  margin-top: 6px;
  white-space: nowrap;
}

.applicant-correspondence-divider {
  height: 1px;
  background: #0a813c;
  margin: 12px 0 16px;
}

.applicant-correspondence-body {
  padding: 0 2px 2px;
}

.applicant-correspondence-body p {
  margin: 0 0 18px;
  line-height: 1.45;
  color: #202020;
}

.applicant-ref-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #0a813c;
  border-radius: 8px;
  padding: 8px 12px;
  background: #f4faf6;
  font-weight: 700;
  margin: 2px 0 14px;
}

.applicant-ref-chip .dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #0a813c;
  position: relative;
}

.applicant-ref-chip .dot:before {
  content: "";
  position: absolute;
  left: 4px;
  top: 2px;
  width: 4px;
  height: 7px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.applicant-next-steps {
  margin-top: 10px;
}

.applicant-next-steps ol {
  margin: 6px 0 0;
  padding-left: 18px;
  color: #333;
}

@media (max-width: 991px) {
  .sched-field-group--venue {
    flex: 1 1 100%;
    max-width: 100%;
  }

  .applicant-correspondence-head {
    flex-wrap: wrap;
  }

  .applicant-correspondence-meta h3 {
    font-size: 22px;
  }

  .applicant-correspondence-date {
    white-space: normal;
  }
}

#applicantSidebar {
  display: none;
}

.appl-sidebar-back {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0 0 18px;
  background: rgba(255, 255, 255, 0.15);
  border: none;
  width: 100%;
  text-align: left;
  letter-spacing: 0.03em;
  color: #fff;
  text-decoration: none;
  border-radius: 8px;
  cursor: pointer;
}

.appl-sidebar-back:hover {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.appl-sidebar-back svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

body.page-profile-edit .pf-table-controls .pf-entries-control span,
body.page-profile-edit .sc-table-head .pf-entries-control.sc-show-entry span {
  margin: 0;
  white-space: nowrap;
}

/* Curriculum File */

.cf-page {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cf-toolbar-card {
  padding: 14px;
}

.cf-toolbar-grid {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 12px;
  align-items: flex-end;
}

.cf-filter-field,
.cf-field-row,
.cf-field-wide {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.cf-toolbar-action,
.cf-actions {
  display: flex;
  justify-content: flex-end;
}

.cf-grid-two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.cf-panel-card {
  border: 1px solid #0f7b43;
}

.cf-panel-title {
  margin: 0 0 10px;
  font-size: 1.1rem;
  color: #0f7b43;
  font-weight: 700;
  text-transform: uppercase;
  text-align: center;
}

.cf-panel-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cf-field-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.cf-subtitle {
  color: #2f3a45;
  font-weight: 700;
  margin-top: 2px;
}

/* Configuration extended sections */

.cfg-filter-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  gap: 10px;
  margin-bottom: 10px;
  align-items: flex-end;
}

.cfg-filter-row-tight {
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
}

.cfg-filter-row-cutoff-reg {
  grid-template-columns: repeat(4, minmax(140px, 1fr));
}

.cfg-filter-row-cutoff-reg .cfg-filter-group:nth-child(5) {
  grid-column: 1/span 2;
}

.cfg-filter-row-cutoff-reg .cfg-filter-action {
  grid-column: 3/span 2;
  min-width: 0;
  justify-content: flex-end;
}

.cfg-filter-row-cutoff-reg .cfg-filter-action .pf-btn-new {
  width: auto;
  min-width: 150px;
  max-width: 180px;
  white-space: nowrap;
}

.cfg-filter-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.cfg-filter-group-wide {
  grid-column: span 3;
}

.cfg-filter-action {
  display: flex;
  justify-content: flex-end;
}

.cfg-card .app-table-wrap {
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
}

.cfg-card .cfg-table {
  table-layout: auto;
  min-width: -moz-max-content;
  min-width: max-content;
}

.cfg-card .cfg-table thead th,
.cfg-card .cfg-table tbody td {
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
}

#cfgSignatureTable .apst-dropdown,
#cfgCutoffDateTable .apst-dropdown,
#cfgSectionCutoffTable .apst-dropdown,
#cfgCutoffConfigTable .apst-dropdown,
#cfgCurriculumDisplayTable .apst-dropdown {
  position: fixed;
}

#cfgSignatureTable td:last-child .apst-action-btn,
#cfgCutoffDateTable td:last-child .apst-action-btn,
#cfgSectionCutoffTable td:last-child .apst-action-btn,
#cfgCutoffConfigTable td:last-child .apst-action-btn,
#cfgCurriculumDisplayTable td:last-child .apst-action-btn {
  margin: 0 auto;
}

@media (max-width: 980px) {
  .cf-toolbar-grid,
  .cf-grid-two,
  .cf-field-split,
  .cfg-filter-row,
  .cfg-filter-row-tight,
  .cfg-filter-row-cutoff-reg {
    grid-template-columns: 1fr;
  }

  .cfg-filter-group-wide {
    grid-column: auto;
  }

  .cf-toolbar-action,
  .cf-actions,
  .cfg-filter-action {
    justify-content: stretch;
  }

  .cf-toolbar-action .pf-btn-new,
  .cf-actions .pf-btn-new,
  .cfg-filter-action .pf-btn-new,
  .cfg-filter-row-cutoff-reg .cfg-filter-action .pf-btn-new {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 1400px) {
  .cfg-filter-row-cutoff-reg {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cfg-filter-row-cutoff-reg .cfg-filter-group:nth-child(5) {
    grid-column: 1/span 2;
  }

  .cfg-filter-row-cutoff-reg .cfg-filter-action {
    grid-column: 3;
  }
}

@media (max-width: 1150px) {
  .cfg-filter-row-cutoff-reg {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cfg-filter-row-cutoff-reg .cfg-filter-group:nth-child(5),
  .cfg-filter-row-cutoff-reg .cfg-filter-action {
    grid-column: auto;
  }
}

/* Graduation Clearance checklist adjustments (UI parity with forms.css) */

.gc-check-row.gc-check-row-office-only {
  min-height: 9px;
  margin-top: -3px;
  margin-bottom: -1px;
}

.gc-check-row.gc-check-row-office-only .gc-check-left {
  min-height: 0;
}

.gc-check-row.gc-check-row-office-only .gc-check-office {
  white-space: nowrap;
  font-size: 10pt;
  line-height: 0.95;
}

.gc-check-row.gc-check-row-office-only .gc-check-line-wrap {
  align-items: center;
}

@media print {
  body.gc-printing .gc-check-row.gc-check-row-office-only {
    min-height: 8px !important;
    margin-top: -2px !important;
    margin-bottom: -1px !important;
  }

  body.gc-printing .gc-check-row.gc-check-row-office-only .gc-check-office {
    white-space: nowrap !important;
    font-size: 9.8pt !important;
    line-height: 0.95 !important;
  }
}

/* Program File page additions */

.pf-top-filter {
  border: 1.5px solid #d4d4d4;
  border-radius: 10px;
  padding: 12px;
  background: #f8f8f8;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.pf-top-filter-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.6fr) minmax(92px, 108px);
  gap: 8px;
  align-items: flex-end;
}

.pf-toolbar-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.pf-top-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.pf-top-label {
  font-size: 0.73rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.pf-top-search-btn-wrap {
  display: flex;
}

.pf-top-search-btn {
  width: 100%;
  min-width: 100px;
}

.pf-table-controls {
  margin: 12px 0 8px;
  display: flex;
  align-items: center;
}

.pf-entries-control {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}

.pf-entries-control label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.pf-entries-select {
  width: 58px;
  height: 34px;
  border: 1.5px solid #d0d0d0;
  border-radius: 6px;
  background: #fff;
  color: #555;
  font-size: 0.88rem;
  padding: 4px 6px;
}

.pf-entries-control span {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
}

.pf-modal-box.pf-dept-modal-box {
  width: min(94vw, 760px);
  max-width: min(94vw, 760px);
  min-width: 0;
  max-height: 90vh;
  overflow-y: auto;
}

.pf-dept-modal-title {
  text-align: left;
  border-bottom: 1px solid #d0d0d0;
  padding-bottom: 8px;
  margin-bottom: 10px;
}

.pf-dept-form-grid {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(280px, 1.4fr);
  gap: 10px;
  align-items: flex-end;
}

.pf-dept-setup-form-row {
  display: grid;
  grid-template-columns: minmax(150px, 0.9fr) minmax(260px, 1.5fr) auto;
  gap: 10px;
  align-items: flex-end;
}

.pf-item-dept-code .pf-modal-label,
.pf-item-dept-description .pf-modal-label {
  color: #006837;
}

.pf-dept-plus-wrap {
  display: flex;
  align-items: flex-end;
  padding-bottom: 3px;
  justify-content: center;
}

.pf-dept-plus-btn {
  width: 34px;
  height: 34px;
  border: none;
  border-radius: 50%;
  background: #e7f5ec;
  color: #0a6f3d;
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 34px;
  text-align: center;
  padding: 0;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  box-shadow: 0 0 0 1px #cfe6d8 inset;
  cursor: pointer;
  transition: transform 0.12s ease, background-color 0.14s ease;
}

.pf-dept-plus-btn:hover {
  background: #dff0e6;
}

.pf-dept-plus-btn:active {
  transform: translateY(1px);
}

.pf-dept-list-wrap {
  margin-top: 18px;
  border-top: 1px solid #e2e2e2;
  padding-top: 14px;
}

.pf-dept-list-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #0b7a43;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.pf-dept-list-head,
.pf-dept-list-row {
  display: grid;
  grid-template-columns: minmax(150px, 0.9fr) minmax(260px, 1.5fr);
  gap: 10px;
}

.pf-dept-list-head {
  margin-bottom: 6px;
}

.pf-dept-list-head span {
  font-size: 0.72rem;
  font-weight: 700;
  color: #006837;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.pf-dept-list-row {
  margin-bottom: 8px;
}

.pf-dept-list-input {
  background: #f7f7f7;
  color: #3f3f3f;
}

.pf-item-program-code {
  grid-column: 1/2;
}

.pf-item-program-name {
  grid-column: 2/3;
}

.pf-item-department {
  grid-column: 1/2;
}

.pf-item-accreditation {
  grid-column: 2/3;
}

.pf-track-options {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  overflow-x: visible;
  padding: 7px 0;
}

.pf-track-option {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  color: #1f1f1f;
  white-space: nowrap;
  flex: 0 0 auto;
}

.pf-item-program-code .pf-modal-label,
.pf-item-program-name .pf-modal-label,
.pf-item-department .pf-modal-label,
.pf-item-accreditation .pf-modal-label {
  color: #006837;
}

.pf-track-option input {
  width: 17px;
  height: 17px;
  accent-color: #0b8043;
}

.pf-modal-input,
.pf-modal-select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.pf-form-error-box {
  margin-bottom: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #fdecea;
  color: #b32222;
  font-size: 0.84rem;
  font-weight: 600;
}

.pf-dept-modal-actions {
  margin-top: 14px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.pf-new-modal-box {
  width: min(96vw, 820px);
  max-width: 820px;
  min-width: min(96vw, 620px);
}

.pf-new-modal-title {
  text-align: left;
  border-bottom: 1px solid #d0d0d0;
  padding-bottom: 8px;
  margin-bottom: 12px;
}

.pf-new-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
}

.pf-new-modal-actions {
  margin-top: 14px;
}

#pfTable .apst-dropdown {
  position: fixed;
}

#pfPaginationBar {
  margin-top: 2px;
  padding-top: 2px;
}

@media (max-width: 991px) {
  .pf-top-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pf-toolbar {
    align-items: stretch;
  }

  .pf-toolbar-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .pf-top-search-btn-wrap {
    grid-column: span 2;
  }

  .pf-top-search-btn {
    width: 100%;
  }

  .pf-dept-modal-box {
    min-width: 0;
  }

  .pf-dept-form-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .pf-dept-setup-form-row,
  .pf-dept-list-head,
  .pf-dept-list-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .pf-dept-plus-wrap {
    grid-column: span 2;
    justify-content: flex-end;
  }

  .pf-track-options {
    flex-wrap: wrap;
    overflow-x: visible;
  }

  .pf-item-program-code,
  .pf-item-program-name,
  .pf-item-department,
  .pf-item-accreditation {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  .pf-modal-box.pf-dept-modal-box {
    width: 94vw;
    max-width: 94vw;
    padding: 18px 14px;
    max-height: 88vh;
  }
}

@media (max-width: 768px) {
  .pf-toolbar-actions {
    width: 100%;
    justify-content: stretch;
  }

  .pf-toolbar-actions .pf-btn-new {
    flex: 1;
    min-width: 0;
  }

  .pf-top-filter-grid,
  .pf-dept-form-grid,
  .pf-new-form-grid {
    grid-template-columns: 1fr;
  }

  .pf-dept-plus-wrap {
    justify-content: flex-end;
  }

  .pf-top-search-btn-wrap {
    grid-column: auto;
  }

  .pf-modal-box,
  .pf-dept-modal-box,
  .pf-new-modal-box {
    width: 94vw;
    min-width: 0;
    max-width: 94vw;
    padding: 18px 14px;
  }
}

@media (max-width: 560px) {
  .pf-dept-setup-form-row,
  .pf-dept-list-head,
  .pf-dept-list-row {
    grid-template-columns: 1fr;
  }

  .pf-dept-plus-wrap {
    justify-content: flex-end;
  }
}

.student-portal-body .sidebar-dropdown-menu--forms {
  padding-bottom: 8px;
}

.student-portal-body .sidebar-dropdown-menu--forms .sidebar-sublink {
  white-space: normal;
  line-height: 1.28;
  padding-top: 10px;
  padding-bottom: 10px;
}

.acd-page {
  padding-top: 8px;
  overflow-x: hidden;
  overflow-y: visible;
}

body.page-student-forms .student-main-wrapper,
body.page-student-forms .content-footer-wrap,
body.page-student-forms .student-content,
body.page-student-forms .cor-scroll-wrapper.acd-page {
  overflow-y: visible !important;
  max-height: none !important;
}

.acd-canvas {
  --acd-scale: 1;
  --acd-paper-width: 210mm;
  width: var(--acd-paper-width);
  min-width: var(--acd-paper-width);
  margin: 0 auto;
}

.acd-actions {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 16px;
}

.acd-print-btn {
  background-color: #006837;
  border: 1px solid #006837;
  color: #fff;
  font-weight: 700;
}

.acd-print-btn:hover,
.acd-print-btn:focus {
  background-color: #0b5f37;
  border-color: #0b5f37;
  color: #fff;
}

.acd-form {
  width: var(--acd-paper-width);
  min-width: var(--acd-paper-width);
  min-height: 297mm;
  margin-top: 0 !important;
  border: 1.5px solid #9aa1a8;
  border-radius: 0 !important;
  transform: scale(var(--acd-scale));
  transform-origin: top left;
}

.acd-form .cor-header {
  border-radius: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  position: relative;
  padding: 16px 20px;
  background: transparent !important;
  border-bottom: none !important;
}

.acd-form .cor-header-left {
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-right: 10px;
}

.acd-form .cor-header-center {
  text-align: center;
  padding: 0;
  white-space: normal;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.acd-form .cor-header-right {
  position: absolute;
  right: 20px;
  top: 20px;
  font-size: 11pt;
}

.acd-header {
  background: transparent;
  border-bottom: none;
}

.acd-header-center {
  text-align: center;
}

.acd-school-name,
.acd-office-name,
.acd-contact {
  margin: 0;
  color: #000;
  font-weight: 700;
  letter-spacing: 0.2px;
  font-family: "Times New Roman", Times, serif;
}

.acd-office-name {
  color: #c4d600;
}

.acd-school-name {
  font-size: 16pt;
}

.acd-office-name {
  font-size: 14pt;
}

.acd-contact {
  font-size: 12pt;
  font-weight: 600;
}

.acd-body {
  padding: 14px 16px 18px;
  color: #000;
  font-size: 0.74rem;
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}

.acd-form-number {
  font-weight: 700;
  margin: 0 0 10px;
}

.acd-meta-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 16px;
  margin-bottom: 10px;
}

.acd-label {
  margin: 0 0 6px;
  font-weight: 700;
}

.acd-check {
  display: block;
  margin: 2px 0;
  font-weight: 600;
}

.acd-check input {
  width: 12px;
  height: 12px;
  margin-right: 6px;
  vertical-align: middle;
}

.acd-line-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
  font-weight: 700;
}

.acd-line {
  flex: 1;
  border-bottom: 1px solid #98a0a8;
  min-height: 10px;
  display: inline-flex;
  align-items: flex-end;
  padding: 0 4px;
  font-weight: 600;
}

.acd-table-block {
  margin-top: 8px;
}

.acd-table-title {
  margin: 0;
  padding: 3px 0;
  text-align: center;
  font-weight: 700;
  border-top: 1px solid #9aa1a8;
  border-bottom: 1px solid #9aa1a8;
}

.acd-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 3px;
}

.acd-table th,
.acd-table td {
  border: 1px solid #a6adb5;
  padding: 3px 4px;
  font-size: 0.67rem;
  text-align: center;
  height: 24px;
}

.acd-cell-input {
  width: 100%;
  border: 0;
  outline: none;
  background: transparent;
  font: inherit;
  color: inherit;
  text-align: center;
  line-height: 1.1;
  padding: 0;
}

.acd-cell-input--left {
  text-align: left;
}

.acd-table th {
  font-weight: 700;
  background: #f8fafb;
}

.acd-total-label {
  text-align: right;
  font-weight: 700;
  padding-right: 12px;
}

.acd-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 14px;
}

.acd-bottom-grid p {
  margin: 0 0 8px;
  font-weight: 600;
}

.acd-emphasis {
  font-style: italic;
}

.acd-sign-row {
  margin: 0 0 8px;
}

.acd-sign-main {
  margin: 0;
  font-weight: 600;
}

.acd-sign-sub {
  margin: 2px 0 0;
  padding-left: 2px;
  font-weight: 600;
}

.acd-inline-line {
  display: inline-block;
  border-bottom: 1px solid #8f98a0;
  height: 0.9em;
  vertical-align: baseline;
}

.acd-inline-input {
  display: inline-block;
  border: 0;
  border-bottom: 1px solid #8f98a0;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: 1.2;
  padding: 0 2px;
}

.acd-inline-input:focus {
  outline: none;
  border-bottom-color: #1f2a35;
}

.acd-inline-input--xs {
  width: 72px;
}

.acd-inline-input--sm {
  width: 110px;
}

.acd-inline-input--md {
  width: 180px;
}

.acd-inline-input--lg {
  width: 250px;
}

.acd-inline-input--xl {
  width: 320px;
}

.acd-inline-input--center {
  text-align: center;
}

.acd-inline-input--caps {
  text-transform: uppercase;
}

.cog-box.acd-inline-input {
  display: inline-flex;
  align-items: center;
}

.acd-inline-line--md {
  width: 170px;
}

.acd-inline-line--lg {
  width: 250px;
}

.acd-inline-line--xl {
  width: 240px;
}

.acd-mt-lg {
  margin-top: 12px !important;
}

.acd-footer-note {
  margin-top: 14px;
  font-size: 0.7rem;
  color: #000;
  text-align: center;
}

@media print {
@page {
    size: A4 portrait;
    margin: 0.5in;
}

  html,
  body.student-portal-body,
  .student-layout,
  .student-main-wrapper,
  .content-footer-wrap,
  .student-content,
  .cor-scroll-wrapper {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }

  .student-topbar,
  .student-page-header,
  .plp-sidebar,
  .sidebar-overlay,
  .plp-footer,
  #download-toast {
    display: none !important;
  }

  .acd-page {
    padding-top: 0;
    overflow: visible;
  }

  .acd-actions {
    display: none !important;
  }

  .acd-canvas {
    --acd-paper-width: auto !important;
    --acd-scale: 1 !important;
    width: calc(100% - 1in) !important;
    max-width: calc(100% - 1in) !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 auto !important;
  }

  .acd-form {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: auto !important;
    margin-top: 2in !important;
    transform: none !important;
    border: 1.5px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
  }

  .acd-form,
  .acd-form * {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 16px !important;
    line-height: 1.1 !important;
  }

  .acd-school-name,
  .loa-school,
  .ce-school,
  .cog-school {
    font-size: 16pt !important;
  }

  .acd-office-name,
  .loa-office,
  .ce-office,
  .cog-office {
    font-size: 14pt !important;
  }

  .loa-body h2,
  .cog-body h2,
  .ce-body h2,
  .acd-container h2 {
    font-size: 18pt !important;
  }

  .acd-body,
  .loa-body,
  .cog-body,
  .ce-body {
    padding-left: 0.15in !important;
    padding-right: 0.15in !important;
    padding-top: 0 !important;
    padding-bottom: 0.1in !important;
  }

  .acd-table th,
  .acd-table td {
    padding: 2px 3px !important;
    height: 18px !important;
  }

  .acd-bottom-grid p {
    margin: 0 0 4px !important;
  }

  .acd-footer-note {
    margin-top: 6px !important;
  }

  .loa-page .acd-canvas {
    --acd-paper-width: auto !important;
  }

  .cor-container.acd-form,
  .cor-container.acd-form * {
    box-shadow: none !important;
  }

  .cor-container {
    width: 100% !important;
    height: auto !important;
    border: none !important;
    border-radius: 0 !important;
  }

  .acd-inline-input {
    border: 0 !important;
    border-bottom: 1px solid #000 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .acd-inline-input.has-value {
    border-bottom: 1px solid #000 !important;
  }

  .acd-inline-input.has-value.no-print-underline {
    border-bottom: 0 !important;
  }

  .loa-check input[type=checkbox] {
    display: none !important;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  .loa-check {
    position: relative;
    display: inline !important;
    font-weight: 600;
  }

  .loa-check::before {
    content: "( ) ";
  }

  .loa-check[data-print-checked=true]::before {
    content: "(\2713) ";
  }

  .loa-grid-third .acd-inline-input--lg {
    width: calc(100% - 12px) !important;
    max-width: calc(100% - 12px) !important;
    box-sizing: border-box !important;
  }

  /* LOA print should stay readable within reduced margins */

  .loa-form,
  .loa-form * {
    font-size: 14px !important;
    line-height: 1.1 !important;
  }

  .loa-form h2 {
    font-size: 16px !important;
  }

  /* Ensure Change of Grade print remains exactly 16px */

  .cog-form,
  .cog-form * {
    font-size: 16px !important;
    line-height: 1.1 !important;
  }

  .cog-form h2,
  .cog-title-main {
    font-size: 16px !important;
  }

  .cog-line-row--details {
    flex-wrap: wrap !important;
    white-space: normal !important;
    gap: 6px !important;
  }

  .cog-line-row--details .cog-box--sm {
    width: 96px !important;
  }

  .cog-line-row--details .cog-box--prog {
    width: 150px !important;
  }

  .cog-line-row--details .cog-box--course {
    flex: 0 0 170px !important;
    width: 170px !important;
    min-width: 170px !important;
    max-width: 170px !important;
  }

  .cog-line-row--details .cog-course-combo {
    flex: 0 0 210px !important;
    width: 210px !important;
    min-width: 210px !important;
    max-width: 210px !important;
  }

  .cog-line-row--details .cog-box--course-short {
    width: 42px !important;
  }

  .cog-line-row--details .cog-box--course-long {
    width: 168px !important;
  }

  .cog-signatures > div {
    min-width: 0 !important;
  }

  .cog-signatures .cog-line {
    overflow: hidden !important;
  }

  .cog-signatures .acd-inline-input--lg {
    width: calc(100% - 8px) !important;
    max-width: calc(100% - 8px) !important;
    box-sizing: border-box !important;
  }
}

/* Late Leave Appeal */

.loa-form {
  min-height: 320mm;
}

.loa-header,
.cog-header,
.ce-header {
  background: transparent;
  border-bottom: none;
  min-height: 74px;
  padding-top: 8px;
  padding-bottom: 8px;
}

.loa-header-center,
.cog-header-center,
.ce-header-center {
  color: #000;
}

.form-logo-left {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.form-logo-left .cor-logo {
  height: 108px;
  width: auto;
  max-height: 108px;
}

/* If the header area is narrow, allow the logo to reposition above the pyramid */

@media (max-width: 600px) {
  .acd-form .cor-header-left {
    position: relative;
    left: 0;
    top: 0;
    transform: none;
    margin-bottom: 8px;
    justify-content: center;
  }

  .acd-form .cor-header-center {
    position: relative;
    left: 0;
    top: 0;
    transform: none;
    width: 100%;
    max-width: none;
  }
}

.form-header-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  gap: 0;
}

.loa-gov,
.ce-gov {
  margin: 0;
  font-size: 0.58rem;
  font-weight: 600;
  color: #000;
}

.loa-school,
.ce-school,
.cog-school {
  margin: 0;
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 1px;
  color: #000;
}

.loa-office,
.ce-office,
.cog-office {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 800;
  color: #c4d600;
  letter-spacing: 1.8px;
}

.loa-address,
.loa-contact,
.ce-contact {
  margin: 0;
  font-size: 0.52rem;
  font-weight: 600;
  color: #000;
}

.loa-body,
.cog-body,
.ce-body {
  padding: 16px 18px 20px;
  font-size: 0.76rem;
  color: #000;
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}

.loa-top-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.loa-body h2,
.cog-body h2,
.ce-body h2 {
  margin: 4px 0 10px;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.3px;
}

.loa-text-line,
.ce-body p,
.cog-body p {
  margin: 7px 0;
  line-height: 1.35;
}

.loa-first-indent {
  display: inline-block;
  padding-left: 20px;
}

.loa-page .acd-canvas {
  --acd-paper-width: 232mm;
}

.loa-body h2 {
  font-size: 1.55rem;
  white-space: nowrap;
}

.loa-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2px 14px;
  margin: 6px 0 8px;
}

.loa-check {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  line-height: 1.2;
  font-weight: 600;
}

.loa-check input[type=checkbox] {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  width: 12px;
  height: 12px;
  margin: 0;
  border: 1px solid #4c5660;
  background: #fff;
  position: relative;
  display: inline-block;
  vertical-align: middle;
}

.loa-check input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 0;
  width: 4px;
  height: 8px;
  border: solid #1f2a35;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.loa-medical-check {
  padding-left: 18px;
}

.loa-body ul {
  margin: 6px 0 8px 20px;
}

.loa-sign,
.loa-sign-sub,
.loa-student-no {
  text-align: center;
  margin: 0;
}

.loa-student-no {
  margin-top: 6px;
}

.loa-student-divider {
  border-top: 1px dashed #9ea6ae;
  margin: 8px 0 10px;
}

.loa-grid {
  display: grid;
  grid-template-columns: 34.3% 35.8% 29.9%;
  gap: 0;
  border: 1px solid #9ea6ae;
  margin-top: 10px;
}

.loa-box {
  padding: 8px;
  border-right: 1px solid #9ea6ae;
  min-height: 130px;
}

.loa-grid .loa-box:last-child {
  border-right: none;
}

.loa-box p {
  margin: 2px 0;
  line-height: 1.3;
}

.loa-box table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.68rem;
}

.loa-box table td {
  border: 1px solid #b0b7be;
  padding: 3px 4px;
}

.loa-box table td:last-child {
  white-space: nowrap;
}

.loa-box table .loa-check {
  margin-right: 8px;
}

.loa-remark-line {
  margin: 2px 0;
}

.loa-remark-cont {
  padding-left: 24px;
}

.loa-assessed {
  margin-top: 18px !important;
}

.loa-assessor {
  font-weight: 700;
  text-align: center;
}

.loa-grid-second,
.loa-grid-third {
  margin-top: 0;
  border-top: none;
}

.loa-grid-second {
  grid-template-columns: 34.3% 35.8% 29.9%;
}

.loa-grid-third {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.loa-small-sign {
  min-height: 90px;
}

.loa-grid-third .loa-sign-line {
  overflow: hidden;
}

.loa-grid-third .acd-inline-input--lg {
  width: calc(100% - 12px);
  max-width: calc(100% - 12px);
  box-sizing: border-box;
}

.loa-sign-line {
  margin-top: 8px !important;
  min-height: 12px;
}

.loa-sign-row {
  display: flex;
  justify-content: space-between;
  font-weight: 600;
}

.loa-present-box {
  margin-top: 10px;
  border: 1px solid #9ea6ae;
  padding: 8px;
}

.loa-present-divider {
  border-top: 1px dashed #9ea6ae;
  margin-top: 10px;
}

/* Change Grade */

.cog-form {
  min-height: 240mm;
}

.cog-form .cog-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.cog-form .form-header-copy {
  align-items: center;
  text-align: center;
  gap: 2px;
}

.cog-form .loa-school,
.cog-form .cog-title-main,
.cog-form .cog-form-no-header {
  font-family: Arial, Helvetica, sans-serif;
  color: #000;
}

.cog-form .loa-school {
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 1px;
}

.cog-header-right {
  display: none;
}

.cog-form-no-header {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  color: #000;
  white-space: nowrap;
  letter-spacing: 0.15px;
}

.cog-title-main {
  margin-top: 0;
  font-size: 0.9rem;
  font-weight: 700;
  text-align: center;
}

.cog-date {
  text-align: right;
  margin: 4px 0 14px;
}

.cog-line-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  margin: 8px 0;
  white-space: nowrap;
}

.cog-line-row--details {
  flex-wrap: wrap;
  white-space: normal;
}

.cog-box {
  display: inline-flex;
  align-items: center;
  height: 24px;
  border: 1px solid #9ea6ae;
  vertical-align: middle;
  background: #fff;
  padding: 0 6px;
  overflow: visible;
  white-space: nowrap;
  text-overflow: clip;
}

.cog-box--sm {
  width: 108px;
}

.cog-box--md {
  width: 250px;
}

.cog-box--lg {
  width: 340px;
}

.cog-box--xl {
  width: 470px;
}

.cog-box--xxl {
  width: 560px;
}

.cog-box--prog {
  width: 170px;
}

.cog-box--course {
  flex: 1;
  min-width: 220px;
  max-width: 100%;
}

.cog-course-combo {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  white-space: nowrap;
}

.cog-box--course-short {
  width: 54px;
}

.cog-box--course-long {
  width: 185px;
}

.cog-course-combo .cog-box {
  margin: 0;
}

.cog-course-combo .cog-box--course-long {
  border-left: 0;
}

.cog-line-fill {
  display: inline-block;
  flex: 1;
  border-bottom: 1px solid #9ea6ae;
  min-height: 18px;
}

.cog-line-fill--full {
  display: block;
  width: 100%;
  margin-top: 2px;
}

.cog-subtitle {
  font-size: 1.35rem;
  font-weight: 800;
  margin: 16px 0 8px;
}

.cog-computation table {
  width: 56%;
  border-collapse: collapse;
  margin: 4px 0 16px;
}

.cog-computation th,
.cog-computation td {
  border: 1px solid #98a1aa;
  padding: 5px 8px;
  font-size: 0.72rem;
}

.cog-signatures {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.cog-signatures > div {
  min-width: 0;
}

.cog-line {
  min-height: 14px;
  margin: 8px 0 4px;
  overflow: hidden;
}

.cog-signatures .acd-inline-input--lg {
  width: calc(100% - 8px);
  max-width: calc(100% - 8px);
  box-sizing: border-box;
}

.cog-attachment {
  margin-top: 12px;
}

.cog-cut-divider {
  border-top: 1px dashed #9ea6ae;
  margin-top: 12px;
}

/* Cross Enroll */

.ce-form {
  min-height: 320mm;
}

.ce-date {
  text-align: right;
  margin-top: 8px !important;
}

.ce-subject-grid {
  display: grid;
  grid-template-columns: 1fr 0.8fr;
  gap: 36px;
  margin: 10px 0;
}

.ce-subject-grid p {
  margin: 6px 0;
}

.ce-total {
  text-align: center;
  font-size: 0.95rem;
  font-weight: 700;
  margin: 8px 0 !important;
}

.ce-sign-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  margin-top: 12px;
}

.ce-invalid {
  font-size: 1.9rem;
  font-weight: 800;
  line-height: 1.05;
  text-align: center;
  margin: 6px 0 18px !important;
}

.ce-line {
  min-height: 14px;
  margin: 10px 0 4px;
}

.ce-mt {
  margin-top: 22px !important;
}

.ce-print-by {
  margin-top: 20px !important;
  font-size: 0.64rem;
}

/* Completion Grade */

.comp-body {
  min-height: 200mm;
}

.comp-date-wrap {
  text-align: right;
  margin-bottom: 20px;
}

.comp-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  border: 1px solid #9ea6ae;
  padding: 16px;
  margin-bottom: 20px;
}

.comp-info-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.comp-info-row {
  display: flex;
  gap: 12px;
  align-items: baseline;
}

.comp-info-row span:first-child {
  font-weight: 700;
  min-width: 90px;
}

.comp-info-title {
  font-weight: 800;
  font-size: 0.85rem;
  margin: 0 0 10px;
  text-decoration: underline;
}

.comp-cert {
  margin: 20px 0;
  text-align: justify;
  line-height: 1.5;
}

.comp-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0 30px;
}

.comp-table th,
.comp-table td {
  border: 1px solid #9aa1a8;
  padding: 8px;
  text-align: center;
}

.comp-table th {
  background: #f8fafb;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.72rem;
}

.comp-sigs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  margin-top: 40px;
}

.comp-sig-col {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.comp-sig-line {
  text-align: center;
  padding-top: 6px;
  font-weight: 700;
}

.comp-sig-line span {
  font-weight: 400;
  font-size: 0.7rem;
  display: block;
  margin-top: 2px;
}

/* ===== Restored css/styles.css (Admin Tools) ===== */

/* Registrar Admin Tools: Access Management, Master Files, Student Maintenance */

.page-user-accounts .ua-page,
.page-report-access .ra-page,
.page-faculty-file .ff-page,
.page-student-profile .sp-page,
.page-student-grade-file .sgf-page,
.page-bed-days .bd-page,
.page-bed-status .bs-page,
.page-student-update .su-page {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.page-user-accounts .cfg-card,
.page-report-access .cfg-card,
.page-bed-days .bd-card,
.page-bed-status .cfg-card,
.page-student-update .su-card,
.page-student-update .su-left {
  box-shadow: 0 2px 12px rgba(8, 64, 34, 0.04);
}

.page-user-accounts .ua-filter-grid,
.page-bed-status .bs-toolbar,
.page-bed-days .bd-toolbar,
.page-report-access .ra-toolbar,
.page-faculty-file .ff-toolbar,
.page-student-profile .sp-toolbar,
.page-student-grade-file .sgf-toolbar {
  display: grid;
  gap: 10px;
  align-items: flex-end;
}

.page-user-accounts .ua-filter-grid {
  grid-template-columns: repeat(4, minmax(160px, 1fr)) auto auto;
}

.page-bed-status .bs-toolbar {
  grid-template-columns: minmax(240px, 1.6fr) repeat(4, minmax(120px, 1fr)) auto;
}

.page-bed-days .bd-toolbar {
  grid-template-columns: repeat(4, minmax(130px, 1fr)) auto;
}

.page-report-access .ra-toolbar {
  grid-template-columns: minmax(260px, 1.6fr) auto minmax(180px, 1fr);
}

.page-faculty-file .ff-toolbar,
.page-student-profile .sp-toolbar,
.page-student-grade-file .sgf-toolbar {
  grid-template-columns: auto;
}

.page-bed-status .bs-search-wrap,
.page-faculty-file .ff-search-wrap,
.page-student-profile .sp-search-wrap,
.page-student-grade-file .sgf-search-wrap,
.page-report-access .ra-search-wrap {
  min-width: 0;
}

.page-bed-status .bs-field,
.page-bed-days .bd-field,
.page-student-update .su-field,
.page-user-accounts .ua-filter-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.page-bed-status .bs-toolbar-label,
.page-user-accounts .ua-form-label,
.page-user-accounts .ua-selected-label,
.page-user-accounts .ua-table-caption,
.page-report-access .ra-caption,
.page-student-update .su-subtitle,
.page-student-update .su-note,
.page-student-update .su-task-sub,
.page-student-update .su-task-foot,
.page-student-update .su-meta-label {
  font-size: 0.78rem;
  color: #4f6058;
}

.page-user-accounts .ua-table-caption,
.page-report-access .ra-caption {
  font-weight: 500;
}

.page-bed-status .bs-table-head,
.page-faculty-file .ff-table-head,
.page-student-profile .sp-table-head,
.page-student-grade-file .sgf-table-head {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 8px;
}

.page-user-accounts .ua-page-list,
.page-report-access .ra-page-list,
.page-faculty-file .ff-page-list,
.page-student-profile .sp-page-list,
.page-student-grade-file .sgf-page-list,
.page-bed-days .bd-page-list,
.page-bed-status .bs-page-list {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.page-user-accounts .ua-page-btn,
.page-user-accounts .ua-page-num,
.page-report-access .ra-page-btn,
.page-report-access .ra-page-num,
.page-faculty-file .ff-page-btn,
.page-faculty-file .ff-page-num,
.page-student-profile .sp-page-btn,
.page-student-profile .sp-page-num,
.page-student-grade-file .sgf-page-btn,
.page-student-grade-file .sgf-page-num,
.page-bed-days .bd-page-btn,
.page-bed-days .bd-page-num,
.page-bed-status .bs-page-btn,
.page-bed-status .bs-page-num {
  min-width: 32px;
  height: 32px;
  border: 1px solid #ced7d2;
  border-radius: 8px;
  background: #fff;
  color: #2d4b40;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  padding: 0 8px;
}

.page-user-accounts .ua-page-btn,
.page-report-access .ra-page-btn,
.page-faculty-file .ff-page-btn,
.page-student-profile .sp-page-btn,
.page-student-grade-file .sgf-page-btn,
.page-bed-days .bd-page-btn,
.page-bed-status .bs-page-btn {
  font-size: 14px;
  font-weight: 800;
}

.page-user-accounts .ua-page-btn:hover:not(:disabled),
.page-user-accounts .ua-page-num:hover,
.page-report-access .ra-page-btn:hover:not(:disabled),
.page-report-access .ra-page-num:hover,
.page-faculty-file .ff-page-btn:hover:not(:disabled),
.page-faculty-file .ff-page-num:hover,
.page-student-profile .sp-page-btn:hover:not(:disabled),
.page-student-profile .sp-page-num:hover,
.page-student-grade-file .sgf-page-btn:hover:not(:disabled),
.page-student-grade-file .sgf-page-num:hover,
.page-bed-days .bd-page-btn:hover:not(:disabled),
.page-bed-days .bd-page-num:hover,
.page-bed-status .bs-page-btn:hover:not(:disabled),
.page-bed-status .bs-page-num:hover {
  background: #f2f6f4;
  border-color: #b7c8bf;
  color: #27453a;
}

.page-user-accounts .ua-page-btn:disabled,
.page-report-access .ra-page-btn:disabled,
.page-faculty-file .ff-page-btn:disabled,
.page-student-profile .sp-page-btn:disabled,
.page-student-grade-file .sgf-page-btn:disabled,
.page-bed-days .bd-page-btn:disabled,
.page-bed-status .bs-page-btn:disabled {
  opacity: 0.45;
}

.page-user-accounts .ua-page-num.active,
.page-report-access .ra-page-num.active,
.page-faculty-file .ff-page-num.active,
.page-student-profile .sp-page-num.active,
.page-student-grade-file .sgf-page-num.active,
.page-bed-days .bd-page-num.active,
.page-bed-status .bs-page-num.active {
  background: #0f7b43;
  border-color: #0f7b43;
  color: #fff;
}

.page-user-accounts .ua-table-meta,
.page-report-access .ra-table-meta,
.page-faculty-file .ff-pager-row,
.page-student-profile .sp-pager-row,
.page-student-grade-file .sgf-pager-row,
.page-bed-days .bd-pager-row,
.page-bed-status .bs-pager-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 2px 2px;
}

.page-faculty-file .ff-pager-row,
.page-student-profile .sp-pager-row,
.page-student-grade-file .sgf-pager-row,
.page-bed-days .bd-pager-row,
.page-bed-status .bs-pager-row {
  justify-content: flex-end;
}

.page-user-accounts .ua-clear-btn {
  border: 1px solid #0f7b43;
  background: #0f7b43;
  color: #fff;
  border-radius: 8px;
  min-height: 38px;
  padding: 0 14px;
  font-weight: 600;
}

.page-user-accounts .ua-clear-btn:hover {
  background: #0c6a39;
  border-color: #0c6a39;
}

.page-user-accounts .ua-clear-btn:active {
  background: #0a5c31;
  border-color: #0a5c31;
}

.page-user-accounts .ua-clear-btn:focus-visible {
  outline: 2px solid rgba(15, 123, 67, 0.32);
  outline-offset: 2px;
}

.page-user-accounts .ua-selected-user {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}

.page-user-accounts .ua-selected-item {
  border: 1px solid #d9e4de;
  border-radius: 9px;
  padding: 9px 10px;
  background: #fbfdfc;
}

.page-user-accounts .ua-selected-value {
  display: block;
  margin-top: 4px;
  font-size: 0.9rem;
  color: #173a2b;
  font-weight: 600;
}

.page-user-accounts .ua-form-grid {
  display: grid;
  grid-template-columns: 170px minmax(260px, 420px) minmax(220px, 1fr);
  gap: 10px;
  align-items: center;
}

.page-user-accounts .ua-form-grid .app-filter-input,
.page-user-accounts .ua-form-grid .ua-password-wrap {
  max-width: 420px;
}

.page-user-accounts .ua-form-note {
  font-size: 0.74rem;
  color: #63736c;
}

.page-user-accounts .ua-password-wrap {
  position: relative;
  width: 100%;
}

.page-user-accounts .ua-password-wrap .app-filter-input {
  width: 100%;
  padding-right: 40px;
}

.page-user-accounts .ua-pass-toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: transparent;
  color: #4f6058;
  width: 28px;
  height: 28px;
}

.page-user-accounts .ua-pass-toggle .ua-eye-off {
  display: none;
}

.page-user-accounts .ua-pass-toggle.is-visible .ua-eye-on {
  display: none;
}

.page-user-accounts .ua-pass-toggle.is-visible .ua-eye-off {
  display: inline;
}

.page-user-accounts .ua-status-badge {
  display: inline-block;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 700;
}

.page-user-accounts .ua-status-active {
  background: #e8f8ef;
  color: #0f7b43;
}

.page-user-accounts .ua-status-inactive {
  background: #fdeceb;
  color: #c0392b;
}

.page-user-accounts .ua-selected-row {
  background: #f4faf7;
}

.page-user-accounts .ua-bottom-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}

.page-report-access .ra-type-filter,
.page-report-access .ra-modal-head,
.page-report-access .ra-modal-tools,
.page-report-access .ra-group-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

.page-report-access .ra-modal-box {
  width: min(1240px, 97vw);
  max-width: min(1240px, 97vw);
  max-height: 92vh;
  padding: 22px 24px 18px;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
}

.page-report-access .ra-modal-user {
  font-size: 0.79rem;
  color: #50635a;
  font-weight: 600;
}

.page-report-access .ra-section-title {
  margin: 0;
  color: #1f4d38;
  font-size: 0.88rem;
  font-weight: 700;
}

.page-report-access .ra-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(320px, 1fr));
  gap: 12px;
  margin-top: 12px;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  align-content: start;
  padding-right: 4px;
}

.page-report-access .ra-group-head {
  align-items: flex-start;
}

.page-report-access .ra-group {
  border: 1px solid #dce7e1;
  border-radius: 10px;
  padding: 10px;
  background: #fbfdfc;
  min-height: 0;
}

.page-report-access .ra-group-title h4 {
  margin: 0;
  color: #0f5132;
  font-size: 0.84rem;
  font-weight: 700;
}

.page-report-access .ra-group-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 8px;
  max-height: 260px;
  overflow: auto;
  padding-right: 6px;
}

.page-report-access .ra-check {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  color: #2f4e40;
}

.page-report-access .ra-check-master {
  font-weight: 700;
  color: #1f4d38;
}

.page-report-access .ra-action-btn,
.page-bed-status .bs-export-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #cfe0d7;
  background: #fff;
  color: #1f4d38;
  border-radius: 8px;
  min-height: 34px;
  min-width: 34px;
  padding: 0 10px;
}

.page-report-access .ra-action-btn:hover,
.page-bed-status .bs-export-btn:hover {
  background: #f4faf7;
  border-color: #9ec7b3;
}

.page-report-access .ra-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #e4ece7;
  flex-shrink: 0;
}

.page-report-access .ra-modal-head,
.page-report-access .ra-modal-tools {
  flex-wrap: wrap;
}

@media (max-width: 1180px) {
  .page-report-access .ra-modal-box {
    width: min(980px, 96vw);
    max-width: min(980px, 96vw);
  }

  .page-report-access .ra-groups {
    grid-template-columns: 1fr;
  }
}

.page-faculty-file .ff-status {
  display: inline-block;
  min-width: 72px;
  text-align: center;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 0.74rem;
  font-weight: 700;
}

.page-faculty-file .ff-status-active {
  background: #e8f8ef;
  color: #0f7b43;
}

.page-faculty-file .ff-status-inactive {
  background: #fdeceb;
  color: #c0392b;
}

#ffTable .apst-dropdown,
#spTable .apst-dropdown,
#sgfTable .apst-dropdown,
#bdTable .apst-dropdown,
#bsTable .apst-dropdown {
  position: fixed;
}

#ffTable td:last-child .apst-action-btn,
#spTable td:last-child .apst-action-btn,
#sgfTable td:last-child .apst-action-btn,
#bdTable td:last-child .apst-action-btn,
#bsTable td:last-child .apst-action-btn,
#raTable td:last-child .ra-action-btn {
  margin: 0 auto;
}

.page-report-access .ra-toolbar {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 10px;
}

.page-report-access .ra-table-meta {
  justify-content: flex-end;
  gap: 14px;
}

.page-report-access .ra-page-list {
  margin-left: auto;
  margin-right: 0;
}

.page-report-access .ra-search-wrap {
  flex: 1 1 320px;
  min-width: 260px;
}

.page-report-access #raSearchBtn {
  margin-left: auto;
}

.page-report-access .ra-type-filter {
  margin-left: 0;
  min-width: 210px;
}

.page-faculty-file .ff-toolbar,
.page-student-profile .sp-toolbar,
.page-student-grade-file .sgf-toolbar {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 8px;
}

.page-faculty-file .ff-search-wrap,
.page-student-profile .sp-search-wrap,
.page-student-grade-file .sgf-search-wrap {
  flex: 1 1 420px;
}

.page-bed-status .pf-search-wrap,
.page-report-access .pf-search-wrap,
.page-faculty-file .pf-search-wrap,
.page-student-profile .pf-search-wrap,
.page-student-grade-file .pf-search-wrap {
  max-width: none;
  min-width: 360px;
}

.page-bed-status .pf-search-input,
.page-report-access .pf-search-input,
.page-faculty-file .pf-search-input,
.page-student-profile .pf-search-input,
.page-student-grade-file .pf-search-input {
  min-height: 38px;
  font-size: 0.85rem;
  line-height: 1.2;
}

.page-faculty-file #ffSearchBtn,
.page-student-profile #spSearchBtn,
.page-student-grade-file #sgfSearchBtn {
  margin-left: 0;
}

.page-bed-status .bs-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
}

.page-bed-status .bs-search-wrap {
  order: 1;
  flex: 1 1 420px;
}

.page-bed-status .bs-field {
  order: 2;
  flex: 0 1 130px;
}

.page-bed-status #bsSearchBtn {
  order: 3;
  margin-left: auto;
}

.page-bed-status .bs-filter-foot {
  padding-top: 8px;
}

.page-bed-status .bs-filter-checks,
.page-student-update .su-rule-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.page-bed-status .bs-check,
.page-student-update .su-checkline,
.page-student-update .su-danger-note {
  font-size: 0.81rem;
  color: #2f4e40;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.page-bed-status .bs-table-export {
  position: relative;
}

.page-bed-status .bs-export-caret {
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
}

.page-bed-status .bs-export-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  border: 1px solid #d8e4dd;
  border-radius: 9px;
  background: #fff;
  min-width: 150px;
  box-shadow: 0 10px 28px rgba(18, 49, 34, 0.12);
  display: none;
  z-index: 12;
}

.page-bed-status .bs-export-menu.open {
  display: block;
}

.page-bed-status .bs-export-menu button {
  width: 100%;
  border: none;
  background: transparent;
  text-align: left;
  padding: 9px 11px;
  font-size: 0.8rem;
  color: #1f4d38;
}

.page-bed-status .bs-export-menu button:hover {
  background: #f4faf7;
}

.page-bed-status .bs-export-btn {
  background: #006837;
  border-color: #006837;
  color: #ffffff;
}

.page-bed-status .bs-export-btn:hover {
  background: #005a2e;
  border-color: #005a2e;
  color: #ffffff;
}

.page-student-update .su-page {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 12px;
}

.page-student-update .su-left,
.page-student-update .su-op-card {
  border: 1px solid #d8e4dd;
  border-radius: 10px;
  background: #fff;
  padding: 12px;
}

.page-student-update .su-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.page-student-update .su-title,
.page-student-update .su-task-title,
.page-student-update .su-section-title,
.page-student-update .su-rule-title {
  margin: 0;
  color: #0f5132;
  font-weight: 700;
}

.page-student-update .su-title {
  font-size: 0.97rem;
}

.page-student-update .su-task-title {
  font-size: 0.92rem;
}

.page-student-update .su-section-title {
  margin-top: 12px;
  margin-bottom: 8px;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.page-student-update .su-grid-4,
.page-student-update .su-grid-5 {
  display: grid;
  gap: 10px;
}

.page-student-update .su-grid-4 {
  grid-template-columns: repeat(4, minmax(120px, 1fr));
}

.page-student-update .su-grid-5 {
  grid-template-columns: repeat(5, minmax(110px, 1fr));
}

.page-student-update .su-rule-box {
  border: 1px dashed #c4d7cc;
  border-radius: 8px;
  background: #fbfdfc;
  padding: 10px;
  margin-top: 12px;
}

.page-student-update .su-danger-note {
  margin-top: 10px;
}

.page-student-update .su-save-wrap {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}

.page-student-update .su-right {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.page-student-update .su-task-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.page-student-update .su-meta-item {
  border: 1px solid #e0e9e3;
  border-radius: 8px;
  padding: 8px;
  background: #fbfdfc;
}

.page-student-update .su-meta-value {
  color: #1f4d38;
  font-size: 0.82rem;
  font-weight: 600;
}

.page-student-update .su-progress {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  color: #5f7268;
}

.page-student-update .su-progress-icon {
  width: 20px;
  height: 20px;
}

.page-student-update .su-progress-icon svg {
  width: 100%;
  height: 100%;
}

.page-student-update .su-progress-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #c9d8d0;
}

.page-student-update .su-progress.running .su-progress-dot {
  background: #0f7b43;
  animation: suPulse 1s ease-in-out infinite;
}

@keyframes suPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }

  50% {
    transform: scale(1.45);
    opacity: 0.55;
  }
}

.page-student-update .su-task-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}

.page-student-update .su-task-actions .pf-btn-new,
.page-student-update .su-task-actions .req-btn-cancel {
  min-width: 110px;
}

@media (max-width: 1180px) {
  .page-user-accounts .ua-filter-grid {
    grid-template-columns: repeat(2, minmax(150px, 1fr));
  }

  .page-student-update .su-page {
    grid-template-columns: 1fr;
  }

  .page-student-update .su-grid-4,
  .page-student-update .su-grid-5 {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
  }
}

@media (max-width: 900px) {
  .page-user-accounts .ua-filter-grid,
  .page-bed-days .bd-toolbar,
  .page-faculty-file .ff-toolbar,
  .page-student-profile .sp-toolbar,
  .page-student-grade-file .sgf-toolbar {
    grid-template-columns: 1fr;
  }

  .page-user-accounts .ua-selected-user,
  .page-user-accounts .ua-form-grid,
  .page-report-access .ra-groups,
  .page-student-update .su-grid-4,
  .page-student-update .su-grid-5,
  .page-student-update .su-task-meta {
    grid-template-columns: 1fr;
  }

  .page-user-accounts .ua-bottom-actions,
  .page-report-access .ra-modal-actions,
  .page-student-update .su-task-actions,
  .page-student-update .su-save-wrap {
    flex-direction: column;
    align-items: stretch;
  }

  .page-user-accounts .ua-bottom-actions .req-btn-cancel,
  .page-user-accounts .ua-bottom-actions .req-btn-save,
  .page-report-access .ra-modal-actions .req-btn-cancel,
  .page-report-access .ra-modal-actions .req-btn-save,
  .page-student-update .su-task-actions .pf-btn-new,
  .page-student-update .su-task-actions .req-btn-cancel,
  .page-student-update .su-save-wrap .pf-btn-new {
    width: 100%;
  }

  .page-user-accounts .ua-table-meta,
  .page-report-access .ra-table-meta,
  .page-faculty-file .ff-pager-row,
  .page-student-profile .sp-pager-row,
  .page-student-grade-file .sgf-pager-row,
  .page-bed-days .bd-pager-row,
  .page-bed-status .bs-pager-row {
    justify-content: flex-end;
  }

  .page-user-accounts .ua-table-meta,
  .page-report-access .ra-table-meta {
    justify-content: center;
  }

  .page-report-access .ra-table-meta {
    justify-content: flex-end;
  }

  .page-bed-status .bs-search-wrap,
  .page-bed-status #bsSearchBtn,
  .page-bed-status .bs-field {
    order: initial;
    flex: 1 1 100%;
  }

  .page-report-access .ra-search-wrap,
  .page-report-access .ra-type-filter,
  .page-faculty-file .ff-search-wrap,
  .page-student-profile .sp-search-wrap,
  .page-student-grade-file .sgf-search-wrap {
    min-width: 0;
    flex: 1 1 100%;
  }

  .page-bed-status .pf-search-wrap,
  .page-report-access .pf-search-wrap,
  .page-faculty-file .pf-search-wrap,
  .page-student-profile .pf-search-wrap,
  .page-student-grade-file .pf-search-wrap {
    min-width: 0;
  }

  .page-report-access .ra-toolbar,
  .page-faculty-file .ff-toolbar,
  .page-student-profile .sp-toolbar,
  .page-student-grade-file .sgf-toolbar {
    flex-wrap: wrap;
  }

  .page-report-access .ra-modal-box {
    width: 96vw;
    max-width: 96vw;
    max-height: 94vh;
    padding: 18px 14px 14px;
  }

  .page-report-access .ra-group-list {
    max-height: 220px;
  }

  .page-student-profile .sp-toolbar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    width: 100%;
  }

  .page-student-profile .sp-search-wrap,
  .page-student-profile #spSearchBtn {
    width: 100%;
    flex: 1 1 100%;
  }

  .page-student-profile .sp-search-wrap .pf-search-wrap {
    width: 100%;
  }

  .page-student-profile .app-table-wrap {
    overflow-x: auto;
    overflow-y: visible;
  }

  .page-student-profile #spTable {
    min-width: 980px;
  }

  .page-student-profile #spTable th,
  .page-student-profile #spTable td {
    white-space: nowrap;
  }

  .page-report-access #raSearchBtn,
  .page-faculty-file #ffSearchBtn,
  .page-student-profile #spSearchBtn,
  .page-student-grade-file #sgfSearchBtn,
  .page-faculty-file #ffNewRecordBtn,
  .page-student-profile #spNewRecordBtn,
  .page-student-grade-file #sgfNewRecordBtn {
    width: 100%;
  }

  .page-report-access .ra-type-filter {
    margin-left: 0;
  }

  .page-faculty-file .ff-table-head,
  .page-student-profile .sp-table-head,
  .page-student-grade-file .sgf-table-head {
    align-items: stretch;
  }
}

.page-student-profile-config .spc-page {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.page-student-profile-config .spc-head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.page-student-profile-config .spc-back-link {
  text-decoration: none;
  color: #5e666f !important;
}

.page-student-profile-config .spc-back-link:hover,
.page-student-profile-config .spc-back-link:focus {
  text-decoration: none;
  color: #4f5861 !important;
  background: #eef1f4;
  border-color: #d0d6dd;
}

.page-student-profile-config .spc-back-link:visited {
  color: #5e666f !important;
}

.page-student-profile-config .spc-view-form-btn {
  font-size: 0.8rem;
  padding: 7px 12px;
}

.page-student-profile-config .spc-card {
  padding: 10px;
}

.page-student-profile-config .app-filter-label {
  white-space: normal;
  line-height: 1.2;
  display: block;
  margin-bottom: 4px;
}

.page-student-profile-config .app-filter-input {
  min-height: 36px;
  font-size: 0.82rem;
}

.page-student-profile-config .spc-grid-top,
.page-student-profile-config .spc-grid-contact,
.page-student-profile-config .spc-grid-birth,
.page-student-profile-config .spc-grid-address,
.page-student-profile-config .spc-grid-acad,
.page-student-profile-config .spc-grid-status,
.page-student-profile-config .spc-grid-transfer {
  display: grid;
  gap: 8px 10px;
  margin-bottom: 8px;
}

.page-student-profile-config .spc-grid-top {
  grid-template-columns: repeat(5, minmax(120px, 1fr)) minmax(140px, 170px);
}

.page-student-profile-config .spc-grid-contact,
.page-student-profile-config .spc-grid-birth,
.page-student-profile-config .spc-grid-address {
  grid-template-columns: repeat(5, minmax(120px, 1fr));
}

.page-student-profile-config .spc-grid-acad,
.page-student-profile-config .spc-grid-status {
  grid-template-columns: repeat(4, minmax(140px, 1fr));
}

.page-student-profile-config .spc-grid-transfer {
  grid-template-columns: minmax(190px, 2fr) minmax(130px, 1fr) minmax(190px, 2fr);
}

.page-student-profile-config .spc-field {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.page-student-profile-config .spc-field-grow {
  min-width: 0;
}

.page-student-profile-config .spc-field-sm {
  max-width: 120px;
}

.page-student-profile-config .spc-photo-box {
  border: 1px solid #d8e4dd;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  color: #9aa7a0;
  font-size: 0.76rem;
  min-height: 104px;
  padding: 6px;
  cursor: pointer;
  overflow: hidden;
}

.page-student-profile-config .spc-photo-input {
  display: none;
}

.page-student-profile-config .spc-photo-preview {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 6px;
}

.page-student-profile-config .spc-photo-icon {
  opacity: 0.8;
}

.page-student-profile-config .spc-checkline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #5d6b65;
  font-size: 0.74rem;
  margin-top: 8px;
}

.page-student-profile-config .spc-divider {
  border-top: 1px solid #d8e4dd;
  margin: 6px 0;
}

.page-student-profile-config .spc-transfer-row {
  margin: 2px 0 6px;
}

.page-student-profile-config .spc-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 4px;
}

@media (max-width: 1100px) {
  .page-student-profile-config .spc-grid-top,
  .page-student-profile-config .spc-grid-contact,
  .page-student-profile-config .spc-grid-birth,
  .page-student-profile-config .spc-grid-address,
  .page-student-profile-config .spc-grid-acad,
  .page-student-profile-config .spc-grid-status,
  .page-student-profile-config .spc-grid-transfer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-student-profile-config .spc-field-grow {
    grid-column: span 1;
  }

  .page-student-profile-config .spc-photo-box {
    min-height: 92px;
  }
}

@media (max-width: 760px) {
  .page-student-profile-config .spc-head-row {
    flex-direction: column;
    align-items: stretch;
  }

  .page-student-profile-config .spc-view-form-btn,
  .page-student-profile-config .spc-back-link,
  .page-student-profile-config .spc-actions .pf-btn-new {
    width: 100%;
  }

  .page-student-profile-config .spc-grid-top,
  .page-student-profile-config .spc-grid-contact,
  .page-student-profile-config .spc-grid-birth,
  .page-student-profile-config .spc-grid-address,
  .page-student-profile-config .spc-grid-acad,
  .page-student-profile-config .spc-grid-status,
  .page-student-profile-config .spc-grid-transfer {
    grid-template-columns: 1fr;
  }
}

.page-faculty-file-config .ffc-page {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.page-faculty-file-config .ffc-head-row {
  display: flex;
  justify-content: flex-start;
}

.page-faculty-file-config .ffc-back-link {
  text-decoration: none;
  color: #5e666f !important;
}

.page-faculty-file-config .ffc-back-link:hover,
.page-faculty-file-config .ffc-back-link:focus {
  text-decoration: none;
  color: #4f5861 !important;
  background: #eef1f4;
  border-color: #d0d6dd;
}

.page-faculty-file-config .ffc-back-link:visited {
  color: #5e666f !important;
}

.page-faculty-file-config .ffc-card {
  padding: 12px;
}

.page-faculty-file-config .ffc-section-title,
.page-faculty-file-config .ffc-subtitle {
  color: #0b5c36;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 0.9rem;
  line-height: 1.2;
  margin: 4px 0 10px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.page-faculty-file-config .ffc-section-title::before,
.page-faculty-file-config .ffc-subtitle::before {
  content: "";
  width: 4px;
  height: 14px;
  border-radius: 999px;
  background: #0f7b43;
  box-shadow: 0 0 0 1px rgba(15, 123, 67, 0.18);
}

.page-faculty-file-config .ffc-subtitle {
  margin-top: 12px;
}

.page-faculty-file-config .ffc-grid-top,
.page-faculty-file-config .ffc-grid-profile,
.page-faculty-file-config .ffc-grid-main,
.page-faculty-file-config .ffc-grid-edu {
  display: grid;
  gap: 9px 10px;
  margin-bottom: 10px;
}

.page-faculty-file-config .ffc-grid-top {
  grid-template-columns: minmax(240px, 2.1fr) minmax(150px, 1fr) minmax(150px, 1fr);
  align-items: flex-end;
}

.page-faculty-file-config .ffc-grid-top .app-filter-input,
.page-faculty-file-config .ffc-grid-top .app-filter-select,
.page-faculty-file-config .ffc-grid-main .app-filter-input,
.page-faculty-file-config .ffc-grid-main .app-filter-select {
  width: 100%;
}

.page-faculty-file-config .ffc-grid-main {
  grid-template-columns: repeat(5, minmax(120px, 1fr));
}

.page-faculty-file-config .ffc-grid-profile {
  grid-template-columns: repeat(3, minmax(180px, 1fr));
}

.page-faculty-file-config .ffc-grid-edu {
  grid-template-columns: 1fr 1.8fr 1fr 1fr;
}

.page-faculty-file-config .ffc-grid-personal {
  display: grid;
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  gap: 9px 10px;
  margin-bottom: 10px;
}

.page-faculty-file-config .ffc-grid-parent {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  gap: 9px 10px;
  margin-bottom: 10px;
}

.page-faculty-file-config .ffc-field {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.page-faculty-file-config .ffc-field-grow {
  grid-column: span 2;
}

.page-faculty-file-config .ffc-field .app-filter-input {
  min-height: 36px;
  font-size: 0.82rem;
}

.page-faculty-file-config .ffc-field .app-filter-select {
  min-height: 36px;
  font-size: 0.82rem;
}

.page-faculty-file-config .ffc-divider {
  border-top: 1px solid #deebe4;
  margin: 8px 0 10px;
}

.page-faculty-file-config .ffc-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  margin-bottom: 6px;
}

.page-faculty-file-config .ffc-list-title {
  margin: 0;
  color: #0b5c36;
  font-weight: 800;
  letter-spacing: 0.085em;
  text-transform: uppercase;
  font-size: 0.83rem;
  line-height: 1.2;
}

.page-faculty-file-config .ffc-add-btn {
  min-width: 78px;
  padding: 6px 10px;
  font-size: 0.76rem;
}

.page-faculty-file-config .ffc-table-wrap {
  margin-top: 4px;
  margin-bottom: 8px;
}

.page-faculty-file-config .ffc-table thead th,
.page-faculty-file-config .ffc-table tbody td {
  font-size: 0.78rem;
}

.page-faculty-file-config .ffc-table td:last-child .apst-action-btn {
  margin: 0 auto;
}

.page-faculty-file-config .ffc-table .apst-dropdown {
  position: fixed;
}

.page-faculty-file-config .ffc-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 10px;
}

@media (max-width: 980px) {
  .page-faculty-file-config .ffc-grid-top,
  .page-faculty-file-config .ffc-grid-profile,
  .page-faculty-file-config .ffc-grid-main,
  .page-faculty-file-config .ffc-grid-edu,
  .page-faculty-file-config .ffc-grid-personal,
  .page-faculty-file-config .ffc-grid-parent {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-faculty-file-config .ffc-field-grow {
    grid-column: span 1;
  }
}

@media (max-width: 760px) {
  .page-faculty-file-config .ffc-grid-top,
  .page-faculty-file-config .ffc-grid-profile,
  .page-faculty-file-config .ffc-grid-main,
  .page-faculty-file-config .ffc-grid-edu,
  .page-faculty-file-config .ffc-grid-personal,
  .page-faculty-file-config .ffc-grid-parent {
    grid-template-columns: 1fr;
  }

  .page-faculty-file-config .ffc-list-head {
    flex-direction: column;
    align-items: stretch;
  }

  .page-faculty-file-config .ffc-add-btn {
    width: 100%;
  }

  .page-faculty-file-config .ffc-actions {
    flex-direction: column;
  }

  .page-faculty-file-config .ffc-actions .pf-btn-new,
  .page-faculty-file-config .ffc-actions .req-btn-cancel {
    width: 100%;
  }
}

/* Unified registrar total row style for all tables */

.registrar-body .app-table tr[class$=-total-row] td,
.registrar-body .app-table tr[class$=-totals-row] td,
.registrar-body .app-table tr[class*=-total-][class$=-row] td,
.registrar-body .cfg-table tr[class$=-total-row] td,
.registrar-body .cfg-table tr[class$=-totals-row] td,
.registrar-body .cfg-table tr[class*=-total-][class$=-row] td,
.registrar-body .student-table tr[class$=-total-row] td,
.registrar-body .student-table tr[class$=-totals-row] td,
.registrar-body .student-table tr[class*=-total-][class$=-row] td,
.registrar-body .registrar-table tr[class$=-total-row] td,
.registrar-body .registrar-table tr[class$=-totals-row] td,
.registrar-body .registrar-table tr[class*=-total-][class$=-row] td {
  background: #f8fcf9 !important;
  color: #006837 !important;
  font-size: 0.82rem;
  font-weight: 700;
  border-top: 1px solid #dce7e1;
  text-align: left !important;
  white-space: nowrap;
  cursor: default;
}

.registrar-body .app-table [class$=-total-cell],
.registrar-body .cfg-table [class$=-total-cell],
.registrar-body .student-table [class$=-total-cell],
.registrar-body .registrar-table [class$=-total-cell] {
  text-align: left !important;
  white-space: nowrap;
}

.registrar-body .page-alumni-tracker .at-total-cell {
  display: table-cell !important;
  text-align: left !important;
}

.registrar-body .page-alumni-tracker .at-total-row td,
.registrar-body .page-alumni-tracker .at-total-cell,
.registrar-body.page-services-class-list .svc-total-row td,
.registrar-body.page-services-class-list .svc-total-cell,
.registrar-body .page-services-faculty-loads .rfl-list-total-row td,
.registrar-body .page-services-faculty-loads .rfl-totals-row td,
.registrar-body .page-services-faculty-loads .rfl-list-total-cell,
.registrar-body .page-services-faculty-loads .rfl-total-cell,
.registrar-body .page-student-discipline .sd-total-row td,
.registrar-body .page-student-discipline .sd-total-cell {
  color: #006837 !important;
  text-align: left !important;
  background: #f8fcf9 !important;
  display: table-cell !important;
}

.registrar-body .page-services-faculty-loads .rfl-footer {
  justify-content: flex-end !important;
}

.registrar-body .page-services-faculty-loads .rfl-pagination {
  width: 100%;
  display: flex;
  justify-content: flex-end;
}

.registrar-body .page-services-faculty-loads .rfl-pagination nav,
.registrar-body .page-services-faculty-loads .rfl-pagination .pagination {
  margin: 0;
}

.registrar-body .app-table-pager {
  margin-top: 12px;
  display: flex;
  justify-content: flex-end;
}

.registrar-body .app-table-pager nav,
.registrar-body .app-table-pager .pagination {
  margin: 0;
}

.page-user-accounts .ua-table-meta {
  flex-wrap: nowrap;
}

.page-user-accounts .ua-table-meta .app-table-pager {
  margin-top: 0;
  margin-left: auto;
}

.registrar-body .pagination {
  gap: 6px;
}

.registrar-body .pagination .page-item .page-link {
  min-width: 32px;
  height: 32px;
  border: 1px solid #ced7d2;
  border-radius: 8px;
  background: #ffffff;
  color: #2d4b40;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
}

.registrar-body .pagination .page-item .page-link:hover {
  background: #f2f6f4;
  border-color: #b7c8bf;
  color: #27453a;
}

.registrar-body .pagination .page-item.active .page-link,
.registrar-body .pagination .page-item.active .page-link:hover {
  background: #0f7b43;
  border-color: #0f7b43;
  color: #ffffff;
}

.registrar-body .pagination .page-item.disabled .page-link {
  opacity: 0.45;
  background: #ffffff;
  border-color: #ced7d2;
  color: #2d4b40;
}

.registrar-body .app-table tr[class$=-total-row]:hover,
.registrar-body .app-table tr[class$=-totals-row]:hover,
.registrar-body .app-table tr[class*=-total-][class$=-row]:hover,
.registrar-body .cfg-table tr[class$=-total-row]:hover,
.registrar-body .cfg-table tr[class$=-totals-row]:hover,
.registrar-body .cfg-table tr[class*=-total-][class$=-row]:hover,
.registrar-body .student-table tr[class$=-total-row]:hover,
.registrar-body .student-table tr[class$=-totals-row]:hover,
.registrar-body .student-table tr[class*=-total-][class$=-row]:hover,
.registrar-body .registrar-table tr[class$=-total-row]:hover,
.registrar-body .registrar-table tr[class$=-totals-row]:hover,
.registrar-body .registrar-table tr[class*=-total-][class$=-row]:hover {
  background-color: transparent !important;
}

/* Canonical lock for registrar total rows (prevents style regressions) */

.registrar-body tr.pf-total-row td,
.registrar-body tr.sf-total-row td,
.registrar-body tr.at-total-row td,
.registrar-body tr.se-total-row td,
.registrar-body tr.se-total-units-row td,
.registrar-body tr.sd-total-row td,
.registrar-body tr.svc-total-row td,
.registrar-body tr.rfl-list-total-row td,
.registrar-body tr.rfl-totals-row td,
.registrar-body tr.ff-total-row td,
.registrar-body tr.sp-total-row td,
.registrar-body tr.sgf-total-row td,
.registrar-body tr.bd-total-row td,
.registrar-body tr.bs-total-row td {
  background: #f8fcf9 !important;
  color: #006837 !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  border-top: 1px solid #dce7e1 !important;
  text-align: left !important;
  white-space: nowrap !important;
  display: table-cell !important;
}

.registrar-body .pf-total-cell,
.registrar-body .sf-total-cell,
.registrar-body .at-total-cell,
.registrar-body .se-total-cell,
.registrar-body .se-units-cell,
.registrar-body .sd-total-cell,
.registrar-body .svc-total-cell,
.registrar-body .rfl-list-total-cell,
.registrar-body .rfl-total-cell,
.registrar-body .ff-total-cell,
.registrar-body .sp-total-cell,
.registrar-body .sgf-total-cell,
.registrar-body .bd-total-cell,
.registrar-body .bs-total-cell {
  color: #006837 !important;
  text-align: left !important;
  white-space: nowrap !important;
  font-weight: 700 !important;
  display: table-cell !important;
}

.registrar-body tr.pf-total-row:hover,
.registrar-body tr.sf-total-row:hover,
.registrar-body tr.at-total-row:hover,
.registrar-body tr.se-total-row:hover,
.registrar-body tr.se-total-units-row:hover,
.registrar-body tr.sd-total-row:hover,
.registrar-body tr.svc-total-row:hover,
.registrar-body tr.rfl-list-total-row:hover,
.registrar-body tr.rfl-totals-row:hover,
.registrar-body tr.ff-total-row:hover,
.registrar-body tr.sp-total-row:hover,
.registrar-body tr.sgf-total-row:hover,
.registrar-body tr.bd-total-row:hover,
.registrar-body tr.bs-total-row:hover {
  background-color: transparent !important;
}

/* Consistent total typography: both label and value are bold on all pages */

.registrar-body tr[class*=total][class$=-row] td,
.registrar-body .pf-total-cell,
.registrar-body .sf-total-cell,
.registrar-body .at-total-cell,
.registrar-body .se-total-cell,
.registrar-body .se-units-cell,
.registrar-body .sd-total-cell,
.registrar-body .svc-total-cell,
.registrar-body .rfl-list-total-cell,
.registrar-body .rfl-total-cell,
.registrar-body .ff-total-cell,
.registrar-body .sp-total-cell,
.registrar-body .sgf-total-cell,
.registrar-body .bd-total-cell,
.registrar-body .bs-total-cell,
.registrar-body .cr-total-cell {
  color: #006837 !important;
  font-weight: 700 !important;
}

.registrar-body tr[class*=total][class$=-row] td strong,
.registrar-body .pf-total-cell strong,
.registrar-body .sf-total-cell strong,
.registrar-body .at-total-cell strong,
.registrar-body .se-total-cell strong,
.registrar-body .se-units-cell strong,
.registrar-body .sd-total-cell strong,
.registrar-body .svc-total-cell strong,
.registrar-body .rfl-list-total-cell strong,
.registrar-body .rfl-total-cell strong,
.registrar-body .ff-total-cell strong,
.registrar-body .sp-total-cell strong,
.registrar-body .sgf-total-cell strong,
.registrar-body .bd-total-cell strong,
.registrar-body .bs-total-cell strong,
.registrar-body .cr-total-cell strong {
  color: inherit !important;
  font-weight: 800 !important;
}

/* Registrar: Services / Grading Academic / Transmutation copy modal parity */

.page-services-grading-academic .ga-trans-modal-overlay--priority {
  z-index: 12040;
}

.page-services-grading-academic .ga-trans-modal-box--copy {
  max-width: 860px;
  width: min(860px, 94vw);
}

.page-services-grading-academic .ga-trans-modal-box--copy .ga-trans-modal-panel {
  padding: 14px 16px;
  margin-bottom: 12px;
}

.page-services-grading-academic .ga-trans-modal-box--copy .tm-modal-grid-2x4 {
  margin-top: 10px;
}

.page-services-grading-academic .ga-trans-modal-actions {
  margin-top: 25px;
  gap: 12px;
}

.page-services-grading-academic .ga-trans-modal-actions--center {
  justify-content: center;
}

.page-services-grading-academic .tm-modal-grid-2x4 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 14px;
  margin-top: 15px;
}

.page-services-grading-academic .ga-trans-btn-cancel {
  padding: 10px 20px;
}

.page-services-grading-academic .ga-trans-btn-save {
  padding: 10px 24px;
  background: #006837;
}

.page-services-grading-academic .ga-trans-btn-save:hover {
  background: #005a2e;
}

.page-services-grading-academic .ga-trans-btn-save--danger {
  background: #c0392b;
}

.page-services-grading-academic .ga-trans-btn-save--danger:hover {
  background: #a93226;
}

/* Readonly Overrides */

.page-student-profile-config .spc-card.spc-readonly .spc-grid-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.7fr) minmax(0, 1.7fr) minmax(0, 0.95fr) 64px 140px;
  gap: 6px 10px;
  align-items: start;
  margin-bottom: 8px;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-top > .spc-field {
  min-width: 0;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-top > .spc-field .app-filter-input {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-top > .spc-field-sm {
  width: 64px !important;
  min-width: 64px !important;
  max-width: 64px !important;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-top > .spc-photo-box {
  width: 140px !important;
  height: 140px;
  min-height: 140px;
  margin: 0;
  position: relative;
  z-index: 10;
  background: #fff;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-contact,
.page-student-profile-config .spc-card.spc-readonly .spc-grid-birth,
.page-student-profile-config .spc-card.spc-readonly .spc-grid-address,
.page-student-profile-config .spc-card.spc-readonly .spc-grid-acad,
.page-student-profile-config .spc-card.spc-readonly .spc-grid-status,
.page-student-profile-config .spc-card.spc-readonly .spc-grid-transfer {
  display: grid;
  gap: 6px 8px;
  margin-bottom: 6px;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-contact {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 2.5fr) minmax(0, 0.8fr) minmax(0, 1fr);
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-birth {
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr);
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-address {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr) max-content minmax(0, 2fr) minmax(0, 0.8fr);
  align-items: flex-end;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-acad {
  grid-template-columns: minmax(0, 2.5fr) minmax(0, 0.8fr) minmax(0, 0.5fr) minmax(0, 0.8fr);
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-status {
  grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.2fr) minmax(0, 1.2fr) minmax(0, 1.5fr);
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-transfer {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 2.5fr);
}

.page-student-profile-config .spc-card.spc-readonly .app-filter-label {
  margin-bottom: 2px;
  display: block;
}

.page-student-profile-config .spc-card.spc-readonly .app-filter-input {
  min-height: 34px;
  box-sizing: border-box;
}

.page-student-profile-config .spc-card.spc-readonly .spc-grid-address .spc-checkline {
  margin-top: 0;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
}

@media (max-width: 1100px) {
  .page-student-profile-config .spc-card.spc-readonly .spc-grid-top {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .page-student-profile-config .spc-card.spc-readonly .spc-grid-top .spc-photo-box {
    grid-column: span 2;
    justify-self: start;
    width: 124px !important;
    height: 124px !important;
    min-height: 124px !important;
  }
}

@media (max-width: 760px) {
  .page-student-profile-config .spc-card.spc-readonly .spc-grid-top .spc-photo-box {
    width: 112px !important;
    height: 112px !important;
    min-height: 112px !important;
  }
}

.spc-card.spc-readonly .spc-readonly-banner {
  margin: 0 0 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #14532d;
  background: #dcfce7;
  border: 1px solid #bbf7d0;
}

.spc-card.spc-readonly .spc-photo-preview {
  display: block !important;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
  border-radius: 6px;
}

.spc-card.spc-readonly .spc-photo-icon {
  display: none !important;
}

.spc-card.spc-layout-lock .spc-photo-icon {
  display: none !important;
}

.spc-card.spc-readonly .spc-readonly-note {
  margin: 0;
  font-size: 0.83rem;
  color: #4b5563;
}

.page-student-profile-config .spc-card.spc-readonly {
  padding: 12px;
}

.spc-card.spc-readonly .app-filter-input[readonly],
.spc-card.spc-readonly .app-filter-input[disabled],
.spc-card.spc-readonly .req-checkbox-input[disabled],
.spc-card.spc-readonly .spc-photo-box {
  cursor: not-allowed;
}

.spc-card.spc-readonly .app-filter-input[readonly],
.spc-card.spc-readonly .app-filter-input[disabled] {
  background: #eef3ef;
  color: #374151;
}

.spc-card.spc-readonly .spc-readonly-fieldset .app-filter-input {
  background: #e5e7eb !important;
  color: #6b7280 !important;
  border-color: #d1d5db !important;
  box-shadow: none !important;
}

.spc-card.spc-readonly .spc-photo-box {
  opacity: 0.82;
  pointer-events: none;
}

.spc-card.spc-readonly .spc-readonly-fieldset {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}

/* Editable layout lock for registrar profile page */

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.7fr) minmax(0, 1.7fr) minmax(0, 0.95fr) 64px 140px;
  gap: 6px 10px;
  align-items: start;
  margin-bottom: 8px;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top > .spc-field {
  min-width: 0;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top > .spc-field .app-filter-input {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top > .spc-field-sm {
  width: 64px !important;
  min-width: 64px !important;
  max-width: 64px !important;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top > .spc-photo-box {
  width: 140px !important;
  height: 140px;
  min-height: 140px;
  margin: 0;
  position: relative;
  z-index: 10;
  background: #fff;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-contact,
.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-birth,
.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-address,
.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-acad,
.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-status,
.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-transfer {
  display: grid;
  gap: 6px 8px;
  margin-bottom: 6px;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-contact {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 2.5fr) minmax(0, 0.8fr) minmax(0, 1fr);
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-birth {
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr);
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-address {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr) max-content minmax(0, 2fr) minmax(0, 0.8fr);
  align-items: flex-end;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-acad {
  grid-template-columns: minmax(0, 2.5fr) minmax(0, 0.8fr) minmax(0, 0.5fr) minmax(0, 0.8fr);
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-status {
  grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.2fr) minmax(0, 1.2fr) minmax(0, 1.5fr);
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-transfer {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 2.5fr);
}

.page-student-profile-config .spc-card.spc-layout-lock .app-filter-label {
  margin-bottom: 2px;
  display: block;
}

.page-student-profile-config .spc-card.spc-layout-lock .app-filter-input {
  min-height: 34px;
  box-sizing: border-box;
}

.page-student-profile-config .spc-card.spc-layout-lock .spc-grid-address .spc-checkline {
  margin-top: 0;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
}

@media (max-width: 1100px) {
  .page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top .spc-photo-box {
    grid-column: span 2;
    justify-self: start;
    width: 124px !important;
    height: 124px !important;
    min-height: 124px !important;
  }
}

@media (max-width: 760px) {
  .page-student-profile-config .spc-card.spc-layout-lock .spc-grid-top .spc-photo-box {
    width: 112px !important;
    height: 112px !important;
    min-height: 112px !important;
  }
}

/* Ensure action links look exactly like green action buttons in both config and app preview modes */

.page-student-profile-config .spc-view-form-btn,
.page-student-profile-app-preview .spc-view-form-btn {
  text-decoration: none !important;
}

.page-student-profile-config .spc-view-form-btn:hover,
.page-student-profile-config .spc-view-form-btn:focus,
.page-student-profile-config .spc-view-form-btn:visited,
.page-student-profile-app-preview .spc-view-form-btn:hover,
.page-student-profile-app-preview .spc-view-form-btn:focus,
.page-student-profile-app-preview .spc-view-form-btn:visited {
  text-decoration: none !important;
  color: #fff !important;
}

@media (max-width: 600px) {
  .page-report-access .req-modal-overlay {
    align-items: flex-start;
    padding: 10px;
    overflow: auto;
  }

  .page-report-access .ra-modal-box {
    width: 100%;
    max-width: 100%;
    max-height: none;
    min-height: calc(100vh - 20px);
    border-radius: 10px;
  }

  .page-report-access .ra-modal-user {
    width: 100%;
    font-size: 0.76rem;
  }

  .page-report-access .ra-group-list {
    max-height: none;
  }
}

/* Registrar reusable listbox dropdown */

.registrar-body .rg-listbox {
  position: relative;
  width: 100%;
  min-width: 0;
}

.registrar-body .rg-listbox-native.is-enhanced {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}

.registrar-body .rg-listbox-trigger {
  width: 100%;
  min-height: 36px;
  border: 1px solid #c8d8cf;
  border-radius: 8px;
  padding: 7px 10px;
  background: #fff;
  color: #26463a;
  font-size: 0.79rem;
  font-weight: 600;
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.registrar-body .rg-listbox-native.is-enhanced + .rg-listbox-trigger {
  display: inline-flex;
}

.registrar-body .rg-listbox-trigger:focus,
.registrar-body .rg-listbox.is-open .rg-listbox-trigger {
  outline: none;
  border-color: #0f7b43;
  box-shadow: 0 0 0 3px rgba(15, 123, 67, 0.14);
}

.registrar-body .rg-listbox-trigger-text {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.registrar-body .rg-listbox-trigger-caret {
  width: 8px;
  height: 8px;
  border-right: 2px solid #0f7b43;
  border-bottom: 2px solid #0f7b43;
  transform: rotate(45deg) translateY(-1px);
  transition: transform 0.2s ease;
}

.registrar-body .rg-listbox.is-open .rg-listbox-trigger-caret {
  transform: rotate(225deg) translateY(2px);
}

.registrar-body .rg-listbox-menu {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  margin: 0;
  padding: 6px;
  list-style: none;
  border: 1px solid #2d8b5a;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 24px rgba(12, 58, 35, 0.15);
  max-height: 220px;
  overflow-y: auto;
  z-index: 35;
}

.registrar-body .rg-listbox.is-open .rg-listbox-menu {
  display: block;
}

.registrar-body .rg-listbox-option-btn {
  width: 100%;
  border: 0;
  border-radius: 8px;
  background: #fff;
  color: #1a3f2e;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  padding: 8px 10px;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.registrar-body .rg-listbox-option-btn:hover,
.registrar-body .rg-listbox-option-btn:focus,
.registrar-body .rg-listbox-option-btn.is-active {
  outline: none;
  background: #0f7b43;
  color: #fff;
}

.registrar-body .rg-listbox-option-btn.is-selected {
  background: rgba(15, 123, 67, 0.12);
  color: #0f7b43;
}

/* Registrar: Services / Classroom & Faculty / Class List */

.registrar-body.page-services-class-list .cl-page {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.registrar-body.page-services-class-list .cl-alert {
  margin-bottom: 0;
}

.registrar-body.page-services-class-list .at-top-row {
  grid-template-columns: minmax(300px, 1fr) minmax(0, 1.45fr);
  align-items: start;
}

.registrar-body.page-services-class-list .at-search-card .sf-search-box,
.registrar-body.page-services-class-list .at-search-wrap.sf-search-box {
  width: 100%;
  max-width: 100%;
}

.registrar-body.page-services-class-list .at-config-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(72px, auto);
  align-items: flex-end;
  gap: 8px;
}

.registrar-body.page-services-class-list .at-config-item {
  align-items: flex-end;
}

.registrar-body.page-services-class-list .at-config-item .rg-listbox {
  min-width: 0;
}

.registrar-body.page-services-class-list .at-config-action {
  min-width: 0;
  display: flex;
  justify-content: flex-end;
  max-width: 100%;
}

.registrar-body.page-services-class-list .at-btn-set {
  white-space: nowrap;
  max-width: 100%;
}

.registrar-body.page-services-class-list table.student-table.registrar-table.svc-table th,
.registrar-body.page-services-class-list table.student-table.registrar-table.svc-table td {
  text-align: center !important;
  vertical-align: middle;
}

.registrar-body.page-services-class-list .svc-actions-row {
  margin-bottom: 0;
}

.registrar-body.page-services-class-list .svc-btn-pdf,
.registrar-body.page-services-class-list .svc-btn-excel {
  border: none;
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.registrar-body.page-services-class-list .svc-btn-pdf {
  background: #ff4b4b;
}

.registrar-body.page-services-class-list .svc-btn-excel {
  background: #0f7b43;
}

.registrar-body.page-services-class-list .svc-table-tfoot td,
.registrar-body.page-deficiency .svc-table-tfoot td {
  padding: 0 !important;
  background: #f8fcf9;
  border-top: 2px solid #c9d8cf !important;
}

.registrar-body.page-services-class-list .svc-table-stats,
.registrar-body.page-deficiency .svc-table-stats {
  padding: 10px 15px;
  font-size: 0.82rem;
  color: #444;
  text-align: left;
}

.registrar-body.page-services-class-list .svc-table-stats strong,
.registrar-body.page-deficiency .svc-table-stats strong {
  color: #0f7b43;
}

.registrar-body.page-deficiency .ga-btn-primary,
.registrar-body.page-deficiency .df-back-btn {
  min-height: 34px;
  border-radius: 8px;
}

.registrar-body.page-services-class-list .svc-btn-pdf:hover,
.registrar-body.page-services-class-list .svc-btn-excel:hover,
.registrar-body.page-services-class-list .svc-btn-pdf:focus,
.registrar-body.page-services-class-list .svc-btn-excel:focus {
  text-decoration: none;
  color: #fff;
  opacity: 0.93;
}

.registrar-body.page-services-class-list .svc-selected-info {
  margin-bottom: 0;
}

.registrar-body.page-services-class-list .cl-print-group {
  display: flex;
  gap: 8px;
  margin-left: auto;
}

.registrar-body.page-services-class-list .cl-back-row {
  margin-top: -2px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.registrar-body.page-services-class-list .cl-pagination {
  margin-top: 6px;
}

.registrar-body.page-services-class-list .svc-summary-total {
  margin-top: 8px;
  padding: 8px 10px;
  border: 1px solid #d6e1db;
  border-radius: 8px;
  background: #f8fcf9;
  color: #0f7b43;
  font-weight: 700;
  text-align: left;
}

.registrar-body.page-services-class-list .svc-summary-total-left {
  text-align: left;
}

/* Registrar: Services / Classroom & Faculty / Faculty Loads */

.registrar-body.page-services-faculty-loads .content-footer-wrap {
  max-height: none;
  overflow: visible;
}

.registrar-body.page-services-faculty-loads .student-content {
  overflow: visible !important;
  min-height: calc(100vh - 112px);
}

.registrar-body.page-services-faculty-loads .rfl-wrap {
  padding-bottom: 24px;
}

.registrar-body.page-services-faculty-loads .rfl-back-row {
  margin: -4px 0 8px;
}

/* Back to Faculty List link color */

.registrar-body.page-services-faculty-loads .rfl-back-row a {
  color: #006837;
}

.registrar-body.page-services-faculty-loads .rfl-back-row a:hover,
.registrar-body.page-services-faculty-loads .rfl-back-row a:focus {
  color: #006837;
}

.registrar-body.page-services-faculty-loads .rfl-filters,
.registrar-body.page-services-faculty-loads .rfl-loading-tools,
.registrar-body.page-services-faculty-loads .rfl-assign-form {
  overflow: visible;
}

@media (max-width: 1366px) {
  .registrar-body.page-services-class-list .at-top-row {
    grid-template-columns: 1fr;
  }

  .registrar-body.page-services-class-list .at-config-card {
    border-left: 0;
    padding-left: 0;
    border-top: 1px solid #d2d9df;
    padding-top: 8px;
  }

  .registrar-body.page-services-class-list .at-config-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .registrar-body.page-services-class-list .at-config-action {
    grid-column: 1/-1;
    justify-content: flex-end;
  }

  .registrar-body.page-services-class-list .at-btn-set {
    width: 100%;
  }
}

@media (max-width: 1280px) {
  .registrar-body.page-services-class-list .at-config-grid {
    grid-template-columns: 1fr;
  }

  .registrar-body.page-services-class-list .at-config-action {
    justify-content: stretch;
  }
}

@media (max-width: 820px) {
  .registrar-body.page-services-class-list .at-config-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .registrar-body.page-services-class-list .at-config-item {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }

  .registrar-body.page-services-class-list .at-config-inline-label {
    white-space: normal;
  }

  .registrar-body.page-services-class-list .at-config-action,
  .registrar-body.page-services-class-list .svc-actions-row {
    justify-content: stretch;
  }

  .registrar-body.page-services-class-list .at-btn-set,
  .registrar-body.page-services-class-list .svc-btn-pdf,
  .registrar-body.page-services-class-list .svc-btn-excel {
    width: 100%;
  }

  .registrar-body.page-services-class-list .svc-selected-info {
    grid-template-columns: 1fr;
  }
}

/* Restored Student Grade File detail/history/TOR/permanent styles from main-intern */

.page-student-grade-file .sgf-name-link {
  color: #006837;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}

.page-student-grade-file .sgf-name-link:hover {
  text-decoration: underline;
  color: #005028;
}

/* Short underline for compact fields (Student Number, Citizenship, Civil Status, Sex) */

.page-student-grade-file .sgf-perm-short-underline {
  display: inline-block;
  min-width: 60px;
  flex: 1 1 auto;
  border-bottom: 1px solid #333;
  padding: 0 2px 1px 2px;
  font-weight: 700;
  font-size: 0.7rem;
  line-height: 1;
  vertical-align: middle;
  text-align: left;
  white-space: nowrap;
}

.page-student-grade-file .sgf-perm-personal-head-row {
  display: flex;
  justify-content: flex-end;
  gap: 0;
}

.page-student-grade-file .sgf-perm-personal-head-label {
  font-size: 0.7rem;
  font-weight: 400;
  margin-left: 0;
  white-space: nowrap;
}

.page-student-grade-file .sgf-perm-val-no-bold {
  font-weight: 400 !important;
}

.page-student-grade-file .sgf-detail-header {
  margin-bottom: 14px;
}

.page-student-grade-file .sgf-detail-info-panel {
  background: #f8fbf9;
  border: 1px solid #dbe8e0;
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 10px;
}

.page-student-grade-file .sgf-info-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 24px;
  margin-bottom: 4px;
  font-size: 0.82rem;
  color: #333;
}

.page-student-grade-file .sgf-info-row strong {
  color: #006837;
  font-weight: 700;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.page-student-grade-file .sgf-detail-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 2px solid #e2e8f0;
  padding-bottom: 0;
  flex-wrap: wrap;
}

.page-student-grade-file .sgf-tab {
  background: none;
  border: none;
  padding: 8px 16px;
  font-size: 0.78rem;
  font-weight: 600;
  color: #666;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  white-space: nowrap;
  transition: color 0.2s, border-color 0.2s;
}

.page-student-grade-file .sgf-tab:hover {
  color: #006837;
}

.page-student-grade-file .sgf-tab.active {
  color: #006837;
  border-bottom-color: #006837;
}

.page-student-grade-file .sgf-detail-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  gap: 12px;
  flex-wrap: wrap;
}

.page-student-grade-file .sgf-detail-btns {
  display: flex;
  gap: 8px;
}

.page-student-grade-file .sgf-btn-action {
  font-size: 0.78rem !important;
  padding: 6px 14px !important;
}

.page-student-grade-file .sgf-btn-delete {
  background: #c0392b !important;
  border-color: #c0392b !important;
}

.page-student-grade-file .sgf-btn-delete:hover {
  background: #a93226 !important;
}

.page-student-grade-file .sgf-btn-transferee {
  background: #e67e22 !important;
  border-color: #e67e22 !important;
}

.page-student-grade-file .sgf-btn-transferee:hover {
  background: #d35400 !important;
}

.page-student-grade-file .sgf-btn-old {
  background: #2980b9 !important;
  border-color: #2980b9 !important;
}

.page-student-grade-file .sgf-btn-old:hover {
  background: #2471a3 !important;
}

.page-student-grade-file .sgf-term-group {
  margin-bottom: 18px;
}

.page-student-grade-file .sgf-term-header {
  display: flex;
  align-items: center;
  gap: 24px;
  background: #006837;
  color: #fff;
  padding: 6px 14px;
  border-radius: 6px 6px 0 0;
  font-size: 0.78rem;
  font-weight: 600;
}

.page-student-grade-file .sgf-term-label,
.page-student-grade-file .sgf-term-sep {
  letter-spacing: 0.03em;
}

.page-student-grade-file .sgf-grade-table {
  border-radius: 0 0 6px 6px;
  margin-top: 0 !important;
}

.page-student-grade-file .sgf-grade-table thead th {
  font-size: 0.7rem;
  padding: 6px 8px;
  white-space: nowrap;
}

.page-student-grade-file .sgf-grade-table tbody td {
  font-size: 0.75rem;
  padding: 5px 8px;
}

.page-student-grade-file .sgf-grade-table tbody td a {
  color: #006837;
  text-decoration: none;
}

.page-student-grade-file .sgf-row-edit-btn,
.page-student-grade-file .sgf-row-del-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 3px 5px;
  border-radius: 4px;
  line-height: 1;
  transition: background 0.15s;
}

.page-student-grade-file .sgf-row-edit-btn {
  color: #006837;
}

.page-student-grade-file .sgf-row-edit-btn:hover {
  background: #e8f5e9;
}

.page-student-grade-file .sgf-row-del-btn {
  color: #c0392b;
}

.page-student-grade-file .sgf-row-del-btn:hover {
  background: #fbe9e7;
}

.page-student-grade-file .sgf-wga-row {
  display: flex;
  align-items: center;
  gap: 16px;
  background: #fff8e1;
  border: 1px solid #e2d397;
  border-top: none;
  padding: 6px 14px;
  font-size: 0.78rem;
  color: #5d4e37;
  font-weight: 500;
  border-radius: 0 0 6px 6px;
}

.page-student-grade-file .sgf-wga-total {
  font-weight: 700;
  color: #006837;
}

.page-student-grade-file .sgf-wga-label {
  margin-left: auto;
}

.page-student-grade-file .sgf-wga-label strong {
  color: #c0392b;
  font-size: 0.9rem;
}

.page-student-grade-file .sgf-placeholder-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  text-align: center;
  color: #8896a6;
  gap: 12px;
}

.page-student-grade-file .sgf-placeholder-panel h3 {
  font-size: 1rem;
  font-weight: 700;
  color: #555;
  margin: 0;
}

.page-student-grade-file .sgf-placeholder-panel p {
  font-size: 0.85rem;
  max-width: 400px;
  line-height: 1.5;
}

.page-student-grade-file .sgf-history-sheet {
  border: 1px solid #c3d1c8;
  background: #ffffff;
  border-radius: 8px;
  overflow: hidden;
}

.page-student-grade-file .sgf-history-title {
  background: #1d6b36;
  color: #fff;
  text-align: center;
  font-size: 0.88rem;
  letter-spacing: 0.05em;
  font-weight: 700;
  padding: 7px 12px;
}

.page-student-grade-file .sgf-history-group {
  border-top: 1px solid #d8e1dc;
}

.page-student-grade-file .sgf-history-group-head {
  background: #1f6f36;
  color: #fff;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 14px;
  font-size: 0.82rem;
  font-weight: 700;
}

.page-student-grade-file .sgf-history-action-title {
  background: #ffffff;
  color: #1f6f36;
  border-top: 1px solid #dfe7e2;
  border-bottom: 1px solid #dfe7e2;
  padding: 5px 14px;
  font-size: 0.79rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.page-student-grade-file .sgf-history-row {
  display: grid;
  grid-template-columns: 2fr 1fr;
  border-bottom: 1px solid #e0e7e3;
}

.page-student-grade-file .sgf-history-main {
  padding: 8px 14px;
}

.page-student-grade-file .sgf-history-code {
  font-size: 0.77rem;
  font-weight: 700;
  color: #173b2b;
}

.page-student-grade-file .sgf-history-desc {
  font-size: 0.74rem;
  color: #2f4f41;
  margin-top: 2px;
}

.page-student-grade-file .sgf-history-grade-flow {
  font-size: 0.72rem;
  color: #474b1f;
  margin-top: 3px;
}

.page-student-grade-file .sgf-history-meta-right {
  border-left: 1px solid #e0e7e3;
  display: grid;
  grid-template-columns: 1fr;
}

.page-student-grade-file .sgf-history-meta-right > div {
  padding: 8px 12px;
  border-bottom: 1px solid #e7ece9;
}

.page-student-grade-file .sgf-history-meta-right > div:last-child {
  border-bottom: none;
}

.page-student-grade-file .sgf-history-meta-right span {
  display: block;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #4d665a;
  font-weight: 700;
}

.page-student-grade-file .sgf-history-meta-right strong {
  display: block;
  margin-top: 2px;
  font-size: 0.75rem;
  color: #1a3428;
}

.page-student-grade-file .sgf-history-empty {
  padding: 16px;
  text-align: center;
  font-size: 0.8rem;
  color: #5c6f66;
}

.page-student-grade-file .sgf-perm-tools {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 10px;
}

.page-student-grade-file .sgf-perm-sheet-wrap {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 1020px;
  margin: 0 auto;
}

.page-student-grade-file .sgf-perm-page {
  background: #fff;
  border: 1px solid #d2ddd7;
  border-radius: 8px;
  padding: 10mm 9mm;
  color: #111;
}

.page-student-grade-file .sgf-perm-school,
.page-student-grade-file .sgf-perm-office,
.page-student-grade-file .sgf-perm-form-title {
  text-align: center;
}

.page-student-grade-file .sgf-perm-school {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 18px;
}

.page-student-grade-file .sgf-perm-office {
  font-size: 0.88rem;
  margin-top: 4px;
  font-weight: 700;
}

.page-student-grade-file .sgf-perm-form-title {
  margin: 8px auto 0;
  font-size: 0.88rem;
  font-weight: 700;
  width: -moz-fit-content;
  width: fit-content;
  border: 1px solid #222;
  padding: 2px 10px;
}

.page-student-grade-file .sgf-perm-course-row {
  margin-top: 8px;
  position: relative;
  min-height: 20px;
  padding-left: 34px;
}

.page-student-grade-file .sgf-perm-course-label {
  position: absolute;
  left: 34px;
  top: 1px;
  font-size: 0.74rem;
  font-weight: 400;
  color: #111;
}

.page-student-grade-file .sgf-perm-course {
  margin-top: 8px;
  font-size: 0.82rem;
  text-align: center;
  font-weight: 700;
}

.page-student-grade-file .sgf-perm-course strong {
  border-bottom: 1px solid #222;
  padding-bottom: 2px;
  display: inline-block;
}

.page-student-grade-file .sgf-perm-personal {
  margin-top: 10px;
}

.page-student-grade-file .sgf-perm-personal-head {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  align-items: flex-end;
  gap: 10px;
  margin-bottom: 4px;
}

.page-student-grade-file .sgf-perm-personal h4 {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 700;
}

.page-student-grade-file .sgf-perm-student-no-field {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.page-student-grade-file .sgf-perm-student-no-field span {
  font-size: 0.69rem;
  color: #111;
  white-space: nowrap;
  line-height: 1;
}

.page-student-grade-file .sgf-perm-student-no-field strong {
  font-size: 0.7rem;
  font-weight: 700;
  flex: 0 1 60px;
  min-width: 60px;
  min-height: 15px;
  border-bottom: 1px solid #333;
  padding: 0 3px 1px;
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.page-student-grade-file .sgf-perm-personal-lines {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-left: 60px;
}

.page-student-grade-file .sgf-perm-personal-line {
  display: grid;
  gap: 6px;
}

.page-student-grade-file .sgf-perm-personal-line-2col {
  grid-template-columns: 1.6fr 1fr;
}

.page-student-grade-file .sgf-perm-personal-line-3col {
  grid-template-columns: 48% 22% 30%;
}

.page-student-grade-file .sgf-perm-personal-line-5col {
  grid-template-columns: 1.5fr 0.95fr 0.7fr 1fr 1fr;
}

.page-student-grade-file .sgf-perm-personal-line > div {
  display: flex;
  align-items: baseline;
  gap: 4px;
  min-height: 19px;
}

.page-student-grade-file .sgf-perm-no-gap {
  gap: 0 !important;
}

.page-student-grade-file .sgf-perm-span-2 {
  grid-column: span 2;
}

.page-student-grade-file .sgf-perm-span-3 {
  grid-column: span 3;
}

.page-student-grade-file .sgf-perm-dob-field {
  gap: 4px !important;
}

.page-student-grade-file .sgf-perm-dob-field strong {
  flex: 1 1 0;
  min-width: 0;
}

.page-student-grade-file .sgf-perm-inline-label {
  margin-left: 4px;
}

.page-student-grade-file .sgf-perm-personal-line span {
  font-size: 0.69rem;
  color: #111;
  white-space: nowrap;
  line-height: 1;
}

.page-student-grade-file .sgf-perm-personal-line strong {
  font-size: 0.7rem;
  font-weight: 700;
  flex: 1 1 auto;
  min-height: 15px;
  border-bottom: 1px solid #333;
  padding: 0 3px 1px;
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.page-student-grade-file .sgf-perm-personal-line strong.sgf-perm-empty-cell {
  color: transparent;
}

.page-student-grade-file .sgf-perm-personal-line strong:empty::after {
  content: "\A0";
}

.page-student-grade-file .sgf-perm-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 10px;
  border-top: 1px solid #222 !important;
  border-bottom: 1px solid #222 !important;
  border-left: none !important;
  border-right: none !important;
}

.page-student-grade-file .sgf-perm-table th,
.page-student-grade-file .sgf-perm-table td {
  border: 1px solid #222 !important;
  padding: 2px 5px;
  font-size: 0.7rem;
  line-height: 1.15;
}

.page-student-grade-file .sgf-perm-table th:first-child,
.page-student-grade-file .sgf-perm-table td:first-child {
  border-left: none !important;
}

.page-student-grade-file .sgf-perm-table th:last-child,
.page-student-grade-file .sgf-perm-table td:last-child {
  border-right: none !important;
}

.page-student-grade-file .sgf-perm-table th {
  text-align: center;
  font-weight: 700;
  background: #ffffff !important;
  color: #111 !important;
}

.page-student-grade-file .sgf-perm-table td:nth-child(1),
.page-student-grade-file .sgf-perm-table td:nth-child(3),
.page-student-grade-file .sgf-perm-table td:nth-child(4) {
  text-align: center;
}

.page-student-grade-file .sgf-perm-term-row td {
  text-align: left !important;
  font-weight: 700;
  background: #ffffff !important;
  border-color: #222 !important;
}

.page-student-grade-file .sgf-perm-term-row td:first-child,
.page-student-grade-file .sgf-perm-term-row td:nth-child(3),
.page-student-grade-file .sgf-perm-term-row td:last-child {
  color: transparent;
}

.page-student-grade-file .sgf-perm-term-row td:nth-child(2) {
  text-align: center !important;
  letter-spacing: 0.01em;
}

.page-student-grade-file .sgf-perm-empty {
  text-align: center;
  color: #666;
  font-style: italic;
}

.page-student-grade-file .sgf-perm-page-no {
  margin-top: 8px;
  font-size: 0.64rem;
  color: #333;
}

.page-student-grade-file .sgf-perm-cont-head {
  font-size: 0.75rem;
  margin-bottom: 8px;
  border-bottom: 1px solid #444;
  padding-bottom: 2px;
}

.page-student-grade-file .sgf-perm-certification {
  margin-top: 12px;
  text-align: center;
}

.page-student-grade-file .sgf-perm-certification h5 {
  font-size: 0.76rem;
  margin: 0;
  font-weight: 700;
}

.page-student-grade-file .sgf-perm-certification p {
  margin-top: 4px;
  font-size: 0.7rem;
}

.page-student-grade-file .sgf-perm-signatures {
  margin-top: 14px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}

.page-student-grade-file .sgf-perm-signatures > div {
  text-align: center;
}

.page-student-grade-file .sgf-perm-sign-line {
  display: block;
  border-bottom: 1px solid #222;
  height: 2px;
  margin-top: 2px;
  margin-bottom: 3px;
  max-width: 180px;
  margin-left: auto;
  margin-right: auto;
}

.page-student-grade-file .sgf-perm-signatures strong {
  display: block;
  font-size: 0.72rem;
}

.page-student-grade-file .sgf-perm-signatures small {
  display: block;
  font-size: 0.66rem;
}

.page-student-grade-file .sgf-tab-content#sgfTabPermanent .app-table-pager,
.page-student-grade-file .sgf-tab-content#sgfTabPermanent .rtp-pagination,
.page-student-grade-file .sgf-tab-content#sgfTabPermanent .pf-pagination {
  display: none !important;
}

.page-student-grade-file .sgf-tor-embed-wrap {
  border: 1px solid #d2ddd7;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.page-student-grade-file .sgf-tor-embed-frame {
  display: block;
  width: 100%;
  min-height: 1460px;
  border: none;
}

.page-student-grade-file .sgf-tab-content#sgfTabTor .app-table-pager,
.page-student-grade-file .sgf-tab-content#sgfTabTor .rtp-pagination,
.page-student-grade-file .sgf-tab-content#sgfTabTor .pf-pagination {
  display: none !important;
}

@media print {
@page {
    size: A4 portrait;
    margin: 10mm;
}

  body.page-student-grade-file .app-table-pager,
  body.page-student-grade-file .rtp-pagination,
  body.page-student-grade-file .pf-pagination {
    display: none !important;
  }

  body.page-student-grade-file .sgf-perm-table thead th,
  body.page-student-grade-file .sgf-tor-table thead th,
  body.page-student-grade-file .sgf-perm-term-row td {
    background: #ffffff !important;
    color: #111 !important;
    border-color: #111 !important;
  }

  body.page-student-grade-file .sgf-perm-table,
  body.page-student-grade-file .sgf-perm-table th,
  body.page-student-grade-file .sgf-perm-table td {
    border-color: #111 !important;
  }

  body.page-student-grade-file .sgf-perm-personal-line-2col {
    grid-template-columns: 1.5fr 1fr !important;
  }

  body.page-student-grade-file .sgf-perm-personal-line-3col {
    grid-template-columns: 2fr 1fr 1fr !important;
  }

  body.page-student-grade-file .sgf-perm-personal-line-5col {
    grid-template-columns: 1.4fr 1fr 0.7fr 1fr 1fr !important;
  }

  body.page-student-grade-file .plp-sidebar,
  body.page-student-grade-file .registrar-topbar,
  body.page-student-grade-file .plp-footer,
  body.page-student-grade-file .sgf-toolbar-row,
  body.page-student-grade-file .sgf-table-head,
  body.page-student-grade-file .sgf-detail-header,
  body.page-student-grade-file .sgf-detail-actions,
  body.page-student-grade-file #sgfListView,
  body.page-student-grade-file #sgfTabGrades,
  body.page-student-grade-file #sgfTabHistory,
  body.page-student-grade-file #sgfTabEvaluation,
  body.page-student-grade-file #sgfTabTor,
  body.page-student-grade-file #sgfTabGradeReport,
  body.page-student-grade-file .sgf-perm-tools,
  body.page-student-grade-file .sgf-tor-tools {
    display: none !important;
  }

  body.page-student-grade-file #sgfDetailView {
    display: block !important;
  }

  body.page-student-grade-file.sgf-print-permanent #sgfTabPermanent,
  body.page-student-grade-file.sgf-print-permanent #sgfPermanentPrintArea {
    display: block !important;
  }

  body.page-student-grade-file.sgf-print-permanent #sgfTabTor {
    display: none !important;
  }

  body.page-student-grade-file.sgf-print-tor #sgfTabTor,
  body.page-student-grade-file.sgf-print-tor #sgfTorPrintArea {
    display: block !important;
  }

  body.page-student-grade-file.sgf-print-tor #sgfTabPermanent {
    display: none !important;
  }

  body.page-student-grade-file.sgf-print-tor .sgf-tor-sheet {
    border: none;
    border-radius: 0;
    padding: 10mm 8mm;
  }

  body.page-student-grade-file .sgf-perm-page {
    border: none;
    border-radius: 0;
    padding: 10mm 8mm;
    min-height: auto;
    page-break-after: always;
    -moz-column-break-after: page;
         break-after: page;
  }

  body.page-student-grade-file .sgf-perm-page:last-child {
    page-break-after: auto;
    -moz-column-break-after: auto;
         break-after: auto;
  }
}

@media screen and (max-width: 992px) {
  .page-student-grade-file .sgf-history-row {
    grid-template-columns: 1fr;
  }

  .page-student-grade-file .sgf-history-meta-right {
    border-left: none;
    border-top: 1px solid #e0e7e3;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-student-grade-file .sgf-history-meta-right > div {
    border-bottom: none;
    border-right: 1px solid #e7ece9;
  }

  .page-student-grade-file .sgf-history-meta-right > div:last-child {
    border-right: none;
  }

  .page-student-grade-file .sgf-perm-personal-line-2col,
  .page-student-grade-file .sgf-perm-personal-line-3col,
  .page-student-grade-file .sgf-perm-personal-line-5col {
    grid-template-columns: 1fr;
  }
}

/* SGF Grade Table - Custom Checkboxes (matches global table checkbox pattern) */

.page-student-grade-file .sgf-grade-table thead input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  width: 16px;
  height: 16px;
  border: 2px solid #ffffff !important;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.12) !important;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.page-student-grade-file .sgf-grade-table thead input[type=checkbox]:checked {
  background: #ffffff !important;
  border-color: #ffffff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23006837' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 11px 9px;
}

.page-student-grade-file .sgf-grade-table thead input[type=checkbox]:hover {
  border-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.18);
}

.page-student-grade-file .sgf-grade-table thead input[type=checkbox]:checked::after {
  content: none;
}

.page-student-grade-file .sgf-grade-table td > input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  width: 16px;
  height: 16px;
  border: 2px solid #0a813c;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.page-student-grade-file .sgf-grade-table td > input[type=checkbox]:checked {
  background: #0a813c;
  border-color: #0a813c;
}

.page-student-grade-file .sgf-grade-table td > input[type=checkbox]:checked::after {
  content: "\2713";
  position: absolute;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.page-student-grade-file .sgf-grade-table td > input[type=checkbox]:hover {
  border-color: #004d29;
  box-shadow: 0 0 0 3px rgba(10, 129, 60, 0.12);
}

@media screen and (max-width: 768px) {
  .page-student-grade-file .sgf-info-row {
    grid-template-columns: 1fr;
  }

  .page-student-grade-file .sgf-detail-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .page-student-grade-file .sgf-detail-btns {
    justify-content: stretch;
  }

  .page-student-grade-file .sgf-detail-btns button {
    flex: 1;
    justify-content: center;
  }

  .page-student-grade-file .sgf-term-header {
    flex-direction: column;
    gap: 4px;
    align-items: flex-start;
  }
}

