.poker-noir-lobby{width:min(1180px,100%);margin:0 auto;padding:18px;display:grid;gap:18px;color:#f5f0e5}.pnl-hero{position:relative;min-height:190px;padding:26px 30px;border:1px solid rgba(218,180,92,.28);border-radius:28px;overflow:hidden;background:radial-gradient(circle at 75% 30%,rgba(34,119,83,.32),transparent 35%),linear-gradient(135deg,#0d1115,#17131b 62%,#090b0e);box-shadow:0 28px 80px rgba(0,0,0,.38)}.pnl-hero:after{content:"";position:absolute;inset:auto -12% -65% 35%;height:120%;border-radius:50%;background:radial-gradient(ellipse,#185f45,#0a2c21 58%,#05140f 70%);border:12px solid #281b16;box-shadow:inset 0 0 70px #000,0 0 0 2px #674934}.pnl-hero-copy{position:relative;z-index:2;max-width:620px}.pnl-kicker{display:block;color:#cfae64;font:700 10px/1.2 ui-monospace;letter-spacing:.2em;text-transform:uppercase}.pnl-hero h1{margin:8px 0 6px;font:800 clamp(30px,4.6vw,52px)/.95 Georgia,serif;letter-spacing:-.04em}.pnl-hero p{max-width:520px;color:#bcb6aa;font-size:15px}.pnl-hero-actions{display:flex;gap:10px;margin-top:16px}.pnl-btn{min-height:44px;padding:0 18px;border-radius:12px;border:1px solid rgba(255,255,255,.14);font-weight:800;color:#f8f3e8;background:#242028;cursor:pointer}.pnl-btn.primary{color:#11100d;background:linear-gradient(#f1d486,#bd8f39);border-color:#f5da93;box-shadow:0 8px 25px rgba(190,143,54,.25)}.pnl-btn.ghost{background:rgba(255,255,255,.06)}.pnl-btn.wide{width:100%;margin-top:8px}.pnl-hero-art{position:absolute;right:9%;top:24px;z-index:3;width:190px;height:190px}.pnl-hero-art b{position:absolute;inset:42px;text-align:center;font:100px/1 Georgia;color:#171319;filter:drop-shadow(0 2px 0 #e3c16e)}.pnl-card-back{position:absolute;width:82px;height:116px;border-radius:10px;border:3px solid #d8c58f;background:repeating-radial-gradient(circle at 30% 30%,#d9b860 0 2px,#171226 3px 7px);box-shadow:0 14px 30px #000}.pnl-card-back.one{transform:rotate(-17deg);left:12px;top:45px}.pnl-card-back.two{transform:rotate(15deg);right:12px;top:34px}.pnl-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;gap:10px}.pnl-wallet{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid rgba(255,255,255,.1);border-radius:17px;background:#151419}.pnl-wallet-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;color:#172019;background:#d4b15c;font-size:22px}.pnl-wallet-copy{display:grid;gap:2px}.pnl-wallet-copy strong{font:800 22px ui-monospace}.pnl-wallet-copy small{color:#969188}.pnl-wallet .pnl-btn{margin-left:auto}.pnl-active,.pnl-history{padding:0 17px;border:1px solid rgba(255,255,255,.1);border-radius:17px;color:#eee8dd;background:#151419;font-weight:750}.pnl-active{border-color:rgba(77,211,143,.35);color:#7ee5aa}.pnl-tabs{display:flex;gap:4px;padding:4px;border-radius:14px;background:#111015}.pnl-tabs button{flex:1;min-height:43px;border:0;border-radius:10px;color:#89848d;background:transparent;font-weight:800}.pnl-tabs button.is-on{color:#f4e8c9;background:#29242c;box-shadow:inset 0 0 0 1px rgba(218,180,92,.2)}.pnl-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.pnl-visibility{margin-right:7px;color:#caa955}.pnl-status{padding:4px 7px;border-radius:20px;color:#8fd8b0;background:rgba(53,177,112,.1);font:700 9px ui-monospace;text-transform:uppercase}.pnl-tournament{grid-column:span 3;display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:20px}.pnl-tournament.is-weekly{background:radial-gradient(circle at 8% 50%,rgba(207,174,86,.16),transparent 22%),linear-gradient(145deg,#211a20,#111115)}.pnl-trophy{font:58px Georgia;color:#d3af59;text-align:center}.pnl-tournament h3{margin:5px 0;font:700 21px Georgia}.pnl-tournament p,.pnl-tournament small{color:#918b92}.pnl-progress{height:5px;margin:10px 0 5px;border-radius:9px;background:#302d33;overflow:hidden}.pnl-progress i{display:block;height:100%;background:#d3af59}.pnl-sheet-backdrop{position:fixed;z-index:5000;inset:0;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.pnl-sheet{position:relative;width:min(560px,100%);max-height:90dvh;overflow:auto;padding:27px;border:1px solid rgba(218,180,92,.25);border-radius:25px;background:#151419;color:#f3ede2}.pnl-sheet-x{position:absolute;right:15px;top:12px;border:0;color:#aaa;background:transparent;font-size:28px}.pnl-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.pnl-mode{display:grid;gap:7px;min-height:160px;padding:20px;text-align:left;border:1px solid rgba(255,255,255,.1);border-radius:18px;color:#eee8dd;background:#1d1b21}.pnl-mode b{font:42px Georgia;color:#d2ad55}.pnl-mode strong{font-size:19px}.pnl-mode small{color:#88828b}.pnl-label{display:grid;gap:8px;margin:15px 0;color:#aaa3aa;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.pnl-input{height:46px;padding:0 13px;border:1px solid rgba(255,255,255,.12);border-radius:11px;color:#fff;background:#0f0e12;font-size:15px}.pnl-choice-row{display:flex;flex-wrap:wrap;gap:7px}.pnl-choice-row button{min-width:51px;height:39px;padding:0 12px;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#aaa;background:#211f24}.pnl-choice-row button.is-on{color:#17130c;border-color:#d7b45d;background:#d7b45d}.pnl-back{border:0;color:#baaa80;background:transparent}.poker-waiting{display:grid;place-items:center;gap:14px;min-height:70dvh;color:#eee}.pnl-error,.pnl-empty{padding:30px;text-align:center;color:#aaa}.pnl-history{cursor:pointer}
@media(max-width:780px){.poker-noir-lobby{padding:8px;gap:12px}.pnl-hero{min-height:245px;padding:26px 20px}.pnl-hero-art{opacity:.32;right:-20px}.pnl-hero-copy{max-width:90%}.pnl-toolbar{grid-template-columns:1fr 1fr}.pnl-wallet{grid-column:span 2}.pnl-list{grid-template-columns:1fr}.pnl-tournament{grid-column:auto;grid-template-columns:52px 1fr}.pnl-tournament>.pnl-btn{grid-column:span 2}.pnl-mode-grid{grid-template-columns:1fr}.pnl-sheet-backdrop{align-items:end;padding:0}.pnl-sheet{width:100%;border-radius:24px 24px 0 0}.pnl-hero-actions{flex-wrap:wrap}.pnl-hero-actions .pnl-btn{flex:1}}
@media(prefers-reduced-motion:reduce){.poker-noir-lobby *{animation:none!important;transition:opacity .12s linear!important}}
.pnl-hero{background:linear-gradient(90deg,rgba(7,7,9,.98) 0%,rgba(7,7,9,.82) 38%,rgba(7,7,9,.12) 75%),url(../../assets/poker/arena-noir-hero.webp) center right/cover no-repeat,#0d1115}.pnl-paid-shop{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px;border:1px solid #d5ac5b44;border-radius:12px;background:#0a0d10}.pnl-paid-shop small{flex-basis:100%;color:#a99f8b}
.pnl-history-page,.pnl-replay{padding:clamp(16px,3vw,42px);max-width:1180px;margin:auto}.pnl-history-grid,.pnl-hand-list{display:grid;gap:8px}.pnl-history-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin:20px 0 32px}.pnl-history-row,.pnl-hand-row{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid rgba(220,190,118,.18);border-radius:12px;background:rgba(10,13,14,.74);color:#e9dfca;text-align:left}.pnl-hand-row{width:100%}.pnl-replay-board{margin:22px auto;padding:24px;border:1px solid #c69b4e55;border-radius:999px;background:#153e2f;box-shadow:inset 0 0 40px #04140e;color:#fff4d4;font:900 clamp(22px,5vw,48px)/1 var(--font-display);letter-spacing:.12em;text-align:center}.pnl-replay-seats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.pnl-replay-seat{display:flex;flex-direction:column;gap:5px;padding:12px;border:1px solid #ffffff18;border-radius:10px;background:#090c0f}.pnl-replay-controls{display:flex;justify-content:center;align-items:center;gap:12px;margin:20px}.pnl-replay-controls button{min-width:42px;padding:9px;border:1px solid #c69b4e55;border-radius:8px;background:#111619;color:#f1dfb5}.pnl-replay-log{display:grid;gap:5px;max-width:660px;margin:auto}.pnl-replay-log div{display:flex;justify-content:space-between;padding:9px 12px;background:#ffffff08;border-radius:7px}
.pnl-sheet-body{display:grid;gap:12px}.pnl-tournament-main{min-width:0}.l3-now-card.is-solo .l3-now-main{min-width:0}
.pnl-range{width:100%;accent-color:#d7b45d}.pnl-label output{justify-self:end;color:#f0d78f;font-size:13px;letter-spacing:0;text-transform:none}.pnl-sheet-balance{margin:0;padding:10px 12px;border-radius:11px;background:#0f0e12;color:#c8bfae}.pnl-replay-seat.is-turn{border-color:#d7b45d;box-shadow:0 0 0 1px #d7b45d55}.pnl-replay-seat small{color:#d7b45d}
.pnl-history-state{margin:18px 0;color:#a9a08d;text-align:center}.pnl-history-more{justify-self:center;margin:18px auto}

/* Between-hand/empty cash tables use the same physical Arena Noir stage as a
   live hand. These rules intentionally refine the historical waiting card;
   the renderer now supplies canonical .pk-seat/.pk-felt geometry. */
.poker-waiting{display:flex;place-items:normal;gap:9px;min-height:var(--match-h,auto);color:#eee}
.poker-waiting .pwt-stage{min-height:0}
.poker-waiting .pwt-felt{width:auto;aspect-ratio:auto;border-width:1px;justify-content:center;min-height:240px;text-align:center}
.poker-waiting .pwt-felt strong{font:800 clamp(18px,3vw,30px) Georgia,serif;color:#f2e5c4}
.poker-waiting .pwt-felt .mono{color:#b6aa90}
.poker-waiting .pwt-seats{width:auto;aspect-ratio:auto;border:0;border-radius:0;background:none;box-shadow:none}
.poker-waiting .pwt-seat{appearance:none;width:auto;height:auto;margin:0;color:#eee;cursor:pointer;pointer-events:auto}
.poker-waiting .pwt-seat:disabled{cursor:default}
.poker-waiting .pwt-seat.is-empty{border-color:rgba(208,170,87,.55)}
.poker-waiting .pwt-seat.is-empty .pk-avatar{color:#17130c;background:#d0aa57}
.poker-waiting .pwt-seat.is-empty .pk-seat-stack{color:#d7bd7b}
.poker-waiting{align-items:stretch}
.poker-waiting .pwt-stage{width:100%}
/* The waiting room renders the live table's stage but never runs its sizing
   JS — fitMatchColumn()/sizeFeltWithStage() run only inside a hand. Once the
   legacy waiting card stopped drawing its own oval, the desktop stage had no
   in-flow content (felt and seats are absolute there) and collapsed to 0:
   seats pinned to % of nothing stacked onto the toolbar. Reproduce the live
   geometry declaratively: the stage gets the one screenful --match-h would
   have had (100dvh minus the 42px hud, 16px scene padding, 38px table bar
   and 12px gap) and the felt the clamp sizeFeltWithStage() computes —
   0.92·stage − 118, width-capped at 0.96·stage-width/1.62, floored/capped at
   150/640px. --pk-zoom stays 1: calc() cannot divide a length by a length on
   the older WebViews this route supports, and mock-size waiting plates read
   fine at any felt size. Landscape phones (is-short) keep the compact flow. */
@container scene (min-width:620px){
  .poker-waiting:not(.is-short){
    --pwt-stage-h: max(430px, calc(100dvh - env(safe-area-inset-top, 0px) - 108px));
    --pk-felt-h: max(150px, min(640px, calc(0.92 * var(--pwt-stage-h) - 118px), calc((96cqw - 15.36px) / 1.62)));
    --pk-felt-w: calc(var(--pk-felt-h) * 1.62);
  }
  .poker-waiting:not(.is-short) .pwt-stage{height:var(--pwt-stage-h)}
  .poker-waiting .pwt-felt{width:var(--pk-felt-w,600px);height:var(--pk-felt-h,370.4px);aspect-ratio:auto}
}
@container scene (max-width:619px){.poker-waiting .pwt-felt{width:auto;height:auto;aspect-ratio:auto}}

.pnl-tournament{position:relative;padding:17px;border:1px solid rgba(255,255,255,.09);border-radius:19px;background:linear-gradient(145deg,#19181d,#111115);box-shadow:0 12px 35px rgba(0,0,0,.2)}

/* === the PokerStars lane: dense room rows, filters, my games first === */
.pnl-list{display:flex;flex-direction:column;gap:7px}
.pnl-section-label{margin:6px 0 -2px;color:#cfae64;font:700 10px/1.2 ui-monospace;letter-spacing:.18em;text-transform:uppercase}
.pnl-room{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(0,2fr) auto;align-items:center;gap:14px;padding:11px 14px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:linear-gradient(145deg,#151417,#101013)}
.pnl-room.is-mine{border-color:rgba(211,173,86,.42);background:linear-gradient(145deg,#1e1a14,#131110)}
.pnl-room-main{display:flex;align-items:center;gap:9px;min-width:0}
.pnl-room-title{display:flex;align-items:baseline;gap:9px;min-width:0}
.pnl-room-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.pnl-room-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pnl-room-grid div{display:grid;gap:2px}
.pnl-room-grid dt{color:#77727b;font-size:9px;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap}
.pnl-room-grid dd{margin:0;font:700 13px ui-monospace;white-space:nowrap}
.pnl-room-acts{display:flex;align-items:center;gap:7px}
.pnl-room-acts .pnl-btn{min-height:38px}
.pnl-btn.sm{min-height:38px;padding:0 12px;font-size:12px}
.pnl-filters{display:flex;flex-wrap:wrap;gap:7px 16px;align-items:center}
.pnl-chip-row{display:flex;gap:4px}
.pnl-chip-row button{min-height:30px;padding:0 11px;border:1px solid rgba(255,255,255,.1);border-radius:20px;color:#9d97a5;background:#151419;font:700 11px ui-monospace}
.pnl-chip-row button.is-on{color:#11100d;background:linear-gradient(#f1d486,#bd8f39);border-color:#f5da93}
@media(max-width:780px){
  .pnl-room{grid-template-columns:1fr;gap:9px}
  .pnl-room-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pnl-room-acts .pnl-btn{flex:1}
}

.pnl-pack{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:#121016}
.pnl-pack strong{font:800 13px ui-monospace;color:#f0d78f;min-width:64px;text-align:right}

.pnl-tournament small{display:block}
