/* V795ei — shared plan control strip, page tabs and anchored Expo Planit branding. */

/* V795eh placed the brand over the live map. V795ei moves it into the fixed control strip. */
#zoomWrap::after{display:none!important;}

.expoPlanitControlStrip{
  position:relative;
  z-index:20;
  flex:0 0 84px;
  height:84px;
  min-height:84px;
  max-height:84px;
  overflow:hidden;
  border-radius:20px;
  background:#fff;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
}
.expoPlanitControlStrip .cardHead{display:none!important;}
.expoPlanitControlStrip .collapsibleBody,
.expoPlanitControlStrip .collapsibleBody.isCollapsed,
.expoPlanitControlStrip .collapsibleBody.is-collapsed{
  display:block!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
}
.expoPlanitStripInner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  width:100%;
  height:100%;
  box-sizing:border-box;
  padding:10px 16px;
}
.expoPlanitStripMain{
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0;
  height:100%;
}
.expoPlanitStripControls{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  flex:0 0 auto;
  min-width:0;
}
.expoPlanitStripControls .segSwitch{
  display:flex!important;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.expoPlanitStripControls .segBtn,
.expoPlanitStripControls .headBtn,
.expoPlanitStripControls .planHeadBtn,
.expoPlanitStripControls #fitBtn,
.expoPlanitStripControls #planResetBtn{
  min-width:94px;
  min-height:42px;
  padding:9px 14px;
  border-radius:999px;
  white-space:nowrap;
}
.expoPlanitStripLegend{
  display:flex;
  align-items:center;
  min-width:0;
  overflow:hidden;
  flex:1 1 auto;
}
.expoPlanitStripLegend > *{
  display:flex!important;
  flex-wrap:wrap;
  align-items:center;
  align-content:center;
  gap:8px!important;
  width:100%;
  min-width:0;
  max-height:62px;
  overflow:auto;
  padding:0!important;
}
.expoPlanitStripLegend .keyFilterHint{display:none!important;}
.expoPlanitStripLegend .keyPill{
  min-height:34px!important;
  padding:6px 10px!important;
  font-size:12px!important;
  white-space:nowrap!important;
}
.expoPlanitStripLegend .keyDot{
  width:12px!important;
  height:12px!important;
  flex-basis:12px!important;
}
.expoPlanitStripBrand{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex:0 0 auto;
  min-width:154px;
  padding-left:18px;
  border-left:1px solid color-mix(in srgb,var(--accentText) 18%,var(--border));
}
.expoPlanitStripBrand img{
  display:block;
  width:clamp(118px, 10vw, 172px);
  max-width:100%;
  height:auto;
  opacity:.64;
  user-select:none;
  pointer-events:none;
}

/* Public/Touchscreen strips use a centred Fit control and a right-aligned brand. */
.publicPlanControlStrip .expoPlanitStripInner{
  grid-template-columns:1fr auto 1fr;
}
.publicPlanControlStrip .expoPlanitStripMain{
  grid-column:2;
  justify-content:center;
}
.publicPlanControlStrip .expoPlanitStripBrand{
  grid-column:3;
  justify-self:end;
}
.publicPlanControlStrip .expoPlanitStripControls #fitBtn{
  min-width:168px;
}

/* Shared full-height tabbed side column for Admin and Exhibitor. */
.workspaceTabsShell{
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
  border:1px solid var(--border)!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:var(--shadow)!important;
}
.workspaceTabsBar{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  flex:0 0 auto;
  min-height:58px;
  border-bottom:1px solid var(--border);
  background:#fff;
}
.workspaceTab{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  padding:12px 8px;
  border:0;
  border-radius:0;
  background:#fff;
  color:var(--accentText);
  font:inherit;
  font-size:clamp(12px,1.05vw,16px);
  line-height:1.05;
  font-weight:950;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:pointer;
}
.workspaceTab + .workspaceTab{border-left:1px solid var(--border);}
.workspaceTab[aria-selected="true"]{
  background:color-mix(in srgb,var(--accent) 9%,white);
}
.workspaceTab[aria-selected="true"]::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:0;
  height:4px;
  border-radius:4px 4px 0 0;
  background:var(--accentText);
}
.workspaceTabsShell > .workspacePanel{
  display:none!important;
  flex:1 1 auto!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:#fff!important;
}
.workspaceTabsShell > .workspacePanel.workspacePanelActive{display:flex!important;flex-direction:column!important;}
.workspaceTabsShell > .workspacePanel > .cardHead{display:none!important;}
.workspaceTabsShell > .workspacePanel.workspacePanelActive > .collapsibleBody,
.workspaceTabsShell > .workspacePanel.workspacePanelActive > .collapsibleBody.isCollapsed,
.workspaceTabsShell > .workspacePanel.workspacePanelActive > .collapsibleBody.is-collapsed{
  display:block!important;
  flex:1 1 auto!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
}
.workspaceTabsShell > #standsCard.workspacePanelActive > .collapsibleBody,
.workspaceTabsShell > #standsCard.workspacePanelActive > .tableWrap{
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  min-height:0!important;
  overflow:hidden!important;
}
.workspaceTabsShell > #standsCard.workspacePanelActive .tableScroll{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
}
.workspaceCategoryBody{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  gap:10px;
  min-height:0;
  padding:14px;
  overflow:hidden;
}
.workspaceCategoryHint{
  flex:0 0 auto;
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
  font-weight:850;
}
.workspaceCategoryList{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:min-content;
  align-content:start;
  gap:8px;
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding-right:2px;
}
.workspaceCategoryList .keyPill{
  width:100%!important;
  min-height:38px!important;
  justify-content:flex-start!important;
  padding:7px 9px!important;
  border-radius:999px!important;
  font-size:13px!important;
  line-height:1.12!important;
  text-align:left!important;
  white-space:normal!important;
}
.workspaceCategoryList .keyPillClear{grid-column:1 / -1!important;}
.workspaceCategoryList .keyDot{
  width:12px!important;
  height:12px!important;
  flex:0 0 12px!important;
}

/* Admin/Exhibitor headers no longer carry plan mode/Fit controls. */
body.adminWorkspaceTabsMode #planCard .planHeadActions,
body.viewerWorkspaceTabsMode #planCard .planControls,
body.publicPlanStripMode #planCard .publicPlanActions{
  display:none!important;
}
body.adminWorkspaceTabsMode #planKeySplitter,
body.viewerWorkspaceTabsMode #planKeySplitter,
body.publicPlanStripMode #planKeySplitter{
  display:none!important;
}
body.adminWorkspaceTabsMode #planViewCategoriesBtn,
body.viewerWorkspaceTabsMode #planViewCategoriesBtn{
  display:none!important;
}

/* Exhibitor privacy notice is now the final item inside Links. */
.viewerPrivacyStorageBlock{
  display:flex;
  flex-direction:column;
  gap:7px;
  width:100%;
  margin-top:auto;
  padding-top:14px;
  border-top:1px solid var(--border);
}
.viewerPrivacyStorageBlock .fpPrivacyStorageOpenBtn{
  width:100%;
  min-height:44px;
}
.viewerPrivacyStorageHint{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
  font-weight:800;
}

@media (min-width:981px){
  body.adminWorkspaceTabsMode #adminSide,
  body.viewerWorkspaceTabsMode #viewerSide{
    display:flex!important;
    height:var(--adminSideH, var(--rightCardH, 100%))!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  body.viewerWorkspaceTabsMode #viewerSide{height:var(--rightCardH, 100%)!important;}
}

@media (max-width:700px){
  .expoPlanitControlStrip{
    grid-column:1 / -1!important;
    order:1!important;
    flex-basis:72px;
    height:72px;
    min-height:72px;
    max-height:72px;
    border-radius:18px;
  }
  .expoPlanitStripInner{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:10px;
    padding:8px 10px;
  }
  .expoPlanitStripMain{
    grid-column:1!important;
    justify-content:flex-start!important;
    gap:6px;
  }
  .expoPlanitStripBrand{
    grid-column:2!important;
    min-width:102px;
    padding-left:12px;
    justify-self:end;
  }
  .expoPlanitStripBrand img{width:clamp(92px,28vw,126px);opacity:.62;}
  .expoPlanitStripControls{gap:5px;min-width:0;}
  .expoPlanitStripControls .segSwitch{gap:5px;}
  .expoPlanitStripControls .segBtn,
  .expoPlanitStripControls .headBtn,
  .expoPlanitStripControls .planHeadBtn,
  .expoPlanitStripControls #fitBtn,
  .expoPlanitStripControls #planResetBtn{
    min-width:0;
    min-height:38px;
    padding:7px 8px;
    font-size:11px;
    border-radius:12px;
  }
  .publicPlanControlStrip .expoPlanitStripControls #fitBtn{min-width:76px;}
  .expoPlanitStripLegend{display:none!important;}

  .workspaceTabsShell{
    grid-column:1 / -1!important;
    order:2!important;
    min-height:420px!important;
    border-radius:18px!important;
  }
  .workspaceTabsBar{min-height:50px;}
  .workspaceTab{
    min-height:50px;
    padding:9px 4px;
    font-size:clamp(10px,3vw,13px);
    letter-spacing:-.02em;
  }
  .workspaceTab[aria-selected="true"]::after{left:8px;right:8px;height:3px;}
  .workspaceCategoryBody{padding:10px;}
  .workspaceCategoryList{gap:7px;}
  .workspaceCategoryList .keyPill{min-height:40px!important;padding:7px 8px!important;font-size:12px!important;}
  .workspaceCategoryList .keyDot{width:11px!important;height:11px!important;flex-basis:11px!important;}

  body.adminWorkspaceTabsMode #planCard,
  body.viewerWorkspaceTabsMode #planCard,
  body.publicPlanStripMode #planCard{order:0!important;}
}

@media print{
  .expoPlanitControlStrip,.workspaceTabsShell{box-shadow:none!important;}
}

/* V795ei Public My list uses the same full-height column rhythm as Exhibitors. */
body.publicDirectoryMode #publicDirectoryShell #visitorListBody{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
  min-height:0!important;
}
body.publicDirectoryMode #publicDirectoryShell #visitorListItems{
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  width:100%!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
}
body.publicDirectoryMode #publicDirectoryShell .visitorListItem,
body.publicDirectoryMode #publicDirectoryShell .visitorListItemMain{width:100%!important;box-sizing:border-box!important;}
body.publicDirectoryMode #publicDirectoryShell #visitorListActions{
  margin-top:auto!important;
  padding-top:10px!important;
}

/* Critical sizing overrides must beat the older page-local ID rules. */
#planKeyCard.expoPlanitControlStrip,
#keyCard.expoPlanitControlStrip,
#publicPlanControlStrip.expoPlanitControlStrip{
  display:block!important;
  flex:0 0 84px!important;
  height:84px!important;
  min-height:84px!important;
  max-height:84px!important;
  overflow:hidden!important;
}
#planKeyCard.expoPlanitControlStrip #planKeyBodyWrap,
#keyCard.expoPlanitControlStrip #keyBodyWrap{
  display:block!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
}
.workspaceTab.hasActiveFilter::before{
  content:"";
  position:absolute;
  top:9px;
  right:9px;
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--accentText);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accentText) 16%,white);
}
@media (max-width:700px){
  #planKeyCard.expoPlanitControlStrip,
  #keyCard.expoPlanitControlStrip,
  #publicPlanControlStrip.expoPlanitControlStrip{
    flex-basis:72px!important;
    height:72px!important;
    min-height:72px!important;
    max-height:72px!important;
  }
}

@media (min-width:981px){
  body.adminWorkspaceTabsMode #adminSide{
    height:calc(var(--rightCardH) + 96px)!important;
    min-height:calc(var(--rightCardH) + 96px)!important;
    max-height:calc(var(--rightCardH) + 96px)!important;
  }
  body.adminWorkspaceTabsMode #leftCol,
  body.viewerWorkspaceTabsMode #leftCol,
  body.publicPlanStripMode #leftCol{
    min-height:0!important;
  }
}

/* V795ei completion: keep the Exhibitor workspace aligned with the complete
   plan-plus-control-strip column, and let Links/Selected use the full tab body. */
@media (min-width:981px){
  body.viewerWorkspaceTabsMode #viewerSide{
    height:var(--leftColH, calc(var(--rightCardH) + 96px))!important;
    min-height:var(--leftColH, calc(var(--rightCardH) + 96px))!important;
    max-height:var(--leftColH, calc(var(--rightCardH) + 96px))!important;
  }
}
.workspaceTabsShell > #websiteLinksCard.workspacePanelActive > .websiteLinksBody{
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
}
.workspaceTabsShell > #selectedCard.workspacePanelActive > .miniPanel{
  display:block!important;
  flex:1 1 auto!important;
  width:100%!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
}

/* V795ej — desktop plan-header branding, stable Exhibitor tabs and matched columns. */
@media (min-width:981px){
  /* Public + Touchscreen: the plan header is the permanent home for Fit and
     Expo Planit branding. The lower control strip remains phone-only. */
  body.publicPlanStripMode #publicPlanControlStrip{
    display:none!important;
  }
  body.publicPlanStripMode #planCard .cardHead{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(190px,280px) minmax(190px,1fr)!important;
    align-items:center!important;
    gap:14px!important;
  }
  body.publicPlanStripMode #planCard .publicPlanTitleBlock{
    grid-column:1!important;
    min-width:0!important;
  }
  body.publicPlanStripMode #planCard .publicPlanActions{
    display:none!important;
  }
  .expoPlanitDesktopPlanHeaderFit{
    display:inline-flex!important;
    grid-column:2!important;
    justify-self:stretch!important;
    align-self:center!important;
    width:100%!important;
    min-width:190px!important;
    min-height:38px!important;
    padding:8px 24px!important;
    border-radius:999px!important;
    font-size:15px!important;
    font-weight:900!important;
  }
  .expoPlanitDesktopPlanHeaderBrand{
    display:flex!important;
    grid-column:3!important;
    align-items:center!important;
    justify-content:flex-end!important;
    min-width:0!important;
    padding-left:18px!important;
  }
  .expoPlanitDesktopPlanHeaderBrand img{
    display:block!important;
    width:clamp(112px,9vw,150px)!important;
    max-width:100%!important;
    height:auto!important;
    opacity:.62!important;
    pointer-events:none!important;
    user-select:none!important;
  }

  /* Admin follows the proven Exhibitor full-viewport proportions instead of
     extending below the browser and forcing document scrolling. */
  html:has(body.adminWorkspaceTabsMode),
  body.adminWorkspaceTabsMode{
    height:100%!important;
    min-height:100%!important;
    overflow:hidden!important;
  }
  body.adminWorkspaceTabsMode{
    display:flex!important;
    flex-direction:column!important;
    height:100dvh!important;
    min-height:100dvh!important;
  }
  body.adminWorkspaceTabsMode .eventBrandBar{
    flex:0 0 auto!important;
  }
  body.adminWorkspaceTabsMode main{
    flex:1 1 auto!important;
    min-height:0!important;
    align-items:stretch!important;
    overflow:hidden!important;
  }
  body.adminWorkspaceTabsMode #leftCol,
  body.adminWorkspaceTabsMode #adminSide,
  body.viewerWorkspaceTabsMode #leftCol,
  body.viewerWorkspaceTabsMode #viewerSide{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
  }
  body.adminWorkspaceTabsMode #leftCol,
  body.viewerWorkspaceTabsMode #leftCol{
    display:flex!important;
    flex-direction:column!important;
  }
  body.adminWorkspaceTabsMode #planCard{
    display:flex!important;
    flex:1 1 auto!important;
    flex-direction:column!important;
    height:auto!important;
    min-height:0!important;
  }
  body.adminWorkspaceTabsMode #zoomWrap{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
  }
  body.adminWorkspaceTabsMode #adminSide,
  body.viewerWorkspaceTabsMode #viewerSide{
    align-self:stretch!important;
  }
  body.adminWorkspaceTabsMode .workspaceTabsShell,
  body.viewerWorkspaceTabsMode .workspaceTabsShell{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
  }

  /* Admin and Exhibitor use the same control/legend baseline and spacing. */
  body.adminWorkspaceTabsMode .expoPlanitStripMain,
  body.viewerWorkspaceTabsMode .expoPlanitStripMain{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:center!important;
    gap:16px!important;
    width:100%!important;
  }
  body.adminWorkspaceTabsMode .expoPlanitStripControls,
  body.viewerWorkspaceTabsMode .expoPlanitStripControls,
  body.adminWorkspaceTabsMode .expoPlanitStripLegend,
  body.viewerWorkspaceTabsMode .expoPlanitStripLegend{
    align-self:center!important;
  }
  body.adminWorkspaceTabsMode .expoPlanitStripLegend > *,
  body.viewerWorkspaceTabsMode .expoPlanitStripLegend > *{
    align-items:center!important;
    align-content:center!important;
    height:auto!important;
    min-height:0!important;
    max-height:62px!important;
  }
}

@media (max-width:980px){
  .expoPlanitDesktopPlanHeaderFit,
  .expoPlanitDesktopPlanHeaderBrand{
    display:none!important;
  }
}
