body.duel-active{overflow:hidden;height:100dvh}
.duel-active .game-header,.duel-active .game-nav{display:none}
.duel-active #play-main{width:100%;max-width:none;height:100dvh;min-height:0;margin:0;padding:0;transform:none!important;animation:none!important}
.duel-active .duel-table{height:100dvh;width:100%;max-width:none;margin:0;padding:8px 22px max(6px,env(safe-area-inset-bottom));display:grid;gap:4px;overflow:hidden}
.duel-active .duel-header{display:flex;align-items:center;gap:18px;margin:0;padding:0}
.duel-active .duel-header>div{flex:1;display:flex;align-items:center;gap:18px}
.duel-active .duel-header h1{margin:0}
.duel-active .duel-header .eyebrow{font-size:9px}
.duel-active .duel-score{font-size:28px}
.duel-active .duel-menu{order:3;width:42px;height:40px;min-height:0;padding:0;border:1px solid #a58a5d88;background:#17171b;color:#ead6b2;border-radius:9px;font-size:20px}
.duel-active .arena-board{min-height:0;height:100%;padding:8px 22px;display:grid;gap:4px;background-size:cover;border:1px solid #b79a6b77;border-radius:14px}
.duel-active .arena-player{justify-self:center;width:100%;margin:0;border-radius:20px;background:#0b0d12d9}
.duel-active .arena-player strong{font-size:13px}
.duel-active .arena-points{font-size:17px;margin-left:auto}
.duel-active .arena-zone{position:relative;min-height:0;height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:16px;container-type:size;align-items:center}
.duel-active .duelist{grid-column:2;grid-row:1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:14px;min-height:0;height:100%;position:relative}
.duel-active .duelist .fighter-card{min-width:0;flex-shrink:0;margin:0;padding:0;border:0;box-shadow:0 10px 32px #000a,0 0 0 1px #ddbc7b77;border-radius:8px}
.duel-active .fighter-vitals{margin:0;gap:2px;border-radius:0 0 7px 7px;background:#080b10f5}
.duel-active .fighter-vitals span{font-size:clamp(10px,1vw,15px)}
.duel-active .fighter-vitals progress{height:3px}
.duel-active .fighter-trait{position:absolute;left:calc(50% + min((100cqh - 30px)/3,11cqw) + 20px);width:min(180px,17cqw);max-width:none;height:auto;margin:0;flex-shrink:0;text-align:left}
.duel-active .fighter-trait b{font-size:clamp(9px,.8vw,12px);margin-bottom:7px;color:#efc47c}
.duel-active .combat-bench{grid-column:1;grid-row:1;height:100%;min-height:0;align-items:center;justify-content:center;gap:12px;padding:0}
.duel-active .arena-zone .bench-unit,.duel-active .arena-zone .bench-slot{width:min(calc((100cqh - 95px)/1.5),calc((100cqw / 3 - 40px)/3));flex:0 1 min(calc((100cqh - 95px)/1.5),calc((100cqw / 3 - 40px)/3));height:auto;min-height:0;max-height:none;margin:0}
.duel-active .bench-unit>small{white-space:nowrap}
.duel-active .bench-unit>div{display:flex;flex-wrap:wrap;gap:3px}
.duel-active .bench-unit>div button{flex:1;line-height:1.2}
.duel-active .bench-unit>div button:last-child:nth-child(3){flex-basis:100%}
.duel-active .bench-name{display:none}
.duel-active .arena-pile{grid-column:3;grid-row:1;justify-self:end;margin-right:5%;gap:7px}
.duel-active .arena-pile>img{width:clamp(40px,6cqw,100px);height:auto;aspect-ratio:2/3}
.duel-active .arena-pile b{font:clamp(16px,2vw,24px) Georgia;top:auto;bottom:25px;right:-12px;padding:3px 9px;border-radius:6px}
.duel-active .arena-pile small{font-size:9px;margin:0}
.duel-active .arena-pile>span{display:none}
.duel-active .arena-divider{margin:0;min-height:0;height:32px;gap:12px;border-color:#d3a66355}
.duel-active .arena-divider .combat-field{height:32px;padding:0;gap:10px;max-width:560px}
.duel-active .arena-divider .combat-field>.arena-card-inspect{width:21px;flex-basis:21px}
.duel-active .arena-divider .combat-field .tcg-card{width:21px}
.duel-active .arena-divider .combat-field small{max-width:420px}
.duel-active .combat-turn-hint{margin:0;min-height:0;text-overflow:ellipsis;border:0;border-radius:6px}
.duel-active .duel-controls{display:flex;flex-wrap:nowrap;gap:8px;margin:0;padding:0;min-height:0;width:min(1100px,100%);justify-self:center}
.duel-active .duel-controls button{flex:1;min-width:0;max-width:none;min-height:0;height:100%;padding:5px 10px;font:12px/1.25 system-ui;border-radius:10px;transform:none}
.duel-active .duel-controls button[data-combat=end]{flex:.8;background:linear-gradient(#29303b,#141820);border-color:#ad9774;color:#f0e4ce}
.duel-active .duel-hand-heading{padding:2px 12px;margin:0;font:10px system-ui;min-height:0;border:0}
.duel-active .duel-hand{position:relative;display:block;overflow:visible;padding:0;margin:0;border:0;min-width:0;min-height:0;width:min(1280px,100%);justify-self:center;background:radial-gradient(ellipse at bottom,#69301c55,transparent 72%);touch-action:none;isolation:isolate;--hand-width:clamp(65px,calc((24dvh - 42px)*.62),180px)}
.duel-active .duel-hand .hand-play{position:absolute;left:50%;top:12px;width:var(--hand-width);height:calc(var(--hand-width)*1.5);max-width:none;flex:none;display:block;margin:0;padding:0;transform-origin:50% 100%;transform:translateX(calc(-50% + var(--fan-x) + var(--fan-nudge,0px))) translateY(var(--fan-y)) rotate(var(--fan-angle));transition:transform 300ms cubic-bezier(.16,1,.3,1),filter 220ms;will-change:transform;filter:brightness(.9);border-radius:6px}
.duel-active .duel-hand .hand-play.fan-selected{transform:translateX(calc(-50% + var(--fan-x))) translateY(-28px) rotate(0deg) scale(1.10);filter:brightness(1.1);transition:transform 380ms cubic-bezier(.16,1.18,.3,1),filter 200ms}
.duel-active .hand-play .tcg-card{transform:none!important;pointer-events:none;box-shadow:0 8px 22px #000b}
.duel-active .hand-play>.hand-action{display:none}
.duel-active .duel-hand .fan-hit{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;opacity:0;cursor:zoom-in;touch-action:none;transform:none;background:transparent}
.duel-active .duel-hand .fan-hit:focus-visible{opacity:1;outline:2px solid #f3d092;outline-offset:3px;border-radius:7px}
.hand-selection{display:flex;justify-content:center;align-items:center;gap:14px;font:11px system-ui;color:#c9bca7;min-width:0;position:relative;z-index:40;pointer-events:none}
.hand-selection>span{max-width:45%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hand-selection .hand-action{pointer-events:auto;margin:0;min-height:34px;padding:5px 18px;font:11px system-ui;color:#f7dfb6;background:linear-gradient(#6d3327,#2d1917);border:1px solid #c39761;border-radius:8px}
.hand-selection .hand-action:disabled{opacity:.5}
.duel-active .duel-table>.combat-rules,.duel-active .duel-table>.combat-network,.duel-active .duel-table>button{display:none}
.duel-active .combat-end{grid-row:4/-1;align-self:center;text-align:center}
.duel-options{width:min(460px,calc(100vw - 32px));max-height:85dvh;padding:24px;border:1px solid #a5804f;border-radius:14px;background:#10131a;color:#ead8bb;overflow:auto}
.duel-options::backdrop{background:#020306b8;backdrop-filter:blur(9px)}
.duel-options>button{display:block;width:100%;min-height:44px;margin:10px 0;padding:10px;border:1px solid #896b46;background:#211b1a;color:#ead8bb;border-radius:8px}
.duel-options p{font:12px/1.6 system-ui}.duel-options details{padding:15px 0;border-block:1px solid #76604444}
/* Values follow their actual unit, including duplicate subjects and bench targets. */
[data-unit]{position:relative}
.combat-value{display:block;position:absolute;z-index:30;left:50%;top:38%;width:max-content;max-width:240px;padding:9px 16px;border:1px solid #f0ba8d;border-radius:10px;background:#160e13f5;box-shadow:0 8px 26px #000b;pointer-events:none;text-align:center;transform:translateX(-50%);color:#fff1dc}
.combat-value strong{display:block;font:700 clamp(26px,3vw,42px)/1.1 Georgia;text-shadow:0 2px 8px #b92f32}
.combat-value span{display:block;font:700 11px/1.5 system-ui;letter-spacing:.06em;white-space:nowrap}
.combat-value[data-kind=heal]{border-color:#a7dec7;background:#09271ff5}
.combat-value[data-kind=guard]{border-color:#e4c989;background:#232012f5}
.combat-value[data-kind=curse]{border-color:#b995db;background:#21132bf5}

@media(max-width:999px){
 .duel-active .duel-table{padding:4px 8px max(5px,env(safe-area-inset-bottom));gap:3px}
 .duel-active .duel-header>div{display:block}.duel-active .duel-score{font-size:21px}
 .duel-active .arena-board{gap:3px}
 .duel-active .arena-player{height:25px}
 .duel-active .arena-zone{grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);gap:12px}
 .duel-active .duelist{grid-column:1;flex-direction:column;gap:0}.duel-active .fighter-trait{display:none}
 .duel-active .combat-bench{grid-column:2;gap:6px}.duel-active .arena-zone .bench-unit,.duel-active .arena-zone .bench-slot{width:min(calc((100cqh - 95px)/1.5),calc((100cqw * .63 - 12px)/3));flex-basis:min(calc((100cqh - 95px)/1.5),calc((100cqw * .63 - 12px)/3))}
 .duel-active .bench-unit>small{font-size:8px}.duel-active .arena-pile{display:none}.duel-active .arena-divider .combat-field small{font-size:7px}.duel-active .arena-divider .combat-field>.arena-card-inspect{width:17px;flex-basis:17px}.duel-active .arena-divider .combat-field .tcg-card{width:17px}
 .duel-active .duel-controls{gap:5px}.duel-active .duel-controls button{font-size:9px;padding:4px 3px;border-radius:8px}.duel-active .duel-controls small{font-size:8px}.duel-active .duel-hand-heading{font-size:8px;padding:2px 4px}.duel-active .duel-hand{--hand-width:clamp(55px,calc((23dvh - 38px)*.62),128px)}
 .hand-selection{font-size:9px;gap:7px}.hand-selection .hand-action{font-size:9px;max-width:65%;padding:5px 12px}
}
/* Sur un écran large et bas, les camps partagent la largeur plutôt que de comprimer les cartes. */
@media(min-width:1000px) and (max-height:900px),(min-width:600px) and (max-height:500px){
 .duel-active .arena-board{grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);padding:8px 14px;gap:5px}
 .duel-active .arena-opponent{grid-column:1;grid-row:1}.duel-active .arena-you{grid-column:3;grid-row:1}.duel-active .foe-zone{grid-column:1;grid-row:2}.duel-active .self-zone{grid-column:3;grid-row:2}
 .duel-active .arena-zone{grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:14px}.duel-active .duelist{grid-column:1;flex-direction:column}
 .duel-active .fighter-trait{display:none}.duel-active .combat-bench{grid-column:2;gap:8px}.duel-active .arena-zone .bench-unit,.duel-active .arena-zone .bench-slot{width:min(calc((100cqh - 100px)/1.5),calc((100cqw * .62 - 20px)/3));flex-basis:min(calc((100cqh - 100px)/1.5),calc((100cqw * .62 - 20px)/3))}
 .duel-active .arena-pile{display:none}.duel-active .arena-divider{grid-column:2;grid-row:1/3;border:0;border-inline:1px solid #ae8a5655;flex-direction:column}.duel-active .arena-divider>span{display:none}.duel-active .arena-divider .combat-field{height:auto;padding:0;flex-direction:column}.duel-active .arena-divider .combat-field small{display:none}
 
}
@media(max-height:500px) and (min-width:600px){
 .duel-active .duel-table{padding:3px 10px}.duel-active .duel-menu{height:28px}.duel-active .duel-controls button{font-size:8px}.duel-active .arena-player{height:20px}.duel-active .arena-player strong{font-size:9px}.duel-active .arena-points{font-size:11px}.duel-active .arena-zone .bench-unit,.duel-active .arena-zone .bench-slot{width:min(calc((100cqh - 58px)/1.5),calc((100cqw * .62 - 16px)/3));flex-basis:min(calc((100cqh - 58px)/1.5),calc((100cqw * .62 - 16px)/3))}.duel-active .bench-unit>small{font-size:6px}.duel-active .duel-hand{--hand-width:40px}.duel-active .combat-turn-hint{padding:2px 6px;font-size:8px}
}
@media(prefers-reduced-motion:reduce){.duel-active .duel-hand .hand-play,.duel-active .duel-hand .hand-play.fan-selected{transition:none;will-change:auto}}
.duel-tray{position:relative;min-height:0;display:grid;padding:0 12px;border-radius:12px;background:linear-gradient(90deg,#11151b33,#11151baa)}
.duel-active .duel-tray .duel-hand-heading{grid-column:1;grid-row:1;padding:3px 0}
.duel-active .duel-tray .duel-hand{grid-column:1;grid-row:2;width:100%;container-type:size;--hand-width:clamp(50px,calc((100cqh - 30px)*.62),190px)}
.duel-active .duel-tray .hand-selection{grid-column:2;grid-row:1;justify-content:flex-start;font-size:10px}.duel-active .duel-tray .hand-selection .hand-action{font-size:9px}
.duel-active .duel-tray .duel-controls{grid-column:2;grid-row:2;display:grid;grid-template-columns:1fr 1fr;align-content:center;width:100%;padding:10px 0}
.duel-active .duel-tray .duel-controls button{font-size:11px}.duel-active .duel-tray .duel-controls button[data-combat=end]{grid-column:1/-1}
@media(max-width:999px){.duel-tray{background:none}.duel-active .duel-tray .duel-controls{grid-column:1;grid-row:1;display:flex;flex-wrap:nowrap;padding:0}.duel-active .duel-tray .duel-controls button{font-size:9px}.duel-active .duel-tray .duel-hand-heading{grid-column:1;grid-row:2}.duel-active .duel-tray .hand-selection{grid-column:1;grid-row:3;justify-content:center;white-space:normal}.duel-active .duel-tray .duel-hand{grid-column:1;grid-row:4;--hand-width:clamp(45px,calc((100cqh - 30px)*.62),130px)}}
@media(max-height:500px) and (min-width:600px){.duel-active .duel-tray .duel-hand-heading{grid-column:1;grid-row:1}.duel-active .duel-tray .duel-hand{grid-column:1;grid-row:2;--hand-width:clamp(35px,calc((100cqh - 26px)*.62),90px)}.duel-active .duel-tray .hand-selection{grid-column:2;grid-row:1;font-size:8px}.duel-active .duel-tray .duel-controls{grid-column:2;grid-row:2;display:grid;grid-template-columns:1fr 1fr}.duel-active .duel-tray .hand-selection .hand-action{min-height:23px;font-size:7px}}
.hand-drag-ghost{position:fixed;left:0;top:0;z-index:1000;width:clamp(110px,13vw,180px);pointer-events:none;will-change:transform;filter:drop-shadow(0 18px 22px #000b);transform:translate3d(-500px,-500px,0)}.hand-drag-ghost .tcg-card{width:100%;height:auto;transform:none!important;pointer-events:none}.hand-drop-ready{outline:2px solid #dcb875!important;outline-offset:5px;box-shadow:inset 0 0 40px #d2943430!important;border-radius:10px}.hand-drop-over{outline-color:#ffe5a8!important;background:#9b703831!important}.duel-hand.is-dragging .fan-selected{filter:brightness(.55)!important}.duel-hand.is-dragging .fan-hit{cursor:grabbing!important}
@media(max-width:599px){
 .duel-active .foe-zone .bench-unit,.duel-active .foe-zone .bench-slot{width:min(calc((100cqh - 18px)/1.5),calc((100cqw * .63 - 12px)/3));flex-basis:min(calc((100cqh - 18px)/1.5),calc((100cqw * .63 - 12px)/3))}
 .duel-active .self-zone .bench-unit,.duel-active .self-zone .bench-slot{width:min(calc((100cqh - 85px)/1.5),calc((100cqw * .63 - 12px)/3));flex-basis:min(calc((100cqh - 85px)/1.5),calc((100cqw * .63 - 12px)/3))}
}
/* Les annonces expliquent l’action sans bloquer l’inspection du plateau. */
.combat-announcement{position:fixed;z-index:900;left:50%;top:42%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;opacity:0;border:1px solid #b99a61;border-radius:14px;color:#f8ead4;backdrop-filter:blur(12px)}
.combat-announcement.is-visible{opacity:1}.announcement-label{display:block;font:600 11px system-ui;letter-spacing:.17em;text-transform:uppercase;color:#d8b978}.announcement-title{margin:9px 0 5px;font:clamp(23px,3vw,36px)/1.1 Georgia;color:#fff3df}.announcement-value{display:block;font:bold clamp(34px,5vw,55px)/1.2 Georgia;color:#ffb6a5;text-shadow:0 2px 10px #b91f36aa}.announcement-detail{font:14px/1.55 system-ui;margin:8px auto 0;max-width:430px;color:#ede0ca}.combat-announcement[data-kind=turn-self]{border-color:#f3cc83;background:radial-gradient(ellipse at top,#a6742855,transparent 80%),#10151af5}.combat-announcement[data-kind=turn-foe],.combat-announcement[data-kind=attack-foe],.combat-announcement[data-kind=curse]{border-color:#cf5d55}.combat-announcement[data-kind=talent],.combat-announcement[data-kind=energy]{border-color:#96c8bd}.combat-announcement[data-kind=ko] .announcement-title{font-size:48px;color:#ff9988}
.duel-active .duel-table[data-turn=self] .duel-header h1{color:#ffe0a1;text-shadow:0 0 18px #dc8f3155}.duel-active .duel-table[data-turn=self] .duel-header h1:before{content:'';display:inline-block;width:8px;height:8px;margin:0 10px 2px 0;border-radius:50%;background:#ffdb8e;box-shadow:0 0 10px #ebaa45}.duel-active .duel-table[data-turn=foe] .duel-header h1{color:#e6b8b1}.duel-active .duel-table[data-turn=self] .arena-you{border-color:#d7b874;box-shadow:0 0 14px #c9983528}
.duel-active .combat-turn-hint{background:#0b1019e8}.duel-active .duel-table[data-turn=self] .combat-turn-hint{border-left:3px solid #d7b874}.duel-active .duel-controls .command-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:inherit;text-align:center}.duel-active .duel-controls .command-stats{display:flex;justify-content:space-between;align-items:center;color:#ead4ae}.duel-active .duel-controls .command-stats b{color:#fff0d7}.duel-active .duel-controls button[data-combat=strong],.duel-active .duel-controls button[data-combat=attack]{height:auto;padding:8px 12px}.duel-active .duel-controls button:not(:disabled){box-shadow:inset 0 1px #ffffff16,0 4px 10px #0005}.duel-active .duel-controls button:not(:disabled):hover{border-color:#efce95;background-color:#3c3027;filter:brightness(1.16)}
@media(max-width:999px){.combat-announcement{padding:17px 20px;top:38%}.announcement-detail{font-size:12px}.announcement-label{font-size:9px}.duel-active .combat-turn-hint{font-size:9px}.duel-active .duel-controls .command-stats small{display:none}.duel-active .duel-controls button[data-combat=strong],.duel-active .duel-controls button[data-combat=attack]{padding:4px 5px}}
@media(max-height:500px) and (min-width:600px){.combat-announcement{width:420px;padding:12px 20px;top:37%}.announcement-title{font-size:23px}.announcement-value{font-size:32px}.announcement-detail{font-size:11px}.duel-active .duel-controls button[data-combat=strong],.duel-active .duel-controls button[data-combat=attack]{padding:3px 7px}.duel-active .duel-controls .command-name{display:block;white-space:nowrap;text-overflow:ellipsis}.duel-active .duel-controls .command-stats{margin:0}}
.duel-active .duel-controls button[data-combat=strong],.duel-active .duel-controls button[data-combat=attack]{display:flex;flex-direction:column;align-items:stretch;justify-content:center}
@media(max-width:599px){
 .duel-active .duel-table{grid-template-rows:40px minmax(0,1fr) 23px clamp(260px,39dvh,390px)}
 .duel-tray{grid-template-rows:82px 16px 28px minmax(0,1fr)}
 .duel-active .duel-tray .duel-controls{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:39px 39px;gap:4px}
 .duel-active .duel-tray .duel-controls button{grid-column:span 2;order:2;height:100%;font-size:10px}
 .duel-active .duel-tray .duel-controls button[data-combat=end]{grid-column:span 2}
 .duel-active .duel-tray .duel-controls:not(:has([data-combat=talent])) button[data-combat=end]{grid-column:span 4}
 .duel-active .duel-tray .duel-controls button[data-combat=attack],.duel-active .duel-tray .duel-controls button[data-combat=strong]{order:1;grid-column:span 3;padding:3px 9px}
 .duel-active .duel-controls .command-name{display:block;white-space:nowrap;text-overflow:ellipsis;font-size:10px}
 .duel-active .duel-controls .command-stats{margin-top:2px;font-size:9px}.duel-active .duel-controls .command-stats b{font-size:14px}.duel-active .duel-controls .command-stats small{display:inline;font-size:8px}
 .duel-active .duel-tray .hand-selection .hand-action{min-height:27px}
}
.duel-active .duel-controls button[data-combat=strong],.duel-active .duel-controls button[data-combat=attack]{gap:0}.duel-active .duel-controls .command-name,.duel-active .duel-controls .command-stats{flex-shrink:0}
.duel-active .duel-controls button:disabled{cursor:not-allowed}
.duel-active .combat-turn-hint[data-network-error=true]{color:#ffe0d4;background:#421c24;border-color:#d17568;white-space:normal;line-height:1.35;font-size:11px}

/* Les deux lignes d’identité restent dans leur cartouche, indépendamment des anciens styles. */
.duel-active .arena-player{height:100%;min-height:0;box-sizing:border-box;overflow:hidden}
.duel-active .arena-player>div{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0}
.duel-active .arena-player strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.duel-active .arena-player small{margin:0;white-space:nowrap}
.duel-active .bench-unit>div button{min-height:32px;font:600 clamp(9px,.75vw,12px)/1.25 system-ui;padding:5px 4px;border:1px solid #b09262;border-radius:7px;background:linear-gradient(#30313a,#141820);color:#fff0d4;box-shadow:inset 0 1px #f3d3a522;transform:none}
.duel-active .bench-unit>div button:disabled{opacity:.38;border-color:#786c5a;box-shadow:none}
.duel-active .bench-unit>div button:not(:disabled):hover{background:linear-gradient(#594332,#25212a);border-color:#ffe0a1}
.duel-active .bench-unit>div button:focus-visible{outline:2px solid #ffe0a1;outline-offset:3px}
.duel-active .bench-unit>div button[data-combat=promote]{flex-basis:100%;background:linear-gradient(#8b3a2d,#48211e);border-color:#e6b66e;color:#fff1d6;min-height:38px}
.duel-active .bench-unit>div button[data-combat=talent]{color:#f3cf92}
.bench-can-move{cursor:grab!important;touch-action:none;user-select:none}
.bench-can-move:active{cursor:grabbing!important}.bench-dragging{opacity:.35}
.duel-active [data-promotion=true] .duelist-self{border:2px dashed #d5aa66;border-radius:12px;background:#b97b2114}
.duel-active [data-promotion=true] .duelist-self .fighter-ko{opacity:.35}
.duel-active [data-promotion=true] .self-bench .bench-can-move{outline:1px solid #dfb46a;outline-offset:3px}
@media(max-width:999px){.duel-active .arena-player strong{font-size:11px;line-height:14px}.duel-active .arena-player small{font-size:8px;line-height:10px}.duel-active .bench-unit>div button{min-height:28px;font-size:9px;padding:4px 2px}.duel-active .bench-unit>div button[data-combat=promote]{min-height:34px}}
@media(max-height:500px) and (min-width:600px){.duel-active .arena-player{padding:1px 7px}.duel-active .bench-unit>div button{min-height:20px;font-size:7px;padding:2px}}

.combat-announcement{width:min(580px,calc(100vw - 32px));padding:26px 30px;background:linear-gradient(135deg,#20232bfd,#090c13fd);border-color:#d4b37e;box-shadow:0 20px 80px #000e,inset 0 0 0 4px #d6ad6320}
.combat-announcement .announcement-label{font:600 12px/1.5 system-ui;letter-spacing:.12em;color:#e1bf86}
.combat-announcement .announcement-title{font:clamp(25px,2.5vw,36px)/1.2 Georgia;margin:10px 0;color:#fff0d7}
.combat-announcement .announcement-value{font:700 clamp(38px,4vw,56px)/1.15 Georgia;color:#ffe2b2}
.combat-announcement .announcement-detail{font:16px/1.65 system-ui;color:#f1e8db;margin:12px 0 0}
.duel-active .duel-impact{padding:8px 18px;border-radius:12px;background:#160b10ed;color:#ffe6ce;text-shadow:0 2px 4px #000;border:1px solid #db9b6f}
@media(max-width:599px){.combat-announcement{padding:22px 20px}.combat-announcement .announcement-detail{font-size:15px}.combat-announcement .announcement-label{font-size:11px}}
@media(max-height:500px){.combat-announcement{padding:12px 20px}.combat-announcement .announcement-detail{font-size:13px;line-height:1.4;margin-top:6px}.combat-announcement .announcement-title{font-size:23px;margin:5px 0}.combat-announcement .announcement-value{font-size:32px}}

.combat-announcement[data-layout=ribbon]{top:auto;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%,0);padding:14px 20px;text-align:left;width:min(560px,calc(100vw - 24px))}
.combat-announcement[data-layout=ribbon] .announcement-title{font-size:22px;margin:3px 0 5px}
.combat-announcement[data-layout=ribbon] .announcement-detail{font-size:14px;line-height:1.45;margin:5px 0 0}
.combat-announcement[data-layout=ribbon] .announcement-value{float:right;font-size:28px}
.combat-announcement[data-kind^=attack] .announcement-value{display:none}
.duel-active [data-promotion=true] .self-bench button[data-combat=energy],.duel-active [data-promotion=true] .self-bench button[data-combat=talent],.duel-active [data-promotion=true] .duelist-self .fighter-trait{display:none}
.promotion-drop-label{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);width:calc(100% - 16px);max-width:240px;padding:8px;text-align:center;background:#11151af0;border:1px solid #bc985f;border-radius:8px;font:600 13px/1.4 system-ui;color:#ffe4b4;pointer-events:none}
@media(max-width:999px){.promotion-drop-label{bottom:5px;padding:5px;font-size:10px}}
@media(max-width:599px){
 .duel-active [data-promotion=true] .self-zone .bench-unit,.duel-active [data-promotion=true] .self-zone .bench-slot{width:min(calc((100cqh - 60px)/1.5),calc((100cqw * .63 - 12px)/3));flex-basis:min(calc((100cqh - 60px)/1.5),calc((100cqw * .63 - 12px)/3))}
 .duel-active .bench-unit>div button[data-combat=retreat],.duel-active .bench-unit>div button[data-combat=energy]{font-size:8px;white-space:nowrap}
 .duel-active .bench-unit>div button[data-combat=retreat],.duel-active .bench-unit>div button[data-combat=talent]{font-size:0}
 .duel-active .bench-unit>div button[data-combat=retreat]:after{content:'↗';font:600 15px/1 system-ui}
 .duel-active .bench-unit>div button[data-combat=talent]:after{content:'Talent';font:600 9px/1.2 system-ui}
}

/* La taille des libellés pilote aussi l’espace réservé, pas seulement leur police. */
.duel-active .duel-table{grid-template-rows:52px minmax(0,1fr) 42px clamp(220px,29dvh,360px)}
.duel-active .duel-header h1{font:600 23px/1.25 Georgia}
.duel-active .duel-header .eyebrow{font:600 12px/1.4 system-ui;letter-spacing:.08em;color:#e4cda6}
.duel-active .arena-board{grid-template-rows:52px minmax(0,1fr) 42px minmax(0,1fr) 52px}
.duel-active .arena-player{max-width:600px;padding:6px 14px;gap:12px}
.duel-active .arena-player strong{font:600 16px/20px system-ui}
.duel-active .arena-player small{font:11px/15px system-ui;letter-spacing:.03em;color:#e4d4bd}
.duel-active .arena-avatar{width:32px;height:32px;flex-shrink:0}
.duel-active .fighter-vitals{font:700 20px/1.25 system-ui;min-height:36px;padding:5px 8px;color:#fff0d5}
.duel-active .fighter-vitals small{font:12px/1.3 system-ui;color:#e4d4bd}
.duel-active .vitals-max{font-style:normal}
.duel-active .fighter-vitals>b{white-space:nowrap}
.duel-active .fighter-vitals span{font:600 16px/1.3 system-ui}
.duel-active .duelist .fighter-card{width:min(calc((100cqh - 42px)/1.5),22cqw)}
.duel-active .fighter-trait{font:14px/1.5 system-ui;color:#f2e3ca}
.duel-active .fighter-trait b{font:700 13px/1.4 system-ui;letter-spacing:.06em}
.duel-active .fighter-trait em{font-size:13px}
.duel-active .bench-unit>small{font:600 12px/18px system-ui;color:#ffebc8}
.duel-active .bench-unit>div button{font-size:12px}
.duel-active .arena-zone .bench-slot:after{font:600 12px/1.3 system-ui;color:#ddc7a4}
.duel-active .arena-pile small{font:600 12px/1.4 system-ui;color:#e4d4bd}
.duel-active .arena-divider,.duel-active .arena-divider .combat-field{height:42px}
.duel-active .arena-divider .combat-field small{font:12px/1.4 system-ui;color:#f2e3ca}
.duel-active .combat-turn-hint{display:flex;align-items:center;padding:6px 14px;font:14px/1.4 system-ui;white-space:normal;overflow:hidden;color:#fff0d5}
.duel-tray{grid-template-columns:minmax(0,1fr) minmax(340px,29%);grid-template-rows:42px minmax(0,1fr);gap:6px 20px}
.duel-active .duel-tray .duel-hand-heading{font:12px/1.4 system-ui;align-items:center;color:#e4d4bd}
.duel-active .duel-tray .hand-selection{font:13px/1.4 system-ui;white-space:normal;color:#e4d4bd;gap:12px}
.duel-active .duel-tray .hand-selection>span{max-width:none;flex:1;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.duel-active .duel-tray .hand-selection .hand-action{font:600 13px/1.3 system-ui;min-height:40px;padding:8px 14px;flex-shrink:0}
.duel-active .duel-tray .duel-controls{gap:8px}
.duel-active .duel-tray .duel-controls button{min-height:54px;font:600 14px/1.3 system-ui;color:#fff0d5}
.duel-active .duel-controls .command-name{font:600 14px/1.3 system-ui}
.duel-active .duel-controls .command-stats{font:12px/1.3 system-ui;gap:8px;margin-top:4px}
.duel-active .duel-controls .command-stats b{font:700 22px/1.2 system-ui}
.duel-active .duel-controls .command-stats small{font:12px/1.3 system-ui}
.duel-active .duel-controls button:disabled{opacity:.75}
@media(min-width:1000px) and (max-height:900px),(min-width:600px) and (max-height:500px){
 .duel-active .arena-board{grid-template-rows:52px minmax(0,1fr)}
 .duel-active .duelist .fighter-card{width:min(calc((100cqh - 42px)/1.5),35cqw)}
 .duel-active .arena-divider{height:100%}
}
@media(max-width:999px){
 .duel-active .duel-table{grid-template-rows:48px minmax(0,1fr) 42px clamp(270px,35dvh,360px)}
 .duel-active .duel-header h1{font-size:17px}.duel-active .duel-header .eyebrow{font-size:10px}
 .duel-active .arena-board{grid-template-rows:46px minmax(0,1fr) 32px minmax(0,1fr) 46px;padding:4px 6px}
 .duel-active .arena-player{padding:4px 9px;gap:7px}
 .duel-active .arena-player strong{font:600 13px/17px system-ui}
 .duel-active .arena-player small{font:10px/13px system-ui;letter-spacing:0}
 .duel-active .arena-avatar{width:26px;height:26px}
 .duel-active .duelist .fighter-card{width:min(calc((100cqh - 48px)/1.5),34cqw)}
 .duel-active .fighter-vitals{grid-template-columns:minmax(0,1fr);font-size:16px;min-height:42px;padding:3px 4px;gap:1px}
 .duel-active .fighter-vitals .vitals-max{display:none}
 .duel-active .fighter-vitals>span{line-height:12px}
 .duel-active .fighter-vitals small{font-size:11px}.duel-active .fighter-vitals span{font-size:12px}
 .duel-active .bench-unit>small{font:600 10px/16px system-ui}
 .duel-active .arena-zone .bench-slot:after{font-size:10px}
 .duel-active .arena-divider,.duel-active .arena-divider .combat-field{height:32px}
 .duel-active .arena-divider .combat-field small{font:11px/1.3 system-ui;max-width:260px}
 .duel-active .combat-turn-hint{padding:4px 9px;font:12px/1.35 system-ui}
 .duel-tray{grid-template-columns:minmax(0,1fr);grid-template-rows:94px 22px 38px minmax(0,1fr);gap:4px;padding:0 2px}
 .duel-active .duel-tray .duel-hand-heading{font-size:10px}
 .duel-active .duel-tray .hand-selection{font-size:11px;gap:8px}
 .duel-active .duel-tray .hand-selection .hand-action{font-size:12px;min-height:36px;padding:6px 12px}
 .duel-active .duel-tray .duel-controls{gap:5px;grid-template-rows:44px 44px}
 .duel-active .duel-tray .duel-controls button{font:600 12px/1.25 system-ui;min-height:44px;padding:4px 6px}
 .duel-active .duel-controls .command-name{font-size:12px}
 .duel-active .duel-controls .command-stats{font-size:11px;margin-top:2px;gap:3px}
 .duel-active .duel-controls .command-stats b{font-size:18px}
 .duel-active .duel-controls .command-stats small{font-size:10px}
}
@media(max-height:500px) and (min-width:600px){
 .duel-active .duel-table{grid-template-rows:36px minmax(0,1fr) 32px 128px;gap:2px}
 .duel-active .duel-header h1{font-size:16px}.duel-active .duel-header .eyebrow{font-size:10px}
 .duel-active .arena-board{grid-template-rows:30px minmax(0,1fr);padding:3px 8px}
 .duel-active .arena-player small{display:none}.duel-active .arena-avatar{width:20px;height:20px}
 .duel-active .fighter-vitals{min-height:22px;font-size:14px;padding:2px 4px}.duel-active .fighter-vitals small{font-size:10px}
 .duel-active .duelist .fighter-card{width:min(calc((100cqh - 26px)/1.5),32cqw)}
 .duel-active .arena-divider{height:100%}
 .duel-tray{grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:34px minmax(0,1fr);gap:4px 12px}
 .duel-active .duel-tray .duel-controls{grid-template-rows:repeat(2,1fr);gap:4px;padding:0}
 .duel-active .duel-tray .duel-controls:has(button[data-combat=talent]){grid-template-columns:repeat(3,1fr)}
 .duel-active .duel-tray .duel-controls button{grid-column:auto!important;min-height:44px;font-size:11px;padding:3px 6px}
 .duel-active .self-bench .bench-unit>div{display:none}
 .duel-active .self-zone .bench-unit,.duel-active .self-zone .bench-slot{width:min(calc((100cqh - 24px)/1.5),calc((100cqw * .63 - 12px)/3));flex-basis:min(calc((100cqh - 24px)/1.5),calc((100cqw * .63 - 12px)/3))}
 .duel-active .duel-controls .command-name{font-size:11px}.duel-active .duel-controls .command-stats b{font-size:15px}
}

/* On short portrait screens, detailed bench actions live in the card inspector. */
@media(max-width:599px) and (max-height:720px){
 .duel-active .duel-table{grid-template-rows:42px minmax(0,1fr) 36px 160px;gap:3px}
 .duel-active .arena-board{grid-template-rows:28px minmax(0,1fr) 24px minmax(0,1fr) 28px}
 .duel-active .arena-player small{display:none}
 .duel-active .arena-player{padding:2px 7px}.duel-active .arena-avatar{width:20px;height:20px}
 .duel-active .arena-divider,.duel-active .arena-divider .combat-field{height:24px}
 .duel-active .self-bench .bench-unit>div{display:none}
 .duel-active .self-zone .bench-unit,.duel-active .self-zone .bench-slot{width:min(calc((100cqh - 24px)/1.5),calc((100cqw * .63 - 12px)/3));flex-basis:min(calc((100cqh - 24px)/1.5),calc((100cqw * .63 - 12px)/3))}
 .duel-tray{grid-template-columns:minmax(0,1fr) minmax(180px,1fr);grid-template-rows:22px minmax(0,1fr);gap:3px 6px}
 .duel-active .duel-tray .duel-hand-heading{grid-column:1;grid-row:1}
 .duel-active .duel-hand-heading>span{display:none}
 .duel-active .duel-tray .hand-selection{grid-column:2;grid-row:1;font-size:10px}
 .duel-active .duel-tray .hand-selection>span{display:none}
 .duel-active .duel-tray .hand-selection .hand-action{min-height:26px;padding:3px 8px;font-size:11px}
 .duel-active .duel-tray .duel-hand{grid-column:1;grid-row:2;--hand-width:60px}
 .duel-active .duel-tray .duel-controls{grid-column:2;grid-row:2;grid-template-columns:1fr 1fr;grid-template-rows:repeat(2,1fr);gap:3px;display:grid}
 .duel-active .duel-tray .duel-controls button{grid-column:auto!important;min-height:40px;order:initial;padding:2px 5px;font-size:11px}
 .duel-active .duel-controls:has(button[data-combat=talent]){grid-template-rows:repeat(3,1fr)}
 .duel-active .duel-controls .command-name{font-size:11px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2}
 .duel-active .duel-controls .command-stats b{font-size:15px}
 .duel-active .duel-controls .command-stats small{display:none}
}
.viewer-combat-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 18px}
.viewer-combat-actions button{min-height:44px;padding:10px 12px;border:1px solid #ac8955;border-radius:9px;background:linear-gradient(#3a3030,#171c24);color:#fff0d5;font:600 14px/1.4 system-ui}
.viewer-combat-actions button:disabled{opacity:.55}
.viewer-combat-actions button:focus-visible{outline:2px solid #ffe1a7;outline-offset:3px}
.duel-active .duel-options p,.duel-active .duel-options summary{font:15px/1.6 system-ui}
.duel-active .duel-options>button{font:600 14px/1.4 system-ui}
.duel-active .viewer-info p{font-size:16px;color:#e8ddcf}
.duel-active .viewer-info .viewer-film,.duel-active .viewer-info>span,.duel-active .viewer-info>a,.duel-active .viewer-hint{font-size:12px}

.duel-active .self-bench{align-items:flex-start;padding:0}
.duel-active .self-bench .bench-unit{gap:4px}
.duel-active .bench-unit>small{display:block;width:100%;text-align:center;background:#090d14e8;border-radius:4px;padding:0;letter-spacing:0}
@media(max-width:999px){.duel-active .bench-pv-label{display:none}}

@media(min-width:600px){.duel-active .bench-unit>div button[data-combat=retreat]{font-size:11px;white-space:nowrap}}
