/* Claw/NXT true mobile shell - independent drawer, no zoom scaling */
:root{--nxt-mobile-header-h:72px;--nxt-mobile-drawer-w:min(86vw,340px)}
html{width:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{overflow-x:hidden;min-width:0!important;}
img,video,canvas,svg{max-width:100%;height:auto;}
.nxt-mobile-topbar,.nxt-mobile-backdrop,.nxt-mobile-drawer{display:none;}
.table-responsive,.dataTables_wrapper,.card,.modal-content{max-width:100%;}

@media (max-width:1199.98px){
  .page-content{padding-left:1rem!important;padding-right:1rem!important;}
  .container-fluid{max-width:100%!important;}
}

@media (max-width:991.98px){
  html,body{width:100%!important;max-width:100%!important;min-width:0!important;zoom:1!important;transform:none!important;}
  body.nxt-mobile-nav-open{overflow:hidden!important;}

  /* Hide only the desktop sidebar on mobile. The JS creates a clean mobile drawer from the same links. */
  aside.panel-sidebar,
  .navbar-vertical.panel-sidebar{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  #layout-wrapper,.main-content,.page-wrapper,.page,.content,.page-body{
    margin-left:0!important;
    padding-left:0!important;
    left:0!important;
    right:auto!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    transform:none!important;
  }

  .panel-topbar{display:none!important;}
  .page-content,.page-body{
    padding:calc(var(--nxt-mobile-header-h) + .9rem) .85rem 1rem!important;
  }
  .container,.container-fluid{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding-left:.75rem!important;
    padding-right:.75rem!important;
  }

  /* Fixed mobile topbar */
  .nxt-mobile-topbar{
    position:fixed!important;top:0!important;left:0!important;right:0!important;
    z-index:2147483000!important;height:var(--nxt-mobile-header-h);
    display:flex!important;align-items:center;justify-content:space-between;gap:.7rem;
    padding:.72rem .85rem;background:linear-gradient(180deg,rgba(10,17,32,.98),rgba(5,11,23,.96));
    border-bottom:1px solid rgba(0,172,172,.22);box-shadow:0 12px 28px rgba(0,0,0,.38);
    backdrop-filter:blur(12px);
  }
  .nxt-mobile-left,.nxt-mobile-actions{display:flex;align-items:center;gap:.72rem;min-width:0;}
  .nxt-mobile-brand{min-width:0;line-height:1.05;}
  .nxt-mobile-title{display:block;max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-weight:800;font-size:1.02rem;}
  .nxt-mobile-subtitle{display:block;max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#91a1be;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;}
  .nxt-mobile-menu-btn,.nxt-mobile-admin-btn{
    width:48px;height:48px;border-radius:1rem;border:1px solid rgba(0,172,172,.28);
    background:rgba(0,172,172,.09);color:#e9ffff;display:inline-flex;align-items:center;justify-content:center;
    font-size:1.45rem;line-height:1;box-shadow:none;cursor:pointer;
  }

  /* Independent mobile drawer */
  .nxt-mobile-drawer{
    position:fixed!important;top:0!important;left:0!important;bottom:0!important;
    width:var(--nxt-mobile-drawer-w)!important;max-width:340px!important;height:100dvh!important;
    display:block!important;z-index:2147483100!important;background:#07101f!important;color:#dbeafe!important;
    transform:translateX(-105%)!important;transition:transform .22s ease!important;
    border-right:1px solid rgba(0,172,172,.26);box-shadow:22px 0 70px rgba(0,0,0,.58);
    overflow:hidden!important;visibility:visible!important;opacity:1!important;
  }
  body.nxt-mobile-nav-open .nxt-mobile-drawer{transform:translateX(0)!important;}
  .nxt-mobile-drawer-head{height:var(--nxt-mobile-header-h);display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid rgba(0,172,172,.16);}
  .nxt-mobile-drawer-brand{display:flex;align-items:center;gap:.65rem;min-width:0;flex:1 1 auto;}
  .nxt-mobile-drawer-logo{display:flex;align-items:center;justify-content:center;flex:0 0 auto;max-width:132px;min-width:0;}
  .nxt-mobile-drawer-logo img{display:block!important;max-width:128px!important;max-height:42px!important;width:auto!important;height:auto!important;object-fit:contain!important;}
  .nxt-mobile-drawer-title{min-width:0;color:#fff;font-weight:800;font-size:1rem;line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .nxt-mobile-drawer-close{width:40px;height:40px;border-radius:.85rem;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#fff;font-size:1.5rem;line-height:1;display:flex;align-items:center;justify-content:center;}
  .nxt-mobile-drawer-scroll{height:calc(100dvh - var(--nxt-mobile-header-h));overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:.75rem .7rem 5rem;}

  .nxt-mobile-drawer ul,.nxt-mobile-drawer li{list-style:none!important;margin:0!important;padding:0!important;width:100%!important;}
  .nxt-mobile-drawer .nav-item{display:block!important;margin:.12rem 0!important;}
  .nxt-mobile-drawer .nav-link,
  .nxt-mobile-drawer a.nav-link{
    display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:.72rem!important;
    width:100%!important;min-height:46px!important;padding:.72rem .8rem!important;margin:0!important;border-radius:.85rem!important;
    color:#dbeafe!important;text-decoration:none!important;background:transparent!important;text-align:left!important;
    white-space:normal!important;overflow:hidden!important;opacity:1!important;visibility:visible!important;position:relative!important;left:auto!important;right:auto!important;transform:none!important;
  }
  .nxt-mobile-drawer .nav-link.active,
  .nxt-mobile-drawer .nav-link:hover{background:rgba(0,172,172,.13)!important;color:#fff!important;}
  .nxt-mobile-drawer .nav-link-icon,
  .nxt-mobile-drawer .nav-link i{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 1.55rem;width:1.55rem;min-width:1.55rem;color:#31d5d0!important;font-size:1.05rem;}
  .nxt-mobile-drawer .nav-link-title,
  .nxt-mobile-drawer span.nav-link-title{display:block!important;flex:1 1 auto!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:inherit!important;opacity:1!important;visibility:visible!important;font-size:.96rem!important;line-height:1.25!important;}
  .nxt-mobile-drawer .collapse,
  .nxt-mobile-drawer .collapse:not(.show),
  .nxt-mobile-drawer .nxt-mobile-accordion-panel{
    display:none!important;height:auto!important;visibility:visible!important;opacity:1!important;overflow:hidden!important;
  }
  .nxt-mobile-drawer .collapse.show,
  .nxt-mobile-drawer .nxt-mobile-accordion-panel.show{
    display:block!important;overflow:visible!important;
  }
  .nxt-mobile-drawer .nxt-mobile-accordion-toggle::after{
    content:"▾";margin-left:auto!important;font-size:.82rem;opacity:.75;transition:transform .18s ease;
  }
  .nxt-mobile-drawer .nxt-mobile-accordion-toggle:not(.collapsed)::after{transform:rotate(180deg);}
  .nxt-mobile-drawer .dropdown-toggle::after{margin-left:auto!important;opacity:.65;}
  .nxt-mobile-drawer .panel-subnav{padding-left:.2rem!important;margin:.08rem 0 .35rem!important;}
  .nxt-mobile-drawer .panel-subnav .nav-link{padding-left:2.25rem!important;min-height:42px!important;font-size:.92rem!important;color:#b8c4d6!important;}
  .nxt-mobile-drawer .panel-subnav-nested .nav-link{padding-left:2.85rem!important;font-size:.88rem!important;}

  .nxt-mobile-backdrop{position:fixed!important;inset:0!important;z-index:2147483050!important;background:rgba(0,0,0,.58)!important;backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .22s ease;display:block!important;}
  body.nxt-mobile-nav-open .nxt-mobile-backdrop{opacity:1!important;pointer-events:auto!important;}

  /* Manual mobile admin menu. Does not depend on Bootstrap dropdown JS. */
  .nxt-mobile-actions{position:static!important;}
  .nxt-mobile-admin-menu{
    display:none!important;position:fixed!important;top:calc(var(--nxt-mobile-header-h) + .55rem)!important;right:.75rem!important;left:auto!important;
    width:min(292px,calc(100vw - 1.5rem))!important;max-height:calc(100dvh - var(--nxt-mobile-header-h) - 1rem)!important;overflow:auto!important;
    z-index:2147483300!important;border-radius:1rem!important;background:#0a1324!important;border:1px solid rgba(0,172,172,.22)!important;box-shadow:0 24px 70px rgba(0,0,0,.56)!important;padding:.5rem!important;
  }
  body.nxt-mobile-admin-open .nxt-mobile-admin-menu,.nxt-mobile-admin-menu.show{display:block!important;}
  .nxt-mobile-admin-menu .dropdown-header{color:#93a4bf!important;padding:.55rem .75rem!important;}
  .nxt-mobile-admin-menu .dropdown-item{display:block!important;color:#e5f4ff!important;border-radius:.7rem!important;padding:.82rem .85rem!important;white-space:normal!important;}
  .nxt-mobile-admin-menu .dropdown-item:hover{background:rgba(0,172,172,.14)!important;color:#fff!important;}
  .nxt-mobile-admin-menu .dropdown-divider{border-color:rgba(255,255,255,.1)!important;}

  .card{border-radius:1rem!important;}.card-body,.card-header,.card-footer{padding:1rem!important;}.row{--tblr-gutter-x:.85rem;}.btn,.form-control,.form-select,input,select,textarea{min-height:42px;font-size:16px!important;}.dataTables_wrapper .row{gap:.45rem;}.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_length{text-align:left!important;width:100%;}.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length select{width:100%!important;margin:.35rem 0 0!important;}table.dataTable,.table{width:100%!important;}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;}.footer{margin:.75rem .85rem 1rem!important;}
}

@media (max-width:575.98px){
  :root{--nxt-mobile-header-h:70px;--nxt-mobile-drawer-w:88vw;}
  .page-content,.page-body{padding-left:.65rem!important;padding-right:.65rem!important;}
  .container,.container-fluid{padding-left:.55rem!important;padding-right:.55rem!important;}
  .nxt-mobile-topbar{padding-left:.7rem!important;padding-right:.7rem!important;}
  .nxt-mobile-menu-btn,.nxt-mobile-admin-btn{width:46px;height:46px;}
  .nxt-mobile-title,.nxt-mobile-subtitle{max-width:46vw;}
  .card-title,.page-title{font-size:1.05rem!important;}
}

/* NXT mobile polish upgrades: touch targets, sticky shell, responsive tables */
@media (max-width: 991.98px){
  .nxt-mobile-topbar{
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
  }

  .nxt-touch-target,
  .nxt-mobile-drawer a.nav-link,
  .nxt-mobile-admin-menu .dropdown-item{
    min-height: 44px !important;
    display: inline-flex;
    align-items: center;
  }

  .nxt-mobile-drawer a.nav-link,
  .nxt-mobile-admin-menu .dropdown-item{
    display: flex !important;
  }

  .nxt-table-scroll{
    border-radius: .9rem;
    border: 1px solid rgba(255,255,255,.07);
  }

  .card,
  .modal-content,
  .dropdown-menu{
    -webkit-tap-highlight-color: transparent;
  }
}

@media (max-width: 575.98px){
  table.nxt-responsive-table.nxt-card-table,
  .nxt-card-table thead,
  .nxt-card-table tbody,
  .nxt-card-table th,
  .nxt-card-table td,
  .nxt-card-table tr{
    display: block !important;
    width: 100% !important;
  }

  table.nxt-responsive-table thead{
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  table.nxt-responsive-table tbody tr{
    display: block !important;
    margin: 0 0 .85rem !important;
    padding: .75rem !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    border-radius: 1rem !important;
    background: rgba(255,255,255,.025) !important;
  }

  table.nxt-responsive-table tbody td{
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 1rem !important;
    width: 100% !important;
    padding: .62rem .25rem !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.06) !important;
    white-space: normal !important;
    text-align: right !important;
  }

  table.nxt-responsive-table tbody td:last-child{
    border-bottom: 0 !important;
  }

  table.nxt-responsive-table tbody td::before{
    content: attr(data-label);
    flex: 0 0 42%;
    max-width: 42%;
    text-align: left !important;
    color: #8fa3bf;
    font-weight: 700;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .03em;
  }

  table.nxt-responsive-table tbody td:empty::before{
    content: '';
  }
}
