.fieldControls{position:absolute;inset:0;z-index:12;pointer-events:none;user-select:none}.fieldControls[hidden]{display:none!important}
.fieldControls .fieldStick{display:none;position:absolute;bottom:14px;left:14px;width:82px;height:82px;border:2px solid #b7a37599;border-radius:50%;background:radial-gradient(#172c3b99,#07121bbd);pointer-events:auto;touch-action:none}.fieldControls .fieldStick span{position:absolute;top:50%;left:50%;width:35px;height:35px;border:1px solid #c1dfdf99;border-radius:50%;background:#6d9d9faa;transform:translate(-50%,-50%);pointer-events:none}
.fieldHeroes{position:absolute;left:50%;bottom:90px;display:flex;gap:5px;transform:translateX(-50%);pointer-events:auto}.fieldHeroes[hidden]{display:none!important}
:is(#liveBattlePanel,#championArena) .fieldControls .fieldHeroes button{padding:3px!important;width:46px!important;height:52px!important;min-height:44px!important;min-width:0;border:1px solid #7b929977!important;border-radius:9px!important;background:#0b1c27d9!important;touch-action:manipulation}.fieldHeroes img{height:100%;width:100%;object-fit:contain;pointer-events:none}.fieldHeroes button[aria-pressed=true]{outline:2px solid #e8c786;outline-offset:1px}
.fieldActions{position:absolute;inset:0;pointer-events:none}
:is(#liveBattlePanel,#championArena) .fieldControls .fieldActions button{position:absolute!important;bottom:13px;width:68px!important;height:68px!important;min-width:0!important;min-height:0!important;max-width:none;padding:0!important;border:1px solid #b59a6599!important;border-radius:50%!important;background:#101b28de!important;box-shadow:0 2px 14px #0008!important;color:#f2dbac;font:26px Georgia!important;pointer-events:auto;touch-action:manipulation;display:grid!important;place-content:center;gap:2px}.fieldControls .fieldActions .fieldPower{left:50%;transform:translateX(-50%);background:conic-gradient(#ad93674d var(--power-charge,0%),#101b28de 0)!important}.fieldActions .fieldPower small{display:block;font:8px system-ui;letter-spacing:.5px}.fieldActions .fieldAttack{display:none!important;right:80px}.fieldActions .fieldDodge{right:12px}.fieldActions button:disabled{opacity:.45;cursor:default}
.fieldTouch .fieldStick{display:block}.fieldTouch .fieldHeroes{bottom:15px}.fieldTouch .fieldActions .fieldAttack{display:grid!important;right:80px;bottom:12px}.fieldTouch .fieldActions .fieldPower{left:auto;right:12px;bottom:62px;transform:none}.fieldTouch .fieldActions .fieldDodge{right:12px;bottom:0}
#championArena .fieldControls~.gladiatorBanner{pointer-events:none}#championArena[data-field-controls=true] .gladiatorMovement,#championArena[data-field-controls=true] .gladiatorActions{display:none!important}#championArena[data-field-controls=true] .gladiatorControls{display:flex;justify-content:flex-end;flex-wrap:wrap}#championArena[data-field-controls=true] .gladiatorKeyHint{display:none}
#liveBattlePanel[data-field-controls=true] .missionOrderGroup,#liveBattlePanel[data-field-controls=true] .missionOrderHint{display:none!important}
@media(max-width:600px){.fieldControls .fieldStick{width:70px;height:70px;left:9px;bottom:9px}.fieldControls .fieldStick span{width:30px;height:30px}.fieldHeroes{gap:4px}:is(#liveBattlePanel,#championArena) .fieldControls .fieldHeroes button{width:37px!important;height:44px!important}.fieldTouch .fieldHeroes{bottom:12px;max-width:43%;flex-wrap:wrap;justify-content:center}:is(#liveBattlePanel,#championArena) .fieldControls .fieldActions button{width:55px!important;height:55px!important;font-size:23px!important}.fieldTouch .fieldActions .fieldAttack{right:66px}.fieldTouch .fieldActions .fieldPower{right:8px;bottom:48px}.fieldTouch .fieldActions .fieldDodge{right:8px}.fieldTouch .fieldActions .fieldPower small{font-size:7px}}

:is(#liveBattlePanel,#championArena) .fieldControls .fieldActions .fieldAttack{display:none!important}
:is(#liveBattlePanel,#championArena) .fieldControls.fieldTouch .fieldActions .fieldAttack{display:grid!important}
#liveBattlePanel[data-field-controls=true].liveBattleView .liveEncounter{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"score" "objective" "progress" "field" "notice" "actions" "journal";gap:6px}
#liveBattlePanel[data-field-controls=true] .liveEncounter>.liveObjective{grid-area:objective}#liveBattlePanel[data-field-controls=true] .liveEncounter>.liveProgress{grid-area:progress}#liveBattlePanel[data-field-controls=true] .liveEncounter>[data-live-actions]{grid-area:actions}#liveBattlePanel[data-field-controls=true] .liveEncounter>.liveJournal{grid-area:journal}
#liveBattlePanel[data-field-controls=true] .liveStage{touch-action:none}

:is(#liveBattlePanel,#championArena) .fieldControls .fieldActions .fieldPower{left:50%;bottom:13px;transform:translateX(-50%);background:conic-gradient(#ad93674d var(--power-charge,0%),#101b28de 0)!important}
:is(#liveBattlePanel,#championArena) .fieldControls.fieldTouch .fieldActions .fieldPower{left:auto;right:12px;bottom:86px;transform:none}
:is(#liveBattlePanel,#championArena) .fieldControls.fieldTouch .fieldActions .fieldAttack{right:94px;bottom:12px}
:is(#liveBattlePanel,#championArena) .fieldControls.fieldTouch .fieldActions .fieldDodge{right:12px;bottom:0}
@media(max-width:600px){:is(#liveBattlePanel,#championArena) .fieldControls.fieldTouch .fieldActions .fieldPower{right:8px;bottom:66px}:is(#liveBattlePanel,#championArena) .fieldControls.fieldTouch .fieldActions .fieldAttack{right:66px;bottom:12px}:is(#liveBattlePanel,#championArena) .fieldControls.fieldTouch .fieldActions .fieldDodge{right:8px;bottom:0}}

/* Individual hero powers and deployment controls stay inside the arena. */
.fieldActions .fieldPower small{max-width:62px;white-space:normal;line-height:1.15;letter-spacing:0;text-align:center;max-height:24px;overflow:hidden}.fieldActions .fieldPower:after{content:attr(data-cooldown);position:absolute;right:-6px;top:0;background:#0b141de8;border-radius:8px;font:11px system-ui;padding:2px}.fieldActions .fieldPower[data-cooldown=""]:after{display:none}
.siegeDeployDock{position:absolute;left:12px;top:12px;z-index:15;max-width:min(280px,70%);padding:7px;background:#0c171ee8;border:1px solid #ab8c55;border-radius:7px;pointer-events:auto}.siegeDeployDock[hidden]{display:none}.siegeDeployDock>small{display:block;color:#c6baa3;font:10px system-ui;padding:4px 3px 0}.siegeDeployDock button{font-family:inherit;color:#e9d3a3;touch-action:manipulation;cursor:pointer}.siegeDeployToggle{min-height:44px;max-width:235px;background:#253639;border:1px solid #b29761;border-radius:5px;padding:6px 12px}.siegeDeployToggle:disabled{opacity:.55}.siegeDeployCancel{margin-left:5px;background:transparent;border:0;font-size:24px;min-width:35px;min-height:44px}.siegeDeployChoices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:8px}.siegeDeployChoices[hidden]{display:none}.siegeDeployChoices button{min-width:50px;min-height:64px;background:#17272c;border:1px solid #776a50;padding:3px;border-radius:4px}.siegeDeployChoices button[hidden]{display:none}.siegeDeployChoices img{width:38px;height:45px;object-fit:contain}.siegeDeployChoices span{display:block;font-size:9px}.siegeDeployChoices button[aria-pressed=true]{border-color:#efcf86;background:#3d4337}.siegeDeployChoices button:disabled{opacity:.45}
@media(max-width:600px){.fieldTouch .fieldPower small{max-width:47px;font-size:7px}.siegeDeployDock{left:7px;top:7px;max-width:230px}.siegeDeployToggle{font-size:11px}.siegeDeployChoices button{min-width:42px}}

/* Convoy: portraits belong on the lower edge, away from the carriage. */
#liveBattlePanel[data-mode="escort"] .fieldControls:not(.fieldTouch) .fieldHeroes{left:12px;bottom:12px;transform:none}
.fieldPower .fieldPowerName{display:block;font:8px/1.1 system-ui;max-width:62px;max-height:18px;overflow:hidden;white-space:normal;text-align:center}.fieldPower:has(.fieldPowerName:not(:empty)){gap:0!important}.fieldPower:has(.fieldPowerName:not(:empty)) small{font-size:7px!important;letter-spacing:.06em;font-weight:700}.convoyClock{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:14;background:#07121bdc;color:#f5e7bf;border:1px solid #b39b68;border-radius:6px;padding:5px 13px;min-width:70px;text-align:center;font:700 22px/1.15 Georgia,serif;font-variant-numeric:tabular-nums;pointer-events:none;box-shadow:0 2px 8px #0006}.convoyClock[hidden]{display:none}.convoyClock.urgent{border-color:#d98f67;color:#ffd8bc}
@media(max-width:600px){.fieldTouch .fieldPower .fieldPowerName{max-width:48px;font-size:7px}.convoyClock{top:6px;padding:4px 10px;min-width:62px;font-size:18px}}

/* Compact combat feedback: no modal or pointer-blocking effect. */
.championActor[data-counter="true"]::after{content:"";position:absolute;left:25%;right:25%;bottom:0;height:10%;border:3px solid #edcf85;border-radius:50%;box-shadow:0 0 16px #e4b34d77;pointer-events:none}
.liveStage .liveActions.squadFieldDock{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);z-index:8;width:min(480px,94%);margin:0;padding:5px 9px;border:1px solid #ad9a6955;border-radius:12px;background:#0b181ddd;display:block}
.squadCompact>small{display:block;text-align:center;color:#e9d5aa;font-size:12px;line-height:1.35;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.squadCompact>div{display:flex;justify-content:center;gap:8px}.squadCompact button{min-height:44px;max-width:72%;padding:6px 12px;font-size:13px}
@media(max-width:700px){.squadCompact>small{font-size:11px}.squadCompact button{font-size:12px;padding:5px 9px}}

/* Keep the complete direct-control field and its lower buttons on screen. */
#liveBattlePanel[data-field-controls=true][data-bonus=false] .liveStage{width:100%!important;max-width:calc((100dvh - 205px)*1.785714)!important;min-width:0!important;margin-inline:auto}
@media(orientation:landscape) and (max-height:500px){#liveBattlePanel[data-field-controls=true][data-bonus=false] .liveStage{max-width:calc((100dvh - 125px)*1.785714)!important}}
