/* V108.1 Sidebar + Dashboard Width Repair
   Fixes dashboards where the sidebar expands to half the page on 100% zoom. */
:root{
  --mkh-fixed-sidebar: 244px;
  --mkh-main-gutter: clamp(18px, 2.4vw, 34px);
}

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

.admin-shell,
.portal-shell,
.partner-app-shell{
  width:100%!important;
  max-width:100%!important;
  overflow-x:hidden!important;
}

/* Keep the portal/admin/partner menu as a real left rail on desktop and laptop widths. */
.admin-shell > .row,
.portal-shell > .row,
.partner-app-shell > .row{
  display:grid!important;
  grid-template-columns: var(--mkh-fixed-sidebar) minmax(0, 1fr)!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  min-height:100vh!important;
  align-items:stretch!important;
  flex-wrap:nowrap!important;
}

.admin-shell .admin-sidebar,
.portal-shell .portal-sidebar,
.partner-app-shell .portal-sidebar,
.partner-app-shell .partner-sidebar{
  width:var(--mkh-fixed-sidebar)!important;
  max-width:var(--mkh-fixed-sidebar)!important;
  min-width:var(--mkh-fixed-sidebar)!important;
  flex:0 0 var(--mkh-fixed-sidebar)!important;
  box-sizing:border-box!important;
  position:sticky!important;
  top:0!important;
  height:100vh!important;
  min-height:100vh!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:22px 16px!important;
}

.admin-shell main,
.portal-shell main,
.partner-app-shell main,
.admin-shell main.col-xl-10,
.portal-shell main.col-xl-10,
.partner-app-shell main.col-xl-10{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  flex:1 1 auto!important;
  margin:0!important;
  overflow-x:hidden!important;
}

/* Remove old centered/max-width dashboard behavior that creates a blank strip on the right. */
.dashboard-topbar,
.admin-v105-page,
.v104-main,
.v106-main,
.partner-main,
.portal-page-shell,
.m89-wrap,
.admin-shell main > .p-4,
.portal-shell main > .p-4{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding-left:var(--mkh-main-gutter)!important;
  padding-right:var(--mkh-main-gutter)!important;
  box-sizing:border-box!important;
}

.dashboard-topbar{
  padding-top:22px!important;
  padding-bottom:18px!important;
}

.admin-v105-page,
.v104-main,
.v106-main,
.partner-main{
  padding-top:22px!important;
  padding-bottom:44px!important;
}

/* Sidebar typography should be compact and readable, not huge. */
.admin-sidebar .small,
.portal-sidebar .small,
.partner-sidebar .small{
  font-size:.78rem!important;
  line-height:1.42!important;
  margin-bottom:.9rem!important;
}

.admin-sidebar .side-nav,
.portal-sidebar .side-nav,
.partner-sidebar .side-nav{
  gap:.24rem!important;
}

.admin-sidebar .side-nav a,
.portal-sidebar .side-nav a,
.partner-sidebar .side-nav a{
  min-height:34px!important;
  padding:7px 10px!important;
  border-radius:12px!important;
  font-size:.82rem!important;
  line-height:1.1!important;
  white-space:normal!important;
}

.admin-sidebar .text-uppercase,
.portal-sidebar .text-uppercase,
.partner-sidebar .text-uppercase{
  font-size:.64rem!important;
  letter-spacing:.14em!important;
  margin-top:.6rem!important;
}

.admin-sidebar .btn,
.portal-sidebar .btn,
.partner-sidebar .btn{
  padding:.48rem .7rem!important;
  font-size:.78rem!important;
  line-height:1.15!important;
}

/* Hero/dashboard panels should fit inside the content column. */
.admin-v105-hero,
.v104-hero,
.v106-hero,
.partner-hero-card,
.v108-program-hero{
  max-width:100%!important;
  overflow:hidden!important;
}

.admin-v105-hero h2,
.v104-hero h1,
.v106-hero h2,
.partner-hero-card h2,
.v108-program-hero h1{
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}

.admin-v105-hero-grid,
.v104-hero-grid,
.v106-hero-grid,
.partner-hero-card,
.v108-program-hero{
  gap:clamp(14px, 2vw, 22px)!important;
}

/* Keep grids dense and prevent overflowing cards. */
.admin-v105-stat-grid,
.admin-v105-workgrid,
.admin-v105-shortcuts,
.v104-grid,
.v106-grid,
.v106-strip,
.partner-dashboard-grid,
.partner-detail-grid,
.v108-program-grid,
.v108-program-cards{
  max-width:100%!important;
}

.admin-v105-stat,
.admin-v105-module-card,
.admin-v105-panel,
.v104-card,
.v106-panel,
.partner-panel,
.program-command-card{
  min-width:0!important;
}

/* Laptop/tablet widths: keep the left sidebar. Previous CSS was making it 100%. */
@media (min-width: 992px) and (max-width: 1199.98px){
  :root{ --mkh-fixed-sidebar: 232px; --mkh-main-gutter: 20px; }
  .admin-shell > .row,
  .portal-shell > .row,
  .partner-app-shell > .row{
    display:grid!important;
    grid-template-columns: var(--mkh-fixed-sidebar) minmax(0, 1fr)!important;
    flex-wrap:nowrap!important;
  }
  .admin-shell .admin-sidebar,
  .portal-shell .portal-sidebar,
  .partner-app-shell .portal-sidebar,
  .partner-app-shell .partner-sidebar{
    width:var(--mkh-fixed-sidebar)!important;
    max-width:var(--mkh-fixed-sidebar)!important;
    min-width:var(--mkh-fixed-sidebar)!important;
    flex:0 0 var(--mkh-fixed-sidebar)!important;
    position:sticky!important;
    height:100vh!important;
    min-height:100vh!important;
  }
  .admin-v105-hero-grid,
  .v104-hero-grid,
  .v106-hero-grid,
  .partner-hero-card,
  .v108-program-hero{
    grid-template-columns: minmax(0, 1fr)!important;
  }
}

/* Small screens only: stack the sidebar above content. */
@media (max-width: 991.98px){
  .admin-shell > .row,
  .portal-shell > .row,
  .partner-app-shell > .row{
    display:block!important;
  }
  .admin-shell .admin-sidebar,
  .portal-shell .portal-sidebar,
  .partner-app-shell .portal-sidebar,
  .partner-app-shell .partner-sidebar{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    height:auto!important;
    min-height:auto!important;
    position:relative!important;
    border-radius:0 0 22px 22px!important;
  }
  .admin-sidebar .side-nav,
  .portal-sidebar .side-nav,
  .partner-sidebar .side-nav{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .admin-sidebar .side-nav .admin-nav-group,
  .portal-sidebar .side-nav .admin-nav-group,
  .partner-sidebar .side-nav .admin-nav-group{
    min-width:0!important;
  }
}

@media (max-width: 640px){
  :root{ --mkh-main-gutter: 14px; }
  .admin-sidebar .side-nav,
  .portal-sidebar .side-nav,
  .partner-sidebar .side-nav{
    grid-template-columns:1fr!important;
  }
}
