/***********************************************************************************************************************************************************/
/* Global Variables */
/***********************************************************************************************************************************************************/

:root {
    /* Bootstrap Color Overrides/Extensions */
    --bs-gray-50: #FBFCFC;
    --bs-gray-125: #F4F5F7;
    --bs-gray-150: #F1F3F5;
    --bs-gray-200: #E9ECEF;
    --bs-gray-300: #DEE2E6;
    --bs-gray-400: var(--form-control-border-color);
    --bs-gray-500: #ADB5BD;
    --bs-gray-600: #6C757D;
    --bs-gray-700: #495057;
    --bs-gray-800: #343A40;
    --bs-gray-900: #212529;
    --bs-black: #000;
    --bs-disabled-bg: var(--modern-control-disabled-bg);
    --bs-text-disabled: var(--modern-control-disabled-text);
    --bs-info: var(--modern-info-btn-bg);
    --bs-info-200: var(--modern-info-btn-hover);
    --bs-info-rgb: var(--modern-accent-primary-rgb);
    --bs-btn-info-hover-bg: var(--modern-info-btn-hover);
    --bs-btn-info-disabled-bg: color-mix(in srgb, var(--bs-info) 30%, white);
    --bs-warning-60: #FFF8E1;
    --bs-warning: #FFC107;
    --bs-warning-200: #E8AD00;
    --bs-warning-rgb: 255, 205, 57;
    --bs-btn-warning-hover-bg: var(--bs-warning-200);
    --bs-warning-text: #A66A00;
    --bs-danger: var(--modern-danger-btn-bg);
    --bs-danger-200: var(--modern-danger-btn-hover);
    --bs-danger-rgb: 182, 73, 68;
    --bs-btn-danger-hover-bg: var(--modern-danger-btn-hover);
    --bs-success: var(--modern-success-btn-bg);
    --bs-success-200: var(--modern-success-btn-hover);
    --bs-success-rgb: 76, 145, 102;
    --bs-btn-success-hover-bg: var(--bs-success-200);
    --bs-btn-success-disabled-bg: color-mix(in srgb, var(--bs-success) 50%, white);
    --bs-secondary: #5A829E;
    --bs-secondary-200: #48687E;
    --bs-secondary-rgb: 75, 111, 138;
    --bs-btn-secondary-hover-bg: var(--bs-secondary-200);
    --bs-btn-secondary-disabled-bg: color-mix(in srgb, var(--bs-secondary) 50%, white);
    --tooltip-bg: hsl(210, 100%, 35%);
    --bs-tooltip-bg: var(--tooltip-bg);
    /* Modern tooltip surface: deep muted teal from the brand accent family, with soft elevation. Scoped to modern pages in Core.css; legacy tooltips keep --tooltip-bg. */
    --modern-tooltip-bg: rgba(55, 95, 115, 0.96);
    --modern-tooltip-color: #f4f6f7;
    --modern-tooltip-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
    --btn-min-width: 7rem;
    --bs-focus-shadow-accent: 0 0 0 0.25rem rgba(var(--modern-accent-primary-rgb), .25), 0 2px 0 0 var(--modern-accent-focus);
    --bs-focus-shadow-danger: 0 0 0 0.25rem rgba(220, 53, 69, 0.25), 0 2px 0 0 var(--bs-danger);
    /* Site Theme & Layout Variables */
    --sidebar-width: 300px;
    --theme-accent-primary: #3A7895;
    --modern-accent-primary-rgb: 58, 120, 149;
    /* Pale wash of accent-primary for soft pastel hover backgrounds (e.g. landing arrows). */
    --theme-accent-fade: rgba(var(--modern-accent-primary-rgb), 0.12);
    --theme-nav-primary: #003F59;
    --theme-nav-secondary: #5F98AD;
    --theme-logo-green: #6CC24A;
    /* Modern UI Colors */
    --modern-text: #3f3f46;
    --modern-text-hover: #1a1a1a;
    --modern-text-muted: #7c9aa8;
    --modern-text-disabled: #7a7a86;
    --modern-alert-text: #44403c;
    --modern-dialog-secondary-text: #52525b;
    --modern-text-slate: #374151;
    --modern-text-slate-muted: #6b7280;
    --modern-report-toolbar-icon: #46545c;
    --form-label-color: var(--modern-text-slate);
    --form-label-font-weight: 600;
    --modern-white: #fff;
    --modern-black: #000;
    --modern-page-bg-start: #f8fbfc;
    --modern-surface-soft: #f1f5f9;
    --modern-surface-neutral: #f5f5f5;
    --modern-surface-disabled: #e4e4e7;
    --modern-control-disabled-bg: #eef4f7;
    --modern-control-disabled-text: #334a56;
    --modern-control-disabled-border: var(--form-control-border-color);
    --modern-success-surface: #dff0d8;
    --modern-map-blue-soft: #cce7ff;
    --modern-map-green-soft: #CCFFD9;
    --modern-map-yellow: #FFF4CC;
    --modern-map-cyan: #BDFFFF;
    --modern-map-red: #FF998F;
    --modern-map-purple: #E999FF;
    --modern-map-indigo: #A8B8FF;
    --modern-map-orange: #FFC88A;
    --modern-map-blue: #93c5fd;
    --modern-map-neutral: #90928f;
    --modern-chart-blue: #5C9DBA;
    --modern-chart-teal: #56B6C2;
    --modern-chart-green: #6BB1A0;
    --modern-chart-red: #C77F7B;
    --modern-chart-gold: #D6A85A;
    --modern-chart-indigo: #8896C9;
    --modern-chart-slate: #808699;
    --modern-chart-pastel-cyan: #A8DADC;
    --modern-chart-pastel-red: #F4C2C2;
    --modern-chart-pastel-purple: #CDB4DB;
    --modern-chart-pastel-blue: #BDE0FE;
    --modern-chart-pastel-orange: #FFD6A5;
    --modern-chart-pastel-green: #CAFFBF;
    --modern-chart-pastel-pink: #FFCAD4;
    --modern-chart-pastel-mint: #D0F4DE;
    /* NO/off switch state: filled with the "dirty" SAVE button amber (--modern-warning-btn-bg) with white text so it reads as a solid, distinct state rather than near-white. Border is a darker shade of that same gold (blended toward --modern-warning-btn-hover) so the outline stays in the same hue family. */
    --switch-no-active-bg: var(--modern-warning-btn-bg);
    --switch-no-active-border: color-mix(in srgb, var(--modern-warning-btn-bg) 62%, var(--modern-warning-btn-hover));
    --switch-no-active-text: var(--modern-white);
    --switch-yes-disabled-bg: color-mix(in srgb, var(--modern-btn-primary-bg) 10%, var(--bs-disabled-bg));
    --switch-yes-disabled-border: color-mix(in srgb, var(--modern-control-disabled-border) 38%, var(--modern-control-disabled-border));
    --switch-yes-disabled-text: color-mix(in srgb, var(--modern-btn-primary-bg) 68%, var(--modern-control-disabled-text));
    --switch-no-disabled-bg: color-mix(in srgb, var(--modern-warning-btn-bg) 22%, var(--bs-disabled-bg));
    --switch-no-disabled-border: color-mix(in srgb, var(--modern-warning-btn-bg) 52%, var(--modern-control-disabled-border));
    --switch-no-disabled-text: color-mix(in srgb, var(--modern-warning-btn-hover) 78%, var(--modern-control-disabled-text));
    --modern-border: #bdc9d0;
    --modern-border-neutral: #bcbcbc;
    --modern-border-muted: #ccc;
    --modern-border-soft: #cbd5e1;
    --modern-border-light: #d1d5db;
    --modern-border-subtle: #e2e6ea;
    --modern-border-faint: #e5e7eb;
    --modern-border-modal: #f0f0f2;
    --modern-card-border: var(--modern-border);
    --modern-card-header-border: color-mix(in srgb, var(--modern-border) 72%, white);
    --modern-btn-primary-bg: var(--theme-accent-primary);
    --modern-btn-primary-hover: color-mix(in srgb, var(--theme-accent-primary) 76%, var(--theme-nav-primary));
    --modern-disabled-primary-bg: #c8dfe8;
    --modern-disabled-primary-text: #f8fbfd;
    --modern-accent-focus: color-mix(in srgb, var(--theme-accent-primary) 82%, var(--theme-nav-primary));
    --modern-accent-interactive: color-mix(in srgb, var(--theme-accent-primary) 68%, var(--theme-nav-primary));
    --modern-accent-emphasis: color-mix(in srgb, var(--theme-accent-primary) 42%, var(--theme-nav-primary));
    --modern-accent-primary-12: rgba(var(--modern-accent-primary-rgb), 0.12);
    --modern-accent-primary-25: rgba(var(--modern-accent-primary-rgb), 0.25);
    --modern-header-bg: #eef6f8;
    --modern-header-surface-soft: #eef2f7;
    --modern-row-selected: #e8f4f6;
    --modern-row-selected-transparent: rgba(232, 244, 246, 0);
    --modern-row-hover: #dceef2;
    /* Deeper than row-hover so a selected nav item reads as distinct from a merely hovered one (selected previously reused the hover tone). */
    --modern-row-active: color-mix(in srgb, var(--theme-accent-primary) 28%, var(--modern-white));
    --modern-hover-edge: rgba(var(--modern-accent-primary-rgb), 0.9);
    --modern-danger-header-bg: #f9f1f2;
    --modern-danger-text: #b64944;
    --modern-danger-btn-bg: #b64944;
    --modern-danger-btn-hover: #9f3e3a;
    --modern-danger-border: #ebcfd1;
    --modern-warning-header-bg: #fdf8ea;
    --modern-warning-text: #c39932;
    --modern-warning-btn-bg: #c39932;
    --modern-warning-btn-hover: #97700a;
    --modern-warning-border: #f4e6c2;
    --modern-warning-border-strong: #e8d590;
    --modern-warning-icon: var(--modern-warning-btn-bg);
    --modern-warning-icon-hover: var(--modern-warning-btn-hover);
    --modern-success-text: #247a4a;
    --modern-success-btn-bg: #4c9166;
    --modern-success-btn-hover: #44835d;
    --modern-success-toast-bg: #ecfdf3;
    --modern-success-toast-text: #247a4a;
    --modern-success-toast-border: #b9e6ca;
    --modern-grid-success-bg: #c9edd6;
    --modern-grid-success-text: #247a4a;
    --modern-grid-success-border: #b9e6ca;
    --modern-grid-danger-bg: #f8d7da;
    --modern-grid-danger-text: #9f3e3a;
    --modern-grid-danger-border: #ebcfd1;
    --modern-secondary-bg: #5a829e;
    --modern-secondary-bg-hover: #48687e;
    /* Canonical warning surface (pale cream) shared by the info-panel warning alert and the sidebar "missing information" item so they match exactly. */
    --modern-warning-surface: #fefce8;
    --modern-info-header-bg: #eef6f8;
    --modern-info-surface-emphasis: #e8f2f6;
    --modern-info-text: #2c7a8c;
    --modern-info-btn-bg: var(--modern-btn-primary-bg);
    --modern-info-btn-hover: var(--modern-btn-primary-hover);
    --modern-info-border: #cfe4ea;
    --modern-tooltip-legacy-blue: hsl(210, 100%, 35%);
    --modern-shadow-black-04: rgba(0, 0, 0, 0.04);
    --modern-shadow-black-05: rgba(0, 0, 0, 0.05);
    --modern-shadow-black-07: rgba(0, 0, 0, 0.07);
    --modern-shadow-black-08: rgba(0, 0, 0, 0.08);
    --modern-shadow-black-10: rgba(0, 0, 0, 0.10);
    --modern-shadow-black-15: rgba(0, 0, 0, 0.15);
    --modern-shadow-black-20: rgba(0, 0, 0, 0.20);
    --modern-shadow-black-rgb-12: rgba(var(--bs-black-rgb), 0.12);
    --modern-shadow-black-rgb-075: rgba(var(--bs-black-rgb), .075);
    --modern-shadow-black-rgb-08: rgba(var(--bs-black-rgb), 0.08);
    --modern-shadow-black-rgb-15: rgba(var(--bs-black-rgb), 0.15);
    --modern-shadow-black-rgb-20: rgba(var(--bs-black-rgb), 0.2);
    --modern-shadow-black-rgb-25: rgba(var(--bs-black-rgb), 0.25);
    --modern-shadow-black-rgb-80: rgba(var(--bs-black-rgb), 0.8);
    --modern-chart-grid-line: rgba(var(--bs-black-rgb),0.05);
    --modern-chart-axis-label: rgba(var(--bs-black-rgb),0.55);
    --modern-shadow-black-075: rgba(0,0,0,.075);
    --modern-shadow-slate-04: rgba(15, 23, 42, 0.04);
    --modern-shadow-slate-05: rgba(15, 23, 42, 0.05);
    --modern-shadow-slate-08: rgba(15, 23, 42, 0.08);
    --modern-shadow-slate-10: rgba(15, 23, 42, 0.10);
    --modern-shadow-slate-12: rgba(15, 23, 42, 0.12);
    --modern-shadow-slate-16: rgba(15, 23, 42, 0.16);
    --modern-shadow-secondary-30: rgba(108, 117, 125, 0.3);
    --modern-shadow-muted-blue-25: rgba(120, 150, 165, 0.25);
    --modern-focus-primary-25: rgba(13, 110, 253, 0.25);
    --modern-focus-danger-25: rgba(182, 73, 68, 0.25);
    --modern-focus-warning-25: rgba(185, 138, 0, 0.25);
    --modern-focus-info-20: rgba(var(--bs-info-rgb), 0.2);
    --modern-focus-secondary-30: rgba(108, 117, 125, 0.3);
    --modern-focus-success-30: rgba(76, 145, 102, 0.24);
    --modern-focus-danger-30: rgba(225, 83, 97, 0.3);
    --modern-focus-warning-30: rgba(217, 164, 6, 0.3);
    --modern-focus-primary-30: rgba(49, 132, 253, 0.3);
    --modern-focus-button-30: rgba(var(--bs-btn-focus-shadow-rgb), 0.3);
    --modern-bootstrap-info-bg-opacity: rgba(var(--bs-info-rgb),var(--bs-bg-opacity));
    --modern-danger-shadow-18: rgba(193, 44, 58, 0.18);
    --modern-danger-shadow-22: rgba(193, 44, 58, 0.22);
    --modern-danger-shadow-25: rgba(193, 44, 58, 0.25);
    --modern-warning-shadow-30: rgba(217, 164, 6, 0.3);
    --modern-danger-focus-30: rgba(225, 83, 97, 0.3);
    --modern-primary-shadow-30: rgba(49, 132, 253, 0.3);
    --modern-success-shadow-30: rgba(76, 145, 102, 0.24);
    --modern-white-05: rgba(255, 255, 255, 0.05);
    --modern-white-10: rgba(var(--bs-white-rgb), 0.1);
    --modern-white-12: rgba(var(--bs-white-rgb), 0.12);
    --modern-white-20: rgba(var(--bs-white-rgb), 0.2);
    --modern-white-14: rgba(255, 255, 255, 0.14);
    --modern-white-25: rgba(255, 255, 255, 0.25);
    --modern-white-30: rgba(255,255,255,0.3);
    --modern-white-45: rgba(255, 255, 255, 0.45);
    --modern-white-50: rgba(255, 255, 255, 0.5);
    --modern-white-70: rgba(255, 255, 255, 0.7);
    --modern-white-80: rgba(255, 255, 255, 0.8);
    --modern-white-96: rgba(255, 255, 255, 0.96);
    --modern-nav-secondary-35: rgba(95, 152, 173, 0.35);
    --modern-nav-selected: var(--theme-accent-primary);
    /* Top gap that nudges the summary-panel tab strip off the title baseline (tab buttons already carry ~10px internal padding, so this stays small). */
    --modern-content-top-gap: 0.4rem;
    --page-accent-primary: var(--theme-accent-primary);
    --form-control-border: 1px solid var(--modern-border);
    --form-control-border-color: var(--modern-border);
    --ag-border-color: #BABFC7;
    --ag-row-higlight-bg: #D9ECF9;
    --ag-row-focus-bg: #E4F2FD;
    /* Z-Index options */
    --zindex-dropdown: 1000;
    --zindex-sticky: 1020;
    --zindex-fixed: 1030;
    --zindex-modal-backdrop: 1040;
    --zindex-offcanvas: 1050;
    --zindex-modal: 1060;
    --zindex-popover: 1070;
    --zindex-tooltip: 1080;
}

/* NOTE: The following are provided by Bootstrap v5.1 Library*/
/*    
    --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-white: #fff;
    --bs-gray: #6c757d;
    --bs-gray-dark: #343a40;
    --bs-primary: #0d6efd;
    --bs-secondary: #6c757d;
    --bs-success: #198754;
    --bs-info: #0dcaf0;
    --bs-warning: #ffc107;
    --bs-danger: #dc3545;
    --bs-light: #f8f9fa;
    --bs-dark: #212529;
    --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", 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));
*/


/***********************************************************************************************************************************************************/
/* Default Highlevel Site Styles */
/***********************************************************************************************************************************************************/

html {
    font-family: var(--bs-font-sans-serif);
    font-size: 102.5%;
    background-color: var(--bs-white);
    margin: 0;
    padding: 0;
    height: 100%;
    background-size: cover;
    background-repeat: no-repeat;
}

body {
    font-family: var(--bs-font-sans-serif);
    background-color: var(--bs-white);
    color: var(--bs-dark);
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    width: 100%;
}

@media (min-width: 576px) {
    body {
        min-width: var(--bs-breakpoint-sm);
    }
}

a {
    color: var(--theme-accent-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
    cursor: pointer;
    transition: color 0.15s ease, text-decoration-color 0.15s ease, text-decoration-thickness 0.15s ease, background-color 0.15s ease;
}

    a[href]:not(.btn):not(.nav-link):not(.profile-link):not(.dropdown-item):not(.alert-link):hover,
    a[href]:not(.btn):not(.nav-link):not(.profile-link):not(.dropdown-item):not(.alert-link):focus-visible {
        color: var(--modern-accent-emphasis);
        text-decoration: underline;
        text-decoration-thickness: 2px;
        text-shadow: none;
        outline: 0;
    }

    a:not([href]):not([class]), a:not([href]):not([class]):hover {
        color: var(--bs-gray);
        text-shadow: none;
    }

    a:not([href]):not(.btn):not(.alert-link):hover {
        text-decoration: underline;
        text-decoration-thickness: 2px;
        text-shadow: none;
    }

    a:not([href]):not(.btn):not(.alert-link):focus-visible {
        outline: 0;
        text-decoration: underline;
        text-decoration-thickness: 2px;
        text-shadow: none;
    }

    a:not([href]):not(.btn).alert-link:hover {
        text-decoration: underline;
        text-decoration-thickness: 2px;
        color: inherit;
        text-shadow: none;
    }

    a:not([href]):not(.btn).alert-link:focus-visible {
        outline: 0;
        text-decoration: underline;
        text-decoration-thickness: 2px;
    }

/***********************************************************************************************************************************************************/
/* Default Other Site Styles */
/***********************************************************************************************************************************************************/
pre {
    white-space: pre-wrap;
    word-break: break-word;
}

/***********************************************************************************************************************************************************/
/* Default Animation Effects */
/***********************************************************************************************************************************************************/

@keyframes pulse-glow-danger {
    0% {
        box-shadow: 0 0 0 0 rgba(var(--bs-danger-rgb), 0.6);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(var(--bs-danger-rgb), 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(var(--bs-danger-rgb), 0);
    }
}

@keyframes pulse-glow-danger-tight {
    0% {
        box-shadow: 0 0 0 0 rgba(var(--bs-danger-rgb), 0.45);
    }

    70% {
        box-shadow: 0 0 0 6px rgba(var(--bs-danger-rgb), 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(var(--bs-danger-rgb), 0);
    }
}

@keyframes pulse-glow-warning-tight {
    0% {
        background-color: var(--modern-white);
        border-color: color-mix(in srgb, var(--modern-warning-btn-bg) 62%, var(--modern-white));
    }

    50% {
        background-color: color-mix(in srgb, var(--modern-warning-header-bg) 58%, var(--modern-white));
        border-color: color-mix(in srgb, var(--modern-warning-btn-bg) 62%, var(--modern-white));
    }

    100% {
        background-color: var(--modern-white);
        border-color: color-mix(in srgb, var(--modern-warning-btn-bg) 62%, var(--modern-white));
    }
}

@keyframes pulse-warning-icon {
    0%, 100% {
        transform: scale(1.1);
        opacity: .92;
    }

    50% {
        transform: scale(1.3);
        opacity: 1;
    }
}

@keyframes pulse-glow-info {
    0% {
        box-shadow: 0 0 0 0 rgba(var(--bs-info-rgb), 0.6);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(var(--bs-info-rgb), 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(var(--bs-info-rgb), 0);
    }
}


@keyframes nudge {
    0% {
        transform: translateY(0);
    }

    40% {
        transform: translateY(-2px);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes nudge-left {
    0% {
        transform: translateX(0);
    }

    40% {
        transform: translateX(-3px);
    }

    100% {
        transform: translateX(0);
    }
}

@keyframes underlineReveal {
    0% {
        text-decoration-color: transparent;
        text-decoration-thickness: 0;
    }

    100% {
        text-decoration-color: currentColor;
        text-decoration-thickness: 2px;
    }
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes shimmer {
    0% {
        left: -40%;
    }

    100% {
        left: 100%;
    }
}

@keyframes pulse-icon-gentle {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.10);
        opacity: 0.65;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/***********************************************************************************************************************************************************/
/* Responsive Overrides */
/***********************************************************************************************************************************************************/

@media (max-width: 767px) {
    html {
        overflow-y: auto;
    }
}

:root {
    --site-base-css-loaded: 1;
}