/* A clear table: the next move is prominent, secondary information lives in Esc. */
.game-table{max-width:1120px;margin:0 auto;padding:0 32px 22px;min-height:100svh;display:flex;flex-direction:column}
.table-hud{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;min-height:86px;border-bottom:1px solid #9baf8f22;margin-bottom:22px}
.round-hearts{display:flex;align-items:center;gap:20px}.round-tag{color:#a2b3a3;font-size:12px;letter-spacing:.5px;white-space:nowrap}.round-hearts .hearts{font-size:19px;letter-spacing:3px}.table-gold{color:#f0ce8c;font-size:26px;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.table-gold>span{font-size:20px;margin-right:5px;color:#d3aa61}
.table-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.table-actions .upgrade-btn{width:auto;display:flex;align-items:center;gap:17px;white-space:nowrap;height:40px;padding:0 13px;background:#d6b87b0b;border-color:#ad956144;border-radius:7px;color:#d3cbb3;font-size:12px}.table-actions .upgrade-btn strong{color:#ecc582;font-size:12px}.menu-button{width:38px;height:38px;display:grid;place-items:center;border-color:transparent;background:transparent;color:#b3bcaa}.menu-button:hover{background:#d1c89d12}.menu-button svg{width:22px;height:22px}
.row-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;padding:0 4px}.row-heading h2{font:17px Georgia,serif;color:#c0c6b1;letter-spacing:.4px;margin:0}.row-heading h2 span{font:11px 'Segoe UI',sans-serif;color:#ae915d;margin-left:8px}.row-heading .reroll-btn{background:transparent;border-color:#9aaf962e;height:32px;padding:0 11px;font-size:11px;gap:8px}.row-heading .reroll-btn svg{height:15px;width:15px}
.game-table .shop-area{position:relative;background:radial-gradient(ellipse at 50% 100%,#58623c18,transparent 80%);border:0;border-radius:0;padding:0 55px 24px}.game-table .shop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:stretch}.game-table .card{border-color:#7c896344;box-shadow:0 6px 14px #030b0a50;border-radius:9px}.game-table .shop-card{position:relative;overflow:visible;background:#20332b}.game-table .shop-card>div:first-child{border-radius:9px 9px 0 0;overflow:hidden}.game-table .card-art{height:124px}.game-table .card-copy{min-height:89px;padding:10px 10px 3px}.game-table .card-name{font-size:14px;white-space:normal;line-height:1.15;min-height:16px;margin-bottom:6px}.game-table .card-text{font-size:11px;line-height:1.45;color:#bac8b8;min-height:45px}.game-table .card-stats{font-size:19px;padding:2px 10px 8px}.game-table .buy-btn{height:31px;border:0;border-top:1px solid #d5b06d55;border-radius:0 0 9px 9px;background:linear-gradient(100deg,#b69c61,#d4b57a,#b99a5c);font-size:12px;color:#192920;letter-spacing:.5px}.game-table .buy-btn:disabled{background:#425345;color:#8b9a8b}.game-table .buy-btn>span{font-size:10px}
.game-table .empty-shop{min-height:270px;border:1px dashed #81916e16;background:#8b98610a;color:#97a87930}.empty-shop>span{font-size:24px}.copy-counter{position:absolute;right:-9px;top:-8px;background:#233e37;border:1px solid #6f9c7d;border-radius:10px;padding:3px 7px;color:#bbd8b5;font-size:10px;z-index:2;box-shadow:0 2px 8px #0004}.copy-counter.ready{background:#66572c;border-color:#eaca81;color:#ffe1a0}
.table-divider{display:flex;align-items:center;gap:20px;color:#91a393;font-size:11px;letter-spacing:1px;margin:0 0 21px}.table-divider:before,.table-divider:after{content:'';height:1px;background:linear-gradient(90deg,transparent,#8ea48736);flex:1}.table-divider:after{transform:rotate(180deg)}.table-divider span{white-space:nowrap}.game-table .team-board{grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;min-height:222px;padding:0 0 4px;align-items:stretch}.game-table .team-card{width:100%;overflow:visible;background:#23352c}.game-table .team-card .card-art{height:96px;border-radius:8px 8px 0 0}.game-table .team-card .card-copy{min-height:94px;padding:8px 8px 4px}.game-table .team-card .card-name{font-size:13px;min-height:16px}.game-table .team-card .card-text{font-size:10px;line-height:1.4;min-height:45px}.game-table .team-card .card-stats{font-size:18px;padding:0 8px 8px}.game-table .team-card .card-tribe{display:none}.game-table .empty-slot{min-height:222px;background:#66886903;border:1px dashed #6d8e6e29;border-radius:9px;color:#78947944}.game-table .empty-slot>span{font:25px Georgia,serif}.game-table .team-card.selected{box-shadow:0 0 0 2px #efbd7140,0 8px 18px #0005;border-color:#d0b977}
.game-table .team-controls{min-height:40px;justify-content:center;gap:8px}.game-table .selected-title{margin-right:8px;flex:0 1 auto;color:#b3c0af}.game-table .team-controls .move-btn{border-color:#85927633;background:#7180690e}.game-table .sell-btn{font-size:11px;height:29px;background:#7c5e2522;border-color:#ae8f5255;color:#e1be7f}.table-footer{display:flex;justify-content:center;padding:0 0 6px;margin-top:auto}.table-footer .fight-btn{height:45px;min-width:190px;font-size:14px;border-radius:8px;gap:13px;box-shadow:0 5px 24px #d9aa4520}.table-footer .fight-btn:disabled{background:#344238;border-color:#5b6c4d;color:#82937a;box-shadow:none}.storage-warning{text-align:center;color:#cbab7a;font-size:11px;margin-top:10px}
.game-menu{width:390px;padding:30px}.game-menu h2{font-size:29px;margin:10px 0 22px}.menu-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid #9baf8f25;border-bottom:1px solid #9baf8f25;padding:17px 0;text-align:center}.menu-progress strong{font-size:25px;color:#e2d3aa;display:block}.menu-progress strong small{font-size:13px;color:#7e9986}.menu-progress span{display:block;margin-top:5px;font-size:11px;color:#9bb09d}.game-menu .menu-resume{margin-top:22px;width:100%;font-size:13px}.menu-links{display:flex;flex-direction:column;margin-top:13px;gap:2px}.menu-links button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 3px;background:transparent;border:0;border-bottom:1px solid #91a58617;border-radius:0;color:#c2cfb8;text-align:left;font-size:12px}.menu-links button:hover{color:#f0d295}.menu-links button svg{width:16px;height:16px;color:#829d86}.menu-links button span{color:#8da78f;font-size:11px}.menu-foot{margin-top:22px;font-size:10px;line-height:1.7;color:#708e7c;text-align:center}
.collection-modal{width:1050px;padding:30px;max-height:90svh;overflow:auto}.collection-modal h2{margin-bottom:20px}.collection-filters{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 22px;align-items:center}.collection-filters>span{width:15px}.collection-filters button{padding:6px 10px;font-size:11px;background:#182e28;border-color:#66806b44}.collection-filters button.active{border-color:#d3af6e;color:#e7c68a;background:#d7b67e18}.collection-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.collection-grid .card{overflow:hidden}.collection-grid .card-art{height:125px}.collection-grid .card-copy{min-height:99px}.collection-grid .card-name{white-space:normal;min-height:20px}.collection-grid .card-text{font-size:11px}.collection-grid .card-stats{padding-top:5px}.collection-price{text-align:center;background:#152b24;color:#a58f60;font-size:11px;padding:7px;border-top:1px solid #71826630}
.battle-menu-btn{color:#b6c4ac}.battle-top .eyebrow{font-size:10px}.battle-event small{font-size:9px;opacity:.75}.battle-side-label{font-size:11px}.battle-team .card-tribe{font-size:8px}.modal{max-height:calc(100svh - 32px);overflow:auto}.result-modal{overflow:auto}.fusion-intro p{margin-bottom:18px}
@media(min-width:901px) and (max-height:780px){.game-table{padding-bottom:14px;max-width:1050px}.table-hud{min-height:68px;margin-bottom:17px}.game-table .shop-area{padding-bottom:18px}.row-heading{margin-bottom:12px}.game-table .card-art{height:98px}.game-table .card-copy{min-height:81px;padding-top:8px}.game-table .card-text{font-size:10px;min-height:42px}.game-table .empty-shop{min-height:240px}.table-divider{margin-bottom:17px}.game-table .team-card .card-art{height:80px}.game-table .team-card .card-copy{min-height:87px}.game-table .team-card .card-text{font-size:10px}.game-table .team-board,.game-table .empty-slot{min-height:205px}.game-table .team-controls{min-height:37px}.table-footer .fight-btn{height:42px}}
@media(max-width:900px){.game-table{padding:0 22px 18px}.table-hud{gap:15px;min-height:76px;margin-bottom:18px}.round-hearts{gap:8px;flex-direction:column;align-items:flex-start}.round-hearts .hearts{font-size:16px;line-height:1}.table-actions .upgrade-btn{gap:10px;font-size:11px}.table-gold{font-size:23px}.game-table .shop-area{padding:0 26px 23px}.game-table .shop-grid{gap:15px}.game-table .card-art{height:108px}.game-table .card-copy{min-height:100px}.game-table .team-board{gap:8px}.game-table .team-card .card-art{height:78px}.game-table .team-card .card-copy{padding:7px 6px;min-height:110px}.game-table .team-card .card-name{font-size:12px}.game-table .team-card .card-text{font-size:10px}.game-table .team-card .card-stats{padding:0 5px 7px;font-size:17px}.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.game-table{padding:0 12px 16px;overflow:clip}.table-hud{grid-template-columns:1fr auto;gap:8px 15px;padding:13px 1px;min-height:106px;margin-bottom:14px}.round-hearts{flex-direction:row;align-items:center;gap:13px}.round-tag{font-size:11px}.round-hearts .hearts{font-size:14px;letter-spacing:2px}.table-gold{font-size:23px;justify-self:end}.table-gold>span{font-size:16px}.table-actions{grid-column:1/-1;justify-content:flex-end;gap:8px}.table-actions .upgrade-btn{height:31px;font-size:11px;gap:14px;margin-right:auto}.table-actions .upgrade-btn strong{font-size:11px}.menu-button{width:32px;height:30px}.menu-button svg{width:20px;height:20px}.row-heading h2{font-size:16px}.row-heading{margin-bottom:12px}.row-heading .reroll-btn{height:29px;font-size:10px}.game-table .shop-area{padding:0 0 21px}.game-table .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 15px;padding:0 12px}.game-table .card-art{height:100px}.game-table .card-copy{min-height:94px;padding:8px 8px 3px}.game-table .card-name{font-size:13px}.game-table .card-text{font-size:11px;line-height:1.4;min-height:46px}.game-table .card-stats{font-size:18px;padding:1px 8px 6px}.game-table .buy-btn{height:30px}.game-table .empty-shop{min-height:249px}.copy-counter{right:-6px;top:-6px;font-size:9px;padding:3px 6px}.table-divider{margin-bottom:17px;font-size:10px;gap:13px}.game-table .team-board{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 8px;min-height:0}.game-table .team-card .card-art{height:82px}.game-table .team-card .card-copy{min-height:110px;padding:7px 6px 3px}.game-table .team-card .card-name{font-size:12px;line-height:1.15}.game-table .team-card .card-text{font-size:10px;line-height:1.4}.game-table .team-card .card-stats{font-size:17px;padding:0 5px 7px}.game-table .empty-slot{min-height:225px}.game-table .team-controls{min-height:39px;gap:7px;padding:4px 0}.game-table .team-controls.has-selection{min-height:60px}.game-table .selected-title{width:100%;text-align:center;margin:0;flex:none;font-size:11px}.table-footer{position:sticky;bottom:0;background:linear-gradient(0deg,#132322 70%,#13232200);padding:13px 0 0;margin:0 -12px;z-index:4}.table-footer .fight-btn{height:43px;min-width:178px;font-size:13px}.game-menu{padding:27px;max-width:355px}.collection-modal{padding:24px 15px}.collection-modal h2{font-size:23px}.collection-filters{gap:5px}.collection-filters button{padding:6px 8px;font-size:10px}.collection-filters>span{display:none}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.collection-grid .card-art{height:106px}.collection-grid .card-name{font-size:13px}.collection-grid .card-text{font-size:11px}.collection-grid .card-copy{min-height:110px;padding:9px 7px 3px}.battle-top h2{font-size:20px}.speed-controls{gap:3px}.speed-controls button{padding:6px;font-size:10px}.battle-side-label{font-size:10px}}

/* Primary actions stay above the board, away from the host application's composer. */
body{min-width:320px}
.game-table{min-height:0;padding-bottom:max(150px,env(safe-area-inset-bottom))}
.table-hud{min-height:72px;margin-bottom:12px;gap:20px}
.round-tag{font-size:14px;color:#c5d0bd}
.table-gold{font-size:30px;color:#ffe0a0}
.table-actions .menu-button{width:96px;height:46px;display:flex;justify-content:center;gap:9px;background:#294139;border:1px solid #78916f;color:#e1e7d5;font-size:14px}
.round-actions{position:sticky;top:10px;z-index:10;display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:12px;padding:12px;margin:0 0 22px;background:linear-gradient(135deg,#334b3e,#22372f);border:1px solid #7e8860;border-radius:14px;box-shadow:0 8px 24px #06110d77,inset 0 1px #d1d2a222}
.round-actions button{height:64px;min-width:0;border-radius:9px;transition:background .16s,border-color .16s,box-shadow .16s}
.round-actions .round-action{width:100%;display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 14px;background:linear-gradient(135deg,#405c4c,#304a3d);border:1px solid #9eb28b;color:#eff3df;text-align:left}
.round-action>svg{width:26px;height:26px;flex-shrink:0}
.round-action>span:last-child{display:flex;flex-direction:column;gap:5px}
.round-action b{font-size:16px;font-weight:650;line-height:1.15}
.round-action small{color:#efd49c;font-size:13px;line-height:1.1;font-variant-numeric:tabular-nums}
.round-actions .upgrade-btn{background:linear-gradient(135deg,#695c39,#493f2d);border-color:#c8aa68;color:#fff0cb}
.upgrade-arrow{font-size:30px;line-height:1;color:#f5d398}
.round-actions .fight-btn{padding:0 22px;font-size:22px;letter-spacing:.5px;gap:16px;background:linear-gradient(135deg,#ffe2a0,#d9a951);border:1px solid #fff0bd;color:#283126;box-shadow:0 4px 16px #e4b95633}
.round-actions .fight-btn>svg:first-child{width:28px;height:28px}
.round-actions button:not(:disabled):hover{border-color:#fff1be;box-shadow:0 0 0 2px #ebd39233,0 5px 16px #0003}
.round-actions button:disabled{opacity:1;background:#34483c;border-color:#69785a;color:#a7b6a0;box-shadow:none;cursor:not-allowed}
.round-actions button:disabled small,.round-actions button:disabled .upgrade-arrow{color:#aeb799}
.row-heading h2{font-size:19px;color:#dce1c9}.row-heading h2 span{font-size:13px;color:#d3b679}
.table-divider{font-size:12px;color:#bdcdb7}
.game-table .team-controls .move-btn{width:38px;height:38px;font-size:17px}
.game-table .sell-btn{height:38px;font-size:13px;padding:0 14px}
.game-menu .menu-resume{min-height:52px;font-size:17px}
.modal-backdrop:has(.result-modal){align-items:flex-start;padding-top:clamp(16px,5svh,44px)}
.result-modal,.result-modal.victory{max-height:calc(100svh - 160px);overflow:auto;scroll-padding-top:112px}
.result-next{position:sticky;top:0;z-index:2;margin:16px -4px 20px;padding:10px;background:#22392f;border:1px solid #a28c58;border-radius:12px;box-shadow:0 5px 18px #08160e55}
.result-next .primary{margin:0;min-height:58px;padding:12px 20px;display:flex;align-items:center;justify-content:center;gap:18px;font-size:20px;color:#263124;background:linear-gradient(135deg,#ffe3a1,#dbad59);border-color:#ffebb0}
.result-next .primary svg{width:22px;height:22px}
.result-next small{display:block;color:#d9ca9b;font-size:13px;margin-top:9px}
@media(max-width:600px){
  .table-hud{grid-template-columns:1fr auto auto;gap:12px;min-height:72px;margin-bottom:10px;padding:12px 0}
  .round-hearts{flex-direction:column;align-items:flex-start;gap:6px}.round-tag{font-size:12px}.round-hearts .hearts{font-size:15px}
  .table-gold{font-size:25px}.table-actions{grid-column:auto}.table-actions .menu-button{width:44px;height:44px}.menu-button span{display:none}
  .round-actions{top:6px;grid-template-columns:1fr 1fr;gap:8px;padding:9px;margin:0 0 19px;border-radius:12px}
  .round-actions .round-action{height:60px;padding:8px 9px;gap:8px}.round-action b{font-size:13px}.round-action small{font-size:12px}.round-action>svg{width:20px;height:20px}.upgrade-arrow{font-size:25px}
  .round-actions .fight-btn{grid-column:1/-1;height:50px;font-size:20px;gap:15px}.round-actions .fight-btn>svg:first-child{width:24px;height:24px}
  .game-table .team-controls.has-selection{min-height:82px}
  .result-modal,.result-modal.victory{padding:22px 19px;max-height:calc(100svh - 150px)}
  .result-modal .result-seal,.result-modal.victory .result-seal{width:54px;height:54px;margin-bottom:12px}.result-modal .result-seal svg{width:28px;height:28px}
  .result-modal.victory h2{font-size:39px}.result-modal.champion h2{font-size:30px}.result-next{margin-top:14px}.result-next .primary{font-size:19px;min-height:54px}
}
@media(max-height:600px) and (min-width:601px){
  .table-hud{min-height:60px}.round-actions{margin-bottom:16px;padding:9px}.round-actions button{height:56px}
  .result-modal,.result-modal.victory{padding:20px 28px}.result-modal .result-seal,.result-modal.victory .result-seal{width:48px;height:48px;margin-bottom:10px}.result-modal .result-seal svg{width:25px;height:25px}
  .result-modal.victory h2{font-size:39px}.result-modal h2{margin:10px 0}.result-next{margin:12px 0 18px}
}
