/* Ashvale Outbreak V15 — unobstructed mobile combat HUD + touch ergonomics */
:root{
  --v15-safe-top:env(safe-area-inset-top,0px);
  --v15-safe-right:env(safe-area-inset-right,0px);
  --v15-safe-bottom:env(safe-area-inset-bottom,0px);
  --v15-safe-left:env(safe-area-inset-left,0px);
}
body.v15-combat-ui #hud{isolation:isolate}
body.v15-combat-ui .glass{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
body.v15-combat-ui .ui-btn,body.v15-combat-ui button{touch-action:manipulation}

/* Mobile-only status chip generated by mobile-audio-v15.js. */
#mobileAmmoChip{
  position:fixed;z-index:46;right:calc(14px + var(--v15-safe-right));bottom:calc(236px + var(--v15-safe-bottom));
  width:150px;min-height:48px;display:none;grid-template-columns:38px 1fr auto;align-items:center;gap:7px;
  padding:6px 9px;border:1px solid rgba(157,255,179,.26);border-radius:13px;
  background:linear-gradient(145deg,rgba(4,14,17,.88),rgba(11,23,24,.72));
  box-shadow:0 12px 30px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.035);pointer-events:none;
}
#mobileAmmoChip img{width:34px;height:34px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 7px rgba(157,255,179,.35))}
#mobileAmmoChip .mobile-gun-name{min-width:0;display:flex;flex-direction:column;gap:2px}
#mobileAmmoChip .mobile-gun-name small{font:700 6px/1 system-ui;letter-spacing:.1em;color:#80958c}
#mobileAmmoChip .mobile-gun-name strong{font:900 9px/1.1 system-ui;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#eaffef}
#mobileAmmoChip .mobile-ammo{display:flex;align-items:baseline;gap:3px;white-space:nowrap}
#mobileAmmoChip .mobile-ammo b{font:950 20px/1 system-ui;color:#fff}
#mobileAmmoChip .mobile-ammo span{font:800 10px/1 system-ui;color:#91a69b}

#mobileHudToggle{
  display:none;min-width:44px;min-height:36px;padding:0 9px;border:1px solid rgba(157,255,179,.25);border-radius:8px;
  background:rgba(7,18,20,.78);color:#dfffe8;font:850 8px/1 system-ui;letter-spacing:.08em;
}
#mobileOrientationTip{
  display:none;position:fixed;z-index:100;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(340px,86vw);padding:18px 20px;border:1px solid rgba(157,255,179,.3);border-radius:16px;
  background:rgba(3,12,15,.94);box-shadow:0 25px 80px rgba(0,0,0,.65);text-align:center;color:#eaffef;
  font:800 12px/1.5 system-ui;letter-spacing:.04em;pointer-events:none;
}
#mobileOrientationTip b{display:block;font-size:26px;margin-bottom:5px;color:#9dffb3}

/* Full desktop layout remains intact. The compact HUD is used only on touch / narrow devices. */
@media (pointer:coarse),(max-width:900px){
  body.v13-outbreak-ready.v15-combat-ui{
    --hud-edge:calc(6px + var(--v15-safe-left));
    --hud-bottom-height:62px;
    --hud-rail-bottom:72px;
  }
  body.v15-combat-ui #mobileAmmoChip,body.v15-combat-ui #mobileHudToggle{display:grid}
  body.v15-combat-ui #mobileHudToggle{display:block}

  /* Slim mission header: gameplay information only. */
  body.v13-outbreak-ready.v15-combat-ui .topbar{
    left:calc(6px + var(--v15-safe-left));right:calc(6px + var(--v15-safe-right));top:calc(6px + var(--v15-safe-top));
    height:43px;padding:0 8px;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;border-radius:11px;
    background:linear-gradient(135deg,rgba(4,16,18,.86),rgba(4,10,14,.68));
  }
  body.v13-outbreak-ready.v15-combat-ui .brand-mini{display:none}
  body.v13-outbreak-ready.v15-combat-ui .mission-line{justify-content:flex-start;min-width:0;font-size:8px;letter-spacing:.1em}
  body.v13-outbreak-ready.v15-combat-ui .mission-line span,body.v13-outbreak-ready.v15-combat-ui .mission-line i{display:none}
  body.v13-outbreak-ready.v15-combat-ui .mission-line strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.v13-outbreak-ready.v15-combat-ui .fps-chip{font-size:7px;margin-left:7px;white-space:nowrap}
  body.v13-outbreak-ready.v15-combat-ui .top-actions{display:flex;gap:5px;align-items:center}
  body.v13-outbreak-ready.v15-combat-ui .top-actions>*:not(#pauseBtn):not(#mobileHudToggle){display:none!important}
  body.v13-outbreak-ready.v15-combat-ui #pauseBtn{display:block!important;min-width:50px;min-height:36px;padding:0 8px;border-radius:8px}

  /* Party becomes a compact portrait rail instead of a wide blocking panel. */
  body.v13-outbreak-ready.v15-combat-ui .party-panel{
    left:calc(6px + var(--v15-safe-left));top:calc(54px + var(--v15-safe-top));width:50px;max-height:none;
    padding:5px 4px;border-radius:14px;background:rgba(3,14,17,.68);overflow:visible;
  }
  body.v13-outbreak-ready.v15-combat-ui .party-panel h3,
  body.v13-outbreak-ready.v15-combat-ui .party-panel .stance-chip,
  body.v13-outbreak-ready.v15-combat-ui .party-panel .combo-line{display:none}
  body.v13-outbreak-ready.v15-combat-ui #partyList{display:flex;flex-direction:column;gap:5px}
  body.v13-outbreak-ready.v15-combat-ui .party-row{
    display:block;position:relative;width:40px;height:40px;padding:2px;border-radius:11px;border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.025);overflow:visible;cursor:pointer;
  }
  body.v13-outbreak-ready.v15-combat-ui .party-row.active{border-color:rgba(157,255,179,.78);box-shadow:0 0 14px rgba(80,255,135,.19)}
  body.v13-outbreak-ready.v15-combat-ui .party-avatar{width:34px;height:34px;background-size:136px 136px;border-width:2px}
  body.v13-outbreak-ready.v15-combat-ui .party-info,body.v13-outbreak-ready.v15-combat-ui .party-hp{display:none}
  body.v13-outbreak-ready.v15-combat-ui .party-row::after{
    content:"";position:absolute;left:4px;right:4px;bottom:1px;height:3px;border-radius:3px;background:linear-gradient(90deg,#76ff93 var(--party-hp,100%),rgba(255,255,255,.08) 0);
  }

  /* Quest and minimap share one compact card. */
  body.v13-outbreak-ready.v15-combat-ui .quest-panel{
    top:calc(54px + var(--v15-safe-top));right:calc(6px + var(--v15-safe-right));width:218px;height:90px;max-height:90px;
    padding:8px;display:grid;grid-template-columns:minmax(0,1fr) 82px;grid-template-rows:auto auto 5px auto;gap:3px 7px;
    overflow:hidden;border-radius:13px;background:rgba(3,14,17,.72);
  }
  body.v13-outbreak-ready.v15-combat-ui .quest-panel .eyebrow{grid-column:1;grid-row:1;margin:0;font-size:6px}
  body.v13-outbreak-ready.v15-combat-ui .quest-panel h2{grid-column:1;grid-row:2;margin:0;font-size:11px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.v13-outbreak-ready.v15-combat-ui .quest-panel>p:not(.eyebrow),body.v13-outbreak-ready.v15-combat-ui .combat-feed{display:none}
  body.v13-outbreak-ready.v15-combat-ui .quest-progress{grid-column:1;grid-row:3;height:4px;margin:0}
  body.v13-outbreak-ready.v15-combat-ui .quest-count{grid-column:1;grid-row:4;font-size:7px;margin:0}
  body.v13-outbreak-ready.v15-combat-ui .asc-minimap{
    grid-column:2;grid-row:1/5;position:static!important;order:0;width:82px!important;height:70px!important;min-width:82px;
    margin:0!important;align-self:center;border-radius:8px;background:rgba(0,7,10,.72);
  }

  /* Survival data is a narrow, non-blocking strip between the two side panels. */
  body.v13-outbreak-ready.v15-combat-ui .survival-hud{
    top:calc(54px + var(--v15-safe-top));left:64px;right:232px;transform:none;width:auto;min-width:0;height:38px;
    grid-template-columns:auto repeat(3,minmax(26px,1fr));gap:6px;padding:5px 8px;border-radius:11px;background:rgba(3,14,17,.64);
  }
  body.v13-outbreak-ready.v15-combat-ui .survival-title{min-width:0;display:block}
  body.v13-outbreak-ready.v15-combat-ui .survival-title span{display:none}
  body.v13-outbreak-ready.v15-combat-ui .survival-title strong{font-size:8px;white-space:nowrap}
  body.v13-outbreak-ready.v15-combat-ui .survival-meter{display:block;min-width:0}
  body.v13-outbreak-ready.v15-combat-ui .survival-meter span,body.v13-outbreak-ready.v15-combat-ui .survival-meter strong{display:none}
  body.v13-outbreak-ready.v15-combat-ui .survival-meter>div{height:5px;border-radius:6px;overflow:hidden}
  body.v13-outbreak-ready.v15-combat-ui .survival-actions{display:none}

  /* Remove duplicate large weapon panel; mobile ammo chip replaces it. */
  body.v13-outbreak-ready.v15-combat-ui .arsenal-hud{display:none!important}
  body.v13-outbreak-ready.v15-combat-ui #worldModifier,body.v13-outbreak-ready.v15-combat-ui #dailyTracker,
  body.v13-outbreak-ready.v15-combat-ui .target-card{display:none!important}

  /* Weapon strip sits between the two thumb zones, never beneath them. */
  body.v13-outbreak-ready.v15-combat-ui .weapon-deck{
    left:50%;right:auto;bottom:calc(69px + var(--v15-safe-bottom));transform:translateX(-50%);
    width:min(52vw,500px);max-width:min(52vw,500px);min-height:47px;height:47px;padding:3px;gap:3px;
    border-radius:11px;overflow-x:auto;overflow-y:hidden;background:rgba(3,12,15,.68);scroll-snap-type:x proximity;
  }
  body.v13-outbreak-ready.v15-combat-ui .weapon-slot{flex:0 0 45px;width:45px;height:39px;scroll-snap-align:center;border-radius:7px}
  body.v13-outbreak-ready.v15-combat-ui .weapon-slot img{width:24px;height:24px;margin-top:1px}
  body.v13-outbreak-ready.v15-combat-ui .weapon-slot span{font-size:5px;bottom:2px}
  body.v13-outbreak-ready.v15-combat-ui .weapon-slot em{font-size:6px;left:3px;top:2px}
  body.v13-outbreak-ready.v15-combat-ui .weapon-slot small{font-size:5px;right:3px;top:2px}

  /* Bottom information bar is centered between joystick and action cluster. */
  body.v13-outbreak-ready.v15-combat-ui .bottom-hud{
    left:calc(126px + var(--v15-safe-left));right:calc(206px + var(--v15-safe-right));bottom:calc(6px + var(--v15-safe-bottom));
    height:56px;padding:5px 8px;display:block;border-radius:12px;background:rgba(3,13,16,.68);
  }
  body.v13-outbreak-ready.v15-combat-ui .bottom-hud .skills,body.v13-outbreak-ready.v15-combat-ui .bottom-hud .run-stats{display:none!important}
  body.v13-outbreak-ready.v15-combat-ui .leader-card{height:100%;display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:center}
  body.v13-outbreak-ready.v15-combat-ui .leader-portrait{width:40px;height:40px;background-size:160px 160px}
  body.v13-outbreak-ready.v15-combat-ui .leader-stats{width:auto;min-width:0}
  body.v13-outbreak-ready.v15-combat-ui .leader-stats>div:first-child{font-size:8px;margin-bottom:3px}
  body.v13-outbreak-ready.v15-combat-ui .bar{height:9px;margin:2px 0}
  body.v13-outbreak-ready.v15-combat-ui .bar span{font-size:6px}
  body.v13-outbreak-ready.v15-combat-ui .xp-row{display:none}

  /* Thumb controls: separated, translucent, and at least 44 CSS px. */
  body.v15-combat-ui .joystick{
    left:calc(10px + var(--v15-safe-left));bottom:calc(11px + var(--v15-safe-bottom));width:108px;height:108px;
  }
  body.v15-combat-ui .joy-ring{border-color:rgba(103,245,224,.34);background:radial-gradient(circle,rgba(103,245,224,.09),rgba(3,10,13,.20));box-shadow:0 0 18px rgba(103,245,224,.1),inset 0 0 18px rgba(103,245,224,.06)}
  body.v15-combat-ui .joy-knob{width:42px;height:42px;left:33px;top:33px;background:linear-gradient(145deg,rgba(103,245,224,.78),rgba(27,124,142,.84))}
  body.v15-combat-ui .touch-actions{
    right:calc(9px + var(--v15-safe-right));bottom:calc(8px + var(--v15-safe-bottom));width:188px;height:170px;
  }
  body.v15-combat-ui .touch-actions button{
    width:48px;height:48px;min-width:44px;min-height:44px;border-radius:50%;opacity:.88;
    background:linear-gradient(145deg,rgba(25,55,59,.88),rgba(3,13,17,.78));box-shadow:0 7px 18px rgba(0,0,0,.28);
  }
  body.v15-combat-ui .touch-actions button b{font-size:16px}
  body.v15-combat-ui .touch-actions button small{font-size:6px}
  body.v15-combat-ui .touch-actions [data-action=skill1]{left:8px;top:28px}
  body.v15-combat-ui .touch-actions [data-action=skill2]{left:58px;top:4px}
  body.v15-combat-ui .touch-actions [data-action=skill3]{left:108px;top:28px}
  body.v15-combat-ui .touch-actions [data-action=reload]{left:4px;top:87px}
  body.v15-combat-ui .touch-actions [data-action=dodge]{left:59px;bottom:4px}
  body.v15-combat-ui .touch-actions .attack{
    width:72px;height:72px;right:0;bottom:0;opacity:.94;border-color:rgba(255,190,96,.72);
    background:linear-gradient(145deg,rgba(165,93,18,.95),rgba(52,19,4,.91));
  }
  body.v15-combat-ui .touch-actions [data-action=weapon],body.v15-combat-ui .touch-actions [data-action=ultimate]{display:none!important}
  body.v15-combat-ui .touch-actions button.pressed{transform:scale(.92);filter:brightness(1.28)}

  body.v13-outbreak-ready.v15-combat-ui .hint{
    left:50%;right:auto;bottom:calc(126px + var(--v15-safe-bottom));transform:translateX(-50%);padding:7px 12px;font-size:8px;
    border-radius:9px;background:rgba(4,13,16,.78);pointer-events:none;
  }
  body.v13-outbreak-ready.v15-combat-ui .kill-banner{top:106px}
  body.v13-outbreak-ready.v15-combat-ui .supply-notice{top:104px;right:232px}

  /* Optional one-tap ultra-clean mode. */
  body.v15-hud-minimal .party-panel,body.v15-hud-minimal .quest-panel,body.v15-hud-minimal .survival-hud{opacity:.18;pointer-events:none}
  body.v15-hud-minimal .party-panel:hover,body.v15-hud-minimal .quest-panel:hover,body.v15-hud-minimal .survival-hud:hover{opacity:.86}
}

/* Tight landscape phones. */
@media (pointer:coarse) and (max-height:560px),(max-width:760px) and (orientation:landscape){
  body.v13-outbreak-ready.v15-combat-ui .topbar{height:38px;top:calc(4px + var(--v15-safe-top))}
  body.v13-outbreak-ready.v15-combat-ui .party-panel,body.v13-outbreak-ready.v15-combat-ui .quest-panel,
  body.v13-outbreak-ready.v15-combat-ui .survival-hud{top:calc(46px + var(--v15-safe-top))}
  body.v13-outbreak-ready.v15-combat-ui .quest-panel{width:194px;height:78px;max-height:78px;grid-template-columns:minmax(0,1fr) 72px}
  body.v13-outbreak-ready.v15-combat-ui .asc-minimap{width:72px!important;height:60px!important;min-width:72px}
  body.v13-outbreak-ready.v15-combat-ui .survival-hud{right:207px;height:32px}
  body.v13-outbreak-ready.v15-combat-ui .party-panel{width:46px;padding:4px 3px}
  body.v13-outbreak-ready.v15-combat-ui .party-row{width:38px;height:38px}
  body.v13-outbreak-ready.v15-combat-ui .party-avatar{width:32px;height:32px;background-size:128px 128px}
  body.v15-combat-ui .joystick{width:96px;height:96px}
  body.v15-combat-ui .joy-knob{width:38px;height:38px;left:29px;top:29px}
  body.v15-combat-ui .touch-actions{width:174px;height:154px}
  body.v15-combat-ui .touch-actions button{width:44px;height:44px}
  body.v15-combat-ui .touch-actions .attack{width:66px;height:66px}
  body.v15-combat-ui .touch-actions [data-action=skill1]{left:5px;top:24px}
  body.v15-combat-ui .touch-actions [data-action=skill2]{left:50px;top:2px}
  body.v15-combat-ui .touch-actions [data-action=skill3]{left:95px;top:24px}
  body.v15-combat-ui .touch-actions [data-action=reload]{left:2px;top:75px}
  body.v15-combat-ui .touch-actions [data-action=dodge]{left:52px;bottom:2px}
  body.v13-outbreak-ready.v15-combat-ui .bottom-hud{left:calc(108px + var(--v15-safe-left));right:calc(188px + var(--v15-safe-right));height:50px}
  body.v13-outbreak-ready.v15-combat-ui .weapon-deck{bottom:calc(61px + var(--v15-safe-bottom));height:42px;min-height:42px}
  #mobileAmmoChip{right:calc(9px + var(--v15-safe-right));bottom:calc(202px + var(--v15-safe-bottom));width:138px}
}

/* Portrait is supported, but landscape gives enough room for both thumbs. */
@media (pointer:coarse) and (orientation:portrait) and (max-width:760px){
  #mobileOrientationTip{display:block}
  body.v15-landscape-confirmed #mobileOrientationTip{display:none}
  body.v13-outbreak-ready.v15-combat-ui .quest-panel{display:none}
  body.v13-outbreak-ready.v15-combat-ui .survival-hud{right:8px}
  body.v13-outbreak-ready.v15-combat-ui .weapon-deck{width:58vw;max-width:58vw}
  body.v13-outbreak-ready.v15-combat-ui .bottom-hud{left:114px;right:114px}
  #mobileAmmoChip{display:none}
}
