/* Shared Bootstrap 4 / Vuexy refinements. Keep vendor assets unchanged. */
.mhba-portal { --mhba-accent: #5546d7; --mhba-border: #dce1e8; --mhba-ink: #293347; }
.mhba-portal body { color: var(--mhba-ink); background-color: #f6f7fa; line-height: 1.6; }
.mhba-portal h1, .mhba-portal h2, .mhba-portal h3, .mhba-portal h4 { color: var(--mhba-ink); line-height: 1.3; }
.mhba-portal h1 { font-size: clamp(1.5rem, 2.3vw, 2rem); }
.mhba-portal .text-muted { color: #626d7e !important; }
.mhba-portal .app-content, .mhba-portal .content-wrapper, .mhba-portal .content-body,
.mhba-portal .card, .mhba-portal .card-body, .mhba-portal [class*="col-"] { min-width: 0; }
.mhba-portal .content-header-title, .mhba-portal .card-title,
.mhba-portal p, .mhba-portal label, .mhba-portal .alert { overflow-wrap: anywhere; }
.mhba-portal .card { border: 1px solid #e6e9ef; border-radius: .65rem; box-shadow: 0 3px 14px rgba(35,46,66,.04); }
.mhba-portal .card-header { gap: .75rem; flex-wrap: wrap; }
.mhba-portal .card-header .heading-elements { position: static; }
.mhba-portal .btn { border-radius: .35rem; line-height: 1.4; white-space: normal; overflow-wrap: normal; min-height: 2.5rem; }
.mhba-portal .btn-sm { min-height: 2.25rem; }
.mhba-portal .btn-primary { background-color: var(--mhba-accent) !important; border-color: var(--mhba-accent) !important; }
.mhba-portal .btn-outline-primary { color: var(--mhba-accent); border-color: var(--mhba-accent); }
.mhba-portal .btn-outline-secondary { color: #526074; border-color: #b5bfcc; }
.mhba-portal .btn-outline-info { color: #126c87; border-color: #126c87; }
.mhba-portal :is(a,button,input,select,textarea,[tabindex]):focus-visible { outline: 3px solid #5546d7; outline-offset: 3px; }
.mhba-portal .form-control { max-width: 100%; border-color: #bdc6d2; min-height: 2.75rem; }
.mhba-portal textarea.form-control { min-height: 7rem; }
.mhba-portal label { font-weight: 500; }
.mhba-portal .input-group { flex-wrap: wrap; }
.mhba-portal .select2-container { max-width: 100%; }
.mhba-portal .select2-container .select2-selection--single { min-height: 2.75rem; }
.mhba-portal .select2-selection--multiple .select2-selection__choice { white-space: normal; max-width: 100%; }
.mhba-portal .table-responsive { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.mhba-portal .table { color: var(--mhba-ink); }
.mhba-portal .table th { background: #f5f7fa; color: #435168; font-size: .82rem; letter-spacing: .01em; text-transform: none; }
.mhba-portal .table :is(th,td) { vertical-align: middle; padding: .85rem 1rem; }
.mhba-portal .table td { overflow-wrap: break-word; }
.mhba-portal .table .btn, .mhba-portal .table a[class*="btn-"] { white-space: normal; min-width: max-content; }
.mhba-portal .dataTables_wrapper { min-width: 0; max-width: 100%; }
.mhba-portal .dataTables_wrapper > .row { margin-left: 0; margin-right: 0; }
.mhba-portal .dataTables_filter input { max-width: min(16rem, 100%); }
.mhba-portal .dt-buttons { display: flex; flex-wrap: wrap; gap: .35rem; }
.mhba-portal .pagination { flex-wrap: wrap; gap: .15rem; }
.mhba-portal .nav-tabs { flex-wrap: wrap; gap: .25rem; }
.mhba-portal .nav-tabs .nav-link { white-space: normal; }
.mhba-portal .breadcrumb { flex-wrap: wrap; }
.mhba-portal .modal-dialog { max-width: calc(100% - 2rem); }
.mhba-portal .modal-dialog:not(.modal-lg):not(.modal-xl) { width: 500px; }
.mhba-portal .modal-header { align-items: flex-start; gap: .5rem; }
.mhba-portal .modal-header .modal-title { overflow-wrap: anywhere; }
.mhba-portal .modal .modal-content { border-radius: .65rem; }
.mhba-portal .modal-dialog-scrollable .modal-content { max-height: calc(100vh - 2rem); }
.mhba-portal .modal-dialog-scrollable .modal-body { min-height: 0; }
.mhba-portal .modal-footer { gap: .5rem; flex-wrap: wrap; }
.mhba-portal .modal-footer > * { margin: 0; }
.mhba-portal .modal-header .close { margin: -.25rem -.25rem -.25rem auto; padding: .5rem; transform: none; }
.mhba-portal .footer p { display: flex; flex-wrap: wrap; gap: .6rem 1.25rem; align-items: center; }
.mhba-portal .footer .float-md-right { float: none !important; display: inline-block !important; }
.mhba-portal .footer a { cursor: pointer; }
.mhba-portal .content-body img { max-width: 100%; height: auto; }
.mhba-portal .apexcharts-canvas, .mhba-portal .chartjs { max-width: 100%; }
/* The existing template switches to its vertical drawer below 1200px. */
@media (min-width: 1200px) {
    .mhba-portal body.horizontal-menu .horizontal-menu-wrapper { position: relative; top: auto; height: auto; padding-top: 5.5rem; }
    .mhba-portal .horizontal-menu-wrapper .navbar-horizontal { position: relative !important; top: auto !important; margin: 0 1.5rem !important; width: calc(100% - 3rem); left: auto; }
    .mhba-portal .horizontal-menu-wrapper .navbar-container { width: 100%; padding: .5rem; }
    .mhba-portal #main-menu-navigation { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; float: none; }
    .mhba-portal #main-menu-navigation > li > a { padding: .7rem .85rem; border-radius: .35rem; white-space: nowrap; }
    .mhba-portal #main-menu-navigation > .mhba-nav-group { border-left: 1px solid var(--mhba-border); margin-left: .25rem; padding-left: .5rem; }
    .mhba-portal body.horizontal-menu .app-content.content { padding: 1.5rem; margin-top: 0 !important; }
}
.mhba-portal #main-menu-navigation > li.active > a { background: #eeebff !important; color: #4535bb !important; box-shadow: none !important; }
@media (max-width: 1199.98px) {
    .mhba-portal .main-menu { max-width: min(300px, calc(100vw - 3rem)); }
    .mhba-portal .main-menu-content { overflow-y: auto; overscroll-behavior: contain; }
    .mhba-portal .main-menu-content .nav-link { white-space: normal; padding: .85rem 1rem; }
    .mhba-portal .main-menu .mhba-nav-group { border-top: 1px solid var(--mhba-border); margin-top: .5rem; padding-top: .5rem; }
    .mhba-portal .app-content.content { margin-left: 0 !important; padding: 1.25rem !important; }
}
@media (max-width: 767.98px) {
    .mhba-portal .app-content.content { padding: 1rem !important; }
    .mhba-portal .content-header, .mhba-portal .content-header-right { width: 100%; }
    .mhba-portal .content-header .float-right { float: none !important; }
    .mhba-portal .card-body { padding: 1.15rem; }
    .mhba-portal .card-header { padding: 1rem 1.15rem; }
    .mhba-portal .btn-group { flex-wrap: wrap; gap: .25rem; }
    .mhba-portal .btn-group > .btn { border-radius: .35rem !important; }
    .mhba-portal .table-responsive > .table { min-width: 600px; }
    .mhba-portal .dataTables_filter, .mhba-portal .dataTables_length { text-align: left !important; }
    .mhba-portal .dataTables_filter label { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
    .mhba-portal .dataTables_filter input { margin-left: 0 !important; }
    .mhba-portal .dataTables_paginate .pagination { justify-content: flex-start !important; }
    .mhba-portal .modal-dialog { margin: 1rem auto; }
    .mhba-portal .btn { min-height: 44px; }
    .mhba-portal .form-control { font-size: 16px; }
    .mhba-portal .header-navbar .navbar-container { padding: 0 .5rem; }
    .mhba-portal .header-navbar .navbar-container .nav-link { padding-left: .6rem; padding-right: .6rem; }
    .mhba-portal .footer { padding: 1rem; }
    .mhba-portal .wizard > .steps > ul { display: flex; flex-wrap: wrap; padding: 0; }
    .mhba-portal .wizard > .steps > ul > li { float: none; width: 50%; }
    .mhba-portal .wizard > .content { min-height: 0; margin: 0; }
    .mhba-portal .wizard > .content > .body { position: relative; width: 100%; padding: 1rem; }
    .mhba-portal .wizard > .actions > ul { display: flex; flex-wrap: wrap; gap: .5rem; }
}
@media (max-width: 399.98px) {
    .mhba-portal .modal-footer > .btn { flex: 1 1 100%; }
    .mhba-portal .header-navbar .selected-language { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .mhba-portal *, .mhba-portal *::before, .mhba-portal *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
/* Publication is distinct from ordinary navigation and destructive cleanup. */
.mhba-portal .btn-masterdone { color: #fff !important; background: #006b63 !important; border: 1px solid #006b63 !important; font-weight: 600; }
.mhba-portal .btn-masterdone:hover, .mhba-portal .btn-masterdone:focus { background: #00534d !important; border-color: #00534d !important; }
.mhba-portal .mhba-auth-card { width: 100%; }
.mhba-portal .auth-method-panel { border: 1px solid var(--mhba-border); border-radius: .5rem; padding: 1rem; }
.mhba-portal .auth-method-select-wrap { min-width: 0; max-width: 100%; }
@media (max-width: 767.98px) {
    .mhba-portal .auth-method-select-wrap, .mhba-portal .auth-method-select { width: 100%; }
    .mhba-portal .bg-authentication { width: 100%; }
}
.mhba-portal #myModal4 .modal-header { background-color: #006b63 !important; color: #fff; }
.mhba-portal #myModal4 .modal-title { color: #fff; }
/* Account-scoped appearance preferences; the existing mobile drawer is retained. */
.mhba-portal .mhba-profile { max-width: 1120px; margin-inline: auto; }
.mhba-portal .mhba-profile-form { max-width: 640px; }
.mhba-portal .mhba-profile-tabs { gap: .35rem; }
.mhba-portal .mhba-profile-tabs .nav-link { display: flex; align-items: center; gap: .6rem; padding: .85rem 1rem; }
.mhba-portal .mhba-profile .custom-control-label { line-height: 1.65; cursor: pointer; }
.mhba-portal .mhba-menu-tools { display: none; }
@media (min-width:1200px) {
    .mhba-portal[data-mhba-menu="vertical"] { --mhba-sidebar-width: 260px; }
    .mhba-portal[data-mhba-menu="vertical"][data-mhba-collapsed="true"] { --mhba-sidebar-width: 78px; }
    .mhba-portal[data-mhba-menu="vertical"] body.horizontal-menu .horizontal-menu-wrapper { position: fixed; left: 0; top: 5rem; bottom: 0; width: var(--mhba-sidebar-width); height: auto; padding: 0; background: #fff; z-index: 990; }
    .mhba-portal[data-mhba-menu="vertical"] .horizontal-menu-wrapper .navbar-horizontal { display: flex; flex-direction: column; align-items: stretch; width: 100%; height: 100%; margin: 0 !important; border-radius: 0; box-shadow: 2px 0 10px rgba(35,46,66,.05); }
    .mhba-portal[data-mhba-menu="vertical"] .horizontal-menu-wrapper .main-menu-content { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; }
    .mhba-portal[data-mhba-menu="vertical"] #main-menu-navigation { flex-direction: column; flex-wrap: nowrap; align-items: stretch; justify-content: flex-start; height: auto; gap: .2rem; }
    .mhba-portal[data-mhba-menu="vertical"] #main-menu-navigation > li { width: 100%; flex: 0 0 auto; margin: 0; padding: 0; }
    .mhba-portal[data-mhba-menu="vertical"] #main-menu-navigation > li > a { display: flex; align-items: center; gap: .6rem; min-height: 44px; white-space: normal; text-align: left; }
    .mhba-portal[data-mhba-menu="vertical"] #main-menu-navigation > .mhba-nav-group { border-left: 0; border-top: 1px solid var(--mhba-border); margin: .5rem 0 0; padding: .5rem 0 0; }
    .mhba-portal[data-mhba-menu="vertical"] body.horizontal-menu .app-content.content { margin-left: var(--mhba-sidebar-width) !important; width: calc(100% - var(--mhba-sidebar-width)); padding-top: 6rem; transition: none; }
    .mhba-portal[data-mhba-menu="vertical"] .footer { margin-left: var(--mhba-sidebar-width); }
    .mhba-portal[data-mhba-menu="vertical"] .mhba-menu-tools { display: flex; flex: 0 0 auto; justify-content: center; padding: .75rem .5rem; border-bottom: 1px solid var(--mhba-border); }
    .mhba-portal[data-mhba-menu="vertical"] .mhba-sidebar-toggle { width: 100%; }
    .mhba-portal[data-mhba-menu="vertical"][data-mhba-collapsed="true"] #main-menu-navigation > li > a { justify-content: center; padding: .8rem .5rem; }
    .mhba-portal[data-mhba-menu="vertical"][data-mhba-collapsed="true"] #main-menu-navigation > li > a > span,
    .mhba-portal[data-mhba-menu="vertical"][data-mhba-collapsed="true"] .mhba-sidebar-toggle > span { display: none; }
    .mhba-portal[data-mhba-menu="vertical"][data-mhba-collapsed="true"] #main-menu-navigation > li > a > i { margin: 0; }
}
@media (max-width:991.98px) {
    .mhba-portal .mhba-profile-tabs { flex-direction: row !important; flex-wrap: wrap; }
    .mhba-portal .mhba-profile-tabs .nav-link { flex: 1 1 12rem; }
}

/* Readable tables and consistently sized header controls in both portals. */
.mhba-portal .table th { word-break: normal; overflow-wrap: normal; }
.mhba-portal .table:not(.dataTable) th { white-space: nowrap; }
.mhba-portal .header-navbar .navbar-container .nav-link > .feather { font-size: 1.25rem; width: 1.25rem; height: 1.25rem; line-height: 1; }
.mhba-portal .header-navbar .dropdown-user-link img.round { width: 32px; height: 32px; object-fit: contain; }
.mhba-portal .header-navbar .nav-link.mhba-appearance-shortcut { display: flex; align-items: center; justify-content: center; }
.mhba-portal #column-selectors .application-table-responsive table th { overflow-wrap: normal; word-break: normal; }
.mhba-portal #column-selectors .application-table-responsive table .btn { min-width: 0; }
@media (max-width: 575.98px) {
    .mhba-portal .header-navbar .navbar-container .nav-link { padding-left: .45rem; padding-right: .45rem; }
    .mhba-portal .header-navbar .navbar-container .nav-link > .feather { font-size: 1.15rem; }
}

.mhba-portal .mhba-table-overflow::before { content: "Weitere Spalten: Tabelle horizontal scrollen ↔"; display: block; position: sticky; left: 0; width: 100%; padding: .4rem .6rem; font-size: .8rem; color: #526074; background: #f5f7fa; white-space: normal; }
/* Compact navigation search; results only contain the viewer's rendered menu. */
.mhba-portal .mhba-header-search { position: relative; display: flex; align-items: center; width: 150px; margin-inline: .35rem; }
.mhba-portal .mhba-header-search .form-control { min-height: 2.3rem; }
.mhba-portal .mhba-search-results { position: absolute; top: 100%; right: 0; width: 260px; max-width: calc(100vw - 2rem); max-height: 50vh; overflow: auto; background: #fff; border: 1px solid var(--mhba-border); border-radius: .35rem; box-shadow: 0 4px 16px #29334722; z-index: 1100; }
.mhba-portal .mhba-search-results .dropdown-item { white-space: normal; padding: .75rem 1rem; }
.mhba-portal #mhba-appearance form { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
@media (max-width: 575.98px) {
    .mhba-portal .mhba-header-search { width: 100px; margin-inline: .15rem; }
    .mhba-portal .header-navbar .selected-language { display: none; }
    .mhba-portal .mhba-header-search .form-control { font-size: 16px; padding-inline: .4rem; }
    .mhba-portal .mhba-search-results { position: fixed; top: 5rem; left: 1rem; right: 1rem; width: auto; }
}

/* Page actions stay aligned without floats or asymmetric button margins. */
.mhba-portal .mhba-page-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: .6rem; padding-bottom: .5rem; }
.mhba-portal .mhba-page-actions > .btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; margin: 0; min-height: 2.5rem; }
.mhba-portal .mhba-page-actions > .btn > i { margin: 0; font-size: 1rem; }
@media (max-width: 1199.98px) { .mhba-portal .mhba-page-actions { justify-content: flex-start; } }
@media (max-width: 399.98px) { .mhba-portal .mhba-page-actions > .btn { flex: 1 1 auto; } }
/* A shared welcome design with a clear audience for each sign-in portal. */
.mhba-portal .mhba-auth-shell { background: #f4f7fb; }
.mhba-portal .mhba-welcome { width: 100%; max-width: 1080px; margin: 2rem auto; }
.mhba-portal .mhba-welcome-card { overflow: hidden; margin-bottom: 0; box-shadow: 0 12px 40px rgba(35,46,66,.08); }
.mhba-portal .mhba-welcome-brand { display: flex; flex-direction: column; height: 100%; padding: 2.5rem; background: #edf4fa; border-right: 1px solid #dce5ee; }
.mhba-portal .mhba-portal-label { align-self: flex-start; border-radius: 2rem; padding: .4rem .75rem; background: #dcecf8; color: #174b70; font-size: .85rem; font-weight: 600; }
.mhba-portal .content-body .mhba-welcome-logo { display: block; width: 100%; max-width: 300px; height: auto; margin: 2rem auto; }
.mhba-portal .mhba-welcome-brand h2 { font-size: 1.45rem; }
.mhba-portal .mhba-welcome-brand p { color: #526074; }
.mhba-portal .mhba-portal-switch { margin-top: auto; padding-top: 1.5rem; border-top: 1px solid #d0deeb; }
.mhba-portal .mhba-portal-switch span, .mhba-portal .mhba-portal-switch > a { display: block; }
.mhba-portal .mhba-portal-switch a span { display: inline; }
.mhba-portal .mhba-portal-switch > a { margin-top: .35rem; font-weight: 600; }
.mhba-portal .mhba-welcome-form > .card-body { padding: 2.5rem; }
.mhba-portal .mhba-welcome-form h1 { font-size: 1.65rem; }
.mhba-portal .mhba-welcome-form .card-header, .mhba-portal .mhba-welcome-form .card-content > .card-body { padding-inline: 0; }
.mhba-portal .mhba-welcome-form .px-2 { padding-inline: 0 !important; }
.mhba-portal .mhba-welcome .auth-method-panel { box-shadow: none; background: #f7f8fc; border: 1px solid #dce1e8; padding: 1rem; }
.mhba-portal .mhba-welcome .nav-pills { gap: .5rem; padding: .35rem; background: #f7f8fc; border-radius: .4rem; }
.mhba-portal .mhba-welcome .nav-pills .nav-link { padding: .65rem 1rem; }
@media (max-width: 991.98px) {
    .mhba-portal .mhba-welcome { margin-block: 1rem; }
    .mhba-portal .mhba-welcome-brand { padding: 1.5rem; border-right: 0; border-bottom: 1px solid #dce5ee; }
    .mhba-portal .content-body .mhba-welcome-logo { max-width: 180px; margin: 1rem 0; }
    .mhba-portal .mhba-welcome-form > .card-body { padding: 1.5rem; }
    .mhba-portal .mhba-portal-switch { padding-top: 1rem; }
}

@media (max-width: 1199.98px) { .mhba-portal .mhba-auth-shell .app-content.content { padding-top: 6rem !important; } }
/* Original transparent student illustration and balanced MHBA branding. */
.mhba-portal .mhba-students-art { width: 280px; max-width: 100%; height: 190px; flex: 0 0 auto; background: url('../images/pages/vuexy-login-bg.png') no-repeat -90px -730px / 1919px 985px; margin: .5rem 0 1rem; }
.mhba-portal .content-body .mhba-welcome-logo { max-width: 260px; margin: 1.5rem 0; object-fit: contain; }
.mhba-portal .mhba-brand-mark { display: block; width: 52px; height: 39px; flex-shrink: 0; }
.mhba-portal .mhba-auth-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 2rem; min-height: 5rem; background: #fff; border-bottom: 1px solid var(--mhba-border); position: fixed; top: 0; width: 100%; z-index: 1030; }
.mhba-portal .mhba-auth-brand { display: inline-flex; gap: .8rem; align-items: center; color: var(--mhba-ink); font-weight: 600; }
.mhba-portal .mhba-auth-header .btn { display: inline-flex; align-items: center; gap: .5rem; }
.mhba-portal .mhba-site-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; padding: 1rem 2rem; background: #fff; border-top: 1px solid var(--mhba-border); }
.mhba-portal .mhba-footer-copy { color: #626d7e; font-size: .9rem; }
.mhba-portal .mhba-footer-links { display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.mhba-portal .mhba-footer-link { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem 0; min-height: 44px; border: 0; background: transparent; color: #435168; font: inherit; text-align: left; cursor: pointer; }
.mhba-portal .mhba-footer-link:hover { color: var(--mhba-accent); text-decoration: underline; }
.mhba-portal .mhba-footer-link i { font-size: 1.1rem; flex-shrink: 0; }
.mhba-portal .mhba-legal-modal .modal-dialog { width: 760px; max-width: calc(100% - 2rem); }
.mhba-portal .mhba-legal-modal .modal-header { background: #f5f7fa; align-items: center; }
.mhba-portal .mhba-legal-modal .modal-title { font-size: 1.25rem; }
.mhba-portal .mhba-legal-modal .close { width: 44px; height: 44px; flex-shrink: 0; font-size: 1.8rem; opacity: 1; color: #435168; }
.mhba-portal .mhba-legal-modal .modal-body { overflow-wrap: anywhere; line-height: 1.7; }
@media (max-width: 767.98px) {
    .mhba-portal .mhba-auth-header { padding: .65rem 1rem; gap: .5rem; }
    .mhba-portal .mhba-auth-brand { font-size: .85rem; gap: .5rem; }
    .mhba-portal .mhba-auth-header .mhba-brand-mark { width: 44px; height: 33px; }
    .mhba-portal .mhba-site-footer { padding: 1rem; }
    .mhba-portal .mhba-footer-links { width: 100%; gap: .25rem 1rem; }
    .mhba-portal .mhba-footer-link { flex: 1 1 40%; font-size: .9rem; }
    .mhba-portal .content-body .mhba-welcome-logo { max-width: 220px; }
    .mhba-portal .mhba-students-art { width: 224px; height: 152px; background-size: 1535px 788px; background-position: -72px -584px; }
}
.mhba-portal .mhba-students-art { mix-blend-mode: multiply; }
.mhba-portal .mhba-auth-shell .content-wrapper,
.mhba-portal .mhba-auth-shell .flexbox-container { height: auto !important; }
.mhba-portal .mhba-auth-shell .flexbox-container { min-height: calc(100vh - 12rem); }
.mhba-portal .mhba-auth-shell .app-content.content { padding-top: 6rem !important; overflow: visible; }
.mhba-portal .mhba-brand-mark { width: 80px; height: 32px; object-fit: contain; }
@media (max-width: 767.98px) { .mhba-portal .mhba-auth-header .mhba-brand-mark { width: 60px; height: 24px; } }
/* Keep the original artwork fully visible at the lower right, outside forms. */
.mhba-portal .mhba-welcome-art { display: flex; justify-content: flex-end; padding: 0 2rem 1rem; }
.mhba-portal .mhba-welcome-art .mhba-students-art { width: 260px; height: 180px; margin: 0; background-size: 1919px 985px; background-position: -95px -735px; }
@media (max-width: 767.98px) { .mhba-portal .mhba-welcome-art { padding-right: 1rem; } }
/* Persistent chrome reserves its measured height; decorative art never intercepts input. */
.mhba-portal body { padding-bottom: calc(var(--mhba-footer-height, 150px) + 16px); }
.mhba-portal .mhba-site-footer { position: fixed; bottom: 0; left: 0; right: 0; z-index: 990; box-shadow: 0 -2px 12px #2933470a; }
.mhba-portal .mhba-auth-shell .app-content.content { position: relative; z-index: 1; }
.mhba-portal .mhba-welcome-art { position: fixed; right: 1.5rem; bottom: calc(var(--mhba-footer-height, 150px) + 12px); padding: 0; z-index: 0; pointer-events: none; opacity: var(--mhba-art-opacity, .65); }
.mhba-portal .mhba-welcome-art .mhba-students-art { width: 338px; height: 234px; background-size: 2495px 1280.5px; background-position: -123.5px -955.5px; }
.mhba-portal .mhba-welcome-brand { justify-content: center; gap: 2rem; }
.mhba-portal .content-body .mhba-welcome-logo { max-width: 280px; margin: 0 auto; }
.mhba-portal .mhba-portal-switch { margin-top: 0; }
@media (max-width: 767.98px) {
    .mhba-portal .mhba-site-footer { padding: .4rem 1rem; gap: .25rem; }
    .mhba-portal .mhba-footer-copy { font-size: .75rem; }
    .mhba-portal .mhba-footer-links { gap: 0 .5rem; }
    .mhba-portal .mhba-welcome-art { right: .5rem; }
    .mhba-portal .mhba-welcome-art .mhba-students-art { width: 286px; height: 198px; background-size: 2111px 1083.5px; background-position: -104.5px -808.5px; }
    .mhba-portal .content-body .mhba-welcome-logo { max-width: 240px; }
}
.mhba-portal body { height: auto; min-height: 100vh; }
.mhba-portal .mhba-welcome-art { mix-blend-mode: multiply; }
.mhba-portal .mhba-welcome-art .mhba-students-art { mix-blend-mode: normal; }
/* Fill the partner panel proportionally without exceeding the source's native width. */
.mhba-portal .content-body .mhba-welcome-logo { width: 100%; max-width: 400px; height: auto; }

/* Compact fixed footer: retain every legal action and usable touch targets. */
@media (max-width: 767.98px) {
    .mhba-portal .mhba-site-footer { padding: .25rem .75rem max(.25rem, env(safe-area-inset-bottom)); gap: 0; }
    .mhba-portal .mhba-footer-copy { width: 100%; text-align: center; line-height: 1.2; font-size: .7rem; }
    .mhba-portal .mhba-footer-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; gap: 0; }
    .mhba-portal .mhba-footer-link { min-width: 0; justify-content: center; flex-direction: column; gap: .15rem; padding: .35rem .1rem; min-height: 44px; font-size: .8rem; line-height: 1.2; text-align: center; }
    .mhba-portal .mhba-footer-link i { font-size: 1rem; }
    .mhba-portal .mhba-footer-link span { overflow-wrap: anywhere; }
    .mhba-portal .cleanup-heading { gap: .75rem; flex-wrap: wrap; }
}

/* Content-sized dialogs; only the body scrolls, with visible close/actions. */
.mhba-portal .modal-dialog { width: 500px; max-width: calc(100% - 2rem); margin: 1rem auto; }
.mhba-portal .modal-dialog.modal-lg { width: 800px; }
.mhba-portal .modal-dialog.modal-xl { width: 1100px; }
.mhba-portal .modal-dialog.modal-dialog-scrollable { height: auto; }
.mhba-portal .modal-dialog .modal-content { height: auto; max-height: calc(100vh - 2rem); max-height: calc(100dvh - 2rem); overflow: hidden; }
.mhba-portal .modal-dialog .modal-body { min-height: 0; overflow-y: auto; overflow-wrap: anywhere; }
.mhba-portal .modal-dialog .modal-header, .mhba-portal .modal-dialog .modal-footer { flex-shrink: 0; }
.mhba-portal .modal-dialog form.modal-content { display: flex; flex-direction: column; }
@media (max-width: 575.98px) {
    .mhba-portal .modal-dialog { margin: .75rem auto; max-width: calc(100% - 1.5rem); }
    .mhba-portal .modal-dialog .modal-content { max-height: calc(100dvh - 1.5rem); }
}

/* Keep primary navigation in one accessible, horizontally scrollable row. */
@media(min-width:1200px){
 .mhba-portal:not([data-mhba-menu="vertical"]) #main-menu-navigation{flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;justify-content:flex-start;scrollbar-width:thin;padding-bottom:.35rem;max-width:100%}
 .mhba-portal:not([data-mhba-menu="vertical"]) #main-menu-navigation>li{flex:0 0 auto}
 .mhba-portal:not([data-mhba-menu="vertical"]) #main-menu-navigation>li>a{display:flex;align-items:center;justify-content:center;gap:.4rem}
}
.mhba-portal .mhba-idle-indicator .nav-link{font-size:.75rem;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:.4rem;padding-right:.4rem}
.mhba-portal .mhba-idle-indicator i{font-size:1rem}
@media(max-width:575.98px){.mhba-portal .mhba-idle-indicator i{display:none}.mhba-portal .mhba-idle-indicator .nav-link{font-size:.7rem;padding:0 .25rem}}
.cleanup-page .table th{white-space:normal;min-width:6rem}
.cleanup-page .table th:first-child{min-width:8rem}
.cleanup-page .table th:last-child,.cleanup-page .table td:last-child{text-align:left!important}
.cleanup-page .table .btn{white-space:nowrap}
.cleanup-page .row>.col-md-4{display:flex}.cleanup-page .row>.col-md-4>.card{width:100%}
.cleanup-page .row>.col-md-4>.card .card-body{display:flex;flex-direction:column;justify-content:space-between;gap:.5rem}
.mhba-portal .header-navbar .mhba-idle-indicator{align-self:center}
.mhba-portal .header-navbar .mhba-idle-indicator .nav-link{display:flex;align-items:center;justify-content:center;gap:.25rem;min-height:44px}
