/**
 * styles/scrying-pool.less — Entry point (@imports only)
 *
 * Build: npm run build  →  styles/scrying-pool.css
 * Watch: npm run watch  (chokidar detects changes in @import-ed partials)
 *
 * Import order: tokens (base → states → motion → focus) → components
 */

// ── Token layers ─────────────────────────────────────────────────────────────
@import "tokens/_base.less";
@import "tokens/_spacing.less";
@import "tokens/_states.less";
@import "tokens/_motion.less";
@import "tokens/_focus.less";

// ── Component styles ──────────────────────────────────────────────────────────
@import "components/_buttons.less";
@import "components/_participant-card.less";
@import "components/_roster-strip.less";
@import "components/_directors-board.less";
@import "components/_scene-preset-panel.less";
@import "components/_notification.less";
@import "components/_player-badge.less";
@import "components/_player-panel.less";
// Story 3.2: ConfirmationBar and StripOverlayLayer
@import "components/_strip-overlay-layer.less";
@import "components/_confirmation-bar.less";
// Story 3.1: Preset Save/Load Dialogs
@import "components/_preset-save-dialog.less";
@import "components/_preset-load-dialog.less";
// Story 3.3: Preset Import/Export Dialogs
@import "components/_preset-import-export.less";
// Story 4.1: Player Privacy Panel
@import "components/_player-privacy-panel.less";
// Story 5.X: Actor-Webcam Mapping Panel
@import "components/_actor-mapping.less";
// Story 5.3: Freeform Layout — Floating Camera Windows
@import "components/_freeform-camera.less";

/*
 * VisibilityBadge :root exception
 * ─────────────────────────────────────────────────────────────────────────────
 * PlayerStatusBadge (FR-22) is mounted directly onto Foundry's AV tile DOM,
 * OUTSIDE the .scrying-pool root element. Its state tokens must therefore be
 * declared on :root rather than scoped under .scrying-pool.
 *
 * This is an intentional architectural exception — all other module CSS MUST
 * remain scoped under .scrying-pool. Do not add additional :root declarations
 * without documenting the architectural reason here.
 *
 * The badge tokens are a subset of the Layer 2 state tokens declared in
 * _states.less, re-exported on :root for badge accessibility outside the root.
 */
:root {
  --sp-badge-state-active-bg:         var(--sp-state-active-bg);
  --sp-badge-state-active-text:       var(--sp-state-active-text);
  --sp-badge-state-hidden-bg:         var(--sp-state-hidden-bg);
  --sp-badge-state-hidden-text:       var(--sp-state-hidden-text);
  --sp-badge-state-self-muted-bg:     var(--sp-state-self-muted-bg);
  --sp-badge-state-self-muted-text:   var(--sp-state-self-muted-text);
  --sp-badge-state-offline-bg:        var(--sp-state-offline-bg);
  --sp-badge-state-offline-text:      var(--sp-state-offline-text);
  --sp-badge-state-cam-lost-bg:       var(--sp-state-cam-lost-bg);
  --sp-badge-state-cam-lost-text:     var(--sp-state-cam-lost-text);
  --sp-badge-state-reconnecting-bg:   var(--sp-state-reconnecting-bg);
  --sp-badge-state-reconnecting-text: var(--sp-state-reconnecting-text);
  /* Badge surface & text (badge mounts outside .scrying-pool root) */
  --sp-badge-surface:                 var(--sp-badge-bg,   rgba(0, 0, 0, 0.72));
  --sp-badge-color:                   var(--sp-badge-text, #dde2e8);
}

// ============================================================
// Full AV Replacement Mode: Hide Foundry's AV Dock
// ============================================================
// When module is active with stream-access mode, completely hide
// Foundry's native AV dock UI and replace it with our ScryingPoolStrip
// This implements the full replacement architecture (not overlay)
// ============================================================

// Hide the entire AV dock container
#av {
  display: none !important;
}

// Hide Foundry's native camera dock — replaced by ScryingPoolCameraViews + our strip
#camera-views {
  display: none !important;
}

// Also hide individual camera views in case they're rendered elsewhere
.camera-view {
  display: none !important;
}
