.alert {
    position: fixed;
    top: 10px;
    left: 20px;
}

.vh-95 {
    height: 95vh;
}

.text-justify {
    text-align: justify;
}

.bg-light-grey {
    background-color: rgb(189, 189, 189);
}

.text-orange {
    color: orangered !important;
}


/* ============================================================
   TICKET MODULE
============================================================ */


/* ------------------------------------------------------------
   Ticket Page
------------------------------------------------------------ */

.ticket-page-container {
    padding: 15px;
}


/* ------------------------------------------------------------
   Ticket Number
------------------------------------------------------------ */

.ticket-no,
.ticket-no-lg {
    font-weight: 600;
    color: #0d6efd;
}


/* ------------------------------------------------------------
   Priority Badges
------------------------------------------------------------ */

.badge-priority {
    display: inline-block;
    padding: 0.35em 0.65em;
    font-size: 0.75em;
    font-weight: 600;
    border-radius: 0.375rem;
}

.badge-critical {
    background-color: #dc3545;
    color: #ffffff;
}

.badge-high {
    background-color: #ffc107;
    color: #212529;
}

.badge-medium {
    background-color: #0d6efd;
    color: #ffffff;
}

.badge-low {
    background-color: #6c757d;
    color: #ffffff;
}


/* ------------------------------------------------------------
   Ticket Status
   Current statuses: Open, In Progress, Closed
------------------------------------------------------------ */

.badge-status {
    display: inline-block;
    padding: 0.35em 0.65em;
    font-size: 0.75em;
    font-weight: 600;
    border-radius: 0.375rem;
}

.badge-open {
    background-color: #0d6efd;
    color: #ffffff;
}

.badge-in_progress {
    background-color: #0dcaf0;
    color: #212529;
}

.badge-closed {
    background-color: #6c757d;
    color: #ffffff;
}


/* ------------------------------------------------------------
   SLA / Resolution Status
------------------------------------------------------------ */

.sla-badge {
    display: inline-block;
    padding: 0.35em 0.65em;
    font-size: 0.75em;
    font-weight: 600;
    border-radius: 0.375rem;
}

.sla-ok {
    background-color: #198754;
    color: #ffffff;
}

.sla-warning {
    background-color: #ffc107;
    color: #212529;
}

.sla-breached {
    background-color: #dc3545;
    color: #ffffff;
}


/* ------------------------------------------------------------
   Ticket Filters / Sections
------------------------------------------------------------ */

.filter-bar {
    background-color: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    padding: 15px;
}

.card-section {
    background-color: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    overflow: hidden;
}

.section-header {
    padding: 10px 15px;
    background-color: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
}


/* ------------------------------------------------------------
   Ticket Comments
------------------------------------------------------------ */

.comment-item {
    background-color: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    padding: 10px;
    margin-bottom: 10px;
}


/* ============================================================
   TICKET DASHBOARD
============================================================ */


/* ------------------------------------------------------------
   Compact Dashboard Summary Cards
------------------------------------------------------------ */

.dashboard-summary-card {
    min-height: auto;
}

.dashboard-summary-card .card-body {
    padding: 0.5rem 1rem !important;
}

.dashboard-summary-card h4 {
    font-size: 1.25rem;
    line-height: 1.2;
    margin-bottom: 0;
}


/* ------------------------------------------------------------
   Scrollable Dashboard Tables
------------------------------------------------------------ */

.dashboard-table-scroll {
    max-height: 250px;
    overflow-y: auto;
    overflow-x: auto;
}


/* Sticky table header while scrolling */

.dashboard-table-scroll thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background-color: #f8f9fa;
}


/* Keep rows compact */

.dashboard-table-scroll tbody td {
    white-space: nowrap;
    vertical-align: middle;
}


/* ------------------------------------------------------------
   Utility
------------------------------------------------------------ */

.text-break {
    word-break: break-word;
}

.cursor-pointer {
    cursor: pointer;
}


/* ------------------------------------------------------------
   Print
------------------------------------------------------------ */

@media print {

    .no-print,
    .non-printable {
        display: none !important;
    }

    .card {
        box-shadow: none !important;
    }
}