/**
 * Mobile and Responsive Stylesheet for Jorani
 * Targeted specifically for smartphone & tablet viewports (<= 979px and <= 767px)
 */

/* Always hide mobile-nav-right on desktop */
.mobile-nav-right {
    display: none;
}

/* ==========================================================================
   1. NAVIGATION BAR (Screen width <= 979px)
   ========================================================================== */
@media (max-width: 979px) {
    /* Full bleed body and lock horizontal overflow */
    html,
    body {
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        width: 100% !important;
        max-width: 100vw !important;
    }

    #wrap {
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        width: 100% !important;
        max-width: 100vw !important;
    }

    /* Container fluid: content has 15px padding from screen edge */
    #wrap > .container-fluid {
        padding-left: 15px !important;
        padding-right: 15px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Navbar must touch screen edges edge-to-edge (0 to 100%) */
    .navbar,
    .navbar-fixed-top {
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 15px !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        position: relative !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 1030 !important;
    }

    .navbar .navbar-inner {
        margin: 0 !important;
        border-radius: 0 !important;
        border: none !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding: 6px 15px !important;
        background-color: #3097d1 !important;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
    }

    /* Never block touches with Bootstrap 2 backdrop on mobile */
    .dropdown-backdrop {
        display: none !important;
    }

    /* Remove empty desktop fixed-navbar spacer on mobile */
    #wrap > .container-fluid > .row-fluid:first-child {
        display: none !important;
    }

    /* Right section in mobile top bar: Username + Space + Hamburger */
    .mobile-nav-right {
        display: flex !important;
        float: right !important;
        align-items: center !important;
        gap: 14px !important;
        margin: 4px 0 !important;
    }

    .mobile-nav-right .mobile-username {
        color: #ffffff !important;
        font-size: 14px !important;
        font-weight: 500 !important;
        max-width: 140px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        line-height: normal !important;
    }

    .mobile-nav-right .btn-navbar {
        float: none !important;
        margin: 0 !important;
        padding: 8px 11px !important;
        background: rgba(255, 255, 255, 0.18) !important;
        border: 1px solid rgba(255, 255, 255, 0.35) !important;
        border-radius: 4px !important;
        box-shadow: none !important;
        color: #fff !important;
        display: block !important;
        cursor: pointer !important;
    }

    .mobile-nav-right .btn-navbar:hover,
    .mobile-nav-right .btn-navbar:focus,
    .mobile-nav-right .btn-navbar:active {
        background: rgba(255, 255, 255, 0.28) !important;
    }

    .mobile-nav-right .btn-navbar .icon-bar {
        background-color: #ffffff !important;
        box-shadow: none !important;
        width: 18px !important;
        height: 2px !important;
        margin-top: 3px !important;
    }

    .mobile-nav-right .btn-navbar .icon-bar:first-child {
        margin-top: 0 !important;
    }

    .navbar .brand {
        padding: 8px 10px 8px 0 !important;
        font-size: 18px !important;
        color: #ffffff !important;
        font-weight: 600 !important;
        display: inline-block !important;
    }

    /* Menu drawer: hidden when collapsed */
    .nav-collapse,
    .nav-collapse.collapse {
        max-height: 0 !important;
        height: auto !important;
        overflow: hidden !important;
        padding: 0 12px !important;
        margin: 0 !important;
        background-color: transparent !important;
        box-shadow: none !important;
        border: none !important;
        transition: max-height 0.28s ease, padding 0.28s ease, margin 0.28s ease !important;
    }

    /* Menu drawer: styled only when expanded (.in) */
    .nav-collapse.in {
        max-height: calc(100vh - 70px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        background-color: #247bb0 !important;
        border-radius: 6px !important;
        padding: 8px 12px !important;
        margin-top: 10px !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    }

    .nav-collapse .nav {
        margin: 0 !important;
        float: none !important;
    }

    .nav-collapse .nav > li > a {
        padding: 10px 14px !important;
        font-size: 15px !important;
        color: #ffffff !important;
        border-radius: 4px !important;
        margin-bottom: 3px !important;
        display: flex !important;
        align-items: center !important;
        font-weight: 500 !important;
    }

    .nav-collapse .nav > li > a:hover,
    .nav-collapse .nav > li > a:focus {
        background-color: rgba(255, 255, 255, 0.15) !important;
        color: #ffffff !important;
    }

    .nav-collapse .dropdown-menu {
        position: static !important;
        float: none !important;
        display: none;
        background-color: rgba(0, 0, 0, 0.15) !important;
        border-radius: 4px !important;
        margin: 4px 0 8px 15px !important;
        padding: 4px 0 !important;
        border: none !important;
        box-shadow: none !important;
        z-index: 1032 !important;
    }

    .nav-collapse .open > .dropdown-menu {
        display: block !important;
    }

    .nav-collapse .dropdown-menu a {
        color: #e0f2fe !important;
        padding: 10px 15px !important;
        font-size: 14px !important;
        display: block !important;
        min-height: 40px !important;
        line-height: 20px !important;
    }

    .nav-collapse .dropdown-menu a:hover,
    .nav-collapse .dropdown-menu a:focus {
        background-color: rgba(255, 255, 255, 0.2) !important;
        color: #ffffff !important;
    }

    .nav-collapse .nav-header {
        color: #bae6fd !important;
        font-size: 12px !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
        padding: 8px 15px 4px !important;
    }

    .nav-collapse .divider {
        background-color: rgba(255, 255, 255, 0.1) !important;
        border-bottom: none !important;
        margin: 6px 0 !important;
    }

    .nav-collapse .navbar-form {
        padding: 10px 0 !important;
        margin: 8px 0 !important;
        border: none !important;
        box-shadow: none !important;
    }

    .nav-collapse .navbar-form .btn-warning {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 10px !important;
        font-size: 15px !important;
        text-align: center !important;
        border-radius: 4px !important;
    }

    .nav-collapse .nav.pull-right {
        float: none !important;
        border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
        padding-top: 12px !important;
        margin-top: 12px !important;
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 8px !important;
    }

    .nav-collapse .nav.pull-right .brand {
        display: block !important;
        width: 100% !important;
        padding: 6px 14px !important;
        color: #ffffff !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        margin-bottom: 4px !important;
    }

    .nav-collapse .nav.pull-right > li {
        display: inline-block !important;
    }

    .nav-collapse .nav.pull-right > li > a {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: 44px !important;
        min-height: 44px !important;
        padding: 8px 16px !important;
        background: rgba(255, 255, 255, 0.15) !important;
        border-radius: 4px !important;
        font-size: 18px !important;
        margin-right: 6px !important;
    }
}

/* ==========================================================================
   2. MOBILE VIEWPORTS (Screen width <= 767px)
   ========================================================================== */
@media (max-width: 767px) {
    body {
        margin: 0 !important;
        padding: 0 !important;
        -webkit-text-size-adjust: 100%;
    }

    .container-fluid {
        padding: 0 !important;
    }

    /* --- Form Inputs & Prevent iOS Auto-Zoom --- */
    input[type="text"],
    input[type="password"],
    input[type="email"],
    input[type="number"],
    input[type="date"],
    select,
    textarea {
        font-size: 16px !important; /* Mandatory to prevent iOS Safari auto-zoom */
        min-height: 44px !important;
        line-height: 24px !important;
        padding: 8px 12px !important;
        border-radius: 4px !important;
        box-sizing: border-box !important;
        max-width: 100% !important;
        width: 100% !important;
        margin-bottom: 12px !important;
    }

    select {
        height: 44px !important;
        background-color: #fff !important;
    }

    textarea {
        min-height: 80px !important;
    }

    /* Date and half-day selectors stacking */
    #frmLeaveForm #viz_startdate,
    #frmLeaveForm #startdatetype,
    #frmLeaveForm #viz_enddate,
    #frmLeaveForm #enddatetype {
        width: 100% !important;
        display: block !important;
    }

    #frmLeaveForm br {
        display: none !important;
    }

    /* ==========================================================================
       Issue 2: Responsive Input Groups (.input-append / .input-prepend)
       ========================================================================== */
    .input-append,
    .input-prepend,
    .input-append.input-prepend {
        display: flex !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        align-items: stretch !important;
        margin-bottom: 12px !important;
        white-space: nowrap !important;
    }

    .input-append input[type="text"],
    .input-prepend input[type="text"],
    .input-append.input-prepend input[type="text"] {
        flex: 1 1 auto !important;
        width: 1% !important;
        min-width: 0 !important;
        margin-bottom: 0 !important;
        border-radius: 0 !important;
        font-size: 16px !important;
    }

    .input-append input[type="text"]:first-child {
        border-top-left-radius: 4px !important;
        border-bottom-left-radius: 4px !important;
    }

    .input-prepend input[type="text"]:last-child {
        border-top-right-radius: 4px !important;
        border-bottom-right-radius: 4px !important;
    }

    .input-append .btn,
    .input-append .add-on,
    .input-prepend .btn,
    .input-prepend .add-on {
        flex: 0 0 auto !important;
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        border-radius: 0 !important;
        padding: 0 10px !important;
        box-sizing: border-box !important;
        font-size: 13px !important;
        white-space: nowrap !important;
    }

    .input-append .btn:last-child,
    .input-append .add-on:last-child {
        border-top-right-radius: 4px !important;
        border-bottom-right-radius: 4px !important;
    }

    .input-prepend .btn:first-child,
    .input-prepend .add-on:first-child {
        border-top-left-radius: 4px !important;
        border-bottom-left-radius: 4px !important;
    }

    /* Form Action Buttons */
    #frmLeaveForm button[type="submit"],
    #frmLeaveForm a.btn,
    #frmCreateExtra button,
    #frmCreateExtra a.btn,
    #cmdCreateExtra {
        display: block !important;
        width: 100% !important;
        min-height: 46px !important;
        font-size: 16px !important;
        font-weight: 600 !important;
        margin-bottom: 10px !important;
        box-sizing: border-box !important;
        line-height: 32px !important;
        text-align: center !important;
    }

    /* jQuery UI Datepicker Mobile Optimization */
    .ui-datepicker {
        width: 90vw !important;
        max-width: 340px !important;
        font-size: 15px !important;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25) !important;
        border: 1px solid #ccc !important;
        border-radius: 8px !important;
        padding: 8px !important;
        z-index: 9999 !important;
    }

    .ui-datepicker .ui-datepicker-header {
        padding: 6px 0 !important;
    }

    .ui-datepicker td span,
    .ui-datepicker td a {
        padding: 8px 0 !important;
        text-align: center !important;
        min-width: 32px !important;
    }

    /* ==========================================================================
       Issue 1: Responsive Modals & Popups (Screen width <= 767px)
       ========================================================================== */
    .modal,
    #frmDayDetailsModal {
        position: fixed !important;
        top: 5% !important;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        max-width: calc(100vw - 20px) !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-top: 0 !important;
        border-radius: 8px !important;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35) !important;
        z-index: 1050 !important;
        box-sizing: border-box !important;
    }

    .modal .modal-header {
        padding: 12px 16px !important;
    }

    .modal .modal-header h3,
    .modal .modal-header h1 {
        font-size: 18px !important;
        line-height: 24px !important;
        margin: 0 !important;
    }

    .modal .modal-body,
    #dayDetailsModalBody {
        max-height: calc(80vh - 120px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        padding: 14px 16px !important;
        box-sizing: border-box !important;
    }

    .modal .modal-footer {
        padding: 10px 16px !important;
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 8px !important;
    }

    .modal .modal-footer .btn {
        min-height: 40px !important;
        line-height: 24px !important;
        padding: 8px 16px !important;
        font-size: 15px !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    #frmDayDetailsModal .modal-footer {
        justify-content: space-between !important;
    }

    #frmDayDetailsModal .modal-footer #dayDetailsModalAction {
        margin-bottom: 0 !important;
    }

    /* ==========================================================================
       Issue 7: Responsive jQuery UI Datepicker (#ui-datepicker-div)
       ========================================================================== */
    #ui-datepicker-div {
        position: fixed !important;
        top: 25% !important;
        left: 15px !important;
        right: 15px !important;
        width: auto !important;
        max-width: calc(100vw - 30px) !important;
        margin: 0 auto !important;
        z-index: 1070 !important;
        box-sizing: border-box !important;
        padding: 10px !important;
        border-radius: 8px !important;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
        background: #ffffff !important;
        border: 1px solid #ccc !important;
    }

    /* Multi-month datepickers on mobile: force only one single clean month */
    .ui-datepicker-multi {
        width: 100% !important;
    }

    .ui-datepicker-multi .ui-datepicker-group {
        width: 100% !important;
        float: none !important;
        display: block !important;
    }

    .ui-datepicker-multi .ui-datepicker-group-middle,
    .ui-datepicker-multi .ui-datepicker-group-last {
        display: none !important;
    }

    /* Header title, prev/next buttons, and month/year selects */
    .ui-datepicker .ui-datepicker-header {
        position: relative !important;
        padding: 6px 0 !important;
        min-height: 40px !important;
        display: block !important;
        background: #f5f5f5 !important;
        border-radius: 4px !important;
        border: none !important;
    }

    .ui-datepicker .ui-datepicker-title {
        margin: 0 42px !important;
        min-height: 36px !important;
        line-height: 36px !important;
        text-align: center !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 6px !important;
    }

    .ui-datepicker .ui-datepicker-title select.ui-datepicker-month,
    .ui-datepicker .ui-datepicker-title select.ui-datepicker-year {
        width: auto !important;
        max-width: 46% !important;
        height: 36px !important;
        font-size: 14px !important;
        line-height: 20px !important;
        padding: 4px 6px !important;
        margin: 0 !important;
        display: inline-block !important;
        box-sizing: border-box !important;
        border: 1px solid #ccc !important;
        border-radius: 4px !important;
        background: #ffffff !important;
    }

    .ui-datepicker .ui-datepicker-prev {
        position: absolute !important;
        left: 4px !important;
        top: 6px !important;
        width: 34px !important;
        height: 34px !important;
        display: block !important;
        cursor: pointer !important;
        border-radius: 4px !important;
        margin: 0 !important;
    }

    .ui-datepicker .ui-datepicker-next {
        position: absolute !important;
        right: 4px !important;
        top: 6px !important;
        width: 34px !important;
        height: 34px !important;
        display: block !important;
        cursor: pointer !important;
        border-radius: 4px !important;
        margin: 0 !important;
    }

    /* Clean calendar days grid */
    .ui-datepicker table.ui-datepicker-calendar {
        width: 100% !important;
        min-width: 0 !important;
        margin: 6px 0 0 0 !important;
        border-collapse: collapse !important;
    }

    .ui-datepicker table.ui-datepicker-calendar th {
        padding: 6px 2px !important;
        text-align: center !important;
        font-size: 12px !important;
        font-weight: 600 !important;
        color: #555 !important;
        border: none !important;
    }

    .ui-datepicker table.ui-datepicker-calendar td {
        padding: 2px !important;
        text-align: center !important;
        border: none !important;
    }

    .ui-datepicker table.ui-datepicker-calendar td a,
    .ui-datepicker table.ui-datepicker-calendar td span {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: 34px !important;
        min-height: 34px !important;
        padding: 0 !important;
        font-size: 14px !important;
        border-radius: 4px !important;
        box-sizing: border-box !important;
        text-align: center !important;
    }

    /* --- DataTables & Tables Responsive Scrolling --- */
    .dataTables_wrapper {
        width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        padding-bottom: 10px !important;
        margin-bottom: 15px !important;
    }

    /* Prevent wide tables from squeezing words into 5 vertical lines */
    .dataTables_wrapper table.dataTable,
    .dataTables_wrapper table.table,
    table.table-striped {
        min-width: 580px !important;
    }

    /* Smooth touch scrolling wrapper for standard tables, calendars & reports */
    .table-responsive,
    #spnTabularView,
    #reportResult,
    .reportResult {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        margin-bottom: 15px !important;
        touch-action: pan-x pan-y !important;
        border: 1px solid #e0e0e0 !important;
        border-radius: 4px !important;
        background: #ffffff !important;
        display: block !important;
    }

    /* Wide table minimum widths so cells stay comfortable and readable */
    .table-responsive > table,
    #spnTabularView > table,
    #reportResult > table,
    .reportResult > table {
        min-width: 780px !important;
        margin-bottom: 0 !important;
    }

    /* Filter Badges / Buttons (Planned, Accepted, Requested, etc.) */
    #btnGroupStatus,
    .btn-group[data-toggle="buttons-checkbox"] {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
        margin-bottom: 12px !important;
    }

    #btnGroupStatus .btn,
    .btn-group[data-toggle="buttons-checkbox"] .btn {
        flex: 1 1 calc(33% - 6px) !important;
        min-height: 36px !important;
        font-size: 12px !important;
        padding: 6px 4px !important;
        margin: 0 !important;
        border-radius: 4px !important;
        text-align: center !important;
    /* Search & Show entries */
    .dataTables_length,
    .dataTables_filter {
        float: none !important;
        width: 100% !important;
        text-align: left !important;
        margin-bottom: 8px !important;
    }

    .dataTables_filter label {
        display: block !important;
        width: 100% !important;
    }

    .dataTables_filter input {
        width: 100% !important;
        min-height: 40px !important;
        font-size: 16px !important;
        margin: 4px 0 0 0 !important;
    }

    .dataTables_length select {
        width: auto !important;
        min-height: 36px !important;
        display: inline-block !important;
    }

    /* Action icons inside table (edit, view, delete, history) */
    table.table td a,
    table.table td i {
        padding: 4px 6px !important;
        font-size: 16px !important;
        display: inline-block !important;
        min-width: 24px !important;
        min-height: 24px !important;
        line-height: 24px !important;
    }

    /* Bottom Action Buttons (Export, New request, ICS) */
    .row-fluid a.btn,
    .row-fluid button.btn {
        margin-bottom: 8px !important;
    }

    /* --- Calendars (FullCalendar) --- */
    .fc-header {
        width: 100% !important;
        margin-bottom: 10px !important;
    }

    .fc-header tbody tr {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 8px !important;
    }

    .fc-header-left,
    .fc-header-center,
    .fc-header-right {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
    }

    .fc-header-title h2 {
        font-size: 18px !important;
        margin: 4px 0 !important;
    }

    .fc-button {
        min-height: 36px !important;
        padding: 6px 10px !important;
        font-size: 13px !important;
    }

    .fc-content {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .fc-view-month .fc-day-number {
        font-size: 11px !important;
        padding: 2px !important;
    }

    .fc-event {
        font-size: 10px !important;
        padding: 1px 2px !important;
    }
}

/* ==========================================================================
   DESKTOP OVERRIDE (Screen width >= 980px)
   ========================================================================== */
@media (min-width: 980px) {
    .nav-collapse,
    .nav-collapse.collapse {
        max-height: none !important;
        height: auto !important;
        overflow: visible !important;
        display: block !important;
        padding: 0 !important;
        margin: 0 !important;
        background-color: transparent !important;
        box-shadow: none !important;
        border: none !important;
        transition: none !important;
    }
}

/* ==========================================================================
   ATTACHMENTS / MEDICAL CERTIFICATES (MC)
   ========================================================================== */
.attachment-input-wrapper {
    position: relative;
    max-width: 100%;
}

.attachment-input-wrapper input[type="file"] {
    max-width: 100%;
    line-height: normal;
    padding: 6px 0;
}

#mcRequiredBadge {
    vertical-align: middle;
    font-size: 11px;
    padding: 3px 6px;
    border-radius: 3px;
}

@media (max-width: 767px) {
    .attachment-input-wrapper input[type="file"] {
        font-size: 14px;
        width: 100%;
    }

    #existingAttachmentsContainer li {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 6px !important;
        padding: 8px 0 !important;
    }
}

