/* TPI_PRO_V32_FINAL_CSS */

/* Login Staff: background/branding stays stable; form is manually scrollable. */
body.audience-staff #auth-screen.login-open .auth-panel,
body.audience-developer #auth-screen.login-open .auth-panel {
  overflow: hidden !important;
}
body.audience-staff #auth-screen.login-open .auth-panel__inner,
body.audience-developer #auth-screen.login-open .auth-panel__inner {
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scroll-behavior: auto !important;
  -webkit-overflow-scrolling: touch;
}
body.audience-staff #auth-screen.login-open .login-school-mark,
body.audience-developer #auth-screen.login-open .login-school-mark {
  position: sticky;
  top: 0;
  z-index: 3;
}

/* Promotion: about 3-4 rows remain visible; action stays nearby. */
.promotion-list {
  max-height: 340px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 4px;
}
.promotion-list + .button-row {
  position: sticky;
  bottom: 0;
  z-index: 2;
  margin-top: 10px;
  padding: 12px 0 2px;
  background: var(--surface, #fff);
}

/* Search/choice dialogs never grow into a full-screen endless list. */
.modal-choice-list,
.choice-list.recipients,
.global-search-results {
  max-height: min(42dvh, 360px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* TU follow-up page. */
.tpi-v32-unlinked-card {
  max-width: 100%;
}
.tpi-v32-count {
  min-width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: rgba(23, 105, 170, .10);
}
.tpi-v32-bounded-table {
  max-height: min(58dvh, 560px);
  overflow: auto;
  overscroll-behavior: contain;
}
.tpi-v32-bounded-table .table-wrap {
  overflow: visible;
}

/* Bendahara installment settings: compact cards, bounded internal list. */
.tpi-v32-installments-page {
  max-width: 980px;
}
.tpi-v32-installments-page #tpi-installment-rules {
  margin-top: 0;
}
.tpi-v32-installments-page [data-tpi-installment-rule-list] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  max-height: min(62dvh, 620px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 4px;
}
.tpi-v32-installments-page [data-tpi-installment-rule-form] {
  margin: 0 !important;
  padding: 16px !important;
  gap: 10px !important;
  align-self: start;
}
.tpi-v32-installments-page [data-tpi-installment-rule-form] .button {
  width: 100%;
}

/* Cleaner student financial detail cards. */
.student-arrears-list {
  display: grid;
  gap: 10px;
}
.student-arrears-card {
  margin: 0 !important;
  overflow: clip;
}
.student-arrears-card > summary {
  cursor: pointer;
  padding: 14px 16px;
}
.student-arrears-card[open] > summary {
  border-bottom: 1px solid rgba(15, 23, 42, .08);
}
.student-arrears-card .arrears-fee-lines {
  padding: 12px 16px 16px;
}

@media (max-width: 720px) {
  .promotion-list { max-height: 320px; }
  .tpi-v32-installments-page [data-tpi-installment-rule-list] {
    grid-template-columns: 1fr;
    max-height: 58dvh;
  }
  .tpi-v32-bounded-table { max-height: 54dvh; }
}
