/* ==========================================================================
   Enhanced Responsive Design
   ========================================================================== */

/* ----------- 1600px: Large desktop to medium desktop transition ----------- */
@media (max-width: 1600px) {
    :root {
        --font-size-heading: 1.7rem;
        --font-size-subheading: 1.05em;
        --font-size-text: 11.5px;
        --font-size-base: 0.78rem;
    }
    .search-input { width: 400px; }
    .select-dropdown { width: 230px; }
}

/* ----------- 1465px: Medium desktop screens ----------- */
@media (max-width: 1465px) {
    :root {
        --font-size-heading: 1.6rem;
        --font-size-subheading: 1.0em;
        --font-size-text: 11px;
        --font-size-base: 0.76rem;
        --spacing-large: 12px;
        --spacing-medium: 6px;
        --spacing: 6px;
        --sidebar-width: 140px;
    }
    .search-placeholder { padding: 6px; margin-bottom: 4px !important; }
    .search-input { width: 350px; font-size: 0.75rem; }
    .search-button, .btn-reset { padding: 6px 12px; font-size: 0.75rem; }
    .search-filter-buttons { gap: 12px; padding: 6px 0 0 0; margin-bottom: 4px !important; }
    .select-dropdown { width: 200px; padding: 4px 8px; font-size: 0.75rem; }
    .styled-heading { margin-bottom: 4px; font-size: 1.5rem; }
    .tab-button-group { margin-bottom: 1px; gap: 12px; }
    .btn-tab { padding: 8px 15px; font-size: 0.75rem; }
    .filter-container { margin-bottom: 6px; }
    .filter-container .dropdown { margin-right: 8px; }
    .page-container { margin-top: calc(var(--navbar-height) + 6px) !important; padding: 0 15px !important; padding-top: 0 !important; }
    .d-flex.align-items-center.mb-3.justify-content-between.flex-wrap { margin-bottom: 4px !important; }
    .d-flex.justify-content-between.align-items-center.mb-1 { margin-bottom: 0px !important; }
    .table-wrapper { overflow: auto; max-width: var(--full-width); margin-top: 0 !important; }
    .table-wrapper--standard { --table-min-width: 920px; }
    .table-wrapper--wide { --table-min-width: 1120px; }
    .table-wrapper--xwide { --table-min-width: 1320px; }
    .custom-table { font-size: 10.5px; margin-top: 0 !important; }
    .custom-table th, .custom-table td { padding: 6px; font-size: 10.5px; }
    .d-flex.justify-content-between.align-items-center { margin-bottom: 4px; }
    .badge, .sic-badge, .epc-badge { font-size: 9.5px; padding: 3px 6px; }
    .dropdown.position-relative { min-width: 180px !important; }
    .info-container { height: 70px; padding: 8px; }
    .info-container h2 { font-size: 0.95rem; }
    .info-container p { font-size: 1.1em; }
    .pagination { font-size: 0.75rem; margin: 2px 0; }
    .pagination .page-link { padding: 4px 8px; }
    .table-responsive { margin-top: 0 !important; padding-top: 0 !important; }
    .table-responsive > .d-flex.justify-content-between.align-items-center.mb-2 { margin-bottom: 1px !important; padding: 2px 6px !important; padding-bottom: 0 !important; }
    .mb-3 { margin-bottom: 4px !important; }
    .mb-2 { margin-bottom: 2px !important; }
    .mb-1 { margin-bottom: 1px !important; }
    .page-container > * { margin-bottom: 2px !important; }
    .tab-button-group + * { margin-top: 0 !important; }
    .table-responsive::before { display: none !important; }
}

/* ----------- 1300px: Main responsive trigger for tablets/small desktops ----------- */
@media (max-width: 1300px) {
    :root {
        --font-size-heading: 1.5rem;
        --font-size-subheading: 0.95em;
        --font-size-text: 10.5px;
        --font-size-base: 0.74rem;
        --spacing: 8px;
        --spacing-medium: 8px;
        --spacing-large: 15px;
        --button-padding: 4px 8px;
        --sidebar-width: 110px;
    }
    .search-input { width: 320px; font-size: 0.74rem; }
    .search-button, .btn-reset { padding: 6px 12px; font-size: 0.74rem; }
    .select-dropdown { width: 200px; font-size: 0.74rem; padding: 4px 8px; }
    .table-wrapper--standard { --table-min-width: 880px; }
    .table-wrapper--wide { --table-min-width: 1040px; }
    .table-wrapper--xwide { --table-min-width: 1240px; }
    .custom-table { font-size: 10.5px; }
    .custom-table th, .custom-table td { padding: 6px; font-size: 10.5px; }
    .badge, .sic-badge, .epc-badge { font-size: 9.5px; padding: 3px 7px; }
    .btn-tab { padding: 8px 12px; font-size: 0.74rem; }
    .info-container h2 { font-size: 1.0rem; }
    .info-container p { font-size: 1.2em; }
    .sidebar, .sidebar.collapsed {
        padding-top: 24px !important;
        max-height: var(--viewport-height);
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    .sidebar::-webkit-scrollbar, .sidebar.collapsed::-webkit-scrollbar { display: none; }
    .logo { margin-bottom: 8px !important; }
    .logo-container { margin-bottom: 0 !important; }
    .sidebar .nav-links { margin-top: 1px !important; }
    .sidebar .nav-link { height: 28px !important; font-size: 0.92em !important; padding: 6px 10px !important; margin-bottom: 0 !important; }
    .sidebar hr { margin: 8px 0 !important; }
    .sidebar.collapsed .logo-container { display: none !important; }
    .sidebar .nav-icon,
    .sidebar .nav-links .nav-link .nav-icon,
    .sidebar .nav-links .nav-link i,
    .sidebar .nav-links .nav-link img {
        width: 15px !important;
        height: 15px !important;
        font-size: 15px !important;
        min-width: 15px !important;
        min-height: 15px !important;
        max-width: 15px !important;
        max-height: 15px !important;
    }
    #loadingSpinner img { margin-top: 0 !important; }
}

/* ==========================================================================
   Sticky Footer - Always at Bottom, Never Overlapped
   ========================================================================== */
.footer {
    height: var(--footer-height);
    line-height: 50px;
    border-top: 1px solid #e2e2e2;
    font-size: 0.6em !important;
    margin-left: var(--sidebar-width);
    width: calc(var(--full-width) - var(--sidebar-width));
    z-index: 100;
}
body.sidebar-collapsed .footer {
    margin-left: var(--sidebar-collapsed-width);
    width: calc(var(--full-width) - var(--sidebar-collapsed-width));
    transition: margin-left var(--basic-transition), width var(--basic-transition);
}
@media (max-width: 992px) {
    .footer {
        margin-left: 0 !important;
        font-size: 0.5em !important;
    }
}

/* Info section responsive */
@media (max-width: 992px) {
    .info-section { flex-wrap: wrap; }
    .info-container { flex: 1 1 48%; min-width: 200px; }
}
@media (max-width: 576px) {
    .info-container { flex: 1 1 var(--full-width); }
}
