:root,
[data-theme-mode="dark"],
[data-bs-theme="dark"] {
  --wm-color-bg: #0a0a0a;
  --wm-color-surface: #121212;
  --wm-color-surface-elevated: #1a1a1a;
  --wm-color-surface-subtle: rgba(18, 18, 18, 0.7);
  --wm-color-border: rgba(36, 238, 250, 0.3);
  --wm-color-border-hover: rgba(36, 238, 250, 0.5);
  --wm-color-border-strong: rgba(36, 238, 250, 0.7);
  --wm-color-border-subtle: rgba(255, 255, 255, 0.1);
  --wm-color-text-primary: #ffffff;
  --wm-color-text-secondary: #cccccc;
  --wm-color-text-muted: #999999;
  --wm-color-text-disabled: #666666;
  --wm-color-text-inverse: #000000;
  --wm-color-accent-primary: #24eefa;
  --wm-color-accent-secondary: #24ff81;
  --wm-color-accent-tertiary: #fc9944;
  --wm-color-success: #24ff81;
  --wm-color-success-bg: rgba(36, 255, 129, 0.1);
  --wm-color-warning: #ffc107;
  --wm-color-warning-bg: rgba(255, 193, 7, 0.1);
  --wm-color-danger: #ff4444;
  --wm-color-danger-bg: rgba(255, 68, 68, 0.1);
  --wm-color-info: #24eefa;
  --wm-color-info-bg: rgba(36, 238, 250, 0.1);
  --wm-color-hover: rgba(255, 255, 255, 0.1);
  --wm-color-active: rgba(255, 255, 255, 0.2);
  --wm-color-focus: rgba(36, 238, 250, 0.5);
  --wm-color-disabled: rgba(255, 255, 255, 0.05);
  --wm-overlay-white-02: rgba(255, 255, 255, 0.02);
  --wm-overlay-white-03: rgba(255, 255, 255, 0.03);
  --wm-overlay-white-04: rgba(255, 255, 255, 0.04);
  --wm-overlay-white-05: rgba(255, 255, 255, 0.05);
  --wm-overlay-white-06: rgba(255, 255, 255, 0.06);
  --wm-overlay-white-08: rgba(255, 255, 255, 0.08);
  --wm-overlay-white-10: rgba(255, 255, 255, 0.1);
  --wm-overlay-white-12: rgba(255, 255, 255, 0.12);
  --wm-overlay-white-15: rgba(255, 255, 255, 0.15);
  --wm-overlay-white-20: rgba(255, 255, 255, 0.2);
  --wm-overlay-white-25: rgba(255, 255, 255, 0.25);
  --wm-overlay-white-30: rgba(255, 255, 255, 0.3);
  --wm-overlay-white-35: rgba(255, 255, 255, 0.35);
  --wm-overlay-white-40: rgba(255, 255, 255, 0.4);
  --wm-overlay-black-02: rgba(0, 0, 0, 0.02);
  --wm-overlay-black-03: rgba(0, 0, 0, 0.03);
  --wm-overlay-black-05: rgba(0, 0, 0, 0.05);
  --wm-overlay-black-10: rgba(0, 0, 0, 0.1);
  --wm-overlay-black-15: rgba(0, 0, 0, 0.15);
  --wm-overlay-black-20: rgba(0, 0, 0, 0.2);
  --wm-overlay-black-25: rgba(0, 0, 0, 0.25);
  --wm-overlay-black-30: rgba(0, 0, 0, 0.3);
  --wm-overlay-black-35: rgba(0, 0, 0, 0.35);
  --wm-overlay-black-40: rgba(0, 0, 0, 0.4);
  --wm-overlay-black-45: rgba(0, 0, 0, 0.45);
  --wm-overlay-black-50: rgba(0, 0, 0, 0.5);
  --wm-overlay-black-55: rgba(0, 0, 0, 0.55);
  --wm-overlay-black-60: rgba(0, 0, 0, 0.6);
  --wm-overlay-black-70: rgba(0, 0, 0, 0.7);
  --wm-overlay-accent-06: rgba(36, 238, 250, 0.06);
  --wm-overlay-accent-08: rgba(36, 238, 250, 0.08);
  --wm-overlay-accent-12: rgba(36, 238, 250, 0.12);
  --wm-overlay-accent-15: rgba(36, 238, 250, 0.15);
  --wm-overlay-accent-20: rgba(36, 238, 250, 0.2);
  --wm-overlay-accent-25: rgba(36, 238, 250, 0.25);
  --wm-overlay-accent-30: rgba(36, 238, 250, 0.3);
  --wm-overlay-accent-35: rgba(36, 238, 250, 0.35);
  --wm-overlay-accent-40: rgba(36, 238, 250, 0.4);
  --wm-overlay-accent-45: rgba(36, 238, 250, 0.45);
  --wm-overlay-accent-50: rgba(36, 238, 250, 0.5);
  --wm-overlay-accent-60: rgba(36, 238, 250, 0.6);
  --wm-overlay-accent-70: rgba(36, 238, 250, 0.7);
  --wm-overlay-accent-80: rgba(36, 238, 250, 0.8);
  --wm-overlay-danger-12: rgba(255, 68, 68, 0.12);
  --wm-overlay-danger-50: rgba(255, 68, 68, 0.5);
  --wm-overlay-danger-80: rgba(255, 68, 68, 0.8);
  --wm-overlay-warning-25: rgba(255, 193, 7, 0.25);
  --wm-overlay-warning-40: rgba(255, 193, 7, 0.4);
  --wm-overlay-success-30: rgba(36, 255, 129, 0.3);
  --wm-overlay-success-50: rgba(36, 255, 129, 0.5);
  --wm-color-text-50: #808080;
  --wm-color-text-60: #999999;
  --wm-color-text-70: #b3b3b3;
  --wm-color-text-80: #cccccc;
  --wm-color-text-85: #d9d9d9;
  --wm-color-text-90: #e6e6e6;
  --wm-color-surface-dark-100: #0a0e14;
  --wm-color-surface-dark-200: #0f1419;
  --wm-color-surface-dark-300: #12161b;
  --wm-color-surface-dark-400: #141a21;
  --wm-color-surface-dark-500: #151b22;
  --wm-color-surface-dark-600: #181c24;
  --wm-color-surface-dark-700: #1a1f28;
  --wm-color-surface-dark-800: #1a222b;
  --wm-color-surface-dark-900: #1b2330;
  --wm-color-border-dark-100: #1e2530;
  --wm-color-border-dark-200: #232c36;
  --wm-color-border-dark-300: #252d38;
  --wm-color-border-dark-400: #27313b;
  --wm-color-border-dark-500: #2a3340;
  --wm-color-border-dark-600: #2b323a;
  --wm-color-tactical-bg: #12161b;
  --wm-color-tactical-surface: #1a222b;
  --wm-color-tactical-border: #2b323a;
  --wm-color-tactical-text: #e6e8ea;
  --wm-color-tactical-text-muted: #9aa7b4;
  --wm-color-tactical-text-dim: #8b96a3;
  --wm-color-tactical-text-label: #c7d0d9;
  --wm-gradient-surface: linear-gradient(175deg, rgba(18, 17, 17, 0.85) 25%, rgba(51, 68, 51, 0.75) 90%);
  --wm-gradient-header: linear-gradient(90deg, #111133, #112211);
  --wm-gradient-button: linear-gradient(135deg, rgba(30, 30, 30, 0.9) 0%, rgba(50, 50, 50, 0.85) 100%);
  --wm-gradient-button-hover: linear-gradient(135deg, rgba(40, 40, 40, 0.95) 0%, rgba(60, 60, 60, 0.9) 100%);
  --wm-gradient-primary: linear-gradient(135deg, var(--wm-color-accent-primary), var(--wm-color-accent-secondary));
  --wm-gradient-primary-hover: linear-gradient(135deg, var(--wm-color-accent-secondary), var(--wm-color-accent-tertiary));
  --wm-gradient-progress: linear-gradient(90deg, #24eefa 0%, #24ff81 100%);
  --wm-color-modal-bg: #100;
  --wm-color-modal-header-bg: linear-gradient(90deg, #134, #222);
  --wm-color-modal-backdrop: rgba(0, 0, 0, 0.7);
  --wm-color-popup-bg: #141b22;
  --wm-color-popup-panel: #1c252f;
  --wm-color-popup-border: #2c3a49;
  --wm-color-popup-text: #e9f2fb;
  --wm-color-popup-muted: #9cb0c7;
  --wm-color-popup-accent: #2fc8dc;
  --wm-color-warning-light: #ffd88a;
  --wm-color-warning-pale: #ffd690;
  --wm-color-warning-pale-hover: #ffe8ba;
  --wm-color-success-light: #9de8c4;
  --wm-color-success-pale: #9de5bf;
  --wm-color-danger-light: #ffadad;
  --wm-color-danger-pale: #ffb4b4;
  --wm-color-info-light: #9ce3f2;
  --wm-color-info-pale: #9fdef4;
  --wm-gradient-xp: linear-gradient(90deg, #2a9ed4, #5bd6f4);
  --wm-gradient-danger: linear-gradient(90deg, #e25252, #ff8c8c);
  --wm-gradient-info: linear-gradient(90deg, #2396b6, #43cee8);
  --wm-gradient-warning: linear-gradient(90deg, #d79a2a, #ffcf6a);
  --wm-gradient-success: linear-gradient(90deg, #2a9e6a, #57d89a);
  --wm-color-track-dark: #0f151d;
  --wm-color-panel-dark: #10161d;
  --wm-color-bg-very-dark: #0d1117;
  --wm-color-store-slider-thumb: #fcd34d;
  --wm-color-alert-bg: #1a1d21;
  --wm-color-toast-bg: rgba(30, 30, 40, 0.95);
  --wm-color-toast-warning-bg: rgba(45, 40, 30, 0.95);
  --wm-color-map-modal-bg: rgba(25, 28, 34, 0.8);
  --wm-color-map-modal-border: rgba(36, 238, 250, 0.38);
  --wm-color-map-modal-shadow: rgba(0, 255, 247, 0.27);
  --wm-color-map-modal-text: #f3f9fa;
  --wm-color-layers-bg: rgba(18, 17, 17, 0.95);
  --wm-color-layers-border: rgba(36, 238, 250, 0.4);
  --wm-color-layers-item-hover: rgba(36, 238, 250, 0.15);
  --wm-color-menu-text: #eaeaea;
  --wm-color-menu-hover-bg: #333;
  --wm-color-menu-hover-text: #fff;
  --wm-color-menu-header: #999;
  --wm-color-selection-stroke: #4dabf7;
  --wm-color-form-bg-start: #113344;
  --wm-color-form-bg-end: #114433;
  --wm-color-form-bg-hover-start: #114455;
  --wm-color-form-bg-hover-end: #334433;
  --wm-color-form-border: #222;
  --wm-color-form-border-hover: #444;
  --wm-color-form-border-focus: #12613c;
  --wm-color-form-text-focus: #222;
  --wm-color-form-text-hover: #afa;
  --wm-color-route-stroke: rgba(160, 210, 255, 0.8);
  --wm-color-route-shadow: rgba(120, 180, 255, 0.4);
  --wm-color-purple-accent: rgba(147, 51, 234, 0.1); }

[data-theme-mode="light"],
[data-bs-theme="light"] {
  --wm-color-bg: #f5f5f5;
  --wm-color-surface: #ffffff;
  --wm-color-surface-elevated: #fafafa;
  --wm-color-surface-subtle: rgba(255, 255, 255, 0.7);
  --wm-color-border: rgba(0, 0, 0, 0.12);
  --wm-color-border-hover: rgba(0, 0, 0, 0.24);
  --wm-color-border-strong: rgba(0, 0, 0, 0.36);
  --wm-color-border-subtle: rgba(0, 0, 0, 0.06);
  --wm-color-text-primary: #212121;
  --wm-color-text-secondary: #424242;
  --wm-color-text-muted: #757575;
  --wm-color-text-disabled: #9e9e9e;
  --wm-color-text-inverse: #ffffff;
  --wm-color-accent-primary: #0088cc;
  --wm-color-accent-secondary: #00aa44;
  --wm-color-accent-tertiary: #ff6600;
  --wm-color-success: #00aa44;
  --wm-color-success-bg: rgba(0, 170, 68, 0.1);
  --wm-color-warning: #ff9800;
  --wm-color-warning-bg: rgba(255, 152, 0, 0.1);
  --wm-color-danger: #d32f2f;
  --wm-color-danger-bg: rgba(211, 47, 47, 0.1);
  --wm-color-info: #0088cc;
  --wm-color-info-bg: rgba(0, 136, 204, 0.1);
  --wm-color-hover: rgba(0, 0, 0, 0.04);
  --wm-color-active: rgba(0, 0, 0, 0.08);
  --wm-color-focus: rgba(0, 136, 204, 0.3);
  --wm-color-disabled: rgba(0, 0, 0, 0.03);
  --wm-overlay-white-02: rgba(255, 255, 255, 0.02);
  --wm-overlay-white-03: rgba(255, 255, 255, 0.03);
  --wm-overlay-white-04: rgba(255, 255, 255, 0.04);
  --wm-overlay-white-05: rgba(255, 255, 255, 0.05);
  --wm-overlay-white-06: rgba(255, 255, 255, 0.06);
  --wm-overlay-white-08: rgba(255, 255, 255, 0.08);
  --wm-overlay-white-10: rgba(255, 255, 255, 0.1);
  --wm-overlay-white-12: rgba(255, 255, 255, 0.12);
  --wm-overlay-white-15: rgba(255, 255, 255, 0.15);
  --wm-overlay-white-20: rgba(255, 255, 255, 0.2);
  --wm-overlay-white-25: rgba(255, 255, 255, 0.25);
  --wm-overlay-white-30: rgba(255, 255, 255, 0.3);
  --wm-overlay-white-35: rgba(255, 255, 255, 0.35);
  --wm-overlay-white-40: rgba(255, 255, 255, 0.4);
  --wm-overlay-black-02: rgba(0, 0, 0, 0.02);
  --wm-overlay-black-03: rgba(0, 0, 0, 0.03);
  --wm-overlay-black-05: rgba(0, 0, 0, 0.05);
  --wm-overlay-black-10: rgba(0, 0, 0, 0.1);
  --wm-overlay-black-15: rgba(0, 0, 0, 0.15);
  --wm-overlay-black-20: rgba(0, 0, 0, 0.2);
  --wm-overlay-black-25: rgba(0, 0, 0, 0.25);
  --wm-overlay-black-30: rgba(0, 0, 0, 0.3);
  --wm-overlay-black-35: rgba(0, 0, 0, 0.35);
  --wm-overlay-black-40: rgba(0, 0, 0, 0.4);
  --wm-overlay-black-45: rgba(0, 0, 0, 0.45);
  --wm-overlay-black-50: rgba(0, 0, 0, 0.5);
  --wm-overlay-black-55: rgba(0, 0, 0, 0.55);
  --wm-overlay-black-60: rgba(0, 0, 0, 0.6);
  --wm-overlay-black-70: rgba(0, 0, 0, 0.7);
  --wm-overlay-accent-06: rgba(0, 136, 204, 0.06);
  --wm-overlay-accent-08: rgba(0, 136, 204, 0.08);
  --wm-overlay-accent-12: rgba(0, 136, 204, 0.12);
  --wm-overlay-accent-15: rgba(0, 136, 204, 0.15);
  --wm-overlay-accent-20: rgba(0, 136, 204, 0.2);
  --wm-overlay-accent-25: rgba(0, 136, 204, 0.25);
  --wm-overlay-accent-30: rgba(0, 136, 204, 0.3);
  --wm-overlay-accent-35: rgba(0, 136, 204, 0.35);
  --wm-overlay-accent-40: rgba(0, 136, 204, 0.4);
  --wm-overlay-accent-45: rgba(0, 136, 204, 0.45);
  --wm-overlay-accent-50: rgba(0, 136, 204, 0.5);
  --wm-overlay-accent-60: rgba(0, 136, 204, 0.6);
  --wm-overlay-accent-70: rgba(0, 136, 204, 0.7);
  --wm-overlay-accent-80: rgba(0, 136, 204, 0.8);
  --wm-overlay-danger-12: rgba(211, 47, 47, 0.12);
  --wm-overlay-danger-50: rgba(211, 47, 47, 0.5);
  --wm-overlay-danger-80: rgba(211, 47, 47, 0.8);
  --wm-overlay-warning-25: rgba(255, 152, 0, 0.25);
  --wm-overlay-warning-40: rgba(255, 152, 0, 0.4);
  --wm-color-text-50: #808080;
  --wm-color-text-60: #999999;
  --wm-color-text-70: #757575;
  --wm-color-text-80: #616161;
  --wm-color-text-85: #525252;
  --wm-color-text-90: #3d3d3d;
  --wm-color-surface-dark-100: #fafafa;
  --wm-color-surface-dark-200: #f5f5f5;
  --wm-color-surface-dark-300: #eeeeee;
  --wm-color-surface-dark-400: #e8e8e8;
  --wm-color-surface-dark-500: #e0e0e0;
  --wm-color-surface-dark-600: #d8d8d8;
  --wm-color-surface-dark-700: #d0d0d0;
  --wm-color-surface-dark-800: #c8c8c8;
  --wm-color-surface-dark-900: #c0c0c0;
  --wm-color-border-dark-100: #e0e0e0;
  --wm-color-border-dark-200: #d0d0d0;
  --wm-color-border-dark-300: #c8c8c8;
  --wm-color-border-dark-400: #c0c0c0;
  --wm-color-border-dark-500: #b8b8b8;
  --wm-color-border-dark-600: #b0b0b0;
  --wm-color-tactical-bg: #f5f5f5;
  --wm-color-tactical-surface: #ffffff;
  --wm-color-tactical-border: #d0d0d0;
  --wm-color-tactical-text: #212121;
  --wm-color-tactical-text-muted: #616161;
  --wm-color-tactical-text-dim: #757575;
  --wm-color-tactical-text-label: #424242;
  --wm-gradient-surface: linear-gradient(175deg, rgba(255, 255, 255, 0.95) 25%, rgba(245, 245, 245, 0.9) 90%);
  --wm-gradient-header: linear-gradient(90deg, #e0e0e0, #f5f5f5);
  --wm-gradient-button: linear-gradient(135deg, rgba(250, 250, 250, 0.9) 0%, rgba(245, 245, 245, 0.85) 100%);
  --wm-gradient-button-hover: linear-gradient(135deg, rgba(240, 240, 240, 0.95) 0%, rgba(235, 235, 235, 0.9) 100%);
  --wm-gradient-primary: linear-gradient(135deg, var(--wm-color-accent-primary), var(--wm-color-accent-secondary));
  --wm-gradient-primary-hover: linear-gradient(135deg, var(--wm-color-accent-secondary), var(--wm-color-accent-tertiary));
  --wm-gradient-progress: linear-gradient(90deg, #0088cc 0%, #00aa44 100%);
  --wm-color-modal-bg: #ffffff;
  --wm-color-modal-header-bg: linear-gradient(90deg, #e0e0e0, #f5f5f5);
  --wm-color-modal-backdrop: rgba(0, 0, 0, 0.5); }

:root,
[data-theme-mode="dark"],
[data-bs-theme="dark"] {
  --bs-body-bg: var(--wm-color-bg);
  --bs-body-color: var(--wm-color-text-primary);
  --bs-border-color: var(--wm-color-border-subtle);
  --bs-primary: var(--wm-color-accent-primary);
  --bs-secondary: var(--wm-color-accent-secondary);
  --bs-success: var(--wm-color-success);
  --bs-danger: var(--wm-color-danger);
  --bs-warning: var(--wm-color-warning);
  --bs-info: var(--wm-color-info);
  --bs-link-color: var(--wm-color-accent-primary);
  --bs-link-hover-color: var(--wm-color-accent-secondary); }

[data-theme-mode="light"],
[data-bs-theme="light"] {
  --bs-body-bg: var(--wm-color-bg);
  --bs-body-color: var(--wm-color-text-primary);
  --bs-border-color: var(--wm-color-border-subtle);
  --bs-primary: var(--wm-color-accent-primary);
  --bs-secondary: var(--wm-color-accent-secondary);
  --bs-success: var(--wm-color-success);
  --bs-danger: var(--wm-color-danger);
  --bs-warning: var(--wm-color-warning);
  --bs-info: var(--wm-color-info);
  --bs-link-color: var(--wm-color-accent-primary);
  --bs-link-hover-color: var(--wm-color-accent-secondary); }

:root {
  --wm-space-xs: 0.25rem;
  /* 4px */
  --wm-space-sm: 0.5rem;
  /* 8px */
  --wm-space-md: 1rem;
  /* 16px */
  --wm-space-lg: 1.5rem;
  /* 24px */
  --wm-space-xl: 2rem;
  /* 32px */
  --wm-space-2xl: 3rem;
  /* 48px */
  --wm-space-3xl: 4rem;
  /* 64px */
  --wm-space-button-y: 0.5rem;
  --wm-space-button-x: 0.75rem;
  --wm-space-card: 1rem;
  --wm-space-modal: 1.5rem;
  --wm-space-hud-group: 0.5rem;
  --wm-space-page: 2rem;
  --wm-space-section: 3rem; }

:root {
  --wm-font-family-base: 'Exo 2', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  --wm-font-family-display: 'Russo One', 'Impact', sans-serif;
  --wm-font-family-mono: 'VT323', 'Courier New', monospace;
  --wm-font-size-xs: 0.75rem;
  /* 12px */
  --wm-font-size-sm: 0.875rem;
  /* 14px */
  --wm-font-size-base: 1rem;
  /* 16px */
  --wm-font-size-lg: 1.125rem;
  /* 18px */
  --wm-font-size-xl: 1.25rem;
  /* 20px */
  --wm-font-size-2xl: 1.5rem;
  /* 24px */
  --wm-font-size-3xl: 1.875rem;
  /* 30px */
  --wm-font-size-4xl: 2.25rem;
  /* 36px */
  --wm-font-weight-light: 300;
  --wm-font-weight-normal: 400;
  --wm-font-weight-semibold: 600;
  --wm-font-weight-bold: 800;
  --wm-line-height-tight: 1.2;
  --wm-line-height-normal: 1.5;
  --wm-line-height-relaxed: 1.75;
  --wm-letter-spacing-tight: -0.02em;
  --wm-letter-spacing-normal: 0;
  --wm-letter-spacing-wide: 0.05em;
  --wm-letter-spacing-wider: 0.1em; }

:root,
[data-theme-mode="dark"],
[data-bs-theme="dark"] {
  --wm-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
  --wm-shadow-md: 0 2px 5px rgba(0, 0, 0, 0.3);
  --wm-shadow-lg: 0 4px 10px rgba(0, 0, 0, 0.4);
  --wm-shadow-xl: 0 8px 20px rgba(0, 0, 0, 0.5);
  --wm-shadow-glow: 0 0 10px rgba(36, 238, 250, 0.3);
  --wm-shadow-glow-strong: 0 0 20px rgba(36, 238, 250, 0.5);
  --wm-shadow-glow-intense: 0 0 30px rgba(36, 238, 250, 0.7);
  --wm-shadow-focus: 0 0 0 2px rgba(36, 238, 250, 0.25);
  --wm-text-shadow-glow-green: 0 0 5px #0f0, 0 0 10px #0f0, 0 0 20px #0f0, 0 0 40px #0f0;
  --wm-text-shadow-glow-blue: 0 0 5px #00f, 0 0 10px #00f, 0 0 20px #00f, 0 0 40px #00f;
  --wm-text-shadow-glow-cyan: 0 0 5px #0ff, 0 0 10px #0ff, 0 0 20px #0ff, 0 0 40px #0ff;
  --wm-text-shadow-glow-grey: 0 0 5px #555, 0 0 10px #555, 0 0 20px #555, 0 0 40px #555;
  --wm-text-shadow-glow-warning: 0 0 4px rgba(255, 193, 7, 0.4);
  --wm-text-shadow-popup-glow: 0 0 10px rgba(47, 200, 220, 0.35);
  --wm-text-shadow-alert-title: 0 0 5px rgba(0, 229, 255, 0.7);
  --wm-shadow-layers-panel: 0 4px 20px rgba(0, 0, 0, 0.5), 0 0 15px rgba(0, 234, 255, 0.2);
  --wm-shadow-map-modal: 0 0 24px rgba(0, 255, 247, 0.27);
  --wm-shadow-alert-popup: 0 0 20px rgba(0, 255, 255, 0.25);
  --wm-shadow-toast: 0 4px 16px rgba(0, 0, 0, 0.3);
  --wm-shadow-toast-small: 0 2px 12px rgba(0, 0, 0, 0.18);
  --wm-shadow-store-button: 0 8px 24px rgba(0, 0, 0, 0.4);
  --wm-shadow-store-suggestions: 0 15px 40px rgba(0, 0, 0, 0.35);
  --wm-shadow-battle-button: 0 6px 28px rgba(0, 150, 0, 0.50);
  --wm-shadow-inset: inset 0 2px 4px rgba(0, 0, 0, 0.3);
  --wm-shadow-inset-strong: inset 0 4px 8px rgba(0, 0, 0, 0.4); }

[data-theme-mode="light"],
[data-bs-theme="light"] {
  --wm-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
  --wm-shadow-md: 0 2px 5px rgba(0, 0, 0, 0.12);
  --wm-shadow-lg: 0 4px 10px rgba(0, 0, 0, 0.16);
  --wm-shadow-xl: 0 8px 20px rgba(0, 0, 0, 0.2);
  --wm-shadow-glow: 0 0 10px rgba(0, 136, 204, 0.2);
  --wm-shadow-glow-strong: 0 0 20px rgba(0, 136, 204, 0.3);
  --wm-shadow-glow-intense: 0 0 30px rgba(0, 136, 204, 0.4);
  --wm-shadow-focus: 0 0 0 2px rgba(0, 136, 204, 0.2);
  --wm-text-shadow-glow-green: 0 0 2px rgba(0, 170, 68, 0.5);
  --wm-text-shadow-glow-blue: 0 0 2px rgba(0, 0, 255, 0.5);
  --wm-text-shadow-glow-cyan: 0 0 2px rgba(0, 136, 204, 0.5);
  --wm-text-shadow-glow-grey: 0 0 2px rgba(117, 117, 117, 0.5);
  --wm-text-shadow-glow-warning: 0 0 2px rgba(255, 152, 0, 0.4);
  --wm-shadow-inset: inset 0 2px 4px rgba(0, 0, 0, 0.06);
  --wm-shadow-inset-strong: inset 0 4px 8px rgba(0, 0, 0, 0.08); }

:root {
  --wm-radius-none: 0;
  --wm-radius-sm: 0.25rem;
  /* 4px */
  --wm-radius-md: 0.375rem;
  /* 6px */
  --wm-radius-lg: 0.5rem;
  /* 8px */
  --wm-radius-xl: 0.75rem;
  /* 12px */
  --wm-radius-2xl: 1rem;
  /* 16px */
  --wm-radius-full: 9999px;
  /* circular */ }

:root {
  --wm-transition-fast: 0.1s;
  --wm-transition-base: 0.2s;
  --wm-transition-slow: 0.3s;
  --wm-transition-slower: 0.5s;
  --wm-ease-in: cubic-bezier(0.4, 0, 1, 1);
  --wm-ease-out: cubic-bezier(0, 0, 0.2, 1);
  --wm-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --wm-transition-all: all var(--wm-transition-base) var(--wm-ease-in-out);
  --wm-transition-colors: color var(--wm-transition-base) var(--wm-ease-in-out),
                          background-color var(--wm-transition-base) var(--wm-ease-in-out),
                          border-color var(--wm-transition-base) var(--wm-ease-in-out);
  --wm-transition-opacity: opacity var(--wm-transition-base) var(--wm-ease-in-out);
  --wm-transition-transform: transform var(--wm-transition-base) var(--wm-ease-in-out); }

@media (prefers-reduced-motion: reduce) {
  :root {
    --wm-transition-fast: 0.01ms;
    --wm-transition-base: 0.01ms;
    --wm-transition-slow: 0.01ms;
    --wm-transition-slower: 0.01ms; }

  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important; } }
:root {
  --wm-z-base: 1;
  --wm-z-dropdown: 100;
  --wm-z-sticky: 200;
  --wm-z-fixed: 500;
  --wm-z-header: 1000;
  --wm-z-hud: 2000;
  --wm-z-overlay: 2500;
  --wm-z-modal-backdrop: 3000;
  --wm-z-modal: 3100;
  --wm-z-popover: 4000;
  --wm-z-toast: 5000;
  --wm-z-tooltip: 6000;
  --wm-z-notification: 7000; }

* {
  box-sizing: border-box; }

:focus-visible {
  outline: 2px solid var(--wm-color-focus);
  outline-offset: 2px; }

:focus:not(:focus-visible) {
  outline: none; }

body {
  margin: 0;
  padding: 0;
  font-family: var(--wm-font-family-base);
  font-size: var(--wm-font-size-base);
  line-height: var(--wm-line-height-normal);
  color: var(--wm-color-text-primary);
  background-color: var(--wm-color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

a {
  color: var(--wm-color-accent-primary);
  text-decoration: none;
  transition: var(--wm-transition-colors); }
  a:hover {
    color: var(--wm-color-accent-secondary); }

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
  margin: 0; }

input,
textarea,
select {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit; }

img {
  max-width: 100%;
  height: auto; }

h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: var(--wm-space-md);
  font-family: var(--wm-font-family-display);
  font-weight: var(--wm-font-weight-bold);
  line-height: var(--wm-line-height-tight);
  color: var(--wm-color-text-primary); }

h1 {
  font-size: var(--wm-font-size-4xl); }

h2 {
  font-size: var(--wm-font-size-3xl); }

h3 {
  font-size: var(--wm-font-size-2xl); }

h4 {
  font-size: var(--wm-font-size-xl); }

h5 {
  font-size: var(--wm-font-size-lg); }

h6 {
  font-size: var(--wm-font-size-base); }

p {
  margin-top: 0;
  margin-bottom: var(--wm-space-md); }

.text-muted {
  color: var(--wm-color-text-muted) !important; }

.text-primary {
  color: var(--wm-color-text-primary) !important; }

.text-secondary {
  color: var(--wm-color-text-secondary) !important; }

.text-accent {
  color: var(--wm-color-accent-primary) !important; }

.glow-green {
  text-shadow: var(--wm-text-shadow-glow-green); }

.glow-blue {
  text-shadow: var(--wm-text-shadow-glow-blue); }

.glow-cyan {
  text-shadow: var(--wm-text-shadow-glow-cyan); }

.glow-darkgrey {
  text-shadow: var(--wm-text-shadow-glow-grey); }

.theme-mode-toggle {
  border-radius: var(--wm-radius-md, 0.5rem);
  transition: all 0.2s ease;
  background-color: var(--wm-color-surface);
  border-color: var(--wm-color-border);
  color: var(--wm-color-text-primary); }
  .theme-mode-toggle.position-fixed {
    z-index: 1030; }
  .theme-mode-toggle:hover {
    background-color: var(--wm-color-surface-elevated);
    border-color: var(--wm-color-border-hover);
    transform: scale(1.05); }
  .theme-mode-toggle:focus {
    box-shadow: 0 0 0 0.25rem var(--wm-color-focus); }
  .theme-mode-toggle .bi {
    font-size: 1.1rem; }

.theme-toggle-wrapper {
  pointer-events: none; }
  .theme-toggle-wrapper * {
    pointer-events: auto; }

.u-ellipsis,
.t-ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%; }

.u-hidden {
  display: none !important; }

.u-visible {
  display: block !important; }

.can-rename {
  cursor: context-menu; }

.u-no-margin {
  margin: 0 !important; }

.u-no-padding {
  padding: 0 !important; }

.wm-btn-primary,
.wm-actionbtn--primary {
  background: var(--wm-gradient-primary, var(--wm-gradient-button));
  border-color: var(--wm-color-accent-primary);
  color: var(--wm-color-text-primary);
  box-shadow: var(--wm-shadow-glow); }

.wm-btn-primary:hover,
.wm-btn-primary:focus,
.wm-actionbtn--primary:hover,
.wm-actionbtn--primary:focus {
  background: var(--wm-gradient-primary-hover, var(--wm-gradient-button-hover));
  border-color: var(--wm-color-accent-secondary);
  box-shadow: var(--wm-shadow-glow-strong); }

.wm-btn-primary:active,
.wm-actionbtn--primary:active {
  box-shadow: var(--wm-shadow-glow); }

[data-realm="medieval"] {
  --wm-color-accent-primary: #d4af37;
  /* gold */
  --wm-color-accent-secondary: #c0c0c0;
  /* silver */
  --wm-color-accent-tertiary: #8b4513;
  /* brown/wood */
  --wm-color-border: rgba(212, 175, 55, 0.3);
  --wm-color-border-hover: rgba(212, 175, 55, 0.5);
  --wm-color-border-strong: rgba(212, 175, 55, 0.7);
  --wm-gradient-surface: linear-gradient(175deg, rgba(40, 30, 20, 0.85) 25%, rgba(60, 45, 30, 0.75) 90%);
  --wm-gradient-header: linear-gradient(90deg, #332211, #443322);
  --wm-gradient-button: linear-gradient(135deg, rgba(50, 40, 30, 0.9) 0%, rgba(70, 55, 40, 0.85) 100%);
  --wm-gradient-progress: linear-gradient(90deg, #d4af37 0%, #c0c0c0 100%);
  --wm-shadow-glow: 0 0 10px rgba(212, 175, 55, 0.3);
  --wm-shadow-glow-strong: 0 0 20px rgba(212, 175, 55, 0.5);
  --wm-shadow-glow-intense: 0 0 30px rgba(212, 175, 55, 0.7); }

[data-realm="industrial"] {
  --wm-color-accent-primary: #cc6600;
  /* rust orange */
  --wm-color-accent-secondary: #996633;
  /* copper */
  --wm-color-accent-tertiary: #666666;
  /* steel grey */
  --wm-color-border: rgba(204, 102, 0, 0.3);
  --wm-color-border-hover: rgba(204, 102, 0, 0.5);
  --wm-color-border-strong: rgba(204, 102, 0, 0.7);
  --wm-gradient-surface: linear-gradient(175deg, rgba(30, 25, 20, 0.85) 25%, rgba(50, 40, 35, 0.75) 90%);
  --wm-gradient-header: linear-gradient(90deg, #2a2520, #3a3025);
  --wm-gradient-button: linear-gradient(135deg, rgba(40, 35, 30, 0.9) 0%, rgba(60, 50, 40, 0.85) 100%);
  --wm-gradient-progress: linear-gradient(90deg, #cc6600 0%, #996633 100%);
  --wm-shadow-glow: 0 0 10px rgba(204, 102, 0, 0.3);
  --wm-shadow-glow-strong: 0 0 20px rgba(204, 102, 0, 0.5);
  --wm-shadow-glow-intense: 0 0 30px rgba(204, 102, 0, 0.7); }

[data-realm="fantasy"] {
  --wm-color-accent-primary: #9966ff;
  /* arcane purple */
  --wm-color-accent-secondary: #6699ff;
  /* mystic blue */
  --wm-color-accent-tertiary: #ff66cc;
  /* magical pink */
  --wm-color-border: rgba(153, 102, 255, 0.3);
  --wm-color-border-hover: rgba(153, 102, 255, 0.5);
  --wm-color-border-strong: rgba(153, 102, 255, 0.7);
  --wm-gradient-surface: linear-gradient(175deg, rgba(25, 15, 40, 0.85) 25%, rgba(40, 30, 60, 0.75) 90%);
  --wm-gradient-header: linear-gradient(90deg, #221133, #332244);
  --wm-gradient-button: linear-gradient(135deg, rgba(35, 25, 50, 0.9) 0%, rgba(55, 40, 70, 0.85) 100%);
  --wm-gradient-progress: linear-gradient(90deg, #9966ff 0%, #6699ff 100%);
  --wm-shadow-glow: 0 0 10px rgba(153, 102, 255, 0.3);
  --wm-shadow-glow-strong: 0 0 20px rgba(153, 102, 255, 0.5);
  --wm-shadow-glow-intense: 0 0 30px rgba(153, 102, 255, 0.7); }

.offcanvas {
  background-color: var(--wm-color-modal-bg); }

body.bg-dark .text-muted {
  color: var(--wm-color-text-muted) !important; }

.glow-green {
  text-shadow: var(--wm-text-shadow-glow-green); }

.glow-blue {
  text-shadow: var(--wm-text-shadow-glow-blue); }

.glow-darkgrey {
  text-shadow: var(--wm-text-shadow-glow-grey); }

.can-rename {
  cursor: context-menu; }

main div div div .region-content {
  padding: 0; }

.wm-offcanvas-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--wm-space-sm); }

.wm-header-controls {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--wm-space-xs); }

.wm-size-toggle {
  display: inline-flex;
  align-items: center; }

.wm-header-controls .war-offcanvas-resizer__quick-sizes {
  margin-left: 0; }

.path-frontpage .block-user {
  background: var(--wm-gradient-surface);
  padding: var(--wm-space-sm) var(--wm-space-md);
  margin: var(--wm-space-sm);
  box-shadow: var(--wm-shadow-glow-strong);
  position: fixed;
  right: 0;
  top: 0;
  z-index: 999;
  border: 1px solid var(--wm-color-border);
  border-radius: var(--wm-radius-md); }
  @media (max-width: 768px) {
    .path-frontpage .block-user {
      transform: scale(0.9);
      transform-origin: top right; } }
  .path-frontpage .block-user a {
    color: var(--wm-color-text-muted); }
    .path-frontpage .block-user a:hover {
      color: var(--wm-color-accent-primary); }
  .path-frontpage .block-user label {
    color: var(--wm-color-text-secondary);
    margin-right: var(--wm-space-sm); }
    .path-frontpage .block-user label.form-required::after {
      background: none;
      color: var(--wm-color-warning);
      content: "*";
      display: inline-block;
      height: 6px;
      margin: 0 0.3em;
      position: relative;
      top: 7px;
      vertical-align: super;
      width: 6px; }
  .path-frontpage .block-user input[type='text'],
  .path-frontpage .block-user input[type='password'] {
    border: 0;
    color: var(--wm-color-accent-tertiary);
    background: var(--wm-color-surface);
    padding: var(--wm-space-xs) var(--wm-space-sm);
    border-radius: var(--wm-radius-sm);
    transition: var(--wm-transition-colors); }
    .path-frontpage .block-user input[type='text']:focus,
    .path-frontpage .block-user input[type='password']:focus {
      background-color: var(--wm-color-surface-elevated);
      box-shadow: var(--wm-shadow-glow); }
  .path-frontpage .block-user input.btn {
    background-color: var(--wm-color-success-bg);
    color: var(--wm-color-success);
    border: 1px solid var(--wm-color-success);
    padding: var(--wm-space-xs) var(--wm-space-md);
    border-radius: var(--wm-radius-sm);
    cursor: pointer;
    transition: var(--wm-transition-colors); }
    .path-frontpage .block-user input.btn:hover {
      background-color: var(--wm-color-success);
      color: var(--wm-color-bg);
      box-shadow: var(--wm-shadow-glow); }

.t-ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%; }

/*# sourceMappingURL=style.css.map */
