body.game-section-page:not(.s2-panel-active) #lobby .ls-rail>.ls-hero,body.game-section-page .home-status,body.game-section-page .v2-more-title,body.game-section-page .ls-promo-row{display:none!important}
body.game-section-page.s2-panel-active :is(.gs-hero,.gs-guide){display:none!important}
body.game-section-page .gs-hero{position:relative;isolation:isolate;overflow:hidden;min-height:370px;border:1px solid #33414a;border-radius:12px;background:#131313;margin-bottom:32px;padding:32px 40px}
.gs-hero:before{content:'';position:absolute;inset:0;z-index:-2;background:url('lobby-art/cash-sergei-v7-original-source.webp') right 48%/cover no-repeat}
.tournament-section .gs-hero:before{background-image:url('lobby-art/tournament-room-redraw-v1.webp')}
.gs-hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#101010f5 0%,#101010bd 30%,#10101020 65%,transparent)}
.gs-copy{max-width:510px}.gs-back{display:inline-block;font-size:12px;color:#b4b4b4;text-decoration:none;margin-bottom:29px}.gs-back:hover{color:#ffd34f}
.gs-eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:#d8bd84;margin-bottom:12px}.gs-eyebrow span{display:inline-block;margin-left:13px;border-left:1px solid #64717b;padding-left:13px;letter-spacing:1px;color:#b4b4b4;font-size:9px}
.gs-copy h1{font:750 clamp(36px,4vw,58px)/1.02 Inter,system-ui,sans-serif;letter-spacing:-2px;margin:0 0 17px;color:#f7f6f1}.gs-copy h1 em{color:#ffd34f;font-style:normal}
.gs-copy p{max-width:380px;color:#b4b4b4;font-size:14px;line-height:1.65;margin:0 0 24px}
.gs-primary{display:inline-flex;align-items:center;gap:35px;background:linear-gradient(#d8bd84,#ffd34f);padding:14px 22px;color:#171817;font-size:13px;font-weight:750;text-decoration:none;border:1px solid #d8bd84;border-radius:6px;box-shadow:0 5px 20px #0003}.gs-primary:hover{filter:brightness(1.08)}
.gs-art-note{position:absolute;bottom:20px;right:24px;color:#d8bd84;font-size:10px;font-style:italic;text-shadow:0 1px 6px #000;background:#10101080;padding:6px 10px;border-radius:4px}
body.game-section-page #s2-card-opentables .v2-section-title h2{font-size:25px!important}.gs-table-intro{color:#b4b4b4;font-size:13px;margin:0 0 20px;line-height:1.6}
.gs-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 20px}.gs-filter{display:flex;gap:4px;padding:4px;border:1px solid #2b3948;border-radius:8px;background:#141414}.gs-filter button{border:0;border-radius:5px;background:transparent;color:#b4b4b4;font:600 12px Inter,system-ui;padding:10px 17px;cursor:pointer}.gs-filter button[aria-pressed=true]{background:var(--muck-surface-3);color:var(--muck-gold)}.gs-table-count{font-size:12px;color:#8a8a8a;font-variant-numeric:tabular-nums}
body.redesign-v2.home-v3.game-section-page #s2-card-opentables .v2-fmt-card{min-height:238px!important;padding:20px!important}
body.game-section-page #s2-card-opentables .v2-fmt-card.gs-filtered{display:none!important}
body.game-section-page.cash-section #s2-card-opentables [data-qt-pane=cash]{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important}
body.game-section-page.cash-section #s2-card-opentables .lv2-qt-page{display:contents!important}
body.game-section-page .lv2-qt-pagination{display:none!important}
body.game-section-page #s2-card-opentables .v2-fmt-stake{display:block!important;color:#8bdfb7!important;font-size:12px!important;margin:7px 0 0!important;font-weight:600!important}
.gs-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:30px 0 16px;padding:26px 0;border-top:1px solid #283644}
.gs-guide article{position:relative;padding:0 24px 0 45px}.gs-guide article>span{position:absolute;left:0;top:0;font:500 13px monospace;color:#bb9a54;padding-top:3px}.gs-guide h3{margin:0 0 9px;font-size:14px;color:#e7edf0}.gs-guide p{margin:0;color:#b4b4b4;font-size:12px;line-height:1.7}.gs-rules{background:none;border:0;color:#ffd34f;padding:12px 0 0;font:600 12px Inter,system-ui;cursor:pointer}
body.home-v3.game-section-page:not(.s2-panel-active) .lp-top-nav .home-nav-play{box-shadow:none!important;color:#b4b4b4!important}body.home-v3.game-section-page:not(.s2-panel-active) .lp-top-nav .gs-nav-current{color:#ffd34f!important;box-shadow:inset 0 -2px #ffd34f}
.gs-filter button:focus-visible,.gs-primary:focus-visible,.gs-rules:focus-visible{outline:2px solid #ffd34f;outline-offset:3px}
@media(max-width:900px){body.game-section-page .gs-hero{padding:25px;min-height:370px}.gs-copy{max-width:450px}.gs-copy h1{font-size:44px}.gs-art-note{display:none}.gs-guide{gap:10px}.gs-guide article{padding-right:5px}}
@media(max-width:719px){body.game-section-page .gs-hero{padding:22px;min-height:470px;margin-bottom:24px}.gs-hero:before{background-position:67% center}.gs-hero:after{background:linear-gradient(90deg,#101010e8,#10101092),linear-gradient(0deg,#10101077,transparent)}.gs-copy h1{font-size:42px;letter-spacing:-1.5px}.gs-copy p{font-size:13px}.gs-back{margin-bottom:32px}.gs-eyebrow span{display:block;margin:8px 0 0;padding:0;border:0}.gs-controls{align-items:flex-start;flex-direction:column;gap:10px}.gs-filter{width:100%;box-sizing:border-box}.gs-filter button{flex:1;padding:10px 5px;font-size:11px}body.game-section-page.cash-section #s2-card-opentables [data-qt-pane=cash]{grid-template-columns:1fr!important}.gs-guide{grid-template-columns:1fr;gap:24px}.gs-guide article{padding-right:0}.gs-primary{margin-top:8px}}
body.redesign-v2.home-v3.game-section-page.cash-section #s2-card-opentables [data-qt-pane=tournaments],body.redesign-v2.home-v3.game-section-page.tournament-section #s2-card-opentables [data-qt-pane=cash],body.redesign-v2.home-v3.game-section-page #lobby .ls-config-row.ls-promo-row{display:none!important}
@media(max-width:719px){.gs-hero:before{background-position:right center}}
.gs-friends{display:inline-flex;align-items:center;min-height:47px;margin-left:10px;padding:13px 18px;background:#131313dd;border:1px solid #64717b;border-radius:6px;color:#e8edf0;font:600 13px Inter,system-ui;cursor:pointer}.gs-friends:hover{border-color:#ffd34f}.gs-friends:focus-visible{outline:2px solid #ffd34f;outline-offset:3px}@media(max-width:719px){.gs-friends{margin:10px 0 0;display:flex}}
/* Neutral charcoal surfaces: preserve the existing dark contrast and artwork. */
body.redesign-v2.home-v3,body.redesign-v2.home-v3 #lobby,body.redesign-v2.home-v3 .lobby-scroll-body{background-color:#0c0c0c!important}
body.redesign-v2.home-v3 #lobby-mobile-header{background:#0e0e0e!important;border-bottom-color:#292929!important}
body.redesign-v2.home-v3 .home-status :is(.lp-card,.home-status-link){background:linear-gradient(120deg,#171717,#0e0e0e);border-color:#3b3b3b}
body.redesign-v2.home-v3 .gs-filter{background:#121212!important;border-color:#363636!important}
body.redesign-v2.home-v3 #s2-panel{--ui-surface:#1d1d1d;--ui-card-bg:#1d1d1d;--ui-line:#383838;--ui-hover-bg:#262626;--surface-primary:#1d1d1d;--surface-secondary:#262626}
body.redesign-v2.home-v3 #s2-panel .s2-panel-back{background:#262626!important;border-color:#3b3b3b!important}
body.redesign-v2.home-v3 #s2-panel :is(.px-tile,.ach-card){background:#1e1e1e!important;border-color:#3b3b3b!important}
body.redesign-v2.home-v3 #s2-panel .lb-head .lb-tab:not(.active){background:#131313bb!important}
body.redesign-v2.home-v3 .gs-friends{background:#141414dd!important;border-color:#6e6e6e!important}
body.redesign-v2.home-v3 #s2-panel .lb-podium{background:radial-gradient(ellipse at 50% 90%,#292929,transparent 65%),linear-gradient(150deg,#191919,#101010 70%)!important;border-color:#383838!important}
body.redesign-v2.home-v3 #s2-panel .lb-table{background:#1d1d1d!important}
body.redesign-v2.home-v3 #s2-panel .lb-table th{background:#272727!important;border-color:#383838!important}
body.redesign-v2.home-v3 #s2-panel .lb-table td{border-color:#353535!important}
body.redesign-v2.home-v3 #s2-panel .lb-table tr:hover td{background:#292929!important}
/* Subsection heroes join the navigation, matching the homepage. */
body.redesign-v2.home-v3.game-section-page #lobby-main-card,
body.redesign-v2.home-v3.s2-panel-active #lobby-main-card{padding-top:0!important}
body.redesign-v2.home-v3 .gs-hero,
body.redesign-v2.home-v3 #s2-panel :is(.px-head,.st-head){border-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}
body.redesign-v2.home-v3 #s2-panel:has(.px-head,.st-head){position:relative;padding-top:0!important}
body.redesign-v2.home-v3 #s2-panel:has(.px-head,.st-head)>.s2-panel-header{position:absolute;top:16px;left:28px;z-index:2;padding:0!important;margin:0!important}
body.redesign-v2.home-v3 #s2-panel :is(.px-head,.st-head){padding-top:76px!important}
/* Bob reaches beyond the thin leaderboard banner into the rankings below. */
body.redesign-v2.home-v3 #s2-panel .lb-head{overflow:visible!important;z-index:1;min-height:280px;box-sizing:border-box;background:linear-gradient(90deg,#081112dd 0%,#08111266 45%,transparent 75%),url('lobby-art/leaderboard-room-v2-o.webp') center/cover no-repeat!important;margin-bottom:86px!important}
body.redesign-v2.home-v3 #s2-panel .lb-head .px-head-main{max-width:55%;position:relative;z-index:2}
.lb-bob-popout{position:absolute;right:3%;bottom:-76px;height:320px;width:auto;max-width:48%;object-fit:contain;object-position:bottom;z-index:3;pointer-events:none;filter:drop-shadow(0 13px 9px #0008)}
body.redesign-v2.home-v3 #s2-panel .lb-head .lb-tabs{z-index:4}
@media(max-width:719px){body.redesign-v2.home-v3 #s2-panel .lb-head{min-height:320px;margin-bottom:55px!important}body.redesign-v2.home-v3 #s2-panel .lb-head .px-head-main{max-width:70%}.lb-bob-popout{height:210px;max-width:43%;right:-5px;bottom:-45px}body.redesign-v2.home-v3 #s2-panel .lb-head .lb-tabs{max-width:75%;gap:4px!important}body.redesign-v2.home-v3 #s2-panel .lb-head .lb-tab{padding:6px!important;font-size:10px!important}}
/* Missions hero: Nick and the barrel of Muck Bucks, same art as the home Missions card (Shaun, 2026-10-03). Was Sergei.
   (Pauly's perch-and-launch routine was retired 2026-10-02: "kill the flying bird".) */
body.redesign-v2.home-v3 #s2-panel .px-head[data-art=missions]{--header-image:url('membership/perk-bucks-v2-o.webp');overflow:visible!important;min-height:340px;margin-bottom:68px!important;background-position:center,right 0 top -40px!important}
body.redesign-v2.home-v3 #s2-panel .px-head[data-art=missions] .px-head-main{max-width:48%}
@media(max-width:719px){body.redesign-v2.home-v3 #s2-panel .px-head[data-art=missions]{min-height:360px;background-position:center,65% center!important}body.redesign-v2.home-v3 #s2-panel .px-head[data-art=missions] .px-head-main{max-width:75%}.mission-pauly{right:8%;width:75px;height:85px}}

/* The current destination is a contained tab, with no detached underline. */
body.redesign-v2.home-v3 .lp-top-nav > button,
body.redesign-v2.home-v3 .lp-top-nav > a {
  min-height: 40px;
  padding: 10px 13px !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #b9b9b2 !important;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
/* How to Play is a link: center its label the way a button centers its own. */
body.redesign-v2.home-v3 .lp-top-nav > a {display:flex!important;align-items:center;text-decoration:none}
body.redesign-v2.home-v3 .lp-top-nav > button[aria-current="page"],
body.redesign-v2.home-v3 .lp-top-nav > a[aria-current="page"] {
  color: #d8bd84 !important;
  background: #2c281e !important;
  border-color: #5c4e30 !important;
  box-shadow: none !important;
}
body.redesign-v2.home-v3 .lp-top-nav > button:hover,
body.redesign-v2.home-v3 .lp-top-nav > a:hover {
  color: #d8bd84 !important;
  background: #2c281e !important;
  border-color: #5c4e30 !important;
}
body.redesign-v2.home-v3 .lmh-logo {display:flex;align-items:center;text-decoration:none;border-radius:6px;flex-shrink:0}
body.redesign-v2.home-v3 .lmh-logo:focus-visible {outline:2px solid #d8bd84;outline-offset:4px}
@media(max-width:768px){
  body.redesign-v2.home-v3 .lp-top-nav > button,
  body.redesign-v2.home-v3 .lp-top-nav > a {padding:9px 7px!important;min-height:40px;font-size:11px!important}
}
/* In-page views (game-sections.js): the hero, filters and guide exist only while a view is open. */
body:not(.game-section-page) :is(.gs-hero,.gs-table-intro,.gs-controls,.gs-guide){display:none!important}
body.game-section-page #s2-card-opentables .home-all-games{display:none!important}
.gs-back{background:none;border:0;padding:0;font:inherit;font-size:12px;cursor:pointer}
.gs-eyebrow b{font-weight:inherit}
/* Leaderboard Bob sits further in on desktop (Shaun, 2026-10-01). */
@media(min-width:1100px){.lb-bob-popout{right:12%}}

/* All-in or Fold test table (2026-10-02): Tournaments view only, never on the home page's table strip */
body:not(.tournament-section) .v2-fmt-card.v2-fmt-card--aof,body.redesign-v2:not(.tournament-section) #s2-card-opentables .v2-fmt-card.v2-fmt-card--aof{display:none!important}
/* the cash ones: Cash Games view only (the wrapper sits outside the home page's paged stakes) */
.lv2-qt-aof-cash{display:none}
body.game-section-page.cash-section #s2-card-opentables .lv2-qt-aof-cash{display:contents!important}
.v2-fmt-new{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--muck-gold) 14%,transparent);color:var(--muck-gold);font:800 10px var(--muck-font);letter-spacing:.06em;text-transform:uppercase;vertical-align:2px}

/* ---- Classic lobby tables (2026-10-02): Tournaments and Cash Games views list tables like a poker client.
   The home page keeps its cards; inside the views the cards give way to these rows. ---- */
.lby{display:none}
body.game-section-page #s2-card-opentables .lby{display:block;margin:4px 0 8px;border:1px solid var(--muck-line);border-radius:var(--muck-radius-lg);overflow:clip;background:var(--muck-surface-1)}
/* the column names stay in view while you scroll the list (Shaun, 2026-10-29: "freeze top row when scrolling past the header on
   cash and tournaments"): clip, not hidden, above keeps the rounded corners without making the list its own scroller */
body.game-section-page #s2-card-opentables .lby > .lby-head{position:sticky;top:0;z-index:3;background:#1b1b1b;box-shadow:0 1px 0 var(--muck-line)}
body.redesign-v2.game-section-page #s2-card-opentables .lv2-qt-pane :is(.v2-fmt-card,.lv2-qt-aof-cash,.lv2-qt-pagination,.lv2-qt-page){display:none!important}
body.redesign-v2.game-section-page #s2-card-opentables .lv2-qt-pane:not(.hidden){display:block!important}
.lby-head,.lby-row{display:grid;align-items:center;gap:12px;padding:0 16px}
[data-qt-pane="tournaments"] .lby :is(.lby-head,.lby-row){grid-template-columns:minmax(150px,1.6fr) minmax(90px,.8fr) 1.1fr .7fr 1fr .8fr 1fr 124px}
[data-qt-pane="cash"] .lby :is(.lby-head,.lby-row){grid-template-columns:minmax(58px,.7fr) minmax(150px,1.5fr) minmax(90px,.8fr) 1.1fr 1fr .8fr .7fr 124px}
.lby-head{height:40px;background:var(--muck-surface-2);border-bottom:1px solid var(--muck-line);color:var(--muck-text-3);font:700 10px var(--muck-font);letter-spacing:.1em;text-transform:uppercase}
.lby-group{display:flex;align-items:center;height:36px;padding:0 16px;background:color-mix(in srgb,var(--muck-surface-2) 60%,var(--muck-bg));border-top:1px solid var(--muck-line);color:var(--muck-gold);font:800 13px var(--muck-font);letter-spacing:.02em}
.lby-head+.lby-group{border-top:0}
.lby-row{min-height:46px;border-top:1px solid color-mix(in srgb,var(--muck-line) 60%,transparent);color:var(--muck-text-2);font:500 13px var(--muck-font);transition:background .12s}
.lby-row:hover{background:var(--muck-surface-2)}
.lby-row.gs-filtered,.lby-group.gs-filtered{display:none}
.lby-name{color:var(--muck-text);font-weight:700}
.lby-blinds{color:var(--muck-text-3)}
.lby-format b{color:var(--muck-gold);font-weight:700}
/* SNG / MTT before the betting format (Shaun, 2026-10-08) */
.lby-kind{text-decoration:none;cursor:help}
.lby-num{font-variant-numeric:tabular-nums;color:var(--muck-text)}
.lby-players{display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums}
.lby-seats{display:flex;gap:3px}
.lby-seats i{width:7px;height:7px;border-radius:50%;background:var(--muck-line-strong)}
.lby-seats i.on{background:var(--muck-text-3)}
.lby-act{display:flex;justify-content:flex-end}
.lby-join{height:30px;min-width:76px;padding:0 10px;white-space:nowrap;border:1px solid var(--muck-gold);border-radius:7px;background:none;color:var(--muck-gold);font:800 12px var(--muck-font);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.lby-join:hover,.lby-row:hover .lby-join{background:var(--muck-gold-cta);color:var(--muck-gold-ink);border-color:transparent}
.lby-join:disabled{opacity:.6;cursor:default}
/* Waiting (lobby.js setLoading): wide enough for "Please wait…" (Shaun, 2026-10-09: "it is not wide enough so the text
   doesnt sit nicely inside"); the Play column is 124px to hold it. */
.lby-join[aria-busy="true"]{min-width:118px;padding:0 8px}
/* A table the player can't cover yet (Shaun, 2026-10-14): the row greys out and the button says "Needs 5,000" in grey,
   not gold. Still clickable: lobby.js shows the "Not enough Muck Bucks" window. index.php adds lby-short. */
.lby-row.lby-short{opacity:.5;transition:opacity .12s,background .12s}
.lby-row.lby-short:hover{opacity:.75}
.lby-row.lby-short .lby-join,.lby-row.lby-short:hover .lby-join,.lby-row.lby-short .lby-join:hover{padding:0 8px;border-color:var(--muck-line-strong);background:none;color:var(--muck-text-3);letter-spacing:.02em}
@media(max-width:900px){
  /* phones/tablets: name + one meta line + Join */
  [data-qt-pane] .lby .lby-head{display:none}
  [data-qt-pane] .lby .lby-row{grid-template-columns:1fr auto;grid-template-rows:auto auto;row-gap:2px;padding:10px 14px}
  .lby-row>span{display:none}
  /* iPhone-readable (Shaun, 2026-10-30: "is that text too small on iphone?": the name was 13px, the line under it 12px) */
  .lby-row>.lby-name{display:block;grid-column:1;grid-row:1;font-size:15px}
  .lby-row>.lby-act{display:flex;grid-column:2;grid-row:1/3}
  .lby-row>.lby-format,.lby-row>.lby-players{display:inline-flex;grid-row:2;font-size:13px}
  /* plain text, not flex: flex dropped the space before the dash ("SNG– No Limit") */
  .lby-row>.lby-format{display:block;padding-right:48px}   /* room for the count beside it: a long format wraps first */
  /* just the count on phones, no seat dots ("kill the dots next to the seat count") */
  .lby-seats{display:none}
  /* the Freeroll's "11 registered" is too long to sit beside "MTT – No Limit" (they ran together at 339): its own line */
  [data-qt-pane] .lby .lby-row.lby-row--freeroll{grid-template-rows:auto auto auto}
  .lby-row.lby-row--freeroll>.lby-players{grid-row:3;justify-self:start;margin-right:0}
  .lby-row.lby-row--freeroll>.lby-act{grid-row:1/4}
  .lby-row>.lby-format{grid-column:1}
  .lby-row>.lby-players{grid-column:1;justify-self:end;margin-right:12px}
}

/* Hand history: "Analyze in Muck GTO" (opens the hand in Study, new tab) */
.btn-hh-gto{width:100%;display:flex;align-items:center;justify-content:center;gap:.4rem;margin-bottom:8px;padding:.6rem .9rem;border-radius:8px;background:var(--muck-gold-cta);color:var(--muck-gold-ink)!important;font:800 .8rem var(--muck-font);letter-spacing:.2px;text-decoration:none}
.btn-hh-gto[hidden]{display:none}
.btn-hh-gto:hover{filter:brightness(1.05)}
.btn-hh-gto .material-symbols-rounded{font-size:1rem}

/* Hand history comes with Muck Tracker (2026-10-02). <html data-tracker="locked"> is set by index.php and cleared
   when Muck Tracker is bought. Without it, the table's Hand History button stays and sells it (assets/history.js);
   the lobby's My Hands sells it too, so only the duplicate ways in are hidden. */
html[data-tracker=locked] #btn-gom-history{display:none!important}   /* the profile's My Hands tab shows for everyone (gto-hands.js says what it's for) */
/* Lobby tables: zebra stripes (Shaun, 2026-10-02). Counts table rows only, so stake group headers don't break the pattern. */
.lby-row:nth-child(even of .lby-row){background:color-mix(in srgb,var(--muck-text) 4.5%,transparent)}
.lby-row:nth-child(even of .lby-row):hover,.lby-row:hover{background:var(--muck-surface-2)}

/* Bot Difficulty info icon + tooltip (settings). The tip is a popover so the rounded settings list can't clip it. */
.bot-info{display:inline-flex;margin-left:2px}
.bot-info-btn{display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:none;color:var(--muck-text-3);cursor:help}
.bot-info-btn .material-symbols-rounded{font-size:17px!important;color:inherit!important}
.bot-info-btn:is(:hover,:focus-visible,[aria-expanded="true"]){color:var(--muck-gold)}
.bot-info-btn:focus-visible{outline:2px solid var(--muck-gold);outline-offset:2px}
.bot-info-tip{position:fixed;inset:auto;margin:0;width:300px;max-width:calc(100vw - 32px);padding:14px 16px;border:1px solid var(--muck-line-strong);border-radius:10px;background:var(--muck-surface-2);box-shadow:0 14px 34px #0009;color:var(--muck-text-2);font:400 12.5px/1.55 var(--muck-font);text-transform:none;letter-spacing:0}
.bot-info-tip:not(:popover-open){display:none}
.bot-info-tip b{color:var(--muck-text);font-weight:700;margin-right:4px}
.bot-info-styles{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding:8px 0 0 10px;border-top:1px solid var(--muck-line)}
.bot-info-styles i{font-style:normal;font-weight:600;color:var(--muck-gold);margin-right:4px}
/* No back buttons (Shaun, 2026-10-02: "kill any remaining back buttons like this"): the top nav and the logo already
   get you anywhere. Panels with their own hero lose the whole row (its title only repeated the hero); plain panels
   keep their title. The heroes get their top edge and normal padding back. */
body.redesign-v2.home-v3 #s2-panel .s2-panel-back{display:none!important}
body.redesign-v2.home-v3 #s2-panel:has(.px-head,.st-head)>.s2-panel-header{display:none!important}
body.redesign-v2.home-v3 #s2-panel:has(.px-head,.st-head){padding-top:0!important}
body.redesign-v2.home-v3 #s2-panel :is(.px-head,.st-head){padding-top:34px!important;border-top:1px solid #383b39!important;border-top-left-radius:6px!important;border-top-right-radius:6px!important}
/* Rules: the rankings are taught on the Learn page; here a best/worst card links to it. */
.rls-learn{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;padding:24px 26px;border:1px solid color-mix(in srgb,var(--muck-gold) 28%,var(--muck-line));border-radius:var(--muck-radius-lg);background:linear-gradient(100deg,color-mix(in srgb,var(--muck-gold) 8%,var(--muck-surface-1)),var(--muck-surface-1) 65%);color:inherit;text-decoration:none;transition:border-color .2s}
.rls-learn:hover{border-color:var(--muck-gold-muted)}
.rls-learn:focus-visible{outline:2px solid var(--muck-gold);outline-offset:3px}
.rls-learn-copy{display:flex;flex-direction:column;gap:6px}
.rls-learn-eyebrow{color:var(--muck-gold);font:800 10.5px var(--muck-font);letter-spacing:.16em;text-transform:uppercase}
.rls-learn-copy b{color:var(--muck-text);font:800 20px/1.25 var(--muck-font);letter-spacing:-.3px}
.rls-learn-copy>span:not(.rls-learn-eyebrow):not(.rls-learn-go){color:var(--muck-text-2);font-size:13.5px;line-height:1.55}
.rls-learn-go{display:inline-flex;align-items:center;gap:6px;margin-top:6px;color:var(--muck-gold);font:800 13.5px var(--muck-font)}
.rls-learn-go .material-symbols-rounded{font-size:17px}
.rls-learn-hands{display:flex;flex-direction:column;gap:12px}
.rls-learn-hands>div{display:flex;align-items:center;gap:12px}
.rls-learn-hands .rls-rank-tag{min-width:48px;text-align:right}
@media(max-width:719px){.rls-learn{grid-template-columns:1fr;padding:20px}.rls-learn-hands .rls-rank-tag{text-align:left}}
/* Rules tabs: the active tab in house gold, not the old purple. */
body.redesign-v2 #s2-panel .htp-tab.active{background:color-mix(in srgb,var(--muck-gold) 9%,var(--muck-bg))!important;color:var(--muck-gold-muted)!important;border-color:color-mix(in srgb,var(--muck-gold) 30%,var(--muck-bg))!important;box-shadow:none!important}
/* Top-level page heroes = the home hero (Shaun, 2026-10-02: "use the home page heros card height and formatting
   for all the top level pages"): 461px tall, 26/40px padding, square top meeting the header, the home headline
   size (63.36px / 750 / -2px) and its 14px subtitle. Tournaments + Cash Games (.gs-hero) and the panel heroes
   (Leaderboard, Rewards, Missions, Rules: .px-head). Phones keep their own layouts. */
@media(min-width:720px){
  /* .gs-hero only on its own page and only while no panel covers it: this block's display:flex!important
     otherwise beat the rules that hide it, and the Cash Games hero leaked onto home and other pages
     (Shaun, 2026-10-03: "when i click the logo it like loads multiple pages content"). */
  body.redesign-v2.home-v3.game-section-page:not(.s2-panel-active) .gs-hero,
  body.redesign-v2.home-v3 #s2-panel .px-head{min-height:461px!important;padding:26px 40px!important;box-sizing:border-box;border-top:0!important;display:flex!important;flex-direction:column;justify-content:center}
  /* the rounded bottom, split out so Cash Games can square it where its table list joins on (below, 2026-10-12) */
  body.redesign-v2.home-v3 #s2-panel .px-head{border-radius:0 0 10px 10px!important}
  body.redesign-v2.home-v3.game-section-page:not(.s2-panel-active) .gs-hero{border-radius:0 0 10px 10px}
  body.redesign-v2.home-v3 .gs-hero h1,
  body.redesign-v2.home-v3 #s2-panel .px-head .px-title{font-size:63.36px!important;font-weight:750!important;line-height:.99!important;letter-spacing:-2px!important}
  body.redesign-v2.home-v3 .gs-hero p,
  body.redesign-v2.home-v3 #s2-panel .px-head .px-sub{font-size:14px!important;line-height:1.6!important}
}
/* Every top-level hero is Cash Games' height, 461px (Shaun, 2026-10-03: "make missions rewards leaderboard and muck
   club headers same height as cash games"). */
/* No back buttons here either (Shaun, 2026-10-02): the nav and the logo get you home. */
body.redesign-v2.home-v3 .gs-hero .gs-back{display:none!important}
/* Signed-out sign-in gates (Rewards, Missions, Muck Bucks History...) are top-level pages too: no panel title bar,
   the hero meets the header and ends where the home hero ends (Shaun, 2026-10-03: "rewards/mission have a random
   title above the hero and they dont fuse to the header like the other top level pages"). */
body.redesign-v2.home-v3 #s2-panel:has(#welcome-panel-content:not(.hidden))>.s2-panel-header{display:none!important}
/* No small label above a page's own title (Shaun, 2026-10-11: "never have these weird eyebrows above the main title",
   about "Fairness & Shuffling" over "Fairness & shuffling"): a panel page with its own heading has no panel title. */
body.redesign-v2.home-v3 #s2-panel:has(#s2-panel-body :is(h1,.info-title))>.s2-panel-header{display:none}
body.redesign-v2.home-v3 #s2-panel:has(#s2-panel-body :is(h1,.info-title))>#s2-panel-body{padding-top:20px}   /* the room the title bar left */
@media(min-width:720px){
  body.redesign-v2.home-v3 #s2-panel #welcome-panel-content .club-welcome-intro{min-height:461px!important;padding:26px 40px!important;border-top:0!important;border-radius:0 0 10px 10px!important;margin-top:0!important;box-sizing:border-box;display:flex!important;flex-direction:column;justify-content:center}
}
/* Leaderboard header 60px shorter than the other top-level heroes on desktop, with the lamp cropped out of the top
   (Shaun, 2026-10-03: "do it another 20, i want that lamp cropped out of the top"). The room is anchored to the bottom
   and at least 1420px wide (473px tall at 3:1), so at least ~70px comes off the top at every desktop width. */
@media(min-width:720px){body.redesign-v2.home-v3 #s2-panel .px-head.lb-head{min-height:401px!important;background-size:auto,max(100%,1420px) auto!important;background-position:0 0,center bottom!important}}
/* Leaderboard: no header card. Its title, blurb and tabs head the podium card (assets/leaderboard.js _placeIntro),
   and that card meets the top of the page like every section hero (Shaun, 2026-10-03). The header only shows again
   (as before) when there's no podium, e.g. an empty leaderboard. */
body.redesign-v2.home-v3 #s2-panel .lb-head.lb-head--moved{display:none!important}
/* until leaderboard.js has put the title and tabs in the podium (or back here), so the page's own header doesn't flash first
   (Shaun, 2026-10-29: "the leaderboard header like flashes when it loads") */
body.redesign-v2.home-v3 #s2-panel .lb-head.lb-head--pending{visibility:hidden}
body.redesign-v2.home-v3 #s2-panel #lb-podium.lbx-podium{margin-top:0!important;border-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important;padding-top:44px!important}
body.redesign-v2.home-v3 #s2-panel .lbx-intro{position:relative;z-index:2;margin:0 8px 34px;text-align:left}
body.redesign-v2.home-v3 #s2-panel .lbx-intro .px-title{margin:0 0 12px!important;color:#f7f6f1!important;font:750 clamp(38px,4.4vw,63.36px)/.99 var(--muck-font)!important;letter-spacing:-2px!important;-webkit-font-smoothing:antialiased}
body.redesign-v2.home-v3 #s2-panel .lbx-intro .px-sub{margin:0!important;max-width:52ch!important;color:#c9cfcb!important;font-size:14px!important;line-height:1.6!important}
body.redesign-v2.home-v3 #s2-panel .lbx-intro .lb-tabs{position:static!important;display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin:20px 0 0!important;padding:0!important;border:0!important;background:none!important;width:auto!important}
body.redesign-v2.home-v3 #s2-panel .lbx-intro .lb-tab{min-height:32px!important;padding:7px 10px!important;border:1px solid #ffffff22!important;border-radius:5px!important;background:#101010bb!important;color:#b8c6c8!important;font-size:11px!important;display:inline-flex;align-items:center;gap:6px}
body.redesign-v2.home-v3 #s2-panel .lbx-intro .lb-tab.active{background:#2a1d44dd!important;border-color:#7c3aed!important;color:#f0dfff!important}
body.redesign-v2.home-v3 #s2-panel .lbx-intro .lb-tab .material-symbols-rounded{font-size:15px!important}
@media(max-width:719px){body.redesign-v2.home-v3 #s2-panel .lbx-intro{margin:0 6px 26px}body.redesign-v2.home-v3 #s2-panel #lb-podium.lbx-podium{padding-top:28px!important}}
/* Purchase window when you can't afford it yet (assets/leaderboard.js _openPurchaseConfirm): the shortfall reads as a sentence. */
.rcm-is-short .rcm-balance-after{max-width:300px;margin-top:6px;color:var(--muck-text-2);font-size:.82rem;line-height:1.5;text-align:center}
.rcm-is-short .rcm-price{color:var(--muck-text-2)}
#rewards-body .rs-buy.is-short{cursor:pointer}
#rewards-body .rs-buy.is-short:hover{box-shadow:inset 0 0 0 1px var(--muck-gold-muted)}

/* Muck Short Deck (Shaun, 2026-10-05): lobby label, the table badge (a button: tap for the rankings), its popup, and
   the Rules page's best/worst hands. */
.lby-sd{color:var(--muck-gold);font-weight:800}
.sd-rules{position:fixed;z-index:4000;width:min(280px,calc(100vw - 16px));padding:14px 16px;border:1px solid var(--muck-line-strong);border-radius:12px;background:var(--muck-surface-1,#161616);box-shadow:0 12px 32px #000a;color:var(--muck-text);font:13px/1.45 var(--muck-font)}
.sd-rules[hidden]{display:none}
.sd-rules>b{display:block;margin-bottom:4px;color:var(--muck-gold);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.sd-rules p{margin:0 0 8px;color:var(--muck-text-2)}
.sd-rules ol{margin:0 0 10px;padding-left:20px}
.sd-rules li{padding:1px 0}
.sd-rules li span{color:var(--muck-text-3);font-size:11px}
.sd-rules li.sd-swap{color:var(--muck-gold);font-weight:700}
.rls-sd-hands{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:14px}

/* Cash tables: Add chips / Auto rebuy messages (assets/table.js _cashToast). */
.cash-toast{position:fixed;left:50%;bottom:calc(120px + env(safe-area-inset-bottom,0px));transform:translate(-50%,12px);z-index:9000;padding:10px 16px;border-radius:999px;background:var(--muck-surface-2,#1b2226);color:var(--muck-text,#f2f2f2);border:1px solid var(--muck-gold,#e8b64c);font:600 13px/1.2 Inter,system-ui,sans-serif;box-shadow:0 8px 24px #0008;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;white-space:nowrap}
.cash-toast.is-on{opacity:1;transform:translate(-50%,0)}

/* Muck Bucks store packs (2026-10-05): the pack art (saucer → wheelbarrow, assets/muck-bucks/) on a dark card,
   gold the only accent (docs/STYLE-GUIDE.md). Replaces the old purple cards in style.css. */
.store-pack-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 720px) {
  /* Two across on phones, the Whale as one wide card under them. */
  .store-pack-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-pack-card--best { grid-column: 1 / -1; display: grid; grid-template-columns: 112px 1fr; column-gap: 14px; align-items: center; justify-items: start; text-align: left; padding: 14px; }
  .store-pack-card--best .store-pack-art { grid-row: 1 / span 5; margin: 0; }
  .store-pack-card--best .store-pack-badge { left: auto; right: 12px; transform: none; }
}
.store-pack-card {
  gap: 2px; padding: 10px 10px 14px; border-radius: var(--muck-radius, 8px);
  background: var(--muck-surface-2, #1b1d1c); border: 1px solid var(--muck-line, #ffffff14);
}
@media (hover: hover) {
  .store-pack-card:hover { transform: translateY(-2px); background: var(--muck-surface-3, #232624); border-color: color-mix(in srgb, var(--muck-gold-muted) 50%, transparent); }
}
.store-pack-card--best { border-color: color-mix(in srgb, var(--muck-gold-muted) 50%, transparent); background: var(--muck-surface-2, #1b1d1c); }
.store-pack-badge { top: -9px; color: var(--muck-gold-ink, #211805); background: var(--muck-gold, #ffd34f); }
.store-pack-art { display: block; width: 100%; max-width: 160px; aspect-ratio: 1; height: auto; border-radius: var(--muck-radius-sm, 6px); margin-bottom: 8px; }
.store-pack-name { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muck-text-3, #ffffff73); }
.store-pack-chips { font-size: 20px; font-weight: 800; color: var(--muck-text, #fff); }
.store-pack-unit { font-size: 12px; color: var(--muck-text-2, #ffffffb3); margin-bottom: 10px; }
.store-pack-more { font-style: normal; font-weight: 700; color: var(--muck-gold, #ffd34f); }
.store-pack-price {
  display: block; width: 100%; padding: 8px 0; border-radius: var(--muck-radius-sm, 6px); text-align: center;
  font-size: 14px; font-weight: 800; color: var(--muck-gold-ink, #211805); background: var(--muck-gold, #ffd34f);
}
.zc-buy-chips { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
.zc-pack-art { width: 40px; height: 40px; border-radius: 6px; }

/* Lobby toasts (Payment Received, Welcome Back) sit in the bottom-right corner at every width: the phone table's
   .badge-toast rule (style.css, bottom: 160px to clear the action buttons) was lifting them to mid-screen. */
.badge-toast.temp-bonus-toast { bottom: calc(1.2rem + env(safe-area-inset-bottom, 0px)); right: 1.2rem; }
@media (max-width: 600px) {
  .badge-toast.temp-bonus-toast { bottom: calc(12px + env(safe-area-inset-bottom, 0px)); right: 12px; max-width: calc(100vw - 24px); }
}
/* The in-game "Badge earned" toast goes to the same corner (Shaun, 2026-10-09: "move it down to the corner where the other
   touts go"), above the match result, which is when most missions finish. */
#badge-toast.badge-toast { bottom: calc(1.2rem + env(safe-area-inset-bottom, 0px)); right: 1.2rem; z-index: 310; }
@media (max-width: 600px) {
  #badge-toast.badge-toast { bottom: calc(12px + env(safe-area-inset-bottom, 0px)); right: 12px; max-width: calc(100vw - 24px); }
  #badge-toast.badge-toast { min-width: 0; padding: 7px 12px 7px 9px; gap: 9px; }   /* compact: it sits over the bottom of the result */
  #badge-toast .badge-toast-img { width: 40px; height: 40px; }
}

/* ── Muck Bucks store, redesigned (2026-10-05): panel-kit header with Larry at the cashier's cage ── */
body.redesign-v2 #s2-panel .px-head[data-art=store] { --header-image: url('lobby-art/store-cashier-v15-homepage-bucks.webp'); }
body.redesign-v2.home-v3 #s2-panel .px-head[data-art=store] {
  min-height: 300px !important; box-sizing: border-box !important; display: flex !important; flex-direction: column !important;
  justify-content: center !important; align-items: flex-start !important; gap: 18px !important; text-align: left !important;
  background-color: #0b1712 !important;
  background-image: linear-gradient(90deg, #0b1712 0%, #0b1712 30%, #0b1712d9 40%, #0b171200 52%), var(--header-image) !important;
  background-size: 100% 100%, auto 100% !important; background-position: center, right center !important; background-repeat: no-repeat !important;
}
body.redesign-v2.home-v3 #s2-panel .px-head[data-art=store] .px-head-main { max-width: 40%; margin-right: auto; text-align: left; }
body.redesign-v2.home-v3 #s2-panel .px-head[data-art=store] :is(.px-eyebrow, .px-title, .px-sub) { text-align: left !important; justify-content: flex-start !important; }
body.redesign-v2.home-v3 #s2-panel .px-head[data-art=store] .px-head-aside { width: auto !important; justify-content: flex-start !important; }
body.redesign-v2.home-v3 #s2-panel .px-head[data-art=store] .px-stat { text-align: left; }
body.redesign-v2.home-v3 #s2-panel .px-head[data-art=store] .px-title { font-size: clamp(34px, 3.8vw, 56px) !important; letter-spacing: -.04em !important; }
@media (max-width: 719px) {
  body.redesign-v2.home-v3 #s2-panel .px-head[data-art=store] {
    min-height: 360px !important; align-items: flex-start !important; flex-direction: column !important; justify-content: flex-end !important; gap: 10px !important;
    background-image: linear-gradient(0deg, #0a1410 0%, #0a1410f0 38%, #0a141000 70%), var(--header-image) !important;
    background-size: 100% 100%, auto 250px !important; background-position: center, 60% top !important;
  }
  body.redesign-v2.home-v3 #s2-panel .px-head[data-art=store] .px-head-main { max-width: 100%; }
  body.redesign-v2.home-v3 #s2-panel .px-head[data-art=store] .px-title { font-size: 34px !important; }
}

#s2-panel .store-packs .px-section-meta, #s2-panel .store-redeem .px-section-meta { display: inline-flex; align-items: center; gap: 6px; color: var(--muck-text-3); font-size: 12px; }
#s2-panel .store-packs .px-section-meta .material-symbols-rounded { font-size: 15px; color: var(--muck-gold-muted); }
#s2-panel .store-redeem .px-section-meta a { color: var(--muck-gold); }

/* The Muck Club, one line under the packs. */
#s2-panel .store-club {
  display: grid; grid-template-columns: 150px 1fr auto; align-items: center; gap: 20px; margin: 18px 0 8px;
  padding: 0 22px 0 0; overflow: hidden; border-radius: var(--muck-radius, 10px); text-decoration: none; color: var(--muck-text);
  background: linear-gradient(90deg, #17150d, #121411); border: 1px solid color-mix(in srgb, var(--muck-gold-muted) 45%, transparent);
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s, border-color .2s;
}
#s2-panel .store-club img { width: 150px; height: 104px; object-fit: cover; display: block; }
#s2-panel .store-club-copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding: 14px 0; }
#s2-panel .store-club-eyebrow { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muck-gold); }
#s2-panel .store-club-eyebrow .material-symbols-rounded { font-size: 16px; }
#s2-panel .store-club strong { font-size: 18px; font-weight: 800; }
#s2-panel .store-club-copy > span:last-child { font-size: 13px; color: var(--muck-text-2); }
#s2-panel .store-club-cta { white-space: nowrap; padding: 10px 16px; border-radius: 8px; font-weight: 800; color: var(--muck-gold-ink); background: var(--muck-gold); }
@media (hover: hover) {
  #s2-panel .store-club:hover { transform: translateY(-2px); border-color: var(--muck-gold); }
}
@media (max-width: 600px) {
  #s2-panel .store-club { grid-template-columns: 96px 1fr; padding: 0 14px 0 0; gap: 14px; }
  #s2-panel .store-club img { width: 96px; height: 100%; min-height: 110px; }
  #s2-panel .store-club-cta { grid-column: 2; justify-self: start; margin-bottom: 14px; padding: 8px 14px; }
  #s2-panel .store-club strong { font-size: 16px; }
}

/* Got a code? */
#s2-panel .store-redeem { margin-top: 18px; }
#s2-panel .store-redeem .store-redeem-row { display: flex; gap: 10px; }
#s2-panel .store-redeem .store-code-input {
  flex: 1; min-width: 0; height: 46px; padding: 0 14px; border-radius: 8px; box-sizing: border-box;
  background: var(--muck-surface-1, #121212); border: 1px solid var(--muck-line-strong, #ffffff24); color: var(--muck-text); font: 500 15px var(--muck-font, Inter, sans-serif);
  letter-spacing: .06em; text-transform: uppercase;
}
#s2-panel .store-redeem .store-code-input::placeholder { text-transform: none; letter-spacing: 0; color: var(--muck-text-3); }
#s2-panel .store-redeem .store-code-input:focus { outline: none; border-color: var(--muck-gold); }
#s2-panel .store-redeem .store-redeem-btn { height: 46px; padding: 0 22px; }

#s2-panel .store-fineprint { display: flex; align-items: flex-start; gap: 8px; margin: 22px 0 6px; font-size: 12px; line-height: 1.5; color: var(--muck-text-3); }
#s2-panel .store-fineprint .material-symbols-rounded { font-size: 16px; color: var(--muck-text-3); margin-top: 2px; } /* centred on the first line of text */

/* Pack cards: same hover pzazz as the homepage. */
@media (hover: hover) and (min-width: 1024px) {
  #s2-panel .store-pack-card:hover { border-color: var(--muck-gold); box-shadow: none; }
  #s2-panel .store-pack-card .store-pack-art { transition: transform .5s cubic-bezier(.2,.8,.2,1); }
  #s2-panel .store-pack-card:hover .store-pack-art { transform: scale(1.06) rotate(-1.5deg); }
  #s2-panel .store-pack-card:hover .store-pack-price { filter: brightness(1.06); }
}
/* Store: tighter steps between the packs, the Club line and the code box (Shaun, 2026-10-05: "too much spacing between cards"). */
body.redesign-v2 #s2-panel .store-packs .store-pack-grid { margin-bottom: 0 !important; }
body.redesign-v2 #s2-panel #store-buy-result:empty { display: none; }
body.redesign-v2 #s2-panel .store-club { margin: 12px 0 0 !important; }
body.redesign-v2 #s2-panel .px-section.store-redeem { margin-top: 12px !important; }
@media (max-width: 600px) { body.redesign-v2 #s2-panel .px-section.store-redeem { padding: 18px !important; } body.redesign-v2 #s2-panel .px-section.store-packs { margin-top: 20px !important; } }

/* Cashier panorama fills the desktop header instead of a height-sized strip (Astra, e73e2e79). */
@media (min-width: 720px) {
  body.redesign-v2.home-v3 #s2-panel .px-head[data-art=store] {
    min-height: clamp(300px, 25vw, 420px) !important;
    background-size: 100% 100%, cover !important;
    background-position: center, center 45% !important;
    /* the title's dark fade ends before Bob, so his face isn't dimmed */
    background-image: linear-gradient(90deg, #0b1712 0%, #0b1712f2 22%, #0b1712b3 31%, #0b171200 40%), var(--header-image) !important;
  }
  body.redesign-v2.home-v3 #s2-panel .px-head[data-art=store] .px-head-main { max-width: 30%; }
}
/* Settings › Display Name: the one-change note */
.settings-name-hint { margin: 6px 2px 0; font-size: 12px; color: var(--muck-text-3); }
.settings-name-hint:empty { display: none; }
#settings-name:disabled { opacity: .6; cursor: not-allowed; }
/* "Normal Poker (spread begrudgingly)": the Texas Hold'em and Short Deck Hold'em lobby under the Muck one (2026-10-06) */
.lby-section-head{display:none}
body.game-section-page #s2-card-opentables .lby-section-head{display:block;margin:28px 0 10px}
.lby-section-head h4{margin:0;color:var(--muck-text);font:800 20px/1.2 var(--muck-font);letter-spacing:-.02em}
.lby-section-head h4 span{color:var(--muck-text-3);font-weight:600;font-size:15px;letter-spacing:0}
.lby-section-head p{margin:4px 0 0;color:var(--muck-text-3);font:500 13px var(--muck-font)}
body.game-section-page #s2-card-opentables :is(.lby,.lby-section-head).gs-filtered{display:none}
/* Multi-table tournaments get their own card above the sit & gos; hidden while there's no freeroll to list (freeroll.js). */
.lby-mtt.is-empty{display:none}
body.game-section-page #s2-card-opentables .lby-mtt .lby-section-head{margin-top:8px}

/* Muck Bucks packs in the out-of-Muck-Bucks window: the amount, then "Muck Bucks" under it. On one line the bigger packs
   ran into each other (Shaun, 2026-10-08: "this shouldnt be jumbled up"). */
.zc-pack-btn { min-width: 0; }
.zc-pack-chips { display: flex; flex-direction: column; align-items: center; white-space: normal; line-height: 1.2; font-variant-numeric: tabular-nums; }
.zc-pack-chips small { font-size: 0.68rem; font-weight: 600; color: rgba(255,255,255,0.6); }
/* phones: readable (Shaun, 2026-10-30, mobile text audit: the amounts were 11.7px, "Muck Bucks" 10.2px) */
@media (max-width: 900px) {
  .zc-pack-btn { font-size: 14px; }
  .zc-pack-chips small { font-size: 12px; }
  .zc-hint { font-size: 13px; }
  .zc-divider { font-size: 12px; }
  .zc-close-btn { font-size: 14px; }
}

/* Settings rows with an unlock price: the label stays on one line, the price badge goes under it when the label column
   (13rem) can't fit both. "Twitter/X Avatar" used to break over three lines. */

/* Panel loading (leaderboard.js _pxLoading): a label in the top corner, the content dimmed under it, nothing moves. */
.px-loadable{position:relative}
.px-loadable>.px-status{position:absolute;top:16px;right:18px;z-index:6;display:inline-flex;align-items:center;padding:4px 10px;border:1px solid #ffffff1f;border-radius:999px;background:#000b;color:#d4d4d4;font:700 10.5px var(--muck-font,Inter,sans-serif);letter-spacing:.08em;text-transform:uppercase;pointer-events:none}
.px-loadable:has(>.px-status)>:not(.px-status):not(.px-skel){opacity:.5;transition:opacity .15s}

/* Tournaments: the hero and the Sunday Freeroll card read as one card (Shaun, 2026-10-09: "connect these two so they are
   one card"): no gap, one gold border around both, a quiet divider at the seam, rounded only at the bottom. */
body.game-section-page.tournament-section .gs-hero:has(~ .fr-card){margin-bottom:0!important;border:1px solid color(srgb .45451 .394118 .212941);border-bottom:0}
/* square where it meets the freeroll card (outweighs the home-v3 rule that rounds the hero's bottom corners) */
body.redesign-v2.home-v3.game-section-page.tournament-section:not(.s2-panel-active) .gs-hero:has(~ .fr-card){border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}
body.game-section-page.tournament-section .gs-hero ~ .fr-card{border-top:1px solid color-mix(in srgb,var(--muck-gold) 18%,transparent)!important;border-radius:0 0 10px 10px!important;margin-top:0!important}
/* Neither game page has the table list's heading or its intro line (Shaun, 2026-10-10: "kill this from tournament page",
   then "Your table is waiting ... kill from cash page"): the section headings under it say it. */
body.game-section-page #s2-card-opentables :is(.v2-section-title,.gs-table-intro){display:none}
/* The featured holiday pack (the Halloween tables) at the top of Cash Games and Tournaments: a quiet gold edge and a
   Featured pill, so it reads as the special thing on the page without shouting. */
body.game-section-page #s2-card-opentables .lby:is([data-lby-section="vip"],[data-lby-section="holiday"]){border-color:var(--muck-gold-muted)}
body.game-section-page #s2-card-opentables .lby-section-head--featured h4 span{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:6px;background:var(--muck-surface-3);color:var(--muck-gold);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}
body.game-section-page #s2-card-opentables .lby-section-head--featured{margin-top:8px}
body.game-section-page #s2-card-opentables .lby:is([data-lby-section="vip"],[data-lby-section="holiday"]) + .lby-mtt .lby-section-head{margin-top:28px}   /* under the featured card, the usual gap */
body.game-section-page #s2-card-opentables .lby + .lby-section-head--featured{margin-top:28px}   /* one featured card under another (Halloween under VIP) */

/* Open tables (assets/open-tables.js, 2026-10-12): tables players started, waiting for people, at the top of the Cash
   Games and Tournaments views, with New Table. Same rows as the lobby tables below them. */
.otb{display:none}
body.game-section-page #s2-card-opentables .otb{display:block;margin:0 0 6px}
body.game-section-page #s2-card-opentables .otb-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:8px}
.otb-new{display:inline-flex;align-items:center;gap:6px;flex:none;height:40px;padding:0 16px;border:0;border-radius:8px;background:var(--muck-gold-cta,#ffd34f);color:var(--muck-gold-ink,#0b1117);font:800 13px var(--muck-font);cursor:pointer}
.otb-new .material-symbols-rounded{font-size:19px;color:inherit}
.otb-new:hover{background:var(--muck-gold-cta-hover,#ffe68f)}
.otb-new:focus-visible{outline:2px solid var(--muck-gold,#ffd34f);outline-offset:3px}
body.game-section-page #s2-card-opentables .otb-list[hidden],.otb-empty[hidden]{display:none}
.otb-empty{margin:4px 0 8px;padding:16px 18px;border:1px dashed var(--muck-line-strong,#3a3a3a);border-radius:var(--muck-radius-lg,12px);color:var(--muck-text-3,#7d7d7d);font:500 13.5px var(--muck-font)}
.otb-lock{font-size:15px;vertical-align:-3px;color:var(--muck-text-3,#7d7d7d)}
.otb-you{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--muck-gold,#ffd34f) 16%,transparent);color:var(--muck-gold,#ffd34f);font:800 10px var(--muck-font);letter-spacing:.06em;text-transform:uppercase;vertical-align:1px}
@media(max-width:719px){body.game-section-page #s2-card-opentables .otb-head{align-items:center}.otb-new{height:38px;padding:0 13px}}

/* Cash Games: the hero and the table list are one container (Shaun, 2026-10-12: "make the top of cash games card row
   attach as 1 piece to bottom of hero so they are one long container vs separate cards"). No gap, square corners where
   they meet, the hero's border carried down the list; the hero's bottom edge is the line between them. */
body.game-section-page.cash-section .ls-rail>.gs-hero,body.redesign-v2.home-v3.game-section-page.cash-section:not(.s2-panel-active) .ls-rail>.gs-hero{margin-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}
body.game-section-page.cash-section #s2-card-opentables [data-qt-pane=cash] .lby[data-lby-section=muck]{margin-top:0;border-top:0;border-color:#33414a;border-radius:0 0 12px 12px}
/* Bob's Garage for a trained newcomer (index.php $_startTag; 2026-10-14): a filled gold tag, dark text */
.lby-start{display:inline-block;margin-left:var(--muck-space-2,8px);padding:1px 8px;border-radius:999px;background:var(--muck-gold,#ffd34f);color:var(--muck-gold-ink,#0b1117);font-size:10.5px;font-weight:800;line-height:1.5;letter-spacing:.02em;vertical-align:2px;white-space:nowrap}
/* Phones: no hero on Cash Games and Tournaments; the table list starts right under the top menu (Shaun, 2026-10-15: "on
   mobile kill the headers for tournament and lobby, and have the start of the lobby table be the start of the page") */
/* The Sunday Freeroll card goes too; its row in the list keeps the Lobby button ("freeroll card goes too on mobile") */
@media(max-width:719px){body.game-section-page :is(.gs-hero,.fr-card){display:none}}

/* Phones, off the table: every corner toast (Signed in, Welcome Back, Payment Received...) sits at the bottom of the screen,
   full width, never mid-page (Shaun, 2026-10-15: "any like this on mobile should be at bottom of screen not in the middle").
   style.css's bottom: 160px is for the table, where it clears the action buttons. */
@media (max-width: 760px) {
  body:not(.mobile-game-active):not(.desktop-game-active) :is(#badge-toast, .badge-toast) {
    top: auto; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); left: 12px; right: 12px; min-width: 0; max-width: none;
  }
}

/* Lobby rows for desktop only: Short Deck All-in or Fold, locked, for players without both passes (index.php 'teaser') */
@media (max-width: 760px) { .lby .lby-row.lby-desk-only { display: none; } }

/* Private games (assets/open-tables.js renderPrivate; Shaun, 2026-10-18): your scheduled private tables at the top of the
   Cash Games and Tournaments lists, with when each one starts under its name. */
.lby .pg-row .lby-name { flex-wrap: wrap; row-gap: 2px; }
.lby .pg-when { display: block; flex-basis: 100%; font: 600 12px/1.3 var(--muck-font); color: var(--muck-gold-muted); }
/* The board tabs' row scrolls sideways (overflow-x:auto), which clips a focus ring drawn outside the tab: draw it just inside
   the tab's edge instead, so it's whole (Shaun, 2026-10-29: "corners cut off" on Cash) */
body.redesign-v2 :is(#s2-panel,#lobby) .lb-tabs .lb-tab:is(:focus,:focus-visible){outline-offset:-2px}   /* the ID matches lobby-design.css / lobby-redesign-v2.css's focus rule, so this one wins */
/* The "?" beside a variation in the lobby's Format column (index.php $_lbyWhy, assets/lobby-why.js): a small gold ring, a bigger
   hit area than it looks (Shaun, 2026-10-29: "little question mark labels next to the format column") */
.lby .lby-format .lby-why{position:relative;display:inline-grid;place-items:center;width:16px;height:16px;margin-left:6px;padding:0;border:1px solid #ddc58a80;border-radius:50%;background:none;color:#ddc58a;font:700 10px/1 var(--muck-font);vertical-align:1px;cursor:help}
.lby .lby-format .lby-why::before{content:"";position:absolute;inset:-12px}
.lby .lby-format .lby-why:hover{border-color:#ddc58a;color:#eee9dc}
.lby .lby-format .lby-why:focus-visible{outline:2px solid #ddc58a;outline-offset:2px}
/* Try's padlock (index.php $_lbyJoin): open while today's free games last, closed after */
.lby-join .lby-lock{display:inline-block;width:14px;height:14px;margin-right:5px;vertical-align:-2px}
/* Exhibition matches (index.php, includes/Exhibitions.php): who's playing under the match's name */
.lby-ex .lby-ex-who{display:block;margin-top:var(--muck-space-1);color:var(--muck-text-3);font:600 12px/1.3 var(--muck-font)}
.lby-ex .lby-watch{display:inline-flex;align-items:center;justify-content:center;gap:var(--muck-space-1);text-decoration:none}
.lby-ex .lby-watch .material-symbols-rounded{font-size:16px}
.lby-ex .lby-row{padding-block:var(--muck-space-3)}
/* not on right now: a quiet label where Watch goes, never gold on hover */
.lby-ex .lby-ex-off{display:inline-flex;align-items:center;justify-content:center;width:112px;height:30px;color:var(--muck-text-3);font:800 12px var(--muck-font);letter-spacing:.06em;text-transform:uppercase}
/* each match's player with their X picture */
.lby-ex .lby-ex-who{display:flex;align-items:center;gap:var(--muck-space-2)}
.lby-ex .lby-ex-face{flex:none;width:20px;height:20px;border-radius:50%;object-fit:cover;background:#2a2720}
/* one width for every match button, right-aligned, so the column lines up (Shaun, 2026-11-02: "the right column ... its like
   diff width and kinda awkward"): Play, Watch, Results, and Not live as plain text in the same space */
.lby-ex .lby-act{display:flex;justify-content:flex-end}
.lby-ex .lby-act .lby-join{display:inline-flex;align-items:center;justify-content:center;gap:var(--muck-space-1);width:112px;min-width:0;padding:0}
@media(max-width:900px){
  .lby-ex .lby-act :is(.lby-join,.lby-ex-off){width:104px}
}
/* a finished match: Results and Watch side by side (Shaun, 2026-11-03: "add a watch button next to results"), so this table's
   last column holds two; on a phone they stack */
@media(min-width:901px){[data-qt-pane="cash"] .lby.lby-ex :is(.lby-head,.lby-row){grid-template-columns:.7fr minmax(150px,1.5fr) minmax(90px,.8fr) 1.1fr 1fr .8fr .7fr 232px}}
@media(min-width:901px) and (max-width:1400px){   /* laptops: a little narrower, so "Name vs SuperMega Larry" stays on one line */
  [data-qt-pane="cash"] .lby.lby-ex :is(.lby-head,.lby-row){grid-template-columns:minmax(58px,.6fr) minmax(150px,1.7fr) minmax(90px,.8fr) 1.1fr .8fr .8fr .7fr 208px}
  .lby-ex .lby-act .lby-join{width:100px}
}
.lby-ex .lby-act{gap:var(--muck-space-2)}
@media(max-width:900px){
  .lby-ex .lby-act{flex-direction:column;gap:6px}
}
/* the Result column: how each match is going (Exhibitions::result) */
.lby-ex .lby-ex-res{font-weight:700}
.lby-ex .lby-ex-res--win{color:var(--muck-gold)}
.lby-ex .lby-ex-res--loss{color:var(--muck-text-2)}
.lby-ex .lby-ex-res--live{color:var(--muck-text)}
.lby-ex .lby-ex-res--none{color:var(--muck-text-3);font-weight:500}
