body {
    font-family: "DM Sans", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    background-color: #f8f9fa;
    /* A light grey background for the body */
}

:root {
  --mimic-gold: /* paste your gold hex here, e.g. */ #D4AF37;
}

.page-heading {
    font-size: 1.5rem;
    display: flex;
    align-items: center;
    line-height: 1.2rem;
}

#page-header-optional-bar:has(> #page-options:empty) {
    gap: 0 !important;
}

.material-icons, .material-symbols-outlined, .material-icons-outlined {
    margin-right: 10px;
}

.icon-margin-right {
    margin-right: 10px;
}

.icon-margin-left {
    margin-left: 10px;
    margin-right: 0px;
}

.page-subheading {
    font-size: 1.1rem;
    /* Example size, adjust as needed */
    color: black;
    /* A neutral, friendly color for the text */
}

.page-sub-heading-small {
    font-size: 0.9rem;
    /* Example size, adjust as needed */
    color: #6c757d;
    /* A neutral, friendly color for the text */
}

.page-heading .after-colon {
    display: inline-flex;
    align-items: center;
    font-size: 18px;
    margin-left: 10px;
    top: 3px;
    position: relative;
}

#contentLoadingIndicator {
    gap: 1rem;
    align-items: center;
    font-size: 1rem;
}

.page-options {
    display: flex;
    justify-content: end;
}

.dt-layout-row:first-of-type {
    margin-top: 0px !important;
}

.provider {
    text-align: center !important;
    vertical-align: middle;
}


/* Button styles */
.btn {
    background-color: #deba5c;
    border: none;
    padding: 0.375rem 0.75rem;
    /* Padding inside buttons */
    border-radius: 0.25rem;
    /* Rounded corners for buttons */
    cursor: pointer;
    /* Pointer cursor on hover */
}

.btn:hover {
    background-color: #deba5ca6;
    /* Gold color */
    color: rgb(70, 70, 70);
}



/* dropdown-toggle and dropdown-menu are for the profile menu on the sidebar */
.dropdown-toggle {
    background-color: transparent;
    border: none;
    padding-left: 2px;
    padding-right: 4px;
}

.dropdown-toggle::after {
    display: none;
    /* Hide the little arrow */
}

.dropdown-menu {
    margin-top: -1px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    z-index: 1000;
}

.dropdown-menu li a:hover {
    text-decoration: none;
}

.btn-icon {
    background-color: transparent;
    /* Makes the background transparent */
    display: flex;
    border: none;
    /* Removes border */
    padding: 0;
    /* Removes padding */
    cursor: pointer;
    /* Pointer cursor on hover */
    vertical-align: middle;
    /* Aligns the button vertically in line with the text */
    margin-left: 4px;
    /* Space between header text and button */
    margin-right: 10px;
}

/* Style adjustments for loading spinner and message */
#loadingIndicator .spinner-border {
    margin-bottom: 10px;
    /* Added space below spinner */
}

#loadingIndicator p {
    font-size: 1rem;
    /* Ensuring the text is neither too big nor too small */
    color: #6c757d;
    /* A neutral, friendly color for the text */
}

/* Collapsible buttons styling */
.collapsible {
    background-color: #f9f9f9;
    width: 100%;
    color: #444;
    cursor: pointer;
    padding: 18px;
    border: none;
    text-align: center;
    /* Center the text inside the button */
    outline: none;
    font-size: 15px;
    transition: background-color 0.3s;
    /* Smooth transition for hover effect */
}

.fa-caret-right,
.fa-caret-down {
    transition: transform 0.3s ease;
}

.fa-caret-right {
    transform: rotate(0deg);
    /* Default state, pointing right */
}

.fa-caret-right.expanded {
    transform: rotate(90deg);
    /* Rotated state, pointing down */
}

.content {
    padding: 0 18px;
    background-color: #f8f8f8;
    transition: max-height 0.6s ease-out;
    /* Smooth transition for expanding */
    position: relative;
    z-index: 1;
    box-shadow: 2px 2px 8px #888888;
    margin-top: 8px;
    padding-top: 10px;
    padding-bottom: 10px;
    overflow-y: hidden;
    white-space: nowrap;
}

#sidebar-menu a.sidebar-active {
    background-color: #dae0e5 !important;
}

#sidebar-menu a:hover {
    background-color: #e9ecef !important;
    /* Lighter gray for hover */
}

/* sidebar tenant switcher – eye icon  ----------------------------- */
#sidebarWrapper .tenant-switcher i {
    /* keep it pushed to the far right */
    margin-left: auto;
    margin-right: 0.5rem;

    /* 24 × 24 square that centres the Material glyph */
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    /* avoid font baseline shift */

    background: #343434;
    border-radius: 4px;

    /* reset the old padding set earlier */
    padding: 0;
}

#sidebarWrapper #customTooltip {
    color: black !important;
}


#sidebarWrapper .tenant-switcher input {
    background: transparent !important;
    color: #bbb !important;
    /* bullets / text */
}

#sidebarWrapper .tenant-switcher i {
    color: #bbb !important;
    /* eye icon colour */
}

#sidebarWrapper .tenant-switcher i:hover {
    background-color: #fbfbfb21 !important;
}

#sidebarWrapper #sidebar-user.border-top {
    border-top-color: #2b2b2b !important;
    /* same as sidebar bg */
}

/* Normal expanded sidebar */
#sidebarWrapper {
    height: 100vh;
    width: 250px;
    flex-shrink: 0;
    position: fixed;
    z-index: 500;
    /* above page content but below modals and menus */
    /* Don’t let flex parent shrink it */
    background-color: #2b2b2b !important;
    /* Make sure background fills the full width */
    display: flex;
    flex-direction: column;
    color: #bbb !important;
    /* So heading is on top, list below */
    transform: translateX(0);
    transition: width 0.3s ease-out, transform 0.3s ease-out;
    margin-left: 0 !important;
    border-right: none !important;
}

@media (max-width: 1024px) {
    #sidebarWrapper {
        transform: translateX(-100%);
    }
    #page-content-wrapper {
        margin-left: 0px !important;
        width: 100% !important;
        padding: 1rem;
    }
    #sidebarWrapper.open {
        transform: translateX(0);
    }
}

#hamburger-menu {
    transform: translateX(200%);
    transition: transform 0.3s ease-out;
    cursor: pointer;
}

#curtain {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 200;
    background-color: transparent;
    transition: background-color 0.3s ease-out;
}

#curtain.active {
    background-color: #000000A0;
}

#sidebarWrapper .list-group {
    flex-grow: 1;
    overflow-y: auto;
    background-color: #2b2b2b;
    background-image:
        linear-gradient(#2b2b2b 30%, rgba(43, 43, 43, 0)),
        linear-gradient(rgba(43, 43, 43, 0), #2b2b2b 70%),
        radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, 0.4), transparent),
        radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, 0.4), transparent);
    background-position:
        0 0,
        0 100%,
        0 0,
        0 100%;
    background-repeat: no-repeat;
    background-size:
        100% 40px,
        100% 40px,
        100% 15px,
        100% 15px;
    background-attachment:
        local,
        local,
        scroll,
        scroll;
}

#sidebarWrapper .list-group-item {
    background-color: transparent !important;
    /* kill the white bar */
    border: none !important;
    /* remove grey line */
    width: calc(100% - .5rem);
    margin: .25rem;
    margin-bottom: 0;
    border-radius: .125rem;
}

#sidebarWrapper .list-group-item,
#sidebarWrapper .tenant-switcher {
    color: #bbb !important;
}

#sidebarWrapper .list-group-item i {
    color: inherit !important;
}

/* hover → slightly lighter bg + white text */
#sidebarWrapper .list-group-item:hover {
    background-color: rgba(251, 251, 251, 0.05) !important;
    color: #ddd !important;
}


#sidebarWrapper .list-group-item.sidebar-active,
#sidebarWrapper .list-group-item.sidebar-active i {
    color: #191919 !important;
    /* Mimic black */
}

#sidebarWrapper .list-group-item.sidebar-item-hover {
    background-color: rgba(251, 251, 251, 0.05) !important;
    color: #ddd !important;
}

#sidebarWrapper .list-group-item.sidebar-active {
    background-color: #deba5ca6 !important;
    /* gold highlight */
    border: none;
}

/* Collapsed sidebar */
#sidebarWrapper.sidebar-collapsed {
    width: 70px;
    /* shrink to icon-only width */
}

/* Hide the brand text in collapsed mode */
#sidebarWrapper.sidebar-collapsed .brand-text {
    display: none;
}

/* Hide link text but keep icons visible in collapsed mode */
#sidebarWrapper.sidebar-collapsed .link-text {
    display: none;
}

#sidebarWrapper.sidebar-collapsed .list-group-item i {
    margin-right: 0;
    text-align: center;
    width: 100%;
}

#page-content-wrapper {
    position: relative;
    margin-left: 250px;
    overflow-x: auto;
    width: calc(100% - 250px);
    height: 100dvh;
    transition: margin-left 0.3s ease-out, width 0.3s ease-out;
}


.info {
    align-content: center;
}

.list-group-item.active {
    background-color: #ced4da !important;
    /* A light gray color */
    color: #000;
    /* Black text color */
    border: 1px solid rgba(0, 0, 0, .125);
}

.load-time {
    margin-top: 10px;
    font-size: 14px;
    color: #666;
    text-align: left;
}

.hostname {
    min-width: 260px;
    text-align: left;
}

.form-group {
    display: flex;
    /* This makes the children of .form-group (select, input, button) line up in a row */
    align-items: center;
    gap: 10px;
    width: 100%;
    /* Take full width to utilize space effectively */
}

.form-control {
    flex-grow: 1;
    min-width: 160px;
    /* Adjust as needed */
}

.progress-bar {
    height: 30px;
    background-color: blue;
    /* Foreground showing progress */
    text-align: center;
    color: white;
    /* For text inside the progress bar */
    transition: width 0.4s ease;
    /* Smooth transition for changes */
}

.info-icon {
    font-size: 18px;
    /* Adjust size to fit your design */
    color: #646464;
    /* Subtle grey color, customizable */
    cursor: help;
    /* Changes cursor to help cursor, indicating an interactive element */
    margin-left: 5px;
    /* Adds space between the text and the icon */
    vertical-align: middle;
    /* Aligns icon with the middle of the text */
    padding-bottom: 6px;
    /* Adjust as needed */
}

.custom-tooltip {
    display: none;
    /* Hidden by default */
    position: fixed;
    /* Positioning relative to the viewport */
    padding: 8px 10px;
    /* Padding inside the tooltip */
    font-size: 14px;
    /* Larger font size for better readability */
    background-color: #fff;
    /* White background */
    border: 1px solid #ddd;
    /* Light grey border */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    /* Subtle shadow for depth */
    border-radius: 8px;
    /* Rounded corners */
    z-index: 1000;
    /* High z-index to ensure it appears above other elements */
    pointer-events: none;
    /* Ensures that mouse events pass through the tooltip */
}

.dynamic-text {
    display: inline-flex;
    align-items: center;
    flex-grow: 1;
}

.hidden {
    display: none;
}

.red-icon {
    color: red !important;
}

#global-breadcrumb i      { font-size:18px; vertical-align:middle; }
#global-breadcrumb:hover  { color:#deba5c; }  /* mimic-gold on hover */

/* --------- Message Bar --------- */

.message-bar {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #f8f9fa;
    height: 2rem;
}

/* When showing a message, push page content further down */
.message-bar--show-message {
    visibility: visible !important;
}

/* Optional “message section” block inside the bar */
.message-bar-section {
    width: 600px;
    border-radius: 5px;
    padding: 0.25rem 1rem;
    padding-right: 2rem;
    display: none;
    /* hidden by default */
    flex: 1;
    margin-bottom: 0;
}

/* If bar has .message-bar--show-message, reveal the message section */
.message-bar--show-message .message-bar-section {
    display: block;
}

/* Shown state for the message banner */
.message-bar--visible {
    display: block;
}

/* Message variations (error/info/success) */
.message-bar--error {
    background-color: #f8d7da;
    color: #721c24;
}

.message-bar--info {
    background-color: #cce5ff;
    color: #004085;
}

.message-bar--success {
    background-color: #d4edda;
    color: #155724;
}

/* Close (X) button inside the message banner (.close-btn) */
#message-bar .close {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    padding: 0px;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.65;
    color: inherit;
    font-weight: 400;
}

#page-options label {
    margin-bottom: 0;
}

.dt-search .search-icon {
  /* position: static !important;   override DataTables absolute rule   */
  display: inline-flex;
  align-items: center;
}

.custom-icon {
    width: 24px; 
    height: 24px; 
    background-repeat: no-repeat; 
    background-position: center center;
    background-size: contain;
}

.custom-icon-nav {
    width: 18px;
    height: 18px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    display: inline-block;
}

.list-group-item:not(.sidebar-active) .custom-icon-nav {
    filter: brightness(0) saturate(100%) invert(83%) sepia(0%) saturate(1%) hue-rotate(206deg) brightness(90%) contrast(94%);
}

.custom-icon-constellation {
    background-color: black; /* color of the icon */
    -webkit-mask-image: url("/static/images/constellation.svg");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    mask-image: url("/static/images/constellation.svg");
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
}

.color-icon-constellation {
    background-image: url("/static/images/constellation.svg");
}

.renderjson {
    font-family: "DM Mono", monospace;
    font-optical-sizing: auto;
    font-style: normal;
}