body{background:radial-gradient(ellipse at top,#183a30,#081814 70%)}.table{border:7px solid #46382a;outline:1px solid #94744b;border-radius:44px;box-shadow:0 14px 35px #0005,inset 0 0 0 2px #bd995a88,inset 0 0 70px #0005;background:radial-gradient(ellipse,#296c50,#154b39 65%,#103e30);overflow:hidden;min-height:330px}.table:before{content:'BID WHIST ACADEMY';position:absolute;left:0;right:0;top:49%;font:11px Georgia;letter-spacing:4px;color:#e0c78b38;pointer-events:none}.table>div{position:relative}.seats span,.table>div:first-child{font-size:13px;text-shadow:0 2px 3px #0007}.panel{background:linear-gradient(145deg,#17392caa,#10261eee);border-color:#d4bd7b30;box-shadow:0 7px 20px #0002}#matchScore{color:#ead09c;font:22px Georgia}#contract{display:inline-block;border:1px solid #ddc28b45;border-radius:30px;padding:8px 12px;color:#e4d4b2}button{min-height:44px;transition:transform .14s,background .14s,box-shadow .14s}button:active:not(:disabled){transform:translateY(2px)}#choices{justify-content:center;gap:8px;margin:14px 0}#bids{font-size:13px;line-height:1.8;color:#d7c59d}#hint,#restart{background:#1d4938;color:#e8d2a7;border:1px solid #e5ca8a55}.card{position:relative;flex-shrink:0;width:68px;height:100px;font-size:0;background:linear-gradient(120deg,#fffef8,#f2ebd9);border:1px solid #d8ceb1;border-radius:8px;color:#172d26;box-shadow:0 4px 0 #d3cbb8,0 7px 12px #0005;transition:transform .18s,box-shadow .18s;overflow:hidden}.card:before{content:attr(data-face);position:absolute;top:5px;left:6px;font:600 16px Georgia;white-space:pre-line;line-height:1.05;text-align:center}.card:after{content:attr(data-center);position:absolute;left:0;right:0;top:29px;text-align:center;font:42px Georgia}.card.red{color:#ab2937}.hand .card:not(:disabled):hover{transform:translateY(-7px);box-shadow:0 5px 0 #d3cbb8,0 13px 15px #0005}.hand .card:disabled{opacity:.46}.card.recommended{transform:translateY(-8px);outline:3px solid #efc66f;box-shadow:0 0 20px #d9ad4550}.played .card{animation:layCard .3s ease-out both}.slot{min-width:63px}.slot p{margin:4px 0 9px}.slot.winning .card{outline:2px solid #eac77e;box-shadow:0 0 18px #eac77e50}.hand{gap:9px;padding-top:8px;padding-bottom:8px}#dealerShow[hidden]{display:none}#dealerShow{position:absolute;inset:0;z-index:4;background:radial-gradient(ellipse,#154d39e8,#102c23e8);border-radius:35px;overflow:hidden}#dealerShow .deal-title{position:absolute;left:10%;right:10%;top:12px;text-align:center;color:#f2d89b;font-size:14px}#dealerArm{position:absolute;left:var(--origin-x);top:var(--origin-y);width:148px;height:148px;transform:translate(-50%,-40%) rotate(var(--hand-angle,0deg));transition:transform .12s;filter:drop-shadow(0 7px 7px #0004);z-index:3}#dealerShow .deck{position:absolute;left:var(--origin-x);top:var(--origin-y);transform:translate(-50%,-50%);width:39px;height:56px;border:2px solid #f6e8c6;border-radius:4px;background:repeating-linear-gradient(45deg,#214e3c 0 5px,#b8a16a 5px 6px,#214e3c 6px 10px);box-shadow:2px 2px #e5d7bb,4px 4px #d6c8a8;z-index:1}.flying-card{position:absolute;left:var(--origin-x);top:var(--origin-y);width:30px;height:43px;border:2px solid #f3e6c3;border-radius:4px;background:repeating-linear-gradient(45deg,#1b4435 0 5px,#ad935f 5px 6px,#1b4435 6px 10px);animation:dealFly .42s ease-out forwards;pointer-events:none;z-index:2}.deal-count{position:absolute;background:#102d24df;border:1px solid #cfb47b66;border-radius:14px;padding:5px 9px;font-size:11px;color:#ead9b6;z-index:4}.deal-count[data-seat="0"]{bottom:48px;left:50%;transform:translateX(-50%)}.deal-count[data-seat="1"]{left:8px;top:48%}.deal-count[data-seat="2"]{left:50%;top:43px;transform:translateX(-50%)}.deal-count[data-seat="3"]{right:8px;top:48%}#skipDeal{position:absolute;bottom:9px;right:12px;font-size:12px;padding:8px 12px;min-height:40px;background:#ebd29c;z-index:5}.motion-controls{display:flex;align-items:center;justify-content:flex-end;font-size:12px;color:#b9c9be;margin-top:12px;gap:8px}.motion-controls input{width:18px;height:18px;accent-color:#d9ba7b}@keyframes dealFly{from{transform:translate(-50%,-50%) rotate(-15deg);opacity:1}to{left:var(--target-x);top:var(--target-y);transform:translate(-50%,-50%) rotate(var(--card-angle));opacity:0}}@keyframes layCard{from{transform:translateY(12px) rotate(-5deg);opacity:.2}to{transform:translateY(0);opacity:1}}@media(max-width:420px){.table{border-width:5px;border-radius:30px;min-height:310px}.card{width:55px;height:83px}.card:before{font-size:14px;left:4px;top:4px}.card:after{font-size:33px;top:25px}.hand{gap:8px}#dealerArm{width:124px;height:124px}.deal-count{font-size:10px;padding:4px 6px}#matchScore{font-size:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.play-controls{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 0 0;font-size:13px;color:#d1ddcf}.play-controls label{display:flex;align-items:center;gap:9px}.play-controls input{width:18px;height:18px;accent-color:#d6b47a}.play-controls select{font:inherit;color:#ead8b6;background:#163b2d;border:1px solid #c3ab7555;border-radius:8px;padding:10px;min-height:44px}.turn-status{font-size:13px;color:#ead09c;margin:14px 0 0}.coach-panel{background:#e3ca8510;border-left:3px solid #c5a35e;border-radius:8px;padding:12px 16px;margin-bottom:18px}.coach-panel strong{color:#dfbf7d;font-size:10px;letter-spacing:2px}.coach-panel p{margin:7px 0 0;font-size:14px;line-height:1.6;color:#d1dfcf}.coach-panel[hidden]{display:none}#pausePlay{background:#1a4030;color:#e3cf9e;border:1px solid #9b8356}#choices button:disabled{opacity:.3}

.replay-panel{border:1px solid #bb9e6755;border-radius:14px;padding:16px;background:#15362980}.replay-panel summary{cursor:pointer;color:#ead09c;min-height:32px}.replay-controls{margin:20px 0;justify-content:center;font-size:13px}.replay-panel select{font:inherit;background:#163d2e;color:#ead5ad;border:1px solid #b99a6266;border-radius:8px;padding:10px;max-width:100%;min-height:44px}.replay-panel .played{padding:12px 0}.replay-panel li{font-size:14px;line-height:1.7;margin-bottom:9px}.replay-panel #replayWhy{color:#ead09c;font-size:15px}.replay-panel .slot p{font-size:12px}@media(max-width:420px){.replay-controls button{padding:10px;font-size:12px}.replay-controls strong{order:-1;flex-basis:100%;text-align:center}.replay-panel{padding:12px}.replay-panel .played{gap:9px}.replay-panel .slot{min-width:55px}}

.card-legend{font-size:13px;color:#d8e6d9;line-height:1.6}.card-suggestion{border:1px solid #e8c78388;border-radius:10px;background:#e8c78312;padding:12px;font-size:14px;line-height:1.6;color:#f0d69d}.card-suggestion[hidden]{display:none}.hand .card{height:115px;padding-bottom:18px}.hand .card:disabled{opacity:.8}.hand .card.illegal-play{opacity:.43;filter:saturate(.55);box-shadow:none}.hand .card.legal-play{border:2px solid #9dd8af;box-shadow:0 3px 0 #d3cbb8,0 0 0 1px #9dd8af66}.hand .card.recommended{outline:4px solid #ffd36a;outline-offset:3px;box-shadow:0 0 20px #efc66f66}.card-tag{position:absolute;bottom:3px;left:0;right:0;font:600 10px system-ui;color:#163829;line-height:15px;background:#cbe7d0;white-space:nowrap;letter-spacing:-.2px}.illegal-play .card-tag{background:#ddd6c6;color:#343c34;font-size:9px}.recommended .card-tag{background:#ffda82;color:#32250e;font-size:9px}.hand .card:focus-visible{outline:4px solid #fff;outline-offset:4px}@media(max-width:420px){.hand .card{height:100px}.card-tag{font-size:9px}.recommended .card-tag,.illegal-play .card-tag{font-size:8px}}
.adaptive-status{font-size:13px;color:#cadbcf;line-height:1.6;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.adaptive-status[hidden]{display:none}.adaptive-status button{font:inherit;min-height:44px;background:#e8c783;color:#142a21;border:0;border-radius:9px;padding:10px 14px}
.voice-controls{margin:18px 0}.voice-controls>strong{font-size:11px;letter-spacing:2px;color:#e8c783}.voice-options{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:14px}.voice-options label{display:flex;align-items:center;gap:8px;font-size:14px}.voice-options input{width:20px;height:20px;accent-color:#e8c783}.voice-options select{font:inherit;min-height:44px;border-radius:8px;padding:8px;background:#173c2e;color:#f2e4c6;border:1px solid #e8c78377}.voice-options button{font:inherit;min-height:44px;padding:10px 14px;border:1px solid #e8c78377;border-radius:9px;background:#204c39;color:#f0d69d}.voice-controls p{font-size:13px;color:#c8dacb;line-height:1.6}
.voice-options label{max-width:100%;min-width:0}.voice-options #voiceChoice{max-width:min(65vw,320px);min-width:0}

.rank-reference{margin:18px 0;padding:14px 16px;border:1px solid #c7ab704d;border-radius:12px;background:#0d271e}.rank-reference summary{cursor:pointer;min-height:32px;color:#e8c783;font-size:14px}.rank-reference label{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:13px}.rank-reference select{font:inherit;max-width:100%;min-height:44px;background:#183f30;border:1px solid #c7ab7066;color:#f0dfb9;border-radius:8px;padding:9px}.rank-reference h3{font:23px Georgia;color:#ead09c;margin-bottom:10px}.rank-reference p{font-size:13px;line-height:1.6}.rank-order{display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));gap:7px;padding:0;list-style-position:inside}.rank-order li{list-style:none;min-height:48px;display:flex;align-items:center;justify-content:center;background:#faf4e6;color:#183429;font:23px Georgia;border-radius:6px;padding:6px;text-align:center;box-shadow:0 3px 0 #c1b79e}.rank-order .joker-rank{font:600 11px system-ui;background:#e8c783;color:#183429}#rankLed{border-left:3px solid #dab66f;padding-left:12px;color:#e4d6b8}@media(max-width:420px){.rank-order{grid-template-columns:repeat(5,minmax(0,1fr))}.rank-reference{padding:12px}.rank-order li{font-size:21px}}
