/* A single stack owns the top of combat; messages cannot occupy the same slot. */
#status-stack{position:absolute;z-index:5;top:calc(56px + env(safe-area-inset-top));left:12px;right:12px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;pointer-events:none}
#status-stack .wave-status,#status-stack .boss-health{position:static;inset:auto;transform:none;margin:0;max-width:100%;width:auto;min-width:0}
#status-stack .boss-health{width:min(480px,100%);padding:7px 10px}
#status-stack[data-boss=true] .wave-status{display:none}
#encounter-notice{max-width:min(440px,100%);padding:8px 12px;border:1px solid #9AB0C7;border-left:4px solid #77C5D5;border-radius:4px;background:#112941F5;color:#F3E9D5;font:700 12px/1.35 var(--body);box-shadow:0 3px 0 #07152555;text-wrap:pretty}
#encounter-notice[data-kind=elite],#encounter-notice[data-kind=boss]{background:#FFC87E;color:#15253D;border:2px solid #15253D;border-left:5px solid #F16B38;font-weight:900;box-shadow:3px 3px 0 #14263B88}
#encounter-notice[hidden]{display:none}
.in-game .combo{display:none}
@media(max-width:700px){
  #status-stack{top:calc(50px + env(safe-area-inset-top));left:8px;right:8px;gap:4px}
  #status-stack .wave-status{padding:4px 7px}
  #status-stack .boss-health{font-size:10px;padding:5px 8px}
  #status-stack .boss-health small{font-size:9px;line-height:1.25}
  #encounter-notice{font-size:11px;line-height:1.3;padding:6px 9px;max-width:100%}
  .in-game .speech-bubble{width:min(166px,47vw);padding:7px 9px 9px}
  .in-game .speech-bubble p{font-size:10px;line-height:1.35}
}
@media(max-height:500px){#status-stack{top:44px}#status-stack .boss-health small{display:none}#encounter-notice{padding:4px 8px;font-size:10px}}
.roster-person:disabled{opacity:1;cursor:not-allowed;filter:none}
.roster-person:disabled:after{content:none}
.roster-person:disabled .roster-name{font-size:8px;color:#D3D8DF;background:#263342F5;border:1px solid #778390;padding:4px 6px;white-space:nowrap}
.roster-person:disabled kbd{display:none}
.hub-heading .title-kicker{display:none}
.hub-heading .step-title{font-size:clamp(22px,2.2vw,28px)}
.campaign-condition{display:block!important;font:600 10px/1.4 var(--body)!important;margin-top:4px;color:#FFE1B1}
[data-scene].locked{filter:grayscale(.9);opacity:.72;cursor:not-allowed}
@media(max-width:700px){.campaign-condition{font-size:9px!important}}

#quest-progress{max-width:100%;padding:5px 8px;border-radius:3px;background:#162B40E8;color:#FFE2A0;font:700 11px/1.3 var(--body)}
#quest-progress[hidden]{display:none}
@media(max-width:700px){#quest-progress{font-size:10px;padding:4px 7px}}

[data-scene].locked .destination-enter{visibility:hidden;height:0;margin:0;padding:0}


.campaign-guide{position:absolute;top:67px;right:20px;z-index:8;color:#FFF0D8;font:700 11px/1.4 var(--body);max-width:min(370px,calc(100% - 28px))}
.campaign-guide summary{cursor:pointer;list-style:revert;padding:7px 11px;background:#162D43EC;border:1px solid #D2AC74;border-radius:3px}
.campaign-guide>div{background:#10243AF7;border:1px solid #D2AC74;padding:7px 12px;max-height:60dvh;overflow:auto}
.campaign-guide p{margin:7px 0;padding-bottom:7px;border-bottom:1px solid #FFFFFF22}
@media(max-width:700px){.campaign-guide{top:70px;right:14px;font-size:10px}.has-selection .campaign-guide{display:none}}

/* v35: recruitment is a readable, paused conversation, above touch controls. */
.recruit-panel{max-width:520px;width:min(520px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;padding:22px;text-align:center;background:linear-gradient(145deg,#19344B,#0B2035);border:2px solid #C8A270;border-radius:8px;color:#F4E9D4}
.recruit-panel canvas{height:130px;width:130px;display:block;margin:-6px auto}.recruit-panel h2{font:800 24px var(--heading);margin:0 0 12px}.recruit-panel p{font:500 14px/1.6 var(--body);margin:10px 0}.recruit-panel small{display:block;font-size:10px;color:#B3C5D5}.recruit-panel .start-button{width:100%;font-size:13px}#recruit-requirements{border-block:1px solid #C8A27066;padding:5px;color:#FFD78E}#recruit-requirements p{font-size:12px;font-weight:800;margin:3px}
#arena-wrap:after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity 1.3s;box-shadow:inset 0 0 65px 18px #80203355,inset 0 0 3px 2px #FF9E66}
#arena-wrap[data-boss=true]:after{opacity:1}
@media(max-height:650px){.recruit-panel{padding:16px}.recruit-panel canvas{height:90px;width:90px}.recruit-panel h2{font-size:20px}.recruit-panel p{font-size:12px;margin:7px 0}}

/* World-map labels sit below their stage, never over its sprite. */
.hub-screen .hub-heading{top:76px;left:15%;right:15%}.destination-buttons button{transform:translate(-50%,0);width:164px;padding:7px 9px;background:#142C40F5}.destination-buttons .destination-art,.destination-buttons .destination-number,.destination-buttons button>small:not(.campaign-condition){display:none}.destination-buttons strong{font-size:13px}.destination-buttons .destination-enter{font-size:9px;margin-top:4px}.destination-buttons .campaign-condition{margin:2px 0;font-size:9px!important}.destination-buttons button.locked{opacity:1;filter:none;border-color:#667787;background:#1B2B3EF5}.hub-world .hub-vignette{opacity:.35}.hub-screen .hub-bottom{bottom:max(18px,env(safe-area-inset-bottom));align-items:center}.hub-screen .hub-instructions{max-width:470px}.hub-screen .hub-instructions p{color:#E7D4AF}.hub-screen .hub-heading .step-title{font-size:clamp(22px,2.7vw,32px)}
@media(max-width:700px){.destination-buttons button{width:122px;padding:6px}.destination-buttons strong{font-size:11px}.hub-screen .hub-heading{left:10px;right:10px;top:78px}.hub-screen .hub-bottom{left:12px;right:12px}.hub-screen .hub-player,.hub-screen .hub-duration,.hub-screen .menu-tip{display:none}.hub-screen .hub-instructions{width:100%;text-align:center}.hub-screen .hub-instructions p{font-size:11px;margin:0}.roster-person:disabled .roster-name{font-size:7px;padding:3px 4px}}
@media(max-height:500px){.hub-screen .hub-heading{top:40px}.hub-screen .hub-heading .step-title{font-size:19px}.destination-buttons button{width:116px;padding:4px}.destination-buttons strong{font-size:10px}.destination-buttons .destination-enter{display:none}}
#menu-hub .destination-buttons{display:block;position:absolute;inset:0;transform:none;padding:0;gap:0}
#menu-hub .destination-buttons button{position:absolute;left:var(--door-x);top:var(--door-y);bottom:auto;right:auto;transform:translate(-50%,0);min-height:0}

.hire-quote{display:block;margin:7px 0;font:500 12px/1.55 var(--body);color:#E8D6B9}

#recruit-accept[hidden]{display:none}#recruit-requirements p{color:#FFE1A3}.recruit-panel #recruit-pitch{color:#F6EBD9}
