/* The club: ink, emerald cloth, warm brass and illustrated player medallions. */
:root{--club-ink:#0c1620;--club-panel:#14232b;--club-gold:#dfbf83;--club-light:#f3e9d3}
body,body.in-game{background:radial-gradient(ellipse at 10% 0,#27474b66,transparent 48%),radial-gradient(ellipse at 100% 90%,#54433722,transparent 50%),#0c1620;color:var(--club-light)}
body:before{opacity:.2}header,body.in-game header{background:#0b151dbb;border-color:#e2c99718}
.brand-icon,body.in-game .brand-icon{background:linear-gradient(135deg,#fff0bd,#ba9356);border:1px solid #fff0bd7a;border-radius:9px;box-shadow:0 3px 0 #775f36,0 5px 19px #d8b5771a;transform:rotate(-5deg)}
.brand{color:#f0dcb1}.brand small{color:#91a5a2}.quiet,body.in-game .quiet{border:1px solid #c3c9bc25;background:linear-gradient(145deg,#ffffff08,#ffffff02);color:#cbd6d0;box-shadow:inset 0 1px 0 #ffffff05}
.quiet:hover,body.in-game .quiet:hover{border-color:#dfbf8366;background:#e4c28b0d}.primary,.controls .primary{background:linear-gradient(125deg,#f6e0ab,#dcbd80 55%,#bc955d);color:#1b2d29;border:1px solid #fae5b6;border-radius:11px;box-shadow:0 4px 0 #80633d,0 7px 18px #0003,inset 0 1px 0 #fff8;font-weight:600}
.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #80633d}.room-heading h2{font-family:Georgia,serif;font-size:23px;font-weight:400;letter-spacing:-.6px;color:#f5e9cf}.room-heading{margin:12px 5px}
.room-heading>div:first-child>.eyebrow{display:flex;font-size:6px;letter-spacing:2px;color:#bda675;margin-bottom:5px}
.table-wrap{background:linear-gradient(155deg,#192d32,#101f28 60%);border:1px solid #c5bc942e;border-radius:23px;box-shadow:0 20px 65px #0005,inset 0 1px 0 #f4dda31a}
.live-score{position:relative;gap:16px;padding:16px 18px;background:radial-gradient(ellipse at 50% -100%,#60756e44,transparent 75%),#13252c;border-color:#e2ca9626}
.live-team{--team-color:#8ad8b6;--track-color:#2a4a43}.live-team.their-team{--team-color:#e8b887;--track-color:#4b4034}
.live-team-heading{align-items:flex-start;min-height:28px}.live-team-heading>span{font-size:11px;font-weight:500;color:#e4e5d5;line-height:1.4}.live-set-score{background:linear-gradient(145deg,#ffffff0d,#ffffff02);border-color:#b8c3ad2e;color:#efd8a5;font-size:12px;box-shadow:inset 0 1px 0 #ffffff08}
.live-points-line{margin:7px 0}.live-points-line>strong{font-family:Georgia,serif;font-weight:400;font-size:35px;line-height:1;letter-spacing:-1.5px;text-shadow:0 2px 15px #84d0ad20}.live-points-line>span{font-size:9px}.live-track{height:5px;box-shadow:inset 0 1px 3px #0004}.live-track i{background:linear-gradient(90deg,#549b7c,var(--team-color));box-shadow:0 0 10px #8ddcb133}.their-team .live-track i{background:linear-gradient(90deg,#aa8059,var(--team-color))}
.live-goal{color:#91a99b;font-size:8px}.live-round{position:relative;align-self:center}.live-round:before{content:'♠';display:block;font-size:18px;line-height:1;color:#d7bc81;margin-bottom:5px}.live-round>span{font-size:6px;letter-spacing:2px}.live-round>strong{font-family:Georgia,serif;font-size:24px;line-height:1.2;color:#f0ddb6}.live-round>b{border:1px solid #c9b47726;background:#d5b66f0a;border-radius:5px;color:#d5b981;font-size:7px}
.table-top{padding:13px 18px 9px;font-size:8px;color:#a8b6a6;letter-spacing:1.5px}.table-top #phase-badge{background:#b5cea50a;border:1px solid #b5cea51c;border-radius:5px;color:#b4c6ad;font-size:7px}.deal-strip{padding:0 18px 12px;color:#b5c4b5;font-size:9px}.play-direction{color:#809e90;font-size:8px}
.felt,.table-wrap[data-phase=bid] .felt,.table-wrap[data-phase=trump] .felt{isolation:isolate;background:radial-gradient(ellipse at 50% 28%,#39755d50,transparent 60%),repeating-linear-gradient(0deg,#ffffff01 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,#ffffff01 0 1px,transparent 1px 3px),#184c3b;border:5px solid #243d3c;border-radius:34px;margin:0 14px;box-shadow:0 0 0 1px #c5ac7355,0 0 0 5px #081a2077,inset 0 0 0 1px #e1c88f29,inset 0 0 65px #052419aa,0 8px 20px #0004;height:340px}
.table-wrap.revealed .felt{box-shadow:0 0 0 1px #d8bb8180,0 0 0 5px #081a2077,inset 0 0 0 1px #e1c88f29,inset 0 0 65px #052419aa,0 8px 20px #0004}
.felt:after{inset:9px;border:1px solid #d7c59315;border-radius:23px}.felt-ring{display:block;inset:70px 68px;border:1px solid #c7c8910c;border-radius:50%;box-shadow:none;z-index:-1}
.felt-corners{position:absolute;inset:18px;pointer-events:none;z-index:-1;color:#cbb77c2e;font-size:9px}.felt-corners span{position:absolute}.felt-corners span:nth-child(1){left:0;top:0}.felt-corners span:nth-child(2){right:0;top:0}.felt-corners span:nth-child(3){left:0;bottom:0}.felt-corners span:nth-child(4){right:0;bottom:0}
.avatar{position:relative;width:46px;height:46px;font-size:20px;border:2px solid #e6d3a266;border-radius:50%;background:#233e3e;box-shadow:0 4px 11px #0004,inset 0 0 0 2px #071e20;color:#c9cbb0;overflow:visible}
.player-portrait{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;pointer-events:none}.avatar-initial{position:absolute;bottom:-3px;right:-4px;width:16px;height:16px;display:grid;place-items:center;border-radius:50%;background:#d9c18c;color:#263f35;font:600 8px/1 Arial,sans-serif;border:1px solid #ffe7ae;box-shadow:0 2px 4px #0004}.avatar:has(.dealer-badge) .avatar-initial{display:none}
.seat.active .avatar{border-color:#ffe1a1;box-shadow:0 0 0 3px #ead38a14,0 5px 15px #0005}.seat span{font-size:11px;font-weight:500;color:#edf0db;letter-spacing:.1px}.seat small{font-size:7px;color:#a0b8a2;line-height:1.5;letter-spacing:.3px;margin-top:3px}.seat.bottom{bottom:12px}.seat.top{top:12px}.seat.left,.seat.right{top:44%;max-width:90px}.seat .seat-call{border-color:#d5be7e33;background:#102d23c4;color:#e1cd99;font-size:7px}.seat:has(.player-portrait){min-width:65px}
.table-side-score{top:16px;width:96px}.score-side-a{left:8px}.score-side-b{right:8px}.table-side-score .team-score{gap:5px;align-items:center}.table-side-score [id^=team-label-]>span{font-size:8px;color:#c5d1b3;letter-spacing:.1px;line-height:1.5}.table-side-score .team-score b{font-family:Georgia,serif;font-size:18px;min-width:19px;color:#f2d9a1;text-shadow:0 2px 5px #0005}.table-side-score .score-pair{width:106px;min-width:106px;height:89px;margin-bottom:-22px}.table-side-score .set-tokens>span{border:1px solid #d1b87c22;background:#0e3223c4;color:#ccba8d;font-size:7px;padding:3px 5px}.table-side-score .score-suit-pair{font-size:8px;color:#a2baa1}
.center h3,.table-wrap[data-phase=bid] .center h3,.table-wrap[data-phase=trump] .center h3{font-size:25px;font-family:Georgia,serif;line-height:1.15;letter-spacing:-.6px;color:#f2e4be;text-shadow:0 3px 12px #0003}.center p{font-size:10px;color:#adc7ac;line-height:1.65}.table-wordmark{font-size:7px;color:#d3d1a0;opacity:.24;bottom:92px;letter-spacing:4px}.table-wordmark span{font-size:18px}.played .card{box-shadow:0 5px 10px #0006;border-radius:5px}
.board-context{padding:14px 15px 0}.trump-panel{border:1px solid #d4bf8522;background:linear-gradient(110deg,#ffffff04,#e0be6c05);border-radius:11px;padding:10px 12px;box-shadow:inset 0 1px 0 #ffffff04}.trump-indicator{box-shadow:0 3px 7px #0004}.trump-display .eyebrow{color:#b69e69;letter-spacing:1.4px}.trump-display strong{color:#ead8a7}.marriage-display strong{color:#e1c282}
.hand-section,.table-wrap[data-phase=bid] .hand-section{margin:10px 8px 0;padding:13px 12px 14px;border-top:1px solid #afc1ac18;background:radial-gradient(ellipse at 50% 130%,#c8a76912,transparent 70%);border-radius:12px}.hand-heading{color:#c4bf9d;font-size:9px;letter-spacing:1.4px;margin-bottom:14px}#hint{font-size:10px;letter-spacing:0;color:#c8b784}.hand .card{box-shadow:0 7px 12px #0005;border-color:#eee2c4}.hand[data-your-turn=true] .card.legal:not(:disabled){box-shadow:0 0 0 1px #efd39544,0 8px 15px #0005,0 0 14px #daba661a;outline:1px solid #f2da99;outline-offset:3px}
.controls{padding:14px 16px 6px}.bid-panel-heading{border-bottom:1px solid #b9b78b18;padding-bottom:9px}.bid-panel-heading>span{font-size:9px;color:#dfc38b}.bid-panel-heading small{font-size:10px}.pass-button{background:linear-gradient(140deg,#2a4145,#1b3035);border-color:#afc2ba30}.call-button{background:linear-gradient(130deg,#f9e4b1,#ddbe84 65%,#bd965f);box-shadow:0 4px 0 #81653d,0 8px 22px #0003;border-color:#ffe8b5}.bid-amounts button{background:#0b2028;border-color:#a6b8a12b;color:#d0d6c4;border-radius:7px}.bid-amounts button[aria-pressed=true]{background:#d9bf84;color:#163d2b;border-color:#f6e2b2;box-shadow:0 2px 9px #c4a66a25}.bid-help{color:#98ad9d}
.suit-choice{background:linear-gradient(145deg,#fbf2db,#ddcfad);border:1px solid #f4dfaa;box-shadow:0 3px 0 #897553,0 7px 14px #0003}.suit-choice strong{color:#2c4337}.seventh-choice{background:linear-gradient(120deg,#314b47,#1b3234);border-color:#c5b17a44;box-shadow:inset 0 1px 0 #ffffff08}.seventh-choice strong{color:#e4d0a0}
.chat-panel{background:linear-gradient(155deg,#192f32,#10252b);border-color:#cbb77b4d;border-radius:19px;box-shadow:0 25px 90px #0009}.chat-panel-heading{background:#ffffff02;border-color:#dac48d1b}.chat-panel-heading strong{font-family:Georgia,serif;font-weight:400;font-size:21px;color:#f1dfb8}.chat-message{border-color:#b6c6b516;background:#31474966}.chat-message.mine{background:#36574a}.chat-compose{background:#10232b;border-color:#dac48d1b}.chat-compose textarea{background:#091b23;border-color:#b8c8b331}.chat-toggle{background:linear-gradient(135deg,#f5dca6,#cfaa6d);border-color:#fbe3ae;box-shadow:0 3px 0 #7d623c,0 7px 24px #0005;color:#19392d}.chat-mute{background:#192f34;border-color:#b8c0a72e;color:#d8c698}
.table-history{border-color:#c9c49315}.table-history summary{color:#9eb4aa}.table-event{background:#102a29f5;border-color:#ddc38666;border-radius:11px;color:#f1ddb0}
/* The lobby keeps the same materials and restrained club styling. */
.play-panel{background:linear-gradient(145deg,#22373b,#13252f);border-color:#d6bf8d33;box-shadow:0 25px 80px #0004,inset 0 1px 0 #fff1}.play-panel h2{color:#f5e6c8}.mode{border-color:#f3dca5;background:linear-gradient(110deg,#efd8a2,#c9a266);box-shadow:0 3px 0 #7e623b,0 6px 15px #0002}.mode+.mode{background:linear-gradient(110deg,#29474a,#1d343b);border:1px solid #c7b7844d;color:#e9d9b5;box-shadow:0 3px 0 #0c2028}.mode+.mode small{color:#a9c0b5}.intro h1{color:#f7edda}.intro h1 em{color:#dfbb7e}.hero-card{box-shadow:0 25px 45px #0007}.eyebrow{color:#bfaa7d}input{background:#0b1d26;border-color:#b2c2b033}.panel-note{color:#8fa99f}.divider{color:#91aaa0}
@media(max-width:600px){body.in-game header{height:52px}.room-heading{margin:7px 6px 11px;min-height:44px}.room-heading h2{font-size:23px}.room-tools .quiet{font-size:10px;min-height:40px}.room-heading>div:first-child>.eyebrow{font-size:6px}.live-score{padding:13px 13px 12px;gap:11px;grid-template-columns:minmax(0,1fr) 43px minmax(0,1fr)}.live-team-heading>span{font-size:10px}.live-points-line>strong{font-size:31px}.live-round:before{font-size:15px;margin-bottom:3px}.live-round>strong{font-size:21px}.live-round>span{font-size:5px}.live-goal{font-size:7px}.felt,.table-wrap[data-phase=bid] .felt,.table-wrap[data-phase=trump] .felt{height:clamp(290px,36svh,325px);margin:0 12px;border-radius:30px}.felt:after{border-radius:20px}.avatar{width:40px;height:40px}.seat span{font-size:10px}.seat small{font-size:6px;line-height:1.4}.seat.top{top:12px}.seat.bottom{bottom:10px}.seat.left{left:7px}.seat.right{right:7px}.seat.left,.seat.right{top:45%}.table-side-score{top:13px;width:85px}.score-side-a{left:5px}.score-side-b{right:5px}.table-side-score .score-pair{width:96px;min-width:96px;height:82px;margin-bottom:-20px}.table-side-score .team-score b{font-size:16px}.table-side-score [id^=team-label-]>span{font-size:7px}.table-side-score .set-tokens>span{font-size:6px}.center,.table-wrap[data-phase=bid] .center,.table-wrap[data-phase=trump] .center{top:52%;width:50%}.center h3,.table-wrap[data-phase=bid] .center h3,.table-wrap[data-phase=trump] .center h3{font-size:23px}.center p{font-size:9px}.table-wordmark{bottom:78px;font-size:5px}.played{inset:90px 38px 76px}.played .card{width:45px}.table-top{padding:11px 15px 8px;font-size:7px}.deal-strip{padding:0 15px 11px;font-size:8px}.board-context{padding:12px 13px 0}.hand-section,.table-wrap[data-phase=bid] .hand-section{padding:12px 8px 12px;margin:10px 8px 0}.controls{padding:12px 13px 5px}.trump-panel{padding:8px 10px}.table-wrap{border-radius:19px}.chat-panel-heading strong{font-size:20px}}
@media(max-width:360px){.room-heading h2{font-size:20px}.live-score{gap:7px;padding:12px 10px}.live-team-heading>span{font-size:9px}.live-points-line>strong{font-size:28px}.felt,.table-wrap[data-phase=bid] .felt,.table-wrap[data-phase=trump] .felt{height:285px;margin:0 9px}.table-side-score{width:73px}.score-side-a{left:2px}.score-side-b{right:2px}.table-side-score .score-pair{width:84px;min-width:84px;height:75px;margin-bottom:-20px}.avatar{width:36px;height:36px}.seat span{font-size:9px}.center h3,.table-wrap[data-phase=bid] .center h3,.table-wrap[data-phase=trump] .center h3{font-size:20px}.table-side-score .team-score b{font-size:14px}.table-side-score [id^=team-label-]>span{font-size:6px}}
@media(min-width:900px){body.in-game main{max-width:1000px}.felt,.table-wrap[data-phase=bid] .felt,.table-wrap[data-phase=trump] .felt{height:390px;margin:0 24px;border-radius:44px}.felt:after{border-radius:32px}.avatar{width:54px;height:54px}.seat span{font-size:12px}.seat small{font-size:8px}.table-side-score{width:135px;top:25px}.score-side-a{left:32px}.score-side-b{right:32px}.table-side-score .score-pair{width:145px;min-width:145px;height:118px;margin-bottom:-30px}.table-side-score [id^=team-label-]>span{font-size:10px}.table-side-score .team-score b{font-size:24px}.table-side-score .set-tokens>span{font-size:8px}.live-score{padding:20px 27px;gap:28px}.live-team-heading>span{font-size:13px}.live-points-line>strong{font-size:43px}.live-round>strong{font-size:30px}.center h3{font-size:32px}.room-heading h2{font-size:29px}}

@media(max-width:600px){.table-wrap[data-phase=bid] .felt,.table-wrap[data-phase=trump] .felt{height:260px}.table-wrap[data-phase=bid] .table-side-score .score-pair,.table-wrap[data-phase=trump] .table-side-score .score-pair{width:84px;min-width:84px;height:72px;margin-bottom:-20px}.table-wrap[data-phase=bid] .avatar,.table-wrap[data-phase=trump] .avatar{width:35px;height:35px}.table-wrap[data-phase=bid] .hand-section{margin-top:10px;padding-bottom:3px}.table-wrap[data-phase=bid] .hand{max-width:245px}.table-wrap[data-phase=bid] .hand-heading{margin-bottom:10px}.table-wrap[data-phase=bid] .hand .card{min-height:0}.table-wrap[data-phase=bid] .controls{padding-top:8px}}

@media(max-width:600px){.room-tools .quiet{min-height:44px}}
