/*
 * BADGERS CLAW RESPONSIVE ENGINE
 * RC22 consolidated responsive/sidebar layout contract.
 *
 * Authoritative breakpoints:
 *   desktop > 1200px: 260px fixed sidebar
 *   tablet/Fold 700px–1200px: 240px–250px drawer
 *   phone < 700px: 220px drawer
 */


/* ===== migrated from badger-responsive-safe-bb162.css ===== */

/* BB162 safe responsive layer.
   This file controls only the outer application shell and mobile navigation.
   It deliberately does NOT restyle module cards, rows, grids, forms, or columns. */

html,body{max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
img,svg,video,canvas{max-width:100%;height:auto;}
.main-content,.page-content,.page-body{min-width:0;}
.table-responsive,.nxt-table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}

/* Keep the existing desktop/tablet module geometry untouched. */
@media (min-width:1200px){
  .nxt-mobile-topbar,.nxt-mobile-drawer,.nxt-mobile-backdrop,.nxt-mobile-admin-menu{display:none!important;}
}

/* Mobile shell only. Module internals retain their own CSS and simply scroll when needed. */
@media (max-width:1199.98px){
  :root{--bb-safe-header:64px;--bb-safe-drawer:min(86vw,330px);}
  body{overflow-x:hidden!important;}
  .panel-topbar,aside.panel-sidebar,.navbar-vertical.panel-sidebar{display:none!important;}
  #layout-wrapper,.main-content,.page-wrapper{
    width:100%!important;max-width:100%!important;margin-left:0!important;left:0!important;transform:none!important;
  }
  .main-content{padding-top:var(--bb-safe-header)!important;}
  .page-content,.page-body{padding-left:12px!important;padding-right:12px!important;}

  .nxt-mobile-topbar{
    display:flex!important;position:fixed!important;top:0!important;left:0!important;right:0!important;
    height:var(--bb-safe-header)!important;min-height:var(--bb-safe-header)!important;z-index:2147483000!important;
    align-items:center!important;justify-content:space-between!important;padding:8px 12px!important;
  }
  .nxt-mobile-menu-btn,.nxt-mobile-admin-btn{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;
  }
  .nxt-mobile-title{font-size:15px!important;line-height:1.15!important;max-width:48vw!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .nxt-mobile-subtitle{font-size:11px!important;line-height:1.15!important;max-width:48vw!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}

  .nxt-mobile-drawer{
    display:block!important;position:fixed!important;top:0!important;left:0!important;bottom:0!important;
    width:var(--bb-safe-drawer)!important;max-width:330px!important;height:100dvh!important;z-index:2147483100!important;
    transform:translateX(-105%)!important;transition:transform .2s ease!important;overflow:hidden!important;
  }
  body.nxt-mobile-nav-open .nxt-mobile-drawer,.nxt-mobile-drawer.show{transform:translateX(0)!important;}
  .nxt-mobile-drawer-header,.nxt-mobile-drawer-head{
    height:var(--bb-safe-header)!important;min-height:var(--bb-safe-header)!important;padding:8px 10px!important;
    display:flex!important;align-items:center!important;
  }
  .nxt-mobile-drawer-scroll{height:calc(100dvh - var(--bb-safe-header))!important;overflow-y:auto!important;padding:8px 8px 48px!important;}
  .nxt-mobile-drawer .nav-link,.nxt-mobile-drawer a.nav-link{
    display:flex!important;align-items:center!important;min-height:44px!important;padding:8px 10px!important;gap:8px!important;
  }
  .nxt-mobile-drawer .nav-link img,.nxt-mobile-drawer .sidebar-module-icon{width:30px!important;height:30px!important;object-fit:contain!important;}
  .nxt-mobile-drawer .nav-link-title{font-size:14px!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}

  .nxt-mobile-backdrop{
    display:block!important;position:fixed!important;inset:0!important;z-index:2147483050!important;
    opacity:0!important;pointer-events:none!important;transition:opacity .2s ease!important;
  }
  body.nxt-mobile-nav-open .nxt-mobile-backdrop{opacity:1!important;pointer-events:auto!important;}

  .nxt-mobile-admin-menu{
    display:none!important;position:fixed!important;top:calc(var(--bb-safe-header) + 8px)!important;right:10px!important;
    width:min(300px,calc(100vw - 20px))!important;max-height:calc(100dvh - var(--bb-safe-header) - 16px)!important;
    overflow:auto!important;z-index:2147483200!important;
  }
  body.nxt-mobile-admin-open .nxt-mobile-admin-menu,.nxt-mobile-admin-menu.show{display:block!important;}


  /* Fold/tablet drawer corrections */
  .nxt-mobile-drawer{width:min(78vw,360px)!important;max-width:360px!important;}
  .nxt-mobile-drawer .navbar-brand img,
  .nxt-mobile-drawer .nxt-mobile-logo,
  .nxt-mobile-drawer-header img,
  .nxt-mobile-drawer-head img{max-width:180px!important;max-height:48px!important;width:auto!important;height:auto!important;object-fit:contain!important;}
  .nxt-mobile-drawer .nav-link,.nxt-mobile-drawer a.nav-link{min-height:52px!important;padding:7px 10px!important;border-radius:12px!important;}
  .nxt-mobile-drawer .nav-link img,.nxt-mobile-drawer .sidebar-module-icon{width:34px!important;height:34px!important;flex:0 0 34px!important;}
  .nxt-mobile-drawer .nav-link-title{font-size:14px!important;}

  /* Never force module grids/columns/cards into a new display mode. */
  .module-shell,.module-page,.module-content,.module-panel{max-width:100%;min-width:0;}
}

@media (max-width:480px){
  :root{--bb-safe-header:60px;--bb-safe-drawer:min(90vw,315px);}
  .page-content,.page-body{padding-left:8px!important;padding-right:8px!important;}
}


/* ===== migrated from badger-sidebar-no-autohide-fold7.css ===== */

/* Badger Fold/mobile sidebar — single opaque drawer, no hover/auto-hide behavior. */

/* Desktop keeps the normal fixed sidebar. */
@media (min-width: 1367px) and (hover: hover) and (pointer: fine) {
  aside.panel-sidebar,
  .navbar-vertical.panel-sidebar {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .nxt-mobile-drawer,
  .nxt-mobile-backdrop { display: none !important; }
}

/* Phones, tablets and Fold-class touch screens use only the cloned drawer. */
@media (max-width: 1366px), (hover: none), (pointer: coarse) {
  html, body { max-width: 100% !important; overflow-x: hidden !important; }

  /* Never let the desktop sidebar participate in mobile layout. */
  aside.panel-sidebar,
  .navbar-vertical.panel-sidebar,
  body > aside.panel-sidebar,
  #layout-wrapper > aside.panel-sidebar {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    transform: translateX(-120%) !important;
  }

  .main-content,
  .page-wrapper,
  .page-content,
  #page-wrapper,
  #layout-wrapper,
  body[data-sidebar] .main-content {
    margin-left: 0 !important;
    padding-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .nxt-mobile-drawer {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: min(250px, 72vw) !important;
    min-width: 0 !important;
    max-width: 250px !important;
    height: 100dvh !important;
    z-index: 2147483646 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    background: #0b111b !important;
    background-image: linear-gradient(180deg, #111a28 0%, #090f18 100%) !important;
    border-right: 1px solid rgba(143, 164, 190, .38) !important;
    box-shadow: 18px 0 44px rgba(0, 0, 0, .72) !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate3d(-105%, 0, 0) !important;
    transition: transform .2s ease !important;
    isolation: isolate !important;
  }

  body.nxt-mobile-nav-open .nxt-mobile-drawer,
  body.sidebar-open .nxt-mobile-drawer,
  .nxt-mobile-drawer.show {
    transform: translate3d(0, 0, 0) !important;
  }

  .nxt-mobile-drawer-head {
    position: relative !important;
    flex: 0 0 60px !important;
    min-height: 60px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    padding: 7px 8px 7px 10px !important;
    background: #111a28 !important;
    border-bottom: 1px solid rgba(143, 164, 190, .28) !important;
    overflow: hidden !important;
  }

  .nxt-mobile-drawer-brand {
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    overflow: hidden !important;
  }

  .nxt-mobile-drawer-logo {
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 36px !important;
    overflow: hidden !important;
    border-radius: 10px !important;
  }
  .nxt-mobile-drawer-logo img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    margin: 0 !important;
  }
  .nxt-mobile-drawer-title {
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    color: #f5f8fc !important;
  }
  .nxt-mobile-drawer-close {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 11px !important;
    border: 1px solid rgba(143, 164, 190, .42) !important;
    background: #182231 !important;
    color: #fff !important;
    font-size: 22px !important;
    line-height: 1 !important;
  }

  .nxt-mobile-drawer-scroll {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 10px 6px 26px !important;
    background: #0b111b !important;
    overscroll-behavior: contain !important;
  }

  .nxt-mobile-drawer .navbar-nav,
  .nxt-mobile-drawer ul {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .nxt-mobile-drawer .nxt-sidebar-category {
    margin: 0 0 14px !important;
  }
  .nxt-mobile-drawer .nxt-sidebar-category-title {
    padding: 7px 4px 7px !important;
    font-size: 11px !important;
    line-height: 1.1 !important;
  }
  .nxt-mobile-drawer .nxt-sidebar-app-list {
    gap: 7px !important;
    padding: 0 !important;
  }
  .nxt-mobile-drawer .nxt-sidebar-app-link {
    width: 100% !important;
    min-height: 44px !important;
    padding: 5px 7px !important;
    gap: 10px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(143, 164, 190, .35) !important;
    background: linear-gradient(180deg, #202a39 0%, #111925 100%) !important;
    box-shadow: none !important;
    color: #fff !important;
    transform: none !important;
  }
  .nxt-mobile-drawer .nxt-sidebar-app-icon {
    width: 31px !important;
    height: 31px !important;
    min-width: 31px !important;
  }
  .nxt-mobile-drawer .nxt-sidebar-app-img {
    width: 31px !important;
    height: 31px !important;
    object-fit: contain !important;
  }
  .nxt-mobile-drawer .nxt-sidebar-app-text {
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 750 !important;
  }

  .nxt-mobile-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483645 !important;
    display: block !important;
    background: rgba(0, 0, 0, .64) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity .2s ease, visibility .2s ease !important;
  }
  body.nxt-mobile-nav-open .nxt-mobile-backdrop,
  body.sidebar-open .nxt-mobile-backdrop {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  body.nxt-mobile-nav-open,
  body.sidebar-open { overflow: hidden !important; }
}


/* BADGER_ADAPTIVE_SIDEBAR_V6_START
   One responsive width contract for desktop, Fold/tablet, and phones. */
:root {
  --badger-adaptive-sidebar-width: 260px;
}

/* Desktop: fixed 260px sidebar. */
@media (min-width: 1201px) and (hover: hover) and (pointer: fine) {
  aside.panel-sidebar,
  .navbar-vertical.panel-sidebar,
  .panel-sidebar {
    width: var(--badger-adaptive-sidebar-width) !important;
    min-width: var(--badger-adaptive-sidebar-width) !important;
    max-width: var(--badger-adaptive-sidebar-width) !important;
    flex: 0 0 var(--badger-adaptive-sidebar-width) !important;
  }
  .main-content,
  .page-wrapper {
    margin-left: var(--badger-adaptive-sidebar-width) !important;
  }
}

/* Tablet / Fold landscape: fluid 240–250px drawer. */
@media (min-width: 700px) and (max-width: 1200px) {
  :root {
    --badger-adaptive-sidebar-width: clamp(240px, 24vw, 250px);
  }
  body .nxt-mobile-drawer,
  .nxt-mobile-drawer {
    width: var(--badger-adaptive-sidebar-width) !important;
    min-width: var(--badger-adaptive-sidebar-width) !important;
    max-width: var(--badger-adaptive-sidebar-width) !important;
    flex-basis: var(--badger-adaptive-sidebar-width) !important;
  }
}

/* Phone: compact fixed 220px drawer. */
@media (max-width: 699.98px) {
  :root {
    --badger-adaptive-sidebar-width: 220px;
  }
  body .nxt-mobile-drawer,
  .nxt-mobile-drawer {
    width: var(--badger-adaptive-sidebar-width) !important;
    min-width: var(--badger-adaptive-sidebar-width) !important;
    max-width: var(--badger-adaptive-sidebar-width) !important;
    flex-basis: var(--badger-adaptive-sidebar-width) !important;
  }
}
/* BADGER_ADAPTIVE_SIDEBAR_V6_END */


/* ===== migrated from topbar.php #nxt-fold-tablet-sidebar-fix-v1 ===== */

@media (max-width:991.98px){
  html,body{font-size:16px!important;max-width:100%!important;overflow-x:hidden!important;zoom:1!important;}
  .page-content,.page-body{padding-top:calc(var(--bb-safe-header,64px) + 12px)!important;padding-left:12px!important;padding-right:12px!important;}
  .nxt-mobile-drawer{width:min(72vw,250px)!important;max-width:250px!important;min-width:0!important;overflow:hidden!important;}
  .nxt-mobile-drawer-header,.nxt-mobile-drawer-head{width:100%!important;max-width:100%!important;overflow:hidden!important;}
  .nxt-mobile-drawer-scroll{width:100%!important;max-width:100%!important;overflow-x:hidden!important;padding:8px!important;}
  .nxt-mobile-drawer .navbar-nav,.nxt-mobile-drawer ul,.nxt-mobile-drawer li{width:100%!important;max-width:100%!important;min-width:0!important;}
  .nxt-mobile-drawer .nav-link,.nxt-mobile-drawer a.nav-link{width:100%!important;max-width:100%!important;min-width:0!important;min-height:48px!important;padding:7px 9px!important;margin:3px 0!important;font-size:.94rem!important;gap:8px!important;box-sizing:border-box!important;}
  .nxt-mobile-drawer .nav-link-title,.nxt-mobile-drawer .nav-link span{min-width:0!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
  .nxt-mobile-drawer .nav-link img,.nxt-mobile-drawer .sidebar-module-icon{width:32px!important;height:32px!important;min-width:32px!important;max-width:32px!important;object-fit:contain!important;}
  .nxt-mobile-drawer img{max-width:100%!important;height:auto!important;object-fit:contain!important;}
  .nxt-mobile-menu-btn,.nxt-mobile-admin-btn{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;}
}
@media (min-width:600px) and (max-width:991.98px){
  .nxt-mobile-drawer{width:min(34vw,250px)!important;max-width:250px!important;}
}
@media (max-width:480px){
  .nxt-mobile-drawer{width:min(72vw,250px)!important;max-width:250px!important;}
}


/* ===== migrated from topbar.php #nxt-fold-tablet-app-shell-v2 ===== */

/* Treat touch tablets and unfolded phones as app mode instead of desktop-sidebar mode. */
@media (min-width:992px) and (max-width:1366px) and (pointer:coarse){
  html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important;zoom:1!important;}
  #layout-wrapper{padding-left:0!important;margin-left:0!important;width:100%!important;max-width:100%!important;}
  .main-content,.page-wrapper,.page,.content{margin-left:0!important;padding-left:0!important;left:0!important;width:100%!important;max-width:100%!important;}
  aside.panel-sidebar,.navbar-vertical.panel-sidebar,.panel-topbar.hud-topbar-shell{display:none!important;visibility:hidden!important;pointer-events:none!important;}
  body .nxt-mobile-topbar{display:flex!important;visibility:visible!important;pointer-events:auto!important;position:fixed!important;top:0!important;left:0!important;right:0!important;height:64px!important;min-height:64px!important;z-index:2147483000!important;padding:8px 14px!important;}
  body .nxt-mobile-backdrop{display:block!important;}
  .page-content,.page-body{padding-top:78px!important;padding-left:14px!important;padding-right:14px!important;}
  body .nxt-mobile-drawer{display:block!important;width:min(34vw,250px)!important;max-width:250px!important;min-width:220px!important;height:100dvh!important;}
  body .nxt-mobile-drawer-head{height:64px!important;min-height:64px!important;padding:8px 10px!important;}
  body .nxt-mobile-drawer-logo{max-width:92px!important;overflow:hidden!important;}
  body .nxt-mobile-drawer-logo img{max-width:88px!important;max-height:38px!important;width:auto!important;height:auto!important;object-fit:contain!important;}
  body .nxt-mobile-drawer-title{font-size:.9rem!important;line-height:1.1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
  body .nxt-mobile-drawer-close{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;}
  body .nxt-mobile-drawer-scroll{height:calc(100dvh - 64px)!important;padding:7px 7px 48px!important;overflow-x:hidden!important;}
  body .nxt-mobile-drawer .navbar-nav,
  body .nxt-mobile-drawer ul,
  body .nxt-mobile-drawer li{width:100%!important;max-width:100%!important;min-width:0!important;}
  body .nxt-mobile-drawer .nxt-sidebar-app-list{padding-left:6px!important;padding-right:6px!important;gap:5px!important;}
  body .nxt-mobile-drawer .nav-link,
  body .nxt-mobile-drawer a.nav-link,
  body .nxt-mobile-drawer .nxt-sidebar-app-link{width:100%!important;max-width:100%!important;min-width:0!important;min-height:44px!important;padding:6px 8px!important;margin:0!important;border-radius:11px!important;gap:8px!important;font-size:.9rem!important;box-sizing:border-box!important;}
  body .nxt-mobile-drawer .nav-link-icon,
  body .nxt-mobile-drawer .nxt-sidebar-app-icon{width:30px!important;height:30px!important;min-width:30px!important;max-width:30px!important;flex:0 0 30px!important;}
  body .nxt-mobile-drawer .nav-link img,
  body .nxt-mobile-drawer .nxt-sidebar-app-img,
  body .nxt-mobile-drawer .sidebar-module-icon{width:28px!important;height:28px!important;max-width:28px!important;max-height:28px!important;object-fit:contain!important;}
  body .nxt-mobile-drawer .nav-link-title,
  body .nxt-mobile-drawer .nxt-sidebar-app-text,
  body .nxt-mobile-drawer .nav-link span{min-width:0!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:.9rem!important;line-height:1.15!important;}
  body .nxt-mobile-drawer .nxt-sidebar-category-title,
  body .nxt-mobile-drawer .menu-title,
  body .nxt-mobile-drawer .nav-title{font-size:.72rem!important;margin:10px 8px 4px!important;padding:0!important;letter-spacing:.05em!important;}
}


/* ===== RC22 authoritative responsive contract ===== */
:root {
  --badger-sidebar-width: 260px;
  --badger-header-height: 64px;
  --badger-content-gutter: clamp(12px, 1.5vw, 24px);
}

/* Desktop shell: use one offset only. */
@media (min-width: 1201px) and (hover: hover) and (pointer: fine) {
  aside.panel-sidebar,
  .navbar-vertical.panel-sidebar,
  .panel-sidebar {
    width: var(--badger-sidebar-width) !important;
    min-width: var(--badger-sidebar-width) !important;
    max-width: var(--badger-sidebar-width) !important;
    flex: 0 0 var(--badger-sidebar-width) !important;
  }

  #layout-wrapper {
    padding-left: var(--badger-sidebar-width) !important;
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .main-content,
  .page-wrapper,
  .page,
  .content {
    margin-left: 0 !important;
    left: auto !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}

/* Tablet and Fold landscape. */
@media (min-width: 700px) and (max-width: 1200px) {
  :root {
    --badger-sidebar-width: clamp(240px, 24vw, 250px);
  }

  body .nxt-mobile-drawer,
  .nxt-mobile-drawer {
    width: var(--badger-sidebar-width) !important;
    min-width: var(--badger-sidebar-width) !important;
    max-width: var(--badger-sidebar-width) !important;
    flex: 0 0 var(--badger-sidebar-width) !important;
  }
}

/* Phone. */
@media (max-width: 699.98px) {
  :root {
    --badger-sidebar-width: 220px;
  }

  body .nxt-mobile-drawer,
  .nxt-mobile-drawer {
    width: var(--badger-sidebar-width) !important;
    min-width: var(--badger-sidebar-width) !important;
    max-width: var(--badger-sidebar-width) !important;
    flex: 0 0 var(--badger-sidebar-width) !important;
  }
}

/* Touch tablets/Folds use the mobile app shell, without a desktop offset. */
@media (min-width: 992px) and (max-width: 1366px) and (pointer: coarse) {
  #layout-wrapper,
  .main-content,
  .page-wrapper,
  .page,
  .content {
    padding-left: 0 !important;
    margin-left: 0 !important;
    left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}
