.tactics-shell{max-width:1400px;margin:auto;padding:45px 25px}.tactics-shell h1{font-size:clamp(45px,7vw,88px);margin:12px 0}.tactics-shell h1 em{color:#e55970}.setup-bar{display:flex;align-items:center;gap:20px;justify-content:space-between;flex-wrap:wrap}.roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px;margin:25px 0}.recruit{border:1px solid #bac0c4;background:#fff8;padding:12px;position:relative}.recruit.chosen{outline:3px solid #168e94}.recruit button{cursor:pointer}.recruit .pick{width:100%;border:0;background:none;text-align:left;color:inherit;padding:0}.portrait{background-image:var(--art);background-size:400% 400%;background-position:var(--x) var(--y);aspect-ratio:1;display:block;border-radius:5px}.recruit h3{margin:10px 0 5px}.recruit p{font-size:13px;line-height:1.5}.recruit .minus{position:absolute;right:17px;top:17px;background:#101b27;color:white;border:0;border-radius:50%;width:30px;height:30px}.stats{font-weight:700;font-size:13px;margin:9px 0}.arena-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px}.board-scroll{overflow-x:auto}.board{display:grid;grid-template-columns:repeat(8,1fr);background:linear-gradient(#0c1a27bd,#0c1a27d9),url('/assets/battle-city-v1.png') center/cover;border:6px solid #182b3a;gap:3px;padding:5px;min-width:480px;box-shadow:0 16px 40px #10253533}.tile{position:relative;aspect-ratio:1;border:1px solid #779fb03d;background:#354c5a65;padding:3px;cursor:pointer;min-width:0;color:#fff}.tile.high{background:#617282a0;box-shadow:inset 0 4px #b7c6cc60}.tile.wall{background:repeating-linear-gradient(135deg,#18252b,#18252b 8px,#2c3d46 8px,#2c3d46 16px)}.tile.reachable{background:#16b5b352;border:2px solid #58e6d3}.tile.target{outline:3px solid #ffd670;outline-offset:-3px}.tile.active{box-shadow:inset 0 0 0 3px #67f5f0}.pawn{height:100%;position:relative;border:2px solid #62dec8;border-radius:4px;animation:arrive .25s ease}.pawn.bot{border-color:#ff7186}.pawn .portrait{height:100%;aspect-ratio:auto}.pawn strong{position:absolute;bottom:5px;left:0;right:0;background:#07151bdc;font-size:11px;line-height:1.3}.hpbar{height:4px;position:absolute;bottom:0;left:0;background:#72f5be}.pawn.bot .hpbar{background:#ff7186}.coord{position:absolute;top:2px;left:3px;font-size:9px;opacity:.65}.command{background:#12222f;color:#edf6f5;padding:20px;border-radius:8px}.command h3{margin:12px 0}.command p{font-size:13px;line-height:1.6}.commands{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.commands button{border:1px solid #ffffff50;background:#ffffff10;color:white;padding:12px 6px;cursor:pointer}.commands button.selected{background:#24777b}.commands button:disabled{opacity:.3;cursor:default}.combat-log{max-height:210px;overflow:auto;font-size:12px;color:#bdd0d8;line-height:1.7}.timeline{display:flex;gap:8px;overflow:auto;padding:10px 0 20px}.initiative{white-space:nowrap;background:#142a35;color:#fff;border-bottom:3px solid #5de0cc;padding:8px;font-size:12px}.initiative.bot{border-color:#ff7186}.legend{font-size:12px;line-height:1.7}.rules{margin:30px 0;padding:20px;background:#8198a315}.rules p{line-height:1.7}#alert{color:#b9304e;font-weight:600}.tactics-shell button:focus-visible{outline:3px solid #ec9e25;outline-offset:3px}@keyframes arrive{from{transform:scale(.9);opacity:.65}to{transform:scale(1);opacity:1}}@media(max-width:950px){.arena-layout{grid-template-columns:1fr}.command{display:block}.tactics-shell{padding:25px 12px}.roster{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media(prefers-reduced-motion:reduce){.pawn{animation:none}}

.pawn{animation:none}.recruit-art{position:relative;overflow:visible}.pawn.effect-mist{overflow:visible}.pawn .card-effect{inset:-10%}.pawn strong,.pawn .hpbar{z-index:6}.tac-projectile{position:absolute;left:40%;top:40%;width:20%;height:20%;border-radius:50%;background:#faf0ff;box-shadow:0 0 12px 6px #ad6aff,0 0 24px #43e6ef;z-index:30;pointer-events:none}.tac-burst{position:absolute;inset:-8%;display:grid;place-items:center;border-radius:50%;font-weight:900;font-size:clamp(18px,3vw,34px);z-index:30;pointer-events:none;text-shadow:0 2px 4px #000}.tac-burst.impact{color:#fff4d0;background:radial-gradient(circle,#ffcf6380,transparent 65%);border:3px solid #ff925d}.tac-burst.benefit{color:#b3ffe4;background:radial-gradient(circle,#4affa470,transparent 65%);border:3px solid #79f5ca}#phase{font-weight:700;color:#79e5d5}.tile:has(.pawn){overflow:visible}
.tile.range-attack{background:#e3af325c;outline:2px solid #ffdc75;outline-offset:-3px}.tile.range-skill{background:#aa69e563;outline:2px solid #d5a1ff;outline-offset:-3px}.tile.active{outline:4px solid #fff;outline-offset:1px;z-index:7;box-shadow:0 0 20px #5eead488}.unit-turn{position:absolute;top:-14px;left:40%;font-size:24px;color:white;text-shadow:0 2px 5px #000;z-index:10}.unit-cooldown{position:absolute;right:1px;top:1px;z-index:9;padding:3px 5px;border-radius:4px;background:#102331;color:#91ffe1;font-size:12px;font-weight:bold}.unit-cooldown.loading{background:#462758;color:#f1d7ff}.skill-status{border:2px solid #76e4c6;border-radius:8px;padding:12px;font-weight:800!important;font-size:15px!important;color:#a9ffe5}.skill-status.loading{border-color:#c791ee;color:#e8c5ff;background:#4b286d55}.initiative.current{background:#ecfff8;color:#102331;outline:3px solid #2fc4ab;font-weight:900}.commands button[aria-disabled=true]{border-style:dashed;color:#d4cbdc}.commands button[data-mode=skill]{grid-column:1/-1;font-weight:800}#turn{background:#122b37;color:#edfff9;border-left:6px solid #63f0c8;padding:14px 20px;border-radius:7px;font-size:clamp(18px,2.3vw,28px)}#range-caption{font-weight:700;min-height:2.6em;color:#654390}
