/* 1. Global Enterprise Tweak for Standard Form Inputs */
/* .form-control,
.form-select {
  height: 32px !important;
  min-height: 32px !important;
  padding: 0.25rem 0.5rem !important;
  

  border: 1px solid #d1d9e6 !important;
  border-radius: 4px !important;
  font-size: 0.85rem !important;
  color: #2c3e50 !important;
  background-color: #ffffff !important;
  

  box-shadow: none !important;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}


.form-control::placeholder {
  color: #a0aec0 !important;
  font-size: 0.8rem;
}


.form-control:focus,
.form-select:focus {
  border-color: #4a5568 !important; 
  box-shadow: 0 0 0 2px rgba(74, 85, 104, 0.1) !important;
  outline: 0 !important;
}


.input-group-text {
  height: 32px !important;
  padding: 0.25rem 0.5rem !important;
  border: 1px solid #d1d9e6 !important;
  background-color: #f8fafc !important; 
  font-size: 0.85rem !important;
  color: #718096 !important;
}
*/
/* ========================================================
   MUTED OVERRIDE FOR BOOTSTRAP .BTN-OUTLINE-LIGHT
   ======================================================== */

.btn-outline-light {
    --bs-btn-color: #8c92ac;
    --bs-btn-border-color: #d1d9e6;
    --bs-btn-hover-color: #5c647a;
    --bs-btn-hover-bg: #f8fafc;
    --bs-btn-hover-border-color: #8c92ac;
    --bs-btn-focus-shadow-rgb: 240, 248, 255;
    --bs-btn-active-color: #1e2230;
    --bs-btn-active-bg: #e8ebf4;
    --bs-btn-active-border-color: #8c92ac;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(3, 7, 11, 0.125);
    --bs-btn-disabled-color: #94a3b8;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #e2e7f0;
    --bs-gradient: none;
    /* 1. Quiet Resting State 
    background-color: #ffffff;
    border-color: #d1d9e6;
    /* Soft blue-gray base 
    color: #8c92ac;
    /* 🌟 LIGHTER: Uses your border color for thin text */
    font-weight: 400;
    /* Standard weight keeps lines delicate */
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.btn-light {
    --bs-btn-color: #03070b;
    --bs-btn-bg: #d1d9e6;
    --bs-btn-border-color: #f0f8ff;
    --bs-btn-hover-color: #03070b;
    --bs-btn-hover-bg: #ccd3d9;
    --bs-btn-hover-border-color: #c0c6cc;
    --bs-btn-focus-shadow-rgb: 204, 212, 218;
    --bs-btn-active-color: #03070b;
    --bs-btn-active-bg: #c0c6cc;
    --bs-btn-active-border-color: #b4babf;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(3, 7, 11, 0.125);
    --bs-btn-disabled-color: #03070b;
    --bs-btn-disabled-bg: #f0f8ff;
    --bs-btn-disabled-border-color: #f0f8ff;
}

.btn-sm, .btn-group-sm>.btn {
    --bs-btn-padding-y: 0.25rem;
    --bs-btn-padding-x: 0.5rem;
    --bs-btn-font-size: 0.7875rem;
    --bs-btn-border-radius: 4px;
}
/*.btn-outline-light:hover {
    /* 2. Soft Hover Awakening 
    background-color: #f8fafc;
    /* Ultra-faint slate canvas 
    border-color: #8c92ac;
    /* Hardens the box outline slightly 
    color: #5c647a;
    /* 🌟 STEP UP: Steps into your secondary gray text 
}*/

/*.btn-outline-light:active,
.btn-outline-light.active,
.show>.btn-outline-light.dropdown-toggle {
    /* 3. Toggled / Pressed Engagement 
    background-color: #e8ebf4 !important;
    /* Your light card border fill 
    border-color: #8c92ac !important;
    color: #1e2230 !important;
    /* Darkens ONLY when clicked or toggled on 
}*/

.btn-outline-light:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(209, 217, 230, 0.4) !important;
    /* Soft glow matching the light border */
}

/*.btn-outline-light:disabled,
.btn-outline-light.disabled {
    background-color: #ffffff !important;
    border-color: #f1f5f9 !important;
    color: #d1d9e6 !important;
    /* Barely visible text outline when locked 
    opacity: 0.5;
}*/

.h-fitcontent {
    height: fit-content !important;
}

/* ========================================================
   MUTED ENTERPRISE VARIANT: .FORM-SELECT-FV
   ======================================================== */

.form-select-fv {
    /* 1. Quiet Resting State (Matches your .btn-outline-light) */
    background-color: #ffffff !important;
    border-color: #d1d9e6 !important;
    /* Soft blue-gray base border */
    color: #8c92ac !important;
    /* Muted text token to match the button */
    font-weight: 400;
    font-size: 0.75rem;
    /* Kept small to align with button layout */
    border-radius: 4px;
    padding: 6px 36px 6px 12px;
    /* Extra right padding to accommodate arrow spacer */
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;

    /* 🌟 THE REFINEMENT: Replaces Bootstrap's harsh black arrow with your desaturated #8c92ac color */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://w3.org' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238c92ac' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
    background-size: 10px 12px !important;
    background-position: right 12px center !important;
}

.form-select-fv:hover {
    /* 2. Soft Hover Awakening */
    background-color: #f8fafc !important;
    /* Ultra-faint slate background canvas */
    border-color: #8c92ac !important;
    /* Hardens box outline slightly */
    color: #5c647a !important;
    /* Steps up typography color to secondary gray */
    cursor: pointer;

    /* Hover variation of the chevron arrow pointing slightly darker (#5c647a) */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://w3.org' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%235c647a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
}

.form-select-fv:focus {
    /* 3. High-Trust Focus & Active Menu Expansion */
    background-color: #ffffff !important;
    border-color: #8c92ac !important;
    color: #1e2230 !important;
    /* Darkens cell value only while interacting */
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(209, 217, 230, 0.4) !important;
    /* Soft visual halo matching button focus */

    /* Dark variation of the chevron arrow pointing when menu is active (#1e2230) */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://w3.org' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%231e2230' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
}

/* 4. Formatting the Actual Dropdown Context Options Menu */
.form-select-fv option {
    color: #1e2230;
    /* Forces structural options inside menu to be fully legible */
    background-color: #ffffff;
    font-size: 0.85rem;
}


.form-signin {
    width: 100%;
    max-width: 330px;
    padding: 15px;
    margin: auto;
}

.form-signin .checkbox {
    font-weight: 400;
}

.form-signin .form-floating:focus-within {
    z-index: 2;
}

.form-signin input#subdomain {
    margin-bottom: -1px;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
}

.form-signin input#username {
    margin-bottom: -1px;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.form-signin input[type="password"] {
    margin-bottom: 10px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.message-textarea {
    font-family: "proxima-nova", "Source Sans Pro", sans-serif;
    width: -webkit-fill-available;
    padding: 11px 32px 10px 8px;
    font-size: 1em;
}

.messages-container {
    height: 100%;
    overflow: hidden;
    position: relative;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.messages-wrap {
    overflow-y: auto;
    flex-grow: 1;
}

.messages-wrap .user-message .small {
    overflow-wrap: anywhere;
}

.messages-wrap .bg-msg-other {
    background-color: #f5f6f7;
}

#sms_recents li a div div.avatar {
    position: relative;
}

#sms_recents li a div div.avatar span.avatar-badge {
    position: absolute;
    top: 5px;
    right: 4px;
    z-index: 99;
    width: fit-content;
    height: fit-content;
}

#sms_textarea:empty:before {
    content: attr(placeholder);
    color: #555;
}

.vmail-msg-btns:hover .btn {
    transition: border 500ms ease-out;

}

.table-vmail tr:not(:hover) .vmail-msg-btns .btn.btn-sm {
    --bs-btn-color: #aab3c3;
    --bs-btn-border-color: #aab3c3;
    --bs-btn-hover-color: #03070b;
    --bs-btn-hover-bg: #aab3c3;
    --bs-btn-hover-border-color: #aab3c3;
    --bs-btn-focus-shadow-rgb: 170, 179, 195;
    --bs-btn-active-color: #03070b;
    --bs-btn-active-bg: #aab3c3;
    --bs-btn-active-border-color: #aab3c3;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(3, 7, 11, 0.125);
    --bs-btn-disabled-color: #aab3c3;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #aab3c3;
    --bs-gradient: none;
}

.offcanvas-size-xl {
    --bs-offcanvas-width: min(95vw, 600px) !important;
}

.offcanvas-size-xxl {
    --bs-offcanvas-width: min(95vw, 75vw) !important;
}

.offcanvas-size-md {
    /* add Responsivenes to default offcanvas */
    --bs-offcanvas-width: min(95vw, 400px) !important;
}

.offcanvas-size-sm {
    --bs-offcanvas-width: min(95vw, 250px) !important;
}

.c-pointer,
.cursor-pointer {
    cursor: pointer;
}

.pointer-events-none {
    pointer-events: none;
}

.pointer-events-auto {
    pointer-events: auto;
}

.disable-selection {
    -webkit-user-select: none;
    /* Safari */
    -ms-user-select: none;
    /* IE 10 and Older */
    user-select: none;
    /* Standard syntax (Chrome, Firefox, Edge, Opera) */
    -webkit-user-drag: none;
}

.snap-toast {
    position: fixed;
    z-index: 1050;
    /* Sits cleanly on top of app content */
    margin: 1rem;
    /* Keeps a clean gap away from the edge of the screen */
    touch-action: none;
    /* Prevents mobile scrolling while dragging */
}

/* Added dynamically via JS so dragging feels instant, but snapping feels smooth */
.smooth-snap {
    transition: top 0.3s ease-out, left 0.3s ease-out;
}

.toast-header .btn-other {
    --bs-btn-other-color: #03070b;
    --bs-btn-other-opacity: 0.5;
    --bs-btn-other-hover-opacity: 0.75;
    --bs-btn-other-focus-shadow: 0 0 0 0.25rem rgba(0, 115, 216, 0.25);
    --bs-btn-other-focus-opacity: 1;
    --bs-btn-other-disabled-opacity: 0.25;
    --bs-btn-other-white-filter: invert(1) grayscale(100%) brightness(200%);
    box-sizing: content-box;
    width: 1em;
    height: 21px;
    padding: 0.25em 0.25em;
    color: var(--bs-btn-other-color);
    border: 0;
    border-radius: 0.2rem;
    opacity: var(--bs-btn-other-opacity);
}

.toast-header .btn-other i {
    font-size: 21px;
    line-height: 21px;
}

.toast-header .btn-other:hover {
    color: var(--bs-btn-other-color);
    text-decoration: none;
    opacity: var(--bs-btn-other-hover-opacity);
}

#calls_recents li a.recent-call div.btn-recents {
    display: none !important;
}

#calls_recents li a.recent-call:hover div.btn-recents {
    display: inline-flex !important;
}

label.form-check-label,
input.form-check-input {
    cursor: pointer;
}

input.form-check-input:checked+label {
    text-decoration: underline;
    font-weight: bold;
    /*font-size: 16px;*/
}

.glow-info {
    animation: glow 1s infinite alternate;
}

li.active .glow-info {
    animation: unset;
}

@keyframes glow {
    from {
        background-color: var(--bs-warning);
    }

    to {
        background-color: var(--bs-secondary);
    }
}

/* custom invalid labels for loating inpout*/
form.needs-validation input~label.invalid {
    display: none !important;
}

form.was-validated input:invalid~label.invalid {
    display: inline !important;
}

form.was-validated input:invalid~label.label {
    display: none !important;
}

form.was-validated input:not(:invalid)~label.invalid {
    display: none !important;
}

form.was-validated input:not(:invalid)~label.label {
    display: inline !important;
}

form.was-validated fieldset.upload_dropZone:has(> input:invalid) {
    outline: 2px dashed var(--bs-danger-border-subtle) !important;
}

form.was-validated fieldset.upload_dropZone:has(> input:valid) {
    outline: 2px dashed var(--bs-success-border-subtle) !important;
}

fieldset.upload_dropZone:has(> input:valid) .show-files {
    display: block !important;
}

fieldset.upload_dropZone:has(> input:valid) .show-nofiles {
    display: none !important;
}

fieldset.upload_dropZone:has(> input:invalid) .show-nofiles {
    display: block !important;
}

fieldset.upload_dropZone:has(> input:invalid) .show-files {
    display: none !important;
}

/* Arrange buttons */
.btn-matrix {
    flex-wrap: wrap;
    /* allow buttons to jump to another row */
}

.btn-matrix>.btn {
    width: 33%;
    /* force buttons to have the same width regardless of content */
}

.btn-matrix>.btn:nth-child(3n + 4) {
    margin-left: 0;
    /* because .btn-group adds `margin-left: -1px;` to all buttons */
}

.btn-matrix>.btn:nth-child(n + 4) {
    margin-top: -1px;
    /* superimpose borders of the buttons from adjacent rows */
}

/* Fix border radius */
.btn-matrix>.btn:first-child {
    border-bottom-left-radius: 0;
}

.btn-matrix>.btn:nth-child(3) {
    border-top-right-radius: 4px !important;
}

.btn-matrix>.btn:nth-last-child(3) {
    border-bottom-left-radius: 4px !important;
}

.btn-matrix>.btn:last-child {
    border-top-right-radius: 0;
}

table.table-nowordwrap>tbody>tr>td {
    white-space: nowrap;
}

@media (min-width: 992px) {
    .col-lg-5half {
        flex: 0 0 auto;
        width: 45.8333332%;
    }
}

.users-msg-summary {
    max-height: 100px;
    min-width: 200px;
    overflow-y: auto;
}

.h-fill {
    height: -webkit-fill-available !important;
}

.table-resize-wrapper {
    position: absolute;
    top: 5em;
    left: 1em;
    right: 1em;
    bottom: 1em;
}

.table-tr-pointer tbody tr td {
    cursor: pointer;
}

.scheduled-callback-input {
    display: none;
}

.scheduled-callback-sv {
    display: none;
}

.form-check-input:checked~.scheduled-callback-input {
    display: block;
}

.form-check-input:checked~.scheduled-callback-sv {
    display: flex;
}

.form-label-micro {
  font-size: 0.65rem !important;     /* Significantly smaller than standard text (~10px-11px) */
  font-weight: 700 !important;       /* Bolded so it remains highly readable at a small size */
  text-transform: uppercase;         /* Capitalized for a clean, architectural, metadata look */
  letter-spacing: 0.08em;            /* Slight letter spacing to enhance small text legibility */
  color: var(--bs-secondary-color); /* Uses Bootstrap 5's native secondary text theme color */
  margin-bottom: 0.25rem;            /* Tighter bottom spacing for compact forms */
  display: inline-block;
}


/* ==========================================
   GLOBAL ENTERPRISE SCROLLBARS
   Applies to the main document body and all scrollable sub-elements
   ========================================== */

/* 1. HTML Root & Global Firefox Support */
html,
* {
    scrollbar-width: thin;
    scrollbar-color: var(--bs-border-color) transparent;
}

/* 2. Overall width & height for Chrome, Safari, and Edge */
::-webkit-scrollbar {
    width: 5px;
    /* Thin vertical scrollbars */
    height: 5px;
    /* Thin horizontal scrollbars */
}

/* 3. The track pathway (Keep completely clear to blend into any background) */
::-webkit-scrollbar-track {
    background: transparent;
    border-radius: 0 !important;
    /* Sharp, geometric enterprise edges */
}

/* 4. The draggable bar (Matches Bootstrap's border color natively) */
::-webkit-scrollbar-thumb {
    background-color: var(--bs-border-color);
    border-radius: 0 !important;
    /* Sharp edges */
    border: none !important;
    /* Eliminates default spacing */
}

/* 5. Subtle darkening effect when hovering anywhere over a scroll bar */
::-webkit-scrollbar-thumb:hover {
    background-color: var(--bs-border-color-translucent);
}



/*hacks for floating labels with select2*/
select[multiple]+.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered {
    padding-top: 1em;
}

select[multiple]+.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice {
    border: none
}

select[multiple]+.select2-container--bootstrap-5 .select2-selection--multiple {
    min-height: 55px !important;
    border: var(--bs-border-width) solid #9dabbb;
}

select[multiple]+.select2-container--bootstrap-5 .select2-selection--multiple.select2-multi-sm {
    max-height: 45px !important;
    min-height: 45px !important;
    border: var(--bs-border-width) solid #9dabbb;
}

select[multiple]+.select2-container--bootstrap-5 .select2-selection--multiple.select2-multi-sm+label {
    font-size: 13px;
}

#manager-reports-stage .form-floating input.form-control {
    min-height: 54px;
    height: 54px;
}

#manager-reports-stage .form-floating input.form-control+label {
    transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}

.ctxmenu {
    position: fixed;
    border: 1px solid;
    border-color: var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    padding: 2px 0;
    box-shadow: var(--bs-box-shadow);
    background: #fff;
    margin: 0;
    z-index: 9999;
    overflow-y: auto;
    font-family: var(--bs-body-font-family);
    font-size: 14px;
    box-sizing: border-box;
}

.ctxmenu li {
    margin: 1px 0;
    display: block;
    position: relative;
    user-select: none
}

.ctxmenu li.heading {
    font-weight: bold;
    margin-left: -5px
}

.ctxmenu li span {
    display: block;
    padding: 2px 20px;
    cursor: default
}

.ctxmenu li a {
    color: inherit;
    text-decoration: none
}

.ctxmenu li.disabled {
    color: #ccc
}

.ctxmenu li.divider {
    border-bottom: 1px solid;
    border-color: var(--bs-border-color);
    margin: 5px 0
}

.ctxmenu li.interactive:hover {
    background: var(--bs-secondary-bg-subtle);
}

.ctxmenu li.submenu::after {
    content: "";
    position: absolute;
    display: block;
    top: 0;
    bottom: 0;
    right: .4em;
    margin: auto .1rem auto auto;
    border-style: solid;
    border-color: var(--bs-border-color);
    border-width: 1px 1px 0 0;
    transform: rotate(45deg);
    width: .3rem;
    height: .3rem
}

.ctxmenu li.submenu.disabled::after {
    border-color: var(--bs-border-color);
}

.dropdown-menu.dt-button-collection>div {
    max-height: 50vh;
    overflow-y: auto;
}

.dt-scroll-head table.table {
    table-layout: fixed;
}

.dt-scroll-head table.table thead th {
    white-space: nowrap;
    /* Prevents text from wrapping to a new line */
    overflow: hidden;
    /* Hides any content that overflows the element's box */
    text-overflow: ellipsis;
    /* Displays an ellipsis (...) to indicate truncated text */
    text-transform: uppercase;
    color: #6c757d;
    font-size: 11px;
}

table.dataTable th.dt-type-date,
table.dataTable td.dt-type-date {
    text-align: left !important;
}

.users-dashboard-toolbar .btn-outline-secondary {
    border-color: #e2e8f0;
    color: #475569;
    background-color: #ffffff;
}

/* Hover state utilizes your clean corporate slate tint */
.users-dashboard-toolbar .btn-outline-secondary:hover {
    background-color: rgb(248, 250, 252);
    color: #0f172a;
    border-color: #cbd5e1;
}

.users-wrapper {
    /* to line up the grid on the outside this is needed*/
    margin-left: -8px;
    margin-right: 2px;
}

.users-wrapper .grid-stack-item {
    container-type: inline-size;
    container-name: call-widget;
}

@container call-widget (max-width: 300px) {
  .hide-sm {
    display: none !important;
  }
}

.users-wrapper .grid-stack-item {
    height: fit-content !important;
}

.users-grid-item {
    height: fit-content !important;
    width: 100%;

    /* Prevent child floats or collapsing margins from reading as 0px */
    display: block;
    clear: both;
    /*overflow: hidden;*/
}

.user-row-wrapper {
    height: fit-content;
    width: 100%;
}

/* Enhances the built-in GridStack sliding animation */
.grid-stack-item {
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

/* 1. Clear out vertical bounding limits so your 10px micro-rows work perfectly */
.grid-stack-item {
    min-height: 0px !important;
}

/* 2. 🔥 THE HORIZONTAL GAP FIX: */
.grid-stack-item-content {
    min-height: 0px !important;
    overflow: visible !important;

    /* Remove vertical constraints */
    margin: 0px !important;
    padding-top: 0px !important;
    padding-bottom: 0px !important;

    /* Add an even 10px cushion to the left and right edges */
    padding-left: 2.5px !important;
    padding-right: 2.5px !important;

    /* Ensures padding shrinks the inner content box instead of stretching the outer grid block */
    box-sizing: border-box !important;
}

.btn-xs,
.btn-group-xs>.btn {
    --bs-btn-padding-y: 0.20rem;
    --bs-btn-padding-x: 0.35rem;
    --bs-btn-font-size: 0.6575rem;
    --bs-btn-border-radius: var(--bs-border-radius-sm);
}



.users-wrapper:not(.show-details) .user-phone-details {
    display: none;
}

.users-wrapper.show-details .user-phone-details {
    display: inline-block;
}


.users-grid-item-placeholder {
    opacity: 0.5;
    border: 2px dashed #0d6efd;
    box-shadow: none;
}


.users-grid-item {
    width: 100%;
}

.users-grid-wrapper-layout {
    container-type: inline-size;
}

.users-grid-sizer,
.users-grid-item {
    width: 100%;
}

.users-grid-item--wide {
    width: 100%;
}

@container (min-width: 500px) {

    .users-grid-sizer,
    .users-grid-item {
        width: 50%;
    }

    .users-grid-item--wide {
        width: 100%;
    }
}

@container (min-width: 800px) {

    .users-grid-sizer,
    .users-grid-item {
        width: 33.1%;
    }

    .users-grid-item--wide {
        width: 66.4%;
    }
}


@container (min-width: 1100px) {

    .users-grid-sizer,
    .users-grid-item {
        width: 24.8%;
    }

    .users-grid-item--wide {
        width: 49.8%;
    }
}


.users-grid-item {
    padding: 2px;
}

*/ #msgs-col .list-group>a {
    cursor: pointer;
}

#msgs-col .list-group>a .chat-btns {
    display: none;
}

#msgs-col .list-group>a:hover .chat-btns {
    display: block;
}

#msg_pinned.list-group>a.list-group-item {
    background-color: var(--bs-primary-bg-subtle) !important;
    /* Custom light yellow highlight */
    color: var(--bs-primary-text-emphasis) !important;
    /* Custom dark text */
    border-left: 5px solid var(--bs-primary);
    /* Pinned indicator border */
}

/* 1. Base wrapper layout */
.image-pile {
    display: grid;
    grid-auto-flow: column;
    /* Side-by-side for 1 or 2 images */
    gap: 10px;
    width: max-content;
}

.image-pile.expanded img,
.image-pile.expanded video {
    margin-right: 0 !important;
    z-index: 1 !important;
    grid-area: unset !important;
}

/* Base style for all thumbnails */
.image-pile img,
.image-pile video {
    width: 65px;
    height: 65px;
    object-fit: cover;
    border: 4px solid white;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
    transition: transform 0.3s ease, z-index 0s;
    cursor: pointer;
}

.image-pile.image-pile-md .image-pile-img {
    width: 100px;
    height: 100px;
}

.image-pile.image-pile-lg .image-pile-img {
    width: 150px;
    height: 150px;
}

/* 2. If there are 3 or more images, stack them on top of each other */
.image-pile .image-pile-img:nth-last-child(n+3 of .image-pile-img),
.image-pile .image-pile-img:nth-last-child(n+3 of .image-pile-img)~.image-pile-img {
    grid-area: 1 / 1;
}

/* 3. Unique offsets and rotations for up to 8 stacked images */
.image-pile .image-pile-img:nth-child(1) {
    transform: translate(0px, 0px) rotate(-5deg);
    z-index: 1;
}

.image-pile .image-pile-img:nth-child(2) {
    transform: translate(8px, 4px) rotate(3deg);
    z-index: 2;
}

.image-pile .image-pile-img:nth-child(3) {
    transform: translate(16px, -2px) rotate(-3deg);
    z-index: 3;
}

.image-pile .image-pile-img:nth-child(4) {
    transform: translate(24px, 6px) rotate(4deg);
    z-index: 4;
}

.image-pile .image-pile-img:nth-child(5) {
    transform: translate(32px, 1px) rotate(-2deg);
    z-index: 5;
}

.image-pile .image-pile-img:nth-child(6) {
    transform: translate(40px, 8px) rotate(5deg);
    z-index: 6;
}

.image-pile .image-pile-img:nth-child(7) {
    transform: translate(48px, 3px) rotate(-4deg);
    z-index: 7;
}

.image-pile .image-pile-img:nth-child(8) {
    transform: translate(56px, 10px) rotate(2deg);
    z-index: 8;
}

/* 4. Hover effect to bring any image to the absolute front */
.image-pile .image-pile-img:hover {
    z-index: 99;
    transform: scale(1.1) rotate(0deg) !important;
}

.image-pile:hover .image-pile-btns {
    display: flex;
}

.image-pile .image-pile-btns {
    display: none;
    z-index: 999;
}

.image-pile .image-pile-btns button {
    --bs-btn-padding-y: .15rem;
    --bs-btn-padding-x: .25rem;
    --bs-btn-font-size: .75rem;
}

/* The chat bubble container */
.typing-bubble {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 12px 16px;
    width: fit-content;
    max-width: 100px;
}

/* Individual bouncing dots */
.typing-dot {
    width: 7px;
    height: 7px;
    background-color: #8e8e93;
    /* iMessage dark gray dot color */
    border-radius: 50%;
    /* Calls the 'bounce' animation below */
    animation: iMessageBounce 1.4s infinite ease-in-out;
}

/* Delays each dot to create the wave / ripple effect */
.typing-dot:nth-child(1) {
    animation-delay: 0s;
}

.typing-dot:nth-child(2) {
    animation-delay: 0.2s;
}

.typing-dot:nth-child(3) {
    animation-delay: 0.4s;
}

/* The bouncing effect */
@keyframes iMessageBounce {

    0%,
    100% {
        transform: translateY(0);
        /* Normal position */
        opacity: 0.4;
        /* Dimmed down */
    }

    35% {
        transform: translateY(-6px);
        /* Bounces up */
        opacity: 1;
        /* Fully visible */
    }
}


@keyframes fadeout {
    0% {
        opacity: 1;
        visibility: visible;
    }

    99% {
        opacity: 0;
    }

    100% {
        opacity: 0;
        visibility: hidden;
    }
}

@keyframes fadein {
    0% {
        opacity: 0;
        visibility: visible;
    }

    100% {
        opacity: 1;
    }
}

span.volume>i {
    visibility: hidden;
    margin-left: 1px;
    margin-right: 1px;
    animation: fadeout 200ms linear;
}

span.volume[data-level="0"]>i {
    visibility: hidden;
    animation: fadeout 200ms linear;
}

span.volume[data-level="1"]>i:nth-child(-n + 1) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="2"]>i:nth-child(-n + 2) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="3"]>i:nth-child(-n + 3) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="4"]>i:nth-child(-n + 4) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="5"]>i:nth-child(-n + 5) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="6"]>i:nth-child(-n + 6) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="7"]>i:nth-child(-n + 7) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="8"]>i:nth-child(-n + 8) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="9"]>i:nth-child(-n + 9) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="10"]>i:nth-child(-n + 10) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="11"]>i:nth-child(-n + 11) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="12"]>i:nth-child(-n + 12) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="13"]>i:nth-child(-n + 13) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="14"]>i:nth-child(-n + 14) {
    visibility: visible;
    animation: fadein 200ms linear;
}

span.volume[data-level="15"]>i:nth-child(-n + 15) {
    visibility: visible;
    animation: fadein 200ms linear;
}

/* Apply this class to your icon or wrapping div when you want it to swing */
.anim-pendulum {
  /* Uses a custom cubic-bezier curve to mimic real gravity physics */
  animation: pendulum-swing 2.2s cubic-bezier(0.445, 0.05, 0.55, 0.95) infinite;
  
  /* CRITICAL: Forces the pivot point to the top center of the 34x34 canvas */
  transform-origin: 50% 10%; 
  
  /* Enables GPU hardware acceleration for lag-free rendering */
  will-change: transform;
}

@keyframes pendulum-swing {
  0% {
    transform: rotate(-18deg); /* Max left swing angle */
  }
  50% {
    transform: rotate(8deg);  /* Max right swing angle */
  }
  100% {
    transform: rotate(-18deg); /* Return back to the left */
  }
}

.app-init-progress-bar {
  position: fixed;
  top: 0; left: 0; width: 100vw; height: 3px; /* Thin, sharp, and out of the way */
  background-color: #f1f5f9; /* Soft background track */
  z-index: 10000;
  overflow: hidden;
}

.progress-bar-line {
  height: 100%;
  background-color: #FF8A00; /* Reuses your authentic Forth Orange */
  width: 40%;
  position: absolute;
  /* High-velocity infinite loading slide animation */
  animation: progress-slide 1s linear infinite; 
}

@keyframes progress-slide {
  0% { left: -40%; }
  100% { left: 100%; }
}

.empty-hide:empty {
    display: none !important;
}

/*.page-wrapper.pinned:not(.sidebar-hovered) .timeclock-switch label {
    display: none;
}*/


:root {
    --bria-dark: #232b35;
    --bria-dark-hover: #313c4a;
    --bria-active: #0d6efd;
    --bria-light-bg: #f8f9fa;
    --bria-border: #e9ecef;
}

/* Primary left-hand module strip */
.bria-module-bar {
    width: 65px;
    background-color: var(--bria-dark);
    flex-shrink: 0;
}

.bria-module-link {
    width: 45px;
    height: 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: #a0aec0;
    transition: all 0.2s ease;
    position: relative;
}

.bria-module-link:hover {
    color: #ffffff;
    background-color: var(--bria-dark-hover);
}

.bria-module-link.active {
    color: #ffffff;
    background-color: var(--bria-active);
}

/* Badge positioning inside module buttons */
.bria-badge {
    position: absolute;
    top: 2px;
    right: 2px;
    font-size: 0.65rem;
    padding: 0.25em 0.4em;
}

/* Secondary contextual communication panel */
.bria-comm-panel {
    width: 285px;
    background-color: var(--bria-light-bg);
    border-right: 1px solid var(--bria-border);
    flex-shrink: 0;
}

/* List scroll bounding container */
.bria-scroll-list {
    overflow-y: auto;
    height: calc(100vh - 125px);
}

.bria-comm-panel .list-group-item-action {
    border: none;
    border-bottom: 1px solid var(--bria-border);
    background-color: transparent;
    padding: 0.6rem 1rem;
}

.bria-comm-panel .list-group-item-action:hover {
    background-color: #ffffff;
}

.text-truncate-sm {
    max-width: 160px;
    display: inline-block;
    vertical-align: middle;
}

.bria-dial-container {
    display: flex;
    align-items: center;
    max-width: 320px;
    height: 38px;
    padding: 0 10px;
    background-color: #f5f6f8;
    border: 1px solid #dce0e6;
    border-radius: 4px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    box-sizing: border-box;
    transition: border-color 0.2s, background-color 0.2s;
}

.bria-dial-container:focus-within {
    background-color: #ffffff;
    border-color: #0078d4;
    box-shadow: 0 0 0 2px rgba(0, 120, 212, 0.2);
}

.bria-icon-phone {
    display: flex;
    align-items: center;
    color: #605e5c;
    margin-right: 8px;
    flex-shrink: 0;
}

.bria-dial-input {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
    font-size: 14px;
    color: #323130;
}

.bria-dial-input::placeholder {
    color: #a19f9d;
}

.bria-clear-btn {
    display: none;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    background: #c8c6c4;
    color: #ffffff;
    border: none;
    border-radius: 50%;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
    margin-left: 6px;
    padding: 0;
}

.bria-clear-btn:hover {
    background: #a19f9d;
}

/* Show clear button when input has text (handled easily via JS or state) */
.bria-dial-input:not(:placeholder-shown)~.bria-clear-btn {
    display: flex;
}

/* widen columns for call view */
@media (min-width: 1400px) {
    #calls-container .fvcall {
        /* Your custom styles here */
        width: 33.3333%;
        /* Example: force 4/12 columns */
    }
}

.fvcall {
    height: fit-content;
}

/* Custom Enterprise Call Status Badges */
.fvcall .badge-status-active {
    background-color: var(--bs-primary-bg-subtle) !important;
    color: var(--bs-primary-text-emphasis) !important;
    border: 1px solid var(--bs-primary-border-subtle) !important;
}

.fvcall .badge-status-ringing {
    background-color: var(--bs-warning-bg-subtle) !important;
    color: var(--bs-warning-text-emphasis) !important;
    border: 1px solid var(--bs-warning-border-subtle) !important;
}

.fvcall .badge-status-busy {
    background-color: var(--bs-danger-bg-subtle) !important;
    color: var(--bs-danger-text-emphasis) !important;
    border: 1px solid var(--bs-danger-border-subtle) !important;
}

/* Updated from custom green to matching secondary gray palette variables */
.fvcall .badge-status-disposition {
    background-color: var(--bs-secondary-bg-subtle) !important;
    color: var(--bs-secondary-text-emphasis) !important;
    border: 1px solid var(--bs-secondary-border-subtle) !important;
}

/* Base structural layout tightening for modern softphone headers */
.fvcall .badge-softphone {
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
    padding: 0.3em 0.65em !important;
    text-transform: uppercase !important;
    border-radius: 4px !important;
}

/* Styling the interactive match rows to feel like enterprise buttons */
.fvcall .selection-row {
    transition: background-color 0.1s ease, border-color 0.1s ease;
    cursor: pointer;
}

.fvcall .selection-row:hover {
    background-color: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
}

/* Ensure radio buttons scale nicely inside small rows */
.fvcall .selection-row input[type="radio"] {
    width: 0.85rem;
    height: 0.85rem;
    border-color: #cbd5e1;
}

.fvcall .selection-row input[type="radio"]:checked,.fvcall .selection-row input[type="radio"][checked] {
    background-color: rgb(3, 7, 11);
    border-color: rgb(3, 7, 11);
}


.fvcall[] .fvcall-remove {
    box-sizing: border-box;
    overflow: hidden;
    /* Prevents text/buttons from leaking during collapse */

    /* Total duration: 1.3 seconds (1s fade + 0.3s quick collapse) */
    animation: responsiveFadeCollapse 2.1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes responsiveFadeCollapse {

    /* STAGE 1: Fade out completely for 1 second (0% to 76%) */
    0% {
        opacity: 1;
        /* Using safe, large max values so it fits any dynamic size */
        max-width: 600px;
        max-height: 400px;
    }

    76% {
        opacity: 0;
        /* Layout properties remain fully intact until the 1s fade finishes */
        max-width: 600px;
        max-height: 400px;
        padding-top: inherit;
        padding-bottom: inherit;
        margin-top: inherit;
        margin-bottom: inherit;
    }

    /* STAGE 2: Quickly collapse flat to the side or top/bottom in 0.3s (76% to 100%) */
    100% {
        opacity: 0;
        max-width: 0;
        max-height: 0;
        padding-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        margin-top: 0;
        margin-bottom: 0;
        margin-left: 0;
        margin-right: 0;
        border-width: 0;
    }
}


/* Container Box & Section Header */
.bria-recents-container,
.bria-main-dial-container {
    background-color: #ffffff !important;
    /* Crisp Light Canvas */
    border-bottom: 1px solid #edf1f6;
}

.bria-main-dial-container {
    width: clamp(200px, 20vw, 285px);
}

.bria-recents-title {
    color: #64778d !important;
    /* Muted Light Slate Label */
    font-size: 11px !important;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-weight: 700 !important;
    margin-bottom: 8px !important;
    padding: 0 !important;
}

/* Consolidated Search & Filter Row */
.bria-search-group {
    display: flex !important;
    background-color: #fff !important;
    /* Light Input Bed */
    border: 1px solid #d1d9e6 !important;
    border-radius: 4px !important;
    overflow: hidden;
    padding: 2px 4px;
}

.bria-search-group:focus-within {
    border-color: #5d9cec !important;
    /* Focused Accent Line */
    background-color: #ffffff !important;
    box-shadow: 0 0 0 1px #5d9cec;
}

/* Text Search Field */
.bria-search-group .form-control {
    background-color: transparent !important;
    border: none !important;
    color: #2c3e50 !important;
    /* High contrast dark text */
    font-size: 12px !important;
    padding: 4px 6px !important;
    box-shadow: none !important;
}

.bria-search-group .form-control::placeholder {
    color: #a0b0c5 !important;
}

/* Category Filter Select Dropdown */
.bria-search-group .form-select {
    background-color: #ffffff !important;
    /* Distinct white action block */
    border: 1px solid #d1d9e6 !important;
    border-radius: 3px !important;
    color: #64778d !important;
    font-size: 11px !important;
    padding: 2px 24px 2px 8px !important;
    max-width: 85px;
    box-shadow: none !important;
}

.bria-search-group .form-select:focus {
    color: #2c3e50 !important;
    border-color: #5d9cec !important;
}

/* 2. Force round only the top corners of the very first item */
.bria-dispo-item:first-child {
    border-top: none !important;
}

#main-dial.bria-search-group {
    display: flex !important;
    background-color: #f4f7fa !important;
    /* Light Input Bed */
    border: 1px solid #d1d9e6 !important;
    border-radius: 4px !important;
    overflow: hidden;
    padding: 2px 4px;
}

/* Text Search Field */
#main-dial.bria-search-group .form-control {
    background-color: transparent !important;
    border: none !important;
    color: #2c3e50 !important;
    /* High contrast dark text */
    font-size: 13px !important;
    padding: 4px 6px 4px 6px !important;
    box-shadow: none !important;
}

/* Base tooltip state (completely hidden) */
#main-dial .dialinput-tooltip {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 1050;
    max-width: 260px;
    padding: 6px 12px;
    font-size: 0.75rem;
    border-radius: 4px;

    /* Palette definitions */
    background-color: #1e2230;
    color: #ffffff;
    border: 1px solid #e8ebf4;

    /* Hidden positioning properties */
    opacity: 0;
    pointer-events: none;
    transform: translateY(-4px);
    transition: opacity 0.15s ease, transform 0.15s ease;
}

/* Tooltip layout Arrow Tip */
#main-dial .dialinput-tooltip::before {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 16px;
    border-width: 5px;
    border-style: solid;
    border-color: transparent transparent #1e2230 transparent;
}

#main-dial.show-tooltip {
    overflow: unset;
}

/* 🎯 THE OVERRIDE RULE: When the parent container has this class, reveal it */
#main-dial.show-tooltip .dialinput-tooltip {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

#dial_input::placeholder,
#dial_input::-webkit-input-placeholder {
    width: fit-content;
}

#global-sidebar-tooltip {
    position: fixed;
    /* 🎯 Snaps it out of the scrolling layout engine entirely */
    top: 0;
    left: 0;
    z-index: 9999;
    /* Float above all tables, headers, and dialers */
    max-width: 260px;
    padding: 6px 12px;
    font-size: 0.75rem;
    border-radius: 4px;
    white-space: nowrap;

    background-color: #1e2230;
    color: #ffffff;
    border: 1px solid #e8ebf4;

    /* Start hidden */
    opacity: 0;
    pointer-events: none;
    transform: translateY(-50%) translateX(-4px);
    transition: opacity 0.15s ease, transform 0.15s ease;
}

/* Arrow tail adjustments */
#global-sidebar-tooltip::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 100%;
    transform: translateY(-50%);
    border-width: 5px;
    border-style: solid;
    border-color: transparent #1e2230 transparent transparent;
}

/* Revealed visual state macro */
#global-sidebar-tooltip.show {
    opacity: 1;
    transform: translateY(-50%) translateX(0);
}

/* 1. Main Context Menu Outer Wrapper */
ul.ctxmenu.sidebar-ctxmenu,
ul.ctxmenu.sidebar-ctxmenu ul.ctxmenu {
    background-color: #1e2230 !important;
    border: 1px solid rgba(255, 255, 255, 0.12);
    /* Soft border typical of tooltips */
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
    /* Smooth shadow to elevate from background */
    padding: 6px 0;
    margin: 0;
    list-style: none;
    font-family: system-ui, -apple-system, sans-serif;
    color: #e2e8f0;
    /* Crisp white-gray text color for dark themes */
    width: fit-content !important;
}

/* 2. Global styling for all items */
ul.ctxmenu.sidebar-ctxmenu li {
    padding: 6px 8px;
    font-size: 13px;
    display: flex;
    align-items: center;
}

ul.ctxmenu.sidebar-ctxmenu li span {
    padding: 0px 5px;
}

/* 3. Unclickable Categories / Headings */
ul.ctxmenu.sidebar-ctxmenu li.heading,
ul.ctxmenu.sidebar-ctxmenu li.fw-medium:not(.interactive) {
    color: #64748b;
    /* Muted gray for non-interactive category titles */
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
    padding-top: 8px;
    padding-bottom: 4px;
}

/* Add a tiny gap separator above subheadings if needed */
ul.ctxmenu.sidebar-ctxmenu li.fw-medium:not(.interactive) {
    color: #94a3b8;
    text-transform: none;
    font-size: 13px;
    font-weight: 500;
}

/* 4. Interactive Clickable Menu Items */
ul.ctxmenu.sidebar-ctxmenu li.interactive {
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
    color: #f1f5f9;
}

/* Hover & Focus state for interactive menu items */
ul.ctxmenu.sidebar-ctxmenu li.interactive:hover {
    background-color: #2d3247;
    /* Slightly lighter blend for the hover highlight */
    color: #ffffff;
    /* Absolute white text on hover */
}


/* Custom tweaks to match the theme color matrix perfectly */
#settings-tabs .nav-link {
    color: #4a5568;
    transition: all 0.15s ease;
}

#settings-tabs .nav-link:hover {
    background-color: #e9eff5;
}

#settings-tabs .nav-link.active {
    background-color: #e2e8f0;
    color: #1a202c;
    border: 1px solid #d1d9e6;
}

.form-switch .form-check-input:checked {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

/* Completely remove Bootstrap's automatic dropdown arrow for this element */
.call-dropdown-btn::after {
    display: none !important;
    content: none !important;
}

/* Bria light-theme layout definitions for the recent call log */
#calls_recents {
    background-color: #ffffff !important;
    /* Crisp white phone container canvas */
    border-radius: 6px;
    padding: 0;
    max-width: 400px;
}

#calls_recents li.bria-recent-item {
    background-color: transparent !important;
    border-bottom: 1px solid #edf1f6 !important;
    transition: background-color 0.15s ease;
    padding: 5px 4px;
}

/* Row Hover State matching standard light-mode UI selection clicks */
#calls_recents li.bria-recent-item:hover {
    background-color: #f4f7fa !important;
}

#calls_recents li.bria-recent-item:last-child {
    border-bottom: none !important;
}

/* Typography Overrides targeting text elements */
#calls_recents .recent-call a {
    color: #2c3e50 !important;
    /* Deep dark slate for primary readability */
    text-decoration: none !important;
}

#calls_recents .recent-call a.small {
    color: #64778d !important;
    /* Secondary muted slate for extensions/timers */
    font-weight: 400;
    margin-top: 2px;
}

/* Call Status Colors tuned for high-contrast on light backgrounds */
#calls_recents .bi-arrow-down-left.text-success,
#calls_recents .bi-arrow-up-right.text-success {
    color: #27ae60 !important;
    /* Stronger flat green */
}

#calls_recents .bi-arrow-down-left.text-danger {
    color: #d9534f !important;
    /* Deep red clear marker for missed alerts */
}

#calls_recents .text-muted {
    color: #8395a7 !important;
}

#calls_recents .avatar i {
    color: #cbd5e1 !important;
    /* Soft grey for placeholder user profile discs */
}

/* --- Bria Presence Selector Styling --- */
.bria-presence-container,
.bria-agentstatus-container {
    background-color: #ffffff !important;
    max-width: 240px;
    /* Snug width for sidebars */
}

/* Custom Dropdown Trigger Button */
.bria-presence-dropdown,
.bria-agentstatus-dropdown {
    width: 100%;
    color: #2c3e50 !important;
    font-size: 13px !important;
    font-weight: 500;
    padding: 6px 12px !important;
    border-radius: 4px !important;
    display: flex;
    align-items: center;
    gap: 8px;
    text-align: left;
    box-shadow: none !important;
}

.bria-presence-dropdown:hover {
    background-color: #eef2f6 !important;
}

/* Custom Arrow position adjustment */
.bria-presence-dropdown::after,
.bria-agentstatus-dropdown::after {
    margin-left: auto;
    color: #64778d;
}

/* Presence Dot Bases */
.p-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* Status Color Tokens */
.dot-online {
    background-color: #2ecc71;
    box-shadow: 0 0 0 2px rgba(46, 204, 113, 0.2);
}

.dot-available {
    background-color: #27ae60;
}

.dot-away {
    background-color: #f1c40f;
}

.dot-dnd {
    background-color: #e74c3c;
}

.dot-offline {
    background-color: #6f7a87;
}

/* Dropdown Menu List Override */
.dropdown-menu-presence,
.dropdown-menu-agentstatus {
    background-color: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    padding: 4px 0 !important;
    min-width: 100%;
}

.dropdown-menu-presence .dropdown-item,
.dropdown-menu-agentstatus .dropdown-item {
    font-size: 13px !important;
    color: #2c3e50 !important;
    padding: 6px 12px !important;
    display: flex;
    align-items: center;
    gap: 8px;
}

.dropdown-menu-presence .dropdown-item:hover {
    background-color: #f4f7fa !important;
}

/* Selected active indicator checkmark element placement */
.dropdown-menu-presence .dropdown-item .bi-check,
.dropdown-menu-agentstatus .dropdown-item .bi-check {
    margin-left: auto;
    color: #5d9cec;
    font-size: 16px;
    visibility: hidden;
}

.dropdown-menu-presence .dropdown-item.active-presence .bi-check,
.dropdown-menu-agentstatus .dropdown-item.active-agentstatus .bi-check {
    visibility: visible;
}

/* --- Bria Light Micro SIP Status Panel --- */
.bria-sip-micro-card {
    background-color: #ffffff !important;
    padding: 6px 14px;
    /* Ultra tight vertical spacing */
    max-width: 240px;
    /* Matches presence container width */
    box-sizing: border-box;
}

.bria-sip-micro-flex {
    display: flex;
    align-items: center;
    /* Center content vertically */
    gap: 8px;
    cursor: help;
    /* Signals that hover context is available */
}

/* Micro-scaled profile icon disk */
.sip-micro-icon {
    font-size: 13px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    /* Rounded circular token alignment */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.sip-micro-title {
    font-size: 13px;
    /* Matches presence text scale perfectly */
    font-weight: 500;
    line-height: 1;
}

/* --- Color Shifting Theme States --- */
.sip-registered .sip-micro-icon {
    background-color: #e8f8f0;
    color: #27ae60;
}

.sip-registered .sip-micro-title {
    color: #27ae60;
}

.sip-unregistered .sip-micro-icon {
    background-color: #f4f7fa;
    color: #64778d;
}

.sip-unregistered .sip-micro-title {
    color: #2c3e50;
}

.sip-failed .sip-micro-icon {
    background-color: #fdedec;
    color: #e74c3c;
}

.sip-failed .sip-micro-title {
    color: #e74c3c;
}

.sip-connecting .sip-micro-icon {
    background-color: #fef9e7;
    color: #f1c40f;
}

.sip-connecting .sip-micro-title {
    color: #b7950b;
}

/* Spin animation logic */
.sip-spin {
    display: inline-block;
    animation: bria-mini-spin 1.5s infinite linear;
}

@keyframes bria-mini-spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

#sidebar-container.sidebar-wrapper {
    color: #ffffff !important;
    width: 220px;
}

.pinned #sidebar-container.sidebar-wrapper {
    width: 64px;
}

.pinned #sidebar-container.sidebar-wrapper .pinned-hide {
    display: none !important;
}

.pinned #sidebar-container.sidebar-wrapper .bria-agentstatus-dropdown {
    justify-content: center !important;
}

.pinned #sidebar-container.sidebar-wrapper .bria-presence-dropdown::after,
.pinned #sidebar-container.sidebar-wrapper .bria-agentstatus-dropdown::after {
    display: none;
}

.pinned #sidebar-container.sidebar-wrapper .bria-presence-dropdown,
.pinned #sidebar-container.sidebar-wrapper .bria-agentstatus-dropdown {
    padding: 6px 6px !important
}

.pinned #sidebar-container.sidebar-wrapper .bria-agentstatus-container {
    position: relative !important;
}

/* 1. INTERCEPT STATE WHEN PINNED: Enable parent hover track, disable inner button click */
.pinned .dropdown {
    pointer-events: auto !important;
}

.pinned .bria-agentstatus-dropdown {
    pointer-events: none !important;
}


/* Slimmed Profile Strips */
#sidebar-container #sidebar-timeclock-menu {
    padding: 8px 12px;

    border-bottom: 1px solid #e8ebf4 !important;
    margin: 0;
}

#sidebar-container .agent-header {

    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    margin-bottom: 4px !important;
}


#sidebar-container .timeclock-switch {
    color: #8fa0b5;
}

#sidebar-container .timeclock-switch .form-check-input {
    width: 28px;
    height: 15px;
    margin-top: 2px;
    font-size: 13px;
}

#sidebar-container .timeclock-switch .form-check-input:checked+label {
    text-decoration: none;
    font-weight: bold;
    font-size: 13px;
}

#sidebar-container .input-group {
    border-radius: 4px;

}

#sidebar-container .input-group .btn,
#sidebar-container .btn-agent-queues {
    color: #ffffff !important;
    border: none !important;
    font-size: 13px;
    text-align: left;
}


#sidebar-container #agent-timer {
    border: none;
    font-family: monospace;
    font-weight: bold;
    font-size: 13px;
}

#sidebar-container .btn-agent-queues {
    width: 100%;
    text-align: center;
    font-size: 12px;
    padding: 6px;
}

.sidebar-menu .list-group-item.active,
.sidebar-menu-bottom .list-group-item.active {
    background-color: var(--bs-gray-100) !important;
    /* Soft, professional grey tint */
    color: var(--bs-gray-900) !important;
    /* Sharp, highly readable dark text */
    border-color: var(--bs-border-color) !important;
    /* Standard, subtle item divider */

    /* The Enterprise Indicator Bar (Anchor point for the user's eye) */
    border-left: 4px solid #0f172a !important;
    /* Deep slate / navy indicator */
    font-weight: 600;
    /* Keeps focus text grounded */
}

.calls-sidebar {
    top: 50px;
    height: calc(100vh - 50px);
    background-color: rgb(245, 246, 250);
}

.users-wrapper .user-row-wrapper {
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background-color: #ffffff;
    overflow: hidden;
    /* Prevents slide down from spilling over borders */
    transition: all 0.15s ease;
}

.users-wrapper .user-row-wrapper:hover {
    border-color: #cbd5e1;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

/* Clickable Triggers */
.users-wrapper .user-row-header {
    padding: 0.6rem 0.8rem;
    cursor: pointer;
    user-select: none;
    min-height: 58px;
}

/* Chevron turning animation */
.users-wrapper .chevron-icon {
    transition: transform 0.2s ease;
    color: #94a3b8;
}

.users-wrapper .user-row-header[aria-expanded="true"] .chevron-icon {
    transform: rotate(180deg);
}

/* Small Micro Avatars */
.users-wrapper .avatar-sm {
    position: relative;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
}

.users-wrapper .avatar-sm-placeholder {
    width: 100%;
    height: 100%;
    border-radius: 4px;
    background-color: #f1f5f9;
    border: 1px solid #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 0.75rem;
    color: #475569;
}

.users-wrapper .status-dot-mini {
    position: absolute;
    top: -2px;
    right: -2px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: 1.5px solid #ffffff;
}

/* Presence Dot Styling */
.users-wrapper .dot-available {
    background-color: #10b981;
}

.users-wrapper .dot-busy {
    background-color: #ef4444;
}

.users-wrapper .dot-dnd {
    background-color: #f59e0b;
}

.users-wrapper .dot-offline {
    background-color: #94a3b8;
}

/* Badges & Text Sizes */
.users-wrapper .badge-micro {
    font-size: 0.65rem;
    font-weight: 600;
    padding: 2px 5px;
    border-radius: 3px;
}

.users-wrapper .metric-text {
    font-size: 0.75rem;
    white-space: nowrap;
}

.users-wrapper .tray-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    font-weight: 600;
}

.users-wrapper .grid-stack-item[data-favorite="0"] .favorite-star {
    display: none !important;
}

/* ==========================================================================
   Prevent DataTables Bootstrap 5 Layout Style Interference
   ========================================================================== */

/* 1. Force your custom light border theme through DataTables calculation layers */
.dataTables_wrapper .table.table-light {
    --bs-table-border-color: #d1d9e6;
    --bs-table-bg: #f4f7fa;
    border-collapse: collapse !important;
    /* Fixes unexpected thick borders */
}

/* 2. Target header split tables when scrollY forces a clone */
.dataTables_wrapper .dataTables_scrollHead table.table-light,
.dataTables_wrapper .dataTables_scrollBody table.table-light {
    border-bottom: none !important;
    border-top: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* 3. Style the separate header wrapper border line flawlessly */
.dataTables_wrapper .dataTables_scrollHead {
    border: 1px solid #d1d9e6 !important;
    border-bottom: 2px solid #d1d9e6 !important;
    /* Ground column labels cleanly */
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    background-color: #e2e8f0 !important;
    /* Keep header track background rigid */
}

/* 4. Match the body scrolling area container matching theme */
.dataTables_wrapper .dataTables_scrollBody {
    border: 1px solid #d1d9e6 !important;
    border-top: none !important;
    /* Prevent double borders where tables touch */
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
}

/* 5. Fix DataTables sorting icon positioning misalignment */
.dataTables_wrapper table.dataTable thead th.sorting::after,
.dataTables_wrapper table.dataTable thead th.sorting::before {
    bottom: 0.5rem !important;
    /* Vertically center sort arrows on dense rows */
}

/* Restrict widths so multiple filters sit cleanly on one line */
.filter-item {
    width: auto;
    max-width: 180px;
    flex: 1 1 auto;
}

/* Label styling inside the input box */
.filter-label {
    background-color: #ffffff !important;
    color: #6c757d;
    font-size: 0.65rem !important;
    /* 12px */
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding-right: 0.25rem;
    border-color: #d1d9e6 !important;
}

/* Clean up borders and match input styling */
.filter-select {
    font-size: 0.8125rem !important;
    /* 13px */
    color: #212529;
    border-color: #e8ebf4 !important;
    border-left: none !important;
    /* Blends label and select smoothly */
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    height: 32px;
    /* Enforces absolute density */
}

/* Handle focus states smoothly */
.filter-select:focus {
    border-color: #ced4da !important;
    box-shadow: none;
}

/* Custom Text Input Styling */
.filter-input {
    border-color: #d1d9e6 !important;
    border-left: none !important;
    border-top-right-radius: 4px !important;
    border-bottom-right-radius: 4px !important;
    height: 32px;
}

/* Ensure placeholder text is distinct but readable */
.filter-input::placeholder {
    color: #adb5bd;
    font-style: italic;
    font-size: 0.75rem;
}

/* Compact Clear Button inside the input group */
.filter-clear-btn {
    background-color: #ffffff;
    border-color: #e8ebf4 !important;
    color: #adb5bd;
    font-size: 1rem;
    line-height: 1;
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

.filter-clear-btn:hover {
    background-color: #f8f9fa;
    color: #6c757d;
}

/* Maintain focus states across the combined fields */
.filter-input:focus {
    box-shadow: none;
    border-color: #ced4da !important;
}

/* Force the Select2 container to behave like a standard Bootstrap input component */
.report-filters .input-group .select2-container--default {
    flex: 1 1 auto;
    width: 1% !important;
    /* Forces Select2 to fill remaining space in input-group */
}

/* Style the inner Select2 selection box to match our 32px height constraint */
.report-filters .input-group .select2-container--default .select2-selection--multiple {
    border: 1px solid #e8ebf4 !important;
    border-top-left-radius: 0 !important;
    /* Flattens edge against the 'User' label */
    border-bottom-left-radius: 0 !important;
    height: 32px !important;
    padding: 0 4px !important;
    display: flex;
    align-items: center;
    overflow: hidden;
    /* Prevents selected items from stacking vertically */
}

/* Adjust the selected choice 'pills' inside Select2 to be ultra-compact */
.report-filters .input-group .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #f1f3f9 !important;
    border: 1px solid #e8ebf4 !important;
    font-size: 0.75rem !important;
    /* 12px */
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 1px 6px !important;
    line-height: 1.4;
}

/* Fix the Select2 search/input box inside the multiple select */
.report-filters .input-group .select2-container--default .select2-selection--multiple .select2-selection__rendered {
    display: flex !important;
    align-items: center;
    gap: 4px;
    flex-wrap: nowrap;
    /* Forces selections onto a single horizontal line */
    padding: 0 4px !important;
    width: 100%;
    margin-bottom: 0;
}

.report-filters .input-group .select2-container--default .select2-search--inline .select2-search__field {
    margin-top: 0 !important;
    font-size: 0.8125rem !important;
    height: 24px;
}

/* Style the dropdown search results list to match typography */
.report-filters .select2-results__option {
    font-size: 0.8125rem !important;
}

.report-filters .select2-container--default .select2-selection--multiple .select2-selection__choice__display {
    padding-left: 15px;
}

/* 1. Main Parent Container */
.flex-table-wrap {
    display: flex;
    flex-direction: column;
    height: -webkit-fill-available;
    /* Fill the viewport height */
    box-sizing: border-box;
}

/* 3. Bottom Flex Item containing the Table */
.flex-table-wrap .flex-table-container {
    flex-grow: 1;
    min-height: 0;
    /* CRITICAL: Allows flex child to shrink/fit without overflowing */
    position: relative;
}

/* 4. Force DataTables inner wrapper to take full height */
.flex-table-wrap .flex-table-container .dataTables_wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* 5. Force the scrollable body to take all remaining space inside the wrapper */
.flex-table-wrap .flex-table-container .dataTables_scroll {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.flex-table-wrap .flex-table-container .dataTables_scrollBody {
    flex-grow: 1 !important;
    /* Overrides DataTables inline heights */
    height: auto !important;
    /* Lets flexbox dictate the height dynamically */
}

/* Custom spacing for data-dense headings */
.text-spacing {
    letter-spacing: 0.06rem;
}

/* Subtle dashboard card styling */
.hover-card {
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    background-color: #ffffff;
}

/* Makes the whole card act like an elegant desktop button */
.hover-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.08) !important;
    cursor: pointer;
}

/* 1. Reset Accordion Container for Data Density */
.accordion-enterprise {
    --bs-accordion-border-color: #e2e8f0;
    /* Ultra-light border */
    --bs-accordion-bg: transparent;
}

.accordion-enterprise .accordion-item {
    border-left: 0;
    border-right: 0;
    border-radius: 0 !important;
    /* Sharp enterprise edges */
}

/* 2. Compact Accordion Headers */
.accordion-enterprise .accordion-button {
    padding: 0.5rem 0.75rem;
    /* Drastically compressed padding */
    font-size: 0.85rem;
    font-weight: 600;
    color: rgb(3, 7, 11) !important;
    /* Your core data color */
    background-color: transparent !important;
    border-radius: 0 !important;
}

/* Eliminate the default Bootstrap blue outline/shadow when clicked */
.accordion-enterprise .accordion-button:focus {
    box-shadow: none;
    border-color: var(--bs-accordion-border-color);
}

/* Active open state styling */
.accordion-enterprise .accordion-button:not(.collapsed) {
    box-shadow: none;
    color: rgb(3, 7, 11);
}

/* Muted color for the expand chevron icon */
.accordion-enterprise .accordion-button::after {
    filter: grayscale(1) opacity(0.6);
    background-size: 0.85rem;
    /* Smaller arrow */
}

/* 3. Compact Accordion Inner Body */
.accordion-enterprise .accordion-body {
    padding: 0.75rem;
    /* Tight content view */
    font-size: 0.85rem;
    background-color: #f8fafc;
    /* Very subtle off-white background tint for the opened drawer */
    color: rgb(3, 7, 11);
}

/* Custom Purple Border Treatment for Network CONGESTION */
.bg-purple-border-subtle {
    border: 1px solid #d8b4fe !important; /* Soft lavender-purple border line */
}
/* Custom Purple Treatment for Network CONGESTION */
.bg-purple-subtle {
    background-color: #f3e8ff !important; /* Soft, light lavender-purple */
}
.text-purple-emphasis {
    color: #6b21a8 !important; /* Rich, dark purple for accessible contrast */
}


/* 1. Base Class: Force ALL vertical layout metrics to 0 */
.fx-slide-fade {
  max-height: 0;
  overflow: hidden;
  margin-top: -10px;
  
  /* CRITICAL: Collapse padding and borders completely when closed */
  padding: 0 !important;
  border-top-width: 0 !important;
  border-bottom-width: 0 !important;
  border-style: solid; /* Keeps layout rules ready */
  border-color: transparent;
  
  /* Synchronize all collapsing structural properties together */
  transition: 
    max-height 0.3s ease-out, 
    margin-top 0.25s ease-out,
    padding 0.3s ease-out,
    border-color 0.2s ease;
}

/* 2. Active Modifier Class: Restore your precise enterprise spacing */
.fx-slide-fade.is-active {
  max-height: 500px;
  margin-top: 0;
  
  /* Restore your standard dashboard card padding and border thickness */
  padding: 1rem !important;    /* Adjust to match your original padding */
  
  /* Handoff overflow to visible so your dropdown can spill out perfectly */
  transition: 
    max-height 0.3s ease-out, 
    margin-top 0.25s ease-out, 
    padding 0.3s ease-out,
    border-color 0.2s ease,
    overflow 0s linear 0.3s;
  overflow: visible !important; 
}

/* Target the automatically generated bottom layout row */
div.dt-container div.dt-layout-row:last-child {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  background-color: #ffffff !important;
  border-top: 1px solid #e8ebf4 !important; /* Matches card-border tokens */
  padding: 0.5rem 1rem !important; /* 8px top/bottom, 16px left/right gutter padding */
  height: 48px !important;
}

/* Force standard text info formatting ("Showing 1 to 25...") */
div.dt-container .dt-layout-cell.dt-start {
  font-size: 0.875rem !important;
  color: #6c757d !important;
}

/* Format pagination container cells to look like clean button groups */
div.dt-container .dt-layout-cell.dt-end .dt-paging {
  display: inline-flex !important;
}

div.dt-container .dt-paging-button {
  border: 1px solid #ced4da !important;
  background: #ffffff !important;
  color: #212529 !important;
  cursor: pointer;
}

/* Style active and hover pagination button tokens */
div.dt-container .dt-paging-button.current {
  background: #6c757d !important; /* Slate layout gray tint */
  color: #ffffff !important;
  border-color: #6c757d !important;
}

div.dt-container .dt-paging-button:hover:not(.current) {
  background: #f8f9fa !important;
  color: #212529 !important;
}

.card-dt .dt-container.dt-bootstrap5 {
    height: 100%;
}
.card-dt .dt-container.dt-bootstrap5 .dt-layout-table {
    height: calc(100% - 70px);
    margin-top: 0px !important;
}
.card-dt .dt-container.dt-bootstrap5 .dt-layout-table .dt-scroll {
    height: calc(100% - 36px);
}
.card-dt .dt-container.dt-bootstrap5 .dt-layout-full {
    height: 100%;
    overflow-y: auto;
    padding: 0px !important;
}
.card-dt .tab-pane .dt-container.dt-bootstrap5 .dt-layout-full {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
}
.card-dt .dt-container.dt-bootstrap5 .row.mt-2 {
    margin-top: 0px !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    padding-top: 1rem !important;
}
.card-dt .dt-container.dt-bootstrap5 .row.mt-2.dt-layout-table {
    padding-left: 0px !important;
    padding-right: 0px !important;
    padding-top: 0px !important;
}
.card-dt .pagination {
    --bs-pagination-padding-x: 0.75rem;
    --bs-pagination-padding-y: 0.375rem;
    --bs-pagination-font-size: 0.9rem;
    --bs-pagination-color: #8c92ac;
    --bs-pagination-bg: var(--bs-body-bg);
    --bs-pagination-border-width: var(--bs-border-width);
    --bs-pagination-border-color: #d1d9e6;
    --bs-pagination-border-radius: var(--bs-border-radius);
    --bs-pagination-hover-color: #5c647a;
    --bs-pagination-hover-bg: #f8fafc;
    --bs-pagination-hover-border-color: #8c92ac;
    --bs-pagination-focus-color: #1e2230;
    --bs-pagination-focus-bg: var(--bs-secondary-bg);
    --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(0, 115, 216, 0.25);
    --bs-pagination-active-color: #1e2230;
    --bs-pagination-active-bg: #e8ebf4;
    --bs-pagination-active-border-color: #8c92ac;
    --bs-pagination-disabled-color: var(--bs-secondary-color);
    --bs-pagination-disabled-bg: var(--bs-secondary-bg);
    --bs-pagination-disabled-border-color: var(--bs-border-color);
    display: flex;
    padding-left: 0;
    list-style: none;
}
/* 1. Target the first visible TH header in the stack */
.card-dt table.dataTable th:not([style*="display: none"]):not([style*="display: none"]) ~ th {
  /* This resets sibling columns so they don't get the padding */
}

/* 🌟 The Magic Rule: Target the absolute first visible cell */
.card-dt table.dataTable tr > th:not([style*="display: none"]):first-of-type,
.card-dt table.dataTable tr > td:not([style*="display: none"]):first-of-type,
.card-dt table.dataTable tr > th:not([style*="display: none"]) {
  /* Unfortunately, CSS doesn't have a :first-visible pseudo-class, 
     but because DataTables modifies inline styles, we override it like this: */
}

/* 2. THE BULLETPROOF DATATABLES 2.0+ PURE CSS WAY */
.card-dt table.dataTable th:not([style*="display: none"]):first-child,
.card-dt table.dataTable td:not([style*="display: none"]):first-child {
  padding-left: 1rem !important;
}

/* 3. Handle when Column 0 is hidden (Column 1 becomes the first visible item) */
.card-dt table.dataTable th[style*="display: none"] + th:not([style*="display: none"]),
.card-dt table.dataTable td[style*="display: none"] + td:not([style*="display: none"]) {
  padding-left: 1rem !important;
}

/* 4. Handle when both Column 0 and Column 1 are hidden (Column 2 becomes first visible) */
.card-dt table.dataTable th[style*="display: none"] + th[style*="display: none"] + th:not([style*="display: none"]),
.card-dt table.dataTable td[style*="display: none"] + td[style*="display: none"] + td:not([style*="display: none"]) {
  padding-left: 1rem !important;
}

/* Keep the small text line height locked, but scale the icon graphics up */
.card-dt button[data-action] i, .card-dt button[data-recording] i {
    display: inline-block; /* Required for transform scaling to work */
    font-size: inherit;    /* Inherits your table's small font base */
    transform: scale(1.35); /* Blown up 20% cleaner and crisper */
    transition: transform 0.1s ease-in-out;
}

/* Subtle micro-interaction: Pop it a bit more when directly hovered */
.card-dt button[data-action]:hover i,.card-dt button[data-recording]:hover i {
    transform: scale(1.5); 
}


/* 1. Remove excess vertical margins from the native divider lines */
.manager-reports-header .dropdown-menu .dropdown-divider {
  margin: 4px 0 !important;
}

/* 2. Format the headers to look clean, compact, and non-clickable */
.manager-reports-header .dropdown-menu .dropdown-header {
  padding: 4px 8px !important;
  color: #a0aab5 !important; /* Muted corporate slate layout token */
  letter-spacing: 0.05em;
}

/* 3. Smooth out item border radius tokens */
.manager-reports-header .dropdown-menu .dropdown-item {
  padding: 5px 10px !important;
}
.manager-reports-header .dropdown-menu .dropdown-item.active {
  background-color: #6c757d !important; /* Unified enterprise slate theme highlight */
  color: #ffffff !important;
}

/* ================================================================= *
 * Specific Top-Control Row Empty State Hider
 * ================================================================= */

/* Targets the top row context strictly when positioned right above the main table row grid container */
.row.mt-2.justify-content-between:has(+ .dt-layout-table):not(:has(.dt-layout-start:not(:empty))):not(:has(.dt-layout-end:not(:empty))) {
    display: none !important;
}


/* ================================================================= *
 * Enterprise Minimal Tab Navigation Strip
 * ================================================================= */

/* Remove Bootstrap's heavy default bottom border line across the entire row */
.fvtabs.nav-tabs {
    border-bottom: 1px solid #e8ebf4;
    gap: 4px; /* Tight, structured spacing between individual tab choices */
}

.fvtabs .nav-item {
    margin-bottom: -1px; /* Keeps the active tab baseline aligned flawlessly over the border */
}

/* Base, Unselected Tab Configuration */
.fvtabs .nav-link {
    font-size: 0.85rem;        /* Tight font configuration for data density */
    font-weight: 500;
    color: #6c757d !important; /* Bootstrap text-muted gray */
    background: transparent !important;
    border: 1px solid transparent !important; /* Prevents text layout shifting on hover */
    padding: 0.5rem 0.85rem;   /* Compact padding vertical and horizontal */
    border-radius: 4px 4px 0 0;
    transition: all 0.12s ease-in-out;
}

/* 1. HOVER STATE: Soft illumination without sharp boxes */
.fvtabs .nav-link:hover {
    color: #212529 !important; /* Darkens font to signal interactive capability */
    background-color: #f8fafc !important; /* Soft, non-intrusive backdrop fill */
}

/* 2. FOCUS STATE: Handles accessibility when tabbing via keyboard */
.fvtabs .nav-link:focus-visible {
    outline: 2px solid #0d6efd !important;
    outline-offset: -2px;
    box-shadow: none !important;
}

/* 3. ACTIVE / ACTIVE HOVER STATE: Pinned attention lane */
.fvtabs .nav-link.active,
.fvtabs .nav-link.active:hover {
    color: #212529 !important; /* High contrast text */
    background-color: #ffffff !important; /* Matches your core white interface background */
    border-color: #e8ebf4 #e8ebf4 transparent !important; /* Clean folder tab framing look */
    font-weight: 600; /* Extra visual reinforcement for the active block */
    position: relative;
}

/* Active Indicator Accent Accent Strip: Provides that sharp enterprise finish */
.fvtabs .nav-link.active::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;               /* Thin, crisp horizontal focus bar */
    background-color: #0d6efd; /* Your standard theme primary accent blue */
    border-radius: 4px 4px 0 0;
}

@media screen and (max-width: 991.98px) {

  .page-wrapper .has-calls.main-container {
    padding-left: 0 !important;

  }
  .page-wrapper .has-calls.main-container .app-container {
    display: none !important;
  }
  .page-wrapper.pinned .main-container {
    padding-left: 0;
  }
}
