@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@600;800&family=Inter:wght@400;500;600&display=swap";.ko-settlement-notice{z-index:2000;color:#fff5d6;text-align:center;background:#103e32;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex;position:fixed;inset:0}.ko-settlement-notice h2{margin:0;font-size:clamp(22px,4vw,36px)}.ko-settlement-notice small{color:#e0c68e;font-size:16px}.autoplay-notice{z-index:35;color:#fff2c5;text-align:center;pointer-events:none;background:#173c31f5;border:1px solid #e8be62;border-radius:12px;padding:14px 24px;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 20px #0005}.autoplay-notice b,.autoplay-notice span{display:block}.autoplay-notice span{margin-top:5px;font-size:13px}.autoplay-shield{z-index:1900;cursor:pointer;border-radius:0;width:100%;height:100%;position:fixed;inset:0;box-shadow:none!important;background:0 0!important;border:0!important}.table-history-button{z-index:22;color:#fff2c5;background:#173c31;border:1px solid #ba985d;padding:7px 10px;font-size:13px;position:absolute;top:12px;right:12px}.compact-table .table-history-button{padding:5px 8px;font-size:12px;top:8px;right:52px}.table-history-overlay{z-index:1500;background:#0009;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.table-history-dialog{color:#183b30;box-sizing:border-box;background:#faf7ef;border-radius:14px;width:min(560px,100%);max-height:90dvh;padding:18px;overflow:auto}.table-history-heading{z-index:1;background:#faf7ef;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex;position:sticky;top:-18px}.table-history-heading h2{margin:0;font-size:19px}.table-history-dialog article{border-top:1px solid #d6d4c5;padding:8px 0}.table-history-dialog h3{margin:6px 0;font-size:15px}.table-history-row{grid-template-columns:56px minmax(0,1fr) 52px 56px;align-items:center;gap:10px;padding:8px 0;display:grid}.table-history-row h3,.history-outcome,.history-score{white-space:nowrap}.history-landlord{gap:3px;min-width:0;display:grid}.history-landlord small{color:#64736b;font-size:12px}.table-history-row b{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.table-history-row strong{text-align:right;font-variant-numeric:tabular-nums}.table-history-row .team-color-A,.history-score.team-A{color:#b84d0a}.table-history-row .team-color-B,.history-score.team-B{color:#6239a8}.history-outcome{font-size:14px}.history-score{font-size:19px}@media (width<=560px){.table-history-row{grid-template-columns:44px minmax(0,1fr) 42px 44px;gap:7px;font-size:13px}.table-history-row h3,.history-outcome{font-size:13px}.history-score{font-size:17px}.table-history-heading{top:-12px}}.score-positive{color:#b84d0a}.score-negative{color:#6239a8}.score-neutral{color:#64736b}.turn-timer .time-bank.empty{border:0;padding:0}.compact-table .turn-timer>.network-buffer{white-space:nowrap;color:#fff2c5;background:#173c31;border-radius:4px;padding:1px 4px;font-size:10px;display:block;position:absolute;bottom:-17px;left:50%;transform:translate(-50%)}.team-seat-column.team-A h4,.locked-seat.seat-team-A i{color:#b84d0a}.team-seat-column.team-B h4,.locked-seat.seat-team-B i{color:#633caa}.locked-seat.seat-team-A{background:#fff0df;border-left:4px solid #ee8b40}.locked-seat.seat-team-B{background:#f0e9fb;border-left:4px solid #9675d7}.seat-team-A .seat-info,.self-seat.seat-team-A{--seat-team-color:#ffac63}.seat-team-B .seat-info,.self-seat.seat-team-B{--seat-team-color:#ccb3ff}.opponent.seat-team-A .seat-info,.opponent.seat-team-B .seat-info{border-color:var(--seat-team-color);border-left:3px solid var(--seat-team-color);border-radius:8px}.opponent.seat-team-A .seat-label,.opponent.seat-team-B .seat-label,.self-seat.seat-team-A .seat-label,.self-seat.seat-team-B .seat-label{color:var(--seat-team-color)}.self-seat.seat-team-A>.avatar,.self-seat.seat-team-B>.avatar{border:2px solid var(--seat-team-color)}.opponent.seat-team-A .seat-info>b,.opponent.seat-team-B .seat-info>b,.self-seat.seat-team-A>b,.self-seat.seat-team-B>b{color:var(--seat-team-color)}.review-page .review-player-summary-grid header{box-sizing:border-box;color:#243e34;background:0 0;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;width:auto;min-width:0;position:static;inset:auto}.review-page .review-player-direction{color:#52635b;padding-left:0}.review-page .review-player-summary-grid header>strong{color:#52635b;padding-right:0}.review-page .review-player-summary-grid header em{font-size:1.15rem}.review-page .review-player-summary-grid>article{min-width:0}@media (width<=560px){.review-page .review-player-summary-grid header{grid-template-columns:32px minmax(0,1fr)}.review-page .review-player-summary-grid header>strong{text-align:right;grid-column:1/-1}.table-history-dialog{padding:12px}.table-history-heading h2{font-size:16px}}.time-exhaustion-indicator{z-index:12;color:#fff1db;white-space:nowrap;pointer-events:auto;background:#713e29;border:1px solid #ffc59a;border-radius:9px;flex:none;align-items:center;gap:5px;padding:6px 8px;font-size:12px;display:inline-flex;position:relative}.time-exhaustion-indicator>b{color:inherit;font-size:12px}.seat-side-tools{flex-direction:column;flex:none;align-items:center;gap:4px;display:flex}.seat-info .seat-side-tools .seat-history-toggle{transform:none}.compact-table .time-exhaustion-indicator{gap:3px;padding:4px 6px}.compact-table .time-exhaustion-indicator>b{font-size:10px}.compact-table .time-exhaustion-indicator>svg{width:16px;height:16px}.time-exhaustion-description{display:none}.time-exhaustion-indicator:hover .time-exhaustion-description,.time-exhaustion-indicator:focus .time-exhaustion-description{white-space:normal;background:#713e29;border-radius:6px;width:min(240px,65vw);padding:8px;display:block;position:absolute;top:100%;left:0}.opponent.right .time-exhaustion-description,.self-seat .time-exhaustion-description{left:auto;right:0}.spectator-page{color:#f8f5ff;background:#514270;min-height:100vh;overflow:hidden}.spectator-nav{z-index:20;background:#44345ff2;border-bottom:1px solid #ffffff18;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr);align-items:center;min-height:54px;padding:0 22px;display:grid;position:relative}.spectator-nav>button,.spectator-nav span button{color:#ede8fa;background:0 0;border:0}.spectator-nav>button{justify-self:start}.spectator-nav>div{align-items:center;gap:12px;font-weight:800;display:flex}.spectator-nav>div>span{background:#ffffff12;border-radius:8px;gap:4px;padding:3px;display:inline-flex}.spectator-nav span button{border-radius:6px;padding:5px 9px;font-size:.7rem}.spectator-nav span button.active{color:#fff;background:linear-gradient(135deg,#f47b20,#7c4dff)}.spectator-nav code{color:#aaa1bc;justify-self:end}.spectator-arena{--orange:#ff8a2a;--orange-soft:#ff8a2a2c;--purple:#9b6cff;--purple-soft:#9b6cff2c;height:calc(var(--table-viewport-height,100dvh) - 82px);background:radial-gradient(circle at 18% 82%,var(--orange-soft),transparent 34%), radial-gradient(circle at 82% 18%,var(--purple-soft),transparent 34%), linear-gradient(118deg,#75608b 0%,#61567f 48%,#735a92 100%);min-height:580px;position:relative;overflow:hidden;box-shadow:inset 0 0 100px #38254c66}.spectator-arena:before{content:"";background:radial-gradient(#a08cbe55,#67528120 68%);border:1px solid #ffffff12;border-radius:48%;position:absolute;inset:15% 12% 13%;box-shadow:inset 0 0 70px #46345955,0 24px 70px #30203d55}.spectator-scoreboard{z-index:5;grid-template-columns:minmax(0,1fr) clamp(310px,36vw,500px) minmax(0,1fr);align-items:stretch;gap:3ch;width:min(96vw,1100px);display:grid;position:absolute;top:18px;left:50%;transform:translate(-50%)}.spectator-top-left,.spectator-match-score,.spectator-top-right{min-height:72px}.spectator-top-left{font-variant-numeric:tabular-nums;background:#080713a8;border:1px solid #ffffff17;border-radius:11px;grid-template-columns:auto auto;justify-self:end;gap:3px 12px;padding:10px 14px;display:grid}.spectator-top-left>span{color:#aaa4b8;writing-mode:vertical-rl;letter-spacing:.12em;grid-row:1/3;align-self:center;font-size:.68rem}.spectator-top-left b{font-size:.82rem}.spectator-top-left .team-A,.spectator-match-score .team-A{color:var(--orange)}.spectator-top-left .team-B,.spectator-match-score .team-B{color:var(--purple)}.spectator-match-score{white-space:nowrap;background:#080713bd;border:1px solid #ffffff18;border-radius:999px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:13px;padding:10px 18px;font-size:.86rem;display:grid;box-shadow:0 8px 30px #0005}.spectator-match-score>span:first-child{text-align:right;text-overflow:ellipsis;overflow:hidden}.spectator-match-score>span:last-child{text-align:left;text-overflow:ellipsis;overflow:hidden}.spectator-match-score b{margin-left:5px;font-size:1.25rem}.spectator-match-score em{color:#766f88;font-style:normal}.spectator-top-right{justify-self:start;align-items:stretch;gap:9px;display:flex}.spectator-bottom,.spectator-bid-value{background:#080713b8;border:1px solid #ffffff17;border-radius:11px;align-content:center;padding:8px 11px;display:grid}.spectator-top-right>*{min-height:72px}.spectator-bottom>span,.spectator-bid-value>span{color:#aaa4b8;letter-spacing:.12em;font-size:.62rem}.spectator-bottom>div{gap:4px;margin-top:4px;display:flex}.spectator-bottom .spectator-card{width:34px;height:47px}.spectator-bid-value strong{color:#f7ecce;align-items:baseline;gap:5px;display:flex}.spectator-bid-value strong em{color:#ffc65c;font-size:1.1rem;font-style:normal}.spectator-bid-value small{color:#aaa4b8;min-height:1em;font-size:.58rem}.spectator-seat{z-index:4;justify-items:center;width:min(42vw,610px);display:grid;position:absolute}.spectator-seat.upper-left{justify-items:start;top:108px;left:20px}.spectator-seat.upper-right{justify-items:end;top:108px;right:20px}.spectator-seat.landlord{width:min(92vw,660px);bottom:12px;left:50%;transform:translate(-50%)}.spectator-identity{--spectator-identity-gap:9px;align-items:center;gap:var(--spectator-identity-gap);color:inherit;display:flex}.spectator-seat.team-A{color:var(--orange)}.spectator-seat.team-B{color:var(--purple)}.spectator-seat.neutral{color:#d9d5e2}.spectator-player-info{--spectator-name-size:1.14rem;background:#090812e8;border:1px solid;border-radius:12px;grid-template-columns:54px minmax(0,1fr) 76px;align-items:stretch;width:378px;height:56px;display:grid;overflow:hidden;box-shadow:0 7px 24px #0007}.spectator-seat.landlord .spectator-player-info{width:570px}.spectator-player-info>*{border-right:1px solid color-mix(in srgb,currentColor 42%,transparent);place-items:center;min-width:0;padding:0 9px;display:grid}.spectator-player-info>:last-child{border-right:0}.spectator-player-info>b{color:currentColor;font-size:var(--spectator-name-size);text-align:center;text-overflow:ellipsis;white-space:nowrap;line-height:1;overflow:hidden}.spectator-player-info>span{color:currentColor;font-size:var(--spectator-name-size);white-space:nowrap;font-weight:900}.spectator-quartz-clock{width:56px;height:56px;box-shadow:0 0 20px color-mix(in srgb,currentColor 38%,transparent),inset 0 0 0 3px #ffffff12;color:currentColor;font-variant-numeric:tabular-nums;background:radial-gradient(circle,#171624 0 57%,#090812 59% 100%);border:2px solid;border-radius:50%;flex:0 0 56px;place-items:center;display:grid;position:relative}.spectator-quartz-clock:before{content:"";background:repeating-conic-gradient(from -1deg,#ffffffb8 0 1deg,transparent 1deg 30deg);opacity:.45;border-radius:50%;position:absolute;inset:5px}.spectator-quartz-clock i{transform-origin:50% 17px;background:currentColor;width:2px;height:17px;position:absolute;top:10px;left:50%;transform:translate(-50%)rotate(32deg)}.spectator-quartz-clock b{z-index:1;color:#fff;background:#090812e8;border-radius:5px;padding:3px;font-size:.92rem;position:relative}.spectator-quartz-clock.urgent{color:#ffd44d;animation:.65s ease-in-out infinite alternate spectator-clock-pulse}@keyframes spectator-clock-pulse{to{transform:scale(1.07);box-shadow:0 0 30px}}.spectator-seat.landlord .spectator-identity{position:relative}.spectator-seat.landlord .spectator-quartz-clock{left:calc(100% + var(--spectator-identity-gap));margin-block:auto;position:absolute;top:0;bottom:0}.spectator-seat.active .spectator-player-info{box-shadow:0 0 0 3px #ffffff10,0 0 25px}.spectator-hand{grid-template-columns:repeat(10,36px);justify-content:center;min-height:78px;margin-top:8px;display:grid}.spectator-seat.upper-left .spectator-hand{justify-content:start}.spectator-seat.upper-right .spectator-hand{justify-content:end}.spectator-seat.landlord .spectator-hand{grid-template-columns:repeat(20,30px);margin:8px 0 0}.spectator-card{color:#1c2330;background:#fffdf6;border:1px solid #dad5cc;border-radius:6px;flex-direction:column;width:54px;height:76px;padding:4px 5px;font-style:normal;display:flex;position:relative;overflow:hidden;box-shadow:0 3px 8px #0008}.spectator-card.red{color:#bd3131}.spectator-card b{font-size:.82rem;line-height:1}.spectator-card i{font-size:.9rem;font-style:normal}.spectator-card.joker b{writing-mode:vertical-rl;letter-spacing:.08em;font-size:.68rem;line-height:1;position:absolute;top:4px;left:5px}.spectator-card.dimmed{opacity:.35;filter:grayscale(.8)}.spectator-card.card-back{color:#f5ddad;background:repeating-linear-gradient(45deg,#30215b 0 4px,#563a91 4px 8px);border-color:#e4d9ff;place-items:center;display:grid}.spectator-play{z-index:8;position:absolute}.spectator-play>div{display:flex}.spectator-play .spectator-card{width:45px;height:63px;margin-left:-13px}.spectator-play .spectator-card:first-child{margin-left:0}.spectator-play>b{color:#bcb5c8;background:#0a0815c9;border-radius:999px;padding:7px 13px;display:block}.spectator-play.upper-left{top:162px;left:min(38vw,520px)}.spectator-play.upper-right{top:162px;right:min(38vw,520px)}.spectator-play.landlord{bottom:205px;left:50%;transform:translate(-50%)}.spectator-call>b{color:currentColor;white-space:nowrap;background:#f9f5ff;border:2px solid;font-size:1rem;box-shadow:0 3px 12px #4e396b30}.spectator-call.team-A{color:#98410c}.spectator-call.team-A>b{background:#fff1df}.spectator-call.team-B{color:#63329a}.spectator-call.zero,.spectator-call.neutral{color:#514362}.spectator-call.three{color:#854008}.spectator-call.three>b{background:#fff0b7}.spectator-match-result-overlay{z-index:45;background:#0705109c;place-items:center;padding:24px;display:grid;position:fixed;inset:54px 0 0}.spectator-match-result{--winner-color:#eeeaf4;border:2px solid var(--winner-color);color:#fff;text-align:center;width:min(570px,92vw);box-shadow:0 24px 90px #000b,0 0 34px color-mix(in srgb,var(--winner-color) 35%,transparent);background:linear-gradient(145deg,#151223f2,#090711f5);border-radius:18px;padding:34px}.spectator-match-result.team-A{--winner-color:var(--orange)}.spectator-match-result.team-B{--winner-color:var(--purple)}.spectator-match-result>p:first-child{color:var(--winner-color);letter-spacing:.22em;margin:0;font-size:.72rem;font-weight:900}.spectator-match-result h2{color:var(--winner-color);margin:8px 0 22px;font-family:Noto Serif SC,serif;font-size:2.2rem}.spectator-match-result>div{grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;display:grid}.spectator-match-result>div span:first-child{color:var(--orange);text-align:right}.spectator-match-result>div span:last-child{color:var(--purple);text-align:left}.spectator-match-result>div strong{font-size:2.3rem}.spectator-match-result>div em{color:#eeeaf4;font-style:normal}.spectator-match-result>p:not(:first-child){color:#ded8e7}.spectator-match-result button{border:1px solid var(--winner-color);background:var(--winner-color);color:#130f1b;border-radius:8px;margin-top:10px;padding:10px 22px;font-weight:900}.spectator-center-message{z-index:3;color:#c5bfd0;background:#09071399;border-radius:999px;padding:8px 16px;font-size:.76rem;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)}.spectator-result-popup{z-index:80;color:#514065;background:#f6effbfa;border:1px solid #ffffff30;border-radius:18px;min-width:min(520px,90vw);padding:18px;display:grid;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 15px 45px #44305b40}.spectator-result-popup.paired{grid-template-columns:minmax(300px,1fr) minmax(160px,.55fr);align-items:stretch;gap:12px}.spectator-result-popup>div:first-child>small,.spectator-other-toast>small{color:#625271;letter-spacing:.12em;margin-bottom:7px;display:block}.spectator-result-line{background:#ffffff08;border:1px solid;border-radius:10px;justify-content:space-between;align-items:center;gap:18px;min-height:52px;margin-top:7px;padding:10px 13px;display:flex}.spectator-result-line span{color:#514065;font-size:.75rem}.spectator-result-line b{color:currentColor}.spectator-result-line.team-A,.spectator-net.team-A{color:#98410c;background:#fff1df}.spectator-result-line.team-B,.spectator-net.team-B{color:#63329a;background:#eee3fa}.spectator-result-line.void,.spectator-net.void,.spectator-result-line.neutral{color:#625271;background:#eeeaf3}.spectator-net{text-align:center;background:#ffffff0b;border-radius:12px;align-content:center;justify-items:center;padding:18px;display:grid}.spectator-net span{color:#625271;font-size:.7rem}.spectator-net b{color:currentColor;margin-top:5px;font-size:1.3rem}.spectator-other-toast{z-index:70;color:#514065;background:#f6effbfa;border:1px solid #ffffff25;border-radius:14px;width:min(390px,100vw - 40px);padding:13px;position:fixed;bottom:20px;right:20px;box-shadow:0 10px 30px #44305b40}.spectator-other-toast.paired{grid-template-columns:minmax(250px,1fr) 145px;gap:9px;width:min(560px,100vw - 40px);display:grid}.spectator-other-toast .spectator-net{min-height:100%}.spectator-delayed{text-align:center;color:#c4bdcf;place-content:center;justify-items:center;min-height:calc(100vh - 108px);display:grid}.spectator-delayed h2{color:#f2edf7;margin:14px 0 4px}.spectator-page .site-footer.compact{z-index:75;color:#c4bdcf;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0c0a17df;border:1px solid #ffffff2b;border-radius:8px;min-height:0;padding:6px 9px;position:fixed;bottom:9px;left:12px;box-shadow:0 8px 24px #0008}@media (width<=900px){.spectator-nav{grid-template-columns:auto 1fr;gap:10px;padding:0 10px}.spectator-nav>div{justify-self:end;font-size:.72rem}.spectator-nav code{display:none}.spectator-scoreboard{grid-template-columns:minmax(0,1fr) minmax(230px,1.2fr) minmax(0,1fr);gap:8px;width:calc(100% - 20px);top:12px}.spectator-top-left,.spectator-match-score,.spectator-top-right,.spectator-top-right>*{min-height:68px}.spectator-match-score{gap:6px;padding-inline:10px}.spectator-seat.upper-left,.spectator-seat.upper-right{width:47vw;top:135px}.spectator-seat.upper-left{left:7px}.spectator-seat.upper-right{right:7px}.spectator-player-info{grid-template-columns:40px minmax(0,1fr) 64px;width:min(378px,47vw - 65px)}.spectator-seat.landlord .spectator-player-info{width:min(570px,92vw - 65px)}.spectator-player-info{--spectator-name-size:.95rem}.spectator-quartz-clock{flex-basis:50px;width:50px;height:50px}.spectator-hand{grid-template-columns:repeat(9,25px)}.spectator-seat.landlord .spectator-hand{grid-template-columns:repeat(20,22px)}.spectator-card{width:40px;height:59px;padding:3px}.spectator-play.upper-left{left:34vw}.spectator-play.upper-right{right:34vw}.spectator-result-popup.paired,.spectator-other-toast.paired{grid-template-columns:1fr}}@media (height<=700px){.spectator-arena{min-height:500px}.spectator-seat.upper-left,.spectator-seat.upper-right{top:94px}.spectator-card{width:44px;height:61px}.spectator-hand{grid-template-columns:repeat(10,29px);min-height:63px}.spectator-seat.landlord .spectator-hand{grid-template-columns:repeat(20,27px)}.spectator-play.landlord{bottom:165px}}@media (pointer:coarse) and (width<=1100px){.spectator-page .site-footer.compact,.spectator-page .internal-use-banner{display:none}.spectator-nav{height:38px;min-height:38px;padding:0 7px;font-size:.62rem}.spectator-nav>button{font-size:.62rem}.spectator-nav>div{gap:5px;font-size:.62rem}.spectator-nav>div>span{gap:2px}.spectator-nav span button{padding:3px 5px;font-size:.56rem}.spectator-arena{height:calc(100dvh - 38px);min-height:0}.spectator-scoreboard{grid-template-columns:minmax(0,1fr) minmax(150px,1.15fr) minmax(0,1fr);gap:4px;width:calc(100% - 12px);top:6px}.spectator-top-left,.spectator-match-score,.spectator-top-right,.spectator-top-right>*{min-height:44px}.spectator-top-left{border-radius:7px;gap:2px 5px;padding:5px 6px}.spectator-top-left>span{font-size:.48rem}.spectator-top-left b{font-size:.58rem}.spectator-match-score{border-radius:999px;gap:4px;padding:5px 6px;font-size:.58rem}.spectator-match-score b{margin-left:2px;font-size:.85rem}.spectator-top-right{gap:4px}.spectator-bottom,.spectator-bid-value{border-radius:7px;padding:4px 5px}.spectator-bottom>span,.spectator-bid-value>span{font-size:.46rem}.spectator-bottom>div{gap:2px;margin-top:2px}.spectator-bottom .spectator-card{width:21px;height:29px}.spectator-bid-value strong{font-size:.64rem}.spectator-bid-value strong em{font-size:.72rem}.spectator-bid-value small{font-size:.44rem}.spectator-seat.upper-left,.spectator-seat.upper-right{width:46vw;top:82px}.spectator-seat.upper-left{left:5px}.spectator-seat.upper-right{right:5px}.spectator-seat.landlord{width:min(96vw,660px);bottom:4px}.spectator-identity{--spectator-identity-gap:4px}.spectator-player-info,.spectator-seat.landlord .spectator-player-info{border-radius:7px;grid-template-columns:26px minmax(0,1fr) 38px;width:min(230px,46vw - 30px);height:34px}.spectator-seat.landlord .spectator-player-info{width:min(340px,96vw - 38px)}.spectator-player-info>*{padding:0 3px}.spectator-player-info{--spectator-name-size:.62rem}.spectator-quartz-clock{border-width:1px;flex-basis:31px;width:31px;height:31px;box-shadow:inset 0 0 0 2px #ffffff12}.spectator-quartz-clock:before{inset:3px}.spectator-quartz-clock i{transform-origin:50% 9px;height:9px;top:6px}.spectator-quartz-clock b{padding:1px;font-size:.58rem}.spectator-hand{grid-template-columns:repeat(9,18px);min-height:44px;margin-top:3px}.spectator-seat.upper-left .spectator-hand,.spectator-seat.upper-right .spectator-hand{grid-template-columns:repeat(9,minmax(0,1fr));width:46vw}.spectator-seat.landlord .spectator-hand{grid-template-columns:repeat(20,minmax(0,1fr));width:88vw;margin-top:3px}.spectator-card{border-radius:4px;width:28px;height:41px;padding:2px}.spectator-hand .spectator-card{width:100%;max-width:28px}.spectator-card b{font-size:.52rem}.spectator-card i{font-size:.58rem}.spectator-play .spectator-card{width:26px;height:37px;margin-left:-8px}.spectator-play.upper-left{top:126px;left:29vw}.spectator-play.upper-right{top:126px;right:29vw}.spectator-play.landlord{bottom:125px}.spectator-play>b{padding:4px 7px;font-size:.62rem}.spectator-center-message{padding:4px 8px;font-size:.56rem;top:53%}.spectator-result-popup{border-radius:10px;min-width:min(340px,100vw - 20px);max-width:calc(100vw - 20px);padding:9px}.spectator-result-popup.paired{gap:6px}.spectator-result-line{border-radius:6px;min-height:31px;margin-top:4px;padding:5px 7px}.spectator-result-line span{font-size:.54rem}.spectator-result-line b{font-size:.58rem}.spectator-net{border-radius:7px;padding:8px}.spectator-net span{font-size:.5rem}.spectator-net b{font-size:.78rem}.spectator-other-toast{border-radius:8px;width:min(280px,100vw - 16px);padding:7px;bottom:8px;right:8px}.spectator-other-toast.paired{gap:5px;width:min(320px,100vw - 16px)}.spectator-page .spectator-seat.landlord .spectator-hand{grid-template-columns:repeat(20,minmax(0,1fr));width:92vw}.spectator-page .spectator-seat.upper-left .spectator-hand,.spectator-page .spectator-seat.upper-right .spectator-hand{grid-template-columns:repeat(9,minmax(0,1fr));grid-auto-rows:38px;width:42vw;min-height:76px}.spectator-page .spectator-hand .spectator-card.playing-card{width:100%;max-width:28px}.spectator-page .spectator-play .spectator-card.playing-card{--card-width:26px;--card-height:37px;--card-rank-size:.58rem;--card-suit-size:.56rem;--card-pad-x:2px;--card-pad-y:2px}.spectator-page .spectator-bottom .spectator-card.playing-card{--card-width:21px;--card-height:29px;--card-rank-size:.55rem;--card-suit-size:.5rem;--card-pad-x:2px;--card-pad-y:2px}}.spectator-page .spectator-seat.upper-left .spectator-hand,.spectator-page .spectator-seat.upper-right .spectator-hand{--fan-step:40px;--fan-card-width:76.56px;--fan-row-step:64px;--fan-card-height:88.56px;width:min(100%,calc((var(--fan-columns) - 1) * var(--fan-step) + var(--fan-card-width)));grid-template-columns:var(--fan-tracks);grid-template-rows:var(--fan-row-step) var(--fan-card-height);min-height:0}.spectator-seat.upper-left .spectator-hand.fan-single-row,.spectator-seat.upper-right .spectator-hand.fan-single-row{grid-template-rows:var(--fan-card-height)}.spectator-seat.upper-left .spectator-hand.fan-empty,.spectator-seat.upper-right .spectator-hand.fan-empty{display:none}.spectator-seat.upper-right .spectator-hand>:nth-child(10){grid-column-start:var(--fan-tail-start)}@media (width<=900px){.spectator-page .spectator-seat.upper-left .spectator-hand,.spectator-page .spectator-seat.upper-right .spectator-hand{--fan-step:32px;--fan-card-width:60.72px;--fan-row-step:50px;--fan-card-height:71.28px}}@media (height<=700px){.spectator-page .spectator-seat.upper-left .spectator-hand,.spectator-page .spectator-seat.upper-right .spectator-hand{--fan-step:30px;--fan-card-width:58.08px;--fan-row-step:48px;--fan-card-height:66.96px}}@media (pointer:coarse) and (width<=1100px){.spectator-page .spectator-seat.upper-left .spectator-hand,.spectator-page .spectator-seat.upper-right .spectator-hand{--fan-step:clamp(12px, calc((42vw - 28px) / 8), 16px);--fan-card-width:28px;width:calc((var(--fan-columns) - 1) * var(--fan-step) + 28px);grid-template-columns:var(--fan-tracks);grid-template-rows:38px 41px;grid-auto-flow:row;justify-content:start;min-height:0;margin-top:3px;position:absolute;top:100%}.spectator-page .spectator-seat.upper-left .spectator-hand{left:0}.spectator-page .spectator-seat.upper-right .spectator-hand{justify-content:end;right:0}.spectator-seat.upper-left .spectator-hand.fan-empty,.spectator-seat.upper-right .spectator-hand.fan-empty{display:none}.spectator-seat.upper-left .spectator-hand.fan-single-row,.spectator-seat.upper-right .spectator-hand.fan-single-row{grid-template-rows:41px}.spectator-seat.upper-right .spectator-hand>:nth-child(10){grid-column-start:var(--fan-tail-start)}.spectator-seat.upper-left .spectator-hand .spectator-card.playing-card,.spectator-seat.upper-right .spectator-hand .spectator-card.playing-card{justify-self:start;width:28px;min-width:0;max-width:28px;margin-left:0}}.spectator-page .spectator-seat.landlord .spectator-hand{--landlord-card-width:76.56px;--landlord-step:40px;width:min(100%,calc((var(--landlord-count) - 1) * var(--landlord-step) + var(--landlord-card-width)));grid-template-columns:var(--landlord-tracks);justify-content:center;justify-self:center}.spectator-page .spectator-seat.landlord .spectator-hand .spectator-card.playing-card{width:var(--landlord-card-width)}@media (width<=900px){.spectator-page .spectator-seat.landlord .spectator-hand{--landlord-card-width:60.72px;--landlord-step:32px}}@media (height<=700px){.spectator-page .spectator-seat.landlord .spectator-hand{--landlord-card-width:58.08px;--landlord-step:30px}}@media (pointer:coarse) and (width<=1100px){.spectator-page .spectator-seat.landlord .spectator-hand{--landlord-card-width:28px;--landlord-step:16px;min-height:41px}.spectator-page .spectator-seat.landlord .spectator-hand .spectator-card.playing-card{width:28px;max-width:28px;margin-left:0}.spectator-seat{--mobile-fan-width:calc((var(--fan-columns) - 1) * clamp(12px, calc((42vw - 28px) / 8), 16px) + 28px)}.spectator-player-info{width:min(190px,46vw - 34px);height:30px}.spectator-seat.landlord .spectator-player-info{width:min(280px,86vw - 38px);height:30px}.spectator-play{width:max-content}.spectator-play.upper-left{top:36px;left:calc(var(--mobile-fan-width) + 12px)}.spectator-play.upper-right{top:36px;right:calc(var(--mobile-fan-width) + 12px)}.spectator-play.upper-left,.spectator-play.upper-right{max-width:calc(50vw - var(--mobile-fan-width) - 24px)}.spectator-play>div{flex-wrap:wrap;row-gap:3px;padding-left:8px}.spectator-play.upper-right>div{justify-content:flex-end}.spectator-play.landlord{max-width:70vw;bottom:calc(100% + 6px)}.spectator-result-popup,.spectator-result-popup.paired,.spectator-other-toast,.spectator-other-toast.paired{color:#514065;background:#f6effbf5;border-radius:8px;grid-template-columns:minmax(0,1fr);gap:4px;width:min(260px,46vw);min-width:0;max-width:calc(100vw - 12px);padding:6px;display:grid;position:fixed;inset:auto 6px 6px auto;transform:none;box-shadow:0 3px 14px #44305b33}.spectator-result-popup small,.spectator-other-toast small{font-size:10px}.spectator-result-popup .spectator-result-line span,.spectator-other-toast .spectator-result-line span,.spectator-result-popup .spectator-net span,.spectator-other-toast .spectator-net span,.spectator-result-popup>div:first-child>small{color:#625271}.spectator-result-popup .team-A,.spectator-other-toast .team-A{color:#af5317}.spectator-result-popup .team-B,.spectator-other-toast .team-B{color:#7342b7}.spectator-result-popup .void,.spectator-other-toast .void{color:#625271}.spectator-result-line{gap:5px;min-height:24px;margin-top:3px;padding:3px 5px}.spectator-result-line span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:10px;overflow:hidden}.spectator-result-line b{flex-shrink:0;font-size:11px}.spectator-result-popup .spectator-net,.spectator-other-toast .spectator-net{justify-content:space-between;align-items:center;gap:6px;min-height:0;padding:4px 5px;display:flex}.spectator-net span{font-size:10px}.spectator-net b{font-size:12px}}@media (pointer:coarse) and (width<=700px) and (height<=400px){.spectator-seat.upper-left,.spectator-seat.upper-right{top:62px}.spectator-play.upper-left,.spectator-play.upper-right{top:32px}.spectator-play>div{row-gap:2px;padding-left:0}.spectator-page .spectator-play .spectator-card.playing-card{--card-width:20px;--card-height:26px;--card-suit-gap:0px;width:20px;height:26px;margin-left:-6px}.spectator-page .spectator-play .spectator-card.playing-card:first-child{margin-left:0}.spectator-play.landlord{bottom:100%}}.observer-review-overlay{z-index:1600;background:#2420398c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.observer-review{color:#33294b;background:#f8f6fc;border:1px solid #b6a7cd;border-radius:20px;flex-direction:column;width:min(920px,100%);min-height:0;max-height:94dvh;padding:20px;display:flex;box-shadow:0 16px 60px #20173355}.observer-review>header{flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;display:flex}.observer-review h2{margin:3px 0 12px;font-size:23px}.observer-review small{font-size:12px}.observer-review button{color:#473663;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #b6a6cd;border-radius:7px;padding:7px 11px}.observer-review button:disabled{opacity:.5;cursor:default}.observer-review button[aria-pressed=true]{color:#fff;background:#614886;border-color:#614886}.observer-review .team-A{color:#a84e13}.observer-review .team-B{color:#65429a}.observer-final-scores{flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 14px;display:flex}.observer-final-scores>div{background:#ede6f5;border-radius:10px;flex:1;align-items:center;gap:18px;padding:10px 14px;display:flex}.observer-final-scores>div.team-A{background:#faeadb}.observer-final-scores span{flex:1;font-weight:700}.observer-final-scores strong{font-size:28px}.observer-final-scores p{text-align:center;width:100%;margin:0;font-size:13px}.observer-review-tabs,.observer-history-tables{flex-shrink:0;gap:7px;margin-bottom:12px;display:flex}.observer-review-content{overscroll-behavior:contain;touch-action:pan-y;min-height:0;padding:0 3px 4px;overflow:auto}.observer-review-hint{color:#6b5f7b;margin:3px 0 14px;font-size:12px}.observer-history-item{border-top:1px solid #d9d0e3;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 0;display:grid}.observer-history-item .table-history-row{border:0;min-width:0;padding:0}.observer-history-item>small{white-space:nowrap}.observer-history-item .history-landlord small{color:#766486}.observer-history-item>button{font-size:12px}.observer-comparison,.observer-comparison-heading{border-bottom:1px solid #ddd4e8;grid-template-columns:42px minmax(0,1fr) 112px;align-items:center;gap:12px;padding:10px 0;display:grid}.observer-comparison-heading{color:#776885;padding-top:0;font-size:12px}.observer-comparison>div:nth-child(2){grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.observer-comparison button{white-space:normal;justify-content:space-between;align-items:center;gap:8px;padding:10px;display:flex}.observer-comparison button span{font-size:12px}.observer-comparison button strong{font-size:14px}.observer-board-net{text-align:right;gap:2px;display:grid}.observer-board-net>b{font-size:23px}.observer-board-net small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.observer-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.observer-stat-grid article{background:#fff;border:1px solid #e1d9ec;border-radius:12px;min-width:0;padding:14px}.observer-stat-grid article>header{justify-content:space-between;align-items:center;gap:10px;display:flex}.observer-stat-grid header>b{overflow-wrap:anywhere}.observer-stat-grid header>strong{text-align:right;flex-shrink:0;font-size:25px}.observer-stat-grid header small{font-size:11px;font-weight:400;display:block}.observer-stat-grid dl{color:#504761;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 0;display:grid}.observer-stat-grid dt{font-size:11px}.observer-stat-grid dd{margin:2px 0 0;font-size:17px;font-weight:700}.observer-review-error button{margin-left:10px}.spectator-nav .spectator-review-actions{white-space:nowrap;justify-content:flex-end;gap:6px;display:flex}.spectator-review-actions button{padding:5px 7px;font-size:12px}@media (height<=600px){.observer-review-overlay{padding:8px}.observer-review{border-radius:12px;max-height:96dvh;padding:12px}.observer-review h2{margin:2px 0 6px;font-size:18px}.observer-final-scores{margin:0 0 6px}.observer-final-scores>div{padding:4px 10px}.observer-final-scores strong{font-size:22px}.observer-review-tabs{margin-bottom:6px}.observer-review>header small{display:none}}@media (width<=600px){.observer-review-overlay{padding:6px}.observer-review{border-radius:12px;padding:12px}.observer-review h2{font-size:18px}.observer-history-item{grid-template-columns:1fr auto;gap:3px}.observer-history-item>small{grid-column:1/-1}.observer-history-item .table-history-row{grid-template-columns:36px minmax(0,1fr) 38px 32px;gap:4px}.observer-history-item .history-score{font-size:15px}.observer-history-item>button{padding:6px;font-size:11px}.observer-comparison,.observer-comparison-heading{grid-template-columns:22px minmax(0,1fr) 70px;gap:6px}.observer-comparison button{flex-direction:column;gap:3px;padding:5px}.observer-comparison button strong{font-size:12px}.observer-stat-grid{grid-template-columns:1fr}.spectator-nav .spectator-review-actions{gap:3px}.spectator-review-actions button{padding:4px;font-size:10px}}.observer-review-exits{flex-shrink:0;gap:6px;display:flex}@media (width<=400px){.observer-review-exits{flex-direction:column}.observer-review-exits button{padding:4px 6px;font-size:11px}}.observer-review header{color:inherit;background:0 0;border:0;height:auto;min-height:0;padding:0}.observer-review header h2{color:inherit}.spectator-nav:has(.spectator-review-actions){grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.spectator-nav:has(.spectator-review-actions)>div{white-space:nowrap;min-width:0;overflow:hidden}.spectator-context{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (width<=600px){.spectator-match-kind{display:none}}.observer-table-totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.observer-table-totals article{background:#fff;border:1px solid #dfd6e9;border-radius:9px;padding:10px}.observer-table-totals article>b{font-size:13px}.observer-table-totals article>div{flex-wrap:wrap;gap:8px 14px;margin:6px 0;font-size:12px;display:flex}.observer-table-totals strong{font-size:18px}.observer-table-totals small{color:#766586}@media (height<=600px){.observer-review>header{margin-bottom:6px}.observer-review>header button{padding:4px 7px;font-size:11px}.observer-table-totals{gap:6px;margin-bottom:8px}.observer-table-totals article{padding:6px}.observer-table-totals article>b{font-size:11px}.observer-table-totals article>div{margin:3px 0}.observer-table-totals strong{font-size:15px}.observer-table-totals small{font-size:10px}}.replay-jump{white-space:nowrap;color:#53645b;align-items:center;gap:5px;font-size:.78rem;font-weight:700;display:inline-flex}.replay-jump input{box-sizing:border-box;color:#294d3f;text-align:center;background:#fffdf7;border:1px solid #cfc6b4;border-radius:7px;width:4.2rem;padding:7px 6px;font:700 .85rem ui-monospace,SFMono-Regular,Consolas,monospace}.replay-jump button{color:#294d3f;background:#f8f4e9;border:1px solid #cfc6b4;border-radius:7px;padding:7px 10px;font-weight:800}.replay-jump input:disabled,.replay-jump button:disabled{opacity:.42}.elapsed-clock{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.elapsed-clock-icon{color:#8a6b2e;place-items:center;width:1.05rem;height:1.05rem;display:inline-grid}.elapsed-clock-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:100%;height:100%}@media (width<=640px){.replay-jump input{width:3.4rem}.replay-jump button{padding-inline:8px}}.simulation-page{--sim-card-width:53px;--sim-card-height:88px;--sim-card-step:32px;--sim-rank-size:1.6rem;--sim-suit-size:1.2rem;--sim-pad-x:5px;--sim-pad-y:6px;color:#153e55;background:#d9edf6;min-height:100dvh;padding:0 22px 22px}.simulation-topbar{align-items:center;gap:22px;max-width:1540px;min-height:64px;margin:auto;display:flex}.simulation-topbar h1{margin:0;font-size:1.3rem}.simulation-topbar h1 small{margin-left:10px;font-size:.75rem}.simulation-page button:not(.card){color:#1d526a;white-space:nowrap;background:#f3fbff;border:1px solid #91b5c8;border-radius:8px;padding:9px 14px;font-weight:700}.simulation-page button:disabled{opacity:.42;cursor:default}.simulation-topbar .simulation-load-button{color:#fff;background:#2c6e8d;margin-left:auto}.simulation-felt{background:radial-gradient(#d8f0fa,#94bdd2);border:6px solid #79a6bd;border-radius:24px;flex-direction:column;gap:20px;max-width:1540px;min-height:calc(100dvh - 86px);margin:auto;padding:16px 22px;display:flex;overflow:hidden}.simulation-toolbar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:16px;display:grid}.simulation-navigation,.simulation-step-buttons,.simulation-controls{align-items:center;gap:8px;min-width:0;max-width:100%;display:flex}.simulation-navigation,.simulation-step-buttons,.simulation-controls,.simulation-actions{flex-wrap:wrap}.simulation-navigation{align-content:start}.simulation-step-buttons{flex:0 auto}.simulation-progress,.simulation-control-progress{color:#38617a;white-space:nowrap;font-size:.75rem}.simulation-controls{justify-content:flex-end}.simulation-controls .simulation-mode.active{background:#f5de94;border-color:#b89748}.simulation-actions{justify-content:flex-end;gap:6px;min-width:0;display:flex}.simulation-actions .primary:enabled{color:#fff;background:#286e8c;border-color:#286e8c}.simulation-navigation .replay-jump{flex-wrap:wrap;min-width:0;max-width:100%}.simulation-page .card.playing-card{--card-width:var(--sim-card-width);--card-height:var(--sim-card-height);--card-pad-x:var(--sim-pad-x);--card-pad-y:var(--sim-pad-y);--card-rank-size:var(--sim-rank-size);--card-suit-size:var(--sim-suit-size);--card-suit-gap:4px;opacity:1;border-radius:7px;transition:transform .1s;box-shadow:0 2px 5px #345b6a4d}.simulation-page .card.playing-card.dimmed{filter:brightness(.54)}.simulation-page .card.playing-card.selected{border-color:#ca8215;transform:translateY(-12px);box-shadow:0 3px 6px #ca821570}.simulation-page .card.playing-card:hover:not(.selected){transform:none}.simulation-bottom{--sim-card-width:42px;--sim-card-height:44px;--sim-card-step:42px;align-self:start}.simulation-bottom>div{gap:5px;display:flex}.simulation-bottom .card.playing-card{cursor:default;justify-content:center;align-items:center;padding:0}.simulation-bottom-rank{font-family:Georgia,Times New Roman,serif;font-weight:900;line-height:1;font-size:1.4rem!important}.simulation-empty-card{width:var(--sim-card-width);height:var(--sim-card-height);border:1px dashed #6895ac;border-radius:7px;place-items:center;display:grid}.simulation-seats{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:space-between;gap:28px 36px;display:grid}.simulation-seat{flex-direction:column;gap:8px;min-width:0;display:flex}.simulation-seat-heading{flex-wrap:wrap;justify-content:center;align-items:center;gap:5px 10px;min-height:24px;display:flex}.simulation-seat-heading h2{overflow-wrap:anywhere;min-width:0;margin:0;font-size:.95rem}.simulation-seat-heading h2 em{color:#436477;font-size:.65rem;font-style:normal}.simulation-seat-heading>span,.simulation-turn-label{font-size:.68rem}.simulation-seat-heading .simulation-active-name{color:#e65320;font-weight:900}.simulation-card-fan{grid-template-columns:repeat(auto-fit, minmax(0, var(--sim-card-step)));min-width:0;padding-right:max(0px, calc(var(--sim-card-width) - var(--sim-card-step)));place-content:start center;row-gap:17px;display:grid}.simulation-hand{min-height:calc(var(--sim-card-height) + 12px);touch-action:none;-webkit-user-select:none;user-select:none;padding-top:12px}.simulation-seat-play{flex-direction:column;align-items:center;gap:5px;min-height:85px;padding-top:8px;display:flex}.simulation-seat-play>.elapsed-clock{color:#426477;font-size:.72rem}.simulation-play-cards{--sim-card-width:38px;--sim-card-height:62px;--sim-card-step:25px;--sim-rank-size:1.15rem;--sim-suit-size:.8rem;--sim-pad-x:4px;--sim-pad-y:4px;row-gap:8px;width:100%}.simulation-pass{color:#496674;text-align:center;grid-column:1/-1;padding:8px;font-size:1rem}.simulation-seat-self{grid-column:1/-1;justify-self:center;width:min(100%,920px)}.simulation-seat-self .simulation-seat-play{order:-1;justify-content:flex-end;min-height:85px;padding:0 0 8px}.simulation-center{text-align:center;justify-content:center;align-items:center;gap:8px;font-size:.85rem;display:flex}.simulation-center span{display:block}.simulation-error{color:#a13d31;background:#fff3ed;border:1px solid #dca798;border-radius:10px;justify-content:center;align-items:center;gap:14px;padding:8px 14px;display:flex}.simulation-modal{z-index:1100;background:#13384bb3;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow:auto}.simulation-loader{background:#f7fcff;border-radius:18px;width:min(760px,100%);max-height:calc(100dvh - 48px);padding:28px;position:relative;overflow:auto}.simulation-loader textarea{width:100%;min-height:220px;padding:14px}.simulation-loader-actions{justify-content:flex-end;gap:12px;display:flex}.simulation-source-tabs{gap:8px;margin-bottom:14px;display:flex}.simulation-source-tabs button[aria-pressed=true]{color:#fff;background:#2c6e8d}.simulation-history-fields,.simulation-custom-fields{gap:14px;margin-bottom:20px;display:grid}.simulation-history-selects{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.simulation-loader label{gap:6px;min-width:0;display:grid}.simulation-loader select,.simulation-loader input{color:#153e55;background:#fff;width:100%;min-width:0}.simulation-input-help{font-size:.85rem}.simulation-custom-fields input{letter-spacing:2px;font-family:monospace}.join-row .simulation-entry{margin-left:auto}.simulation-page{flex-direction:column;height:100dvh;min-height:0;padding:0 18px 12px;display:flex;overflow:hidden}.simulation-topbar{flex:0 0 58px;gap:14px;width:100%;min-height:0}.simulation-felt{flex:1;gap:12px;width:100%;min-height:0;margin-block:0;padding:12px 20px;container-type:size}.simulation-toolbar{flex:none;grid-template-columns:minmax(0,1fr) auto auto;align-items:center}.simulation-seats{grid-template-rows:minmax(0,1fr) minmax(0,1fr);align-content:stretch;gap:8px 28px;min-height:0}.simulation-seat{--sim-card-height:clamp(36px,13cqh,78px);--sim-card-width:calc(var(--sim-card-height) * .62);--sim-card-step:calc(var(--sim-card-width) * .6);--sim-rank-size:calc(var(--sim-card-height) * .31);--sim-suit-size:calc(var(--sim-card-height) * .23);gap:4px;min-height:0}.simulation-seat-self{justify-content:flex-end;width:min(100%,760px)}.simulation-seat-heading{flex-wrap:nowrap;flex:none;min-height:20px}.simulation-seat-heading h2{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.simulation-card-fan{grid-template-columns:var(--sim-fan-tracks);row-gap:0;padding-right:0}.simulation-hand{min-height:0;height:calc(var(--sim-card-height) + 10px);flex:none;padding-top:10px}.simulation-page .card.playing-card.selected{transform:translateY(-8px)}.simulation-seat-actions{flex:0 0 34px;justify-content:center;display:flex}.simulation-actions{flex-wrap:nowrap;justify-content:center}.simulation-actions button{min-width:62px}.simulation-seat-play,.simulation-seat-self .simulation-seat-play{flex-direction:row;flex:1;justify-content:flex-start;align-items:start;min-height:0;padding:0}.simulation-seat-self .simulation-seat-play{align-items:end}.simulation-play-cards{--sim-card-height:clamp(24px,7cqh,48px);--sim-card-width:calc(var(--sim-card-height) * .64);--sim-card-step:calc(var(--sim-card-width) * .64);--sim-rank-size:calc(var(--sim-card-height) * .32);--sim-suit-size:calc(var(--sim-card-height) * .23);--sim-pad-x:2px;--sim-pad-y:3px;max-width:100%;min-height:0}.simulation-seat-play>.elapsed-clock{flex:none;font-size:10px}.simulation-pass{padding:4px;font-size:12px}.simulation-center,.simulation-error{z-index:5;max-width:85%;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.simulation-error{box-shadow:0 3px 12px #23435b33}.simulation-center{pointer-events:none}@media (width<=1000px),(height<=600px){.simulation-page{padding:0 3px 3px}.simulation-topbar{flex-basis:40px;gap:8px}.simulation-topbar h1{font-size:14px}.simulation-topbar h1 small{display:none}.simulation-page button:not(.card){min-height:28px;padding:4px 8px;font-size:11px}.simulation-felt{border-width:3px;border-radius:14px;gap:4px;padding:5px 4px}.simulation-toolbar{gap:8px}.simulation-navigation,.simulation-step-buttons{gap:4px}.simulation-navigation .replay-jump{gap:3px;font-size:10px}.simulation-navigation .replay-jump input{width:32px;min-height:28px;padding:2px;font-size:11px}.simulation-progress,.simulation-control-progress{font-size:10px}.simulation-bottom{--sim-card-width:23px;--sim-card-height:29px}.simulation-bottom>div{gap:3px}.simulation-bottom .simulation-bottom-rank{font-size:14px!important}.simulation-seats{gap:4px 8px}.simulation-seat{--sim-card-height:clamp(44px,18cqh,76px);--sim-pad-x:2px;--sim-pad-y:3px;gap:1px}.simulation-hand{height:calc(var(--sim-card-height) + 6px);padding-top:6px;container-type:inline-size}.simulation-hand .card.playing-card{--sim-visible-step:min(var(--sim-card-step),calc((100cqw - var(--sim-card-width)) / var(--sim-card-gaps)));--card-rank-size:min(var(--sim-rank-size),calc((var(--sim-visible-step) - 4px) * .9));--card-suit-size:min(var(--sim-suit-size),calc(var(--sim-visible-step) - 4px))}.simulation-page .card.playing-card.selected{transform:translateY(-6px)}.simulation-seat-actions:empty{display:none}.simulation-seat-heading{gap:4px;min-height:17px}.simulation-seat-heading h2{font-size:12px}.simulation-seat-heading h2 em,.simulation-seat-heading>span,.simulation-turn-label{font-size:10px}.simulation-seat-actions{flex-basis:28px}.simulation-play-cards{--sim-card-height:clamp(23px,7cqh,36px)}.simulation-page .card.playing-card{border-radius:4px}.simulation-modal{padding:10px}.simulation-loader{max-height:calc(100dvh - 20px);padding:16px}}@media (orientation:portrait) and (width<=760px){.simulation-topbar{flex-basis:48px;gap:4px}.simulation-topbar h1{font-size:12px}.simulation-topbar button:not(.card){padding-inline:6px;font-size:10px}.simulation-toolbar{grid-template-columns:minmax(0,1fr) auto}.simulation-bottom{grid-area:1/2}.simulation-controls{grid-area:2/2}.simulation-navigation{grid-area:1/1/3}.simulation-seats{grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:minmax(0,1fr)}.simulation-seat{--sim-card-height:clamp(44px,11cqh,76px)}.simulation-seat-self{grid-column:1;justify-content:flex-start}.simulation-seat-self .simulation-seat-play{order:0;align-items:start}.simulation-center{top:50%}}.simulation-seat.landlord{--sim-card-step:calc(var(--sim-card-width) * .6)}.simulation-hand{container-type:normal}.simulation-hand .card.playing-card{--card-rank-size:min(calc(var(--sim-card-height) * .31),calc((var(--sim-card-step) - 4px) * .92),calc(((50cqw - 32px - var(--sim-card-width)) / 16 - 4px) * .92));--card-suit-size:var(--card-rank-size);--card-pad-x:2px;--card-pad-y:3px;--card-suit-gap:2px}.simulation-page .card.playing-card{text-align:left;justify-content:flex-start;align-items:flex-start}.simulation-page .card.playing-card .playing-card-rank{top:var(--card-pad-y);left:var(--card-pad-x);font-variant-numeric:lining-nums tabular-nums;width:auto;height:auto;margin:0;padding:0;line-height:1;position:absolute;font-size:var(--card-rank-size)!important}.simulation-page .card.playing-card .playing-card-joker{font-size:var(--card-rank-size);margin:0;padding:0;line-height:1}.simulation-page .card.playing-card .playing-card-suit{top:calc(var(--card-pad-y) + var(--card-rank-size) + var(--card-suit-gap));left:var(--card-pad-x);font-size:var(--card-suit-size);margin:0;line-height:1;position:absolute}.simulation-bottom{--sim-card-height:42px;--sim-card-width:30px;--sim-rank-size:14px;--sim-suit-size:12px;--sim-pad-x:3px;--sim-pad-y:3px}.simulation-bottom .card.playing-card{--card-suit-gap:2px;padding:3px}.simulation-play-cards .card.playing-card{--card-suit-gap:1px}@media (width<=1000px),(height<=600px){.simulation-bottom{--sim-card-height:29px;--sim-card-width:23px;--sim-rank-size:11px;--sim-suit-size:10px}.simulation-bottom .card.playing-card{--card-suit-gap:1px;padding:2px}}@media (orientation:portrait) and (width<=760px){.simulation-hand .card.playing-card{--card-rank-size:min(calc(var(--sim-card-height) * .31),calc((var(--sim-card-step) - 4px) * .92),calc(((100cqw - 12px - var(--sim-card-width)) / 19 - 4px) * .92))}}.simulation-page .card.playing-card .playing-card-joker{writing-mode:horizontal-tb;white-space:normal;word-break:break-all;letter-spacing:0;width:1em;line-height:1;font-size:var(--card-rank-size)!important}:root{color:#19342c;font-synthesis:none;background:#f2efe7;font-family:Inter,PingFang SC,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}.auth-shell{grid-template-columns:1.15fr .85fr;min-height:100vh;display:grid}.brand-panel{color:#f5ead0;background:radial-gradient(circle at 30% 20%,#286e53,#0c3025 60%,#071e18);flex-direction:column;justify-content:center;padding:10vh 9vw;display:flex}.brand-mark{border:1px solid #d4b874;border-radius:50%;place-items:center;width:62px;height:62px;display:grid}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:#a98b4e;font-size:.72rem;font-weight:600}.brand-panel h1{margin:.15em 0;font-family:Noto Serif SC,serif;font-size:clamp(5rem,12vw,9rem);line-height:1}.tagline{color:#e2d8bf;max-width:540px;font-family:Noto Serif SC,serif;font-size:1.35rem}.feature-row{color:#bcd2c8;gap:24px;margin-top:50px;display:flex}.feature-row span{align-items:center;gap:8px;font-size:.85rem;display:flex}.feature-row svg{width:18px}.auth-card{place-self:center;width:min(410px,80%)}.auth-card h2,.hero h2,.room-head h2{margin:.3rem 0 2rem;font-family:Noto Serif SC,serif;font-size:2.2rem}form{gap:17px;display:grid}label{gap:8px;font-size:.85rem;font-weight:600;display:grid}input,select{background:#faf8f2;border:1px solid #c9c4b8;border-radius:8px;outline:none;padding:13px 14px}input:focus,select:focus{border-color:#1f684d;box-shadow:0 0 0 3px #1f684d18}.primary{color:#fff;background:#155b43;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:13px 18px;font-weight:600;display:inline-flex}.primary:disabled{opacity:.45;cursor:not-allowed}.text-button{color:#376b58;background:0 0;border:0;padding:12px 0}.error{color:#a12c2c;background:#f9dfdc;border-radius:6px;padding:10px 12px;font-size:.85rem}header{color:#f5ead0;background:#103b2e;justify-content:space-between;align-items:center;height:68px;padding:0 max(24px,6vw);display:flex}.logo{align-items:center;gap:10px;font-family:Noto Serif SC,serif;font-size:1.35rem;display:flex}.user-chip{align-items:center;gap:12px;display:flex}.user-chip b{color:#102b23;background:#bd9a50;border-radius:10px;padding:3px 7px;font-size:.7rem}.user-chip button{color:#eee;background:0 0;border:0}.page{max-width:1180px;margin:auto;padding:48px 28px}.hero{border-bottom:1px solid #d5d0c5;justify-content:space-between;align-items:end;gap:40px;padding:38px 0 54px;display:flex}.hero h2{margin:.25rem 0;font-size:3.2rem}.hero p{color:#67756f}.quick-create{min-width:400px;display:flex}.quick-create input{border-radius:8px 0 0 8px;flex:1}.quick-create button{border-radius:0 8px 8px 0}.section-title{margin-top:42px;font-family:Noto Serif SC,serif}.room-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px;display:grid}.room-card{text-align:left;color:inherit;background:#fbfaf6;border:1px solid #d6d1c5;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:22px;display:grid}.room-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1b392b12}.room-card h3{margin:0 0 6px}.room-card p{color:#76807c;margin:0;font-size:.8rem}.room-icon{color:#98783c;background:#e5dec9;border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.empty{color:#7c817d;border:1px dashed #bbb5a9;border-radius:10px;padding:40px}.room-head{justify-content:space-between;align-items:center;padding:30px 0;display:flex}.room-head h2{margin:.2rem 0}.room-head code{background:#e2ded3;padding:4px 7px}.status-dot{color:#2e795b}.columns{grid-template-columns:1fr 1.4fr;gap:24px;display:grid}.panel{background:#fbfaf6;border:1px solid #d7d1c4;border-radius:12px;padding:25px}.panel h3{font-family:Noto Serif SC,serif}.member{border-bottom:1px solid #eee9df;align-items:center;gap:12px;padding:10px 0;display:flex}.member input{width:16px}.member small{color:#8b918e;font-weight:400;display:block}.avatar{color:#27483b;background:#d7c393;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.hint{color:#75807a;font-size:.8rem}.match-row{border-bottom:1px solid #ece7dd;justify-content:space-between;padding:9px;display:flex}.table-page{color:#f7efd9;background:#092c22;height:100vh;overflow:hidden}.table-nav{background:#071f18;justify-content:space-between;align-items:center;height:54px;padding:0 24px;display:flex}.table-nav button{color:#e8dcc1;background:0 0;border:0}.table-nav code{color:#ae9e7d}.felt{background:radial-gradient(#217354,#0d4836 65%,#093528);border:12px solid #5d3b25;height:calc(100vh - 54px);position:relative;box-shadow:inset 0 0 80px #001c14}.opponent{align-items:center;gap:9px;display:flex;position:absolute}.opponent.top{top:30px;left:50%;transform:translate(-50%)}.opponent.left{top:40%;left:25px}.opponent.right{top:40%;right:25px}.center-play{text-align:center;position:absolute;inset:32% 25%}.played,.hand{justify-content:center;display:flex}.card{color:#182a24;background:#fffdf7;border:1px solid #d5cec0;border-radius:7px;flex-direction:column;align-items:flex-start;width:58px;height:84px;margin-left:-18px;padding:5px 7px;display:flex;box-shadow:0 3px 7px #001d1490}.card:first-child{margin-left:0}.card b{font-size:1.05rem}.card span{font-size:1.25rem}.card.red{color:#b52f2f}.card.selected{border:2px solid #f0ca6d;transform:translateY(-16px)}.my-area{text-align:center;width:min(95%,1050px);position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.actions{justify-content:center;gap:8px;height:52px;display:flex}.actions button{color:#163f31;background:#f4ead0;border:1px solid #d0b66e;border-radius:7px;height:38px;padding:0 20px}.hand{min-height:90px}.my-area p{margin:7px}.toast{color:#fff;background:#9e3030;border-radius:8px;padding:12px 20px;position:fixed;top:70px;left:50%;transform:translate(-50%);box-shadow:0 7px 20px #0004}@media (width<=760px){.auth-shell{grid-template-columns:1fr}.brand-panel{min-height:42vh;padding:55px 30px}.brand-panel h1{font-size:4.5rem}.feature-row{display:none}.auth-card{padding:45px 0}.hero{display:block}.hero h2{font-size:2.3rem}.quick-create{min-width:0;margin-top:25px}.columns{grid-template-columns:1fr}.opponent.left{left:5px}.opponent.right{right:5px}.card{width:43px;height:67px;margin-left:-22px;padding:3px}.table-nav code{display:none}}.bottom-area{z-index:2;text-align:center;position:absolute;top:22px;left:50%;transform:translate(-50%)}.bottom-label{color:#e9d7a6;letter-spacing:.2em;margin-bottom:6px;font-size:.8rem;display:block}.bottom-cards{justify-content:center;gap:7px;display:flex}.bottom-cards .card{pointer-events:none;width:46px;height:66px;margin-left:0}.card-back{color:#ead9ad;background:repeating-linear-gradient(45deg,#173f76 0 5px,#245792 5px 10px);border:2px solid #ead9ad;justify-content:center;align-items:center}.landlord-mark{color:#183c30;background:#c79b3b;border-radius:10px;padding:2px 7px;font-size:.68rem;font-weight:700}.self-seat{justify-content:center;align-items:center;gap:8px;display:flex}.self-seat .avatar{width:28px;height:28px;font-size:.75rem;display:inline-grid}.spectator-view .opponent.top{top:124px}.player-view .opponent.left,.player-view .opponent.right{top:35%}@media (width<=760px){.bottom-area{top:14px}.bottom-cards .card{width:38px;height:55px}.spectator-view .opponent.top{top:104px}.opponent b{font-size:.78rem}.landlord-mark{display:none}}.brand-panel h1.brand-title{white-space:nowrap;gap:12px;font-size:clamp(3rem,6vw,5.8rem);display:grid}.brand-title small{letter-spacing:.12em;font-family:Inter,PingFang SC,sans-serif;font-size:clamp(1.1rem,2vw,1.7rem);font-weight:600}html.portrait-lock,html.portrait-lock body{overflow:hidden}.orientation-gate{z-index:1000;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));color:#f8efd9;pointer-events:auto;background:#071f18f2;place-items:center;display:grid;position:fixed;inset:0}.orientation-card{text-align:center;background:#123c2f;border:1px solid #c9aa61;border-radius:18px;width:min(420px,92vw);padding:32px 26px;box-shadow:0 24px 80px #0009}.orientation-icon{color:#f0ce7c;border:1px solid #d5b86e;border-radius:50%;place-items:center;width:64px;height:64px;margin:0 auto 16px;font-size:2rem;display:grid}.orientation-card h1{margin:8px 0 12px;font-family:Noto Serif SC,serif}.orientation-card p:not(.eyebrow){color:#cbdad1;line-height:1.7}.orientation-card small{color:#a9beb3;margin-top:16px;line-height:1.5;display:block}.password-field{width:100%;position:relative}.password-field input{width:100%;padding-right:82px}.password-field button{color:#426354;background:0 0;border:0;border-radius:6px;align-items:center;gap:4px;padding:7px 8px;font-size:.72rem;font-weight:700;display:inline-flex;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.password-field button:hover,.password-field button:focus-visible{background:#e9efe9;outline:none}.searchable-select{width:100%;min-width:0;position:relative}.searchable-select-control{background:#faf8f2;border:1px solid #c9c4b8;border-radius:8px;grid-template-columns:minmax(0,1fr) 42px;width:100%;min-height:44px;display:grid;overflow:hidden}.searchable-select-control:focus-within{border-color:#1f684d;box-shadow:0 0 0 3px #1f684d18}.searchable-select-control input{width:100%;min-width:0;height:44px;box-shadow:none;background:0 0;border:0;border-radius:0;padding:10px 12px}.searchable-select-control button{color:#476356;background:#f2eee5;border:0;border-left:1px solid #ddd6c9;place-items:center;width:42px;min-width:42px;height:44px;display:grid}.searchable-select.disabled{opacity:.6}.searchable-select-menu{z-index:30;background:#fffdf8;border:1px solid #c9c1af;border-radius:8px;width:100%;max-height:260px;padding:5px;display:grid;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 14px 34px #173b3026}.searchable-select-menu button{color:#28483b;text-align:left;background:0 0;border:0;border-radius:6px;grid-template-columns:minmax(0,1fr) 20px;align-items:center;width:100%;min-height:42px;padding:9px 11px;display:grid}.searchable-select-menu button:hover,.searchable-select-menu button:focus-visible,.searchable-select-menu button[aria-selected=true]{background:#e8f0e9;outline:none}.searchable-select-menu button:disabled{opacity:.42;cursor:not-allowed}.searchable-select-menu p{color:#78817d;text-align:center;margin:0;padding:12px;font-size:.76rem}.searchable-selected-summary{color:#68766f;text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:.68rem;line-height:1.5;display:block;overflow:hidden}.room-list-heading{justify-content:space-between;align-items:center;gap:18px;margin-top:42px;display:flex}.room-list-heading .section-title{margin:0}.room-list-heading nav{align-items:center;gap:8px;display:flex}.room-list-heading nav button{color:#315b4b;background:#fbfaf6;border:1px solid #c8c1b4;border-radius:7px;padding:7px 12px}.room-list-heading nav button:disabled{color:#aaa9a5;cursor:not-allowed;background:#e5e3de;border-color:#d8d5ce}.room-list-heading nav span{color:#78817d;text-align:center;min-width:48px;font-size:.78rem}.join-row{max-width:620px;margin-top:28px;display:flex}.join-row input{border-radius:8px 0 0 8px;flex:1}.join-row button{color:#155b43;background:#f8f5ed;border:1px solid #155b43;border-radius:0 8px 8px 0;padding:0 20px}.room-tile{background:#fbfaf6;border:1px solid #d6d1c5;border-radius:12px;display:grid;position:relative;overflow:hidden}.spectator-only-badge{z-index:2;color:#465850;background:#2878c8;border-radius:999px;padding:4px 9px;font-size:.7rem;font-weight:800;position:absolute;top:9px;right:9px;box-shadow:0 2px 8px #174d7b33}.room-tile .room-card{border:0;border-radius:0;width:100%}.active-game-link,.room-active-banner{color:#155b43;text-align:left;background:#e3f1e9;border:0;justify-content:space-between;align-items:center;gap:20px;display:flex}.active-game-link{border-top:1px solid #c9ded2;padding:12px 18px;font-size:.78rem}.room-active-banner{border:1px solid #b8d5c5;border-radius:10px;width:100%;margin-bottom:22px;padding:16px 20px}.room-active-actions{flex:none;gap:8px;display:flex}.room-active-actions button{color:#155b43;background:#f7fbf8;border:1px solid #91b9a4;border-radius:7px;padding:8px 12px;font-weight:700}.room-active-actions .danger-button{color:#9c3427;background:#fff5f2;border-color:#d5a39a}.room-active-actions .penalty-button{color:#875500;background:#fff5d8;border-color:#d29a35}.live-dot{background:#1e9a66;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block;box-shadow:0 0 0 5px #1e9a6620}.match-setup{align-content:start;gap:14px;display:grid}.setup-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.ai-roster{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.ai-roster span{color:#52645d;background:#e8e1cf;border-radius:16px;align-items:center;gap:6px;padding:7px 10px;font-size:.76rem;display:inline-flex}.match-list{display:grid}.match-row{align-items:center;gap:12px}.match-row>span{flex:1}.match-row small{color:#828a86;margin-top:3px;font-weight:400;display:block}.match-row b{color:#19704f;font-size:.75rem}.match-row b.done{color:#7a7f7c}.match-row button,.last-play-toggle{color:#315444;background:#f7efd9;border:1px solid #bda96f;border-radius:6px}.match-row button{padding:6px 10px}.flow-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#061a15c9;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.flow-overlay.board-result-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:#061a1570}.countdown-card,.result-card{overscroll-behavior:contain;color:#173d30;text-align:center;background:#faf7ee;border:1px solid #d7c58f;border-radius:18px;width:min(520px,92vw);max-height:calc(100dvh - 48px);padding:42px;overflow-y:auto;box-shadow:0 28px 80px #0008}.opponent-quartz-clock{color:#ffe79a;font-variant-numeric:tabular-nums;background:radial-gradient(circle,#153c31 0 56%,#09281f 57%);border:2px solid #e5c96e;border-radius:50%;flex:0 0 42px;place-items:center;width:42px;height:42px;display:grid;position:relative;overflow:hidden;box-shadow:0 0 14px #e2c35b55,inset 0 0 0 2px #ffffff18}.opponent-quartz-clock:before,.opponent-quartz-clock:after{content:"";background:#d8c78488;position:absolute;inset:3px 19px}.opponent-quartz-clock:after{transform:rotate(90deg)}.opponent-quartz-clock i{border:1px dashed #eadb9e66;border-radius:50%;position:absolute;inset:5px}.opponent-quartz-clock b{z-index:1;text-shadow:0 1px 3px #000;font-size:.9rem;position:relative}.opponent-quartz-clock.urgent{color:#ffb09f;border-color:#ff8f77;box-shadow:0 0 16px #ef604777}.countdown-card h2,.result-card h2{margin:12px 0;font-family:Noto Serif SC,serif;font-size:2rem}.countdown-number{color:#96702d;border:3px solid #bc9848;border-radius:50%;place-items:center;width:112px;height:112px;margin:0 auto;font-family:Noto Serif SC,serif;font-size:4.4rem;line-height:1;display:grid}.countdown-number.small{width:76px;height:76px;margin-top:24px;font-size:2.8rem}.board-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0;display:grid}.board-stats span{background:#ece6d7;border-radius:8px;padding:12px;font-size:.8rem}.board-stats b{margin-top:4px;font-size:1.2rem;display:block}.score-board{gap:8px;margin:24px 0;display:grid}.score-board div{border-bottom:1px solid #ddd4c1;justify-content:space-between;padding:11px 14px;display:flex}.room-create-form{grid-template-columns:1fr auto;gap:9px;width:min(470px,100%);min-width:430px;display:grid}.quick-create.room-create-form>input{border-radius:8px;grid-column:1/-1}.team-name-inputs{grid-template-columns:1fr 1fr;gap:9px;min-width:0;display:grid}.quick-create .team-name-inputs input,.quick-create.room-create-form>button{border-radius:8px}.quick-create .team-name-inputs input{width:100%;min-width:0}.quick-create.room-create-form>button{white-space:nowrap;min-width:112px}.join-dialog{color:#173d30;background:#faf7ee;border:1px solid #d7c58f;border-radius:18px;width:min(560px,92vw);padding:36px;position:relative;box-shadow:0 28px 80px #0008}.dialog-close{color:#48564f;background:#ece8df;border:0;border-radius:50%;place-items:center;width:32px;height:32px;padding:0;font-size:1.35rem;line-height:1;display:grid;position:absolute;top:12px;right:14px}.join-dialog h2{margin:8px 0;font-family:Noto Serif SC,serif}.join-dialog>p:not(.eyebrow){color:#6b7771;font-size:.86rem}.review-page{gap:18px;max-width:1320px;display:grid}.review-page>.text-button{justify-self:start}.review-page .panel{margin:0}.review-hero{background:linear-gradient(120deg,#fbfaf5 55%,#e7efe8);border-top:5px solid #176047;justify-content:space-between;align-items:center;gap:28px;display:flex}.review-hero h1,.review-section-title h2{color:#143f31;margin:5px 0;font-family:Noto Serif SC,serif}.review-hero h1{font-size:2.2rem}.review-hero p:last-child{color:#6d7772;margin-bottom:0}.review-result{color:#f8eed0;text-align:right;background:#123e30;border-radius:12px;gap:5px;min-width:280px;padding:18px 22px;display:grid}.review-result strong{color:#e7c25f;font-size:1.5rem}.review-result small{color:#b8cac2}.review-section-title{justify-content:space-between;align-items:end;gap:18px;margin-bottom:16px;display:flex}.review-section-title .eyebrow{margin:0}.review-section-title h2{font-size:1.35rem}.review-section-title>small{color:#707a75;font-weight:700}.review-section-title>b{color:#a58132;font-size:1.1rem}.review-section-title button{color:#294d3f;background:#f4ead0;border:1px solid #bca460;border-radius:7px;padding:8px 13px;font-weight:700}.review-hands{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.review-hands article{background:#f8f6ef;border:1px solid #dcd5c7;border-radius:10px;gap:12px;min-width:0;padding:16px;display:grid}.review-hands article.landlord{background:#fbf4de;border-color:#c8a54c;box-shadow:inset 0 3px #c8a54c}.review-hands article>div{justify-content:space-between;gap:8px;display:flex}.review-hands article span,.review-hands article small{color:#77817c;font-size:.72rem}.review-hands code,.review-bottom code{overflow-wrap:anywhere;color:#173f32;letter-spacing:.08em;font:800 1.15rem/1.6 ui-monospace,SFMono-Regular,Consolas,monospace}.review-bottom{color:#f8edce;background:#153f32;border-radius:9px;align-items:center;gap:16px;margin-top:14px;padding:13px 16px;display:flex}.review-bottom small{color:#b8c8c1;margin-left:auto}.review-columns{grid-template-columns:1.15fr .85fr;gap:18px;display:grid}.review-action-list{display:grid}.review-action-list>div,.review-play-table>div{border-bottom:1px solid #e5e0d6;grid-template-columns:52px minmax(140px,1fr) minmax(85px,auto) 70px 82px;align-items:center;gap:12px;min-height:46px;display:grid}.review-action-list>div:last-child,.review-play-table>div:last-child{border-bottom:0}.review-turn,.review-action-list time,.review-action-list small,.review-play-table time,.review-play-table small{color:#76807b;font-size:.73rem}.review-action-list strong{color:#946f22}.review-score-summary{gap:9px;display:grid}.review-score-summary>strong{color:#f1cc68;text-align:center;background:#173f32;border-radius:9px;padding:16px;font-size:1.35rem}.review-score-summary>p{color:#6d7772;text-align:center;margin:0}.review-score-summary>div{border-bottom:1px solid #e5e0d6;justify-content:space-between;padding:8px 3px;display:flex}.review-play-table{overflow-x:auto}.review-play-table>div{grid-template-columns:90px minmax(160px,1fr) minmax(150px,2fr) 80px 90px;min-width:700px}.review-play-table .review-play-head{color:#78827d;min-height:36px;font-size:.69rem;font-weight:700}.review-play-table code{color:#143f31;letter-spacing:.08em;font:800 1rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace}.review-play-table code.pass{color:#929994;letter-spacing:0;font-family:inherit;font-weight:500}.review-record pre{color:#f3e7c5;white-space:pre-wrap;overflow-wrap:anywhere;background:#102f26;border-radius:10px;margin:0;padding:18px;font:700 .82rem/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-x:auto}.review-record>p{color:#77817c;margin:10px 2px 0;font-size:.72rem}.review-match-score{color:#f4f1f8;text-align:center;background:linear-gradient(135deg,#191724,#242133);border:1px solid #ffffff20;border-radius:12px;grid-template-columns:minmax(90px,1fr) auto minmax(90px,1fr);align-items:center;gap:18px;min-width:390px;padding:18px 22px;display:grid;box-shadow:0 10px 28px #0c0a1338}.review-match-score strong{color:#e7c25f;justify-content:center;align-items:center;gap:9px;font-size:2rem;display:flex}.review-match-score strong i,.review-match-score strong em{font-style:normal}.review-match-score strong i{color:#ff873d}.review-match-score strong b{color:#a77cff}.review-match-score strong em{color:#f1edf7}.review-match-score>span.team-tone-A{color:#ff9b62;font-weight:900}.review-match-score>span.team-tone-B{color:#b99aff;font-weight:900}.team-tone-A,.review-section-title>b.team-tone-A,.replay-table-head strong.team-tone-A{color:#f05f13}.team-tone-B,.review-section-title>b.team-tone-B,.replay-table-head strong.team-tone-B{color:#60f}.review-board-tabs{gap:8px;padding:3px 1px;display:flex;overflow-x:auto}.review-round-tabs{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.review-round-tabs button{color:#264b3e;text-align:left;background:#fbfaf6;border:1px solid #cfc7b6;border-radius:10px;gap:3px;padding:13px 16px;font-weight:800;display:grid}.review-round-tabs button small{color:#7a847f;font-weight:500}.review-round-tabs button.active{background:#e4eee8;border-color:#176047;box-shadow:inset 4px 0 #176047}.review-board-tabs button{color:#36584c;background:#f6f3eb;border:1px solid #d3ccbc;border-radius:999px;flex:none;padding:10px 18px;font-weight:800}.review-board-tabs button.active{color:#fff6dd;background:#176047;border-color:#176047}.replay-tables{gap:18px;display:grid}.replay-tables.duplicate{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.replay-table{min-width:0;padding:20px}.replay-table-head,.replay-stepper{justify-content:space-between;align-items:center;gap:16px;display:flex}.replay-table-head h2{color:#143f31;margin:4px 0 0;font-family:Noto Serif SC,serif}.replay-table-head>div:last-child{text-align:right;gap:4px;display:grid}.replay-table-head strong{color:#956e20}.replay-table-head small,.replay-bids small{color:#7a827e}.replay-bids{white-space:nowrap;background:#f4f1e8;border-radius:9px;align-items:center;gap:8px;margin:16px 0;padding:10px;display:flex;overflow-x:auto}.replay-bids>b{color:#234f40}.replay-bids>span{color:#3f554d;background:#fffdf7;border:1px solid #ddd5c5;border-radius:7px;padding:6px 9px;font-size:.78rem;font-weight:700}.replay-bids>span.team-border-A{border-left:4px solid #f05f13}.replay-bids>span.team-border-B{border-left:4px solid #60f}.replay-stepper{border-top:1px solid #e4ded2;padding:13px 0 10px}.replay-stepper p,.replay-stepper b{margin:0}.replay-stepper nav{gap:7px;display:flex}.replay-stepper button{color:#294d3f;background:#f8f4e9;border:1px solid #cfc6b4;border-radius:7px;padding:8px 12px;font-weight:800}.replay-stepper button.primary{color:#fff;background:#176047;border-color:#176047}.replay-stepper button:disabled{opacity:.42}.replay-player-rows{gap:7px;display:grid}.replay-player-rows>div{background:#fbfaf5;border:1px solid #ddd7ca;border-radius:9px;grid-template-columns:minmax(110px,.8fr) minmax(190px,1.5fr) minmax(105px,.8fr);align-items:center;gap:12px;min-height:82px;padding:11px 12px;transition:border-color .15s,background .15s;display:grid}.replay-player-rows>div.active{background:#fff8e3;border-color:#c29b42;box-shadow:inset 3px 0 #c29b42}.replay-player-rows>div.team-row-A{border-left:4px solid #f05f13}.replay-player-rows>div.team-row-B{border-left:4px solid #60f}.replay-player,.replay-hand,.replay-action{gap:5px;min-width:0;display:grid}.replay-player small,.replay-hand small,.replay-action small{color:#7a827e;font-size:.68rem}.replay-player small{align-items:center;gap:6px;display:flex}.team-badge{color:#fff;border-radius:999px;padding:2px 6px;font-size:.62rem;font-style:normal;font-weight:800}.team-badge.team-A{background:#f05f13}.team-badge.team-B{background:#60f}.replay-hand code{overflow-wrap:anywhere;color:#173f32;letter-spacing:.08em;font:800 .98rem/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.replay-action{text-align:center;background:#f1eee5;border-radius:7px;align-content:center;min-height:48px;padding:8px}.replay-action b{color:#8f671d;font:800 1rem/1.25 ui-monospace,SFMono-Regular,Consolas,monospace}.replay-action.pass b{color:#707974;font-family:inherit}.replay-card-string .replay-bottom-card{text-underline-offset:.22em;text-decoration-line:underline;text-decoration-color:#b58120;text-decoration-thickness:2px}@media (width<=820px){.review-hero,.review-section-title{align-items:stretch}.review-hero,.review-columns{grid-template-columns:1fr}.review-hero{display:grid}.review-result{text-align:left;min-width:0}.review-hands{grid-template-columns:1fr}.review-bottom{flex-wrap:wrap;align-items:flex-start}.review-bottom small{width:100%;margin-left:0}.review-action-list>div{grid-template-columns:40px 1fr auto}.review-action-list>div time,.review-action-list>div small{grid-column:2}}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.dialog-actions button{border:1px solid #c9c1af;border-radius:8px;padding:11px 20px}.dialog-actions.stacked{flex-direction:column}.discard-match-button{color:#9b342c;border-color:#d4a49d}.team-names{align-items:center;gap:12px;display:flex}.team-names b{color:#325344;background:#e8e1cf;border-radius:6px;padding:7px 11px}.team-names span{color:#999282;font-size:.72rem}.my-seat-picker{background:#f4f0e6;border:1px solid #ddd4c2;border-radius:9px;margin:14px 0 18px;padding:14px}.my-seat-picker p{margin:0 0 9px}.seat-picker-row{grid-template-columns:1fr .72fr auto;gap:8px;display:grid}.seat-picker-row select,.seat-picker-row button{background:#fbfaf6;border:1px solid #c9c1af;border-radius:7px;min-width:0;padding:9px 10px}.team-slot-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;display:grid}.match-lobby-seats .section-heading>strong{color:#155b43;font:800 1.7rem/1 Noto Serif SC,serif}.locked-seat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0;display:grid}.locked-seat-grid.mode-personal{grid-template-columns:repeat(3,minmax(0,1fr))}.locked-seat{background:#f7f3e9;border:1px solid #d8d1c2;border-radius:12px;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;min-height:92px;padding:13px;display:flex}.locked-seat i{color:#8a7040;font-size:.72rem;font-style:normal;font-weight:750}.locked-seat b{color:#173b30}.locked-seat.empty b{color:#8d948f;font-weight:500}.locked-seat.ai{background:#eaf1ec}.locked-seat button{padding:5px 8px;font-size:.72rem}.locked-seat .seat-inline-action,.locked-seat .seat-remove-action{border-radius:7px;align-self:stretch;width:100%;min-height:34px;margin-top:auto;font-weight:800}.locked-seat .seat-inline-action-sit,.locked-seat .seat-inline-action-switch{color:#fff;background:#2563eb;border-color:#2563eb}.locked-seat .seat-inline-action-stand{color:#176047;background:#dcefe5;border-color:#b7ddc4}.locked-seat .seat-remove-action{color:#fff;background:#a83c32;border-color:#a83c32}.plan-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:17px 0;display:grid}.plan-summary>div{background:#f2ede2;border-radius:10px;gap:4px;padding:12px;display:grid}.plan-summary span{color:#768079;font-size:.72rem}.plan-summary b{color:#183d31}.start-match-button{width:100%;margin:8px 0 20px}.idle-observer .center-play p{color:#ffe09a;border-color:#c79d47}@media (width<=720px){.locked-seat-grid,.locked-seat-grid.mode-personal,.plan-summary{grid-template-columns:1fr}}.team-slot-column{background:#f6f2e8;border:1px solid #ddd4c2;border-radius:9px;gap:7px;padding:12px;display:grid}.team-slot-column>b{border-bottom:1px solid #ddd4c2;padding-bottom:6px;font-size:.8rem}.team-slot-column>span{grid-template-columns:28px 1fr;align-items:center;gap:7px;font-size:.76rem;display:grid}.team-slot-column>span i{color:#fff5d9;background:#196348;border-radius:50%;place-items:center;width:25px;height:25px;font-style:normal;font-weight:700;display:grid}.team-slot-column .ai-slot{color:#989386}.team-slot-column .ai-slot i{background:#aaa491}.seat-info{align-items:center;gap:10px;font-size:1.05rem;display:flex}.opponent{flex-direction:column;align-items:flex-start}.opponent.right{align-items:flex-end}.opponent.top{align-items:center}.reported-hand{color:#f1d783;align-items:center;gap:8px;font-size:.78rem;font-weight:800;display:flex}.reported-hand>div{display:flex}.reported-hand .card{pointer-events:none;width:42px;height:58px;margin-left:-10px;padding:4px 6px}.reported-hand .card:first-child{margin-left:0}.reported-hand .card b,.reported-hand .card span,.reported-hand .card i{font-size:.85rem}.ai-avatar{background:#bdd6cb}.last-play-toggle{align-items:center;gap:4px;padding:6px 9px;font-size:.78rem;display:inline-flex}.last-play-toggle:disabled{opacity:.5;cursor:default}.seat-last-play{justify-content:center;margin-top:8px;display:flex}.seat-last-play .card{pointer-events:none;width:36px;height:52px;margin-left:-12px;padding:3px 5px}.turn-timer{z-index:3;background:#082b21c9;border:1px solid #d5bc76;border-radius:12px;grid-template-columns:auto minmax(140px,auto);align-items:center;gap:2px 13px;min-width:260px;padding:12px 16px;display:grid;position:absolute;top:clamp(145px,22%,210px);left:50%;transform:translate(-50%);box-shadow:0 6px 18px #001f1766}.turn-timer .turn-seconds{color:#f2d17b;font-variant-numeric:tabular-nums;grid-row:1/4;font-size:2.75rem;line-height:1}.turn-timer .turn-player{font-size:.96rem;font-weight:700}.turn-timer>small{color:#c6d3cd;font-size:.7rem}.time-bank{color:#e8dfc6;align-items:baseline;gap:7px;display:flex}.time-bank span{font-size:.72rem;font-weight:700}.time-bank b{color:#ffe09a;font-variant-numeric:tabular-nums;text-shadow:0 0 12px #e2b95675;font-size:1.35rem;line-height:1}.time-bank.empty b{color:#ff8f77}.turn-timer.urgent{border-color:#dd7a65}.turn-timer.urgent .turn-seconds{color:#ff8f77}.turn-timer.private-wait .turn-seconds{color:#b8c8c1;letter-spacing:.12em}.spectator-view .turn-timer{top:29%}.spectator-view .center-play{inset:45% 25% 28%}.card.dimmed{opacity:.34;filter:grayscale(.75)}.hand{touch-action:none;-webkit-user-select:none;user-select:none}.card-order-toggle{color:#f3dfaa;background:#173f32;border:1px solid #cbb77b;border-radius:12px;padding:4px 9px;font-size:.7rem}.all-ai-toggle{background:#f1ecde;border:1px solid #cbbf9e;border-radius:9px;align-items:center;gap:10px;padding:12px;display:flex}.all-ai-toggle input{width:18px;height:18px}.all-ai-toggle small{color:#75807a;font-weight:400;display:block}.admin-panel{background:#fbfaf6;border:1px solid #d7d1c4;border-radius:12px;gap:12px;margin-top:26px;padding:18px 20px;display:grid}.admin-panel h3{margin:2px 0}.admin-inline{align-items:center;gap:10px;display:flex}.admin-inline input{flex:1}.admin-inline button,.admin-list button{color:#315444;background:#f5edda;border:1px solid #b9aa7f;border-radius:7px;padding:9px 12px}.admin-inline code{overflow-wrap:anywhere;background:#eee7d7;padding:8px}.admin-list{gap:6px;display:grid}.admin-list>div{border-top:1px solid #e4ded1;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:8px 0;display:grid}.admin-list small{color:#858b88;display:block}.result-ledger{text-align:left;border:1px solid #ddd4c1;border-radius:9px;max-height:300px;margin:18px 0;overflow:auto}.result-ledger h3{background:#eee6d4;margin:0;padding:10px 12px;position:sticky;top:0}.result-ledger-row{border-top:1px solid #e5dfd2;grid-template-columns:1fr 1.25fr .65fr 1.2fr;align-items:center;gap:8px;padding:9px 12px;font-size:.75rem;display:grid}.team-color-A{color:#b23b32}.team-color-B{color:#2864a3}@media (width<=760px){.admin-inline{flex-direction:column;align-items:stretch}.admin-list>div{grid-template-columns:1fr auto}.admin-list button{grid-column:1/-1}.result-ledger-row{grid-template-columns:1fr 1fr}}.bottom-row{align-items:center;gap:13px;display:flex}.live-score{color:#d3dfd8;text-align:left;background:#082b21d9;border:1px solid #718e80;border-radius:10px;min-width:104px;padding:8px 11px;display:grid;box-shadow:0 5px 16px #001d145c}.live-score>span{letter-spacing:.12em;font-size:.58rem}.live-score strong{color:#f1d381;margin-top:2px;font-family:Noto Serif SC,serif;font-size:1.05rem;line-height:1.2}.live-score strong em{color:#ffb096;font-style:normal}.live-score small{color:#bdcbc4;min-height:.75rem;margin-top:2px;font-size:.55rem}.table-meta,.other-table-progress{align-items:center;display:flex}.table-meta{justify-content:flex-end;gap:16px}.other-table-progress{color:#dce9e3;border:1px solid #416454;border-radius:14px;gap:3px;padding:5px 9px;font-size:.7rem}.other-table-progress .live-dot{width:6px;height:6px;margin-right:4px;box-shadow:0 0 0 3px #1e9a6630}.felt .card{background:linear-gradient(135deg,#fffefb 0%,#f8f3e8 72%,#e8dfcd 100%);border:1px solid #d6cdbb;border-radius:10px;width:78px;height:112px;margin-left:-24px;padding:8px 10px;transition:transform .16s,box-shadow .16s,opacity .16s;position:relative;overflow:hidden;box-shadow:0 5px 12px #001d1490,inset 0 0 0 1px #fff}.felt .card b{z-index:1;font-family:Georgia,Times New Roman,serif;font-size:1.48rem;line-height:1}.felt .card span{z-index:1;margin-top:2px;font-size:1.68rem;line-height:1}.felt .card>i{color:currentColor;opacity:.13;font-family:Georgia,Times New Roman,serif;font-size:3.5rem;font-style:normal;position:absolute;bottom:-7px;right:5px;transform:rotate(-8deg)}.felt .card.joker>i{opacity:.2;writing-mode:vertical-rl;text-orientation:upright;font-family:Noto Serif SC,serif;font-size:1.55rem;line-height:1.05;bottom:5px;right:7px;transform:none}.felt .card.joker>b.joker-name{color:currentColor;letter-spacing:.08em;writing-mode:vertical-rl;text-orientation:upright;font-family:Noto Serif SC,serif;font-size:1.18rem;font-weight:900;line-height:1.05;position:absolute;top:8px;left:9px}.hand .card:hover{transform:translateY(-8px);box-shadow:0 10px 18px #001d14a6,inset 0 0 0 1px #fff}.hand{-webkit-user-select:none;user-select:none;touch-action:pan-y}.hand .card{cursor:grab}.hand .card:active{cursor:grabbing}.hand .card.selected,.hand .card.selected:hover{transform:translateY(-20px);box-shadow:0 12px 22px #001d14b8,0 0 0 2px #f0ca6d}.bottom-cards .card{width:62px;height:90px;margin-left:0}.seat-last-play .card{width:48px;height:68px;margin-left:-16px;padding:5px 6px}.seat-last-play .card b,.seat-last-play .card span{font-size:.92rem}.seat-last-play .card>i{font-size:1.7rem}.felt .card-back{color:#f2dc9f;background:radial-gradient(circle,#d6ba70 0 8%,#0000 9%),repeating-linear-gradient(45deg,#163f76 0 5px,#235992 5px 10px);border:3px double #ead9ad;justify-content:center;align-items:center;box-shadow:0 4px 10px #001d1480,inset 0 0 0 3px #153663}.felt .card.rank-only,.felt .card.rank-only b{color:#182a24}.felt .card.rank-only .played-suit-dot{color:#52605b;font-size:1.15rem}.felt .card.rank-only>i{color:#52605b;filter:none;opacity:.12}.player-view .center-play{inset:38% 22% 27%}.felt .my-area{width:min(96%,1220px)}.felt .center-play>p{font-size:1.12rem;font-weight:700}.felt .self-seat{font-size:1rem}.felt .bottom-label{font-size:.9rem;font-weight:700}.felt .actions button{height:42px;padding:0 24px;font-size:1rem;font-weight:700}.table-nav{font-size:1rem}.result-actions{justify-content:center;gap:10px;display:flex}.result-actions button{color:#315444;background:#f7efd9;border:1px solid #bda96f;border-radius:8px;padding:11px 18px;font-weight:700}.result-actions .danger-button{color:#9c3026;background:#fff0ed;border-color:#d69082}.closed-game-page{background:radial-gradient(circle at 50% 35%,#175b46,#031f18 68%);place-items:center;min-height:100vh;padding:24px;display:grid}.closed-game-page section{color:#173d30;text-align:center;background:#faf7ee;border:1px solid #d1b66c;border-radius:18px;gap:14px;width:min(520px,92vw);padding:38px;display:grid;box-shadow:0 24px 70px #0008}.closed-game-page h1,.closed-game-page p{margin:0}.closed-game-page small{color:#718078}.closed-game-page button{justify-self:center;margin-top:8px}.result-big-score{background:#eee9df;border-radius:12px;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin:22px 0;padding:18px;display:grid}.result-big-score strong{align-items:center;gap:9px;font-size:2.5rem;display:flex}.result-big-score i{color:#f05f13;font-style:normal}.result-big-score b{color:#60f}.result-big-score em{color:#263b32;font-style:normal}.locked-seat .remove-seat-button{color:#a3392f}.table-page .internal-use-banner{min-height:28px;position:relative}.table-page{min-height:100dvh}.table-page .felt{touch-action:manipulation;height:calc(100dvh - 82px)}.table-page .site-footer.compact{z-index:25;color:#c4d4cc;background:#082c22d9;border:1px solid #c4ad6e55;border-radius:7px;min-height:0;padding:5px 8px;position:fixed;bottom:7px;left:12px}.table-page .site-footer.compact button{color:#f0cd70}.table-meta{align-items:center;gap:8px;min-width:0;display:flex}.table-settings{flex:none;position:relative}.table-settings-button{color:#f0d27f;background:#0d3428;border:1px solid #758e80;border-radius:9px;place-items:center;width:36px;height:36px;display:grid}.table-settings-menu{z-index:30;color:#234737;text-align:left;background:#faf7ee;border:1px solid #cdb675;border-radius:12px;gap:10px;min-width:218px;padding:14px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 36px #0007}.table-settings-menu label{align-items:center;gap:8px;font-size:.78rem;font-weight:700;display:flex}.table-settings-menu input{accent-color:#176047;width:17px;height:17px}.table-settings-menu label svg{color:#176047;margin-left:auto}.table-settings-menu fieldset{border:1px solid #ded4bc;border-radius:8px;gap:7px;margin:0;padding:9px;display:grid}.table-settings-menu legend{color:#7f6a35;padding:0 5px;font-size:.68rem;font-weight:800}.table-order-menu-button{color:#315444;background:#f4ead0;border:1px solid #bda96f;border-radius:7px;padding:8px 10px;font-size:.74rem;font-weight:800}@media (width<=900px){.seat-info{flex-wrap:wrap;max-width:180px}.last-play-toggle{margin-left:42px}}@media (width<=760px){.review-player-summary-grid header{grid-template-columns:48px minmax(72px,1fr) 92px;gap:6px}.review-player-direction{padding-left:4px}.review-player-summary-grid header>strong{padding-right:4px;font-size:.66rem}.setup-grid,.board-stats{grid-template-columns:1fr}.room-create-form{grid-template-columns:1fr;min-width:0}.team-name-inputs,.team-slot-grid{grid-template-columns:1fr}.seat-picker-row{grid-template-columns:1fr 1fr}.seat-picker-row button{grid-column:1/-1}.active-game-link,.room-active-banner{flex-direction:column;align-items:flex-start;gap:7px}.room-active-actions{width:100%}.review-match-score{width:100%;min-width:0}.replay-tables.duplicate,.replay-player-rows>div{grid-template-columns:1fr}.replay-table-head,.replay-stepper{flex-direction:column;align-items:flex-start}.replay-table-head>div:last-child{text-align:left}.room-active-actions button{flex:1}.turn-timer{min-width:205px;padding:9px 11px;top:16%}.turn-timer>small{display:none}.turn-timer .turn-seconds{font-size:2.2rem}.turn-timer .turn-player{font-size:.78rem}.time-bank span{font-size:.62rem}.time-bank b{font-size:1.05rem}.seat-info{max-width:130px}.seat-info .avatar,.table-meta code{display:none}.other-table-progress{white-space:nowrap;max-width:145px;overflow:hidden}.felt .card{width:50px;height:74px;margin-left:-25px;padding:4px}.felt .card b{font-size:1rem}.felt .card span{font-size:1.1rem}.bottom-cards .card{width:46px;height:66px;margin-left:0}.felt .card.rank-only b{font-size:1.12rem}.bottom-row{gap:7px}.live-score{min-width:82px;padding:6px 8px}.live-score strong{font-size:.85rem}.last-play-toggle{margin-left:0}.countdown-card,.result-card{padding:28px 20px}}.table-nav{min-height:60px;font-size:1rem}.table-nav button{padding:10px 12px;font-size:1rem;font-weight:700}.player-view .opponent.left{top:36%;left:clamp(56px,9vw,230px)}.player-view .opponent.right{top:36%;right:clamp(56px,9vw,230px)}.spectator-view .opponent.left{top:38%;left:clamp(42px,7vw,170px)}.spectator-view .opponent.right{top:38%;right:clamp(42px,7vw,170px)}.spectator-view .opponent.top{top:64px;left:72%}.opponent{z-index:4;gap:12px}.seat-info{white-space:nowrap;flex-wrap:nowrap;gap:12px;max-width:none;font-size:1.2rem}.seat-info .seat-history-toggle{flex:none;margin:0;font-size:.72rem;font-weight:800;box-shadow:0 4px 12px #001d1438}.opponent.left .seat-history-toggle{transform:translate(-12px)}.opponent.right .seat-history-toggle{transform:translate(12px)}.seat-info .avatar{width:42px;height:42px;font-size:.9rem}.landlord-mark{padding:4px 9px;font-size:.78rem}.player-play-history{pointer-events:auto;gap:9px;margin-top:13px;display:grid}.player-play-history.left{transform:translate(clamp(90px,12vw,250px))}.player-play-history.right{justify-items:end;transform:translate(clamp(-250px,-12vw,-90px))}.player-play-history.top{justify-items:center;transform:translateY(82px)}.player-play-hand{align-items:center;gap:8px;display:flex}.player-play-history.right .player-play-hand{flex-direction:row-reverse}.player-play-hand>span{color:#f2ddb0;background:#082c22d9;border:1px solid #d3bb79a8;border-radius:10px;flex:none;padding:4px 7px;font-size:.75rem;font-weight:700}.player-play-hand>div{justify-content:center;display:flex}.player-play-history .last-play-toggle{width:max-content;padding:6px 10px;font-size:.72rem;font-weight:800;box-shadow:0 4px 12px #001d1438}.player-play-history .last-play-toggle.active{color:#f3d77e;background:#143f32;border-color:#ead18b}.player-play-history .card{pointer-events:none}.player-play-hand.previous{opacity:.58}.player-play-hand.current>span{color:#173c30;background:#e9cf8d}.felt .player-play-hand .card{width:66px;height:94px;margin-left:-34px;padding:6px 8px}.felt .player-play-hand .card:first-child{margin-left:0}.felt .player-play-hand .card.rank-only b{font-size:1.42rem}.felt .player-play-hand .card.rank-only .played-suit-dot{font-size:1rem}.player-play-history.self{z-index:4;justify-content:center;align-items:flex-end;gap:24px;width:min(88%,980px);margin:0;display:flex;position:absolute;bottom:clamp(250px,26vh,320px);left:50%;transform:translate(-50%)}.player-view .center-play,.spectator-view .center-play{width:max-content;inset:44% auto auto 50%;transform:translate(-50%,-50%)}.felt .center-play>p{background:#0a392bc7;border:1px solid #d6c17b55;border-radius:18px;margin:0;padding:8px 14px;font-size:1.35rem;box-shadow:0 4px 12px #001d144d}.felt .card{border-radius:11px;width:88px;height:126px;margin-left:-30px;padding:9px 11px}.felt .card b{font-size:1.72rem}.felt .card span{font-size:1.95rem}.felt .card>i{font-size:4rem}.felt .card.rank-only b{font-size:1.88rem}.felt .my-area{width:min(97%,1360px);bottom:14px}.felt .actions{z-index:18;align-items:center;height:62px;position:absolute;top:-68px;left:0;right:0}.felt .actions button{border-radius:9px;height:48px;padding:0 30px;font-size:1.15rem}.felt .self-seat{gap:10px;margin-top:9px;font-size:1.15rem}.felt .self-seat .avatar{width:34px;height:34px;font-size:.85rem}.card-order-toggle{padding:6px 11px;font-size:.78rem}.bottom-cards .card{width:72px;height:102px}.felt .bottom-label{font-size:1rem}.live-score{min-width:122px;padding:10px 13px}.live-score>span,.live-score small{font-size:.68rem}.live-score strong{font-size:1.22rem}@media (height<=800px) and (width>=761px){.player-view .opponent.left,.player-view .opponent.right{top:27%}.bottom-cards .card{width:58px;height:82px}.live-score{min-width:108px;padding:8px 10px}}@media (width<=900px){.player-view .opponent.left{left:20px}.player-view .opponent.right{right:20px}.spectator-view .opponent.left{left:14px}.spectator-view .opponent.right{right:14px}.seat-info{white-space:normal;max-width:210px}.felt .player-play-hand .card{width:56px;height:82px;margin-left:-31px}.player-play-history.left{transform:translate(54px)}.player-play-history.right{transform:translate(-54px)}}@media (width<=760px){.table-nav,.table-nav button{font-size:.82rem}.player-view .opponent.left{left:7px}.player-view .opponent.right{right:7px}.spectator-view .opponent.left{left:7px}.spectator-view .opponent.right{right:7px}.spectator-view .opponent.top{top:58px;left:76%}.seat-info{gap:6px;max-width:145px;font-size:.88rem}.seat-info .avatar{display:none}.player-play-history{gap:5px;margin-top:7px}.player-play-history.left{transform:translate(26px)}.player-play-history.right{transform:translate(-26px)}.player-play-history.top{transform:translateY(48px)}.player-play-hand{gap:4px}.player-play-hand>span{padding:3px 5px;font-size:.58rem}.felt .player-play-hand .card{width:48px;height:70px;margin-left:-26px;padding:4px 5px}.felt .player-play-hand .card.rank-only b{font-size:1.02rem}.player-play-history.self{gap:10px;width:96%;bottom:218px;left:50%}.felt .center-play>p{padding:6px 10px;font-size:.96rem}.felt .card{width:58px;height:86px;margin-left:-30px;padding:5px 6px}.felt .card b,.felt .card.rank-only b{font-size:1.2rem}.felt .card span{font-size:1.3rem}.felt .hand{min-height:92px}.felt .actions{height:50px}.felt .actions button{height:42px;padding:0 22px;font-size:1rem}.bottom-cards .card{width:54px;height:78px;margin-left:0}.live-score{min-width:92px;padding:7px 9px}}@media (orientation:landscape) and (pointer:coarse){.felt .hand{overscroll-behavior-x:contain;touch-action:pan-x;justify-content:flex-start;max-width:100%;padding-inline:12px;display:flex;overflow:auto visible}.felt .hand .card{flex:none}.felt .hand .card:first-child{margin-left:0}.felt .actions{flex-wrap:nowrap;justify-content:flex-start;padding-inline:4px;overflow-x:auto}.felt .actions button{flex:none}}@media (orientation:landscape) and (height<=600px){.table-page .felt{height:calc(100dvh - 82px)}.table-nav{min-height:50px;padding-inline:max(10px, env(safe-area-inset-left)) max(10px, env(safe-area-inset-right));font-size:.82rem}.table-nav>div:nth-child(2){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.table-meta code{display:none}.table-settings-button{width:32px;height:32px}.player-view .opponent.left,.player-view .opponent.right{top:23%}.spectator-view .opponent.left,.spectator-view .opponent.right{top:25%}.spectator-view .opponent.top{top:42px}.seat-info{gap:6px;max-width:170px;font-size:.78rem}.seat-info .avatar{width:30px;height:30px;font-size:.72rem}.opponent-quartz-clock{flex-basis:32px;width:32px;height:32px}.opponent-quartz-clock:before,.opponent-quartz-clock:after{inset:3px 14px}.opponent-quartz-clock b{font-size:.72rem}.turn-timer,.spectator-view .turn-timer{min-width:150px;padding:6px 8px;top:16%}.turn-timer .turn-seconds{font-size:1.65rem}.turn-timer .turn-player{font-size:.68rem}.time-bank span,.turn-timer>small{font-size:.55rem}.time-bank b{font-size:.82rem}.player-play-history.self{gap:10px;width:90%;bottom:132px}.felt .player-play-hand .card{width:42px;height:60px;margin-left:-21px;padding:3px 4px}.felt .player-play-hand .card.rank-only b{font-size:.9rem}.felt .center-play>p{padding:5px 9px;font-size:.82rem}.felt .my-area{bottom:max(5px, env(safe-area-inset-bottom));width:calc(100% - 16px)}.felt .actions{flex-wrap:nowrap;justify-content:flex-start;height:38px;padding-inline:4px;overflow-x:auto}.felt .actions button{flex:none;height:34px;padding:0 13px;font-size:.82rem}.felt .hand{overscroll-behavior-x:contain;touch-action:pan-x;justify-content:flex-start;max-width:100%;min-height:72px;padding:18px 12px 5px;display:flex;overflow:auto visible}.felt .hand .card{flex:none;width:52px;height:74px;margin-left:-25px}.felt .hand .card:first-child{margin-left:0}.felt .hand .card.selected,.felt .hand .card.selected:hover{transform:translateY(-13px)}.felt .self-seat{flex-wrap:wrap;margin-top:2px;font-size:.72rem}.bottom-area{top:8px}.bottom-cards .card{width:38px;height:54px}.live-score{min-width:78px;padding:5px 7px}.live-score strong{font-size:.8rem}.result-card{width:min(620px,100vw - 24px);max-height:calc(100dvh - 18px);padding:18px 20px}.result-card h2{margin:5px 0;font-size:1.45rem}.result-ledger{max-height:42dvh;overflow-y:auto}}.felt .surrender-corner{z-index:7;color:#fff2e8;opacity:.82;background:#8f2f27;border-color:#e68b78;min-width:0;padding:5px 9px;font-size:.68rem;font-weight:800;position:absolute;bottom:clamp(12px,1.8vh,22px);right:clamp(12px,1.4vw,24px)}.felt .surrender-corner:hover{opacity:1;background:#aa3a30}.felt .card.bottom-origin:after{z-index:8;content:"";background:#d5a82f;border:2px solid #fff8dc;border-radius:50%;width:10px;height:10px;position:absolute;bottom:7px;left:7px;box-shadow:0 1px 4px #4c2e0f88}.felt.full-observer .reported-hand{align-items:flex-start;gap:6px;width:min(27vw,345px)}.felt.full-observer .opponent.right .reported-hand{flex-direction:row-reverse}.felt.full-observer .opponent.top .reported-hand{justify-content:center;width:345px}.felt.full-observer .reported-hand>span{flex:none;padding-top:4px;font-size:.66rem}.felt.full-observer .reported-hand>div{grid-template-columns:repeat(10,30px);gap:3px;width:min-content;display:grid}.felt.full-observer .reported-hand .card,.felt.full-observer .reported-hand .card:first-child{border-radius:5px;width:30px;height:44px;margin:0;padding:3px 4px;box-shadow:0 2px 5px #001d1442}.felt.full-observer .reported-hand .card b,.felt.full-observer .reported-hand .card span,.felt.full-observer .reported-hand .card i{font-size:.66rem}.felt .reported-hand.terminal-hand{align-items:flex-start;gap:6px;width:min(31vw,355px)}.felt .opponent.right .reported-hand.terminal-hand{flex-direction:row-reverse}.felt .opponent.top .reported-hand.terminal-hand{justify-content:center;width:355px}.felt .reported-hand.terminal-hand>span{flex:none;padding-top:4px;font-size:.68rem}.felt .reported-hand.terminal-hand>div{grid-template-columns:repeat(9,34px);gap:4px;width:min-content;display:grid}.felt .reported-hand.terminal-hand .card,.felt .reported-hand.terminal-hand .card:first-child{border-radius:6px;width:34px;height:49px;margin:0;padding:3px 4px;box-shadow:0 2px 6px #001d1442}.felt .reported-hand.terminal-hand .card b,.felt .reported-hand.terminal-hand .card span,.felt .reported-hand.terminal-hand .card i{font-size:.7rem}.table-title{justify-content:center;align-items:center;gap:14px;min-width:0;display:flex}.observer-table-switch{background:#0d3428;border:1px solid #5e756b;border-radius:10px;gap:5px;padding:3px;display:inline-flex}.table-nav .observer-table-switch button{color:#c5d3cd;border-radius:7px;gap:1px;min-width:62px;padding:5px 9px;font-size:.76rem;line-height:1.05;display:grid}.table-nav .observer-table-switch button.active{color:#15392d;background:#d8bb70}.observer-table-switch small{font-size:.58rem;font-weight:600}.replay-comparison{margin-top:3px;line-height:1.35;color:#536c61!important;display:block!important}.replay-comparison b{color:#8e671f}.review-player-summary{gap:14px;display:grid}.review-player-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.review-player-summary-grid>article{background:#fbfaf5;border:1px solid #ddd5c6;border-left:4px solid #b8b1a4;border-radius:9px;gap:11px;padding:13px 14px;display:grid}.review-player-summary-grid>article.team-row-A{background:#fff0e5;border-left-color:#f05f13}.review-player-summary-grid>article.team-row-B{background:#eee8ff;border-left-color:#60f}.review-player-summary-grid header{grid-template-columns:minmax(64px,.7fr) minmax(90px,1.5fr) minmax(105px,.9fr);align-items:center;gap:12px;display:grid}.review-player-direction{color:#52635b;padding-left:12px;font-weight:800}.review-player-name{color:#243e34;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;overflow:hidden}.review-player-summary-grid header>div{gap:3px;display:grid}.review-player-summary-grid header small{color:#f3f6f3;background:0 0;border:0;border-radius:0;width:fit-content;padding:0;font-size:.7rem}.review-player-summary-grid header>div>b{color:#f3f6f3}.review-player-summary-grid>article.team-row-A header>div>b,.review-player-summary-grid>article.team-row-A header small,.review-player-summary-grid>article.team-row-A header>strong,.review-player-summary-grid>article.team-row-A header em{color:#ff9b62}.review-player-summary-grid>article.team-row-B header>div>b,.review-player-summary-grid>article.team-row-B header small,.review-player-summary-grid>article.team-row-B header>strong,.review-player-summary-grid>article.team-row-B header em{color:#b99aff}.review-player-summary-grid header>strong{color:#40564d;white-space:nowrap;text-align:right;background:0 0;border:0;border-radius:0;padding:0 12px 0 0;font-size:.72rem}.review-player-summary-grid header em{color:#263f35;margin-left:5px;font-size:1.25rem;font-style:normal}.review-player-summary-grid>article.team-row-A header em{color:#b84508}.review-player-summary-grid>article.team-row-B header em{color:#5400d2}.reserve-bid-status{justify-content:center;gap:5px;display:grid}.reserve-bid-status span{color:#fff5d6;background:#08271fdb;border:1px solid #ead28a;border-radius:999px;min-width:170px;padding:7px 14px;font-weight:800}.reserve-bid-status.immediate span{color:#fff2a8;background:#5e4a00ed;border-color:#ffe062;box-shadow:0 0 18px #ffd43b55}.player-bid-status span{min-width:190px}.review-player-summary-grid article>div:last-child{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.review-player-summary-grid article>div:last-child span{color:#7a817d;background:#f0ece2;border-radius:6px;gap:2px;padding:7px 8px;font-size:.65rem;display:grid}.review-player-summary-grid article>div:last-child b{color:#244b3d;font-size:.82rem}@media (width<=900px){.table-title{gap:6px}.table-nav .observer-table-switch button{min-width:48px;padding:4px 6px}.review-player-summary-grid{grid-template-columns:1fr}}@media (width<=760px){.table-title{justify-content:flex-start}.observer-table-switch small{display:none}.felt .reported-hand.terminal-hand{width:280px}.felt .reported-hand.terminal-hand>div{grid-template-columns:repeat(9,27px);gap:3px}.felt.full-observer .reported-hand{width:250px}.felt.full-observer .reported-hand>div{grid-template-columns:repeat(10,23px);gap:2px}.felt.full-observer .reported-hand .card,.felt.full-observer .reported-hand .card:first-child{width:23px;height:35px;padding:2px 3px}.felt .reported-hand.terminal-hand .card,.felt .reported-hand.terminal-hand .card:first-child{width:27px;height:40px}}.table-page:not(.compact-table) .player-view .opponent{width:31%;top:23%}.table-page:not(.compact-table) .player-view .opponent.left{left:1%}.table-page:not(.compact-table) .player-view .opponent.right{right:1%}.table-page:not(.compact-table) .player-view .seat-info{gap:6px;width:100%;min-width:0;font-size:.85rem}.table-page:not(.compact-table) .player-view .seat-info>b{text-overflow:ellipsis;min-width:0;overflow:hidden}.table-page:not(.compact-table) .player-view .player-play-history{width:100%;min-width:0;margin-top:8px}.table-page:not(.compact-table) .player-view .player-play-history.left{padding-left:32px;transform:none}.table-page:not(.compact-table) .player-view .player-play-history.right{padding-right:32px;transform:none}.table-page:not(.compact-table) .player-view .player-play-history.self{width:34%;margin:0;bottom:244px}.table-page:not(.compact-table) .player-view .player-play-hand{flex-direction:column;gap:2px;width:100%;min-width:0}.table-page:not(.compact-table) .player-view .player-play-history.left .player-play-hand{align-items:flex-end}.table-page:not(.compact-table) .player-view .player-play-history.right .player-play-hand{align-items:flex-start}.table-page:not(.compact-table) .player-view .player-play-hand>div{justify-content:safe center;max-width:100%;padding:1px;overflow-x:auto}.table-page:not(.compact-table) .player-view .player-play-hand>span{padding:2px 5px;font-size:.65rem}.table-page:not(.compact-table) .player-view .player-play-hand .card{--card-width:44px;--card-height:60px;--card-rank-size:20px;--card-suit-size:18px;--card-pad-x:4px;--card-pad-y:4px;--card-suit-gap:2px;width:44px;height:60px;margin-left:-18px;padding:4px}.table-page:not(.compact-table) .player-view .player-play-hand .card:first-child{margin-left:0}.table-page:not(.compact-table) .player-view .bottom-area{top:8px}.table-page:not(.compact-table) .player-view .turn-timer{min-width:205px;padding:4px 8px;top:118px}.table-page:not(.compact-table) .player-view .turn-timer .turn-seconds{font-size:1.5rem}.table-page:not(.compact-table) .player-view .turn-timer .turn-player{font-size:.65rem}.table-page:not(.compact-table) .player-view .turn-timer .time-bank{margin:0}.table-page:not(.compact-table) .player-view .turn-timer .time-bank b{font-size:1rem}.table-page:not(.compact-table) .player-view .turn-timer>small{display:none}.table-page:not(.compact-table) .player-view .center-play{max-width:28%;top:8px;left:auto;right:12px;transform:none}.table-page:not(.compact-table) .player-view .center-play>p{font-size:.85rem}.table-page:not(.compact-table) .player-view .actions{justify-content:center;width:100%;left:0;right:0}.table-page .table-notice{z-index:60;max-width:min(420px,72vw);position:fixed;top:48%;left:50%;transform:translate(-50%,-50%)}.table-notice button{color:#f0eee4;background:#08271ee8;border:1px solid #ffffff24;border-radius:8px;padding:8px 12px;font-size:.78rem;line-height:1.4;box-shadow:0 4px 18px #00170e40}.table-page.compact-table{--hand-height:clamp(58px, 20dvh, 108px);--hand-lift:12px;--table-bottom:max(4px, env(safe-area-inset-bottom));isolation:isolate;height:100dvh;min-height:0}.compact-table .felt{isolation:auto;border-width:4px;border-color:#173b2c;height:100%}.compact-table .table-corners{inset:max(2px, env(safe-area-inset-top)) max(5px, env(safe-area-inset-right)) auto max(5px, env(safe-area-inset-left));z-index:30;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute}.compact-table .table-board-counter{color:#eadcbb;font-size:.7rem}.compact-table .table-settings{pointer-events:auto}.compact-table .table-settings-button{background:0 0;border:0;width:30px;height:30px}.compact-table .table-settings-menu{gap:7px;min-width:200px;max-height:calc(100dvh - 48px);padding:10px;top:32px;overflow-y:auto}.compact-table .table-settings-menu label{font-size:.7rem}.compact-table .table-settings-menu fieldset{padding:7px}.compact-table .table-settings-menu legend{font-size:.64rem}.compact-table .table-order-menu-button{padding:7px;font-size:.68rem}.compact-table .observer-table-switch{justify-content:center;display:flex}.compact-table .observer-table-switch button{color:#e8ddbd;background:0 0;border:0;border-radius:5px;padding:5px 8px;font-size:.7rem;display:grid}.compact-table .observer-table-switch button.active{color:#183c30;background:#e8d093}.compact-table .bottom-area{top:34px;left:50%;transform:translate(-50%)}.compact-table .bottom-row{gap:7px}.compact-table .bottom-cards{gap:3px}.compact-table .live-score{min-width:64px;padding:4px 6px}.compact-table .live-score>span,.compact-table .live-score small{font-size:.52rem}.compact-table .live-score strong{font-size:.74rem}.compact-table .turn-timer{min-width:0;box-shadow:none;background:0 0;border:0;gap:13px;padding:4px 7px;display:flex;top:88px;left:50%;transform:translate(-50%)}.compact-table .turn-timer .turn-seconds,.compact-table .time-bank b{letter-spacing:0;font-size:1.35rem;font-weight:800;line-height:1}.compact-table .time-bank{margin:0}.compact-table .center-play{pointer-events:none;width:37%;top:6px;left:50%;transform:translate(-50%)}.compact-table .center-play>p{box-shadow:none;padding:3px 5px;font-size:.68rem;line-height:1.3}.compact-table .opponent{width:31%;max-height:calc(100% - var(--hand-height) - var(--hand-lift) - 125px);overscroll-behavior:contain;scrollbar-width:thin;gap:3px;top:77px;overflow:auto}.compact-table .opponent>*{flex:none}.compact-table .opponent.left{left:max(7px, env(safe-area-inset-left))}.compact-table .opponent.right{right:max(7px, env(safe-area-inset-right))}.compact-table .opponent.top{width:32%;max-height:calc(100% - 170px);top:124px;left:50%;transform:translate(-50%)}.compact-table .seat-info{white-space:normal;flex-direction:row;align-items:center;gap:4px;width:100%;max-width:100%;font-size:.7rem;display:flex}.compact-table .opponent.right .seat-info{text-align:right;justify-content:flex-end;align-items:center}.compact-table .opponent.top .seat-info{text-align:center;justify-content:center;align-items:center}.compact-table .seat-label{flex:auto;gap:2px;min-width:0;max-width:100%;line-height:1.25;display:grid}.compact-table .seat-label>b{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:inherit;overflow:hidden}.compact-table .seat-info .seat-label>b{display:flex}.compact-table .seat-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.compact-table .seat-label>span{align-items:center;gap:4px;display:flex}.compact-table .opponent.right .seat-label>span{justify-content:flex-end}.compact-table .opponent.top .seat-label>span{justify-content:center}.compact-table .landlord-mark{padding:1px 4px;font-size:.55rem;line-height:1.2;display:inline-block}.compact-table .last-play-toggle{color:#f0d597;background:#0b392a70;border:1px solid #ffffff30;border-radius:5px;place-items:center;width:28px;height:24px;min-height:24px;margin:0;padding:0;display:grid}.compact-table .opponent.left .seat-history-toggle{transform:translate(-3px)}.compact-table .opponent.right .seat-history-toggle{transform:translate(3px)}.compact-table .last-play-toggle.active{color:#173f31;background:#d9be78}.compact-table .player-play-history,.compact-table .player-play-history.left,.compact-table .player-play-history.right,.compact-table .player-play-history.top{gap:4px;width:100%;min-width:0;margin:0;transform:none}.compact-table .player-play-hand{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;max-width:100%}.compact-table .player-play-history.right .player-play-hand{flex-direction:column;align-items:flex-end}.compact-table .player-play-hand>span{padding:1px 4px;font-size:.5rem}.compact-table .player-play-hand>div{scrollbar-width:thin;justify-content:flex-start;max-width:100%;padding:1px;overflow-x:auto}.compact-table .player-play-history.self{left:50%;bottom:calc(var(--hand-height) + var(--hand-lift) + var(--table-bottom) + 52px);justify-items:center;width:34%;min-width:0;margin:0;display:grid;position:absolute;transform:translate(-50%)}.compact-table .player-play-history.self .player-play-hand{align-items:center;width:100%}.compact-table .player-play-history.self .player-play-hand>div{justify-content:safe center}.compact-table .opponent .seat-info{width:78%}.compact-table .player-play-history.left{padding-left:24px}.compact-table .player-play-history.right{padding-right:24px}.compact-table .player-play-history.left .player-play-hand,.compact-table .player-play-history.right .player-play-hand{width:100%}.compact-table .player-play-history.left .player-play-hand{align-items:flex-end}.compact-table .player-play-history.right .player-play-hand{align-items:flex-start}.compact-table .reported-hand{flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-width:0;font-size:.55rem}.compact-table .reported-hand>div{max-width:100%;padding:1px;overflow-x:auto}.compact-table .felt.full-observer .reported-hand,.compact-table .felt .reported-hand.terminal-hand{flex-direction:column;width:100%}.compact-table .felt.full-observer .reported-hand>div,.compact-table .felt .reported-hand.terminal-hand>div{gap:0;width:auto;display:flex}.compact-table .felt .card{--card-width:32px;width:var(--card-width);height:calc(var(--card-width) * 1.43);border-radius:5px;flex:none;margin-left:-13px;padding:9% 10%;box-shadow:0 2px 4px #001d1450;container-type:inline-size}.compact-table .felt .card:first-child{margin-left:0}.compact-table .felt .card b,.compact-table .felt .card.rank-only b{font-size:55cqw;line-height:1}.compact-table .felt .card span,.compact-table .felt .card.rank-only .played-suit-dot{margin-top:1px;font-size:58cqw;line-height:1}.compact-table .felt .card>i{font-size:115cqw;line-height:1;bottom:1%;right:4%}.compact-table .felt .card.joker>b.joker-name{letter-spacing:0;font-size:40cqw;top:7%;left:12%}.compact-table .felt .card.joker>i{font-size:32cqw;bottom:5%;right:7%}.compact-table .felt .card-back svg{width:65%;height:65%}.compact-table .bottom-cards .card{--card-width:29px;margin:0;padding:3px}.compact-table .felt .player-play-hand .card,.compact-table .felt .reported-hand .card{--card-width:26px;padding:3px}.compact-table .felt .reported-hand .card b{font-size:55cqw}.compact-table .felt .reported-hand .card span{font-size:58cqw}.compact-table .felt .reported-hand .card i{font-size:115cqw}.compact-table .felt .card.bottom-origin:after{border-width:1px;width:min(9px,20cqw);height:min(9px,20cqw);bottom:5%;left:10%}.compact-table .my-area{bottom:var(--table-bottom);left:max(4px, env(safe-area-inset-left));right:max(4px, env(safe-area-inset-right));width:auto;height:calc(var(--hand-height) + var(--hand-lift));z-index:10;transform:none}.compact-table .felt .hand{height:100%;min-height:0;padding:var(--hand-lift) 0 0;touch-action:none;justify-content:center;align-items:flex-end;gap:2px;display:flex;overflow:visible}.compact-table .felt .hand .card{width:min(64px, calc(var(--hand-height) / 1.43), calc((100% - (var(--hand-count) - 1) * 2px) / var(--hand-count)));height:var(--hand-height);margin:0;padding:4px 3px}.compact-table .felt .hand .card.selected,.compact-table .felt .hand .card.selected:hover{transform:translateY(calc(-1 * var(--hand-lift)))}.compact-table .felt .hand .card:hover{transform:none}.compact-table .felt>.actions{top:auto;left:50%;right:auto;bottom:calc(var(--hand-height) + var(--hand-lift) + var(--table-bottom) + 8px);z-index:90;flex-wrap:nowrap;justify-content:center;gap:8px;width:max-content;max-width:65%;height:38px;padding:0;display:flex;position:absolute;overflow:visible;transform:translate(-50%)}.compact-table .felt .actions button{min-width:52px;height:36px;padding:0 17px;font-size:.82rem}.compact-table .felt>.self-seat{right:max(7px, env(safe-area-inset-right));bottom:calc(var(--hand-height) + var(--hand-lift) + var(--table-bottom) + 8px);z-index:12;text-align:right;pointer-events:none;max-width:23%;margin:0;font-size:.68rem;position:absolute}.compact-table .self-seat .seat-label>span{justify-content:flex-end}.compact-table .table-notice{top:38px;left:auto;right:max(9px, env(safe-area-inset-right));z-index:60;max-width:29vw;transform:none}.compact-table .table-notice button{max-height:40px;padding:5px 9px;font-size:.68rem;overflow-y:auto}@media (height>=480px){.compact-table .opponent{top:27%}.compact-table .opponent.top{top:33%}.compact-table .turn-timer{top:112px}.compact-table .bottom-area{top:42px}.compact-table .bottom-cards .card{--card-width:38px}.compact-table .seat-info{font-size:.8rem}}.replay-table-head>div:last-child{min-width:0;max-width:min(100%,430px)}.replay-export-area{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;max-width:100%;display:flex}.replay-export{color:#72551e;background:0 0;border:1px solid #bda96f;border-radius:7px;flex:none;padding:6px 11px;font-size:.74rem;font-weight:800}.replay-export-area p{color:#7a827e;overflow-wrap:anywhere;flex:160px;min-width:0;margin:0;font-size:.7rem}.replay-export-area textarea{color:#294d3f;resize:vertical;background:0 0;border:1px solid #d3ccbc;border-radius:7px;flex:100%;width:100%;min-width:0;max-width:100%;min-height:70px;padding:7px;font:.72rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace}.elapsed-clock{font-variant-numeric:tabular-nums}@media (width<=760px){.replay-table-head>div:last-child{width:100%;max-width:none}.replay-export-area{justify-content:flex-start}.replay-stepper nav{flex-wrap:wrap;width:100%}}.replay-table-head{height:auto;min-height:0;color:inherit;background:0 0;flex-wrap:wrap;min-width:0;padding:0}.replay-table-head>div:first-child{flex:160px;min-width:0}.replay-table-head>div:last-child{flex:260px;min-width:0}.review-page{overflow-wrap:anywhere;width:100%;min-width:0}.review-page>*,.review-page .panel,.review-page .review-section-title>*,.review-page .review-player-summary-grid>article,.review-page .replay-table-head>div{min-width:0;max-width:100%}.review-page .review-match-score{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-width:0}.review-page .review-player-summary-grid header{height:auto;padding:0}@media (width<=1000px){.review-page .replay-tables.duplicate{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.replay-table-head{align-items:stretch;gap:10px}.replay-table-head>div:first-child,.replay-table-head>div:last-child{flex-basis:100%}.replay-stepper nav{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0;display:grid}.replay-stepper nav>button{width:100%;min-width:0}.replay-stepper nav>button:first-child{grid-area:1/1}.replay-stepper nav>button.primary{grid-area:1/2}.replay-stepper nav .replay-jump{grid-area:2/1/auto/-1;justify-content:center}}.player-view .turn-timer.pool-only{text-align:center;min-width:196px;padding:8px 14px;display:block;top:118px}.turn-timer.pool-only .time-bank{justify-content:center;align-items:center}.turn-timer.pool-only .time-bank span{font-size:.7rem}.turn-timer.pool-only .time-bank b{font-size:1.65rem;line-height:1}.central-quartz-clock{z-index:7;aspect-ratio:1;color:#b55412;font-variant-numeric:tabular-nums;pointer-events:none;background:#fff;border:3px solid #c76a22;border-radius:18px;place-items:center;width:clamp(96px,8vw,116px);display:grid;position:absolute;top:47%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 9px 25px #234f6d33}.central-quartz-clock.team-B{color:#7044a5;border-color:#7044a5}.central-quartz-clock b{z-index:1;font-size:3.1rem;line-height:1;position:relative}.central-quartz-clock span{z-index:1;letter-spacing:.16em;text-align:center;font-size:.62rem;font-weight:900;position:absolute;bottom:8px;left:0;right:0}.central-quartz-clock.urgent{color:#c69a00;background:#fff;border-color:#d3a900;animation:.65s ease-in-out infinite alternate central-clock-pulse}@keyframes central-clock-pulse{to{box-shadow:0 9px 30px #d3a90066}}.flow-overlay.board-result-overlay{touch-action:none;overscroll-behavior:contain}.board-result-overlay .result-card{touch-action:pan-y;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}.review-player-summary-grid header{grid-template-columns:minmax(0,1fr) minmax(72px,8em) minmax(0,1fr)}.review-player-summary-grid .review-player-name{text-align:center;justify-self:center;width:100%}.review-player-summary-grid .review-player-direction{justify-self:start}.review-player-summary-grid header>strong{color:#40564d;justify-self:end}.review-player-summary-grid>article.team-row-A header>strong{color:#8e3b0c}.review-player-summary-grid>article.team-row-B header>strong{color:#4e238d}@media (width<=900px){.player-view .turn-timer.pool-only{min-width:168px;padding:6px 10px;top:112px}.turn-timer.pool-only .time-bank b{font-size:1.45rem}.central-quartz-clock{border-width:2px;border-radius:15px;width:86px;top:47%}.central-quartz-clock b{font-size:2.35rem}.central-quartz-clock span{font-size:.55rem;bottom:6px}}@media (orientation:landscape) and (height<=600px){.player-view .turn-timer.pool-only{min-width:128px;padding:4px 8px;top:40px;left:18%}.turn-timer.pool-only .time-bank span{font-size:.52rem}.turn-timer.pool-only .time-bank b{font-size:1.05rem}.central-quartz-clock{border-radius:11px;width:62px;top:47%}.central-quartz-clock b{font-size:1.8rem}.central-quartz-clock span{font-size:.43rem;bottom:3px}.board-result-overlay{padding-inline:max(18px,env(safe-area-inset-left)) max(18px,env(safe-area-inset-right))}.board-result-overlay .result-card{width:min(680px,100vw - 48px);max-height:calc(100dvh - 20px)}}@media (width<=760px){.review-player-summary-grid header{grid-template-columns:minmax(0,1fr) minmax(72px,8em) minmax(0,1fr);gap:6px}}.team-4v4-seat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0;display:grid}.team-seat-column{grid-template-rows:auto repeat(4,minmax(110px,1fr));gap:10px;min-width:0;display:grid}.team-seat-column h4{color:#174d39;text-align:center;background:#e6eee7;border-radius:8px;margin:0;padding:8px}.team-seat-column .locked-seat{min-width:0}.team-seat-column .locked-seat>b{text-overflow:ellipsis;max-width:100%;overflow:hidden}.team-seat-column .seat-inline-action{align-self:stretch;margin-top:auto}.internal-use-banner{z-index:50;color:#382b0e;letter-spacing:.08em;text-align:center;background:#f3c969;place-items:center;min-height:28px;padding:5px 16px;font-size:.72rem;font-weight:850;display:grid;position:sticky;top:0}.auth-shell{min-height:calc(100vh - 82px)}.brand-panel .login-use-notice{font-size:.9rem;line-height:1.7;display:block}@media (width<=760px){.brand-panel .login-use-notice{margin-top:24px}}.site-header{z-index:40;position:sticky;top:28px}.logo-button{color:inherit;background:0 0;border:0;padding:0}.main-menu{align-self:stretch;align-items:center;gap:5px;display:flex}.main-menu button{color:#c7d8d0;background:0 0;border:0;border-bottom:3px solid #0000;align-self:stretch;align-items:center;gap:7px;padding:0 22px;font-weight:700;display:flex}.main-menu button:hover,.main-menu button.active{color:#fff2ce;background:#ffffff0a;border-bottom-color:#d7b85f}.portal-page{width:min(1240px,100% - 48px);margin:auto;padding:38px 0 70px}.portal-title{border-bottom:1px solid #d5d0c5;justify-content:space-between;align-items:end;margin-bottom:26px;padding:26px 0 34px;display:flex}.portal-title h1{margin:4px 0 8px;font-family:Noto Serif SC,serif;font-size:3rem}.portal-title p:last-child{color:#69756f;margin:0}.notice{z-index:20;color:#176044;background:#e5f5ed;border:1px solid #b7d8c7;border-radius:8px;padding:11px 15px;position:sticky;top:78px}.account-settings{border-top:5px solid #b69543;margin-bottom:20px}.account-summary{grid-template-columns:auto 1fr auto;align-items:center;gap:28px;display:grid}.account-summary h2{margin:3px 0 0;font-family:Noto Serif SC,serif}.account-identity{border-left:1px solid #ded7ca;gap:4px;padding-left:26px;display:grid}.account-identity strong{color:#173c30;font-family:Noto Serif SC,serif;font-size:1.8rem}.account-identity small{color:#9a7a38;letter-spacing:.12em;font-weight:800}.account-summary-actions{color:#75807b;align-items:center;gap:18px;font-size:.75rem;display:flex}.account-summary-actions button{color:#244e3d;background:#f5ecd3;border:1px solid #bba76d;border-radius:8px;padding:8px 16px;font-weight:800}.account-settings.expanded .account-summary{border-bottom:1px solid #e0d9cc;margin-bottom:20px;padding-bottom:18px}.account-setting-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.account-setting-grid form{background:#f8f5ed;border:1px solid #ddd6c9;border-radius:12px;align-content:start;gap:11px;padding:18px;display:grid}.account-setting-grid h3,.account-setting-grid p{margin:0}.account-setting-grid p{color:#6d7772;min-height:38px;font-size:.76rem}.account-setting-grid label{gap:6px;font-size:.75rem;font-weight:700}.account-setting-grid input{width:100%;padding:11px 12px}.account-setting-grid form>small{color:#9a6e22}.account-setting-grid button{justify-self:start;margin-top:3px;padding:10px 17px}.account-message{color:#176047;background:#e5f2eb;border-radius:8px;margin:14px 0 0;padding:10px 12px;font-weight:700}.performance-dashboard{gap:20px;display:grid}.performance-hero{isolation:isolate;color:#fff8e8;background:linear-gradient(125deg,#092e23 0%,#164e3c 63%,#20382e 100%);border-radius:22px;grid-template-columns:1.2fr 1fr .8fr;min-height:250px;display:grid;position:relative;overflow:hidden;box-shadow:0 20px 55px #102f2522}.performance-hero:after{content:"♠";z-index:-1;color:#ffffff08;font-size:24rem;line-height:1;position:absolute;bottom:-46%;right:3%}.score-focus,.board-focus,.career-counts{padding:38px}.score-focus,.board-focus{border-right:1px solid #ffffff1c;flex-direction:column;justify-content:center;display:flex}.score-focus span,.board-focus span,.career-counts span{color:#c9d7d0;letter-spacing:.14em;font-size:.78rem}.score-focus strong{color:#f1cc70;margin:8px 0;font:700 4.8rem/1 Georgia,serif}.score-focus small,.board-focus small{color:#b7c8c0}.board-focus strong{margin:9px 0 12px;font:700 3.4rem/1 Georgia,serif}.board-rate-track{background:#ffffff1b;border-radius:8px;height:8px;margin-bottom:12px;overflow:hidden}.board-rate-track i{border-radius:inherit;background:#efc966;height:100%;display:block}.career-counts{align-content:center;gap:18px;display:grid}.career-counts div{border-bottom:1px solid #ffffff1c;justify-content:space-between;align-items:end;padding-bottom:13px;display:flex}.career-counts b{font:700 2.2rem/1 Georgia,serif}.role-dashboard{grid-template-columns:1fr 1fr;gap:20px;display:grid}.role-block{color:#273b33;border-radius:18px;min-height:190px;padding:26px 30px;position:relative;overflow:hidden}.role-block.landlord{background:linear-gradient(135deg,#fff2dd,#f3d8b2)}.role-block>header,.event-detail>header,.team-editor>header{height:auto;color:inherit;background:0 0;padding:0}.role-block header span{letter-spacing:.16em;opacity:.55;font-size:.66rem;font-weight:800}.role-block h2{margin:4px 0 16px;font-family:Noto Serif SC,serif}.role-block>strong{font:700 3rem/1 Georgia,serif}.role-block p{color:#65756e;margin:7px 0 20px}.role-block footer{border-top:1px solid #183a2920;justify-content:space-between;padding-top:13px;display:flex}.role-block footer b{font-size:1.25rem}.stat-value{background:#fff;border:1px solid #d8d1c3;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.stat-value span{color:#6f7773}.stat-value strong{font-size:1.35rem}.section-heading h2{margin:3px 0;font-family:Noto Serif SC,serif}.position-matrix{padding:0;overflow:hidden}.matrix-heading{padding:24px 26px 18px}.matrix-heading h2{margin:3px 0 0}.matrix-row{border-top:1px solid #e1dbd0;grid-template-columns:.5fr .8fr 1fr 1.4fr 1.4fr;align-items:center;gap:14px;padding:17px 26px;display:grid}.matrix-row>strong{color:#f3d173;background:#163f31;border-radius:10px;place-items:center;width:38px;height:38px;font-size:1.15rem;display:grid}.matrix-row>b{font-size:1.2rem}.matrix-row small{color:#66726c;background:#eee9de;border-radius:10px;margin-left:8px;padding:3px 7px;display:inline-flex}.matrix-labels{color:#7a817d;background:#f0ede5;padding-top:10px;padding-bottom:10px;font-size:.7rem;font-weight:700}.matrix-labels>span:first-child{grid-column:1}.review-history{margin-top:20px}.review-history .section-heading>b{color:#987532;font-size:.78rem}.review-history-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.review-history-list article{background:#fffdf8;border:1px solid #e2dbcf;border-radius:11px;justify-content:space-between;align-items:center;gap:18px;min-width:0;min-height:138px;padding:17px;display:flex}.review-history-list article>div{min-width:0}.review-history-list h3{color:#193d31;margin:0 0 5px;font-family:Noto Serif SC,serif;font-size:1.08rem}.review-history-list p{color:#8b6928;margin:0 0 5px;font-size:.78rem;font-weight:800}.review-history-list small{color:#7b8580}.review-history-list button,.review-pagination button{color:#315444;background:#f7efd9;border:1px solid #bca970;border-radius:8px;padding:9px 13px;font-weight:800}.review-pagination{border-top:1px solid #e2dbcf;justify-content:center;align-items:center;gap:14px;padding-top:17px;display:flex}.review-pagination span{color:#69756f;font-size:.75rem;font-weight:700}.review-pagination button:disabled{opacity:.42;cursor:not-allowed}.management-grid{grid-template-columns:1fr;align-items:start;gap:20px;display:grid}.section-heading{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.inline-create{grid-auto-flow:column;gap:8px;display:flex}.inline-create input{min-width:0}.team-admin-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px;display:grid}.team-editor{background:#f7f3ea;border:1px solid #ddd5c6;border-radius:12px;padding:16px}.team-editor>header{border-bottom:1px solid #ded7ca;justify-content:space-between;padding-bottom:11px}.team-editor h3{margin:0}.team-editor>header b{color:#7a827e;font-size:.75rem}.roster-list{gap:6px;margin:11px 0;display:grid}.roster-row{background:#fffdf8;border-radius:8px;grid-template-columns:minmax(90px,1fr) 92px 52px;align-items:center;gap:7px;padding:7px 8px;display:grid}.roster-row>span{text-overflow:ellipsis;font-weight:700;display:grid;overflow:hidden}.roster-row>span small{color:#7d8581;text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;font-weight:500;overflow:hidden}.roster-row select{min-width:0;padding:7px}.roster-row button{color:#a3493c;background:0 0;border:0;font-size:.7rem}.roster-search{margin-top:10px}.roster-search input{width:100%;padding:9px 11px}.roster-add{border-top:1px solid #ded7ca;grid-template-columns:1fr auto;gap:7px;padding-top:10px;display:grid}.roster-add select,.roster-add button{min-width:0;padding:9px}.roster-add button{color:#28503f;background:#f4ead0;border:1px solid #bca970;border-radius:7px;font-weight:700}.event-create textarea{resize:vertical;min-height:105px}.collapsible-panel-heading{width:100%;color:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;padding:0;display:flex}.collapsible-panel-heading>span{gap:3px;display:grid}.collapsible-panel-heading h2,.collapsible-panel-heading p{margin:0}.collapsible-panel-heading small{color:#737d78}.collapsible-panel-heading svg{color:#826a32;flex:none;transition:transform .2s}.collapsible-panel.collapsed{padding-block:18px}.collapsible-panel.collapsed .collapsible-panel-heading svg{transform:rotate(-90deg)}.collapsible-panel.open .collapsible-panel-heading{margin-bottom:18px}.event-workspace{margin-top:30px}.event-selector-row{background:#f7f4ec;border:1px solid #d8d1c4;border-radius:12px;grid-template-columns:minmax(180px,.45fr) minmax(300px,1fr);align-items:end;gap:24px;margin-bottom:16px;padding:18px 20px;display:grid}.event-selector-row h2{margin:3px 0 0;font-family:Noto Serif SC,serif}.event-selector-row label{color:#43574e;grid-template-columns:auto 1fr;align-items:center;gap:12px;width:100%;font-weight:800;display:grid}.event-selector-row input{width:100%;min-width:0;padding:11px 13px}.event-create+.event-selector-row{margin-top:16px}.event-detail{border-top:5px solid #1d654c;margin-top:6px}.event-detail>header{justify-content:space-between;align-items:center;gap:20px;display:flex}.event-detail h2{margin:7px 0 3px;font-size:1.8rem}.event-detail header p{color:#747e79;margin:0}.event-info-actions{align-items:center;gap:12px;display:flex}.event-info-actions>strong{color:#1a5c45;text-align:center;min-width:90px;font:700 2.8rem/1 Georgia,serif;display:grid}.event-info-actions>strong small{color:#7a837e;margin-top:5px;font:600 .68rem/1 sans-serif}.event-info-actions>button{color:#315848;white-space:nowrap;background:#f4efe4;border:1px solid #c9bea5;border-radius:8px;align-items:center;gap:6px;padding:8px 11px;font-size:.75rem;font-weight:800;display:inline-flex}.event-title-toggle{max-width:100%;color:inherit;font:inherit;font-weight:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.event-title-toggle>span:last-child{overflow-wrap:anywhere;min-width:0}.event-title-toggle[aria-expanded=true] .disclosure-triangle{transform:rotate(90deg)}.event-title-toggle:focus-visible{outline-offset:5px;border-radius:4px;outline:2px solid #315d49}.event-detail.event-info-hidden{border-top-width:2px;padding-block:18px}.event-team-strip{border-top:1px solid #e2ddd2;flex-wrap:wrap;gap:9px;margin-top:20px;padding-top:16px;display:flex}.event-team-strip>span{background:#eee9df;border-radius:8px;align-items:center;gap:8px;padding:9px 12px;font-weight:700;display:flex}.event-team-strip>span small{color:#78807c;font-size:.65rem;font-weight:500}.event-team-strip label{width:auto}.event-team-strip select{border-style:dashed;min-width:175px;padding:9px 12px}.event-team-directory{border-top:1px solid #ded8cc;margin-top:24px;padding-top:20px}.event-team-directory .section-heading h3{margin:3px 0;font-family:Noto Serif SC,serif;font-size:1.35rem}.event-team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.event-team-editor{background:#f8f5ed;border:1px solid #d8d1c4;border-radius:11px;overflow:hidden}.event-team-editor summary{cursor:pointer;justify-content:space-between;align-items:center;gap:14px;padding:13px 15px;list-style:none;display:flex}.event-team-editor summary::-webkit-details-marker{display:none}.event-team-editor summary>span{align-items:center;gap:9px;min-width:0;display:flex}.event-team-editor summary b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.event-team-editor summary small{color:#77817c;font-size:.68rem}.event-team-editor summary em{color:#426052;border:1px solid #c8b779;border-radius:12px;padding:5px 9px;font-size:.68rem;font-style:normal;font-weight:700}.team-summary-actions{align-items:center;gap:7px;display:flex}.event-team-editor summary .team-delete-button{color:#b1392d;background:#fff3f0;border:1px solid #dfa9a1;border-radius:12px;padding:5px 8px;font-size:.68rem;font-weight:800}.event-team-editor[open] summary{background:#eee8d9;border-bottom:1px solid #ded7ca}.event-team-editor[open]{overflow:visible}.event-team-editor[open] summary em{color:#f3e6be;background:#153f32}.team-edit-body{padding:13px}.team-rename{grid-template-columns:1fr auto;gap:7px;display:grid}.team-rename input,.team-rename button{min-width:0;padding:9px}.team-rename button{color:#28503f;background:#f4ead0;border:1px solid #bca970;border-radius:7px;font-weight:700}.event-team-summary{background:#f8f5ed;border:1px solid #ddd6ca;border-radius:10px;grid-template-columns:1fr auto;gap:6px;padding:14px;display:grid}.event-team-summary span,.event-team-summary small{color:#79817d;font-size:.7rem}.event-team-summary small{grid-column:1/-1}.admin-management-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.announcement-management{margin-top:20px}.announcement-form{gap:14px;display:grid}.announcement-form textarea{resize:vertical;min-height:140px}.announcement-form input,.announcement-form textarea{width:100%;min-width:0}.announcement-publish-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.announcement-publish-row small,.announcement-edit-note{color:#6b756d}.announcement-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.announcement-message{color:#176047}.announcement-history{gap:10px;margin-top:24px;display:grid}.announcement-history-heading,.announcement-title-row{justify-content:space-between;align-items:center;gap:16px;min-width:0;display:flex}.announcement-history-heading h3{margin:0}.announcement-history-heading nav,.announcement-row-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.announcement-history-heading nav{margin-left:auto}.announcement-history-heading nav span{white-space:nowrap;color:#63746a;font-size:.8rem}.announcement-history article{background:#f7f3e9;border:1px solid #e1dbcf;border-radius:10px;min-width:0;padding:16px}.announcement-title-button{color:#173c30;text-align:left;overflow-wrap:anywhere;background:0 0;border:0;min-width:0;padding:4px 0;font-size:1.05rem;font-weight:800}.announcement-title-button:hover{text-decoration:underline}.announcement-meta{color:#737b76;margin-top:8px;line-height:1.8;display:block}.announcement-meta a{white-space:nowrap;color:#166447;text-underline-offset:3px;text-decoration:underline;display:inline-block}.announcement-row-actions button,.announcement-history-heading button{white-space:nowrap;padding:7px 10px}.announcement-management .danger-button,.announcement-dialog .danger-button{color:#8f3028;background:#fff;border:1px solid #ca867b;font-weight:800}.announcement-management .danger-button:hover:not(:disabled),.announcement-management .danger-button:focus-visible,.announcement-dialog .danger-button:hover:not(:disabled),.announcement-dialog .danger-button:focus-visible{color:#77231d;background:#fde4df;border-color:#a84035}.announcement-overlay{z-index:1200;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#061912b8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.announcement-dialog{color:#173c30;background:#fbf8ef;border:1px solid #d2bd7c;border-radius:16px;outline:none;width:min(560px,100%);max-height:calc(100dvh - 48px);padding:30px;position:relative;overflow:auto;box-shadow:0 24px 80px #0007}.announcement-dialog h2{overflow-wrap:anywhere;margin:4px 0 18px;font-family:Noto Serif SC,serif;font-size:1.7rem}.announcement-content{white-space:pre-wrap;overflow-wrap:anywhere;background:#f1ead9;border-left:4px solid #bb9546;min-height:90px;padding:18px;font-size:1.05rem;line-height:1.8}.announcement-dialog>small{color:#727b76;margin:12px 0 20px;display:block}.announcement-dialog>.primary{width:100%}.announcement-dialog.receipt-dialog{width:min(780px,100%)}.receipt-announcement-title{color:#627066;overflow-wrap:anywhere}.receipt-search{align-items:flex-end;gap:10px;display:flex}.receipt-search label{flex:1;min-width:0}.receipt-search input{width:100%;min-width:0}.receipt-search button{white-space:nowrap;flex-shrink:0}.receipt-status{color:#65766a;min-height:1.5em;font-size:.85rem}.receipt-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.receipt-column{background:#f7f2e6;border:1px solid #ddd5c5;border-radius:10px;min-width:0;overflow:hidden}.receipt-column h3{background:#eee6d2;margin:0;padding:12px;font-size:1rem}.receipt-list{overscroll-behavior:contain;height:clamp(130px,35dvh,340px);padding:0 12px;overflow-y:auto}.receipt-user{overflow-wrap:anywhere;border-bottom:1px solid #ded7ca;gap:4px;padding:12px 0;display:grid}.receipt-user small{color:#6c786c}.receipt-close{margin:18px 0 0 auto;display:block}@media (width<=600px){.announcement-overlay{padding:12px}.announcement-dialog{max-height:calc(100dvh - 24px);padding:18px}.announcement-history-heading{flex-wrap:wrap;gap:10px}.announcement-history-heading nav{gap:5px}.announcement-history-heading nav button{padding:7px}.announcement-title-row{gap:10px}.announcement-row-actions{gap:5px}.announcement-row-actions button{padding:7px}.announcement-publish-row{align-items:flex-start}.receipt-columns{gap:8px}.receipt-column h3{padding:10px 8px;font-size:.9rem}.receipt-list{padding:0 8px}.receipt-search{gap:8px}.receipt-search button{padding:10px 8px}.announcement-dialog h2{font-size:1.4rem}}.qualification-self,.room-management{margin:0}.permission-badge{color:#f2d377;background:#163f31;border-radius:14px;padding:6px 10px;font-size:.72rem;font-weight:800}.qualification-self form,.room-management form{gap:12px;display:grid}.qualification-self textarea{resize:vertical;min-height:92px}.management-note{color:#6c7771;background:#f0ede5;border-radius:9px;padding:17px}.round-basics{grid-template-columns:minmax(100px,.5fr) minmax(100px,.5fr) minmax(170px,1fr);align-items:end;gap:11px;display:grid}.checkbox-line{flex-direction:row;grid-template-columns:none;align-items:center;gap:8px;width:max-content;font-size:.78rem;font-weight:700;display:inline-flex}.checkbox-line input{flex:none;width:16px;height:16px;margin:0;padding:0}.checkbox-line span{white-space:nowrap;display:inline}.decider-toggle{background:#f7f2e6;border:1px solid #d6cebb;border-radius:8px;min-height:45px;padding:0 12px}.field-hint{color:#8a8172;margin-top:-7px}.room-management .advanced-settings .advanced-grid{padding:14px}.decider-report-fields{grid-template-columns:1fr 1fr;gap:11px;min-width:0;display:grid}.match-lobby-primary-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.match-lobby-primary-actions>button{width:100%;min-height:44px;margin:8px 0 20px}.match-lobby-primary-actions .danger-button{color:#fff;background:#a83c32;border-color:#a83c32}.advanced-toggles{flex-wrap:wrap;gap:18px;padding:0 14px 14px;display:flex}.monitoring-panel{border-left:5px solid #2e765b;margin-top:20px}.monitor-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.monitor-health{border-radius:14px;padding:6px 11px;font-size:.7rem;font-weight:800}.monitor-health.healthy{color:#176047;background:#dcefe5}.monitor-health.warning{color:#a33b30;background:#fde4df}.monitor-warning{color:#a13c31;background:#fff0ed;border-radius:8px;margin:12px 0 0;padding:10px 12px;font-weight:700}.monitoring-error{color:#9c332b;background:#fff1ee;border:1px solid #e0b4ab;border-radius:9px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.monitoring-error button{color:#8f3028;background:#fff;border:1px solid #ca867b;border-radius:7px;flex:none;padding:8px 12px;font-weight:800}.danger-outline-button{color:#8f3028;background:#fff;border:1px solid #ca867b;border-radius:7px;font-weight:800}.danger-outline-button:hover:not(:disabled),.danger-outline-button:focus-visible{color:#77231d;background:#fde4df;border-color:#a84035}.monitor-error{color:#8f3027;background:#fff0ed;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin:12px 0 0;padding:10px 12px;font-size:.78rem;font-weight:700;display:flex}.monitor-error a{color:#8f3027;flex:none;text-decoration:underline}.invite-redeem{border-top:1px solid #e0d9cd;gap:8px;margin-top:18px;padding-top:16px;display:grid}.invite-redeem>div{grid-template-columns:1fr auto;gap:8px;display:grid}.invite-redeem input,.invite-redeem button{min-width:0}.application-history{margin-top:20px}.application-history h3{margin-bottom:8px}.application-history>div{border-top:1px solid #e4ded3;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:9px 2px;display:grid}.application-history small{color:#7d8581;font-size:.67rem}.application-history b{font-size:.72rem}.application-pending{color:#a27720}.application-approved{color:#19704f}.application-rejected{color:#a2463c}.application-review,.qualification-issuance{margin-top:20px}.application-review .section-heading>b{color:#a17824}.application-list{gap:10px;display:grid}.application-list>div{background:#faf8f2;border:1px solid #ded7cb;border-radius:10px;grid-template-columns:minmax(150px,1fr) auto minmax(180px,1.4fr) auto;align-items:center;gap:12px;padding:13px;display:grid}.application-list span{display:grid}.application-list span small{color:#78817d;font-size:.68rem}.application-list>div>strong{color:#9a7020;font-size:.82rem}.application-list p{color:#66736d;margin:0;font-size:.76rem}.application-list>div>div{gap:7px;display:flex}.application-list button{padding:8px 10px}.invite-create{gap:7px;display:flex}.invite-create select,.invite-create button{min-width:0;padding:8px 10px}.permission-directory-tools{align-items:center;gap:8px;display:flex}.permission-search{gap:0;display:flex}.permission-search input{border-radius:8px 0 0 8px;width:210px;min-width:0;padding:9px 11px}.permission-search button{color:#f4d473;background:#173f31;border:1px solid #bba86f;border-left:0;border-radius:0 8px 8px 0;place-items:center;width:42px;display:grid}.permission-filter{position:relative}.permission-filter summary{color:#315244;cursor:pointer;background:#f6f0e0;border:1px solid #c9bd9a;border-radius:8px;align-items:center;gap:6px;padding:9px 11px;font-size:.75rem;font-weight:800;list-style:none;display:flex}.permission-filter summary::-webkit-details-marker{display:none}.permission-filter>div{z-index:8;background:#fffdf8;border:1px solid #d2c8b2;border-radius:9px;gap:7px;width:180px;margin-top:6px;padding:12px;display:grid;position:absolute;right:0;box-shadow:0 12px 30px #18362b25}.permission-filter label{align-items:center;gap:8px;font-size:.75rem;display:flex}.permission-filter input{width:16px;height:16px;margin:0}.issuance-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.clear-search{color:#735f2a;background:0 0;border:0;font-size:.72rem;font-weight:700}.generated-invite{overflow-wrap:anywhere;color:#f0d175;background:#133b2f;border-radius:8px;margin-bottom:14px;padding:12px;display:block}.generated-invite code{overflow-wrap:anywhere;color:inherit;display:block}.generated-invite small{color:#d9d2b7;margin-top:6px;font-size:.72rem;display:block}.account-permission-list{display:grid}.account-permission-list>div{border-top:1px solid #e3ddd2;grid-template-columns:minmax(160px,1fr) 110px 150px 92px;align-items:center;gap:10px;padding:10px 4px;display:grid}.account-permission-list span{display:grid}.account-permission-list span small,.account-permission-list>div>small{color:#7c8580;font-size:.68rem}.account-permission-list em{color:#315748;font-size:.74rem;font-style:normal;font-weight:800}.tournament-create{border-left:5px solid #cfad54;margin-top:20px}.workflow-hint{color:#737d78;font-size:.72rem}.form-pair{grid-template-columns:1fr 1fr;gap:11px;display:grid}.lineup-pair{grid-template-columns:1fr 1fr;gap:12px;display:grid}.lineup-editor{background:#f4f0e7;border:1px solid #d9d2c5;border-radius:10px;grid-template-columns:repeat(2,1fr);gap:9px;padding:14px;display:grid}.lineup-editor legend{color:#40584e;padding:0 7px;font-weight:800}.lineup-editor label{grid-template-columns:22px 1fr;align-items:center;gap:7px}.lineup-editor select{min-width:0;padding:9px}.advanced-settings{background:#f8f4e9;border:1px solid #cdbd91;border-radius:10px;overflow:hidden}.advanced-settings summary{color:#27483b;cursor:pointer;align-items:center;gap:14px;padding:14px 17px;font-weight:800;list-style-position:inside;display:flex}.advanced-settings summary small{color:#7b817d;font-size:.7rem;font-weight:500}.advanced-settings[open] summary{background:#eee5cd;border-bottom:1px solid #ded4ba}.advanced-settings .round-plans{padding:14px}.advanced-settings.spectator-policy-form[open]{overflow:visible}.match-setup .advanced-settings .advanced-grid{padding:14px}.match-setup .advanced-settings .all-ai-toggle{margin:0 14px 14px}.fixed-settings-note{color:#646f69;background:#f0eadb;border-left:4px solid #bda15b;border-radius:7px;margin:0;padding:13px 16px;font-size:.78rem}.round-plans{gap:9px;max-height:390px;display:grid;overflow:auto}.round-plans fieldset{border:1px solid #d9d2c5;border-radius:9px;grid-template-columns:repeat(4,minmax(120px,1fr));align-items:end;gap:10px;min-width:0;padding:12px;display:grid}.round-plans fieldset>input{grid-column:1/-1}.round-basic-fields{grid-column:span 2;grid-template-columns:minmax(90px,.5fr) minmax(170px,1fr);align-items:end;gap:9px;display:grid}.round-plans legend{color:#65716b;padding:0 6px;font-size:.72rem;font-weight:700}.round-plans input{width:100%;min-width:0;padding:8px}.round-plans label{gap:4px;font-size:.68rem}.round-plans .checkbox-line{white-space:nowrap;align-items:center;min-height:39px;padding:0 8px;display:flex}.round-plans .checkbox-line input{width:15px}.competition-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;margin-top:28px;display:grid}.competition-list>.section-heading,.competition-list>.empty{grid-column:1/-1}.competition-list .competition-card{min-width:0;margin:0;padding:15px}.competition-list .competition-card-head{align-items:flex-start;gap:12px}.competition-list .competition-card-head h3{font-size:1.1rem}.match-title-toggle{width:100%;min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}.match-title-toggle>span:last-child{overflow-wrap:anywhere;min-width:0}.match-title-toggle[aria-expanded=true] .disclosure-triangle{transform:rotate(90deg)}.match-title-toggle:focus-visible{outline-offset:5px;border-radius:4px;outline:2px solid #315d49}.match-card-details{display:contents}.match-details-toggle{color:#315444;cursor:pointer;background:0 0;border:1px solid #d3c7ac;border-radius:7px;flex:none;align-items:center;gap:5px;padding:6px 9px;font-size:.72rem;font-weight:750;display:inline-flex}.match-details-toggle svg{transition:transform .15s;transform:rotate(90deg)}.competition-card.details-collapsed .match-details-toggle svg{transform:rotate(0)}.competition-list .round-list>div{grid-template-columns:1fr auto;gap:7px}.competition-list .round-list small{grid-column:1/-1;font-size:.67rem}.competition-list .competition-actions{flex-wrap:wrap}.event-management-group{border:1px solid #d7d1c4;border-radius:9px;margin:18px 0;padding:12px}.event-management-group summary{cursor:pointer;justify-content:space-between;display:flex}.event-management-group summary span{color:#66766b;font-size:.72rem}.management-group-columns{grid-template-columns:1fr 1fr;gap:10px;padding:12px 0;display:grid}.management-member{margin:0 10px 5px 0;font-size:.8rem;display:inline-block}.management-group-actions,.event-section-toolbar{align-items:center;gap:10px;display:flex}.event-section-toolbar{margin:12px 0}.event-section-toolbar small{color:#65716b}.competition-list{display:block}.event-match-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;margin:14px 0;display:grid}.competition-card .mini-score{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);margin-top:14px}.competition-card .mini-score span{overflow-wrap:anywhere}.match-card-toolbar{justify-content:space-between;align-items:center;gap:10px;display:flex}.match-card-toolbar>div{align-items:center;gap:8px;display:flex}.competition-menu{font-size:.76rem;position:relative}.competition-menu>summary{cursor:pointer;border:1px solid #d3c7ac;border-radius:6px;align-items:center;gap:4px;padding:6px 8px;list-style:none;display:flex}.competition-menu>summary::-webkit-details-marker{display:none}.competition-menu>div{z-index:30;background:#fffefa;border:1px solid #d3c7ac;border-radius:8px;gap:3px;min-width:148px;padding:6px;display:grid;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 10px 24px #142c202b}.competition-menu button{text-align:left;white-space:nowrap;background:0 0;border:0;padding:9px 12px}.competition-menu button:hover:not(:disabled){background:#eee8db}.competition-menu button:disabled{opacity:.4;cursor:not-allowed}.event-section{background:#f8f6f0;border:1px solid #d7d1c4;border-radius:10px;margin:16px 0}.event-section>header{color:#244e3e;background:#eee9db;border-radius:9px 9px 0 0;justify-content:space-between;align-items:center;gap:14px;height:auto;padding:14px 16px;display:flex;position:static}.event-section>header h3{margin:3px 0 0;font-size:1.15rem}.event-section>header small{color:#758075;font-size:.65rem}.event-section>header nav{justify-content:flex-end;align-items:center;gap:7px;display:flex}.event-section>header nav>button{align-items:center;gap:4px;font-size:.76rem;display:flex}.event-section .section-content{padding:0 12px}.event-section.level-2>header{background:#f1eee5}.event-section.level-3>header{background:#f6f4ed}.event-management-group>summary,.event-management-group .management-group-columns{grid-template-columns:minmax(100px,1fr) minmax(220px,2fr) minmax(300px,3fr);gap:16px;display:grid}.event-management-group .management-group-actions{flex-direction:column;align-items:flex-start}.management-role-heading{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.management-role-heading>span{gap:6px;display:flex}.management-role-heading button{padding:5px 9px;font-size:.7rem}.management-role-members{align-content:start;gap:8px;display:grid}.management-role-members.role-admin{grid-template-columns:repeat(2,minmax(0,1fr))}.management-role-members.role-referee{grid-template-columns:repeat(3,minmax(0,1fr))}.event-management-group .management-member{background:#fffefa;border:1px solid #e1dbcf;border-radius:7px;gap:3px;min-width:0;margin:0;padding:8px;display:grid}.management-member small{color:#738075;font-size:.7rem}.management-remove-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.management-remove-list label{background:#faf8f2;border:1px solid #ddd5c8;border-radius:8px;align-items:center;gap:9px;padding:10px;display:flex}.management-remove-list label>input{flex:none;width:17px;height:17px}.management-remove-list label>span{gap:2px;display:grid}.management-remove-list small{color:#738075}.competition-overlay{z-index:300;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#142a24a8;justify-content:center;align-items:center;padding:22px;display:flex;position:fixed;inset:0}.competition-dialog{width:min(100%,960px);max-height:calc(100dvh - 44px);margin:0;overflow:auto}.competition-dialog>.section-heading{margin-bottom:18px}.competition-dialog form{gap:16px;display:grid}.event-match-form{gap:16px;margin-top:16px;display:grid}.tournament-create>summary,.event-create>summary{cursor:pointer;font-size:1.25rem;font-weight:750}.section-selectors{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.event-round-basics{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:14px;display:grid}.match-team-schedule{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:14px;display:grid}.match-team-schedule>label,.event-round-basics>label,.decider-report-field{min-width:0}.match-team-schedule input,.match-team-schedule select,.event-round-basics input{box-sizing:border-box;width:100%;min-width:0}.decider-report-field{gap:6px;display:grid}.decider-report-controls{align-items:center;gap:8px;display:flex}.decider-report-controls .checkbox-line{white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;display:inline-flex}.decider-report-controls .checkbox-line input{width:16px}.event-management-group>summary{list-style:none}.event-management-group>summary::-webkit-details-marker{display:none}.management-title{align-items:center;gap:8px;display:inline-flex}.disclosure-triangle{flex-shrink:0;width:12px;font-size:11px;line-height:1;transition:transform .15s;display:inline-block;transform:rotate(0)}.event-management-group[open]>summary .disclosure-triangle,.section-title-toggle[aria-expanded=true] .disclosure-triangle{transform:rotate(90deg)}.event-section>header .section-title-heading{flex:1;min-width:0;margin:0}.section-title-toggle{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}.section-title-toggle>span:last-child{gap:4px;display:grid}.section-title-toggle:focus-visible,.event-management-group>summary:focus-visible{outline-offset:5px;border-radius:4px;outline:2px solid #315d49}.competition-menu>.competition-menu-trigger{color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #d3c7ac;border-radius:6px;align-items:center;gap:4px;padding:6px 8px;display:flex}.competition-menu button[aria-disabled=true]{opacity:.4;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.disclosure-triangle,.match-details-toggle svg{transition:none}}.board-apply{gap:7px;display:flex}.board-apply input{width:100%;min-width:0}.board-apply button{color:#146348;padding:6px 13px;font-size:1.2rem}.event-match-form label{position:relative}.event-match-form .field-title{align-items:baseline;gap:3px;min-height:1.45em;display:flex}.required-mark{color:#b63825;line-height:1;display:inline}.event-match-form .round-name{grid-column:1/-1}.event-match-form fieldset:disabled{opacity:.6;background:#eae8e0}.event-match-form :is(input,select):disabled,.event-match-form .searchable-select.disabled .searchable-select-control,.event-match-form .searchable-select.disabled :is(input,button){color:#111;-webkit-text-fill-color:#111;background:#e4e7ea}.event-match-form input[type=checkbox]:disabled{opacity:1;accent-color:#aeb5ba}.spectator-only-badge{color:#145aa0;white-space:nowrap;background:#e6f2ff;border:1px solid #acd0f1;border-radius:5px;align-items:center;padding:4px 9px;font-size:.72rem;display:inline-flex}.room-head .spectator-only-badge{margin-left:auto}.ruling-result{font-weight:700;color:#8b3b26!important}.event-team-editor>summary{justify-content:space-between;gap:10px;display:flex}@media (width<=760px){.event-match-grid,.event-round-basics,.section-selectors{grid-template-columns:1fr}.event-section>header{flex-direction:column;align-items:flex-start}.event-section>header nav{flex-wrap:wrap;width:100%}.event-management-group>summary,.event-management-group .management-group-columns{grid-template-columns:1fr;gap:10px}.management-role-members.role-admin,.management-role-members.role-referee,.management-remove-list{grid-template-columns:1fr}.competition-overlay{padding:10px}.competition-dialog{max-height:calc(100dvh - 20px);padding:16px}.event-section .section-content{padding:0 7px}.competition-list{grid-template-columns:1fr}}.competition-card{background:#fbfaf6;border:1px solid #d7d1c4;border-left:5px solid #b9b2a4;border-radius:13px;margin-bottom:15px;padding:22px}.competition-card.running{border-left-color:#23805b}.competition-card.paused{border-left-color:#d1a344}.competition-card.finished{border-left-color:#4b79b5}.competition-card-head{justify-content:space-between;align-items:center;gap:20px;display:flex}.competition-card-head h3{margin:7px 0 4px;font-size:1.35rem}.competition-card-head p{color:#777f7b;align-items:center;gap:5px;margin:0;font-size:.76rem;display:flex}.status-pill{color:#59655f;background:#e9e4d9;border-radius:12px;padding:3px 8px;font-size:.67rem;font-weight:700;display:inline-flex}.mini-score{text-align:center;grid-template-columns:100px auto 100px;align-items:center;display:grid}.mini-score strong,.broadcast-score strong{justify-content:center;align-items:center;gap:10px;font-size:2rem;display:flex}.mini-score i,.broadcast-score i{color:#f05f13;font-style:normal}.mini-score b,.broadcast-score b{color:#60f}.mini-score em,.broadcast-score em{color:#25342e;font-style:normal}.mini-score>span{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.round-list{border-top:1px solid #e1dbcf;margin-top:16px}.round-list>div{border-bottom:1px solid #ece7dd;grid-template-columns:1fr 1.3fr 80px auto;align-items:center;gap:12px;padding:10px 4px;display:grid}.round-list small{color:#7b837f}.round-list b{color:#386955;font-size:.74rem}.round-list button,.competition-actions button{color:#315444;background:#f7efd9;border:1px solid #bda96f;border-radius:7px;justify-content:center;align-items:center;gap:5px;padding:8px 11px;font-weight:700;display:inline-flex}.competition-actions{justify-content:flex-end;gap:8px;margin-top:15px;display:flex}.competition-actions .penalty-button{color:#875500;background:#fff5d8;border-color:#d29a35}.competition-actions .danger-button{color:#a13629;background:#fff1ee;border-color:#d8a69d}.penalty-overlay{z-index:120;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#071e18b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.penalty-dialog{color:#203b31;background:#fffaf0;border:1px solid #d6b766;border-radius:16px;gap:14px;width:min(560px,100%);padding:28px;display:grid;position:relative;box-shadow:0 28px 90px #001d1466}.penalty-dialog h2,.penalty-dialog p{margin:0}.penalty-dialog>p:not(.eyebrow){color:#68756f}.penalty-close{color:#315245;background:#ece6d8;border:0;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;display:grid;position:absolute;top:12px;right:12px}.penalty-score-inputs{grid-template-columns:1fr auto 1fr;align-items:end;gap:14px;display:grid}.penalty-score-inputs label{text-align:center}.penalty-score-inputs label span{font-weight:900}.penalty-score-inputs label.team-A span{color:#f05f13}.penalty-score-inputs label.team-B span{color:#60f}.penalty-score-inputs input{text-align:center;background:#fff;border:1px solid #cec5b4;border-radius:9px;width:100%;padding:10px;font-size:1.6rem;font-weight:900}.penalty-score-inputs>b{padding-bottom:12px;font-size:1.5rem}.penalty-dialog textarea{min-height:76px}.penalty-dialog>small{color:#886a22;line-height:1.6}.penalty-dialog-actions{justify-content:flex-end;gap:9px;display:flex}.penalty-dialog-actions button{padding:9px 16px}.broadcast-score{text-align:center;padding:38px}.broadcast-score>div{grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;display:grid}.broadcast-score strong{font-size:3.4rem}.broadcast-score>div>span{font-size:1.15rem}.report-section{margin-top:20px}.board-report-table>div{text-align:center;border-top:1px solid #e4ded2;grid-template-columns:100px 1fr 100px 1fr;align-items:center;gap:12px;padding:12px;display:grid}.board-report-table small{color:#737d78;grid-column:1/-1}.red-text{color:#f05f13}.blue-text{color:#60f}.player-report-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.player-report-card{border-top:4px solid #aaa}.player-report-card.team-A{border-top-color:#f05f13}.player-report-card.team-B{border-top-color:#60f}.site-footer{color:#707a75;background:#ece8de;border-top:1px solid #d8d1c5;justify-content:center;align-items:center;gap:4px;min-height:54px;padding:14px 24px;font-size:.75rem;display:flex}.site-footer:not(.compact){flex-direction:column;gap:8px}.footer-contact{align-items:center;gap:4px;display:inline-flex}.footer-registration{color:inherit;white-space:nowrap;text-decoration:none}.footer-registration:hover{text-decoration:underline}.site-footer button{color:#1c644b;background:0 0;border:0;border-bottom:1px solid;padding:0;font-weight:800}.contact-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#071e18aa;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.contact-dialog{color:#19382e;background:#fbf8ef;border:1px solid #d4c28e;border-radius:16px;width:min(860px,100%);max-height:min(720px,90vh);padding:28px;position:relative;overflow-y:auto;box-shadow:0 24px 80px #001d1455}.contact-dialog h2{margin:5px 0 9px;font-family:Noto Serif SC,serif}.contact-dialog>p:not(.eyebrow){color:#68756f}.contact-close{color:#315245;background:#ece6d8;border:0;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:12px;right:12px}.contact-list{gap:8px;margin-top:18px;display:grid}.contact-list>div{background:#fffdf8;border:1px solid #ddd5c5;border-radius:9px;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.contact-list span{gap:3px;display:grid}.contact-list small{color:#818986}.contact-list strong{color:#5b3dad}.contact-groups{grid-template-columns:1fr 1fr;gap:18px;margin-top:18px;display:grid}.contact-groups>section{background:#f4efe4;border:1px solid #ddd5c5;border-radius:12px;padding:14px}.contact-groups h3{color:#284b3d;margin:0;font-family:Noto Serif SC,serif}.contact-groups .contact-list{margin-top:10px}.contact-groups .contact-other{grid-column:1/-1}.room-share-row{align-items:center;gap:10px;display:flex}.room-share-row p{margin:0}.room-share-row button{color:#28513f;background:#f7efd8;border:1px solid #bda96e;border-radius:7px;align-items:center;gap:6px;min-height:32px;padding:6px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.my-room-prompt{z-index:38;color:#fff5d9;text-align:left;background:#123d30;border:1px solid #e9c05c;border-radius:12px;gap:2px;min-width:190px;padding:13px 17px;display:grid;position:fixed;bottom:22px;right:22px;box-shadow:0 12px 34px #0a281e55}.my-room-prompt span,.my-room-prompt small{color:#c4d5ce;font-size:.65rem}.my-room-prompt b{color:#f2d071;font-size:.9rem}.disposed-room-page{place-items:center;min-height:calc(100vh - 150px);display:grid}.disposed-room-page .panel{text-align:center;width:min(620px,100%)}.disposed-room-page h1{font-family:Noto Serif SC,serif}.disposed-room-page .primary{margin-top:14px}.player-card-head{grid-template-columns:28px 46px 1fr;align-items:center;gap:10px;margin-bottom:13px;display:grid}.player-card-head>span{color:#929894;font-family:Noto Serif SC,serif;font-size:1.4rem;font-weight:800}.player-card-head h3{margin:0}.player-card-head small{color:#7a827e}.report-avatar{background:#e8e0cd;border-radius:10px;place-items:center;width:44px;height:44px;font-weight:800;display:grid}.player-metrics{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.player-metrics span{color:#737b77;background:#f1eee6;border-radius:7px;gap:3px;padding:8px;font-size:.7rem;display:grid}.player-metrics b{color:#293c34;font-size:.86rem}@media (width<=900px){.management-grid,.performance-hero,.admin-management-grid{grid-template-columns:1fr}.performance-hero{min-height:0}.score-focus,.board-focus{border-bottom:1px solid #ffffff1c;border-right:0}.role-dashboard,.lineup-pair,.team-admin-grid,.event-team-grid{grid-template-columns:1fr}.round-plans fieldset{grid-template-columns:1fr 1fr}.round-plans fieldset>input{grid-column:1/-1}.mini-score{grid-template-columns:70px auto 70px}.player-report-grid{grid-template-columns:1fr}.application-list>div{grid-template-columns:1fr auto}.application-list p{grid-column:1/-1}.account-setting-grid{grid-template-columns:1fr}.monitor-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=760px){.site-header{padding:0 12px}.site-header .user-chip>span,.site-header .user-chip>b{display:none}.main-menu button{padding:0 8px}.portal-page{width:min(100% - 24px,1240px);padding-top:22px}.portal-title h1{font-size:2.3rem}.score-focus strong{font-size:4rem}.form-pair,.round-basics,.event-selector-row,.event-selector-row label,.account-summary{grid-template-columns:1fr}.account-identity{border-top:1px solid #ded7ca;border-left:0;padding:12px 0 0}.account-summary-actions{justify-content:space-between}.matrix-row{grid-template-columns:55px 1fr 1fr;padding:14px}.matrix-row>:nth-child(4),.matrix-row>:nth-child(5){grid-column:2/-1}.matrix-labels{display:none}.review-history-list{grid-template-columns:1fr}.review-history-list article{flex-direction:column;align-items:stretch}.review-history-list button{width:100%}.competition-card-head{flex-direction:column;align-items:flex-start}.mini-score{grid-template-columns:1fr auto 1fr;width:100%}.round-list>div{grid-template-columns:1fr auto}.round-list small,.round-list button{grid-column:1/-1}.competition-actions{flex-wrap:wrap}.broadcast-score>div{grid-template-columns:1fr}.board-report-table>div{grid-template-columns:1fr 1fr}.board-report-table small{grid-column:1/-1}.player-metrics{grid-template-columns:1fr 1fr}.event-team-directory .section-heading,.qualification-issuance .section-heading{flex-direction:column;align-items:stretch}.inline-create,.invite-create{grid-template-columns:1fr;display:grid}.application-list>div{grid-template-columns:1fr}.application-list>div>div{justify-content:flex-end}.account-permission-list>div{grid-template-columns:1fr 1fr}.account-permission-list span{grid-column:1/-1}.monitor-grid{grid-template-columns:1fr}.round-basic-fields{grid-column:1/-1}.permission-directory-tools{flex-direction:column;align-items:stretch}.permission-search input{width:100%}.permission-filter>div{left:0;right:auto}.my-room-prompt{min-width:170px;bottom:12px;right:12px}.contact-groups{grid-template-columns:1fr}.room-share-row{flex-direction:column;align-items:flex-start}}@media (width<=900px){.match-team-schedule,.event-round-basics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.match-team-schedule,.event-round-basics{grid-template-columns:1fr}}.password-method{flex-wrap:wrap;gap:8px;display:flex}.password-method button{color:#244d3e;background:#faf8f2;border:1px solid #c9c4b8;border-radius:8px;padding:9px 12px}.password-method button[aria-pressed=true]{color:#fff;background:#155b43;border-color:#155b43}.email-code-field{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.email-code-field label{min-width:0}.email-code-field button{color:#194f76;background:#e7f2fb;border:1px solid #5d99c4;border-radius:8px;min-width:118px;min-height:43px;padding:9px 12px;font-weight:700}.email-code-field button:disabled{opacity:.5;cursor:not-allowed}.email-code-field small{color:#557168;grid-column:1/-1;font-weight:500}.email-code-field small.error{color:#8f3028;background:#fff0ed}.bound-email{overflow-wrap:anywhere;min-height:0!important}@media (width<=520px){.email-code-field{grid-template-columns:1fr}.email-code-field button{width:100%}.email-code-field small{grid-column:auto}}.auth-card>.text-button+.text-button{margin-left:22px}.match-details-toggle{color:#315444;cursor:pointer;background:0 0;border:1px solid #d3c7ac;border-radius:7px;align-items:center;gap:5px;padding:6px 9px;font-size:.72rem;font-weight:750;display:inline-flex}.match-details-toggle:focus-visible{outline-offset:3px;outline:2px solid #315d49}.card.playing-card,.spectator-card.playing-card{--card-width:77.44px;--card-height:136.08px;--card-pad-x:11px;--card-pad-y:9px;--card-rank-size:2.65rem;--card-suit-size:2.3rem;--card-suit-gap:6px;isolation:isolate;box-sizing:border-box;width:var(--card-width);height:var(--card-height);padding:var(--card-pad-y) var(--card-pad-x);color:#182a24;background:linear-gradient(135deg,#fffefb 0%,#f8f3e8 72%,#e8dfcd 100%);border:1px solid #d6cdbb;border-radius:11px;flex-direction:column;flex:none;justify-content:flex-start;align-items:flex-start;margin:0;font-style:normal;line-height:1;display:flex;position:relative;overflow:hidden;box-shadow:0 5px 12px #001d1490,inset 0 0 0 1px #fff}.card.playing-card.red,.spectator-card.playing-card.red{color:#bd3131}.card.playing-card>.playing-card-rank,.card.playing-card>.playing-card-suit,.card.playing-card>.playing-card-joker,.card.playing-card>.playing-card-watermark,.spectator-card.playing-card>.playing-card-rank,.spectator-card.playing-card>.playing-card-suit,.spectator-card.playing-card>.playing-card-joker,.spectator-card.playing-card>.playing-card-watermark{z-index:1;color:currentColor;flex:none;font-style:normal;position:relative}.card.playing-card>.playing-card-rank,.spectator-card.playing-card>.playing-card-rank{height:var(--card-rank-size);letter-spacing:-.06em;white-space:nowrap;max-width:100%;font-family:Georgia,Times New Roman,serif;font-weight:800;line-height:1;display:block;font-size:var(--card-rank-size)!important}.card.playing-card>.playing-card-suit,.spectator-card.playing-card>.playing-card-suit{width:var(--card-suit-size);height:var(--card-suit-size);margin-top:var(--card-suit-gap);place-items:center;font-family:Georgia,Times New Roman,serif;line-height:1;display:grid;font-size:var(--card-suit-size)!important}.card.playing-card>.playing-card-watermark,.spectator-card.playing-card>.playing-card-watermark{right:calc(var(--card-pad-x) * .4);bottom:calc(var(--card-pad-y) * -.35);z-index:0;opacity:.13;font-family:Georgia,Times New Roman,serif;line-height:1;position:absolute;transform:rotate(-8deg);font-size:calc(var(--card-rank-size) * 1.55)!important}.card.playing-card>.playing-card-suit.concealed,.spectator-card.playing-card>.playing-card-suit.concealed,.card.playing-card>.playing-card-watermark.concealed,.spectator-card.playing-card>.playing-card-watermark.concealed{color:#52605b}.card.playing-card>.playing-card-suit.concealed,.spectator-card.playing-card>.playing-card-suit.concealed{font-size:calc(var(--card-suit-size) * .72)!important}.card.playing-card>.playing-card-joker,.spectator-card.playing-card>.playing-card-joker{top:var(--card-pad-y);left:var(--card-pad-x);letter-spacing:.08em;text-orientation:upright;writing-mode:vertical-rl;font-family:Noto Serif SC,Songti SC,serif;font-weight:900;line-height:1.05;position:absolute;font-size:calc(var(--card-rank-size) * .7)!important}.spectator-card.playing-card>.playing-card-rank,.spectator-card.playing-card>.playing-card-joker{font-variant-numeric:lining-nums tabular-nums;font-family:Georgia,Noto Serif SC,Songti SC,serif;line-height:1;font-size:var(--card-rank-size)!important}.spectator-card.playing-card>.playing-card-rank{top:auto}.spectator-card.playing-card>.playing-card-joker{top:var(--card-pad-y)}.card.playing-card.dimmed,.spectator-card.playing-card.dimmed{filter:grayscale(.72);opacity:.38}.card.playing-card.card-back,.spectator-card.playing-card.card-back{color:#f2dc9f;background:radial-gradient(circle,#d6ba70 0 8%,#0000 9%),repeating-linear-gradient(45deg,#163f76 0 5px,#235992 5px 10px);border:3px double #ead9ad;justify-content:center;align-items:center;box-shadow:0 4px 10px #001d1480,inset 0 0 0 3px #153663}.felt .card.playing-card{margin-left:-21.44px}.felt .card.playing-card:first-child{margin-left:0}.felt .hand{min-height:156px}.felt .hand.own-hand .card.playing-card{--card-width:116.16px;margin-left:-60.16px}.felt .hand.own-hand .card.playing-card:first-child{margin-left:0}.felt .bottom-cards .card.playing-card{--card-width:38.72px;--card-height:68.04px;--card-pad-x:4px;--card-pad-y:4px;--card-rank-size:1.2rem;--card-suit-size:1.05rem;--card-suit-gap:3px;margin-left:0}.felt .bottom-cards .card.playing-card.card-back>svg,.spectator-bottom .spectator-card.playing-card.card-back>svg{width:42%;height:auto}.felt .seat-last-play .card.playing-card{--card-width:44px;--card-height:75.6px;--card-pad-x:6px;--card-pad-y:5px;--card-rank-size:1.45rem;--card-suit-size:1.23rem;--card-suit-gap:4px;margin-left:-12px}.felt .player-play-hand .card.playing-card{--card-width:58.08px;--card-height:101.52px;--card-pad-x:8px;--card-pad-y:6px;--card-rank-size:1.92rem;--card-suit-size:1.62rem;--card-suit-gap:5px;margin-left:-17.28px}.felt .reported-hand .card.playing-card,.felt .reported-hand .card.playing-card:first-child{margin:0}.felt.full-observer .reported-hand .card.playing-card{--card-width:26.4px;--card-height:47.52px;--card-pad-x:3px;--card-pad-y:3px;--card-rank-size:.9rem;--card-suit-size:.75rem;--card-suit-gap:2px}.felt .reported-hand.terminal-hand .card.playing-card{--card-width:29.92px;--card-height:52.92px;--card-pad-x:4px;--card-pad-y:3px;--card-rank-size:1rem;--card-suit-size:.82rem;--card-suit-gap:3px}.spectator-card.playing-card{--card-width:76.56px;--card-height:88.56px;--card-pad-x:6px;--card-pad-y:6px;--card-rank-size:1.7rem;--card-suit-size:1.45rem;--card-suit-gap:4px;border-radius:8px;box-shadow:0 4px 10px #0009,inset 0 0 0 1px #fff}.spectator-hand{grid-template-columns:repeat(10,40px)}.spectator-seat.landlord{width:min(96vw,850px)}.spectator-seat.landlord .spectator-hand{grid-template-columns:repeat(20,40px);justify-self:center}.spectator-seat.upper-left .spectator-hand,.spectator-seat.upper-right .spectator-hand{grid-auto-rows:60px;align-items:start;min-height:149px}.spectator-bottom .spectator-card.playing-card{--card-width:38.28px;--card-height:44.28px;--card-pad-x:2px;--card-pad-y:3px;--card-rank-size:1.05rem;--card-suit-size:.95rem;--card-suit-gap:2px}.spectator-play .spectator-card.playing-card{--card-width:63.36px;--card-height:73.44px;--card-pad-x:5px;--card-pad-y:5px;--card-rank-size:1.4rem;--card-suit-size:1.18rem;--card-suit-gap:4px;margin-left:-12.76px}.spectator-play .spectator-card.playing-card:first-child{margin-left:0}@media (width<=900px){.spectator-card.playing-card{--card-width:60.72px;--card-height:71.28px;--card-pad-x:4px;--card-pad-y:4px;--card-rank-size:1.32rem;--card-suit-size:1.1rem;--card-suit-gap:3px}.spectator-hand{grid-template-columns:repeat(10,32px)}.spectator-seat.landlord .spectator-hand{grid-template-columns:repeat(20,32px)}.spectator-seat.upper-left .spectator-hand,.spectator-seat.upper-right .spectator-hand{grid-auto-rows:48px;min-height:120px}}@media (height<=700px){.spectator-card.playing-card{--card-width:58.08px;--card-height:66.96px;--card-pad-x:4px;--card-pad-y:4px;--card-rank-size:1.25rem;--card-suit-size:1.04rem;--card-suit-gap:3px}.spectator-hand{grid-template-columns:repeat(10,30px)}.spectator-seat.landlord .spectator-hand{grid-template-columns:repeat(20,30px)}.spectator-seat.upper-left .spectator-hand,.spectator-seat.upper-right .spectator-hand{grid-auto-rows:45px;min-height:113px}}@media (orientation:landscape) and (height<=600px){.felt .card.playing-card{--card-width:47.52px;--card-height:84.24px;--card-pad-x:6px;--card-pad-y:5px;--card-rank-size:1.6rem;--card-suit-size:1.34rem;--card-suit-gap:4px;margin-left:-11.32px}.felt .player-play-hand .card.playing-card{--card-width:38.72px;--card-height:66.96px;--card-pad-x:4px;--card-pad-y:3px;--card-rank-size:1.25rem;--card-suit-size:1.04rem;--card-suit-gap:3px;margin-left:-9.52px}.felt .bottom-cards .card.playing-card{--card-width:26.4px;--card-height:42.12px;--card-pad-x:3px;--card-pad-y:2px;--card-rank-size:.82rem;--card-suit-size:.72rem;--card-suit-gap:2px;margin-left:0}.felt .hand{min-height:98px}.felt .hand.own-hand .card.playing-card{--card-width:71.28px;margin-left:-35.08px}.felt .hand.own-hand .card.playing-card:first-child{margin-left:0}}.table-page.compact-table .felt .card.playing-card{--card-width:32px;--card-height:calc(var(--card-width) * 1.43);--card-pad-x:3px;--card-pad-y:4px;--card-rank-size:55cqw;--card-suit-size:58cqw;--card-suit-gap:1px;border-radius:5px}.compact-table .felt .hand .card.playing-card{width:min(64px, calc(var(--hand-height) / 1.43), calc((100% - (var(--hand-count) - 1) * 2px) / var(--hand-count)));height:var(--hand-height);margin:0}.compact-table .felt .player-play-hand .card.playing-card,.compact-table .felt .reported-hand .card.playing-card{--card-width:26px;margin-left:-13px}.compact-table .felt .player-play-hand .card.playing-card:first-child,.compact-table .felt .reported-hand .card.playing-card:first-child{margin-left:0}.compact-table .felt .bottom-cards .card.playing-card{--card-width:29px;margin:0}@media (height>=480px){.compact-table .felt .bottom-cards .card.playing-card{--card-width:38px}}@media (pointer:coarse) and (width<=1100px){.spectator-card.playing-card{--card-width:28px;--card-height:41px;--card-pad-x:2px;--card-pad-y:2px;--card-rank-size:.52rem;--card-suit-size:.58rem;--card-suit-gap:1px}}:root{--ui-canvas:#eff6fc;--ui-surface:#fbfdff;--ui-soft:#e2f0fc;--ui-accent:#c2e1f7;--ui-accent-hover:#add6f1;--ui-border:#bdd3e5;--ui-ink:#1c405c;--ui-muted:#52718a;--ui-link:#23648f;background:var(--ui-canvas);color:var(--ui-ink)}body{background:var(--ui-canvas);color:var(--ui-ink)}input,select,textarea{background:var(--ui-surface);border-color:var(--ui-border);color:var(--ui-ink)}input:focus,select:focus,textarea:focus{border-color:#518db8;box-shadow:0 0 0 3px #4c9ed524}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #2873a6}.primary,.page .primary,.portal-page .primary,.auth-card .primary{background:var(--ui-accent);color:var(--ui-ink);border-color:#91bddc}.primary:hover:not(:disabled){background:var(--ui-accent-hover)}.text-button,.eyebrow,.hint{color:var(--ui-link)}.site-header{color:var(--ui-ink);border-bottom:1px solid var(--ui-border);background:#d7eafa}.site-header .main-menu button{color:var(--ui-muted);white-space:nowrap;flex-shrink:0}.site-header .logo{white-space:nowrap;flex-shrink:0}.site-header .main-menu svg,.site-header .logo svg{flex-shrink:0}.site-header .main-menu button:hover,.site-header .main-menu button.active{color:#15486d;background:#bdddf4;border-bottom-color:#3f81b0}.site-header .user-chip button{color:var(--ui-ink)}.site-header .user-chip b,.permission-badge{color:#204f72;background:#b4d8f1}.panel,.room-card,.review-board,.review-table,.review-player-report,.review-history-list article,.event-team-editor,.team-editor,.stat-value{background:var(--ui-surface);border-color:var(--ui-border)}.hero,.portal-title{border-bottom-color:var(--ui-border)}.hero p,.portal-title p:last-child,.room-card p,.site-footer,.stat-value span{color:var(--ui-muted)}.room-card{color:var(--ui-ink)}.room-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr))}.room-tile{background:var(--ui-surface);border-color:var(--ui-border)}.room-card:hover{box-shadow:0 8px 24px #356b9620}.room-icon,.avatar{color:#3b7198;background:#d0e6f7}.active-game-link,.room-active-banner{border-color:var(--ui-border);color:#295c80;background:#deeffc}.brand-panel{color:#204866;background:radial-gradient(circle at 25% 20%,#eef9ff,#c3e1f5 64%,#acd1ed)}.brand-panel .brand-mark{color:#3879a6;background:#f7fcff80;border-color:#729fbd}.brand-panel .tagline,.brand-panel .feature-row,.brand-panel .eyebrow{color:#365e7c}.account-setting-grid form,.event-selector-row,.matrix-labels,.team-seat-column h4,.review-hero{background:var(--ui-soft);border-color:var(--ui-border)}.account-identity strong,.review-history-list h3,.event-info-actions>strong{color:var(--ui-ink)}.account-message,.notice{color:#245778;background:#deeffa;border-color:#adcfe6}.account-settings,.event-detail,.review-hero{border-top-color:#6a9fc5}.performance-hero{color:var(--ui-ink);background:linear-gradient(125deg,#d7edfd,#b9dbf3 65%,#c9e5f8)}.performance-hero :is(span,small){color:#426780}.performance-hero strong{color:#205d88}.performance-hero .score-focus,.performance-hero .board-focus,.career-counts div{border-color:#93b9d366}.board-rate-track{background:#a5c8e1}.board-rate-track i{background:#447fa9}.role-block.farmer{background:linear-gradient(135deg,#e5f3fc,#cce4f5)}.matrix-row>strong,.permission-search button,.event-team-editor[open] summary em{color:#204d6d;background:#c2dff3}.generated-invite{color:var(--ui-ink);background:#e0f0fc;border-color:#a7cce5}.generated-invite small,.generated-invite code{color:#2b5b7c}.my-room-prompt{color:#204d6b;background:#c3e0f5;border-color:#7daacb;box-shadow:0 5px 20px #24577926}.my-room-prompt span,.my-room-prompt small{color:#416c89}.portal-page :is(.invite-create,.room-share-row,.round-list,.competition-actions,.review-pagination,.account-summary-actions,.roster-add) button,.review-history-list button,.password-method button{background:var(--ui-soft);color:var(--ui-ink);border-color:#a3c4dd}.portal-page .competition-actions .danger-button{color:#8f3028;background:#fff;border-color:#ca867b}.portal-page .competition-actions .danger-button:hover:not(:disabled),.portal-page .competition-actions .danger-button:focus-visible{color:#77231d;background:#fde4df;border-color:#a84035}.password-method button[aria-pressed=true]{background:var(--ui-accent);color:#194f76;border-color:#5d99c4}.portal-page .danger,.portal-page .dispose-room-button,.portal-page .announcement-delete-confirm{color:#fff;background:#b53d3b}.review-result,.review-bottom,.review-record pre,.review-score-summary>strong{color:#1d4f71;background:#d2e8f8;border-color:#a0c5df}.review-record pre{white-space:pre-wrap}.review-match-score{background:#d7eafa}.review-board-tabs button.active,.review-round-tabs button.active,.replay-stepper button.primary{background:var(--ui-accent);color:#204d6d;border-color:#89b5d4}.review-bottom small,.review-bottom>span{color:#406780}.review-bottom code{color:#173f32}.review-result,.review-result small{color:var(--ui-ink)}.review-result{font-size:1.05rem}.review-result small{font-size:.95rem;font-weight:700}.site-footer{border-color:var(--ui-border);background:#e0edf8}.site-footer button{color:var(--ui-link)}.join-row{gap:0;width:min(100%,760px);max-width:760px}.join-row input{border-radius:8px 0 0 8px;width:0;min-width:0}.join-row button,.join-row button.primary{color:#204d6d;white-space:nowrap;background:#e3f1fc;border:1px solid #93b8d3;border-radius:0;flex:none;margin-left:-1px;padding:0 16px}.join-row button:last-child{border-radius:0 8px 8px 0}.join-row button:hover:not(:disabled){background:#c5e2f7}.join-row button:disabled{opacity:.55;cursor:not-allowed}@media (width<=1100px){.site-header{gap:12px;padding-inline:12px}.site-header .main-menu{gap:2px}.site-header .main-menu button{padding-inline:12px}.site-header .user-chip>span,.site-header .user-chip>b{display:none}}@media (width<=760px){.site-header{grid-template-rows:34px 46px;grid-template-columns:minmax(0,1fr) auto;height:80px;padding:0 12px;display:grid}.site-header .logo{white-space:nowrap;justify-self:start;font-size:16px}.site-header .logo svg{width:18px}.site-header .user-chip{grid-area:1/2}.site-header .main-menu{grid-area:2/1/auto/-1;gap:2px;width:100%}.site-header .main-menu button{white-space:nowrap;flex:1;justify-content:center;gap:5px;padding-inline:4px;font-size:13px}.page{padding-inline:14px}.room-card{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:16px 12px}.room-card h3{overflow-wrap:anywhere}.room-card>span{white-space:nowrap;font-size:13px}.room-list-heading{gap:8px}.room-list-heading .section-title{white-space:nowrap;font-size:16px}.room-list-heading nav{gap:8px}.room-list-heading nav button{white-space:nowrap;padding:7px 9px;font-size:12px}.join-row input{padding:11px 7px;font-size:11px}.join-row button,.join-row button.primary{padding-inline:7px;font-size:11px}}.table-page,.closed-game-page{color:var(--ui-ink);background:#8eb6d5}.table-page .felt{background:radial-gradient(#b3d4ec,#86b2d3 70%,#709bbf);border-color:#557fa1;box-shadow:inset 0 0 50px #48789944}.table-page .felt.idle-observer{background:radial-gradient(#e6ddf2,#c6b3de);border-color:#a18abf}.table-page .table-nav{color:var(--ui-ink);background:#d7eafa;border-bottom-color:#b1cede}.table-nav button,.table-nav code,.table-title{color:var(--ui-ink)}.table-page .felt :is(.center-play>p,.live-score,.table-history-button,.table-settings-button,.turn-timer,.card-order-toggle,.observer-table-switch){color:#214b69;box-shadow:none;background:#e9f6ffed;border-color:#96b8cf}.table-page .felt :is(.live-score>span,.bottom-label,.live-score small,.table-board-counter,.turn-player,.turn-timer>small,.time-bank,.time-bank span,.time-bank b){color:#345c77}.table-page .felt :is(.live-score strong,.turn-seconds){color:#1f5b87}.table-page .felt .turn-timer.urgent .turn-seconds{color:#aa4035}.table-page .felt .compact-table .turn-timer,.compact-table .felt .turn-timer{background:0 0}.table-page .seat-info,.table-page .self-seat{color:#294d67}.table-page .felt .last-play-toggle{color:#315c7b;background:#e9f6ff;border-color:#abc9de}.table-page .opponent.seat-team-A .seat-info,.table-page .self-seat.seat-team-A{--seat-team-color:#a34c13}.table-page .opponent.seat-team-B .seat-info,.table-page .self-seat.seat-team-B{--seat-team-color:#7044a5}.table-page .time-bank.empty{border:0;padding:0}.table-page .felt .network-buffer{color:#204d6b;background:#c0dff3}.ko-settlement-notice{color:#214d6c;background:#d0e8f9}.ko-settlement-notice small{color:#54758c}.spectator-page{color:#4b3a65;background:#c9b9df}.spectator-page .spectator-nav{color:#4b3a65;background:#e5dbf2}.spectator-page .spectator-nav button,.spectator-page .spectator-nav code{color:#594674}.spectator-page .spectator-arena{--orange:#a94f19;--purple:#7046a9;background:radial-gradient(#e6ddf2,#c6b3de);box-shadow:inset 0 0 70px #8d70ad33}.spectator-page .spectator-arena:before{box-shadow:none;background:#d8c8eb50;border-color:#a18abf55}.spectator-page :is(.spectator-top-left,.spectator-match-score,.spectator-bottom,.spectator-bid-value,.spectator-player-info){background:#f7f2fdee;box-shadow:0 3px 14px #8163992b}.spectator-page :is(.spectator-top-left,.spectator-bid-value,.spectator-bottom,.spectator-seat.neutral){color:#594674}.spectator-page :is(.spectator-top-left>span,.spectator-bottom>span,.spectator-bid-value>span,.spectator-bid-value small,.spectator-match-score>i){color:#756088}.spectator-page .spectator-top-left b,.spectator-page .spectator-bid-value strong{color:#594674}.spectator-page .spectator-delayed{color:#756088}.spectator-page .spectator-delayed h2{color:#594674}.spectator-page .site-footer.compact{color:#756088;box-shadow:none;background:#f7f2fd;border-color:#bda9d5;inset:auto auto 8px 10px}.spectator-page .site-footer.compact button{color:#594674}@media (width<=900px){.spectator-page .site-footer.compact{display:none}}.match-lobby-seats .locked-seat>.room-action-button{justify-content:center;width:100%}.match-lobby-seats .room-action-button,.match-lobby-primary-actions>button{color:#fff;background:#2f7eae;border:1px solid #659bc1;border-radius:8px;min-height:40px;padding:8px 14px;font-weight:800;line-height:1.15}.match-lobby-seats .room-seat-button:hover:not(:disabled),.match-lobby-seats .room-seat-button:focus-visible{background:#1d638f;border-color:#174f75}.match-lobby-seats .seat-inline-action-sit,.match-lobby-seats .seat-inline-action-switch,.match-lobby-seats .seat-inline-action-sit:hover:not(:disabled),.match-lobby-seats .seat-inline-action-switch:hover:not(:disabled),.match-lobby-seats .seat-inline-action-sit:focus-visible,.match-lobby-seats .seat-inline-action-switch:focus-visible{color:#fff;background:#2563eb;border-color:#1d4ed8}.match-lobby-seats .seat-inline-action-stand,.match-lobby-seats .seat-inline-action-stand:hover:not(:disabled),.match-lobby-seats .seat-inline-action-stand:focus-visible{color:#176047;background:#dcefe5;border-color:#b7ddc4}.match-lobby-seats .room-remove-button,.match-lobby-primary-actions .discard-match-button{color:#fff;background:#b4453b;border-color:#96372f}.match-lobby-seats .room-remove-button:hover:not(:disabled),.match-lobby-seats .room-remove-button:focus-visible,.match-lobby-primary-actions .discard-match-button:hover:not(:disabled),.match-lobby-primary-actions .discard-match-button:focus-visible{background:#8f3029;border-color:#76251f}.match-lobby-seats .locked-seat .seat-remove-action,.match-lobby-seats .locked-seat .seat-remove-action:hover:not(:disabled),.match-lobby-seats .locked-seat .seat-remove-action:focus-visible{color:#fff;background:#a83c32;border-color:#a83c32}.table-page .felt .actions button:hover:not(:disabled),.table-page .felt .actions button:focus-visible{color:#fff;background:#174f78;border-color:#0c3656;outline:none;transform:translateY(-2px);box-shadow:0 0 0 3px #f8fcffb8,0 5px 14px #173e5c55}.table-page .felt .actions button:active:not(:disabled){color:#fff;background:#0c3553;border-color:#082a43;transform:translateY(0)scale(.97);box-shadow:0 0 0 2px #fff}.table-page .felt .actions button{transition:background-color .12s,color .12s,transform .12s,box-shadow .12s}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html.table-viewport,html.table-viewport body,html.table-viewport #root{width:var(--table-viewport-width,100%);min-width:0;max-width:none}html.table-viewport .table-page,html.table-viewport .spectator-page{width:var(--table-viewport-width,100%)}html.table-viewport .table-page{height:var(--table-viewport-height,100dvh);min-height:0}html.table-viewport .table-page .felt{height:calc(var(--table-viewport-height,100dvh) - 82px)}html.table-viewport .table-page.compact-table{--hand-height:clamp(58px,calc(var(--table-viewport-height,100dvh) * .2),108px)}html.table-viewport .compact-table .felt{height:100%}@media (pointer:coarse) and (width<=1100px){html.table-viewport .spectator-page{height:var(--table-viewport-height,100dvh);min-height:0}html.table-viewport .spectator-arena{height:calc(var(--table-viewport-height,100dvh) - 38px)}}.table-page:not(.compact-table) .felt .my-area{width:min(100% - 28px,1300px)}.table-page:not(.compact-table) .felt .hand{--player-hand-width:clamp(62px,8vw,112px);--player-hand-height:clamp(96px,12vw,136px);--player-hand-step:calc(var(--player-hand-width) * .52);grid-template-columns:var(--player-hand-tracks);width:min(100%,calc((var(--hand-count) - 1) * var(--player-hand-step) + var(--player-hand-width)));touch-action:none;justify-content:center;align-items:start;gap:0;height:auto;min-height:0;margin-inline:auto;padding:24px 0 8px;display:grid;overflow:visible}.table-page:not(.compact-table) .felt .hand .card.playing-card{--card-width:var(--player-hand-width);--card-height:var(--player-hand-height);--card-pad-x:calc(var(--player-hand-width) * .08);--card-pad-y:8px;--card-rank-size:calc(var(--player-hand-width) * .35);--card-suit-size:calc(var(--player-hand-width) * .32);--card-suit-gap:4px;width:var(--player-hand-width);height:var(--player-hand-height);margin:0}.table-page .felt{touch-action:pan-y;overscroll-behavior:none;-webkit-user-select:none;user-select:none}.table-page .felt .table-settings-menu,.table-page .felt .result-card,.table-page .felt [role=dialog]{touch-action:pan-y}.match-own-outcome{margin:8px 0 14px;font-size:clamp(1.3rem,3vw,2rem);font-weight:900}.match-own-outcome.win{color:#b85a14}.match-own-outcome.loss{color:#6c4397}.match-own-outcome.draw{color:#547187}.player-bidding-role{color:#163e5e;justify-content:center;align-items:baseline;gap:8px;display:flex}.player-bidding-role>span{font-size:.9rem}.player-bidding-role>strong{letter-spacing:.1em;font-size:1.6rem}.table-page .center-play.bidding-presentation{height:auto;bottom:auto}.table-page:not(.compact-table) .felt .center-play.bidding-presentation{width:max-content;max-width:38%;top:180px;left:50%;right:auto;transform:translate(-50%)}.bidding-presentation .reserve-bid-status{color:#264e6a;box-shadow:none;background:#edf7ffed;border-color:#a0bfd5;margin-top:6px;padding:7px 12px}.bidding-presentation .reserve-bid-status.immediate{color:#854008;background:#fff0b7}.bidding-presentation .reserve-bid-status span{color:inherit}.player-table-call{color:#214b69;white-space:nowrap;background:#f0f8ff;border:2px solid #537b99;border-radius:10px;justify-self:end;align-items:center;gap:8px;padding:8px 14px;display:inline-flex;box-shadow:0 3px 10px #325b7b25}.player-play-history.right .player-table-call{justify-self:start}.player-play-history.self .player-table-call,.player-play-history.top .player-table-call{justify-self:center}.player-table-call>span{font-size:.8rem}.player-table-call>strong{font-size:1.5rem;line-height:1.2}.player-table-call.three{color:#854008;background:#fff0b7;border-color:#a96b14}.player-table-call.zero{color:#415d70;background:#eaf3f8;border-color:#819baa}.compact-table .opponent .seat-info{width:100%;box-shadow:none;border:0;border-radius:0}.compact-table .opponent .seat-label{border-inline-start:3px solid var(--seat-team-color,#537b99);background:#eaf5ff9c;border-radius:6px;flex:0 auto;padding:4px 6px}.compact-table .opponent.right .seat-label{border-inline-start:0;border-inline-end:3px solid var(--seat-team-color,#537b99)}.compact-table .opponent.right .seat-label>b{justify-content:flex-end}.compact-table .opponent .seat-label>b>span:last-child{flex-shrink:0}.compact-table .opponent.left .seat-history-toggle,.compact-table .opponent.right .seat-history-toggle{transform:none}.compact-table .bidding-presentation{width:42%}.compact-table .player-bidding-role{gap:5px}.compact-table .player-bidding-role>span{font-size:.65rem}.compact-table .player-bidding-role>strong{font-size:1.1rem}.compact-table .bidding-presentation .reserve-bid-status{margin-top:3px;padding:3px 6px;font-size:.65rem}.compact-table .bidding-presentation>p,.compact-table .bidding-presentation>.reserve-bid-status{width:max-content;max-width:100%;position:absolute;top:110px;left:50%;transform:translate(-50%)}.compact-table .player-table-call{border-radius:7px;gap:5px;padding:5px 8px}.compact-table .player-table-call>span{font-size:.65rem}.compact-table .player-table-call>strong{font-size:1.1rem}.player-match-hud{z-index:12;pointer-events:none;width:min(30%,330px);position:absolute;top:10px;left:12px}.player-match-hud.during-bidding{display:contents}.player-match-hud.during-bidding>.player-match-score{z-index:12;width:min(30%,330px);position:absolute;top:10px;left:12px}.player-status{color:#234a62;margin-top:5px;font-size:13px}.player-status p{margin:0;line-height:1.35}.player-match-score{color:#234a62;flex-wrap:wrap;gap:4px 12px;font-size:13px;display:flex}.player-match-score>span{align-items:baseline;gap:5px;min-width:0;max-width:100%;display:flex}.player-match-score>span>span{text-overflow:ellipsis;white-space:nowrap;max-width:90px;overflow:hidden}.player-match-score b{font-variant-numeric:tabular-nums;font-size:17px}.player-match-score .team-A{color:#a1470c}.player-match-score .team-B{color:#603598}.table-page .opponent .seat-info,.table-page.compact-table .opponent .seat-label{box-shadow:none;border:0;border-radius:0}.compact-table .player-match-hud,.compact-table .player-match-hud.during-bidding>.player-match-score{width:calc(50% - 170px);top:3px;left:80px}.compact-table .player-match-score{gap:2px 8px;font-size:10px}.compact-table .player-match-score b{font-size:13px}.compact-table .player-status{margin-top:3px;font-size:10px}.player-match-score.individual{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.compact-table .player-match-score:not(.individual){flex-wrap:nowrap}.compact-table .player-match-score:not(.individual)>span{flex:1}.compact-table .player-match-score>span>span{min-width:0}.compact-table .player-match-score b{flex-shrink:0}.table-page .felt.reserve-view .opponent.bottom{align-items:center;width:min(42%,580px);max-height:none;inset:auto auto 7% 50%;overflow:visible;transform:translate(-50%)}.table-page .felt.reserve-view .opponent.bottom .seat-info{justify-content:center;width:100%}.table-page .felt.reserve-view .opponent.bottom .seat-label{text-align:center;flex:0 auto}.table-page .felt.reserve-view .opponent.bottom .seat-label>span{justify-content:center}.table-page .felt.reserve-view .opponent.bottom .player-play-history.self{order:-1;width:100%;margin-bottom:12px;position:static;inset:auto;transform:none}.table-page .felt.reserve-view .opponent.bottom .player-table-call{justify-content:center}.table-page .felt.reserve-view .bidding-presentation>p{display:none}.table-page .felt.reserve-view .opponent{max-height:none}.replay-table-actions{justify-content:flex-end;gap:8px;display:flex}.table-page.compact-table .my-area{container-type:inline-size}.table-page.compact-table .felt .hand{--player-hand-width:min(76px,calc(var(--hand-height) / 1.43),calc(100cqw / (1 + (var(--hand-count) - 1) * .56)));--player-hand-step:calc(var(--player-hand-width) * .56);grid-template-columns:var(--player-hand-tracks);width:calc(var(--player-hand-width) + (var(--hand-count) - 1) * var(--player-hand-step));align-items:end;gap:0;max-width:100%;margin-inline:auto;display:grid}.table-page.compact-table .felt .hand .card.playing-card{--card-width:var(--player-hand-width);--card-height:var(--hand-height);--card-pad-x:4px;--card-pad-y:5px;--card-rank-size:38cqw;--card-suit-size:35cqw;--card-suit-gap:3px;width:var(--player-hand-width);height:var(--hand-height);margin:0;padding:5px 4px}.spectator-page .spectator-seat.landlord{container-type:inline-size}.spectator-page .spectator-seat.landlord .spectator-hand{--landlord-max-width:76.56px;--landlord-card-width:min(var(--landlord-max-width),calc(100cqw / (1 + (var(--landlord-count) - 1) * .56)));--landlord-step:calc(var(--landlord-card-width) * .56);grid-template-columns:var(--landlord-tracks);width:calc(var(--landlord-card-width) + (var(--landlord-count) - 1) * var(--landlord-step));gap:0;max-width:100%;margin-inline:auto;display:grid}.spectator-page .spectator-seat.landlord .spectator-hand .spectator-card.playing-card{--card-pad-x:4px;--card-pad-y:4px;--card-rank-size:38cqw;--card-suit-size:35cqw;width:var(--landlord-card-width);max-width:none;margin:0;container-type:inline-size}@media (width<=900px){.spectator-page .spectator-seat.landlord .spectator-hand{--landlord-max-width:60.72px}}@media (height<=700px){.spectator-page .spectator-seat.landlord .spectator-hand{--landlord-max-width:58.08px}}@media (pointer:coarse) and (width<=1100px){.spectator-page .spectator-seat.landlord .spectator-hand{--landlord-max-width:28px}.spectator-page .spectator-seat.landlord .spectator-hand .spectator-card.playing-card{--card-pad-x:2px;--card-pad-y:2px;padding:2px}}.table-page .felt.terminal-table .opponent{max-height:none;overflow:visible}.table-page .felt.reserve-view.terminal-table .opponent.bottom{width:min(34%,580px)}.table-page .felt .reported-hand.terminal-hand{flex-direction:column;width:100%;min-width:0;container-type:inline-size}.table-page .felt .opponent.right .reported-hand.terminal-hand{flex-direction:column;align-items:flex-end}.table-page .felt .opponent.bottom .reported-hand.terminal-hand{align-items:center}.table-page .felt .reported-hand.terminal-hand>div{--remaining-width:min(68px,calc(100cqw / (1 + (var(--remaining-columns) - 1) * .66)));--remaining-step:calc(var(--remaining-width) * .66);grid-template-columns:repeat(var(--remaining-columns),var(--remaining-step));width:calc(var(--remaining-width) + (var(--remaining-columns) - 1) * var(--remaining-step));gap:2px 0;max-width:100%;padding:0;display:grid;overflow:visible}.table-page .felt .reported-hand.terminal-hand .card.playing-card{--card-width:var(--remaining-width);--card-height:calc(var(--remaining-width) * 1.43);--card-rank-size:max(13px,60cqw);--card-suit-size:max(12px,56cqw);--card-suit-gap:1px;--card-pad-x:2px;--card-pad-y:3px;width:var(--remaining-width);height:var(--card-height);margin:0;padding:3px 2px;container-type:inline-size}.table-page .felt .reported-hand.terminal-hand .card.playing-card>.playing-card-joker{left:var(--card-pad-x);writing-mode:horizontal-tb;white-space:normal;word-break:break-all;letter-spacing:0;width:1em;line-height:1.08}.table-page .felt .reported-hand.terminal-hand .playing-card-rank.rank-ten{transform-origin:0;transform:scaleX(.85)}
