/* Shared screen density. Keep document/Excel/print templates at their original scale. */
@media screen {
    html { font-size: 14px; }
    body { --page-gutter: clamp(1rem, 2.3vw, 2rem); --sidebar-width: 240px; --navbar-height: 60px; }
    body .fw-extrabold { font-weight: 800; }
    body .gap-1\.5 { gap: .375rem; }
    body .gap-2\.5 { gap: .625rem; }
    body .gap-3\.5 { gap: .875rem; }
    body .p-2\.5 { padding: .625rem; }
    body .p-3\.5 { padding: .875rem; }
    body .px-2\.5 { padding-inline: .625rem; }
    body .px-3\.5 { padding-inline: .875rem; }
    body .py-0\.5 { padding-block: .125rem; }
    body .py-1\.5 { padding-block: .375rem; }
    body .py-2\.5 { padding-block: .625rem; }
    body .py-3\.5 { padding-block: .875rem; }
    body .pt-2\.5 { padding-top: .625rem; }
    body .mb-0\.5 { margin-bottom: .125rem; }
    body .mb-1\.5 { margin-bottom: .375rem; }
    body .mb-2\.5 { margin-bottom: .625rem; }
    body .me-1\.5 { margin-right: .375rem; }
    body .main-wrapper { min-width: 0; }
    body .main-wrapper h1 { font-size: clamp(1.65rem, 2.3vw, 2.35rem); line-height: 1.25; }
    body .main-wrapper .student-directory-page .student-hero { padding: clamp(1.2rem, 2vw, 1.8rem) !important; min-height: 0; }
    body .main-wrapper > .container-fluid,
    body .main-wrapper > .container,
    body .home-refresh > .container-fluid,
    body .home-refresh .hero-full-width > .container-fluid,
    body .jadwal-refresh > .container,
    body .jadwal-hero > .container,
    body .ujian-hero > .container,
    body .navbar-custom > .container-fluid {
        width: 100%; max-width: 1440px; margin-inline: auto;
        padding-inline: var(--page-gutter) !important;
    }
    body .navbar-custom { padding-block: .55rem; }
    body .navbar-custom .navbar-brand { min-width: 0; gap: .55rem; margin-right: 1rem; }
    body .brand-logo-mark { width: 34px; height: 34px; border-radius: 10px; font-size: .88rem; }
    body .brand-name-main { font-size: 1.05rem; }
    body .brand-tagline-sub { font-size: .65rem; }
    body .nav-item-link { font-size: .81rem; padding: .5rem .65rem !important; }
    body .main-wrapper .breadcrumb { flex-wrap: wrap; font-size: .78rem !important; margin-bottom: 0; }
    body .main-wrapper > .container-fluid > nav { margin-top: 0; margin-bottom: 1rem !important; }
    body .main-wrapper .detail-hero-banner,
    body .main-wrapper .directory-hero-banner { padding: clamp(1.2rem, 2vw, 1.8rem) !important; border-radius: 18px !important; margin-bottom: 1.3rem !important; }
    body .main-wrapper .detail-hero-banner h1,
    body .main-wrapper .directory-hero-banner h1,
    body .main-wrapper .ujian-hero h1,
    body .main-wrapper .jadwal-hero h1 { font-size: clamp(1.65rem, 2.3vw, 2.35rem) !important; line-height: 1.25; margin-bottom: .65rem !important; }
    body .main-wrapper .detail-hero-banner p,
    body .main-wrapper .directory-hero-banner p,
    body .main-wrapper .jadwal-hero p,
    body .main-wrapper .ujian-hero p { font-size: .92rem !important; line-height: 1.7 !important; }
    body .main-wrapper .detail-hero-banner .z-2 > .d-flex:first-child { margin-bottom: 1.25rem !important; }
    body .main-wrapper .detail-hero-banner .z-2 > .d-flex:last-child { gap: 1rem !important; }
    body .main-wrapper .detail-hero-icon-box { width: 52px; height: 52px; border-radius: 15px; font-size: 1.5rem; }
    body .main-wrapper .detail-hero-banner .btn { min-height: 36px; padding: .5rem .8rem !important; font-size: .78rem; }
    body .main-wrapper .detail-hero-banner .z-2 > .d-flex:first-child > .d-flex:last-child { flex-wrap: wrap; }
    body .main-wrapper .kpi-metric-card { padding: 1.1rem; border-radius: 16px; }
    body .main-wrapper .kpi-metric-card .fs-1 { font-size: 2rem !important; line-height: 1.2; }
    body .main-wrapper .kpi-metric-card .align-items-baseline { flex-wrap: wrap; margin-block: .5rem !important; }
    body .main-wrapper .kpi-metric-card .small { margin-bottom: .65rem; }
    body .main-wrapper .kpi-icon-pill { width: 34px; height: 34px; flex-shrink: 0; }
    body .main-wrapper .table-card-container .card-header { padding: 1.1rem 1.25rem !important; }
    body .main-wrapper .table-card-container .card-header > .d-flex { flex-wrap: wrap; }
    body .main-wrapper .table-card-container h5 { font-size: 1.05rem; }
    body .main-wrapper .executive-table th,
    body .main-wrapper .executive-table td { padding: .85rem 1rem !important; }
    body .main-wrapper .table-responsive { max-width: 100%; overscroll-behavior-x: contain; }
    body .main-wrapper .modern-sync-bar { padding: 1rem; }
    body .main-wrapper .modern-sync-bar > div { flex-wrap: wrap; gap: .5rem; }
    body .main-wrapper .home-refresh .hero-full-width > .container-fluid { padding-block: 2.5rem 1.75rem !important; }
    body .main-wrapper .home-refresh .hero-full-width h1 { font-size: clamp(1.9rem, 2.8vw, 2.9rem); max-width: 780px !important; }
    body .main-wrapper .home-refresh .hero-intro { font-size: .95rem; margin-bottom: 1.25rem; }
    body .main-wrapper .home-refresh .hero-orbit { width: 220px; height: 220px; top: 55px; right: 7%; }
    body .main-wrapper .home-refresh .hero-orbit-core { inset: 60px; }
    body .main-wrapper .home-refresh .hero-stat-card { padding: 1rem; }
    body .main-wrapper .home-refresh .hero-full-width { margin-bottom: 2rem !important; }
    body .main-wrapper .iku-section .dashboard-card { padding: 1.1rem; min-height: 175px; }
    body .main-wrapper .iku-section .card-value { font-size: 2rem; margin-top: .65rem; }
    body .main-wrapper .iku-section .card-icon-wrapper { width: 36px; height: 36px; }
    body .main-wrapper .section-title { font-size: 1.15rem; }
    body .main-wrapper section.mb-5 { margin-bottom: 2rem !important; }
    body .main-wrapper .jadwal-hero, body .main-wrapper .ujian-hero { padding: 2.4rem 0 3rem; }
    body .main-wrapper .jadwal-timezone { padding: 1.15rem; }
    body .main-wrapper .timezone-icon { width: 40px; height: 40px; margin-bottom: .8rem; font-size: 1.25rem; }
    body .main-wrapper .card-kpi-ujian { padding: 1.1rem; min-height: 96px; }
    body .main-wrapper .card-kpi-ujian .fs-3 { font-size: 1.8rem !important; }
    body .main-wrapper .filter-panel, body .main-wrapper .jadwal-card { padding: 1.25rem; }
    body .main-wrapper .jadwal-card h6 { font-size: 1.05rem; }
    body .admin-content { padding: 1.2rem var(--page-gutter); width: 100%; max-width: 1680px; margin-inline: auto; min-width: 0; }
    body .admin-content .display-4, body .admin-content .display-5, body .admin-content .display-6 { font-size: clamp(1.65rem, 2vw, 2.3rem); }
    body .admin-content .table-responsive { max-width: 100%; overscroll-behavior-x: contain; }
    body .admin-content .card-header { padding-block: .85rem; }
    body .admin-content .card-body { padding: 1.1rem; }
    body .admin-content .row { --bs-gutter-x: 1.1rem; --bs-gutter-y: 1.1rem; }
    body .admin-navbar { padding-inline: var(--page-gutter); }
    body .standalone-content, body.standalone-page { font-size: 1rem; }
    body.standalone-page h1 { font-size: clamp(1.7rem, 2.5vw, 2.4rem); }
    body.standalone-page .form-control, body.standalone-page .form-select { min-height: 40px; }
}
@media screen and (min-width: 768px) {
    body .p-md-4\.5 { padding: 1.75rem; }
}
/* Expand navigation only when both the brand and all links fit comfortably. */
@media screen and (min-width: 992px) and (max-width: 1199.98px) {
    body .navbar-custom.navbar-expand-lg { flex-wrap: wrap; }
    body .navbar-custom.navbar-expand-lg > .container-fluid { flex-wrap: wrap; }
    body .navbar-custom.navbar-expand-lg .navbar-toggler { display: block; }
    body .navbar-custom.navbar-expand-lg .navbar-collapse { flex-basis: 100%; flex-grow: 1; }
    body .navbar-custom.navbar-expand-lg .navbar-collapse.collapse:not(.show) { display: none !important; }
    body .navbar-custom.navbar-expand-lg .navbar-collapse.show { display: block !important; }
    body .navbar-custom.navbar-expand-lg .navbar-nav { flex-direction: column; padding-block: .75rem !important; }
    body .navbar-custom.navbar-expand-lg .dropdown-menu { position: static; }
}
@media screen and (max-width: 991.98px) {
    body .main-wrapper .home-refresh .hero-orbit { display: none; }
    body .main-wrapper .detail-hero-banner .z-2 > .d-flex:first-child { gap: .8rem !important; }
    body .admin-content { padding: 1rem; }
}
@media screen and (max-width: 575.98px) {
    body .navbar-custom .brand-tagline-sub { max-width: 220px; font-size: .6rem; }
    body .main-wrapper .home-refresh .hero-full-width > .container-fluid { padding-block: 1.75rem 1.25rem !important; }
    body .main-wrapper .hero-full-width .btn, body .main-wrapper .jadwal-hero .btn { min-height: 42px; }
    body .main-wrapper .detail-hero-banner .z-2 > .d-flex:last-child { flex-direction: column; }
    body .main-wrapper .table-card-container .card-header .position-relative { min-width: 0 !important; width: 100%; }
    body .main-wrapper .table-card-container .card-header h5 { overflow-wrap: anywhere; }
    body .main-wrapper .breadcrumb { gap: .2rem; }
    body .main-wrapper .section-title-icon { flex-shrink: 0; }
    body .main-wrapper .chart-header { flex-wrap: wrap; gap: .65rem; }
    body .main-wrapper .kpi-metric-card { padding: 1rem; }
    body .main-wrapper .data-kpi-grid { --bs-gutter-x: .7rem; --bs-gutter-y: .7rem; }
    body .main-wrapper .data-kpi-grid .kpi-metric-card { padding: .85rem; }
    body .main-wrapper .data-kpi-grid .kpi-label { font-size: .62rem; letter-spacing: .025em; }
    body .main-wrapper .data-kpi-grid .kpi-icon-pill { width: 28px; height: 28px; font-size: .85rem; margin-left: .3rem; }
    body .main-wrapper .data-kpi-grid .kpi-metric-card .fs-1 { font-size: 1.75rem !important; }
    body .main-wrapper .jadwal-hero, body .main-wrapper .ujian-hero { padding-block: 1.75rem 2.5rem; }
    body .form-control, body .form-select { font-size: 16px !important; }
    body .navbar-toggler, body .modal-header .btn-close { min-width: 40px; min-height: 40px; }
}
@media screen and (max-width: 359.98px) {
    body .main-wrapper .data-kpi-grid > .col { width: 100%; }
}
