/* Double Front desktop layout: twelve physical positions, six per player.
   Full rules remain in the 16px+ dossier; card identifiers and stats stay legible. */
.battle-app{--rail-left:clamp(150px,10.4vw,200px);--rail-right:clamp(248px,16vw,300px)}
.battle-layout{gap:14px;padding-inline:16px}.lanes{gap:16px;align-items:stretch}.lane{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}
.formation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-items:center;justify-items:center;width:100%}
.position-wrap{display:flex;flex-direction:column;align-items:center;width:100%;min-width:0}.position-label{font-family:var(--wo-text);font-size:10px;letter-spacing:.8px;color:#c5cfd4;font-weight:600;padding:3px 0 4px;white-space:nowrap}
.position-wrap:first-child .position-label{color:#f0cb85}.field-slot{width:100%;display:flex;justify-content:center;padding:1px 0 6px}
.field-card,.empty-slot{width:var(--field-width);max-width:100%;flex:none}.front-heading{height:38px;gap:7px;white-space:nowrap;letter-spacing:.8px;font-size:12px;flex:none}.front-heading:before,.front-heading:after{display:none}.front-heading svg{width:17px;height:17px}.formation-power{margin-left:auto;font-family:var(--wo-num);font-size:19px;color:#f5dfb5;letter-spacing:0}.formation-power small{font-size:9px;color:#c6cdd1;font-family:var(--wo-text)}
.field-card .card-name{font-size:clamp(13px,.91vw,18px);height:19%;top:56%;padding-top:2px}.field-card .card-type{font-size:9px;top:80%}.field-card .card-cost{font-size:21px}.field-card .card-footer{top:89%;font-size:7px}.field-stats{gap:3px;bottom:-5px}.state-stat{font-size:20px;padding:2px 4px;min-width:31px;gap:3px}.state-stat svg{width:13px;height:13px}.modifier-label{font-size:9px;top:49%;right:-3px}.modifier-duration{font-size:7px}.empty-slot{border-color:#59717b}.empty-slot span{font-size:10px}.empty-slot svg{width:22px;height:22px}
.card-dossier h2{font-size:24px}.card-dossier .dossier-effect{font-size:17px;line-height:1.48}.card-dossier .dossier-scope{font-size:12px}.inline-options{max-width:min(780px,68vw);max-height:55vh;overflow:auto}.inline-options button{font-size:14px;line-height:1.35}.setup-heading h1{font-size:42px}.setup-heading p{font-size:16px}
.drop-valid:after{font-size:10px;letter-spacing:.3px}.drop-replace:after{max-width:100%;font-size:9px;white-space:normal}.selection-banner{font-size:13px}.table-drop-zone{font-size:13px}
@media(max-width:1450px){.battle-app{--rail-left:150px;--rail-right:250px}.battle-layout{gap:10px;padding-inline:12px}.lanes{gap:12px}.formation{gap:6px}.front-heading{font-size:10px;gap:4px}.formation-power{font-size:17px}.front-heading svg{width:14px}.field-card .card-name{font-size:13px}.state-stat{font-size:18px;min-width:29px}.position-label{font-size:9px;letter-spacing:.3px}.table-location{display:none}}
@media(max-height:800px){.field-card .card-name{font-size:13px}.field-card .card-cost{font-size:19px}.state-stat{font-size:17px}.front-heading{height:32px}.position-label{font-size:9px;padding:2px 0}.card-dossier .dossier-effect{font-size:16px}.leaders-rail{gap:5px}.leader-panel .portrait-wrap{height:38px}}
@media(prefers-reduced-motion:reduce){.formation,.position-wrap{transition:none}}
