/* PREVIEW restore to let-me-see-first (20260923h/e). FS=exec-board-20260920ab seats; dual 3.27/3.60.
 * screenshare-connect-20260927k - NOT locked. Safety from k+ retained (ClearFS/dual-gate/KillNuclear).
 * No Business 10-cam seats. Glass empty bg rgba — not solid #111 FORCE.
 */
/* PREVIEW fullscreen = screenshare-connect-20260922v (seat1 84x64, seat7 y 73%). Not locked until Ivan GO. */
/* RESTORED single fullscreen Exec seats to exec-board-20260920ab (Ivan 2026-09-22 ~8:36pm ET)
 * cache screenshare-connect-20260927n
 * Single pane: original x/y/w/h. Dual split: keep scale(1) enlargement only.
 * Do not change single-pane sizes without new GO.
 */
/* LOCKED Exec seat SIZES + positions for dual/split (Ivan 2026-09-22 ~8:31pm ET)
 * cache screenshare-connect-20260927n | dual cam scale(1)
 * Do not change --seat-N-w/h or dual scale without new Ivan GO.
 * Positions x/y also treated locked (seat7 y last approved 89.50).
 * 1: x=50.00% y=54.50% w=105.34px h=80.26px
 * 2: x=60.00% y=54.50% w=100.32px h=75.24px
 * 3: x=65.50% y=55.00% w=105.34px h=80.26px
 * 4: x=71.00% y=55.80% w=110.35px h=82.76px
 * 5: x=77.00% y=57.00% w=115.37px h=87.78px
 * 6: x=83.20% y=58.00% w=120.38px h=90.29px
 * 7: x=50.00% y=79.00% w=135.43px h=100.32px
 * 8: x=16.80% y=58.00% w=120.38px h=90.29px
 * 9: x=23.00% y=57.00% w=115.37px h=87.78px
 * 10: x=29.00% y=55.80% w=110.35px h=82.76px
 * 11: x=34.50% y=55.00% w=105.34px h=80.26px
 * 12: x=40.00% y=54.50% w=100.32px h=75.24px
 */
/* =============================================================================
   G Meetings — Executive Board UI CSS pack
   PROTOCOL rev 5.3 + Techbot 2 bg-lock
   Offline / drop-in for TechBot → D:\g-meetings (GO only)
   No frameworks. SeatCamBinder GO wire points marked below.
   ============================================================================= */

/* ---------------------------------------------------------------------------
   0) Tokens
   --------------------------------------------------------------------------- */
:root {
  --exec-chrome-h: 22px;
  --exec-chrome-gap: 4px;
  --exec-chrome-pad: 6px 8px;
  --exec-glass-bg: rgba(12, 16, 22, 0.72);
  --exec-glass-border: rgba(255, 255, 255, 0.12);
  --exec-glass-fg: #e8eef6;
  --exec-accent: #81c995;          /* Connection accent */
  --exec-accent-hot: #f0c14b;      /* Special connect hint */
  --exec-seat-radius: 8px;
  --exec-seat-border: rgba(255, 255, 255, 0.35);
  --exec-seat-empty-bg: rgba(8, 10, 14, 0.55);
  --exec-drawer-w: 280px;
  --exec-tab-w: 22px;
  --exec-z-bg: 0;
  --exec-z-seats: 2;
  --exec-z-chrome: 20;
  --exec-z-drawer: 25;
  --exec-z-split: 15;
}

/* ---------------------------------------------------------------------------
   1) Page shell + view modes (on #exec-board-page)
   --------------------------------------------------------------------------- */
#exec-board-page {
  position: relative;
  display: none;                   /* shown when open */
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #0a0c10;
  color: var(--exec-glass-fg);
  box-sizing: border-box;
}

/* Visible when Exec open */
body.exec-open #exec-board-page,
#exec-board-page.exec-open,
#exec-board-page.is-visible {
  display: flex;
  flex-direction: column;
}

/* View modes */
#exec-board-page.exec-view-min {
  /* Compact: chrome strip only; stage collapsed */
  height: auto;
  max-height: 48px;
}
#exec-board-page.exec-view-min #exec-stage {
  display: none;
}
#exec-board-page.exec-view-half {
  /* Half viewport (CSS fallback; Electron may setBounds on GO) */
  height: 50vh;
  max-height: 50vh;
}
#exec-board-page.exec-view-full {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9000;
}

/* ---------------------------------------------------------------------------
   2) Hide classic #videos float bar while Exec open
   --------------------------------------------------------------------------- */
body.exec-open #videos,
#exec-board-page:not([hidden]):not(.exec-view-min) ~ #videos,
body:has(#exec-board-page.is-visible) #videos,
body:has(#exec-board-page.exec-open) #videos,
.exec-open #videos {
  display: none !important;
}

/* ---------------------------------------------------------------------------
   3) Stage + full-bleed room background
   --------------------------------------------------------------------------- */
#exec-stage {
  position: relative;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  overflow: hidden;
  isolation: isolate;

  /* Headrest anchors exec-board-20260914a — Ivan Sep14 screenshots */
  --seat-1-x: 50.00%; --seat-1-y: 54.50%; --seat-1-w: 84px; --seat-1-h: 64px;
  --seat-2-x: 60.00%; --seat-2-y: 54.50%; --seat-2-w: 80px; --seat-2-h: 60px;
  --seat-3-x: 65.50%; --seat-3-y: 55.00%; --seat-3-w: 84px; --seat-3-h: 64px;
  --seat-4-x: 71.00%; --seat-4-y: 55.80%; --seat-4-w: 88px; --seat-4-h: 66px;
  --seat-5-x: 77.00%; --seat-5-y: 57.00%; --seat-5-w: 92px; --seat-5-h: 70px;
  --seat-6-x: 83.20%; --seat-6-y: 58.00%; --seat-6-w: 96px; --seat-6-h: 72px;
  --seat-7-x: 50.00%; --seat-7-y: 73.00%; --seat-7-w: 108px; --seat-7-h: 80px;
  --seat-8-x: 16.80%; --seat-8-y: 58.00%; --seat-8-w: 96px; --seat-8-h: 72px;
  --seat-9-x: 23.00%; --seat-9-y: 57.00%; --seat-9-w: 92px; --seat-9-h: 70px;
  --seat-10-x: 29.00%; --seat-10-y: 55.80%; --seat-10-w: 88px; --seat-10-h: 66px;
  --seat-11-x: 34.50%; --seat-11-y: 55.00%; --seat-11-w: 84px; --seat-11-h: 64px;
  --seat-12-x: 40.00%; --seat-12-y: 54.50%; --seat-12-w: 80px; --seat-12-h: 60px;
}

/* Full-bleed photoreal boardroom under whole Exec setup */
.exec-room-bg {
  position: absolute;
  inset: 0;
  z-index: var(--exec-z-bg);
  pointer-events: none;
  background-image: url("../exec-board-room-bg.png");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

/* Optional <img> twin (if preferred over CSS bg) */
.exec-room-bg > img,
img.exec-room-bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  pointer-events: none;
  user-select: none;
}

/* ---------------------------------------------------------------------------
   4) 12 seats — poker-size cams RIGHT ON TOP of headrests
   GO wire (SeatCamBinder):
     bindPokerSeatVideo(seatIndex, mediaStream|null)
     mounts: #exec-seat-N .seat-cam-mount > video.seat-cam-video
     scheduleSeatCamRefresh() after view/split layout settle
   --------------------------------------------------------------------------- */
.exec-seats-layer {
  position: absolute;
  inset: 0;
  z-index: var(--exec-z-seats);
  pointer-events: none;            /* seats opt-in below */
}

#exec-seat-1,
#exec-seat-2,
#exec-seat-3,
#exec-seat-4,
#exec-seat-5,
#exec-seat-6,
#exec-seat-7,
#exec-seat-8,
#exec-seat-9,
#exec-seat-10,
#exec-seat-11,
#exec-seat-12 {
  position: absolute;
  transform: translate(-50%, -100%); /* bottom on headrest */
  pointer-events: auto;
  box-sizing: border-box;
}

#exec-seat-1  { left: var(--seat-1-x);  top: var(--seat-1-y);  width: var(--seat-1-w);  height: var(--seat-1-h); }
#exec-seat-2  { left: var(--seat-2-x);  top: var(--seat-2-y);  width: var(--seat-2-w);  height: var(--seat-2-h); }
#exec-seat-3  { left: var(--seat-3-x);  top: var(--seat-3-y);  width: var(--seat-3-w);  height: var(--seat-3-h); }
#exec-seat-4  { left: var(--seat-4-x);  top: var(--seat-4-y);  width: var(--seat-4-w);  height: var(--seat-4-h); }
#exec-seat-5  { left: var(--seat-5-x);  top: var(--seat-5-y);  width: var(--seat-5-w);  height: var(--seat-5-h); }
#exec-seat-6  { left: var(--seat-6-x);  top: var(--seat-6-y);  width: var(--seat-6-w);  height: var(--seat-6-h); }
#exec-seat-7  { left: var(--seat-7-x);  top: var(--seat-7-y);  width: var(--seat-7-w);  height: var(--seat-7-h); }
#exec-seat-8  { left: var(--seat-8-x);  top: var(--seat-8-y);  width: var(--seat-8-w);  height: var(--seat-8-h); }
#exec-seat-9  { left: var(--seat-9-x);  top: var(--seat-9-y);  width: var(--seat-9-w);  height: var(--seat-9-h); }
#exec-seat-10 { left: var(--seat-10-x); top: var(--seat-10-y); width: var(--seat-10-w); height: var(--seat-10-h); }
#exec-seat-11 { left: var(--seat-11-x); top: var(--seat-11-y); width: var(--seat-11-w); height: var(--seat-11-h); }
#exec-seat-12 { left: var(--seat-12-x); top: var(--seat-12-y); width: var(--seat-12-w); height: var(--seat-12-h); }

.seat-cam-mount {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: var(--exec-seat-radius);
  overflow: hidden;
  border: 1px solid var(--exec-seat-border);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.55);
  background: var(--exec-seat-empty-bg);
}

.seat-cam-mount > video.seat-cam-video,
.seat-cam-mount video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #111;
}

/* Empty / fail-soft states */
#exec-seat-1.seat-empty .seat-cam-mount,
#exec-seat-2.seat-empty .seat-cam-mount,
#exec-seat-3.seat-empty .seat-cam-mount,
#exec-seat-4.seat-empty .seat-cam-mount,
#exec-seat-5.seat-empty .seat-cam-mount,
#exec-seat-6.seat-empty .seat-cam-mount,
#exec-seat-7.seat-empty .seat-cam-mount,
#exec-seat-8.seat-empty .seat-cam-mount,
#exec-seat-9.seat-empty .seat-cam-mount,
#exec-seat-10.seat-empty .seat-cam-mount,
#exec-seat-11.seat-empty .seat-cam-mount,
#exec-seat-12.seat-empty .seat-cam-mount,
.seat-empty .seat-cam-mount {
  background: var(--exec-seat-empty-bg);
}

.seat-label {
  position: absolute;
  left: 50%;
  bottom: -14px;
  transform: translateX(-50%);
  font: 500 9px/1 system-ui, sans-serif;
  color: rgba(232, 238, 246, 0.85);
  white-space: nowrap;
  text-shadow: 0 1px 2px #000;
  pointer-events: none;
}

.seat-cam-failed .seat-cam-mount::after,
.seat-no-cam .seat-cam-mount::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(10, 12, 16, 0.55);
  pointer-events: none;
}

.seat-host .seat-cam-mount {
  box-shadow: 0 0 0 1px rgba(240, 193, 75, 0.65), 0 1px 4px rgba(0, 0, 0, 0.55);
}

/* ---------------------------------------------------------------------------
   4b) Mute / unmute UI — seat badge + Adv mic toggles
   Distinctions (do not conflate):
     • Local self-mute  = participant muted own mic (Controls mic / seat self)
     • Host force-mute  = Adv per-seat mic toggle (host) → class seat-muted + seat-force-muted
     • Business hear gate = conjunction A/V path (data-gate=businessCanHearExec) — NOT a seat mute
   Controls #room-controls mic button = LOCAL self only; must NOT rebind/fight seat cams
   or clear seatMap / call bindPokerSeatVideo for other seats.
   --------------------------------------------------------------------------- */
.seat-mute-badge {
  display: none;
  position: absolute;
  top: 2px;
  right: 2px;
  z-index: 3;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgba(180, 40, 40, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
  pointer-events: none;
  /* slash-mic glyph via CSS */
  background-image:
    linear-gradient(135deg, transparent 44%, #fff 45%, #fff 55%, transparent 56%),
    radial-gradient(circle at 50% 42%, #fff 0 2px, transparent 2.5px);
  background-size: 100% 100%, 100% 100%;
  background-repeat: no-repeat;
}
.seat-muted .seat-mute-badge,
.seat-force-muted .seat-mute-badge {
  display: block;
}
.seat-force-muted .seat-mute-badge {
  background-color: rgba(200, 120, 20, 0.95); /* host-forced tint */
}
.seat-speaking:not(.seat-muted):not(.seat-force-muted) .seat-cam-mount {
  box-shadow: 0 0 0 1px rgba(129, 201, 149, 0.75), 0 1px 4px rgba(0, 0, 0, 0.55);
}

/* Adv drawer per-seat mic row */
.exec-adv-seat-mics {
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-height: 220px;
  overflow: auto;
}
.exec-adv-mic-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-height: 24px;
  font: 11px/1 system-ui, sans-serif;
}
.exec-adv-mic-row[data-seat-empty="true"] { opacity: 0.45; }
.exec-adv-mic-toggle {
  appearance: none;
  height: 20px;
  min-width: 44px;
  padding: 0 6px;
  border: 1px solid var(--exec-glass-border);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--exec-glass-fg);
  font: 600 10px/1 system-ui, sans-serif;
  cursor: pointer;
}
.exec-adv-mic-toggle[aria-pressed="true"],
.exec-adv-mic-toggle.is-muted {
  background: rgba(180, 40, 40, 0.35);
  color: #ffc9c9;
}
.exec-adv-mic-toggle[aria-pressed="false"]:not(.is-muted) {
  background: rgba(129, 201, 149, 0.18);
}

/* Gate vs mute callout in Adv */
.exec-adv-note {
  margin: 0 0 8px;
  padding: 6px 8px;
  border-radius: 4px;
  background: rgba(240, 193, 75, 0.1);
  border: 1px solid rgba(240, 193, 75, 0.25);
  font: 10px/1.35 system-ui, sans-serif;
  opacity: 0.9;
}

/* Controls mic must not fight seat cams — hint class for TechBot glue */
body.exec-open #room-controls [data-action="toggle-mic"],
body.exec-open #room-controls .rc-mic,
body.exec-open .controls-mic-btn {
  /* visual unchanged; glue: handler = local track.enabled only */
}

/* Perspective nudge for view modes (optional; Half sizes are the locked baseline) */
#exec-board-page.exec-view-full #exec-stage {
  /* Slightly larger PIPs in FS — keep poker, not tiles */
  --seat-1-w: 84px;  --seat-1-h: 64px;
  --seat-2-w: 80px;  --seat-2-h: 60px;
  --seat-3-w: 84px;  --seat-3-h: 64px;
  --seat-4-w: 88px;  --seat-4-h: 66px;
  --seat-5-w: 92px;  --seat-5-h: 70px;
  --seat-6-w: 96px;  --seat-6-h: 72px;
  --seat-7-w: 108px;  --seat-7-h: 80px;
  --seat-8-w: 96px;  --seat-8-h: 72px;
  --seat-9-w: 92px;  --seat-9-h: 70px;
  --seat-10-w: 88px; --seat-10-h: 66px;
  --seat-11-w: 84px; --seat-11-h: 64px;
  --seat-12-w: 80px; --seat-12-h: 60px;
}

/* ---------------------------------------------------------------------------
   5) MINIMUM chrome — upper-right Min | Half | FS + Connect under (~22px)
   --------------------------------------------------------------------------- */
.exec-chrome-ur {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: var(--exec-z-chrome);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--exec-chrome-gap);
  pointer-events: auto;
}

.exec-chrome-modes,
.exec-chrome-connect-row {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  height: var(--exec-chrome-h);
  padding: 0 2px;
  border-radius: 6px;
  background: var(--exec-glass-bg);
  border: 1px solid var(--exec-glass-border);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.exec-chrome-btn {
  appearance: none;
  height: calc(var(--exec-chrome-h) - 4px);
  min-width: 36px;
  padding: 0 8px;
  margin: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--exec-glass-fg);
  font: 600 11px/1 system-ui, sans-serif;
  letter-spacing: 0.02em;
  cursor: pointer;
  opacity: 0.9;
}
.exec-chrome-btn:hover { background: rgba(255, 255, 255, 0.08); opacity: 1; }
.exec-chrome-btn.is-active,
#exec-board-page.exec-view-min  [data-exec-view="min"],
#exec-board-page.exec-view-half [data-exec-view="half"],
#exec-board-page.exec-view-full [data-exec-view="full"] {
  background: rgba(129, 201, 149, 0.22);
  color: #fff;
}

.exec-chrome-btn.exec-connect {
  color: var(--exec-accent);
  min-width: 64px;
}
.exec-chrome-btn.exec-special-connect {
  color: var(--exec-accent-hot);
  min-width: 72px;
}

/* Min title strip (visible in exec-view-min) */
.exec-min-title {
  display: none;
  position: absolute;
  top: 8px;
  left: 40px;                      /* clear Adv tab */
  z-index: var(--exec-z-chrome);
  font: 600 12px/var(--exec-chrome-h) system-ui, sans-serif;
  color: var(--exec-glass-fg);
  opacity: 0.9;
}
#exec-board-page.exec-view-min .exec-min-title { display: block; }

/* ---------------------------------------------------------------------------
   6) Advanced controller — collapsed LEFT edge tab → slim drawer
   Structure + CSS only. JS hooks = data attributes / empty handler comments.
   --------------------------------------------------------------------------- */
.exec-adv-tab {
  position: absolute;
  top: 50%;
  left: 0;
  z-index: var(--exec-z-drawer);
  transform: translateY(-50%);
  width: var(--exec-tab-w);
  height: 72px;
  padding: 0;
  border: 1px solid var(--exec-glass-border);
  border-left: 0;
  border-radius: 0 6px 6px 0;
  background: var(--exec-glass-bg);
  color: var(--exec-glass-fg);
  font: 600 10px/1 system-ui, sans-serif;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  letter-spacing: 0.08em;
  cursor: pointer;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.exec-adv-tab:hover { background: rgba(20, 28, 36, 0.85); }

.exec-adv-drawer {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: var(--exec-z-drawer);
  width: var(--exec-drawer-w);
  max-width: 85vw;
  transform: translateX(-100%);
  transition: transform 160ms ease;
  background: rgba(10, 14, 20, 0.94);
  border-right: 1px solid var(--exec-glass-border);
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.45);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  pointer-events: auto;
}
#exec-board-page.exec-adv-open .exec-adv-drawer {
  transform: translateX(0);
}
#exec-board-page.exec-adv-open .exec-adv-tab {
  left: var(--exec-drawer-w);
}

.exec-adv-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 32px;
  padding: 0 10px;
  border-bottom: 1px solid var(--exec-glass-border);
  font: 600 12px/1 system-ui, sans-serif;
}
.exec-adv-drawer-body {
  flex: 1 1 auto;
  overflow: auto;
  padding: 10px;
  font: 12px/1.4 system-ui, sans-serif;
}
.exec-adv-section {
  margin-bottom: 12px;
}
.exec-adv-section h4 {
  margin: 0 0 6px;
  font: 600 11px/1 system-ui, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.7;
}
.exec-adv-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 26px;
  padding: 2px 0;
}

/* Drawer must not cover room/cams when closed; when open it is edge-docked slim */

/* ---------------------------------------------------------------------------
   7) Conjunction split dual view — vertical Exec | Business (CSS panes only)
   Class on #exec-board-page: exec-conjunction-split
   Exec pane KEEPS bg-lock + poker cams. Business pane = roster stub.
   --------------------------------------------------------------------------- */
#exec-board-page.exec-conjunction-split {
  display: flex;
  flex-direction: row;
  height: 100%;
}
#exec-board-page.exec-conjunction-split > #exec-stage {
  flex: 1 1 50%;
  width: 50%;
  min-width: 0;
}
#exec-board-page.exec-conjunction-split > .exec-biz-pane {
  display: flex;
  flex: 1 1 50%;
  width: 50%;
  min-width: 0;
  position: relative;
  z-index: var(--exec-z-split);
  border-left: 1px solid var(--exec-glass-border);
  background: #0e1218;
  overflow: hidden;
}
/* Hidden unless split */
.exec-biz-pane { display: none; }

.exec-biz-pane-inner {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 10px;
  overflow: auto;
}
.exec-biz-pane-title {
  font: 600 12px/1 system-ui, sans-serif;
  margin-bottom: 8px;
  opacity: 0.85;
}

/* Chrome stays upper-right over the whole page (including split) */
#exec-board-page.exec-conjunction-split .exec-chrome-ur {
  /* still page-absolute */
}

/* ---------------------------------------------------------------------------
   8) Business meeting page — chrome twin stub (NO Business→Exec button)
   Topology B: page binds to bizRoomId; independent of Exec.
   --------------------------------------------------------------------------- */
#business-meeting-page {
  position: relative;
  display: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #0e1218;
  color: var(--exec-glass-fg);
  box-sizing: border-box;
}
body.biz-open #business-meeting-page,
#business-meeting-page.is-visible,
#business-meeting-page.biz-open {
  display: flex;
  flex-direction: column;
}

#business-meeting-page .biz-chrome-ur {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: var(--exec-z-chrome);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--exec-chrome-gap);
}

#business-meeting-page .biz-stage {
  flex: 1 1 auto;
  min-height: 0;
  padding: 40px 12px 12px;
  overflow: auto;
}

/* Intentionally NO .biz-to-exec / Bridge-to-Exec control — ADD-ON asymmetry */

/* View mode twins (optional parity) */
#business-meeting-page.biz-view-min { height: auto; max-height: 48px; }
#business-meeting-page.biz-view-half { height: 50vh; max-height: 50vh; }
#business-meeting-page.biz-view-full {
  position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: 9000;
}

/* ---------------------------------------------------------------------------
   9) Reduced motion
   --------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .exec-adv-drawer { transition: none; }
}


/* Business table BG + 9 cams (Ivan 2026-09-13) */
#business-meeting-page .biz-stage,
#biz-stage.meeting-stage {
  position: relative;
  background: #0e1218 url('../business-meeting-table-bg.png') center / cover no-repeat;
  overflow: hidden;
}
#business-meeting-page .biz-room-bg {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: transparent; /* stage carries image */
}
#biz-stage .seat-cam-mount { z-index: 2; }


/* Half view: much larger room stage */
#exec-board-page.exec-view-half {
  height: min(82vh, 920px) !important;
  max-height: min(82vh, 920px) !important;
  min-height: 520px;
}
#exec-board-page.exec-view-half #exec-stage,
#exec-board-page.exec-view-half .exec-room-bg {
  min-height: 480px;
}
.game-panel-exec .game-panel-body {
  min-height: 480px;
}
#game-board:has(.game-panel-exec) {
  width: min(96vw, 1280px);
  max-width: 96vw;
}
#game-board.exec-mode-half:not(.game-fullscreen) {
  width: min(96vw, 1280px) !important;
  max-width: 96vw !important;
}
#game-board.exec-mode-half:not(.game-fullscreen) #exec-stage.meeting-stage {
  min-height: 520px;
  height: min(78vh, 860px);
}


/* LOCKED ALL fullscreen seats 1-12 (Ivan 2026-09-20 ~9:19pm ET) — do not nudge without new GO
   cache exec-board-20260920ab | transform translate(-50%, -100%)
   1: 50.00%, 54.50% 84x64 | 2: 60.00%, 54.50% 80x60 | 3: 65.50%, 55.00% 84x64
   4: 71.00%, 55.80% 88x66 | 5: 77.00%, 57.00% 92x70 | 6: 83.20%, 58.00% 96x72
   7: 50.00%, 73.00% 108x80
   8: 16.80%, 58.00% 96x72 | 9: 23.00%, 57.00% 92x70 | 10: 29.00%, 55.80% 88x66
   11: 34.50%, 55.00% 84x64 | 12: 40.00%, 54.50% 80x60
*/
/* ######## LOCKED 20260927c — do not modify without Ivan GO ########
   Base seat table (--seat-N-x/y/w/h): drives windowed AND dual-top Executive positions; full room overrides left/top at end of file. */
/* === FORCE layout exec-board-20260920ab — S5/6/8/9 +10% apart +15% up === */
#exec-stage {
  --seat-1-x: 50.00% !important; --seat-1-y: 54.50% !important; --seat-1-w: 84px !important; --seat-1-h: 64px !important;
  --seat-2-x: 60.00% !important; --seat-2-y: 54.50% !important; --seat-2-w: 80px !important; --seat-2-h: 60px !important;
  --seat-3-x: 65.50% !important; --seat-3-y: 55.00% !important; --seat-3-w: 84px !important; --seat-3-h: 64px !important;
  --seat-4-x: 71.00% !important; --seat-4-y: 55.80% !important; --seat-4-w: 88px !important; --seat-4-h: 66px !important;
  --seat-5-x: 77.00% !important; --seat-5-y: 57.00% !important; --seat-5-w: 92px !important; --seat-5-h: 70px !important;
  --seat-6-x: 83.20% !important; --seat-6-y: 58.00% !important; --seat-6-w: 96px !important; --seat-6-h: 72px !important;
  --seat-7-x: 50.00% !important; --seat-7-y: 73.00% !important; --seat-7-w: 108px !important; --seat-7-h: 80px !important;
  --seat-8-x: 16.80% !important; --seat-8-y: 58.00% !important; --seat-8-w: 96px !important; --seat-8-h: 72px !important;
  --seat-9-x: 23.00% !important; --seat-9-y: 57.00% !important; --seat-9-w: 92px !important; --seat-9-h: 70px !important;
  --seat-10-x: 29.00% !important; --seat-10-y: 55.80% !important; --seat-10-w: 88px !important; --seat-10-h: 66px !important;
  --seat-11-x: 34.50% !important; --seat-11-y: 55.00% !important; --seat-11-w: 84px !important; --seat-11-h: 64px !important;
  --seat-12-x: 40.00% !important; --seat-12-y: 54.50% !important; --seat-12-w: 80px !important; --seat-12-h: 60px !important;
}
#exec-seat-1,#exec-seat-2,#exec-seat-3,#exec-seat-4,#exec-seat-5,#exec-seat-6,
#exec-seat-7,#exec-seat-8,#exec-seat-9,#exec-seat-10,#exec-seat-11,#exec-seat-12 {
  position: absolute !important;
  transform: translate(-50%, -100%) !important;
  z-index: 5 !important;
}
#exec-seat-1  { left: var(--seat-1-x) !important;  top: var(--seat-1-y) !important;  width: var(--seat-1-w) !important;  height: var(--seat-1-h) !important; }
#exec-seat-2  { left: var(--seat-2-x) !important;  top: var(--seat-2-y) !important;  width: var(--seat-2-w) !important;  height: var(--seat-2-h) !important; }
#exec-seat-3  { left: var(--seat-3-x) !important;  top: var(--seat-3-y) !important;  width: var(--seat-3-w) !important;  height: var(--seat-3-h) !important; }
#exec-seat-4  { left: var(--seat-4-x) !important;  top: var(--seat-4-y) !important;  width: var(--seat-4-w) !important;  height: var(--seat-4-h) !important; }
#exec-seat-5  { left: var(--seat-5-x) !important;  top: var(--seat-5-y) !important;  width: var(--seat-5-w) !important;  height: var(--seat-5-h) !important; }
#exec-seat-6  { left: var(--seat-6-x) !important;  top: var(--seat-6-y) !important;  width: var(--seat-6-w) !important;  height: var(--seat-6-h) !important; }
#exec-seat-7  { left: var(--seat-7-x) !important;  top: var(--seat-7-y) !important;  width: var(--seat-7-w) !important;  height: var(--seat-7-h) !important; }
#exec-seat-8  { left: var(--seat-8-x) !important;  top: var(--seat-8-y) !important;  width: var(--seat-8-w) !important;  height: var(--seat-8-h) !important; }
#exec-seat-9  { left: var(--seat-9-x) !important;  top: var(--seat-9-y) !important;  width: var(--seat-9-w) !important;  height: var(--seat-9-h) !important; }
#exec-seat-10 { left: var(--seat-10-x) !important; top: var(--seat-10-y) !important; width: var(--seat-10-w) !important; height: var(--seat-10-h) !important; }
#exec-seat-11 { left: var(--seat-11-x) !important; top: var(--seat-11-y) !important; width: var(--seat-11-w) !important; height: var(--seat-11-h) !important; }
#exec-seat-12 { left: var(--seat-12-x) !important; top: var(--seat-12-y) !important; width: var(--seat-12-w) !important; height: var(--seat-12-h) !important; }
.seat-label { font-size: 10px !important; bottom: -14px !important; }
#exec-board-page .exec-chrome, .exec-chrome {
  position: absolute !important; top: 8px !important; right: 8px !important; z-index: 40 !important;
  display: flex !important; flex-direction: row !important; gap: 6px !important; pointer-events: auto !important;
}
.exec-chrome-connect-row { display: inline-flex !important; visibility: visible !important; opacity: 1 !important; z-index: 41 !important; }
.game-chrome-actions .exec-connect-chrome-btn {
  margin-left: 6px; background: #1a5fb4 !important; color: #fff !important; border: 0 !important;
  border-radius: 6px !important; padding: 4px 10px !important; font: 600 12px/1.2 system-ui, sans-serif !important; cursor: pointer !important;
}
.game-chrome-actions .exec-connect-chrome-btn.is-active { background: #c64600 !important; }

/* Conjunction split must fill panel */
.exec-conjunction-split {
  display: flex !important;
  flex-direction: row !important;
  width: 100% !important;
  height: 100% !important;
  /* 20260922c softened */ min-height: 0;
}
.exec-conjunction-split > .exec-pane,
.exec-conjunction-split > .biz-pane {
  flex: 1 1 50% !important;
  width: 50% !important;
  min-width: 0 !important;
  position: relative !important;
  overflow: hidden !important;
}
.exec-conjunction-split > .exec-pane { border-right: 1px solid rgba(255,255,255,0.14) !important; }
.exec-conjunction-split #exec-board-page,
.exec-conjunction-split #business-meeting-page,
.exec-conjunction-split .exec-app {
  width: 100% !important;
  height: 100% !important;
  /* 20260922c softened */ min-height: 0;
}

/* screenshare-connect-20260927c: Link Business dual switch — impossible to miss */
.gmeet-dual-link-btn,
button.gmeet-dual-link-btn,
.game-chrome-actions .gmeet-dual-link-btn,
.exec-chrome-ur .gmeet-dual-link-btn,
.biz-chrome-ur .gmeet-dual-link-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  z-index: 70 !important;
  min-width: 118px !important;
  min-height: 28px !important;
  padding: 6px 14px !important;
  margin-left: 6px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: #1a5fb4 !important;
  color: #fff !important;
  font: 700 12px/1.2 system-ui, sans-serif !important;
  letter-spacing: 0.02em !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.35) !important;
}
.gmeet-dual-link-btn:hover { filter: brightness(1.12) !important; }
.gmeet-dual-link-btn.is-active,
.gmeet-dual-link-btn.is-linked,
.gmeet-dual-link-btn[aria-pressed="true"] {
  background: #c64600 !important;
}
.gmeet-dual-link-row {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 70 !important;
  pointer-events: auto !important;
}
.exec-chrome-ur, .biz-chrome-ur {
  z-index: 70 !important;
  pointer-events: auto !important;
}
#gmeet-dual-debug-badge {
  position: fixed; top: 8px; left: 8px; z-index: 2147483645;
  background: #065f46; color: #fff; font: 700 10px/1 system-ui,sans-serif;
  padding: 4px 8px; border-radius: 6px; pointer-events: none;
  opacity: 0.85;
}



/* === screenshare-connect-20260927c: force visible dual split === */
.game-panel-exec,
.game-panel-exec .game-panel-body,
.game-panel-exec .exec-app.exec-conjunction-open {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  /* 20260922c softened */ min-height: 0;
}
.exec-conjunction-split,
[data-gmeet-dual-split="1"] {
  display: flex !important;
  flex-direction: row !important;
  width: 100% !important;
  height: 100% !important;
  /* 20260922c softened */ min-height: 0;
  align-items: stretch !important;
}
.exec-conjunction-split > .exec-pane,
.exec-conjunction-split > .biz-pane,
[data-gmeet-dual-split="1"] > .exec-pane,
[data-gmeet-dual-split="1"] > .biz-pane {
  flex: 1 1 50% !important;
  width: 50% !important;
  max-width: 50% !important;
  min-width: 0 !important;
  height: 100% !important;
  position: relative !important;
  overflow: hidden !important;
  display: block !important;
}
.exec-conjunction-split > .exec-pane { border-right: 2px solid #22c55e !important; }
.exec-conjunction-split > .biz-pane { background: #0e1218 !important; }


/* === screenshare-connect-20260927c: dual stable + no half for exec/biz === */
#game-board.exec-mode-half:not(.game-fullscreen) {
  /* neutralized — half coerced to full in JS; keep rule inert if class lingers */
  width: 100% !important;
  max-width: 100% !important;
}
#game-board.exec-mode-half:not(.game-fullscreen) #exec-stage.meeting-stage {
  min-height: 0 !important;
  height: 100% !important;
}
.exec-conjunction-split,
[data-gmeet-dual-split="1"] {
  display: flex !important;
  flex-direction: row !important;
  width: 100% !important;
  height: 100% !important;
  align-items: stretch !important;
  min-height: 0 !important;
}
.exec-conjunction-split > .exec-pane,
.exec-conjunction-split > .biz-pane,
[data-gmeet-dual-split="1"] > .exec-pane,
[data-gmeet-dual-split="1"] > .biz-pane {
  flex: 1 1 50% !important;
  width: 50% !important;
  max-width: 50% !important;
  min-width: 0 !important;
  height: 100% !important;
  position: relative !important;
  overflow: hidden !important;
}
.game-panel-exec .game-panel-body,
.game-panel-exec .exec-app.exec-conjunction-open {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-height: 0 !important;
}
/* hide any leftover Half mode buttons in exec/biz chrome */
.game-panel-exec [data-exec-mode="half"],
.game-panel-business [data-exec-mode="half"] {
  display: none !important;
}


/* screenshare-connect-20260927c */
body.exec-open [data-action="exec-view-half"],
body.biz-open [data-action="biz-view-half"],
body.exec-open button.exec-chrome-btn[data-exec-view="half"],
body.biz-open button.exec-chrome-btn[data-exec-view="half"],
#game-board.game-panel-exec [data-action="exec-view-half"],
#game-board [data-action="biz-view-half"] {
  display: none !important;
}
[data-gmeet-nuclear-biz] {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 50% !important;
  z-index: 5000 !important;
  background: #0e1218 !important;
  border-left: 3px solid #22c55e !important;
}
[data-gmeet-left-clamp="1"] {
  max-width: 50% !important;
  width: 50% !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}


/* screenshare-connect-20260927c overlay-only dual */
#game-board.gmeet-dual-left-clamp > .game-panel {
  width: 50% !important;
  max-width: 50% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
#gmeet-nuclear-biz,
[data-gmeet-nuclear-biz] {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 50% !important;
  z-index: 20000 !important;
  background: #0e1218 !important;
  border-left: 3px solid #22c55e !important;
  box-sizing: border-box !important;
  overflow: auto !important;
}
.gmeet-nuclear-biz-inner { padding: 16px; }
.gmeet-nuclear-badge {
  display: inline-block; background: #065f46; color: #fff;
  padding: 6px 10px; border-radius: 8px; font: 700 13px system-ui; margin-bottom: 10px;
}
.gmeet-nuclear-title { color: #86efac; font: 700 16px system-ui; margin-bottom: 8px; }
.gmeet-nuclear-help { color: #94a3b8; font: 13px/1.4 system-ui; margin: 0 0 12px; }
#gmeet-nuclear-unlink {
  padding: 10px 14px; border: 0; border-radius: 10px;
  background: #dc2626; color: #fff; font: 700 13px system-ui; cursor: pointer;
}


/* screenshare-connect-20260927c */
#game-board.gmeet-dual-left-clamp > .game-panel {
  width: 50% !important;
  max-width: 50% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
#game-board:not(.gmeet-dual-left-clamp) > .game-panel {
  width: 100% !important;
  max-width: none !important;
}


/* screenshare-connect-20260927c */
#gmeet-floating-exit-room,
.gmeet-exit-room-btn,
#gmeet-chrome-exit-room {
  background: #dc2626 !important;
  color: #fff !important;
  border: 0 !important;
  cursor: pointer !important;
  font-weight: 700 !important;
}
.game-chrome-close {
  display: inline-flex !important;
  background: #dc2626 !important;
  color: #fff !important;
}


/* screenshare-connect-20260927c */
body:not(.exec-open):not(.biz-open):not(.in-game) #gmeet-floating-link-business,
body:not(.exec-open):not(.biz-open):not(.in-game) #gmeet-floating-exit-room,
body.on-join #gmeet-floating-link-business,
body.on-join #gmeet-floating-exit-room {
  display: none !important;
}
body.gmeet-dual-active #gmeet-nuclear-biz,
#gmeet-nuclear-biz {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 50vw !important;
  z-index: 200000 !important;
  background: #0e1218 !important;
  border-left: 3px solid #22c55e !important;
  box-sizing: border-box !important;
  overflow: auto !important;
  pointer-events: auto !important;
}
body.gmeet-dual-active #game-board,
body.gmeet-dual-active #game-board.gmeet-dual-left-clamp {
  width: 50vw !important;
  max-width: 50vw !important;
  right: auto !important;
}


/* screenshare-connect-20260927c — fit FULL table into dual left half (no crop) */
body.gmeet-dual-active #game-board.gmeet-dual-left-clamp,
body.gmeet-dual-active #game-board.gmeet-dual-fit {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  bottom: 0 !important;
  width: 50vw !important;
  max-width: 50vw !important;
  height: 100vh !important;
  overflow: hidden !important;
  z-index: 150000 !important;
}
/* Scale full-stage content to fit inside the half pane */
body.gmeet-dual-active #game-board .game-panel,
body.gmeet-dual-active #game-board .game-panel-body,
body.gmeet-dual-active #game-board .exec-app {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  overflow: hidden !important;
}
body.gmeet-dual-active .gmeet-dual-fit-stage,
body.gmeet-dual-active #game-board #exec-stage,
body.gmeet-dual-active #game-board #exec-board-page,
body.gmeet-dual-active #game-board .meeting-stage {
  transform: scale(0.5) !important;
  transform-origin: top left !important;
  width: 200% !important;
  height: 200% !important;
  max-width: none !important;
}
/* Right Business overlay */
body.gmeet-dual-active #gmeet-nuclear-biz,
#gmeet-nuclear-biz {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 50vw !important;
  z-index: 200000 !important;
  background: #0b1220 !important;
  border-left: 3px solid #22c55e !important;
  overflow: auto !important;
}
.gmeet-dual-biz-preview {
  position: relative;
  width: 100%;
  height: min(52vh, 420px);
  overflow: hidden;
  border-radius: 10px;
  background: #111827;
  margin: 10px 0 14px;
  border: 1px solid rgba(255,255,255,0.08);
}
.gmeet-dual-biz-preview .gmeet-dual-fit-stage,
.gmeet-dual-biz-preview #biz-stage,
.gmeet-dual-biz-preview .meeting-stage {
  transform: scale(0.5);
  transform-origin: top left;
  width: 200%;
  height: 200%;
}


/* screenshare-connect-20260927c — Dual TOP/BOTTOM (full-width tables) */
body.gmeet-dual-active.gmeet-dual-tb #game-board.gmeet-dual-top,
body.gmeet-dual-tb #game-board[data-gmeet-dual-pane="top"] {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100vw !important;
  max-width: 100vw !important;
  height: 50vh !important;
  max-height: 50vh !important;
  overflow: hidden !important;
  z-index: 150000 !important;
  background: #0a0c10 !important;
}
body.gmeet-dual-active.gmeet-dual-tb #gmeet-nuclear-biz,
body.gmeet-dual-tb #gmeet-nuclear-biz {
  position: fixed !important;
  top: 50vh !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  height: 50vh !important;
  z-index: 200000 !important;
  background: #0b1220 !important;
  border-left: none !important;
  border-top: 3px solid #22c55e !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
body.gmeet-dual-tb .gmeet-dual-biz-preview {
  width: 100%;
  height: calc(50vh - 120px);
  max-height: none;
  margin: 8px 0;
  overflow: hidden;
  position: relative;
  background: #111827;
  border-radius: 8px;
}
body.gmeet-dual-tb #game-board .game-panel,
body.gmeet-dual-tb #game-board .game-panel-body,
body.gmeet-dual-tb #game-board .exec-app {
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
}
/* Kill side-by-side left-clamp rules while TB active */
body.gmeet-dual-tb #game-board.gmeet-dual-left-clamp {
  width: 100vw !important;
  max-width: 100vw !important;
  height: 50vh !important;
}


/* screenshare-connect-20260927c */
body.gmeet-dual-tb #game-board #exec-stage .exec-room-bg,
body.gmeet-dual-tb #game-board .meeting-stage .exec-room-bg,
body.gmeet-dual-tb .gmeet-dual-fit-stage .exec-room-bg {
  background-size: 100% 100% !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}
body:not(.gmeet-dual-active) #gmeet-nuclear-biz,
body:not(.gmeet-dual-active) [data-gmeet-nuclear-biz] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body:not(.gmeet-dual-active) #game-board.gmeet-dual-top,
body:not(.gmeet-dual-active) #game-board.gmeet-dual-left-clamp {
  position: static !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  max-height: none !important;
  inset: auto !important;
  z-index: auto !important;
}


/* screenshare-connect-20260927c — bigger Exec seat cams in dual TOP pane (positions locked) */
body.gmeet-dual-active.gmeet-dual-tb #game-board .seat-cam-mount,
body.gmeet-dual-tb #exec-stage .seat-cam-mount,
body.gmeet-dual-tb #exec-board-page .seat-cam-mount {
  transform: translate(-50%, -100%) scale(3.27) !important;
  transform-origin: center bottom !important;
  z-index: 40 !important;
}
body.gmeet-dual-tb #game-board .seat-cam-mount video,
body.gmeet-dual-tb #exec-stage .seat-cam-mount video,
body.gmeet-dual-tb #game-board .seat-cam-mount .seat-cam-video,
body.gmeet-dual-tb #exec-stage .seat-cam-label {
  /* keep labels readable */
}
/* Also if single Exec looks tiny from leftover scale — normalize when dual off */
body:not(.gmeet-dual-active) #exec-stage .seat-cam-mount {
  /* do not force; locked transform from CSS FORCE remains */
}


/* screenshare-connect-20260927c — cams +25%, clear Business bottom blocker */
body.gmeet-dual-tb #gmeet-nuclear-biz {
  background: transparent !important;
  padding: 0 !important;
  overflow: hidden !important;
}
body.gmeet-dual-tb #gmeet-nuclear-biz .gmeet-nuclear-biz-inner {
  position: absolute;
  inset: 0;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  display: block !important;
}
body.gmeet-dual-tb #gmeet-nuclear-biz .gmeet-nuclear-badge,
body.gmeet-dual-tb #gmeet-nuclear-biz .gmeet-nuclear-title,
body.gmeet-dual-tb #gmeet-nuclear-biz .gmeet-nuclear-help {
  display: none !important; /* was reading as black slab / clutter over table */
}
body.gmeet-dual-tb #gmeet-nuclear-unlink {
  position: absolute !important;
  top: 8px !important;
  right: 12px !important;
  z-index: 60 !important;
  padding: 8px 12px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: #dc2626 !important;
  color: #fff !important;
  font: 700 12px system-ui !important;
  cursor: pointer !important;
}
body.gmeet-dual-tb .gmeet-dual-biz-preview {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #0a0c10 !important;
  overflow: hidden !important;
}
/* Hide any seat-cam / black circle leftovers on Business dual pane */
body.gmeet-dual-tb #gmeet-nuclear-biz .seat-cam-mount,
body.gmeet-dual-tb #gmeet-nuclear-biz [data-gmeet-biz-cam-hidden],
body.gmeet-dual-tb #gmeet-nuclear-biz video,
body.gmeet-dual-tb #gmeet-nuclear-biz .cam-placeholder {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}


/* screenshare-connect-20260927c — Exec cams +20% size, x/y locked */
body.exec-open #exec-stage .seat-cam-mount,
body.exec-open #exec-board-page .seat-cam-mount,
#game-board .game-panel-exec .seat-cam-mount {
  /* dual uses 2.77 scale; single-pane relies on --seat-N-w/h bump */
}
body.gmeet-dual-tb #game-board .seat-cam-mount,
body.gmeet-dual-tb #exec-stage .seat-cam-mount {
  transform: translate(-50%, -100%) scale(3.27) !important;
  transform-origin: center bottom !important;
}

/* LOCKED dual cam scale(1) — screenshare-connect-20260927c */


/* dual-only bigger cams — single fullscreen uses restored --seat-N-w/h */
body.gmeet-dual-tb #game-board .seat-cam-mount,
body.gmeet-dual-tb #exec-stage .seat-cam-mount,
body.gmeet-dual-active.gmeet-dual-tb #game-board .seat-cam-mount {
  transform: translate(-50%, -100%) scale(3.27) !important;
  transform-origin: center bottom !important;
}
/* single fullscreen: no dual scale */
body.exec-open:not(.gmeet-dual-active) #exec-stage .seat-cam-mount,
body:not(.gmeet-dual-active) #game-board .game-panel-exec .seat-cam-mount {
  /* rely on locked --seat-N-w/h from 20260920ab restore */
}


/* screenshare-connect-20260927c — NEVER show dual/link/exit chrome on lobby/join */
body:not(.in-room):not(.exec-open):not(.biz-open):not(.in-game) #gmeet-floating-link-business,
body:not(.in-room):not(.exec-open):not(.biz-open):not(.in-game) #gmeet-floating-exit-room,
body:not(.in-room):not(.exec-open):not(.biz-open):not(.in-game) #gmeet-nuclear-biz,
body:not(.in-room):not(.exec-open):not(.biz-open):not(.in-game) #gmeet-dual-toast,
body:not(.in-room):not(.exec-open):not(.biz-open):not(.in-game) [data-gmeet-nuclear-biz],
body:not(.in-room):not(.exec-open):not(.biz-open):not(.in-game) [data-gmeet-dual-link],
body.on-join #gmeet-floating-link-business,
body.on-join #gmeet-floating-exit-room,
body.on-join #gmeet-nuclear-biz,
body.on-join #gmeet-dual-toast,
#join-screen:not([hidden]) ~ * #gmeet-floating-link-business,
#join-screen #gmeet-floating-link-business,
#join-screen #gmeet-floating-exit-room {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}


/* screenshare-connect-20260927c — dual Exec cams +4% (2.90 -> 3.02); single fullscreen unchanged */
body.gmeet-dual-tb #game-board .seat-cam-mount,
body.gmeet-dual-tb #exec-stage .seat-cam-mount,
body.gmeet-dual-active.gmeet-dual-tb #game-board .seat-cam-mount {
  transform: translate(-50%, -100%) scale(3.27) !important;
  transform-origin: center bottom !important;
}


/* === screenshare-connect-20260927c: dual Exec cams +4% on SEAT frames (not mount) === */
/* Prior scale() on .seat-cam-mount never grew the frame; seats use --seat-N-w/h. */
body.gmeet-dual-active.gmeet-dual-tb #game-board #exec-seat-1,#exec-seat-2,#exec-seat-3,#exec-seat-4,#exec-seat-5,#exec-seat-6,#exec-seat-7,#exec-seat-8,#exec-seat-9,#exec-seat-10,#exec-seat-11,#exec-seat-12,
body.gmeet-dual-tb #exec-stage #exec-seat-1,#exec-seat-2,#exec-seat-3,#exec-seat-4,#exec-seat-5,#exec-seat-6,#exec-seat-7,#exec-seat-8,#exec-seat-9,#exec-seat-10,#exec-seat-11,#exec-seat-12,
body.gmeet-dual-tb #game-board #exec-seat-1,#exec-seat-2,#exec-seat-3,#exec-seat-4,#exec-seat-5,#exec-seat-6,#exec-seat-7,#exec-seat-8,#exec-seat-9,#exec-seat-10,#exec-seat-11,#exec-seat-12 {
  transform: translate(-50%, -100%) !important;
  transform-origin: center bottom !important;
  z-index: 40 !important;
  overflow: visible !important;
}
/* Kill broken mount scale (was zoom/crop, not bigger frames) */
body.gmeet-dual-tb #game-board .seat-cam-mount,
body.gmeet-dual-tb #exec-stage .seat-cam-mount,
body.gmeet-dual-active.gmeet-dual-tb #game-board .seat-cam-mount {
  transform: translate(-50%, -100%) scale(3.27) !important;
  transform-origin: center bottom !important;
}


/* === screenshare-connect-20260927c: RESTORE dual Exec cam enlargement (+4% over prior 3.02) === */
/* Prior mistake set scale(1) + seat w/h only — cams went tiny. Mount scale is the dual size lever. */
body.gmeet-dual-active.gmeet-dual-tb #game-board .seat-cam-mount,
body.gmeet-dual-tb #exec-stage .seat-cam-mount,
body.gmeet-dual-tb #exec-board-page .seat-cam-mount,
body.gmeet-dual-tb #game-board #exec-stage .seat-cam-mount,
body.gmeet-dual-active.gmeet-dual-tb #exec-stage .seat-cam-mount {
  transform: translate(-50%, -100%) scale(3.27) !important;
  transform-origin: center bottom !important;
  z-index: 40 !important;
}
/* Dual seats keep single locked x/y/w/h; size comes from mount scale only */
body.gmeet-dual-tb #game-board [id^="exec-seat-"],
body.gmeet-dual-tb #exec-stage [id^="exec-seat-"] {
  /* do not override width/height — use FORCE ab sizes */
  overflow: visible !important;
}


/* === screenshare-connect-20260927c: dual cam scale RESTORED (mount scale 3.14) === */
body.gmeet-dual-active.gmeet-dual-tb #game-board .seat-cam-mount,
body.gmeet-dual-tb #exec-stage .seat-cam-mount,
body.gmeet-dual-tb #exec-board-page .seat-cam-mount,
body.gmeet-dual-active.gmeet-dual-tb #exec-stage .seat-cam-mount {
  transform: translate(-50%, -100%) scale(3.27) !important;
  transform-origin: center bottom !important;
  z-index: 40 !important;
  width: 100% !important;
  height: 100% !important;
}


/* === screenshare-connect-20260927c: dual Exec cams +4% (3.14 -> 3.27) positions locked === */
body.gmeet-dual-active.gmeet-dual-tb #game-board .seat-cam-mount,
body.gmeet-dual-tb #exec-stage .seat-cam-mount,
body.gmeet-dual-tb #exec-board-page .seat-cam-mount,
body.gmeet-dual-active.gmeet-dual-tb #exec-stage .seat-cam-mount {
  transform: translate(-50%, -100%) scale(3.27) !important;
  transform-origin: center bottom !important;
  z-index: 40 !important;
}


/* ######## LOCKED 20260927c — do not modify without Ivan GO ########
   DUAL-TOP Executive cams (reference Ivan matched full room to): seat x/y from FORCE table, mount scale 3.27 (seat1 3.60)
   applied as inline !important by client.js __gmeetApplyDualSeatSizes (wins over the CSS scale values here). */
/* === screenshare-connect-20260927c: dual seat1 +10% scale (3.27->3.60); seat7 y 73.00%->76.00% === */
body.gmeet-dual-active.gmeet-dual-tb #game-board #exec-seat-1 .seat-cam-mount,
body.gmeet-dual-tb #exec-stage #exec-seat-1 .seat-cam-mount,
body.gmeet-dual-tb #exec-board-page #exec-seat-1 .seat-cam-mount,
body.gmeet-dual-active.gmeet-dual-tb #exec-stage #exec-seat-1 .seat-cam-mount {
  transform: translate(-50%, -100%) scale(3.60) !important;
  transform-origin: center bottom !important;
  z-index: 41 !important;
}


/* === screenshare-connect-20260927c: RESTORE single fullscreen sizes (exec-board-20260920ab w/h); dual scale isolated === */
/* Preview only — NOT locked until Ivan GO */
body.exec-open:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-stage,
body:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-board-page {
  --seat-1-w: 84px !important; --seat-1-h: 64px !important;
  --seat-2-w: 80px !important; --seat-2-h: 60px !important;
  --seat-3-w: 84px !important; --seat-3-h: 64px !important;
  --seat-4-w: 88px !important; --seat-4-h: 66px !important;
  --seat-5-w: 92px !important; --seat-5-h: 70px !important;
  --seat-6-w: 96px !important; --seat-6-h: 72px !important;
  --seat-7-w: 108px !important; --seat-7-h: 80px !important;
  --seat-8-w: 96px !important; --seat-8-h: 72px !important;
  --seat-9-w: 92px !important; --seat-9-h: 70px !important;
  --seat-10-w: 88px !important; --seat-10-h: 66px !important;
  --seat-11-w: 84px !important; --seat-11-h: 64px !important;
  --seat-12-w: 80px !important; --seat-12-h: 60px !important;
}
/* Kill any dual mount scale leftover on single fullscreen */
body.exec-open:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-stage .seat-cam-mount,
body:not(.gmeet-dual-active):not(.gmeet-dual-tb) #game-board .seat-cam-mount,
body:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-board-page .seat-cam-mount {
  transform: none !important;
  transform-origin: initial !important;
  width: 100% !important;
  height: 100% !important;
}
body.exec-open:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-stage [id^="exec-seat-"],
body:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-board-page [id^="exec-seat-"] {
  transform: translate(-50%, -100%) !important;
}
/* Dual keeps enlargement (unchanged) */
body.gmeet-dual-active.gmeet-dual-tb #game-board .seat-cam-mount,
body.gmeet-dual-tb #exec-stage .seat-cam-mount {
  transform: translate(-50%, -100%) scale(3.27) !important;
  transform-origin: center bottom !important;
}
body.gmeet-dual-active.gmeet-dual-tb #game-board #exec-seat-1 .seat-cam-mount,
body.gmeet-dual-tb #exec-stage #exec-seat-1 .seat-cam-mount {
  transform: translate(-50%, -100%) scale(3.60) !important;
  transform-origin: center bottom !important;
}


/* === screenshare-connect-20260927c: fullscreen match screenshare-connect-20260922v (ab sizes + seat7 y 73%) — PREVIEW not locked === */
body.exec-open:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-stage,
body:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-board-page {
  --seat-1-w: 84px !important; --seat-1-h: 64px !important;
  --seat-2-w: 80px !important; --seat-2-h: 60px !important;
  --seat-3-w: 84px !important; --seat-3-h: 64px !important;
  --seat-4-w: 88px !important; --seat-4-h: 66px !important;
  --seat-5-w: 92px !important; --seat-5-h: 70px !important;
  --seat-6-w: 96px !important; --seat-6-h: 72px !important;
  --seat-7-x: 50.00% !important; --seat-7-y: 73.00% !important;
  --seat-7-w: 108px !important; --seat-7-h: 80px !important;
  --seat-8-w: 96px !important; --seat-8-h: 72px !important;
  --seat-9-w: 92px !important; --seat-9-h: 70px !important;
  --seat-10-w: 88px !important; --seat-10-h: 66px !important;
  --seat-11-w: 84px !important; --seat-11-h: 64px !important;
  --seat-12-w: 80px !important; --seat-12-h: 60px !important;
}
body.exec-open:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-stage .seat-cam-mount,
body:not(.gmeet-dual-active):not(.gmeet-dual-tb) #game-board .seat-cam-mount,
body:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-board-page .seat-cam-mount {
  transform: none !important;
  transform-origin: initial !important;
}
body.exec-open:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-stage [id^="exec-seat-"],
body:not(.gmeet-dual-active):not(.gmeet-dual-tb) #exec-board-page [id^="exec-seat-"] {
  transform: translate(-50%, -100%) !important;
}

/* === screenshare-connect-20260927c: stage position reset + nuclear dark kill (from k; seats untouched) === */
body:not(.gmeet-dual-active) #game-board #exec-stage,
body:not(.gmeet-dual-active) #game-board #biz-stage,
body:not(.gmeet-dual-active) #game-board .meeting-stage,
body:not(.gmeet-dual-active) #game-board #exec-board-page {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  transform-origin: initial !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
}
/* Business/Exec FS: kill leftover dark dual half / nuclear shadow - transparent, NOT solid #111 on cams */
body.biz-open:not(.gmeet-dual-active) #gmeet-nuclear-biz,
body.biz-open:not(.gmeet-dual-active) [data-gmeet-nuclear-biz],
body.biz-open:not(.gmeet-dual-active) .gmeet-nuclear-biz,
body.exec-open:not(.gmeet-dual-active) #gmeet-nuclear-biz,
body.exec-open:not(.gmeet-dual-active) [data-gmeet-nuclear-biz],
body:not(.gmeet-dual-active) #gmeet-nuclear-biz,
body:not(.gmeet-dual-active) [data-gmeet-nuclear-biz],
body:not(.gmeet-dual-active) .gmeet-dual-biz-preview {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  max-width: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  z-index: -1 !important;
}
body.biz-open:not(.gmeet-dual-active) #biz-stage,
body.biz-open:not(.gmeet-dual-active) #biz-stage.meeting-stage {
  transform: none !important;
  filter: none !important;
  max-width: none !important;
  box-shadow: none !important;
  position: relative !important;
  top: auto !important;
  left: auto !important;
}
body.biz-open:not(.gmeet-dual-active) #biz-stage .seat-cam-mount {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}


/* ######## LOCKED 20260927c — do not modify without Ivan GO ########
   27a NO-ZOOM rule: no mount scale/zoom unless body.gmeet-dual-active. Removing it brings back huge overlapping FS cams. */
/* === screenshare-connect-20260927c: Exec FULLSCREEN cam size fix (non-dual only; dual/Link + Business untouched) ===
   Culprit: dual mount zoom 'transform: translate(-50%,-100%) scale(3.27|3.60)' on .seat-cam-mount is gated only on
   body.gmeet-dual-tb (not gmeet-dual-active), and the single-pane kill rules require :not(.gmeet-dual-tb); plus JS inline
   !important mount scale from __gmeetApplyDualSeatSizes. Any lingering dual-tb/inline scale in FS => huge cams shifted up.
   Fix: when dual is NOT active, mount zoom is always none (specificity 3,2,1 beats all dual rules); FS seats scale with board. */
body:not(.gmeet-dual-active) #exec-stage .seat-cam-mount:not(#gmeet-x1):not(#gmeet-x2),
body:not(.gmeet-dual-active) #exec-board-page .seat-cam-mount:not(#gmeet-x1):not(#gmeet-x2) {
  transform: none !important;
  transform-origin: 50% 50% !important;
  zoom: 1 !important;
}
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-1 { width: calc(var(--seat-1-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-1-h) * var(--gmeet-fs-seat-k, 1)) !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-2 { width: calc(var(--seat-2-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-2-h) * var(--gmeet-fs-seat-k, 1)) !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-3 { width: calc(var(--seat-3-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-3-h) * var(--gmeet-fs-seat-k, 1)) !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-4 { width: calc(var(--seat-4-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-4-h) * var(--gmeet-fs-seat-k, 1)) !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-5 { width: calc(var(--seat-5-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-5-h) * var(--gmeet-fs-seat-k, 1)) !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-6 { width: calc(var(--seat-6-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-6-h) * var(--gmeet-fs-seat-k, 1)) !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-7 { width: calc(var(--seat-7-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-7-h) * var(--gmeet-fs-seat-k, 1)) !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-8 { width: calc(var(--seat-8-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-8-h) * var(--gmeet-fs-seat-k, 1)) !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-9 { width: calc(var(--seat-9-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-9-h) * var(--gmeet-fs-seat-k, 1)) !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-10 { width: calc(var(--seat-10-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-10-h) * var(--gmeet-fs-seat-k, 1)) !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-11 { width: calc(var(--seat-11-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-11-h) * var(--gmeet-fs-seat-k, 1)) !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-12 { width: calc(var(--seat-12-w) * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-12-h) * var(--gmeet-fs-seat-k, 1)) !important; }

/* ######## LOCKED 20260927c — do not modify without Ivan GO ########
   Exec FULL-ROOM seat positions + sizes (Ivan confirmed 2026-09-27 7:28pm ET, lock GO 7:29pm ET).
   left/top per seat, mount offset zero, seat1 x1.10; size k = stageW/1890 in client.js gmeetFsCamFix20260927a.
   Sealed: C:\Users\tronn\gmeet-SEALED-20260927c + D:\g-meetings\SEALED-20260927c */
/* === screenshare-connect-20260927c: Exec FULL room (game-fullscreen, non-dual) cams matched to Link/dual-top positions ===
   Reverts 27b -5% x shift. Root cause of 'low + offset': index.html base .seat-cam-mount has left:var(--sx,50%); top:var(--sy,50%)
   and exec-board.css makes the mount position:relative, so with transform:none the cam box sat +50% w right / +50% h down of the seat.
   Dual hides this via translate(-50%,-100%). Here: offset zeroed so cam box == seat box (bottom-center on left/top),
   left/top set to dual-top positions mapped through the room image; size k set in client.js (stageW/1890), seat1 x1.10 like dual 3.60/3.27. */
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage [id^="exec-seat-"] > .seat-cam-mount:not(#gmeet-x1):not(#gmeet-x2) { left: 0 !important; top: 0 !important; right: auto !important; bottom: auto !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-1:not(#gmeet-x1) { left: 50.00% !important; top: 53.81% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-2:not(#gmeet-x1) { left: 60.00% !important; top: 52.86% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-3:not(#gmeet-x1) { left: 65.50% !important; top: 53.34% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-4:not(#gmeet-x1) { left: 71.00% !important; top: 54.28% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-5:not(#gmeet-x1) { left: 77.00% !important; top: 55.46% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-6:not(#gmeet-x1) { left: 83.20% !important; top: 56.65% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-7:not(#gmeet-x1) { left: 50.00% !important; top: 73.90% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-8:not(#gmeet-x1) { left: 16.80% !important; top: 56.65% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-9:not(#gmeet-x1) { left: 23.00% !important; top: 55.46% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-10:not(#gmeet-x1) { left: 29.00% !important; top: 54.28% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-11:not(#gmeet-x1) { left: 34.50% !important; top: 53.34% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-12:not(#gmeet-x1) { left: 40.00% !important; top: 52.86% !important; }
body:not(.gmeet-dual-active) #game-board.game-fullscreen #exec-stage #exec-seat-1:not(#gmeet-x1) { width: calc(var(--seat-1-w) * 1.1 * var(--gmeet-fs-seat-k, 1)) !important; height: calc(var(--seat-1-h) * 1.1 * var(--gmeet-fs-seat-k, 1)) !important; }


/* === screenshare-connect-20260927f: BUSINESS cams + background (full view + Link/dual bottom). NOT Executive. ===
   Cause of huge nested Business cams: rule 'body:not(.gmeet-dual-active):not(.gmeet-dual-tb) #game-board .seat-cam-mount
   { transform:none; width:100% !important; height:100% !important }' (meant for Exec mounts inside seats) also hits
   #biz-seat-N, which ARE absolute mounts directly in #biz-stage => each cam = 100% of the stage, uncentered.
   Positions/sizes now set by client.js gmeetBizCamLayout20260927d (inline !important, room-image cover mapping).
   Missing background: dual-mode inline 'background:transparent !important' on #biz-stage (incl. the hidden template,
   copied into every later clone) while .biz-room-bg is transparent in full view => paint the photo on .biz-room-bg. */
body:not(.gmeet-dual-active) #game-board .biz-stage > .biz-room-bg:not(#gmeet-x1) {
  position: absolute !important; inset: 0 !important; z-index: 0 !important; display: block !important; pointer-events: none !important;
  background: #0e1218 url('../business-meeting-table-bg.png') center / cover no-repeat !important;
}
#game-board .biz-stage > .seat-cam-mount[data-seat]:not(#gmeet-x1),
#gmeet-dual-biz-preview .biz-stage > .seat-cam-mount[data-seat]:not(#gmeet-x1) {
  border-radius: 10px; overflow: hidden; box-sizing: border-box;
  border: 1px solid rgba(255,255,255,0.22); background: rgba(8,10,14,0.55); box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}

/* === screenshare-connect-20260927f: top chrome buttons - no overlap (Link Business / Min|FS / Exit). Behaviour unchanged. ===
   Was: top bar [Minimize][Fullscreen][X Exit][Link Business][X Exit] ran under the window scrollbar (2nd Exit clipped);
   Min|FS + Link Business pinned right:8px under the scrollbar, and the 118px Link button spilled out of its 22px glass row. */
#game-board .game-chrome:not(#gmeet-x1) { padding-right: 34px !important; box-sizing: border-box !important; }
#game-board .game-chrome-actions:not(#gmeet-x1) { gap: 8px !important; flex-wrap: nowrap !important; flex-shrink: 0 !important; }
#game-board .game-chrome-actions > .gmeet-dual-link-btn:not(#gmeet-x1),
#game-board .game-chrome-actions > #gmeet-chrome-exit-room { margin-left: 0 !important; }
#game-board .exec-chrome-ur:not(#gmeet-x1), #game-board .biz-chrome-ur:not(#gmeet-x1) {
  top: 12px !important; right: 40px !important; display: flex !important; flex-direction: column !important;
  align-items: flex-end !important; gap: 8px !important;
}
#game-board .exec-chrome-ur .exec-chrome-connect-row:not(#gmeet-x1), #game-board .biz-chrome-ur .exec-chrome-connect-row:not(#gmeet-x1) {
  height: auto !important; padding: 0 !important; background: transparent !important; border: 0 !important; backdrop-filter: none !important;
}
#game-board .exec-chrome-ur .gmeet-dual-link-btn:not(#gmeet-x1), #game-board .biz-chrome-ur .gmeet-dual-link-btn:not(#gmeet-x1) { margin-left: 0 !important; }

/* === screenshare-connect-20260927f: Business room has NO Link Business buttons (Ivan 7:52pm ET) - linking is Executive-only. ===
   Hidden only while the active room is Business and dual is OFF (top bar, under Min|FS, green bottom-right float).
   Executive room keeps all Link buttons; Link/dual view keeps Unlink + Exit Room. Red Exit buttons untouched. */
body.biz-open:not(.gmeet-dual-active):not(.exec-open) #gmeet-floating-link-business:not(#gmeet-x1),
body.biz-open:not(.gmeet-dual-active):not(.exec-open) #game-board [data-gmeet-dual-link]:not(#gmeet-x1),
body.biz-open:not(.gmeet-dual-active):not(.exec-open) #game-board .gmeet-dual-link-btn:not(#gmeet-x1),
body.biz-open:not(.gmeet-dual-active):not(.exec-open) #game-board .gmeet-dual-link-row:not(#gmeet-x1) {
  display: none !important; visibility: hidden !important; pointer-events: none !important;
}
/* same, keyed on the Business panel (separate rule so an unsupported :has cannot drop the one above) */
body:not(.gmeet-dual-active):has(#game-board .game-panel-business) #gmeet-floating-link-business:not(#gmeet-x1),
body:not(.gmeet-dual-active):has(#game-board .game-panel-business) #game-board [data-gmeet-dual-link]:not(#gmeet-x1),
body:not(.gmeet-dual-active):has(#game-board .game-panel-business) #game-board .gmeet-dual-link-btn:not(#gmeet-x1),
body:not(.gmeet-dual-active):has(#game-board .game-panel-business) #game-board .gmeet-dual-link-row:not(#gmeet-x1) {
  display: none !important; visibility: hidden !important; pointer-events: none !important;
}

/* === screenshare-connect-20260927g: EXECUTIVE FULLSCREEN (dual off) - one Link + one Exit in the top bar (Ivan 8:04pm ET). ===
   Kept: top-bar blue Link Business, far-right top-bar red X Exit (#gmeet-chrome-exit-room -> __gmeetExitMeetingRoom, same handler as Exit Room),
   green floating Link Business (untouched for now).
   Hidden: blue Link Business under Min/FS; the top-bar X Exit between Exit Fullscreen and Link (.game-chrome-close);
   the bottom-right red X Exit Room (#gmeet-floating-exit-room).
   The two Exit hides only apply while the far-right Exit exists (:has guard), so the room can never be left with no Exit.
   Scope: Executive + fullscreen + dual off only. Windowed/min Exec, Business (27f) and Link/dual view untouched. NOT locked. */
body.exec-open:not(.gmeet-dual-active):not(.biz-open):not(.exec-conjunction-open) #game-board.game-fullscreen .game-panel-exec .exec-chrome-ur .gmeet-dual-link-row:not(#gmeet-x1),
body.exec-open:not(.gmeet-dual-active):not(.biz-open):not(.exec-conjunction-open) #game-board.game-fullscreen .game-panel-exec .exec-chrome-ur .gmeet-dual-link-btn:not(#gmeet-x1) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.exec-open:not(.gmeet-dual-active):not(.biz-open):not(.exec-conjunction-open) #game-board.game-fullscreen .game-panel-exec .game-chrome-actions:has(> #gmeet-chrome-exit-room) > .game-chrome-close:not(#gmeet-x1) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.exec-open:not(.gmeet-dual-active):not(.biz-open):not(.exec-conjunction-open):has(#game-board.game-fullscreen .game-panel-exec .game-chrome-actions > #gmeet-chrome-exit-room) #gmeet-floating-exit-room:not(#gmeet-x1) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* === screenshare-connect-20260927h: EXECUTIVE FULLSCREEN (dual off) - hide green floating Link Business (Ivan 8:05pm ET). ===
   Blue top-bar Link Business is the only Link there. Guarded by :has(top-bar Link) so a Link is always visible.
   Dual view (Unlink / Exit Room), Business 27f, windowed Exec untouched. NOT locked. */
body.exec-open:not(.gmeet-dual-active):not(.biz-open):not(.exec-conjunction-open):has(#game-board.game-fullscreen .game-panel-exec .game-chrome-actions > [data-gmeet-dual-link-chrome="1"]) #gmeet-floating-link-business:not(#gmeet-x1) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* === screenshare-connect-20260927i: BUSINESS FULLSCREEN (dual off) - red X Exit Room moved to the top-right corner, ~27% smaller (Ivan 8:11pm ET). ===
   Same button (#gmeet-floating-exit-room), same click handler - position/size only. Min|FS slides left of it, vertically centred.
   Exit Room: 92x31 at top 12px / right 16px of the viewport (clear of the window scrollbar). Min|FS right edge = 16+92+12 px + scrollbar.
   Executive, Link/dual view, Business windowed/min untouched. If :has is unsupported nothing changes. NOT locked. */
body.biz-open:not(.gmeet-dual-active):not(.exec-open):not(.exec-conjunction-open):has(#game-board.game-fullscreen .game-panel-business) #gmeet-floating-exit-room:not(#gmeet-x1) {
  top: 12px !important;
  right: 16px !important;
  bottom: auto !important;
  left: auto !important;
  width: 92px !important;
  height: 31px !important;
  box-sizing: border-box !important;
  padding: 0 10px !important;
  font: 700 11px/31px system-ui, sans-serif !important;
  border-radius: 9px !important;
  white-space: nowrap !important;
  text-align: center !important;
  box-shadow: 0 6px 20px rgba(0,0,0,.45) !important;
}
body.biz-open:not(.gmeet-dual-active):not(.exec-open):not(.exec-conjunction-open):has(#game-board.game-fullscreen .game-panel-business) #game-board.game-fullscreen .game-panel-business .biz-chrome-ur:not(#gmeet-x1) {
  top: 16px !important;
  right: 137px !important;
}
