
:root {
    --bs-btn-primary-hover: #198754;
    --bs-btn-primary-border-hover: #09a74f;
    --bs-btn-primary-active: #09a74f;
    --bs-btn-secondary-hover: #252544;
    --bs-btn-secondary-border-hover: #242442;
    --bs-btn-secondary-active: #242442;
    
  }

:root,
[data-bs-theme=light] {
  --bs-blue: #0d6efd;
  --bs-indigo: #6610f2;
  --bs-purple: #6f42c1;
  --bs-pink: #d63384;
  --bs-red: #dc3545;
  --bs-orange: #fd7e14;
  --bs-yellow: #ffc107;
  --bs-green: #198754;
  --bs-teal: #20c997;
  --bs-cyan: #0dcaf0;
  --bs-black: #000;
  --bs-white: #ffffff;
  --bs-gray: #6c757d;
  --bs-gray-dark: #343a40;
  --bs-gray-100: #f8f9fa;
  --bs-gray-200: #e9ecef;
  --bs-gray-300: #dee2e6;
  --bs-gray-400: #ced4da;
  --bs-gray-500: #adb5bd;
  --bs-gray-600: #6c757d;
  --bs-gray-700: #495057;
  --bs-gray-800: #343a40;
  --bs-gray-900: #212529;
  /* --bs-primary: #5955D1;*/
  --bs-primary: #09a74f; 
  --bs-secondary: #29294B;
  --bs-success: #009966;
  --bs-info: #7008E7;
  --bs-warning: #F5A70D;
  --bs-danger: #F83636;
  --bs-light: #F2F2F6;
  --bs-dark: #0C243C;
  --bs-white: #ffffff;
  --bs-gray: #97A1C0;
  /* --bs-primary-rgb: 89, 85, 209; */
  --bs-primary-rgb: 9, 167, 79;
  --bs-secondary-rgb: 41, 41, 75;
  --bs-success-rgb: 0, 153, 102;
  --bs-info-rgb: 112, 8, 231;
  --bs-warning-rgb: 245, 167, 13;
  --bs-danger-rgb: 248, 54, 54;
  --bs-light-rgb: 242, 242, 246;
  --bs-dark-rgb: 12, 36, 60;
  --bs-white-rgb: 255, 255, 255;
  --bs-gray-rgb: 151, 161, 192;
  --bs-primary-text-emphasis: #242254;
  --bs-secondary-text-emphasis: #10101e;
  --bs-success-text-emphasis: #003d29;
  --bs-info-text-emphasis: #2d035c;
  --bs-warning-text-emphasis: #624305;
  --bs-danger-text-emphasis: #631616;
  --bs-light-text-emphasis: #495057;
  --bs-dark-text-emphasis: #495057;
  --bs-primary-bg-subtle: #f5f5fc;
  --bs-secondary-bg-subtle: #f2f2f4;
  --bs-success-bg-subtle: #f0f9f6;
  --bs-info-bg-subtle: #f6f0fe;
  --bs-warning-bg-subtle: #fefaf0;
  --bs-danger-bg-subtle: #fff3f3;
  --bs-light-bg-subtle: #fcfcfd;
  --bs-dark-bg-subtle: #f5f6f7;
  --bs-primary-border-subtle: #d6d5f4;
  --bs-secondary-border-subtle: #cacad2;
  --bs-success-border-subtle: #bfe6d9;
  --bs-info-border-subtle: #dbc1f9;
  --bs-warning-border-subtle: #fde9c3;
  --bs-danger-border-subtle: #fdcdcd;
  --bs-light-border-subtle: #e9ecef;
  --bs-dark-border-subtle: #adb5bd;
  --bs-white-rgb: 255, 255, 255;
  --bs-black-rgb: 0, 0, 0;
  --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
  --bs-body-font-family: "Instrument Sans", sans-serif;
  --bs-body-font-size: 0.875rem;
  --bs-body-font-weight: 500;
  --bs-body-line-height: 1.6;
  --bs-body-color: #696981;
  --bs-body-color-rgb: 105, 105, 129;
  --bs-body-bg: #fff;
  --bs-body-bg-rgb: 255, 255, 255;
  --bs-emphasis-color: #000;
  --bs-emphasis-color-rgb: 0, 0, 0;
  --bs-secondary-color: rgba(105, 105, 129, 0.75);
  --bs-secondary-color-rgb: 105, 105, 129;
  --bs-secondary-bg: #f9f9f9;
  --bs-secondary-bg-rgb: 249, 249, 249;
  --bs-tertiary-color: rgba(105, 105, 129, 0.5);
  --bs-tertiary-color-rgb: 105, 105, 129;
  --bs-tertiary-bg: #f8f9fa;
  --bs-tertiary-bg-rgb: 248, 249, 250;
  --bs-heading-color: #0C243C;
  --bs-link-color: #5955D1;
  --bs-link-color-rgb: 89, 85, 209;
  --bs-link-decoration: none;
  --bs-link-hover-color: #4744a7;
  --bs-link-hover-color-rgb: 71, 68, 167;
  --bs-code-color: #d63384;
  --bs-highlight-color: #696981;
  --bs-highlight-bg: #fff3cd;
  --bs-border-width: 1px;
  --bs-border-style: solid;
  --bs-border-color: #EEEEF3;
  --bs-border-color-translucent: rgba(0, 0, 0, 0.1);
  --bs-border-radius: 0.375rem;
  --bs-border-radius-sm: 0.25rem;
  --bs-border-radius-lg: 0.625rem;
  --bs-border-radius-xl: 1rem;
  --bs-border-radius-xxl: 2rem;
  --bs-border-radius-2xl: var(--bs-border-radius-xxl);
  --bs-border-radius-pill: 50rem;
  --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
  --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
  --bs-box-shadow-lg: 0 0.26rem 1.126rem 0 rgba(45, 42, 60, 0.15);
  --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
  --bs-focus-ring-width: 0.1rem;
  --bs-focus-ring-opacity: 0.25;
  --bs-focus-ring-color: rgba(89, 85, 209, 0.25);
  --bs-form-valid-color: #009966;
  --bs-form-valid-border-color: #009966;
  --bs-form-invalid-color: #F83636;
  --bs-form-invalid-border-color: #F83636;
}

[data-bs-theme=dark] {
  color-scheme: dark;
  /* Readable body copy (was #999 on #1e1e1e — low contrast) */
  --bs-body-color: #b8c0cc;
  --bs-body-color-rgb: 184, 192, 204;
  --bs-body-bg: #17171c;
  --bs-body-bg-rgb: 23, 23, 28;
  --bs-emphasis-color: #f4f6f9;
  --bs-emphasis-color-rgb: 244, 246, 249;
  --bs-secondary-color: rgba(184, 192, 204, 0.78);
  --bs-secondary-color-rgb: 184, 192, 204;
  /* Inputs / wells slightly above page bg */
  --bs-secondary-bg: #22222b;
  --bs-secondary-bg-rgb: 34, 34, 43;
  --bs-tertiary-color: rgba(184, 192, 204, 0.55);
  --bs-tertiary-color-rgb: 184, 192, 204;
  --bs-tertiary-bg: #2a2a36;
  --bs-tertiary-bg-rgb: 42, 42, 54;
  --bs-primary-text-emphasis: #7ee8b3;
  --bs-secondary-text-emphasis: #9aa3b2;
  --bs-success-text-emphasis: #66c2a3;
  --bs-info-text-emphasis: #c4a3f7;
  --bs-warning-text-emphasis: #f9ca6e;
  --bs-danger-text-emphasis: #fb8686;
  --bs-light-text-emphasis: #9aa3b2;
  --bs-dark-text-emphasis: #b8c0cc;
  --bs-primary-bg-subtle: #0f2418;
  --bs-secondary-bg-subtle: #12121a;
  --bs-success-bg-subtle: #001f14;
  --bs-info-bg-subtle: #1a1030;
  --bs-warning-bg-subtle: #312103;
  --bs-danger-bg-subtle: #320b0b;
  --bs-light-bg-subtle: #2a2a32;
  --bs-dark-bg-subtle: #14141c;
  --bs-primary-border-subtle: #1f5c3d;
  --bs-secondary-border-subtle: #2e2e3d;
  --bs-success-border-subtle: #005c3d;
  --bs-info-border-subtle: #5a2fa3;
  --bs-warning-border-subtle: #936408;
  --bs-danger-border-subtle: #952020;
  --bs-light-border-subtle: #3a3a48;
  --bs-dark-border-subtle: #5c5c6e;
  --bs-heading-color: #eceef3;
  /* Links: higher luminance than previous purple on charcoal */
  --bs-link-color: #c9c5fc;
  --bs-link-hover-color: #e8e6ff;
  --bs-link-color-rgb: 201, 197, 252;
  --bs-link-hover-color-rgb: 232, 230, 255;
  --bs-code-color: #f0a8d4;
  --bs-highlight-color: #b8c0cc;
  --bs-highlight-bg: #4a3b08;
  --bs-border-color: rgba(148, 163, 184, 0.14);
  --bs-border-color-translucent: rgba(148, 163, 184, 0.22);
  --bs-form-valid-color: #7dd3a8;
  --bs-form-valid-border-color: #7dd3a8;
  --bs-form-invalid-color: #f0a8ae;
  --bs-form-invalid-border-color: #f0a8ae;
  /* Cards sit above body without “flat black” merge */
  --bs-card-bg: #22222b;
  --bs-card-border-color: rgba(148, 163, 184, 0.12);
  --bs-card-cap-bg: rgba(255, 255, 255, 0.03);
}


.card {
  --bs-card-cap-padding-x:30px;
    --bs-card-cap-padding-y:15px;
    --bs-card-spacer-x:30px;
    --bs-card-spacer-y:15px;

}

.alert {
  --bs-alert-padding-y: 5px;

}


.bl-style,
.br-style,
.bt-style,
.bb-style {
  position: relative;
}

.bl-style::before,
.br-style::before,
.bt-style::before,
.bb-style::before {
  content: '';
  position: absolute;
  border-radius: 0% 50px 50px 0px;
  background-color: var(--bs-primary);
}

/* Left Border: Top Half */
.bl-style {
  border-left: none !important;
}

.bl-style::before {
  top: 0;
  left: 0;
  width: 4px;
  height: 40%;
}

/* Right Border: Top Half */
.br-style {
  border-right: none !important;
}

.br-style::before {
  top: 0;
  right: 0;
  width: 4px;
  height: 50%;
}

/* Top Border: Left Half */
.bt-style {
  border-top: none !important;
}

.bt-style::before {
  top: 0;
  left: 0;
  width: 50%;
  height: 4px;
}

/* Bottom Border: Left Half */
.bb-style {
  border-bottom: none !important;
}

.bb-style::before {
  bottom: 0;
  left: 0;
  width: 50%;
  height: 4px;
}

.card{
    border-right: none;
}


div.dt-processing {
    background-color: transparent !important;
    border: none !important;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100px;
    height: 0px;
    margin-left: -100px;
    margin-top: -22px;
    text-align: center;
    /* padding: 10px; */
    z-index: 10;
}


.form-control,
.form-select {
    display: block;
    width: 100%;
    font-weight: 500;
    line-height: 1.6;
    color: var(--bs-body-color);
    appearance: none;
    /* Use theme tokens so dark mode matches Bootstrap inputs (was hardcoded #f4f4f4). */
    background-color: var(--bs-secondary-bg);
    background-clip: padding-box;
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.form-control::placeholder,
.form-select::placeholder {
    color: var(--bs-secondary-color);
}

/* Match Select2 with Bootstrap inputs in both themes. */
.select2-container--bootstrap-5 .select2-selection {
    min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
    border-radius: var(--bs-border-radius);
    border: var(--bs-border-width) solid var(--bs-border-color);
    background-color: var(--bs-secondary-bg);
    color: var(--bs-body-color);
    box-shadow: none;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.select2-container--bootstrap-5 .select2-selection--single {
    padding: 0.375rem 0.75rem;
}

.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered {
    color: var(--bs-body-color);
    line-height: 1.5;
    padding: 0;
}

.select2-container--bootstrap-5 .select2-selection--single .select2-selection__placeholder {
    color: var(--bs-secondary-color);
}

.select2-container--bootstrap-5 .select2-selection--single .select2-selection__arrow {
    height: 100%;
    right: 0.5rem;
}

.select2-container--bootstrap-5 .select2-selection--multiple {
    padding: 0.2rem 0.45rem;
}

.select2-container--bootstrap-5.select2-container--focus .select2-selection,
.select2-container--bootstrap-5.select2-container--open .select2-selection {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}

.select2-container--bootstrap-5 .select2-dropdown {
    border-color: var(--bs-border-color);
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-body-color);
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-sm);
}

.select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}

.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option {
    color: var(--bs-body-color);
}

.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--highlighted {
    background-color: var(--bs-tertiary-bg) !important;
    color: var(--bs-body-color) !important;
}

.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--selected,
.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted) {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
}

.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__message {
    color: var(--bs-secondary-color) !important;
}

.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--disabled,
.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[aria-disabled=true] {
    color: var(--bs-secondary-color) !important;
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection,
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-selection {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field,
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown,
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-dropdown {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

/* Header search uses .form-control-fill from template; ensure it follows the same surfaces as inputs */
[data-bs-theme="dark"] .form-control.form-control-fill,
[data-bs-theme=dark] .form-control.form-control-fill {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}

.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
    color: var(--bs-btn-active-color);
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-btn-active-border-color);
}

.row {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  display: flex;
  flex-wrap: wrap;
  margin-top: calc(-1 * var(--bs-gutter-y));
  margin-right: calc(-0.5 * var(--bs-gutter-x));
  margin-left: calc(-0.5 * var(--bs-gutter-x));
  margin-bottom: calc(-1 * var(--bs-gutter-y));
}


.table-sm thead th {
  padding-top: 8px;
  padding-bottom: 8px;
}

.custom-padding {
  padding: 0.232rem 3.6rem 0.232rem 1.2rem !important;
}

/* Body Background Pattern */
body {
  background-image: url('/commons/images/bg-pattern2.webp');
  background-repeat: repeat;
  background-position: 0 0;
  background-size: auto;
  background-blend-mode: overlay;
  background-color: rgba(3, 0, 3, 0.0);
}

/* Dark Mode Background Pattern — softer so content stays the focus */
[data-bs-theme="dark"] body {
  background-image: url('/commons/images/bg-pattern2.webp');
  background-repeat: repeat;
  background-position: 0 0;
  background-size: auto;
  background-blend-mode: soft-light;
  background-color: rgba(15, 16, 22, 0.88);
}

/* Breadcrumbs: light theme forced black links — restore readable colors in dark */
[data-bs-theme="dark"] .app-page-head .breadcrumb-item a,
[data-bs-theme=dark] .app-page-head .breadcrumb-item a {
  color: var(--bs-link-color);
}

[data-bs-theme="dark"] .app-page-head .breadcrumb-item a:hover,
[data-bs-theme=dark] .app-page-head .breadcrumb-item a:hover {
  color: var(--bs-link-hover-color);
}

[data-bs-theme="dark"] .app-page-head .breadcrumb-item.active,
[data-bs-theme=dark] .app-page-head .breadcrumb-item.active {
  color: var(--bs-body-color);
}

/* Data tables: name/title links align with brand green for scanability (avoids dim purple body text) */
[data-bs-theme="dark"] .table a.text-primary,
[data-bs-theme=dark] .table a.text-primary,
[data-bs-theme="dark"] .table a.link-primary,
[data-bs-theme=dark] .table a.link-primary {
  color: #7ee8b3 !important;
}

[data-bs-theme="dark"] .table a.text-primary:hover,
[data-bs-theme=dark] .table a.text-primary:hover,
[data-bs-theme="dark"] .table a.link-primary:hover,
[data-bs-theme=dark] .table a.link-primary:hover {
  color: #a6f5cc !important;
}

[data-bs-theme="dark"] .table a:not(.btn):not(.badge):not(.dropdown-item):not(.page-link),
[data-bs-theme=dark] .table a:not(.btn):not(.badge):not(.dropdown-item):not(.page-link) {
  color: #8de4b4;
}

[data-bs-theme="dark"] .table a:not(.btn):not(.badge):not(.dropdown-item):not(.page-link):hover,
[data-bs-theme=dark] .table a:not(.btn):not(.badge):not(.dropdown-item):not(.page-link):hover {
  color: var(--bs-primary);
}

/* Nav tabs: inactive labels a step brighter than body */
[data-bs-theme="dark"] .nav-underline .nav-link:not(.active),
[data-bs-theme=dark] .nav-underline .nav-link:not(.active) {
  color: rgba(236, 238, 243, 0.55);
}

[data-bs-theme="dark"] .nav-underline .nav-link:not(.active):hover,
[data-bs-theme=dark] .nav-underline .nav-link:not(.active):hover {
  color: rgba(236, 238, 243, 0.85);
}

/* Cards: light edge for depth (shadows disappear on near-black) */
[data-bs-theme="dark"] .card:not(.priority-card) {
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.04);
}


.app-page-head .breadcrumb-item a {
  color: rgb(0 0 0);
}

.app-page-head {
    margin-bottom: 18px;
}


/* Global table cell truncation for wide text columns (e.g., descriptions, names) */
/* Exclude action columns and cells with dropdowns to prevent clipping */
.table.bordered-table th:not(:has(.dropdown)):not(:first-child),
.table.bordered-table td:not(:has(.dropdown)):not(:first-child),
.table.table-row-rounded th:not(:has(.dropdown)):not(:first-child),
.table.table-row-rounded td:not(:has(.dropdown)):not(:first-child) {
    max-width: 150px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Allow overflow for action columns and cells with dropdowns */
.table.bordered-table th:has(.dropdown),
.table.bordered-table td:has(.dropdown),
.table.bordered-table th:first-child,
.table.bordered-table td:first-child,
.table.table-row-rounded th:has(.dropdown),
.table.table-row-rounded td:has(.dropdown),
.table.table-row-rounded th:first-child,
.table.table-row-rounded td:first-child {
    overflow: visible !important;
    max-width: none !important;
}

/* Ensure dropdown menus can display properly - ensure parent container allows overflow */
.table.bordered-table .dropdown,
.table.table-row-rounded .dropdown {
    position: relative;
}

.table.bordered-table .dropdown-menu,
.table.table-row-rounded .dropdown-menu {
    position: absolute;
    z-index: 1050;
}

/* Fallback: Target action column by nth-child (usually 2nd column) for browsers without :has() support */
/* This ensures action dropdowns work even if :has() is not supported */
.table.bordered-table th:nth-child(2),
.table.bordered-table td:nth-child(2),
.table.table-row-rounded th:nth-child(2),
.table.table-row-rounded td:nth-child(2) {
    overflow: visible !important;
    max-width: none !important;
}

/* Contenteditable fields */
.contenteditable-field {
    background-color: #efefef;
    min-height: 32px;
    padding: 0.25rem 0.5rem;
    border: 1px solid transparent;
    border-radius: 0.25rem;
    cursor: text;
    outline: none;
    transition: all 0.2s ease;
}

.contenteditable-field:hover {
    background-color: #f8f9fa;
    border-color: #dee2e6;
}

.contenteditable-field:focus {
    background-color: #fff;
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.contenteditable-field:empty:before {
    content: '-';
    color: #6c757d;
}

.contenteditable-textarea {
    min-height: 100px;
    padding: 0.5rem;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    cursor: text;
    outline: none;
    transition: all 0.2s ease;
    background-color: #fff;
    white-space: pre-wrap;
    word-wrap: break-word;
}

.contenteditable-textarea:hover {
    border-color: #86b7fe;
}

.contenteditable-textarea:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.contenteditable-textarea:empty:before {
    content: attr(placeholder);
    color: #6c757d;
    font-style: italic;
}


.form-control-tiny {
  min-height: 10px;
  padding: 0.05rem 0.8rem;
  font-size: 0.8125rem;
  border-radius: 8px;
}

/* Fullscreen Modal Styles */
.modal-fullscreen .modal-dialog {
  max-width: 100%;
  width: 100%;
  height: 100%;
  margin: 0;
}

.modal-fullscreen .modal-content {
  height: 100%;
  border: 0;
  border-radius: 0;
}

.modal-fullscreen .modal-body {
  padding: 0;
  height: calc(100vh - 60px);
}

.modal-fullscreen .modal-body iframe {
  width: 100%;
  height: 100%;
  border: none;
}

.dt-container .dt-layout-full {
  overflow-x: unset;
}

.table-responsive {
  overflow-x: unset;
}

/* All inputs that support placeholder */
input::placeholder,
textarea::placeholder {
  
  opacity: .4 !important;       /* prevent faded look */
}

.nav-underline.card-header-tabs .nav-link {
  padding-right: 10px;
  padding-left: 10px;
}

/* Desk Officer: Evidence Documents collapse chevron */
.evidence-collapse-icon {
  transition: transform 0.2s ease;
}
button[aria-expanded="true"] .evidence-collapse-icon {
  transform: rotate(180deg);
}

/* Global Livewire loader overlay */
.livewire-global-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}
.livewire-global-loader.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.livewire-global-loader__backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.35);
}
.livewire-global-loader__spinner {
  position: relative;
  z-index: 1;
}


.card {
  margin-bottom: var(--bs-gutter-x);
  box-shadow: 0px 10px 15px rgba(2, 2, 76, 0.05);
}

.btn-sm, .btn-group-sm > .btn {
  --bs-btn-line-height: 1;
}

/* List context filter (breadcrumb top-right) – popover style */
.list-context-filter-trigger {
  background-color: var(--bs-secondary-bg) !important;
  border-color: var(--bs-border-color) !important;
}
.list-context-filter-btn:hover {
  background-color: rgba(var(--bs-emphasis-color-rgb), 0.06);
}
.list-context-filter-chevron {
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.list-context-filter-is-open .list-context-filter-chevron {
  transform: rotate(180deg);
}
.list-context-filter-close {
  visibility: hidden;
  width: 2rem;
  min-width: 2rem;
  flex-shrink: 0;
}
.list-context-filter-is-open .list-context-filter-close {
  visibility: visible;
}
.list-context-filter-close:hover {
  background-color: rgba(0, 0, 0, 0.06);
  color: var(--bs-body-color) !important;
}
.list-context-filter-popover {
  min-width: 40rem;
  padding: 0;
  background: var(--bs-body-bg);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.12);
}
.list-context-filter-header {
  border-bottom: 1px solid var(--bs-border-color);
}
.list-context-filter-title {
  font-size: 0.9375rem;
}
.list-context-filter-popover::before {
  content: "";
  position: absolute;
  bottom: 100%;
  right: 1.25rem;
  left: auto;
  border: 6px solid transparent;
  border-bottom-color: var(--bs-body-bg);
  margin-bottom: -1px;
  z-index: 1;
}
.list-context-filter-body .form-select,
.list-context-filter-body .form-control {
  background-color: var(--bs-secondary-bg);
  border-color: var(--bs-border-color);
}
.list-context-filter-row {
  gap: 0.5rem;
}
.list-context-filter-row .list-context-filter-field {
  flex-shrink: 0;
  width: 7rem;
}
.list-context-filter-row .list-context-filter-operator {
  flex-shrink: 0;
  width: 7rem;
}
.list-context-filter-row .list-context-filter-value {
  flex: 1 1 0;
  min-width: 0;
}
.list-context-filter-row .list-context-filter-remove {
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
}
.list-context-filter-row .list-context-filter-remove:hover {
  color: var(--bs-danger) !important;
  background-color: var(--bs-danger-bg-subtle, #fff3f3);
  border-color: var(--bs-danger-border-subtle, #fdcdcd);
}
.list-context-filter-field {
  display: inline-block;
  min-width: 5rem;
  background-color: var(--bs-secondary-bg);
  border: 1px solid var(--bs-border-color);
}
.list-context-filter-divider {
  margin: 0;
}
.list-context-filter-footer .btn-dark {
  background-color: var(--bs-black, #000);
  border-color: var(--bs-black, #000);
}
.list-context-filter-footer .btn-dark:hover {
  background-color: #333;
  border-color: #333;
  color: var(--bs-white);
}

/* Briefing note report content (rendered WYSIWYG) */
.briefing-note-content {
  line-height: 1.6;
}
.briefing-note-content p:last-child {
  margin-bottom: 0;
}
.briefing-note-content ul,
.briefing-note-content ol {
  padding-left: 1.5rem;
}

.form-control-sm {
  min-height: calc(1.6em + .1rem + calc(var(--bs-border-width) ));
  padding: 0.3rem 0.8rem;
  font-size: 0.8125rem;
  border-radius: 8px;
}

.priority-card {
  border-radius: 16px;
  transition: transform 0.22s ease, box-shadow 0.22s ease;
  will-change: transform;
}
.priority-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}
.priority-card h6 a:hover {
  text-decoration: underline !important;
}

.priority-card .priority-card-media {
  position: relative;
  min-height: 300px;
}

.priority-card .priority-card-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  filter: saturate(0.95) contrast(1.05);
}

.priority-card .priority-card-tint {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px circle at 12% 0%, rgba(var(--bs-primary-rgb), 0.25), transparent 55%),
    radial-gradient(800px circle at 100% 45%, rgba(var(--bs-info-rgb), 0.18), transparent 52%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.85));
}

[data-bs-theme=dark] .priority-card .priority-card-tint {
  background:
    radial-gradient(900px circle at 12% 0%, rgba(var(--bs-primary-rgb), 0.22), transparent 55%),
    radial-gradient(800px circle at 100% 45%, rgba(var(--bs-info-rgb), 0.16), transparent 52%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.65));
}

.priority-card .priority-card-actions {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
  z-index: 3;
}

.priority-card .priority-card-action-btn {
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.7);
  color: var(--bs-heading-color, #0C243C);
  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.12);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

[data-bs-theme=dark] .priority-card .priority-card-action-btn {
  background: rgba(30, 30, 30, 0.65);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.92);
}

.priority-card .priority-card-glass {
  position: absolute;
  left: 0.75rem;
  right: 0.75rem;
  bottom: 0.75rem;
  z-index: 2;
  padding: 0.75rem 0.85rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: 0 0.75rem 1.75rem rgba(12, 36, 60, 0.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

[data-bs-theme=dark] .priority-card .priority-card-glass {
  background: rgba(20, 20, 20, 0.65);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 0.75rem 1.75rem rgba(0, 0, 0, 0.35);
}

.priority-card .priority-card-code {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: rgba(12, 36, 60, 0.7);
}

[data-bs-theme=dark] .priority-card .priority-card-code {
  color: rgba(255, 255, 255, 0.7);
}

.priority-card .priority-card-title {
  line-height: 1.25;
}

.priority-card .priority-card-link {
  color: var(--bs-heading-color, #0C243C);
}

[data-bs-theme=dark] .priority-card .priority-card-link {
  color: rgba(255, 255, 255, 0.92);
}

.priority-card .priority-card-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.55rem;
}

.priority-card .priority-card-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  color: rgba(12, 36, 60, 0.82);
  background: rgba(12, 36, 60, 0.06);
  border: 1px solid rgba(12, 36, 60, 0.08);
}

[data-bs-theme=dark] .priority-card .priority-card-chip {
  color: rgba(255, 255, 255, 0.82);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.form-check-input[type=radio] {
  border-radius: 50%;
  border-color: #1ca055;
}

.form-check-input[type=checkbox] {
  border-color: #1ca055;
}

/* Scorecard report – page layout */
.scorecard-page {
  padding-bottom: 1.5rem;
}

.scorecard-page-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

.scorecard-page-header-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 0.75rem;
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  flex-shrink: 0;
}

.scorecard-page-header-icon i {
  font-size: 1.5rem;
}

.scorecard-page-header-text {
  flex: 1;
  min-width: 0;
}

.scorecard-page-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--bs-heading-color);
  margin: 0 0 0.0rem 0;
  letter-spacing: -0.02em;
}

.scorecard-page-description {
  font-size: 0.9375rem;
  color: var(--bs-secondary-color);
  margin: 0;
  line-height: 1.45;
}

.scorecard-filters-section {
  margin-bottom: 1.75rem;
}

.scorecard-filters-card {
  border-radius: 0.75rem;
  border: 1px solid var(--bs-border-color);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  overflow: visible;
}

.scorecard-filters-card-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 1.25rem;
  background: var(--bs-tertiary-bg);
  border-bottom: 1px solid var(--bs-border-color);
  font-weight: 600;
  font-size: 0.9375rem;
}

.scorecard-filters-icon {
  font-size: 1rem;
  color: var(--bs-primary);
  opacity: 0.9;
}

.scorecard-filters-title {
  color: var(--bs-heading-color);
}

.scorecard-filters-card .card-body {
  padding: 1.25rem 1.5rem;
}

.scorecard-results-section {
  margin-top: 0.5rem;
}

.scorecard-report-card {
  border-radius: 0.75rem;
  border: 1px solid var(--bs-border-color);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  margin-bottom: 1.25rem;
  overflow: hidden;
}

.scorecard-report-card:last-of-type {
  margin-bottom: 0;
}

.scorecard-report-card-header {
  padding: 1rem 1.25rem;
  background: var(--bs-body-bg);
  border-bottom: 1px solid var(--bs-border-color);
}

.scorecard-report-card-title {
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--bs-heading-color);
  margin: 0;
}

.scorecard-report-card .card-body {
  padding: 1.25rem 1.5rem;
}

.scorecard-overall-card .scorecard-report-card-header {
  background: var(--bs-primary-bg-subtle);
}

.scorecard-overall-card .scorecard-report-card-title {
  color: var(--bs-primary);
}

.scorecard-empty-card {
  border-radius: 0.75rem;
  border: 1px dashed var(--bs-border-color);
  background: var(--bs-tertiary-bg);
}

.scorecard-empty-state {
  padding: 3rem 2rem;
  text-align: center;
}

.scorecard-empty-icon {
  width: 4rem;
  height: 4rem;
  margin: 0 auto 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--bs-border-color-translucent);
  color: var(--bs-secondary-color);
  font-size: 1.75rem;
}

.scorecard-empty-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--bs-heading-color);
  margin: 0 0 0.5rem;
}

.scorecard-empty-text {
  font-size: 0.9375rem;
  color: var(--bs-secondary-color);
  margin: 0;
}

.scorecard-report-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--bs-border-color);
}

.scorecard-report-badge {
  display: inline-block;
  padding: 0.35rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--bs-secondary-color);
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 9999px;
}

.scorecard-report-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.scorecard-report-meta .badge {
  font-weight: 500;
}

.scorecard-filter-form {
  width: 100%;
}

.scorecard-filter-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1rem 1.5rem;
}

.scorecard-filter-group {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.scorecard-filter-group-label {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bs-secondary-color);
}

.scorecard-filter-fields {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem 1rem;
}

.scorecard-filter-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  /* Prevent flex/grid from collapsing filters when Select2 measures the hidden <select> */
  min-width: 9rem;
}

.scorecard-filter-field:has(select.scorecard-filter-select--entity) {
  min-width: 14rem;
  max-width: min(22rem, 100%);
}

.scorecard-filter-label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--bs-body-color);
  margin-bottom: 0;
}

.scorecard-filter-select {
  min-width: 9rem;
  border-radius: 0.375rem;
}

.scorecard-filter-select--entity {
  min-width: 14rem;
  max-width: 22rem;
}

/* Select2 replaces the native select; tie container width to the column above */
.scorecard-filter-form select.scorecard-filter-select + .select2-container {
  width: 100% !important;
  min-width: 9rem;
}

.scorecard-filter-form select.scorecard-filter-select--entity + .select2-container {
  min-width: 14rem;
  max-width: 22rem;
}

/* Ministry report: Year / Quarter / Ministry use Select2 via shared classes above.
   “Columns to display” is a dropdown button (not Select2)—give it the same column sizing. */
.scorecard-filter-field:has(#ministry-report-columns-dropdown) {
  min-width: 14rem;
  max-width: min(22rem, 100%);
}

#ministry-report-columns-dropdown {
  width: 100%;
}

#ministry-report-filter-form .ministry-report-columns-toggle {
  width: 100%;
  min-width: 14rem;
}

.scorecard-filter-divider {
  width: 1px;
  align-self: stretch;
  min-height: 2.5rem;
  background: var(--bs-border-color);
  opacity: 0.7;
}

.scorecard-filter-actions {
  display: flex;
  align-items: flex-end;
  gap: 0.5rem;
  margin-left: auto;
}

.scorecard-filter-submit {
  border-radius: 0.375rem;
  font-weight: 500;
  padding: 0.35rem 0.875rem;
}

.scorecard-filter-hint {
  font-size: 0.8125rem;
  opacity: 0.85;
  /* max-width: 42rem; */
}

@media (max-width: 991.98px) {
  .scorecard-filter-divider {
    width: 100%;
    height: 1px;
    min-height: 0;
  }

  .scorecard-filter-actions {
    margin-left: 0;
    width: 100%;
  }
}

.scorecard-section-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--bs-body-color);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 0.5rem;
  margin-top: 1rem;
}

.scorecard-section-label:first-child {
  margin-top: 0;
}

.scorecard-period-performance {
  text-transform: none;
  letter-spacing: normal;
  font-weight: 400;
}

.scorecard-deliverable-block {
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  padding: 1.125rem 1.25rem;
  margin-bottom: 1rem;
}

.scorecard-deliverable-block:last-child {
  margin-bottom: 0;
}

.scorecard-deliverable-block .scorecard-deliverable-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--bs-heading-color);
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--bs-border-color);
}

.scorecard-accordion {
  margin-bottom: 1.25rem;
}

.scorecard-accordion-item {
  border-radius: 0.5rem;
  overflow: hidden;
  margin-bottom: 0.5rem;
  border: 1px solid var(--bs-border-color);
  background: var(--bs-card-bg);
}

.scorecard-accordion-item:last-child {
  margin-bottom: 0;
}

.scorecard-accordion .accordion-button {
  font-weight: 600;
  font-size: 0.9375rem;
  padding: 1rem 1.25rem;
  background: var(--bs-body-bg);
  color: var(--bs-heading-color);
  box-shadow: none;
}

.scorecard-accordion .accordion-button:not(.collapsed) {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-heading-color);
  border-bottom: 1px solid var(--bs-border-color);
}

.scorecard-accordion .accordion-button::after {
  flex-shrink: 0;
}

.scorecard-accordion .accordion-body {
  padding: 1.25rem 1.5rem;
  background: var(--bs-body-bg);
}

.scorecard-accordion-count {
  font-weight: 600;
}

/* Responsive wrapper for scorecard and ministry report tables */
.report-table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 767.98px) {
  .report-table-responsive .scorecard-table,
  .report-table-responsive .ministry-report-table {
    font-size: 0.8125rem;
    min-width: 36rem;
  }

  .report-table-responsive .scorecard-table th,
  .report-table-responsive .scorecard-table td,
  .report-table-responsive .ministry-report-table th,
  .report-table-responsive .ministry-report-table td {
    padding: 0.5rem 0.5rem;
  }

  .report-table-responsive .ministry-report-table .ministry-report-cell {
    max-width: 14rem;
  }
}

.scorecard-table {
  font-size: 0.875rem;
}

.scorecard-table thead th {
  font-weight: 600;
  font-size: 0.8125rem;
  white-space: nowrap;
}

.scorecard-table tbody tr:hover {
  background: var(--bs-tertiary-bg);
}

.scorecard-table .performance-cell-high {
  color: var(--bs-success);
  font-weight: 600;
}

.scorecard-table .performance-cell-mid {
  color: var(--bs-warning);
  font-weight: 500;
}

.scorecard-table .performance-cell-low {
  color: var(--bs-danger);
  font-weight: 500;
}

.scorecard-quarterly-dot {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  vertical-align: middle;
}

.scorecard-quarterly-summary-table {
  border-radius: 0.5rem;
  overflow: hidden;
}

.scorecard-quarterly-summary-table th,
.scorecard-quarterly-summary-table td {
  vertical-align: middle;
}

.scorecard-quarterly-summary-table thead th {
  padding: 0.625rem 0.75rem;
}

.scorecard-quarterly-row--75 {
  background-color: rgba(59, 180, 64, 0.14);
}

.scorecard-quarterly-row--50 {
  background-color: rgba(255, 193, 9, 0.2);
}

.scorecard-quarterly-row--below50 {
  background-color: rgba(244, 67, 54, 0.12);
}

.scorecard-quarterly-row--na {
  background-color: rgba(150, 150, 150, 0.14);
}

/* Ministry Report */
/* Ministry report – columns multi-select dropdown */
.ministry-report-columns-toggle {
  cursor: pointer;
  min-width: 12rem;
}

.ministry-report-columns-menu {
  min-width: 18rem;
  max-height: 18rem;
  overflow-y: auto;
  z-index: 1060;
  padding-left: 1.25rem;
}

/* .ministry-report-columns-menu .form-check {
  padding: 0.25rem 0;
  padding-left: 0.25rem;
} */

.ministry-report-columns-menu .form-check:first-child {
  padding-top: 0;
}

.ministry-report-export-menu {
  z-index: 1060;
  min-width: 13rem;
}

.ministry-report-table .ministry-report-cell {
  max-width: 20rem;
  word-wrap: break-word;
  /* white-space: pre-wrap; */
  vertical-align: top;
}

/* Read more truncation in report tables */
.report-cell-with-more {
  max-width: 20rem;
}

.report-cell-truncated {
  display: inline;
}

.report-read-more-link {
  display: inline-block;
  margin-left: 0.25rem;
  white-space: nowrap;
}

.report-content-modal-body .report-content-modal-text {
  max-height: 70vh;
  overflow-y: auto;
  padding: 0.5rem 0;
  white-space: pre-wrap;
  word-wrap: break-word;
}

/* Messenger header notification badge */
.app-header-end,
.app-header-end .dropdown,
#messenger-notifications-toggle {
  overflow: visible;
}

.messenger-notifications-badge {
  top: 0.35rem;
  right: 0.35rem;
  min-width: 1.125rem;
  min-height: 1.125rem;
  padding: 0.2em 0.45em;
  font-size: 0.65rem;
  font-weight: 600;
  line-height: 1.1;
  z-index: 2;
  transform: none;
  border: 2px solid var(--app-header-bg, var(--bs-body-bg));
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
}

/* Sidebar tab icons (appMenubarTabs) */
.menubar-tab-icon {
  font-size: 1.5rem;
  line-height: 1;
}

/* Performance overlay gradient – uses Performance Color Configuration from Settings */
.ovarlay-primary-gradient::after {
  background: linear-gradient(
    180deg,
    var(--performance-overlay-start) 0%,
    var(--performance-overlay-end) 100%
  );
}
