/* Combat clarity R1: presentation only; state and target legality come from the game. */
.duel .unit-state{font-size:9px;line-height:1.2;min-height:13px;max-width:calc(100% + 8px);padding:1px 4px;bottom:-14px;border:1px solid #71828c;border-radius:3px;background:#0c1724;color:#eef4f6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.duel .combat-state-ready .unit-state{border-color:#81d8ad;background:#14382d;color:#d2ffe6}
.duel .combat-state-ready .tcg-card{box-shadow:0 0 0 1px #81d8ad,0 3px 9px #0008}
.duel .combat-state-exhausted .unit-state,.duel .combat-state-waiting .unit-state{border-style:dashed;color:#e2e7eb;background:#28303b}
.duel .combat-state-exhausted .tcg-art{filter:saturate(.55) brightness(.8)}
.duel .combat-state-attacker .unit-state{border-color:#f4cc83;background:#493519;color:#fff0cc}
.duel .combat-state-target .unit-state{border-color:#ffbe84;background:#4a281d;color:#fff0df}
.duel .combat-state-blocking .unit-state,.duel .combat-state-defender .unit-state{border-color:#8bd8f0;background:#153847;color:#d4f5ff}
.duel .combat-state-incoming .unit-state{border-color:#efb28c;background:#482b24;color:#ffe6d8}
.duel .selected-preview.empty-preview{display:block;overflow:auto;min-height:0}
.battle-guidance{width:100%;min-width:0;text-align:left}
.duel .battle-guidance h3{font-size:18px;line-height:1.2;margin:6px 0 10px;text-wrap:pretty}
.duel .battle-guidance p{font-size:13px;line-height:1.45;color:#dde6ed;margin:8px 0}
.attack-plan{list-style:none;margin:8px 0;padding:0;display:grid;gap:7px}
.attack-plan li{padding:7px 8px;background:#0a1420;border:1px solid #dab76e60;border-left:3px solid #e7c88f;border-radius:4px}
.attack-plan b,.attack-plan span{display:block;overflow-wrap:anywhere;font-size:13px;line-height:1.3}
.attack-plan b{color:#fff0d1;margin-bottom:3px}.attack-plan span{color:#cde8f3}
.combat-notice{padding:8px 10px;border-left:3px solid #e7c88f;background:#e7c88f12;color:#f3e7cf;font-size:13px;line-height:1.4;margin:8px 0}
.duel .preview-copy .combat-notice{font-size:12px;line-height:1.4;max-height:none;overflow:visible}
.defense-assignment{padding:6px 8px;background:#173645;border-left:3px solid #8bd8f0}
@media (orientation:landscape) and (max-height:600px) and (max-width:1000px){
 .duel .arena-lane{padding-bottom:15px}
 .duel .unit-state{font-size:8px;min-height:12px;bottom:-13px;padding:1px 3px}
 .duel .battle-guidance h3{font-size:14px;margin:3px 0 7px}
 .duel .battle-guidance .eyebrow{font-size:8px;letter-spacing:.04em}
 .duel .battle-guidance p,.duel .preview-copy .combat-notice{font-size:11px;line-height:1.35;margin:6px 0}
 .duel .attack-plan{gap:5px;margin:6px 0}.duel .attack-plan li{padding:5px 6px}
 .duel .attack-plan b,.duel .attack-plan span{font-size:11px;line-height:1.3}
 .duel .combat-notice{padding:5px 6px}
 .duel .selected-preview:has(.combat-notice){overflow:auto}
}
@media (prefers-reduced-motion:reduce){.duel.targeting .valid-target{animation:none!important}}
.duel .combat-state-unavailable .unit-state{border-style:dashed;background:#36313a;color:#f4d6d2}
/* Keep the selected attacker and other allies legible while enemy targets are dimmed. */
.duel.targeting .player-lane .board-unit:not(.valid-target):not(.chosen-target){opacity:1;filter:none}
.duel .combat-state-attacker .unit-state{font-weight:700}
/* A selected hand card must not hide an attack that is still awaiting confirmation. */
.duel .selected-preview:has(.battle-guidance){display:block;overflow:auto}
