﻿/*
 * Table styles
 */
table.dataTable {
    width: 100%;
    margin: 0 auto;
    clear: both;
    border-collapse: separate;
    border-spacing: 0;
    /*
   * Header and footer styles
   */
    /*
   * Body styles
   */
}

    table.dataTable thead th,
    table.dataTable tfoot th {
        font-weight: bold;
    }

    table.dataTable thead th,
    table.dataTable thead td {
        padding: 10px 18px;
        border-bottom: 1px solid #111111;
    }

        table.dataTable thead th:active,
        table.dataTable thead td:active {
            outline: none;
        }

    table.dataTable tfoot th,
    table.dataTable tfoot td {
        padding: 10px 18px 6px 18px;
        border-top: 1px solid #111111;
    }

    table.dataTable thead .sorting,
    table.dataTable thead .sorting_asc,
    table.dataTable thead .sorting_desc,
    table.dataTable thead .sorting_asc_disabled,
    table.dataTable thead .sorting_desc_disabled {
        cursor: pointer;
        background-repeat: no-repeat;
        background-position: center right;
    }

    /*table.dataTable thead .sorting {
        background-image: url("/image/sort_both.png");
    }

    table.dataTable thead .sorting_asc {
        background-image: url("/image/sort_asc.png");
    }

    table.dataTable thead .sorting_desc {
        background-image: url("/image/sort_desc.png");
    }

    table.dataTable thead .sorting_asc_disabled {
        background-image: url("/image/sort_asc_disabled.png");
    }

    table.dataTable thead .sorting_desc_disabled {
        background-image: url("/image/sort_desc_disabled.png");
    }*/

    table.dataTable tbody tr {
        background-color: white;
    }

        table.dataTable tbody tr.selected {
            background-color: #b0bed9;
        }

    table.dataTable tbody th,
    table.dataTable tbody td {
        padding: 8px 10px;
    }

    table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
        border-top: 1px solid #dddddd;
    }

    table.dataTable.row-border tbody tr:first-child th,
    table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
    table.dataTable.display tbody tr:first-child td {
        border-top: none;
    }

    table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
        border-top: 1px solid #dddddd;
        border-right: 1px solid #dddddd;
    }

    table.dataTable.cell-border tbody tr th:first-child,
    table.dataTable.cell-border tbody tr td:first-child {
        border-left: 1px solid #dddddd;
    }

    table.dataTable.cell-border tbody tr:first-child th,
    table.dataTable.cell-border tbody tr:first-child td {
        border-top: none;
    }

    table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
        background-color: #f9f9f9;
    }

        table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected {
            background-color: #abb9d3;
        }

    table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
        background-color: whitesmoke;
    }

        table.dataTable.hover tbody tr:hover.selected, table.dataTable.display tbody tr:hover.selected {
            background-color: #a9b7d1;
        }

    table.dataTable.order-column tbody tr > .sorting_1,
    table.dataTable.order-column tbody tr > .sorting_2,
    table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1,
    table.dataTable.display tbody tr > .sorting_2,
    table.dataTable.display tbody tr > .sorting_3 {
        background-color: #f9f9f9;
    }

    table.dataTable.order-column tbody tr.selected > .sorting_1,
    table.dataTable.order-column tbody tr.selected > .sorting_2,
    table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1,
    table.dataTable.display tbody tr.selected > .sorting_2,
    table.dataTable.display tbody tr.selected > .sorting_3 {
        background-color: #acbad4;
    }

    table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
        background-color: #f1f1f1;
    }

    table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
        background-color: #f3f3f3;
    }

    table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
        background-color: whitesmoke;
    }

    table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 {
        background-color: #a6b3cd;
    }

    table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 {
        background-color: #a7b5ce;
    }

    table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 {
        background-color: #a9b6d0;
    }

    table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
        background-color: #f9f9f9;
    }

    table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
        background-color: #fbfbfb;
    }

    table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
        background-color: #fdfdfd;
    }

    table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 {
        background-color: #acbad4;
    }

    table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 {
        background-color: #adbbd6;
    }

    table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 {
        background-color: #afbdd8;
    }

    table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
        background-color: #eaeaea;
    }

    table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
        background-color: #ebebeb;
    }

    table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
        background-color: #eeeeee;
    }

    table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 {
        background-color: #a1aec7;
    }

    table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 {
        background-color: #a2afc8;
    }

    table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 {
        background-color: #a4b2cb;
    }

    table.dataTable.no-footer {
        border-bottom: 1px solid #111111;
    }

    table.dataTable.nowrap th, table.dataTable.nowrap td {
        white-space: nowrap;
    }

    table.dataTable.compact thead th,
    table.dataTable.compact thead td {
        padding: 4px 17px 4px 4px;
    }

    table.dataTable.compact tfoot th,
    table.dataTable.compact tfoot td {
        padding: 4px;
    }

    table.dataTable.compact tbody th,
    table.dataTable.compact tbody td {
        padding: 4px;
    }

    table.dataTable th.dt-left,
    table.dataTable td.dt-left {
        text-align: left;
    }

    table.dataTable th.dt-center,
    table.dataTable td.dt-center,
    table.dataTable td.dataTables_empty {
        text-align: center;
    }

    table.dataTable th.dt-right,
    table.dataTable td.dt-right {
        text-align: right;
    }

    table.dataTable th.dt-justify,
    table.dataTable td.dt-justify {
        text-align: justify;
    }

    table.dataTable th.dt-nowrap,
    table.dataTable td.dt-nowrap {
        white-space: nowrap;
    }

    table.dataTable thead th.dt-head-left,
    table.dataTable thead td.dt-head-left,
    table.dataTable tfoot th.dt-head-left,
    table.dataTable tfoot td.dt-head-left {
        text-align: left;
    }

    table.dataTable thead th.dt-head-center,
    table.dataTable thead td.dt-head-center,
    table.dataTable tfoot th.dt-head-center,
    table.dataTable tfoot td.dt-head-center {
        text-align: center;
    }

    table.dataTable thead th.dt-head-right,
    table.dataTable thead td.dt-head-right,
    table.dataTable tfoot th.dt-head-right,
    table.dataTable tfoot td.dt-head-right {
        text-align: right;
    }

    table.dataTable thead th.dt-head-justify,
    table.dataTable thead td.dt-head-justify,
    table.dataTable tfoot th.dt-head-justify,
    table.dataTable tfoot td.dt-head-justify {
        text-align: justify;
    }

    table.dataTable thead th.dt-head-nowrap,
    table.dataTable thead td.dt-head-nowrap,
    table.dataTable tfoot th.dt-head-nowrap,
    table.dataTable tfoot td.dt-head-nowrap {
        white-space: nowrap;
    }

    table.dataTable tbody th.dt-body-left,
    table.dataTable tbody td.dt-body-left {
        text-align: left;
    }

    table.dataTable tbody th.dt-body-center,
    table.dataTable tbody td.dt-body-center {
        text-align: center;
    }

    table.dataTable tbody th.dt-body-right,
    table.dataTable tbody td.dt-body-right {
        text-align: right;
    }

    table.dataTable tbody th.dt-body-justify,
    table.dataTable tbody td.dt-body-justify {
        text-align: justify;
    }

    table.dataTable tbody th.dt-body-nowrap,
    table.dataTable tbody td.dt-body-nowrap {
        white-space: nowrap;
    }

    table.dataTable,
    table.dataTable th,
    table.dataTable td {
        box-sizing: content-box;
    }

/*
 * Control feature layout
 */
.dataTables_wrapper {
    position: relative;
    clear: both;
    zoom: 1;
}

    .dataTables_wrapper .dataTables_length {
        float: left;
    }

    .dataTables_wrapper .dataTables_filter {
        float: right;
        text-align: right;
    }

        .dataTables_wrapper .dataTables_filter input {
            margin-left: 0.5em;
        }

    .dataTables_wrapper .dataTables_info {
        clear: both;
        float: left;
        padding-top: 0.755em;
    }

    .dataTables_wrapper .dataTables_paginate {
        float: right;
        text-align: right;
        padding-top: 0.25em;
    }

        .dataTables_wrapper .dataTables_paginate .paginate_button {
            box-sizing: border-box;
            display: inline-block;
            min-width: 1.5em;
            padding: 0.5em 1em;
            margin-left: 2px;
            text-align: center;
            text-decoration: none !important;
            cursor: pointer;
            color: #333333 !important;
            border: 1px solid transparent;
            border-radius: 2px;
        }

            .dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
                color: #333333 !important;
                border: 1px solid #979797;
                background-color: white;
                background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, gainsboro));
                /* Chrome,Safari4+ */
                background-image: -webkit-linear-gradient(top, white 0%, gainsboro 100%);
                /* Chrome10+,Safari5.1+ */
                background-image: -moz-linear-gradient(top, white 0%, gainsboro 100%);
                /* IE10+ */
                background-image: -o-linear-gradient(top, white 0%, gainsboro 100%);
                /* Opera 11.10+ */
                background-image: linear-gradient(to bottom, white 0%, gainsboro 100%);
                /* W3C */
            }

            .dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
                cursor: default;
                color: #666 !important;
                border: 1px solid transparent;
                background: transparent;
                box-shadow: none;
            }

            .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
                color: white !important;
                border: 1px solid #111111;
            }

            .dataTables_wrapper .dataTables_paginate .paginate_button:active {
                outline: none;
                /* W3C */
                box-shadow: inset 0 0 3px #111;
            }

        .dataTables_wrapper .dataTables_paginate .ellipsis {
            padding: 0 1em;
        }

    .dataTables_wrapper .dataTables_processing {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 100%;
        height: 40px;
        margin-left: -50%;
        margin-top: -25px;
        padding-top: 20px;
        text-align: center;
        font-size: 1.2em;
        background-color: white;
        background-image: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));
        background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
        background-image: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
        background-image: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
        background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
    }

    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_processing,
    .dataTables_wrapper .dataTables_paginate {
        color: #333333;
    }

    .dataTables_wrapper .dataTables_scroll {
        clear: both;
    }

        .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
            *margin-top: -1px;
            -webkit-overflow-scrolling: touch;
        }

            .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td {
                vertical-align: middle;
            }

                .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing,
                .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing,
                .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing {
                    height: 0;
                    overflow: hidden;
                    margin: 0 !important;
                    padding: 0 !important;
                }

    .dataTables_wrapper.no-footer .dataTables_scrollBody {
        border-bottom: 1px solid #111111;
    }

    .dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,
    .dataTables_wrapper.no-footer div.dataTables_scrollBody > table {
        border-bottom: none;
    }

    .dataTables_wrapper:after {
        visibility: hidden;
        display: block;
        content: "";
        clear: both;
        height: 0;
    }

@media screen and (max-width: 767px) {
    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_paginate {
        float: none;
        text-align: center;
    }

    .dataTables_wrapper .dataTables_paginate {
       /* margin-top: 0.5em;*/
    }
}

@media screen and (max-width: 640px) {
    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter {
        float: none;
        text-align: center;
    }

    .dataTables_wrapper .dataTables_filter {
     /*   margin-top: 0.5em;*/
    }
}

/* === Status color tokens === */
:root {
    /* === Status borders/colors for stripe === */
    --status-ok: #28a745; /* Green */
    --status-low: #ffc107; /* Light Orange */
    --status-medium: #ffca28; /* Amber */
    --status-high: #ff5722; /* Orange-Red */
    --status-critical: #dc3545; /* Red */
    /* === Ok === */
    --ok-bg: #d4edda;
    --ok-bg-hover: #c3e6cb;
    --ok-text: #155724;
    --ok-text-hover: #0b2e13;
    /* === Low === */
    --low-bg: #fff8e1;
    --low-bg-hover: #fff3cd;
    --low-text: #856404;
    --low-text-hover: #665222;
    /* === Medium === */
    --medium-bg: #fff3cd;
    --medium-bg-hover: #ffeeba;
    --medium-text: #856404;
    --medium-text-hover: #721c24;
    /* === High === */
    --high-bg: #ffe0b2;
    --high-bg-hover: #ffcc99;
    --high-text: #8b4000;
    --high-text-hover: #662800;
    /* === Critical === */
    --critical-bg: #f8d7da;
    --critical-bg-hover: #f5c6cb;
    --critical-text: #721c24;
    --critical-text-hover: #491217;
}

/* === Hide expired === */
tr.status-expired,
td.status-expired {
    display: none;
}

/* === First cell stripe setup === */
table.dataTable.display tbody tr td:first-child {
    position: relative;
    padding-left: 10px; /* space for the stripe */
}

/* === Stripe pseudo-element for all statuses === */
table.dataTable.display tbody tr.status-ok td:first-child::before,
table.dataTable.display tbody tr.status-low td:first-child::before,
table.dataTable.display tbody tr.status-medium td:first-child::before,
table.dataTable.display tbody tr.status-high td:first-child::before,
table.dataTable.display tbody tr.status-critical td:first-child::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
}

 /* Default colors using your variables */
.ok .color-box {
    background-color: var(--status-ok);
}

.low .color-box {
    background-color: var(--status-low);
}

.medium .color-box {
    background-color: var(--status-medium);
}

.high .color-box {
    background-color: var(--status-high);
}

.critical .color-box {
    background-color: var(--status-critical);
}

.ok .status-label {
    color: var(--ok-text);
}

.low .status-label {
    color: var(--low-text);
}

.medium .status-label {
    color: var(--medium-text);
}

.high .status-label {
    color: var(--high-text);
}

.critical .status-label {
    color: var(--critical-text);
}

/* Hover effects */
.ok:hover {
    background-color: var(--ok-bg-hover);
}

    .ok:hover .status-label {
        color: var(--ok-text-hover);
    }

.low:hover {
    background-color: var(--low-bg-hover);
}

    .low:hover .status-label {
        color: var(--low-text-hover);
    }

.medium:hover {
    background-color: var(--medium-bg-hover);
}

    .medium:hover .status-label {
        color: var(--medium-text-hover);
    }

.high:hover {
    background-color: var(--high-bg-hover);
}

    .high:hover .status-label {
        color: var(--high-text-hover);
    }

.critical:hover {
    background-color: var(--critical-bg-hover);
}

    .critical:hover .status-label {
        color: var(--critical-text-hover);
    }

/* Stripe colors */
table.dataTable.display tbody tr.status-ok td:first-child::before {
    background-color: var(--status-ok);
}

table.dataTable.display tbody tr.status-low td:first-child::before {
    background-color: var(--status-low);
}

table.dataTable.display tbody tr.status-medium td:first-child::before {
    background-color: var(--status-medium);
}

table.dataTable.display tbody tr.status-high td:first-child::before {
    background-color: var(--status-high);
}

table.dataTable.display tbody tr.status-critical td:first-child::before {
    background-color: var(--status-critical);
}

/* === OK styling === */
table.dataTable.display tbody tr.status-ok,
table.dataTable.display tbody td.status-ok {
    background-color: var(--ok-bg);
    color: var(--ok-text);
}

    table.dataTable.display tbody tr.status-ok:hover,
    table.dataTable.display tbody td.status-ok:hover {
        background-color: var(--ok-bg-hover);
        color: var(--ok-text-hover);
    }

/* === Low styling === */
table.dataTable.display tbody tr.status-low,
table.dataTable.display tbody td.status-low {
    background-color: var(--low-bg);
    color: var(--low-text);
}

    table.dataTable.display tbody tr.status-low:hover,
    table.dataTable.display tbody td.status-low:hover {
        background-color: var(--low-bg-hover);
        color: var(--low-text-hover);
    }

/* === Medium styling === */
table.dataTable.display tbody tr.status-medium,
table.dataTable.display tbody td.status-medium {
    background-color: var(--medium-bg);
    color: var(--medium-text);
}

    table.dataTable.display tbody tr.status-medium:hover,
    table.dataTable.display tbody td.status-medium:hover {
        background-color: var(--medium-bg-hover);
        color: var(--medium-text-hover);
    }

/* === High styling === */
table.dataTable.display tbody tr.status-high,
table.dataTable.display tbody td.status-high {
    background-color: var(--high-bg);
    color: var(--high-text);
}

    table.dataTable.display tbody tr.status-high:hover,
    table.dataTable.display tbody td.status-high:hover {
        background-color: var(--high-bg-hover);
        color: var(--high-text-hover);
    }

/* === Critical styling === */
table.dataTable.display tbody tr.status-critical,
table.dataTable.display tbody td.status-critical {
    background-color: var(--critical-bg);
    color: var(--critical-text);
}

    table.dataTable.display tbody tr.status-critical:hover,
    table.dataTable.display tbody td.status-critical:hover {
        background-color: var(--critical-bg-hover);
        color: var(--critical-text-hover);
    }

/* Legend styling */
.status-key {
    display: flex;
    gap: 20px;
    align-items: center;
    font-family: sans-serif;
}

.status-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px;
    border-radius: 6px;
    transition: background-color 0.2s, color 0.2s;
    cursor: default;
}

.color-box {
    width: 20px;
    height: 20px;
    border-radius: 4px;
    border: 1px solid #ccc;
}

/* Mobile Styles V 2.x  */
@media screen and (max-width: 768px) {
    /* Apply tile layout for mobile screens */
    .dt-layout-cell.dt-layout-full {
        display: flex;
        flex-direction: column;
        align-items: center;
        background-color: #f9f9f9; /* Tile background */
        padding: 0.25rem;
        border-radius: 10px;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        margin: 1rem auto;
    }

    .dt-layout-cell.dt-layout-full table {
        width: 100%;
        border: none;
    }

    .dt-layout-cell.dt-layout-full table thead {
        display: none; /* Hide headers in mobile view */
    }

    .dt-layout-cell.dt-layout-full table tbody tr {
        display: flex;
        flex-direction: column;
        background-color: #e0e0e0 !important; /* Default background color */
        margin-bottom: 1rem;
        padding: 0.75rem;
        border-radius: 8px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        transition: background-color 0.3s ease; /* Smooth transition for color change */
    }

    .dt-layout-cell.dt-layout-full table tbody tr:hover {
        background-color: #c5c5c5; /* Darker background on hover */
    }

    .dt-layout-cell.dt-layout-full table tbody td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0.5rem 0;
        border: none !important;
    }

    .dt-layout-cell.dt-layout-full table tbody td:last-child {
        border-bottom: none;
    }

    .dt-layout-cell.dt-layout-full table tbody td::before {
        content: attr(data-label); /* Use the `data-label` attribute to display the column name */
        font-weight: bold;
        color: #041E42;
        margin-right: 0.5rem;
    }

    /* Adjust pagination, length, and filter controls for mobile */
    .dt-layout-cell.dt-layout-full .dataTables_length,
    .dt-layout-cell.dt-layout-full .dataTables_filter,
    .dt-layout-cell.dt-layout-full .dataTables_paginate {
        text-align: center;
    }

    .dt-layout-cell.dt-layout-full .dataTables_filter input,
    .dt-layout-cell.dt-layout-full .dataTables_length select {
        width: 80%;
        margin: 0.5rem 0;
        padding: 0.5rem;
        border: 1px solid #ccc;
        border-radius: 5px;
    }
}


/* ================================
   Sortbar Reuse
   ================================ */

/* Container for sorting/filter buttons
   Reason: Flexible layout that wraps buttons nicely */
.dt-sortbar {
    display: flex;
    flex-wrap: wrap; /* Wrap buttons on smaller screens */
    align-items: center; /* Vertical alignment */
    gap: 0.5rem; /* Uniform spacing between buttons */
}

    /* Individual buttons in sortbar
   Reason: Ensures spacing on mobile and small screens */
    .dt-sortbar button {
        margin-bottom: 0.5rem; /* Extra spacing when wrapping */
    }

/* Force tiles on any DataTable with .force-tiled */
/* ---------- Table Force-Tiled Styles ---------- */

/* Hide the header */
table.force-tiled thead {
    display: none !important;
}

/* tbody becomes a flex container for horizontal tiles */
table.force-tiled tbody {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.75rem; /* slightly tighter gap between cards */
    padding: 0;
    margin: 0;
}

    /* Each row becomes a card */
    table.force-tiled tbody tr {
        display: flex !important;
        flex-direction: column !important;
        border-radius: 8px !important; /* smooth corners */
        padding: 0.4rem !important; /* consistent padding */
        box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important; /* subtle shadow */
        flex: 0 1 300px; /* responsive width */
        max-width: 100%; /* prevent overflow outside container */
        box-sizing: border-box;
        word-break: break-word; /* wrap long text */
    }

    /* Each cell inside a card */
    table.force-tiled tbody td {
        display: flex !important;
        flex-direction: row; /* label and content side by side */
        justify-content: flex-start !important;
        align-items: center !important; /* align text vertically */
        padding: 0.2rem 0.2rem !important; /* comfortable spacing */
        border-radius: 4px; /* slight rounding inside cards */
        border: none !important;
        width: 100% !important;
        box-sizing: border-box;
        word-break: break-word;
    }

        /* Label before cell content */
        table.force-tiled tbody td::before {
            content: attr(data-label);
            font-weight: bold;
            color: #041E42;
            margin-right: 0.5rem;
            flex-shrink: 0;
        }

    /* Optional: subtle hover effect for cards */
    table.force-tiled tbody tr:hover {
        box-shadow: 0 4px 10px rgba(0,0,0,0.12) !important;
        transform: translateY(-1px);
        transition: all 0.2s ease;
    }
/* Pagination, filter, length controls */
table.force-tiled .dataTables_length,
table.force-tiled .dataTables_filter,
table.force-tiled .dataTables_paginate {
    text-align: center;
}

    table.force-tiled .dataTables_filter input,
    table.force-tiled .dataTables_length select {
        width: 80%;
        margin: 0.5rem 0;
        padding: 0.5rem;
        border: 1px solid #ccc;
        border-radius: 5px;
    }

/* Only apply to force-tiled tables */
/* Image stacking for force-tiled tables */
table.force-tiled tbody td:has(img) {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    position: relative;
}

    table.force-tiled tbody td:has(img) span {
        display: block !important;
        width: 100%;
        text-align: center;
    }

    table.force-tiled tbody td:has(img) img {
        margin-top: 0.25rem;
        max-width: 100%;
        height: auto;
        display: block;
        margin-left: auto;
        margin-right: auto;
    }

    table.force-tiled tbody td:has(img)::before {
        display: none !important;
    }

/* Show/hide short/full view fields only in force-tiled tables */
table.force-tiled td.short-view {
  /*  display: table-cell !important;*/
}

table.force-tiled td.full-view {
    display: none !important;
}