/* v1.5.1: spend the available viewport on cards and public game information. */
.game{max-width:none;padding:4px clamp(6px,1vw,20px) 16px}
.game-main,.game-main:has(.active-effect-banner){--assets-height:clamp(90px,11dvh,128px);height:calc(100svh - 54px);height:calc(100dvh - 54px);min-height:570px;grid-template-columns:minmax(0,1fr);grid-template-rows:28px minmax(44px,auto) minmax(246px,1.2fr) auto minmax(calc(160px + var(--declare-space) + var(--stack-space) + var(--choice-space)),1fr) var(--assets-height);gap:5px}
.game-meta{grid-column:1;grid-row:1}.turn-banner{grid-column:1;grid-row:2}.board{grid-column:1;grid-row:3}.game-main .ongoing-effects{grid-column:1;grid-row:4}.hand-area{grid-column:1;grid-row:5}.assets-area{grid-column:1;grid-row:6}
.game-meta .pill,.game-meta .turn-flow{font-size:12px}.turn-identity strong{font-size:clamp(18px,1.5vw,25px)}.turn-identity small{font-size:12px}.turn-banner .victory-progress{font-size:clamp(12px,1vw,16px)}
.board{padding:5px;gap:5px;grid-template-rows:minmax(110px,.62fr) minmax(126px,1fr)}
.opponents{gap:6px}.opponent,.opponent.active{padding:5px 8px;grid-template-rows:25px 31px 18px minmax(28px,1fr);gap:1px}
.opponent-head,html[lang="en"] .opponent-head{font-size:clamp(13px,1.1vw,18px)}.opponent-head b{font-size:clamp(22px,1.8vw,30px)}.avatar{width:23px;height:23px;font-size:15px}
.cpu-info{padding-right:42px;align-items:center}.cpu-stock{min-height:30px;padding:2px 7px;gap:5px}.stock-symbol{width:21px;min-width:21px;height:28px}.cpu-stock-label,html[lang="en"] .cpu-stock-label{font-size:12px}.cpu-stock-label strong{font-size:clamp(22px,1.7vw,29px)}.cpu-stock-label small,html[lang="en"] .cpu-stock-label small{font-size:11px}.cpu-info .seat-turn{font-size:11px}.opponent .victory-progress{font-size:11px;line-height:1.2}
.cpu-hand{top:34px;right:8px;width:42px;height:28px}.cpu-hand .playing-card{width:18px;min-width:18px;height:25px;margin-left:-8px}
.game-main .cpu-effects{height:100%;align-items:stretch;padding:2px 0;gap:4px}.game-main .cpu-effects .owned-card.small{width:clamp(50px,4.8vw,92px);min-width:50px;height:100%;max-height:70px;min-height:27px}
.game-main .cpu-effects .effect-key{flex-direction:row;justify-content:space-between;padding:3px 5px;gap:4px}.game-main .cpu-effects .effect-key b{font-size:clamp(17px,1.55vw,26px)}.game-main .cpu-effects .effect-key small{font-size:12px}.game-main .cpu-effects .coin{width:7px;height:11px}
.common-zone{grid-template-columns:minmax(210px,.65fr) minmax(0,1fr);gap:7px}
.table-area{height:100%;padding:0 5px;grid-template-columns:clamp(42px,5vw,84px) minmax(0,1fr) clamp(42px,5vw,84px);gap:5px}
.table-center{height:100%;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:2px}
.table-cards{container-type:size;flex:1;height:auto;min-height:65px;min-width:0}
.played-stack{--stack-step:clamp(9px,1.2vw,24px);--card-w:max(36px,min(180px,calc((100cqh - 12px)/1.4),calc(100cqi - (var(--stack-count) - 1)*var(--stack-step) - 10px)));width:calc(var(--card-w) + (var(--stack-count) - 1)*var(--stack-step));height:calc(var(--card-w)*1.4)}
.stack-layer{left:calc(var(--layer)*var(--stack-step));top:0}.table-cards .stack-layer .playing-card{--card-w:inherit;width:var(--card-w);height:calc(var(--card-w)*1.4)}
.table-cards .playing-card .corner{font-size:clamp(16px,calc(var(--card-w)*.3),46px)}
.table-empty{height:80%;font-size:13px}.table-empty b{font-size:32px}.table-label{font-size:clamp(11px,1vw,16px);margin:1px 0;line-height:1.3}.stack-rule{font-size:clamp(10px,.9vw,14px)}.stack-rule b:last-child{font-size:18px}
.deck-pile{font-size:12px;gap:5px}.deck-pile .playing-card{--card-w:clamp(35px,4vw,66px)}.discard{width:clamp(35px,4vw,66px);height:clamp(49px,5.6vw,92px);font-size:25px}
.board-market{padding-left:7px;gap:4px}.compact-market-head{height:27px;font-size:clamp(12px,1.1vw,17px)}.compact-market-head button{font-size:12px;min-height:26px;padding:3px 8px}
.compact-market-items{container-type:size;grid-template-rows:repeat(2,minmax(0,1fr));gap:5px;max-height:none;min-height:0}
.market-tile{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr) auto auto;padding:4px 7px;gap:1px 4px;align-items:center;text-align:center}
.market-tile>b{grid-column:1/-1;grid-row:1;font-size:clamp(18px,5cqi,44px);line-height:1.05;white-space:nowrap}
.market-tile .tile-cost{grid-column:1;grid-row:2;justify-content:center;font-size:clamp(12px,2.3cqi,21px);line-height:1.1}.tile-cost .coin{width:9px;height:14px}
.market-tile .tile-stock{grid-column:1/-1;grid-row:3;position:static;text-align:center;font-size:clamp(9px,1.6cqi,13px);line-height:1.05;opacity:1}
.market-tile:not(.owned) .tile-cost{grid-column:1/-1}
.market-owned-check{display:grid;place-items:center;flex-shrink:0;background:#23704c;color:white;border:2px solid white;border-radius:50%;box-shadow:0 1px 3px #12352235;aspect-ratio:1;line-height:1;pointer-events:none}
.market-owned-check svg{width:78%;height:78%;display:block}
.market-tile .market-owned-check{grid-column:2;grid-row:2;width:clamp(24px,15cqh,46px)}
.market-tile.owned{border:2px solid #357656;background:#dfefd9}.market-tile.sold-out{filter:none;background:#e4e5e1}.market-tile.sold-out img{filter:grayscale(1)}.market-tile.sold-out.owned{border-color:#357656}.market-tile.sold-out.owned .market-owned-check{background:#23704c;color:white}
.market-image>.market-owned-check{position:absolute;left:6px;top:6px;width:clamp(38px,6vw,56px);z-index:2;border-width:3px}.market-item.owned .market-badge{font-size:14px;font-weight:800;padding:6px 9px}
.hand-area,.hand-area.active{padding:4px 6px 2px}.hand-head{height:28px}.hand-head strong{font-size:clamp(13px,1.2vw,19px)}.hand-head>span{font-size:12px}.hand-head button{font-size:12px;padding:3px 7px}
.hand{container-type:size;--hand-overlap:0;flex:1;min-height:78px;justify-content:safe center;align-items:center;gap:6px;padding:8px 4px 4px}
.hand .playing-card{--card-w:max(36px,min(210px,calc((100cqi - 16px)/(var(--hand-slots,7) - (var(--hand-slots,7) - 1)*var(--hand-overlap)) - 6px),calc((100cqh - 16px)/1.4)));width:var(--card-w);height:calc(var(--card-w)*1.4);min-width:0;max-width:none;max-height:none;min-height:0;aspect-ratio:5/7}
.hand .playing-card .corner{font-size:clamp(18px,calc(var(--card-w)*.3),46px)}.hand .playing-card.selected{z-index:3}
.actionbar{padding:3px 0 2px;gap:5px}.actionbar button,html[lang="en"] .actionbar button{font-size:clamp(12px,1vw,16px);min-height:42px;padding:5px 7px}.actionbar .mobile-market-btn{max-width:150px}
.declaration-options{flex-shrink:0}.declare-button b{font-size:clamp(12px,1vw,16px)}.declare-button small{font-size:11px}
.assets-area{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:6px;padding:0}.assets-area>section{display:flex;flex-direction:column;padding:4px 7px}
.assets-area .stock-heading{height:23px;min-height:23px;font-size:13px;margin:0 0 3px}.assets-area .stock-heading strong>b{font-size:20px}.assets-area .stock-heading .tiny{font-size:11px}.assets-area .stock-heading button{font-size:11px}.collection .stock-heading b{font-size:13px}
.assets-area .stock-cards{container-type:size;height:auto;flex:1;min-height:0;gap:4px;align-items:center;padding:1px 0}
.assets-area .stock-cards .playing-card{--card-w:min(65px,calc((100cqh - 4px)/1.4));width:var(--card-w);height:calc(var(--card-w)*1.4)}.assets-area .stock-cards .playing-card .corner{font-size:clamp(15px,calc(var(--card-w)*.38),25px)}
.game-main .owned-list{height:auto;flex:1;min-height:0;align-items:stretch;gap:5px;padding:1px 0 3px;flex-wrap:nowrap}
.game-main .owned-list .owned-card{flex:0 0 clamp(66px,6vw,112px);width:clamp(66px,6vw,112px);height:100%;min-height:30px;max-height:90px}
.game-main .owned-card .effect-key b{font-size:clamp(20px,2vw,34px)}.game-main .owned-card .effect-key small{font-size:14px}.game-main .owned-card .effect-key{padding:3px 6px}.game-main .owned-card .coin{width:8px;height:12px}
.game-main .cpu-effects .effect-key b{font-size:clamp(17px,1.55vw,26px)}.game-main .cpu-effects .effect-key small{font-size:12px}
.collection-empty p,.empty-owned{font-size:12px}
.game-main .ongoing-copy>b{font-size:11px}.game-main .ongoing-rule{font-size:11px}.game-main .ongoing-rule strong{font-size:14px}
.active-effect-banner img{width:30px;height:42px}.active-effect-banner b{font-size:14px}.active-effect-banner small{font-size:12px}
.practice-game .game-main,.practice-game .game-main:has(.active-effect-banner){height:auto;min-height:0;grid-template-rows:28px auto 310px auto auto 100px}.practice-game .hand{flex:none;height:170px}
@media(max-width:760px){
 .game{padding:3px 5px 14px}
 .game-main,.game-main:has(.active-effect-banner){height:calc(100svh - 50px - env(safe-area-inset-bottom));height:calc(100dvh - 50px - env(safe-area-inset-bottom));min-height:540px;grid-template-rows:26px minmax(38px,auto) minmax(236px,1fr) auto auto 76px;gap:4px}
 .game-meta .pill{font-size:10px}.turn-identity strong{font-size:16px}.turn-identity small{font-size:10px}.turn-banner .victory-progress{font-size:10px;padding:4px}
 .board{padding:3px;gap:4px;grid-template-rows:minmax(96px,.48fr) minmax(130px,1fr)}.opponents{gap:3px}.opponent,.opponent.active{padding:3px 4px;grid-template-rows:21px 27px 15px minmax(26px,1fr)}
 .opponent-head,html[lang="en"] .opponent-head{font-size:11px}.opponent-head b{font-size:21px}.avatar{display:none}.cpu-info{padding-right:0;gap:2px}.cpu-stock{min-height:26px;padding:1px 2px;gap:2px}.stock-symbol{width:13px;min-width:13px;height:20px}.cpu-stock-label,html[lang="en"] .cpu-stock-label{font-size:9px;gap:2px}.cpu-stock-label strong{font-size:20px}.cpu-stock-label small,html[lang="en"] .cpu-stock-label small{font-size:8px}.cpu-info .seat-turn{font-size:8px}.cpu-hand{display:none}.opponent .victory-progress{font-size:9px;white-space:normal;overflow-wrap:anywhere}
 .game-main .cpu-effects .owned-card.small{width:45px;min-width:45px;max-height:55px}.game-main .cpu-effects .effect-key{padding:2px 3px;gap:1px;flex-direction:column;justify-content:center}.game-main .cpu-effects .effect-key b{font-size:16px}.game-main .cpu-effects .effect-key small{font-size:10px}.game-main .cpu-effects .coin{width:5px;height:8px}
 .common-zone{grid-template-columns:minmax(105px,.43fr) minmax(0,1fr);gap:3px}.table-area{display:flex;padding:0;gap:1px;flex-wrap:wrap;align-content:stretch}.table-center{flex:1 0 100%;height:calc(100% - 15px)}.table-cards{min-height:55px}.table-label{font-size:10px}.stack-rule{font-size:9px}.stack-rule b:last-child{font-size:13px}.played-stack{--stack-step:8px;--card-w:max(32px,min(100px,calc((100cqh - 8px)/1.4),calc(100cqi - (var(--stack-count) - 1)*var(--stack-step) - 4px)))}.table-cards .playing-card .corner{font-size:clamp(16px,calc(var(--card-w)*.31),29px)}
 .deck-pile{height:14px;font-size:9px;gap:0}.deck-pile>.playing-card,.deck-pile>.discard{display:none}.table-empty{font-size:10px;height:90%}
 .board-market{padding-left:3px;gap:3px}.compact-market-head{height:22px;font-size:10px}.compact-market-head button{font-size:9px;min-height:22px;padding:2px 4px}.compact-market-items{gap:3px}.market-tile{padding:3px 2px;gap:1px}.market-tile>b{font-size:clamp(16px,6cqi,27px)}.market-tile .tile-cost{font-size:12px;gap:2px}.tile-cost .coin{width:6px;height:10px}.market-tile .tile-stock{font-size:9px}.market-tile .market-owned-check{width:clamp(22px,15cqh,30px);border-width:1px}
 .hand-head{height:24px}.hand-head strong{font-size:12px}.hand-head button{font-size:10px}.hand{--hand-overlap:.18;flex:none;height:clamp(94px,26vw,148px);min-height:0;gap:0;padding:8px 1px 4px}.hand .playing-card{--card-w:max(34px,min(92px,calc((100cqi - 4px)/(var(--hand-slots,7) - (var(--hand-slots,7) - 1)*var(--hand-overlap))),calc((100cqh - 16px)/1.4)));}.hand .playing-card+.playing-card{margin-left:calc(var(--card-w)*var(--hand-overlap)*-1)}.hand .playing-card .corner{font-size:clamp(18px,calc(var(--card-w)*.33),28px);padding:2px}
 .actionbar{gap:3px}.actionbar button,html[lang="en"] .actionbar button{font-size:11px;min-height:36px;padding:4px 3px}.actionbar .mobile-market-btn{max-width:82px}.actionbar .small-btn{min-width:27px}.declare-button b{font-size:10px}.declare-button small{font-size:9px}.declaration-options{margin:2px 0}.required-prompt{font-size:11px;line-height:1.35}
 .assets-area{grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:4px}.assets-area>section{padding:3px 4px}.assets-area .stock-heading{height:18px;min-height:18px;font-size:10px;margin-bottom:2px}.assets-area .stock-heading strong>b{font-size:16px}.assets-area .stock-heading button{font-size:9px}.assets-area .stock-heading>span{display:none}.collection .stock-heading b{font-size:10px}.game-main .owned-list .owned-card{flex-basis:53px;width:53px;max-height:50px}.game-main .owned-card .effect-key{padding:2px 4px}.game-main .owned-card .effect-key b{font-size:17px}.game-main .owned-card .effect-key small{font-size:11px}.game-main .owned-card .coin{width:6px;height:9px}.game-main .cpu-effects .effect-key b{font-size:16px}.game-main .cpu-effects .effect-key small{font-size:10px}.collection-empty p,.empty-owned{font-size:9px}
 .game-main .ongoing-heading{font-size:8px}.game-main .ongoing-heading strong{font-size:9px}.game-main .ongoing-copy>b{font-size:9px}.game-main .ongoing-rule{font-size:9px}.game-main .ongoing-rule strong{font-size:12px}.active-effect-banner img{width:25px;height:35px}.active-effect-banner b{font-size:11px}.active-effect-banner small{font-size:10px}
 .practice-game .game-main,.practice-game .game-main:has(.active-effect-banner){height:auto;min-height:0;grid-template-rows:26px auto 255px auto auto 76px}.practice-game .hand{height:clamp(94px,26vw,148px)}
}
@media(min-width:600px) and (max-height:640px){
 .game-main,.game-main:has(.active-effect-banner),.game-main:has(.ongoing-effects.is-active){height:calc(100dvh - 54px);min-height:350px;grid-template-columns:1.15fr 1fr;grid-template-rows:26px minmax(38px,auto) minmax(160px,1fr) 80px max-content}
 .game-meta,.turn-banner{grid-column:1/-1}.board{grid-column:1;grid-row:3/5;grid-template-rows:100px minmax(138px,1fr)}.hand-area{grid-column:2;grid-row:3}.assets-area{grid-column:2;grid-row:4}.game-main .ongoing-effects{grid-column:1;grid-row:5}.hand{flex:none;height:110px}.hand .playing-card{max-height:none}.common-zone{grid-template-columns:minmax(90px,.43fr) minmax(0,1fr)}.table-area{grid-template-columns:minmax(0,1fr)}.table-center{height:100%}.deck-pile{display:none}.compact-market-head{font-size:11px}.compact-market-head button{font-size:10px}.market-tile>b{font-size:22px}.market-tile .tile-cost{font-size:12px}.market-tile .market-owned-check{width:24px}
}
@media(max-width:360px){
 .common-zone{grid-template-columns:minmax(90px,.42fr) minmax(0,1fr)}
 .market-tile .market-owned-check{width:20px}.market-tile .tile-cost{font-size:11px}.tile-cost .coin{width:5px;height:9px}
 .market-tile>b{font-size:16px}.market-tile .tile-stock{font-size:8px}
}
/* Effect choices stay large even in the compact board. */
.opponent.targetable{position:relative;border:2px solid #b26f13;box-shadow:0 0 0 2px #ffde803f;padding-bottom:28px;}
.opponent.target-selected{border-color:#175d44;box-shadow:0 0 0 3px #79c69a80;}
.player-target{position:absolute;inset:0;z-index:1;width:100%;height:100%;min-height:44px;border:0;border-radius:inherit;background:transparent;color:#493011;cursor:pointer;}
.player-target:hover{background:#efb44322}.player-target:focus-visible{outline:3px solid #efa421;outline-offset:3px}
.player-target span{position:absolute;bottom:2px;left:3px;right:3px;background:#ffe2a1;border-radius:5px;padding:4px 2px;font-size:12px;font-weight:850;line-height:1.2}
.target-selected .player-target span{background:#1d6148;color:#fff}.player-target:disabled{opacity:.5;cursor:default}
.targetable .cpu-effects,.targetable .cpu-stock{position:relative;z-index:2}
.target-summary{padding:5px 9px;border-radius:6px;background:#fff0c5;color:#623c05;font-weight:800;font-size:14px}
.required-prompt{padding:8px 10px;border:2px solid #b97812;background:#fff4d7;font-size:14px;line-height:1.4}
.required-prompt b{font-size:15px;color:#714300}.required-prompt span{font-size:14px}
.actionbar .effect-resolve,html[lang="en"] .actionbar .effect-resolve{min-height:50px;font-size:17px;font-weight:850;background:#a84c16;border:2px solid #87390d;color:#fff;box-shadow:0 3px 0 #6d290c}
.actionbar .effect-resolve:disabled{background:#eadfce;border-color:#d3c4b0;color:#7c6f5e;box-shadow:none;opacity:1}
.game .declare-button{min-height:48px;padding:7px 12px;flex-shrink:0;border:2px solid #a45f12;background:#fff0c9;color:#5a3508}
.game .declare-button b{font-size:14px}.game .declare-button small{font-size:11px}.game .declare-button.chosen{background:#9b491a;color:#fff;border-color:#82390e}
.declaration-options{flex-wrap:nowrap;overflow-x:auto;align-items:stretch}.declaration-options>strong{align-self:center;flex-shrink:0}
.effect-choices{gap:7px;max-height:190px;overflow:auto;padding:4px 1px}
.effect-choices .effect-choice{min-height:62px;min-width:155px;padding:7px 10px;border:2px solid #ad7221;background:#fff6df;gap:8px}
.effect-choices .effect-choice img{width:36px;height:50px}.effect-choices .effect-choice b{font-size:14px;line-height:1.3}.effect-choices .effect-choice small{font-size:12px}
.rank-choices{gap:5px;flex-wrap:wrap}.rank-choices button{min-width:44px;min-height:44px;font-size:19px;border:2px solid #b17d30}.rank-choices button.chosen{background:#995019;color:white;border-color:#713709}
.shift-controls button,.copy-selector>button,[data-action="effect-choice"][data-id="none"]{min-width:44px;min-height:44px;font-size:14px}
.stock-payment select{min-width:80px;min-height:44px;font-size:17px}.steal-choices button{min-width:50px;min-height:70px;border:2px solid #ae7d23}
.turn-banner{flex-wrap:wrap}.effect-results{flex:1 0 100%;max-height:106px;overflow:auto;border-top:1px solid #b8cabe;padding-top:4px;display:grid;gap:4px;text-align:left}
.effect-result{display:flex;gap:7px;align-items:center;background:#f0f8ed;border-left:4px solid #418249;padding:5px 7px;border-radius:5px;color:#21382b}
.effect-result img{width:28px;height:39px;object-fit:contain;flex-shrink:0}.effect-result>div{min-width:0}.effect-result b{font-size:12px}.effect-result p{margin:2px 0 0;font-size:14px;font-weight:650;line-height:1.35}.effect-result p>span{font-size:11px;font-weight:850;white-space:nowrap;color:#386241}
.effect-result.noop{background:#fff4dc;border-color:#b67b21;color:#67440d}.effect-result.noop p>span{color:#84551a}.effect-result.waiting{background:#eaf2ff;border-color:#46779c}
.settings-row>span>small{display:block;font-size:11px;color:#64716c}.topbar #music-toggle{font-size:12px;white-space:nowrap;min-height:36px}
@media(max-width:760px){
 .opponent.targetable{padding-bottom:27px}.player-target span{font-size:10px;padding:5px 1px}.targetable .cpu-effects{min-height:22px}
 .game .declare-button{padding:6px 8px}.game .declare-button b{font-size:13px}.game .declare-button small{font-size:10px}
 .required-prompt{font-size:13px;padding:6px 8px}.required-prompt b,.required-prompt span{font-size:13px}
 .actionbar .effect-resolve,html[lang="en"] .actionbar .effect-resolve{min-height:48px;font-size:15px}
 .effect-results{max-height:94px}.effect-result{gap:5px;padding:4px}.effect-result b{font-size:11px}.effect-result p{font-size:12px}.effect-result img{width:23px;height:32px}
 .topbar #music-toggle{font-size:10px;padding:3px 5px}.topbar nav{gap:3px}
}
.result-heading{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:750;color:#57685d;line-height:1.2}.result-heading button{font-size:10px;min-height:22px;padding:1px 8px}
.board:has(.player-target){grid-template-rows:minmax(142px,.62fr) minmax(126px,1fr)}
@media(max-width:760px){.board:has(.player-target){grid-template-rows:minmax(128px,.48fr) minmax(130px,1fr)}}
.hand-area:has(.required-prompt)>:not(.hand){flex-shrink:0}
@media(max-width:420px){
 html[data-screen="game"] .topbar .brand{max-width:none;flex:0 0 27px}
 html[data-screen="game"] .topbar .brand>span:not(.brandmark){display:none}
 html[data-screen="game"] .topbar .brand .brandmark{display:grid!important;width:27px;height:30px}
}
/* v1.5.4: bounded ongoing strip; every tile keeps its own width, regardless of side. */
.game-main .ongoing-effects.is-active{height:64px;min-height:64px;max-height:64px;min-width:0;max-width:100%;align-self:start;align-items:center;overflow:hidden}
.game-main .ongoing-heading{display:flex;flex:0 0 auto;max-width:110px;align-items:flex-start;justify-content:center;gap:2px}
.game-main .ongoing-heading strong span{display:inline-block}
.game-main .ongoing-list{display:flex;flex:1 1 0;min-width:0;max-width:100%;height:100%;gap:6px;align-items:center;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;padding:0 1px 3px;scroll-snap-type:x proximity}
.game-main .ongoing-effect,.game-main .ongoing-effect.red-effect{flex:0 0 auto;width:clamp(205px,24vw,310px);min-width:0;max-width:none;height:50px;min-height:50px;padding:4px 7px;gap:6px;scroll-snap-align:start;overflow:hidden}
.game-main .ongoing-effect img{display:block;width:25px;height:35px;flex:0 0 25px}
.game-main .ongoing-copy{flex:1;min-width:0;gap:2px;line-height:1.2}
.game-main .ongoing-copy>b,.game-main .ongoing-copy>span,.game-main .red-effect .ongoing-copy>span{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:11px;max-width:100%}
.game-main .ongoing-rule strong{font-size:12px}.game-main .ongoing-rule>span{margin-left:4px}
.game-main .ongoing-copy small{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:10px}
/* The overlay and child buttons all select the seat; public details have a separate action. */
.opponent.targetable{cursor:pointer}.targetable .player-target{touch-action:manipulation}
.targetable .cpu-effects,.targetable .cpu-stock{cursor:pointer}.targetable .owned-card:focus-visible{outline:3px solid #efa421;outline-offset:-3px}
.target-summary{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}
.target-summary>button{min-height:44px;padding:6px 10px;font-size:12px;flex-shrink:0}
@media(max-width:760px){
 .game-main .ongoing-effects.is-active{height:60px;min-height:60px;max-height:60px}
 .game-main .ongoing-heading{max-width:75px;font-size:8px}.game-main .ongoing-heading strong{font-size:9px;flex-wrap:wrap}
 .game-main .ongoing-list{gap:4px}.game-main .ongoing-effect,.game-main .ongoing-effect.red-effect{width:205px;height:48px;min-height:48px;padding:3px 5px}
 .game-main .ongoing-effect img{width:23px;height:32px;flex-basis:23px}.game-main .ongoing-copy>b,.game-main .ongoing-copy>span,.game-main .red-effect .ongoing-copy>span{font-size:10px}
 .game-main .ongoing-rule strong{font-size:11px}.game-main .ongoing-copy small{font-size:9px}
}
