/* Tower overview shares the site's compact dark panels and pink controls. */
.arena-page .arena-opponent-panel {padding:24px;}
.arena-tower {display:grid; gap:24px;}
.tower-hero {padding:24px; border:1px solid #ef7fc74a; border-radius:16px; background:radial-gradient(ellipse at 90% 0,#ac387629,transparent 60%),linear-gradient(145deg,#22152c,#111019);}
.tower-heading {display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px;}
.tower-eyebrow {font-size:10px; line-height:1.5; letter-spacing:.14em; font-weight:700; color:#f08cbd; margin:0 0 6px;}
.tower-heading h1 {font-size:clamp(24px,3vw,34px); line-height:1.2; color:#fff0fb; margin:0;}
.tower-progress-count {font-size:12px; color:#d6b8cf; white-space:nowrap;}
.tower-hero progress {display:block; width:100%; height:6px; appearance:none; border:none; border-radius:20px; background:#ffffff0d; accent-color:#ee6faf; overflow:hidden;}
.tower-hero progress::-webkit-progress-bar {background:#ffffff0d; border-radius:20px;}
.tower-hero progress::-webkit-progress-value {background:linear-gradient(90deg,#a63678,#ff99d2); border-radius:20px; transition:width .3s;}
.tower-hero progress::-moz-progress-bar {background:linear-gradient(90deg,#a63678,#ff99d2); border-radius:20px;}
.tower-challenge {display:flex; gap:26px; align-items:center; margin-top:24px;}
.tower-challenge-info {flex:1; min-width:0;}
.arena-page .tower-challenge-info h2 {font-size:21px; letter-spacing:0; line-height:1.3; margin:0 0 8px; color:#f5e8f6;}
.tower-challenge-description {font-size:12px; color:#bfa8c9; line-height:1.6; margin:6px 0 0;}
.tower-deck-teaser {display:flex; gap:7px; padding:4px; --card-halo:5px;}
.tower-teaser-card.collection-card {width:48px; height:70px; border-radius:6px; flex:none; cursor:default;}
.tower-teaser-card.collection-card:hover {transform:none;}
.tower-teaser-card img {width:100%; height:100%; object-fit:cover;}
.tower-challenge-action {display:grid; justify-items:end; gap:12px; flex:none;}
.tower-next-reward {margin:0; font-size:24px; font-weight:700; color:#ffa2d3;}
.tower-challenge-action .game-button {min-height:44px; padding:12px 18px; font-size:11px;}
.tower-chapters {display:grid; gap:10px;}
.tower-chapter {border:1px solid #d995ce25; border-radius:12px; background:#110e1ab8; overflow:hidden;}
.tower-chapter[open] {border-color:#e579bd50; background:linear-gradient(140deg,#22142888,#100e18);}
.tower-chapter summary {display:flex; align-items:center; gap:14px; padding:17px 20px; cursor:pointer; list-style:none; transition:background .18s;}
.tower-chapter summary::-webkit-details-marker {display:none;}
.tower-chapter summary::after {content:'+'; color:#d9a4c9; font-size:22px; font-weight:400; width:16px; text-align:center; flex:none;}
.tower-chapter[open] summary::after {content:'−';}
.tower-chapter summary:hover {background:#ea74bd09;}
.tower-chapter summary:focus-visible,.tower-floor:focus-visible {outline:2px solid #ff9ed5; outline-offset:-3px;}
.tower-chapter-number {display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:#f580bd0c; border:1px solid #e17ac733; font-size:12px; color:#ff9ad1; flex:none;}
.tower-chapter-label {display:grid; gap:5px; min-width:0; flex:1;}
.tower-chapter-label strong {font-size:14px; font-weight:600; color:#f5e3f3; overflow-wrap:anywhere;}
.tower-chapter-label>span {font-size:11px; line-height:1.4; color:#a993b7;}
.tower-chapter-count {font-size:11px; color:#bda7c4; white-space:nowrap;}
.tower-floor-grid {display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); gap:9px; padding:4px 20px 20px;}
.tower-floor {display:grid; justify-items:center; gap:8px; min-width:0; padding:16px 5px 13px; border:1px solid #c392bd24; border-radius:10px; background:#100c17; color:#bca7c8; font:inherit; transition:border-color .2s,background .2s;}
.tower-floor-number {font-size:21px; font-weight:700; line-height:1;}
.tower-floor-status {font-size:8px; font-weight:700; letter-spacing:.04em; white-space:nowrap;}
.tower-floor-reward {font-size:11px; white-space:nowrap;}
.tower-floor.is-locked {color:#8f7c9d; background:#0b091080;}
.tower-floor.is-cleared {color:#cfb5ce; border-color:#d984bc35; background:#7b2c5312;}
.tower-floor.is-cleared .tower-floor-status {color:#ed9dc7;}
.tower-floor.is-current {border-color:#fa8fc8; background:linear-gradient(145deg,#78345e66,#2e1830); color:#fff0fa; cursor:pointer; box-shadow:0 0 16px #f56cb71c;}
.tower-floor.is-current:hover {background:linear-gradient(145deg,#96467588,#41213f); border-color:#ffc3e4;}
.tower-floor.is-current .tower-floor-reward {color:#ffa9d9;}
.tower-floor.is-guardian:not(.is-current) {border-style:dashed;}
.arena-result-modal #arena-retry-result {margin-top:12px;}
@media(max-width:1100px) {
  .tower-challenge {flex-wrap:wrap; gap:18px;}
  .tower-challenge-info {flex-basis:45%;}
  .tower-challenge-action {margin-left:auto;}
  .tower-floor-grid {grid-template-columns:repeat(5,minmax(0,1fr));}
}
@media(max-width:600px) {
  .arena-page .arena-opponent-panel {padding:16px 12px;}
  .arena-page .arena-intro {font-size:12px; line-height:1.7; margin-bottom:18px;}
  .tower-hero {padding:18px 14px;}
  .tower-heading {align-items:flex-start; gap:10px;}
  .tower-heading h1 {font-size:25px;}
  .tower-progress-count {font-size:10px; padding-top:4px;}
  .tower-challenge {display:grid; gap:16px; margin-top:20px;}
  .arena-page .tower-challenge-info h2 {font-size:19px;}
  .tower-deck-teaser {gap:9px;}
  .tower-teaser-card.collection-card {width:44px; height:64px;}
  .tower-challenge-action {display:flex; justify-content:space-between; align-items:center; width:100%; margin:0; gap:10px;}
  .tower-challenge-action .game-button {font-size:10px; padding:10px 12px;}
  .tower-next-reward {font-size:22px;}
  .tower-chapter summary {padding:14px 12px; gap:10px;}
  .tower-chapter-number {width:30px; height:34px; border-radius:8px;}
  .tower-chapter-label strong {font-size:12px;}
  .tower-chapter-label>span {font-size:10px;}
  .tower-chapter-count {font-size:10px;}
  .tower-floor-grid {gap:6px; padding:4px 10px 14px;}
  .tower-floor {padding:13px 2px 11px; gap:8px; border-radius:8px;}
  .tower-floor-number {font-size:19px;}
  .tower-floor-status {font-size:7px; letter-spacing:0;}
  .tower-floor-reward {font-size:9px;}
}
/* Combat uses natural height: narrow or short screens never clip cards or controls. */
body.arena-fighting .arena-page {
  width:calc(100% - 40px); max-width:1240px; height:auto; max-height:none;
  margin:18px auto 32px; padding:0; display:block;
}
body.arena-fighting .arena-battle {
  width:100%; height:auto; padding:22px; overflow:visible; border-radius:18px;
  background:linear-gradient(155deg,#1b1423f5,#0b0c14fa);
  border:1px solid #e276c32e; box-shadow:0 16px 50px #0004;
}
body.arena-fighting .arena-battle .arena-battle-status {
  min-height:44px; margin:0 0 16px; padding-bottom:14px; border-bottom:1px solid #d995ce20;
  display:flex; align-items:center; gap:16px;
}
.arena-battle-title {display:grid; gap:5px; min-width:0;}
.arena-battle-title>strong {font-size:11px; letter-spacing:.14em; color:#ff93cd;}
.arena-battle-title>span {font-size:18px; font-weight:700; color:#f5e8f5; overflow-wrap:anywhere;}
.arena-battle .arena-leave-button {flex:none; padding:9px 12px; min-height:36px; font-size:10px;}
body.arena-fighting .arena-battle .arena-battle-board {height:auto; display:grid; grid-template-rows:auto auto auto; gap:14px;}
body.arena-fighting .arena-battle .arena-side {min-width:0; overflow:visible;}
body.arena-fighting .arena-battle .arena-side-heading {min-height:20px; margin:0 0 10px; gap:10px; font-size:11px; letter-spacing:.1em;}
.arena-battle .arena-side-heading>span {font-size:11px; font-weight:400; letter-spacing:0; color:#b9a8c3; white-space:nowrap;}
.arena-combat-cards {display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; min-width:0; padding:5px; margin:-5px; --card-halo:7px;}
.arena-combat-cards:focus-visible {outline:1px solid #ff88c7; outline-offset:5px; border-radius:12px;}
.arena-battle .arena-combat-card {
  display:flex; flex-direction:column; width:100%; height:auto; min-width:0; padding:0;
  border-radius:12px; overflow:hidden; text-align:left; transform:none;
  background:linear-gradient(160deg,#211b2b,#101019); cursor:default; transition:border-color .18s,box-shadow .18s;
}
.arena-battle .arena-combat-card:hover {transform:none;}
.arena-combat-art {position:relative; width:100%; height:clamp(110px,17dvh,170px); flex:none; background:#0b0a11; overflow:hidden;}
.arena-combat-art img {display:block; width:100%; height:100%; object-fit:cover; object-position:center 30%;}
.arena-card-badge {position:absolute; top:8px; left:8px; max-width:calc(100% - 16px); border:1px solid #ffffff26; border-radius:5px; padding:5px 7px; background:#120c19df; color:#f7e4f3; font-size:9px; font-weight:700; letter-spacing:.06em; line-height:1.3;}
.arena-battle .arena-combat-info {min-width:0; padding:12px; flex:1;}
.arena-combat-info h3 {font-size:14px; color:#fff1fb; margin:0 0 4px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden;}
.arena-combat-rarity {font-size:9px; text-transform:uppercase; letter-spacing:.1em; color:var(--card-tint,var(--collection-rarity-color)); margin:0 0 12px;}
.arena-combat-stats,.arena-defense-label {display:flex; align-items:baseline; gap:5px; font-size:11px; line-height:1.4;}
.arena-combat-stats {justify-content:space-between; margin-bottom:8px;}
.arena-combat-stats>span,.arena-defense-label>span {color:#b8a6c0; font-size:9px;}
.arena-defense-label>strong {margin-left:auto; color:#f2d9ee; font-size:11px;}
.arena-defense-label>span:last-child {font-size:9px;}
.arena-defense-bar {height:5px; margin-top:6px; overflow:hidden; border-radius:9px; background:#ffffff12;}
.arena-defense-bar>span {display:block; height:100%; background:linear-gradient(90deg,#b74483,#ff8dc7); border-radius:inherit;}
.arena-battle .arena-attack-button {width:calc(100% - 16px); margin:0 8px 8px; min-height:42px; padding:10px 6px; font-size:11px; letter-spacing:.08em; touch-action:manipulation;}
.arena-battle .arena-combat-card.is-active {outline:1px solid #ff96cf; outline-offset:2px;}
.arena-combat-card.is-active .arena-card-badge {color:#ffaad8; border-color:#ff80c370;}
.arena-combat-card.is-knocked-out .arena-combat-art img {filter:grayscale(1); opacity:.35;}
.arena-combat-card.is-knocked-out .arena-combat-info {opacity:.55;}
.arena-combat-card.is-knocked-out .arena-card-badge {color:#e9acbd;}
.arena-battle .arena-attack-button:disabled {opacity:.4; cursor:not-allowed; box-shadow:none;}
.arena-combat-hint {margin:-3px 0 12px; color:#bda8c5; font-size:12px; line-height:1.5;}
.arena-swipe-hint {display:none;}
body.arena-fighting .arena-battle .arena-vs-banner {
  display:grid; gap:6px; height:auto; max-height:none; overflow:visible; padding:14px 18px;
  border:1px solid #f16db72e; border-radius:10px; background:linear-gradient(100deg,#af326412,#b350a809); text-align:left;
}
.arena-vs-banner>strong {font-size:10px; letter-spacing:.1em; color:#ff91cd;}
.arena-vs-banner>span {font-size:12px; line-height:1.6; color:#cfbcd5; overflow-wrap:anywhere;}
/* Opponent cards form a compact lineup, leaving the largest targets for your deck. */
.arena-battle .arena-side-enemy .arena-combat-card {display:grid; grid-template-columns:34% minmax(0,1fr);}
.arena-side-enemy .arena-combat-art {height:120px;}
.arena-side-enemy .arena-card-badge {top:auto; bottom:6px; left:4px; max-width:calc(100% - 8px); padding:4px; font-size:7px;}
.arena-battle .arena-side-enemy .arena-combat-info {padding:12px 8px; align-self:center;}
.arena-side-enemy .arena-combat-info h3 {font-size:12px;}
.arena-side-enemy .arena-combat-rarity {font-size:8px;}
.arena-side-enemy .arena-defense-label {flex-wrap:wrap; gap:3px;}
.arena-side-enemy .arena-defense-label>span:last-child {flex-basis:100%; text-align:right;}
.arena-side-enemy .arena-combat-cards:has(>.arena-combat-card:only-child) {grid-template-columns:minmax(0,340px); justify-content:center;}
.arena-result-modal {box-sizing:border-box; max-height:calc(100dvh - 32px); overflow:auto;}
.arena-result-modal h2 {line-height:1.3;}
.arena-preview-hint {display:none;}
.arena-preview-message {font-size:12px; line-height:1.5; color:#ff9fbd; margin:8px 0;}
.arena-preview-message:empty {display:none;}
body:has(.arena-page)>.legal-links {position:static; width:fit-content; margin:0 auto 16px; flex-wrap:wrap;}
.arena-exit-dialog {box-sizing:border-box; margin:auto; width:min(420px,calc(100% - 32px)); padding:24px; border:1px solid #e276c355; border-radius:16px; background:linear-gradient(150deg,#24172c,#0d0c15); color:#f6e5f1; box-shadow:0 20px 80px #0008;}
.arena-exit-dialog::backdrop {background:#05030ac9; backdrop-filter:blur(6px);}
.arena-exit-dialog h2 {margin:0 0 12px; font-size:21px; color:#ff9dd2;}
.arena-exit-dialog p {color:#c6b2ce; font-size:13px; line-height:1.6;}
.arena-exit-dialog .game-actions {display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}
.arena-exit-dialog .game-button {flex:1; min-height:42px; font-size:10px; white-space:nowrap;}
@media(max-width:1000px) {
  .arena-combat-cards {gap:10px;}
  .arena-battle .arena-side-enemy .arena-combat-card {grid-template-columns:1fr;}
  .arena-side-enemy .arena-combat-art {height:90px;}
  .arena-side-enemy .arena-card-badge {top:6px; bottom:auto; left:6px; font-size:8px;}
  .arena-side-enemy .arena-defense-label {flex-wrap:nowrap;}
  .arena-side-enemy .arena-defense-label>span:last-child {flex-basis:auto;}
}
@media(max-width:700px) {
  body.arena-fighting .arena-page {width:calc(100% - 20px); margin:12px auto 24px;}
  body.arena-fighting .arena-battle {padding:16px 12px; border-radius:14px;}
  body.arena-fighting .arena-battle .arena-battle-status {margin-bottom:16px; padding-bottom:14px;}
  .arena-battle-title>span {font-size:16px;}
  .arena-battle .arena-leave-button {font-size:9px; padding:8px;}
  body.arena-fighting .arena-battle .arena-battle-board {gap:16px;}
  .arena-combat-cards {display:flex; gap:12px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; padding:6px 4px 12px; margin:-6px -4px -6px; scrollbar-width:thin; scrollbar-color:#9d4d79 #ffffff08;}
  .arena-battle .arena-combat-card {width:160px; min-width:160px; flex:0 0 160px; scroll-snap-align:start;}
  .arena-combat-art {height:170px;}
  .arena-battle .arena-side-enemy .arena-combat-card {display:grid; grid-template-columns:78px minmax(0,1fr); width:245px; min-width:245px; flex-basis:245px;}
  .arena-side-enemy .arena-combat-art {height:136px;}
  .arena-battle .arena-side-enemy .arena-combat-info {padding:12px;}
  .arena-side-enemy .arena-combat-info h3 {font-size:14px;}
  .arena-side-enemy .arena-card-badge {top:auto; bottom:6px; font-size:8px;}
  .arena-swipe-hint {display:inline;}
  .arena-combat-hint {font-size:11px;}
  body.arena-fighting .arena-battle .arena-vs-banner {padding:12px;}
  .arena-vs-banner>span {font-size:11px;}
  .arena-deck-preview-modal {padding:16px; border-radius:14px;}
  .arena-deck-preview-header h2 {font-size:16px; line-height:1.4;}
  .arena-deck-preview-modal .arena-preview-grid {display:flex; justify-content:flex-start; flex:none; overflow-x:auto; gap:12px; padding:6px 4px 12px; margin:6px -4px; scrollbar-width:thin; scrollbar-color:#9d4d79 #ffffff08;}
  .arena-deck-preview-modal .arena-preview-grid.arena-solo-grid {justify-content:center;}
  .arena-deck-preview-modal .arena-preview-grid .arena-fighter-card {width:140px; min-width:140px; max-width:none; flex:0 0 140px;}
  .arena-deck-preview-modal .arena-fighter-card .booster-front-art {height:clamp(65px,18dvh,150px); aspect-ratio:auto;}
  .arena-deck-preview-modal .arena-fighter-card .booster-front-info {padding:9px;}
  .arena-deck-preview-modal .arena-fighter-card .booster-front-info h3 {font-size:12px;}
  .arena-deck-preview-modal .arena-fighter-card .booster-front-info p {font-size:10px; margin:3px 0;}
  .arena-deck-preview-modal .arena-fighter-card .card-level-badge {width:auto; max-width:100%; white-space:normal; overflow-wrap:anywhere; letter-spacing:0; line-height:1.4;}
  .arena-preview-hint {display:block; margin:0 0 8px; font-size:11px; color:#bda8c5; line-height:1.5;}
  .arena-deck-preview-modal .game-actions {flex-wrap:wrap; gap:8px;}
  .arena-deck-preview-modal .game-actions .game-button {min-height:42px; padding:10px 12px; font-size:10px;}
}
@media(max-height:500px) and (max-width:700px) {
  .arena-deck-preview-modal .arena-fighter-card .booster-front-art {height:54px;}
  .arena-deck-preview-modal .arena-fighter-card .card-level-badge,.arena-deck-preview-modal .arena-fighter-card .booster-front-score {display:none;}
}
@media(prefers-reduced-motion:reduce) {.arena-battle .arena-combat-card {transition:none;}}

/* Equipped-title bonuses use the normal battle stats and a discreet explanation. */
.arena-title-bonus {margin:10px 0 0;font-size:11px;line-height:1.5;color:#e8a4cd;}
.arena-side-player .arena-side-heading>strong {font-size:11px;line-height:1.4;}
.arena-result-modal .arena-defeat-tip {margin:8px 0 14px;font-size:11px;line-height:1.5;color:#ba9fb9;}
.arena-defeat-tip a {color:#ed9bca;text-decoration:underline;text-underline-offset:2px;}
.arena-defeat-tip a:hover {color:#ffd1ea;}
