AudioService):AudioService with safe cross-version Foundry audio helper resolution (foundry.audio.AudioHelper, game.audio, and HTML5 Audio fallback).sys.subcategory) and model names across both English and German SR5 schemas (e.g. Schrotflinte / shotgun, Pistole, Sturmgewehr, Maschinenpistole, Scharfschützengewehr, Klinge).DiceSoNice 3D dice completion hook or 600ms roll delay), preventing dice clattering sounds from masking audio.recommends) in src/module.json for gAudioBundle-1, gAudioBundle-2, gAudioBundle-3, and gAudioBundle-4, with quiet fallback to silence if inactive.targetLocked):.shadows-hud-target-lock-btn) on the top-left of the character avatar frame, controlling global scene token targeting behavior.targetLocked state cleanly as a client setting object { enabled: boolean }, seamlessly persisting across scene reloads (F5).{ enabled: true }): Right-clicking enemy/NPC tokens on canvas opens a Pure Attack HUD (all standard Foundry controls stripped) displaying a single red crosshairs target button for the locked attacker's in-hand weapon/spell.{ enabled: false }): Right-clicking tokens on canvas opens standard Foundry Token HUD controls for GM (no attack button).shadows-hud's bound actor.#shadows-hud-root to left: 80px.Portrait → Equipment Set Slot → Actions → Round Controls), resolving right sidebar canvas clipping..shadows-hud-main-bar min-height to 90px for clear visual breathing room across macro grids and 3-line cards.Weapons, Spells, and Matrix panels share a single position in _panelOrder.matrix or spells to a new slot position automatically updates weapons to open in that exact same moved position..shadows-section-body-row (align-items: flex-start) and .shadows-hud-actions-panel (justify-content: flex-start).[v]), Row 2 (Vector SVG Firemode Icons), Row 3 (Ammo stats).[IN HAND] badge.extractPrimitiveNumber in ActionService.js to unwrap nested SR5e ammo objects ({ value: { value: 7 } }), resolving [object Object] rendering.weapon-select-popup.hbs to render directly inside set containers (weapon-sets.hbs, magic-sets.hbs, matrix-sets.hbs) anchored at bottom: calc(100% + 14px); left: 0;..shadows-section-top-header of the Actions panel when activeTab === 'macros'.shadows-panel-dragging).shadows-panel-drop-target).ThemeHelper.js with real-time MutationObserver on document.body.theme-dark) and Foundry Light (theme-light) modes based on Foundry VTT settings.ShadowsHudApp Package Architecture (src/scripts/apps/shadowHud/):ShadowsHudApp.js into its own dedicated package directory (src/scripts/apps/shadowHud/).ShadowsHudDataLoader: Data fetching, system track pips, macro mapping, and panel ordering calculations (get).ShadowsHudEventHandler: DOM event binding, macro drag-and-drop, skill rolls, and combat controls (do).ShadowsHudState: State lifecycle, active actor/token bindings, panel visibility, and section mutations (update).ShadowsHudApp: Light orchestrator app shell delegating to loader, handler, and state.module.mjs):module.mjs barrel files across all script directories (services/, apps/, apps/shadowHud/, API/, canvas/, components/).import * as services from ".../services/module.mjs" and services.ActionService).#shadows-hud-root and #hud, eliminating 25+ non-essential !important flags.