:root{color-scheme:dark;--walnut-dark: #170e08;--walnut-rail: #2b1a10;--walnut-border: #5a3a24;--felt-deep: #061c13;--felt-mid: #0c3825;--felt-bright: #145338;--gold-bright: #f6d365;--gold-vivid: #fde047;--gold-mid: #d4a438;--gold-soft: rgba(246, 211, 101, .22);--ivory-card: #fcfaf4;--ivory-edge: #dcd5c5;--text-light: #f8fafc;--text-secondary: #e2f1ea;--text-muted: #cbe0d6;--suit-black: #070b14;--suit-red: #8f0822;--suit-green: #04432c;--suit-blue: #102a7a;--ally-accent: #4ade80;--opp-accent: #fb923c;--danger-bg: #691420}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;min-height:100dvh;background:radial-gradient(circle at 50% 35%,var(--felt-mid) 0%,var(--felt-deep) 78%,#03100a 100%);color:var(--text-light);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}button,select,input{font:inherit}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold-vivid);outline-offset:2px}select,.select-field,.hud-speed-select{color-scheme:dark}select option,.select-field option,.hud-speed-select option{background-color:#091e14;color:#f8fafc;font-weight:600}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.app-root{min-height:100dvh;display:flex;flex-direction:column}.suit-black{color:var(--suit-black)}.suit-red{color:var(--suit-red)}.suit-green{color:var(--suit-green)}.suit-blue{color:var(--suit-blue)}.pcard-suit-0{--card-bg-top: #ffffff;--card-bg-bot: #e6ecf5;--card-border: #334155;--card-accent: #0f172a;--card-ink: #070b14}.pcard-suit-1{--card-bg-top: #fff8f9;--card-bg-bot: #ffe6eb;--card-border: #e11d48;--card-accent: #dc2626;--card-ink: #8f0822}.pcard-four-color.pcard-suit-2{--card-bg-top: #f4fdf7;--card-bg-bot: #d6f9e3;--card-border: #15803d;--card-accent: #16a34a;--card-ink: #04432c}.pcard-two-color.pcard-suit-2{--card-bg-top: #fcfcfb;--card-bg-bot: #eae8e4;--card-border: #44403c;--card-accent: #1c1917;--card-ink: #111315}.pcard-four-color.pcard-suit-3{--card-bg-top: #f5f9ff;--card-bg-bot: #dcebff;--card-border: #2563eb;--card-accent: #1d4ed8;--card-ink: #102a7a}.pcard-two-color.pcard-suit-3{--card-bg-top: #fff8f6;--card-bg-bot: #ffe7e2;--card-border: #dc2626;--card-accent: #b91c1c;--card-ink: #8c0d14}.suit-badge{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;background:linear-gradient(180deg,var(--card-bg-top, #ffffff) 0%,var(--card-bg-bot, #e6ecf5) 100%);color:var(--card-ink, #070b14);border:1.5px solid var(--card-border, #334155);border-radius:99px;font-weight:900;line-height:1.1;vertical-align:middle;box-shadow:0 2px 5px #0000005c}.suit-badge-xs{padding:.1rem .4rem;font-size:.76rem}.suit-badge-xs .suit-badge-svg{width:13px;height:13px;flex-shrink:0}.suit-badge-sm{padding:.14rem .52rem;font-size:.82rem}.suit-badge-sm .suit-badge-svg{width:15px;height:15px;flex-shrink:0}.suit-badge-md{padding:.2rem .65rem;font-size:.9rem}.suit-badge-md .suit-badge-svg{width:17px;height:17px;flex-shrink:0}.suit-badge-label{font-weight:900;letter-spacing:.01em}.mini-card-chip{display:inline-flex;align-items:center;gap:.15rem;background:linear-gradient(180deg,var(--card-bg-top, #ffffff) 0%,var(--card-bg-bot, #e6ecf5) 100%);color:var(--card-ink, #070b14);border:1.5px solid var(--card-border, #334155);border-radius:6px;padding:.08rem .36rem;font-size:.78rem;font-weight:900;line-height:1.15;vertical-align:middle;box-shadow:0 1px 4px #00000059}.mini-card-chip-svg{width:12px;height:12px;flex-shrink:0}.btn-gold{background:linear-gradient(180deg,#fae084,#cf9d30);color:#171003;font-weight:800;border:1.5px solid #fef08a;border-radius:10px;padding:.62rem 1.15rem;cursor:pointer;box-shadow:0 3px 10px #0006;transition:transform .12s ease,filter .12s ease}.btn-gold:hover:not(:disabled){filter:brightness(1.07);transform:translateY(-1px)}.btn-gold:disabled{background:#ffffff1f;color:#f8fafc99;border-color:#ffffff3d;box-shadow:none;cursor:not-allowed}.btn-secondary{background:#0e3021f0;color:var(--text-light);border:1.5px solid rgba(246,211,101,.45);border-radius:9px;padding:.5rem .92rem;font-weight:700;cursor:pointer;transition:background .12s ease,border-color .12s ease}.btn-secondary:hover:not(:disabled){background:#184c36fa;border-color:var(--gold-vivid)}.btn-secondary:disabled{opacity:.55;cursor:not-allowed}.btn-toggle-on{border-color:var(--gold-vivid);background:#f6d3652e;color:#fef9c3}.btn-sm{padding:.4rem .78rem;font-size:.86rem}.btn-xs{padding:.3rem .64rem;font-size:.8rem;border-radius:7px}.btn-full{width:100%;margin-top:.85rem}.btn-icon{background:#ffffff24;color:#fff;border:1.5px solid rgba(255,255,255,.34);border-radius:9px;width:36px;height:36px;font-size:1rem;font-weight:800;display:inline-grid;place-items:center;cursor:pointer;flex-shrink:0;transition:background .12s ease,border-color .12s ease}.btn-icon:hover{background:#f6d3653d;border-color:var(--gold-vivid);color:#fef9c3}.input-field,.select-field{background:#061810;color:var(--text-light);border:1.5px solid rgba(246,211,101,.42);border-radius:9px;padding:.56rem .78rem;font-weight:600}.input-field::placeholder{color:#cbe0d6b3}.input-field:focus,.select-field:focus{border-color:var(--gold-vivid);box-shadow:0 0 0 2px #fde04740}.select-compact{padding:.36rem .6rem;font-size:.85rem}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;font-weight:800;color:var(--gold-bright);margin-bottom:.24rem}.eyebrow-with-badge{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.42rem}.gold-text{color:var(--gold-vivid)}.home-shell,.lobby-room-shell{max-width:1160px;width:100%;margin:0 auto;padding:1rem 1.15rem 2rem}.home-topbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.88rem 1.15rem;background:linear-gradient(180deg,var(--walnut-rail),var(--walnut-dark));border:1.5px solid var(--walnut-border);border-radius:14px;box-shadow:0 8px 24px #00000080;margin-bottom:1rem}.brand-cluster{display:flex;align-items:center;gap:.85rem}.brand-emblem{width:46px;height:46px;border-radius:11px;background:radial-gradient(circle,#fff,#e2e8f0);border:2.5px solid var(--gold-mid);display:grid;place-items:center;color:#070b14;box-shadow:0 3px 10px #0006;flex-shrink:0}.brand-emblem-svg{width:26px;height:26px}.brand-cluster h1{margin:0;font-size:1.28rem;color:#fff}.brand-sub{margin:.18rem 0 0;font-size:.86rem;color:var(--text-secondary)}.brand-sub strong{color:var(--gold-vivid)}.topbar-actions{display:flex;flex-wrap:wrap;gap:.5rem}.home-name-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;background:#071d14e6;border:1.5px solid rgba(246,211,101,.34);border-radius:12px;padding:.7rem 1.05rem;margin-bottom:1rem}.home-name-bar label{font-weight:800;font-size:.92rem;color:var(--gold-bright)}.input-name{flex:1;min-width:200px;max-width:300px}.home-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:1.1rem}.lobby-panel{background:#071c13eb;border:1.5px solid rgba(246,211,101,.34);border-radius:16px;padding:1.3rem;box-shadow:0 10px 28px #0000006b}.panel-highlight{border-color:var(--gold-vivid);box-shadow:0 0 0 2px #fde04752,0 12px 28px #0000007a}.lobby-panel h2{margin:.15rem 0 .6rem;font-size:1.24rem;color:#fff}.panel-desc{margin:0 0 .95rem;font-size:.9rem;color:var(--text-secondary);line-height:1.5}.panel-desc code,.lan-mini-text code{background:#00000075;border:1px solid rgba(255,255,255,.22);border-radius:5px;padding:.1rem .38rem;color:#fef08a;font-weight:600}.join-input-row{display:flex;gap:.65rem;margin-bottom:1rem}.input-room-code{width:132px;text-align:center;font-size:1.32rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-vivid)}.lan-mini-box{display:flex;justify-content:space-between;align-items:center;gap:.65rem;padding:.75rem .9rem;border-radius:11px;background:#04110ba6;border:1.5px dashed rgba(246,211,101,.42)}.lan-mini-text{display:flex;flex-direction:column;align-items:flex-start;gap:.24rem;font-size:.84rem}.lan-mini-title{color:var(--gold-bright);font-weight:800}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.form-group{display:flex;flex-direction:column;gap:.32rem}.form-group label{font-size:.84rem;color:var(--text-secondary);font-weight:700}.waiting-layout{display:grid;grid-template-columns:1.45fr 1fr;gap:1.1rem;align-items:start}.compass-seating-arena{display:flex;flex-direction:column;align-items:center;gap:.85rem;padding:1.15rem;border-radius:18px;background:radial-gradient(circle,#145338c7,#061b12f2);border:2px solid var(--walnut-border);box-shadow:inset 0 0 36px #0000007a}.compass-middle-row{display:grid;grid-template-columns:1fr auto 1fr;gap:.85rem;width:100%;align-items:center}.compass-lobby-seat{width:100%;max-width:295px;background:#071911f2;border:1.5px solid rgba(255,255,255,.24);border-radius:13px;padding:.78rem .9rem;display:flex;flex-direction:column;gap:.48rem;box-shadow:0 6px 16px #00000061}.seat-team-ns{border-left:4.5px solid var(--ally-accent)}.seat-team-ew{border-left:4.5px solid var(--opp-accent)}.seat-is-me{border-color:var(--gold-vivid);box-shadow:0 0 0 2px #fde04773,0 8px 20px #00000073}.seat-card-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.4rem;font-size:.8rem}.seat-compass-pill{color:var(--text-secondary);font-weight:800}.seat-team-ns .seat-compass-pill{color:#bbf7d0}.seat-team-ew .seat-compass-pill{color:#fed7aa}.role-pill{padding:.12rem .5rem;border-radius:99px;font-weight:800;font-size:.76rem}.role-me{background:var(--gold-vivid);color:#171003}.role-partner{background:#22c55e42;color:#dcfce7;border:1px solid #4ade80}.seat-occupant-name{font-weight:800;font-size:.98rem;color:#fff}.offline-tag{color:#fecdd3;font-size:.8rem;font-weight:700}.seat-card-controls{display:flex;flex-direction:column;gap:.4rem}.seat-ready-dot{font-size:.82rem;font-weight:700;color:#86efac}.compass-center-medallion{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.42rem;padding:.95rem 1.05rem;border-radius:16px;background:#05140ed1;border:1.5px solid rgba(246,211,101,.48);box-shadow:0 6px 18px #0000006b}.medallion-suits{display:flex;align-items:center;gap:.32rem}.compass-center-medallion strong{font-size:1rem;color:#fff}.compass-center-medallion span{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.btn-deal{margin-top:.25rem;white-space:nowrap}.lobby-side-column{display:flex;flex-direction:column;gap:.9rem}.lobby-side-card{background:#071c13eb;border:1.5px solid rgba(246,211,101,.34);border-radius:14px;padding:1.05rem;box-shadow:0 8px 22px #00000061}.lobby-side-card h3{margin:.1rem 0 .65rem;font-size:1.08rem;color:#fff}.qr-side-row{display:flex;gap:.85rem;align-items:center}.qr-thumb{width:114px;height:114px;border-radius:10px;background:#fff;padding:5px;flex-shrink:0;box-shadow:0 4px 12px #0006}.qr-side-info{display:flex;flex-direction:column;gap:.28rem;min-width:0}.qr-url-line{font-size:.8rem;font-weight:600;word-break:break-all;color:#fef9c3}.qr-url-line.muted{color:var(--text-muted)}.qr-btn-row{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.32rem}.side-rules-stack{display:flex;flex-direction:column;gap:.58rem}.side-rules-stack label{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.88rem;font-weight:700;color:var(--text-secondary)}.table-viewport{height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden}.table-hud-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.44rem .85rem;background:linear-gradient(180deg,var(--walnut-rail) 0%,var(--walnut-dark) 100%);border-bottom:2px solid var(--walnut-border);box-shadow:0 4px 16px #00000094;z-index:10}.hud-left,.hud-right-tools{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.hud-room-pill{background:#f6d3652e;color:#fef9c3;border:1.5px solid rgba(246,211,101,.55);border-radius:8px;padding:.28rem .62rem;font-size:.82rem;font-weight:700;cursor:pointer;transition:background .12s ease,border-color .12s ease}.hud-room-pill:hover{background:#f6d36547;border-color:var(--gold-vivid)}.hud-room-pill strong{color:#fff;font-weight:900;letter-spacing:.04em}.hud-score-cluster{display:flex;align-items:center;gap:.38rem;flex-wrap:wrap}.score-box{display:inline-flex;align-items:baseline;gap:.42rem;padding:.24rem .65rem;border-radius:9px;background:#071911;border:1.5px solid rgba(255,255,255,.24);font-size:.82rem;font-variant-numeric:tabular-nums}.score-ally{border-color:#4ade80a6;border-left:4px solid var(--ally-accent)}.score-opp{border-color:#fb923c94;border-left:4px solid var(--opp-accent)}.score-team-lbl{display:inline-flex;align-items:center;gap:.26rem;font-weight:800;color:#fff}.score-us-tag{font-style:normal;font-size:.72rem;font-weight:900;text-transform:uppercase;background:#4ade803d;color:#bbf7d0;border:1px solid rgba(74,222,128,.6);border-radius:99px;padding:.02rem .36rem}.score-match-pts{font-size:1.1rem;font-weight:900;color:var(--gold-vivid)}.score-hand-sub{color:var(--text-secondary);font-size:.78rem;font-weight:600}.score-hand-sub b{color:#fff;font-weight:800}.score-vs{font-size:.76rem;font-weight:800;color:var(--text-muted)}.contract-pill{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.4rem;background:#072217;border:1.5px solid rgba(246,211,101,.62);padding:.28rem .82rem;border-radius:99px;font-size:.86rem;color:#f8fafc;box-shadow:0 2px 8px #0006}.contract-hand-num{color:var(--text-secondary);font-weight:700}.contract-bid-num{color:var(--gold-vivid);font-size:.94rem;font-weight:900}.contract-picking-tag{background:#fde047;color:#171003;font-weight:900;font-size:.78rem;padding:.1rem .48rem;border-radius:99px}.contract-by{color:var(--text-secondary)}.contract-by strong{color:#fff}.hud-trump-chip{display:inline-flex;align-items:center;gap:.28rem;background:linear-gradient(180deg,var(--card-bg-top, #ffffff) 0%,var(--card-bg-bot, #e6ecf5) 100%);color:var(--card-ink, #070b14);border:2px solid var(--card-border, #334155);border-radius:99px;padding:.12rem .58rem .12rem .42rem;font-size:.86rem;font-weight:900;box-shadow:0 2px 6px #0000006b}.hud-trump-svg{width:15px;height:15px;flex-shrink:0}.contract-need{padding:.1rem .52rem;border-radius:99px;font-size:.8rem;font-weight:800}.contract-need-active{background:#facc1533;border:1px solid rgba(253,224,71,.7);color:#fef9c3}.contract-need-made{background:#22c55e47;border:1px solid #4ade80;color:#dcfce7}.btn-hud,.hud-speed-select{background:#0a2418;color:#f8fafc;border:1.5px solid rgba(255,255,255,.3);border-radius:8px;padding:.28rem .6rem;font-size:.8rem;font-weight:700;cursor:pointer;transition:background .12s ease,border-color .12s ease}.btn-hud:hover,.hud-speed-select:hover{background:#123c28;border-color:var(--gold-bright)}.btn-hud-active{border-color:var(--gold-vivid);color:#fef9c3;background:#f6d36538}.felt-arena{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:space-between;padding:.42rem .75rem .52rem;gap:.35rem;position:relative}.arena-top-zone{display:flex;justify-content:center}.arena-middle-zone{flex:1;min-height:0;display:grid;grid-template-columns:minmax(152px,210px) 1fr minmax(152px,210px);align-items:center;gap:.55rem}.arena-side-zone{display:flex;justify-content:center;min-width:0}@keyframes turnBeaconPulse{0%,to{box-shadow:0 0 0 2px #fde047a6,0 0 18px #fde04757}50%{box-shadow:0 0 0 3px #fef08aeb,0 0 26px #fde0478c}}.seat-plaque{background:#06170ff0;border:1.5px solid rgba(255,255,255,.24);border-radius:12px;padding:.42rem .65rem;min-width:148px;max-width:248px;display:flex;flex-direction:column;gap:.28rem;box-shadow:0 6px 16px #00000073;transition:box-shadow .16s ease,border-color .16s ease,background .16s ease}.plaque-ally{border-left:4px solid var(--ally-accent)}.plaque-opp{border-left:4px solid var(--opp-accent)}.plaque-declarer{border-color:#f59e0bad}.plaque-active-turn{background:linear-gradient(180deg,#163e29f7,#081e14f7);border-color:var(--gold-vivid);animation:turnBeaconPulse 2s ease-in-out infinite}.plaque-top-row{display:flex;align-items:center;flex-wrap:wrap;gap:.32rem;font-size:.85rem}.plaque-compass{width:22px;height:22px;border-radius:6px;background:#ffffff29;border:1px solid rgba(255,255,255,.28);display:inline-grid;place-items:center;font-size:.78rem;font-weight:900;color:var(--gold-vivid);flex-shrink:0}.plaque-name{font-weight:800;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:125px}.mini-tag{font-size:.73rem;font-weight:800;padding:.08rem .42rem;border-radius:99px;line-height:1.2;white-space:nowrap}.tag-you{background:var(--gold-bright);color:#171003}.tag-partner{background:#22c55e47;border:1px solid #4ade80;color:#dcfce7}.tag-dealer{background:#f59e0b;color:#171003;font-weight:900}.tag-turn{background:var(--gold-vivid);color:#171003;border:1px solid #fef9c3;font-weight:900;letter-spacing:.02em;margin-left:auto}.plaque-trump-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.25rem .42rem;background:linear-gradient(180deg,var(--card-bg-top, #ffffff) 0%,var(--card-bg-bot, #e6ecf5) 100%);color:var(--card-ink, #070b14);border:2px solid var(--card-border, #334155);outline:1.5px solid rgba(253,224,71,.72);border-radius:8px;padding:.24rem .5rem;margin:.1rem 0;box-shadow:0 3px 10px #0000007a}.plaque-trump-pending{background:linear-gradient(180deg,#fef08a,#facc15);color:#171003;border-color:#b45309}.plaque-trump-bid{font-size:.84rem;font-weight:900;letter-spacing:-.01em;white-space:nowrap}.plaque-trump-suit{display:inline-flex;align-items:center;gap:.24rem;font-size:.84rem;font-weight:900;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.plaque-trump-svg{width:16px;height:16px;flex-shrink:0}.plaque-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:.36rem;font-size:.8rem;color:var(--text-secondary)}.plaque-cards-count{display:inline-flex;align-items:center;gap:.28rem;background:#ffffff21;border:1px solid rgba(255,255,255,.28);color:#fff;padding:.08rem .44rem;border-radius:6px;font-size:.78rem;font-variant-numeric:tabular-nums}.card-back-mini{width:10px;height:14px;border-radius:2.5px;background:linear-gradient(135deg,#facc15,#ca8a04);border:1.5px solid #ffffff;box-shadow:0 1px 2px #0006;flex-shrink:0}.plaque-meld-chip{color:#dcfce7;background:#145338eb;border:1px solid rgba(110,231,183,.55);padding:.08rem .44rem;border-radius:6px;font-size:.78rem;font-weight:700}.plaque-meld-chip strong{color:#fff;font-weight:900}.plaque-bid-bubble{background:linear-gradient(180deg,#fef08a,#facc15);color:#171003;border:1.5px solid #fef9c3;font-weight:900;padding:.08rem .5rem;border-radius:99px;font-size:.79rem}.plaque-bid-bubble.bid-prev{background:#facc1533;color:#fef08a;border:1px solid rgba(250,204,21,.68)}.plaque-bid-bubble.bid-passed{background:#0f172a;color:#f1f5f9;border:1px solid rgba(203,213,225,.5);font-weight:700}.btn-take-seat{background:var(--gold-bright);color:#171003;border:1px solid #fef08a;border-radius:6px;padding:.12rem .5rem;font-size:.78rem;font-weight:800;cursor:pointer}.btn-take-seat:hover{filter:brightness(1.08)}.plaque-voids-row{display:flex;align-items:center;flex-wrap:wrap;gap:.28rem;font-size:.8rem}.void-label{color:#fed7aa;font-weight:800}.void-suit-chip{width:22px;height:22px;border-radius:6px;background:linear-gradient(180deg,var(--card-bg-top, #ffffff) 0%,var(--card-bg-bot, #e6ecf5) 100%);color:var(--card-ink, #070b14);border:1.5px solid var(--card-border, #334155);display:inline-grid;place-items:center;box-shadow:0 1px 4px #0000006b}.void-suit-svg{width:13px;height:13px}.trick-carpet{position:relative;width:100%;max-width:530px;height:100%;max-height:300px;margin:0 auto;border-radius:24px;background:radial-gradient(circle,#165c3eb8,#08271adb);border:1.5px solid rgba(246,211,101,.38);box-shadow:inset 0 0 32px #0000006b,0 6px 20px #00000052;display:flex;flex-direction:column;padding:.42rem .75rem}.carpet-header-strip{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.35rem;font-size:.84rem;color:var(--text-secondary);min-height:24px}.carpet-trick-status{display:inline-flex;align-items:center;gap:.45rem;color:#f8fafc}.carpet-pot-pill{background:#05160fc7;border:1px solid rgba(255,255,255,.28);border-radius:99px;padding:.08rem .5rem;font-size:.8rem;color:var(--text-secondary)}.carpet-pot-pill.pot-active{background:#facc1533;border-color:#fde047b8;color:#fef9c3}.carpet-pot-pill.pot-active strong{color:var(--gold-vivid)}.sweep-callout{color:var(--gold-vivid);font-weight:800}.btn-last-trick{background:#05160fdb;color:#fef08a;border:1.5px solid rgba(246,211,101,.55);border-radius:99px;padding:.14rem .58rem;font-size:.78rem;font-weight:800;cursor:pointer}.btn-last-trick:hover{background:#0f3021f2;border-color:var(--gold-vivid)}.prev-trick-popover{position:absolute;top:34px;right:10px;z-index:25;background:#071b12;border:1.5px solid var(--gold-vivid);border-radius:13px;padding:.6rem .75rem;box-shadow:0 10px 28px #000000b8;cursor:pointer}.prev-trick-title{font-size:.82rem;color:var(--gold-vivid);margin-bottom:.45rem;font-weight:800}.prev-trick-cards{display:flex;gap:.42rem}.prev-card-col{display:flex;flex-direction:column;align-items:center;font-size:.78rem;font-weight:800;color:#fff;gap:.2rem}.carpet-compass-grid{flex:1;display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:1fr auto 1fr;place-items:center;gap:.22rem}.slot-top{grid-column:2;grid-row:1}.slot-left{grid-column:1;grid-row:2}.carpet-center-badge{grid-column:2;grid-row:2}.slot-right{grid-column:3;grid-row:2}.slot-bottom{grid-column:2;grid-row:3}.slot-ghost{width:62px;height:88px;border-radius:9.5px;background:#05160f8f;border:1.5px dashed rgba(246,211,101,.42);display:grid;place-items:center;text-align:center;padding:.15rem;font-size:.68rem;letter-spacing:.04em;color:#d8ebe2;font-weight:800}.trump-medallion{width:60px;height:60px;border-radius:50%;background:linear-gradient(180deg,var(--card-bg-top, #ffffff) 0%,var(--card-bg-bot, #e6ecf5) 100%);color:var(--card-ink, #070b14);border:2.5px solid var(--card-border, #334155);outline:2px solid rgba(253,224,71,.76);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 5px 14px #0000008c;line-height:1}.trump-medallion-svg{width:24px;height:24px}.trump-medallion small{font-size:.62rem;font-weight:900;color:var(--card-ink, #070b14);margin-top:2px;letter-spacing:.04em}.trump-undecided{background:#071d14;color:var(--gold-vivid);border-color:var(--gold-mid);outline:none}.trump-undecided span{font-size:1.2rem;font-weight:900}.trump-undecided small{color:var(--text-secondary)}.meld-showcase-banner{display:flex;justify-content:space-between;align-items:center;gap:.6rem;background:#082418;border:1.5px solid var(--gold-bright);border-radius:11px;padding:.42rem .78rem;font-size:.82rem;box-shadow:0 4px 14px #00000073}.meld-banner-left{display:flex;flex-wrap:wrap;align-items:center;gap:.48rem}.meld-banner-heading{display:inline-flex;align-items:center;gap:.32rem;color:#fef9c3}.meld-banner-items{display:flex;flex-wrap:wrap;gap:.38rem}.meld-summary-pill{background:#04100bb8;border:1px solid rgba(255,255,255,.24);color:#f8fafc;padding:.12rem .5rem;border-radius:6px;font-weight:600}.meld-summary-pill strong{color:var(--gold-vivid)}.meld-banner-btns{display:flex;gap:.38rem;flex-shrink:0}.center-stage-hub{width:100%;max-width:590px;margin:0 auto;background:linear-gradient(180deg,#0b291cfa,#05150efc);border:2px solid rgba(246,211,101,.65);border-radius:20px;padding:.95rem 1.15rem;box-shadow:0 14px 36px #0009,inset 0 1px #ffffff1a;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.72rem}.auction-hub-header{display:flex;flex-direction:column;align-items:center;gap:.24rem}.auction-hub-eyebrow{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-bright)}.auction-high-bid-banner{font-size:.98rem;color:var(--text-light);background:#05160e;border:1.5px solid rgba(246,211,101,.45);border-radius:99px;padding:.3rem 1rem}.auction-high-bid-banner strong{color:var(--gold-vivid);font-size:1.12rem}.auction-bidder-name{color:var(--text-secondary);font-size:.9rem;font-weight:600}.candidate-meld-strip{display:flex;flex-direction:column;align-items:center;gap:.38rem;font-size:.84rem}.cand-meld-label{color:var(--text-secondary);font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.cand-meld-pills-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.48rem}.cand-meld-pill{display:inline-flex;align-items:center;gap:.36rem;background:#ffffff1c;border:1.5px solid rgba(255,255,255,.26);border-radius:10px;padding:.24rem .62rem .24rem .36rem;font-weight:900;font-size:.9rem;color:#fff}.cand-meld-best{border-color:var(--gold-vivid);background:#f6d36538;box-shadow:0 0 12px #fde04747}.cand-suit-chip{width:24px;height:24px;border-radius:6px;background:linear-gradient(180deg,var(--card-bg-top, #ffffff) 0%,var(--card-bg-bot, #e6ecf5) 100%);color:var(--card-ink, #070b14);border:1.5px solid var(--card-border, #334155);display:inline-grid;place-items:center;box-shadow:0 1px 3px #00000061}.cand-suit-svg{width:15px;height:15px}.auction-controls-centered{width:100%;display:flex;flex-direction:column;align-items:center;gap:.6rem}.dealer-stuck-badge{background:#9a3412;border:1.5px solid #fdba74;color:#fff7ed;padding:.28rem .78rem;border-radius:8px;font-size:.82rem;font-weight:800}.quick-bid-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.48rem}.btn-bid-quick{background:#f6d36533;color:#fef9c3;border:1.5px solid var(--gold-bright);border-radius:10px;padding:.48rem .88rem;font-weight:800;font-size:.9rem;cursor:pointer;box-shadow:0 3px 8px #00000059;transition:transform .12s ease,background .12s ease,border-color .12s ease}.btn-bid-quick:hover{background:#f6d36557;border-color:#fff;transform:translateY(-1px)}.btn-bid-primary{background:linear-gradient(180deg,#fae084,#cf9d30);color:#171003;border-color:#fef08a}.btn-bid-primary:hover{background:linear-gradient(180deg,#fef08a,#daa93d)}.auction-secondary-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem}.custom-bid-stepper{display:inline-flex;align-items:center;gap:.34rem;background:#05160e;padding:.24rem .42rem;border-radius:10px;border:1.5px solid rgba(255,255,255,.28)}.btn-step{width:32px;height:32px;border-radius:7px;border:1.5px solid rgba(255,255,255,.34);background:#ffffff24;color:#fff;font-weight:900;font-size:1.05rem;cursor:pointer}.btn-step:hover{background:#ffffff3d;border-color:var(--gold-vivid)}.custom-bid-val{min-width:44px;text-align:center;font-weight:900;font-size:.98rem;color:var(--gold-vivid);font-variant-numeric:tabular-nums}.btn-pass-bid{background:linear-gradient(180deg,#dc2626,#991b1b);color:#fff;border:1.5px solid #fecaca;border-radius:10px;padding:.48rem 1.08rem;font-weight:800;font-size:.9rem;cursor:pointer;box-shadow:0 3px 8px #00000061;transition:transform .12s ease,filter .12s ease}.btn-pass-bid:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.btn-pass-bid:disabled{background:#ffffff1f;color:#f8fafc8c;border-color:#ffffff38;box-shadow:none;cursor:not-allowed}.trump-picker-title{font-size:1.02rem;color:#fff}.trump-picker-title strong{color:var(--gold-vivid)}.trump-suit-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:.68rem}.btn-trump-suit{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--card-bg-top, #ffffff) 0%,var(--card-bg-bot, #e6ecf5) 100%);color:var(--card-ink, #070b14);border:2.5px solid var(--card-border, #334155);border-radius:14px;padding:.68rem 1rem .55rem;min-width:122px;display:flex;flex-direction:column;align-items:center;gap:.22rem;cursor:pointer;box-shadow:0 6px 14px #00000073;transition:transform .12s ease,box-shadow .12s ease}.btn-trump-suit:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 10px 22px #0000008c,0 0 0 2.5px var(--gold-vivid)}.trump-btn-svg{width:28px;height:28px}.trump-btn-name{font-weight:900;font-size:.92rem;color:var(--card-ink, #070b14)}.trump-btn-meld{font-size:.78rem;color:#0f172a;background:#ffffffc7;border:1px solid rgba(15,23,42,.2);border-radius:99px;padding:.06rem .48rem;font-weight:800}.action-panel{background:#071c13;border:1.5px solid rgba(246,211,101,.58);border-radius:14px;padding:.55rem 1.05rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem;box-shadow:0 6px 18px #00000073}.action-panel-centered{width:100%;max-width:740px;margin:0 auto}.pass-controls-row,.gameover-panel{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;font-size:.9rem;font-weight:700;color:#fff}.gameover-btns{display:flex;gap:.5rem}.waiting-turn-pill{font-size:.9rem;color:var(--text-secondary)}.waiting-turn-pill strong{color:var(--gold-vivid)}.waiting-turn-centered{background:#05160e;border:1.5px dashed rgba(246,211,101,.48);border-radius:99px;padding:.38rem 1.05rem}.player-bottom-dock{display:flex;flex-direction:column;gap:.38rem}.dock-info-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.turn-guidance-bar{flex:1;min-width:240px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.55rem;background:#061810f0;border:1.5px solid rgba(255,255,255,.22);border-radius:11px;padding:.4rem .8rem;font-size:.85rem;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease}.turn-guidance-bar.bar-my-turn{background:linear-gradient(90deg,#16422bfa,#082015f5);border-color:var(--gold-vivid);box-shadow:0 0 14px #fde04740}.turn-guidance-bar.bar-warn{background:linear-gradient(90deg,#7f1d1d,#4c0519);border-color:#fda4af;box-shadow:0 0 0 2px #fb718552,0 4px 14px #00000080}.guidance-your-turn{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.45rem;color:#fef9c3;font-weight:800;font-size:.88rem}.your-turn-pill{background:var(--gold-vivid);color:#171003;font-size:.74rem;font-weight:900;letter-spacing:.04em;padding:.1rem .48rem;border-radius:99px}.guidance-warn{color:#fff1f2;font-weight:800;font-size:.9rem}.guidance-wait{color:var(--text-secondary);font-weight:600}.guidance-wait strong{color:#fff}.private-pass-memory{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.26rem;background:#04120cb3;border:1px solid rgba(110,231,183,.45);border-radius:8px;padding:.14rem .48rem;color:#bbf7d0;font-size:.8rem;font-weight:700}.pass-mem-label{margin-right:.1rem}.pass-mem-arrow{color:var(--gold-vivid);font-weight:900;margin:0 .12rem}.rank-order-legend{font-size:.8rem;font-weight:700;color:var(--text-secondary)}.rank-order-legend strong{color:var(--gold-vivid);font-weight:900}.hand-fan-tray{display:flex;justify-content:center;align-items:flex-end;flex-wrap:nowrap;overflow-x:auto;padding:.92rem .45rem .28rem;gap:.3rem}.pcard{position:relative;background:linear-gradient(180deg,var(--card-bg-top, #ffffff) 0%,var(--card-bg-bot, #e6ecf5) 100%);color:var(--card-ink, #070b14);border:2px solid var(--card-border, #334155);border-radius:11px;box-shadow:0 5px 12px #00000080;padding:.36rem .32rem .24rem;display:flex;flex-direction:column;justify-content:space-between;-webkit-user-select:none;user-select:none;flex-shrink:0;overflow:visible;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease,border-color .14s ease;cursor:default}.pcard-accent-bar{position:absolute;top:0;left:0;right:0;height:5px;border-radius:8.5px 8.5px 0 0;background:var(--card-accent, #0f172a);pointer-events:none}.pcard-suit-group-start{margin-left:.65rem}.pcard-xs{width:46px;height:64px;border-radius:8px;padding:.24rem .2rem .14rem}.pcard-xs .pcard-accent-bar{height:3.5px}.pcard-sm{width:62px;height:88px;border-radius:9.5px}.pcard-md{width:72px;height:104px}.pcard-lg{width:84px;height:120px}.pcard-interactive{cursor:pointer}.pcard-trump{box-shadow:0 5px 12px #00000085,inset 0 0 0 2px #d97706}.pcard-legal{transform:translateY(-10px);box-shadow:0 11px 22px #0009,0 0 0 3px #facc15,0 0 14px #facc156b}.pcard-legal:hover{transform:translateY(-15px);box-shadow:0 15px 28px #000000ad,0 0 0 3.5px #fef08a,0 0 18px #fef08a8c}.pcard-selected{transform:translateY(-16px)!important;border-color:var(--ally-accent);box-shadow:0 13px 26px #000000a3,0 0 0 3.5px var(--ally-accent)}.pcard-dimmed{opacity:1;filter:brightness(.84) saturate(.58);transform:translateY(5px);border-color:#475569;box-shadow:0 2px 5px #0000005c;cursor:not-allowed}.pcard-winning{border-color:var(--gold-vivid);box-shadow:0 0 0 3px var(--gold-vivid),0 0 22px #fde047b8}.pcard-corner{display:flex;flex-direction:column;align-items:center;line-height:.92;gap:1.5px}.pcard-corner-tl{align-self:flex-start}.pcard-corner-br{align-self:flex-end;transform:rotate(180deg)}.pcard-rank{font-weight:900;font-size:1.1rem;letter-spacing:-.04em}.pcard-counter .pcard-rank{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:1px}.pcard-suit-sm-svg{width:13px;height:13px}.pcard-xs .pcard-rank{font-size:.84rem}.pcard-xs .pcard-suit-sm-svg{width:11px;height:11px}.pcard-xs .pcard-corner-br{display:none}.pcard-center{position:relative;display:flex;align-items:center;justify-content:center}.pcard-suit-big-svg{width:28px;height:28px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.12))}.pcard-sm .pcard-suit-big-svg{width:23px;height:23px}.pcard-xs .pcard-suit-big-svg{width:19px;height:19px}.pcard-pts-dot{position:absolute;top:-13px;right:-3px;background:#facc15;color:#171003;border:1.5px solid #92400e;border-radius:99px;font-size:.66rem;font-weight:900;padding:.02rem .28rem;line-height:1.2;box-shadow:0 1px 4px #00000052}.pcard-xs .pcard-pts-dot{display:none}.pcard-trump-star{position:absolute;bottom:-13px;left:-2px;width:16px;height:16px;border-radius:99px;background:#171003;color:#fde047;border:1px solid #f59e0b;display:inline-grid;place-items:center;font-size:.64rem;line-height:1;font-weight:900;box-shadow:0 1px 3px #00000059}.pcard-order-pill{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:#091912;color:#f8fafc;border:1.5px solid rgba(255,255,255,.55);border-radius:99px;padding:.06rem .42rem;font-size:.7rem;font-weight:900;white-space:nowrap;box-shadow:0 2px 5px #00000080;z-index:2}.pcard-xs .pcard-order-pill{font-size:.66rem;padding:.04rem .34rem}.pcard-order-win{background:linear-gradient(180deg,#fef08a,#facc15);color:#171003;border-color:#fff}.pcard-select-ribbon{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:#4ade80;color:#052012;border:1.5px solid #dcfce7;font-size:.7rem;font-weight:900;padding:.06rem .44rem;border-radius:99px;white-space:nowrap;box-shadow:0 2px 6px #00000073;z-index:2}.spectator-banner{text-align:center;padding:.68rem;border-radius:10px;background:#05140ed9;border:1px solid rgba(246,211,101,.38);font-size:.88rem;font-weight:700;color:var(--text-secondary)}.alert-error,.toast-error{background:var(--danger-bg);border:1.5px solid #fda4af;color:#fff1f2;padding:.65rem 1rem;border-radius:10px;margin-bottom:.9rem;font-size:.9rem;font-weight:700}.toast-error{position:fixed;bottom:16px;right:16px;z-index:60;margin:0;cursor:pointer;box-shadow:0 8px 24px #0000009e}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#020a07d1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;padding:1rem;z-index:50}.modal-card{width:100%;max-width:700px;max-height:90dvh;overflow-y:auto;background:linear-gradient(180deg,#0b2c1e,#061810);border:2px solid var(--gold-bright);border-radius:18px;padding:1.25rem 1.35rem;box-shadow:0 22px 54px #000000bf}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;margin-bottom:1rem}.modal-header h3{margin:0;font-size:1.22rem;color:#fff}.wifi-qr-grid{display:grid;grid-template-columns:auto 1fr;gap:1.15rem;align-items:center}.wifi-qr-box{display:flex;flex-direction:column;align-items:center;gap:.45rem}.wifi-qr-img{width:198px;height:198px;border-radius:12px;background:#fff;padding:6px;box-shadow:0 6px 18px #00000073}.wifi-qr-caption{font-size:.82rem;font-weight:700;color:var(--text-secondary)}.room-code-banner{display:flex;justify-content:space-between;align-items:center;background:#05160e;border:1.5px solid rgba(246,211,101,.5);border-radius:11px;padding:.6rem .9rem;margin-bottom:.75rem}.room-code-label{font-size:.86rem;font-weight:700;color:var(--text-secondary)}.room-code-big{font-size:1.55rem;font-weight:900;letter-spacing:.16em;color:var(--gold-vivid)}.endpoint-list{display:flex;flex-direction:column;gap:.52rem}.endpoint-row{display:flex;justify-content:space-between;align-items:center;gap:.65rem;background:#04100ba6;border:1px solid rgba(255,255,255,.2);padding:.55rem .78rem;border-radius:9px}.endpoint-meta{display:flex;flex-direction:column;gap:.18rem;min-width:0}.endpoint-tag{font-size:.78rem;color:var(--gold-bright);font-weight:800}.endpoint-url{font-size:.84rem;font-weight:600;color:#f8fafc;word-break:break-all}.rules-highlight-box{background:#f6d36526;border:1.5px solid rgba(246,211,101,.5);border-radius:11px;padding:.75rem .95rem;font-size:.88rem;margin-bottom:.95rem;color:#fff}.rules-highlight-box p{margin:.38rem 0 0;color:var(--text-secondary);line-height:1.48}.rank-strip-inline{color:var(--gold-vivid);font-weight:900}.rules-two-col{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-bottom:.9rem}.rules-section h4{margin:0 0 .48rem;color:var(--gold-vivid);font-size:.95rem}.meld-table-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.34rem;font-size:.86rem}.meld-table-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.32rem .58rem;background:#04100b9e;border:1px solid rgba(255,255,255,.14);border-radius:7px;color:#f8fafc}.meld-table-list li strong{color:var(--gold-vivid);font-weight:800;white-space:nowrap}.meld-list-cards{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.22rem}.rules-bullets{margin:0;padding-left:1.2rem;font-size:.88rem;line-height:1.52;color:var(--text-secondary);display:flex;flex-direction:column;gap:.36rem}.rules-bullets strong{color:#fff}.meld-team-totals{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.95rem}.meld-team-pill{display:flex;justify-content:space-between;align-items:center;padding:.6rem .9rem;border-radius:10px;background:#05160e;border:1.5px solid rgba(255,255,255,.22);font-size:.9rem;font-weight:700;color:#fff}.meld-team-pill strong{color:var(--gold-vivid);font-size:1.02rem;font-weight:900}.meld-team-pill.team-ns{border-left:4.5px solid var(--ally-accent)}.meld-team-pill.team-ew{border-left:4.5px solid var(--opp-accent)}.meld-seats-grid{display:grid;grid-template-columns:1fr 1fr;gap:.78rem}.meld-seat-box{background:#04100ba8;border:1.5px solid rgba(255,255,255,.2);border-radius:11px;padding:.7rem .8rem;display:flex;flex-direction:column;gap:.48rem}.border-ns{border-left:4px solid var(--ally-accent)}.border-ew{border-left:4px solid var(--opp-accent)}.meld-seat-head{display:flex;justify-content:space-between;align-items:center;gap:.4rem;font-size:.88rem;color:#fff}.seat-compass-chip{display:inline-block;background:#ffffff24;border:1px solid rgba(255,255,255,.28);color:var(--gold-vivid);font-size:.76rem;font-weight:800;padding:.06rem .42rem;border-radius:6px;margin-right:.2rem}.meld-pts-badge{color:var(--gold-vivid);font-weight:900;font-size:.92rem}.meld-tags-wrap{display:flex;flex-wrap:wrap;gap:.34rem}.meld-item-tag{background:#f6d36533;border:1px solid rgba(246,211,101,.52);color:#fef9c3;border-radius:6px;padding:.12rem .48rem;font-size:.8rem;font-weight:700}.meld-cards-row{display:flex;flex-wrap:wrap;gap:.28rem}.no-meld-note{font-size:.84rem;font-weight:600;color:var(--text-muted)}.summary-headline{display:flex;flex-wrap:wrap;align-items:center;gap:.36rem;line-height:1.35}.outcome-pill{display:inline-flex;align-items:center;padding:.1rem .5rem;border-radius:99px;font-size:.8rem;font-weight:900;letter-spacing:.03em}.outcome-made{background:#22c55e47;border:1.5px solid #4ade80;color:#dcfce7}.outcome-set{background:#e11d4859;border:1.5px solid #fda4af;color:#fff1f2}.summary-contract-line{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1.15rem;font-size:.9rem;padding:.58rem .85rem;border-radius:10px;background:#05160e;border:1px solid rgba(255,255,255,.22);color:var(--text-secondary);margin-bottom:.9rem}.summary-contract-line strong{color:#fff}.summary-trump-item{display:inline-flex;align-items:center;gap:.35rem}.score-breakdown-table{width:100%;border-collapse:collapse;font-size:.92rem;font-variant-numeric:tabular-nums;margin-bottom:.95rem}.score-breakdown-table th,.score-breakdown-table td{padding:.56rem .7rem;border-bottom:1px solid rgba(255,255,255,.18);text-align:left;color:#f8fafc}.score-breakdown-table th{color:var(--gold-vivid);font-size:.84rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.delta-badge{display:inline-block;padding:.12rem .52rem;border-radius:7px;font-weight:900;font-size:.92rem}.delta-pos{background:#22c55e3d;border:1px solid #4ade80;color:#dcfce7}.delta-neg{background:#e11d4857;border:1px solid #fda4af;color:#fff1f2}.row-total td{font-weight:900;font-size:1.04rem;color:var(--gold-vivid);border-bottom:none}.hand-history-mini h4{margin:0 0 .42rem;font-size:.86rem;color:var(--text-secondary)}.history-chips{display:flex;flex-wrap:wrap;gap:.42rem;margin-bottom:.95rem}.history-chip{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.25rem;font-size:.8rem;font-weight:600;background:#05160e;border:1px solid rgba(255,255,255,.22);color:#f8fafc;padding:.24rem .56rem;border-radius:8px}.hist-made{color:#86efac;font-weight:800}.hist-set{color:#fda4af;font-weight:800}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.65rem}.tag-auto-hand{background:#0c4a6e;color:#e0f2fe;border:1px solid #38bdf8;font-weight:900}.btn-hud.btn-hud-autopilot{background:linear-gradient(180deg,#0284c7,#0369a1);color:#fff;border-color:#bae6fd;box-shadow:0 0 12px #38bdf873;font-weight:900}.btn-hud.btn-hud-autopilot:hover{background:linear-gradient(180deg,#0369a1,#075985);border-color:#fff}.turn-guidance-bar.bar-autopilot{background:linear-gradient(90deg,#082f49f5,#061c2cf5);border-color:#38bdf8;box-shadow:0 0 14px #38bdf847}.guidance-autopilot{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.5rem;color:#e0f2fe;font-weight:800;font-size:.86rem}.autopilot-pill{background:#38bdf8;color:#041d2e;font-size:.74rem;font-weight:900;letter-spacing:.04em;padding:.1rem .5rem;border-radius:99px}.btn-stop-autopilot{background:#f8fafc;color:#082f49;border:1.5px solid #38bdf8;border-radius:99px;padding:.16rem .65rem;font-size:.78rem;font-weight:900;cursor:pointer;transition:transform .12s ease,background .12s ease}.btn-stop-autopilot:hover{background:#fef08a;color:#171003;border-color:#fff;transform:translateY(-1px)}.guidance-right-cluster{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.55rem}.btn-auto-rest-hand{background:#082f49d9;color:#e0f2fe;border:1.5px solid #38bdf8;border-radius:99px;padding:.16rem .68rem;font-size:.78rem;font-weight:800;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}.btn-auto-rest-hand:hover{background:#0369a1;color:#fff;border-color:#bae6fd;transform:translateY(-1px)}.carpet-trick-status{flex-wrap:wrap}.carpet-trumps-out-pill{background:#05160fe0;color:#fef08a;border:1.5px solid rgba(253,224,71,.62);border-radius:99px;padding:.1rem .56rem;font-size:.78rem;font-weight:800;cursor:pointer;font-variant-numeric:tabular-nums;transition:background .12s ease,border-color .12s ease,transform .12s ease}.carpet-trumps-out-pill:hover{background:#0f3021f5;border-color:var(--gold-vivid);transform:translateY(-1px)}.carpet-trumps-out-pill.trumps-all-pulled{background:#15803d6b;color:#dcfce7;border-color:#4ade80}.carpet-trumps-out-pill.trumps-all-pulled:hover{background:#16a34a85;border-color:#86efac}.btn-play-forced{background:linear-gradient(180deg,#fef08a,#eab308);color:#171003;border:1.5px solid #ffffff;border-radius:99px;padding:.18rem .7rem;font-size:.8rem;font-weight:900;cursor:pointer;box-shadow:0 2px 8px #0000006b;transition:transform .12s ease,filter .12s ease}.btn-play-forced:hover{filter:brightness(1.06);transform:translateY(-1px)}.pcard-ribbon-auto{background:linear-gradient(180deg,#fef08a,#facc15);color:#171003;border-color:#fff;box-shadow:0 2px 8px #00000080,0 0 10px #facc15a6}.pcard-twin-badge{position:absolute;top:7px;right:4px;background:#0f172a;color:#fde047;border:1.25px solid #f59e0b;border-radius:6px;font-size:.66rem;font-weight:900;padding:.02rem .26rem;line-height:1.15;box-shadow:0 1px 3px #00000059;z-index:2;pointer-events:none}.modal-unseen{max-width:780px}.unseen-summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:.65rem;margin-bottom:.95rem}.unseen-stat-pill{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .82rem;border-radius:10px;background:#05160e;border:1.5px solid rgba(255,255,255,.24);font-size:.86rem;font-weight:700;color:var(--text-secondary);font-variant-numeric:tabular-nums}.unseen-stat-pill strong{display:inline-flex;align-items:center;gap:.32rem;color:var(--gold-vivid);font-size:.96rem;font-weight:900}.unseen-stat-pill.unseen-stat-clear{background:#14532d7a;border-color:#4ade80}.unseen-stat-pill.unseen-stat-clear strong{color:#dcfce7}.unseen-suits-grid{display:grid;grid-template-columns:1fr 1fr;gap:.78rem;margin-bottom:1rem}.unseen-suit-card{background:#04100bbd;border:1.5px solid rgba(255,255,255,.22);border-radius:12px;padding:.7rem .82rem;display:flex;flex-direction:column;gap:.48rem}.unseen-suit-card.unseen-suit-trump{background:#0c281ad9;border-color:var(--gold-vivid);box-shadow:inset 0 0 0 1px #fde04747}.unseen-suit-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding-bottom:.36rem;border-bottom:1px solid rgba(255,255,255,.16)}.unseen-suit-sub{font-size:.84rem;font-weight:900;color:var(--gold-vivid);font-variant-numeric:tabular-nums}.unseen-ranks-list{display:flex;flex-direction:column;gap:.28rem}.unseen-rank-row{display:grid;grid-template-columns:66px 1fr auto;align-items:center;gap:.45rem;padding:.26rem .5rem;border-radius:7px;background:#05160ec7;border:1px solid rgba(255,255,255,.14);font-variant-numeric:tabular-nums}.unseen-rank-row.unseen-rank-zero{background:#040f0a6b;border-color:#ffffff14}.unseen-rank-row.unseen-rank-zero .unseen-rank-lbl strong{color:var(--text-muted)}.unseen-rank-lbl{display:inline-flex;align-items:center;gap:.28rem;font-size:.92rem;color:#fff}.unseen-counter-tag{font-size:.68rem;font-weight:800;background:#facc1538;color:#fef08a;border:1px solid rgba(250,204,21,.52);border-radius:5px;padding:.02rem .26rem}.unseen-rank-meta{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.3rem;font-size:.76rem}.unseen-mine-tag{font-style:normal;font-weight:800;color:#dcfce7;background:#22c55e38;border:1px solid rgba(74,222,128,.5);border-radius:5px;padding:.04rem .34rem}.unseen-played-tag{font-weight:700;color:#f1f5f9;background:#ffffff1f;border:1px solid rgba(255,255,255,.22);border-radius:5px;padding:.04rem .34rem}.unseen-count-pill{min-width:56px;text-align:center;font-size:.78rem;font-weight:900;padding:.1rem .48rem;border-radius:99px}.unseen-out-2{background:#fde047;color:#171003;border:1px solid #ffffff}.unseen-out-1{background:#fb923c52;color:#ffedd5;border:1.5px solid #fb923c}.unseen-out-0{background:#22c55e3d;color:#dcfce7;border:1px solid rgba(74,222,128,.58)}.modal-prev-hands{max-width:860px;display:flex;flex-direction:column}.prev-hands-header{flex-wrap:wrap;align-items:center}.prev-hands-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.42rem}.prev-hands-empty{background:#05160e;border:1.5px dashed rgba(246,211,101,.45);border-radius:12px;padding:1.25rem 1.1rem;text-align:center;margin-bottom:1rem}.prev-hands-empty strong{display:block;color:var(--gold-vivid);font-size:1rem;margin-bottom:.4rem}.prev-hands-empty p{margin:0;color:var(--text-secondary);font-size:.88rem;line-height:1.48}.prev-hands-overview-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;background:#05160e;border:1.5px solid rgba(255,255,255,.22);border-radius:11px;padding:.55rem .85rem;margin-bottom:.85rem}.prev-overview-stat{display:flex;flex-direction:column;gap:.1rem;font-size:.78rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.prev-overview-stat strong{font-size:.94rem;color:#fff}.prev-hands-jump-strip{display:flex;align-items:center;gap:.36rem;overflow-x:auto;max-width:100%;padding-bottom:.12rem}.prev-jump-pill{flex-shrink:0;border-radius:99px;padding:.2rem .6rem;font-size:.78rem;font-weight:800;cursor:pointer;font-variant-numeric:tabular-nums;transition:transform .12s ease,filter .12s ease}.prev-jump-pill:hover{transform:translateY(-1px);filter:brightness(1.08)}.jump-made{background:#22c55e40;color:#dcfce7;border:1.5px solid #4ade80}.jump-set{background:#e11d484d;color:#fff1f2;border:1.5px solid #fda4af}.prev-hands-scroll-list{display:flex;flex-direction:column;gap:.85rem;max-height:58dvh;overflow-y:auto;padding-right:.3rem;margin-bottom:.95rem}.prev-hand-card{background:#05140ee0;border:1.5px solid rgba(255,255,255,.24);border-radius:13px;padding:.8rem .92rem;display:flex;flex-direction:column;gap:.62rem;scroll-margin-top:8px}.prev-hand-card.hand-card-made{border-left:5px solid #4ade80}.prev-hand-card.hand-card-set{border-left:5px solid #fb7185}.prev-hand-card-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.55rem;cursor:pointer}.prev-hand-title-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.prev-hand-num-badge{background:var(--gold-vivid);color:#171003;font-size:.8rem;font-weight:900;padding:.14rem .52rem;border-radius:7px}.prev-hand-contract-inline{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.38rem;font-size:.9rem;color:var(--text-secondary)}.prev-hand-contract-inline strong{color:#fff}.btn-expand-hand{background:#ffffff1f;color:#fef08a;border:1.5px solid rgba(253,224,71,.55);border-radius:8px;padding:.22rem .62rem;font-size:.78rem;font-weight:800;cursor:pointer}.btn-expand-hand:hover{background:#fff3;border-color:var(--gold-vivid)}.prev-hand-score-strip{display:flex;flex-direction:column;gap:.34rem;font-variant-numeric:tabular-nums}.prev-team-score-row{display:grid;grid-template-columns:128px 1fr auto 108px;align-items:center;gap:.55rem;padding:.34rem .62rem;border-radius:8px;background:#081e14b8;border:1px solid rgba(255,255,255,.14);font-size:.86rem;color:var(--text-secondary)}.prev-team-score-row strong{color:#fff}.prev-team-score-row.is-declarer-row{border-color:#fde04773;background:#0e2c1ddb}.prev-team-name{font-weight:800;color:#f8fafc}.prev-running-total{text-align:right;font-weight:700}.prev-running-total strong{color:var(--gold-vivid);font-size:.94rem}.prev-no-save-note{font-size:.8rem;font-weight:700;color:#fde68a;padding:.18rem .35rem 0}.prev-hand-details{display:flex;flex-direction:column;gap:.78rem;padding-top:.58rem;border-top:1px solid rgba(255,255,255,.18)}.prev-detail-block h5{margin:0 0 .42rem;font-size:.84rem;font-weight:800;color:var(--gold-vivid);text-transform:uppercase;letter-spacing:.03em}.prev-bid-log-chips{display:flex;flex-wrap:wrap;gap:.34rem}.prev-bid-chip{font-size:.8rem;font-weight:700;padding:.14rem .5rem;border-radius:99px;font-variant-numeric:tabular-nums}.prev-bid-raise{background:#facc1533;color:#fef9c3;border:1px solid rgba(253,224,71,.6)}.prev-bid-pass{background:#ffffff1a;color:#cbd5e1;border:1px solid rgba(255,255,255,.22)}.prev-seats-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.prev-seat-panel{background:#040f0ac7;border:1px solid rgba(255,255,255,.18);border-radius:9px;padding:.55rem .68rem;display:flex;flex-direction:column;gap:.4rem}.prev-seat-head{display:flex;justify-content:space-between;align-items:center;gap:.4rem;font-size:.85rem;color:#fff}.prev-seat-cards-row{display:flex;flex-wrap:wrap;gap:.24rem}.prev-tricks-grid{display:grid;grid-template-columns:1fr 1fr;gap:.42rem}.prev-trick-row{display:flex;align-items:center;justify-content:space-between;gap:.4rem;background:#040f0ac2;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:.28rem .5rem;font-size:.78rem;font-variant-numeric:tabular-nums}.prev-trick-num{font-weight:900;color:var(--gold-vivid);min-width:30px}.prev-trick-plays{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.28rem}.prev-trick-card-item{display:inline-flex;align-items:center;gap:.14rem;padding:.06rem .18rem;border-radius:6px}.prev-trick-card-item small{font-size:.72rem;font-weight:800;color:var(--text-secondary)}.prev-trick-win-item{background:#fde04738;outline:1.5px solid var(--gold-vivid)}.prev-trick-win-item small{color:#fef08a}.prev-trick-winner{white-space:nowrap;color:#f8fafc;font-weight:700}.prev-trick-winner strong{color:var(--gold-vivid)}@keyframes claimRestPulse{0%,to{box-shadow:0 6px 22px #0000008c,0 0 18px #facc1573}50%{box-shadow:0 6px 26px #0000009e,0 0 28px #fde047c7}}.claim-rest-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;width:100%;max-width:580px;margin:.25rem auto .35rem;padding:.58rem .9rem;border-radius:13px;background:linear-gradient(135deg,#3b2504,#1c1202);border:2px solid #fde047;animation:claimRestPulse 2.1s ease-in-out infinite;z-index:4}.claim-rest-copy{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.48rem;color:#fefce8;font-size:.9rem;font-weight:800}.claim-rest-copy strong{color:#fde047;font-weight:900}.claim-rest-pill{background:#fde047;color:#171003;font-size:.74rem;font-weight:900;letter-spacing:.04em;padding:.12rem .52rem;border-radius:99px;border:1px solid #ffffff}.btn-claim-rest-hero{background:linear-gradient(180deg,#fef08a,#eab308);color:#171003;border:2px solid #ffffff;border-radius:99px;padding:.42rem 1.05rem;font-size:.92rem;font-weight:900;cursor:pointer;white-space:nowrap;box-shadow:0 3px 12px #00000073;transition:transform .12s ease,filter .12s ease}.btn-claim-rest-hero:hover{filter:brightness(1.07);transform:translateY(-1px) scale(1.02)}.turn-guidance-bar.bar-claim-rest{background:linear-gradient(90deg,#422704f5,#221402f5);border-color:#fde047;box-shadow:0 0 16px #facc155c}.guidance-claim-rest{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.5rem;color:#fefce8;font-weight:800;font-size:.88rem}.guidance-claim-rest strong{color:#fde047}.btn-claim-rest-bar{border-radius:99px;padding:.18rem .72rem;font-size:.79rem;font-weight:900;white-space:nowrap;transition:transform .12s ease,filter .12s ease,background .12s ease}.btn-claim-rest-bar:disabled{background:#0f172ab8;color:#94a3b8;border:1.5px dashed rgba(148,163,184,.48);cursor:not-allowed;opacity:.85}.btn-claim-rest-bar.btn-claim-rest-enabled{background:linear-gradient(180deg,#fef08a,#eab308);color:#171003;border:1.75px solid #ffffff;cursor:pointer;box-shadow:0 2px 10px #00000073,0 0 12px #facc158c}.btn-claim-rest-bar.btn-claim-rest-enabled:hover{filter:brightness(1.07);transform:translateY(-1px)}.claimed-rest-summary-note{margin:0 0 .85rem;padding:.5rem .78rem;border-radius:10px;background:#422704b8;border:1.5px solid #fde047;color:#fefce8;font-size:.86rem;font-weight:700}.claimed-rest-summary-note strong{color:#fde047}.prev-claimed-rest-note{font-size:.82rem;font-weight:700;color:#fef08a;padding:.18rem .35rem 0}.prev-claimed-rest-note strong{color:#fff}@media(max-width:860px){.home-grid,.waiting-layout,.wifi-qr-grid,.rules-two-col,.meld-seats-grid,.unseen-suits-grid,.prev-seats-grid,.prev-tricks-grid,.form-grid,.meld-team-totals{grid-template-columns:1fr}.prev-team-score-row{grid-template-columns:1fr auto;row-gap:.24rem}.compass-middle-row{grid-template-columns:1fr;justify-items:center}.table-hud-bar{padding:.36rem .55rem;gap:.36rem}.score-box{padding:.2rem .48rem;gap:.3rem}.score-hand-sub{font-size:.75rem}.felt-arena{padding:.34rem .45rem .42rem}.arena-middle-zone{grid-template-columns:minmax(92px,108px) 1fr minmax(92px,108px);gap:.28rem}.arena-middle-zone.arena-middle-center-stage{grid-template-columns:1fr 1fr;gap:.35rem}.arena-middle-zone.arena-middle-center-stage .arena-side-left{grid-column:1;grid-row:1}.arena-middle-zone.arena-middle-center-stage .arena-side-right{grid-column:2;grid-row:1}.arena-middle-zone.arena-middle-center-stage .center-stage-hub{grid-column:1 / -1;grid-row:2;padding:.72rem .78rem;gap:.52rem}.seat-plaque{min-width:0;width:100%;padding:.3rem .42rem;gap:.22rem}.arena-top-zone .seat-plaque,.dock-info-row .seat-plaque{width:auto;min-width:145px;max-width:100%}.arena-side-zone .seat-plaque{max-width:108px}.arena-side-zone .plaque-name{max-width:68px;font-size:.78rem}.arena-side-zone .plaque-trump-banner{flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:.2rem .26rem;gap:.1rem}.arena-side-zone .plaque-trump-bid,.arena-side-zone .plaque-trump-suit{font-size:.75rem}.arena-side-zone .plaque-trump-svg{width:13px;height:13px}.arena-side-zone .tag-turn{margin-left:0}.trick-carpet{padding:.32rem .4rem;border-radius:18px}.claim-rest-banner{flex-direction:column;align-items:stretch;text-align:center;padding:.48rem .65rem}.claim-rest-copy{justify-content:center;font-size:.82rem}.btn-claim-rest-hero{width:100%;font-size:.86rem}.pcard-md{width:58px;height:86px}.pcard-sm,.slot-ghost{width:48px;height:70px}.slot-ghost{font-size:.62rem}.trump-medallion{width:48px;height:48px}.trump-medallion-svg{width:19px;height:19px}.trump-medallion small{font-size:.56rem}.pcard-suit-group-start{margin-left:.36rem}.hand-fan-tray{justify-content:flex-start;gap:.18rem}}@media(max-height:580px){.table-viewport{height:auto;min-height:100dvh;overflow-y:auto}}.hud-spectator-pill{display:inline-flex;align-items:center;gap:.32rem;padding:.28rem .68rem;border-radius:999px;background:#38bdf829;border:1px solid rgba(125,211,252,.55);color:#e0f2fe;font-size:.78rem;font-weight:800;white-space:nowrap}
