/* One portrait game canvas, including its six fixed attack slots. */
html:has(body[data-page=game]),body[data-page=game],body[data-page=game] #app{height:100dvh;min-height:0;overflow:hidden}
body[data-page=game]{background:#003e2e;color:#fffdf2}
body[data-page=game] .game-shell{height:100%;max-width:460px;padding:5px 12px 8px;display:flex;flex-direction:column;gap:8px;min-height:0}
body[data-page=game] .game-header{height:44px;min-height:44px;margin:0;display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}
body[data-page=game] .game-header>.durava-logo{font-size:34px;color:#fffdf4;letter-spacing:-1.5px}
body[data-page=game] .game-header .icon-btn{height:44px;width:44px;border:0;background:none;color:#fffdf1}
body[data-page=game] .game-header .icon-btn>svg{width:25px;height:25px}
body[data-page=game] .game{flex:1;min-height:0;min-width:0;width:100%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:68px auto minmax(0,1fr) var(--hand-row,166px) 60px;gap:8px}
body[data-page=game] .table-info{display:flex;min-height:0;min-width:0;gap:0;align-items:center;border:1px solid #f4f6e751;border-radius:18px;background:#00382b4d;padding:7px 9px;box-shadow:0 1px 4px #001c1b22}
body[data-page=game] .opponents{height:100%;min-height:0;flex:1;display:flex;gap:3px;min-width:0;justify-content:flex-start}
body[data-page=game] .seat{display:flex;align-items:center;gap:9px;padding:0;border:0;max-width:none;min-width:0;flex:1;transform:none;border-radius:12px;align-self:stretch;position:relative}
body[data-page=game] .avatar{height:46px;width:46px;flex:none;border-radius:50%;display:grid;place-items:center;background:#fff;color:#083c30;font-size:20px;font-weight:700;border:0}
body[data-page=game] .seat-info{display:grid;gap:3px;min-width:0;padding:0}
body[data-page=game] .seat-info strong{font-size:17px;font-weight:500;color:#fffdf4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-page=game] .seat-info span{font-size:15px;color:#fffdf4;white-space:nowrap;line-height:17px}
body[data-page=game] .seat-info [data-count-short]::after{content:' Karten'}
body[data-page=game] .seat-status{display:none}
body[data-page=game] .seat.is-turn .avatar{box-shadow:0 0 0 2px var(--gold)}
body[data-page=game] .seat.recipient .avatar{background:var(--gold)}
body[data-page=game] .seats-3 .avatar,body[data-page=game] .seats-4 .avatar{display:none}
body[data-page=game] .seats-3 .seat-info strong,body[data-page=game] .seats-4 .seat-info strong{font-size:14px}
body[data-page=game] .seats-3 .seat-info span,body[data-page=game] .seats-4 .seat-info span{font-size:12px}
body[data-page=game] .seats-4 .seat-info [data-count-short]::after{content:''}
body[data-page=game] .seats-4 .seat{justify-content:center}
body[data-page=game] .seats-4 .seat.is-turn .seat-info strong{color:var(--gold)}
body[data-page=game] .deck-strip{flex:none;display:flex;align-items:center;gap:9px;margin:0;padding:0 0 0 9px;border-left:1px solid #fff4;min-height:38px;background:none;border-radius:0;box-shadow:none}
body[data-page=game] .deck-fan{position:relative;width:84px;height:46px;flex:none}
body[data-page=game] .deck-fan>.card{position:absolute;top:1px;--card-w:29px!important;height:43.5px;border-radius:3px;transform-origin:50% 90%}
body[data-page=game] .deck-fan>.card:nth-child(1){left:2px;transform:rotate(-12deg)}
body[data-page=game] .deck-fan>.card:nth-child(2){left:15px;transform:rotate(-5deg)}
body[data-page=game] .deck-fan>.card:nth-child(3){left:28px;transform:rotate(4deg)}
body[data-page=game] .deck-fan>.card:nth-child(4){left:42px;transform:rotate(14deg)}
body[data-page=game] .deck-copy{display:grid;gap:4px;font-size:14px;white-space:nowrap}
body[data-page=game] .deck-copy b{font-weight:400}
body[data-page=game] .deck-copy b:not([data-pile-count]){font-size:23px;line-height:14px;vertical-align:-2px}
body[data-page=game] .turn-block{min-height:0;display:flex;align-items:flex-start;justify-content:space-between;gap:5px;padding:2px 2px 0}
body[data-page=game] .turn-copy{min-width:0;flex:1}
body[data-page=game] .turn-block strong{font-size:23px;font-weight:750;line-height:27px;display:block;letter-spacing:-.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-page=game] .turn-block p{font-size:16px;line-height:20px;color:#fff9e8;margin:2px 0 0;max-height:40px;overflow:hidden}
body[data-page=game] .attack-count{border:1px solid #fffff65e;border-radius:30px;padding:5px 10px;margin-top:3px;font-size:14px;line-height:18px;white-space:nowrap;flex:none}
body[data-page=game] .attack-count>b{font-weight:700;color:var(--gold)}
body[data-page=game] .success-mark{display:inline-grid;place-items:center;background:var(--gold);color:#064632;width:27px;height:27px;border-radius:50%;font-size:19px;margin-right:5px}
body[data-page=game] .felt{position:relative;isolation:isolate;display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible}
body[data-page=game] .felt:before,body[data-page=game] .felt:after{display:none}
body[data-page=game] .table-zone{width:100%;height:100%;padding:0;display:block;min-height:0;min-width:0}
body[data-page=game] .table-pairs{width:100%;height:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(var(--table-rows,2),minmax(0,1fr));gap:var(--table-gap,10px) 6px;align-items:center;justify-items:center}
body[data-page=game] .table-pairs.single-row>.table-pair:nth-child(n+4){display:none}
body[data-page=game] .table-pair{position:relative;min-width:0;min-height:0;width:calc(var(--table-card-w,68px) + var(--table-offset-x,27px) + 3px);height:calc(var(--table-card-w,68px)*1.5 + 24px);padding:0}
body[data-page=game] .table-pair .card{--card-w:var(--table-card-w,68px)!important}
body[data-page=game] .attack-target{position:relative;display:block;background:none;border:0;border-radius:8px;min-width:44px;min-height:44px;padding:0;outline:none;transform:none;box-shadow:none;transition:background var(--ui-time)}
body[data-page=game] .attack-target:disabled{opacity:1}
body[data-page=game] .table-pair .defense-card{position:absolute;left:var(--table-offset-x,27px);top:var(--table-offset-y,18px);transform:none;z-index:1;box-shadow:0 2px 5px #001e2f55}
body[data-page=game] .target-label{position:absolute;top:calc(var(--table-card-w,68px)*1.5 + 4px);left:0;right:auto;width:var(--table-card-w,68px);font-size:14px;line-height:19px;color:#f1e6b8;text-align:center;pointer-events:none}
body[data-page=game] .target .attack-target{padding:4px;background:var(--gold);outline:none;margin:-4px;box-shadow:0 0 0 1px #e8c057;transform:none;padding-bottom:23px}
body[data-page=game] .target .target-label{color:#073e30;font-weight:600}
body[data-page=game] .empty-slot{opacity:.38;height:calc(var(--table-card-w,68px)*1.5 + 8px)}
.empty-slot i{position:absolute;width:15px;height:15px;border:1px solid #dbe5cd;pointer-events:none}
.empty-slot i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-top-left-radius:6px}
.empty-slot i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-top-right-radius:6px}
.empty-slot i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;border-bottom-left-radius:6px}
.empty-slot i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;border-bottom-right-radius:6px}
body[data-page=game] .discard-anchor{position:absolute;top:0;right:0;width:30px;height:44px;opacity:0;pointer-events:none}
body[data-page=game] .your-hand{min-height:0;min-width:0;position:relative;display:flex;flex-direction:column}
body[data-page=game] .hand-heading{height:20px;min-height:20px;padding:0 2px;display:flex;align-items:center;justify-content:space-between;color:#fff8e9;font-size:16px;box-shadow:none;gap:3px}
body[data-page=game] .hand-heading strong{font-size:16px;font-weight:500;color:#fff8e9;white-space:nowrap}
body[data-page=game] .hand-heading [data-count-short]::after{content:''}
body[data-page=game] .hand-pager{display:flex;align-items:center;gap:2px;margin-left:auto;margin-top:-10px;height:44px;position:relative;z-index:5}
body[data-page=game] .hand-pager button{width:44px;height:44px;background:none;color:#fff8e9;font-size:27px;border-radius:12px}
body[data-page=game] .hand-pager button:disabled{opacity:.3}
body[data-page=game] .hand-pager span{font-size:12px;min-width:34px;text-align:center}
body[data-page=game] .hand-scroll{height:124px;flex:1;min-height:0;padding:14px 9px 0;overflow:visible;scrollbar-width:none}
body[data-page=game] .hand-cards{width:max-content;max-width:100%;min-width:0;height:110px;margin:0 auto;display:flex;gap:0;justify-content:center;padding:0;align-items:flex-end}
body[data-page=game] .hand-card{background:none;position:relative;flex:0 0 var(--hand-step,44px);width:var(--hand-step,44px);height:110px;min-height:44px;padding:0;border-radius:4px;display:block;transform:none;overflow:visible;transition:opacity var(--ui-time)}
body[data-page=game] .hand-card:last-child{flex-basis:var(--hand-card-w,82px);width:var(--hand-card-w,82px)}
body[data-page=game] .hand-card>.card{position:absolute;bottom:0;left:0;--card-w:var(--hand-card-w,82px)!important;transform:rotate(var(--card-angle,0deg));transform-origin:50% 100%;box-shadow:0 3px 8px #001e2d66;transition:transform var(--ui-time),outline-color var(--ui-time)}
body[data-page=game] .hand-card.selected{transform:none;z-index:4;flex-basis:var(--hand-card-w,82px);width:var(--hand-card-w,82px)}
body[data-page=game] .hand-card.selected>.card{transform:translateY(-8px);outline:3px solid var(--gold);outline-offset:0}
body[data-page=game] .hand-card:disabled{opacity:1}
body[data-page=game] .selected-check{position:absolute;right:5px;top:calc(110px - var(--hand-card-w,82px)*1.5 - 19px);z-index:2;width:23px;height:23px;border-radius:50%;border:2px solid var(--gold);display:grid;place-items:center;background:#195440;color:var(--gold);font-size:15px}
body[data-page=game] .hand-card .trump-mark{top:4px;bottom:auto;left:29px;right:auto;width:13px;height:13px;font-size:10px;background:#f5d16a;color:#064632;border-color:#bc9b42}
body[data-page=game] .hand-card .transfer-mark{top:0;left:25px;font-size:11px;width:17px;height:15px;background:#f5d16a;color:#053b2c;border:0;transform:none}
body[data-page=game] .selected-card-note{height:22px;min-height:22px;margin:0;text-align:center;font-size:14px;line-height:22px;color:#fff9e9}
.red-suit{color:#fb3023}
body[data-page=game] .no-hand{min-height:44px;font-size:15px;display:grid;align-content:center;color:#fff9e8}
body[data-page=game] .game-actions{max-width:none;min-height:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:7px;margin:0;width:100%;align-items:stretch}
body[data-page=game] .game-actions.with-transfer{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr)}
body[data-page=game] .game-actions>.btn{min-height:0;height:100%;padding:8px 7px;border:1.5px solid #fff9e8;border-radius:21px;background:none;color:#fff9e8;font-size:20px;font-weight:650;gap:5px;white-space:nowrap;box-shadow:0 2px 4px #001e2d22}
body[data-page=game] .game-actions>.primary{background:var(--gold);border-color:var(--gold);color:#063f30}
body[data-page=game] .game-actions>.primary:disabled{background:#e9d99c66;color:#fff9e888;border-color:#fff6;opacity:1}
body[data-page=game] .game-actions>.btn:disabled:not(.primary){opacity:.45}
body[data-page=game] .game-actions>.btn svg{width:23px;height:23px;stroke-width:1.5;flex:none}
body[data-page=game] .game-actions.with-transfer>.btn{font-size:15px;padding:6px 3px;border-radius:15px}
body[data-page=game] .game-actions.with-transfer>.btn svg{display:none}
body[data-page=game] .transfer-btn.ready{border-color:var(--gold);color:var(--gold)}
body[data-page=game] .round-progress{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:15px;padding:9px;border:1px solid #e7f0d966;border-radius:20px;color:#fff9ed;min-width:0;min-height:0}
body[data-page=game] .round-progress>div{display:grid;gap:3px;min-width:0}
body[data-page=game] .round-progress strong{font-size:16px;line-height:20px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body[data-page=game] .round-progress small{font-size:14px;line-height:18px;color:#fff9dfb0}


body[data-page=game] .warning{position:absolute;top:50px;left:12px;right:12px;z-index:8;max-height:32px;padding:6px 9px;background:#f5d16a;color:#073e30;font-size:12px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-page=game] .pause-overlay{position:fixed;inset:52px 0 0;z-index:20;border-radius:0;background:#003e2eeb;backdrop-filter:blur(7px);color:#fff9ed}
body[data-page=game] .pause-overlay .btn{background:var(--gold);color:#073e30;border:0}
body[data-page=game] .game-ended{grid-template-rows:68px auto minmax(0,1fr)}
body[data-page=game] .result{position:absolute;inset:0;z-index:10;padding:22px;display:grid;align-content:center;gap:15px;border:1px solid #fff5;border-radius:20px;background:#003e2e;color:#fff9ed}
body[data-page=game] .result h2{font-size:30px}
body[data-page=game] .result-symbol{color:var(--gold)}
body[data-page=game] .result .game-actions{grid-template-columns:1fr;min-height:110px}
body[data-page=game] .result .btn{min-height:44px;white-space:normal;font-size:17px}
/* Small table cards retain portrait artwork and a clear printed index. */
body[data-page=game] .compact-pairs .table-pair{height:calc(var(--table-card-w)*1.5 + 18px)}
body[data-page=game] .compact-pairs .table-pair .card{border-radius:5px;box-shadow:0 2px 5px #001c2070}
body[data-page=game] .compact-pairs .target-label{font-size:11px;line-height:14px;top:calc(var(--table-card-w)*1.5 + 2px)}
body[data-page=game] .compact-pairs .target .attack-target{padding:0;margin:0;background:none;box-shadow:none}
body[data-page=game] .compact-pairs .target .attack-target>.card{outline:2px solid var(--gold);outline-offset:-2px}
body[data-page=game] .compact-pairs .target .target-label{color:var(--gold)}
body[data-page=game] .compact-pairs .empty-slot{height:calc(var(--table-card-w)*1.5 + 8px)}
/* Preserve accessible hit areas when a landscape canvas has very little height. */
body[data-page=game] .micro-pairs .table-pair{width:100%;height:44px;display:flex;justify-content:center;align-items:center;gap:3px}
body[data-page=game] .micro-pairs .table-pair .card{height:42px;aspect-ratio:auto}
body[data-page=game] .micro-pairs .attack-target{min-width:44px;min-height:44px;display:grid;place-items:center;padding:0;margin:0}
body[data-page=game] .micro-pairs .defense-card{position:relative;top:auto;left:auto;transform:none}
body[data-page=game] .micro-pairs .target-label{display:none}
body[data-page=game] .micro-pairs .target .attack-target{outline:none;background:none;box-shadow:inset 0 0 0 2px var(--gold);padding:0}
body[data-page=game] .micro-pairs .empty-slot{width:80%;height:40px}
body[data-page=game] .flat-hand .hand-scroll{padding:8px 0 0;height:52px;flex:none}
body[data-page=game] .flat-hand .hand-cards{width:100%;height:44px;display:grid;grid-template-columns:repeat(var(--hand-slots),minmax(0,1fr));gap:5px}
body[data-page=game] .flat-hand .hand-card,body[data-page=game] .flat-hand .hand-card:last-child{height:44px;width:100%;min-width:44px}
body[data-page=game] .flat-hand .hand-card>.card{height:44px;aspect-ratio:auto;position:relative;transform:none}
body[data-page=game] .flat-hand .selected>.card{transform:none;outline-width:2px}
body[data-page=game] .flat-hand .selected-check{right:0;top:-9px;width:17px;height:17px;font-size:11px}
#flights{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}
.flying-card{position:absolute;top:0;left:0;will-change:transform;transform-style:preserve-3d;perspective:800px}
.flying-card .card{width:100%;height:100%;aspect-ratio:auto;transform:none}
.flight-back,.flight-face{position:absolute;inset:0;backface-visibility:hidden}
.flight-face{transform:rotateY(180deg)}
.flight-flipper{position:absolute;inset:0;transform-style:preserve-3d}
.hand-card .flying-card{pointer-events:none;box-shadow:none;isolation:isolate}
.hand-card .flying-card .card{box-shadow:0 3px 8px #001e2d66}
.flying-card .card{transition:none!important}
.hand-card:has(>.card.pending) .transfer-mark{visibility:hidden}

body[data-page=game][data-density=compact] .game{grid-template-rows:40px auto minmax(0,1fr) var(--hand-row,92px) 44px;gap:3px}
body[data-page=game][data-density=compact] .table-info{padding:3px 7px;border-radius:12px}
body[data-page=game][data-density=compact] .avatar{width:29px;height:29px;font-size:14px}
body[data-page=game][data-density=compact] .seat-info strong{font-size:14px}
body[data-page=game][data-density=compact] .seat-info span{font-size:12px;line-height:13px}
body[data-page=game][data-density=compact] .deck-fan{height:30px;width:52px}
body[data-page=game][data-density=compact] .deck-fan .card{--card-w:20px!important;height:30px}
body[data-page=game][data-density=compact] .deck-fan>.card:nth-child(1){left:0}body[data-page=game][data-density=compact] .deck-fan>.card:nth-child(2){left:9px}body[data-page=game][data-density=compact] .deck-fan>.card:nth-child(3){left:18px}body[data-page=game][data-density=compact] .deck-fan>.card:nth-child(4){left:27px}
body[data-page=game][data-density=compact] .deck-copy{font-size:12px;gap:2px}
body[data-page=game][data-density=compact] .turn-block strong{font-size:18px;line-height:21px}
body[data-page=game][data-density=compact] .turn-block p{font-size:12px;line-height:14px;max-height:14px}
body[data-page=game][data-density=compact] .attack-count{font-size:12px;padding:3px 7px;margin-top:0}
body[data-page=game][data-density=compact] .hand-scroll{height:52px;flex:none;padding:8px 0 0}
body[data-page=game][data-density=compact] .hand-cards{height:44px}
body[data-page=game][data-density=compact] .hand-card{height:44px}
body[data-page=game][data-density=compact] .hand-card>.card{height:44px;aspect-ratio:auto;transform:none}
body[data-page=game][data-density=compact] .selected-card-note{height:20px;min-height:20px;font-size:12px;line-height:20px}
body[data-page=game][data-density=compact] .game-actions>.btn{font-size:16px;border-radius:15px}
@media(max-width:350px){body[data-page=game] .deck-fan{width:61px}body[data-page=game] .deck-fan>.card{--card-w:25px!important;height:37.5px}body[data-page=game] .deck-fan>.card:nth-child(4){left:33px}body[data-page=game] .deck-copy{font-size:12px}body[data-page=game] .deck-strip{padding-left:6px;gap:4px}body[data-page=game] .avatar{width:36px;height:36px;font-size:17px}body[data-page=game] .seat-info strong{font-size:15px}body[data-page=game] .seat-info span{font-size:13px}body[data-page=game] .game-header>.durava-logo{font-size:31px}body[data-page=game] .turn-block strong{font-size:20px}body[data-page=game] .turn-block p{font-size:14px}body[data-page=game] .attack-count{font-size:12px;padding:4px 7px}body[data-page=game] .game-actions>.btn{font-size:18px}body[data-page=game] .hand-heading strong{font-size:14px}}
@media(max-height:600px){body[data-page=game] .game{grid-template-rows:54px auto minmax(0,1fr) var(--hand-row,133px) 48px;gap:6px}body[data-page=game] .hand-scroll{height:91px;padding-top:9px}body[data-page=game] .hand-cards,body[data-page=game] .hand-card{height:82px}body[data-page=game] .hand-card>.card{--card-w:max(52px,calc(var(--hand-card-w)*.82))!important}body[data-page=game] .hand-card:last-child{flex-basis:max(52px,calc(var(--hand-card-w)*.82));width:max(52px,calc(var(--hand-card-w)*.82))}body[data-page=game] .hand-card.selected>.card{transform:translateY(-5px)}body[data-page=game] .selected-check{top:-22px}body[data-page=game] .table-info{padding:4px 7px}body[data-page=game] .avatar{height:36px;width:36px;font-size:17px}body[data-page=game] .turn-block strong{font-size:20px;line-height:24px}body[data-page=game] .turn-block p{font-size:14px;line-height:17px;max-height:17px}body[data-page=game] .game-actions>.btn{font-size:18px;border-radius:17px}body[data-page=game] .round-progress strong{font-size:14px}body[data-page=game] .round-progress small{font-size:12px}}
@media(max-height:470px){body[data-page=game] .game-shell{padding:2px 12px 4px;gap:4px}body[data-page=game] .game-header{height:40px;min-height:40px}body[data-page=game] .game-header>.durava-logo{font-size:28px}body[data-page=game] .game{grid-template-rows:40px auto minmax(0,1fr) var(--hand-row,92px) 44px;gap:4px}body[data-page=game] .table-info{padding:3px 6px;border-radius:12px}body[data-page=game] .deck-fan{height:30px;width:52px}body[data-page=game] .deck-fan>.card{--card-w:20px!important;height:30px}body[data-page=game] .deck-fan>.card:nth-child(1){left:0}body[data-page=game] .deck-fan>.card:nth-child(2){left:9px}body[data-page=game] .deck-fan>.card:nth-child(3){left:18px}body[data-page=game] .deck-fan>.card:nth-child(4){left:27px}body[data-page=game] .avatar{width:29px;height:29px;font-size:14px}body[data-page=game] .seat-info strong{font-size:14px}body[data-page=game] .seat-info span{font-size:12px;line-height:13px}body[data-page=game] .deck-copy{font-size:12px;gap:2px}body[data-page=game] .turn-block strong{font-size:18px;line-height:21px}body[data-page=game] .turn-block p{font-size:12px;line-height:14px;max-height:14px}body[data-page=game] .attack-count{font-size:12px;padding:3px 7px;margin-top:0}body[data-page=game] .hand-heading strong{font-size:13px}body[data-page=game] .hand-scroll{height:52px;flex:none;padding:8px 0 0}body[data-page=game] .hand-cards,body[data-page=game] .hand-card{height:44px}body[data-page=game] .hand-card>.card{--card-w:var(--hand-card-w)!important;height:44px;aspect-ratio:auto;transform:none}body[data-page=game] .flat-hand .hand-card:last-child{width:100%}body[data-page=game] .hand-card.selected>.card{transform:none}body[data-page=game] .selected-check{top:-8px;right:0}body[data-page=game] .selected-card-note{height:20px;min-height:20px;font-size:12px;line-height:20px}body[data-page=game] .game-actions>.btn{font-size:16px;border-radius:15px}body[data-page=game] .game-actions.with-transfer>.btn{font-size:12px}body[data-page=game] .round-progress strong{font-size:13px}}
@media(min-width:600px) and (max-height:520px){body[data-page=game] .game-shell{max-width:960px}body[data-page=game] .game{grid-template-columns:minmax(0,1fr) minmax(260px,.65fr);grid-template-rows:42px 36px minmax(0,1fr) 44px}body[data-page=game] .table-info{grid-column:1;grid-row:1/3}body[data-page=game] .turn-block{grid-column:2;grid-row:1/3}body[data-page=game] .felt{grid-column:1;grid-row:3/5}body[data-page=game] .your-hand{grid-column:2;grid-row:3;align-self:center;height:var(--hand-row,92px)}body[data-page=game] .game>.game-actions{grid-column:2;grid-row:4}body[data-page=game] .game-ended{grid-template-columns:1fr;grid-template-rows:42px 36px minmax(0,1fr)}body[data-page=game] .game-ended .felt{grid-column:1;grid-row:3}}
html[data-language=ru] body[data-page=game] .seat-info [data-count-short]::after{content:' карт'}
html[data-language=ru] body[data-page=game] .turn-block strong{font-size:20px}
html[data-language=ru] body[data-page=game] .game-actions>.btn{font-size:18px}

body[data-page=game] .covered .attack-target .card{transform:none}
@media(max-height:600px) and (min-height:471px){body[data-page=game] .hand-card.selected{flex-basis:max(52px,calc(var(--hand-card-w)*.82));width:max(52px,calc(var(--hand-card-w)*.82))}body[data-page=game] .selected-check{top:calc(82px - var(--hand-card-w)*1.23 - 16px)}}
body[data-page=game] .flat-hand .hand-card.selected{width:100%}
body[data-page=game] .hand-heading strong{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}
@media(max-width:303px){body[data-page=game] .game-actions.with-transfer>.btn{font-size:13px}body[data-page=game] .hand-heading strong{font-size:13px}body[data-page=game] .hand-pager{gap:0}body[data-page=game] .hand-pager span{min-width:28px}body[data-page=game] .turn-block strong{font-size:18px}body[data-page=game] .attack-count{font-size:11px;padding:4px 6px}body[data-page=game] .deck-strip{gap:3px;padding-left:4px}body[data-page=game] .deck-fan{width:48px}body[data-page=game] .deck-fan>.card{--card-w:20px!important;height:30px}body[data-page=game] .deck-fan>.card:nth-child(4){left:26px}body[data-page=game] .deck-copy{font-size:11px}}

/* The waiting state occupies the action row without competing with the table. */
body[data-page=game] .round-progress{justify-content:flex-start;gap:12px;padding:7px 15px;border:1px solid #fff9e827;border-radius:17px;background:linear-gradient(115deg,#fff9e80a,#fff9e803);box-shadow:inset 0 1px 0 #fff9e807}
.wait-symbol{width:32px;height:32px;position:relative;flex:none;display:grid;place-items:center;color:#e4ca81}
.wait-symbol>svg{width:15px;height:15px;opacity:.85}

body[data-page=game] .round-progress .wait-copy{gap:2px;min-width:0}
body[data-page=game] .round-progress strong{font-size:15px;line-height:19px;font-weight:550;letter-spacing:.05px;color:#fff9e8}
body[data-page=game] .round-progress small{font-size:13px;line-height:17px;color:#fff9e88c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-height:600px){body[data-page=game] .round-progress{padding:5px 12px;gap:10px;border-radius:14px}.wait-symbol{width:28px;height:28px}body[data-page=game] .round-progress strong{font-size:14px;line-height:18px}body[data-page=game] .round-progress small{font-size:12px;line-height:16px}}
@media(max-height:470px){body[data-page=game] .round-progress{padding:4px 10px}.wait-symbol{width:26px;height:26px}body[data-page=game] .round-progress strong{font-size:13px;line-height:16px}body[data-page=game] .round-progress small{line-height:15px}body[data-page=game] .round-progress .wait-copy{gap:1px}}

body[data-page=game] .source-pair .target-label{visibility:hidden}

/* Give compact portrait tables useful space without shrinking hand cards. */
@media(min-height:601px) and (max-height:700px){
 body[data-page=game] .game{grid-template-rows:60px auto minmax(0,1fr) var(--hand-row,166px) 60px;gap:6px}
}
