/* NightVenture — active abilities loadout + realtime combat HUD. */
.nv-ability-loadout-panel{display:grid;gap:12px;margin-bottom:12px}
.nv-ability-loadout-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.nv-ability-loadout-panel__header h3{margin:0 0 4px;color:var(--gold-bright,#ffe083)}
.nv-ability-loadout-panel__header p{margin:0;color:var(--text-muted,#bdb5aa);font-size:.88rem}
.nv-ability-loadout-panel__header>span{flex:0 0 auto;padding:5px 9px;border:1px solid rgba(245,211,122,.3);border-radius:999px;color:var(--gold,#f5d37a);font-weight:800}
.nv-ability-loadout-panel kbd{padding:1px 5px;border:1px solid rgba(255,255,255,.18);border-radius:4px;background:rgba(0,0,0,.25);font:inherit}
.nv-ability-loadout-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.nv-ability-loadout-slot{position:relative;display:grid;grid-template-columns:34px 42px minmax(0,1fr) 24px;align-items:center;gap:7px;min-height:62px;padding:7px;border:1px solid rgba(245,211,122,.18);border-radius:10px;background:rgba(0,0,0,.22);cursor:pointer;outline:none}
.nv-ability-loadout-slot.is-selected{border-color:rgba(245,211,122,.78);box-shadow:0 0 0 2px rgba(245,211,122,.09),0 0 16px rgba(245,211,122,.10)}
.nv-ability-loadout-slot.is-drag-over{border-color:#9ee8ff;background:rgba(66,159,190,.13)}
.nv-ability-loadout-slot.is-unusable{border-color:rgba(213,104,82,.34)}
.nv-ability-loadout-slot__key{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:rgba(245,211,122,.12);color:var(--gold,#f5d37a);font-weight:900}
.nv-ability-loadout-slot img{width:40px;height:40px;object-fit:cover;border:1px solid rgba(245,211,122,.28);border-radius:8px;background:#171717}
.nv-ability-loadout-slot__body{min-width:0;display:grid;gap:2px}
.nv-ability-loadout-slot__body strong,.nv-ability-loadout-slot__body small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nv-ability-loadout-slot__body strong{color:var(--text,#eee7dc);font-size:.82rem}
.nv-ability-loadout-slot__body small{color:var(--text-muted,#bdb5aa);font-size:.7rem}
.nv-ability-loadout-slot.is-unusable .nv-ability-loadout-slot__body small{color:#e7a18f}
.nv-ability-loadout-slot__empty{grid-column:2/-1;color:var(--text-muted,#a9a197);font-size:.76rem}
.nv-ability-loadout-slot__clear{display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.06);color:#c9c1b7;font:700 1rem/1 system-ui;cursor:pointer}
.nv-ability-loadout-card-actions{display:flex;align-items:center;gap:9px;margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.06)}
.nv-ability-loadout-card-actions button{margin:0!important}
.nv-ability-loadout-card-actions small{color:var(--text-muted,#aaa197);font-size:.76rem}

.nv-player-ability-hud{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));z-index:3045;display:none;grid-template-columns:repeat(4,64px);gap:8px;transform:translateX(-50%);pointer-events:auto;user-select:none;-webkit-user-select:none}
body.nv-mode-playing.nv-phaser-persistent-active .nv-player-ability-hud,
body.nv-mode-playing.nv-phaser-fullscreen-active .nv-player-ability-hud{display:grid}
.nv-player-ability-hud[hidden]{display:none!important}
.nv-player-ability-hud__slot{position:relative;display:grid;grid-template-rows:42px minmax(12px,auto) 10px;place-items:center;gap:2px;width:64px;min-width:64px;height:72px;padding:4px;border:1px solid rgba(245,211,122,.42);border-radius:11px;background:linear-gradient(180deg,rgba(33,29,24,.95),rgba(13,12,11,.97));color:#f4eadc;box-shadow:0 5px 18px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.06);touch-action:manipulation;overflow:hidden}
.nv-player-ability-hud__slot:not(:disabled):active{transform:scale(.94)}
.nv-player-ability-hud__slot:disabled{opacity:.66;cursor:not-allowed}
.nv-player-ability-hud__slot.is-active{border-color:#fff0af;box-shadow:0 0 18px rgba(255,221,121,.36)}
.nv-player-ability-hud__slot.is-unusable{border-color:rgba(220,103,80,.52)}
.nv-player-ability-hud__slot.is-resource-low{border-color:rgba(101,162,219,.55)}
.nv-player-ability-hud__slot.is-rejected{animation:nv-ability-reject .18s ease}
.nv-player-ability-hud__key{position:absolute;top:3px;left:4px;z-index:4;display:grid;place-items:center;min-width:17px;height:17px;padding:0 2px;border-radius:5px;background:rgba(0,0,0,.78);color:#fff2be;font:900 .63rem/1 system-ui}
.nv-player-ability-hud__icon-wrap{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:8px;overflow:hidden;background:rgba(0,0,0,.42)}
.nv-player-ability-hud__icon{width:40px;height:40px;object-fit:cover}
.nv-player-ability-hud__cooldown{position:absolute;inset:0;display:grid;place-items:center;background:conic-gradient(rgba(0,0,0,.78) var(--nv-ability-cooldown,0%),rgba(0,0,0,.18) 0);color:#fff;font:900 .78rem/1 system-ui;text-shadow:0 1px 4px #000}
.nv-player-ability-hud__slot:not(.is-cooldown) .nv-player-ability-hud__cooldown{display:none}
.nv-player-ability-hud__name{width:100%;overflow:hidden;color:#f5d37a;font:800 .58rem/1.05 system-ui;text-align:center;text-overflow:ellipsis;white-space:nowrap}
.nv-player-ability-hud__cost{color:#bcb3a7;font:700 .5rem/1 system-ui;white-space:nowrap}
.nv-player-ability-hud__slot.is-empty .nv-player-ability-hud__icon-wrap{opacity:.25}
body.nv-hud-collapsed .nv-player-ability-hud,body.nv-phaser-overlay-open .nv-player-ability-hud,body.nv-phaser-manual-paused .nv-player-ability-hud{display:none!important}
@keyframes nv-ability-reject{0%,100%{transform:translateX(0)}35%{transform:translateX(-4px)}70%{transform:translateX(4px)}}

@media (hover:none) and (pointer:coarse),(max-width:760px){
    .nv-player-ability-hud{left:auto;right:max(12px,env(safe-area-inset-right));bottom:calc(236px + env(safe-area-inset-bottom));grid-template-columns:repeat(2,52px);gap:7px;transform:none}
    .nv-player-ability-hud__slot{grid-template-rows:34px 10px 8px;width:52px;min-width:52px;height:58px;padding:3px;border-radius:10px}
    .nv-player-ability-hud__icon-wrap,.nv-player-ability-hud__icon{width:33px;height:33px}
    .nv-player-ability-hud__name{font-size:.5rem}
    .nv-player-ability-hud__cost{font-size:.45rem}
}
@media (max-width:700px){
    .nv-ability-loadout-panel__header{flex-direction:column}
    .nv-ability-loadout-slots{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:420px){
    .nv-ability-loadout-slots{grid-template-columns:1fr}
    .nv-player-ability-hud{right:8px;bottom:calc(224px + env(safe-area-inset-bottom))}
}
