/* 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;
}


/* V795em — desktop plan-header correction built from stable V795ei. No polling or data-path changes. */
.workspaceTabShort,.publicDirectoryTabShort{display:inline;}
.workspaceTabLong,.publicDirectoryTabLong{display:none;}

@media (min-width:981px){
  /* Admin and Exhibitor: controls, current key and branding share the enlarged
     floor-plan header. The former lower strip is removed and its height is
     returned to the live plan window. */
  body.adminHeaderControlsMode #planKeyCard,
  body.viewerHeaderControlsMode #keyCard{
    display:none!important;
  }
  body.adminHeaderControlsMode #planKeySplitter,
  body.viewerHeaderControlsMode #planKeySplitter{
    display:none!important;
  }
  body.adminHeaderControlsMode #planCard,
  body.adminHeaderControlsMode #adminSide{
    height:calc(var(--rightCardH) + 96px)!important;
    min-height:calc(var(--rightCardH) + 96px)!important;
    max-height:calc(var(--rightCardH) + 96px)!important;
  }
  body.viewerHeaderControlsMode #planCard,
  body.viewerHeaderControlsMode #viewerSide{
    height:var(--leftColH)!important;
    min-height:var(--leftColH)!important;
    max-height:var(--leftColH)!important;
  }
  body.adminHeaderControlsMode #planCard .cardHead,
  body.viewerHeaderControlsMode #planCard .cardHead{
    display:block!important;
    height:84px!important;
    min-height:84px!important;
    max-height:84px!important;
    padding:0!important;
    overflow:hidden!important;
  }
  body.adminHeaderControlsMode #zoomWrap,
  body.viewerHeaderControlsMode #zoomWrap{
    height:calc(100% - 84px)!important;
  }
  .expoPlanitHeaderLayout{
    display:grid;
    grid-template-columns:minmax(238px,.9fr) minmax(0,2.5fr) auto;
    align-items:center;
    gap:16px;
    width:100%;
    height:100%;
    padding:9px 14px;
  }
  .expoPlanitHeaderText{
    min-width:0;
    color:var(--muted);
    font-size:12px;
    line-height:1.4;
    font-weight:800;
    white-space:nowrap;
  }
  .expoPlanitHeaderText strong{
    color:var(--accentText);
    font-size:15px;
    font-weight:950;
  }
  .expoPlanitHeaderBullet{padding:0 6px;color:var(--muted);}
  .expoPlanitHeaderDesktopText{display:block;}
  .expoPlanitHeaderMobileText{display:none;}
  .expoPlanitHeaderMain{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:16px;
    min-width:0;
    height:100%;
    padding-left:16px;
    border-left:1px solid color-mix(in srgb,var(--accentText) 15%,var(--border));
  }
  .expoPlanitHeaderControls{
    display:flex;
    align-items:center;
    gap:6px;
    min-width:0;
  }
  .expoPlanitHeaderControls .segSwitch{
    display:flex!important;
    align-items:center;
    gap:6px;
    padding:0!important;
    border:0!important;
    background:transparent!important;
  }
  .expoPlanitHeaderControls .segBtn,
  .expoPlanitHeaderControls #planResetBtn,
  .expoPlanitHeaderControls #fitBtn{
    min-width:68px!important;
    min-height:34px!important;
    height:34px!important;
    padding:5px 10px!important;
    border-radius:999px!important;
    font-size:11px!important;
    line-height:1!important;
    box-shadow:0 5px 12px rgba(0,0,0,.05)!important;
  }
  .expoPlanitHeaderControls #planViewPlanBtn{min-width:82px!important;}
  .expoPlanitHeaderLegend{
    display:flex;
    align-items:center;
    min-width:0;
    height:62px;
    overflow:hidden;
  }
  .expoPlanitHeaderLegend > *{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    align-content:center!important;
    gap:6px!important;
    width:100%!important;
    min-width:0!important;
    max-height:62px!important;
    padding:0!important;
    overflow:auto!important;
    scrollbar-width:none;
  }
  .expoPlanitHeaderLegend > *::-webkit-scrollbar{display:none;}
  .expoPlanitHeaderLegend .keyFilterHint{display:none!important;}
  .expoPlanitHeaderLegend .keyPill{
    min-height:28px!important;
    height:28px!important;
    padding:4px 8px!important;
    border-radius:999px!important;
    font-size:10.5px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  .expoPlanitHeaderLegend .keyDot{
    width:10px!important;
    height:10px!important;
    flex:0 0 10px!important;
  }
  .expoPlanitHeaderLayout > .expoPlanitStripBrand{
    min-width:132px;
    padding-left:16px;
    border-left:1px solid color-mix(in srgb,var(--accentText) 15%,var(--border));
  }
  .expoPlanitHeaderLayout > .expoPlanitStripBrand img{
    width:clamp(112px,8.5vw,150px);
    opacity:.62;
  }

  /* Side workspaces use a consistent narrower starting width and shorter labels. */
  .workspaceTabsBar{min-height:52px;}
  .workspaceTab{padding:10px 5px;font-size:13px;letter-spacing:-.015em;}
  .workspaceTabShort{display:inline;}
  .workspaceTabLong{display:none;}
  body.publicDirectoryMode .publicDirectoryTabShort{display:inline;}
  body.publicDirectoryMode .publicDirectoryTabLong{display:none;}
  body.publicDirectoryMode .publicDirectoryTab{font-size:13px!important;padding:10px 4px!important;}

  /* Public Fit stays visually centred inside its pill in the existing lower strip. */
  body.publicPlanStripMode #publicPlanControlStrip .expoPlanitStripControls #fitBtn{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    line-height:1!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }
}

@media (max-width:980px){
  .workspaceTabShort,.publicDirectoryTabShort{display:none;}
  .workspaceTabLong,.publicDirectoryTabLong{display:inline;}
  .expoPlanitHeaderDesktopText{display:none;}
  .expoPlanitHeaderMobileText{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;}
  .expoPlanitHeaderMain,
  .expoPlanitHeaderLayout > .expoPlanitStripBrand{display:none!important;}
  .expoPlanitHeaderLayout{display:block;width:100%;}
}


/* V795em — desktop plan-header correction and stable workspace handoff.
   Built on V795el/V795ei data paths. No polling, D1, R2, auth or save changes. */
@media (min-width:981px){
  /* Centre the complete control + active-key group in the space between the
     two-line help copy and the anchored Expo Planit brand. */
  .expoPlanitHeaderLayout{
    grid-template-columns:minmax(288px,318px) minmax(0,1fr) auto!important;
    gap:16px!important;
    padding:8px 14px!important;
  }
  .expoPlanitHeaderText{
    width:100%!important;
    max-width:318px!important;
    font-size:11.5px!important;
    line-height:1.42!important;
  }
  .expoPlanitHeaderMain{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:12px!important;
    min-width:0!important;
    padding:0 16px!important;
  }
  .expoPlanitHeaderControls{
    display:flex!important;
    flex:0 0 auto!important;
    justify-content:center!important;
  }
  .expoPlanitHeaderLegend{
    display:flex!important;
    flex:0 1 auto!important;
    width:auto!important;
    max-width:min(100%,560px)!important;
    justify-content:center!important;
  }
  .expoPlanitHeaderLegend > *{
    width:auto!important;
    flex-wrap:nowrap!important;
    justify-content:center!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }

  /* Admin now follows the same true viewport-height flex model as the already
     successful Exhibitor layout. The plan viewport grows to the card edge and
     the page itself no longer needs document scrolling. */
  body.adminHeaderControlsMode{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    height:100dvh!important;
    min-height:100dvh!important;
    overflow:hidden!important;
  }
  body.adminHeaderControlsMode .eventBrandBar{
    flex:0 0 auto!important;
  }
  body.adminHeaderControlsMode main{
    flex:1 1 auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow:hidden!important;
    align-items:stretch!important;
  }
  body.adminHeaderControlsMode #leftCol,
  body.adminHeaderControlsMode #adminSide{
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
  }
  body.adminHeaderControlsMode #planCard{
    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;
  }
  body.adminHeaderControlsMode #planCard .cardHead{
    flex:0 0 84px!important;
    height:84px!important;
    min-height:84px!important;
    max-height:84px!important;
  }
  body.adminHeaderControlsMode #zoomWrap{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
  body.adminHeaderControlsMode #adminSide{
    display:flex!important;
    overflow:hidden!important;
  }

  /* The Admin category tab should be compact like the plan-header keys. */
  body.adminWorkspaceTabsMode #adminWorkspaceCategoriesList .keyPill{
    min-height:32px!important;
    height:auto!important;
    padding:5px 8px!important;
    font-size:11.5px!important;
    line-height:1.08!important;
  }
  body.adminWorkspaceTabsMode #adminWorkspaceCategoriesList .keyDot{
    width:10px!important;
    height:10px!important;
    flex:0 0 10px!important;
  }

  /* Public and Touchscreen: the desktop lower strip is removed. Fit is centred
     in the Floor plan header and Expo Planit is anchored at the right. */
  body.publicHeaderControlsMode #publicPlanControlStrip{
    display:none!important;
  }
  body.publicHeaderControlsMode #planCard{
    height:var(--leftColH)!important;
    min-height:var(--leftColH)!important;
    max-height:var(--leftColH)!important;
  }
  body.publicHeaderControlsMode #planCard .cardSurface{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
  }
  body.publicHeaderControlsMode #planCard .cardHead{
    display:grid!important;
    grid-template-columns:minmax(220px,1fr) minmax(190px,1fr) auto!important;
    align-items:center!important;
    gap:16px!important;
    flex:0 0 84px!important;
    width:100%!important;
    height:84px!important;
    min-height:84px!important;
    max-height:84px!important;
    padding:9px 14px!important;
    overflow:hidden!important;
  }
  body.publicHeaderControlsMode #planCard .publicPlanTitleBlock{
    grid-column:1!important;
    min-width:0!important;
  }
  body.publicHeaderControlsMode.publicPlanStripMode #planCard .publicPlanActions{
    display:flex!important;
    grid-column:2!important;
    align-items:center!important;
    justify-content:center!important;
    justify-self:center!important;
    width:100%!important;
    min-width:0!important;
  }
  body.publicHeaderControlsMode #planCard .publicPlanActions #fitBtn{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:168px!important;
    min-height:36px!important;
    padding:8px 24px!important;
    text-align:center!important;
    line-height:1!important;
    border-radius:999px!important;
  }
  body.publicHeaderControlsMode #planCard .expoPlanitPublicHeaderBrand{
    grid-column:3!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    min-width:144px!important;
    height:100%!important;
    padding-left:16px!important;
    border-left:1px solid color-mix(in srgb,var(--accentText) 15%,var(--border))!important;
  }
  body.publicHeaderControlsMode #planCard .expoPlanitPublicHeaderBrand img{
    display:block!important;
    width:clamp(116px,8.5vw,154px)!important;
    max-width:100%!important;
    height:auto!important;
    opacity:.62!important;
    pointer-events:none!important;
    user-select:none!important;
  }
  body.publicHeaderControlsMode #zoomWrap{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }

  /* Dedicated touchscreen desktop proportions. These values are shared by the
     directory column and the QR card so their right edges and widths align. */
  body.touchscreenMode{
    --touchscreenSideW:clamp(310px,22vw,380px);
  }
  body.touchscreenMode main{
    grid-template-columns:minmax(0,1fr) var(--touchscreenSideW)!important;
  }
  body.touchscreenMode #brandingCard.has-touchscreen-qr .brandingFallback{
    padding-right:calc(var(--touchscreenSideW) + 14px)!important;
  }
  body.touchscreenMode #touchscreenHeaderQr{
    width:var(--touchscreenSideW)!important;
  }
  body.touchscreenMode #standsBody{
    padding:12px!important;
  }
  body.touchscreenMode .tableControls{
    gap:8px!important;
  }
  body.touchscreenMode .input{
    min-height:42px!important;
    padding:8px 10px!important;
    font-size:15px!important;
  }
  body.touchscreenMode .tableScroll tr{
    min-height:42px!important;
  }
  body.touchscreenMode .tableScroll th,
  body.touchscreenMode .tableScroll td{
    padding:7px 6px!important;
  }
}

@media (max-width:980px){
  /* Phone/tablet keeps the existing lower control strip for the later phone
     layout pass. The new desktop-only header brand stays out of that layout. */
  .expoPlanitPublicHeaderBrand{display:none!important;}
}


/* V795en — desktop card alignment, compact category pills and stand-list tools.
   Visual/layout only. No polling, D1, R2, auth, exhibitor-card or save changes. */
@media (min-width:981px){
  /* Equal-height divider rules on both sides of the Admin/Exhibitor control
     group. Pseudo-elements avoid different parent heights shortening one line. */
  .expoPlanitHeaderMain,
  .expoPlanitHeaderLayout > .expoPlanitStripBrand{
    position:relative!important;
    border-left:0!important;
  }
  .expoPlanitHeaderMain::before,
  .expoPlanitHeaderLayout > .expoPlanitStripBrand::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:1px;
    height:46px;
    transform:translateY(-50%);
    background:color-mix(in srgb,var(--accentText) 15%,var(--border));
    pointer-events:none;
  }

  /* Admin uses a zero-basis flex main so intrinsic grid/table height cannot
     push the page beyond the viewport. The plan and tab shell stretch to the
     exact remaining height under the event banner. */
  body.adminHeaderControlsMode main{
    flex:1 1 0!important;
    height:0!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
    align-items:stretch!important;
  }
  body.adminHeaderControlsMode #leftCol,
  body.adminHeaderControlsMode #adminSide{
    align-self:stretch!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
  body.adminHeaderControlsMode #planCard{
    flex:1 1 0!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
  body.adminHeaderControlsMode #zoomWrap{
    flex:1 1 0!important;
    height:0!important;
    min-height:0!important;
    max-height:none!important;
  }

  /* All desktop category directories use the compact Admin reference size. */
  .workspaceCategoryList .keyPill{
    min-height:32px!important;
    height:auto!important;
    padding:5px 8px!important;
    font-size:11.5px!important;
    line-height:1.08!important;
  }
  .workspaceCategoryList .keyDot{
    width:10px!important;
    height:10px!important;
    flex:0 0 10px!important;
  }

  /* Public and Touchscreen share one fixed desktop row height. Both columns
     stretch to it, so their rounded bottom edges align exactly. */
  body.publicHeaderControlsMode main{
    height:var(--leftColH)!important;
    min-height:var(--leftColH)!important;
    max-height:var(--leftColH)!important;
    align-items:stretch!important;
  }
  body.publicHeaderControlsMode #leftCol,
  body.publicHeaderControlsMode #publicSide{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    align-self:stretch!important;
  }
  body.publicHeaderControlsMode #planCard{
    flex:1 1 0!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
  }

  /* True card-centre placement: title and logo widths no longer pull Fit off
     centre. The brand remains anchored on the right. */
  body.publicHeaderControlsMode #planCard .cardHead{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
  }
  body.publicHeaderControlsMode.publicPlanStripMode #planCard .publicPlanActions{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    width:auto!important;
    min-width:0!important;
    transform:translate(-50%,-50%)!important;
    z-index:2!important;
  }
  body.publicHeaderControlsMode #planCard .expoPlanitPublicHeaderBrand{
    margin-left:auto!important;
    flex:0 0 auto!important;
  }

  /* Admin Stands: one compact action row and one compact summary row. */
  body.adminWorkspaceTabsMode #standsCard .adminStandSearchRow{
    margin:0!important;
  }
  body.adminWorkspaceTabsMode #standsCard .adminStandSearchRow #search{
    width:100%!important;
    min-width:0!important;
  }
  body.adminWorkspaceTabsMode #standsCard .adminStandActionRow{
    display:grid!important;
    grid-template-columns:minmax(82px,.9fr) minmax(74px,.72fr) minmax(68px,.68fr)!important;
    gap:8px!important;
    width:100%!important;
    margin-top:8px!important;
    flex-wrap:nowrap!important;
  }
  body.adminWorkspaceTabsMode #standsCard .adminStandActionRow #filter,
  body.adminWorkspaceTabsMode #standsCard .adminStandActionRow button{
    width:100%!important;
    min-width:0!important;
    min-height:40px!important;
    padding:8px 10px!important;
    font-size:12px!important;
  }
  body.adminWorkspaceTabsMode #bulkSelectFilteredBtn.isReady{
    color:#fff!important;
    background:var(--accentText)!important;
    border-color:var(--accentText)!important;
    box-shadow:0 8px 18px color-mix(in srgb,var(--accentText) 20%,transparent)!important;
  }
  body.adminWorkspaceTabsMode #bulkSelectFilteredBtn.isReady:hover{
    filter:brightness(.97);
  }
  body.adminWorkspaceTabsMode #standsCard .adminStandListSummary{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    min-height:28px!important;
    margin:6px 0 5px!important;
    color:var(--muted)!important;
  }
  body.adminWorkspaceTabsMode #standsCard .adminStandListSummary .tableCount{
    margin:0!important;
    font-size:12px!important;
  }
}
