/* Arena adaptable: tablero, mano y controles visibles en escritorio. */
body.duelMode{background:#090f20}.duelMode .sidebar{width:62px;padding:16px 7px}.duelMode .brand{justify-content:center;margin-bottom:25px}.duelMode .brand>span:last-child,.duelMode .navLabel,.duelMode .tab span,.duelMode .sidebarFoot{display:none}.duelMode .tab{justify-content:center;padding:11px}.duelMode .appShell{margin-left:62px}.duelMode main{max-width:none}.duelMode .topbar{min-height:50px;height:50px;padding:8px 20px;position:relative;background:#0c1425}.duelMode .appFooter{display:none}#gameView.active{display:grid;grid-template-rows:62px 42px minmax(260px,1fr) 166px;gap:10px;height:calc(100dvh - 50px);max-width:none;padding:14px 22px;position:relative;isolation:isolate;animation:none}#gameView::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 20%,#274c7455,transparent 65%),linear-gradient(#091323df,#091323e8),url('../maps/londres.webp') center/cover;pointer-events:none}.duelHud{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:20px}.duelist{display:flex;gap:12px;align-items:center;min-width:0}.duelist img{width:43px;height:53px;object-fit:cover;object-position:top;border:1px solid #856fb0;border-radius:8px}.duelist span{display:block;font-size:10px;letter-spacing:1px;color:#aeb8cb}.duelist strong{display:block;font-size:17px;color:#ecedfa}.duelist>b{font-family:Georgia,serif;font-size:30px;min-width:50px;padding:1px 10px;background:#362346;border:1px solid #9174a7;border-radius:9px;text-align:center;color:#e6c4fa}.ally{justify-content:end;text-align:right}.ally>b{background:#153345;border-color:#5ca6bd;color:#9deaff}.ally img{border-color:#75bacd}.duelCrest{text-align:center}.duelCrest>span{font-size:9px;letter-spacing:2px;color:#a9b9d5}.duelCrest strong{display:block;font-family:Georgia,serif;font-size:27px;letter-spacing:6px;color:#d4ecff}.duelCrest small{font-size:8px;color:#8ca4c4;letter-spacing:1px}.duelMode .gameMeta{display:flex;align-items:center;gap:15px;border:1px solid #344861;border-radius:8px;padding:8px 12px!important;margin:0;background:#111d31;color:#c7d4e6;font-size:12px;min-width:0}.duelMode #roundLabel{white-space:nowrap;color:#f0d59c}.duelMode #factionLabel{display:none}.duelMode #roundStatus{flex:1;font-size:12px;max-width:none;margin:0;line-height:1.3}.duelMode #roundCountdown{background:#44315a;color:#edd4ff;padding:6px 10px;border-radius:5px;white-space:nowrap;font-size:12px;font-weight:700}.duelMode .mapsBoard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;min-height:0;margin:0;align-items:stretch}.duelMode .mapCard{display:grid;grid-template-rows:minmax(0,1fr) 154px minmax(0,1fr);min-height:0;border:1px solid #465773;border-radius:10px;background:#101b2ed9;overflow:hidden;box-shadow:0 8px 30px #0004;position:relative;transition:border-color .15s}.duelMode .mapCard.targetable{outline:none;border-color:#8ddbea}.duelMode .mapCard.targetable:hover{transform:none;filter:none}.laneSide{padding:8px 10px;min-height:0;display:flex;flex-direction:column;gap:6px;position:relative}.enemySide{background:linear-gradient(120deg,#39274570,#25243b50)}.playerSide{background:linear-gradient(120deg,#173b5166,#142d4040);border-top:1px solid #38516d}.laneSide h4{display:flex;justify-content:space-between;gap:5px;margin:0;font-size:11px;letter-spacing:.6px;color:#d0bddf}.playerSide h4{color:#a1def0}.laneSide h4 span{font-size:10px;letter-spacing:0;font-weight:400;color:#a2b3c9}.laneUnits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(80px,105px);gap:6px;overflow:auto;min-height:0;flex:1;align-content:start;scrollbar-width:thin;scrollbar-color:#486787 #132037}.emptyFormation{grid-column:1/-1;display:grid;place-items:center;font-size:10px;letter-spacing:1px;color:#8493ae;min-height:60px}.duelMode .hiddenCpu{font-size:9px;line-height:1.3;margin:0;padding:0;border:0;color:#ab9bbb;text-align:center}.duelMode .miniUnit{position:relative;display:block;padding:0;border:1px solid #705889;border-radius:5px;background:#142039;min-height:0;overflow:hidden;animation:none}.playerSide .miniUnit{border-color:#588899}.duelMode .miniUnit.newUnit{border-color:#8ee1ef;box-shadow:0 0 8px #67ccdd35}.unitDetail{display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:none;cursor:zoom-in}.duelMode .miniUnit img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;border-radius:0}.unitOverlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#091325 25%);text-align:center;padding:12px 3px 4px;pointer-events:none}.unitOverlay strong{display:block;font-size:10px;color:#f2ede0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unitOverlay span{display:block;font-size:8px;color:#a9c6e0}.unitOverlay b{font-size:10px;color:#e3f3ff}.unitRound{position:absolute;top:3px;right:3px;padding:1px 3px;background:#10213c;border-radius:3px;color:#ddd;font-size:8px;pointer-events:none}.unitRunes{position:absolute;left:3px;top:3px;font-size:9px;color:#f3d28e;background:#152743;padding:1px 4px;border-radius:4px;pointer-events:none}.protectedBadge{position:absolute;left:0;right:0;top:22px;text-align:center;font-size:8px;font-weight:700;background:#377985e0;color:#fff;pointer-events:none}.choosingProtection .playerSide .miniUnit{border-color:#dacb87;cursor:crosshair}.choosingProtection .playerSide .unitDetail{cursor:crosshair}.territoryCore{display:grid;grid-template-columns:1fr;grid-template-rows:56px 22px 45px 31px;position:relative;border-top:1px solid #51425c;background:#101b2e}.duelMode .mapHero{height:auto;min-height:0;position:relative}.duelMode .mapTitle{position:absolute;left:0;right:0;bottom:0;width:auto;padding:8px 52px;font-size:14px;text-align:center;line-height:1.1;z-index:1;background:linear-gradient(transparent,#0a1328bc)}.duelMode .mapTitle .small{font-size:8px}.territoryScore{position:absolute;z-index:2;top:10px;background:#362345;border:1px solid #9b75a6;border-radius:7px;padding:2px 6px;display:flex;align-items:center;gap:4px;line-height:1.2;color:#e6c4fa}.territoryScore b{font-family:Georgia,serif;font-size:21px}.territoryScore span{font-size:7px}.rivalScore{left:6px}.allyScore{right:6px;background:#103246;border-color:#66acbe;color:#9ee7f8}.mapInfo{position:relative;padding:0;z-index:4;background:#1b2941;color:#bfd0e2}.mapInfo summary{cursor:pointer;list-style:none;font-size:9px;letter-spacing:.3px;padding:3px 8px}.mapInfo summary span{float:right}.mapInfo>div{position:absolute;top:22px;left:0;right:0;background:#172a43;border:1px solid #59728f;padding:10px;box-shadow:0 8px 15px #0007;font-size:12px;line-height:1.4}.liveStats{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;background:#132a3c}.liveStats>span{font-size:8px;letter-spacing:.5px;max-width:80px;color:#94b7c7;line-height:1.3}.liveStats>div{display:flex;gap:15px}.liveStats b{font-size:20px;text-align:center;color:#def5ff;font-weight:600;line-height:1}.liveStats small{display:block;font-size:8px;letter-spacing:.8px;margin-top:3px;color:#8eafc9;font-weight:400}.previewDisclaimer{font-size:9px;padding:4px 8px;text-align:center;color:#96a6bd;align-self:center}.laneResult{display:flex;align-items:center;justify-content:center;gap:7px;padding:3px 6px;font-size:7px;color:#e1ce91;background:#30323a}.laneResult strong{font-size:12px;color:#fff}.laneResult span{font-size:7px;color:#b5c8d8}.dropHint{font-size:9px;letter-spacing:.4px;text-align:center;color:#99cfdc;border:1px dashed #557e91;border-radius:4px;padding:4px;line-height:1.2;flex-shrink:0}.duelDock{display:grid;grid-template-columns:minmax(310px,1.4fr) minmax(250px,1fr) 175px;gap:12px;min-height:0;background:#0e1c30;padding:10px 12px;border:1px solid #3c536d;border-radius:10px}.duelMode .handPanel{border:0;background:none;padding:0;min-width:0}.dockLabel{display:flex;align-items:center;gap:10px;margin-bottom:6px;min-height:17px}.dockLabel strong{font-size:10px;letter-spacing:.8px;color:#e5dcc4}.dockLabel span{font-size:10px;color:#88d6e4}.dockLabel small{font-size:9px;color:#91a8c2}.duelMode .hand{display:flex;gap:9px;justify-content:center;align-items:flex-start;min-height:0}.duelMode .handCard{position:relative;flex:0 1 87px;width:87px;padding:4px;background:#12233b;border:1px solid #698ca9;border-radius:6px;cursor:grab;touch-action:none;user-select:none;min-width:0;animation:none;transition:border-color .15s,transform .15s}.duelMode .handCard:hover{transform:translateY(-4px);border-color:#b4e8ef;z-index:3}.duelMode .handCard.active{border-color:#91edf7;box-shadow:0 0 0 2px #68bcc550;transform:translateY(-4px)}.duelMode .handCard.assigned{opacity:.55;filter:none}.duelMode .handCard img{display:block;width:100%;height:84px;object-fit:cover;object-position:top;border-radius:3px;pointer-events:none}.duelMode .cardMeta{display:block;font-size:10px;text-align:center;line-height:1.2;padding-top:3px;color:#e8e3d4}.handStats{position:absolute;top:62px;left:4px;right:4px;display:flex;justify-content:space-between;pointer-events:none}.handStats span{background:#143950;border:1px solid #77b6c7;color:#c9f5ff;font-size:13px;font-weight:700;line-height:1.05;text-align:center;min-width:23px;padding:2px 3px;border-radius:5px}.handStats span:last-child{background:#3c294d;border-color:#aa86bc;color:#e9d3f9}.handStats small{display:block;font-size:6px;margin-top:2px;font-weight:400}.duelMode .assignment{font-size:6px;letter-spacing:0;text-align:center;margin-top:3px;line-height:1.2;min-height:8px;color:#a4c5d7}.duelMode .removeAssign{position:absolute;top:-6px;right:-5px;width:19px;height:19px;border-radius:50%;border:1px solid #95c0d2;background:#172f46;padding:0;font-size:13px;z-index:4}.duelMode .removeAssign:disabled{display:none}.handDetail{position:absolute;top:5px;left:5px;width:18px;height:18px;border:1px solid #99b5ce;border-radius:50%;padding:0;z-index:4;font-size:11px;background:#0d203b;color:#d5e9ff;touch-action:auto}.legendDock{min-width:0;border-left:1px solid #30465d;padding-left:12px;overflow:auto;scrollbar-width:thin}.duelMode .miniChoices{display:flex;gap:7px;margin:0}.duelMode .miniChoice{position:relative;flex:0 1 61px;min-width:0;padding:3px;background:#142039;border:1px solid #72618b;border-radius:5px;cursor:pointer}.duelMode .miniChoice img{width:100%;height:55px;object-fit:cover;object-position:top;display:block;border-radius:3px}.duelMode .miniChoice span{display:block;font-size:8px;color:#e1d7ee;line-height:1.2;margin-top:3px}.duelMode .miniChoice small{display:block;font-size:7px;color:#a6adc6}.duelMode .miniChoice.locked{filter:grayscale(.85);opacity:.6}.duelMode .miniChoice.used{opacity:.35}.duelMode .miniChoice.selected{border:2px solid #e2c696;background:#403652}.duelMode .targetArea{font-size:10px;line-height:1.2;margin-top:4px;padding:0;color:#e0cc90}.duelMode .targetArea .small{font-size:10px}.duelMode .revealBox{margin:4px 0 0;padding:0;background:none;border:0;font-size:10px;line-height:1.3}.duelMode .revealBox button{padding:4px 7px;font-size:9px}.actionDock{display:flex;flex-direction:column;justify-content:center;gap:8px}.actionDock button{padding:10px 9px;font-size:10px;letter-spacing:.4px}.duelMode #confirmRound{background:linear-gradient(120deg,#6378c7,#7957aa);border:1px solid #aeabdf;color:#fff;font-size:11px;min-height:46px}.duelMode #confirmRound:disabled{opacity:.55}.duelMode #combatDetails{color:#bdd0e8}.duelMode #abortDuel{font-size:9px;border-color:#524459;color:#c4aebb;background:transparent}.dropValid .playerSide{box-shadow:inset 0 0 0 1px #67c8d4}.dropBlocked .playerSide{opacity:.45}.dropHover.dropValid .playerSide{background:#255b7299;box-shadow:inset 0 0 0 2px #b0eff7}.dropHover.dropBlocked .playerSide{background:#783b4440}.dragGhost{position:fixed;width:95px;z-index:1000;pointer-events:none;transform:translate(-50%,-55%) rotate(-4deg);filter:drop-shadow(0 12px 25px #000a)}.dragGhost img{width:100%;border:2px solid #94e4ed;border-radius:7px}.dragOrigin{opacity:.25!important}.draggingCard,.draggingCard *{cursor:grabbing!important;user-select:none}.miniUnit[data-drag-card]{touch-action:none;cursor:grab}.miniUnit[data-drag-card] .unitDetail{cursor:grab}.combatBreakdown article{border-bottom:1px solid #35506b;padding:8px 0}.combatBreakdown p{font-size:13px}.duelMode .detailCard{max-height:85dvh;overflow:auto}
@media(max-width:1100px){#gameView.active{padding:10px 14px;gap:8px;grid-template-rows:56px 44px minmax(250px,1fr) 166px}.duelDock{grid-template-columns:minmax(280px,1.2fr) minmax(210px,1fr) 140px;gap:8px;padding:8px}.dockLabel small{display:none}.duelMode .mapsBoard{gap:10px}.duelMode .mapTitle{font-size:12px}.liveStats>div{gap:10px}.duelMode .hand{gap:7px}.duelMode .miniChoices{gap:5px}.duelist strong{font-size:14px}.laneSide h4{font-size:10px}}
@media(max-width:800px){#gameView.active{height:auto;min-height:calc(100dvh - 50px);grid-template-rows:56px auto minmax(390px,1fr) auto}.duelMode .sidebar{display:none}.duelMode .appShell{margin-left:0}.duelMode .breadcrumb{display:none}.duelDock{grid-template-columns:1fr 1fr;min-height:155px}.actionDock{grid-column:1/-1;flex-direction:row}.actionDock button{flex:1}.duelist img{width:32px;height:42px}.duelist strong{font-size:11px}.duelist span{font-size:8px}.duelist>b{font-size:25px;min-width:35px;padding:2px 6px}.duelCrest strong{font-size:22px}.duelCrest small{font-size:6px}.duelMode .gameMeta{flex-wrap:wrap;gap:5px 10px}.duelMode #roundStatus{font-size:10px}.duelMode #roundCountdown{font-size:10px}.laneUnits{grid-auto-rows:85px}.unitOverlay strong{font-size:8px}.unitOverlay span{font-size:7px}.territoryScore b{font-size:17px}.liveStats b{font-size:17px}.liveStats>span{font-size:7px}.duelMode .mapTitle{font-size:11px;padding:8px 43px}.duelMode .mapsBoard{gap:7px}}
@media(max-width:540px){#gameView.active{padding:8px 6px;gap:7px;grid-template-rows:50px auto 435px auto}.duelHud{gap:5px}.duelist{gap:4px}.duelist img{width:24px;height:33px}.duelist span{font-size:6px;letter-spacing:0}.duelist strong{font-size:8px}.duelist>b{font-size:19px;min-width:24px;padding:2px 4px}.duelCrest>span,.duelCrest small{display:none}.duelCrest strong{font-size:21px;letter-spacing:2px}.duelMode .gameMeta{padding:7px 8px!important;font-size:11px}.duelMode #roundStatus{order:3;flex-basis:100%;font-size:10px}.duelMode #roundCountdown{margin-left:auto;font-size:9px}.duelMode .mapCard{grid-template-rows:minmax(0,1fr) 175px minmax(0,1fr)}.laneSide{padding:6px 4px;gap:5px}.laneSide h4{font-size:8px;letter-spacing:0;flex-wrap:wrap;gap:2px}.laneSide h4 span{font-size:7px}.laneUnits{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:77px;gap:3px}.unitOverlay strong{font-size:7px}.unitOverlay span{font-size:6px}.unitOverlay b{font-size:8px}.unitRound{font-size:6px}.unitRunes{font-size:7px}.emptyFormation{font-size:7px;min-height:35px}.duelMode .hiddenCpu{font-size:7px}.dropHint{font-size:7px;padding:4px 1px;letter-spacing:0}.territoryCore{grid-template-rows:73px 25px 48px 29px}.duelMode .mapTitle{font-size:11px;padding:5px 3px;bottom:0;line-height:1.1}.territoryScore{top:3px;font-size:6px;padding:2px 3px;gap:2px}.territoryScore b{font-size:16px}.territoryScore span{font-size:5px}.rivalScore{left:3px}.allyScore{right:3px}.mapInfo summary{font-size:7px;padding:5px 4px;letter-spacing:0}.mapInfo>div{font-size:10px;padding:6px;top:25px}.liveStats{padding:3px 4px;display:block}.liveStats>span{display:block;font-size:6px;text-align:center;max-width:none;margin-bottom:3px}.liveStats>div{justify-content:center;gap:8px}.liveStats b{font-size:16px}.liveStats small{font-size:6px;margin-top:2px}.previewDisclaimer{font-size:7px;padding:3px}.laneResult{font-size:6px;flex-wrap:wrap;gap:1px 3px;line-height:1.1}.laneResult strong{font-size:10px}.laneResult span{font-size:6px;flex-basis:100%;text-align:center}.duelDock{grid-template-columns:1fr;padding:8px;gap:10px}.duelMode .hand{gap:8px}.duelMode .handCard{flex-basis:75px;width:75px}.duelMode .handCard img{height:84px}.duelMode .cardMeta{font-size:9px}.legendDock{border:0;border-top:1px solid #30465d;padding:7px 0 0;overflow:visible}.duelMode .miniChoices{justify-content:center;gap:8px}.duelMode .miniChoice{flex-basis:53px}.duelMode .miniChoice img{height:48px}.actionDock{gap:5px}.actionDock button{font-size:8px;padding:8px 5px}.duelMode #confirmRound{font-size:10px;min-height:40px}.duelMode .toast{left:10px;right:10px}.protectedBadge{font-size:6px}.duelMode .detailCard{padding:20px}}
@media(min-width:801px) and (max-height:700px){#gameView.active{grid-template-rows:48px 36px minmax(240px,1fr) 148px;padding-top:8px;padding-bottom:8px;gap:7px}.duelMode .mapCard{grid-template-rows:minmax(0,1fr) 140px minmax(0,1fr)}.territoryCore{grid-template-rows:48px 20px 43px 29px}.laneUnits{grid-auto-rows:75px}.duelist img{height:42px;width:34px}.duelCrest strong{font-size:23px}.duelMode .handCard img{height:72px}.handStats{top:50px}.duelMode .miniChoice img{height:45px}.duelMode .mapTitle{font-size:12px}}
.duelCrest small{display:none}.laneUnits{grid-template-rows:repeat(var(--unit-rows,1),minmax(0,1fr));grid-auto-rows:80px;align-content:stretch}.laneUnits.multipleRows{grid-template-rows:repeat(var(--unit-rows,1),minmax(75px,1fr))}.duelMode .unitDetail:hover{transform:none}
@media(max-width:540px){.laneUnits{grid-template-rows:repeat(var(--phone-rows,1),minmax(0,1fr))}.laneUnits.multipleRows,.laneUnits[data-count="3"]{grid-template-rows:repeat(var(--phone-rows,1),minmax(77px,1fr))}}
.playerSide.hasUnits .dropHint{display:none}.duelMode .miniUnit img{object-position:50% 28%}.unitOverlay{padding:8px 3px 3px}.protectedBadge{top:3px;left:3px;right:auto;padding:2px 4px;border-radius:3px;font-size:7px}

/* Etapa 4: las cuatro cartas permanecen disponibles para moverlas o retirarlas. */
.duelMode .handCard.assigned{opacity:1;border-color:#79c7aa;background:#16313b;filter:none}
.duelMode .handCard.assigned .assignment{color:#b4f5ce;font-weight:700}
.duelMode .handCard.active,.onlineApp .handCard[aria-pressed="true"]{outline:3px solid #a5f0f9;outline-offset:2px;box-shadow:0 0 0 5px #19495499}
.duelMode .handCard:focus-visible,.duelMode .playerSide:focus-visible,.duelMode .mapCard:focus-visible,.onlineApp [data-drop]:focus-visible{outline:3px solid #ffe3a1;outline-offset:2px}
.duelMode .handCard .assignment{font-size:9px;min-height:22px;line-height:1.25;padding:2px 0}
.duelMode .removeAssign{min-width:26px;min-height:26px;right:-5px;top:-5px;line-height:1}
.duelMode .dockLabel{flex-wrap:wrap}
.duelMode .dockLabel #deploymentHint{flex-basis:100%;display:block;font-size:11px;line-height:1.35;color:#c7e3e8;letter-spacing:0}
.duelMode .handPanel .hand{padding:5px 4px 8px;min-height:130px}
.duelMode .handCard{flex-shrink:1;flex-grow:1;max-width:115px}
.duelMode .handCard .cardMeta strong{overflow-wrap:anywhere}
.duelMode .playerSide.dropHover{background:#1d545e88;outline:3px solid #a5f0f9;outline-offset:-3px}
@media(max-width:800px){#gameView.active{grid-template-rows:auto auto minmax(390px,1fr) auto}.duelMode .duelDock{grid-template-columns:1fr;gap:15px}.duelMode .actionDock{grid-column:auto}.duelMode .handPanel{min-width:0}.duelMode .handCard{max-width:145px}.duelMode .dockLabel #deploymentHint{display:block}}
@media(max-width:540px){.duelMode .handPanel .hand{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.duelMode .handCard{max-width:none;width:100%;min-width:0}.duelMode .handCard img{height:125px}.duelMode .handCard .handStats{top:102px}.duelMode .mapCard{min-width:0}.duelMode .dockLabel #deploymentHint{font-size:11px}}
@media(prefers-reduced-motion:reduce){.duelMode .handCard,.duelMode .mapCard{transition:none!important}}
