:root{--felt-1: #0b6044;--felt-2: #063d2d;--gold: #b79452;--gold-bright: #d8bb76;--ink: #17130f;--card-face: #fbfaf5;--red: #d62828;--black: #1a1a1a;--panel: rgba(17, 22, 18, .9);--panel-border: rgba(183, 148, 82, .34);--text: #eee9dd;--muted: #aebcaf;--walnut-1: #43251a;--leather: #171813}*{box-sizing:border-box}html,body,#root,.app{margin:0;height:100%;min-height:100%}html,body{overflow:hidden;overscroll-behavior:none}.app{height:100vh;height:100dvh;min-height:0;overflow:hidden}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--text);background:radial-gradient(circle at 50% 28%,rgba(24,79,56,.72),transparent 58%),linear-gradient(145deg,#071b14,#030e0a 72%)}.screen{height:100%;min-height:100%;padding:20px}.center{display:flex;align-items:center;justify-content:center;gap:12px;flex-direction:column}.btn-primary{width:100%;padding:14px;margin-top:18px;border:none;border-radius:12px;font-size:1.05rem;font-weight:700;letter-spacing:.3px;color:var(--ink);background:linear-gradient(180deg,var(--gold-bright),var(--gold));cursor:pointer;box-shadow:0 6px 18px #00000059;transition:transform .08s ease,filter .15s ease}.btn-primary:hover:not(:disabled){filter:brightness(1.06)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-primary:disabled{filter:grayscale(.5) brightness(.8);cursor:not-allowed}.home-screen{display:flex;align-items:center;justify-content:center;overflow-y:auto}.home-card{width:100%;max-width:440px;background:var(--panel);border:1px solid var(--panel-border);border-radius:20px;padding:30px;box-shadow:0 24px 60px #00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}.game-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:22px 12px;min-height:110px;border-radius:14px;border:1.5px solid rgba(255,255,255,.12);background:#00000040;color:var(--text);cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .08s ease;text-align:center;overflow:hidden}.game-card:hover:not(:disabled){border-color:var(--gold);background:#e9c46a1a;transform:translateY(-2px)}.game-card.active{border-color:var(--gold-bright);background:#e9c46a2e;box-shadow:0 0 0 1px var(--gold) inset,0 6px 20px #e9c46a40}.game-card.disabled{opacity:.45;cursor:not-allowed;border-style:dashed}.game-card-name{font-size:1.2rem;font-weight:800;letter-spacing:.5px;color:var(--gold-bright)}.game-card.disabled .game-card-name{color:var(--muted)}.game-card-desc{font-size:.72rem;color:var(--muted);line-height:1.4}.game-card-badge{position:absolute;top:8px;right:8px;font-size:.6rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase;background:#ffffff1a;color:var(--muted);padding:2px 7px;border-radius:6px}.game-card-wrap{position:relative}.game-card-info{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--gold-bright);background:var(--panel);color:var(--gold-bright);font-size:.78rem;font-weight:800;font-style:italic;font-family:Georgia,serif;cursor:pointer;z-index:2;transition:background .12s ease}.game-card-info:hover{background:#e9c46a40}.btn-link{display:block;width:100%;background:none;border:none;color:var(--gold-bright);font-size:.9rem;font-weight:600;cursor:pointer;padding:8px;text-align:center}.btn-link:hover{text-decoration:underline}.setup-header{display:flex;align-items:center;gap:12px;margin-bottom:18px}.btn-back{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid var(--panel-border);background:#00000040;color:var(--gold-bright);font-size:1.3rem;font-weight:700;cursor:pointer;flex-shrink:0;transition:background .12s ease}.btn-back:hover{background:#e9c46a26}.setup-title{display:flex;align-items:center;gap:10px;margin:0;font-size:1.6rem;color:var(--gold-bright)}.rules-modal{width:min(460px,100%)}.rules-modal .rules-list{margin-bottom:18px}.game-grid-loading{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:30px;color:var(--muted);font-size:.85rem}.logo{text-align:center;font-size:2.2rem;margin:0 0 22px;letter-spacing:2px;color:var(--gold-bright);text-shadow:0 2px 10px rgba(0,0,0,.5);position:relative;display:flex;align-items:center;justify-content:center;gap:12px}.logo-tc{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,var(--gold-bright),var(--gold));color:var(--ink);font-size:1.4rem;font-weight:900;letter-spacing:1px;box-shadow:0 4px 14px #e9c46a66;flex-shrink:0}.logo-text{font-weight:800}.logo-suits{display:block;font-size:1.3rem;letter-spacing:8px;margin-top:4px}.info-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--gold-bright);background:transparent;color:var(--gold-bright);font-size:.85rem;font-weight:800;font-style:italic;font-family:Georgia,serif;cursor:pointer;margin-left:8px;vertical-align:middle;transition:background .12s ease}.info-btn:hover{background:#e9c46a33}.rules-popup{background:#0000004d;border:1px solid var(--panel-border);border-radius:12px;padding:14px 18px;margin:8px 0 18px}.rules-list{margin:0;padding-left:18px;color:var(--text);font-size:.82rem;line-height:1.6}.rules-list li{margin-bottom:4px}.tagline{text-align:center;color:var(--muted);margin:6px 0 22px;font-size:.9rem}.segmented{display:flex;background:#0000004d;border-radius:12px;padding:4px;margin-bottom:20px}.seg{flex:1;padding:10px;border:none;background:transparent;color:var(--muted);font-weight:600;border-radius:9px;cursor:pointer}.seg.active{background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:var(--ink)}.field{display:block;margin-bottom:16px}.field>span{display:block;font-size:.8rem;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.field input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#00000040;color:var(--text);font-size:1rem}.field input:focus{outline:none;border-color:var(--gold)}.code-input{letter-spacing:6px;text-transform:uppercase;font-weight:700;text-align:center}.chip-row{display:flex;gap:10px}.chip{flex:1;padding:12px 8px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#00000040;color:var(--text);font-weight:700;font-size:1.15rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px}.chip.wide{font-size:1rem}.chip small{font-size:.68rem;font-weight:500;color:var(--muted)}.chip.active{border-color:var(--gold);background:#e9c46a2e;box-shadow:0 0 0 1px var(--gold) inset}.chip.active small{color:var(--gold-bright)}.chip:disabled{opacity:.4;cursor:not-allowed}.field-note{display:block;margin-top:6px;font-size:.72rem;color:var(--muted)}.field-toggle{display:flex;align-items:center;gap:10px;cursor:pointer}.field-toggle input{width:auto;accent-color:var(--gold)}.field-toggle span{margin:0;text-transform:none;letter-spacing:0;font-size:.95rem;color:var(--text)}.inline-error{color:#ffb4b4;background:#d6282826;border:1px solid rgba(214,40,40,.4);padding:10px;border-radius:9px;font-size:.88rem;margin-top:4px}.lobby-screen{display:flex;align-items:center;justify-content:center;overflow-y:auto}.lobby-card{width:100%;max-width:440px;background:var(--panel);border:1px solid var(--panel-border);border-radius:20px;padding:26px}.room-code-badge{text-align:center;margin-bottom:6px}.room-code-badge span{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.room-code-badge strong{font-size:2.6rem;letter-spacing:10px;color:var(--gold-bright)}.lobby-meta{text-align:center;color:var(--muted);font-size:.88rem;margin:2px 0 14px}.dot-ok{color:#7fe0a3}.dot-bad{color:#ff9a9a}.lobby-hint{font-size:.8rem;color:var(--muted);background:#00000038;padding:10px 12px;border-radius:9px;border-left:3px solid var(--gold);margin-bottom:16px}.invite{margin-bottom:14px}.invite-label{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.invite-local{font-size:.82rem;color:var(--muted);background:#00000038;padding:10px 12px;border-radius:9px;margin:0}.invite-local code{color:var(--gold-bright);font-size:.8rem}.invite-local strong{color:var(--gold-bright);letter-spacing:2px}.invite-row{display:flex;gap:8px}.invite-url{flex:1;padding:10px 12px;border-radius:9px;border:1px solid rgba(255,255,255,.14);background:#0000004d;color:var(--text);font-size:.82rem;min-width:0}.copy-btn{padding:0 16px;border-radius:9px;border:none;font-weight:700;cursor:pointer;background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:var(--ink);white-space:nowrap}.seat-list{list-style:none;padding:0;margin:0 0 18px}.seat{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:11px;margin-bottom:8px;border:1px solid rgba(255,255,255,.08)}.seat.filled{background:#e9c46a1a}.seat.empty{background:#0003;border-style:dashed}.seat-num{width:26px;height:26px;border-radius:50%;background:var(--gold);color:var(--ink);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem}.seat-name{font-weight:600}.seat-name em{color:var(--gold-bright);font-style:normal;font-size:.85rem}.host-tag{margin-left:auto;font-size:.65rem;font-weight:800;letter-spacing:1px;background:var(--gold);color:var(--ink);padding:3px 7px;border-radius:6px}.seat-waiting{color:var(--muted);font-style:italic}.waiting-text{text-align:center;color:var(--muted)}.card{position:relative;border-radius:6px;box-shadow:0 4px 10px #0000007a,0 1px 1px #ffffff3d inset;-webkit-user-select:none;user-select:none;flex-shrink:0;overflow:hidden;background:#fff;line-height:0}.card-sm{width:34px;height:48px}:root{--card-ratio: 1.4;--trick-card-w: clamp(40px, 11vmin, 64px);--hand-card-w: clamp(50px, 14vmin, 84px)}.card-md{width:var(--trick-card-w);height:calc(var(--trick-card-w) * var(--card-ratio))}.card-lg{width:var(--hand-card-w);height:calc(var(--hand-card-w) * var(--card-ratio))}.card-img{display:block;width:100%;height:100%;object-fit:cover;border-radius:6px}.card-playable{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;box-shadow:0 0 0 1px var(--gold-bright),0 7px 16px #00000085}.card-playable:hover{transform:translateY(-16px);z-index:10}.card-disabled{opacity:.5;filter:grayscale(.4)}.card-highlight{box-shadow:0 0 0 2px var(--gold-bright),0 0 18px #b7945294;z-index:10}.table-screen{display:flex;flex-direction:column;height:100%;min-height:100%;padding:14px}.status-bar{display:grid;grid-template-columns:1fr minmax(0,auto) 1fr;align-items:start;gap:10px}.status-left,.status-right{display:flex;align-items:center;gap:10px}.status-right{justify-content:flex-end}.status-center{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}.status-chip{background:linear-gradient(145deg,#22241deb,#0d110eeb);border:1px solid var(--panel-border);padding:8px 14px;border-radius:20px;font-size:.9rem;color:var(--text);box-shadow:0 4px 12px #0000003d,inset 0 1px #ffffff09}.status-chip strong{color:var(--gold-bright)}.trump-chip{display:flex;align-items:center;gap:6px;background:var(--card-face);color:var(--ink);padding:6px 14px;border-radius:20px;font-weight:700;border:1px solid rgba(183,148,82,.5);box-shadow:0 4px 12px #00000061,inset 0 0 0 1px #ffffff80}.trump-chip.red .trump-symbol{color:var(--red)}.trump-chip.black .trump-symbol{color:var(--black)}.trump-symbol{font-size:1.5rem}.trump-chip small{color:#556;font-weight:600}.table-screen{display:flex;flex-direction:column;height:100%;min-height:100%;overflow:hidden;padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));gap:8px;background:radial-gradient(ellipse at 50% 38%,rgba(19,73,52,.3),transparent 58%),radial-gradient(ellipse at center,transparent 30%,rgba(0,0,0,.24) 100%)}.table-stage{position:relative;flex:1;display:flex;flex-direction:column;gap:8px;width:100%;max-width:1024px;min-height:0;margin:0 auto}.table-mid{position:relative;flex:1;min-height:clamp(200px,36vh,420px)}.felt{position:absolute;top:16%;right:10%;bottom:16%;left:10%;overflow:hidden;background:repeating-linear-gradient(115deg,rgba(255,255,255,.012) 0 1px,transparent 1px 4px) padding-box,radial-gradient(ellipse at 50% 42%,var(--felt-1),var(--felt-2) 76%) padding-box,repeating-radial-gradient(ellipse at 18% 140%,transparent 0 9px,rgba(17,7,4,.26) 10px 11px,transparent 12px 21px) border-box,repeating-radial-gradient(ellipse at 82% -35%,transparent 0 13px,rgba(104,57,34,.2) 14px 15px,transparent 16px 28px) border-box,repeating-linear-gradient(94deg,transparent 0 7px,rgba(12,5,3,.2) 8px,transparent 9px 17px,rgba(121,69,42,.12) 18px 19px) border-box,linear-gradient(108deg,#28130d,#4a281a 24%,#32180f 47%,#57301f 68%,#26120c) border-box;border:9px solid transparent;border-radius:clamp(48px,14vmin,120px);box-shadow:inset 0 0 0 1px #d8bb7661,inset 0 0 55px #00000075,0 0 0 2px #100906,0 12px 34px #00000094;pointer-events:none}.felt:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(201,172,105,.32);border-radius:inherit}.felt:after{content:"TAASH CLUB";position:absolute;left:50%;top:54%;translate:-50% -50%;color:#ddd3b513;font-family:Georgia,Times New Roman,serif;font-size:clamp(.78rem,2.2vw,1.35rem);font-weight:700;letter-spacing:.34em;white-space:nowrap}.seat-pos{position:absolute;z-index:6}.seat-rim-top{translate:-50% -100%}.seat-rim-bottom{translate:-50% 0}.seat-rim-left{translate:-100% -50%}.seat-rim-right{translate:0 -50%}@media(max-width:899px){.seat-rim-left,.seat-rim-right{translate:-50% -50%}}.seat-turn{z-index:8}.seat-tile{display:flex;flex-direction:column;align-items:center;gap:2px;background:linear-gradient(150deg,rgba(35,37,29,.97),var(--leather));border:1px solid rgba(201,172,105,.25);border-radius:10px;padding:7px 6px;text-align:center;box-shadow:0 5px 13px #0000006b,inset 0 1px #ffffff09;transition:box-shadow .2s ease,border-color .2s ease,translate .2s ease}.seat-tile.current{border:2px solid var(--gold-bright);background:linear-gradient(150deg,#b794526b,#181d15fa);box-shadow:0 0 0 3px #d8bb764d,0 5px 16px #0000007a,0 0 22px #d8bb769e;translate:0 -2px;animation:turnPulse 1.8s ease-in-out infinite}.seat-tile.winner{border-color:#86b898;box-shadow:0 5px 16px #0000007a,0 0 16px #5c9a715c}.seat-head{display:flex;flex-direction:column;align-items:center;gap:2px}.seat-avatar{width:clamp(22px,5vmin,28px);height:clamp(22px,5vmin,28px);flex-shrink:0;border-radius:50%;background:linear-gradient(145deg,#d2b36d,#8b6c35);color:var(--ink);font-weight:800;font-size:.8rem;display:flex;align-items:center;justify-content:center}.seat-label{font-weight:600;font-size:clamp(.72rem,2vmin,.86rem);max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.starter-star{color:var(--gold-bright);margin-left:4px}.seat-stats{font-size:clamp(.66rem,1.8vmin,.78rem);color:var(--muted);margin-top:2px;max-width:86px;white-space:normal}@media(min-width:900px){.seat-head{flex-direction:row;gap:6px}.trick-col{top:6%;right:16%;bottom:16%;left:16%}}.team-0 .seat-avatar,.self-chip.team-0 .seat-avatar{box-shadow:0 0 0 2px #4da3ff}.team-1 .seat-avatar,.self-chip.team-1 .seat-avatar{box-shadow:0 0 0 2px #ff7ad9}.team-2 .seat-avatar,.self-chip.team-2 .seat-avatar{box-shadow:0 0 0 2px #8ce99a}.team-3 .seat-avatar,.self-chip.team-3 .seat-avatar{box-shadow:0 0 0 2px #ffa94d}.self-pos-table{position:absolute;left:50%;top:84%;translate:-50% 0;z-index:7}.self-pos-strip{display:none}.self-chip{display:flex;align-items:center;gap:8px;background:linear-gradient(145deg,#25261ff7,#0f110ef7);border:1px solid rgba(201,172,105,.34);padding:4px 14px 4px 5px;border-radius:999px;font-weight:700;color:var(--gold-bright);box-shadow:0 5px 15px #00000075,inset 0 1px #ffffff0a;white-space:nowrap}.self-pos.seat-turn .self-chip{border:2px solid var(--gold-bright);background:linear-gradient(145deg,#b794526b,#0f110ef7);box-shadow:0 0 0 3px #d8bb764d,0 5px 15px #00000075,0 0 22px #d8bb769e;animation:turnPulse 1.8s ease-in-out infinite}@keyframes turnPulse{0%,to{box-shadow:0 0 0 3px #d8bb764d,0 5px 16px #0000007a,0 0 18px #d8bb7685}50%{box-shadow:0 0 0 5px #d8bb767a,0 5px 16px #0000007a,0 0 28px #d8bb76d1}}.self-meta{display:flex;flex-direction:column;line-height:1.15;text-align:left}.self-chip .your-stats{font-weight:500;font-size:.72rem}.bid-locked{color:var(--gold-bright);font-weight:700}.tricks strong{color:var(--text)}.trick-hint{margin:0;background:#09120dad;border:1px solid rgba(201,172,105,.22);padding:6px 16px;border-radius:999px;color:var(--gold-bright);font-weight:600;letter-spacing:.3px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;z-index:3}.winner-banner{color:#c5e3ce;font-weight:800;background:#08160ec7;animation:popIn .25s ease}@keyframes popIn{0%{transform:scale(.85);opacity:0}to{transform:none;opacity:1}}.trick-col{position:absolute;top:6%;right:23%;bottom:14%;left:23%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;z-index:4}.trick-row{container-type:inline-size;width:100%;display:flex;justify-content:center;align-items:flex-start;--step: clamp( calc(var(--trick-card-w) * .45), calc((100cqw - var(--trick-card-w)) / (var(--n) - 1)), calc(var(--trick-card-w) + 10px) )}.trick-slot{display:flex;flex-direction:column;align-items:center;gap:3px;animation:trickCardIn .42s cubic-bezier(.22,.8,.28,1) both;animation-delay:var(--slot-delay, 0ms);will-change:transform,opacity}.trick-slot+.trick-slot{margin-left:calc(var(--step) - var(--trick-card-w))}.trick-cards{display:flex}.trick-cards .card+.card{margin-left:calc(var(--trick-card-w) * -.55)}.trick-owner{font-size:.66rem;color:var(--muted);max-width:var(--trick-card-w);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.trick-row-wrap{flex-wrap:wrap;gap:8px 10px}.trick-row-wrap .trick-slot+.trick-slot{margin-left:0}.trick-from-top{--trick-start: translate3d(0, -32px, 0) rotate(-3deg) scale(.82)}.trick-from-bottom{--trick-start: translate3d(0, 32px, 0) rotate(3deg) scale(.82)}.trick-from-left{--trick-start: translate3d(-34px, 0, 0) rotate(-4deg) scale(.82)}.trick-from-right{--trick-start: translate3d(34px, 0, 0) rotate(4deg) scale(.82)}@keyframes trickCardIn{0%{transform:var(--trick-start, translate3d(0, -20px, 0) scale(.86));opacity:0}to{transform:translateZ(0) rotate(0) scale(1);opacity:1}}.trick-row-clearing .trick-slot{animation-name:collectTrick;animation-duration:.72s;animation-delay:calc(.16s + var(--slot-delay, 0ms));animation-timing-function:cubic-bezier(.55,.05,.85,.35);animation-fill-mode:forwards}.collect-to-top{--collect-x: 0vw;--collect-y: -18vh}.collect-to-bottom{--collect-x: 0vw;--collect-y: 18vh}.collect-to-left{--collect-x: -18vw;--collect-y: 0vh}.collect-to-right{--collect-x: 18vw;--collect-y: 0vh}@keyframes collectTrick{0%{transform:translateZ(0) rotate(0) scale(1);opacity:1}to{transform:translate3d(var(--collect-x),var(--collect-y),0) rotate(7deg) scale(.38);opacity:0}}.self-strip{display:flex;flex-direction:column;gap:8px;width:100%;max-width:1024px;margin:4px auto 0}.self-strip.active{border-radius:16px;box-shadow:0 -9px 24px -14px #b7945285}.your-stats{color:var(--muted);font-weight:500;font-size:.85rem}.hand{container-type:inline-size;display:flex;justify-content:center;align-items:flex-end;min-height:calc(var(--hand-card-w) * var(--card-ratio) + 20px);padding:4px 0 6px;--step: clamp( calc(var(--hand-card-w) * .24), calc((100cqw - var(--hand-card-w)) / (var(--n) - 1)), var(--hand-card-w) )}.hand .card{margin-left:calc(var(--step) - var(--hand-card-w))}.hand .card:first-child{margin-left:0}.bid-panel{background:linear-gradient(145deg,#1d1f19e0,#0a0f0be0);border:1px solid var(--panel-border);border-radius:12px;padding:10px 16px;margin-bottom:12px;text-align:center}.bid-panel .panel-title{margin:0 0 8px;font-size:.85rem;color:#ffffffbf}.bid-panel .panel-hint{margin:0 0 8px;font-size:.8rem;color:#ffffff8c}.chip.suit-chip{display:inline-flex;flex-direction:row;justify-content:center;align-items:center;gap:8px;padding:8px;font-weight:700;color:var(--ink);background:linear-gradient(180deg,var(--gold-bright),var(--gold))}.suit-icon{width:18px;height:24px;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.4))}.bidder-tag{font-style:normal;font-weight:700;color:var(--red)}.detailed-table th .team-members{display:block;font-size:.72rem;font-weight:400;opacity:.75}.bid-row{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}.bid-stepper{display:flex;align-items:center;gap:14px}.step-btn{width:46px;height:46px;border-radius:12px;border:1px solid var(--panel-border);background:linear-gradient(145deg,#26261ff2,#10110ef2);color:var(--gold-bright);font-size:1.6rem;font-weight:800;line-height:1;cursor:pointer;transition:transform .08s ease,background .12s ease}.step-btn:hover:not(:disabled){background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:var(--ink);transform:translateY(-2px)}.step-btn:disabled{opacity:.35;cursor:not-allowed}.step-value{min-width:70px;display:flex;flex-direction:column;align-items:center}.step-num{font-size:2rem;font-weight:800;color:var(--text);line-height:1}.step-value small{color:var(--muted);font-size:.72rem;margin-top:2px}.bid-confirm{width:auto;min-width:150px;margin:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{background:linear-gradient(180deg,#0d3a24,#072616);border:1px solid var(--panel-border);border-radius:18px;padding:26px 28px;width:min(460px,100%);box-shadow:0 30px 70px #0009}.modal h2{margin:0 0 6px;text-align:center;color:var(--gold-bright)}.modal-sub{text-align:center;color:var(--muted);margin:0 0 16px}.trump-inline{font-size:1.3rem;vertical-align:middle}.result-table{width:100%;border-collapse:collapse;margin-bottom:18px}.result-table th,.result-table td{padding:10px 8px;text-align:center;border-bottom:1px solid rgba(255,255,255,.08)}.result-table th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.result-table td:nth-child(2),.result-table th:nth-child(2){text-align:left}.you-row{background:#e9c46a1f}.pts-hit{color:#7fe0a3;font-weight:800}.pts-miss{color:#ff9a9a;font-weight:700}.gameover .winner-line{text-align:center;font-size:1.3rem;font-weight:800;color:var(--gold-bright);margin:4px 0 18px}.scoreboard h3{text-align:center;color:var(--muted);font-size:.9rem;text-transform:uppercase;letter-spacing:1px}.total-score{font-weight:800;color:var(--gold-bright)}.scorecard-wrap{position:relative}.score-toggle{cursor:pointer}.score-toggle.active{border-color:var(--gold);background:#b7945229}.scorecard-pop{position:absolute;top:calc(100% + 8px);left:0;width:min(260px,80vw);background:linear-gradient(145deg,#22241dfa,#0a120dfa);border:1px solid var(--panel-border);border-radius:12px;padding:12px 14px;box-shadow:0 20px 50px #0009;z-index:40}.scorecard-head{display:flex;flex-direction:column;gap:4px;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.scorecard-empty{text-transform:none;letter-spacing:0;color:var(--muted);font-style:italic}.scorecard-table{margin-bottom:0}.score-hi{color:#7fe0a3;font-weight:800}.score-lo{color:#ff9a9a;font-weight:700}.detailed-modal{width:min(680px,100%)}.detailed-scroll{overflow-x:auto;margin-bottom:14px}.detailed-table th,.detailed-table td{min-width:56px}.detailed-table td.round-cell{text-align:left;font-weight:700;color:var(--muted);white-space:nowrap}.detailed-table .total-row td{border-top:2px solid rgba(255,255,255,.2);font-size:1rem}.detailed-standings{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;font-size:.85rem;color:var(--muted);margin-bottom:8px}.detailed-standings .you-row{background:#e9c46a1f;border-radius:6px;padding:2px 6px}.toast{position:fixed;top:18px;left:50%;transform:translate(-50%);background:#d62828f2;color:#fff;padding:12px 20px;border-radius:10px;font-weight:600;box-shadow:0 8px 24px #0006;z-index:100;cursor:pointer}.spinner{width:26px;height:26px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--gold-bright);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.reconnecting-screen{background:radial-gradient(ellipse at center,var(--felt-1),var(--felt-2))}.reconnecting-screen .spinner{width:40px;height:40px;margin-bottom:8px}.reconnecting-title{font-size:1.2rem;font-weight:700;color:var(--text);margin:0}.reconnecting-sub{font-size:.85rem;color:var(--muted);margin:4px 0 0}.reconnecting-screen .btn-primary{width:auto;padding:12px 28px}.leave-btn{background:#441a186b;border:1px solid rgba(197,101,94,.38);color:#e6aaa5;border-radius:8px;padding:6px 12px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease;white-space:nowrap}.leave-btn:hover{background:#6725218f;border-color:#d67d769e}.mute-btn{background:linear-gradient(145deg,#22241deb,#0d110eeb);border:1px solid var(--panel-border);border-radius:8px;padding:6px 10px;font-size:1rem;line-height:1;cursor:pointer;transition:background .12s ease,border-color .12s ease;white-space:nowrap}.mute-btn:hover{background:#b794522e;border-color:#d8bb7685}.chat-fab{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:60;padding:12px 18px;border-radius:26px;border:1px solid var(--panel-border);background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:var(--ink);font-weight:800;cursor:pointer;box-shadow:0 8px 22px #00000073}.chat-unread{margin-left:6px;background:var(--red);color:#fff;border-radius:12px;padding:1px 7px;font-size:.75rem}.chat-window{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:60;width:min(330px,calc(50vw - 16px));height:min(460px,50dvh,calc(100dvh - 96px));max-width:calc(50vw - 16px);max-height:calc(50dvh - 16px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;box-shadow:0 18px 44px #0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow:hidden}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#00000040;font-weight:700;color:var(--gold-bright)}.chat-min{background:none;border:none;color:var(--text);font-size:1.4rem;line-height:1;cursor:pointer;padding:0 6px}.chat-body{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.chat-empty{color:var(--muted);text-align:center;font-size:.85rem;margin:auto 0}.chat-msg{max-width:82%;padding:7px 11px;border-radius:12px;background:#ffffff14;align-self:flex-start;display:flex;flex-direction:column;gap:2px;word-break:break-word}.chat-msg.mine{align-self:flex-end;background:#e9c46a38}.chat-name{font-size:.7rem;font-weight:700;color:var(--gold-bright)}.chat-text{font-size:.9rem;color:var(--text)}.chat-input{display:flex;gap:8px;padding:10px;border-top:1px solid rgba(255,255,255,.08)}.chat-input input{flex:1;min-width:0;padding:9px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#0000004d;color:var(--text)}.chat-input input:focus{outline:none;border-color:var(--gold)}.chat-input button{padding:0 14px;border:none;border-radius:10px;font-weight:700;cursor:pointer;background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:var(--ink)}.chat-input button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.chat-fab{right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));padding:10px 14px}.chat-window{right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));width:min(330px,calc(50vw - max(10px,env(safe-area-inset-right))));height:min(380px,calc(50dvh - max(10px,env(safe-area-inset-bottom))),calc(100dvh - 92px));max-width:calc(50vw - max(10px,env(safe-area-inset-right)));max-height:calc(50dvh - max(10px,env(safe-area-inset-bottom)));border-radius:14px}.chat-header{padding:8px 12px}.chat-body{padding:10px;gap:6px}.chat-msg{max-width:88%;padding:6px 9px}.chat-input{padding:8px}.chat-input input{padding:8px 10px;font-size:16px}.chat-input button{padding:0 12px}}@media(max-width:640px)and (max-height:520px){.chat-window{height:min(250px,calc(50dvh - max(10px,env(safe-area-inset-bottom))),calc(100dvh - 72px));max-height:calc(50dvh - max(10px,env(safe-area-inset-bottom)))}}@media(max-width:768px){.status-center{grid-column:1 / -1;grid-row:2;width:100%;justify-content:center}}@media(max-width:640px){.table-screen{padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));gap:6px}.felt{border-width:6px}.seat-label{max-width:64px}.seat-stats{max-width:72px}.seat-avatar{width:20px;height:20px;font-size:.68rem}.status-bar{gap:6px}.status-chip{padding:5px 10px;font-size:.78rem}.leave-btn{padding:5px 9px;font-size:.74rem}.mute-btn{padding:5px 8px;font-size:.92rem}}@media(max-width:420px){:root{--trick-card-w: clamp(30px, 11vmin, 64px)}.trick-col{top:6%;right:25%;bottom:14%;left:25%}}@media(max-height:520px){:root{--trick-card-w: clamp(30px, 9vmin, 46px);--hand-card-w: clamp(40px, 11vmin, 62px)}.table-screen{padding:max(6px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));gap:4px}.table-mid{min-height:0}.felt{border-width:5px}.seat-rim-top,.seat-rim-bottom{translate:-50% -50%}.trick-col{top:2%;right:23%;bottom:6%;left:23%;gap:5px}.self-pos-table{display:none}.self-pos-strip{display:block;flex:0 0 auto}.self-strip{flex-direction:row;align-items:center;gap:10px;margin-top:0}.self-strip .hand{flex:1 1 auto;min-width:0;min-height:calc(var(--hand-card-w) * var(--card-ratio) + 12px)}.self-strip .bid-panel,.self-strip .president-panel{margin-bottom:0;padding:6px 10px;flex:0 1 auto}}.president-panel{background:linear-gradient(145deg,#1d1f19e0,#0a0f0be0);border:1px solid var(--panel-border);border-radius:12px;padding:12px 14px;margin-bottom:12px}.president-actions{display:flex;gap:10px;margin-top:10px;justify-content:center;flex-wrap:wrap}.president-btn{width:auto;min-width:120px;margin:0;flex:0 0 auto}.btn-secondary{padding:14px 18px;border-radius:12px;border:1.5px solid var(--panel-border);background:#00000040;color:var(--text);font-weight:700;font-size:1rem;cursor:pointer;transition:border-color .12s ease,background .12s ease}.btn-secondary:hover:not(:disabled){border-color:var(--gold);background:#e9c46a1f}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.president-btn.bomb:not(:disabled){border-color:#d6282880;color:#ff9a9a}.president-btn.bomb:hover:not(:disabled){background:#d6282826;border-color:var(--red)}.exchange-prompt{margin:0 0 10px;font-size:.9rem;color:var(--text)}.exchange-prompt strong{color:var(--gold-bright)}.exchange-waiting p{text-align:center;color:var(--muted);margin:6px 0}.exchange-waiting-msg{text-align:center;color:var(--muted);font-size:.85rem;margin:0 0 8px}.beat-chip{border-color:var(--gold);background:#e9c46a26;box-shadow:0 0 0 1px var(--gold) inset}.beat-label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;margin-right:4px}.beat-rank{font-size:1.25rem;color:var(--gold-bright)!important;text-shadow:0 1px 4px rgba(0,0,0,.4)}.beat-size{color:var(--gold-bright);font-weight:700;margin-left:2px}.skip-popup{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#ffffffeb;color:#1a1a1a;padding:16px 32px;border-radius:16px;font-weight:800;font-size:1.1rem;box-shadow:0 10px 30px #00000080;z-index:30;pointer-events:none;animation:skipPopupIn .25s ease;white-space:nowrap}@keyframes skipPopupIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.role-badge{display:inline-block;margin-left:6px;font-size:.62rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase;background:#e9c46a40;color:var(--gold-bright);padding:1px 6px;border-radius:5px}.player-banner{position:fixed;top:60px;left:50%;transform:translate(-50%);padding:10px 20px;border-radius:10px;font-weight:700;color:#fff;box-shadow:0 8px 24px #0006;z-index:100;pointer-events:none;animation:skipPopupIn .25s ease;white-space:nowrap}.player-banner.off{background:#d62828f2}.player-banner.on{background:#2a9d5af2}@media(prefers-reduced-motion:reduce){.table-screen *,.table-screen *:before,.table-screen *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
