/**
 * ITDS – Mobile Responsive Styles
 * Loaded after custom.css. Applies below tablet / desktop breakpoints.
 */

/* ---------- Shared utilities (always available) ---------- */
.mobile-nav-toggle {
    display: none;
    position: absolute;
    right: 10px;
    top: 8px;
    z-index: 1100;
    width: 40px;
    height: 34px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 4px;
    background: #2A4888;
    color: #fff;
    cursor: pointer;
    line-height: 1;
}

.mobile-nav-toggle .fa {
    font-size: 18px;
}

.mobile-nav-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1040;
}

body.mobile-nav-open {
    overflow: hidden;
}

body.mobile-nav-open .mobile-nav-overlay {
    display: block;
}

/* ========== Tablet & below (≤ 991px) ========== */
@media (max-width: 991px) {
    html {
        -webkit-text-size-adjust: 100%;
    }

    body {
        overflow-x: hidden;
    }

    .container {
        width: 100% !important;
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    /* ---- Header / navigation ---- */
    .top-header {
        height: auto;
        min-height: 50px;
        position: relative;
        overflow: visible;
    }

    .navbar-brand {
        height: 50px;
        padding: 0.4rem 0.6rem;
        float: left;
        position: relative;
        z-index: 1101;
    }

    .navbar-brand .logo,
    .navbar-brand img {
        max-height: 40px;
        width: auto;
    }

    .mobile-nav-toggle {
        display: inline-block;
    }

    .nav.navbar-nav.tab {
        float: none;
        clear: both;
        width: 100%;
        margin: 0;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
        background: #111;
        position: relative;
        z-index: 1050;
    }

    .top-header.nav-open .nav.navbar-nav.tab {
        max-height: 85vh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        border-top: 1px solid #333;
    }

    .mobile-nav-overlay {
        z-index: 1040;
    }

    .mobile-nav-toggle {
        z-index: 1060;
    }

    .navbar-nav ul {
        float: none !important;
        width: 100%;
        height: auto !important;
        display: block;
    }

    .navbar-nav li,
    .navbar-nav>ul>a,
    .navbar-nav>ul>li {
        float: none !important;
        display: block !important;
        width: 100%;
        position: relative;
        padding: 12px 16px !important;
        border-bottom: 1px solid #222;
        height: auto !important;
        box-sizing: border-box;
    }

    .navbar-nav>ul>a {
        padding: 0 !important;
        border-bottom: none;
    }

    .navbar-nav>ul>a>li,
    .navbar-nav>ul>a>.menu {
        border-bottom: 1px solid #222;
    }

    .navbar-nav a {
        display: block;
        color: #fff;
    }

    .logout-session,
    .logoutlink {
        position: static !important;
        display: block;
        margin: 8px 16px 16px;
        text-align: center;
        width: auto;
        right: auto;
        top: auto;
    }

    #timer1 {
        position: static !important;
        float: none !important;
        display: block;
        margin: 8px 16px;
        text-align: center;
        font-size: 18px !important;
    }

    /* Submenus become inline accordion panels */
    .submenu,
    .navbar-nav ul ul,
    .master_submenu,
    .employee_submenu,
    .setting_submenu,
    .booking_submenu,
    .manifest_submenu,
    .billing_submenu {
        position: static !important;
        width: 100% !important;
        max-width: 100% !important;
        left: 0 !important;
        top: auto !important;
        box-shadow: none !important;
        border-top: none !important;
        padding: 0 !important;
        background: #1a1a1a !important;
        display: none;
        z-index: 1;
    }

    /* Keep open when JS sets display:block or .submenu-open */
    .submenu.submenu-open,
    .navbar-nav ul ul.submenu-open,
    .submenu[style*="display: block"],
    .submenu[style*="display:block"] {
        display: block !important;
    }

    .submenu .row {
        margin: 0;
    }

    .submenu .submenu-section,
    .master_submenu .submenu-section {
        width: 100% !important;
        float: none !important;
        margin-bottom: 0;
        padding: 4px 0;
    }

    .submenu .submenu-section h3 {
        color: #aaa;
        font-size: 11px;
        margin: 8px 12px 4px;
        padding: 0;
    }

    .submenu li a {
        color: #ddd !important;
        padding: 8px 20px !important;
        height: auto;
        line-height: 1.4;
        white-space: normal;
        pointer-events: auto;
        position: relative;
        z-index: 2;
    }

    #masters_click,
    #employeeclick,
    #settingclick,
    #auxclick,
    #manifest_click,
    #billing_click,
    #reports_click {
        cursor: pointer;
        -webkit-tap-highlight-color: rgba(255, 255, 255, 0.15);
    }

    /* Case track + aux controls */
    .navbar-nav li form.docket,
    .navbar-nav .input-group {
        width: 100%;
        margin: 0 !important;
        height: auto !important;
    }

    .navbar-nav .form-field {
        display: block !important;
        margin: 6px 0 !important;
        border-radius: 6px !important;
    }

    #auxForm .form-field select {
        width: 100% !important;
        float: none !important;
        margin-bottom: 8px;
    }

    #auxForm .submit-btn {
        width: 100%;
    }

    .ongoing_case h5 {
        font-size: 14px !important;
        padding: 6px 8px !important;
        line-height: 1.4;
        word-break: break-word;
    }

    /* UPDATES badge in header */
    .navbar-nav>ul>a>span[style*="position: absolute"] {
        position: static !important;
        display: inline-block;
        margin: 8px 16px;
    }

    /* ---- Page layout ---- */
    .page-content {
        padding: 0 1rem;
        margin-bottom: 60px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .page-header {
        padding: 8px 4px;
    }

    .box {
        padding: 1.25rem;
        max-width: 100%;
        width: 100%;
        box-shadow: rgb(37 45 92) 0px 2px 6px;
    }

    .box.box-2 {
        max-width: 100%;
    }

    .box-title {
        font-size: 1.4rem;
        height: auto;
        line-height: 1.3;
        margin: 8px 6px;
        word-wrap: break-word;
    }

    .header-actions {
        position: static;
        height: auto;
        line-height: normal;
        text-align: center;
        margin-bottom: 8px;
    }

    .header-actions a {
        float: none;
        height: auto;
        line-height: normal;
        margin: 4px;
    }

    .header-actions a i {
        height: auto;
        line-height: inherit;
        float: none;
    }

    /* ---- Forms ---- */
    .form-field-group .form-field {
        width: 100%;
        float: none;
        padding: 0 0 12px 0;
    }

    .form-field-group .form-field:last-child {
        padding-bottom: 0;
    }

    .form-field {
        margin-bottom: 14px;
    }

    .col-md-55 {
        width: 50%;
    }

    .search_content {
        padding: 10px 8px 12px;
    }

    /* Hide desktop label rows; show per-field labels next to each input */
    .form-horizontal .label_fields,
    .search_content .label_fields {
        display: none !important;
    }

    .form-horizontal .select_fields > [class*="col-"],
    .search_content .select_fields > [class*="col-"],
    .search_content .form-group > [class*="col-"] {
        width: 100%;
        float: none;
        padding-left: 0;
        padding-right: 0;
        margin-bottom: 10px;
    }

    .mobile-filter-label,
    .form-horizontal .select_fields .visible-xs.control-label,
    .search_content .select_fields .visible-xs.control-label {
        display: block !important;
        float: none;
        text-align: left;
        padding: 0 0 4px 0;
        margin: 0;
        font-weight: 600;
        font-size: 13px;
        color: #333;
    }

    .search_content .select_fields .btn,
    .search_content .select_fields a.btn,
    .search_content .select_fields input[type="submit"],
    .search-actions .btn,
    .search-actions a.btn,
    .search-actions input[type="submit"] {
        display: inline-block;
        margin: 4px 4px 4px 0;
        width: auto;
    }

    .search-actions {
        text-align: left;
        padding-top: 4px;
    }

    .button-field .btn,
    .form-field .btn,
    .box .button-field .btn {
        width: 100%;
        margin-bottom: 8px;
    }

    .radio {
        display: block !important;
        margin-bottom: 8px;
    }

    /* ---- Tables ---- */
    .box-header.with-border {
        display: block;
        overflow: hidden;
        padding: 8px 4px;
    }

    .box-header.with-border span {
        display: block;
        margin-bottom: 6px;
    }

    .box-header.with-border .float-right {
        float: none !important;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .table-responsive {
        width: 100%;
        margin-bottom: 15px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border: 1px solid #ddd;
    }

    .table-responsive>.table {
        margin-bottom: 0;
        min-width: 700px;
    }

    .table-responsive>.table>thead>tr>th,
    .table-responsive>.table>tbody>tr>td {
        white-space: nowrap;
    }

    .dataTables_wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        width: 100%;
    }

    /* Scroll wide tables that lack .table-responsive */
    #case-table,
    #notes-table,
    .page-content .table {
        min-width: 100%;
    }

    .dataTables_length,
    .dataTables_filter,
    .dataTables_info,
    .dataTables_paginate {
        float: none !important;
        text-align: left;
        width: 100%;
        margin-bottom: 8px;
    }

    .dataTables_filter input {
        width: 100% !important;
        max-width: 100%;
        margin-left: 0 !important;
    }

    /* ---- Modals / pickers ---- */
    .modal-dialog {
        width: auto !important;
        max-width: 95%;
        margin: 20px auto;
    }

    .modal-center {
        width: 95vw !important;
        left: 50% !important;
        transform: translate(-50%, 0) !important;
        top: 10% !important;
        position: relative !important;
    }

    .select2-container {
        width: 100% !important;
    }

    /* Date inputs full width (avoid col-md-* on the input itself) */
    .search_content .date-picker,
    .form-horizontal .date-picker,
    input.date-picker.form-control {
        width: 100% !important;
        max-width: 100%;
        float: none !important;
        display: block;
        min-height: 38px;
    }

    /*
     * custom.css sets .daterangepicker { width: 22% } which collapses the
     * calendar on phones. Force a usable calendar popup.
     */
    .daterangepicker,
    .daterangepicker.dropdown-menu,
    .daterangepicker.show-calendar {
        width: 300px !important;
        max-width: calc(100vw - 16px) !important;
        min-width: 260px !important;
        z-index: 3000 !important;
        position: absolute !important;
        background: #fff !important;
        overflow: visible !important;
    }

    .daterangepicker .calendar,
    .daterangepicker.show-calendar .calendar,
    .daterangepicker .calendar.single {
        display: block !important;
        float: none !important;
        max-width: 100% !important;
    }

    .daterangepicker .calendar-table {
        width: 100% !important;
    }

    .daterangepicker .ranges {
        float: none !important;
        width: 100% !important;
        margin: 0 !important;
    }

    /* Don't clip the calendar inside filter panels */
    .search_content,
    .x_content.search_content,
    .form-horizontal,
    .select_fields,
    .form-group {
        overflow: visible !important;
    }

    /* ---- Dashboard tabs ---- */
    .nav-tabs {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
        border-bottom: 1px solid #2A4888;
    }

    .nav-tabs>li {
        float: none;
        display: inline-block;
        flex: 0 0 auto;
    }

    .nav-tabs>li>a {
        white-space: nowrap;
        padding: 8px 12px;
    }

    .dashboard_report {
        overflow-x: auto;
    }

    /* ---- Flash / misc ---- */
    .flash {
        margin: 8px;
        font-size: 13px;
        word-break: break-word;
    }

    .login_window {
        width: 90%;
        margin: 4em auto;
    }

    .pagination {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }

    .pagination>li>a,
    .pagination>li>span {
        padding: 6px 10px;
    }

    .comment_attachment {
        float: none;
        display: block;
        margin-top: 6px;
    }

    .timeline .line {
        margin-left: 16px;
    }

    .timeline .separator {
        margin-left: 16px;
        padding-left: 24px;
    }
}

/* ========== Phone (≤ 767px) ========== */
@media (max-width: 767px) {
    .container {
        width: 100%;
        padding-left: 8px;
        padding-right: 8px;
    }

    .page-content {
        padding: 0 0.5rem;
    }

    .box {
        padding: 1rem;
    }

    .box-title {
        font-size: 1.2rem;
    }

    .col-md-55 {
        width: 100%;
    }

    .form-control,
    .select2-container .select2-selection--single,
    .select2-container .select2-selection--multiple,
    input[type="text"],
    input[type="password"],
    input[type="email"],
    input[type="number"],
    input[type="date"],
    select,
    textarea {
        font-size: 16px !important;
        /* prevents iOS zoom on focus */
    }

    textarea.form-control {
        min-height: 80px;
    }

    .search_content .select_fields .btn,
    .search_content .select_fields a.btn,
    .search_content .select_fields input[type="submit"],
    .search-actions .btn,
    .search-actions a.btn,
    .search-actions input[type="submit"] {
        width: calc(50% - 6px);
        text-align: center;
        margin: 4px 3px;
        padding-left: 8px;
        padding-right: 8px;
    }

    #notes-table th,
    #notes-table td,
    .table th,
    .table td {
        font-size: 12px;
        padding: 6px 8px;
    }

    .table-responsive>.table {
        min-width: 560px;
    }

    .modal-dialog {
        margin: 10px;
        max-width: calc(100% - 20px);
    }

    .main_content {
        padding: 8px 10px;
    }

    .page-title {
        height: auto;
        padding: 8px 0;
    }

    .page-title .title_left,
    .page-title .title_right {
        width: 100%;
        float: none;
    }
}

/* ========== Small phone (≤ 480px) ========== */
@media (max-width: 480px) {
    .box-title {
        font-size: 1.05rem;
        margin: 6px 4px;
    }

    .search_content .select_fields .btn,
    .search_content .select_fields a.btn,
    .search_content .select_fields input[type="submit"],
    .search-actions .btn,
    .search-actions a.btn,
    .search-actions input[type="submit"] {
        width: 100%;
        margin: 4px 0;
    }

    .navbar-brand .logo,
    .navbar-brand img {
        max-height: 34px;
    }

    .mobile-nav-toggle {
        right: 8px;
        top: 7px;
        width: 36px;
        height: 32px;
    }
}

/* ========== Login page ========== */
@media (max-width: 767px) {
    .card {
        width: 92% !important;
        max-width: 400px;
        margin-left: auto;
        margin-right: auto;
    }

    #logo {
        max-width: 160px;
        height: auto;
    }

    .social_icon {
        display: none;
    }
}

/* Laptop / desktop: never show mobile-only filter labels */
@media (min-width: 992px) {
    .mobile-filter-label {
        display: none !important;
    }
}