/* Calm, glanceable partnership tables. Illustrations reuse the game's art. */
.table-player-avatar {display:inline-flex;flex:0 0 25px;width:25px;height:25px;align-items:center;justify-content:center;image-rendering:pixelated;}
.table-player-avatar>svg {display:block;width:100%;height:100%;}
.table-state-icon {display:inline-block;width:22px;height:22px;object-fit:contain;image-rendering:pixelated;}
.pilotta-board {gap:12px!important;justify-content:center!important;}
.pilotta-contract {display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:18px;width:min(100%,390px);padding:9px 13px!important;min-height:56px;}
/* The auction sits directly under the contract and shares its width. */
.pilotta-auction {width:min(100%,390px);}
.pilotta-auction>li>span:not(.table-player-avatar) {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pilotta-bidder {display:flex;align-items:center;gap:10px;min-width:0;}
.pilotta-bidder>.table-player-avatar {width:31px;height:31px;flex-basis:31px;}
.pilotta-bidder-name {display:flex;flex-direction:column;gap:4px;min-width:0;}
.pilotta-bidder-name>strong {font:600 15px/1.1 var(--ui-display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pilotta-contract-kicker {font:500 9px/1.2 var(--ui-display);color:var(--chrome-muted);}
.pilotta-bid-display {display:flex;align-items:center;gap:9px;flex:0 0 auto;}
.pilotta-contract-value {display:inline-flex;gap:7px;font:700 25px/1.1 var(--ui-display)!important;}
.contract-trump {font-size:28px;line-height:1;}
.contract-trump.suit-red {color:#f2a2a0;}
body.light .contract-trump.suit-red {color:#a92348;}
.pilotta-contract-target {margin:0!important;padding:0!important;font:500 10px/1.3 var(--ui-display)!important;white-space:nowrap;color:var(--chrome-muted);}
.pilotta-double {font-size:11px;}
.pilotta-trick-stage {width:min(100%,490px);}
.pilotta-stage-caption {padding:0 13px;font-size:12px!important;}
.trick-progress,.tichu-pass-progress {display:inline-flex;align-items:center;justify-content:center;gap:5px;}
.trick-progress-pip {display:block;width:7px;height:7px;flex:0 0 7px;border:1px solid var(--pilotta-quiet);border-radius:2px;opacity:.45;}
.trick-progress-pip.played {background:var(--pilotta-ink);opacity:1;}
.pilotta-trick-cards {padding-top:14px!important;padding-bottom:0!important;min-height:159px!important;}
.pilotta-trick-cards .trick-play {position:relative;gap:7px;}
.pilotta-trick-cards .trick-player-name {font-size:12px!important;}
.pilotta-trick-cards .trick-card-state {position:absolute;right:5px;top:-10px;display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;min-height:0;border-radius:5px;pointer-events:none;font-size:13px;}
.trick-play.is-winning .trick-card-state {background:var(--chrome-raised);border:1px solid #7bbd96;box-shadow:0 2px 0 #12291d77;}
.table-winning-mark {font-size:12px;line-height:1;color:#7dd2a3;text-shadow:none;}
.table-led-mark {color:var(--pilotta-ink);font:700 17px/1 var(--ui-display);}
.pilotta-trick-cards .trick-card-state:empty {display:none;}
.pilotta-trick-cards .table-state-icon {width:19px;height:19px;}
.pilotta-trick-cards .trick-play.is-winning>.card {box-shadow:0 0 0 2px #81c59f,3px 5px 0 #15251d66;}
.pilotta-trick-totals {width:min(100%,490px);gap:12px;}
.pilotta-team-tricks {display:grid;grid-template-columns:1fr auto auto;gap:5px 7px;padding:8px 11px!important;text-align:left;}
.pilotta-team-tricks>span:first-child {font-size:11px;}
.pilotta-team-tricks>strong {font-size:18px;}
.pilotta-team-tricks>small {font-size:9px;}
.trick-count-track {display:flex;gap:4px;grid-column:1/-1;justify-content:space-between;}
.trick-count-pip {height:3px;flex:1;background:var(--chrome-border-strong);border-radius:1px;}
.trick-count-pip.won {background:var(--gold);}
.own-team .trick-count-pip.won {background:#79c49d;}
.pilotta-previous-winner {display:flex;align-items:center;gap:6px;min-height:21px;font:500 11px/1.2 var(--ui-display);}
.pilotta-previous-winner.just-won {font-size:12px;}
.pilotta-previous-winner>.table-state-icon {width:20px;height:20px;}
.pilotta-previous-winner>span {color:var(--pilotta-quiet);font-size:10px;}
body[data-game="pilotta"] .team-score-rail>small {font-size:0!important;}
body[data-game="pilotta"] .team-score-rail>small::after {content:attr(data-target);font:500 10px/1 var(--ui-display);}
/* Small decision/exchange diagrams replace the explanatory paragraphs. */
.tichu-board {gap:12px!important;}
.tichu-table-status {display:flex;flex-direction:column;align-items:center;gap:13px;max-width:100%;}
.tichu-deal-steps {display:flex;align-items:center;gap:30px;}
.tichu-deal-step {display:flex;position:relative;flex-direction:column;align-items:center;gap:7px;color:var(--pilotta-quiet);opacity:.64;}
.tichu-deal-step:not(:last-child)::after {content:'›';position:absolute;right:-20px;top:5px;font-size:20px;}
.tichu-deal-step.active {opacity:1;color:var(--pilotta-ink);}
.tichu-deal-step>strong {font:700 25px/1.2 var(--ui-display);}
.tichu-deal-step>small {font:500 10px/1.2 var(--ui-display);}
.tichu-decision-players {display:flex;gap:13px;}
.tichu-decision-player {display:flex;align-items:center;gap:3px;}
.tichu-decision-player>small {color:var(--pilotta-quiet);font:600 13px/1 var(--ui-display);}
.tichu-decision-player.decided>small {color:#8addb0;}
.exchange-route {display:flex;justify-content:center;align-items:center;gap:18px;}
.exchange-recipient {display:grid;grid-template-columns:26px auto;grid-template-rows:auto auto;align-items:center;gap:5px 8px;min-width:88px;}
.exchange-recipient>.table-player-avatar {grid-column:1;grid-row:1;}
.exchange-recipient>small {grid-column:2;grid-row:1;max-width:85px;overflow:hidden;text-overflow:ellipsis;font:600 11px/1.1 var(--ui-display);color:var(--pilotta-ink);}
.exchange-card-slot {display:grid;place-items:center;grid-column:1/-1;grid-row:2;justify-self:center;width:29px;height:41px;border:1px dashed var(--pilotta-quiet);border-radius:4px;color:var(--pilotta-quiet);font:500 13px/1 var(--ui-display);opacity:.6;}
#screen-game .exchange-chosen-card {display:block;grid-column:1/-1;grid-row:2;justify-self:center;width:29px!important;height:41.6px!important;flex:0 0 auto!important;margin:0!important;--card-w:29px;--card-h:41.6px;transform:none!important;cursor:default;}
.tichu-top-caption {display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:7px;font:600 13px/1.2 var(--ui-display);color:var(--pilotta-ink);text-shadow:0 1px 1px var(--pilotta-text-shadow);}
.tichu-combo-label {border-left:1px solid var(--pilotta-quiet);padding-left:9px;margin-left:2px;font-size:11px;color:var(--pilotta-quiet);}
.tichu-phoenix-reading {font-size:10px;color:var(--pilotta-quiet);}
.tichu-wish-token,.tichu-call-token {display:inline-flex;align-items:center;gap:7px;padding:5px 9px;background:var(--chrome-raised);border:1px solid var(--chrome-border-strong);border-radius:6px;color:var(--cream);}
.tichu-wish-token>small {font:500 10px/1.2 var(--ui-display);color:var(--chrome-muted);}
.tichu-wish-token>strong {font:700 21px/1 var(--ui-display);color:var(--gold-ink);}
.tichu-call-tokens {display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;}
.tichu-call-token {gap:5px;padding:3px 6px;}
.tichu-call-token>.table-player-avatar {width:18px;height:18px;flex-basis:18px;}
.tichu-call-token>strong {font:700 10px/1 var(--ui-display);color:var(--gold-ink);}
.tichu-call-token>small {font:500 9px/1 var(--ui-display);}
.tichu-pass-progress {font:500 10px/1.2 var(--ui-display);color:var(--pilotta-quiet);}
.tichu-pass-progress>small {margin-right:4px;font-size:10px;}
.tichu-trick-cards {width:min(100%,720px);flex-wrap:nowrap!important;gap:0!important;padding:5px 10px!important;min-height:125px;}
#screen-game .tichu-trick-cards>.card {flex:0 0 auto!important;width:83px!important;height:119.1px!important;--card-w:83px;--card-h:119.1px;aspect-ratio:1/1.435;}
#screen-game .tichu-trick-cards>.card:not(:first-child) {margin-left:clamp(-48px,calc((720px - var(--played-count) * 83px) / max(1,var(--played-count) - 1)),-6px)!important;}
#screen-game .tichu-trick-cards.last-trick {opacity:.55;}
.game-controls:empty {display:none!important;}
@media(max-width:760px){
 .pilotta-board {gap:9px!important;}
 .pilotta-contract {width:min(100%,330px);min-height:50px;padding:7px 10px!important;}
 .pilotta-auction {width:min(100%,330px);}
 .pilotta-contract-value {font-size:21px!important;gap:5px;}
 .contract-trump {font-size:24px;}
 .pilotta-bidder-name>strong {font-size:13px;}
 .pilotta-contract-target {font-size:9px!important;}
 .pilotta-bidder>.table-player-avatar {width:27px;height:27px;flex-basis:27px;}
 .pilotta-trick-stage,.pilotta-trick-totals {width:min(100%,335px);}
 .pilotta-trick-cards {min-height:112px!important;}
 .pilotta-stage-caption {font-size:11px!important;padding:0 10px;}
 .pilotta-trick-cards .trick-player-name {font-size:10px!important;}
 .pilotta-trick-cards .trick-card-state {top:-9px;right:3px;min-width:16px;width:16px;height:17px;}
 .pilotta-trick-cards .table-state-icon {width:16px;height:16px;}
 .pilotta-team-tricks {gap:4px 5px;padding:6px 8px!important;}
 .pilotta-team-tricks>span:first-child {font-size:10px;}
 .pilotta-team-tricks>strong {font-size:16px;}
 .pilotta-team-tricks>small {font-size:8px;}
 .pilotta-trick-totals {gap:7px;}
 .pilotta-previous-winner,.pilotta-previous-winner.just-won {font-size:10px;}
 .tichu-board {gap:9px!important;}
 .tichu-top-caption {font-size:11px;gap:5px;}
 .tichu-top-caption>.table-player-avatar {width:21px;height:21px;flex-basis:21px;}
 .tichu-combo-label {font-size:10px;padding-left:6px;}
 .tichu-table-status {gap:9px;}
 .exchange-route {gap:7px;}
 .exchange-recipient {min-width:80px;gap:4px 5px;grid-template-columns:22px auto;}
 .exchange-recipient>.table-player-avatar {width:22px;height:22px;flex-basis:22px;}
 .exchange-recipient>small {max-width:65px;font-size:10px;}
 .tichu-trick-cards {min-height:83px!important;width:100%;}
 #screen-game .tichu-trick-cards>.card {width:53px!important;height:76.1px!important;--card-w:53px;--card-h:76.1px;}
 #screen-game .tichu-trick-cards>.card:not(:first-child) {margin-left:clamp(-37px,calc((100vw - 70px - var(--played-count) * 53px) / max(1,var(--played-count) - 1)),-4px)!important;}
}
@media(max-height:740px){
 .pilotta-board {gap:7px!important;}
 .pilotta-contract {min-height:47px;padding:6px 9px!important;}
 .pilotta-contract-value {font-size:20px!important;}
 .pilotta-trick-cards {min-height:98px!important;}
 .pilotta-team-tricks {padding:5px 7px!important;}
 .pilotta-previous-winner {min-height:18px;}
}
@media(max-height:550px) and (min-width:620px){
 body[data-game="tichu"] #screen-game .game-main {display:grid!important;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-template-rows:52px 24px minmax(0,1fr) auto auto;gap:4px 12px!important;}
 body[data-game="tichu"] #screen-game #playerRail {grid-column:1/-1;grid-row:1;}
 body[data-game="tichu"] #screen-game #teamScoreRail {grid-column:1/-1;grid-row:2;}
 body[data-game="tichu"] #screen-game #partnershipBoard {grid-column:1;grid-row:3/6;min-height:0!important;flex:none!important;justify-content:center;}
 body[data-game="tichu"] #screen-game #handZone {grid-column:2;grid-row:3;align-self:center;}
 body[data-game="tichu"] #screen-game #gameControls {grid-column:2;grid-row:4;}
 body[data-game="tichu"] #screen-game .action-bar {grid-column:2;grid-row:5;}
 body[data-game="tichu"] #screen-game #playerRail .pchip,body[data-game="tichu"] #screen-game #playerRail .pchip.is-me {height:52px!important;min-height:52px!important;grid-template-columns:20px minmax(36px,1fr) auto!important;grid-template-rows:36px!important;padding:5px!important;gap:4px!important;}
 body[data-game="tichu"] #screen-game #playerRail .pchip.has-turn-hud {grid-template-columns:20px minmax(30px,1fr) auto 21px!important;}
 body[data-game="tichu"] #screen-game #playerRail .pchip .pchip-av {width:20px!important;height:20px!important;min-width:20px!important;}
 body[data-game="tichu"] #screen-game #playerRail .pchip .pchip-body {grid-column:2!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important;}
 body[data-game="tichu"] #screen-game #playerRail .pchip .pchip-name {font-size:11px!important;}
 body[data-game="tichu"] #screen-game #playerRail .pchip .pchip-meta {gap:2px 4px!important;}
 body[data-game="tichu"] #screen-game #playerRail .pchip .opponent-hand {display:flex!important;grid-column:3!important;grid-row:1!important;height:30px!important;gap:2px!important;}
 body[data-game="tichu"] #screen-game #playerRail .opponent-back,body[data-game="tichu"] #screen-game #playerRail .opponent-card-stack {width:17px;height:25px;flex-basis:17px;}
 body[data-game="tichu"] #screen-game #playerRail .pchip .pchip-turn-hud {grid-column:4!important;grid-row:1!important;}
 .pilotta-board {gap:6px!important;justify-content:center!important;}
 .pilotta-contract {min-height:40px;padding:4px 8px!important;}
 .pilotta-bidder-name>strong {font-size:11px;}
 .pilotta-contract-kicker {font-size:8px;}
 .pilotta-bidder-name {gap:2px;}
 .pilotta-bidder>.table-player-avatar {width:23px;height:23px;flex-basis:23px;}
 .pilotta-contract-value {font-size:18px!important;}
 .contract-trump {font-size:21px;}
 .pilotta-trick-cards {min-height:93px!important;padding-top:10px!important;}
 .pilotta-team-tricks {padding:4px 7px!important;gap:3px 6px;}
 .pilotta-team-tricks>strong {font-size:14px;}
 .pilotta-team-tricks>span:first-child {font-size:10px;}
 .pilotta-previous-winner {font-size:9px;min-height:15px;}
 .pilotta-previous-winner>.table-state-icon {width:16px;height:16px;}
 .tichu-board {gap:5px!important;}
 .tichu-deal-step>strong {font-size:20px;}
 .tichu-deal-step>small {font-size:9px;}
 .tichu-top-caption {font-size:10px;}
 .tichu-trick-cards {min-height:66px!important;}
 #screen-game .tichu-trick-cards>.card {width:34px!important;height:48.8px!important;--card-w:34px;--card-h:48.8px;}
 #screen-game .tichu-trick-cards>.card:not(:first-child) {margin-left:-4px!important;}
}
