@media (min-width: 761px) {
    .login-grid { height: 100vh; min-height: 640px; overflow: hidden; }
    .login-visual { height: 100%; min-height: 0; }
}

.register-controls { display: grid; gap: 1rem; }
.register-control-row { display: grid; grid-template-columns: minmax(180px, .55fr) minmax(260px, 1fr); gap: 1rem; align-items: end; }
.register-control-row label { display: grid; gap: .45rem; color: #43506a; font-size: .82rem; font-weight: 700; }
.register-control-row select,
.register-control-row input { width: 100%; min-height: 44px; border: 1px solid #dce2ec; border-radius: 10px; background: #fff; padding: .65rem .8rem; color: #17213a; }
.class-chip-list { display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .2rem; scrollbar-width: thin; }
.class-chip { flex: 0 0 auto; border: 1px solid #dce2ec; border-radius: 999px; background: #fff; color: #43506a; padding: .55rem .9rem; font-weight: 700; cursor: pointer; }
.class-chip:hover,
.class-chip.active { border-color: #1865d8; background: #eaf2ff; color: #1456b8; }
.register-card { padding: 0; overflow: hidden; }
.register-card > .card-heading { padding: 1.2rem 1.3rem; margin: 0; }
.fee-register-wrap { width: 100%; overflow: auto; border-top: 1px solid #e5eaf1; max-height: calc(100vh - 320px); }
.fee-register-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-size: .82rem; }
.fee-register-table th,
.fee-register-table td { min-width: 76px; height: 58px; padding: .55rem; text-align: center; border-right: 1px solid #e8ecf2; border-bottom: 1px solid #e8ecf2; background: #fff; }
.fee-register-table thead th { position: sticky; top: 0; z-index: 3; height: 66px; background: #f5f7fb; color: #35405a; }
.fee-register-table thead th span,
.fee-register-table thead th small { display: block; }
.fee-register-table thead th small { margin-top: .2rem; color: #7d879b; font-size: .66rem; font-weight: 600; }
.fee-register-table .register-student-column { position: sticky; left: 0; z-index: 2; min-width: 245px; max-width: 245px; text-align: left; box-shadow: 5px 0 9px -9px #25324d; }
.fee-register-table thead .register-student-column { z-index: 5; background: #eef2f8; }
.fee-register-table .register-student-column a { display: block; overflow: hidden; color: #17213a; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.fee-register-table .register-student-column small { display: block; overflow: hidden; margin-top: .25rem; color: #7d879b; text-overflow: ellipsis; white-space: nowrap; }
.register-check-cell.received { background: #eef9f1; }
.register-check-cell input { width: 19px; height: 19px; accent-color: #1a9b50; cursor: pointer; }
.register-check-cell input:disabled { cursor: not-allowed; opacity: .38; }
.portal-alert.warning { border-color: #f0d89c; background: #fff8e7; color: #755813; }
.portal-alert.warning a { color: inherit; font-weight: 800; text-decoration: underline; }

@media (max-width: 760px) {
    .register-control-row { grid-template-columns: 1fr; }
    .register-card { margin-inline: -1rem; border-radius: 0; }
    .fee-register-wrap { max-height: calc(100vh - 310px); }
    .fee-register-table .register-student-column { min-width: 180px; max-width: 180px; }
    .fee-register-table th,
    .fee-register-table td { min-width: 68px; }
}
