/* The unified arena on the 1600 × 900 stage — composed from ArenaScreen.jsx (BATTLE),
   PrepScreen.jsx (PREP / INCOME) and RoundScreens.jsx (RESOLVE / PARADE). Loaded after stage.css.
   One DOM; `data-phase` on <main> switches the layout. */

.bp-arena{position:relative;width:100%;height:100%;display:grid;overflow:hidden;background:#18231f;color:#fff;font-family:var(--font-ui)}
.bp-arena>*{min-width:0;min-height:0}

/* ---------- BATTLE: 68px scorebar · 44px trait strip · field · 180px controls ---------- */
.bp-arena[data-phase="BATTLE"]{grid-template-rows:68px 44px minmax(0,1fr) 180px;grid-template-columns:minmax(0,1fr);grid-template-areas:"bar" "strip" "field" "controls"}
.bp-arena[data-phase="BATTLE"]>.bp-arena-bar{grid-area:bar}
.bp-arena[data-phase="BATTLE"]>.bp-arena-traits{grid-area:strip}
.bp-arena[data-phase="BATTLE"]>.bp-arena-field{grid-area:field}
.bp-arena[data-phase="BATTLE"]>.bp-arena-controls{grid-area:controls}
.bp-arena[data-phase="BATTLE"]>.bp-arena-toys{display:none}
.bp-arena[data-phase="BATTLE"]>.bp-standings{position:absolute;z-index:8;left:12px;top:126px;bottom:194px;aspect-ratio:764/2058;filter:drop-shadow(0 7px 12px rgba(0,0,0,.5))}

/* Scorebar (also the Prep match ribbon — same nodes) */
.bp-arena-bar{position:relative;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:linear-gradient(180deg,#202d3c,#111a24);border-bottom:2px solid #e8c65c;box-shadow:0 5px 18px rgba(7,16,13,.53)}
.bp-bar-you,.bp-bar-foe{display:flex;align-items:center;gap:10px;padding:7px 16px;min-width:0}
.bp-bar-foe{justify-content:flex-end}
.bp-emote-avatar{position:relative;display:grid;place-items:center;width:46px;height:46px;padding:0;overflow:hidden;border-radius:50%;border:3px solid #7fd4ff;background:radial-gradient(circle at 50% 38%,#1d5a52 0 58%,#0d2b28 100%);cursor:pointer;flex:0 0 auto}
.bp-emote-avatar.is-foe{border-color:#e8877e;background:radial-gradient(circle at 50% 38%,#5a2a20 0 58%,#2b1109 100%)}
.bp-emote-avatar>img{width:92%;height:92%;object-fit:contain;object-position:center bottom}
.bp-bar-hp{display:grid}
.bp-bar-hp.is-foe{text-align:right}
.bp-bar-hp>small{font:1000 .62rem var(--font-ui);letter-spacing:.12em;color:#9fd7e4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}
.bp-bar-hp.is-foe>small{color:#ffc2ae}
.bp-bar-hp>strong{font:700 1.6rem var(--font-display);line-height:1;font-variant-numeric:tabular-nums}
.bp-bar-health{width:150px;flex:0 0 auto}
.bp-bar-score{padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.28);color:#ffe9b1;font:1000 .66rem var(--font-ui);letter-spacing:.06em;font-variant-numeric:tabular-nums}
.bp-bar-center{text-align:center;padding:4px 26px;display:grid;gap:1px}
.bp-bar-stage{font:1000 .62rem var(--font-ui);letter-spacing:.12em;color:#f1d371}
.bp-bar-phase{font:1000 .8rem var(--font-ui);color:#fff4d5}
.bp-bar-timer{font:700 1.35rem var(--font-display);line-height:1;color:#ffd36a;font-variant-numeric:tabular-nums}
.bp-bar-banner{font:1000 .56rem var(--font-ui);letter-spacing:.12em;color:#ffe477;font-style:normal}
.bp-bar-banner[hidden]{display:none}
.bp-arena[data-urgency="critical"] .bp-bar-timer,.bp-arena[data-urgency="warning"] .bp-bar-timer{color:#ff9d66}
.bp-ribbon-pairing,.bp-ribbon-economy{display:none}
.bp-network{position:absolute;right:16px;top:100%;margin-top:6px;z-index:31}

/* Trait strip (BATTLE) */
.bp-arena-traits{position:relative;z-index:18;display:flex;align-items:stretch;gap:8px;padding:5px 12px;background:linear-gradient(180deg,#172128,#10181e);border-bottom:1px solid #7b6a3c}
.bp-traits-head{display:none}
.bp-strip-label{flex:0 0 132px;display:grid;align-content:center;font:1000 .68rem var(--font-ui);letter-spacing:.08em;color:#f1d371}
.bp-strip-label>small{display:block;margin-top:2px;font:700 .52rem var(--font-ui);letter-spacing:0;color:#aebbb7}
.bp-trait-list{flex:1;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;min-width:0}
.bp-trait-empty{margin:0;align-self:center;font:800 .68rem var(--font-ui);color:#c8b389}
.bp-trait-row{position:relative;min-height:34px}

/* Field */
.bp-arena-field{position:relative;min-height:0;overflow:hidden;background:var(--bp-arena-bg) center/cover no-repeat,#25392d}
.bp-arena-field::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 55px rgba(7,16,15,.53);pointer-events:none}
.bp-arena-field>canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.bp-portal-copy{position:absolute;z-index:6;top:4%;display:grid;gap:2px;padding:7px 11px;border-radius:10px;max-width:150px;pointer-events:none}
.bp-portal-copy.is-own{left:15.5%;background:rgba(9,32,44,.86);border:2px solid #67e8f9}
.bp-portal-copy.is-enemy{right:5%;background:rgba(46,12,10,.86);border:2px solid #ff756e;text-align:right}
.bp-portal-copy>strong{font:1000 .74rem var(--font-ui);letter-spacing:.09em;color:#8bf6fa}
.bp-portal-copy.is-enemy>strong{color:#ffb0a4}
.bp-portal-copy>small{font:800 .54rem var(--font-ui);line-height:1.28;color:#cfe9f2}
.bp-portal-copy.is-enemy>small{color:#f4d3ce}
.bp-lanes{position:absolute;inset:10% 22% 8% 24%;z-index:5;display:grid;grid-template-rows:repeat(3,1fr);gap:6px}
.bp-lane{position:relative;padding:0;border-radius:6px;border:2px solid rgba(233,255,248,.14);background:transparent;color:#dbe8e4;cursor:default;transition:background .12s,border-color .12s}
.bp-lane.is-blocked{border-color:rgba(255,117,110,.5);background:rgba(60,14,12,.28)}
.bp-lane>span{position:absolute;left:12px;top:50%;transform:translateY(-50%);display:grid;justify-items:start;gap:1px;padding:4px 9px;border-radius:4px;background:rgba(13,23,21,.84);opacity:0;transition:opacity .12s}
.bp-lane.is-blocked>span,.bp-arena[data-deployment-active="true"] .bp-lane>span{opacity:1}
.bp-lane>span>small{font:1000 .54rem var(--font-ui);letter-spacing:.13em;color:#bcd3cd}
.bp-lane>span>strong{font:1000 .74rem var(--font-ui);letter-spacing:.09em;color:#8bffd8}
.bp-lane.is-blocked>span>strong{color:#ff9d94}
.bp-lane.is-preview-selected{border-color:#67f5c8;background:linear-gradient(90deg,rgba(67,232,177,.13),rgba(67,232,177,.26),rgba(67,232,177,.13));box-shadow:inset 0 0 24px rgba(84,234,179,.3);cursor:pointer}
.bp-lane.is-preview-invalid{border-color:rgba(255,117,110,.7);background:rgba(60,14,12,.4)}
.bp-lane[data-preview-tone="amber"]{border-color:#ffd75b;background:linear-gradient(90deg,rgba(255,176,45,.08),rgba(255,191,56,.25),rgba(255,176,45,.08));box-shadow:inset 0 0 24px rgba(255,199,61,.24)}
.bp-lane[data-preview-tone="gold"]{border-color:#fff1a1;background:linear-gradient(90deg,rgba(255,203,47,.14),rgba(255,229,104,.34),rgba(255,203,47,.14));box-shadow:inset 0 0 30px rgba(255,216,66,.42)}
.bp-lane[data-preview-tone="red"]{border-color:#ff756e;background:rgba(60,14,12,.4);box-shadow:inset 0 0 26px rgba(255,70,62,.26)}
[data-testid="battle-card"]{touch-action:none;user-select:none;-webkit-user-select:none}
[data-testid="battle-card"] img{pointer-events:none;-webkit-user-drag:none;user-select:none}
.bp-ability-legend{position:absolute;right:10px;bottom:8px;z-index:9;display:grid;gap:3px;padding:8px 11px;border-radius:10px;background:rgba(11,25,20,.84);border:1px solid #7b6a3c;pointer-events:none}
.bp-ability-legend>strong{font:1000 .5rem var(--font-ui);letter-spacing:.12em;color:#f1d371}
.bp-ability-legend>span{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:5px;font:800 .5rem var(--font-ui);color:#d7e4de}
.bp-ability-legend>span>b{text-align:center;color:#8bf6fa;font-size:.68rem}
.bp-cue{position:absolute;left:50%;top:12px;z-index:9;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;border:1px solid rgba(216,189,107,.4);background:rgba(17,27,32,.87);font:1000 .7rem var(--font-ui);letter-spacing:.06em;box-shadow:0 5px 18px rgba(0,0,0,.5);pointer-events:none;white-space:nowrap}
.bp-cue>span{color:#8bf6fa;font-size:1rem;text-shadow:0 0 10px currentColor}
.bp-battle-feedback{position:absolute;left:50%;bottom:10px;z-index:9;transform:translateX(-50%);padding:6px 12px;border-radius:999px;background:rgba(11,25,20,.84);border:1px solid #7b6a3c;color:#ffe9b1;font:1000 .62rem var(--font-ui);letter-spacing:.06em;opacity:0;transition:opacity .2s;pointer-events:none;white-space:nowrap}
.bp-battle-feedback.is-active{opacity:1}

/* Standings rail (BATTLE plaque) — DS TrainerChip rows */
.bp-standings{position:relative;display:grid}
.bp-standings-shell{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.bp-standings-list{position:absolute;inset:7.5% 9.8% 7.8%;display:grid;grid-template-rows:repeat(8,minmax(0,1fr));align-content:center;gap:1%;overflow:hidden}
.bp-standings .ds-trainer-chip{position:relative;min-height:0}
.bp-standings-spectators{position:absolute;left:50%;bottom:1.5%;transform:translateX(-50%);margin:0;white-space:nowrap}

/* Bottom controls */
.bp-arena-controls{position:relative;z-index:15;min-height:0}
.bp-battle-controls{position:relative;display:grid;grid-template-columns:1.5fr 3.75fr 1.62fr;gap:0;height:100%;padding:8px 12px;box-sizing:border-box;background:linear-gradient(180deg,#5f331e 0,#2a160d 7%,#160d09 100%);box-shadow:inset 0 3px 0 #e69a3a,inset 0 7px 0 #6f3d20,0 -8px 20px rgba(0,0,0,.5)}
.bp-mana{position:relative;display:grid;place-items:center;align-content:center;gap:4px;min-width:0;max-width:250px;justify-self:center;width:100%;padding:14px 22px 10px}
.bp-mana>.gdd-mana-shell{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.bp-mana>div{position:relative;display:grid;text-align:center}
.bp-mana>div>span{font:1000 .5rem var(--font-ui);letter-spacing:.12em;color:#ffd36a}
.bp-mana>div>strong{font:700 1.4rem var(--font-display);line-height:1;color:#fff8df;font-variant-numeric:tabular-nums}
.bp-mana>.gdd-mana-pips{position:relative;display:flex;gap:3px;justify-content:center}
.bp-mana>small{position:relative;font:1000 .5rem var(--font-ui);color:#9fe4f2}
.bp-hand{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:0 10px;min-height:0}
.bp-hand-card{position:relative;height:100%;min-height:0}
.bp-next-dispose{display:grid;grid-template-columns:.62fr 1fr;gap:7px;min-height:0}
.bp-next{position:relative;display:grid;place-items:center;border-radius:10px;overflow:hidden;min-height:0}
.bp-next>.gdd-next-shell{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.bp-next>small{position:absolute;top:6px;font:1000 .5rem var(--font-ui);letter-spacing:.1em;color:#ffd36a}
.bp-next>.gdd-preview-art{position:relative;width:74%;height:58%;display:grid;place-items:end center}
.bp-next>.gdd-preview-art>img{width:100%;height:100%;object-fit:contain;object-position:center bottom}
.bp-dispose{position:relative;display:grid;place-items:center;padding:0;border:0;background:transparent;color:#fff7df;cursor:pointer;text-shadow:0 2px 2px #681318;min-height:0}
.bp-dispose>.gdd-dispose-shell{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.bp-dispose>.bp-dispose-icon{position:relative;margin-bottom:30px}
.bp-dispose>strong{position:absolute;bottom:18px;font:1000 .78rem var(--font-ui)}
.bp-dispose>small{position:absolute;bottom:5px;max-width:92%;text-align:center;font:800 .46rem var(--font-ui);line-height:1.2;letter-spacing:.04em;color:#e7c8d2}
.bp-dispose.is-dispose-hover{filter:brightness(1.15)}

/* ---------- PREP / INCOME: 62px ribbon · 46px trainers strip · traits | roster+shop | toys ---------- */
.bp-arena[data-phase="PREP"],.bp-arena[data-phase="INCOME"]{grid-template-rows:62px 46px minmax(0,1fr);grid-template-columns:196px minmax(0,1fr) 224px;grid-template-areas:"bar bar bar" "strip strip strip" "traits controls toys";gap:0 12px;padding:0 12px 12px;background:var(--bp-prep-bg) center/cover no-repeat,#25392d}
.bp-arena[data-phase="PREP"]::before,.bp-arena[data-phase="INCOME"]::before{content:"";position:absolute;inset:108px 0 0;background:linear-gradient(180deg,rgba(6,30,46,.62),rgba(6,30,46,.78));pointer-events:none}
.bp-arena[data-phase="PREP"]>.bp-arena-bar,.bp-arena[data-phase="INCOME"]>.bp-arena-bar{grid-area:bar;margin:0 -12px;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;padding:0 14px}
.bp-arena[data-phase="PREP"]>.bp-standings,.bp-arena[data-phase="INCOME"]>.bp-standings{grid-area:strip;margin:0 -12px;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));align-items:center;gap:6px;padding:0 12px;background:linear-gradient(180deg,#141d26,#0e1620);border-bottom:1px solid #5b6766}
.bp-arena[data-phase="PREP"]>.bp-standings>.bp-standings-shell,.bp-arena[data-phase="INCOME"]>.bp-standings>.bp-standings-shell,.bp-arena[data-phase="PREP"]>.bp-standings>.bp-standings-spectators{display:none}
.bp-arena[data-phase="PREP"] .bp-standings-list,.bp-arena[data-phase="INCOME"] .bp-standings-list{position:static;display:contents}
.bp-arena[data-phase="PREP"]>.bp-arena-traits,.bp-arena[data-phase="INCOME"]>.bp-arena-traits{grid-area:traits;position:relative;z-index:2;margin-top:12px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:12px;border:5px solid #9d5524;border-radius:18px;background:linear-gradient(#783a1c,#51220f);box-shadow:inset 0 0 0 2px var(--gold-400,#e8a445),inset 0 0 18px #301006,0 10px 24px rgba(0,0,0,.42);border-bottom-width:5px}
.bp-arena[data-phase="PREP"] .bp-traits-head,.bp-arena[data-phase="INCOME"] .bp-traits-head{display:block}
.bp-arena[data-phase="PREP"] .bp-strip-label,.bp-arena[data-phase="INCOME"] .bp-strip-label{display:none}
.bp-arena[data-phase="PREP"] .bp-trait-list,.bp-arena[data-phase="INCOME"] .bp-trait-list{grid-auto-flow:row;grid-auto-columns:auto;grid-auto-rows:min-content;align-content:start;overflow-y:auto}
.bp-traits-head>h2,.bp-prep-panel>header h2,.bp-arena-toys>header>h2{margin:2px 0 0;color:var(--cream-100,#fff7e2);font:700 1.3rem var(--font-display);line-height:1;text-shadow:0 3px 0 #361108}
.bp-traits-head>.bp-kick,.bp-prep-panel .bp-kick,.bp-arena-toys .bp-kick{display:block;color:var(--gold-200,#ffe9b1);font:1000 .58rem var(--font-ui);letter-spacing:.13em}
.bp-traits-head>small{display:none}
.bp-arena[data-phase="PREP"]>.bp-arena-field,.bp-arena[data-phase="INCOME"]>.bp-arena-field,.bp-arena[data-phase="RESOLVE"]>.bp-arena-field,.bp-arena[data-phase="PARADE"]>.bp-arena-field{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.bp-arena[data-phase="PREP"]>.bp-arena-controls,.bp-arena[data-phase="INCOME"]>.bp-arena-controls{grid-area:controls;position:relative;z-index:2;margin-top:12px}
.bp-arena[data-phase="PREP"]>.bp-arena-toys,.bp-arena[data-phase="INCOME"]>.bp-arena-toys{grid-area:toys;position:relative;z-index:2;margin-top:12px;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:8px;padding:12px}
.bp-arena[data-phase="PREP"] .bp-ribbon-pairing{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0}
.bp-ribbon-pairing>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:1000 .8rem var(--font-ui);letter-spacing:.03em}
.bp-arena[data-phase="PREP"] .bp-ribbon-economy,.bp-arena[data-phase="INCOME"] .bp-ribbon-economy{display:flex;align-items:center;gap:8px}
.bp-arena[data-phase="PREP"] .bp-bar-you,.bp-arena[data-phase="INCOME"] .bp-bar-you,.bp-arena[data-phase="RESOLVE"] .bp-bar-you,.bp-arena[data-phase="PARADE"] .bp-bar-you{padding:0;gap:9px;align-items:baseline}
.bp-arena:not([data-phase="BATTLE"]) .bp-bar-you,.bp-arena:not([data-phase="BATTLE"]) .bp-emote-avatar,.bp-arena:not([data-phase="BATTLE"]) .bp-bar-health,.bp-arena:not([data-phase="BATTLE"]) .bp-bar-score,.bp-arena:not([data-phase="BATTLE"]) .bp-bar-hp{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;padding:0;border:0}
.bp-arena:not([data-phase="BATTLE"]) .bp-bar-foe{display:none}
.bp-arena:not([data-phase="BATTLE"]) .bp-bar-center{grid-column:auto;display:flex;align-items:baseline;gap:9px;padding:0;text-align:left;justify-self:start}
.bp-arena:not([data-phase="BATTLE"]) .bp-bar-center .bp-bar-stage{font:1000 .6rem var(--font-ui);letter-spacing:.12em;color:#f1d371}
.bp-arena:not([data-phase="BATTLE"]) .bp-bar-center .bp-bar-phase{font:1000 .58rem var(--font-ui);letter-spacing:.06em;color:#9fd7e4}
.bp-arena:not([data-phase="BATTLE"]) .bp-bar-center .bp-bar-timer{font:700 1.1rem var(--font-display);line-height:1;color:#ffd36a}
.bp-arena:not([data-phase="BATTLE"]) .bp-arena-bar{grid-template-columns:auto minmax(0,1fr) auto}
.bp-arena:not([data-phase="BATTLE"]) .bp-bar-you{order:1}
.bp-arena:not([data-phase="BATTLE"]) .bp-bar-center{order:1}
.bp-arena:not([data-phase="BATTLE"]) .bp-ribbon-pairing{order:2}
.bp-arena:not([data-phase="BATTLE"]) .bp-ribbon-economy{order:3}
.bp-arena[data-phase="PREP"] .ds-trainer-chip,.bp-arena[data-phase="INCOME"] .ds-trainer-chip{min-height:36px}

/* Prep panels */
.bp-prep{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1.08fr) auto;gap:10px;height:100%;min-height:0}
.bp-prep-panel{position:relative;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:12px}
.bp-shop-panel{grid-template-rows:auto minmax(0,1fr) auto}
.bp-prep-panel>header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.bp-prep-panel>header>p{margin:0;text-align:right;font:800 .62rem var(--font-ui);line-height:1.3;color:#f4d9a9}
.bp-roster-grid{min-height:0;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px;border-radius:6px;outline-offset:5px}
.bp-roster-grid.is-equipping{outline:2px dashed rgba(104,232,255,.55)}
.bp-shop-grid{min-height:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.bp-roster-grid>*,.bp-shop-grid>*{min-height:0;height:100%}
.bp-odds{display:grid;gap:3px;justify-items:end}
.bp-odds>.bp-kick{font-size:.5rem;color:#bd9569}
.bp-odds>div{display:flex;align-items:center;gap:4px}
.bp-odds>div>span{display:grid;justify-items:center;gap:2px;min-width:40px;padding:4px 6px;border-radius:6px;border:1px solid rgba(232,164,69,.55);background:rgba(24,12,6,.6)}
.bp-odds>div>span.is-zero{border-color:rgba(255,231,178,.14);background:transparent;opacity:.38}
.bp-odds b{display:grid;place-items:center;width:15px;height:15px;border-radius:50%;font:1000 .5rem var(--font-ui)}
.bp-odds i{font:1000 .58rem var(--font-ui);font-style:normal;font-variant-numeric:tabular-nums;color:#ffe9b1}
.bp-shop-footer{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.bp-shop-rank{font:1000 .58rem var(--font-ui);letter-spacing:.06em;color:#bd9569}
.bp-shop-interest{margin-left:auto;font:1000 .62rem var(--font-ui);color:#bd9569}
.bp-shop-interest.is-on{color:#baff85}
.bp-sell-target{position:absolute;inset:62px 12px 52px;place-content:center;display:grid;justify-items:center;gap:1px;padding:7px 0;border:2px dashed rgba(255,117,110,.5);border-radius:10px;background:rgba(35,10,10,.5);opacity:0;pointer-events:none;transition:opacity 120ms ease}
.bp-shop-panel[data-sell-active="true"] .bp-sell-target{opacity:1}
.bp-sell-target>span{font:1000 .58rem var(--font-ui);letter-spacing:.12em;color:#ff9d8f}
.bp-sell-target>strong{font:1000 .66rem var(--font-ui);color:#ffe9b1}
.bp-prep-feedback{margin:0;font:1000 .62rem var(--font-ui);letter-spacing:.04em;color:#ffe9b1;text-shadow:0 2px 3px rgba(0,0,0,.6)}
.bp-strategy-modal{position:absolute;inset:0;z-index:40;display:grid;place-items:center;background:rgba(23,26,50,.7)}
.bp-strategy-modal>article{width:min(980px,90%);max-height:90%;overflow:auto;display:grid;gap:12px;padding:22px 26px}
.bp-strategy-modal h2{margin:0;color:#fff8df;font:700 1.8rem var(--font-display);line-height:1;text-shadow:0 3px 0 #361108}
.bp-strategy-modal header>p{margin:6px 0 0;color:#f8d8ac;font:800 .82rem var(--font-ui)}
.bp-strategy-modal>article>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.bp-strategy-modal>article>div>article{display:grid;gap:6px;padding:12px;border-radius:12px;border:2px solid #b3803f;background:rgba(20,10,4,.42);font:800 .74rem var(--font-ui);color:#f4dcb0}
.bp-strategy-modal>article>div>article>strong{color:#ffe9b1;font:1000 .9rem var(--font-ui)}
.bp-strategy-modal select{min-height:36px;border:2px solid #b96b2e;border-radius:9px;background:#fff8e7;color:#35170e;font:1000 .8rem var(--font-ui)}

/* Toy tray */
.bp-arena-toys{display:none}
.bp-toy-list{min-height:0;overflow-y:auto;display:grid;grid-auto-rows:min-content;align-content:start;gap:6px}
.bp-toy-list>p{margin:0;font:800 .68rem var(--font-ui);color:#c8b389}
.bp-toy{display:grid;gap:2px;min-height:44px;padding:7px 9px;border:2px solid #8f4e22;border-radius:10px;background:linear-gradient(#7d411f,#47200f);box-shadow:inset 0 2px 0 rgba(255,211,140,.5);color:#fff6d8;text-align:left;cursor:pointer}
.bp-toy.is-selected{border-color:var(--cyan-400,#67e8f9);background:linear-gradient(#12474f,#0a2b31);box-shadow:0 0 12px rgba(104,232,255,.45);color:#bff6ff}
.bp-toy>strong{font:1000 .68rem var(--font-ui)}
.bp-toy>small{font:800 .56rem var(--font-ui);line-height:1.3;color:#e7cc9d}
.bp-toy.is-selected>small{color:#9fe4f2}
.bp-toy>i{justify-self:start;padding:1px 5px;border-radius:4px;background:rgba(131,213,48,.18);color:#c6f39a;font:1000 .48rem var(--font-ui);font-style:normal;letter-spacing:.1em}
.bp-toy-help{margin:0;font:800 .58rem var(--font-ui);line-height:1.35;color:#e7cc9d}
.bp-toy-actions{display:grid;gap:6px;justify-items:center}
.bp-toy-actions>.ds-button.is-full{display:inline-flex;align-items:center;justify-content:center;gap:8px}

/* ---------- RESOLVE / INCOME / PARADE panels over the shell ---------- */
.bp-arena[data-phase="RESOLVE"],.bp-arena[data-phase="PARADE"]{grid-template-rows:62px minmax(0,1fr);grid-template-columns:minmax(0,1fr);grid-template-areas:"bar" "controls";background:linear-gradient(180deg,#123044,#0a1a26 58%,#061119)}
.bp-arena[data-phase="RESOLVE"]::before,.bp-arena[data-phase="PARADE"]::before{content:"";position:absolute;inset:62px 0 0;background:radial-gradient(ellipse at 50% 26%,rgba(96,196,232,.16),transparent 52%),radial-gradient(ellipse at 88% 78%,rgba(255,176,86,.13),transparent 40%);pointer-events:none}
.bp-arena[data-phase="RESOLVE"]>.bp-arena-bar,.bp-arena[data-phase="PARADE"]>.bp-arena-bar{grid-area:bar;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;padding:0 14px}
.bp-arena[data-phase="RESOLVE"]>.bp-arena-controls,.bp-arena[data-phase="PARADE"]>.bp-arena-controls{grid-area:controls;position:relative;z-index:2}
.bp-arena[data-phase="RESOLVE"]>.bp-arena-traits,.bp-arena[data-phase="PARADE"]>.bp-arena-traits,.bp-arena[data-phase="RESOLVE"]>.bp-standings,.bp-arena[data-phase="PARADE"]>.bp-standings,.bp-arena[data-phase="RESOLVE"]>.bp-arena-toys,.bp-arena[data-phase="PARADE"]>.bp-arena-toys{display:none}
.bp-arena[data-phase="RESOLVE"] .bp-ribbon-pairing,.bp-arena[data-phase="PARADE"] .bp-ribbon-pairing{display:none}
.bp-arena[data-phase="RESOLVE"] .bp-ribbon-economy,.bp-arena[data-phase="PARADE"] .bp-ribbon-economy{display:flex;align-items:center;gap:8px}
.bp-round{position:absolute;inset:0;display:grid;place-items:center;padding:26px;overflow:hidden}
.bp-round-card{width:min(980px,92%);max-height:92%;overflow:auto;display:grid;gap:14px;padding:26px}
.bp-round-card.is-income{width:min(620px,80%);justify-items:center;text-align:center;gap:8px}
.bp-round-card.is-income>strong{color:#baff85;font:700 3rem var(--font-display);line-height:1;text-shadow:0 4px 0 #1d3c0c}
.bp-round-card.is-income>small{font:1000 .7rem var(--font-ui);letter-spacing:.06em;color:#e7cc9d}
.bp-round-card.is-income>p{margin:0;color:#f8d8ac;font:800 .86rem var(--font-ui)}
.bp-round-actions{display:grid;justify-items:center}
.bp-round .ds-resolve{width:auto;max-width:none;margin:0;padding:0;border:0;background:none;box-shadow:none}
.bp-round .ds-resolve-head{display:grid;justify-items:center;gap:4px}
.bp-round .ds-resolve-head>h1{margin:0;color:#baff85;font:700 3.1rem var(--font-display);line-height:.95;text-shadow:0 4px 0 #1d3c0c}
.bp-round .ds-resolve.is-loss .ds-resolve-head>h1{color:#ffb0a4;text-shadow:0 4px 0 #3c1210}
.bp-round .ds-resolve.is-draw .ds-resolve-head>h1{color:#ffe477;text-shadow:0 4px 0 #3c2a10}
.bp-round .ds-resolve-head>p{margin:0;color:#f4d9a9;font:1000 .74rem var(--font-ui);letter-spacing:.1em}
.bp-round .ds-resolve-score{display:flex;align-items:baseline;justify-content:center;gap:16px;padding:10px 0;border-top:1px solid rgba(255,231,178,.28);border-bottom:1px solid rgba(255,231,178,.28)}
.bp-round .ds-resolve-score>b{color:#fff8df;font:700 3rem var(--font-display);line-height:1;font-variant-numeric:tabular-nums}
.bp-round .ds-resolve-score>b.is-foe{color:#ffb0a4}
.bp-round .ds-resolve-score>span{color:#bd9569;font:700 1.8rem var(--font-display)}
.bp-round .ds-resolve-summary{margin:0;text-align:center;color:#e7cc9d;font:800 .78rem var(--font-ui)}
.bp-round .ds-resolve-body{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;min-height:0}
.bp-round .ds-resolve-goals{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.bp-round .ds-resolve-goals>li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 11px;border-radius:9px;border:2px solid #67d8c6;background:rgba(29,90,82,.42)}
.bp-round .ds-resolve-goals>li[data-side="opponent"]{border-color:#c9776c;background:rgba(124,47,38,.4)}
.bp-round .ds-resolve-goals>li>strong{color:#fff3cc;font:1000 .88rem var(--font-ui);text-transform:uppercase}
.bp-round .ds-resolve-goals>li>span{color:#e7cc9d;font:1000 .68rem var(--font-ui);font-variant-numeric:tabular-nums}
.bp-round .ds-resolve-hp{display:grid;align-content:start;gap:8px}
.bp-round .ds-resolve-hp>div[data-testid="resolve-hp-delta"]{display:grid;gap:4px;padding:7px 11px;border-radius:9px;background:rgba(20,10,4,.42);border:1px solid #9a5e2b}
.bp-round .ds-resolve-hp>div>div{display:flex;justify-content:space-between;gap:8px;color:#fff3cc;font:1000 .78rem var(--font-ui);text-transform:uppercase}
.bp-round .ds-resolve-hp>div>div>span{color:#baff85;text-transform:none;font-variant-numeric:tabular-nums}
.bp-round .ds-resolve-hp>div>div>span.is-loss{color:#ffb0a4}
.bp-round .ds-resolve-damage{margin:0;color:#e7cc9d;font:800 .72rem var(--font-ui);line-height:1.35}
.bp-round .ds-resolve-damage>strong{color:#f2d578}
.bp-round .ds-resolve-foot{display:grid;justify-items:center;gap:6px}
.bp-round .gdd-ko{padding:6px 12px;border-radius:999px;background:rgba(124,47,38,.5);color:#ffb0a4;font:1000 .7rem var(--font-ui);letter-spacing:.1em}

.bp-parade{position:absolute;inset:0;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;padding:26px 34px;place-items:stretch}
.bp-parade-status{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center;padding:10px 16px;border-radius:12px;background:rgba(20,10,4,.4);border:1px solid #9a5e2b}
.bp-parade-status>div{display:grid;gap:2px;min-width:0}
.bp-parade-status small{color:#bd9569;font:1000 .56rem var(--font-ui);letter-spacing:.12em}
.bp-parade-status strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffe9b1;font:1000 .8rem var(--font-ui)}
.bp-parade-status strong[data-parade-clock]{color:#ffd36a;font:700 1.6rem var(--font-display);line-height:1;font-variant-numeric:tabular-nums}
.bp-parade-progress{display:block;width:min(150px,28vw);height:6px;overflow:hidden;border-radius:999px;background:#2b160d;box-shadow:inset 0 1px 2px #0008}
.bp-parade-progress>i{display:block;width:calc(var(--parade-progress)*100%);height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff6a3d,#ffd45f);transition:width .15s linear}
.bp-parade-status[data-turn-state="ACTIVE"]{border-color:#ffe16a;box-shadow:0 0 22px #ffcc4055,inset 0 0 16px #ffbe3022}
.bp-parade-ring{min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px}
.bp-parade-pick{position:relative;min-width:0;min-height:0;display:grid;grid-template-columns:38% minmax(0,1fr);align-items:center;gap:8px;padding:9px;border-radius:12px;border:2px solid #c9a24a;background:linear-gradient(180deg,#4a2b52,#231430);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 4px 0 rgba(15,7,3,.55);color:#fff3d4;text-align:left;cursor:pointer}
.bp-parade-pick.is-picked{border-color:#6b5a4a;background:linear-gradient(180deg,#2e2117,#1a1109);box-shadow:none;opacity:.58;filter:grayscale(.6);cursor:not-allowed}
.bp-parade-index{position:absolute;left:7px;top:6px;z-index:2;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#c9a24a;color:#3a1f05;font:1000 .68rem var(--font-ui)}
.bp-parade-art{position:relative;min-width:0;height:100%;display:grid;place-items:end center}
.bp-parade-art>img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 5px 4px rgba(0,0,0,.5))}
.bp-parade-copy{min-width:0;display:grid;gap:4px}
.bp-parade-copy>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:1000 .95rem var(--font-ui);text-transform:uppercase}
.bp-parade-copy>em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffd98a;font:1000 .62rem var(--font-ui);font-style:normal}
.bp-parade-pick.is-picked .bp-parade-copy>em{color:#c8b389}
.bp-parade-note{display:grid;gap:3px;padding:10px 14px;border-radius:11px;border:2px solid #b3803f;background:rgba(20,10,4,.42)}
.bp-parade-note>strong{color:#f2d578;font:1000 .78rem var(--font-ui)}
.bp-parade-note>span{color:#e7cc9d;font:800 .74rem var(--font-ui);line-height:1.35}

/* Emote bubbles anchor to chips and the scorebar seat */
.ds-trainer-chip,.bp-bar-you{position:relative}

/* Shell: the arena keeps the compact route strip below the stage like every other screen */
.gdd-app.screen-arena>.gdd-global-bar{position:static;top:auto;right:auto;left:auto;bottom:auto;width:auto;order:2;z-index:auto}
/* The guided-first-Cup callout floats over the field/roster instead of the scorebar */
.bp-stage>.gdd-ftue-guide{position:absolute;left:50%;top:118px;transform:translateX(-50%);z-index:36;width:auto;max-width:56%;margin:0;padding:6px 14px;display:flex;gap:10px;align-items:center;border-radius:10px;font:800 .7rem var(--font-ui);pointer-events:none}
.bp-stage>.gdd-ftue-guide button{pointer-events:auto}
.bp-arena[data-phase="BATTLE"] .bp-cue{top:56px}

/* Hand cards (HandCard.jsx): painted frame, art above a name bar, mana pip top-right */
.bp-hand-card{position:relative;display:grid;grid-template-rows:minmax(0,1fr) 46px;padding:9px 9px 7px;border:0;background:transparent;color:#fff7df;cursor:grab;overflow:hidden;isolation:isolate;min-height:0;text-align:left}
.bp-hand-card>.bp-card-shell{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0}
.bp-hand-card>*:not(.bp-card-shell){position:relative;z-index:1}
.bp-hand-art{display:grid;place-items:end center;min-height:0;padding:8px 10px 0}
.bp-hand-art>img{max-width:100%;max-height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 4px 3px rgba(0,0,0,.45))}
.bp-hand-card>.gdd-mana-cost{position:absolute;right:11px;top:9px;z-index:2;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#6873eb;border:2px solid #cfd6ff;color:#fff;font:1000 .72rem var(--font-ui);box-shadow:0 2px 8px #151a33aa}
.bp-hand-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:6px;padding:0 8px}
.bp-hand-bar>strong{grid-column:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:1000 .74rem var(--font-ui);text-transform:uppercase;text-shadow:0 2px 0 #361108}
.bp-hand-bar>small{grid-column:1;font:800 .52rem var(--font-ui);color:#e7cc9d;white-space:nowrap}
.bp-hand-bar>.gdd-card-traits{grid-column:2;grid-row:1/3;display:flex;gap:3px}
.bp-hand-card.is-unaffordable{filter:saturate(.35) brightness(.72)}
.bp-hand-card.is-unaffordable>.gdd-mana-cost{background:#8b3a3a;border-color:#f0a8a8}
.bp-hand-card.is-dragging{opacity:.28;filter:grayscale(1) saturate(.25);outline:2px dashed #dfe8e5;outline-offset:-5px}
.bp-hand-card>.gdd-puppy-detail{display:none}
.bp-hand-card:hover>.gdd-puppy-detail,.bp-hand-card:focus-visible>.gdd-puppy-detail{display:grid}
/* NEXT preview: keep the legacy hook class for tests, but paint it as the DS tile */
.bp-next.gdd-preview-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;place-items:center;gap:2px;padding:8px 8px 6px;border:0;background:transparent;min-height:0;isolation:isolate}
.bp-next.gdd-preview-card>.gdd-next-shell{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0}
.bp-next.gdd-preview-card>*:not(.gdd-next-shell){position:relative;z-index:1}
.bp-next>small{position:static;font:1000 .5rem var(--font-ui);letter-spacing:.1em;color:#ffd36a}
.bp-next>.gdd-preview-art{position:static;width:100%;height:100%;min-height:0;display:grid;place-items:end center;background:none;overflow:hidden}
.bp-next>.gdd-preview-art>img{max-width:82%;max-height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 3px 3px rgba(0,0,0,.45))}
.bp-next>.gdd-preview-info{display:grid;justify-items:center;gap:1px;max-width:100%}
.bp-next>.gdd-preview-info>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font:1000 .58rem var(--font-ui);text-shadow:0 1px 2px #000}
.bp-next>.gdd-preview-info>small{font:800 .46rem var(--font-ui);color:#e7cc9d;white-space:nowrap}
.bp-next>.gdd-preview-info>.gdd-card-traits{display:flex;gap:3px}
.bp-next>.gdd-puppy-detail{display:none!important}
.bp-hand-art{overflow:hidden}
.bp-hand-art>img{height:100%;width:auto;max-width:100%}
.bp-arena[data-phase="BATTLE"] .bp-standings .ds-trainer-avatar{width:30px;height:30px}
.bp-standings .ds-trainer-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 32%}
.bp-next>.gdd-preview-info>.gdd-card-traits{display:flex;flex-wrap:wrap;justify-content:center;gap:3px}
.bp-hand-art{position:relative;min-height:0}
.bp-hand-art>img{position:absolute;inset:6px 8px 0;width:calc(100% - 16px);height:calc(100% - 6px);max-width:none;object-fit:contain;object-position:center bottom}
.bp-next>.gdd-preview-art{position:relative}
.bp-next>.gdd-preview-art>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center bottom}
.bp-stage:has(.bp-arena[data-phase="RESOLVE"])>.gdd-ftue-guide,.bp-stage:has(.bp-arena[data-phase="PARADE"])>.gdd-ftue-guide{display:none}
/* Resolve card compaction so 8 HP rows + goals fit the 900px stage without scrolling */
.bp-round-card{padding:16px 22px;gap:8px}
.bp-round .ds-resolve{display:grid;gap:8px}
.bp-round .ds-resolve-head{gap:2px}
.bp-round .ds-resolve-head>h1{font-size:2.4rem}
.bp-round .ds-resolve-score{padding:6px 0;gap:12px}
.bp-round .ds-resolve-score>b{font-size:2.2rem}
.bp-round .ds-resolve-body{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:12px}
.bp-round .ds-resolve-goals>li{padding:4px 9px}
.bp-round .ds-resolve-goals>li>strong{font-size:.78rem}
.bp-round .ds-resolve-hp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;align-content:start}
.bp-round .ds-resolve-hp>div[data-testid="resolve-hp-delta"]{padding:4px 8px;gap:2px}
.bp-round .ds-resolve-hp>div>div{font-size:.66rem}
.bp-round .ds-resolve-damage,.bp-round .ds-resolve-hp>div:last-child{grid-column:1/-1}
.bp-round .ds-resolve-hp>div:last-child{display:flex;justify-content:flex-end}
.bp-round .ds-resolve.is-compact .ds-resolve-body,.bp-round .ds-resolve .ds-resolve-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:12px;min-height:0}
.bp-round .ds-resolve.is-compact .ds-resolve-hp,.bp-round .ds-resolve .ds-resolve-hp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;align-content:start}
.bp-round .ds-resolve.is-compact .ds-resolve-goals{display:grid;gap:5px;align-content:start;max-height:none;overflow:visible}
.bp-round .ds-resolve .ds-resolve-hp>div:last-child{padding:0;border:0;background:none}
.bp-next>.gdd-preview-info>strong{text-transform:uppercase}
/* In-Cup menu: the only way out of a live Cup (routes through the abandonment policy) */
.bp-arena-menu{position:absolute;right:10px;top:50%;z-index:32;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;padding:0;border:2px solid #7b6a3c;border-radius:12px;background:linear-gradient(#3b2a20,#1d130d);cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.45)}
.bp-arena-menu>img{width:26px;height:26px;object-fit:contain}
.bp-arena[data-phase="BATTLE"] .bp-bar-foe{padding-right:64px}
.bp-arena:not([data-phase="BATTLE"]) .bp-ribbon-economy{padding-right:54px}
.bp-bar-hp>small,.bp-bar-hp.is-foe>small{text-transform:uppercase}
.bp-parade-copy>em{text-transform:uppercase}
.bp-portal-copy.is-own{left:max(15.5%,236px)}

/* ---------- DS components in the dock and trait rail (HandCard / ManaMeter / TraitRow) ---------- */
.bp-mana{display:grid;place-items:center;align-content:center;padding:0;max-width:250px;width:100%;justify-self:center}
.bp-mana>.ds-mana.is-framed{width:100%}
.bp-hand>.ds-hand-card{height:100%;min-height:0}
.ds-trait-row{position:relative}
.bp-trait-flyout{position:absolute;z-index:45;display:none;gap:6px;width:270px;padding:9px 11px;border-radius:10px;border:1px solid #7b6a3c;background:rgba(11,25,20,.96);color:#e7f0ec;font:800 .6rem var(--font-ui);text-align:left;text-transform:none;letter-spacing:0;box-shadow:0 8px 20px rgba(0,0,0,.55);pointer-events:none}
.ds-trait-row:hover>.bp-trait-flyout,.ds-trait-row:focus-visible>.bp-trait-flyout{display:grid}
.bp-trait-flyout-head{display:grid;gap:2px}
.bp-trait-flyout-head>strong{color:#f1d371;font:1000 .62rem var(--font-ui)}
.bp-trait-flyout-head>small,.bp-trait-flyout-head>em{color:#c9d6d2;font:800 .56rem var(--font-ui);font-style:normal}
.bp-trait-flyout-tiers{display:grid;gap:3px}
.bp-trait-flyout-tiers>span{display:grid;grid-template-columns:18px minmax(0,1fr);gap:6px;align-items:baseline;color:#aebbb7}
.bp-trait-flyout-tiers>span.is-reached{color:#fff3d0}
.bp-trait-flyout-tiers>span>b{color:#f1d371}
/* Battle strip: rows fill the 44px band, flyout drops below */
.bp-arena[data-phase="BATTLE"] .bp-trait-list>.ds-trait-row{height:100%;min-height:0}
.bp-arena[data-phase="BATTLE"] .bp-trait-flyout{left:0;top:calc(100% + 6px)}
/* Prep rail: rows stack, flyout opens to the right of the panel */
.bp-arena[data-phase="PREP"] .bp-trait-list,.bp-arena[data-phase="INCOME"] .bp-trait-list{overflow:visible;gap:5px}
.bp-arena[data-phase="PREP"] .bp-trait-flyout,.bp-arena[data-phase="INCOME"] .bp-trait-flyout{left:calc(100% + 10px);top:-4px}
.bp-arena[data-phase="PREP"]>.bp-arena-traits,.bp-arena[data-phase="INCOME"]>.bp-arena-traits{overflow:visible}
/* Dock cells never exceed the 180px controls row */
.bp-battle-controls{grid-template-rows:minmax(0,1fr);align-items:stretch}
.bp-hand>.ds-hand-card{aspect-ratio:auto;height:100%;max-height:100%}
.bp-mana{max-width:246px;height:100%}
.bp-mana>.ds-mana.is-framed{max-height:100%}
.bp-next-dispose{height:100%}

/* ==========================================================================================
   BATTLE — composed on the painted key art (project/uploads/exec-f633…png @ 1600×900):
   field full-bleed · duel plaque (duel-frame.png) top-centre · trait pill under it ·
   standings panel left · painted dock foundation (bottom-foundation.png) with wells.
   Loaded after the phase grid above, so these override the strip/bar rows for BATTLE.
   ========================================================================================== */
.bp-arena[data-phase="BATTLE"]{grid-template-rows:minmax(0,1fr) 290px;grid-template-areas:"field" "controls"}
.bp-arena[data-phase="BATTLE"]>.bp-arena-bar{position:absolute;z-index:30;left:50%;top:-56px;width:720px;height:245px;transform:translateX(-50%);grid-template-columns:none;display:block;background:none;border:0;box-shadow:none;pointer-events:none}
.bp-arena[data-phase="BATTLE"]>.bp-arena-bar>*{pointer-events:auto}
.bp-duel-shell{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.bp-arena[data-phase="BATTLE"] .bp-duel-shell{display:block}
.bp-arena[data-phase="BATTLE"] .bp-bar-you,.bp-arena[data-phase="BATTLE"] .bp-bar-foe{position:absolute;top:0;height:100%;width:50%;padding:0;display:block}
.bp-arena[data-phase="BATTLE"] .bp-bar-you{left:0}
.bp-arena[data-phase="BATTLE"] .bp-bar-foe{right:0}
.bp-arena[data-phase="BATTLE"] .bp-emote-avatar{position:absolute;top:32.5%;width:10%;aspect-ratio:1;height:auto;border-width:0;background:radial-gradient(circle at 50% 38%,#1d5a52 0 58%,#0d2b28 100%);box-shadow:0 0 0 3px rgba(255,214,140,.25)}
.bp-arena[data-phase="BATTLE"] .bp-bar-you .bp-emote-avatar{left:4.9%}
.bp-arena[data-phase="BATTLE"] .bp-bar-foe .bp-emote-avatar{right:4.9%;left:auto}
.bp-arena[data-phase="BATTLE"] .bp-bar-hp{position:absolute;top:31%;width:33%;display:grid;gap:0}
.bp-arena[data-phase="BATTLE"] .bp-bar-you .bp-bar-hp{left:27%;text-align:left}
.bp-arena[data-phase="BATTLE"] .bp-bar-foe .bp-bar-hp{right:27%;text-align:right}
.bp-arena[data-phase="BATTLE"] .bp-bar-hp>small{color:#fff3cc;font:1000 .78rem var(--font-ui);letter-spacing:.06em;max-width:none;text-shadow:0 2px 0 #2a1208}
.bp-arena[data-phase="BATTLE"] .bp-bar-hp>strong{font:700 2.1rem var(--font-display);color:#fff8df;text-shadow:0 3px 0 #2a1208}
.bp-arena[data-phase="BATTLE"] .bp-bar-health{position:absolute;top:62.5%;width:33%;height:5.4%}
.bp-arena[data-phase="BATTLE"] .bp-bar-you .bp-bar-health{left:27%}
.bp-arena[data-phase="BATTLE"] .bp-bar-foe .bp-bar-health{right:27%}
.bp-arena[data-phase="BATTLE"] .bp-bar-health,.bp-arena[data-phase="BATTLE"] .bp-bar-health i{height:100%;border-radius:999px}
.bp-arena[data-phase="BATTLE"] .bp-bar-health i>b{background:linear-gradient(180deg,#ff6a5c,#c81f2a)}
.bp-arena[data-phase="BATTLE"] .bp-bar-score{position:absolute;top:69%;font-size:.58rem;padding:1px 6px;background:rgba(0,0,0,.35)}
.bp-arena[data-phase="BATTLE"] .bp-bar-you .bp-bar-score{left:27%}
.bp-arena[data-phase="BATTLE"] .bp-bar-foe .bp-bar-score{right:27%}
.bp-arena[data-phase="BATTLE"] .bp-bar-center{position:absolute;left:32.5%;width:35%;top:19%;height:57%;padding:0;display:grid;align-content:center;gap:0}
.bp-arena[data-phase="BATTLE"] .bp-bar-stage{font:1000 .72rem var(--font-ui);color:#f1d371}
.bp-arena[data-phase="BATTLE"] .bp-bar-phase{font:700 1.55rem var(--font-display);color:#fff8df;text-shadow:0 3px 0 #2a1208}
.bp-arena[data-phase="BATTLE"] .bp-bar-timer{font:700 1.7rem var(--font-display);color:#fff8df;text-shadow:0 3px 0 #2a1208}
.bp-arena[data-urgency="critical"][data-phase="BATTLE"] .bp-bar-timer,.bp-arena[data-urgency="warning"][data-phase="BATTLE"] .bp-bar-timer{color:#ffd36a}
.bp-arena[data-phase="BATTLE"] .bp-bar-banner{position:absolute;left:50%;top:79%;transform:translateX(-50%);white-space:nowrap}
.bp-arena[data-phase="BATTLE"] .bp-arena-menu{position:fixed;right:22px;top:24px;transform:none;width:64px;height:64px;border-radius:50%;border:4px solid #b96b2e;background:radial-gradient(circle at 50% 35%,#8a4a24,#4a2412 70%);box-shadow:0 4px 0 #2a1208,0 8px 14px rgba(0,0,0,.45)}
.bp-arena[data-phase="BATTLE"] .bp-arena-menu>img{width:34px;height:34px}
.bp-arena[data-phase="BATTLE"] .bp-network{top:96px;right:22px}
/* Trait pill under the plaque */
.bp-arena[data-phase="BATTLE"]>.bp-arena-traits{position:absolute;z-index:29;left:50%;top:142px;transform:translateX(-50%);width:auto;min-width:420px;max-width:760px;height:40px;padding:3px 12px;border-radius:12px;border:2px solid #8c5a2a;background:rgba(18,12,8,.9);box-shadow:0 4px 12px rgba(0,0,0,.5);gap:6px}
.bp-arena[data-phase="BATTLE"] .bp-strip-label{display:none}
.bp-arena[data-phase="BATTLE"] .bp-trait-list{grid-auto-columns:max-content;align-items:center}
.bp-arena[data-phase="BATTLE"] .bp-trait-list>.ds-trait-row{height:30px;min-height:0;padding:0 8px 0 2px;grid-template-columns:24px 16px auto;gap:5px;border-color:transparent;background:transparent}
.bp-arena[data-phase="BATTLE"] .ds-trait-row-ladder{display:none}
.bp-arena[data-phase="BATTLE"] .ds-trait-row-crest{width:22px;height:22px;font-size:.7rem}
.bp-arena[data-phase="BATTLE"] .bp-trait-empty{font-size:.62rem;white-space:nowrap}
/* Standings panel left, over the field */
.bp-arena[data-phase="BATTLE"]>.bp-standings{left:8px;top:96px;bottom:auto;width:214px;height:576px;aspect-ratio:auto}
.bp-arena[data-phase="BATTLE"] .bp-standings-list{inset:6.5% 9% 7%;gap:2%}
/* Field full-bleed; portal copy sits under the pill */
.bp-arena[data-phase="BATTLE"] .bp-portal-copy{top:198px}
.bp-arena[data-phase="BATTLE"] .bp-cue{top:196px}
.bp-arena[data-phase="BATTLE"] .bp-lanes{inset:26% 14% 4% 21%}
.bp-stage>.gdd-ftue-guide{top:200px}
/* Painted dock foundation with wells */
.bp-arena[data-phase="BATTLE"] .bp-battle-controls{position:relative;display:block;padding:0;background:none;box-shadow:none}
.bp-dock-shell{display:none;position:absolute;left:0;top:-63.4%;width:100%;height:auto;pointer-events:none;z-index:0}
.bp-arena[data-phase="BATTLE"] .bp-dock-shell{display:block}
.bp-arena[data-phase="BATTLE"] .bp-battle-controls>*:not(.bp-dock-shell){position:absolute;z-index:1}
.bp-arena[data-phase="BATTLE"] .bp-mana{left:1.6%;width:18.3%;top:6%;height:82%;max-width:none;justify-self:auto;display:grid;align-content:center;padding:8px 16px}
.bp-arena[data-phase="BATTLE"] .bp-mana>.ds-mana{padding:0;gap:6px}
.bp-arena[data-phase="BATTLE"] .bp-mana .ds-mana-label{font-size:.9rem;color:#fff3cc;text-shadow:0 2px 0 #2a1208}
.bp-arena[data-phase="BATTLE"] .bp-mana .ds-mana-readout{font-size:2.6rem}
.bp-arena[data-phase="BATTLE"] .bp-mana .ds-mana-pips>i{width:16px;height:16px}
.bp-arena[data-phase="BATTLE"] .bp-mana .ds-mana-rate{font-size:.7rem;color:#8fe5ff}
.bp-arena[data-phase="BATTLE"] .bp-hand{left:22.2%;width:51.9%;top:8.5%;height:77.5%;padding:0;gap:2.3%}
.bp-arena[data-phase="BATTLE"] .bp-hand>.ds-hand-card{background:transparent;box-shadow:none}
.bp-arena[data-phase="BATTLE"] .bp-hand>.ds-hand-card.is-selected{box-shadow:0 0 0 3px var(--cyan-400,#68e8ff),0 0 14px rgba(99,234,255,.6)}
.bp-arena[data-phase="BATTLE"] .bp-hand>.ds-hand-card .ds-hand-art{background:transparent;margin:3% 4% 0}
.bp-arena[data-phase="BATTLE"] .bp-hand>.ds-hand-card .ds-hand-bar{margin:0 4% 4%;background:rgba(12,17,32,.6)}
.bp-arena[data-phase="BATTLE"] .bp-next-dispose{display:contents}
.bp-arena[data-phase="BATTLE"] .bp-next{left:76.1%;width:7.6%;top:8.5%;height:77.5%;padding:4px}
.bp-arena[data-phase="BATTLE"] .bp-next>.gdd-next-shell{display:none}
.bp-arena[data-phase="BATTLE"] .bp-next>small{color:#fff3cc;font-size:.62rem}
.bp-arena[data-phase="BATTLE"] .bp-next>.gdd-preview-info>.gdd-card-traits,.bp-arena[data-phase="BATTLE"] .bp-next>.gdd-preview-info>small{display:none}
.bp-arena[data-phase="BATTLE"] .bp-dispose{left:85.2%;width:13.4%;top:4.2%;height:67.6%;display:grid;grid-template-rows:auto 1fr;justify-items:center;padding:8px}
.bp-arena[data-phase="BATTLE"] .bp-dispose>.gdd-dispose-shell,.bp-arena[data-phase="BATTLE"] .bp-dispose>small{display:none}
.bp-arena[data-phase="BATTLE"] .bp-dispose>strong{position:static;order:-1;font:1000 .88rem var(--font-ui);color:#fff3cc;text-shadow:0 2px 0 #4a0d10}
.bp-arena[data-phase="BATTLE"] .bp-dispose>.bp-dispose-icon{margin:0;width:56px;height:56px}
.bp-pack-info{display:none;left:86%;width:12.8%;top:75.2%;height:24.8%;padding:0;border:0;background:transparent;color:#fff3cc;font:1000 .78rem var(--font-ui);letter-spacing:.04em;text-shadow:0 2px 0 #2a1208;cursor:pointer}
.bp-arena[data-phase="BATTLE"] .bp-pack-info{display:block}
/* key-art fixes */
.bp-arena[data-phase="BATTLE"] .bp-bar-health,.bp-arena[data-phase="BATTLE"] .bp-bar-health i{height:auto}
.bp-arena[data-phase="BATTLE"] .bp-bar-health{--ds-height:11px}
.bp-arena[data-phase="BATTLE"] .bp-bar-health>i{height:11px;border-color:#3a1208;background:#3a1208}
.bp-arena[data-phase="BATTLE"] .bp-next,.bp-arena[data-phase="BATTLE"] .bp-dispose,.bp-arena[data-phase="BATTLE"] .bp-pack-info{position:absolute;z-index:1}
.bp-arena[data-phase="BATTLE"] .bp-next .gdd-card-traits{display:none}
.bp-arena[data-phase="BATTLE"] .bp-arena-menu{position:absolute;top:80px;right:calc(-1 * (var(--stage-w,1600px) - 720px) / 2 + 22px)}
.bp-arena[data-phase="BATTLE"] .bp-network{top:152px;right:calc(-1 * (var(--stage-w,1600px) - 720px) / 2 + 22px);margin:0}
.bp-arena[data-phase="BATTLE"] .bp-standings-list{inset:6% 9% 9.5%;gap:1.5%}
.bp-arena[data-phase="BATTLE"] .bp-standings .ds-trainer-chip{min-height:0;height:100%;padding:2px 6px;overflow:hidden}
.bp-arena[data-phase="BATTLE"] .bp-next>.gdd-preview-info>:not(strong){display:none}
.bp-arena[data-phase="BATTLE"]{grid-template-rows:minmax(0,1fr) calc(var(--stage-w,1600px) * 0.18125)}
.bp-arena[data-phase="BATTLE"] .bp-next .gdd-card-traits,.bp-arena[data-phase="BATTLE"] .bp-next .gdd-preview-info>small{display:none!important}
.bp-arena[data-phase="BATTLE"]{grid-template-rows:minmax(0,1fr) min(calc(var(--stage-w,1600px) * 0.18125),290px)}
.bp-arena[data-phase="BATTLE"] .bp-dock-shell{height:223.4%;object-fit:fill}
.bp-arena[data-phase="BATTLE"]>.bp-standings{height:500px}
.bp-arena[data-phase="BATTLE"] .bp-standings-shell{object-fit:fill}
/* Prep cards (PrepScreen.jsx): DS PuppyCards fill their grid cells; empty slot + adopted well per the mock */
.bp-roster-grid>.ds-puppy-card,.bp-shop-grid>.ds-puppy-card{height:100%;min-height:0;width:100%}
.bp-slot-empty{display:grid;place-items:center;align-content:center;gap:3px;border:2px dashed #a3703c;border-radius:12px;background:rgba(24,12,6,.5);color:#bd9569}
.bp-slot-empty>b{font:1000 .78rem var(--font-ui)}
.bp-slot-empty>small{font:1000 .52rem var(--font-ui);letter-spacing:.1em}
.bp-adopted.ds-puppy-card.is-sold{display:grid;place-items:center;border:2px dashed #6f5a7a;border-radius:12px;background:rgba(18,10,22,.55);color:#9c8bb0;font:1000 .56rem var(--font-ui);letter-spacing:.12em}
.ds-puppy-card>.gdd-puppy-detail{display:none}
.ds-puppy-card:hover>.gdd-puppy-detail,.ds-puppy-card:focus-visible>.gdd-puppy-detail,.ds-puppy-card.is-detail-open>.gdd-puppy-detail{display:grid}
.ds-puppy-card.is-selling{opacity:.35;filter:grayscale(1)}
/* Sell sheet = DS Dialog (PrepScreen.jsx inspect dialog) */
.gdd-roster-sell-backdrop{position:absolute;inset:0;z-index:80}
.gdd-roster-sell-backdrop>.ds-dialog-backdrop{position:absolute;inset:0;display:grid;place-items:center;background:rgba(23,26,50,.7)}
.bp-sell-body{display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px;align-items:center;text-align:left}
.bp-sell-art{position:relative;display:grid;place-items:center;height:132px;border-radius:12px;background:radial-gradient(ellipse at 50% 112%,#6b3f66,#241428 62%,#180f1c)}
.bp-sell-art>img{width:92%;height:92%;object-fit:contain;object-position:center bottom}
.bp-sell-art>b{position:absolute;right:6px;top:5px;color:#ffe26e;font:1000 .8rem var(--font-ui)}
.bp-sell-copy{display:grid;gap:6px}
.bp-sell-copy>p{margin:0}
.bp-sell-ability{font:1000 .78rem var(--font-ui);color:#fff3d4}
.bp-sell-ability>span{color:#f2d578}
.bp-sell-text{font:800 .72rem var(--font-ui);line-height:1.38;color:#e3d6c0}
.bp-sell-copy>.gdd-roster-sell-toy,.bp-sell-copy>.gdd-roster-sell-pool{margin:0;font:800 .68rem var(--font-ui);line-height:1.38;color:#c8b389}
.bp-sell-copy>small{font:800 .62rem var(--font-ui);color:#a98b62}
/* Ribbon stage · round (PrepScreen.jsx: small STAGE n, big n-n; ArenaScreen: "STAGE n-n" kicker) */
.bp-bar-stage>i{font-style:normal}
.bp-arena:not([data-phase="BATTLE"]) .bp-bar-stage{display:inline-flex;align-items:baseline;gap:9px}
.bp-arena:not([data-phase="BATTLE"]) .bp-bar-stage>b{font:700 1.5rem var(--font-display);line-height:1;color:#fff8df;text-shadow:0 3px 0 #361108;letter-spacing:0}
.bp-arena[data-phase="BATTLE"] .bp-bar-stage>i::after{content:" "}
.bp-arena[data-phase="BATTLE"] .bp-bar-stage>i{display:none}
.bp-arena[data-phase="BATTLE"] .bp-bar-stage>b::before{content:"STAGE "}
/* Key-art clearance: the plaque + trait pill own the top ~200px, so the lanes (canvas) and the painted field
   shift down together and the cue/feedback live at the dock edge. */
.bp-arena[data-phase="BATTLE"] .bp-cue{top:auto;bottom:52px}
.bp-arena[data-phase="BATTLE"] .bp-battle-feedback{bottom:12px}
.bp-arena[data-phase="BATTLE"] .bp-portal-copy{top:150px}
.bp-arena[data-phase="BATTLE"] .bp-network{left:auto;width:auto;max-width:280px;top:96px}
.bp-stage:has(.bp-arena[data-phase="BATTLE"])>.gdd-ftue-guide{top:150px}

/* Lesson HUD (onboarding spec §3): objective + why over the arena; never intercepts input. */
.bp-stage>.bp-lesson-hud{position:absolute;left:50%;top:118px;transform:translateX(-50%);z-index:37;width:auto;max-width:58%;margin:0;display:grid;gap:1px;justify-items:center;padding:8px 18px 9px;border:3px solid #ffd078;border-radius:14px;background:linear-gradient(#5f331e,#2a160d);box-shadow:inset 0 0 0 2px rgba(255,214,120,.35),0 10px 24px rgba(0,0,0,.5);color:#fff3cc;text-align:center;pointer-events:none}
.bp-lesson-hud>.bp-lesson-kick{color:#ffd078;font:1000 .56rem var(--font-ui);letter-spacing:.14em}
.bp-lesson-hud>strong{font:1000 .9rem/1.15 var(--font-ui)}
.bp-lesson-hud>small{color:#f3dcb0;font:var(--weight-body) .68rem/1.25 var(--font-ui)}
.bp-lesson-hud>.bp-lesson-retry{color:#ffb0bb}
.bp-lesson-hud>[data-lesson-continue]{pointer-events:auto;min-height:calc(44px / var(--stage-scale,1));padding:8px 24px;border:2px solid #ffd078;border-radius:8px;background:linear-gradient(#ffda70,#e49a26);color:#3b1c0b;font-weight:900;cursor:pointer}
.bp-lesson-hud>[data-lesson-continue]:disabled{opacity:.65;cursor:default}
.bp-lesson-hud[data-status="COMPLETE"]{border-color:#83d530}
.bp-lesson-hud[data-status="EXPIRED"]{border-color:#ff5c73}
.bp-lesson-steps{display:flex;gap:5px;margin-top:3px}
.bp-lesson-steps>i{width:9px;height:9px;border-radius:50%;border:2px solid #ffd078;background:transparent}
.bp-lesson-steps>i.is-done{background:#83d530;border-color:#83d530}
.bp-lesson-steps>i.is-current{background:#ffd078;box-shadow:0 0 8px #ffd078}
/* The control the current step asks for: ring + label, so the cue is not colour-only. */
.is-lesson-target{outline:4px solid #ffd078;outline-offset:4px;box-shadow:0 0 0 8px rgba(255,214,120,.22),0 0 26px #ffd078;animation:bp-lesson-pulse 1s ease-in-out infinite alternate}
.is-lesson-target:not(.bp-lanes):not(.bp-portal-copy):not(.bp-arena-traits):not(.bp-arena-toys):not(.bp-bar-timer):not(.bp-bar-banner){position:relative}
.is-lesson-target::after{content:'HERE';position:absolute;left:50%;top:-8px;z-index:5;transform:translate(-50%,-100%);padding:2px 9px;border-radius:6px;background:#ffd078;color:#3a1f0d;font:1000 .56rem var(--font-ui);letter-spacing:.12em;white-space:nowrap;pointer-events:none}
.bp-bar-timer.is-lesson-target::after,.bp-bar-banner.is-lesson-target::after{top:auto;bottom:-6px;transform:translate(-50%,100%)}
.bp-lanes.is-lesson-target{outline:0;box-shadow:none}
.bp-lanes.is-lesson-target>.bp-lane{outline:4px solid #ffd078;outline-offset:2px;box-shadow:0 0 22px #ffd078;animation:bp-lesson-pulse 1s ease-in-out infinite alternate}
.bp-lanes.is-lesson-target::after{top:-2px}
@keyframes bp-lesson-pulse{from{outline-color:#ffd078}to{outline-color:#fff8e0;box-shadow:0 0 0 10px rgba(255,214,120,.3),0 0 34px #ffd078}}
@media (prefers-reduced-motion:reduce){.is-lesson-target,.bp-lanes.is-lesson-target>.bp-lane{animation:none}}

/* Finished-battle wait panel (onboarding spec §5): centered over a dimmed field, never over controls. */
.bp-arena-field[data-waiting="true"]>canvas{filter:brightness(.45) saturate(.6);transition:filter .3s ease}
.bp-wait-panel{position:absolute;left:50%;top:50%;z-index:8;transform:translate(-50%,-50%);width:min(520px,72%);display:grid;justify-items:center;gap:6px;margin:0;padding:18px 26px 20px;border:4px solid #ffd078;border-radius:18px;background:linear-gradient(#5f331e,#2a160d);box-shadow:inset 0 0 0 2px rgba(255,214,120,.35),0 16px 40px rgba(0,0,0,.6);color:#fff3cc;text-align:center;pointer-events:none}
.bp-wait-panel>.bp-kick{color:#ffd078;font:1000 .6rem var(--font-ui);letter-spacing:.16em}
.bp-wait-panel>strong{font:1000 1.5rem/1 var(--font-display);text-shadow:0 3px 0 #2b1430}
.bp-wait-panel>b{padding:2px 12px;border-radius:999px;background:rgba(0,0,0,.35);font:1000 .74rem var(--font-ui);letter-spacing:.06em;font-variant-numeric:tabular-nums}
.bp-wait-panel>p{margin:2px 0 0;color:#f3dcb0;font:var(--weight-body) .82rem/1.35 var(--font-ui)}
.bp-wait-panel[data-outcome="WIN"]{border-color:#83d530}
.bp-wait-panel[data-outcome="WIN"]>strong{color:#c8ff8a}
.bp-wait-panel[data-outcome="LOSS"]{border-color:#ff5c73}
.bp-wait-panel[data-outcome="LOSS"]>strong{color:#ffb0bb}
.bp-wait-spinner{width:22px;height:22px;margin-top:4px;border-radius:50%;border:3px solid rgba(255,214,120,.25);border-top-color:#ffd078;animation:bp-wait-spin 1s linear infinite}
@keyframes bp-wait-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.bp-wait-spinner{animation:none}}
/* Golden Goal: the whole bar says so, the timer shows the overtime clock, the mana meter says ×2. */
.bp-arena[data-urgency="overtime"] .bp-bar-banner{display:inline-block;color:#ffd078;text-shadow:0 0 12px #ffd078,0 2px 0 #4b2a24;animation:bp-lesson-pulse 1s ease-in-out infinite alternate}
.bp-arena[data-urgency="overtime"] .bp-bar-timer{color:#ffd078}
.bp-arena[data-urgency="overtime"] .bp-mana .ds-mana-rate{color:#ffd078}
/* Parade: your own pick and a server auto-pick are both named, not just greyed. */
.bp-parade-pick.is-yours{opacity:.95;filter:none;border-color:#ffd078;box-shadow:inset 0 0 0 2px rgba(255,214,120,.45)}
.bp-parade-pick[data-picked-automatic="true"] .bp-parade-copy>em{color:#ffb0bb}
.bp-parade-status[data-pick-outcome="AUTO_PICKED"]{border-color:#ff5c73}
.bp-parade-status[data-pick-outcome="CONFIRMED"]{border-color:#83d530}

/* Prep guidance (onboarding spec §5): merge / synergy hints on shop cards, shortfall, command lifecycle. */
.bp-shop-hints{position:absolute;left:4px;right:4px;top:4px;z-index:4;display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-start;pointer-events:none}
.bp-shop-hint{padding:2px 7px;border-radius:999px;border:2px solid #3a1f0d;background:#ffd078;color:#3a1f0d;font:1000 .5rem var(--font-ui);letter-spacing:.08em;text-shadow:none;box-shadow:0 2px 0 rgba(0,0,0,.4)}
.bp-shop-hint.is-copy{background:#ffe9b1}
.bp-shop-hint.is-merge{background:#83d530;border-color:#10260a;color:#10260a;animation:bp-hint-pulse 1s ease-in-out infinite alternate}
.bp-shop-hint.is-synergy{background:#68e8ff;border-color:#0b2b33;color:#0b2b33}
.bp-shop-hint.is-progress{background:rgba(255,233,177,.9)}
.ds-puppy-card.is-merge-ready>.ds-card-frame{box-shadow:inset 0 0 0 1px rgba(0,0,0,.85),0 0 0 3px #83d530,0 0 16px #83d530}
.ds-puppy-card.is-synergy-ready:not(.is-merge-ready)>.ds-card-frame{box-shadow:inset 0 0 0 1px rgba(0,0,0,.85),0 0 0 3px #68e8ff,0 0 14px rgba(104,232,255,.7)}
@keyframes bp-hint-pulse{from{box-shadow:0 2px 0 rgba(0,0,0,.4)}to{box-shadow:0 2px 0 rgba(0,0,0,.4),0 0 12px #83d530}}
.bp-shop-short{position:absolute;left:50%;bottom:34%;z-index:4;transform:translateX(-50%);padding:2px 8px;border-radius:6px;background:#8b3a3a;border:2px solid #f0a8a8;color:#fff3cc;font:1000 .52rem var(--font-ui);letter-spacing:.08em;white-space:nowrap;pointer-events:none}
.bp-prep-status{display:block;min-height:1.3em;margin:2px 0 0;color:#ffe9b1;font:1000 .68rem var(--font-ui);letter-spacing:.04em;transition:opacity .2s ease;opacity:0}
.bp-prep-status.is-active{opacity:1}
.bp-prep-status[data-tone="pending"]{color:#8fe5ff}
.bp-prep-status[data-tone="pending"]::before{content:'';display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:50%;border:2px solid rgba(143,229,255,.35);border-top-color:#8fe5ff;vertical-align:-1px;animation:bp-wait-spin .8s linear infinite}
.bp-prep-status[data-tone="ok"]{color:#c8ff8a}
.bp-prep-status[data-tone="ok"]::before{content:'✓ ';font-weight:1000}
.bp-prep-status[data-tone="error"]{color:#ffb0bb}
.bp-prep-status[data-tone="error"]::before{content:'✕ ';font-weight:1000}
.bp-parade .bp-prep-status{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:5;padding:4px 14px;border-radius:999px;background:rgba(0,0,0,.55)}
[aria-busy="true"].ds-puppy-card,[aria-busy="true"].ds-button,[aria-busy="true"].bp-parade-pick{opacity:.6;filter:saturate(.6);cursor:progress;transition:opacity .15s ease}
[aria-busy="true"].ds-puppy-card::after,[aria-busy="true"].bp-parade-pick::after{content:'SENDING…';position:absolute;left:50%;top:50%;z-index:6;transform:translate(-50%,-50%);padding:3px 10px;border-radius:6px;background:rgba(0,0,0,.75);color:#8fe5ff;font:1000 .56rem var(--font-ui);letter-spacing:.1em}
/* Toy eligibility while a Toy is selected: green ring fits, dimmed says why. */
.gdd-roster-grid.is-equipping .ds-puppy-card.is-toy-eligible>.ds-card-frame{box-shadow:inset 0 0 0 1px rgba(0,0,0,.85),0 0 0 3px #83d530,0 0 14px #83d530}
.gdd-roster-grid.is-equipping .ds-puppy-card.is-toy-ineligible{filter:grayscale(.75);opacity:.5}
.gdd-roster-grid.is-equipping .ds-puppy-card.is-toy-ineligible::after{content:attr(data-toy-reason);position:absolute;left:4px;right:4px;bottom:4px;z-index:6;padding:2px 4px;border-radius:5px;background:rgba(0,0,0,.8);color:#ffb0bb;font:800 .46rem/1.2 var(--font-ui);text-align:center}
.bp-toy.is-selected{outline:3px solid #ffd078;box-shadow:0 0 14px #ffd078}
/* Rail: the next tier is one glance away. */
.bp-trait-need{margin-left:auto;padding:1px 7px;border-radius:999px;background:rgba(0,0,0,.45);color:#ffe9b1;font:1000 .5rem var(--font-ui);letter-spacing:.06em;white-space:nowrap}
/* Battle hand: shortfall badge, pending / accepted / rejected lifecycle (spec §5). */
.bp-card-need{position:absolute;left:50%;bottom:30%;z-index:5;transform:translateX(-50%);padding:2px 8px;border-radius:6px;background:#8b3a3a;border:2px solid #f0a8a8;color:#fff3cc;font:1000 .52rem var(--font-ui);letter-spacing:.06em;white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums}
.ds-hand-card.is-pending{opacity:.7;filter:saturate(.7)}
.ds-hand-card.is-pending::after{content:'SENDING…';position:absolute;left:50%;top:40%;z-index:6;transform:translate(-50%,-50%);padding:3px 9px;border-radius:6px;background:rgba(0,0,0,.75);color:#8fe5ff;font:1000 .54rem var(--font-ui);letter-spacing:.1em}
.ds-hand-card.is-network-late::after{content:'DELAYED…';color:#ffd078}
.ds-hand-card.is-command-accepted{animation:bp-card-accepted .5s ease-out}
.ds-hand-card.is-command-rejected{animation:bp-card-rejected .5s ease-out;box-shadow:0 0 0 3px #ff5c73,0 0 16px #ff5c73}
@keyframes bp-card-accepted{from{box-shadow:0 0 0 4px #83d530,0 0 22px #83d530}to{box-shadow:none}}
@keyframes bp-card-rejected{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@media (prefers-reduced-motion:reduce){.bp-shop-hint.is-merge,.ds-hand-card.is-command-accepted,.ds-hand-card.is-command-rejected{animation:none}}

/* Author display values must not defeat the hidden attribute on toggled feedback surfaces. */
.bp-wait-panel[hidden],.bp-card-need[hidden],.bp-shop-hints[hidden],[data-wait-score][hidden]{display:none!important}

/* Competitive UX (spec R1–R6): round timeline, lead pill, announcements, celebrations, milestones, floaters, coach, tap tips. */
.bp-timeline{display:flex;align-items:center;gap:5px;margin:0;padding:0;list-style:none}
.bp-timeline-round{position:relative;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:2px solid #7b522d;background:linear-gradient(#3b2114,#1e1009);color:#c8b389;font:1000 .5rem var(--font-ui);cursor:help}
.bp-timeline-round>i{font-style:normal;font-size:.72rem;line-height:1}
.bp-timeline-round>small{position:absolute;right:-3px;bottom:-5px;padding:0 3px;border-radius:6px;background:#1e1009;font-size:.42rem;color:#e8c98a}
.bp-timeline-round.is-past{opacity:.45;filter:grayscale(.6)}
.bp-timeline-round.is-current{border-color:#ffd078;background:linear-gradient(#ffd078,#e8a445);color:#3a1f0d;box-shadow:0 0 12px #ffd078;transform:scale(1.15)}
.bp-timeline-round.is-current>small{background:#ffd078;color:#3a1f0d}
.bp-timeline-round.is-next{border-color:#68e8ff}
.bp-timeline-round.is-parade{border-style:dashed}
.bp-timeline-next{padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.4);color:#ffe9b1;font:1000 .48rem var(--font-ui);letter-spacing:.1em;white-space:nowrap;cursor:help}
.bp-arena[data-phase="BATTLE"] .bp-timeline{justify-content:center;margin:2px 0}
.bp-arena:not([data-phase="BATTLE"]) .bp-timeline{order:9;margin-left:16px}
.bp-bar-lead{display:inline-block;padding:2px 10px;border-radius:999px;border:2px solid #7b522d;background:rgba(0,0,0,.45);color:#ffe9b1;font:1000 .58rem var(--font-ui);letter-spacing:.1em}
.bp-bar-lead[hidden]{display:none}
.bp-bar-lead[data-state="LEADING"]{border-color:#83d530;color:#c8ff8a}
.bp-bar-lead[data-state="BEHIND"]{border-color:#ff5c73;color:#ffb0bb}
.bp-arena[data-urgency="overtime"] .bp-bar-lead{border-color:#ffd078;color:#ffd078}
.bp-arena[data-phase="BATTLE"] .bp-bar-lead{justify-self:center;margin-top:2px}
.bp-stage>.bp-announce{position:absolute;left:50%;top:170px;z-index:39;transform:translateX(-50%);display:grid;justify-items:center;gap:2px;padding:12px 30px;border:4px solid #ffd078;border-radius:16px;background:linear-gradient(#5f331e,#2a160d);box-shadow:inset 0 0 0 2px rgba(255,214,120,.35),0 16px 40px rgba(0,0,0,.6);color:#fff3cc;text-align:center;pointer-events:none;animation:bp-announce-in .35s cubic-bezier(.2,.9,.3,1.2)}
.bp-announce>strong{font:1000 1.6rem/1 var(--font-display);letter-spacing:.04em;text-shadow:0 3px 0 #2b1430}
.bp-announce>span{color:#f3dcb0;font:var(--weight-body) .82rem var(--font-ui)}
.bp-announce.is-overtime{border-color:#ffd078;background:linear-gradient(#7a4a12,#3a1f0d)}
.bp-announce.is-overtime>strong{color:#ffd078;text-shadow:0 0 16px #ffd078,0 3px 0 #2b1430}
.bp-announce.is-battle{border-color:#ff5c73}
.bp-announce.is-parade{border-color:#68e8ff}
.bp-announce.is-leaving{animation:bp-announce-out .4s ease forwards}
@keyframes bp-announce-in{from{opacity:0;translate:0 -18px;scale:.94}to{opacity:1;translate:0 0;scale:1}}
@keyframes bp-announce-out{to{opacity:0;transform:translateX(-50%) translateY(-16px)}}
.bp-stage>.bp-celebration{position:absolute;left:50%;top:50%;z-index:41;transform:translate(-50%,-50%);display:flex;align-items:center;gap:16px;padding:14px 26px;border:4px solid #ffd078;border-radius:20px;background:linear-gradient(#5f331e,#2a160d);box-shadow:inset 0 0 0 2px rgba(255,214,120,.35),0 0 0 8px rgba(255,214,120,.18),0 20px 48px rgba(0,0,0,.65);color:#fff3cc;pointer-events:none;animation:bp-celebrate-in .45s cubic-bezier(.2,.9,.3,1.3)}
.bp-celebration.is-merge{border-color:#83d530;box-shadow:inset 0 0 0 2px rgba(131,213,48,.4),0 0 0 8px rgba(131,213,48,.22),0 0 40px #83d530,0 20px 48px rgba(0,0,0,.65)}
.bp-celebration.is-synergy{border-color:#68e8ff;box-shadow:inset 0 0 0 2px rgba(104,232,255,.4),0 0 0 8px rgba(104,232,255,.22),0 0 40px #68e8ff,0 20px 48px rgba(0,0,0,.65)}
.bp-celebration-art{width:96px;height:96px;display:grid;place-items:center;overflow:hidden;border-radius:50%;border:3px solid #ffd078;background:#28130d}
.bp-celebration-art>img{width:110%;height:110%;object-fit:contain;object-position:center bottom}
.bp-celebration-copy{display:grid;gap:2px}
.bp-celebration-copy>small{color:#ffd078;font:1000 .62rem var(--font-ui);letter-spacing:.16em}
.bp-celebration-copy>strong{font:1000 1.7rem/1 var(--font-display);text-shadow:0 3px 0 #2b1430}
.bp-celebration.is-merge .bp-celebration-copy>strong{color:#c8ff8a}
.bp-celebration.is-synergy .bp-celebration-copy>strong{color:#a8f2ff}
.bp-celebration-copy>em{color:#f3dcb0;font:var(--weight-body) .8rem var(--font-ui);font-style:normal}
.bp-celebration.is-leaving{animation:bp-celebrate-out .35s ease forwards}
@keyframes bp-celebrate-in{from{opacity:0;transform:translate(-50%,-50%) scale(.6)}60%{transform:translate(-50%,-50%) scale(1.06)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes bp-celebrate-out{to{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}
.bp-milestone{position:absolute;left:50%;bottom:4px;z-index:12;transform:translateX(-50%);width:88%;padding:4px 10px;border-radius:8px;border:2px solid #68e8ff;background:rgba(11,25,20,.92);color:#e7f0ec;font:800 .56rem/1.25 var(--font-ui);text-align:center;animation:bp-announce-in .3s ease}
.bp-milestone>strong{color:#a8f2ff}
.bp-hp-floater{position:absolute;right:6px;top:-4px;z-index:6;padding:1px 7px;border-radius:8px;font:1000 .9rem var(--font-display);pointer-events:none;animation:bp-float 1.2s ease-out forwards}
.bp-hp-floater.is-loss{background:#8b3a3a;color:#fff3cc;border:2px solid #ff5c73}
.bp-hp-floater.is-gain{background:#2f6e1a;color:#e9ffd6;border:2px solid #83d530}
.ds-trainer-chip.is-hit{animation:bp-hit .5s ease}
@keyframes bp-float{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-28px)}}
@keyframes bp-hit{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.bp-stage>.bp-coach{position:absolute;left:50%;top:112px;z-index:38;transform:translateX(-50%);display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:6px 14px;width:auto;max-width:640px;padding:8px 14px;border:3px solid #68e8ff;border-radius:14px;background:linear-gradient(#123044,#0a1a26);box-shadow:0 12px 30px rgba(0,0,0,.55);color:#e7f4ff;animation:bp-announce-in .35s ease}
.bp-coach-kick{color:#68e8ff;font:1000 .56rem var(--font-ui);letter-spacing:.16em}
.bp-coach>strong{font:1000 .92rem var(--font-ui)}
.bp-coach>span{color:#cfe6f2;font:var(--weight-body) .78rem/1.35 var(--font-ui)}
.bp-coach-close{justify-self:end;min-height:34px;padding:6px 14px;border:2px solid #68e8ff;border-radius:999px;background:rgba(104,232,255,.15);color:#a8f2ff;font:1000 .6rem var(--font-ui);letter-spacing:.1em;cursor:pointer}
.bp-stage:has(.bp-arena[data-phase="BATTLE"])>.bp-coach{left:auto;right:18px;top:96px;transform:none;grid-template-columns:1fr;width:260px;gap:4px;padding:12px 14px}
.bp-stage:has(.bp-lesson-hud)>.bp-coach{display:none}
.bp-stage>.bp-tip{position:absolute;z-index:70;transform:translate(-50%,-100%);display:grid;gap:4px;width:300px;padding:10px 34px 10px 12px;border:2px solid #ffd078;border-radius:12px;background:rgba(11,25,20,.97);color:#e7f0ec;font:var(--weight-body) .74rem/1.35 var(--font-ui);text-align:left;box-shadow:0 10px 26px rgba(0,0,0,.6);animation:bp-announce-in .2s ease}
.bp-tip[data-placement="below"]{transform:translate(-50%,0)}
.bp-tip>strong{color:#ffd078;font:1000 .78rem var(--font-ui);letter-spacing:.04em}
.bp-tip>small{color:#bfd0c8;font-size:.64rem}
.bp-tip-close{position:absolute;right:6px;top:6px;width:26px;height:26px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff3cc;font:1000 .7rem var(--font-ui);cursor:pointer}
.ds-trait-disc,.bp-timeline-round,[data-testid="shop-odds"],[data-testid="income-preview"],[data-testid="streak-readout"],[data-testid="shop-rank"],[data-testid="gold-readout"]{cursor:help}
@media (prefers-reduced-motion:reduce){.bp-stage>.bp-announce,.bp-stage>.bp-celebration,.bp-milestone,.bp-hp-floater,.bp-stage>.bp-coach,.bp-stage>.bp-tip,.ds-trainer-chip.is-hit{animation:none}.bp-hp-floater{opacity:1}}

/* ---------- Polish pass (2026-09-05): phone type floor, one accent hierarchy, quieter overlays ---------- */
/* Readable-text floor: the stage is scaled uniformly, so a client-pixel floor is expressed in stage units. */
.bp-stage{--bp-floor-7:calc(7px / var(--stage-scale,1));--bp-floor-8:calc(8px / var(--stage-scale,1));--bp-floor-9:calc(9px / var(--stage-scale,1));--bp-floor-10:calc(10px / var(--stage-scale,1))}
.bp-arena .ds-card-plate>strong{font-size:max(.7rem,var(--bp-floor-8))}
.bp-arena .ds-hand-bar>strong{font-size:max(.78rem,var(--bp-floor-8))}
.bp-arena .ds-trait-row-name,.bp-arena .ds-trait-row-count{font-size:max(.62rem,var(--bp-floor-8))}
.bp-trait-need,.bp-shop-hint,.bp-shop-short,.bp-card-need{font-size:max(.5rem,var(--bp-floor-7))}
.bp-shop-rank,.bp-shop-interest{font-size:max(.58rem,var(--bp-floor-7))}
.bp-prep-feedback,.bp-prep-status{font-size:max(.62rem,var(--bp-floor-8))}
.bp-toy>strong{font-size:max(.68rem,var(--bp-floor-8))}
.bp-toy-help,.bp-prep-panel>header>p{font-size:max(.58rem,var(--bp-floor-7))}
.bp-arena:not([data-phase="BATTLE"]) .bp-bar-center .bp-bar-timer{font-size:max(1.1rem,var(--bp-floor-10))}
.bp-bar-lead,.bp-timeline-next{font-size:max(.48rem,var(--bp-floor-7))}
.bp-lesson-hud>strong{font-size:max(.9rem,var(--bp-floor-9))}
.bp-lesson-hud>small{font-size:max(.68rem,var(--bp-floor-8))}
.bp-coach>strong{font-size:max(.92rem,var(--bp-floor-9))}
.bp-coach>span{font-size:max(.78rem,var(--bp-floor-8))}
.bp-stage>.bp-tip{font-size:max(.74rem,var(--bp-floor-8));width:min(300px,calc(300px * max(1,.8 / var(--stage-scale,1))))}
.bp-wait-panel>p{font-size:max(.82rem,var(--bp-floor-9))}
.bp-announce>span{font-size:max(.82rem,var(--bp-floor-8))}
.bp-celebration-copy>em{font-size:max(.8rem,var(--bp-floor-8))}
.bp-milestone{font-size:max(.56rem,var(--bp-floor-7))}
.bp-shop-footer{flex-wrap:wrap;row-gap:4px}
/* Phone landscape: decorative captions give their room to the readable text. */
@media (max-height:480px){.bp-prep-panel>header>p,.bp-traits-head>small,.bp-parade-note,.bp-ability-legend{display:none!important}}
/* One accent for "act here" (gold), one for "good" (green); everything else quiet. */
.bp-shop-hint.is-synergy{background:#83d530;border-color:#10260a;color:#10260a}
.bp-shop-hint.is-progress,.bp-shop-hint.is-copy{background:rgba(255,233,177,.92);border-color:#3a1f0d;color:#3a1f0d}
.ds-puppy-card.is-synergy-ready:not(.is-merge-ready)>.ds-card-frame{box-shadow:inset 0 0 0 1px rgba(0,0,0,.85),0 0 0 3px #83d530,0 0 12px rgba(131,213,48,.6)}
.bp-stage>.bp-coach{border-color:#b98a4a;background:linear-gradient(#3b2114,#1e1009);color:#f3dcb0;box-shadow:0 10px 24px rgba(0,0,0,.5)}
.bp-coach-kick{color:#e8c98a}
.bp-coach>strong{color:#fff3cc}
.bp-coach>span{color:#e7cc9d}
.bp-coach-close{border-color:#ffd078;background:rgba(255,214,120,.14);color:#ffd078}
.bp-announce.is-battle,.bp-announce.is-parade{border-color:#ffd078}
.bp-milestone{border-color:#b98a4a;color:#f3dcb0}
.bp-milestone>strong{color:#ffd078}
.bp-loot-chip,.bp-resolve-loot{color:var(--cream-100);background:linear-gradient(var(--wood-600),var(--wood-900));border:2px solid var(--gold-300);border-radius:10px;padding:8px 12px;box-shadow:inset 0 0 0 2px #0003}
.bp-loot-chip{position:relative;font-size:.68rem;max-width:290px}
.bp-loot-chip>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:800}
.bp-loot-chip>ul{margin:0;padding-left:20px}
.bp-round .ds-resolve .bp-resolve-loot,.bp-resolve-loot{display:flex;flex-direction:column;gap:6px;grid-column:1/-1}
.bp-resolve-loot>ol{display:flex;gap:8px;flex-wrap:wrap;padding:0;list-style:none;margin:4px 0}
.bp-resolve-loot li{min-height:44px;display:flex;align-items:center;flex:1 1 150px;padding:6px 10px;border:1px solid var(--gold-300);border-radius:6px}
.bp-augment-sheet{position:absolute;inset:0;z-index:60;display:grid;place-items:center;background:#17100bdd;padding:24px;color:#fff0c8}
.bp-augment-sheet>.bp-panel{width:min(1120px,95%);padding:26px;text-align:center}
.bp-augment-sheet h2{font:900 30px var(--font-display);margin:10px 0}
.bp-augment-sheet p{font:600 17px/1.5 var(--font-ui)}
.bp-augment-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}
.bp-augment-cards>article{display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-height:200px;border:3px solid #c4cbd5;border-radius:16px;padding:18px;background:linear-gradient(#663514,#35200f)}
.bp-augment-sheet[data-tier="GOLD"] .bp-augment-cards>article{border-color:#ffc653}
.bp-augment-sheet[data-tier="PRISMATIC"] .bp-augment-cards>article{border-color:#dab3ff}
.bp-augment-sheet button{min-height:max(48px,calc(44px / var(--stage-scale,1)));border:2px solid #fff0a6;border-radius:10px;background:linear-gradient(#ffe278,#e5a321);color:#321906;font:900 16px var(--font-ui);padding:10px 16px;cursor:pointer}
.bp-augment-sheet button:disabled{opacity:.55;cursor:default}
.bp-augment-sheet footer{display:grid;justify-items:center;gap:10px}
.bp-augment-sheet small{font:600 15px var(--font-ui)}
.bp-stage:has(.bp-augment-sheet)>.bp-celebration,.bp-stage:has(.bp-augment-sheet)>.bp-coach,.bp-stage:has(.bp-augment-sheet)>.bp-announce{display:none}
.bp-stage:has(.bp-celebration.is-loot:not(.is-leaving)) .bp-announce{display:none}
[data-new="true"]{position:relative}
[data-new="true"]::after{content:'NEW';position:absolute;left:4px;top:4px;pointer-events:none;background:var(--gold-300);color:var(--wood-900);font-size:10px;font-weight:900;padding:2px 5px;border-radius:4px}
.bp-timeline-round.is-next{border-color:#b98a4a}
/* Field overlays take turns: a celebration or announcement hides the cue and the coach while it is up. */
.bp-stage:has(.bp-celebration:not(.is-leaving)) .bp-cue,.bp-stage:has(.bp-celebration:not(.is-leaving))>.bp-coach,.bp-stage:has(.bp-announce:not(.is-leaving)) .bp-cue{opacity:0;transition:opacity .15s ease}
.bp-ability-legend{opacity:.55;transform:scale(.9);transform-origin:bottom right}
.bp-arena-field:hover .bp-ability-legend{opacity:.9}
/* The connection pill never sits on the stage label in Prep. */
.bp-arena:not([data-phase="BATTLE"]) .bp-arena-bar .bp-network{position:fixed!important;left:auto!important;right:12px!important;top:auto!important;bottom:8px!important;margin:0!important;transform:none!important;z-index:36}
.bp-augment-chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.bp-augment-chips details { position: relative; border: 1px solid #e5b45a; border-radius: 8px; background: #4b260f; color: #fff0c6; }
.bp-augment-chips summary { min-height: 44px; padding: 6px 10px; display: flex; align-items: center; cursor: pointer; font-size: 12px; font-weight: 800; }
.bp-augment-chips summary:focus-visible { outline: 3px solid #8ee8ff; outline-offset: 2px; }
.bp-augment-chips details[data-tier="PRISMATIC"] { border-color: #d8b5ff; }
.bp-augment-chips details[data-tier="SILVER"] { border-color: #c8d3df; }
.bp-augment-chips details > p { position: absolute; z-index: 30; top: 100%; left: 0; width: min(280px, 60vw); padding: 12px; margin: 4px 0 0; background: #321b0d; border: 1px solid #e5b45a; border-radius: 8px; color: #fff0c6; font-size: 14px; line-height: 1.45; }

/* Teaching owns a layout row, never an overlay over interactive game content.
   The auto row grows with text/readiness; ordinary rooms retain their full stage. */
.bp-stage:has(>.bp-lesson-hud):has(>.bp-arena){display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px}
.bp-stage:has(>.bp-lesson-hud)>.bp-arena{grid-row:1;position:relative;inset:auto;min-height:0;height:auto;align-self:stretch}
.bp-stage:has(>.bp-arena[data-phase])>.bp-lesson-hud{
  grid-row:2;position:relative;inset:auto;transform:none;max-width:none;width:auto;
  margin:0 12px 8px;padding:8px 18px;z-index:37;box-shadow:inset 0 0 0 2px rgba(255,214,120,.35);
  grid-template-columns:minmax(0,1fr) auto;justify-items:start;text-align:left;
}
.bp-stage:has(>.bp-arena)>.bp-lesson-hud>:not(button){grid-column:1}
.bp-stage:has(>.bp-arena)>.bp-lesson-hud>.bp-lesson-steps{display:none}
.bp-stage:has(>.bp-arena)>.bp-lesson-hud>[data-lesson-continue]{grid-column:2;grid-row:1/span 4;align-self:center;margin-left:18px;font-size:max(14px,calc(12px / var(--stage-scale,1)))}
.bp-stage:has(>.bp-arena)>.bp-lesson-hud>strong{font-size:max(16px,calc(12px / var(--stage-scale,1)));line-height:1.25}
.bp-stage:has(>.bp-arena)>.bp-lesson-hud>small{font-size:max(13px,calc(11px / var(--stage-scale,1)));line-height:1.3}
.bp-stage:has(>.bp-lesson-hud)>.bp-announce,.bp-stage:has(>.bp-lesson-hud)>.bp-celebration{display:none}
/* Loot is a temporary, non-interactive receipt in its own row, never over cards. */
.bp-stage:has(>.bp-celebration.is-loot){display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:6px}
.bp-stage:has(>.bp-celebration.is-loot)>.bp-arena{grid-row:1;position:relative;inset:auto;min-height:0;height:auto}
.bp-stage:has(>.bp-celebration.is-loot)>.bp-lesson-hud{grid-row:3}
.bp-stage>.bp-celebration.is-loot{display:flex;grid-row:2;position:relative;left:auto;top:auto;transform:none;justify-self:center;width:min(90%,850px);box-sizing:border-box;padding:8px 16px;border-width:2px;animation:none;box-shadow:none}
.bp-celebration.is-loot .bp-celebration-copy>strong{font-size:1rem}
.bp-celebration.is-loot.is-leaving{opacity:0;transition:opacity .35s}
