.truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    font-size: smaller;
    font-style: italic;
}

.truncate-1 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

.modal-dialog.large {
    width: 80% !important;
    max-width: unset;
}

.modal-dialog.mid-large {
    width: 50% !important;
    max-width: unset;
}

@media (max-width:900px) {
    .modal-dialog.large {
        width: 100% !important;
        max-width: unset;
    }

    .modal-dialog.mid-large {
        width: 100% !important;
        max-width: unset;
    }

    .modal-dialog {
        margin: unset !important;
    }
}

#viewer_modal .btn-close {
    position: absolute;
    z-index: 999999;
    /*right: -4.5em;*/
    background: unset;
    color: white;
    border: unset;
    font-size: 27px;
    top: 0;
}

#viewer_modal .modal-dialog {
    width: 80%;
    max-width: unset;
    height: calc(90%);
    max-height: unset;
}

#viewer_modal .modal-content {
    background: black;
    border: unset;
    height: calc(100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

#viewer_modal img,
#viewer_modal video {
    max-height: calc(100%);
    max-width: calc(100%);
}

table.dataTable th,
table.dataTable td {
    padding: 5px !important;
}

.card.d-flex {
    flex-direction: row !important;
}

.card.d-flex>img {
    width: 20% !important;
}

.card.d-flex>.card-body {
    width: 80% !important;
}

span.btn {
    cursor: unset;
}

span.btn:hover {
    background: inherit;
}

#tourCarousel {
    height: 50vh !important;
}

#tourCarousel img {
    object-fit: fill;
}

div.stars {
    width: auto;
    display: inline-block;
}

.mt-200 {
    margin-top: 200px;
}

input.star {
    display: none;
}

label.star {
    float: right;
    /* padding: 10px; */
    font-size: 30px;
    color: #333333;
    transition: all .2s;
}

input.star:checked~label.star:before {
    content: '\2605';
    color: #ffc800;
    transition: all .25s;
}

input.star-5:checked~label.star:before {
    color: #ffc800;
    /* text-shadow: 0 0 20px #952 */
}

input.star-1:checked~label.star:before {
    color: #F62;
}

label.star:hover {
    transform: rotate(-15deg) scale(1.3);
}

label.star:before {
    content: '\2605';
    font-family: FontAwesome;
}

/* ==========================================================================
   FINAL GLOBAL PRINT FIX - ALL FILES
   Ensures exact screen layout fidelity on A4 paper.
   ========================================================================== */
@media print {

    /* 1. Page Configuration: A4 Portrait, Standard Margins */
    @page {
        size: A4 portrait;
        margin: 10mm;
        /* Standard margin for readability */
    }

    /* 2. Global Resets: Full Width, No Scaling Issues */
    html,
    body {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        background: #fff !important;
        color: #000 !important;
        font-size: 12pt !important;
        /* Standard readable print font */
        line-height: 1.5 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* 3. AdminLTE Layout Reset: Kill Sidebar/Flexbox wrappers */
    .wrapper,
    .content-wrapper,
    .main-sidebar,
    .main-header,
    .content-header,
    .content,
    .container-fluid,
    .container,
    .card,
    .card-body,
    .dashboard-wrapper,
    .main-container {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-top: 0 !important;
        padding: 0 !important;
        position: static !important;
        display: block !important;
        float: none !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        transform: none !important;
        min-height: 0 !important;
        height: auto !important;
    }

    /* 4. Grid System Preservation: Force Exact Widths to Match Screen */
    .row {
        display: flex !important;
        flex-wrap: wrap !important;
        margin-left: -15px !important;
        margin-right: -15px !important;
    }

    /* Common Grid Columns - Force Widths */
    .col-md-1,
    .col-sm-1,
    .col-1 {
        width: 8.333333% !important;
        float: left !important;
    }

    .col-md-2,
    .col-sm-2,
    .col-2 {
        width: 16.666667% !important;
        float: left !important;
    }

    .col-md-3,
    .col-sm-3,
    .col-3 {
        width: 25% !important;
        float: left !important;
    }

    .col-md-4,
    .col-sm-4,
    .col-4 {
        width: 33.333333% !important;
        float: left !important;
    }

    .col-md-5,
    .col-sm-5,
    .col-5 {
        width: 41.666667% !important;
        float: left !important;
    }

    .col-md-6,
    .col-sm-6,
    .col-6 {
        width: 50% !important;
        float: left !important;
    }

    .col-md-7,
    .col-sm-7,
    .col-7 {
        width: 58.333333% !important;
        float: left !important;
    }

    .col-md-8,
    .col-sm-8,
    .col-8 {
        width: 66.666667% !important;
        float: left !important;
    }

    .col-md-9,
    .col-sm-9,
    .col-9 {
        width: 75% !important;
        float: left !important;
    }

    .col-md-10,
    .col-sm-10,
    .col-10 {
        width: 83.333333% !important;
        float: left !important;
    }

    .col-md-11,
    .col-sm-11,
    .col-11 {
        width: 91.666667% !important;
        float: left !important;
    }

    .col-md-12,
    .col-sm-12,
    .col-12 {
        width: 100% !important;
        float: left !important;
    }

    /* 5. Hide Interactive & UI Elements */
    .navbar,
    .main-header,
    .main-sidebar,
    .main-footer,
    .control-sidebar,
    .sidebar,
    .topbar,
    .btn,
    .btn-group,
    .btn-toolbar,
    .no-print,
    .card-tools,
    .breadcrumb,
    .dataTables_filter,
    .dataTables_paginate,
    .dataTables_length,
    .dataTables_info,
    .action-buttons,
    .nav-tabs,
    .modal,
    form .form-control:not(textarea)

    /* Hide inputs but keep textaras if text */
        {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        width: 0 !important;
        overflow: hidden !important;
    }

    /* 6. Text & Element Visibility */
    a {
        text-decoration: none !important;
        color: #000 !important;
    }

    /* 7. Table Optimizations */
    table {
        border-collapse: collapse !important;
        width: 100% !important;
        margin-bottom: 20px !important;
        background-color: transparent !important;
    }

    td,
    th {
        background-color: #fff !important;
        border: 1px solid #ddd !important;
        padding: 8px !important;
        vertical-align: top !important;
    }

    tr {
        page-break-inside: avoid;
    }

    thead {
        display: table-header-group;
    }

    tfoot {
        display: table-footer-group;
    }

    /* 8. Fix specific issues */
    /* Ensure images size correctly */
    img {
        max-width: 100% !important;
        height: auto !important;
        page-break-inside: avoid;
    }

    /* Badges/Labels */
    .badge,
    .label {
        border: 1px solid #000 !important;
        color: #000 !important;
        background: transparent !important;
    }
}

/* Sidebar scrollbar must remain visible for easier navigation */
.main-sidebar .sidebar,
.main-sidebar .sidebar .os-viewport {
    overflow-y: scroll !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.45) rgba(255, 255, 255, 0.12);
}

.main-sidebar .sidebar::-webkit-scrollbar,
.main-sidebar .sidebar .os-viewport::-webkit-scrollbar {
    width: 10px;
}

.main-sidebar .sidebar::-webkit-scrollbar-track,
.main-sidebar .sidebar .os-viewport::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.1);
}

.main-sidebar .sidebar::-webkit-scrollbar-thumb,
.main-sidebar .sidebar .os-viewport::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.45);
    border-radius: 999px;
}

.main-sidebar .sidebar::-webkit-scrollbar-thumb:hover,
.main-sidebar .sidebar .os-viewport::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.62);
}

.main-sidebar .sidebar .os-scrollbar-vertical {
    opacity: 1 !important;
    visibility: visible !important;
}
