.table-workspace{--card-scale: 1;--face-base: 58px;--face-width: calc(var(--face-base) * var(--card-scale));--face-height: calc(var(--face-width) * 1.4);--fan-step: calc(var(--face-width) * .72);--suit-step: calc(var(--face-width) * .43);--trick-x: max(67px, calc(var(--face-width) * .42));--trick-y: max(49px, calc(var(--face-height) * .52))}.card-image{display:block;width:100%;height:100%;pointer-events:none}.table-surface{container-type:size}.table-surface .seat-hand{width:100%;min-width:0}.table-surface .seat-top,.table-surface .seat-bottom{width:min(calc(var(--face-width) + (var(--hand-card-count) - 1) * var(--fan-step)),calc(100% - 24px));max-width:calc(100% - 24px)}.table-surface .seat-bottom{max-width:calc(100% - 152px);z-index:4}.table-surface .seat-top:has(.hidden-hand),.table-surface .seat-bottom:has(.hidden-hand){width:min(calc(var(--face-width) + (var(--hand-card-count) - 1) * var(--face-width) * .13),calc(100% - 24px))}.table-surface .seat-left,.table-surface .seat-right{width:min(calc(var(--face-width) + (var(--hand-card-count) - 1) * var(--face-width) * .13),33%);max-width:33%}.table-surface .player-seat:not(.seat-visible){z-index:1}.table-surface .player-seat.seat-menu-open{z-index:25}.table-surface .playing-card{--card-width: var(--face-width);--card-height: var(--face-height);height:var(--face-height);border:0;border-radius:4px;background:transparent;overflow:visible;padding:0}.table-surface .playing-card .card-image{position:absolute;top:0;left:0;width:var(--face-width);height:var(--face-height);max-width:none}.table-surface .card-fan{--card-step: min(var(--fan-step), calc((100% - var(--face-width)) / max(1, var(--hand-card-count) - 1)));display:flex;width:100%;justify-content:flex-start}.table-surface .card-fan>.playing-card{width:var(--card-step);flex:0 0 var(--card-step);margin:0;min-width:0}.table-surface .card-fan>.playing-card:last-child{width:var(--face-width);flex-basis:var(--face-width)}.table-surface .playing-card.legal-card:hover,.table-surface .playing-card.legal-card:focus-visible{transform:none;filter:drop-shadow(0 0 3px #ffe000);z-index:5}.table-surface .playing-card:focus-visible{outline:3px solid #ffce00;outline-offset:-3px}.table-surface .card-backs{width:100%;height:var(--face-height);min-height:var(--face-height);justify-content:flex-start}.table-surface .card-back{width:var(--face-width);height:var(--face-height);flex:0 0 var(--face-width);margin-right:calc(min(calc(var(--face-width) * .13),calc((100% - var(--face-width)) / max(1,var(--hand-card-count) - 1))) - var(--face-width))}.table-surface .card-back:nth-last-child(2){margin-right:0}.table-surface .seat-left.seat-visible:not(.seat-dummy-layout),.table-surface .seat-right.seat-visible:not(.seat-dummy-layout){width:228px}.table-surface .hand-suits{width:100%;padding:0}.table-surface .hand-suit-row{min-height:var(--face-height)}.table-surface .suit-row-cards{height:var(--face-height)}.table-surface .suit-row-cards>.playing-card{width:0;flex:1 1 0;min-width:0}.table-surface .suit-row-cards>.playing-card:last-child{width:var(--face-width);flex:0 0 var(--face-width)}.dummy-card-groups{display:flex;align-items:flex-start;gap:7px;max-width:100%}.dummy-card-group{display:flex;align-items:flex-start;min-width:0}.dummy-suit-cards{display:flex;min-width:0}.table-surface .seat-dummy-layout:is(.seat-top,.seat-bottom){width:max-content}.table-surface .dummy-card-groups .playing-card{width:var(--suit-step);height:var(--face-height);margin:0;flex:0 0 var(--suit-step)}.table-surface .dummy-card-groups .playing-card:last-child{width:var(--face-width);flex-basis:var(--face-width)}.dummy-void{width:25px;height:var(--face-height);display:flex;align-items:center;justify-content:center;flex-direction:column;background:#ffffffb3;border-radius:3px;font-size:24px;color:#111}.dummy-void.red-suit{color:#b11f27}.dummy-void small{color:#555;font-size:10px}.table-surface .seat-dummy-layout:is(.seat-left,.seat-right){width:calc(var(--face-width) * 4 + 9px);max-width:33%}.seat-dummy-layout:is(.seat-left,.seat-right) .dummy-card-groups{--column-step: calc((100% - var(--face-width)) / 3);gap:0;justify-content:flex-start;width:100%}.seat-dummy-layout:is(.seat-left,.seat-right) .dummy-card-group{flex:0 0 var(--column-step);width:var(--column-step);min-width:0}.seat-dummy-layout:is(.seat-left,.seat-right) .dummy-card-group:last-child{flex-basis:var(--face-width);width:var(--face-width)}.seat-dummy-layout:is(.seat-left,.seat-right) .dummy-suit-cards{--vertical-step: min(var(--suit-step), calc((100% - var(--face-height)) / max(1, var(--suit-card-count) - 1)));flex-direction:column;width:var(--face-width);height:min(calc(var(--face-height) + (var(--suit-card-count) - 1) * var(--suit-step)),calc(100cqh - 70px))}.table-surface .seat-dummy-layout:is(.seat-left,.seat-right) .dummy-card-groups .playing-card{width:var(--face-width);height:var(--vertical-step);flex:0 0 var(--vertical-step)}.table-surface .seat-dummy-layout:is(.seat-left,.seat-right) .dummy-card-groups .playing-card:last-child{height:var(--face-height);flex-basis:var(--face-height)}.seat-dummy-layout:is(.seat-left,.seat-right) .dummy-void{width:100%}.table-surface[data-card-enlarged=true] .seat-dummy-layout:is(.seat-top,.seat-bottom){width:min(calc(var(--face-width) + (var(--hand-card-count) - 1) * var(--fan-step)),calc(100% - 24px))}.table-surface[data-card-enlarged=true] .seat-dummy-layout:is(.seat-top,.seat-bottom) .dummy-card-groups{--card-step: min(var(--fan-step), calc((100% - var(--face-width)) / max(1, var(--hand-card-count) - 1)));width:100%;gap:0;justify-content:flex-start}.table-surface[data-card-enlarged=true] .seat-dummy-layout:is(.seat-top,.seat-bottom) .dummy-card-group,.table-surface[data-card-enlarged=true] .seat-dummy-layout:is(.seat-top,.seat-bottom) .dummy-suit-cards{display:contents}.table-surface[data-card-enlarged=true] .seat-dummy-layout:is(.seat-top,.seat-bottom) .dummy-card-groups .playing-card{width:var(--card-step);height:var(--face-height);flex:0 0 var(--card-step)}.table-surface[data-card-enlarged=true] .seat-dummy-layout:is(.seat-top,.seat-bottom) .dummy-card-groups .playing-card[data-last-card=true]{width:var(--face-width);flex-basis:var(--face-width)}.table-surface[data-card-enlarged=true] .seat-dummy-layout:is(.seat-top,.seat-bottom) .dummy-void{display:none}.table-surface[data-card-enlarged=true] .seat-left.seat-visible:not(.seat-dummy-layout),.table-surface[data-card-enlarged=true] .seat-right.seat-visible:not(.seat-dummy-layout){width:min(calc(var(--face-width) + (var(--hand-card-count) - 1) * var(--fan-step)),55%);max-width:55%}.card-size-controls{position:absolute;right:8px;bottom:8px;z-index:21;display:flex;gap:4px}.card-size-controls button{width:28px;height:28px;padding:0;display:grid;place-items:center;border:1px solid #b7c5b7;border-radius:2px;background:#eef4e8;color:#172617;font:23px/1 Arial,sans-serif;cursor:pointer}.card-size-controls button:hover:enabled{background:#fff4b9}.card-size-controls button:focus-visible{outline:2px solid #ffce00;outline-offset:2px}.card-size-controls button:disabled{opacity:.45;cursor:default}.trick-ledger{display:flex;flex-direction:column;gap:6px;width:100%;padding:4px 0 7px;background:transparent;border:0;color:#fff;cursor:pointer}.trick-ledger:disabled{cursor:default;opacity:1}.trick-ledger:focus-visible{outline:2px solid #ffce00;outline-offset:2px}.trick-ledger-row{display:grid;grid-template-columns:1fr 24px;align-items:center;gap:3px}.trick-ledger-row strong{font-size:23px;font-weight:400;text-align:center}.trick-ledger-row small{font-size:10px;line-height:1}.trick-ledger-card{display:block;width:28px;height:40px;border:2px solid #fff;border-radius:3px;background:repeating-linear-gradient(45deg,#326999 0,#326999 3px,#4d84b4 3px,#4d84b4 5px);box-shadow:2px 2px #b9d1dc;margin:2px auto}.trick-ledger-card.their-tricks{width:43px;height:29px}.trick-ledger-row.our-tricks{color:#ffdc65}.trick-ledger-caption{font-size:10px;color:#ddd}.table-surface .table-center:has(.trick-area){width:max-content;max-width:none}.table-surface .table-center:has(.trick-area.is-held){z-index:6}.table-surface .trick-area,.table-workspace .trick-review-compass{width:calc(var(--face-width) + 2 * var(--trick-x));height:calc(var(--face-height) + 2 * var(--trick-y));transform:none}.table-surface .trick-card-position .playing-card,.table-workspace .trick-review-compass .playing-card{width:var(--face-width);height:var(--face-height);--card-width: var(--face-width);--card-height: var(--face-height)}.table-surface .trick-top,.table-workspace .trick-review-compass .trick-top{top:0;left:var(--trick-x)}.table-surface .trick-bottom,.table-workspace .trick-review-compass .trick-bottom{bottom:0;left:var(--trick-x)}.table-surface .trick-left,.table-workspace .trick-review-compass .trick-left{left:0;top:var(--trick-y)}.table-surface .trick-right,.table-workspace .trick-review-compass .trick-right{right:0;top:var(--trick-y)}.trick-area.is-held{filter:drop-shadow(0 0 3px #ffffff50)}.trick-area{pointer-events:none}.result-last-trick{margin:8px 0}.result-last-trick>small{display:block;font-size:11px;color:#555}.result-last-trick>div{display:flex;justify-content:center;gap:12px}.result-last-trick>div>span{display:flex;align-items:baseline;gap:4px}.result-last-trick small{font-size:11px}.result-last-trick strong{font-size:18px;color:#111;white-space:nowrap}.result-last-trick strong.red-suit{color:#b11f27}.table-workspace .trick-review-compass .playing-card{border:0;background:transparent}.trick-review-compass{position:relative;margin:5px auto 10px;background:#106610;border-radius:4px}.trick-review-compass .trick-card-position small{display:none}@media(max-width:1300px){.table-workspace{--face-base:52px}.table-surface .seat-left.seat-visible:not(.seat-dummy-layout),.table-surface .seat-right.seat-visible:not(.seat-dummy-layout){width:210px}}@media(max-width:1100px)and (min-width:801px){.table-workspace{--face-base:46px}.table-surface .seat-left.seat-visible:not(.seat-dummy-layout),.table-surface .seat-right.seat-visible:not(.seat-dummy-layout){width:196px}}@media(max-width:800px){.table-workspace{--face-base:33px}.table-surface .seat-left.seat-visible:not(.seat-dummy-layout),.table-surface .seat-right.seat-visible:not(.seat-dummy-layout){width:170px}.table-surface .seat-dummy-layout:is(.seat-left,.seat-right){max-width:44%}.card-size-controls{right:5px;bottom:5px;gap:3px}.card-size-controls button{width:24px;height:24px;font-size:20px}.table-surface .seat-bottom{max-width:calc(100% - 120px)}}.auction-cells .auction-bid-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:100%;border:0;padding:4px;background:transparent;cursor:pointer;font:inherit}.auction-bid-button:hover,.auction-bid-button:focus-visible{background:#ffe6a6;outline:2px solid #876b12;outline-offset:-2px}.bid-meaning h3{display:flex;align-items:center;gap:12px;font-size:17px}.bid-meaning h3>.bid-label{border:1px solid #bbb;padding:8px 16px;background:#fff;font-size:24px}.bid-meaning-description{font-size:18px;line-height:1.5}.bid-preview{position:fixed;z-index:120;padding:9px 12px;border:1px solid #756b42;border-radius:3px;background:#fff8d6;color:#191919;box-shadow:0 2px 7px #0004;font-size:15px;line-height:1.4;overflow-wrap:anywhere;pointer-events:none}.bid-preview .meaning-suit{color:#111}.bid-preview .meaning-suit.red-suit{color:#b11f27}.meaning-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.meaning-facts dt{color:#66717d}.meaning-facts dd{margin:0;font-weight:650}.meaning-fact{display:contents}.recorded-explanation{padding:10px;background:#f1f3f5}.review-loading{display:flex;align-items:center;gap:8px}.double-dummy-panel{border-top:1px solid #cbd1d5;margin-top:18px;padding-top:14px}.double-dummy-panel h3{margin-top:0}.double-dummy-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.double-dummy-table caption{text-align:left;margin:10px 0;font-weight:600}.double-dummy-table td,.double-dummy-table th{padding:8px;border:1px solid #cbd1d5;text-align:center}.double-dummy-table tbody th{text-align:left}.double-dummy-table td strong,.double-dummy-table td small{display:block}.double-dummy-table td small{color:#66717d;font-size:12px}.par-result{background:#f3f5f6;padding:12px;margin-top:12px}.par-result p:last-child{margin-bottom:0}.par-contract{display:inline-block;margin-right:16px}@media(max-width:600px){.double-dummy-table td,.double-dummy-table th{padding:6px 3px}}.hand-replayer{min-width:0;margin:12px 0}.replayer-heading{display:flex;flex-wrap:wrap;gap:7px 16px;align-items:center;padding:9px 12px;background:#e7e7e7;border:1px solid #bbb;color:#222;font-size:13px}.replayer-heading>span:last-child{margin-left:auto;font-size:12px}.replayer-table{display:grid;grid-template-columns:minmax(150px,1fr) minmax(190px,1.25fr) minmax(150px,1fr);grid-template-rows:minmax(116px,auto) minmax(180px,auto) minmax(116px,auto);grid-template-areas:". north ." "west middle east" ". south .";gap:8px;padding:12px;background:#198653;border:1px solid #236143;min-height:440px;overflow:hidden}.replayer-hand{min-width:0;align-self:center;padding:5px;border:2px solid transparent;border-radius:4px}.replay-seat-N{grid-area:north}.replay-seat-E{grid-area:east}.replay-seat-S{grid-area:south}.replay-seat-W{grid-area:west}.replay-on-turn{border-color:#f2d665}.replay-seat-label{display:flex;gap:5px;align-items:center;padding:3px 5px;margin-bottom:5px;color:#111;background:#d6d6d6;font-size:12px}.replay-seat-label b{display:inline-grid;width:18px;text-align:center;font-size:14px}.replay-seat-label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.replay-seat-label small{margin-left:auto;white-space:nowrap;font-size:10px}.replay-holding{display:grid;gap:3px}.replay-suit{display:flex;min-width:0;gap:3px;align-items:center;height:35px}.replay-suit-label{width:13px;flex:0 0 13px;font-size:17px;color:#111;text-align:center;text-shadow:0 1px 1px #ffffffa0}.replay-suit-label.red-suit{color:#870f19}.replay-suit-cards{--replay-card-width: 29px;display:flex;min-width:0;flex:1;height:35px}.replay-card{display:block;width:var(--replay-card-width);height:35px;flex:0 0 var(--replay-card-width);position:relative}.replay-card+.replay-card{margin-left:max(-21px,min(-9px,calc((100% - var(--replay-card-count) * var(--replay-card-width)) / max(1,var(--replay-card-count) - 1))))}.replay-card svg{width:100%;height:100%;display:block}.hand-replayer:not(.replayer-compact) .replay-seat-N .replay-holding,.hand-replayer:not(.replayer-compact) .replay-seat-S .replay-holding{display:flex;gap:5px}.hand-replayer:not(.replayer-compact) .replay-seat-N .replay-suit,.hand-replayer:not(.replayer-compact) .replay-seat-S .replay-suit{display:block;flex:var(--replay-suit-count) 1 0;height:44px}.hand-replayer:not(.replayer-compact) .replay-seat-N .replay-suit-label,.hand-replayer:not(.replayer-compact) .replay-seat-S .replay-suit-label{display:none}.hand-replayer:not(.replayer-compact) .replay-seat-N .replay-suit-cards,.hand-replayer:not(.replayer-compact) .replay-seat-S .replay-suit-cards{--replay-card-width: 32px;height:44px}.hand-replayer:not(.replayer-compact) .replay-seat-N .replay-card,.hand-replayer:not(.replayer-compact) .replay-seat-S .replay-card{height:44px}.replay-void{color:#fff;padding-left:5px;font-size:18px}.replay-center{grid-area:middle;position:relative;min-height:180px;min-width:0}.replay-compass{position:absolute;width:92px;height:82px;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;grid-template-columns:1fr 2fr 1fr;grid-template-rows:1fr 2fr 1fr;color:#d8eddf;opacity:.65;align-items:center;justify-items:center;font-size:13px}.replay-compass span:first-child{grid-area:1 / 2}.replay-compass span:nth-child(2){grid-area:2 / 1}.replay-compass strong{grid-area:2 / 2;text-align:center;font-size:10px}.replay-compass span:nth-child(4){grid-area:2 / 3}.replay-compass span:last-child{grid-area:3 / 2}.replay-trick-card{position:absolute;width:48px;height:65px;z-index:1;filter:drop-shadow(1px 2px 2px #0006)}.replay-trick-card svg{width:100%;height:100%;display:block}.replay-trick-card>span{position:absolute;left:50%;bottom:-15px;transform:translate(-50%);color:#fff;font-size:10px;font-weight:700;white-space:nowrap;text-shadow:0 1px 2px #000}.replay-play-N{top:2px;left:calc(50% - 24px)}.replay-play-S{bottom:13px;left:calc(50% - 24px)}.replay-play-W{top:calc(50% - 33px);left:3px}.replay-play-E{top:calc(50% - 33px);right:3px}.replay-winning-card{outline:3px solid #ffe970;border-radius:4px;z-index:2}.replayer-controls{display:flex;gap:6px;align-items:center;justify-content:center;margin-top:10px}.replayer-controls .button{white-space:nowrap}.replay-progress{min-width:90px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.replay-slider{display:block;width:calc(100% - 4px);margin:10px 2px 0;accent-color:#087b48}.replayer-status{margin:8px 0;min-height:20px;font-size:13px;color:#333}.replay-record-note{font-size:12px;margin:8px 0}.board-review .hand-replayer{margin-bottom:0}.source-replayer-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.source-replayer-heading h4{margin-bottom:0}.source-replayer-heading button{font-size:11px}.replayer-compact .replayer-table{grid-template-columns:minmax(70px,1fr) minmax(94px,1.2fr) minmax(70px,1fr);grid-template-rows:auto 147px auto;gap:2px;padding:5px;min-height:360px}.replayer-compact .replayer-hand{padding:2px}.replayer-compact .replay-seat-label{font-size:10px;padding:2px;gap:1px}.replayer-compact .replay-seat-label small{display:none}.replayer-compact .replay-seat-label b{width:12px;font-size:12px}.replayer-compact .replay-suit{height:28px;gap:1px}.replayer-compact .replay-suit-label{width:9px;flex-basis:9px;font-size:14px}.replayer-compact .replay-suit-cards{--replay-card-width: 22px;height:28px}.replayer-compact .replay-card{height:28px}.replayer-compact .replay-card+.replay-card{margin-left:max(-18px,min(-10px,calc((100% - var(--replay-card-count) * var(--replay-card-width)) / max(1,var(--replay-card-count) - 1))))}.replayer-compact .replay-center{min-height:145px}.replayer-compact .replay-trick-card{width:31px;height:43px}.replayer-compact .replay-play-N,.replayer-compact .replay-play-S{left:calc(50% - 15px)}.replayer-compact .replay-play-E,.replayer-compact .replay-play-W{top:calc(50% - 22px)}.replayer-compact .replay-compass{width:60px;height:60px}.replayer-compact .replay-compass strong{font-size:8px}.replayer-compact .replayer-heading{font-size:11px;padding:6px;gap:4px 9px}.replayer-compact .replayer-heading>span:last-child{font-size:10px;margin-left:0}.replayer-compact .replayer-controls{gap:3px}.replayer-compact .replayer-controls .button{padding:5px 7px;font-size:11px;min-height:32px}.replayer-compact .replay-jump{display:none}.replayer-compact .replay-progress{min-width:64px;font-size:10px}@media(max-height:850px){.hand-replayer:not(.replayer-compact) .replayer-table{grid-template-rows:100px minmax(168px,auto) 100px;min-height:400px;gap:6px;padding:10px}}@media(max-width:680px){.hand-replayer:not(.replayer-compact) .replayer-table{grid-template-columns:minmax(102px,1fr) minmax(115px,1.1fr) minmax(102px,1fr);gap:3px;padding:5px}.hand-replayer:not(.replayer-compact) .replay-card+.replay-card{margin-left:max(-21px,min(-12px,calc((100% - var(--replay-card-count) * var(--replay-card-width)) / max(1,var(--replay-card-count) - 1))))}.replay-seat-label small,.replay-jump{display:none}.replayer-controls{gap:5px}.hand-replayer:not(.replayer-compact) .replay-seat-N .replay-holding,.hand-replayer:not(.replayer-compact) .replay-seat-S .replay-holding{display:grid;gap:3px}.hand-replayer:not(.replayer-compact) .replay-seat-N .replay-suit,.hand-replayer:not(.replayer-compact) .replay-seat-S .replay-suit{display:flex;height:35px}.hand-replayer:not(.replayer-compact) .replay-seat-N .replay-suit-label,.hand-replayer:not(.replayer-compact) .replay-seat-S .replay-suit-label{display:block}.hand-replayer:not(.replayer-compact) .replay-seat-N .replay-suit-cards,.hand-replayer:not(.replayer-compact) .replay-seat-S .replay-suit-cards{--replay-card-width: 29px;height:35px}.hand-replayer:not(.replayer-compact) .replay-seat-N .replay-card,.hand-replayer:not(.replayer-compact) .replay-seat-S .replay-card{height:35px}}:root{font-family:Arial,Helvetica,sans-serif;color:#111;background:#e5e8ec;font-synthesis:none;font-size:16px;--navy: #101532;--navy-dark: #101532;--blue: #2f5db9;--green: #106610;--muted: #555;--border: #aeb6c0;--red: #ae2026;--gold: #ffce00}*{box-sizing:border-box}body{margin:0;min-width:360px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #387acb;outline-offset:2px}a{color:#2459a6}button{color:inherit}.red-suit{color:var(--red)!important}.muted,.field-hint{color:#555}.eyebrow{font-size:12px;font-weight:700;margin:0 0 8px}.button{display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:6px 15px;border:1px solid #8d969f;border-radius:3px;background:linear-gradient(#fff,#dedede);font-weight:400;font-size:15px;white-space:nowrap}.button:hover:not(:disabled){filter:brightness(.96)}.button.primary{color:#fff;background:#2f5db9;border-color:#22498f}.button.secondary{background:linear-gradient(#fff,#e5e5e5);color:#111}.button.small{min-height:32px;font-size:14px;padding:4px 12px}.full-width{width:100%}.icon-button,.text-button{border:0;background:transparent}.icon-button{min-width:32px;min-height:32px;font-size:23px}.text-button{color:#2459a6;text-decoration:underline;padding:5px 0}label{display:grid;gap:5px;margin:14px 0;font-size:15px}input,select,textarea{width:100%;min-width:0;min-height:36px;padding:7px 9px;border:1px solid #89939c;border-radius:2px;background:#fff;color:#111}textarea{min-height:90px;resize:vertical}input[type=checkbox]{width:18px;height:18px;min-height:0;margin:0;accent-color:#2f5db9}.checkbox-label{display:flex;align-items:center;gap:8px}fieldset{border:0;padding:0;margin:18px 0;min-width:0}legend{font-weight:700;padding:0;margin-bottom:8px}.field-hint{display:block;font-size:13px;line-height:1.5;margin:7px 0}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid #b65959;background:#fff1ed;color:#7b2020;font-size:14px}.notice-banner{background:#fff9d6;border:1px solid #dbca86;padding:10px;font-size:14px;line-height:1.45}.spinner{display:inline-block;width:17px;height:17px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.loading-area,.opening-table,.app-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:45px 20px}.app-loading{min-height:100dvh;flex-direction:column}.empty-state{padding:40px 24px;text-align:center;background:#fff;border:1px solid #bec4ca}.empty-state h3{font-size:19px;margin:10px}.empty-state p{font-size:15px;line-height:1.5}.empty-icon{font-size:35px}.app-header{height:72px;display:flex;align-items:center;gap:14px;padding:0 18px;color:#fff;background:var(--navy);border-top:3px solid #55598b}.brand{display:flex;align-items:center;gap:12px}.brand-monogram{color:#f3c32e;font-family:Georgia,serif;font-size:42px;line-height:1;letter-spacing:-7px;padding-right:7px}.brand-name{font-size:21px;color:#fff;font-weight:700}.brand-compact .brand-name{display:none}.brand-button{background:none;border:0;padding:0 10px 0 0}.header-navigation{display:flex;gap:7px}.header-nav-button{height:40px;min-width:42px;border:1px solid #c2cad7;border-radius:4px;background:#3b405a;color:#fff;display:flex;gap:7px;align-items:center;justify-content:center;padding:0 10px;font-size:14px}.header-nav-button>span:first-child{font-size:31px;line-height:1}.header-center{flex:1;min-width:0;text-align:center;font-size:21px;font-weight:700;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.header-controls{display:flex;align-items:center;gap:10px}.header-board-count{background:#f0f1f4;color:#1d2939;border:1px solid #aeb7c8;border-radius:3px;padding:10px;white-space:nowrap;font-size:16px}.header-board-count small{font-size:13px}.local-badge{font-size:10px;color:#c3c8d4;border:1px solid #747c91;padding:3px}.user-menu{display:flex;align-items:center;background:#adc5c5;color:#111;min-height:39px;padding-left:12px;border-radius:3px}.user-name{min-width:65px;max-width:120px;overflow:hidden;text-overflow:ellipsis;font-size:17px}.logout-button{border:0;background:transparent;padding:5px 10px;font-size:24px}.global-error{padding:6px}.status-dot{display:inline-block;height:8px;width:8px;border-radius:50%;background:#a5a5a5;flex-shrink:0}.status-dot.ready{background:#299d45}.status-dot.starting,.status-dot.stopping{background:#e3aa22}.status-dot.error{background:#c93737}.engine-control{position:relative}.engine-toggle{display:flex;align-items:center;gap:7px;min-height:40px;padding:6px 10px;border:1px solid #a9b1c4;border-radius:3px;background:#343c57;color:#fff;font-size:13px}.engine-toggle strong{margin-left:3px}.engine-chevron{padding-left:3px}.popover-dismiss{position:fixed;top:0;right:0;bottom:0;left:0;z-index:49;border:0;background:transparent;cursor:default}.engine-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:310px;max-width:calc(100vw - 24px);padding:16px;color:#111;background:#fff;border:1px solid #8894a0;box-shadow:0 3px 10px #0004}.engine-popover-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.engine-popover .eyebrow{font-size:12px;margin:0}.status-label{display:flex;gap:5px;align-items:center;font-weight:700}.engine-popover p{font-size:14px;line-height:1.45}.engine-popover small{display:block;font-size:12px;color:#555;line-height:1.4;margin-top:12px}.engine-error{color:#a00}.idle-countdown{display:flex;justify-content:space-between;background:#e6e9ed;padding:8px;margin:10px 0;font-size:14px}.lobby-layout{max-width:1340px;margin:20px auto;padding:0 18px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px}.lobby-sidebar{background:#fff;border:1px solid #aeb6c0;align-self:start}.room-label{display:flex;align-items:center;padding:13px 10px;color:#fff;background:#376c9c}.room-monogram,.room-label small{display:none}.room-label strong{font-size:16px;font-weight:400}.lobby-sidebar nav{display:flex;flex-direction:column}.nav-item{min-height:43px;display:flex;align-items:center;gap:9px;padding:8px 12px;border:0;border-bottom:1px solid #d1d6db;background:#fff;color:#111;font-size:15px;text-align:left}.nav-item.active{background:#cbdfe9;font-weight:700}.nav-icon{width:20px;font-size:20px;color:#34699b}.count-badge{margin-left:auto;font-size:12px}.join-button{width:calc(100% - 20px);margin:12px 10px}.conventions-card{padding:14px 12px;background:#f0f0d4;border-top:1px solid #c8c8ab;font-size:14px;line-height:1.55}.conventions-card .eyebrow{display:none}.conventions-card strong{font-size:15px}.conventions-card p{margin:5px 0}.sidebar-footer{border-top:1px solid #ccc;padding:10px;font-size:12px;color:#555}.lobby-main{min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #34618b;background:#376c9c;padding:12px 16px;color:#fff}.page-heading .eyebrow{display:none}.page-heading h1{font-size:22px;margin:0}.page-heading p{font-size:14px;margin:6px 0 0}.refresh-button{color:#fff;border:1px solid #b4c8db;border-radius:3px}.import-strip{background:#f7f7f7;border:1px solid #aeb6c0;border-top:0;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:12px}.import-description{display:flex;gap:10px;align-items:center}.import-icon{color:#376c9c;font-size:25px}.import-description strong{font-size:15px}.import-description p{margin:4px 0 0;font-size:12px;color:#555}.import-form{display:flex;align-items:center;gap:8px}.import-form input{width:150px;font-size:14px}.import-progress{border:1px solid #aeb6c0;padding:9px 12px;background:#fffbd9;display:flex;gap:12px;align-items:center;font-size:13px}.import-progress>span{display:flex;align-items:center;gap:8px;flex:1}.import-progress strong{font-weight:400}.import-failed{color:#922;background:#fff0ed}.library-toolbar{display:flex;justify-content:space-between;gap:15px;padding:12px 0}.segmented-control{display:flex;border:1px solid #aeb6c0}.segmented-control button{padding:8px 14px;min-height:36px;background:#fff;border:0;border-right:1px solid #aeb6c0;font-size:14px}.segmented-control button:last-child{border-right:0}.segmented-control button.active{background:#d4e5f1;box-shadow:inset 0 -3px #376c9c}.segmented-control.stretch button{flex:1}.search-input{width:240px;font-size:14px}.tournament-list{border:1px solid #aeb6c0}.tournament-card{display:flex;align-items:center;gap:15px;padding:12px;background:#fff;border-bottom:1px solid #c8cdd2}.tournament-card:nth-child(2n){background:#f3f6f8}.tournament-card:last-child{border-bottom:0}.tournament-emblem{display:none}.tournament-card-info{flex:1;min-width:0}.tournament-title-row{display:flex;align-items:center;gap:7px}.event-kind{color:#35658c;font-size:10px;font-weight:700}.tag{display:inline-block;background:#e5e8ec;color:#333;border:1px solid #c8cdd2;padding:2px 5px;font-size:11px}.tag-warm{background:#fff3c8}.tag-green{background:#d9efd8}.tournament-card h2{font-size:17px;margin:6px 0;font-weight:400}.tournament-meta{display:flex;flex-wrap:wrap;gap:15px;font-size:13px;color:#555}.tournament-source-note{font-size:12px;color:#555;line-height:1.4;margin:6px 0 0}.play-tournament{min-width:145px}.library-note{display:flex;align-items:center;gap:10px;padding:10px 0;color:#555;font-size:13px}.library-note p{margin:0}.saved-table-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #aeb6c0;margin-top:12px;gap:12px}.saved-table-card{background:#fff;border:1px solid #aeb6c0;padding:14px}.saved-table-top,.saved-table-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px}.saved-table-card h2{font-size:17px;margin:13px 0}.saved-table-card p{font-size:13px;color:#555}.table-progress{height:5px;background:#e4e6e8;margin-bottom:12px}.table-progress span{display:block;height:100%;background:#376c9c}.saved-percentage{font-size:23px}.saved-percentage small{font-size:12px;margin-left:5px}.results-list{background:#fff;margin-top:12px;border:1px solid #aeb6c0}.results-list-header,.results-row{display:grid;grid-template-columns:minmax(0,1fr) 70px 90px 90px;gap:12px;align-items:center;padding:12px}.results-list-header{background:#106610;color:#fff}.results-row{border-top:1px solid #aeb6c0}.results-row:nth-child(2n){background:#f0f0d4}.results-row small{display:block;font-size:12px;color:#555;margin-top:5px}.result-percentage{font-size:22px}.table-workspace{padding:0;margin:0}.table-page-heading{display:flex;align-items:center;gap:12px;min-height:32px;padding:3px 8px;background:#cbd1db;border-bottom:1px solid #9ba5b4;font-size:12px}.back-to-lobby{border:0;background:transparent;color:#244f81;font-size:12px;padding:3px}.table-event-name{flex:1;min-width:0;display:flex;gap:10px;align-items:center}.table-event-name strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px}.table-event-name>span{color:#3f4956;font-size:11px}.table-page-heading>.button{min-height:25px;padding:1px 8px;font-size:12px}.table-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:7px;background:#cbd1db;padding-right:36px;position:relative}.table-sidebar-tabs{position:absolute;right:0;top:0;width:32px;display:flex;flex-direction:column;border-left:1px solid #98a8b9}.table-sidebar-tabs button{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:122px;padding:14px 7px;border:0;border-bottom:1px solid #aeb6c0;background:#fff;color:#555;writing-mode:vertical-rl;text-align:center;font-size:15px}.table-sidebar-tabs button[aria-selected=true]{background:#2f5db9;color:#fff}.table-sidebar-tabs button:focus-visible{outline-offset:-3px;outline-color:#ffce00}.play-column{min-width:0;background:#d4d4d4}.bbo-table-frame{display:grid;grid-template-columns:112px minmax(0,1fr);background:#000;height:calc(100dvh - 252px);min-height:430px}.board-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:10px;background:#000;color:#fff;padding:10px;min-width:0;position:relative}.board-menu-container{position:relative}.board-menu-button{width:100%;min-height:45px;background:#317abf;color:#ddd;font-size:33px;line-height:1;border:1px solid #b7c7d4;border-radius:4px}.table-menu-options{position:absolute;top:100%;left:0;width:190px;z-index:20;border:1px solid #888;background:#fff;color:#111;box-shadow:0 2px 5px #0005}.table-menu-options button{display:block;width:100%;min-height:36px;background:#fff;color:#111;border:0;text-align:left;padding:7px 12px;font-size:14px}.table-menu-options button:hover:enabled{background:#d6e5f3}.board-matchpoints{background:#adc5c5;color:#111;border:1px solid #aaa;border-radius:3px;overflow:hidden}.board-matchpoints>strong{display:block;text-align:center;font-size:20px;font-weight:400;background:#fff;border-bottom:1px solid #aaa}.board-matchpoints>div{display:flex;justify-content:space-between;gap:3px;padding:2px 4px;font-size:15px}.board-counter{display:flex;flex-direction:column;align-items:center;position:relative;background:#adc5c5;color:#000;border:12px groove #eee;border-radius:10px;min-height:94px;padding:0 1px}.board-counter>span{font-size:9px}.board-counter strong{font-size:38px;line-height:1.05;font-weight:400}.board-counter small{font-size:11px}.board-dealer-marker{position:absolute;font-weight:700;line-height:11px}.board-dealer-marker.dealer-N{top:-11px;left:50%;transform:translate(-50%)}.board-dealer-marker.dealer-S{bottom:-11px;left:50%;transform:translate(-50%)}.board-dealer-marker.dealer-W{left:-10px;top:50%;transform:translateY(-50%)}.board-dealer-marker.dealer-E{right:-10px;top:50%;transform:translateY(-50%)}.board-facts{display:flex;flex-direction:column;gap:5px;font-size:11px;text-align:center}.board-facts b{font-weight:400}.board-contract{display:flex;flex-direction:column;align-items:center;background:#adc5c5;color:#111;border:1px solid #aaa}.board-contract>span{display:block;background:#fff;width:100%;text-align:center;padding:2px;font-size:11px}.board-contract strong{padding:5px 1px;font-size:19px;font-weight:400;white-space:nowrap}.trick-counter{display:flex;flex-direction:column;align-items:center;gap:4px}.trick-counter>span{font-size:11px}.trick-counter>strong{display:flex;gap:6px;font-size:13px;font-weight:400}.trick-counter i{font-style:normal}.trick-counter .your-side{color:#ffce00}.table-surface{position:relative;isolation:isolate;overflow:hidden;background:#106610;min-width:0}.player-seat{position:absolute;z-index:3;display:flex;flex-direction:column;align-items:stretch}.seat-top{top:12px;left:50%;transform:translate(-50%);max-width:94%}.seat-bottom{bottom:10px;left:50%;transform:translate(-50%);max-width:96%}.seat-left{left:10px;top:49%;transform:translateY(-50%);max-width:33%}.seat-right{right:10px;top:49%;transform:translateY(-50%);max-width:33%}.seat-nameplate{display:flex;align-items:center;gap:5px;min-height:26px;background:#d3d3d3;color:#111;padding:0 5px 0 0;border:1px solid #b2b2b2;border-radius:0 0 3px 3px;font-size:17px}.seat-turn .seat-nameplate{background:#ffce00}.seat-direction{display:flex;align-items:center;justify-content:center;min-width:24px;align-self:stretch;background:#0d6f7c;color:#fff;font-size:19px;font-weight:400}.seat-direction.vulnerable{background:#c50000}.seat-player-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-player-name small{font-size:11px;margin-left:3px}.seat-name-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;padding:2px 0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}.seat-name-button:hover,.seat-name-button:focus-visible{background:#fff5;text-decoration:underline}.seat-name-button:focus-visible{outline:2px solid #2158aa;outline-offset:-2px}.player-seat.seat-menu-open{z-index:25}.seat-action-menu{position:absolute;bottom:26px;left:0;width:214px;max-width:calc(100vw - 32px);z-index:1;background:#fff;color:#111;border:1px solid #737e88;box-shadow:0 2px 8px #0005;text-align:left;font-size:14px;outline:none}.seat-right .seat-action-menu{left:auto;right:0}.seat-top .seat-action-menu{bottom:auto;top:100%}.seat-action-menu>strong{display:block;padding:7px 10px;background:#d4dddd;font-size:12px;overflow-wrap:anywhere}.seat-action-menu>button{display:block;width:100%;min-height:38px;padding:7px 10px;border:0;background:#fff;color:#111;text-align:left;font:inherit}.seat-action-menu>button:hover:enabled,.seat-action-menu>button:focus-visible{background:#d6e5f3;outline:2px solid #2158aa;outline-offset:-2px}.seat-action-menu>p{margin:0;padding:7px 10px;color:#555;font-size:12px;line-height:1.4;border-top:1px solid #d0d5da}.observer-notice{padding:8px 10px;border-bottom:1px solid #a7b8c4;background:#e3eef6;color:#173c55;font-size:13px;line-height:1.4}.dummy-label,.robot-label{font-size:10px;font-weight:700;padding-left:3px}.dealer-button{font-size:12px;font-weight:700;color:#222;margin-left:2px}.empty-seat-button{border:1px solid #aaa;background:#d3d3d3;padding:8px 12px;min-width:105px}.card-fan{display:flex;align-items:flex-start;justify-content:center}.playing-card{--card-width: 58px;--card-height: 90px;width:var(--card-width);height:var(--card-height);position:relative;display:block;flex:0 0 var(--card-width);padding:0;border:1px solid #777;border-radius:4px 4px 0 0;color:#000;background:#fff;font-family:Arial,Helvetica,sans-serif;opacity:1!important;text-align:left;overflow:hidden}.card-fan>.playing-card{margin-right:-12px}.card-fan>.playing-card:last-child{margin-right:0}.card-corner{display:flex;flex-direction:column;align-items:center;position:absolute;left:5px;top:1px;line-height:1}.card-corner b{font-size:34px;font-weight:700;letter-spacing:-2px}.card-corner>span{font-size:37px;line-height:1.05}.card-pip{display:none}.card-red{color:#ae2026}.playing-card.legal-card{cursor:pointer}.playing-card.legal-card:hover,.playing-card.legal-card:focus-visible{background:#fff4b9;transform:translateY(-7px);z-index:5}.playing-card.legal-card:focus-visible{outline:3px solid #ffce00;outline-offset:-3px}.playing-card:disabled{cursor:default}.card-backs{display:flex;justify-content:center;min-height:66px;position:relative;padding:0}.card-back{width:33px;height:66px;border:1px solid #e8f1f1;border-radius:4px 4px 0 0;background:#0d6f7c;margin-right:-20px;flex:0 0 33px}.card-back:nth-last-child(2){margin-right:0}.hand-count{position:absolute;right:1px;bottom:1px;font-size:10px;color:#fff;background:#0d6f7c;padding:1px 3px}.hand-suits{width:228px;max-width:100%;background:#fff;border:1px solid #8c8c8c;border-bottom:0;padding:2px 4px}.hand-suit-row{display:flex;align-items:center;flex-wrap:nowrap;min-height:32px;width:100%;white-space:nowrap}.suit-row-label{flex:0 0 23px;width:23px;font-size:25px;line-height:1;color:inherit;text-align:center}.suit-row-cards{display:flex;align-items:center;flex:1;min-width:0;flex-wrap:nowrap}.suit-row-cards>.playing-card{flex:0 1 25px;width:25px;height:31px;min-width:0;border:0;border-radius:0;overflow:visible;text-align:center;background:#fff}.suit-row-cards .card-corner{position:static;display:block;line-height:31px}.suit-row-cards .card-corner b{display:block;font-size:22px;line-height:31px;letter-spacing:-1px;font-weight:600}.suit-row-cards .card-corner>span,.suit-row-cards .card-pip{display:none}.suit-row-cards>.playing-card.legal-card:hover,.suit-row-cards>.playing-card.legal-card:focus-visible{transform:none;background:#ffdf55;outline-offset:-2px}.suit-void{font-size:20px;padding-left:6px;color:#777}.seat-left.seat-visible,.seat-right.seat-visible{width:228px}.table-center{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:280px;max-width:44%;z-index:2}.in-auction .table-center{width:360px;max-width:48%;top:49%}.center-auction{background:#adc5c5;border:1px solid #dce6e6;border-radius:4px;overflow:hidden}.center-auction-label{display:none}.auction-grid{background:#adc5c5;color:#111}.auction-head,.auction-cells{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));text-align:center}.auction-head{background:#fff;border-bottom:1px solid #9db3b3}.auction-head>span{padding:5px 2px;font-size:21px;font-weight:400}.auction-cells>div{min-height:30px;display:flex;align-items:center;justify-content:center}.center-auction>.auction-grid{min-height:135px;max-height:210px;overflow-y:auto}.bid-label{font-size:23px;line-height:1.3;white-space:nowrap}.pass-bid{color:#111;font-size:20px}.alert-star{color:#a60b0b;font-size:12px}.thinking-dot{color:#222;font-size:22px}.auction-turn{background:#ffdf73}.bidding-box{background:#e4e4e4;border-top:1px solid #888;padding:7px}.bidding-main{display:flex;flex-direction:column;gap:5px}.bid-levels,.bid-suits,.bid-calls{display:flex;gap:4px}.bid-levels button,.bid-suits button,.bid-calls button{flex:1;min-width:0;min-height:35px;padding:1px;border:1px solid #666;border-radius:4px;background:linear-gradient(#fff,#dedede);color:#111;font-size:23px}.bid-levels button.active,.bid-levels button[aria-pressed=true]{background:#ffdf72;border-color:#8c6b00}.bid-suits button{font-size:26px}.bid-suits button:last-child{font-size:20px}.bid-calls button{font-size:18px}.bid-calls .pass-button,.bid-calls button:first-child{background:linear-gradient(#c9dc9d,#a5bf7f)}.bid-calls .double-button{color:#ae2026}.bid-suits button[aria-pressed=true],.bid-calls button[aria-pressed=true]{background:#ffdf72;border-color:#8c6b00;box-shadow:inset 0 0 0 1px #8c6b00}.bid-alert-row{display:flex;align-items:center;gap:8px;margin-top:6px}.bid-alert-row label{display:flex;align-items:center;gap:4px;margin:0;font-size:12px}.bid-alert-row>input{flex:1;min-height:28px;font-size:12px;padding:4px}.bidding-help{margin:5px 0 0;font-size:11px;color:#555}.bid-confirmation{min-height:16px;margin:6px 0 0;color:#555;font-size:12px;text-align:center}.bid-confirmation.confirmation-pending{color:#4b3700;font-weight:700}.trick-area{position:relative;width:200px;height:185px;margin:auto}.trick-card-position{position:absolute}.trick-card-position .playing-card{--card-width: 66px;--card-height: 87px;border-radius:4px}.trick-card-position small{display:none}.trick-top{top:0;left:67px}.trick-bottom{bottom:0;left:67px}.trick-left{left:0;top:49px}.trick-right{right:0;top:49px}.trick-compass{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:14px;color:#d7e5d3;font-size:19px}.trick-compass i{font-style:normal;padding:0 19px;color:#e3eedf}.waiting-card,.board-result{text-align:center;color:#fff}.waiting-symbol{display:none}.waiting-card h2{font-size:19px;font-weight:400;margin:8px 0}.waiting-card p{font-size:15px;line-height:1.4}.table-light{background:linear-gradient(#fff,#ddd);color:#111;border-color:#888}.board-result{background:#f2f2df;border:1px solid #777;color:#111;padding:14px 8px}.board-result .eyebrow{display:block;font-size:12px}.board-result-percentage{display:block;font-size:40px;font-weight:400}.board-result>span:not(.eyebrow){display:block;font-size:13px}.board-result>p{display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;margin:12px 0}.contract-label{white-space:nowrap}.board-result .button{margin-top:9px}.table-text-button{display:block;margin:8px auto 0;background:none;border:0;text-decoration:underline;font-size:12px;color:#2459a6}.assisted-result,.benchmark-note{font-size:12px!important}.paused-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#104010ed;color:#fff}.table-paused .player-seat:not(.seat-menu-open){z-index:11}.paused-overlay>span{font-size:40px}.paused-overlay strong{font-size:23px;margin-top:10px}.paused-overlay p{font-size:15px}.turn-status{display:flex;align-items:center;gap:7px;min-height:27px;padding:4px 10px;background:#e5e9ec;border-bottom:1px solid #aeb6c0;color:#333;font-size:13px}.turn-status.your-turn{background:#fff1ad}.saved-indicator{margin-left:auto;font-size:11px;color:#58655c}.table-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;background:#d3d3d3}.table-actions>div{display:flex;gap:6px}.last-trick-button{font-size:12px;padding:4px}.table-footnote{font-size:11px;padding:4px 9px;background:#e5e8ec;color:#555}.table-message-pane{min-height:66px;background:#fff;border-top:1px solid #aeb6c0;padding:7px 10px;color:#111;font-size:14px;line-height:1.5}.table-message-pane p{margin:0 0 4px}.table-message-pane strong{font-weight:400;color:#346fa5}.engine-table-notice{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;background:#fff4c7;color:#533d00;font-size:13px}.engine-table-notice p{margin:0}.engine-table-notice>span{display:none}.history-panel{min-width:0;background:#e5e8ec;border-left:1px solid #aeb6c0;height:calc(100dvh - 104px);overflow-y:auto}.history-panel-heading{display:flex;justify-content:center;align-items:center;gap:12px;min-height:43px;background:#25282f;color:#fff;padding:7px}.history-panel-heading>strong{font-size:20px;margin:0;font-weight:400}.history-panel-heading>span{font-size:14px;color:#d4d7df}.table-settings{padding:14px;background:#fff}.table-setting{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0;cursor:pointer}.table-setting>span{display:flex;flex-direction:column;gap:8px}.table-setting strong{font-size:16px}.table-setting small{font-size:13px;line-height:1.5;color:#555}.table-setting input{flex:0 0 22px;width:22px;height:22px;margin-top:1px}.table-settings>.field-hint{border-top:1px solid #ddd;padding-top:12px;margin-top:16px;font-size:12px}.panel-tabs{display:flex;align-items:stretch;background:#fff;border-bottom:1px solid #555}.panel-tabs button{flex:1;min-width:0;padding:10px 5px;min-height:40px;border:0;background:#fff;font-size:13px;white-space:nowrap}.panel-tabs button.active{color:#5b3798;box-shadow:inset 0 -3px #66409d}.scorecard-table{background:#cccc9a}.scorecard-row{width:100%;display:grid;grid-template-columns:54px minmax(0,1fr) 60px 63px;gap:0;align-items:stretch;padding:0;border:0;border-bottom:1px solid #aaa98a;color:#111;background:#cccc9a;font-size:16px;text-align:left}.scorecard-row>span,.scorecard-row>strong{padding:9px 4px;border-right:1px solid #b1b395;font-weight:400}.scorecard-row>span:first-child,.scorecard-row>strong,.scorecard-row>span:nth-child(3){text-align:center}.scorecard-row.selected{background:#c9e1e1}.scorecard-row:hover:not(.scorecard-header){background:#d9e9d9}.scorecard-header{background:#106610;color:#fff;font-size:16px}.scorecard-header>span{padding:7px 4px;border-color:#7b9874}.history-summary-bar{display:flex;justify-content:space-between;align-items:center;min-height:36px;background:#ffce00;color:#111;padding:6px 9px;border-bottom:1px solid #8b861d;font-size:14px}.history-summary-bar strong{font-size:22px;font-weight:400}.panel-help{margin:0;padding:15px 10px;font-size:13px;line-height:1.5;color:#4a4a43}.empty-scorecard{background:#f0f0d4;min-height:110px}.board-history-detail{border-top:1px solid #9da8ae;margin-top:10px;background:#fff}.history-board-title{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#d4dddd}.history-board-title strong{font-size:15px;font-weight:400}.history-board-title .text-button{font-size:12px}.history-my-table{padding:9px}.history-result-line{display:flex;justify-content:space-between;padding-bottom:8px;font-size:17px}.history-result-line strong{font-size:14px;font-weight:400}.history-my-table .auction-grid{border:1px solid #899;margin-bottom:10px}.auction-compact .auction-head>span{font-size:16px}.auction-compact .auction-cells>div{min-height:25px}.auction-compact .bid-label{font-size:17px}.auction-compact .pass-bid{font-size:15px}.sidebar-auction{padding:8px}.sidebar-auction .auction-grid{border:1px solid #899}.alert-explanation{font-size:13px;line-height:1.5}.alert-explanation strong{margin-right:8px}.benchmark-caption{font-size:11px;color:#555;line-height:1.45;padding:10px}.traveller{padding:0 9px 12px}.traveller-row{display:grid;grid-template-columns:minmax(0,1fr) 65px 65px;gap:0;min-height:35px;width:100%;padding:0;border:0;border-bottom:1px solid #b4b49a;background:#cccc9a;text-align:left;font-size:14px}.traveller-row>*{padding:7px 4px;font-weight:400}.traveller-row>span:nth-child(2),.traveller-row>strong{text-align:right}.traveller-head{background:#106610;color:#fff;font-size:13px}.traveller-row.selected,.traveller-row[aria-pressed=true]{background:#c9e1e1}button.traveller-row:hover{background:#dbe9dc}.original-history-detail{margin-top:10px;border:1px solid #aeb6c0;padding:9px;background:#f8f8ed}.original-history-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:15px}.original-history-detail h4{margin:12px 0 9px;font-size:15px}.source-players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:8px 0;font-size:12px}.source-players>span{overflow-wrap:anywhere}.source-play-history{margin-top:10px}.source-history .notice-banner{font-size:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0006;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:470px;max-width:100%;max-height:calc(100dvh - 40px);overflow-y:auto;background:#f4f4f4;border:1px solid #6f7b8b;border-radius:3px;box-shadow:0 5px 20px #0006;padding:0 20px 20px}.modal-wide{width:950px}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -20px 17px;padding:7px 12px;background:#25282f;color:#fff;position:sticky;top:0;z-index:2}.modal-heading h2{font-size:19px;font-weight:400;margin:0}.modal-heading .icon-button{color:#fff}.modal-intro{font-size:15px;line-height:1.5;margin:0 0 13px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.player-mode-options{grid-template-columns:repeat(3,minmax(0,1fr))}.choice-card{min-height:85px;border:1px solid #9aa3ae;background:#fff;border-radius:2px;padding:10px;text-align:left}.choice-card.selected{background:#d4e5f1;border:2px solid #376c9c;padding:9px}.choice-card strong,.choice-card small{display:block}.choice-card strong{font-size:16px;margin:4px 0}.choice-card small{font-size:12px}.choice-symbol{display:none}.invite-seats{display:grid;grid-template-columns:1fr 1fr;margin:15px 0;gap:8px}.invite-seats>div{background:#fff;border:1px solid #bbb;padding:8px;font-size:14px}.invite-seats span,.invite-seats strong{display:block}.invite-seats span{color:#555;font-size:12px;margin-bottom:3px}.proposal-banner{position:fixed;left:50%;bottom:20px;transform:translate(-50%);width:min(750px,calc(100% - 32px));z-index:70;display:flex;gap:14px;align-items:center;padding:14px;border:2px solid #8c7015;background:#fff4bd;box-shadow:0 3px 15px #0004}.proposal-banner>div:nth-child(2){flex:1}.proposal-icon{font-size:30px}.proposal-banner strong{font-size:16px}.proposal-banner p{font-size:14px;margin:5px 0}.proposal-banner small{font-size:12px}.proposal-actions{display:flex;gap:8px}.review-summary{display:flex;flex-wrap:wrap;gap:22px;padding:0 0 14px;font-size:14px}.review-summary b,.review-summary strong{margin-left:5px}.review-tabs{display:flex;border-bottom:1px solid #aaa;margin:0 -20px 18px;background:#fff}.review-tabs button{flex:1;padding:10px;background:#fff;border:0;font-size:14px}.review-tabs button.active{box-shadow:inset 0 -3px #66409d;color:#5b3798}.review-hands-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.review-hands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.review-hand{border:1px solid #899;background:#fff;padding:8px}.review-hand h3{margin:0 0 7px;padding-bottom:4px;border-bottom:1px solid #bbb;font-size:16px}.suit-holding{font-size:18px;line-height:1.5;white-space:nowrap}.suit-holding>div{display:flex;gap:8px}.suit-holding b{flex:0 0 17px;text-align:center}.review-auction h3,.recorded-plays h3{font-size:16px;margin:0 0 8px}.review-auction .auction-grid{border:1px solid #899}.play-history,.recorded-plays{overflow-x:auto}.play-history-trick{display:grid;grid-template-columns:50px repeat(4,minmax(0,1fr));gap:4px;align-items:center;border-bottom:1px solid #ccc;padding:7px 0;font-size:14px}.play-history-trick>strong{font-size:12px;font-weight:400}.play-history-trick>div{display:flex;flex-direction:column;align-items:center;gap:2px}.play-history-trick>div>span:first-child{font-size:11px;color:#555}.play-history-trick>div>span:last-child{font-size:18px;font-weight:700}.last-trick-review{display:flex;justify-content:space-around;gap:12px}.last-trick-review>div{display:flex;flex-direction:column;gap:8px;align-items:center}.auth-page{min-height:100dvh;background:#e5e8ec;display:flex;flex-direction:column}.auth-visual{background:#101532;color:#fff;min-height:72px;padding:14px 26px}.auth-story,.auth-caption,.auth-mobile-brand{display:none}.auth-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:35px 20px}.auth-form-wrap{width:390px;max-width:100%;border:1px solid #9ba8b5;padding:24px;background:#fff;box-shadow:0 1px 6px #0002}.auth-form-wrap>.eyebrow{display:none}.auth-form-wrap h2{font-size:26px;margin:0 0 12px}.auth-form-wrap>.muted{font-size:14px}.auth-submit{width:100%;margin-top:8px}.auth-submit>span:last-child{margin-left:auto}.forgot-button{margin-top:12px;font-size:14px}.private-note{font-size:12px;color:#555;line-height:1.5;border-top:1px solid #ccc;padding-top:13px;margin-top:20px}.local-accounts{font-size:12px;color:#555;line-height:1.5}.local-accounts summary{cursor:pointer}.local-accounts code{font-size:12px}.auth-links{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px 15px;margin-top:12px;font-size:14px}.auth-signup-prompt{margin:12px 0 0;font-size:14px}.local-verification{padding:10px;background:#edf3fa;border:1px solid #a4bad5;font-size:14px;line-height:1.5}.local-verification code{display:inline-block;font-size:19px;font-weight:700;letter-spacing:.15em}.auth-form-wrap .notice-banner,.auth-form-wrap .error-banner{overflow-wrap:anywhere}.auth-form-wrap form{min-width:0}.session-notice{padding:10px;background:#fff4bd;font-size:14px}@media(max-width:1300px){.app-header{gap:10px;padding:0 12px;height:64px}.header-center{font-size:18px}.nav-button-label,.local-badge{display:none}.header-controls{gap:7px}.header-board-count{padding:8px 6px;font-size:14px}.table-layout{grid-template-columns:minmax(0,1fr) 294px;padding-right:32px;gap:5px}.table-sidebar-tabs{width:29px}.table-sidebar-tabs button{font-size:14px;padding-left:6px}.bbo-table-frame{grid-template-columns:92px minmax(0,1fr);height:calc(100dvh - 244px);min-height:410px}.board-toolbar{padding:8px 6px;gap:8px}.board-matchpoints>div{font-size:13px}.board-matchpoints>strong{font-size:18px}.board-counter{border-width:10px;min-height:80px}.board-counter strong{font-size:33px}.board-contract strong{font-size:17px}.trick-counter>strong{font-size:12px;gap:4px}.history-panel{height:calc(100dvh - 96px)}.playing-card{--card-width: 52px;--card-height: 82px}.card-fan>.playing-card{margin-right:-11px}.card-corner b{font-size:31px}.card-corner>span{font-size:34px}.card-backs{min-height:59px}.card-back{height:59px;width:28px;flex-basis:28px;margin-right:-18px}.seat-nameplate{font-size:15px;min-height:25px}.seat-direction{font-size:17px;min-width:22px}.hand-suits,.seat-left.seat-visible,.seat-right.seat-visible{width:210px}.hand-suit-row{min-height:31px}.suit-row-cards>.playing-card{height:30px;flex-basis:24px;width:24px}.suit-row-cards .card-corner b{line-height:30px;font-size:21px}.table-center{width:230px;max-width:39%}.in-auction .table-center{width:310px;max-width:47%}.bid-levels button,.bid-suits button,.bid-calls button{min-height:34px}.scorecard-row{grid-template-columns:48px minmax(0,1fr) 53px 58px;font-size:14px}.scorecard-header{font-size:14px}.history-summary-bar{font-size:13px}.panel-tabs button{font-size:12px}.tournament-card h2{font-size:16px}}@media(max-width:1100px)and (min-width:801px){.header-center{font-size:16px}.user-name{min-width:40px;max-width:70px;font-size:15px}.engine-toggle{padding:6px;font-size:12px}.header-board-count small{display:none}.table-layout{grid-template-columns:minmax(0,1fr) 254px;padding-right:28px}.table-sidebar-tabs{width:26px}.table-sidebar-tabs button{padding:10px 5px;font-size:13px}.bbo-table-frame{grid-template-columns:80px minmax(0,1fr);height:calc(100dvh - 240px);min-height:410px}.board-toolbar{padding:7px 4px}.board-menu-button{min-height:40px;font-size:29px}.board-counter{border-width:8px;min-height:74px}.board-facts{font-size:10px}.playing-card{--card-width: 46px;--card-height: 75px}.card-fan>.playing-card{margin-right:-10px}.card-corner{left:3px}.card-corner b{font-size:28px}.card-corner>span{font-size:31px}.seat-left{left:7px}.seat-right{right:7px}.hand-suits,.seat-left.seat-visible,.seat-right.seat-visible{width:196px}.suit-row-label{width:21px;flex-basis:21px;font-size:23px}.suit-row-cards .card-corner b{font-size:19px}.card-back{width:26px;flex-basis:26px;margin-right:-17px;height:54px}.card-backs{min-height:54px}.seat-nameplate{font-size:14px}.in-auction .table-center{max-width:49%}.center-auction>.auction-grid{min-height:115px;max-height:165px}.auction-head>span{font-size:18px}.auction-cells>div{min-height:27px}.bid-label{font-size:20px}.pass-bid{font-size:17px}.bidding-box{padding:5px}.bid-levels button,.bid-suits button,.bid-calls button{min-height:31px}.bid-levels,.bid-suits,.bid-calls{gap:3px}.bid-alert-row{gap:4px}.bid-alert-row label{font-size:11px}.trick-area{width:166px;height:160px}.trick-card-position .playing-card{--card-width: 56px;--card-height: 75px}.trick-top,.trick-bottom{left:55px}.trick-left,.trick-right{top:42px}.scorecard-row{grid-template-columns:48px minmax(0,1fr) 45px 52px;font-size:13px}.panel-tabs button{font-size:11px}.board-result-percentage{font-size:32px}.board-result .eyebrow{font-size:10px}.board-result>p{font-size:12px;gap:4px}.lobby-layout{grid-template-columns:190px minmax(0,1fr)}.import-strip{flex-wrap:wrap}.import-form{margin-left:auto}}@media(max-width:800px){.app-header{height:58px;padding:0 8px;gap:7px}.brand-monogram{font-size:33px}.brand-button{padding-right:3px}.header-navigation{gap:4px}.header-nav-button{min-width:30px;height:34px;padding:0 4px}.header-center{font-size:14px}.header-board-count,.user-name{display:none}.user-menu{padding-left:0;min-height:34px}.logout-button{padding:4px 7px;font-size:20px}.engine-toggle{min-height:34px;font-size:11px;gap:4px;padding:4px}.engine-chevron{display:none}.engine-popover{right:-35px}.lobby-layout{display:block;padding:0 8px;margin:10px auto}.lobby-sidebar{margin-bottom:12px}.room-label,.conventions-card,.sidebar-footer{display:none}.lobby-sidebar nav{flex-direction:row}.nav-item{flex:1;justify-content:center;padding:7px 5px;font-size:13px;border-right:1px solid #ccc}.nav-icon{display:none}.join-button{margin:6px;width:calc(100% - 12px);min-height:31px}.page-heading{padding:10px}.page-heading h1{font-size:19px}.page-heading p{font-size:12px}.import-strip{flex-wrap:wrap}.import-form{width:100%}.import-form input{flex:1}.import-form .button{font-size:13px}.library-toolbar{flex-wrap:wrap;gap:7px}.segmented-control{flex:1}.segmented-control button{padding:7px;font-size:12px;flex:1}.search-input{width:100%}.tournament-card{flex-wrap:wrap;gap:8px}.tournament-card-info{flex-basis:100%}.tournament-card h2{font-size:16px}.play-tournament{margin-left:auto;min-height:32px;font-size:13px}.saved-table-grid{grid-template-columns:1fr}.results-row,.results-list-header{grid-template-columns:minmax(0,1fr) 45px 65px 65px;gap:5px;padding:8px;font-size:12px}.results-row .button{min-width:0;padding:4px;font-size:11px}.result-percentage{font-size:17px}.table-page-heading{min-height:29px;gap:6px}.back-to-lobby span,.table-event-name strong{display:none}.table-event-name>span{font-size:10px}.table-layout{display:block;padding:0}.table-sidebar-tabs{position:static;width:100%;flex-direction:row;border-left:0;margin-top:7px}.table-sidebar-tabs button{flex:1;writing-mode:horizontal-tb;min-height:40px;padding:8px;font-size:14px}.bbo-table-frame{grid-template-columns:65px minmax(0,1fr);height:510px;min-height:0}.board-toolbar{padding:6px 3px;gap:7px}.board-menu-button{font-size:25px;min-height:35px}.board-matchpoints>strong{font-size:16px}.board-matchpoints>div{font-size:10px}.board-counter{border-width:6px;min-height:64px}.board-counter strong{font-size:29px}.board-counter>span{font-size:7px}.board-facts{font-size:9px}.board-contract strong{font-size:15px}.board-contract>span,.trick-counter>span{font-size:9px}.trick-counter>strong{font-size:10px;gap:3px}.playing-card{--card-width: 33px;--card-height: 58px}.card-fan>.playing-card{margin-right:-13px}.card-corner{left:2px;top:1px}.card-corner b{font-size:24px}.card-corner>span{font-size:24px}.seat-top{top:8px}.seat-bottom{bottom:8px}.seat-left{left:4px;top:48%}.seat-right{right:4px;top:48%}.card-back{width:18px;flex-basis:18px;height:40px;margin-right:-12px}.card-backs{min-height:40px}.seat-nameplate{min-height:21px;font-size:11px;gap:2px;padding-right:2px}.seat-direction{font-size:13px;min-width:17px}.dummy-label,.robot-label,.seat-player-name small{font-size:7px}.dealer-button{font-size:8px}.hand-suits,.seat-left.seat-visible,.seat-right.seat-visible{width:170px}.seat-left.seat-visible,.seat-right.seat-visible{max-width:44%;top:35%}.hand-suit-row{min-height:27px}.suit-row-label{font-size:20px;width:18px;flex-basis:18px}.suit-row-cards>.playing-card{height:27px;flex-basis:20px}.suit-row-cards .card-corner b{font-size:17px;line-height:27px;letter-spacing:-1px}.table-center{top:56%;width:190px;max-width:64%}.table-surface:has(.seat-left.seat-dummy) .table-center{left:64%;top:61%}.table-surface:has(.seat-right.seat-dummy) .table-center{left:36%;top:61%}.in-auction .table-center{width:270px;max-width:88%;top:57%}.in-auction .seat-left,.in-auction .seat-right{top:27%}.center-auction>.auction-grid{min-height:95px;max-height:130px}.auction-head>span{font-size:18px}.auction-cells>div{min-height:24px}.bid-label{font-size:18px}.pass-bid{font-size:16px}.bidding-box{padding:5px}.bid-levels button,.bid-suits button,.bid-calls button{min-height:31px}.bid-alert-row>input{min-height:25px}.trick-area{transform:scale(.72);transform-origin:center}.board-result{padding:10px 5px}.board-result-percentage{font-size:32px}.board-result .eyebrow{font-size:9px}.board-result>p{font-size:12px}.board-result .button{font-size:12px;min-height:30px}.table-actions .button{padding:4px 8px;font-size:12px}.table-actions{gap:4px;padding:5px}.last-trick-button{font-size:11px}.table-footnote{font-size:10px}.turn-status{font-size:11px}.table-message-pane{min-height:55px;font-size:12px}.history-panel{height:auto;max-height:650px;margin-top:0;border:1px solid #aeb6c0}.history-panel-heading{min-height:38px}.scorecard-row{grid-template-columns:45px minmax(0,1fr) 80px 80px}.panel-tabs button{font-size:13px}.modal-overlay{padding:12px}.modal{max-height:calc(100dvh - 24px);padding:0 14px 14px}.modal-heading{margin:0 -14px 14px}.modal-heading h2{font-size:17px}.choice-card{padding:8px}.choice-card.selected{padding:7px}.choice-card strong{font-size:14px}.review-hands-layout{display:block}.review-auction{margin-top:15px}.review-tabs{margin-left:-14px;margin-right:-14px}.review-tabs button{font-size:12px;padding:9px 4px}.review-summary{gap:10px;font-size:12px}.suit-holding{font-size:15px}.proposal-banner{flex-wrap:wrap;gap:9px;bottom:10px;padding:10px}.proposal-banner strong{font-size:14px}.proposal-banner p{font-size:12px}.proposal-actions{width:100%;justify-content:flex-end}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
