/* Phase 7.5 — lisibilité du plateau (aucune règle modifiée).
   Le placement validé en Phase 6.2.x est conservé : camp adverse en haut, Leaders face à face au centre,
   ressources sous la rangée d'unités du joueur, main en bas. Cette feuille ne fait que redimensionner
   chaque bande pour que tout tienne sans chevauchement de 1366×768 à 1920×1080. */
.tactical-board{grid-template-columns:minmax(170px,17%) minmax(0,1fr) minmax(235px,21%);gap:8px;padding:8px}
.tactical-board .board-center{gap:4px}
.tactical-board .player-field{display:flex;flex-direction:column;gap:2px;padding:4px 6px;min-height:0;overflow:hidden}
.tactical-board .player-identity{height:26px;flex:0 0 26px}
.tactical-board .field-row{flex:1 1 0;min-height:70px}
.tactical-board .match-slots{height:100%;min-height:0}
.tactical-board .unit-slot{min-height:0;height:100%;overflow:hidden}
.tactical-board .unit-slot .match-card,.tactical-board .leader-slot .match-card,.tactical-board .location-slot .match-card{width:100%;height:100%;min-height:0;flex:1 1 auto;overflow:hidden}
.tactical-board .match-card img{height:calc(100% - 18px);max-height:none;width:100%;object-fit:contain}
.tactical-board .leader-slot .match-card img,.tactical-board .location-slot .match-card img{height:100%}
/* Bandes à hauteur bornée (proportionnelles à la hauteur d'écran). */
.tactical-board .leader-row{flex:0 0 clamp(50px,8.5vh,96px);height:clamp(50px,8.5vh,96px)}
.tactical-board .leader-slot,.tactical-board .location-slot{width:clamp(38px,4.6vw,72px);height:100%}
.tactical-board .resource-line{flex:0 0 clamp(24px,5.4vh,58px);min-height:0;height:clamp(24px,5.4vh,58px);margin:0 10px}
.tactical-board .indice{width:auto;height:100%;aspect-ratio:5/7;max-width:100%}
.tactical-board .resource-count{flex:0 0 auto;font-size:10px;line-height:12px}
.tactical-board .own-field .match-hand{flex:0 0 clamp(58px,11vh,118px);height:clamp(58px,11vh,118px);min-height:0}
.tactical-board .own-field .match-hand .match-card{height:100%;flex-basis:clamp(40px,4.2vw,80px)}
.tactical-board .enemy-field .match-hand{flex:0 0 20px;height:20px;min-height:0}
/* Statistiques compactes : ATK · PV restants / PV, couleur si modifiées. */
.tactical-board .match-card .card-stats{position:absolute;left:0;right:0;bottom:0;width:auto;font-size:11px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px;background:#08121aee;border-radius:0 0 4px 4px}
.card-stats b{font-weight:700}.card-stats .up{color:#9ef0a4}.card-stats .down{color:#ff9aa6}.card-stats .hurt{color:#ffb56b}
.card-badges{position:absolute;top:2px;left:2px;right:2px;display:flex;flex-wrap:wrap;gap:2px;pointer-events:none;z-index:1}
.card-badges span{font-size:9px;line-height:12px;padding:0 3px;border-radius:3px;background:#0b141edd;color:#fff;border:1px solid #6f8791;font-weight:700;letter-spacing:.02em}
.card-badges .b-token{border-color:#c7a6ff;color:#e3d4ff}.card-badges .b-rush{border-color:#ffd36b;color:#ffe3a1}.card-badges .b-sick{border-color:#8aa3b0;color:#cfdde3}.card-badges .b-reduced{border-color:#ff8597;color:#ffc2cb}.card-badges .b-ignore{border-color:#9ef0a4;color:#cdf8d0}
.tactical-board .match-hand .card-badges{display:none}
/* Le panneau de sélection garde son bouton visible. */
.tactical-board .match-choice{max-height:46vh;overflow:auto}
.tactical-board .match-choice .choice-gallery .match-card{height:96px;width:68px;flex:0 0 68px}
/* Écrans bas (1366×768 et moins de 820 px de haut). */
@media(min-width:951px) and (max-height:820px){
 .tactical-board .player-identity{height:22px;flex-basis:22px}
 .tactical-board .player-identity small{display:none}
 .tactical-board .resource-count{font-size:9px;line-height:10px}
 .tactical-board .leader-row{flex-basis:clamp(44px,7.5vh,64px);height:clamp(44px,7.5vh,64px)}
 .tactical-board .resource-line{flex-basis:22px;height:22px}
 .tactical-board .own-field .match-hand{flex-basis:clamp(54px,9.5vh,78px);height:clamp(54px,9.5vh,78px)}
 .tactical-board .match-card .card-stats{font-size:9px;line-height:13px}
 .tactical-board .zone-pile{min-height:22px}
}
/* La rangée d'unités ne déborde jamais sur les ressources : lignes de grille compressibles. */
.tactical-board .field-row{grid-template-rows:minmax(0,1fr);overflow:hidden;align-items:stretch}
.tactical-board .match-slots{grid-template-rows:minmax(0,1fr);height:auto;min-height:0;overflow:hidden}
.tactical-board .unit-slot,.tactical-board .pile-zones,.tactical-board .match-life{min-height:0;overflow:hidden}
.tactical-board .unit-slot>.match-card{max-height:100%}
.tactical-board .match-life span{margin-top:-30%;height:auto;min-height:0;aspect-ratio:5/7;width:clamp(26px,3vw,48px)}
.tactical-board .match-life span:first-of-type{margin-top:0}
/* Piles (Deck, Cimetière, Bannies, Prison) : se partagent la hauteur de la rangée, libellés toujours visibles. */
.tactical-board .pile-zones{display:flex;flex-direction:column;gap:3px;height:100%}
.tactical-board .zone-pile{flex:1 1 0;min-height:0!important;display:flex;flex-direction:column;justify-content:center;align-items:center;line-height:1.1;font-size:clamp(8px,1.15vh,11px)!important;padding:1px 2px!important;box-shadow:1px 1px 0 #0c1921,2px 2px 0 #657883}
.tactical-board .deck-back.zone-pile{flex:1.5 1 0}.tactical-board .deck-back.zone-pile strong{font-size:clamp(12px,2.2vh,22px);line-height:1}
.tactical-board .unit-slot .card-name,.tactical-board .leader-slot .card-name,.tactical-board .location-slot .card-name{display:none}
/* Phase 7.7 — effets disponibles et pile, présentés comme des cartes. */
.effect-heading{font-size:11px;margin:8px 0 4px;color:#cfe3a0;text-transform:uppercase;letter-spacing:.04em}.effect-heading.list-heading{color:#8ea4ad}
.effect-cards{display:flex;flex-direction:column;gap:6px}
.effect-card,.stack-entry{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;align-items:start;padding:6px;border:1px solid #4d6670;border-radius:7px;background:#14232b}
.effect-card{border-color:#6f9a5c;background:linear-gradient(90deg,#1b2f22,#14232b)}.effect-card.from-hand{border-color:#5f86b8;background:linear-gradient(90deg,#182638,#14232b)}.effect-card.targeting{outline:2px solid #f1cf7b}
.effect-thumb{padding:0;border:1px solid #7d929b;border-radius:4px;background:#0b141e;width:48px;height:67px;overflow:hidden;cursor:zoom-in}.effect-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.effect-body{min-width:0;display:flex;flex-direction:column;gap:2px}.effect-body strong{font-size:12px;line-height:1.2}
.effect-kind{font-size:10px;color:#b9cbd2}.effect-kind.mine{color:#9ef0a4}.effect-kind.theirs{color:#ffb0b9}
.effect-text{font-size:11px!important;line-height:1.3;margin:2px 0!important;color:#dde8ec;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.effect-buttons{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.effect-buttons select{max-width:100%;font-size:11px}
.effect-go{font-size:12px!important;font-weight:700;padding:4px 10px!important;background:#3f6b3a!important;border-color:#8fc57d!important;color:#fff}
.target-hint{font-size:10px;color:#f1cf7b}
.match-stack .stack-entry{margin-bottom:5px}.stack-entry.next{border-color:#f1cf7b;box-shadow:0 0 0 1px #f1cf7b55;background:linear-gradient(90deg,#2e2a16,#14232b)}
.stack-entry.resolving{border-color:#74baff;background:linear-gradient(90deg,#152a3d,#14232b)}.stack-entry.waiting{opacity:.88}
.stack-rank{font-size:10px;font-weight:700;letter-spacing:.04em;color:#f1cf7b}.stack-entry.resolving .stack-rank{color:#9cd0ff}.stack-entry.waiting .stack-rank{color:#a9bcc4}
.stack-targets{font-size:10px;color:#cdd9de}.stack-hint{font-size:11px!important;color:#cfe3a0}.pass-hint{display:block;font-size:10px;color:#a9bcc4;margin-top:3px}
.tactical-board .response-rail .match-stack{flex-shrink:0;max-height:38vh;overflow:auto}
.tactical-board .response-rail .match-actions{flex:1 1 auto;min-height:140px;overflow:auto}
.tactical-board .response-rail .public-log{flex:0 1 24vh;min-height:70px;overflow:auto}
@media(min-width:951px) and (max-height:820px){.tactical-board .response-rail .public-log{flex-basis:16vh}.effect-text{-webkit-line-clamp:3}.tactical-board .response-rail .match-stack{max-height:30vh}}
