/* OmniLaunch_v1.css
   Corrected consolidated stylesheet built from the current working index.html and referenced CSS files.
   Includes a syntax repair for omnilaunch_consolidated_v23.css where two closing braces were missing near the top-tools iframe rule.
   Exact duplicate blocks were removed conservatively in first-seen order.
*/


/* ===== Source: omnilaunch_consolidated_v23.css (fixed syntax) ===== */

/* OmniLaunch consolidated stylesheet v17 */

/* Exact original CSS order preserved, with only safe final overrides appended. */

/* === paNavBar_fixed.css === */

/* OmniLaunch - fixed NavBar CSS */

.navbar1 {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 8px;
  width: 100%;
  overflow: visible !important;
  background: transparent;
}

.navbar1 * {
  box-sizing: border-box;
}

.dropdown1,
.menu-group,
.submenu,
.group {
  position: relative;
}

.dropdown1 {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
}

.dropbtn,
.menu-group-btn,
.navbar1 .button,
.navbar1 button.button {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid rgba(15, 23, 42, 0.10);
  background: #ffffff;
  color: #0f172a;
  border-radius: 12px;
  font: inherit;
  line-height: 1.2;
  cursor: pointer;
  text-align: left;
  min-height: 42px;
}

.dropbtn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px;
  font-size: 15px;
  font-weight: 700;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
}

.dropbtn:hover,
.dropbtn:focus,
.menu-group-btn:hover,
.menu-group-btn:focus,
.navbar1 .button:hover,
.navbar1 .button:focus {
  background: #f8fafc;
  outline: none;
}

.nav-dropdown::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -15px;
    height: 15px;
}

.dropbtn .caret,
.menu-group-btn .caret {
  opacity: .7;
  font-size: 12px;
}

.dropdown-content {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 220px;
  max-width: min(92vw, 480px);
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 14px;
  box-shadow: 0 14px 28px rgba(2,6,23,.14);
  padding: 10px;
  z-index: 99999;
  overflow: visible !important;
}

.dropdown1.open > .dropdown-content,
.dropdown1.mobile-open > .dropdown-content,
.dropdown1:hover > .dropdown-content,
.dropdown1:focus-within > .dropdown-content {
  display: block;
}

.navbar1 .button,
.dropdown-content .button,
.dropdown-content button.button {
  display: block;
  width: 100% !important;
  padding: 10px 12px;
  margin: 0;
  background: #ffffff;
  color: #111827;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  white-space: normal !important;
  text-align: left !important;
  box-shadow: none;
}

.dropdown-content .button:hover,
.dropdown-content button.button:hover {
  background: #f8fafc;
}

.dropdown-content .icon {
  font-style: normal;
  font-size: 0.96em;
}

.menu-entry-spacer {
  height: 8px;
}

.menu-group {
  display: block;
}

.menu-group-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 12px;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 12px;
  font-weight: 800;
  background: #f8fafc;
  color: #374151;
}

.menu-group-items {
  display: none;
  position: absolute;
  top: 0;
  left: calc(100% + 6px);
  min-width: 240px;
  max-width: min(92vw, 420px);
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 14px;
  box-shadow: 0 14px 28px rgba(2,6,23,.14);
  padding: 10px;
  z-index: 100000;
}

.menu-group.open > .menu-group-items,
.menu-group:hover > .menu-group-items,
.menu-group:focus-within > .menu-group-items {
  display: block;
}

.navbar1-panel {
  display: block;
  width: 100%;
  overflow: visible !important;
}

.hamburger-btn {
  display: none;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(15,23,42,.12);
  background: #ffffff;
  color: #0f172a;
  border-radius: 12px;
  padding: .5rem .65rem;
  margin: 0;
}

@media (max-width: 767px) {
  .hamburger-btn {
    display: inline-flex !important;
  }

  .navbar1-panel {
    display: none !important;
    width: 100%;
    margin-top: 8px;
  }

  .navbar1-panel.open {
    display: block !important;
  }

  .navbar1 {
    flex-direction: column !important;
    gap: 10px;
  }

  .dropdown1 {
    width: 100%;
    display: block;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 14px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
  }

  .dropbtn {
    width: 100%;
    border: 0;
    border-radius: 0;
    min-height: 48px;
    padding: 14px 16px;
    background: #ffffff;
  }

  .dropdown-content {
    display: none;
    position: static !important;
    top: auto !important;
    left: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border: 0;
    border-top: 1px solid rgba(15,23,42,.06);
    border-radius: 0;
    box-shadow: none;
    background: #f8fafc;
    padding: 8px;
  }

  .dropdown1.mobile-open > .dropdown-content,
  .dropdown1.open > .dropdown-content {
    display: block !important;
  }

  .navbar1 .button,
  .dropdown-content .button,
  .dropdown-content button.button {
    min-height: 46px;
    padding: 12px 14px;
    border-radius: 10px;
    margin: 0 0 8px 0;
  }

  .menu-group {
    position: static !important;
    margin-bottom: 8px;
  }

  .menu-group:last-child {
    margin-bottom: 0;
  }

  .menu-group-btn {
    min-height: 44px;
    border-radius: 10px;
  }

  .menu-group-items {
    display: none;
    position: static !important;
    top: auto !important;
    left: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    border: 0;
    box-shadow: none;
    background: transparent;
    padding: 8px 0 0 12px;
  }

  .menu-group.open > .menu-group-items {
    display: block !important;
  }

  .menu-entry-spacer {
    display: none !important;
  }
}

/* === homepage2_styles_v12.css === */

:root {
                --text: #0f172a;
                --muted: #5f6b7a;
                --line: rgba(15,23,42,.10);
                --brand: #2563eb;
                --brand2: #7c3aed;
                --shadow: 0 18px 45px rgba(2,6,23,.12);
                --radius: 20px;
                --hero: radial-gradient(circle at top right, rgba(6,182,212,.18), transparent 30%),radial-gradient(circle at left, rgba(124,58,237,.16), transparent 22%),linear-gradient(135deg,#081322 0%,#10203a 46%,#132949 100%)
            }

* {
                box-sizing: border-box
            }

html {
                scroll-behavior: smooth
            }

body {
                margin: 0;
                color: var(--text);
                font-family: "Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
                background: linear-gradient(180deg,#f4f8fd 0%,#edf3fb 100%)
            }

body {
                padding-top: 104px;
            }

@media (max-width: 991px) {
                body {
                    padding-top: 118px;
                }
            }

@media (max-width: 767px) {
                body {
                    padding-top: 132px;
                }
            }

.shell {
                width: min(98vw, 2400px);
                margin: 0 auto
            }

.topbar {
                position: fixed;
                top: 0;
                left: 0;
                right: 0;
                width: 100%;
                z-index: 3000;
                background: rgba(255,255,255,.98);
                border-bottom: 1px solid rgba(15,23,42,.08);
                backdrop-filter: blur(14px);
                box-shadow: 0 4px 20px rgba(15,23,42,.08);
                overflow: visible !important
            }

.topbar-inner {
                display: grid;
                grid-template-columns: auto 1fr auto;
                gap: 14px;
                align-items: center;
                padding: 10px 0;
                overflow: visible!important
            }

.brand-logo {
                width: 46px;
                height: 46px;
                border-radius: 14px;
                display: grid;
                place-items: center;
                color: #fff;
                font-weight: 800;
                background: rgba(215,108,72,1.0);
                /*background: linear-gradient(135deg,var(--brand),var(--brand2));*/
                box-shadow: 0 14px 30px rgba(37,99,235,.25);
                letter-spacing: .04em 
           }

.topbar-nav-wrap {
                min-width: 0;
                overflow: visible!important
            }

.toolbar {
                display: flex;
                gap: 10px;
                flex-wrap: wrap;
                align-items: center;
                justify-content: flex-end
            }

.ol-btn,.ol-btn-ghost {
                border: 0;
                border-radius: 999px;
                padding: 10px 16px;
                font-weight: 700;
                cursor: pointer;
                transition: transform .18s ease,box-shadow .18s ease,background .18s ease;
                text-decoration: none;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 8px;
                line-height: 1.2;
                white-space: nowrap
            }

.ol-btn:hover,.ol-btn-ghost:hover {
                transform: translateY(-1px)
            }

.ol-btn {
                background: linear-gradient(135deg,var(--brand),#1d4ed8);
                color: #fff;
                box-shadow: 0 14px 28px rgba(37,99,235,.24)
            }

.ol-btn.secondary {
                background: linear-gradient(135deg,var(--brand2),#5b21b6)
            }

.ol-btn-ghost {
                background: rgba(15,23,42,.04);
                color: var(--text);
                border: 1px solid rgba(15,23,42,.08)
            }

.header-nav-shell {
                position: relative;
                background: linear-gradient(180deg,#fff,#f9fbff);
                border: 1px solid rgba(15,23,42,.08);
                border-radius: 18px;
                padding: 8px 12px;
                overflow: visible!important;
                min-height: 58px;
                z-index: 350
            }

/* requested top layout */


.search-panel {
                padding: 16px 18px
            }

.menu-search {
                width: 100%
            }

#menuFilter {
                border-radius: 999px;
                border: 1px solid rgba(15,23,42,.12);
                padding: 13px 18px;
                font-size: .98rem;
                box-shadow: none;
                width: 100%
            }


.hero-section-grid {
                display: grid;
                grid-template-columns: 1fr;
                gap: 18px;
                margin-top: 24px
            }

.hero {
                padding: 34px;
                color: #fff;
                background: var(--hero);
                border-radius: 28px;
                box-shadow: 0 28px 65px rgba(2,6,23,.24)
            }

.hero-grid {
                display: grid;
                gap: 24px;
                grid-template-columns: minmax(0,1.55fr) minmax(280px,.9fr)
            }

.eyebrow {
                display: inline-flex;
                align-items: center;
                gap: 8px;
                padding: 7px 12px;
                border-radius: 999px;
                font-size: .86rem;
                font-weight: 700;
                color: #dbeafe;
                background: rgba(255,255,255,.1);
                border: 1px solid rgba(255,255,255,.14);
                margin-bottom: 16px
            }

.hero h2 {
                margin: 0 0 14px;
                font-size: clamp(2rem,4vw,3.3rem);
                line-height: 1.05;
                font-weight: 800;
            }

.hero p {
                margin: 0;
                color: rgba(255,255,255,.86);
                line-height: 1.7;
                font-size: 1.03rem
            }

.hero-actions {
                display: flex;
                gap: 12px;
                flex-wrap: wrap;
                margin-top: 24px
            }

.hero-stack {
                display: grid;
                gap: 14px
            }

.glance,.cardy,.launch-panel {
                background: #fff;
                border-radius: var(--radius);
                border: 1px solid var(--line);
                box-shadow: var(--shadow)
            }

.glance {
                padding: 18px
            }

.glance h3 {
                margin: 0;
                color: #0f4ecc;
                font-size: 1.9rem;
                font-weight: 800
            }

.glance p,.glance ul {
                margin: 10px 0 0;
                color: var(--muted);
                line-height: 1.75
            }

.section-head {
                display: flex;
                align-items: end;
                justify-content: space-between;
                gap: 12px;
                margin: 30px 0 18px;
                flex-wrap: wrap
            }

.section-head h3 {
                margin: 0;
                font-size: 1.55rem;
                font-weight: 800
            }

.section-head p {
                margin: 8px 0 0;
                max-width: 78ch;
                color: var(--muted);
                line-height: 1.7
            }

.chip {
                display: inline-flex;
                align-items: center;
                gap: 8px;
                padding: 9px 12px;
                border-radius: 999px;
                font-size: .86rem;
                font-weight: 700;
                background: rgba(37,99,235,.08);
                color: #1747c6
            }

.grid-3,.launch-grid {
                display: grid;
                gap: 18px
            }

.grid-3 {
                grid-template-columns: repeat(3,minmax(0,1fr))
            }

.launch-grid {
                grid-template-columns: minmax(0,1.25fr) minmax(330px,.85fr);
                align-items: start
            }

.cardy {
                padding: 22px
            }

.iconbox {
                width: 44px;
                height: 44px;
                border-radius: 14px;
                display: grid;
                place-items: center;
                color: #fff;
                font-weight: 800;
                background: linear-gradient(135deg,var(--brand),var(--brand2));
                margin-bottom: 14px
            }

.cardy h4 {
                margin: 0 0 10px;
                font-size: 1.06rem;
                font-weight: 800
            }

.cardy p,.cardy li {
                color: var(--muted);
                line-height: 1.72
            }

.cardy ul {
                padding-left: 18px;
                margin: 10px 0 0
            }

.launch-panel {
                padding: 18px;
                overflow: visible!important;
                position: relative;
                z-index: 110
            }

.launch-toolbar {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 12px;
                flex-wrap: wrap;
                margin-bottom: 14px
            }

.widget-frame {
                margin-top: 10px;
                border-radius: 16px;
                overflow: hidden;
                background: #fff;
                border: 1px solid rgba(15,23,42,.08);
                min-height: 340px
            }

.widget-frame iframe {
                width: 100%;
                min-height: 340px;
                border: 0;
                background: #fff
            }

.footer {
                margin: 36px 0 26px;
                padding-top: 22px;
                border-top: 1px solid rgba(15,23,42,.08);
                color: var(--muted);
                display: flex;
                justify-content: space-between;
                gap: 12px;
                flex-wrap: wrap;
                font-size: .95rem
            }

.omni-modal {
                position: fixed;
                inset: 0;
                display: none;
                align-items: center;
                justify-content: center;
                padding: 20px;
                background: rgba(2,6,23,.65);
                backdrop-filter: blur(8px);
                z-index: 5000
            }

.omni-modal.open {
                display: flex
            }

.omni-modal-card {
                width: min(760px,100%);
                max-height: 88vh;
                overflow: auto;
                background: #fff;
                color: var(--text);
                border-radius: 24px;
                border: 1px solid rgba(15,23,42,.08);
                box-shadow: 0 32px 80px rgba(2,6,23,.34)
            }

.omni-modal-head {
                display: flex;
                justify-content: space-between;
                align-items: flex-start;
                gap: 16px;
                padding: 24px 24px 0
            }

.omni-modal-head h3 {
                margin: 0;
                font-weight: 800;
                font-size: 1.45rem
            }

.omni-modal-head p {
                margin: 8px 0 0;
                color: var(--muted);
                line-height: 1.65
            }

.omni-modal-body {
                padding: 20px 24px 24px
            }

.modal-close {
                width: 40px;
                height: 40px;
                border: 0;
                border-radius: 999px;
                cursor: pointer;
                font-size: 1.15rem;
                background: rgba(15,23,42,.06)
            }

.about-grid {
                display: grid;
                gap: 14px;
                margin-top: 18px
            }

.about-grid>div {
                padding: 14px 16px;
                border-radius: 16px;
                border: 1px solid rgba(37,99,235,.10);
                background: linear-gradient(180deg,rgba(37,99,235,.05),rgba(124,58,237,.03))
            }

.form-grid {
                display: grid;
                grid-template-columns: repeat(2,minmax(0,1fr));
                gap: 14px
            }

.form-row {
                display: flex;
                flex-direction: column;
                gap: 8px
            }

.form-row.full {
                grid-column: 1/-1
            }

.form-row label {
                margin: 0;
                font-size: .92rem;
                font-weight: 700
            }

.form-row input,.form-row textarea,.form-row select {
                width: 100%;
                border: 1px solid rgba(15,23,42,.12);
                border-radius: 14px;
                padding: 12px 14px;
                font: inherit;
                background: #fff;
                color: var(--text)
            }

.form-row textarea {
                min-height: 150px;
                resize: vertical
            }

.form-note {
                margin-top: 14px;
                color: var(--muted);
                font-size: .92rem;
                line-height: 1.65
            }

.form-status {
                min-height: 22px;
                margin-top: 14px;
                font-size: .92rem;
                font-weight: 700
            }

.text-success {
                color: #16a34a
            }

.text-warning {
                color: #ea580c
            }

#popupPrefsOverlay {
                display: none;
                position: fixed;
                inset: 0;
                background: rgba(2,6,23,.66);
                z-index: 4500;
                align-items: center;
                justify-content: center;
                padding: 18px;
                backdrop-filter: blur(8px)
            }

#popupPrefsOverlay .prefs-panel {
                background: #fff;
                width: min(1050px,100%);
                max-height: 90vh;
                overflow: auto;
                border-radius: 22px;
                box-shadow: 0 28px 70px rgba(2,6,23,.34);
                border: 1px solid rgba(15,23,42,.08);
                padding: 20px
            }

.prefs-header {
                display: flex;
                align-items: flex-start;
                justify-content: space-between;
                gap: 12px
            }

.prefs-title {
                font-weight: 800;
                font-size: 1.1rem
            }

.prefs-subtitle {
                margin: 5px 0 0;
                color: var(--muted);
                font-size: .94rem
            }

.prefs-box {
                margin-top: 14px;
                padding: 14px;
                border: 1px solid rgba(15,23,42,.09);
                border-radius: 18px;
                background: linear-gradient(180deg,#fff,#fbfdff)
            }

.prefs-box h5 {
                margin: 0 0 6px;
                font-size: 1rem;
                font-weight: 800
            }

@media (max-width: 1199px) {
                .bottom-content-grid {
                    grid-template-columns: 1fr;
                }
            }

@media (max-width: 1199px) {
                .hero-grid,
.grid-3,
.launch-grid{
                    grid-template-columns:1fr
                }

                .topbar-inner {
                    grid-template-columns: auto 1fr
                }

                .toolbar {
                    grid-column: 1/-1;
                    justify-content: flex-start
                }

                
            }

@media (max-width: 767px) {
                .shell {
                    width:min(100% - 14px,100%)
                }

                .topbar-inner {
                    grid-template-columns: 1fr;
                    align-items: stretch;
                    gap: 10px
                }

                .brand-logo {
                    display: none
                }

                .toolbar,.hero-actions {
                    width: 100%
                }

                .toolbar>*,.hero-actions>* {
                    flex: 1 1 auto
                }

                .ol-btn,.ol-btn-ghost {
                    width: 100%
                }

                .hero {
                    padding: 24px 20px
                }

                .hero h2 {
                    max-width: 100%
                }

                .section-head {
                    align-items: start
                }

                .form-grid {
                    grid-template-columns: 1fr
                }

                
            }

.bottom-content-grid {
                display: grid;
                grid-template-columns: minmax(0,1.25fr) minmax(320px,.85fr);
                gap: 22px;
                margin-top: 28px;
                align-items: start;
            }

.bottom-main, .bottom-side { min-width: 0; }

.compact-head { margin: 0 0 16px; }

.compact-head p { max-width: 72ch; }

.info-card-grid { margin-top: 0; }

.info-card { height: 100%; }

.side-head { margin-top: 0; }

.tidy-launch-panel { padding: 16px; }

.tidy-toolbar { margin-bottom: 12px; }

.launch-helper-card { padding: 18px; }

.launch-helper-card ul { margin: 10px 0 0; padding-left: 18px; }

.support-card-stack { display: grid; gap: 14px; margin-top: 14px; }

.support-card { padding: 18px 20px; }

.tidy-footer { align-items: center; }

.footer-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; justify-content: flex-end; }

.brand-logo.brand-logo-image-wrap{
  width:64px;
  height:64px;
  padding:0;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor: pointer;
  overflow:visible!important
}

.brand-logo-image{
  display:block;
  width:64px;
  height:64px;
  object-fit:contain
}

@media (max-width:767px){
  .brand-logo.brand-logo-image-wrap{
    width:52px;
    height:52px
  }
  .brand-logo-image{
    width:52px;
    height:52px
  }
}

/* Readable classes extracted from inline styles in homepage2.html */

.ol-nav-item-w-100-li { list-style:none; }

.ol-menuaccordion-accordion-div { display:none !important; }

.ol-mt-3-d-flex-div { gap:10px; }

.ol-popupprefssub-div { margin-top:6px;font-size:13px;color:#444; }

.ol-div { margin-top:12px;display:flex;gap:10px;flex-wrap:wrap;align-items:end; }

.ol-label-label { display:flex;flex-direction:column;font-size:13px;gap:6px; }

.ol-prefw-input-number { padding:10px 12px;width:120px;border:1px solid #ccc;border-radius:12px; }

.ol-prefx-input-number-blank { padding:10px 12px;width:140px;border:1px solid #ccc;border-radius:12px; }

.ol-div-2 { margin-top:14px;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap; }

.ol-prefstatus-div { margin-top:10px;font-size:13px;color:#333;min-height:18px; }

.ol-div-3 { margin-top:4px;font-size:13px;color:#444; }

.ol-prefs-box-div { margin-top:12px; }

.ol-h5 { font-size:15px; }

.ol-div-4 { display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-top:10px; }

.ol-menucategory-select-select { padding:10px 12px;width:180px;border:1px solid #ccc;border-radius:12px; }

.ol-menuurl-input-text-https-example-com { padding:10px 12px;width:280px;border:1px solid #ccc;border-radius:12px; }

.ol-menugroup-input-text-e-g-switches { padding:10px 12px;width:160px;border:1px solid #ccc;border-radius:12px; }

.ol-menuwidth-input-number { padding:10px 12px;width:100px;border:1px solid #ccc;border-radius:12px; }

.ol-ol-btn-button-button-add-menu-item { background:linear-gradient(135deg,#16a34a,#15803d); }

.ol-menucategoryview-select-select { padding:10px 12px;width:220px;border:1px solid #ccc;border-radius:12px; }

.ol-ol-btn-button-button-move-selected-to-group { background:linear-gradient(135deg,#ea580c,#c2410c); }

.ol-menueditorlist-div { margin-top:12px;border:1px solid #ddd;border-radius:14px;overflow:hidden; }

/* Desktop: keep the two top tool cards at 90% of the viewport minus sticky header height */


/* ========================================================================== L FIX: Search box hidden under fixed mobile header
   Place at VERY BOTTOM of OmniLaunch_v6_3.css
   ========================================================= */

/* Desktop/tablet baseline */
:root {
  --ol-real-topbar-offset: 96px;
}

body {
  padding-top: var(--ol-real-topbar-offset) !important;
}

/* Keep main shell safely below fixed header */
.topbar + .shell,
body > .shell:first-of-type {
  margin-top: 0 !important;
  padding-top: 12px !important;
}

/* Search accordion must stay in normal flow */
#footerSearchWrap.footer-search-wrap,
.footer-search-wrap {
  display: block !important;
  position: relative !important;
  clear: both !important;
  z-index: 10 !important;
  width: 100% !important;
  margin-top: 0 !important;
  margin-bottom: 14px !important;
}

/* Search toggle/header */
#footerSearchToggle.footer-search-toggle,
.footer-search-toggle {
  position: relative !important;
  z-index: 11 !important;
  width: 100% !important;
}

/* Search body must sit below the toggle, not underneath it */
#footerSearchBody.footer-search-body,
.footer-search-body {
  display: block !important;
  position: relative !important;
  clear: both !important;
  z-index: 10 !important;
  width: 100% !important;
  padding-top: 12px !important;
  margin-top: 0 !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  overflow: visible !important;
}

/* Search panel inside the accordion */
#footerSearchBody .launch-panel.search-panel,
.footer-search-body .launch-panel.search-panel,
.footer-search-wrap .search-panel {
  display: block !important;
  position: relative !important;
  z-index: 10 !important;
  width: 100% !important;
  margin: 0 !important;
  overflow: visible !important;
}

/* Actual search wrapper */
#footerSearchBody .menu-search,
.footer-search-body .menu-search,
.footer-search-wrap .menu-search {
  display: block !important;
  position: relative !important;
  z-index: 10 !important;
  width: 100% !important;
  overflow: visible !important;
}

/* Search form: stable desktop layout */
#footerSearchBody #gridnetSearchForm.gridnet-search-form,
.footer-search-body #gridnetSearchForm.gridnet-search-form,
#gridnetSearchForm.gridnet-search-form {
  display: grid !important;
  grid-template-columns: 150px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  position: relative !important;
  z-index: 10 !important;
}

/* Inputs */
#gridnetSearchModeSelect {
  width: 150px !important;
  min-width: 150px !important;
  max-width: 150px !important;
}

#gridnetSearchInput {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

#gridnetSearchBtn {
  width: auto !important;
  min-width: 86px !important;
  white-space: nowrap !important;
}

/* Narrow desktop/tablet */
@media (max-width: 900px) {
  :root {
    --ol-real-topbar-offset: 126px;
  }

  body {
    padding-top: var(--ol-real-topbar-offset) !important;
  }

  #footerSearchBody.footer-search-body,
  .footer-search-body {
    padding-top: 14px !important;
  }
}

/* Phone/mobile: header is taller, stack search controls cleanly */
@media (max-width: 640px), (hover: none) and (pointer: coarse) {
  :root {
    --ol-real-topbar-offset: 158px;
  }

  body {
    padding-top: var(--ol-real-topbar-offset) !important;
  }

  .topbar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 3000 !important;
    overflow: visible !important;
  }

  .topbar + .shell,
  body > .shell:first-of-type {
    padding-top: 10px !important;
  }

  #footerSearchWrap.footer-search-wrap,
  .footer-search-wrap {
    margin-top: 0 !important;
    margin-bottom: 14px !important;
  }

  #footerSearchBody.footer-search-body,
  .footer-search-body {
    padding-top: 12px !important;
  }

  #footerSearchBody #gridnetSearchForm.gridnet-search-form,
  .footer-search-body #gridnetSearchForm.gridnet-search-form,
  #gridnetSearchForm.gridnet-search-form {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  #gridnetSearchModeSelect,
  #gridnetSearchInput,
  #gridnetSearchBtn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 40px !important;
    min-height: 40px !important;
  }
}
   OmniLaunch v12 bottom-layout tightening + corrected hero inline row
   Full drop-in replacement CSS
   ========================================================================== */

/* --- Hero layout correction: eyebrow and actions beside each other, no stretched buttons --- */

.hero-grid > div:first-child {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "toprow"
    "title"
    "body";
  row-gap: 14px;
  min-width: 0;
}

.hero-grid > div:first-child > .eyebrow,
.hero-grid > div:first-child > .hero-actions,
.hero-grid > div:first-child > h2,
.hero-grid > div:first-child > p {
  min-width: 0;
}

.hero-main-heading {
    grid-area: title;
}

.hero-grid > div:first-child > .eyebrow {
  grid-area: toprow;
  display: inline-flex;
  align-items: center;
  margin: 0;
}

.hero-grid > div:first-child > .hero-actions {
  grid-area: toprow;
  justify-self: end;
  align-self: center;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin: 0;
  min-width: 0;
}

.hero-grid > div:first-child > h2 {
  grid-area: title;
  margin: 0;
}

.hero-grid > div:first-child > p {
  grid-area: body;
}

/* Keep hero buttons content-width on desktop */

.hero-actions .ol-btn,
.hero-actions .ol-btn-ghost {
  width: auto;
  flex: 0 0 auto;
}

/* --- Bottom section: stable, compact, non-overlapping --- */

.bottom-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.82fr);
  gap: 22px;
  align-items: start;
  margin-top: 28px;
  margin-bottom: 12px;
  position: relative;
  isolation: isolate;
}

.bottom-main,
.bottom-side {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.bottom-content-grid .section-head,
.bottom-content-grid .compact-head,
.bottom-content-grid .side-head {
  margin: 0;
  align-items: flex-start;
}

.bottom-content-grid .section-head h3,
.bottom-content-grid .section-head p,
.bottom-content-grid .compact-head p,
.bottom-content-grid .bottom-main p,
.bottom-content-grid .bottom-side p,
.bottom-content-grid .bottom-main li,
.bottom-content-grid .bottom-side li {
  position: relative;
  z-index: 1;
}

.bottom-content-grid .compact-head p {
  max-width: 72ch;
}

.bottom-content-grid article,
.bottom-content-grid .cardy,
.bottom-content-grid .launch-panel {
  min-width: 0;
  position: relative;
  z-index: 0;
}

.bottom-content-grid .cardy,
.bottom-content-grid .launch-panel,
.footer .search-panel {
  overflow: hidden;
}

.bottom-main > .grid-3,
.bottom-side > .support-card-stack {
  margin-top: 0;
}

.bottom-main .grid-3 {
  gap: 16px;
}

.info-card,
.support-card,
.launch-helper-card {
  height: 100%;
}

.info-card,
.support-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.info-card p,
.support-card p,
.launch-helper-card p,
.launch-helper-card li {
  margin-bottom: 0;
  overflow-wrap: anywhere;
}

.support-card .ol-btn {
  align-self: flex-start;
}

.support-card-stack {
  display: grid;
  gap: 14px;
  margin-top: 0;
}

.bottom-side {
  position: relative;
}

@media (min-width: 1200px) {
  .bottom-side {
    position: sticky;
    top: calc(104px + 12px);
  }
}

/* --- Footer/search area --- */

.tidy-footer {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(300px, 0.95fr) auto;
  gap: 16px;
  align-items: center;
  margin: 28px 0 22px;
  padding: 18px 0 calc(10px + env(safe-area-inset-bottom));
  border-top: 1px solid rgba(15,23,42,.08);
}

.footer-search-wrap {
  display: contents;
}

.footer-search-copy {
  min-width: 0;
  line-height: 1.6;
}

.footer-search-copy strong {
  color: #0f172a;
}

.footer .search-panel {
  padding: 14px 16px;
  min-width: 0;
  margin: 0;
}

.footer .menu-search,
.footer .menu-search input,
.footer .search-panel #menuFilter {
  width: 100%;
}

.bottom-content-grid .grid-3 > article,
.bottom-content-grid .support-card-stack > article {
  margin: 0;
}

.bottom-content-grid .grid-3,
.bottom-content-grid .support-card-stack,
.bottom-content-grid .launch-panel,
.bottom-content-grid .cardy {
  align-self: stretch;
}

.bottom-content-grid .grid-3 > * {
  min-width: 0;
}

@media (max-width: 1199.98px) {
  .bottom-content-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .bottom-side {
    position: static;
  }

  .bottom-main .grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tidy-footer {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .footer-search-wrap {
    display: grid;
    gap: 14px;
  }

  .footer-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 767.98px) {
  /* Mobile: eyebrow above buttons to avoid collisions, but keep buttons natural width unless too narrow */
  .hero-grid > div:first-child {
    grid-template-areas:
      "eyebrow"
      "actions"
      "title"
      "body";
    row-gap: 12px;
  }

  .hero-grid > div:first-child > .eyebrow {
    grid-area: eyebrow;
  }

  .hero-grid > div:first-child > .hero-actions {
    grid-area: actions;
    justify-self: start;
    justify-content: flex-start;
    width: 100%;
  }

  .hero-actions .ol-btn,
  .hero-actions .ol-btn-ghost {
    width: auto;
    flex: 0 1 auto;
  }

  .bottom-content-grid {
    gap: 16px;
    margin-top: 22px;
    margin-bottom: 6px;
  }

  .bottom-main,
  .bottom-side {
    gap: 14px;
  }

  .bottom-main .grid-3 {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .tidy-launch-panel,
  .launch-helper-card,
  .support-card,
  .footer .search-panel {
    padding-left: 14px;
    padding-right: 14px;
  }

  .tidy-footer {
    gap: 14px;
    margin: 22px 0 16px;
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }

  .footer-actions {
    width: 100%;
  }

  .footer-actions > * {
    flex: 1 1 220px;
  }
}

@media (max-width: 480px) {
  body {
    padding-bottom: env(safe-area-inset-bottom);
  }

  .hero {
    padding: 22px 16px;
    border-radius: 22px;
  }

  .hero-grid > div:first-child > h2 {
    max-width: 100%;
    font-size: clamp(1.75rem, 8vw, 2.25rem);
  }

  .eyebrow {
    max-width: 100%;
    white-space: normal;
  }

  .hero-actions {
    gap: 8px;
  }

  .hero-actions .ol-btn,
  .hero-actions .ol-btn-ghost,
  .footer-actions > * {
    flex-basis: 100%;
    width: 100%;
  }

  .bottom-content-grid {
    gap: 14px;
  }

  .bottom-main,
  .bottom-side {
    gap: 12px;
  }

  .bottom-content-grid .cardy,
  .bottom-content-grid .launch-panel,
  .footer .search-panel {
    border-radius: 16px;
  }

  .support-card,
  .launch-helper-card,
  .tidy-launch-panel,
  .footer .search-panel {
    padding: 14px;
  }

  .footer-search-copy {
    font-size: .95rem;
  }

  .footer .search-panel #menuFilter {
    padding: 12px 16px;
    font-size: .96rem;
  }
}

/* === homepage2_blankstart_v3_topgap_fix.css === */

/* OmniLaunch v3 top-gap fix */

html, body {
  margin: 0 !important;
  padding: 0 !important;
}

body {
  background: #ffffff;
}

body > .topbar {
  margin-top: 0 !important;
}

.topbar {
  margin-top: 0 !important;
}

.topbar + .shell {
  margin-top: 0 !important;
  padding-top: 8px !important;
}

.shell {
  margin-top: 0;
}


/* ========================================================================== 
   OmniLaunch consolidated v17
   - Remove header action buttons entirely
   - Simplify header to logo + paNavBar only
   - Focus on keeping eyebrow + hero action buttons on one desktop row
   - Preserve copy-card styling and mobile bottom-layout cleanup
   ========================================================================== */

/* ----- Simplified header: logo + paNavBar only ----- */

.topbar { overflow: visible !important; }

.topbar-inner {
  display: grid !important;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  column-gap: 12px;
  row-gap: 8px;
  padding-top: 8px;
  padding-bottom: 8px;
}

.brand-logo {
  width: 40px;
  height: 40px;
  min-width: 40px;
  min-height: 40px;
  border-radius: 12px;
  font-size: .95rem;
  display: grid;
  place-items: center;
  align-self: center;
  justify-self: center;
  cursor: pointer;
}

.topbar-nav-wrap,
.header-nav-shell,
.header-nav-shell .wrapper,
.header-nav-shell .container-fluid,
.header-nav-shell header,
.header-nav-shell nav.navbar,
.header-nav-shell .navbar-collapse,
.header-nav-shell .navbar-nav,
.header-nav-shell .nav-item,
.header-nav-shell main { min-width: 0; }

.topbar-nav-wrap { overflow: visible !important; }

.header-nav-shell .wrapper,
.header-nav-shell .container-fluid,
.header-nav-shell header,
.header-nav-shell nav.navbar {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.header-nav-shell nav.navbar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
}

.header-nav-shell .navbar-collapse { overflow: visible !important; }

@media (max-width: 991.98px) {
  .topbar-inner {
    grid-template-columns: 36px minmax(0, 1fr);
    column-gap: 8px;
  }

  .brand-logo {
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    border-radius: 10px;
  }
}

/* ----- Hero row: keep eyebrow + hero actions on ONE desktop row ----- */

.hero-top-row {
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: center;
  column-gap: 12px;
  row-gap: 10px;
  margin-bottom: 16px;
}

.hero-top-row .eyebrow {
  margin: 0;
  white-space: nowrap !important;
}

.hero-top-row .hero-actions {
  display: grid !important;
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  align-items: center;
  justify-content: end;
  gap: 8px;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
  margin: 0;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
}

.hero-top-row .hero-actions > * {
  flex: 0 0 auto !important;
}

.hero-top-row .hero-actions .ol-btn,
.hero-top-row .hero-actions .ol-btn-ghost {
  width: auto !important;
  min-width: auto !important;
  padding: 7px 10px;
  min-height: 34px;
  font-size: .84rem;
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

.hero-grid > div:first-child > h2 { margin-top: 0; }

@media (max-width: 991.98px) {
  .hero-top-row {
    grid-template-columns: 1fr;
  }

  .hero-top-row .eyebrow {
    white-space: normal !important;
  }

  .hero-top-row .hero-actions {
    display: flex !important;
    justify-content: flex-start;
    flex-wrap: wrap !important;
    white-space: normal !important;
    overflow: visible;
  }
}

@media (max-width: 480px) {
  .hero-top-row .hero-actions .ol-btn,
  .hero-top-row .hero-actions .ol-btn-ghost {
    flex-basis: 100% !important;
    width: 100% !important;
  }
}

/* ----- Copy cards ----- */

.copy-card {
  background: #fff;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

.copy-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.72;
}

.hero-copy-card,
.section-copy-card,
.footer-copy-card { padding: 16px 18px; }

.hero-copy-card { margin-top: 14px; max-width: 72ch; }

.section-copy-card { margin-top: 10px; }

.footer-copy-card { line-height: 1.6; }

.footer-copy-card strong { color: #0f172a; }

/* ----- iPhone-friendly bottom tightening ----- */

@media (max-width: 767.98px) {
  .bottom-content-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px;
    margin-top: 20px;
    margin-bottom: 8px;
    align-items: start;
  }
  .bottom-main,
  .bottom-side {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  .bottom-content-grid .section-head,
  .bottom-content-grid .compact-head,
  .bottom-content-grid .side-head {
    margin: 0 !important;
    align-items: flex-start;
  }
  .bottom-main .grid-3,
  .bottom-main .info-card-grid,
  .support-card-stack {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px;
    margin-top: 0 !important;
  }
  .bottom-content-grid article,
  .bottom-content-grid .cardy,
  .bottom-content-grid .launch-panel,
  .footer .search-panel {
    min-width: 0;
    overflow: hidden;
  }
  .tidy-launch-panel,
  .launch-helper-card,
  .support-card,
  .footer .search-panel,
  .copy-card {
    padding-left: 14px;
    padding-right: 14px;
  }
  .tidy-footer {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px;
    align-items: start;
    margin: 22px 0 16px;
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }
  .footer-search-wrap {
    display: grid !important;
    gap: 12px;
  }
  .footer-actions {
    width: 100%;
    justify-content: flex-start;
  }
}

@media (max-width: 480px) {
  body { padding-bottom: env(safe-area-inset-bottom); }
  .bottom-content-grid { gap: 12px; }
  .bottom-main,
  .bottom-side { gap: 12px; }
  .bottom-content-grid .cardy,
  .bottom-content-grid .launch-panel,
  .footer .search-panel,
  .copy-card { border-radius: 16px; }
  .support-card,
  .launch-helper-card,
  .tidy-launch-panel,
  .footer .search-panel,
  .copy-card { padding: 14px; }
  .bottom-content-grid p,
  .bottom-content-grid li,
  .footer-search-copy { overflow-wrap: anywhere; }
}

/* ================================
   OmniLaunch AI floating assistant
   ================================ */

#olAiAssistantRoot {
  position: static;
  z-index: 2147483000;
}

.ai-tool-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.ai-tool-bar label {
    font-size: 13px;
    font-weight: 600;
}

.ai-tool-bar select {
    flex: 1;
    min-width: 160px;
}

/* Floating action button */

#olAiFab {
  position: fixed !important;
  right: 20px !important;
  bottom: 15px !important;
  left: auto !important;
  top: auto !important;
  width: 58px;
  height: 58px;
  margin: 0;
  padding: 0 !important;
  border: none !important;
  border-radius: 999px;
  backdrop-filter none !important;
  background: transparent !important;
  /* background: #111827; */
  box-shadow: none !important;
  cursor: pointer;
  z-index: 2147483646;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

#olAiFab:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 34px rgba(0,0,0,0.42);
}

#olAiFab img {
  display: block;
  width: 59px;
  height: 59px;
  object-fit: contain;
  pointer-events: none;
}

/* Right-side drawer */

#olAiDrawer {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: auto !important;
  bottom: 0 !important;

  width: min(460px, 92vw);
  height: 100vh;
  max-height: 100vh;
  margin: 0;
  padding: 0;
  border: none;
  background: #0b1220;
  box-shadow: -10px 0 28px rgba(0,0,0,0.42);
  z-index: 2147483645;

  display: flex;
  flex-direction: column;
  overflow: hidden;

  transform: translateX(100%);
  transition: transform 220ms ease;
}

/* Open state */

#olAiDrawer.is-open {
  transform: translateX(0);
}

#olAiDrawerHeader {
  flex: 0 0 52px;
  height: 52px;
  min-height: 52px;
  padding: 0 14px;
  background: #111827;
  color: #ffffff;
  border-bottom: 1px solid rgba(255,255,255,0.08);

  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 600;
}

#olAiDrawerClose {
  appearance: none;
  background: transparent;
  border: none;
  color: #ffffff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  padding: 0 2px;
}

/* Important: allow iframe to actually expand */

#olAiFrame {
  display: block;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  height: calc(100vh - 52px);
  border: 0;
  background: #ffffff;
}

/* Optional mobile adjustment */

@media (max-width: 768px) {
  #olAiFab {
    right: 14px !important;
    bottom: 14px !important;
    width: 54px;
    height: 54px;
  }

  #olAiDrawer {
    width: 100vw;
  }
}


/* ===== Source: paNavBar_fixed.css ===== */

/* (all blocks from this source were exact duplicates of earlier content) */


/* ===== Source: omnilaunch_mobile_bottom_onecolumn_v19.css ===== */

/* OmniLaunch mobile bottom-column patch v19
   Goal: stack everything below .bottom-content-grid into a single column on mobile.
   Safe override file to load AFTER your current main CSS files.
*/

@media (max-width: 767.98px) {
  .bottom-content-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    align-items: start !important;
  }

  .bottom-main,
  .bottom-side {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    min-width: 0 !important;
  }

  .bottom-main .grid-3,
  .bottom-main .info-card-grid,
  .support-card-stack,
  .bottom-side .support-card-stack {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    margin-top: 0 !important;
  }

  .bottom-content-grid article,
  .bottom-content-grid .cardy,
  .bottom-content-grid .info-card,
  .bottom-content-grid .support-card,
  .bottom-content-grid .launch-panel,
  .bottom-content-grid .launch-helper-card,
  .footer .search-panel,
  .tidy-footer,
  .footer-search-wrap,
  .footer-actions {
    min-width: 0 !important;
    width: 100% !important;
  }

  .bottom-content-grid .cardy,
  .bottom-content-grid .info-card,
  .bottom-content-grid .support-card,
  .bottom-content-grid .launch-panel,
  .bottom-content-grid .launch-helper-card,
  .footer .search-panel,
  .copy-card {
    overflow: hidden !important;
  }

  .tidy-footer {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    align-items: start !important;
  }

  .footer-search-wrap {
    display: grid !important;
    gap: 12px !important;
  }

  .footer-actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 10px !important;
  }
}

@media (max-width: 480px) {
  .bottom-content-grid,
  .bottom-main,
  .bottom-side,
  .bottom-main .grid-3,
  .bottom-main .info-card-grid,
  .support-card-stack,
  .tidy-footer {
    gap: 12px !important;
  }

  .bottom-content-grid .cardy,
  .bottom-content-grid .info-card,
  .bottom-content-grid .support-card,
  .bottom-content-grid .launch-panel,
  .bottom-content-grid .launch-helper-card,
  .footer .search-panel,
  .copy-card {
    border-radius: 16px !important;
  }
}


/* ===== Source: index.html <style> ===== */

#olAiAssistantRoot {
  position: fixed !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 0 !important;
  height: 0 !important;
  z-index: 2147483000 !important;
  pointer-events: auto !important;
}

#olAiFab {
  position: fixed !important;
  right: 20px !important;
  bottom: auto !important;
  left: auto !important;
  top: 20px !important;
  width: 58px;
  height: 58px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 999px;
  background: #111827;
  box-shadow: 0 10px 28px rgba(0,0,0,0.35);
  cursor: pointer;
  z-index: 2147483000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  visibility: "visible";
}

@media (max-width: 768px) {
  #olAiFab {
    right: 14px !important;
    top: 14px !important;
    bottom: auto !important;
    width: 54px;
    height: 54px;
  }

  #olAiDrawer {
    width: 100vw;
  }
}

#popupPrefsOverlay .ol-div-2 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

/* Search / Quick Add / Threat Sources row */

.footer-search-wrap .menu-search {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
}

/* Desktop: fixed search width */

.footer-search-wrap .menu-search > #menuFilter {
  flex: 0 0 420px;
  width: 420px;
  max-width: 420px;
  min-width: 420px;
  border-radius: 999px;
  padding: 6px 12px;
  height: 36px;
}

/* Desktop: Quick Add takes remaining space */


/* Quick Add button */


/* Threat source block */

.footer-search-wrap .menu-search > .threat-map-toolbar {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  margin-bottom: 0 !important;
  flex-wrap: nowrap !important;
}

.footer-search-wrap .menu-search > .threat-map-toolbar label {
  margin-bottom: 0 !important;
  white-space: nowrap;
}

.footer-search-wrap .menu-search > .threat-map-toolbar select {
  width: 220px;
  max-width: 220px !important;
  border-radius: 999px;
  height: 36px;
}

/* Tablet and down: let row wrap naturally */

@media (max-width: 991px) {
  .footer-search-wrap .menu-search {
    flex-wrap: wrap;
  }

  .footer-search-wrap .menu-search > #menuFilter {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  

  

  .footer-search-wrap .menu-search > .threat-map-toolbar {
    flex: 0 0 100%;
    width: 100%;
    justify-content: flex-start;
  }

  .footer-search-wrap .menu-search > .threat-map-toolbar select {
    width: 100%;
    max-width: 100% !important;
  }
}

/* Phone: stack everything cleanly */

@media (max-width: 767px) {
  .footer-search-wrap .menu-search {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .footer-search-wrap .menu-search > #menuFilter,
.footer-search-wrap .menu-search > .threat-map-toolbar{
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  

  .footer-search-wrap .menu-search > .threat-map-toolbar {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
  }

  .footer-search-wrap .menu-search > .threat-map-toolbar label {
    white-space: normal;
  }

  .footer-search-wrap .menu-search > .threat-map-toolbar select {
    width: 100%;
    max-width: 100% !important;
  }
}

/* Desktop-only: give the left hero column more room without spanning columns */

@media (min-width: 992px) {
  .hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(240px, 320px);
    gap: 18px;
    align-items: start;
  }

  /* Keep the left content in its own column, but let it fully use that column */
  .hero-grid > :first-child {
    min-width: 0;
  }

  /* Keep hero-stack in the right column */
  .hero-grid > .hero-stack {
    min-width: 0;
  }

  /* Allow normal wrapping so all text stays visible */
  .hero-grid h2,
  .hero-copy-card p {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    word-break: normal;
  }

  .hero-powered-heading {
    margin: 18px 0 10px;
    font-size: clamp(1.25rem, 2vw, 1.8rem);
    line-height: 1.1;
    font-weight: 800;
    color: #ffffff;
    grid-area: auto !important;
  }
}

/* Sticky-header offset fix: keep search block below the fixed topbar */
body {
  padding-top: 66px !important;
}

@media (max-width: 991px) {
  body {
    padding-top: 66px !important;
  }
}

@media (max-width: 767px) {
  body {
    padding-top: 66px !important;
  }
}

/* Give the search band some breathing room before the top tools/cards */
.footer-search-wrap {
  margin-bottom: 40px !important;
}


/* ===== Final hero + bottom section cleanup after consolidation ===== */

/* Hero: keep a two-column layout, but let the left side fully use its column */
@media (min-width: 992px) {
  .hero-grid {
    grid-template-columns: minmax(0, 1fr) 320px !important;
    gap: 22px !important;
    align-items: start !important;
  }

  .hero-grid > :first-child {
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
  }

  .hero-copy-card {
    width: 100% !important;
    max-width: none !important;
    margin-top: 14px !important;
  }

  .hero-copy-card p {
    max-width: none !important;
  }

  .hero-powered-heading {
    margin: 18px 0 10px !important;
    max-width: none !important;
  }
}

/* Bottom section: restore clean two-column balance */
.bottom-content-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.85fr) !important;
  gap: 22px !important;
  align-items: start !important;
  margin-top: 28px !important;
}

.bottom-main,
.bottom-side {
  min-width: 0 !important;
}

.section-copy-card,
.copy-card.section-copy-card {
  max-width: none !important;
  width: 100% !important;
}

.hero-powered-heading {
  display: block;
  margin: 22px 0 12px !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
  color: #ffffff !important;
}

.hero-copy-card {
  max-width: none !important;
  width: 100% !important;
}

.hero-copy-card p {
  max-width: none !important;
}

/* Bottom section mobile single-column fix */
@media (max-width: 768px) {
  .bottom-content-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    align-items: start !important;
  }

  .bottom-main,
  .bottom-side {
    min-width: 0 !important;
    width: 100% !important;
  }

  .bottom-main .grid-3,
  .bottom-main .info-card-grid,
  .support-card-stack,
  .bottom-side .support-card-stack {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    margin-top: 0 !important;
  }

  .bottom-content-grid article,
  .bottom-content-grid .cardy,
  .bottom-content-grid .info-card,
  .bottom-content-grid .support-card,
  .bottom-content-grid .launch-panel,
  .bottom-content-grid .launch-helper-card {
    min-width: 0 !important;
    width: 100% !important;
  }

  .bottom-content-grid .info-card p,
  .bottom-content-grid .support-card p,
  .bottom-content-grid .launch-helper-card p,
  .bottom-content-grid .launch-helper-card li {
    overflow-wrap: anywhere;
    word-break: normal;
  }
}

/* Mobile hero heading separation fix */
@media (max-width: 768px) {

  .hero-nowrap-title {
    display: block !important;
    margin: 0 0 18px !important;
    position: static !important;
  }

  .hero-powered-heading {
    display: block !important;
    position: static !important;
    margin: 22px 0 14px !important;
    clear: both !important;
  }

  .hero-copy-card {
    margin-top: 0 !important;
  }
}


@media (max-width: 768px) {
  .hero-grid > div:first-child {
    display: block !important;
  }

  .hero-grid > div:first-child > * {
    grid-area: auto !important;
  }

  .hero-powered-heading {
    margin-top: 22px !important;
    margin-bottom: 12px !important;
  }
}

.hero-grid > div:first-child {
  display: block !important;
}

.hero-grid > div:first-child > * {
  grid-area: auto !important;
}

.hero-copy-card {
  margin-bottom: 16px !important;
}

/* ========================================================================== 
   OmniLaunch v6 overlap / flow stabilization patch
   Scope: search row, Local Network Devices / Threat Map, hero, bottom grid, footer
   Goal: stop section overlap caused by mixed fixed heights / sticky side / display:contents
   ========================================================================== */

/* Search row should stay in normal document flow */
.footer-search-wrap {
  display: block !important;
  clear: both !important;
  width: 100% !important;
  margin: 0 0 22px !important;
  position: relative !important;
  z-index: 1 !important;
}
.footer-search-wrap > .search-panel {
  width: 100% !important;
  margin: 0 !important;
  position: relative !important;
  z-index: 1 !important;
}

/* Keep all major sections in normal stacking / flow */
.hero-section-grid,
.bottom-content-grid,
.tidy-footer{
  clear: both !important;
  position: relative !important;
  z-index: 0 !important;
}

/* Top tool cards: no viewport-locked height that can collide with later sections */


/* Spacing between the large sections below the top tools */
.hero-section-grid {
  margin: 0 0 24px !important;
}
.bottom-content-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.88fr) !important;
  gap: 22px !important;
  align-items: start !important;
  margin: 0 0 24px !important;
}
.bottom-main,
.bottom-side {
  min-width: 0 !important;
}

/* Prevent sticky sidebar from sliding over the main content */
.bottom-side {
  position: static !important;
  top: auto !important;
}

/* Make cards participate in normal flow and contain children cleanly */
.hero,
.bottom-content-grid .cardy,
.bottom-content-grid .launch-panel,
.tidy-footer,
.footer-search-wrap .search-panel {
  overflow: hidden !important;
}
.bottom-content-grid .info-card,
.bottom-content-grid .support-card,
.bottom-content-grid .launch-helper-card {
  height: auto !important;
}
.bottom-content-grid .info-card p,
.bottom-content-grid .support-card p,
.bottom-content-grid .launch-helper-card p,
.bottom-content-grid .launch-helper-card li {
  overflow-wrap: anywhere !important;
}

/* Footer should not use grid rules intended for a different layout revision */
.tidy-footer {
  display: block !important;
  margin: 0 0 24px !important;
}

/* Tablet / laptop stack points */
@media (max-width: 1199.98px) {
  .bottom-content-grid{
    grid-template-columns: 1fr !important;
  }
  
}

/* Mobile: single-column flow with explicit iframe height to avoid collapse/overlap */
@media (max-width: 767.98px) {
  .footer-search-wrap {
    margin-bottom: 16px !important;
  }
  .hero-section-grid,
.bottom-content-grid{
    gap: 14px !important;
  }
  .bottom-content-grid,
.bottom-main .grid-3,
.bottom-main .info-card-grid,
.support-card-stack,
.bottom-side .support-card-stack{
    grid-template-columns: 1fr !important;
  }
  
  .hero-section-grid,
  .bottom-content-grid,
  .tidy-footer {
    margin-bottom: 16px !important;
  }
}

/* ========================================================================== 
   OmniLaunch v6.1 custom live site modal styles
   ========================================================================== */
.custom-live-site-help {
  padding: 14px 16px;
  border: 1px solid rgba(37,99,235,.12);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(37,99,235,.05), rgba(124,58,237,.03));
  color: var(--text);
}
.custom-live-site-help strong {
  display: block;
  margin-bottom: 8px;
}
.custom-live-site-help ul {
  margin: 0;
  padding-left: 18px;
}
.custom-live-site-help li {
  color: var(--muted);
  line-height: 1.65;
  margin-bottom: 6px;
}
.custom-live-site-help li:last-child {
  margin-bottom: 0;
}
.custom-live-site-help code {
  font-size: .92em;
  background: rgba(15,23,42,.06);
  border-radius: 8px;
  padding: 2px 6px;
}


/* ========================================================================== 
   OmniLaunch v6.2 desktop hover-stability patch for paNavBar
   Goal: keep desktop menus open while moving between button and dropdown,
   and give submenu flyouts the same forgiveness zone.
   ========================================================================== */
@media (min-width: 768px) {
  /* Keep the top-level hover zone alive while pointer moves downward */
  .navbar1 .dropdown1 {
    padding-bottom: 12px;
    margin-bottom: -12px;
  }

  /* Remove the hover gap between button and dropdown panel */
  .navbar1 .dropdown-content {
    top: 100% !important;
    margin-top: 0 !important;
  }

  /* Invisible bridge from drop button down into the dropdown panel */
  .navbar1 .dropdown1::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 14px;
    background: transparent;
    z-index: 99998;
  }

  /* Keep flyout group menus open while crossing into the next panel */
  .navbar1 .menu-group {
    position: relative;
  }

  .navbar1 .menu-group::after {
    content: "";
    position: absolute;
    top: 0;
    left: 100%;
    width: 14px;
    height: 100%;
    background: transparent;
    z-index: 99999;
  }

  /* Remove horizontal gap on flyout panels */
  .navbar1 .menu-group-items {
    left: 100% !important;
    margin-left: 0 !important;
  }

  /* Keep panels pinned above neighboring content */
  .navbar1,
  .navbar1-panel,
  .dropdown1,
  .dropdown-content,
  .menu-group,
  .menu-group-items {
    overflow: visible !important;
  }
}


/* ==========================================================================
   OmniLaunch tabbed top tools: Local Devices / Search Results / Live Sites
   ========================================================================== */


.omni-tab-panel {
  display: none;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
}

.omni-tab-panel.is-active {
  display: flex;
  flex-direction: column;
}


/* Make tabbed cards retain the same height behavior as the current two-card layout */


/* Search box beside Quick Add */
.footer-search-wrap .menu-search > .gridnet-search-form {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 1 390px;
  min-width: 260px;
  margin: 0;
}

.footer-search-wrap .menu-search > .gridnet-search-form .gridnet-search-input {
  flex: 1 1 auto;
  min-width: 160px;
  border-radius: 999px;
  padding: 6px 12px;
  height: 36px;
}

.footer-search-wrap .menu-search > .gridnet-search-form .gridnet-search-btn {
  flex: 0 0 auto;
  white-space: nowrap;
  height: 36px;
  padding: 6px 14px;
  border-radius: 999px;
}

/* Tablet */
@media (max-width: 991px) {
  .footer-search-wrap .menu-search > .gridnet-search-form {
    flex: 1 1 calc(100% - 140px);
    min-width: 0;
  }
}

/* Phone */
@media (max-width: 767px) {
  

  

  .footer-search-wrap .menu-search > .gridnet-search-form {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex-direction: column;
    align-items: stretch;
  }

  .footer-search-wrap .menu-search > .gridnet-search-form .gridnet-search-input,
  .footer-search-wrap .menu-search > .gridnet-search-form .gridnet-search-btn {
    width: 100%;
  }
}

/* Smaller OmniLaunch top-card tabs */


/* ==========================================================================
   Search row sizing: Quick Add slightly larger than GRIDNET Search
   ========================================================================== */

.footer-search-wrap .menu-search {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: nowrap !important;
}

/* Header navbar search stays compact/fixed */
.footer-search-wrap .menu-search > #menuFilter {
  flex: 0 0 420px !important;
  width: 420px !important;
  max-width: 420px !important;
  min-width: 320px !important;
}

/* Quick Add input: largest flexible input */


/* Quick Add button */


/* GRIDNET Search form: almost as large as Quick Add, but slightly smaller */
.footer-search-wrap .menu-search > .gridnet-search-form {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex: 1 1 320px !important;
  min-width: 260px !important;
  max-width: none !important;
  margin: 0 !important;
}

/* GRIDNET Search input fills its form */
.footer-search-wrap .menu-search > .gridnet-search-form .gridnet-search-input {
  flex: 1 1 auto !important;
  min-width: 220px !important;
  height: 36px !important;
  border-radius: 999px !important;
  padding: 6px 12px !important;
}

/* Search button */
.footer-search-wrap .menu-search > .gridnet-search-form .gridnet-search-btn {
  flex: 0 0 auto !important;
  height: 36px !important;
  padding: 6px 16px !important;
  border-radius: 999px !important;
  white-space: nowrap !important;
}

/* Live Sites selector stays compact */
.footer-search-wrap .menu-search > .threat-map-toolbar {
  flex: 0 0 auto !important;
  margin-bottom: 0 !important;
  flex-wrap: nowrap !important;
}

.footer-search-wrap .menu-search > .threat-map-toolbar select {
  width: 220px !important;
  max-width: 220px !important;
}

/* Tablet and below: wrap cleanly */
@media (max-width: 1199px) {
  .footer-search-wrap .menu-search {
    flex-wrap: wrap !important;
  }

  .footer-search-wrap .menu-search > #menuFilter {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  

  .footer-search-wrap .menu-search > .gridnet-search-form {
    flex: 1 1 320px !important;
    min-width: 240px !important;
  }

  .footer-search-wrap .menu-search > .threat-map-toolbar {
    flex: 0 0 auto !important;
  }
}

/* Phone: stack everything */
@media (max-width: 767px) {
  .footer-search-wrap .menu-search {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .footer-search-wrap .menu-search > #menuFilter,
.footer-search-wrap .menu-search > .gridnet-search-form,
.footer-search-wrap .menu-search > .threat-map-toolbar{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
  }

  .footer-search-wrap .menu-search > .gridnet-search-form {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .footer-search-wrap .menu-search > .gridnet-search-form .gridnet-search-input,
  .footer-search-wrap .menu-search > .gridnet-search-form .gridnet-search-btn,
  .footer-search-wrap .menu-search > .threat-map-toolbar select {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ==========================================================================
   GRIDNET native SearXNG search results
   ========================================================================== */

.gridnet-search-results-wrap {
  overflow: auto !important;
  background: #f8fafc !important;
}

.gridnet-search-results {
  padding: 14px;
  overflow: auto;
  width: 100%;
  height: 100%;
}

.gridnet-search-summary {
  font-size: 0.92rem;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 12px;
}

.gridnet-search-empty,
.gridnet-search-error {
  padding: 16px;
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.10);
  color: #475569;
  font-weight: 700;
}

.gridnet-search-error {
  color: #b91c1c;
  border-color: rgba(185, 28, 28, 0.25);
  background: #fff7f7;
}

.gridnet-search-result {
  padding: 13px 14px;
  margin-bottom: 10px;
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.10);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
}

.gridnet-search-title {
  display: block;
  font-weight: 800;
  color: #1d4ed8;
  text-decoration: none;
  line-height: 1.35;
}

.gridnet-search-title:hover {
  text-decoration: underline;
}

.gridnet-search-url {
  margin-top: 5px;
  font-size: 0.78rem;
  color: #15803d;
  overflow-wrap: anywhere;
}

.gridnet-search-content {
  margin-top: 7px;
  color: #475569;
  font-size: 0.9rem;
  line-height: 1.5;
}

/* ==========================================================================
   OmniLaunch tab click/visibility hardening
   ========================================================================== */


.omni-tab-panel {
  display: none !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  position: relative !important;
  z-index: 1 !important;
}

.omni-tab-panel.is-active {
  display: flex !important;
  flex-direction: column !important;
}

.omni-tab-panel[hidden] {
  display: none !important;
}


/* Native search results should fill the tab panel */
.gridnet-search-results-wrap {
  overflow: auto !important;
  background: #f8fafc !important;
}

.gridnet-search-results {
  width: 100% !important;
  height: 100% !important;
  padding: 14px !important;
  overflow: auto !important;
}


/* ==========================================================================
   GRIDNET Search Results real-height fix
   ========================================================================== */

/* Make the tabbed card consume the same space as the old iframe card */


/* The active panel must have a real flex area */
.omni-tab-panel.is-active {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
}

/* Force the local search panel to use the card body */
#localSearchPanel.omni-tab-panel.is-active {
  flex: 1 1 auto !important;
  min-height: 360px !important;
  height: auto !important;
}

/* The results wrapper replaces the iframe, so give it iframe-like dimensions */
#localSearchPanel .gridnet-search-results-wrap {
  display: block !important;
  flex: 1 1 auto !important;
  min-height: 360px !important;
  height: 100% !important;
  overflow: auto !important;
  background: #f8fafc !important;
  margin-top: 0 !important;
}

/* The actual results list should size by content, not 100% of an auto parent */
#gridnetSearchResults {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 360px !important;
  max-height: none !important;
  padding: 14px !important;
  overflow: visible !important;
  color: #0f172a !important;
  background: #f8fafc !important;
}

/* Make individual result cards unquestionably visible */
#gridnetSearchResults .gridnet-search-summary {
  display: block !important;
  margin-bottom: 12px !important;
  font-size: 0.92rem !important;
  font-weight: 800 !important;
  color: #0f172a !important;
}

#gridnetSearchResults .gridnet-search-result {
  display: block !important;
  padding: 13px 14px !important;
  margin-bottom: 10px !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  border: 1px solid rgba(15, 23, 42, 0.10) !important;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05) !important;
}

#gridnetSearchResults .gridnet-search-title {
  display: block !important;
  color: #1d4ed8 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  line-height: 1.35 !important;
}

#gridnetSearchResults .gridnet-search-url {
  display: block !important;
  margin-top: 5px !important;
  font-size: 0.78rem !important;
  color: #15803d !important;
  overflow-wrap: anywhere !important;
}

#gridnetSearchResults .gridnet-search-content {
  display: block !important;
  margin-top: 7px !important;
  color: #475569 !important;
  font-size: 0.9rem !important;
  line-height: 1.5 !important;
}

/* Swap Navbar Search and GRIDNET Search sizes */

.footer-search-wrap .menu-search > #menuFilter {
  flex: 1 1 2500px !important;
  min-width: 260px !important;
  max-width: none !important;
}

.footer-search-wrap .menu-search > .gridnet-search-form {
  flex: 1.25 1 5000px !important;
  min-width: 320px !important;
  max-width: none !important;
}

.footer-search-wrap .menu-search > .gridnet-search-form .gridnet-search-input {
  min-width: 300px !important;
}

/* ==========================================================================
   GRIDNET Search mode selector + image results
   ========================================================================== */

.gridnet-search-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 12px !important;
  flex-wrap: wrap !important;
}

.gridnet-search-summary {
  font-size: 0.92rem !important;
  font-weight: 800 !important;
  color: #0f172a !important;
}

.gridnet-search-mode-wrap {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  color: #334155 !important;
  margin: 0 !important;
}

.gridnet-search-mode-select {
  height: 30px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(15, 23, 42, 0.14) !important;
  background: #ffffff !important;
  color: #0f172a !important;
  padding: 3px 28px 3px 10px !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
}


/* ==========================================================================
   GRIDNET image search polish: compact cards, readable links, mobile support
   ========================================================================== */

/* Desktop / normal: small, clean image grid */
.gridnet-image-results {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(115px, 1fr)) !important;
  gap: 10px !important;
  align-items: start !important;
}

/* Keep each image result compact */
.gridnet-image-card {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  overflow: hidden !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  border: 1px solid rgba(15, 23, 42, 0.10) !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06) !important;
}

/* Thumbnail sizing */
.gridnet-image-thumb {
  display: block !important;
  width: 100% !important;
  height: 88px !important;
  max-height: 88px !important;
  object-fit: cover !important;
  background: #e5e7eb !important;
}

/* Placeholder matches thumbnail size */
.gridnet-image-placeholder {
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 88px !important;
  max-height: 88px !important;
  background: #e5e7eb !important;
  color: #64748b !important;
  font-size: 0.7rem !important;
  font-weight: 800 !important;
}

/* Better title/link formatting */
.gridnet-image-title {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;

  min-height: 31px !important;
  max-height: 34px !important;
  overflow: hidden !important;

  padding: 7px 8px 2px !important;
  color: #1d4ed8 !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
  text-decoration: none !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

.gridnet-image-title:hover {
  text-decoration: underline !important;
}

/* Optional URL/source line: very compact */
.gridnet-image-url {
  display: block !important;
  padding: 0 8px 8px !important;
  color: #15803d !important;
  font-size: 0.62rem !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* If you prefer maximum compactness, uncomment this instead:
.gridnet-image-url {
  display: none !important;
}
*/

/* Prevent the search results pane from clipping cards */
#gridnetSearchResults {
  overflow: auto !important;
  padding: 12px !important;
}

/* Tablet: slightly smaller cards */
@media (max-width: 991px) {
  .gridnet-image-results {
    grid-template-columns: repeat(auto-fill, minmax(105px, 1fr)) !important;
    gap: 9px !important;
  }

  .gridnet-image-thumb,
  .gridnet-image-placeholder {
    height: 82px !important;
    max-height: 82px !important;
  }

  .gridnet-image-title {
    font-size: 0.7rem !important;
    min-height: 30px !important;
  }
}

/* Phone: two-column friendly, touch-readable */
@media (max-width: 767px) {
  .gridnet-image-results {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
  }

  .gridnet-image-thumb,
  .gridnet-image-placeholder {
    height: 96px !important;
    max-height: 96px !important;
  }

  .gridnet-image-title {
    padding: 7px 8px 3px !important;
    font-size: 0.76rem !important;
    line-height: 1.2 !important;
    min-height: 36px !important;
    max-height: 39px !important;
  }

  .gridnet-image-url {
    font-size: 0.64rem !important;
    padding-bottom: 8px !important;
  }
}

/* Very narrow phones */
@media (max-width: 420px) {
  .gridnet-image-results {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .gridnet-image-thumb,
  .gridnet-image-placeholder {
    height: 82px !important;
    max-height: 82px !important;
  }

  .gridnet-image-title {
    font-size: 0.7rem !important;
    min-height: 32px !important;
    max-height: 35px !important;
  }

  .gridnet-image-url {
    display: none !important;
  }

}

/* ==========================================================================
   Compact Mobile Search Row
   ========================================================================== */

@media (max-width: 767px) {

  .footer-search-wrap .menu-search {
    gap: 6px !important;
  }

  /* Navbar search */
  #menuFilter {
    min-height: 34px !important;
    height: 34px !important;
    padding: 4px 10px !important;
    font-size: 0.85rem !important;
  }

  /* Quick Add */
  

  /* Search input */
  .gridnet-search-input {
    min-height: 34px !important;
    height: 34px !important;
    padding: 4px 10px !important;
    font-size: 0.85rem !important;
  }

  /* Buttons */
  .gridnet-search-btn{
    min-height: 34px !important;
    height: 34px !important;
    padding: 4px 12px !important;
    font-size: 0.85rem !important;
    line-height: 1 !important;
  }

  /* Live Sites selector */
  #threatMapSelector {
    min-height: 34px !important;
    height: 34px !important;
    padding: 2px 8px !important;
    font-size: 0.85rem !important;
  }
}


/* ==========================================================================
   FINAL MOBILE SEARCH BAR FIX
   ========================================================================== */


  /* Prevent flexbox stretching inputs to crazy heights */
  .footer-search-wrap .menu-search input,
.footer-search-wrap .menu-search button,
.footer-search-wrap .menu-search select,
.gridnet-search-input,
#menuFilter{
    flex-grow: 0 !important;
    flex-shrink: 1 !important;
    align-self: center !important;

    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
  }

  /* Search form stays horizontal */
  .gridnet-search-form {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 4px !important;
  }

  /* Restore normal textbox sizing */
  #menuFilter {
    flex: 1 1 100% !important;
  }

  

  .gridnet-search-input {
    flex: 1 1 auto !important;
  }

  /* Kill any inherited giant heights */
  .footer-search-wrap .menu-search *,
  .gridnet-search-form * {
    max-height: none;
  }
}

.gridnet-load-more-btn {
  display: block !important;
  width: 100% !important;

  margin-top: 12px !important;
  padding: 10px !important;

  border-radius: 12px !important;

  font-weight: 700 !important;
}

.ol-live-sites-hidden {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* =====================================================
   OmniLaunch Header Search Cleanup
   Hide legacy controls but keep them available to JS
===================================================== */

/* Keep old navbar filter present for compatibility, but remove from layout */
#menuFilter.menu-filter-legacy,
#menuFilter[hidden] {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Keep Live Sites selector in DOM, but remove from layout completely */
.threat-map-toolbar,
.threat-map-toolbar.ol-live-sites-hidden {
  position: absolute !important;
  left: -99999px !important;
  top: auto !important;

  display: block !important;

  width: 1px !important;
  height: 1px !important;
  min-width: 1px !important;
  min-height: 1px !important;
  max-width: 1px !important;
  max-height: 1px !important;

  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;

  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Force the search container to stop reserving columns for hidden controls */
.menu-search {
  display: block !important;
  width: 100% !important;
}

/* Make the real search form take the full header width */
#gridnetSearchForm.gridnet-search-form {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  flex: 1 1 auto !important;
  align-items: center !important;
  gap: 8px !important;
}

/* Search type dropdown */
#gridnetSearchModeSelect {
  flex: 0 0 150px !important;
  max-width: 150px !important;
}

/* Search input should consume all remaining space */
#gridnetSearchInput {
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}

/* Search button stays compact */
#gridnetSearchBtn {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

/* Mobile stack */
@media (max-width: 640px) {
  #gridnetSearchForm.gridnet-search-form {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  #gridnetSearchModeSelect,
  #gridnetSearchInput,
  #gridnetSearchBtn {
    width: 100% !important;
    max-width: none !important;
    flex: 0 0 auto !important;
  }
}

#navbar1Menu [data-item-id="default_reset_omnilaunch"] {
  color: #dc2626 !important;
  font-weight: 700 !important;
}

#navbar1Menu [data-item-id="default_reset_omnilaunch"]:hover {
  background: rgba(220, 38, 38, 0.12) !important;
}


#gridnetSearchResults a::after,
#gridnetSearchResults a.gridnet-search-title::after,
#gridnetSearchResults a.gridnet-image-title::after,
#gridnetSearchResults a:not(.gridnet-search-title):not(.gridnet-image-title)::after {
  content: none !important;
  display: none !important;
}

#gridnetSearchResults a[href]:hover {
  text-decoration: underline;
}


/* =====================================================
   GRIDNET Search Results - Unified Thumbnail Layout
   Makes News/Social/etc. use same inline thumbnail style
===================================================== */

/* Force all result cards with thumbnails to use the same layout */
#gridnetSearchResults .gridnet-search-result.gridnet-result-has-thumb,
#gridnetSearchResults .gridnet-compact-result.gridnet-result-has-thumb,
#gridnetSearchResults .gridnet-file-result.gridnet-result-has-thumb {
  display: grid !important;
  grid-template-columns: 66px minmax(0, 1fr) !important;
  align-items: start !important;
  column-gap: 12px !important;
  row-gap: 0 !important;
}

/* Force thumbnail to stay in left column */
#gridnetSearchResults .gridnet-result-thumb-wrap {
  grid-column: 1 !important;
  grid-row: 1 !important;

  width: 58px !important;
  height: 58px !important;
  min-width: 58px !important;
  max-width: 58px !important;

  border-radius: 8px !important;
  overflow: hidden !important;
  display: block !important;
  align-self: start !important;
}

/* Force actual image size */
#gridnetSearchResults .gridnet-result-thumb {
  width: 58px !important;
  height: 58px !important;
  max-width: 58px !important;
  max-height: 58px !important;

  object-fit: cover !important;
  display: block !important;
}

/* Force title/content body to stay to the right of thumbnail */
#gridnetSearchResults .gridnet-result-body {
  grid-column: 2 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
}

/* Make title align cleanly with top of thumbnail */
#gridnetSearchResults .gridnet-search-title {
  margin-top: 0 !important;
  line-height: 1.25 !important;
}

/* Keep result text compact and aligned */
#gridnetSearchResults .gridnet-search-url {
  margin-top: 4px !important;
}

#gridnetSearchResults .gridnet-search-content {
  margin-top: 7px !important;
}

/* Keep metadata chips under the text, not under the image */
#gridnetSearchResults .gridnet-result-meta {
  grid-column: 2 !important;
  margin-top: 8px !important;
}

/* =====================================================
   Fix popup-link arrow showing under thumbnails
===================================================== */

/* Remove arrow from thumbnail/image links */
#gridnetSearchResults .gridnet-result-thumb-wrap::after,
#gridnetSearchResults .gridnet-result-thumb-wrap a::after,
#gridnetSearchResults a.gridnet-result-thumb-wrap::after,
#gridnetSearchResults .gridnet-image-card > a:first-child::after {
  content: none !important;
  display: none !important;
}

/* Only show popup arrow on actual text/title links */
#gridnetSearchResults a.gridnet-search-title::after,
#gridnetSearchResults a::after,
#gridnetSearchResults a.gridnet-search-title::after,
#gridnetSearchResults a.gridnet-image-title::after,
#gridnetSearchResults a:not(.gridnet-search-title):not(.gridnet-image-title)::after {
  content: none !important;
  display: none !important;
}

/* Do not globally append arrows to every search result link */
#gridnetSearchResults a:not(.gridnet-search-title):not(.gridnet-image-title)::after {
  content: none !important;
}

/* =========================================================
   OmniLaunch Settings Modal - Accordion Version
   ========================================================= */


.ol-settings-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--border-color, rgba(255,255,255,.12));
}

.ol-settings-header h2 {
  margin: 0;
  font-size: 1.25rem;
  line-height: 1.2;
}

.ol-settings-header p {
  margin: 6px 0 0;
  font-size: 0.9rem;
  color: var(--muted-text, #9ca3af);
}


/* =========================================================
   Accordion Sections
   ========================================================= */


.ol-accordion-toggle {
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 15px;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font-size: 0.98rem;
  font-weight: 700;
  text-align: left;
}

.ol-accordion-toggle:hover {
  background: rgba(255,255,255,.06);
}

.ol-accordion-chevron {
  transition: transform .18s ease;
}


/* =========================================================
   Toolbar
   ========================================================= */

.ol-settings-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 6px 0 14px;
}

.ol-muted {
  color: var(--muted-text, #9ca3af);
  font-size: .85rem;
}

.ol-menu-settings-editor {
  display: grid;
  gap: 14px;
}

/* =========================================================
   Groups
   ========================================================= */

.ol-settings-group {
  border: 1px solid var(--border-color, rgba(255,255,255,.10));
  border-radius: 14px;
  padding: 12px;
  background: rgba(0,0,0,.16);
}

.ol-settings-group-title {
  margin: 0 0 10px;
  font-size: .95rem;
  font-weight: 800;
  color: var(--text-color, #f9fafb);
}

/* =========================================================
   Settings Items
   ========================================================= */


/* =========================================================
   Buttons
   ========================================================= */

.ol-settings-actions {
  display: flex;
  gap: 8px;
}

.ol-btn,
.ol-icon-btn,
.ol-small-btn {
  border: 1px solid var(--border-color, rgba(255,255,255,.15));
  border-radius: 10px;
  cursor: pointer;
  color: inherit;
}

.ol-btn {
  min-height: 42px;
  padding: 9px 14px;
  font-weight: 800;
}

.ol-small-btn {
  min-height: 38px;
  padding: 7px 10px;
  font-size: .85rem;
  background: rgba(255,255,255,.07);
}

.ol-icon-btn {
  width: 40px;
  height: 40px;
  background: rgba(255,255,255,.07);
  font-size: 1rem;
}

.ol-btn.primary {
  background: #2563eb;
  border-color: #2563eb;
  color: #fff;
}

.ol-btn.secondary {
  background: rgba(255,255,255,.07);
}

.ol-btn:hover,
.ol-icon-btn:hover,
.ol-small-btn:hover {
  filter: brightness(1.12);
}

/* =========================================================
   Mobile Settings Modal
   ========================================================= */

@media (max-width: 768px) {

  

  

  .ol-settings-header {
    padding: 14px;
  }

  .ol-settings-header h2 {
    font-size: 1.08rem;
  }

  .ol-settings-header p {
    font-size: .82rem;
  }

  

  

  

  .ol-accordion-toggle {
    min-height: 52px;
    font-size: 1rem;
  }

  

  

  .ol-small-btn,
  .ol-btn,
  .ol-icon-btn {
    min-height: 44px;
    font-size: 16px;
  }

  .ol-settings-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}

/* =========================================================
   OmniLaunch Mobile NavBar Accordion Hard Override v2
   Place at VERY BOTTOM of stylesheet
   ========================================================= */

/*
  Use both width-based and touch-device matching.
  This helps catch iPhone/Safari cases where max-width rules
  are not behaving as expected.
*/
@media (max-width: 820px), (hover: none) and (pointer: coarse) {

  html,
  body {
    overflow-x: hidden !important;
  }

  /*
    The fixed topbar must be scrollable on mobile or long menus
    will run below the viewport and become unreachable.
  */
  .topbar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .topbar-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  .brand-logo,
  .brand-logo.brand-logo-image-wrap {
    display: none !important;
  }

  .topbar-nav-wrap,
  .header-nav-shell {
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  .header-nav-shell {
    padding: 8px !important;
    border-radius: 14px !important;
  }

  /*
    Show hamburger on mobile.
  */
  .hamburger-btn {
    display: inline-flex !important;
    width: 100% !important;
    min-height: 44px !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 12px !important;
  }

  /*
    Hide navbar panel until hamburger/JS adds .open.
  */
  .navbar1-panel {
    display: none !important;
    width: 100% !important;
    max-height: calc(100dvh - 64px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    margin-top: 8px !important;
    padding: 0 0 calc(18px + env(safe-area-inset-bottom)) !important;
  }

  .navbar1-panel.open {
    display: block !important;
  }

  /*
    Force actual OmniLaunch navbar into stacked mobile layout.
  */
  .navbar1,
  #navbar1Menu {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 8px !important;
    overflow: visible !important;
  }

  .navbar1 .dropdown1,
  #navbar1Menu .dropdown1 {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    position: relative !important;
    border: 1px solid rgba(15, 23, 42, 0.10) !important;
    border-radius: 14px !important;
    background: #ffffff !important;
    overflow: hidden !important;
    box-shadow: 0 1px 2px rgba(0,0,0,.04) !important;
  }

  .navbar1 .dropbtn,
  #navbar1Menu .dropbtn {
    width: 100% !important;
    min-height: 48px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 14px 16px !important;
    background: #ffffff !important;
    color: #0f172a !important;
    text-align: left !important;
  }

  /*
    Important:
    On touch/mobile, do NOT allow hover/focus to open everything.
    Only .open or .mobile-open should reveal dropdown content.
  */
  .navbar1 .dropdown1:hover > .dropdown-content,
  .navbar1 .dropdown1:focus-within > .dropdown-content,
  #navbar1Menu .dropdown1:hover > .dropdown-content,
  #navbar1Menu .dropdown1:focus-within > .dropdown-content {
    display: none !important;
  }

  .navbar1 .dropdown1.open > .dropdown-content,
  .navbar1 .dropdown1.mobile-open > .dropdown-content,
  #navbar1Menu .dropdown1.open > .dropdown-content,
  #navbar1Menu .dropdown1.mobile-open > .dropdown-content {
    display: block !important;
  }

  .navbar1 .dropdown-content,
  #navbar1Menu .dropdown-content {
    position: static !important;
    display: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    box-shadow: none !important;
    border: 0 !important;
    border-top: 1px solid rgba(15,23,42,.08) !important;
    border-radius: 0 !important;
    background: #f8fafc !important;
    margin: 0 !important;
    padding: 8px !important;
    z-index: auto !important;
  }

  /*
    Group buttons become accordion rows.
  */
  .navbar1 .menu-group,
  #navbar1Menu .menu-group {
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 8px !important;
    overflow: hidden !important;
    border-radius: 12px !important;
  }

  .navbar1 .menu-group-btn,
  #navbar1Menu .menu-group-btn {
    width: 100% !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-radius: 10px !important;
    background: #eef2f7 !important;
  }

  /*
    Disable desktop hover flyouts on mobile.
  */
  .navbar1 .menu-group:hover > .menu-group-items,
  .navbar1 .menu-group:focus-within > .menu-group-items,
  #navbar1Menu .menu-group:hover > .menu-group-items,
  #navbar1Menu .menu-group:focus-within > .menu-group-items {
    display: none !important;
  }

  .navbar1 .menu-group.open > .menu-group-items,
  #navbar1Menu .menu-group.open > .menu-group-items {
    display: block !important;
  }

  .navbar1 .menu-group-items,
  #navbar1Menu .menu-group-items {
    position: static !important;
    display: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    box-shadow: none !important;
    border: 0 !important;
    background: transparent !important;
    margin: 0 !important;
    padding: 8px 0 0 12px !important;
    z-index: auto !important;
  }

  .navbar1 .button,
  .navbar1 button.button,
  .dropdown-content .button,
  .dropdown-content button.button,
  #navbar1Menu .button,
  #navbar1Menu button.button {
    display: block !important;
    width: 100% !important;
    min-height: 44px !important;
    margin: 0 0 8px !important;
    padding: 12px 14px !important;
    white-space: normal !important;
    text-align: left !important;
    border-radius: 10px !important;
  }

  .menu-entry-spacer {
    display: none !important;
  }
}

/* =========================================================
   OmniLaunch Dark Mode Theme
   Triggered by: body.ol-dark-mode
   ========================================================= */

body.ol-dark-mode {
  --text: #e5e7eb;
  --muted: #9ca3af;
  --line: rgba(255,255,255,.12);
  --brand: #60a5fa;
  --brand2: #a78bfa;
  --shadow: 0 18px 45px rgba(0,0,0,.38);

  background: linear-gradient(180deg, #020617 0%, #0f172a 100%) !important;
  color: var(--text) !important;
}

/* Top/header areas */
body.ol-dark-mode .topbar {
  background: rgba(15, 23, 42, .96) !important;
  border-bottom-color: rgba(255,255,255,.10) !important;
  box-shadow: 0 4px 20px rgba(0,0,0,.35) !important;
}

body.ol-dark-mode .header-nav-shell {
  background: linear-gradient(180deg, #111827, #020617) !important;
  border-color: rgba(255,255,255,.12) !important;
}

/* Main cards/panels */
body.ol-dark-mode .cardy,
body.ol-dark-mode .glance,
body.ol-dark-mode .launch-panel,
body.ol-dark-mode .copy-card,
body.ol-dark-mode .support-card,
body.ol-dark-mode .info-card,
body.ol-dark-mode .search-panel,
body.ol-dark-mode .prefs-panel,
body.ol-dark-mode .omni-modal-card {
  background: #111827 !important;
  color: #e5e7eb !important;
  border-color: rgba(255,255,255,.12) !important;
  box-shadow: 0 18px 45px rgba(0,0,0,.38) !important;
}

/* Card text */
body.ol-dark-mode .cardy p,
body.ol-dark-mode .cardy li,
body.ol-dark-mode .glance p,
body.ol-dark-mode .glance li,
body.ol-dark-mode .copy-card p,
body.ol-dark-mode .section-head p,
body.ol-dark-mode .footer-search-copy,
body.ol-dark-mode .support-card p,
body.ol-dark-mode .launch-helper-card p,
body.ol-dark-mode .launch-helper-card li {
  color: #9ca3af !important;
}

body.ol-dark-mode .section-head h3,
body.ol-dark-mode .cardy h4,
body.ol-dark-mode .glance h3,
body.ol-dark-mode .footer-copy-card strong {
  color: #f9fafb !important;
}

/* NavBar buttons/dropdowns */
body.ol-dark-mode .dropbtn,
body.ol-dark-mode .menu-group-btn,
body.ol-dark-mode .navbar1 .button,
body.ol-dark-mode .navbar1 button.button,
body.ol-dark-mode .dropdown-content .button,
body.ol-dark-mode .dropdown-content button.button {
  background: #111827 !important;
  color: #f9fafb !important;
  border-color: rgba(255,255,255,.12) !important;
}

body.ol-dark-mode .dropbtn:hover,
body.ol-dark-mode .dropbtn:focus,
body.ol-dark-mode .menu-group-btn:hover,
body.ol-dark-mode .menu-group-btn:focus,
body.ol-dark-mode .navbar1 .button:hover,
body.ol-dark-mode .navbar1 .button:focus,
body.ol-dark-mode .dropdown-content .button:hover,
body.ol-dark-mode .dropdown-content button.button:hover {
  background: #1f2937 !important;
}

body.ol-dark-mode .dropdown-content,
body.ol-dark-mode .menu-group-items {
  background: #020617 !important;
  border-color: rgba(255,255,255,.12) !important;
  box-shadow: 0 14px 28px rgba(0,0,0,.45) !important;
}

/* Inputs/selects/textareas */
body.ol-dark-mode input,
body.ol-dark-mode select,
body.ol-dark-mode textarea {
  background: #020617 !important;
  color: #f9fafb !important;
  border-color: rgba(255,255,255,.16) !important;
}

body.ol-dark-mode input::placeholder,
body.ol-dark-mode textarea::placeholder {
  color: #6b7280 !important;
}

/* Search results */
body.ol-dark-mode .gridnet-search-results-wrap,
body.ol-dark-mode #gridnetSearchResults {
  background: #020617 !important;
  color: #e5e7eb !important;
}

body.ol-dark-mode .gridnet-search-result,
body.ol-dark-mode .gridnet-image-card,
body.ol-dark-mode .gridnet-search-empty,
body.ol-dark-mode .gridnet-search-error {
  background: #111827 !important;
  border-color: rgba(255,255,255,.12) !important;
  color: #e5e7eb !important;
}

body.ol-dark-mode .gridnet-search-title,
body.ol-dark-mode .gridnet-image-title {
  color: #93c5fd !important;
}

body.ol-dark-mode .gridnet-search-content {
  color: #9ca3af !important;
}

body.ol-dark-mode .gridnet-search-url,
body.ol-dark-mode .gridnet-image-url {
  color: #86efac !important;
}

/* Widget frames / iframes */
body.ol-dark-mode .widget-frame {
  background: #020617 !important;
  border-color: rgba(255,255,255,.12) !important;
}

/* Settings modal dark-mode button active state */
body.ol-dark-mode #olDarkModeToggle {
  background: #f8fafc !important;
  color: #111827 !important;
  border-color: rgba(255,255,255,.2) !important;
}

/* Mobile nav dark cleanup */
@media (max-width: 820px), (hover: none) and (pointer: coarse) {
  body.ol-dark-mode .navbar1 .dropdown1,
  body.ol-dark-mode #navbar1Menu .dropdown1 {
    background: #111827 !important;
    border-color: rgba(255,255,255,.12) !important;
  }

  body.ol-dark-mode .navbar1 .dropdown-content,
  body.ol-dark-mode #navbar1Menu .dropdown-content {
    background: #020617 !important;
    border-top-color: rgba(255,255,255,.12) !important;
  }

  body.ol-dark-mode .navbar1 .menu-group-btn,
  body.ol-dark-mode #navbar1Menu .menu-group-btn {
    background: #1f2937 !important;
    color: #f9fafb !important;
  }
}

.brand-logo {
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}

.brand-logo.long-pressing {
  transform: scale(0.95);
  opacity: 0.8;
}

/* =========================================================
   Restore OmniLaunch logo on mobile
   ========================================================= */

@media (max-width: 767px) {

  .topbar-inner {
    grid-template-columns: auto 1fr !important;
    align-items: center !important;
    gap: 8px !important;
  }

  .brand-logo,
  .brand-logo.brand-logo-image-wrap {
    display: flex !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    align-items: center !important;
    justify-content: center !important;
  }

}

.main-content-toggle{
    width: auto;              /* instead of 100% */
    min-width: 320px;         /* optional */
    max-width: 600px;         /* optional */

    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    padding: 10px 20px;

    border-radius: 9999px;    /* makes it pill-shaped */

    border: 1px solid #d0d7e2;
    background: #f8fafc;
    color: #1e293b;

    font-weight: 700;
    cursor: pointer;

}

.main-content-toggle:hover{
    background:#eef4ff;
    border-color:#4f7cff;
}

.main-content-toggle .toggle-icon{
    color:#4f7cff;
    transition:transform .2s ease;
}

body.dark-mode .main-content-toggle{
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.15);
    color:#fff;
}

body.dark-mode .main-content-toggle:hover{
    background:rgba(255,255,255,.10);
}


/* ========================================================================== 
   FINAL Auth/account pill + olAiFab combined fix
   ========================================================================== */
html.ol-auth-pending body,body.ol-auth-pending{overflow:hidden!important}.ol-auth-overlay{position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;background:radial-gradient(circle at top left,rgba(37,99,235,.18),transparent 32%),rgba(244,248,253,.96);color:#0f172a}.ol-auth-card{width:min(420px,calc(100vw - 32px));padding:24px;border-radius:22px;background:#fff;border:1px solid rgba(15,23,42,.10);box-shadow:0 24px 80px rgba(15,23,42,.18);display:grid;gap:10px;text-align:center}.ol-auth-card span{color:#64748b;font-size:.92rem}.ol-auth-spinner{width:34px;height:34px;border-radius:999px;border:4px solid rgba(37,99,235,.18);border-top-color:#2563eb;margin:0 auto 4px;animation:olSpin .8s linear infinite}@keyframes olSpin{to{transform:rotate(360deg)}}html.ol-authenticated .ol-auth-overlay,body:not(.ol-auth-pending) .ol-auth-overlay,.ol-auth-overlay[hidden]{display:none!important;visibility:hidden!important;pointer-events:none!important}.ol-account-pill{display:block!important;position:fixed!important;right:18px!important;bottom:96px!important;top:auto!important;left:auto!important;z-index:2147482500!important;pointer-events:auto!important}.ol-account-pill[hidden]{display:none!important}.ol-account-pill-btn{border:1px solid rgba(15,23,42,.10);background:#fff;color:#0f172a;border-radius:999px;padding:7px 10px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 4px 16px rgba(15,23,42,.06);min-height:42px!important;backdrop-filter:blur(12px)!important}.ol-account-text{display:grid;line-height:1.05;text-align:left}.ol-account-text strong{font-size:.82rem;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ol-account-text small{color:#64748b;font-size:.68rem;text-transform:uppercase;font-weight:800}.ol-account-summary{display:grid;gap:6px;padding:12px;border-radius:14px;border:1px solid rgba(15,23,42,.10);background:rgba(15,23,42,.03)}.ol-role-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:rgba(37,99,235,.10);color:#1d4ed8;font-weight:900;text-transform:uppercase;font-size:.75rem}.ol-muted-small{color:#64748b;font-size:.84rem}.ol-users-add-grid{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,1fr) 120px auto;gap:10px;align-items:end;margin-top:12px}.ol-users-list{display:grid;gap:10px;margin-top:12px}.ol-user-row{display:grid;grid-template-columns:minmax(160px,.65fr) minmax(0,1.35fr);gap:12px;align-items:center;padding:12px;border:1px solid rgba(15,23,42,.10);border-radius:14px;background:#fff}.ol-user-main{display:grid;gap:3px;min-width:0}.ol-user-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ol-user-main span{color:#64748b;font-size:.82rem;font-weight:900;text-transform:uppercase}.ol-user-actions{display:grid;grid-template-columns:minmax(150px,1fr) 110px auto auto;gap:8px;align-items:center}.ol-user-actions input,.ol-user-actions select{min-height:38px;border:1px solid rgba(15,23,42,.14);border-radius:10px;padding:7px 9px}.ol-users-empty{padding:12px;border-radius:14px;background:#fff7ed;color:#9a3412;border:1px solid rgba(234,88,12,.22);font-weight:800}#olAiAssistantRoot{position:fixed!important;right:0!important;bottom:0!important;width:0!important;height:0!important;z-index:2147483000!important;pointer-events:none!important}#olAiFab{position:fixed!important;right:24px!important;bottom:24px!important;top:auto!important;left:auto!important;z-index:2147483646!important;pointer-events:auto!important;cursor:pointer!important;touch-action:manipulation!important}@media(max-width:767px){.ol-account-pill{right:12px!important;bottom:84px!important;display:block!important}.ol-users-add-grid,.ol-user-row,.ol-user-actions{grid-template-columns:1fr!important}#olAiFab{top:14px!important;right:14px!important;bottom:auto!important;left:auto!important;width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important}}

/* =====================================================
   Account pill replaces brand logo
   ===================================================== */

.brand-logo-account-wrap {
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

.brand-account-pill-btn {
  border: 1px solid rgba(15, 23, 42, 0.10) !important;
  background: #ffffff !important;
  color: #0f172a !important;
  border-radius: 999px !important;

  padding: 7px 10px !important;
  min-height: 42px !important;

  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;

  cursor: pointer !important;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08) !important;
  white-space: nowrap !important;
}

.brand-account-pill-btn .ol-account-avatar {
  flex: 0 0 auto;
}

.brand-account-pill-btn .ol-account-text {
  display: grid;
  line-height: 1.05;
  text-align: left;
  min-width: 0;
}

.brand-account-pill-btn .ol-account-text strong {
  font-size: 0.82rem;
  max-width: 96px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.brand-account-pill-btn .ol-account-text small {
  color: #64748b;
  font-size: 0.68rem;
  text-transform: uppercase;
  font-weight: 800;
}

/* Since the account pill is now in the header flow, kill old floating pill positioning */
.ol-account-pill {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
}

/* =========================================================
   Account pill as brand-logo replacement
   ========================================================= */

/* Make topbar reserve enough room for the account pill */
.topbar-inner {
  grid-template-columns: auto 1fr !important;
  column-gap: 8px !important;
  align-items: center !important;
}

/* The old brand-logo slot now becomes the account pill holder */


/* Actual visible pill */


/* Avatar sizing */


/* Text stack */


/* Username line */


/* Role line */


/* Hide old floating account pill if it still exists elsewhere */
#olAccountPill.ol-account-pill {
  display: none !important;
}

/* Mobile: keep pill above navbar and avoid smashing */
@media (max-width: 820px), (hover: none) and (pointer: coarse) {
  .topbar-inner {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  

  

  
}
/* =========================================================
   FINAL FIX: AI Assistant Clickability + Account Pill Layering
   Place this at the VERY BOTTOM of OmniLaunch_v6_2.css
   ========================================================= */

/* The AI root must be click-through.
   Only the FAB and drawer should receive clicks. */
#olAiAssistantRoot {
  position: fixed !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 0 !important;
  height: 0 !important;
  z-index: 2147483000 !important;
  pointer-events: none !important;
}

/* Floating AI button remains clickable */
#olAiFab {
  pointer-events: auto !important;
  z-index: 2147483646 !important;
}

/* The drawer itself must receive clicks */
#olAiDrawer {
  pointer-events: auto !important;
  z-index: 2147483645 !important;
}

/* Everything inside the drawer must also be clickable */
#olAiDrawer *,
#olAiDrawerHeader,
#olAiDrawerClose,
.ai-tool-bar,
#aiToolSelector,
#olAiFrame {
  pointer-events: auto !important;
}

/* Make sure the iframe can receive mouse/touch input */
#olAiFrame {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  border: 0 !important;
}

/* Account pill inside the brand/logo slot should stay normal,
   not float over the AI drawer */


/* If the old floating account pill still exists, disable it.
   This prevents duplicate IDs / invisible overlays from blocking clicks. */
#olAccountPill.ol-account-pill {
  display: none !important;
  pointer-events: none !important;
}

/* Access Requests admin panel */
.ol-access-request-row {
  align-items: start !important;
}

.ol-access-request-meta {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 7px;
}

.ol-access-request-reason {
  margin-top: 8px;
  padding: 9px 10px;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 12px;
  background: rgba(15, 23, 42, 0.035);
  color: var(--text, #0f172a);
  font-size: 0.88rem;
  line-height: 1.45;
}

.ol-access-request-actions {
  align-items: start !important;
}

@media (max-width: 768px) {
  .ol-access-request-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .ol-access-request-actions button {
    width: 100% !important;
  }
}

/* Access Request action button polish */
.ol-access-request-actions {
  display: flex !important;
  gap: 10px !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
}

.ol-access-request-actions .ol-small-btn,
.ol-approve-request-btn,
.ol-deny-request-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-width: 92px !important;
  min-height: 38px !important;

  padding: 8px 14px !important;
  border-radius: 999px !important;

  border: 1px solid rgba(15, 23, 42, 0.14) !important;
  background: #ffffff !important;
  color: #0f172a !important;

  font-weight: 850 !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}

.ol-approve-request-btn {
  background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
  color: #ffffff !important;
  border-color: #1d4ed8 !important;
}

.ol-deny-request-btn {
  background: #ffffff !important;
  color: #991b1b !important;
  border-color: rgba(153, 27, 27, 0.28) !important;
}

.ol-approve-request-btn:hover,
.ol-deny-request-btn:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
}
/* =========================================================
   OmniLaunch Admin/User Management + Access Requests Polish
   Drop this at the VERY BOTTOM of OmniLaunch_v6_2.css.
   ========================================================= */

#popupPrefsOverlay .ol-settings-section.open > .ol-settings-section-content {
  display: block !important;
}

#popupPrefsOverlay .ol-settings-section:not(.open) > .ol-settings-section-content {
  display: none !important;
}

.ol-user-actions,
.ol-access-request-actions {
  display: flex !important;
  gap: 10px !important;
  align-items: center !important;
  justify-content: flex-end !important;
  pointer-events: auto !important;
}

.ol-user-actions input,
.ol-user-actions select {
  min-height: 40px !important;
  border: 1px solid rgba(15, 23, 42, 0.16) !important;
  border-radius: 12px !important;
  padding: 8px 10px !important;
}

.ol-user-actions button,
.ol-access-request-actions button,
.ol-save-user-btn,
.ol-delete-user-btn,
.ol-approve-request-btn,
.ol-deny-request-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 84px !important;
  min-height: 38px !important;
  padding: 8px 14px !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  border: 1px solid rgba(15, 23, 42, 0.16) !important;
  background: #ffffff !important;
  color: #0f172a !important;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08) !important;
}

.ol-save-user-btn,
.ol-approve-request-btn {
  background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
  color: #ffffff !important;
  border-color: #1d4ed8 !important;
}

.ol-delete-user-btn,
.ol-deny-request-btn {
  color: #991b1b !important;
  border-color: rgba(153, 27, 27, 0.30) !important;
}

.ol-user-actions button:hover,
.ol-access-request-actions button:hover {
  filter: brightness(1.05) !important;
  transform: translateY(-1px) !important;
}

.ol-user-actions button:disabled,
.ol-access-request-actions button:disabled {
  opacity: 0.65 !important;
  cursor: wait !important;
  transform: none !important;
}

.ol-access-request-row {
  align-items: start !important;
}

.ol-access-request-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 7px;
}

.ol-access-request-reason {
  margin-top: 8px;
  padding: 9px 10px;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 12px;
  background: rgba(15, 23, 42, 0.035);
  color: var(--text, #0f172a);
  font-size: 0.88rem;
  line-height: 1.45;
}

@media (max-width: 768px) {
  .ol-user-actions,
  .ol-access-request-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .ol-user-actions button,
  .ol-access-request-actions button,
  .ol-user-actions input,
  .ol-user-actions select {
    width: 100% !important;
  }
}

.user-create-card {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 14px;
    padding: 16px;
    margin-bottom: 18px;
}

.user-create-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 160px auto;
    gap: 12px;
    align-items: end;
}

.user-create-grid label {
    display: block;
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
}

@media (max-width:768px) {
    .user-create-grid {
        grid-template-columns: 1fr;
    }

    .create-btn-wrap button {
        width: 100%;
    }
}

.user-last-login {
    margin-top: 4px;
    font-size: 12px;
    color: var(--text-muted);
}

#popupPrefsOverlay .ol-settings-section {
    border-radius: 14px;
    margin-bottom: 14px;
    overflow: hidden;
}

#popupPrefsOverlay .prefs-box {
    padding: 18px;
}

#popupPrefsOverlay .ol-settings-section-content {
    padding: 0;
}

#popupPrefsOverlay .ol-settings-section-toggle {
    border-bottom: 1px solid var(--border-color);
}

/* =====================================================
   User Management - Add User Card
===================================================== */

.ol-user-create-card {
    margin: 16px 0 20px;
    padding: 18px;
    border: 1px solid var(--border-color, rgba(255,255,255,.12));
    border-radius: 14px;
    background: var(--card-bg, rgba(255,255,255,.03));
}

.ol-user-create-header {
    margin-bottom: 16px;
}

.ol-user-create-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
}

.ol-user-form-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ol-user-form-field label {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    opacity: .8;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.ol-user-form-field input,
.ol-user-form-field select {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid var(--border-color, rgba(255,255,255,.15));
    background: var(--input-bg, rgba(255,255,255,.05));
}

.ol-user-form-action {
    display: flex;
    align-items: flex-end;
}

.ol-user-form-action .ol-btn {
    width: 100%;
    min-height: 42px;
}

/* =====================================================
   Existing User Rows
===================================================== */

.ol-users-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 14px;
}

.ol-user-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 16px;
    border-radius: 14px;
    border: 1px solid var(--border-color, rgba(255,255,255,.12));
    background: var(--card-bg, rgba(255,255,255,.03));
}

.ol-user-info {
    min-width: 220px;
}

.ol-user-name {
    font-size: 1rem;
    font-weight: 700;
}

.ol-user-role {
    font-size: .85rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    margin-top: 3px;
}

.ol-user-last-login {
    margin-top: 6px;
    font-size: .80rem;
    opacity: .75;
}

.ol-user-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ol-user-actions input {
    min-width: 180px;
}

.ol-user-actions select {
    min-width: 110px;
}

@media (max-width: 768px) {

    .ol-users-add-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .ol-user-card {
        flex-direction: column;
        align-items: stretch;
    }

    .ol-user-actions {
        width: 100%;
        flex-direction: column;
    }

    .ol-user-actions input,
    .ol-user-actions select,
    .ol-user-actions button {
        width: 100%;
    }

    .ol-user-form-action .ol-btn {
        width: 100%;
    }
}

.ol-users-add-grid {
    display: grid;
    grid-template-columns: 2fr 2fr 1fr auto;
    gap: 12px;
    align-items: end;
}

/* =========================================================
   OmniLaunch v6.2.1 FINAL Settings + User Management Polish
   Purpose:
   - Make Settings accordion boxes visible in light/dark mode
   - Make Add User fields visibly boxed without needing focus
   - Make User rows/cards visually distinct
   - Preserve mobile layout and existing JS class hooks
   Place at VERY BOTTOM of OmniLaunch_v6_2.css
   ========================================================= */

/* ---------- Settings modal card/border cleanup ---------- */
#popupPrefsOverlay .ol-settings-accordion-panel,
#popupPrefsOverlay .prefs-panel {
  background: #ffffff !important;
  color: #0f172a !important;
  border: 1px solid #d9e2ef !important;
  box-shadow: 0 28px 70px rgba(15, 23, 42, 0.24) !important;
}

#popupPrefsOverlay .ol-settings-accordion-body {
  background: #ffffff !important;
}

#popupPrefsOverlay .ol-settings-section {
  margin-bottom: 14px !important;
  overflow: hidden !important;
  border: 1px solid #d8e0ec !important;
  border-radius: 16px !important;
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.045) !important;
}

#popupPrefsOverlay .ol-settings-section-toggle {
  min-height: 50px !important;
  padding: 14px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid #e1e7f0 !important;
  background: linear-gradient(180deg, #ffffff, #fbfdff) !important;
  color: #0f172a !important;
  font-weight: 850 !important;
}

#popupPrefsOverlay .ol-settings-section-toggle:hover {
  background: #f8fbff !important;
}

#popupPrefsOverlay .ol-settings-section:not(.open) .ol-settings-section-toggle {
  border-bottom-color: transparent !important;
}

#popupPrefsOverlay .ol-settings-section-content {
  padding: 0 !important;
  background: #ffffff !important;
}

#popupPrefsOverlay .prefs-box,
#popupPrefsOverlay .ol-prefs-box-div {
  margin: 0 !important;
  padding: 18px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  box-shadow: none !important;
}

#popupPrefsOverlay .ol-div-3,
#popupPrefsOverlay .ol-muted-small,
#popupPrefsOverlay .ol-settings-footer-note {
  color: #475569 !important;
}

/* ---------- Add User card ---------- */
#popupPrefsOverlay .ol-user-create-card {
  margin: 18px 0 20px !important;
  padding: 18px !important;
  border: 1px solid #cfe0f5 !important;
  border-radius: 16px !important;
  background: linear-gradient(180deg, #f8fbff, #ffffff) !important;
  box-shadow: 0 8px 22px rgba(37, 99, 235, 0.055) !important;
}

#popupPrefsOverlay .ol-user-create-header {
  margin-bottom: 14px !important;
}

#popupPrefsOverlay .ol-user-create-title {
  margin: 0 !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
  color: #0f172a !important;
}

#popupPrefsOverlay .ol-users-add-grid {
  display: grid !important;
  grid-template-columns: minmax(170px, 1.25fr) minmax(220px, 1.45fr) minmax(120px, 0.7fr) auto !important;
  gap: 12px !important;
  align-items: end !important;
  margin-top: 0 !important;
}

#popupPrefsOverlay .ol-user-form-field {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  min-width: 0 !important;
}

#popupPrefsOverlay .ol-user-form-field label {
  margin: 0 !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  letter-spacing: 0.065em !important;
  text-transform: uppercase !important;
  color: #334155 !important;
  opacity: 1 !important;
}

#popupPrefsOverlay .ol-user-form-field input,
#popupPrefsOverlay .ol-user-form-field select,
#popupPrefsOverlay #olNewUserUsername,
#popupPrefsOverlay #olNewUserPassword,
#popupPrefsOverlay #olNewUserRole {
  width: 100% !important;
  min-height: 44px !important;
  height: 44px !important;
  padding: 9px 12px !important;
  border: 1px solid #b8c4d6 !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  color: #0f172a !important;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.035) !important;
  outline: none !important;
}

#popupPrefsOverlay .ol-user-form-field input::placeholder,
#popupPrefsOverlay .ol-user-new-password::placeholder {
  color: #64748b !important;
  opacity: 0.82 !important;
}

#popupPrefsOverlay .ol-user-form-field input:focus,
#popupPrefsOverlay .ol-user-form-field select:focus,
#popupPrefsOverlay .ol-user-new-password:focus,
#popupPrefsOverlay .ol-user-role-select:focus {
  border-color: #2563eb !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.16), inset 0 1px 2px rgba(15, 23, 42, 0.035) !important;
}

#popupPrefsOverlay .ol-user-form-action {
  display: flex !important;
  align-items: end !important;
  justify-content: flex-end !important;
}

#popupPrefsOverlay .ol-user-form-action .ol-btn,
#popupPrefsOverlay #olAddUserBtn {
  min-height: 44px !important;
  height: 44px !important;
  padding: 0 18px !important;
  border-radius: 10px !important;
  white-space: nowrap !important;
  box-shadow: 0 12px 24px rgba(37, 99, 235, 0.22) !important;
}

/* ---------- User list and rows ---------- */
#popupPrefsOverlay .ol-users-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  margin-top: 16px !important;
}

#popupPrefsOverlay .ol-user-row,
#popupPrefsOverlay .ol-user-card {
  display: grid !important;
  grid-template-columns: minmax(220px, 0.75fr) minmax(0, 1.25fr) !important;
  gap: 18px !important;
  align-items: center !important;
  padding: 16px !important;
  border: 1px solid #d2dbe8 !important;
  border-radius: 16px !important;
  background: #ffffff !important;
  box-shadow: 0 3px 12px rgba(15, 23, 42, 0.055) !important;
}

#popupPrefsOverlay .ol-user-main,
#popupPrefsOverlay .ol-user-info {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  min-width: 0 !important;
}

#popupPrefsOverlay .ol-user-name,
#popupPrefsOverlay .ol-user-main strong {
  display: block !important;
  margin: 0 !important;
  font-size: 1rem !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
  color: #0f172a !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#popupPrefsOverlay .ol-user-role,
#popupPrefsOverlay .ol-user-main > span:not(.ol-user-last-login) {
  display: block !important;
  margin-top: 6px !important;
  font-size: 0.78rem !important;
  line-height: 1.15 !important;
  font-weight: 900 !important;
  letter-spacing: 0.045em !important;
  text-transform: uppercase !important;
  color: #52657f !important;
}

#popupPrefsOverlay .ol-user-last-login {
  display: block !important;
  margin-top: 10px !important;
  font-size: 0.78rem !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  letter-spacing: 0.015em !important;
  text-transform: uppercase !important;
  color: #64748b !important;
  opacity: 1 !important;
}

#popupPrefsOverlay .ol-user-actions {
  display: grid !important;
  grid-template-columns: minmax(180px, 1fr) 112px auto auto !important;
  gap: 10px !important;
  align-items: center !important;
  justify-content: end !important;
  min-width: 0 !important;
}

#popupPrefsOverlay .ol-user-new-password,
#popupPrefsOverlay .ol-user-role-select,
#popupPrefsOverlay .ol-user-actions input,
#popupPrefsOverlay .ol-user-actions select {
  min-height: 42px !important;
  height: 42px !important;
  padding: 8px 12px !important;
  border: 1px solid #b8c4d6 !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  color: #0f172a !important;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.035) !important;
}

#popupPrefsOverlay .ol-user-new-password {
  width: 100% !important;
  min-width: 180px !important;
}

#popupPrefsOverlay .ol-user-role-select {
  width: 112px !important;
  min-width: 112px !important;
}

#popupPrefsOverlay .ol-save-user-btn,
#popupPrefsOverlay .ol-delete-user-btn,
#popupPrefsOverlay .ol-user-actions button {
  min-height: 40px !important;
  height: 40px !important;
  min-width: 84px !important;
  padding: 0 16px !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  border: 1px solid #cbd5e1 !important;
  background: #ffffff !important;
  color: #0f172a !important;
  box-shadow: 0 5px 14px rgba(15, 23, 42, 0.08) !important;
}

#popupPrefsOverlay .ol-save-user-btn {
  background: #ffffff !important;
  color: #0f172a !important;
}

#popupPrefsOverlay .ol-delete-user-btn {
  background: #ffffff !important;
  color: #0f172a !important;
}

#popupPrefsOverlay .ol-save-user-btn:hover,
#popupPrefsOverlay .ol-delete-user-btn:hover,
#popupPrefsOverlay .ol-user-actions button:hover {
  transform: translateY(-1px) !important;
  filter: brightness(1.02) !important;
  border-color: #94a3b8 !important;
}

/* ---------- Dark mode equivalents ---------- */
body.ol-dark-mode #popupPrefsOverlay .ol-settings-accordion-panel,
body.ol-dark-mode #popupPrefsOverlay .prefs-panel,
body.ol-dark-mode #popupPrefsOverlay .ol-settings-accordion-body,
body.ol-dark-mode #popupPrefsOverlay .ol-settings-section-content,
body.ol-dark-mode #popupPrefsOverlay .prefs-box,
body.ol-dark-mode #popupPrefsOverlay .ol-prefs-box-div {
  background: #111827 !important;
  color: #e5e7eb !important;
}

body.ol-dark-mode #popupPrefsOverlay .ol-settings-section {
  background: #111827 !important;
  border-color: #334155 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22) !important;
}

body.ol-dark-mode #popupPrefsOverlay .ol-settings-section-toggle {
  background: linear-gradient(180deg, #111827, #0f172a) !important;
  color: #f8fafc !important;
  border-bottom-color: #334155 !important;
}

body.ol-dark-mode #popupPrefsOverlay .ol-user-create-card {
  background: linear-gradient(180deg, #0f172a, #111827) !important;
  border-color: #334155 !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.24) !important;
}

body.ol-dark-mode #popupPrefsOverlay .ol-user-create-title,
body.ol-dark-mode #popupPrefsOverlay .ol-user-name,
body.ol-dark-mode #popupPrefsOverlay .ol-user-main strong {
  color: #f8fafc !important;
}

body.ol-dark-mode #popupPrefsOverlay .ol-user-form-field label,
body.ol-dark-mode #popupPrefsOverlay .ol-user-role,
body.ol-dark-mode #popupPrefsOverlay .ol-user-main > span:not(.ol-user-last-login),
body.ol-dark-mode #popupPrefsOverlay .ol-user-last-login,
body.ol-dark-mode #popupPrefsOverlay .ol-div-3,
body.ol-dark-mode #popupPrefsOverlay .ol-muted-small,
body.ol-dark-mode #popupPrefsOverlay .ol-settings-footer-note {
  color: #94a3b8 !important;
}

body.ol-dark-mode #popupPrefsOverlay .ol-user-row,
body.ol-dark-mode #popupPrefsOverlay .ol-user-card {
  background: #0f172a !important;
  border-color: #334155 !important;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.22) !important;
}

body.ol-dark-mode #popupPrefsOverlay .ol-user-form-field input,
body.ol-dark-mode #popupPrefsOverlay .ol-user-form-field select,
body.ol-dark-mode #popupPrefsOverlay #olNewUserUsername,
body.ol-dark-mode #popupPrefsOverlay #olNewUserPassword,
body.ol-dark-mode #popupPrefsOverlay #olNewUserRole,
body.ol-dark-mode #popupPrefsOverlay .ol-user-new-password,
body.ol-dark-mode #popupPrefsOverlay .ol-user-role-select,
body.ol-dark-mode #popupPrefsOverlay .ol-user-actions input,
body.ol-dark-mode #popupPrefsOverlay .ol-user-actions select {
  background: #020617 !important;
  color: #f8fafc !important;
  border-color: #475569 !important;
}

body.ol-dark-mode #popupPrefsOverlay .ol-user-form-field input::placeholder,
body.ol-dark-mode #popupPrefsOverlay .ol-user-new-password::placeholder {
  color: #94a3b8 !important;
}

body.ol-dark-mode #popupPrefsOverlay .ol-save-user-btn,
body.ol-dark-mode #popupPrefsOverlay .ol-delete-user-btn,
body.ol-dark-mode #popupPrefsOverlay .ol-user-actions button {
  background: #111827 !important;
  border-color: #475569 !important;
  color: #f8fafc !important;
  box-shadow: 0 5px 14px rgba(0, 0, 0, 0.25) !important;
}

/* ---------- Responsive behavior ---------- */
@media (max-width: 1000px) {
  #popupPrefsOverlay .ol-users-add-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 120px !important;
  }

  #popupPrefsOverlay .ol-user-form-action {
    grid-column: 1 / -1 !important;
    justify-content: flex-start !important;
  }

  #popupPrefsOverlay #olAddUserBtn {
    width: auto !important;
  }

  #popupPrefsOverlay .ol-user-row,
  #popupPrefsOverlay .ol-user-card {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
  }

  #popupPrefsOverlay .ol-user-actions {
    grid-template-columns: minmax(180px, 1fr) 120px auto auto !important;
    justify-content: stretch !important;
  }
}

@media (max-width: 768px) {
  #popupPrefsOverlay .ol-users-add-grid,
  #popupPrefsOverlay .ol-user-actions {
    grid-template-columns: 1fr !important;
  }

  #popupPrefsOverlay .ol-user-form-action,
  #popupPrefsOverlay #olAddUserBtn,
  #popupPrefsOverlay .ol-user-new-password,
  #popupPrefsOverlay .ol-user-role-select,
  #popupPrefsOverlay .ol-user-actions input,
  #popupPrefsOverlay .ol-user-actions select,
  #popupPrefsOverlay .ol-user-actions button {
    width: 100% !important;
    min-width: 0 !important;
  }

  #popupPrefsOverlay .ol-user-row,
  #popupPrefsOverlay .ol-user-card,
  #popupPrefsOverlay .ol-user-create-card {
    padding: 14px !important;
    border-radius: 14px !important;
  }
}

/* =========================================================
   OmniLaunch Home Accordion Panels
   Replaces old tab styling
   ========================================================= */

.ol-home-panels {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 12px;
  box-sizing: border-box;
}

/* Main accordion card */
.ol-accordion-card {
  border: 1px solid rgba(90, 130, 190, 0.30);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 12px 34px rgba(15, 23, 42, 0.10);
  overflow: hidden;
  backdrop-filter: blur(14px);
}

/* Dark mode card */
body.ol-dark-mode .ol-accordion-card,
html[data-theme="dark"] .ol-accordion-card,
body.dark .ol-accordion-card {
  background: rgba(15, 23, 42, 0.88);
  border-color: rgba(120, 160, 230, 0.30);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.38);
}

/* Header button */
.ol-accordion-toggle {
  width: 100%;
  min-height: 58px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "title chevron"
    "subtitle chevron";
  align-items: center;
  gap: 2px 12px;
  padding: 12px 16px;
  border: 0;
  border-bottom: 1px solid rgba(90, 130, 190, 0.22);
  background: linear-gradient(
    180deg,
    rgba(248, 251, 255, 0.95),
    rgba(235, 242, 252, 0.88)
  );
  color: #08203f;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

body.ol-dark-mode .ol-accordion-toggle,
html[data-theme="dark"] .ol-accordion-toggle,
body.dark .ol-accordion-toggle {
  background: linear-gradient(
    180deg,
    rgba(20, 32, 52, 0.98),
    rgba(12, 22, 38, 0.98)
  );
  border-bottom-color: rgba(120, 160, 230, 0.22);
  color: #f7fbff;
}

.ol-accordion-toggle:hover {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 1),
    rgba(226, 238, 255, 0.95)
  );
}

body.ol-dark-mode .ol-accordion-toggle:hover,
html[data-theme="dark"] .ol-accordion-toggle:hover,
body.dark .ol-accordion-toggle:hover {
  background: linear-gradient(
    180deg,
    rgba(26, 42, 68, 1),
    rgba(15, 28, 48, 1)
  );
}

.ol-accordion-title {
  grid-area: title;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.ol-accordion-subtitle {
  grid-area: subtitle;
  font-size: 0.82rem;
  font-weight: 500;
  color: rgba(35, 58, 92, 0.72);
}

body.ol-dark-mode .ol-accordion-subtitle,
html[data-theme="dark"] .ol-accordion-subtitle,
body.dark .ol-accordion-subtitle {
  color: rgba(210, 225, 245, 0.72);
}

.ol-accordion-chevron {
  grid-area: chevron;
  font-size: 1.1rem;
  line-height: 1;
  transform: rotate(0deg);
  transition: transform 160ms ease;
}

/* Body */
.ol-accordion-body {
  display: block;
  padding: 14px;
  background: rgba(255, 255, 255, 0.55);
}

body.ol-dark-mode .ol-accordion-body,
html[data-theme="dark"] .ol-accordion-body,
body.dark .ol-accordion-body {
  background: rgba(6, 14, 27, 0.56);
}

/* Collapsed state */
.ol-accordion-card.ol-collapsed .ol-accordion-body {
  display: none;
}

.ol-accordion-card.ol-collapsed .ol-accordion-chevron {
  transform: rotate(-90deg);
}

/* Side-by-side Local Devices and Search */
.ol-side-by-side-panels {
  display: grid;
  grid-template-columns: minmax(280px, 0.95fr) minmax(320px, 1.05fr);
  gap: 14px;
  width: 100%;
  align-items: stretch;
}

.ol-inner-panel {
  min-width: 0;
  border: 1px solid rgba(90, 130, 190, 0.25);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.80);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

body.ol-dark-mode .ol-inner-panel,
html[data-theme="dark"] .ol-inner-panel,
body.dark .ol-inner-panel {
  background: rgba(13, 23, 40, 0.92);
  border-color: rgba(120, 160, 230, 0.24);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.26);
}

.ol-inner-panel-header {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(90, 130, 190, 0.20);
  background: rgba(240, 246, 255, 0.72);
}

body.ol-dark-mode .ol-inner-panel-header,
html[data-theme="dark"] .ol-inner-panel-header,
body.dark .ol-inner-panel-header {
  background: rgba(20, 34, 56, 0.76);
  border-bottom-color: rgba(120, 160, 230, 0.20);
}

.ol-inner-panel-header h3 {
  margin: 0;
  font-size: 0.94rem;
  font-weight: 800;
  color: #08203f;
}

body.ol-dark-mode .ol-inner-panel-header h3,
html[data-theme="dark"] .ol-inner-panel-header h3,
body.dark .ol-inner-panel-header h3 {
  color: #f7fbff;
}

.ol-inner-panel-body {
  min-height: 260px;
  max-height: 70vh;
  overflow: auto;
  padding: 12px;
  box-sizing: border-box;
}

/* Live sites wrapper */
.ol-live-sites-shell {
  min-height: 420px;
  border: 1px solid rgba(90, 130, 190, 0.20);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.82);
}

body.ol-dark-mode .ol-live-sites-shell,
html[data-theme="dark"] .ol-live-sites-shell,
body.dark .ol-live-sites-shell {
  background: rgba(7, 16, 30, 0.94);
  border-color: rgba(120, 160, 230, 0.22);
}

/* If Live Sites contains an iframe */
.ol-live-sites-shell iframe {
  width: 100%;
  min-height: 620px;
  border: 0;
  display: block;
  background: transparent;
}

/* Mobile responsive */
@media (max-width: 900px) {
  .ol-side-by-side-panels {
    grid-template-columns: 1fr;
  }

  .ol-inner-panel-body {
    max-height: 55vh;
  }

  .ol-live-sites-shell iframe {
    min-height: 560px;
  }
}

@media (max-width: 560px) {
  .ol-home-panels {
    padding: 8px;
    gap: 12px;
  }

  .ol-accordion-toggle {
    min-height: 54px;
    padding: 10px 12px;
  }

  .ol-accordion-subtitle {
    display: none;
  }

  .ol-accordion-body {
    padding: 10px;
  }

  .ol-inner-panel-body {
    padding: 10px;
  }
}

.ol-mini-accordion-toggle {
  width: 100%;
  min-height: 44px;
  border: 0;
  border-bottom: 1px solid rgba(90, 130, 190, 0.20);
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(240, 246, 255, 0.72);
  color: #08203f;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

body.ol-dark-mode .ol-mini-accordion-toggle,
html[data-theme="dark"] .ol-mini-accordion-toggle,
body.dark .ol-mini-accordion-toggle {
  background: rgba(20, 34, 56, 0.76);
  color: #f7fbff;
  border-bottom-color: rgba(120, 160, 230, 0.20);
}

.ol-mini-accordion.ol-mini-collapsed .ol-inner-panel-body {
  display: none;
}

.ol-left-tools-header {
    position: sticky;
    top: 0;
    z-index: 10001;
}

.ol-left-tools-close {
    position: relative;
    z-index: 10002;

    min-width: 44px;
    min-height: 44px;

    display: flex;
    align-items: center;
    justify-content: center;

    touch-action: manipulation;
}

.ol-left-tools-close {
    width: 48px;
    height: 48px;

    border-radius: 12px;

    font-size: 28px;
    font-weight: 700;

    line-height: 1;

    flex-shrink: 0;
}

/* =========================================================
   FINAL FIX: Settings Modal Header Mobile Actions
   Keeps Light/Dark Mode, Save, and especially Close reachable on phones.
   ========================================================= */
#popupPrefsOverlay .prefs-header.ol-settings-header {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 14px !important;
  padding: 18px 20px 14px !important;
  border-bottom: 1px solid rgba(148, 163, 184, 0.28) !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 20 !important;
  background: inherit !important;
}
#popupPrefsOverlay .ol-settings-header-copy { min-width: 0 !important; }
#popupPrefsOverlay .prefs-title,
#popupPrefsOverlay .prefs-subtitle { overflow-wrap: anywhere !important; }
#popupPrefsOverlay .ol-settings-header-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
#popupPrefsOverlay .ol-settings-header-actions .ol-btn {
  width: auto !important;
  min-width: 84px !important;
  min-height: 42px !important;
  white-space: nowrap !important;
  flex: 0 0 auto !important;
}
@media (max-width: 768px) {
  #popupPrefsOverlay {
    align-items: stretch !important;
    justify-content: center !important;
    padding: 8px !important;
    overflow: hidden !important;
  }
  #popupPrefsOverlay .ol-settings-accordion-panel,
  #popupPrefsOverlay .prefs-panel {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 96dvh !important;
    overflow: hidden !important;
  }
  #popupPrefsOverlay .prefs-header.ol-settings-header {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    justify-items: stretch !important;
    gap: 10px !important;
    padding: 12px !important;
  }
  #popupPrefsOverlay .ol-settings-header-actions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    justify-content: stretch !important;
  }
  #popupPrefsOverlay .ol-settings-header-actions .ol-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 9px 10px !important;
    font-size: 15px !important;
    line-height: 1.15 !important;
  }
  #popupPrefsOverlay #olDarkModeToggle { grid-column: 1 / -1 !important; }
  #popupPrefsOverlay #olSettingsSaveBtn { grid-column: 1 !important; }
  #popupPrefsOverlay #closeSettingsBtn { grid-column: 2 !important; }
  #popupPrefsOverlay .ol-settings-accordion-body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }
}
@media (max-width: 420px) {
  #popupPrefsOverlay .ol-settings-header-actions { grid-template-columns: 1fr !important; }
  #popupPrefsOverlay #olDarkModeToggle,
  #popupPrefsOverlay #olSettingsSaveBtn,
  #popupPrefsOverlay #closeSettingsBtn { grid-column: 1 !important; }
}
body.ol-dark-mode #popupPrefsOverlay .prefs-header.ol-settings-header {
  border-bottom-color: rgba(148, 163, 184, 0.24) !important;
}

/* =================================
   Search Accordion
   ================================= */


/* =========================================================
   Footer Search Thin Accordion + Form Layout Fix
   ========================================================= */

.footer-search-wrap {
  width: 100%;
  margin-bottom: 14px !important;
}

.footer-search-toggle {
  width: 100%;
  min-height: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  padding: 0 8px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 800;
  cursor: pointer;
  opacity: 0.86;
}

.footer-search-toggle:hover {
  opacity: 1;
}

.footer-search-toggle-line {
  height: 1px;
  flex: 1 1 auto;
  background: rgba(148, 163, 184, 0.34);
}

.footer-search-toggle-label {
  white-space: nowrap;
}

.footer-search-toggle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 160ms ease;
}

.footer-search-collapsed .footer-search-toggle-icon {
  transform: rotate(-90deg);
}

.footer-search-body {
  overflow: visible;
}

.footer-search-collapsed .footer-search-body {
  display: none !important;
}

/* Fix the Type + input + Search layout */
.footer-search-wrap .search-panel {
  padding: 14px 18px !important;
}

.footer-search-wrap .menu-search {
  display: block !important;
  width: 100% !important;
}

#gridnetSearchForm.gridnet-search-form {
  display: grid !important;
  grid-template-columns: 150px minmax(0, 1fr) auto !important;
  gap: 8px !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 100% !important;
}

#gridnetSearchModeSelect {
  width: 150px !important;
  max-width: 150px !important;
  min-width: 150px !important;
  height: 38px !important;
  min-height: 38px !important;
}

#gridnetSearchInput {
  width: 100% !important;
  min-width: 0 !important;
  height: 38px !important;
  min-height: 38px !important;
}

#gridnetSearchBtn {
  width: auto !important;
  min-width: 86px !important;
  height: 38px !important;
  min-height: 38px !important;
  white-space: nowrap !important;
}

/* Mobile: stack cleanly so Type is visible */
@media (max-width: 768px) {
  .footer-search-wrap {
    margin-bottom: 10px !important;
  }

  .footer-search-toggle {
    min-height: 24px;
    height: 24px;
    font-size: 0.78rem;
  }

  .footer-search-wrap .search-panel {
    padding: 10px !important;
    border-radius: 14px !important;
  }

  #gridnetSearchForm.gridnet-search-form {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  #gridnetSearchModeSelect,
  #gridnetSearchInput,
  #gridnetSearchBtn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 40px !important;
    min-height: 40px !important;
  }
}

/* =========================================================
   FINAL FIX: Mobile fixed header offset for footer-search-wrap
   Prevents the fixed topbar/navbar from covering the search area.
   ========================================================= */

:root {
  --ol-topbar-height: 72px;
}

/* The topbar is fixed, so body must reserve its real height */
body {
  padding-top: calc(var(--ol-topbar-height) + 10px) !important;
}

/* The first shell after the fixed topbar should not slide underneath it */
.topbar + .shell {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Keep search section safely below header */
.footer-search-wrap {
  position: relative !important;
  z-index: 5 !important;
  clear: both !important;
  margin-top: 0 !important;
}

/* Mobile-specific cleanup */
@media (max-width: 820px), (hover: none) and (pointer: coarse) {

  body {
    padding-top: calc(var(--ol-topbar-height) + 8px) !important;
  }

  .topbar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 3000 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .topbar + .shell {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  .footer-search-wrap {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
  }

  .footer-search-body,
  #footerSearchBody {
    position: relative !important;
    z-index: 1 !important;
  }

  .footer-search-wrap .search-panel {
    position: relative !important;
    z-index: 1 !important;
  }
}

/* If your mobile navbar is expanded, give content a little breathing room */
@media (max-width: 820px) {

  .navbar1-panel.open ~ .footer-search-wrap {
    margin-top: 8px !important;
  }

}

/* =========================================================
   Compact Live Sites Accordion Header
   Makes "Live Sites" bar thinner and puts subtitle inline.
   ========================================================= */

#olLiveSitesAccordion .ol-accordion-toggle {
  min-height: 42px !important;
  padding: 8px 14px !important;

  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  grid-template-areas: "title subtitle chevron" !important;

  align-items: center !important;
  gap: 10px !important;
}

#olLiveSitesAccordion .ol-accordion-title {
  grid-area: title !important;
  font-size: 0.95rem !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}

#olLiveSitesAccordion .ol-accordion-subtitle {
  grid-area: subtitle !important;
  display: block !important;

  margin: 0 !important;
  font-size: 0.78rem !important;
  font-weight: 650 !important;
  line-height: 1.1 !important;

  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;

  opacity: 0.78 !important;
}

#olLiveSitesAccordion .ol-accordion-chevron {
  grid-area: chevron !important;
  justify-self: end !important;
  font-size: 1rem !important;
  line-height: 1 !important;
}

/* Mobile: keep it thin, but hide subtitle if space is tight */
@media (max-width: 640px) {
  #olLiveSitesAccordion .ol-accordion-toggle {
    min-height: 38px !important;
    padding: 7px 12px !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas: "title chevron" !important;
  }

  #olLiveSitesAccordion .ol-accordion-subtitle {
    display: none !important;
  }

  #olLiveSitesAccordion .ol-accordion-title {
    font-size: 0.92rem !important;
  }
}

/* Search controls row */
body.ol-dark .gridnet-search-results-controls,
[data-theme="dark"] .gridnet-search-results-controls {
    color: #cbd5e1;
}

/* Sort label */
body.ol-dark .gridnet-search-results-controls label,
[data-theme="dark"] .gridnet-search-results-controls label {
    color: #cbd5e1;
}

/* Result tags/pills */
body.ol-dark .gridnet-search-tag,
[data-theme="dark"] .gridnet-search-tag {
    background: #1e293b !important;
    color: #dbeafe !important;
    border: 1px solid #475569;
}

/* =========================================================
   Footer Search Overlap Fix
   Keeps search dropdown/input below navbar/search heading
   ========================================================= */

.footer-search-wrap {
  position: relative;
  z-index: 5;
  clear: both;
  width: 100%;
  margin-top: 12px;
}

.footer-search-toggle {
  position: relative;
  z-index: 6;
  width: 100%;
}

.footer-search-body {
  position: relative;
  z-index: 4;
  display: block;
  width: 100%;
  clear: both;
  padding-top: 14px;
  margin-top: 0;
}

/* The panel that contains the search form */
.footer-search-body .launch-panel.search-panel {
  position: relative;
  z-index: 4;
  display: block;
  width: 100%;
  overflow: visible;
  margin-top: 0;
}

/* Actual search wrapper */
.footer-search-body .menu-search {
  position: relative;
  z-index: 4;
  display: block;
  width: 100%;
  overflow: visible;
}

/* Main search form */
.footer-search-body .gridnet-search-form {
  position: relative;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-top: 0;
  padding-top: 0;
}

/* Combo box */
.footer-search-body .gridnet-search-main-mode,
.footer-search-body #gridnetSearchModeSelect {
  flex: 0 0 150px;
  min-width: 140px;
  max-width: 180px;
}

/* Search input */
.footer-search-body .gridnet-search-input,
.footer-search-body #gridnetSearchInput {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

/* Search button */
.footer-search-body .gridnet-search-btn {
  flex: 0 0 auto;
}

/* =========================================================
   Footer Search Mobile / Narrow Desktop Fix
   Prevents search box from sliding under header on small width
   ========================================================= */

@media (max-width: 760px) {
  .footer-search-wrap {
    margin-top: 14px;
  }

  .footer-search-body {
    padding-top: 14px;
  }

  .footer-search-body .gridnet-search-form {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .footer-search-body .gridnet-search-main-mode,
  .footer-search-body #gridnetSearchModeSelect,
  .footer-search-body .gridnet-search-input,
  .footer-search-body #gridnetSearchInput,
  .footer-search-body .gridnet-search-btn {
    width: 100%;
    max-width: none;
    min-width: 0;
    flex: 0 0 auto;
  }

  .footer-search-body .gridnet-search-btn {
    justify-content: center;
    text-align: center;
  }
}

/* =========================================================
   FINAL: Mobile Header + Search Accordion Position Fix
   Put this at the VERY BOTTOM of OmniLaunch_v6_3.css
   ========================================================= */

/*
  The fixed topbar is taller on mobile because it contains:
  - account/header row
  - collapsed paNavBar hamburger shell
  - spacing/borders
  So stop relying on the old 72px offset.
*/
:root {
  --ol-mobile-header-offset: 80px;
  --ol-desktop-header-offset: 66px;
}

/* Desktop/default */
body {
  padding-top: var(--ol-desktop-header-offset) !important;
}

/* Mobile/tablet fixed-header offset */
@media (max-width: 820px), (hover: none) and (pointer: coarse) {
  body {
    padding-top: var(--ol-mobile-header-offset) !important;
  }
}

/* Keep the first shell below the fixed topbar */
.topbar + .shell,
body > .shell:first-of-type {
  margin-top: 0 !important;
  padding-top: 12px !important;
}

/* Make sure the topbar remains fixed but does not clip its own children */
.topbar {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 3000 !important;
  overflow: visible !important;
}

/* =========================================================
   Search accordion wrapper
   ========================================================= */

#footerSearchWrap.footer-search-wrap,
.footer-search-wrap {
  display: block !important;
  position: relative !important;
  clear: both !important;
  width: 100% !important;
  z-index: 20 !important;

  /* Desktop-like breathing room */
  margin-top: 14px !important;
  margin-bottom: 20px !important;
  padding-top: 0 !important;
}

/* The Search ▼ strip */
#footerSearchToggle.footer-search-toggle,
.footer-search-toggle {
  display: flex !important;
  position: relative !important;
  z-index: 21 !important;

  width: 100% !important;
  min-height: 30px !important;
  height: 30px !important;

  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;

  margin: 0 0 12px 0 !important;
  padding: 0 8px !important;

  border: 0 !important;
  background: transparent !important;
  color: inherit !important;

  font-size: 0.86rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
}

/* Divider lines beside Search */
.footer-search-toggle-line {
  display: block !important;
  height: 1px !important;
  flex: 1 1 auto !important;
  background: rgba(148, 163, 184, 0.38) !important;
}

.footer-search-toggle-label {
  white-space: nowrap !important;
}

.footer-search-toggle-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Search body must sit under the Search strip */
#footerSearchBody.footer-search-body,
.footer-search-body {
  display: block !important;
  position: relative !important;
  clear: both !important;
  width: 100% !important;
  z-index: 20 !important;

  margin: 0 !important;
  padding-top: 0 !important;

  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  overflow: visible !important;
}

/* Preserve collapsed behavior */
.footer-search-collapsed #footerSearchBody,
.footer-search-collapsed .footer-search-body {
  display: none !important;
}

/* Panel around search controls */
#footerSearchBody .launch-panel.search-panel,
.footer-search-body .launch-panel.search-panel,
.footer-search-wrap .search-panel {
  display: block !important;
  position: relative !important;
  z-index: 20 !important;

  width: 100% !important;
  margin: 0 !important;

  /* Match the desktop padded look */
  padding: 14px 18px !important;
  border-radius: 18px !important;

  overflow: visible !important;
}

/* Search content wrapper */
#footerSearchBody .menu-search,
.footer-search-body .menu-search,
.footer-search-wrap .menu-search {
  display: block !important;
  position: relative !important;
  z-index: 20 !important;

  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;

  overflow: visible !important;
}

/* Form layout on desktop */
#footerSearchBody #gridnetSearchForm.gridnet-search-form,
.footer-search-body #gridnetSearchForm.gridnet-search-form,
#gridnetSearchForm.gridnet-search-form {
  display: grid !important;
  grid-template-columns: 150px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 10px !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  position: relative !important;
  z-index: 20 !important;
}

/* Individual controls */
#gridnetSearchModeSelect {
  width: 150px !important;
  min-width: 150px !important;
  max-width: 150px !important;
  height: 40px !important;
  min-height: 40px !important;
}

#gridnetSearchInput {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 40px !important;
  min-height: 40px !important;
}

#gridnetSearchBtn {
  width: auto !important;
  min-width: 88px !important;
  height: 40px !important;
  min-height: 40px !important;
  white-space: nowrap !important;
}

/* =========================================================
   Mobile: collapsed paNavBar look + desktop-like spacing
   ========================================================= */

@media (max-width: 820px), (hover: none) and (pointer: coarse) {
  .topbar + .shell,
  body > .shell:first-of-type {
    padding-top: 14px !important;
  }

  #footerSearchWrap.footer-search-wrap,
  .footer-search-wrap {
    margin-top: 14px !important;
    margin-bottom: 20px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  #footerSearchToggle.footer-search-toggle,
  .footer-search-toggle {
    min-height: 30px !important;
    height: 30px !important;
    margin-bottom: 12px !important;
  }


  #footerSearchBody .launch-panel.search-panel,
  .footer-search-body .launch-panel.search-panel,
  .footer-search-wrap .search-panel {
    padding: 16px 12px !important;
    border-radius: 14px !important;
  }

  #footerSearchBody #gridnetSearchForm.gridnet-search-form,
  .footer-search-body #gridnetSearchForm.gridnet-search-form,
  #gridnetSearchForm.gridnet-search-form {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  #gridnetSearchModeSelect,
  #gridnetSearchInput,
  #gridnetSearchBtn {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 40px !important;
    min-height: 40px !important;
  }
}

/* =========================================================
   FINAL FIX: Mobile navbar panel scrolls instead of page
   Target: #navbarSupportedContent.navbar1-panel.open.mobile-open
   ========================================================= */

@media (max-width: 820px), (hover: none) and (pointer: coarse) {

  /*
    Keep the fixed topbar from becoming the scroll container.
    The menu panel itself should scroll.
  */
  .topbar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 3000 !important;
    overflow: hidden !important;
    max-height: 100dvh !important;
  }

  /*
    Let header wrappers size naturally.
  */
  .topbar-inner,
  .topbar-nav-wrap,
  .header-nav-shell {
    min-height: 0 !important;
    overflow: visible !important;
  }

  /*
    Closed state.
  */
  #navbarSupportedContent.navbar1-panel {
    display: none !important;
  }

  /*
    Open mobile menu becomes the scroll container.
  */
  #navbarSupportedContent.navbar1-panel.open,
  #navbarSupportedContent.navbar1-panel.mobile-open,
  #navbarSupportedContent.navbar1-panel.open.mobile-open {
    display: block !important;

    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;

    /*
      This is the important part.
      Your console showed maxHeight was present, but overflowY was visible.
    */
    max-height: calc(100dvh - 72px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;

    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    touch-action: pan-y !important;

    padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important;
  }

  /*
    Actual menu contents flow inside the scrollable panel.
  */
  #navbar1Menu.navbar1 {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;

    width: 100% !important;
    min-width: 0 !important;

    overflow: visible !important;
  }

  /*
    Dropdowns and subgroups should not create separate page overflow.
  */
  #navbar1Menu .dropdown1,
  #navbar1Menu .menu-group {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  #navbar1Menu .dropdown-content,
  #navbar1Menu .menu-group-items {
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    max-height: none !important;

    overflow: visible !important;
    box-shadow: none !important;
  }
}

/* =========================================================
   FINAL FIX: Search Results dark mode readability
   Put at VERY BOTTOM of OmniLaunch_v6_3.css
   ========================================================= */

body.ol-dark-mode #gridnetSearchResults .gridnet-search-summary,
body.dark-mode #gridnetSearchResults .gridnet-search-summary,
body.ol-dark #gridnetSearchResults .gridnet-search-summary,
html[data-theme="dark"] #gridnetSearchResults .gridnet-search-summary,
body[data-theme="dark"] #gridnetSearchResults .gridnet-search-summary {
  color: #f8fafc !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

body.ol-dark-mode #gridnetSearchResults .gridnet-search-header,
body.dark-mode #gridnetSearchResults .gridnet-search-header,
body.ol-dark #gridnetSearchResults .gridnet-search-header,
html[data-theme="dark"] #gridnetSearchResults .gridnet-search-header,
body[data-theme="dark"] #gridnetSearchResults .gridnet-search-header {
  color: #f8fafc !important;
}

body.ol-dark-mode #gridnetSearchResults .gridnet-search-mode-wrap,
body.dark-mode #gridnetSearchResults .gridnet-search-mode-wrap,
body.ol-dark #gridnetSearchResults .gridnet-search-mode-wrap,
html[data-theme="dark"] #gridnetSearchResults .gridnet-search-mode-wrap,
body[data-theme="dark"] #gridnetSearchResults .gridnet-search-mode-wrap {
  color: #f8fafc !important;
  opacity: 1 !important;
  font-weight: 800 !important;
}

body.ol-dark-mode #gridnetSearchResults .gridnet-search-mode-select,
body.ol-dark-mode #gridnetSearchResults .gridnet-search-sort-select,
body.dark-mode #gridnetSearchResults .gridnet-search-mode-select,
body.dark-mode #gridnetSearchResults .gridnet-search-sort-select,
html[data-theme="dark"] #gridnetSearchResults .gridnet-search-mode-select,
html[data-theme="dark"] #gridnetSearchResults .gridnet-search-sort-select {
  background: #020617 !important;
  color: #f8fafc !important;
  border-color: #475569 !important;
}

/* =========================================================
   Mobile Left Drawer Fix
   ========================================================= */

@media (max-width: 768px){

  body.ol-left-tools-open .ol-left-tools-drawer{
    z-index: 99999 !important;
    top: 60px !important;
    height:calc(100dvh - 60px) !important;
  }

  body.ol-left-tools-open .ol-left-tools-backdrop{
    z-index: 99998 !important;
  }

  /* Push OmniLaunch header below drawer */
  .topbar,
  .topbar-inner,
  .brand-logo,
  .brand-logo-account-wrap{
    z-index: 100 !important;
  }

  .ol-left-tools-header{
    position: sticky !important;
    top: 0 !important;
    z-index: 5 !important;
    background: inherit !important;
  }

  .ol-left-tools-close{
    min-width: 44px !important;
    min-height: 44px !important;
  }

  .ol-left-tools-switch{
    position: relative !important;
    z-index: 4 !important;
  }
}

/* =========================================================
   HARD FIX: Mobile Left Tools Drawer Layout
   Fixes drawer tab buttons being hidden under header/close area
   ========================================================= */

@media (max-width: 768px) {

  /* Keep the page behind the drawer from stealing scroll/taps */
  body.ol-left-tools-open {
    overflow: hidden !important;
  }

  /* Drawer should be a clean vertical flex stack */
  body.ol-left-tools-open .ol-left-tools-drawer {
    position: fixed !important;
    top: 72px !important; /* sits below mobile browser/site header area */
    left: 0 !important;
    bottom: 0 !important;
    width: min(96vw, 430px) !important;
    height: calc(100dvh - 72px) !important;
    max-height: calc(100dvh - 72px) !important;

    display: flex !important;
    flex-direction: column !important;

    z-index: 99999 !important;
    overflow: hidden !important;
    transform: translateX(0) !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  body.ol-left-tools-open .ol-left-tools-backdrop {
    z-index: 99998 !important;
  }

  /* Header should not overlap the buttons */
  .ol-left-tools-header {
    position: relative !important;
    flex: 0 0 auto !important;
    min-height: auto !important;
    height: auto !important;
    max-height: none !important;

    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 48px !important;
    align-items: start !important;
    gap: 10px !important;

    padding: 12px 12px 10px !important;
    margin: 0 !important;

    z-index: 3 !important;
    overflow: visible !important;
  }

  .ol-left-tools-header h2 {
    margin: 0 !important;
    font-size: 1rem !important;
    line-height: 1.15 !important;
  }

  .ol-left-tools-header p {
    margin: 4px 0 0 !important;
    font-size: 0.78rem !important;
    line-height: 1.25 !important;
    max-width: 100% !important;
  }

  .ol-left-tools-close {
    position: static !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    z-index: 5 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  /* THIS is the important part: force tab buttons below header */
  .ol-left-tools-switch {
    position: relative !important;
    flex: 0 0 auto !important;

    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;

    padding: 10px 12px 12px !important;
    margin: 0 !important;

    z-index: 2 !important;
    overflow: visible !important;

    border-top: 1px solid rgba(120, 160, 230, 0.18) !important;
    border-bottom: 1px solid rgba(120, 160, 230, 0.18) !important;
    background: inherit !important;
  }

  .ol-left-tools-view-btn {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    min-height: 46px !important;
    height: 46px !important;

    margin: 0 !important;
    padding: 10px 12px !important;

    z-index: 3 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  /* Body gets the remaining space only */
  .ol-left-tools-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;

    padding: 10px 12px 16px !important;
    margin: 0 !important;

    z-index: 1 !important;
    pointer-events: auto !important;
  }

  .ol-left-tools-panel {
    min-height: 0 !important;
    height: auto !important;
  }

  .ol-left-tools-panel.is-active {
    display: flex !important;
    flex-direction: column !important;
  }

  .ol-left-tools-panel-title {
    margin: 0 0 10px !important;
    padding: 0 !important;
  }

  .ol-left-tools-panel .widget-frame {
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  .ol-left-tools-panel iframe {
    min-height: 62dvh !important;
  }
}

@media (max-width: 768px) {
  .ol-left-tools-body {
    padding-top: 14px !important;
  }

  .ol-left-tools-panel.is-active {
    overflow: visible !important;
  }

  .ol-left-tools-panel .gridnet-search-results-wrap {
    max-height: none !important;
    overflow: visible !important;
  }
}

#navbar1Menu .dropdown-content {
    max-width: calc(100vw - 20px);
    max-height: calc(100vh - 100px);
    overflow-y: auto;
}

/* =========================================================
   FINAL LAST-WORD NAVBAR1 MOBILE OVERLAY FIX
   Put this at the absolute bottom of OmniLaunch_v6_3.css.
   This overrides the older block that forced:
   #navbarSupportedContent.navbar1-panel.open.mobile-open { position: relative !important; }
   ========================================================= */
@media (max-width: 820px), (hover: none) and (pointer: coarse) {
  .topbar {
    overflow: visible !important;
  }

  .shell.topbar-inner {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .brand-logo.brand-logo-account-wrap {
    display: flex !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: max-content !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
  }

  .topbar-nav-wrap {
    display: flex !important;
    position: static !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .topbar-nav-wrap .header-nav-shell,
  .topbar-nav-wrap .wrapper,
  .topbar-nav-wrap #main,
  .topbar-nav-wrap header,
  .topbar-nav-wrap nav.navbar {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  .topbar-nav-wrap .navbar-toggler,
  .topbar-nav-wrap .hamburger-btn,
  .hamburger-btn {
    display: inline-flex !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 13px !important;
  }

  #navbarSupportedContent.navbar1-panel,
  #navbarSupportedContent.navbar1-panel.open,
  #navbarSupportedContent.navbar1-panel.mobile-open,
  #navbarSupportedContent.navbar1-panel.open.mobile-open {
    position: fixed !important;
    top: 108px !important;
    left: 8px !important;
    right: 8px !important;
    bottom: auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 124px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    touch-action: pan-y !important;
    padding: 8px !important;
    padding-bottom: calc(18px + env(safe-area-inset-bottom)) !important;
    border-radius: 16px !important;
    border: 1px solid rgba(120, 160, 230, 0.34) !important;
    background: rgba(8, 15, 28, 0.98) !important;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.48) !important;
    z-index: 99999 !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
  }

  #navbarSupportedContent.navbar1-panel:not(.open):not(.mobile-open) {
    display: none !important;
    visibility: hidden !important;
  }

  #navbarSupportedContent.navbar1-panel.open,
  #navbarSupportedContent.navbar1-panel.mobile-open,
  #navbarSupportedContent.navbar1-panel.open.mobile-open {
    display: block !important;
    visibility: visible !important;
  }
}

/* ===================================================
   Fill remaining window height
   =================================================== */

html,
body {
    height: 100%;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.ol-main-content,
.main-content,
#mainContent,
.content-wrap {
    flex: 1 1 auto;
    min-height: 0;
}

/* Live Sites card */
.card-content,
.omni-tab-panel,
.live-sites-panel {
    flex: 1 1 auto;
    min-height: 0;
}

/* iframe fills remaining space */
.live-sites-panel iframe,
.omni-tab-panel iframe,
.card-content iframe {
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
}

/* ===================================================
   Fill remaining window height
   =================================================== */

html,
body {
    height: 100%;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.ol-main-content,
.main-content,
#mainContent,
.content-wrap {
    flex: 1 1 auto;
    min-height: 0;
}

/* Live Sites card */
.card-content,
.omni-tab-panel,
.live-sites-panel {
    flex: 1 1 auto;
    min-height: 0;
}

/* iframe fills remaining space */
.live-sites-panel iframe,
.omni-tab-panel iframe,
.card-content iframe {
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
}

/* Search / Live Sites spacing fix */
#footerSearchWrap {
    padding-bottom: 20px !important;
}

#footerSearchBody > article {
    position: relative !important;
    top: 30px !important;
}

/* =========================================================
   Navbar1 desktop group dropdown fix
   Keep desktop hover behavior, but open group items underneath
   instead of flying out to the side.
   ========================================================= */
@media (min-width: 821px) {
  #navbar1Menu .menu-group {
    position: relative !important;
    width: 100% !important;
    overflow: visible !important;
  }

  #navbar1Menu .menu-group-items {
    position: static !important;
    display: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 8px 0 0 0 !important;
    padding: 8px 0 0 12px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    overflow: visible !important;
  }

  #navbar1Menu .menu-group:hover > .menu-group-items,
  #navbar1Menu .menu-group:focus-within > .menu-group-items,
  #navbar1Menu .menu-group.open > .menu-group-items {
    display: block !important;
  }

  #navbar1Menu .menu-group::after {
    display: none !important;
    content: none !important;
  }

  #navbar1Menu .menu-group-btn .caret {
    transform: rotate(90deg);
  }
}

/* =========================================================
   Navbar1 desktop stacked group polish
   Adds spacing between expanded groups and makes link buttons pop.
   ========================================================= */
@media (min-width: 821px) {

  /* Give expanded group contents breathing room before next group */
  #navbar1Menu .menu-group:hover,
  #navbar1Menu .menu-group:focus-within,
  #navbar1Menu .menu-group.open {
    margin-bottom: 14px !important;
  }

  /* Add a little bottom space inside the expanded item stack */
  #navbar1Menu .menu-group-items {
    padding-bottom: 10px !important;
  }

  /* Make actual link buttons more noticeable */
  #navbar1Menu .menu-group-items .button,
  #navbar1Menu .menu-group-items button.button {
    background: rgba(37, 99, 235, 0.13) !important;
    border-color: rgba(96, 165, 250, 0.34) !important;
    color: #eaf3ff !important;
    box-shadow: inset 3px 0 0 rgba(96, 165, 250, 0.82) !important;
  }

  #navbar1Menu .menu-group-items .button:hover,
  #navbar1Menu .menu-group-items button.button:hover {
    background: rgba(37, 99, 235, 0.24) !important;
    border-color: rgba(147, 197, 253, 0.58) !important;
    transform: translateX(2px) !important;
  }
}


