/* Test49 · adaptive card table, permanent progress and direct combat. */
body.arena49{--bg:#101827;--panel:#19263a;--soft:#24344b;--edge:#42506a;--ink:#f3ead8;--muted:#b2bed1;--gold:#e7c88c;--good:#a1ebc3;background:radial-gradient(ellipse at 15% 0,#33405b70,transparent 55%),radial-gradient(ellipse at 90% 65%,#24213d80,transparent 60%),#101827;font:16px/1.45 system-ui,sans-serif}
.arena49 .wrap{width:100%;max-width:1440px;height:100vh;height:100dvh;min-height:0;margin:0 auto;padding:0 clamp(12px,2.2vw,32px)}
.arena49 #app,.arena49 #app[data-entry=true]{width:100%;max-width:none;margin:0;align-self:stretch;overscroll-behavior:contain;scrollbar-width:thin;scroll-padding:16px}
.arena49 .arena-layout,.arena49 .arena-main{width:100%;max-width:none;align-items:stretch;min-width:0}
.arena49 .arena-layout{flex:none}.arena49 .arena-main{gap:12px}
.arena49 header{min-height:60px;border-bottom:1px solid #e7c88c25;margin-bottom:10px}
.arena49 .brand{font-size:clamp(18px,2.6vw,26px);letter-spacing:.12em;color:#f2dfb8}
.arena49 .brand .sigil{width:36px;height:40px;border-radius:18px 18px 7px 7px;background:linear-gradient(135deg,#62503a33,#142033);box-shadow:inset 0 0 12px #d6b47713}
.arena49 nav{background:#101827f5;border-color:#b698652c;min-height:66px;margin-top:6px}.arena49 nav button{font-size:12px;gap:4px;min-height:54px}.arena49 nav button[aria-current]{background:linear-gradient(#dfbd7c18,transparent);border-radius:10px 10px 0 0}
.arena49 #app .hud{min-height:44px;gap:12px}.arena49 #app .hud .metric{font-size:14px}.arena49 #app .hud .metric strong{font-size:18px}.arena49 #app .hud .life-hearts img{width:19px;height:19px}
.arena49 .arena-league{font-size:13px}.arena49 .arena-league small{font-size:11px}.arena49 .arena-league .league-emblem{width:30px;height:36px}
.arena49 .arena-identity{padding:4px 0 10px;min-height:64px}.arena49 .arena-general .general-art,.arena49 .arena-opponent .general-art{width:40px;height:52px;border:1px solid #d6b47780;box-shadow:0 3px 12px #0005}.arena49 .arena-general strong,.arena49 .arena-opponent strong{font-size:16px}.arena49 .arena-general small,.arena49 .arena-opponent small{font-size:12px}.arena49 .arena-opponent{background:#1c273b80;padding:5px 10px}
.arena49 button{font-family:inherit}.arena49 button.primary{background:linear-gradient(135deg,#f1daa8,#cca45f);color:#1b2331;border:1px solid #f5dfb6;box-shadow:0 3px 0 #79613c,0 6px 16px #0003;text-shadow:0 1px #fff3}.arena49 button.quiet{background:#25324966;border-color:#52607a66}.arena49 button:disabled{opacity:.5}
.arena49 .panel{border-color:#7c89a02e;background:linear-gradient(145deg,#1e2b41,#151f32);box-shadow:0 10px 28px #060b1626;border-radius:15px;padding:18px}
.arena49 #app .tutorial-guide{padding:10px 13px;background:#253148;border-color:#b8965760;margin-bottom:6px}.arena49 #app .tutorial-guide .guide-heading strong{font-size:16px}.arena49 #app .tutorial-guide>p{font-size:14px}.arena49 #app .tutorial-guide .eyebrow{font-size:10px}
.arena49 .arena-board,.arena49 .arena-board.arena-prepared{display:flex;flex-direction:column;gap:12px;min-height:0;flex:none;grid-template-rows:none}
.arena49 .arena-board .panel{background:none}.arena49 .market-heading,.arena49 .team .panel-title{min-height:30px;margin-bottom:8px}.arena49 .market-heading h2,.arena49 .team .panel-title h2{font:500 clamp(19px,2.5vw,26px)/1.2 Georgia,serif}.arena49 .market-heading>span,.arena49 .team .band-help{font-size:12px}
.arena49 #app[data-phase] .market .offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;gap:12px;flex:none;align-items:stretch}
.arena49 #app[data-phase] .market .offer:nth-child(3){grid-column:1/-1;width:calc(50% - 6px);justify-self:center}
.arena49 #app[data-phase] .market .offer,.arena49 #app[data-phase] .arena-board .unit,.arena49 .collection-card,.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini{--rarity:#b9bcc1;position:relative;background:linear-gradient(160deg,#293348,#121c2c 75%);border:1px solid var(--rarity);border-radius:12px;box-shadow:inset 0 0 0 3px #101726,0 5px 13px #060b1670;overflow:hidden;color:var(--ink);text-align:left;padding:0}
.arena49 #app[data-phase] .market .offer.rarity-rare,.arena49 #app[data-phase] .arena-board .unit.rarity-rare,.arena49 .rarity-rare{--rarity:#76b9f2}
.arena49 #app[data-phase] .market .offer.rarity-epic,.arena49 #app[data-phase] .arena-board .unit.rarity-epic,.arena49 .rarity-epic{--rarity:#c3a0f4}
.arena49 #app[data-phase] .market .offer{border-top-width:3px}.arena49 #app[data-phase] .market .offer.recommended{box-shadow:inset 0 0 0 3px #101726,0 5px 13px #060b1670}
.arena49 #app[data-phase] .market .offer>.art{height:clamp(135px,31vw,250px);min-height:0;flex:none;aspect-ratio:auto;width:100%;max-width:none;border:0;border-radius:0}
.arena49 #app[data-phase] .market .offer>.art img,.arena49 #app[data-phase] .arena-board .unit>.portrait img{object-fit:cover;object-position:50% 22%}
.arena49 #app[data-phase] .market .offer>.cost{font-size:15px;right:8px;top:8px;background:#0f1726e8;border:1px solid #e8ca8b;border-radius:7px;padding:4px 7px;color:#f0d7a4;z-index:2}
.arena49 #app[data-phase] .market .offer>.body{padding:7px 9px 10px;gap:5px;background:linear-gradient(#202d4299,#142033)}
.arena49 #app[data-phase] .market .offer strong{font:600 clamp(14px,1.9vw,18px)/1.2 Georgia,serif;min-height:22px;text-align:center;overflow-wrap:normal}
.arena49 #app[data-phase] .market .offer .values{font-size:13px;gap:9px}.arena49 #app[data-phase] .market .offer .value img{width:13px;height:13px}.arena49 #app[data-phase] .market .offer .offer-rank{font-size:12px}.arena49 #app[data-phase] .market .offer .buy-hint{font-size:12px}
.arena49 .rarity-label{display:flex;align-items:center;justify-content:center;gap:5px;min-height:20px;font:600 11px/1.2 system-ui,sans-serif;letter-spacing:.035em;color:var(--rarity,#c7cbd2);text-transform:uppercase}.arena49 .rarity-label>span{letter-spacing:-2px;font-size:9px}
.arena49 #app[data-phase] .market .offer.empty{min-height:160px;background:#17223966;border-color:#62738d55}
.arena49 #app[data-phase] .market .offer .upgrade-badge{left:8px;top:8px;font-size:11px;border:1px solid #e3cf9b;background:#111c2fee;padding:3px 6px}.arena49 #app[data-phase] .market .offer .upgrade-badge b{font-size:18px}
.arena49 .team{position:relative}.arena49 .team .formation-direction-label,.arena49 .formation-direction-label{display:flex;flex-wrap:wrap;justify-content:space-between;gap:3px;font-size:11px;color:#c7d0df;min-height:21px;margin-bottom:5px}.arena49 .formation-direction-label>span:first-child{color:#e6c990;font-weight:600;letter-spacing:.04em}
.arena49 .formation-rear-label{text-align:center;padding:6px;font-size:11px;letter-spacing:.12em;color:#9faec7;background:linear-gradient(90deg,transparent,#40527322,transparent)}
.arena49 #app[data-phase] .arena-board .team>.roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:auto;grid-auto-flow:row;gap:10px;flex:none;padding:0 3px}
.arena49 #app[data-phase] .arena-board .team>.roster>:is(.unit,.arena-empty-slot){grid-column:auto;min-height:0}.arena49 #app[data-phase] .arena-board .team>.roster>:nth-child(5){grid-column:1/-1;width:calc(50% - 5px);justify-self:center}
.arena49 #app[data-phase] .arena-board .unit>.portrait{width:100%;height:clamp(125px,27vw,230px);flex:none;min-height:0;max-height:none;aspect-ratio:auto;border-radius:0}
.arena49 #app[data-phase] .arena-board .unit .unit-body{padding:5px 8px 8px;gap:4px}.arena49 #app[data-phase] .arena-board .unit .name{font:600 clamp(14px,1.7vw,18px)/1.2 Georgia,serif;min-height:22px;text-align:center;overflow-wrap:normal}
.arena49 #app[data-phase] .arena-board .unit .values{font-size:13px;gap:8px}.arena49 #app[data-phase] .arena-board .unit .value img{width:13px;height:13px}.arena49 #app[data-phase] .arena-board .unit .slot{top:7px;left:7px;font-size:10px;padding:3px 5px;background:#111a2aeb;z-index:2;border:1px solid #a0accb45}
.arena49 #app[data-phase] .arena-board .unit .rank{top:7px;right:7px;font-size:16px;background:#131c2bea;border:1px solid #e0c28b;min-width:25px;padding:1px 5px;z-index:2;font-family:Georgia,serif}
.arena49 .arena-empty-slot{min-height:160px!important;background:linear-gradient(135deg,#26314940,#10182750);border:1px dashed #64748b70;border-radius:12px}.arena49 .arena-empty-slot b{font:36px Georgia,serif;color:#7b8ba780}
.arena49 .development-mark{display:flex;align-items:center;justify-content:center;gap:7px;min-height:21px;color:#a8b6ca;font-size:10px}.arena49 .development-mark b{font-weight:500}.arena49 .development-track{display:flex;gap:3px}.arena49 .development-track i{display:block;width:7px;height:7px;border:1px solid #73839d;border-radius:1px;transform:rotate(45deg);background:#101827}.arena49 .development-track i.filled{background:linear-gradient(135deg,#ffedc6,#b48a48);border-color:#f4daab;box-shadow:0 0 5px #e3c48638}.arena49 .development-mark:not([data-development="0"]){color:#f0d59c}
.arena49 #app[data-phase] .arena-actions{display:grid;grid-template-columns:128px minmax(0,1fr);gap:10px;min-height:56px;position:sticky;bottom:0;z-index:4;background:linear-gradient(transparent,#101827 22%);padding:8px 0}.arena49 #app[data-phase] .arena-actions button{min-height:52px;font-size:15px}.arena49 #app[data-phase] .arena-actions button.primary{font-size:20px;background:linear-gradient(135deg,#f1daa8,#cca45f);border:1px solid #f5dfb6;box-shadow:0 3px 0 #79613c}
.arena49 .arena-pacts{min-height:58px;gap:10px}.arena49 .arena-pact{min-height:58px;background:linear-gradient(140deg,#2a3347,#182438);border-color:#a58c6159}.arena49 .arena-pact strong{font-size:14px}.arena49 .arena-pact small{font-size:11px}.arena49 .arena-pact-pair .portrait{width:25px;height:36px}
.arena49 .arena-utilities{min-height:48px}.arena49 .arena-utilities>.arena-disclosure>summary{font-size:14px;min-height:48px;padding:12px 5px}.arena49 .team>.undo-swap{position:static;align-self:flex-end;margin:4px 0;min-height:34px;font-size:12px}
.arena49 .arena-board-tabs{display:flex;gap:6px}.arena49 .arena-board-tabs button{flex:1;min-height:44px;background:#243149;border:1px solid #465675;border-radius:9px;font-size:14px}.arena49 .arena-board-tabs button[aria-pressed=true]{border-color:var(--gold);color:var(--gold);background:#473e3433}
.arena49 [data-reorder]{touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}.arena49 [data-reorder] img{-webkit-user-drag:none}.arena49 .drag-source{opacity:.3}.arena49 #app .unit.drop-target{outline:3px solid #f7dda9;outline-offset:3px;transform:scale(1.025);box-shadow:0 0 25px #e6c58155}
.arena49 .formation-drag-ghost{position:fixed!important;z-index:1000!important;transform:translate(-50%,-55%) rotate(-3deg) scale(1.04)!important;pointer-events:none!important;opacity:.96!important;background:#17243a!important;border:2px solid #f2d697!important;border-radius:12px;box-shadow:0 18px 50px #0009;display:flex;flex-direction:column;overflow:hidden}.arena49 .formation-drag-ghost .portrait{width:100%;height:60%;max-height:none;aspect-ratio:auto;flex:1}.arena49 .formation-drag-ghost .portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}.arena49 .formation-drag-ghost .unit-body{display:grid;text-align:center;padding:7px;font-size:13px}.arena49 .formation-drag-ghost .values{display:flex;justify-content:center}.arena49 .formation-drag-ghost .slot,.arena49 .formation-drag-ghost .rank{display:none}
/* The teams are the stage. Effects originate and land on these exact cards. */
.arena49 #app .battle-panel{padding:clamp(10px,1.5vw,22px);background:radial-gradient(ellipse at 50% 0,#47506a38,transparent 65%),linear-gradient(135deg,#182439,#101a2b);border:1px solid #aa926649;border-radius:18px;flex:none;min-height:0;width:100%;max-width:none;box-shadow:0 16px 45px #060a142c}
.arena49 #app .battle-panel .result-heading h2.result{font-size:clamp(25px,3vw,34px)}.arena49 #app .battle-panel>.eyebrow{font-size:11px;letter-spacing:.12em}.arena49 #app .battle-panel .replay-actions button,.arena49 #app .battle-panel .speed-controls button{min-height:42px;font-size:13px;padding:7px 12px}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-scene{display:flex;gap:10px;min-height:0;justify-content:flex-start;overflow:visible}.arena49 .board-stage{position:relative;isolation:isolate;width:100%;padding:0;overflow:visible}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-lineups,.arena49 #app .battle-panel .final-lineups .combat-lineups{display:grid;grid-template-columns:1fr;gap:20px;width:100%;max-width:none;margin:0;padding:0}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-lineup{display:block;width:100%;margin:0;padding:10px;border-radius:12px;border:1px solid #8499c533;background:linear-gradient(160deg,#24324b60,#111b2d40)}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-lineup.side-1{border-color:#b385843f;background:linear-gradient(160deg,#45304438,#161c2d40)}
.arena49 .army-heading{display:flex;align-items:center;gap:9px;min-height:46px;margin-bottom:6px;position:relative}.arena49 .army-heading>.general-art{width:32px;height:42px;object-fit:cover;object-position:50% 20%;border:1px solid #c9b18780;border-radius:7px}.arena49 .army-heading strong{display:block;font:600 18px Georgia,serif}.arena49 .army-heading small{display:block;font-size:11px;color:var(--muted)}.arena49 .side-1 .army-heading strong{color:#ecc7c7}.arena49 .army-heading.general-acting{box-shadow:inset 0 0 0 1px #e7c88c,0 0 22px #e7c88c30;background:#77634130;border-radius:8px}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-minis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-height:0}.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini{display:flex;flex-direction:column;min-height:0;outline-offset:2px;transition:box-shadow .15s;overflow:visible;border-color:var(--rarity);border-radius:11px;isolation:isolate}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini:nth-child(5){grid-column:1/-1;width:calc(50% - 5px);justify-self:center}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini .combat-portrait{position:relative;width:100%;flex:none;border-radius:10px 10px 0 0}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini .portrait{width:100%;height:clamp(110px,28vw,170px);min-height:0;max-height:none;aspect-ratio:auto;border:0;border-radius:10px 10px 0 0;overflow:hidden}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini .portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-position{top:5px;left:5px;padding:2px 5px;z-index:5;background:#101827ed;border:1px solid #c3cee23b;font-size:10px;color:#e5dfd1}
.arena49 .battle-card-info{display:flex;flex-direction:column;gap:3px;padding:5px 7px 8px;width:100%;min-width:0;background:linear-gradient(#233249,#141f31);border-radius:0 0 10px 10px}
.arena49 .battle-card-info>strong{font:600 clamp(13px,1.65vw,18px)/1.2 Georgia,serif;text-align:center;min-height:1.2em;overflow-wrap:normal}.arena49 .battle-card-rank{font-size:10px;text-align:center;color:#cbb891}.arena49 .battle-card-info .rarity-label{font-size:9px;min-height:13px}
.arena49 .battle-vitals{display:flex;justify-content:center;align-items:center;gap:12px;font-size:14px}.arena49 .battle-vitals b{color:#f3c9ce}.arena49 .battle-vitals small{font-size:12px;color:#b7d4e8}.arena49 .battle-health{height:4px;background:#68728644;border-radius:3px;overflow:hidden;display:block;margin:1px 3px}.arena49 .battle-health i{display:block;height:100%;background:linear-gradient(90deg,#65b098,#abe6bb);border-radius:3px}
.arena49 .battle-role{position:absolute;left:50%;top:-11px;transform:translateX(-50%);z-index:8;background:#122236;color:#c9ebff;white-space:nowrap;font-size:10px;font-weight:700;line-height:1.3;border:1px solid #97cdee;border-radius:5px;padding:2px 5px;box-shadow:0 3px 7px #0005}.arena49 .battle-role.target{color:#ffd2c9;border-color:#eab2a3;background:#3b2434}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini.actor{outline:2px solid #afdded;box-shadow:0 0 24px #7bbbc933}.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini.target{outline:2px solid var(--fx-color,#f1a8a1);box-shadow:0 0 22px #c698ad30}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini.fallen{opacity:.38;filter:saturate(.3)}.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-fallen{position:absolute;top:32%;left:0;right:0;text-align:center;background:#182132cc;color:#f1d5d2;font-size:16px;font-style:normal;padding:5px;z-index:6;letter-spacing:.08em}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-action-title{padding:8px 12px;font-size:14px;background:#26344c;border:1px solid #7487a534;border-radius:8px;min-height:42px}.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-action-title strong{font-size:15px}.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-action-title>span{font-size:12px}.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-caption{font-size:15px;line-height:1.45;max-width:none;margin:0;text-align:center;min-height:1.45em;color:#e0d7c2}
.arena49 .board-combat .combat-fx-travel{z-index:20}.arena49 .board-combat .combat-fx-impact{z-index:9;width:clamp(70px,78%,150px)}.arena49 .board-combat .combat-fx-origin{width:60px;height:60px;z-index:8}.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .board-combat .effect-numbers{position:absolute;inset:auto 2px 4px;z-index:12;display:flex;flex-direction:column;align-items:center;gap:3px;pointer-events:none}.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .board-combat .effect-numbers b{font-size:clamp(15px,2.2vw,24px);padding:3px 7px;border-radius:5px;background:#111827ef;color:var(--fx-color);text-shadow:0 2px 4px #000;border:1px solid #ead7b736}
.arena49 .board-combat[data-combat-animation] .combat-mini.actor>.combat-portrait{animation:board49-act var(--fx-time) cubic-bezier(.2,.7,.2,1) both;transform-origin:50% 85%}.arena49 .board-combat[data-fx-damage=true] .combat-mini.target>.combat-portrait{animation:board49-hit var(--fx-time) ease-out both}
.arena49 .board-combat[data-fx-damage=false] .combat-mini.target>.combat-portrait{animation:fx-receive var(--fx-time) ease-out both}
@keyframes board49-act{0%{transform:translate(0,0)}18%{transform:translate(calc(var(--board-dx,6px)*-.3),calc(var(--board-dy,0px)*-.3))}43%{transform:translate(var(--board-dx,6px),var(--board-dy,0px)) scale(1.025)}70%,100%{transform:translate(0,0)}}
@keyframes board49-hit{0%,55%{transform:translate(0,0);filter:brightness(1)}59%{transform:translate(var(--board-hit-x,4px),var(--board-hit-y,1px));filter:brightness(1.3)}66%{transform:translate(calc(var(--board-hit-x,4px)*-.35),0);filter:brightness(1)}78%,100%{transform:translate(0,0)}}
/* Collection readiness uses text, a filled progress bar and a five-step badge. */
.arena49 .collection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:2px 3px 18px}.arena49 .collection-card{width:100%;max-width:none;position:relative;display:flex;flex-direction:column;border-top-width:3px;contain:layout style}
.arena49 .collection-card>.art{height:clamp(200px,37vw,420px);width:100%;min-height:0;aspect-ratio:auto;max-height:none;border:0;border-radius:0}.arena49 .collection-card>.art img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}.arena49 .collection-card>.rarity-label{position:absolute;top:10px;right:10px;border:1px solid var(--rarity);background:#141d2dee;padding:4px 8px;border-radius:6px;font-size:11px;z-index:2}
.arena49 .collection-card .body{padding:12px;display:flex;flex-direction:column;gap:7px}.arena49 .collection-card .body>strong{font:600 clamp(17px,2.5vw,26px)/1.2 Georgia,serif}.arena49 .collection-card .body>p{margin:0;font-size:13px;line-height:1.45}.arena49 .collection-card .values{display:flex;gap:12px;font-size:15px;padding:4px 0}.arena49 .collection-card .value img{width:16px;height:16px}.arena49 .collection-card .discovery,.arena49 .general-card-access{font-size:11px}.arena49 .collection-card .development-mark{justify-content:flex-start;font-size:12px;gap:10px}.arena49 .collection-card .development-track i{width:10px;height:10px}
.arena49 .collection-wallet{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0}.arena49 .collection-wallet>strong{font-size:21px;color:var(--gold)}.arena49 .collection-filters{display:flex;flex-wrap:wrap;gap:8px}.arena49 .collection-filters button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:8px 12px;background:#202e45;border:1px solid #5e729a66;border-radius:9px;font-size:13px}.arena49 .collection-filters button b{background:#39465d;border-radius:20px;padding:2px 7px;font-size:12px}.arena49 .collection-filters button[aria-pressed=true]{border-color:#d8bd89;background:#a98b422b;color:#f4dca9}
.arena49 .collection-card.upgrade-ready{border-color:#a1ebc3;box-shadow:inset 0 0 0 2px #baf6d544,0 6px 20px #a1ebc31a}.arena49 .upgrade-ready-ribbon{position:absolute;top:clamp(170px,calc(37vw - 30px),390px);left:0;right:0;z-index:2;text-align:center;background:linear-gradient(90deg,#32614b,#c5f5d6,#32614b);color:#112c23;font-size:13px;font-weight:800;padding:5px;letter-spacing:.035em}.arena49 .shards-ready .card-development{border-color:#d8bd89}
.arena49 .card-development{display:flex;flex-direction:column;gap:6px;border:1px solid #52698566;border-radius:8px;padding:9px;background:#111e31;margin:0}.arena49 .card-development strong{font-size:13px}.arena49 .card-development>span{font-size:12px;color:#c2cbd9}.arena49 .card-development progress{width:100%;height:7px;border:0;border-radius:5px;overflow:hidden;accent-color:#a1ebc3}.arena49 .card-development progress::-webkit-progress-bar{background:#39465c}.arena49 .card-development progress::-webkit-progress-value{background:#a1ebc3}.arena49 .card-development .ready-text{color:#a1ebc3;font-weight:700}.arena49 .card-development .gold-short{color:#f1cb88;font-weight:600}
.arena49 .card-upgrade-panel{border:1px solid #ceb38160;background:linear-gradient(140deg,#423d3038,#152238);padding:18px;border-radius:13px;margin-top:14px}.arena49 .upgrade-next-stats{display:flex;gap:10px;flex-wrap:wrap;padding:10px;margin:10px 0;background:#91caaa0c;border:1px solid #a1ebc340;border-radius:8px;font-size:14px;color:#c4efd2}.arena49 .upgrade-cost{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:14px}.arena49 .upgrade-cost>span{padding:8px;border-radius:7px;background:#142038}.arena49 .upgrade-cost .enough{color:#acebd0;border:1px solid #acebd059}.arena49 .upgrade-cost .short{color:#efc492;border:1px solid #efc49244}
.arena49 .collection-detail-frame>.development-mark{font-size:16px;min-height:42px;background:#263449;border-radius:7px;gap:14px;max-width:420px;margin:8px auto}.arena49 .collection-detail-frame>.development-mark i{width:13px;height:13px}.arena49 .collection-detail-frame:not([data-development="0"]) .detail-art{box-shadow:0 0 0 2px #cfb587,0 0 0 7px #5d513955,0 15px 30px #0006}.arena49 .collection-detail-frame[data-development="2"] .detail-art,.arena49 .collection-detail-frame[data-development="3"] .detail-art{box-shadow:0 0 0 3px #efd5a5,0 0 0 8px #6b594e88,0 15px 30px #0006}.arena49 .collection-detail-frame[data-development="4"] .detail-art,.arena49 .collection-detail-frame[data-development="5"] .detail-art{box-shadow:0 0 0 3px #f4e4b5,0 0 0 8px #99847588,0 0 32px #d9b78055}
.arena49 dialog{width:min(900px,calc(100vw - 28px));max-width:900px;max-height:calc(100dvh - 30px);background:radial-gradient(ellipse at top,#35425b77,transparent 65%),#152135;border:1px solid #c0a37177;border-radius:18px;padding:clamp(16px,3vw,28px);box-shadow:0 24px 70px #000a;font-size:16px;overscroll-behavior:contain}.arena49 dialog::backdrop{background:#070d18df;backdrop-filter:none}.arena49 dialog #detail-title{font-size:clamp(24px,4vw,36px)}.arena49 dialog .detail-art{width:min(66%,360px);max-height:none;margin-bottom:15px}.arena49 dialog .detail-values{font-size:21px;gap:18px}.arena49 dialog .close{font-size:14px;min-height:44px;background:#243149}.arena49 dialog .hint{font-size:13px;line-height:1.5}.arena49 dialog button{min-height:44px}.arena49 .design-choices{display:flex;gap:7px;margin-top:12px}.arena49 .design-choices button{flex:1;min-width:0;font-size:14px;min-height:48px}.arena49 .design-choices button[aria-pressed=true]{border-color:#ebc98d;background:#b89a5425;color:#f1d39b}
.arena49 .general-options,.arena49 .specialist-options,.arena49 .chest-grid,.arena49 .chest-catalog-grid,.arena49 .talent-options{grid-template-columns:repeat(2,minmax(0,1fr))}.arena49 #app .general-option>.general-art{height:clamp(170px,30vh,360px)}.arena49 .chest-card{background:linear-gradient(#28344b99,#152238);border-color:#947e5955}.arena49 .chest-card .chest-art{width:min(100%,300px);height:auto;max-height:none}.arena49 .treasure-header h1{font:500 32px Georgia,serif}.arena49 .treasure-wallet{font-size:18px}.arena49 .nav-ready-badge.collection-ready{background:#a1ebc3;color:#14261d}
@media(min-width:720px){
 .arena49 .arena-board:not(.arena-prepared){display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);grid-template-rows:auto auto auto auto;align-items:start;gap:14px 24px}
 .arena49 .arena-board:not(.arena-prepared)>.market{grid-column:1;grid-row:1/4;position:sticky;top:0}.arena49 .arena-board:not(.arena-prepared)>.team{grid-column:2;grid-row:1}.arena49 .arena-board:not(.arena-prepared)>.arena-pacts{grid-column:2;grid-row:2}.arena49 .arena-board:not(.arena-prepared)>.arena-utilities{grid-column:2;grid-row:3}.arena49 .arena-board:not(.arena-prepared)>.arena-actions{grid-column:1/-1;grid-row:4}
 .arena49 .arena-board-tabs{display:none}.arena49 #app[data-phase] .market .offer>.art{height:clamp(175px,26vh,360px)}.arena49 #app[data-phase] .arena-board .unit>.portrait{height:clamp(120px,calc((100vh - 500px)/3),230px)}
 .arena49 .arena-prepared>.team{width:100%;max-width:940px;margin:0 auto}.arena49 #app[data-phase] .arena-prepared .unit>.portrait{height:clamp(140px,23vh,320px)}
 .arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-lineups,.arena49 #app .battle-panel .final-lineups .combat-lineups{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,48px)}
 .arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini .portrait{height:clamp(120px,calc((100vh - 585px)/3),260px)}
 .arena49 .battle-card-info{padding:6px 8px 9px;gap:4px}.arena49 .battle-card-info .rarity-label{font-size:10px}.arena49 .battle-card-rank{font-size:11px}.arena49 .battle-vitals{font-size:16px;gap:14px}.arena49 .battle-vitals small{font-size:14px}
 .arena49 .army-heading strong{font-size:21px}.arena49 .army-heading>.general-art{width:38px;height:48px}.arena49 .army-heading small{font-size:13px}
}
@media(max-width:719px){
 .arena49 .arena-board:not(.arena-prepared)[data-board-view=market]>.team,.arena49 .arena-board:not(.arena-prepared)[data-board-view=market]>.arena-pacts,.arena49 .arena-board:not(.arena-prepared)[data-board-view=team]>.market{display:none}
 .arena49 .arena-board:not(.arena-prepared)[data-board-view=team] .unit>.portrait{height:112px}.arena49 .arena-board .arena-utilities{flex-wrap:wrap}.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-lineup.side-1{order:-1}.arena49 .collection{gap:12px}.arena49 .collection-card .body{padding:9px}.arena49 .collection-card .values{gap:7px;font-size:13px}.arena49 .collection-card .value img{width:13px;height:13px}.arena49 .collection-card>.rarity-label{top:6px;right:5px;padding:3px 4px;font-size:9px}.arena49 .collection-card .development-mark{font-size:10px;gap:7px}.arena49 .collection-card .development-track i{width:7px;height:7px}.arena49 .collection-card>.art{height:210px}.arena49 .upgrade-ready-ribbon{top:180px}.arena49 .collection-filters button{flex:1;min-width:90px;font-size:12px;gap:5px;padding:7px}.arena49 .collection-filters button b{padding:2px 5px}
}
@media(max-width:400px){.arena49 .wrap{padding:0 9px}.arena49 .brand{font-size:16px}.arena49 header{min-height:54px}.arena49 .header-actions button{width:34px}.arena49 .arena-identity small{font-size:11px}.arena49 #app .hud{gap:7px}.arena49 #app .hud .metric{font-size:12px}.arena49 .battle-vitals{gap:7px}.arena49 .battle-card-info>strong{font-size:12px}.arena49 .battle-card-rank{font-size:9px}.arena49 .arena-pact strong{font-size:12px}.arena49 .arena-pact-pair .portrait{width:18px;height:30px}}
@media(prefers-reduced-motion:reduce){.arena49 .board-combat .combat-mini>.combat-portrait{animation:none!important;transform:none!important}.arena49 .formation-drag-ghost{transform:translate(-50%,-50%)!important}.arena49 .drop-target{transform:none!important}}
.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini.rarity-rare{--rarity:#76b9f2}.arena49 :is(#app .battle-panel,dialog,.exercise-panel) .combat-mini.rarity-epic{--rarity:#c3a0f4}

.arena49 #app .battle-panel .final-lineups .combat-mini .portrait{height:clamp(110px,28vw,170px);width:100%;aspect-ratio:auto}
@media(min-width:720px){.arena49 #app .battle-panel .final-lineups .combat-mini .portrait{height:clamp(120px,calc((100vh - 585px)/3),260px)}}

.arena49 .board-combat[data-fx-local=true][data-fx-damage=false] .combat-mini.target>.combat-portrait{animation-name:board49-local-gain}
@keyframes board49-local-gain{0%,12%{filter:brightness(1)}22%{filter:brightness(1.18)}65%,100%{filter:brightness(1)}}
.arena49 .band-demo{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px}
.arena49 .band-demo>div:nth-child(5){grid-column:1/-1;width:calc(50% - 6px);justify-self:center}
@media(prefers-reduced-motion:reduce){.arena49 .board-combat[data-fx-local=true] .combat-mini>.combat-portrait{animation:none!important}}

.arena49 #app[data-phase] .market .offer:is(.rarity-rare,.rarity-epic),.arena49 #app[data-phase] .arena-board .unit:is(.rarity-rare,.rarity-epic){border-color:var(--rarity)}
