/*
 * Final UI layer — loads AFTER theme-color CSS (via head.php, post app.all.js)
 * Fixes sidebar contrast and compacts dropdowns.
 */

/* ── Sidebar: Gmail-style, always readable ───────────────────── */
.sidebar,
.sidebar-scroll,
.sidebar-brand {
    background: #ffffff !important;
    background-color: #ffffff !important;
    border-color: #e8eaed !important;
}

@media (min-width: 991px) {
    .sidebar {
        background: #ffffff !important;
        background-color: #ffffff !important;
    }
}

.sidebar-menu li a,
.sidebar-menu li ul li a {
    color: #3c4043 !important;
}

.sidebar-menu li a .menu-text,
.sidebar-menu li a span:not(.badge) {
    color: inherit !important;
}

.sidebar-menu li a svg,
.sidebar-menu li a .icon {
    color: inherit !important;
    stroke: currentColor !important;
}

.sidebar-menu li a:hover,
.sidebar-menu li a:focus,
.sidebar-menu li a:active {
    color: #202124 !important;
    background-color: #e8eaed !important;
}

.sidebar-menu li ul li a:hover,
.sidebar-menu li ul li a:focus {
    color: #202124 !important;
    background-color: #e8eaed !important;
}

.sidebar-menu li.active > a,
.sidebar-menu li.active > a:hover,
.sidebar-menu li.active > a:focus {
    color: #174ea6 !important;
    background-color: #d3e3fd !important;
    font-weight: 600 !important;
}

.sidebar-menu li.active > a svg,
.sidebar-menu li.active > a .icon {
    color: #174ea6 !important;
    stroke: #174ea6 !important;
}

.sidebar-menu li.active .badge {
    color: #174ea6 !important;
    background-color: #ffffff !important;
}

/*
 * Collapsed sidebar — icon strip stays narrow; only the submenu flies out to the right.
 * Invisible ::before bridge on the flyout closes the gap so li:hover does not drop.
 */
@media (min-width: 991px) {
    body.sidebar-toggled {
        min-height: 100vh !important;
    }

    body.sidebar-toggled #left-menu-toggle-mask {
        min-height: 100vh !important;
    }

    body.sidebar-toggled .sidebar {
        height: auto !important;
        min-height: 100vh !important;
        max-height: none !important;
        overflow: visible !important;
    }

    body.sidebar-toggled .sidebar-scroll {
        overflow: visible !important;
        max-height: none !important;
    }

    /* Items with submenus: do not widen the sidebar row on hover */
    body.sidebar-toggled .sidebar-menu > li.expand {
        position: relative !important;
    }

    body.sidebar-toggled .sidebar-menu > li.expand:hover {
        width: 70px !important;
        max-width: 70px !important;
        overflow: visible !important;
        z-index: 1010 !important;
        background: transparent !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    body.sidebar-toggled .sidebar-menu > li.expand:hover > a {
        width: 70px !important;
        max-width: 70px !important;
        box-shadow: none !important;
        color: #202124 !important;
        background-color: #e8eaed !important;
        border-radius: 8px !important;
    }

    body.sidebar-toggled .sidebar-menu > li.expand:hover .menu-text,
    body.sidebar-toggled .sidebar-menu > li.expand:hover > a .badge {
        display: none !important;
    }

    body.sidebar-toggled .sidebar-menu > li.expand:hover > ul {
        display: block !important;
        position: absolute !important;
        left: 70px !important;
        top: 0 !important;
        width: 220px !important;
        max-height: min(70vh, calc(100vh - 72px)) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        margin: 0 !important;
        padding: 6px 0 !important;
        background: #ffffff !important;
        border: 1px solid #e8eaed !important;
        border-radius: 8px !important;
        box-shadow: 0 2px 12px rgba(60, 64, 67, 0.14) !important;
        -webkit-overflow-scrolling: touch;
    }

    /* Transparent hit-area between icon column and flyout panel */
    body.sidebar-toggled .sidebar-menu > li.expand:hover > ul::before {
        content: "" !important;
        position: absolute !important;
        left: -14px !important;
        top: 0 !important;
        width: 14px !important;
        height: 100% !important;
        background: transparent !important;
    }

    body.sidebar-toggled .sidebar-menu > li.expand:hover > ul > li {
        width: 100% !important;
    }

    body.sidebar-toggled .sidebar-menu > li.expand:hover > ul > li > a {
        color: #3c4043 !important;
        padding: 8px 16px !important;
        margin: 0 !important;
        border-radius: 0 20px 20px 0 !important;
    }

    body.sidebar-toggled .sidebar-menu > li.expand:hover > ul > li > a:hover,
    body.sidebar-toggled .sidebar-menu > li.expand:hover > ul > li > a:focus {
        color: #202124 !important;
        background-color: #e8eaed !important;
    }

    body.sidebar-toggled .sidebar-menu > li.expand:hover > ul .menu-text {
        display: inline !important;
        padding-left: 0 !important;
    }

    /* Single-link items: keep original widen-on-hover label behaviour */
    body.sidebar-toggled .sidebar-menu > li:not(.expand):hover {
        background-color: #ffffff !important;
    }

    body.sidebar-toggled .sidebar-menu > li:not(.expand):hover > a {
        color: #202124 !important;
        background-color: #e8eaed !important;
        box-shadow: none !important;
    }
}

.sidebar-scroll::-webkit-scrollbar-thumb {
    background: #dadce0 !important;
}

.sidebar-scroll::-webkit-scrollbar-thumb:hover {
    background: #bdc1c6 !important;
}

/* ── Form inputs (exclude Select2 wrapper) ───────────────────── */
input.form-control,
textarea.form-control,
select.form-control,
.general-form input.form-control,
.general-form textarea.form-control,
.general-form select.form-control {
    height: 34px !important;
    min-height: 34px !important;
    padding: 6px 12px !important;
    font-size: 13px !important;
}

.general-form textarea.form-control {
    height: auto !important;
    min-height: 72px !important;
}

/* ── Select2 — single clean control (no double-box overlap) ────── */
.select2-container.form-control,
.select2-container-multi.form-control {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.select2-container .select2-choice {
    display: block !important;
    position: relative !important;
    height: 34px !important;
    line-height: 32px !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 13px !important;
    color: #202124 !important;
    border: 1px solid #dadce0 !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    background-image: none !important;
    filter: none !important;
    box-shadow: none !important;
    overflow: hidden !important;
}

.select2-container .select2-choice > .select2-chosen {
    display: block !important;
    height: 32px !important;
    line-height: 32px !important;
    padding: 0 30px 0 12px !important;
    margin: 0 !important;
    font-size: 13px !important;
    color: #202124 !important;
    border: none !important;
    background: transparent !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.select2-container .select2-choice .select2-arrow {
    width: 24px !important;
    border-left: none !important;
    background: transparent !important;
    background-image: none !important;
    filter: none !important;
    right: 2px !important;
    top: 0 !important;
    height: 100% !important;
    position: absolute !important;
}

.select2-container .select2-choice .select2-arrow b {
    display: block !important;
    width: 0 !important;
    height: 0 !important;
    margin: 13px auto 0 !important;
    border: none !important;
    border-left: 4px solid transparent !important;
    border-right: 4px solid transparent !important;
    border-top: 5px solid #5f6368 !important;
    background: none !important;
    background-image: none !important;
}

.select2-container .select2-choice abbr {
    top: 50% !important;
    margin-top: -5px !important;
    right: 28px !important;
}

.select2-container-active .select2-choice,
.select2-container.select2-dropdown-open .select2-choice,
.select2-dropdown-open .select2-choice {
    border-color: #1a73e8 !important;
    box-shadow: 0 0 0 1px #1a73e8 !important;
    background: #ffffff !important;
    background-image: none !important;
}

.select2-container.select2-container-disabled .select2-choice {
    background: #f1f3f4 !important;
    border-color: #e8eaed !important;
    cursor: not-allowed !important;
}

/* Multi-select */
.select2-container-multi .select2-choices {
    min-height: 34px !important;
    padding: 2px 6px !important;
    border: 1px solid #dadce0 !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    background-image: none !important;
    box-shadow: none !important;
}

.select2-container-multi .select2-choices .select2-search-field input {
    height: 28px !important;
    margin: 0 !important;
    padding: 0 4px !important;
    font-size: 13px !important;
    background: transparent !important;
    border: none !important;
}

.select2-container-multi .select2-choices .select2-search-choice {
    margin: 3px 4px 3px 0 !important;
    padding: 2px 8px !important;
    font-size: 12px !important;
    border-radius: 12px !important;
    background: #e8f0fe !important;
    border: 1px solid #d2e3fc !important;
    color: #174ea6 !important;
}

.select2-drop {
    margin-top: 2px !important;
    border: 1px solid #e8eaed !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 16px rgba(60, 64, 67, 0.15) !important;
}

.select2-results .select2-result-label {
    padding: 5px 10px !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
}

.select2-results .select2-highlighted {
    background: #e8f0fe !important;
    color: #174ea6 !important;
}

.select2-search {
    padding: 4px 6px !important;
}

.select2-search input {
    height: 30px !important;
    min-height: 30px !important;
    padding: 4px 8px !important;
    font-size: 13px !important;
    border: 1px solid #dadce0 !important;
    border-radius: 8px !important;
    background: #ffffff !important;
}

.select2-results {
    max-height: 220px !important;
    padding: 4px 0 !important;
}

.select2-offscreen,
.select2-focusser.select2-offscreen {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    border: 0 !important;
}

/* Bootstrap dropdowns */
.dropdown-menu {
    padding: 4px 0 !important;
    font-size: 13px !important;
}

.dropdown-item {
    padding: 6px 14px !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
}

.dropdown-header {
    padding: 6px 14px !important;
    font-size: 11px !important;
}

.navbar-nav .dropdown-menu .dropdown-item {
    padding: 6px 14px !important;
}

/* Toolbar / filter dropdowns */
.custom-toolbar .select2-container .select2-choice,
.filter-multi-select .dropdown-toggle,
.custom-toolbar .dropdown-toggle {
    height: 34px !important;
    line-height: 32px !important;
    font-size: 13px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.datatable-search,
.custom-filter-search,
.dataTables_filter input {
    height: 34px !important;
    padding: 6px 14px !important;
    font-size: 13px !important;
}

/* Modal footer buttons stay comfortable */
.modal-footer .btn,
.page-title .btn {
    padding: 6px 18px !important;
    font-size: 13px !important;
}

/* Page-level scroll — see page-scroll-fix.css (loaded at end of body) */
/* Project tabs — see project-tabs.css (loaded at end of body) */
