/* The common club UI. Scene and card artwork remain in themes.css. */
.club-ui{--club-panel:#182d26;--club-ink:#f7efd9;--club-muted:#b8c4b8;--club-line:#8a9c7866;--club-accent:#e9cc8d;--club-yellow:#ffe14a;color-scheme:dark}
.club-ui button,.club-ui summary,.club-ui label{touch-action:manipulation}
.club-ui button:focus-visible,.club-ui input:focus-visible,.club-ui summary:focus-visible{outline:3px solid var(--club-yellow);outline-offset:4px}
.club-ui button{transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s}
.club-ui button:active:not(:disabled){translate:0 2px}
.club-ui .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.club-ui #gameApp{padding:0;gap:0;max-width:none;position:relative;font-family:'Segoe UI',sans-serif}
.club-ui #gameApp header{position:absolute;top:16px;left:24px;right:24px;height:auto;min-height:0;border:0;z-index:70;pointer-events:none;align-items:center}
.club-ui #gameApp header>*{pointer-events:auto}
.club-ui #gameApp .brand{color:var(--club-ink);font:700 23px 'Trebuchet MS',sans-serif;letter-spacing:3px;text-shadow:0 2px 6px #0008}
.club-ui #gameApp .edition{display:none}
.club-ui #gameApp header nav{gap:10px}
.club-ui #gameApp header #newBtn{display:none}
.club-ui #gameApp .quiet,.club-ui #gameApp #hintBtn{background:var(--club-panel);color:var(--club-ink);border:1px solid var(--club-line);border-radius:9px;box-shadow:0 3px 8px #0003;font:600 15px 'Segoe UI',sans-serif;padding:11px 17px;backdrop-filter:none}
.club-ui #gameApp .quiet:hover,.club-ui #gameApp #hintBtn:hover:not(:disabled){background:#294235;border-color:var(--club-accent)}
.club-ui #gameApp main{height:100%;min-height:0}
.club-ui #gameApp .layout{grid-template-columns:minmax(0,1fr);gap:0;height:100%}
.club-ui #gameApp .table-frame{height:100%;overflow:hidden}
.club-ui #gameApp aside{display:none}
.club-ui #gameApp .under-table{position:absolute;right:24px;bottom:22px;z-index:65;min-height:0;padding:0}
.club-ui #gameApp #selectionHelp,.club-ui #gameApp #score0{display:none}
.club-ui #gameApp #hintBtn:disabled{opacity:.55}
.club-ui #gameApp .seat .avatar{display:none}
.club-ui #gameApp .seat .player-label{font:21px/1.2 'Segoe UI',sans-serif;color:var(--club-ink);text-shadow:none;min-height:36px}
.club-ui #gameApp .seat .player-label>div{background:var(--club-panel);border:1px solid var(--club-line);border-radius:10px;padding:9px 20px;box-shadow:0 3px 8px #0004;max-width:440px;width:max-content;overflow-wrap:anywhere;color:var(--club-ink)}
.club-ui #gameApp .seat .player-label small{display:none}
.club-ui #gameApp .seat .player-name{font:inherit;color:inherit;cursor:text}
.club-ui #gameApp .seat .player-name{white-space:normal}
.club-ui.scene-theme #gameApp .seat-top .player-label>div{max-width:650px}
.club-ui #gameApp .seat.taking-trick .player-label>div{background:var(--club-yellow)!important;color:#203323!important;box-shadow:0 0 0 2px #fff0a4,0 0 20px #ffe14a55!important}
.club-ui #gameApp .seat.taking-trick:not(#seat0) .player-name:after{content:'Берёт';display:inline-block;border-left:1px solid #697431;margin-left:12px;padding-left:12px;font:14px 'Segoe UI',sans-serif}
.club-ui.scene-theme #gameApp .seat-top .player-label{height:auto;min-height:40px}
.club-ui.scene-theme #gameApp .seat-left .player-label,.club-ui.scene-theme #gameApp .seat-right .player-label{height:35px}
.club-ui.scene-theme #gameApp .seat-bottom .player-label{left:0;top:12px;transform:translateX(-100%);max-width:none}
.club-ui #gameApp button.card.selected:after{content:'✓';position:absolute;left:7px;bottom:8px;width:23px;height:23px;border:2px solid #fff5b7;border-radius:50%;background:var(--club-yellow);color:#233c2c;font:700 15px/19px 'Segoe UI',sans-serif;z-index:7;pointer-events:none}
.club-ui #gameApp #scoreboard{position:absolute;left:30px;bottom:28px;top:auto;right:auto;width:318px;margin:0;padding:19px 21px;border:1px solid var(--club-line);border-radius:12px;background:var(--club-panel);color:var(--club-ink);box-shadow:0 7px 18px #0004;font-family:'Segoe UI',sans-serif;transform:none;z-index:18;text-shadow:none;letter-spacing:0}
.club-ui #gameApp #scoreboard:before,.club-ui #gameApp #scoreboard:after{display:none}
.club-ui #gameApp #scoreboard #scoreboardMode{display:block;padding:0 45px 0 0;color:var(--club-muted);font:16px/1.3 'Segoe UI',sans-serif;text-transform:none;letter-spacing:0;min-height:27px}
.club-ui #gameApp #scoreboard .round-title{position:absolute;left:21px;top:79px;margin:0;display:flex;flex-direction:column;gap:6px;color:var(--club-muted);font:15px 'Segoe UI',sans-serif}
.club-ui #gameApp #scoreboard #round{font:400 30px 'Segoe UI',sans-serif;color:var(--club-ink);font-variant-numeric:tabular-nums}
.club-ui #gameApp #scoreboard #standings{margin:15px 0 0;display:block}
.club-ui #gameApp #scoreboard .team-standing{position:relative;padding:0 0 14px 85px;display:block;min-height:94px;border:0;background:transparent;color:var(--club-ink);box-shadow:none}
.club-ui #gameApp #scoreboard .team-standing>div{border-left:1px solid var(--club-line);padding-left:18px}
.club-ui #gameApp #scoreboard .team-standing span{font:16px/1.3 'Segoe UI',sans-serif;color:var(--club-ink)}
.club-ui #gameApp #scoreboard .team-standing>div small{display:none}
.club-ui #gameApp #scoreboard .team-standing>b{display:block;margin-left:18px;font:600 51px/1.2 'Segoe UI',sans-serif;color:var(--club-accent);font-variant-numeric:tabular-nums;letter-spacing:0;text-shadow:none}
.club-ui #gameApp #scoreboard .team-standing>b small{display:none}
.club-ui #gameApp #scoreboard .penalty-list{border-top:1px solid var(--club-line);padding-top:13px;margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:11px}
.club-ui #gameApp #scoreboard .penalty-row{display:flex;justify-content:space-between;gap:10px;font:16px/1.25 'Segoe UI',sans-serif;color:var(--club-ink);border:0;padding:0;background:transparent;text-shadow:none;letter-spacing:0}
.club-ui #gameApp #scoreboard .penalty-row span{min-width:0;overflow-wrap:anywhere}
.club-ui #gameApp #scoreboard .penalty-row b{font:600 16px 'Segoe UI',sans-serif;white-space:nowrap;font-variant-numeric:tabular-nums}
.club-ui #gameApp #scoreboard .penalty-row small{font:11px 'Segoe UI',sans-serif;color:var(--club-muted)}
.club-ui #gameApp #scoreboard .closed-note,.club-ui #gameApp #scoreboard>p{display:none}
.club-ui #penaltyHelpButton{top:16px;right:18px;width:36px;height:36px;padding:0;border:2px solid var(--club-accent);background:transparent;border-radius:50%;color:var(--club-accent);font:700 24px Georgia;opacity:1}
.club-ui #penaltyHelpButton:hover,.club-ui #penaltyHelpButton[aria-expanded=true]{background:var(--club-yellow);color:#203323;border-color:var(--club-yellow)}
.club-ui #gameApp #scoreboard .score-gain:after{content:attr(data-gain);position:absolute;right:0;top:36px;background:#ffe14a;color:#203323;padding:3px 8px;border-radius:5px;font:700 19px 'Segoe UI',sans-serif;animation:club-gain .9s both;pointer-events:none}
@keyframes club-gain{0%{opacity:0;transform:translateY(8px)}20%,65%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-13px)}}
.club-ui #gameApp #gameControls{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);width:550px;margin:0;padding:0;min-height:0;border:0;border-radius:0;background:none;box-shadow:none;z-index:35;display:block}
.club-ui #gameApp #gameControls .turn{position:absolute;left:50%;bottom:calc(100% + 11px);transform:translateX(-50%);width:max-content;max-width:620px;height:auto;clip-path:none;overflow:visible;display:block;text-align:center;font:17px/1.3 'Segoe UI',sans-serif;color:#fff9e4;background:#182d26e8;padding:6px 13px;border-radius:7px;text-shadow:none}
.club-ui #gameApp #gameControls .turn>.live{display:none}
.club-ui #gameApp #gameControls .actions{display:flex;gap:14px;flex-wrap:nowrap;width:100%}
.club-ui #gameApp #gameControls .primary{height:67px;min-width:0;width:50%;flex:1;padding:10px 18px;border-radius:10px;font:600 24px 'Segoe UI',sans-serif;letter-spacing:0;opacity:1;text-shadow:none}
.club-ui #gameApp #discard{background:var(--club-panel);border:2px solid #e6d8aa;color:var(--club-ink);box-shadow:0 4px 0 #081b13,0 7px 12px #0003}
.club-ui #gameApp #play{background:#f3d896;border:1px solid #ffedbc;color:#263324;box-shadow:0 4px 0 #6c5c31,0 7px 12px #0003}
.club-ui #gameApp #play:after{content:attr(data-detail);display:inline-block;margin-left:14px;font-size:13px;font-weight:400}
.club-ui #gameApp #discard:hover:not(:disabled){background:#294235;box-shadow:0 0 0 3px #ffe15a90,0 4px 0 #081b13}
.club-ui #gameApp #play:hover:not(:disabled){background:#ffe69d;box-shadow:0 0 0 3px var(--club-yellow),0 4px 0 #6c5c31}
.club-ui #gameApp #gameControls button:disabled{background:#575f5a!important;color:#c0c5c0!important;border:1px solid #a1a7a1!important;box-shadow:none!important;opacity:1}
.club-ui #gameApp .table-caption{background:var(--club-panel);color:var(--club-ink);border:1px solid var(--club-line);border-radius:28px;padding:8px 17px;width:max-content;max-width:100%;left:50%;transform:translateX(-50%);font:21px/1.3 'Segoe UI',sans-serif;text-shadow:none}
.club-ui #gameApp .play-tag{background:var(--club-panel);color:var(--club-ink);border:1px solid var(--club-line);font-family:'Segoe UI',sans-serif;border-radius:6px;text-shadow:none}
.club-ui #gameApp .winning-tag{background:#ffe14a;color:#203323;border-color:#fff2b0}
.club-ui #gameApp .trump-badge{color:var(--club-ink);background:var(--club-panel);border:1px solid var(--club-line);border-radius:8px;padding:7px 12px;font:17px 'Segoe UI',sans-serif;letter-spacing:0;width:max-content;display:flex;align-items:center;gap:12px;text-transform:none;text-shadow:none;z-index:19}
.club-ui #gameApp .trump-badge strong{display:grid;place-items:center;background:#fff7e5;border-radius:4px;width:31px;height:35px;margin:0;color:#202b24;font:29px Georgia;text-shadow:none}
.club-ui #gameApp .trump-badge strong.red-suit{color:#b52628}
.club-ui #gameApp .deck-count{font-family:'Segoe UI',sans-serif;letter-spacing:0}
.club-ui #gameApp #error:not(:empty){background:var(--club-panel);color:#ffe28a;border:1px solid #b9a664;border-radius:8px;padding:8px 16px;z-index:60}
.club-ui #gameApp #gameControls .actions #discard:not(:disabled){background:var(--club-panel);color:var(--club-ink);border:2px solid #e6d8aa;box-shadow:0 4px 0 #081b13,0 7px 12px #0003;opacity:1}
.club-ui #gameApp #gameControls .actions #play:not(:disabled){background:#f3d896;color:#263324;border:1px solid #ffedbc;box-shadow:0 4px 0 #6c5c31,0 7px 12px #0003;opacity:1}
.club-ui #gameApp #gameControls .actions #discard:hover:not(:disabled){background:#294235;box-shadow:0 0 0 3px #ffe15a90,0 4px 0 #081b13}
.club-ui #gameApp #gameControls .actions #play:hover:not(:disabled){background:#ffe69d;box-shadow:0 0 0 3px var(--club-yellow),0 4px 0 #6c5c31}
.club-ui #gameApp #gameControls .actions :is(#discard,#play):disabled{background:#575f5a;color:#c0c5c0;border:1px solid #a1a7a1;box-shadow:none;opacity:1}
.club-ui #gameApp #table .trump-badge{background:var(--club-panel);color:var(--club-ink);border:1px solid var(--club-line);font-family:'Segoe UI',sans-serif;letter-spacing:0}
.club-ui #gameApp #table .trump-badge #trump{color:#202b24;background:#fff7e5;border-color:#cfbf9b}
.club-ui #gameApp #table .trump-badge #trump.red-suit{color:#b52628}
.club-ui.scene-theme #gameApp #gameControls{bottom:10px}
.club-ui #gameApp #gameControls #status{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.club-ui.scene-theme #gameApp #seat0{bottom:145px}
.club-ui.print-theme #gameApp #seat0,.club-ui[data-theme=tavern] #gameApp #seat0{bottom:125px}
.club-ui[data-theme=light] #gameApp #seat0{bottom:105px}
.club-ui.scene-theme #gameApp #seat0 .player-label{left:0;top:12px;transform:translateX(-100%)}
.club-ui #gameApp #trickHistory{display:none}
.club-ui.scene-theme #gameApp .table-caption{top:-50px}
.club-ui.print-theme #gameApp .table-center{top:305px}
.club-ui.print-theme #gameApp .table-caption{top:-37px;font-size:18px;padding:5px 12px}
.club-ui[data-theme=light] #gameApp #gameControls .turn{width:1px;height:1px;clip-path:inset(50%);overflow:hidden;padding:0}
.club-ui[data-theme=tavern] #gameApp .deck-zone{left:215px;top:290px}
.club-ui[data-theme=tavern] #gameApp #table .trump-badge{left:215px;top:505px}
.club-ui.scene-theme #gameApp #table .trump-badge{left:365px}
.club-ui.scene-theme #gameApp #gameControls .turn{width:1px;height:1px;clip-path:inset(50%);overflow:hidden;padding:0}
.club-ui:not(.scene-theme) #gameApp .brand,.club-ui[data-theme=light] #gameApp .brand{background:var(--club-panel);border:1px solid var(--club-line);border-radius:9px;padding:8px 13px;text-shadow:none}
/* Classic retains its 900×600 playfield and card dimensions. */
.club-ui:not(.scene-theme) #gameApp #scoreboard{left:17px;bottom:17px;width:214px;padding:12px 13px}
.club-ui:not(.scene-theme) #gameApp #scoreboard #scoreboardMode{font-size:11px;min-height:18px;padding-right:28px}
.club-ui:not(.scene-theme) #gameApp #scoreboard .round-title{left:13px;top:55px;font-size:11px;gap:2px}
.club-ui:not(.scene-theme) #gameApp #scoreboard #round{font-size:22px}
.club-ui:not(.scene-theme) #gameApp #scoreboard #standings{margin-top:12px}
.club-ui:not(.scene-theme) #gameApp #scoreboard .team-standing{padding-left:56px;min-height:66px;padding-bottom:9px}
.club-ui:not(.scene-theme) #gameApp #scoreboard .team-standing>div{padding-left:10px}
.club-ui:not(.scene-theme) #gameApp #scoreboard .team-standing span{font-size:12px}
.club-ui:not(.scene-theme) #gameApp #scoreboard .team-standing>b{font-size:35px;margin-left:10px}
.club-ui:not(.scene-theme) #gameApp #scoreboard .penalty-list{gap:7px;padding-top:9px}
.club-ui:not(.scene-theme) #gameApp #scoreboard .penalty-row,.club-ui:not(.scene-theme) #gameApp #scoreboard .penalty-row b{font-size:11px}
.club-ui:not(.scene-theme) #gameApp #scoreboard .penalty-row small{font-size:8px}
.club-ui:not(.scene-theme) #penaltyHelpButton{right:12px;top:10px;width:26px;height:26px;font-size:19px}
.club-ui:not(.scene-theme) #gameApp .seat .player-label{font-size:14px;min-height:24px}
.club-ui:not(.scene-theme) #gameApp .seat .player-label>div{padding:5px 10px;max-width:240px}
.club-ui:not(.scene-theme) #gameApp .seat.taking-trick:not(#seat0) .player-name:after{font-size:10px;margin-left:7px;padding-left:7px}
.club-ui:not(.scene-theme) #gameApp #seat0{bottom:106px}
.club-ui:not(.scene-theme) #gameApp #seat0 .your-hand{margin-bottom:0}
.club-ui:not(.scene-theme) #gameApp #seat0 .player-label{position:absolute;top:-34px;left:50%;transform:translateX(-50%)}
.club-ui:not(.scene-theme) #gameApp #gameControls{width:365px;bottom:24px}
.club-ui:not(.scene-theme) #gameApp #gameControls .actions{gap:10px}
.club-ui:not(.scene-theme) #gameApp #gameControls .primary{height:47px;padding:8px;font-size:17px}
.club-ui:not(.scene-theme) #gameApp #play:after{font-size:10px;margin-left:7px}
.club-ui:not(.scene-theme) #gameApp #gameControls .turn{font-size:12px;max-width:420px;padding:4px 9px;bottom:calc(100% + 8px)}
.club-ui:not(.scene-theme) #gameApp .deck-zone{top:279px}
.club-ui:not(.scene-theme) #gameApp .trump-badge{left:153px;right:auto;top:317px;font-size:11px;padding:5px 8px;gap:7px}
.club-ui:not(.scene-theme) #gameApp .trump-badge strong{width:23px;height:26px;font-size:22px}
.club-ui:not(.scene-theme) #gameApp .table-caption{font-size:13px;padding:5px 11px}
html.club-ui:not(.scene-theme) #gameApp .layout{grid-template-columns:minmax(0,1fr)}
.club-ui:not(.scene-theme) #gameApp .seat-left,.club-ui:not(.scene-theme) #gameApp .seat-right{top:120px}
.club-ui:not(.scene-theme) #gameApp .deck-zone{top:238px}
.club-ui:not(.scene-theme) #gameApp .deck-count{padding-top:139px}
.club-ui:not(.scene-theme) #gameApp .trump-badge{left:auto;right:35px;top:270px}
.club-ui #gameApp .seat.active-seat{box-shadow:none;background:transparent;border-color:transparent}
/* A separate portrait arrangement keeps the shared score above the cards. */
.club-ui #gameApp #table.compact-table{height:760px}
.club-ui #gameApp #table.compact-table #scoreboard{left:10px;top:130px;bottom:auto;width:400px;height:108px;padding:9px 12px}
.club-ui #gameApp #table.compact-table #scoreboard #scoreboardMode{padding-right:0;width:170px;font-size:11px;min-height:16px}
.club-ui #gameApp #table.compact-table #scoreboard .round-title{left:12px;top:48px;font-size:11px}
.club-ui #gameApp #table.compact-table #scoreboard #round{font-size:25px}
.club-ui #gameApp #table.compact-table #standings{margin-top:8px}
.club-ui #gameApp #table.compact-table #scoreboard .team-standing{width:177px;padding-left:54px;min-height:68px}
.club-ui #gameApp #table.compact-table #scoreboard .team-standing span{font-size:11px}
.club-ui #gameApp #table.compact-table #scoreboard .team-standing>b{font-size:35px}
.club-ui #gameApp #table.compact-table #scoreboard .penalty-list{position:absolute;right:12px;top:13px;width:190px;border-top:0;border-left:1px solid var(--club-line);padding:0 0 0 12px;gap:7px}
.club-ui #gameApp #table.compact-table #scoreboard .penalty-row,.club-ui #gameApp #table.compact-table #scoreboard .penalty-row b{font-size:12px;line-height:15px}
.club-ui #gameApp #table.compact-table #penaltyHelpButton{left:153px;right:auto;top:70px;width:29px;height:29px;font-size:21px}
.club-ui #gameApp #table.compact-table .seat-left,.club-ui #gameApp #table.compact-table .seat-right{top:235px}
.club-ui #gameApp #table.compact-table .deck-zone{left:8px;top:27px;transform:scale(.5)}
.club-ui #gameApp #table.compact-table .trump-badge{left:auto;right:8px;top:29px;font-size:10px;padding:4px 6px;gap:5px}
.club-ui #gameApp #table.compact-table .trump-badge #trump{width:26px;height:28px;font-size:24px;flex-basis:26px}
.club-ui #gameApp #table.compact-table .table-center{top:375px}
.club-ui #gameApp #table.compact-table .table-caption{top:-32px;font-size:12px}
.club-ui #gameApp #table.compact-table #seat0{bottom:80px}
.club-ui #gameApp #table.compact-table #gameControls{bottom:12px}
.club-ui #gameApp #table.compact-table #gameControls .primary{height:52px}
.club-ui #gameApp #table.compact-table #gameControls .turn{width:1px;height:1px;clip-path:inset(50%);overflow:hidden;padding:0}
/* Shared menu: actual existing controls, no second settings model. */
.club-ui .main-menu{padding:0;display:block;background:var(--club-panel);color:var(--club-ink);font-family:'Segoe UI',sans-serif;overflow:auto}
.club-ui .main-menu:before{display:none}
.club-ui .main-menu .club-menu{width:100%;height:100dvh;min-height:600px;display:grid;grid-template-columns:54% 46%;text-align:left;max-width:none;padding:0}
.club-ui .menu-scene{position:relative;background-size:cover;background-position:center;min-width:0}
.club-ui .menu-scene .brand{position:absolute;left:45px;top:40px;font:700 36px 'Trebuchet MS',sans-serif;letter-spacing:5px;color:#f7efd9;text-shadow:0 2px 7px #0008;display:flex;gap:14px}
.club-ui .chosen-table{position:absolute;bottom:42px;left:42px;right:42px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff4d5}
.club-ui .chosen-table b{font:36px/1.2 Georgia,serif;max-width:65%;overflow-wrap:anywhere}
.club-ui #chooseTable,.club-ui #resumeGame{background:var(--club-panel);color:var(--club-ink);border:1px solid var(--club-line);border-radius:9px;padding:12px 17px;font:600 15px 'Segoe UI',sans-serif}
.club-ui #chooseTable:hover,.club-ui #resumeGame:hover{background:#294235;border-color:var(--club-accent)}
.club-ui .club-menu .play-settings{position:relative;display:flex;flex-direction:column;gap:20px;padding:36px 42px;overflow:auto;min-height:0}
.club-ui .main-menu h1{font:400 36px/1.2 Georgia,serif;letter-spacing:0;margin:28px 0 5px;color:var(--club-ink)}
.club-ui #resumeGame{position:absolute;top:13px;right:25px;border:0;background:none;font-size:13px;padding:6px 8px}
.club-ui #resumeGame span{margin-left:16px;font-size:20px}
.club-ui .play-settings fieldset{border:0;padding:0;margin:0;min-width:0}
.club-ui .play-settings legend{font:600 17px 'Segoe UI',sans-serif;color:var(--club-ink);margin:0 0 12px}
.club-ui .play-settings .mode-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.club-ui .play-settings .mode-picker label{position:relative;padding:12px 6px;text-align:center;background:#10231c;border:1px solid var(--club-line);border-radius:7px;display:block;cursor:pointer;min-width:0}
.club-ui .play-settings .mode-picker input{position:absolute;opacity:0;width:1px;height:1px}
.club-ui .play-settings .mode-picker label:has(input:checked){background:#f3d896;color:#263324;border-color:#fff0b9;box-shadow:0 2px 6px #0002}
.club-ui .play-settings .mode-picker label:has(input:focus-visible){outline:3px solid var(--club-yellow);outline-offset:3px}
.club-ui .play-settings .mode-picker label>span{font:600 16px 'Segoe UI',sans-serif;color:inherit}
.club-ui .play-settings .mode-picker small{display:block;font:12px/1.3 'Segoe UI',sans-serif;color:inherit;opacity:.8;margin-top:5px}
.club-ui .club-rules{border-top:1px solid var(--club-line);padding-top:17px}
.club-ui .club-rules summary{font:600 17px 'Segoe UI',sans-serif;cursor:pointer;list-style-position:inside}
.club-ui #rulePicker{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px;margin-top:17px}
.club-ui #rulePicker .rule-option{display:flex;align-items:flex-start;gap:10px;padding:0;margin:0;background:transparent;border:0;border-radius:0;box-shadow:none;min-width:0;cursor:pointer}
.club-ui #rulePicker input{width:19px;height:19px;flex:none;accent-color:#e5c777;margin:2px 0 0}
.club-ui #rulePicker b{font:600 15px 'Segoe UI',sans-serif;color:var(--club-ink)}
.club-ui #rulePicker small{font:12px/1.35 'Segoe UI',sans-serif;color:var(--club-muted);display:block;margin-top:4px}
.club-ui .play-settings .rule-note,.club-ui #settingsSummary{display:none}
.club-ui .play-settings #scoringNote{display:block;font:13px/1.4 'Segoe UI',sans-serif;color:var(--club-muted);margin:0}
.club-ui .main-menu #startGame{margin-top:auto;align-self:stretch;width:100%;min-width:0;min-height:58px;padding:14px 20px;background:#f3d896;border:1px solid #ffedbc;border-radius:9px;color:#263324;font:600 23px 'Segoe UI',sans-serif;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 0 #6c5c31,0 7px 12px #0003}
.club-ui .main-menu #startGame:hover:not(:disabled){background:#ffe69d;box-shadow:0 0 0 3px var(--club-yellow),0 4px 0 #6c5c31}
.club-ui dialog{background:var(--club-panel);border:1px solid var(--club-line);border-radius:12px;color:var(--club-ink);box-shadow:0 18px 60px #0007;font-family:'Segoe UI',sans-serif;max-height:90dvh;overscroll-behavior:contain}
.club-ui dialog::backdrop{background:#071b13bc;backdrop-filter:none}
.club-ui dialog h2{color:var(--club-ink);font:34px/1.2 Georgia,serif;letter-spacing:0}
.club-ui dialog .quiet,.club-ui dialog .primary{border:1px solid var(--club-line);border-radius:8px;padding:13px 19px;background:var(--club-panel);color:var(--club-ink);font:600 17px 'Segoe UI',sans-serif}
.club-ui dialog .primary{background:#f3d896;color:#263324;border-color:#ffedbc;box-shadow:0 4px 0 #6c5c31}
.club-ui dialog button:hover{filter:brightness(1.12)}
.club-ui #themeDialog{width:min(1100px,94vw);padding:26px;max-height:92dvh}
.club-ui .theme-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:20px}
.club-ui .theme-dialog-head h2{font-size:29px;margin:0}
.club-ui #closeThemes{background:transparent;color:var(--club-ink);border:0;font-size:30px;width:42px;height:42px}
.club-ui #themeDialog .theme-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0 0}
.club-ui #themeDialog legend{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.club-ui #themeDialog .theme-choice{padding:6px;border:2px solid var(--club-line);background:#10271e;border-radius:10px;box-shadow:none;min-width:0}
.club-ui #themeDialog .theme-choice:has(input:checked){border-color:var(--club-yellow);box-shadow:0 0 0 2px #ffe14a33}
.club-ui #themeDialog .theme-choice img{height:105px;aspect-ratio:auto;object-fit:cover;width:100%;border-radius:5px}
.club-ui #themeDialog .theme-choice small{display:none}
.club-ui #themeDialog .theme-choice span{font:600 14px/1.25 'Segoe UI',sans-serif;margin:9px 6px 6px;min-height:35px;color:var(--club-ink)}
.club-ui #themeDialog .theme-choice input{width:18px;height:18px;accent-color:#e5c777}
.club-ui #result{width:min(850px,94vw);padding:35px 40px}
.club-ui #result .result-suit{color:var(--club-accent);font-size:45px;text-align:center;margin:0}
.club-ui #result #resultEyebrow{color:var(--club-muted);font:16px 'Segoe UI',sans-serif;letter-spacing:0;text-align:center}
.club-ui #resultTitle{margin:15px 0 10px;text-align:center;font-size:35px}
.club-ui #resultReason{color:var(--club-muted);font:15px/1.5 'Segoe UI',sans-serif;text-align:center}
.club-ui #result .result-table{margin:28px 0;width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.club-ui #result .result-table th{font:14px 'Segoe UI',sans-serif;text-align:right;color:var(--club-muted);border:0;border-bottom:1px solid var(--club-line);padding:12px 10px;background:none;letter-spacing:0;text-transform:none}
.club-ui #result .result-table td{font:20px/1.4 'Segoe UI',sans-serif;text-align:right;border:0;border-bottom:1px solid var(--club-line);padding:18px 10px;background:none;color:var(--club-ink)}
.club-ui #result .result-table th:first-child,.club-ui #result .result-table td:first-child{text-align:left;max-width:260px}
.club-ui #result .round-winner{display:block;color:var(--club-accent);font-size:13px}
.club-ui #result .result-actions{display:flex;justify-content:space-between;gap:18px}
.club-ui #resultAuto:empty{display:none}
.club-ui #result .result-actions .primary{min-width:260px}
.club-ui #result{max-width:850px;padding:28px 32px}
.club-ui #result .result-suit{font-size:36px;line-height:1}
.club-ui #result #resultEyebrow{font-size:14px;line-height:1.3}
.club-ui #result #resultTitle{font-size:32px;margin:12px 0 8px}
.club-ui #result #resultReason{font-size:14px;margin:8px 0}
.club-ui #resultScores{margin:0;font:inherit}
.club-ui #result .result-table{table-layout:auto;margin:20px 0}
.club-ui #result .result-table td{font-size:18px;line-height:1.3;padding:13px 10px}
.club-ui #result .result-actions{flex-wrap:nowrap;align-items:center;margin-top:18px}
.club-ui #result .result-actions .quiet{margin:0}
.club-ui #result #nextRound{width:auto;display:inline-block;min-width:250px;background:#f3d896;color:#263324;border:1px solid #ffedbc;border-radius:8px;padding:13px 19px;font:600 17px 'Segoe UI',sans-serif;box-shadow:0 4px 0 #6c5c31}
.club-ui #nameEditor{width:min(480px,94vw)}
.club-ui #nameEditor input{background:#fff9e9;color:#20392b;border:1px solid var(--club-line);border-radius:7px;font-size:20px}
.club-ui #penaltyHelp{background:var(--club-panel);color:var(--club-ink);border:1px solid var(--club-accent);font:15px/1.5 'Segoe UI',sans-serif;padding:20px;border-radius:12px;width:min(380px,calc(100vw - 16px));box-shadow:0 9px 30px #0006}
.club-ui #penaltyHelp strong{font:23px Georgia,serif}
.club-ui #penaltyHelp p,.club-ui #penaltyHelp li{color:var(--club-ink)}
.club-ui #rules{color:var(--club-ink)}
.club-ui #rules p,.club-ui #rules .variant,.club-ui #rules .fine,.club-ui #rules article{color:var(--club-muted);background:transparent}
@media(max-height:760px) and (min-width:901px){.club-ui .club-menu .play-settings{padding:22px 30px;gap:14px}.club-ui .main-menu h1{font-size:32px;margin:15px 0 2px}.club-ui .play-settings legend{font-size:16px;margin-bottom:8px}.club-ui .play-settings .mode-picker label{padding:10px 5px}.club-ui .play-settings .mode-picker small{font-size:11px}.club-ui #rulePicker{gap:11px 14px;margin-top:12px}.club-ui #rulePicker small{font-size:11px}.club-ui .club-rules{padding-top:13px}.club-ui .main-menu #startGame{min-height:54px;font-size:21px}}
@media(max-width:900px){.club-ui .main-menu .club-menu{grid-template-columns:43% 57%}.club-ui .club-menu .play-settings{padding:25px;gap:18px}.club-ui .chosen-table{left:24px;right:24px;bottom:28px;flex-direction:column;align-items:flex-start}.club-ui .chosen-table b{font-size:30px;max-width:100%}.club-ui .menu-scene .brand{left:24px;font-size:29px}.club-ui #themeDialog .theme-picker{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.club-ui .main-menu .club-menu{display:flex;flex-direction:column;min-height:100dvh;height:auto}.club-ui .menu-scene{height:220px;flex:none}.club-ui .chosen-table{left:22px;right:22px;bottom:22px;flex-direction:row;align-items:center}.club-ui .chosen-table b{font-size:27px}.club-ui .club-menu .play-settings{overflow:visible;padding:22px;gap:20px}.club-ui .main-menu h1{font-size:30px;margin:18px 0 0}.club-ui #themeDialog .theme-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.club-ui #themeDialog{padding:16px}.club-ui #result{padding:24px 17px}.club-ui #resultTitle{font-size:27px}.club-ui #result .result-table td{font-size:15px;padding:13px 5px}.club-ui #result .result-table th{font-size:11px;padding:10px 5px}.club-ui #result .result-actions{flex-direction:column}.club-ui #gameApp header{top:10px;left:12px;right:12px}.club-ui #gameApp .brand{font-size:17px}.club-ui #gameApp .quiet,.club-ui #gameApp #hintBtn{font-size:12px;padding:8px 10px}.club-ui #gameApp .under-table{right:12px;bottom:12px}}
@media(prefers-reduced-motion:reduce){.club-ui button{transition:none}.club-ui #gameApp #scoreboard .score-gain:after{animation:none;display:none}}
/* Cards in the menu use the live deck artwork, directly on the scene. */
.club-ui .menu-scene{container-type:inline-size;overflow:hidden}
.club-ui .menu-scene .brand,.club-ui .chosen-table{z-index:2}
.menu-table-preview{position:absolute;inset:0;pointer-events:none;--preview-card:clamp(46px,11cqw,100px)}
.menu-preview-layout{position:absolute;inset:0}
.menu-preview-layout>div{position:absolute;display:flex;gap:5px;transform:translate(-50%,-50%)}
.menu-preview-layout .card{width:var(--preview-card);height:calc(var(--preview-card)*1.43);border-radius:6px;box-shadow:1px 5px 10px #0005;--pip-size:calc(var(--preview-card)*.23);overflow:hidden;background:#fff;color:#26382f}
.menu-preview-layout .card.red{color:#b02e27}
[data-theme=classic] .menu-preview-layout .back{background:repeating-linear-gradient(45deg,#213f38 0 3px,#284a41 3px 5px)}
.menu-preview-layout .card .corner{left:6%;top:5%;font:bold calc(var(--preview-card)*.25)/1 Georgia,serif;z-index:4}
.menu-preview-layout .corner small{font-size:calc(var(--preview-card)*.2)}
.menu-preview-layout .card .bottom{right:6%;bottom:5%;font-size:calc(var(--preview-card)*.2);z-index:4}
.menu-preview-layout .card .center{font-size:calc(var(--preview-card)*.65)}
.menu-preview-layout .theme-center-suit{font-size:calc(var(--preview-card)*.8);z-index:1}
.menu-preview-layout .card-paper{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.menu-preview-layout .pip-field{z-index:1}
.menu-preview-layout .preview-top{left:50%;top:24%;gap:3px}
.menu-preview-layout .preview-top .card{margin-left:calc(var(--preview-card)*-.12)}
.menu-preview-layout .preview-left{left:12%;top:47%;transform:translate(-50%,-50%) rotate(90deg)}
.menu-preview-layout .preview-right{left:88%;top:47%;transform:translate(-50%,-50%) rotate(-90deg)}
.menu-preview-layout :is(.preview-left,.preview-right) .card+.card{margin-left:calc(var(--preview-card)*-.65)}
.menu-preview-layout .preview-own{left:50%;top:75%;gap:6px}
.menu-preview-layout .preview-own .card:nth-child(1){transform:rotate(-7deg) translateY(5px)}
.menu-preview-layout .preview-own .card:nth-child(2){transform:rotate(-2deg)}
.menu-preview-layout .preview-own .card:nth-child(3){transform:rotate(3deg)}
.menu-preview-layout .preview-own .card:nth-child(4){transform:rotate(8deg) translateY(5px)}
.menu-preview-layout .preview-attack{left:47%;top:47%;transform:translate(-50%,-50%) rotate(-7deg)}
.menu-preview-layout .preview-winning{left:52%;top:51%;transform:translate(-50%,-50%) rotate(3deg)}
.menu-preview-layout .preview-winning .card{border-color:#ffdb16;box-shadow:0 0 0 2px #ffe32b,0 0 15px #ffdf2388,0 4px 8px #0005}
.menu-preview-layout .preview-deck{left:14%;top:66%;display:block}
.menu-preview-layout .preview-deck .card:first-child{position:absolute;left:42%;top:14%;transform:rotate(90deg)}
.menu-preview-layout .preview-deck .back{box-shadow:2px 3px 0 #b7a582,4px 6px 0 #8c775d,0 5px 10px #0005}
.scene-theme .menu-preview-layout .card .center,.scene-theme .menu-preview-layout .back:after{display:none}
.scene-theme .menu-preview-layout .back{border:4px solid #fff;outline:0}
.print-theme .menu-preview-layout .face-art{left:15%;top:4%;width:83%;height:92%;z-index:1}
[data-theme=courtyard] .menu-preview-layout :is(.face-art,.card-paper){inset:0;width:100%;height:100%;filter:none;mask-image:none}
[data-theme=courtyard] .menu-preview-layout .back{border:2px solid #decbaa;background:#a44232}
[data-theme=courtyard] .menu-preview-layout .back-art{display:block;background-size:100% 100%;background-position:center;background-repeat:no-repeat}
[data-theme=tavern] .menu-preview-layout .card{background:#efe0b7}
@media(max-width:600px){.menu-table-preview{inset:0 0 32px;--preview-card:clamp(30px,7.5cqw,44px)}.menu-preview-layout .preview-top{top:23%}.menu-preview-layout .preview-own{top:78%}.menu-preview-layout .preview-left{left:24%}.menu-preview-layout .preview-right{left:84%}.menu-preview-layout .preview-deck{left:27%;top:66%}.menu-preview-layout .preview-attack{left:58%;top:46%}.menu-preview-layout .preview-winning{left:62%;top:51%}}
