/* BACTIF app-shell responsive corrections (loaded after the v53 source CSS). */

/* Keep reading measure comfortable on large laptops / desktops instead of edge-to-edge. */
:root{
  --bactif-max: 1240px;
  --bactif-frame: min(var(--bactif-max), calc(100% - (var(--bactif-gutter) * 2))) !important;
}
/* The sidebar repeats the BACTIF logo + wordmark already shown in the top bar. */
.topbar > .header-brand{ display:none !important; }
@media (min-width: 901px){
  .top-menu{ justify-content:flex-end !important; padding-right:56px !important; }
}

/* Mobile app shell: full BACTIF brand in the header, organ rail as a bottom tab bar. */
@media (max-width: 900px){
  .workspace{ margin-left:0 !important; padding-bottom:78px !important; }

  .mobile-brand{ display:none !important; }
  .topbar > .header-brand{
    display:flex !important;
    align-items:center; gap:8px;
    min-width:0 !important; border-right:0 !important; padding-right:0 !important;
    flex:0 1 auto;
  }
  .header-brand .header-mark{ width:34px !important; height:34px !important; }
  .header-brand strong{ font-size:19px !important; letter-spacing:.06em; }
  .header-brand span,
  .header-brand .tagline-words{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    font-size:7.5px !important; word-spacing:2px !important; letter-spacing:.08em;
    white-space:nowrap !important; flex-wrap:nowrap !important; gap:5px !important;
  }
  .header-brand > div{ min-width:0; }
  .top-menu{
    justify-content:flex-end !important;
    gap:2px !important;
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:none;
    padding-right:0 !important;
  }
  .top-menu::-webkit-scrollbar{ display:none; }
  .top-menu > button,
  .top-menu > .auth-text-link{
    display:inline-flex !important;
    white-space:nowrap !important;
    padding-inline:4px !important;
    font-size: clamp(8px, 2.1vw, 10px) !important;
  }

  /* Organ / section rail becomes a glossy bottom tab bar. */
  .sidebar{
    display:flex !important;
    position:fixed !important;
    inset:auto 0 0 0 !important;
    top:auto !important;
    width:100% !important;
    height:auto !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:0 !important;
    padding:6px 6px calc(6px + env(safe-area-inset-bottom)) !important;
    border-right:0 !important;
    border-top:1px solid rgba(255,255,255,.14) !important;
    box-shadow:0 -10px 26px rgba(4,16,34,.38) !important;
    overflow:visible !important;
    z-index:60 !important;
  }
  .sidebar > .brand,
  .sidebar .focus-note,
  .sidebar .side-bottom{ display:none !important; }
  .sidebar nav{
    display:flex !important;
    flex-direction:row !important;
    align-items:stretch !important;
    width:100% !important;
    gap:2px !important;
    overflow-x:hidden !important;
    scrollbar-width:none;
  }
  .sidebar nav::-webkit-scrollbar{ display:none; }
  .sidebar nav button{
    flex:1 1 0 !important;
    min-width:0 !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    gap:2px !important;
    padding:6px 2px !important;
    margin:0 !important;
    font-size:16px !important;
    text-align:center !important;
  }
  .sidebar nav button span,
  .sidebar nav button b{
    display:block !important;
    font-size:8.5px !important;
    line-height:1.15 !important;
    font-weight:600 !important;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .sidebar nav button b{ display:none !important; }
  .sidebar nav button img,
  .sidebar nav button .nav-body-icon{ width:22px !important; height:22px !important; font-size:18px !important; }
}

/* Stack the multi-column clinical grids on phones/small tablets. */
@media (max-width: 900px){
  .assessment-grid,
  .lab-grid,
  .library-grid,
  .legal-grid,
  .condition-columns,
  .contact-layout,
  .department-grid,
  .micro-insight-grid{
    grid-template-columns: 1fr !important;
  }
  .micro-row{
    grid-template-columns: 1fr !important;
  }
  .micro-row > b,
  .row-delete{ margin-top:0 !important; }
}

@media (max-width: 620px){
  .whonet-panel{ margin-inline: var(--bactif-gutter) !important; padding:16px !important; }
  .logic-banner{ flex-direction:column; align-items:flex-start; }
  .organism-result > header{ flex-direction:column; }
}

/* Equal-width cards across the site: every grid child fills its track fully. */
.department-grid > *,
.path-card,
.glass-card{ width:100% !important; max-width:100% !important; min-width:0 !important; }
.department-grid{ align-items:stretch; }

/* Tighter gap between a page title and the first card grid. */
.bactif-page-body > h1{ margin-bottom:8px !important; }

/* Header menu collapsed into a three-bar icon with a vertical dropdown list. */
.menu-dock{ position:relative; margin-left:auto; }
.workspace > .topbar > .menu-dock{
  position:absolute !important;
  top:10px !important;
  right:clamp(10px, 2vw, 22px) !important;
  z-index:3 !important;
  pointer-events:auto !important;
}
.menu-toggle{
  display:flex; flex-direction:column; justify-content:center; gap:3px;
  width:36px; height:36px; padding:8px;
  cursor:pointer; border-radius:10px;
  border:1px solid rgba(255,255,255,.5);
  background:linear-gradient(160deg,#0f6f68,#0a3f52);
  box-shadow:0 6px 16px rgba(4,26,32,.35), inset 0 1px rgba(255,255,255,.28);
}
.menu-toggle i{ display:block; height:2.5px; border-radius:2px; background:#f2fbff; }
.menu-toggle:hover{ filter:brightness(1.12); }
.menu-dock .top-menu.open{
  position:absolute; top:calc(100% + 10px); right:0; z-index:80;
  display:flex !important; flex-direction:column !important; align-items:stretch !important;
  gap:2px !important; min-width:186px; padding:8px !important;
  border-radius:14px; border:1px solid rgba(12,77,73,.16);
  background:linear-gradient(145deg,#effff9 0%,#d9f5ec 52%,#e8f8f7 100%);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  box-shadow:0 18px 40px rgba(6,40,45,.22);
  overflow:visible !important;
}
.menu-dock .top-menu.open > a{
  display:block !important; width:100%; text-align:left;
  padding:10px 12px !important; border-radius:10px;
  font-size:13px !important; color:#0c3f42 !important; white-space:nowrap;
  text-shadow:none !important; -webkit-text-stroke:0 !important;
  -webkit-text-fill-color:currentColor !important; margin-left:0 !important;
}
.menu-dock .top-menu.open > a:hover,
.menu-dock .top-menu.open > a.active{ background:linear-gradient(110deg,#dff6ef,#eef7ff); color:#08302f !important; }
 .menu-dock .top-menu.open > .pricing-menu-item{
   display:block !important; box-sizing:border-box; width:100%; padding:10px 12px !important;
   border-radius:10px; text-align:left; font-size:13px !important;
   font-weight:900 !important; line-height:normal !important; color:#ffd166 !important; cursor:default;
   text-shadow:none !important; -webkit-text-stroke:0 !important;
   -webkit-text-fill-color:currentColor !important; margin:0 !important;
 }
 @media (max-width:900px){
   .menu-dock .top-menu.open > .pricing-menu-item{
     padding:4px 3px !important;
     font-size:8.5px !important;
     line-height:1.5 !important;
   }
 }
.bactif-page-shell .topbar .menu-dock .top-menu.open > a,
.bactif-page-shell .topbar .menu-dock .top-menu.open > a:hover,
.topbar .menu-dock .top-menu.open > a{
  text-shadow:none !important;
  -webkit-text-stroke:0 !important;
  filter:none !important;
   transform:none !important;
 }

/* Keep the assessment page title on one readable line above the wizard boxes. */
.assessment-page-title{
  width:100% !important;
  max-width:1240px !important;
  overflow:visible !important;
  white-space:nowrap !important;
  text-align:center !important;
  line-height:1.15 !important;
  letter-spacing:0 !important;
  font-size:clamp(10px, 2.15vw, 26px) !important;
}
@media (max-width:380px){
  .assessment-page-title{ font-size:10px !important; }
}
@media (min-width:381px) and (max-width:600px){
  .assessment-page-title{ font-size:clamp(11px, 2.7vw, 16px) !important; }
}
