/* Modal Fix Overrides
   --------------------------------------------------
   Purpose: keep Bootstrap modals above custom overlays
   without breaking the existing FAB, sidebar overlay,
   notification system, or autocomplete dropdown menus.
*/

/* --------------------------------------------------
   1. Hide/disable interfering overlays while modal open
   -------------------------------------------------- */
body.modal-open .sidebar-overlay,
body.modal-open .fab-backdrop,
.modal.show ~ .sidebar-overlay,
.modal.show ~ .fab-backdrop {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity 0.2s ease !important;
}

body.modal-open .fab-container {
    pointer-events: none !important;
    opacity: 0.35 !important;
    filter: saturate(0.35);
}

body:not(.modal-open) .fab-container {
    opacity: 1 !important;
    pointer-events: auto !important;
    filter: none !important;
}

body.modal-open #notification-container,
.modal.show ~ #notification-container {
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}

body.modal-open [id$="_results"],
body.modal-open .list-group[id$="_results"],
.modal.show ~ [id$="_results"],
.modal.show ~ .list-group[id$="_results"] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* --------------------------------------------------
   2. Z-index hierarchy (backdrop < modal < content)
   -------------------------------------------------- */
.modal-backdrop {
    z-index: 1040 !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
}

.modal {
    z-index: 1050 !important;
}

.modal-dialog {
    z-index: 1060 !important;
}

.modal-content {
    z-index: 1070 !important;
    position: relative;
}

.modal-header .close {
    position: relative;
    z-index: 1080;
}

/* --------------------------------------------------
   3. Optional drawer-style modal helper classes
   -------------------------------------------------- */
.modal.modal-drawer .modal-dialog {
    margin: 0;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    max-width: 520px;
    width: 100%;
    height: 100vh;
    transform: translateX(100%);
    transition: transform 0.3s ease;
}

.modal.modal-drawer.show .modal-dialog {
    transform: translateX(0);
}

.modal.modal-drawer .modal-content {
    height: 100%;
    border-radius: 0;
    border-left: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: -8px 0 20px rgba(0, 0, 0, 0.1);
}

/* --------------------------------------------------
   4. General modal polish
   -------------------------------------------------- */
body.modal-open {
    overflow: hidden;
}

.modal-header,
.modal-body,
.modal-footer {
    pointer-events: auto;
}

