:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e9ede9;background:#101e28;color-scheme:dark;--gold:#e5bc73;--muted:#8fa5aa;--line:#ffffff15;--panel:#172a35;--red:#b63840}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 10%,#1b3341 0,transparent 58%),#101e28;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer;border:1px solid transparent;border-radius:10px;padding:13px 19px;font-size:13px;font-weight:700;letter-spacing:.1px;background:linear-gradient(135deg,#f0ce91,#dab06a);color:#253135;box-shadow:0 3px 0 #0002;transition:transform .15s,background .15s,box-shadow .15s}button:hover:not(:disabled){filter:brightness(1.055)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.42;cursor:default}button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid #f6dca9;outline-offset:4px}input:focus,select:focus{outline:2px solid #e5bc7380;outline-offset:2px}.secondary{background:#ffffff08;color:#d9e1de;border-color:#ffffff26;box-shadow:none}.icon-button{padding:9px 13px;font-size:12px}.text-button{background:none;border:0;box-shadow:none;padding:4px 0;color:var(--muted);font-size:10px;font-weight:500}main{width:min(100%,920px);margin:auto;padding:18px 24px 24px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 0 22px}.brand{font-size:12px;font-weight:800;letter-spacing:2.4px;color:#dce2dd;text-decoration:none;display:flex;align-items:center;gap:7px}.brand-mark{font:24px Georgia,serif;color:var(--gold)}#identity{font-size:11px;color:#a3b4b8;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:var(--gold);display:block}.intro{position:relative;padding:50px 0 42px;overflow:hidden}.intro h1{font:normal clamp(50px,8vw,82px)/1 Georgia,serif;color:#f1eee4;margin:15px 0 20px}.intro p{font-size:14px;max-width:240px}.intro-deck{position:absolute;right:20px;bottom:55px;display:flex;transform:rotate(12deg);opacity:.8}.intro-deck span{display:grid;place-items:center;width:74px;height:104px;background:#f2ead6;color:#18333b;border:3px double #b5a37f;border-radius:8px;font:43px Georgia,serif;box-shadow:-4px 5px 15px #0005;margin-left:-42px;transform:rotate(-15deg)}.intro-deck span:nth-child(2){color:#b63840;transform:rotate(2deg) translateY(-8px)}.intro-deck span:nth-child(3){transform:rotate(18deg) translateY(1px)}p{color:var(--muted);line-height:1.55}h2{font:normal 28px/1.2 Georgia,serif;color:#f2eee3;margin:15px 0 24px}h3{font-size:11px;font-weight:600;color:#b2c1c2;margin:0}.panel{background:linear-gradient(140deg,#1b313d,#172a35);border:1px solid var(--line);border-radius:16px;padding:26px}.grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:block;font-size:11px;color:#a4b7bb;margin:15px 0}input,select{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #ffffff20;border-radius:8px;background:#0e202b;color:#edf1eb;font-size:14px;min-width:0}input[type=checkbox]{accent-color:var(--gold)}.lobby-card>form>button{width:100%;margin-top:8px}.small-note{font-size:10px;line-height:1.7}.join-card .small-note{margin-top:30px}#notice:empty{display:none}#notice{background:#c89d4a15;border:1px solid #e5bc7340;border-radius:8px;font-size:12px;padding:10px 12px;margin:0 0 14px}.room-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.room-heading .eyebrow{font-size:8px;letter-spacing:1.8px;margin-bottom:5px}.room-code-button{display:flex;align-items:center;gap:10px;padding:0;background:none;color:#ebeee8;border:none;box-shadow:none}#room-code{font-size:17px;letter-spacing:2px;font-weight:600}.copy-icon{color:#6f8a94;font-size:19px;font-weight:400}.phase-bar{display:flex;align-items:center;gap:8px;padding:11px 0 14px}.phase-light{width:6px;height:6px;border-radius:50%;background:#8bb49c;flex-shrink:0;box-shadow:0 0 10px #8bb49c60}#phase{font-size:11px;line-height:1.4;margin:0;color:#b5c7c6;flex:1}.deal-badge{font-size:8px;letter-spacing:1px;white-space:nowrap;color:#8da5a9;text-transform:uppercase}.table-shell{position:relative}.table-rail{padding:6px;border-radius:42% 42% 34% 34%/16% 16% 13% 13%;background:linear-gradient(125deg,#66706a,#26383b 25%,#34474a 70%,#7b7c69);box-shadow:0 12px 35px #0004,inset 0 0 0 1px #ffffff14}.felt{position:relative;min-height:320px;padding:95px 12px 66px;border-radius:inherit;background:radial-gradient(ellipse at 50% 40%,#315f50,#22493f 62%,#1b3b34);box-shadow:inset 0 2px 13px #0007;isolation:isolate}.felt:before{content:"";position:absolute;inset:0;border-radius:inherit;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.35' d='M0 0h90v90H0z'/%3E%3C/svg%3E");pointer-events:none;z-index:-1}.felt-line{position:absolute;inset:12px;border:1px solid #b4c5a624;border-radius:inherit;pointer-events:none}.seats{position:absolute;inset:0;pointer-events:none;z-index:5}.seat{position:absolute;display:flex;align-items:center;gap:7px;max-width:43%;padding:6px 9px 6px 6px;border-radius:12px;background:#142d2be8;border:1px solid #6b8b7638;box-shadow:0 3px 10px #0002;pointer-events:auto}.seat-left{left:10px;top:10px}.seat-right{right:10px;top:10px}.seat-center{left:50%;top:6px;transform:translateX(-50%)}.seat-self{bottom:10px;left:50%;transform:translateX(-50%);max-width:70%;padding-right:13px}.seat-dealer{top:56px;left:50%;transform:translateX(-50%);background:#17332cdd;padding:3px 7px;font-size:9px;max-width:60%}.seat-dealer .avatar{width:22px;height:22px;font-size:9px}.avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;font-size:12px;font-weight:700;color:#f3e9d7;background:var(--avatar-color,#6f6775);flex-shrink:0;position:relative;box-shadow:inset 0 0 0 2px #ffffff16}.avatar:after{opacity:0;content:"";position:absolute;bottom:0;right:0;width:6px;height:6px;background:#95bd8b;border:2px solid #19322e;border-radius:50%}.seat.is-turn{border-color:#e5bc73b3;box-shadow:0 0 0 2px #e5bc7314,0 4px 15px #0003}.seat.is-turn .avatar:after{opacity:1;background:var(--gold)}.seat.is-turn .avatar{outline:2px solid var(--gold);outline-offset:2px}.seat-info{min-width:0}.seat-name{font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#dce5db;max-width:100%}.seat-score{font-size:10px;color:#a5beb4;display:flex;gap:5px;align-items:center;margin-top:3px}.seat-score strong{font-size:12px;color:#ece9db}.seat-role{font-size:7px;color:var(--gold);letter-spacing:.5px;text-transform:uppercase;display:block;margin-top:2px}.seat-self .seat-role{display:inline;margin-left:5px}.seat-cards{display:flex;align-items:center;margin-left:3px;gap:2px;font-size:8px;color:#98b4a8}.seat-cards .card-back{width:9px;height:13px;border-radius:1px;margin-left:-5px;border-width:.5px}.seat-cards .back-ornament{font-size:5px}.stick-marks{display:inline-flex;gap:2px;margin-left:3px}.stick-marks i{height:7px;width:2px;border-radius:1px;background:#bd8e66}.table-hud{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin:0 0 11px;min-height:20px}.hud-pill{font-size:8px;letter-spacing:.3px;color:#bdd0bc;padding:4px 7px;border:1px solid #c4d2b21d;border-radius:20px;background:#173b3133}.hud-pill strong{color:#ead3a3;font-weight:600}.table-center{position:relative;min-height:137px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px}.table-watermark{font:normal 30px Georgia,serif;color:#d3d9b00b;letter-spacing:7px;position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:-1}.bid-emblem{text-align:center;margin:0 0 3px}.bid-emblem .bid-caption{font-size:7px;letter-spacing:1.9px;color:#a9bdaa;text-transform:uppercase}.bid-emblem .bid-value{font:36px/1.15 Georgia,serif;color:#efd6a5;display:block}.stock-row{display:flex;align-items:center;justify-content:center;gap:4px}.stock-row .playing-card,.stock-row .card-back{width:37px;height:52px}.stock-row.sealed .card-back{margin-left:-17px;transform:rotate(var(--stock-angle,0deg));box-shadow:0 2px 5px #0003}.stock-row.sealed .card-back:first-child{margin-left:0;--stock-angle:-9deg}.stock-row.sealed .card-back:last-child{--stock-angle:9deg}.stock-caption{font-size:7px;letter-spacing:1.5px;color:#a0b7a6;text-transform:uppercase;text-align:center}.stock-compact{display:flex;align-items:center;justify-content:center;gap:8px}.stock-compact .stock-row .playing-card{width:24px;height:34px}.stock-compact .stock-caption{font-size:6px;letter-spacing:1px}.table-instruction{font-size:11px;color:#b9cbb8;text-align:center;margin:5px 0 0;max-width:230px}.trick-area{position:relative;width:225px;height:143px;margin:auto;display:flex;align-items:center;justify-content:center;gap:8px}.trick-play{position:relative;text-align:center;transform:rotate(var(--play-angle,0deg));margin-top:var(--play-offset,0px)}.trick-play .playing-card{width:67px;height:94px;box-shadow:0 5px 10px #0004}.trick-play:first-child{--play-angle:-10deg;--play-offset:-18px}.trick-play:nth-child(2){--play-angle:9deg;--play-offset:5px}.trick-play:nth-child(3){--play-angle:-3deg;--play-offset:24px}.trick-play small{display:block;font-size:7px;color:#ccdac8;position:absolute;top:-14px;left:0;right:0;white-space:nowrap}.trick-play.new-play{animation:card-arrive .25s ease-out}.trick-countdown{position:absolute;bottom:0;left:35px;right:35px;height:2px;background:#ffffff15;overflow:hidden;border-radius:3px}.trick-countdown span{display:block;height:100%;background:var(--gold);transform-origin:left;animation:trick-drain var(--close-duration,3000ms) linear forwards}#table-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;position:relative;z-index:6}#table-actions button{font-size:10px;padding:8px 12px;margin-top:5px}#table-actions:empty{display:none}.playing-card{display:inline-block;position:relative;width:70px;aspect-ratio:5/7;flex:none;border-radius:7px;line-height:0;vertical-align:middle}.playing-card svg{width:100%;height:100%;display:block;border-radius:inherit}.card-back{display:inline-grid;place-items:center;width:50px;aspect-ratio:5/7;border:3px solid #ebe3cd;border-radius:5px;background:repeating-linear-gradient(45deg,transparent 0 4px,#d5c39325 4px 5px),repeating-linear-gradient(-45deg,#244d61 0 4px,#d5c39325 4px 5px);box-shadow:0 2px 5px #0003;position:relative}.card-back:after{content:"";position:absolute;inset:3px;border:1px solid #ead5aa88;border-radius:2px}.back-ornament{font:20px Georgia,serif;color:#dec391;line-height:1}.hand-zone{padding:18px 0 0}.hand-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:0;padding:0 3px}.hand-heading h3{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#c7d0c9}.hand-heading h3 span{font-size:9px;letter-spacing:0;margin-left:4px;color:#80969c;font-weight:400}.hand{display:flex;justify-content:center;align-items:flex-start;padding:22px 8px 8px;min-height:125px;isolation:isolate}.hand .card{width:var(--card-width,74px);height:auto;aspect-ratio:5/7;border:0;padding:0;background:none;box-shadow:0 4px 9px #0004;border-radius:7px;transform:translateY(var(--arc,0px)) rotate(var(--tilt,0deg));transform-origin:50% 100%;z-index:var(--card-index,0);transition:transform .18s,box-shadow .18s,filter .18s;flex-shrink:0}.hand .card+.card{margin-left:calc(-1 * var(--overlap,22px))}.hand .card:disabled{opacity:1;cursor:default}.hand .card.is-unplayable{filter:saturate(.6) brightness(.69)}.hand .card.selected{transform:translateY(-13px) rotate(0deg);box-shadow:0 0 0 2px #f2ce87,0 0 20px #e5bc7336,0 8px 15px #0005;z-index:30}.hand .card:focus-visible{outline:2px solid #f2ce87;outline-offset:2px;z-index:31}.action-dock{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:12px 0 2px;min-height:54px}.action-dock:empty{display:none}.action-dock>button{min-height:43px;flex:1;max-width:280px}.inline-form{display:flex;align-items:center;gap:0;flex:1;min-width:190px;max-width:360px;padding:4px;background:#0c1a23;border:1px solid #ffffff13;border-radius:12px}.amount-step{box-shadow:none;background:transparent;color:#98aeb3;font-size:20px;line-height:1;width:28px;padding:10px 4px}.inline-form input{padding:3px;margin:0;width:48px;text-align:center;background:none;border:none;font-size:19px;color:#e6d1a6;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}.inline-form input::-webkit-inner-spin-button{appearance:none}.inline-form>button[type=submit]{margin-left:auto;white-space:nowrap;padding:10px 14px;font-size:11px;min-height:38px}.selection-prompt{font-size:10px;color:#8fa6aa;width:100%;text-align:center;margin:0 0 2px}.distribution-form{width:100%;margin-top:0}.distribution-form>p{text-align:center;font-size:10px;margin:0 0 10px}.transfer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.transfer-row{display:grid;grid-template-columns:36px 1fr;gap:8px;align-items:start;border:1px solid #ffffff15;padding:10px;border-radius:12px;background:#172a35}.transfer-preview .playing-card{width:35px;height:49px}.transfer-row label{margin:0;font-size:9px;min-width:0}.transfer-row select{font-size:11px;padding:5px;margin-top:4px;border-radius:5px}.visibility-control{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding-top:6px;border-top:1px solid #ffffff0b;font-size:9px}.visibility-control input{display:inline-block;width:15px;height:15px;margin:0}.distribution-form>button{width:100%;margin-top:10px}.transfer-history{font-size:9px;text-align:center;color:#92aaa0;margin:5px 0 0;display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.transfer-tag{display:inline-flex;align-items:center;gap:3px;border-radius:4px;background:#0e302731;padding:3px 5px;font-size:7px;color:#a9c0af}#trick-piles{margin-top:16px}.pile-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.pile-heading h3{font-size:9px;text-transform:uppercase;letter-spacing:1px}.pile-heading>span{font-size:8px;color:#6e8892}.pile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:start}.pile{padding:0;background:#162a35;border:1px solid #ffffff10;border-radius:10px;min-width:0}.pile summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:7px;padding:10px 8px;font-size:9px;color:#bfcecd;min-height:46px}.pile summary::-webkit-details-marker{display:none}.pile summary:after{content:'⌄';margin-left:auto;color:#69848b}.pile[open] summary:after{transform:rotate(180deg)}.pile-stack{display:inline-flex;align-items:center;justify-content:center;position:relative;width:20px;height:25px;flex-shrink:0}.pile-stack .card-back{position:absolute;width:15px;height:21px;border-width:1px;border-radius:2px}.pile-stack .card-back:first-child{transform:rotate(-10deg) translateX(-2px)}.pile-stack .card-back:last-child{transform:rotate(8deg) translateX(2px)}.pile-stack .back-ornament{font-size:8px}.pile-stack.empty{opacity:.25}.pile-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pile-title strong{color:var(--gold);font-size:10px;margin-left:3px;font-weight:500}.pile-content{padding:0 6px 10px;border-top:1px solid #ffffff0a}.pile-content>p{font-size:7px;margin:8px 0;text-align:center}.last-trick-cards{display:flex;justify-content:center;gap:3px}.last-trick-cards .playing-card{width:clamp(25px,7vw,42px);height:auto}.pile-card{text-align:center;min-width:0}.pile-card small{display:block;font-size:6px;margin-top:4px;max-width:40px;overflow:hidden;text-overflow:ellipsis;color:#8ea4ad}.deal-summary{width:100%;text-align:center}.deal-summary .eyebrow{font-size:7px}.deal-summary h2{font-size:25px;margin:6px 0 12px;color:#eddeb9}.result-scores{display:flex;gap:12px;justify-content:center}.result-score{min-width:55px}.result-score span{display:block;font-size:8px;color:#a8c1b1}.result-score strong{display:block;font:24px Georgia,serif;color:#ebdcad;margin:5px 0}.result-score small{font-size:8px;color:#9fc1a4}.result-score small.negative{color:#d6a49a}.integrity-panel{margin-top:13px;border-top:1px solid #ffffff10;border-bottom:1px solid #ffffff10}.integrity-panel>summary{cursor:pointer;list-style:none;padding:14px 2px;display:flex;align-items:center;gap:7px;font-size:9px;color:#8fa5aa}.integrity-panel>summary::-webkit-details-marker{display:none}.integrity-dot{width:5px;height:5px;border-radius:50%;background:#83a994}.integrity-hint{margin-left:auto;color:#69858f;font-size:8px}.integrity-body{padding:0 3px 14px}.integrity-body p{font-size:10px}.integrity-body pre{font:9px/1.6 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:#bdcca9}.integrity-body button{font-size:10px;padding:9px 13px}footer{display:flex;justify-content:space-between;color:#617e89;font-size:9px;padding-top:28px;margin-top:15px}footer span{letter-spacing:6px;color:#8e927e}body.in-room footer{display:none}body.in-room .app-header{padding-bottom:15px}[hidden]{display:none!important}@keyframes card-arrive{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}@keyframes trick-drain{to{transform:scaleX(0)}}@media(min-width:650px){main{padding:28px 35px}.room-heading{margin-bottom:14px}.table-rail{max-width:680px;margin:auto}.felt{min-height:365px;padding-top:105px}.seat-left{left:30px;top:15px}.seat-right{right:30px;top:15px}.seat{max-width:35%;padding:9px 12px}.seat-dealer{padding:4px 9px;top:61px}.avatar{width:38px;height:38px}.seat-name{font-size:12px}.seat-score{font-size:11px}.seat-self{bottom:13px}.trick-area{height:165px;width:300px;gap:15px}.trick-play .playing-card{width:82px;height:115px}.stock-row .playing-card,.stock-row .card-back{width:44px;height:62px}.hand-zone,.action-dock,#trick-piles,.integrity-panel{max-width:680px;margin-left:auto;margin-right:auto}.hand{padding-top:25px;min-height:145px}.hand-heading h3{font-size:11px}.text-button{font-size:11px}.action-dock{padding-top:15px}.phase-bar{max-width:680px;margin:auto}.pile summary{font-size:11px}.pile-title strong{font-size:12px}.pile-content>p{font-size:9px}.pile-card small{font-size:8px}.pile-content{padding-bottom:12px}.last-trick-cards .playing-card{width:48px}.pile-heading h3{font-size:10px}.integrity-panel>summary{font-size:11px}}@media(max-width:370px){main{padding-left:14px;padding-right:14px}.seat{gap:5px;padding-right:7px}.seat-name{font-size:9px}.avatar{width:27px;height:27px}.felt{padding-left:7px;padding-right:7px}.inline-form{min-width:170px}.action-dock{gap:6px}.action-dock>button{font-size:11px;padding:12px 13px}.inline-form>button[type=submit]{padding:10px}.pile summary{gap:4px;padding-left:5px;padding-right:5px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

#phase,.hud-pill,.transfer-row label,.table-instruction{overflow-wrap:anywhere;min-width:0}.hud-pill{max-width:100%}
.arrow-icon{display:inline-block;width:1em;height:1em;vertical-align:-.12em;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

/* Keep the lobby usable on phones and normalize native form controls. */
#lobby{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}
.lobby-card{min-width:0}
.lobby-card form{display:grid;gap:18px}
.lobby-card label{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0;font-size:12px;line-height:1.4}
.lobby-card input,.lobby-card select{appearance:none;-webkit-appearance:none;width:100%;height:46px;min-height:46px;margin:0;padding:0 12px;font-size:16px;line-height:1.25}
.lobby-card select{padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%238fa5aa' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px 8px}
.lobby-card input[type=number]{appearance:textfield;-moz-appearance:textfield}
.lobby-card input[type=number]::-webkit-inner-spin-button,.lobby-card input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
#thousand-settings{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
.lobby-card>form>button{min-height:46px;margin-top:2px;font-size:14px}
.join-card .small-note{margin:18px 0 0}
@media(max-width:649px){#lobby{grid-template-columns:minmax(0,1fr)}.lobby-card{padding:22px}}

.computer-settings{grid-column:1/-1}
#computer-note{margin:0;line-height:1.5;color:var(--muted)}

/* The game is a viewport-sized table; history and trick inspection are overlays. */
body.in-room{height:var(--app-height,100dvh);min-height:0;overflow:hidden}
body.in-room main{height:var(--app-height,100dvh);width:min(100%,1060px);padding:8px 12px max(8px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:4px;min-height:0}
body.in-room .app-header{padding:0;min-height:26px;flex:none}
body.in-room .brand{font-size:12px;letter-spacing:2px}
body.in-room #identity{font-size:12px}
#room{flex:1;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:4px}
#room .room-heading{margin:0;min-height:34px;gap:8px}
.room-tools{display:flex;gap:6px;flex:none}
#room .room-heading .eyebrow{font-size:9px;margin-bottom:3px;letter-spacing:1px}
#room #room-code{font-size:16px}
#room .icon-button{font-size:12px;padding:7px 9px;min-height:32px}
#room .phase-bar{padding:1px 0 3px;max-width:none;min-height:23px;width:100%}
#room #phase{font-size:12px;line-height:1.25}
#room .deal-badge{font-size:10px}
#room .table-shell{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:4px}
#room .table-rail{width:100%;height:100%;max-width:none;min-height:0;padding:5px;border-radius:42px}
#room .felt{height:100%;min-height:0;padding:66px 8px 50px;border-radius:38px}
#room[data-presentation=auction] .felt{padding-top:84px}
#room .felt-line{inset:8px}
#room #thousand-table{height:100%;min-height:0;display:flex;flex-direction:column;gap:4px}
#room .table-hud{flex:none;min-height:19px;margin:0;gap:5px}
#room .hud-pill{font-size:11px;padding:3px 7px;line-height:1.1}
#room .table-center{flex:1;min-height:0;height:100%;gap:4px}
#room .bid-emblem{display:none}
#room .stock-display{display:flex;align-items:center;flex-direction:column;gap:5px}
#room .stock-row{gap:8px}
#room .stock-row .playing-card{width:clamp(68px,21vw,96px);height:auto}
#room[data-presentation=auction] .stock-row .playing-card{width:clamp(52px,17vw,78px)}
#room .stock-row .card-back{width:44px;height:auto;margin:0;transform:none}
#room .stock-caption{font-size:10px;letter-spacing:1px}
#room .seat{max-width:45%;gap:5px;padding:5px 7px;border-radius:11px;min-width:0}
#room .seat-left{left:5px;top:7px}
#room .seat-right{right:5px;top:7px}
#room .seat-self{left:50%;bottom:5px;max-width:76%;top:auto}
#room .seat-dealer{top:1px;left:50%;max-width:78%;padding:2px 7px;transform:translateX(-50%)}
#room[data-player-count="4"] .seat-left,#room[data-player-count="4"] .seat-right{top:34px}
#room[data-player-count="4"] .felt{padding-top:94px}
#room[data-player-count="4"][data-presentation=auction] .felt{padding-top:112px}
#room .seat-dealer .avatar,#room .seat-dealer .seat-hand,#room .seat-dealer .seat-role{display:none}
#room .seat-dealer .seat-info{display:flex;align-items:center;gap:7px}
#room .avatar{width:27px;height:27px;font-size:12px}
#room .seat-name{font-size:12px;max-width:150px}
#room .seat-score{font-size:11px;margin-top:2px;gap:4px;min-height:20px}
#room .seat-score strong{font-size:13px}
#room .seat-role{font-size:9px;margin-top:1px;letter-spacing:.4px}
#room .seat-self .seat-role{margin-left:0;display:block}
#room .seat-hand{background:none;border:0;box-shadow:none;color:#d1e1d4;display:inline-flex;align-items:center;gap:4px;padding:0 2px;margin-left:3px;height:24px;min-width:31px;font-size:12px}
#room .seat-hand:disabled{opacity:1}
#room .seat-hand .card-back{width:13px;height:18px;border-width:1px;border-radius:2px}
#room .seat-hand .back-ornament{font-size:9px}
#room .pile-available{color:var(--gold);font-size:13px}
.call-bubble{position:absolute;top:calc(100% + 4px);left:8px;min-width:48px;max-width:150px;padding:5px 10px;border:1px solid #e5bc7360;border-radius:10px;background:#233f43;color:#fff2d7;font-size:14px;font-weight:700;white-space:nowrap;box-shadow:0 3px 8px #0004;z-index:10}
.call-bubble:before{content:'';position:absolute;top:-5px;left:12px;width:8px;height:8px;background:#233f43;transform:rotate(45deg);border-left:1px solid #e5bc7360;border-top:1px solid #e5bc7360}
.seat-self .call-bubble{top:auto;bottom:calc(100% + 5px);left:auto;right:8px}
.seat-self .call-bubble:before{top:auto;bottom:-5px;transform:rotate(225deg)}
.call-bubble.speaking{background:#efd198;color:#182e32;border-color:#efd198;animation:call-emphasis .3s ease-out}
.call-bubble.speaking:before{background:#efd198}
#room .trick-area{width:100%;height:100%;max-height:180px;min-height:0;gap:8px;margin:0}
#room .trick-play{margin-top:0;--play-offset:0px;--play-angle:0deg}
#room .trick-play:first-child{--play-angle:-4deg}
#room .trick-play:nth-child(2){--play-angle:4deg;--play-offset:0px}
#room .trick-play:nth-child(3){--play-angle:-2deg;--play-offset:0px}
#room .trick-play .playing-card{width:clamp(58px,18vw,94px);height:auto}
#room .trick-play small{top:-16px;font-size:10px;max-width:95px;overflow:hidden;text-overflow:ellipsis}
#room .trick-countdown{left:15%;right:15%;bottom:0}
#room .table-instruction{font-size:13px;line-height:1.3;margin:0}
#room #table-actions{position:absolute;bottom:58px;left:8px;right:8px;gap:5px}
#room #table-actions button{min-height:31px;font-size:12px;padding:6px 9px;margin:0}
#room .hand-zone{width:100%;max-width:none;padding:0;margin:0;min-height:0}
#room .hand-heading{height:22px;padding:0 2px;gap:8px}
#room .hand-heading h3{font-size:11px;letter-spacing:.6px}
#room .hand-heading h3 span{font-size:11px;margin-left:5px}
#room .text-button{font-size:11px;padding:2px}
#room .hand-content{display:flex;align-items:center;min-width:0;gap:8px}
#room .hand{flex:1;min-width:0;height:clamp(104px,19vh,148px);min-height:0;padding:7px 4px;margin:0;align-items:center}
#room .hand .card{transform:none;transition:filter .15s,box-shadow .15s}
#room .hand .card.selected{transform:translateY(-4px);box-shadow:0 0 0 3px #f2ce87;z-index:30}
#room .hand .card.is-unplayable{filter:saturate(.85) brightness(.87)}
#room .hand .card:disabled{opacity:1}
#incoming-zone:empty{display:none}
#incoming-zone{display:flex;gap:6px;flex:none}
.incoming-card{display:flex;align-items:center;justify-content:center;background:transparent;padding:4px;border:2px solid var(--gold);border-radius:10px;box-shadow:0 0 0 3px #e5bc7326,0 0 16px #e5bc7340;animation:receipt-glow 1.6s ease-in-out infinite alternate}
.incoming-card>.playing-card,.incoming-card>.card-back{width:clamp(56px,16vw,88px);height:auto;margin:0}
#room[data-receiving=true] .hand{filter:brightness(.7)}
@keyframes receipt-glow{to{box-shadow:0 0 0 5px #e5bc7340,0 0 22px #e5bc7370}}
#room .action-dock{width:100%;max-width:none;margin:0;padding:0;min-height:0;gap:5px;align-items:stretch}
#room .action-dock>button{min-height:36px;max-width:none;flex:0 1 auto;padding:7px 11px;font-size:12px}
#room .inline-form{min-width:128px;max-width:none;min-height:38px;padding:2px;flex:1}
#room .inline-form input{width:36px;font-size:17px}
#room .amount-step{width:20px;font-size:18px;padding:5px 2px}
#room .inline-form>button[type=submit]{min-height:32px;font-size:12px;padding:6px 8px}
#room[data-phase=distribution] #hand .card,.seat-transfer{touch-action:none;user-select:none;-webkit-user-select:none}
#room .transfer-recipient{outline:1px dashed #e5bc7370;outline-offset:2px}
#room .transfer-recipient .seat-hand{color:var(--gold);cursor:pointer}
#room .transfer-recipient.drop-hover{outline:3px solid var(--gold);background:#4c6050}
#room .seat-transfer{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);display:flex;align-items:center;padding:3px;border:1px solid var(--gold);border-radius:8px;background:#233d3b;box-shadow:0 2px 8px #0005;z-index:12}
#room .seat-transfer:active{transform:translateX(-50%)}
#room .seat-transfer>.playing-card,#room .seat-transfer>.card-back{width:clamp(40px,12vw,60px);height:auto;margin:0}
#room .seat-transfer[data-visibility=open]{box-shadow:0 0 0 2px #e5bc7340}
#room .hand.drop-hover{outline:2px solid var(--gold);outline-offset:-2px;border-radius:8px}
.is-dragging{opacity:.3!important}
.transfer-drag{position:fixed;z-index:1000;pointer-events:none;transform:translate(-50%,-75%);filter:drop-shadow(0 8px 8px #0008)}
.transfer-drag>.playing-card,.transfer-drag>.card-back{width:76px;height:auto;margin:0;transform:rotate(-4deg)}
#room .marriage-toggle[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
#room .deal-summary h2{font-size:24px;margin:5px 0 8px}
#room .result-scores{gap:12px}
#room .result-score strong{font-size:24px;margin:3px 0}
#room .result-score span,#room .result-score small{font-size:11px}
body.in-room #notice{position:fixed;top:8px;left:12px;right:12px;max-width:700px;margin:auto;z-index:30;background:#24383f;font-size:12px}
#resume-table{margin-bottom:14px}
dialog{width:min(92vw,650px);max-height:calc(var(--app-height,100dvh) - 24px);padding:18px;border:1px solid #6f8b83;border-radius:18px;background:#172a35;color:#edf1eb;box-shadow:0 16px 80px #0008}
dialog::backdrop{background:#07121acc;backdrop-filter:blur(3px)}
.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.dialog-heading h2{font-size:22px;margin:0}
.dialog-heading button{padding:8px 12px;font-size:12px}
.inspect-cards{display:flex;justify-content:center;gap:10px}
.inspect-cards>div{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;font-size:12px}
.inspect-cards .playing-card{width:clamp(70px,22vw,140px);height:auto}
#record-dialog pre{font-size:11px;max-height:150px;overflow:auto}
@keyframes call-emphasis{from{transform:scale(.85);opacity:.3}to{transform:scale(1);opacity:1}}
@media(max-height:500px) and (min-aspect-ratio:1/1){
  #room{grid-template-columns:minmax(0,1fr) minmax(220px,.75fr);grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:'heading heading' 'phase phase' 'table hand' 'table actions'}
  #room .room-heading{grid-area:heading}#room .phase-bar{grid-area:phase}#room .table-shell{display:contents}
  #room .table-rail{grid-area:table}#room .hand-zone{grid-area:hand;align-self:end}#room .action-dock{grid-area:actions}
  #room .hand{height:clamp(104px,40vh,150px)}#room .felt{padding-top:60px;padding-bottom:44px}
  #room[data-presentation=auction] .felt{padding-top:78px}#room .stock-row .playing-card{width:64px}
  #room[data-player-count="4"] .felt{padding-top:88px}
  #room .trick-play .playing-card{width:64px}#room .seat{max-width:45%}
}
#room{grid-template-columns:minmax(0,1fr);min-width:0}
#room .table-shell{grid-template-columns:minmax(0,1fr);min-width:0}
#room .table-rail,#room .hand-zone,#room .action-dock,#room .room-heading{min-width:0}
@media(max-height:500px) and (min-aspect-ratio:1/1){#room{grid-template-columns:minmax(0,1fr) minmax(220px,.75fr)}}
#room .hand .card.selected{z-index:var(--card-index,0)}
#room[data-player-count="4"] .seat-dealer{display:none}
#room[data-player-count="4"] .seat-left,#room[data-player-count="4"] .seat-right{top:7px}
#room[data-player-count="4"] .felt{padding-top:66px}
#room[data-player-count="4"][data-presentation=auction] .felt{padding-top:84px}
#room #game-title{max-width:210px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@media(max-height:600px){
  #room .felt,#room[data-player-count="4"] .felt{padding-top:58px;padding-bottom:41px}
  #room[data-presentation=auction] .felt,#room[data-player-count="4"][data-presentation=auction] .felt{padding-top:80px}
  #room .stock-caption{display:none}
  #room .stock-row .playing-card{width:60px}
  #room[data-presentation=auction] .stock-row .playing-card{width:52px}
  #room .seat{padding-top:3px;padding-bottom:3px}
  #room .seat-role{font-size:8px}#room .seat-score{min-height:18px}
  #room .hand{height:100px}
  #room .trick-play .playing-card{width:58px}
}
#room #table-actions{bottom:80px}
#room .seat.has-trick{cursor:pointer}
#room[data-presentation=distribution] .table-center>.table-instruction{display:none}

#room[data-presentation=distribution] .table-hud{visibility:hidden}

#room .trump-marker{display:flex;align-items:center;justify-content:center;flex:none;gap:4px;min-height:35px;padding:0 5px;border:1px solid #e5bc7380;border-radius:10px;background:#132f2dbf;color:#f4d99e;font-size:11px;font-weight:800;letter-spacing:1px}
#room .trump-marker[data-trump=none]{border-color:#ffffff20;color:#adc4bb;font-size:10px;min-height:27px}
.marriage-rings{display:flex}.marriage-rings svg{width:54px;height:35px;filter:drop-shadow(0 1px 2px #0007)}
#room .trump-suit{font:38px/1 Georgia,serif;color:#f7f1df;text-shadow:0 1px 3px #0008}
#room .trump-suit.suit-H,#room .trump-suit.suit-D{color:#ff7c83}
#room .table-hud>.hud-pill{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#room .hand .card.announces-marriage{box-shadow:0 0 0 2px var(--gold),0 0 12px #e5bc7380}
@media(max-height:500px){.marriage-rings svg{width:44px;height:29px}#room .trump-suit{font-size:31px}#room .trump-marker{min-height:30px}}

/* Trick information is anchored to the owning seats, with one central trump. */
#room #thousand-table,#room .table-center{position:static}
#room .table-hud{position:static;min-height:0;height:0;margin:0}
#room .trump-marker{position:absolute;transform:translateX(-50%);z-index:4;pointer-events:none}
.marriage-rings svg{width:62px;height:44px;filter:drop-shadow(0 1px 2px #0008)}
#room .trick-area{position:absolute;inset:0;width:100%;height:100%;max-height:none;display:block;pointer-events:none}
#room .trick-play{position:absolute;margin:0;transform:translate(-50%,-50%) rotate(var(--owner-angle,0deg));z-index:3}
#room .trick-play .playing-card{width:var(--played-card-width,68px);height:auto}
#room .trick-play.is-lead>.playing-card{box-shadow:0 0 0 2px #8ac6dc,0 4px 10px #0005}
#room .trick-play.is-winning>.playing-card{box-shadow:0 0 0 3px var(--gold),0 0 16px #e5bc7360}
#room .card-marriage{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);width:94%;padding:2px;background:#17332fe8;border-radius:9px;filter:drop-shadow(0 2px 3px #0007)}
#room .card-marriage svg{width:100%;height:auto}
#room .seat.is-leader{outline:2px solid #8ac6dc;outline-offset:2px}
#room .seat.is-taking{outline:2px solid var(--gold);outline-offset:2px;animation:winner-glow .75s ease-in-out infinite alternate}
.seat-activity{position:absolute;right:6px;top:-8px;border-radius:5px;padding:2px 5px;background:#244c5a;color:#e3f6ff;border:1px solid #8ac6dc;font-size:8px;font-weight:800;letter-spacing:.4px;white-space:nowrap}
.is-taking .seat-activity{background:#e5bc73;border-color:#f7dca5;color:#18312b}
@keyframes winner-glow{to{box-shadow:0 0 18px #e5bc7380}}
@media(max-height:600px){#room .seat-self{max-width:94%}#room .seat-self .avatar{display:none}#room .seat-self .seat-info{display:flex;align-items:center;gap:5px}#room .seat-self .seat-name{max-width:80px}#room .seat-self .seat-score{margin:0}#room .seat-self .seat-role{display:inline;margin:0}.marriage-rings svg{width:49px;height:35px}#room .trump-marker{min-height:29px}#room .trump-suit{font-size:30px}}

@media(max-height:500px) and (min-aspect-ratio:1/1){#room .seat-left,#room .seat-right{max-width:32%;padding:4px 5px}#room .seat-left .avatar,#room .seat-right .avatar{display:none}#room .seat-info{min-width:0}#room .seat-name{font-size:10px}#room .seat-score{flex-wrap:wrap;row-gap:0}}

/* One viewport formula: fixed heading, hand and action rows; only the felt gets the remainder. */
#room{grid-template-rows:40px 24px minmax(0,1fr)}
#room .phase-bar{height:24px;min-height:24px}#room #phase{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#room .table-shell{--hand-row:clamp(112px,22vh,158px);--action-row:44px;grid-template-rows:minmax(0,1fr) var(--hand-row) var(--action-row)}
#room .hand-zone{height:100%;min-height:0;display:flex;flex-direction:column}
#room .hand-heading{height:22px;min-height:22px;flex:none}
.hand-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:120px;height:22px}
#marriage-options{width:24px;height:20px;display:flex;align-items:center;justify-content:center}
#marriage-options .marriage-rings svg{width:22px;height:16px}
#marriage-choices{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
#room .hand-content{position:relative;flex:1;min-height:0;width:100%}
#room .hand{height:100%;min-height:0;width:100%;padding:4px;gap:0}
.hand-slot{position:relative;flex:none;width:var(--card-width,70px);height:calc(var(--card-width,70px)*1.4);margin-left:calc(-1*var(--overlap,30px));z-index:var(--card-index,0)}
.hand-slot:first-child{margin-left:0}
#room .hand .hand-slot>.card{width:100%;height:100%;margin:0;transform:none}
.card-placeholder{display:block;width:100%;height:100%;border:1px solid #e5bc7330;border-radius:7px;background:linear-gradient(135deg,#ffffff08,#ffffff02);box-shadow:inset 0 0 0 3px #ffffff03;pointer-events:none}
#incoming-zone{position:absolute;inset:4px;display:block;z-index:30;pointer-events:none}
.incoming-card{position:absolute;pointer-events:auto;width:var(--card-width,70px);height:calc(var(--card-width,70px)*1.4);padding:2px}
.incoming-card>.playing-card,.incoming-card>.card-back{width:100%;height:100%}
#room .action-dock{height:44px;min-height:44px;max-height:44px;flex-wrap:nowrap;align-items:stretch;overflow:visible}
#room .action-dock>button{min-height:36px;max-height:40px;font-size:11px;padding:6px 9px;white-space:nowrap}
#room .inline-form{min-width:100px;max-height:40px;flex:1}
#room .amount-step{width:18px}#room .inline-form input{width:34px}
#room .seat{width:44%;max-width:190px;height:64px;padding:4px 6px}
#room .seat-self{width:80%;max-width:280px;height:64px}
#room .seat-info{min-width:0;flex:1}
#room .seat-name{height:18px;display:flex;align-items:center;gap:4px;max-width:none;min-width:0}
.player-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.barrel-marker{display:flex;align-items:center;width:15px;height:18px;flex:none}
.barrel-marker svg{width:15px;height:18px}
#room .seat-score{height:21px;min-height:21px;flex-wrap:nowrap;gap:3px;margin:0;font-size:10px;white-space:nowrap}
#room .seat-score strong{font-size:13px;min-width:23px;font-variant-numeric:tabular-nums}
#room .seat-hand{gap:3px;padding:0;min-width:29px;margin-left:2px}
#room .seat-hand>span:not(.card-back){min-width:13px;font-variant-numeric:tabular-nums}
#room .pile-available{display:none}
#room .seat-role{display:block;height:12px;min-height:12px;margin:0;font-size:9px;white-space:nowrap}
#room .stick-marks{position:absolute;right:3px;bottom:1px;font-size:8px;color:var(--gold)}
#room .trump-marker,#room .trump-marker[data-trump=none]{width:112px;height:46px;min-height:46px}
#lobby-tools{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 18px}
#lobby-tools>button{font-size:12px}
#archive-dialog,#record-dialog{width:min(94vw,780px);overflow:auto}
.archive-game{display:flex;flex-direction:column;align-items:flex-start;text-align:left;width:100%;gap:7px;padding:14px;margin:10px 0;white-space:normal;overflow-wrap:anywhere}
.archive-game span,.archive-game small{color:var(--muted);font-size:12px}
.archive-scores{width:100%;border-collapse:collapse;font-size:13px;margin:12px 0}
.archive-scores td,.archive-scores th{text-align:left;padding:8px;border-bottom:1px solid #ffffff18}
.archive-scores td:last-child,.archive-scores th:last-child{text-align:right}
.game-times{white-space:pre-line;font-size:12px}
.record-actions{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}
#record-content h3{margin-top:18px;font-size:13px}
#record-content details{border-bottom:1px solid #ffffff20;padding:10px 0;font-size:12px}
#record-content summary{cursor:pointer;overflow-wrap:anywhere}
#record-content code,#record-content pre{display:block;font-size:11px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:#c6d5b0}
#log-filter{margin:12px 0}
#room[data-presentation=finished] #seats,#room[data-presentation=finished] .table-hud{visibility:hidden}
#room[data-presentation=finished] .deal-summary{position:absolute;inset:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:12;background:#20473b}
#room .deal-summary h2{font-size:22px;margin:3px 0 6px}
#room .result-scores{gap:5px;flex-wrap:wrap;align-items:center;width:100%}
#room .result-score{min-width:48px;flex:1;max-width:100px}
#room .result-score>span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
#room .result-score strong{font-size:22px;margin:3px 0}
#room .result-score.match-winner{flex:0 0 100%;max-width:none;height:88px}
#room .match-winner>span{font-size:14px;color:#ffe2a1}
#room .laurel-score{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:118px;height:56px;font-size:32px;color:#ffe4a6}
.laurel-wreath{position:absolute;inset:-20px -10px -12px;pointer-events:none}
.laurel-wreath svg{width:100%;height:100%}
@media(max-height:600px){
 #room .table-shell{--hand-row:112px}
 #room .seat-left,#room .seat-right{width:32%;max-width:32%;height:52px;padding:3px 5px}
 #room .seat-left .avatar,#room .seat-right .avatar{display:none}
 #room .seat-self{height:32px;width:94%;max-width:94%}
 #room .seat-self .avatar{display:none}
 #room .seat-self .seat-info{display:flex;align-items:center;gap:5px}
 #room .seat-self .seat-name{width:85px;max-width:85px;flex:none}
 #room .seat-self .seat-role{display:inline;height:12px}
 #room .seat-name{font-size:10px;height:15px}
 #room .seat-score{height:19px;min-height:19px;font-size:9px}
 #room .seat-score strong{font-size:11px;min-width:18px}
 #room .seat-role{font-size:8px;height:10px;min-height:10px}
 #room .trump-marker,#room .trump-marker[data-trump=none]{width:92px;height:37px;min-height:37px}
 #room .deal-summary h2{font-size:18px}
}
@media(max-height:500px) and (min-aspect-ratio:1/1){
 #room{grid-template-rows:40px 24px minmax(0,1fr) 44px}
 #room .hand-zone{align-self:stretch;min-height:0}
}

#incoming-zone{inset:0}
#room .seat-score>.score-kind{width:20px;flex:none;white-space:normal;font-size:8px;line-height:8px}
#lobby-tools>button{min-height:54px;font-size:14px;flex:1 1 180px;padding:14px}
#lobby-tools>#open-archive{flex:0 1 auto}
.seat-setting{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#a4b7bb}
.seat-choices{display:flex;gap:6px}
.seat-choices>button{flex:1;min-height:46px;padding:8px;font-size:14px;background:#0e202b;color:#dce4dd;border:1px solid #ffffff26;box-shadow:none}
.seat-choices>button[aria-pressed=true]{background:#e5bc73;color:#20302d;border-color:#e5bc73}
@media(max-width:649px){#lobby-tools{display:grid;grid-template-columns:1fr 1fr}#lobby-tools>button{min-width:0;font-size:13px}#lobby-tools>#open-archive{grid-column:1/-1}}
.header-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
#language{width:auto;max-width:105px;height:26px;margin:0;padding:1px 5px;font-size:11px;flex:none}
#identity{flex:0 1 auto}
#room .hand .card.is-unplayable{filter:grayscale(.9) brightness(.45);box-shadow:none}
#room .hand .card.is-playable{filter:brightness(1.06);box-shadow:0 0 0 2px #f4d99c,0 0 9px #e5bc7350}
#room .hand .card.announces-marriage{box-shadow:0 0 0 3px #ffdb83,0 0 14px #e5bc7390}
@media(max-height:600px){#room .seat-left,#room .seat-right{width:30%;max-width:30%}#room .seat-score{gap:2px}#room .seat-score strong{min-width:17px}#room .seat-hand{min-width:28px;margin-left:0;gap:2px}}

#room .seat-score>.score-kind{width:24px;overflow-wrap:anywhere;font-size:7.5px;line-height:7.5px}

.hand-slot{pointer-events:none}#room .hand .hand-slot>.card{pointer-events:auto}
#room .action-dock{display:flex}
#room[data-presentation=finished] .deal-summary{width:auto;height:auto;border-radius:30px}
#room[data-presentation=finished] .result-score>small{display:none}
@media(max-width:600px){.intro-deck{display:none}}
