/* 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;
  left:9px;
  right:auto;
  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;
  }
}


/* V795er — desktop header split guard. Data paths and polling unchanged. */
@media (min-width:981px) and (max-width:1500px){
  body.adminHeaderControlsMode .expoPlanitHeaderLayout,
  body.viewerHeaderControlsMode .expoPlanitHeaderLayout{
    grid-template-columns:minmax(250px,286px) minmax(0,1fr) auto!important;
    gap:10px!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderMain,
  body.viewerHeaderControlsMode .expoPlanitHeaderMain{
    gap:8px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls{gap:7px!important;}
  body.adminHeaderControlsMode .expoPlanitHeaderLegend .keyPill,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend .keyPill{
    padding-left:7px!important;
    padding-right:7px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLayout > .expoPlanitStripBrand,
  body.viewerHeaderControlsMode .expoPlanitHeaderLayout > .expoPlanitStripBrand{
    min-width:118px!important;
    padding-left:12px!important;
  }
}


/* V795er — Admin desktop plan surface parity with Exhibitor.
   The desktop frame is measured from the settled banner position and the plan
   uses one flex surface: header + live viewport. Legacy map/key variables no
   longer participate in desktop sizing. */
#planCard > .adminPlanSurface{
  width:100%;
  min-width:0;
}
@media (min-width:981px){
  html:has(body.adminHeaderControlsMode){
    height:100%!important;
    overflow:hidden!important;
  }
  body.adminHeaderControlsMode{
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
  }
  body.adminHeaderControlsMode main{
    flex:0 0 var(--adminDesktopFrameH, calc(100dvh - 156px))!important;
    width:100%!important;
    height:var(--adminDesktopFrameH, calc(100dvh - 156px))!important;
    min-height:0!important;
    max-height:var(--adminDesktopFrameH, calc(100dvh - 156px))!important;
    overflow:hidden!important;
    align-items:stretch!important;
  }
  body.adminHeaderControlsMode #leftCol,
  body.adminHeaderControlsMode #adminSide{
    align-self:stretch!important;
    width:auto!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }
  body.adminHeaderControlsMode #leftCol{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
  }
  body.adminHeaderControlsMode #planCard{
    display:block!important;
    flex:1 1 0!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }
  body.adminHeaderControlsMode #planCard > .adminPlanSurface{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }
  body.adminHeaderControlsMode #planCard > .adminPlanSurface > .cardHead{
    flex:0 0 84px!important;
    width:100%!important;
    height:84px!important;
    min-height:84px!important;
    max-height:84px!important;
  }
  body.adminHeaderControlsMode #planCard > .adminPlanSurface > #zoomWrap{
    display:block!important;
    flex:1 1 0!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
  }
  body.adminHeaderControlsMode #zoomSvgHost,
  body.adminHeaderControlsMode #zoomSvgHost > svg{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
  }
  body.adminHeaderControlsMode #planKeySplitter,
  body.adminHeaderControlsMode #planKeyCard{
    display:none!important;
    flex:0 0 0!important;
    width:0!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }
}
@media (max-width:980px){
  #planCard > .adminPlanSurface{
    display:block;
    height:auto;
    min-height:0;
  }
}


/* V795er — stacked Admin/Exhibitor header controls and compact Touchscreen categories.
   Layout only. Polling, D1/R2, auth, saves and exhibitor cards are unchanged. */
@media (min-width:981px){
  /* The control buttons form the first centred row; the active status or
     stand-type key pills form the second. This removes the horizontal squeeze
     that previously forced a conservative side-column limit. */
  body.adminHeaderControlsMode .expoPlanitHeaderMain,
  body.viewerHeaderControlsMode .expoPlanitHeaderMain{
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    padding-top:4px!important;
    padding-bottom:4px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls{
    width:100%!important;
    min-height:34px!important;
    justify-content:center!important;
    flex-wrap:nowrap!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend{
    width:100%!important;
    max-width:100%!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    justify-content:center!important;
    overflow:hidden!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend > *,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend > *{
    width:auto!important;
    max-width:100%!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    flex-wrap:nowrap!important;
    align-content:center!important;
    justify-content:center!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }

  /* The Touchscreen category directory now uses the same compact proportions
     as Admin, Exhibitor and Public. */
  body.touchscreenMode #keyBodyWrap .keyBody{
    gap:9px!important;
    padding:14px!important;
  }
  body.touchscreenMode #keyBodyWrap .keyRow{
    gap:8px!important;
  }
  body.touchscreenMode .keyPill{
    min-height:32px!important;
    height:auto!important;
    padding:5px 8px!important;
    border-radius:999px!important;
    font-size:11.5px!important;
    line-height:1.08!important;
  }
  body.touchscreenMode .keyDot{
    width:10px!important;
    height:10px!important;
    flex:0 0 10px!important;
  }
}

/* V795es — refined stacked Admin/Exhibitor header controls.
   Visual-only polish: slimmer primary controls, smaller secondary key pills,
   tighter row rhythm and lighter shadows. */
@media (min-width:981px){
  body.adminHeaderControlsMode .expoPlanitHeaderMain,
  body.viewerHeaderControlsMode .expoPlanitHeaderMain{
    gap:3px!important;
    padding-top:3px!important;
    padding-bottom:3px!important;
  }

  body.adminHeaderControlsMode .expoPlanitHeaderControls,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls{
    min-height:30px!important;
    gap:7px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls .segSwitch,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls .segSwitch{
    gap:7px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls .segBtn,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #planResetBtn,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #fitBtn,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls .segBtn,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #planResetBtn,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #fitBtn{
    min-height:30px!important;
    height:30px!important;
    padding:2px 12px!important;
    border-radius:999px!important;
    font-size:10.5px!important;
    line-height:1!important;
    box-shadow:0 3px 9px rgba(0,0,0,.045)!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls #planViewPlanBtn,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #planViewPlanBtn{
    min-width:80px!important;
  }

  body.adminHeaderControlsMode .expoPlanitHeaderLegend,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend{
    height:24px!important;
    min-height:24px!important;
    max-height:24px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend > *,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend > *{
    height:24px!important;
    min-height:24px!important;
    max-height:24px!important;
    gap:5px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend .keyPill,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend .keyPill{
    min-height:23px!important;
    height:23px!important;
    padding:2px 7px!important;
    font-size:9.5px!important;
    line-height:1!important;
    box-shadow:none!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend .keyDot,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend .keyDot{
    width:8px!important;
    height:8px!important;
    flex:0 0 8px!important;
  }
}

/* V795et — professionally balanced stacked Admin/Exhibitor header controls.
   CSS-only desktop refinement: slimmer primary controls, a clearer two-tier
   gap and optically centred breathing room without changing header height,
   divider geometry, plan sizing or the flexible side-column range. */
@media (min-width:981px){
  body.adminHeaderControlsMode .expoPlanitHeaderMain,
  body.viewerHeaderControlsMode .expoPlanitHeaderMain{
    gap:8px!important;
    padding-top:0!important;
    padding-bottom:0!important;
  }

  body.adminHeaderControlsMode .expoPlanitHeaderControls,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls{
    min-height:28px!important;
    gap:6px!important;
    position:relative!important;
    top:-1px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls .segSwitch,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls .segSwitch{
    gap:6px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls .segBtn,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #planResetBtn,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #fitBtn,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls .segBtn,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #planResetBtn,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #fitBtn{
    min-height:28px!important;
    height:28px!important;
    padding:1px 11px!important;
    position:relative!important;
    font-size:10.5px!important;
    line-height:1!important;
    box-shadow:0 2px 7px rgba(0,0,0,.04)!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls .segBtn::before,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #planResetBtn::before,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #fitBtn::before,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls .segBtn::before,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #planResetBtn::before,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #fitBtn::before{
    content:"";
    position:absolute;
    inset:-3px 0;
  }

  body.adminHeaderControlsMode .expoPlanitHeaderLegend,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend{
    height:22px!important;
    min-height:22px!important;
    max-height:22px!important;
    position:relative!important;
    top:-1px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend > *,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend > *{
    height:22px!important;
    min-height:22px!important;
    max-height:22px!important;
    gap:5px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend .keyPill,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend .keyPill{
    min-height:22px!important;
    height:22px!important;
    padding:1px 7px!important;
    position:relative!important;
    font-size:9.25px!important;
    line-height:1!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend .keyPill::before,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend .keyPill::before{
    content:"";
    position:absolute;
    inset:-2px 0;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend .keyDot,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend .keyDot{
    width:7px!important;
    height:7px!important;
    flex:0 0 7px!important;
  }
}

/* V795eu — clear button/legend hierarchy for Admin and Exhibitor desktop.
   The upper row is unmistakably interactive; the lower row reads as a flat
   colour legend. Stand-type is protected from wrapping at every supported
   desktop side-column width. Header and plan geometry remain unchanged. */
@media (min-width:981px){
  body.adminHeaderControlsMode .expoPlanitHeaderControls .segBtn,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #planResetBtn,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #fitBtn,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls .segBtn,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #planResetBtn,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #fitBtn{
    min-width:70px!important;
    white-space:nowrap!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
    flex:0 0 auto!important;
    border:1px solid color-mix(in srgb,var(--accentText) 15%,var(--border))!important;
    background:linear-gradient(180deg,#fff 0%,color-mix(in srgb,var(--accentText) 2%,#f4f4f4) 100%)!important;
    box-shadow:
      0 1px 0 rgba(255,255,255,.95) inset,
      0 2px 0 rgba(0,0,0,.075),
      0 5px 11px rgba(0,0,0,.055)!important;
    cursor:pointer!important;
    transition:transform .12s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease,color .16s ease!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls #planViewPlanBtn,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #planViewPlanBtn{
    min-width:90px!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls .segBtn:hover,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #planResetBtn:hover,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #fitBtn:hover,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls .segBtn:hover,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #planResetBtn:hover,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #fitBtn:hover{
    transform:translateY(-1px)!important;
    border-color:color-mix(in srgb,var(--accentText) 25%,var(--border))!important;
    box-shadow:
      0 1px 0 rgba(255,255,255,.95) inset,
      0 3px 0 rgba(0,0,0,.07),
      0 7px 13px rgba(0,0,0,.07)!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls .segBtn:active,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #planResetBtn:active,
  body.adminHeaderControlsMode .expoPlanitHeaderControls #fitBtn:active,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls .segBtn:active,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #planResetBtn:active,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #fitBtn:active{
    transform:translateY(1px)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 1px 2px rgba(0,0,0,.06)!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderControls .segBtn.active,
  body.adminHeaderControlsMode .expoPlanitHeaderControls .segBtn[aria-pressed="true"],
  body.viewerHeaderControlsMode .expoPlanitHeaderControls .segBtn.active,
  body.viewerHeaderControlsMode .expoPlanitHeaderControls .segBtn[aria-pressed="true"]{
    color:var(--accentText)!important;
    border-color:color-mix(in srgb,var(--accentText) 38%,var(--border))!important;
    background:linear-gradient(
      180deg,
      color-mix(in srgb,var(--accentText) 8%,white) 0%,
      color-mix(in srgb,var(--accentText) 15%,white) 100%
    )!important;
    box-shadow:
      0 1px 0 rgba(255,255,255,.72) inset,
      0 2px 0 color-mix(in srgb,var(--accentText) 22%,rgba(0,0,0,.08)),
      0 5px 11px color-mix(in srgb,var(--accentText) 12%,transparent)!important;
  }

  body.adminHeaderControlsMode .expoPlanitHeaderLegend .keyPill,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend .keyPill{
    min-height:22px!important;
    height:22px!important;
    padding:1px 5px!important;
    border-color:transparent!important;
    border-radius:4px!important;
    background:transparent!important;
    box-shadow:none!important;
    color:var(--muted)!important;
    font-weight:850!important;
    transform:none!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend .keyPill:hover,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend .keyPill:hover,
  body.adminHeaderControlsMode .expoPlanitHeaderLegend .keyPill:active,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend .keyPill:active{
    background:transparent!important;
    box-shadow:none!important;
    transform:none!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend .keyPill[disabled],
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend .keyPill[disabled],
  body.adminHeaderControlsMode .expoPlanitHeaderLegend span.keyPill,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend span.keyPill{
    cursor:default!important;
  }
  body.adminHeaderControlsMode .expoPlanitHeaderLegend .keyDot,
  body.viewerHeaderControlsMode .expoPlanitHeaderLegend .keyDot{
    box-shadow:0 0 0 1px rgba(0,0,0,.07)!important;
  }
}

/* V795ev — Exhibitor desktop control-row containment.
   The Exhibitor plan switch retains its original nested .segSwitch wrapper,
   whereas Admin's equivalent sizing is not affected by the viewer's local
   layout rules. Flatten the viewer switch into an explicit three-column
   control row so Stand-type, Status and Fit match Admin and can never stretch,
   reorder or overlap. Visual styling and all plan/header geometry are kept. */
@media (min-width:981px){
  body.viewerHeaderControlsMode .expoPlanitHeaderControls{
    display:grid!important;
    grid-template-columns:90px 70px 70px!important;
    grid-template-rows:28px!important;
    align-items:center!important;
    justify-content:center!important;
    column-gap:6px!important;
    row-gap:0!important;
    width:max-content!important;
    max-width:100%!important;
    min-width:0!important;
  }
  body.viewerHeaderControlsMode .expoPlanitHeaderControls .segSwitch{
    display:contents!important;
  }
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #planViewPlanBtn{
    grid-column:1!important;
    grid-row:1!important;
    width:90px!important;
    min-width:90px!important;
    max-width:90px!important;
  }
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #planViewStatusBtn{
    grid-column:2!important;
    grid-row:1!important;
    width:70px!important;
    min-width:70px!important;
    max-width:70px!important;
  }
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #fitBtn{
    grid-column:3!important;
    grid-row:1!important;
    width:70px!important;
    min-width:70px!important;
    max-width:70px!important;
    position:relative!important;
    inset:auto!important;
    margin:0!important;
  }
  body.viewerHeaderControlsMode .expoPlanitHeaderControls #planViewCategoriesBtn[hidden]{
    display:none!important;
  }
}
