/**
 * Design Tokens - Laufwerk Brand
 *
 * This file defines all design tokens (colors, spacing, typography, etc.)
 * used throughout the application. Modify these values to quickly change
 * the entire app's appearance without touching component CSS.
 *
 * Token Categories:
 * - Colors: Primary, backgrounds, text, borders, states
 * - Spacing: Padding, margins, gaps
 * - Typography: Font family, sizes, weights
 * - Layout: Border radius, shadows, transitions
 */

:root {
  /* ============================================
     COLOR TOKENS
     ============================================ */

  /* Primary Brand Color */
  --color-primary: #ff8c00;
  --color-primary-hover: #ff9f2e;
  --color-primary-dark: #e67e00;

  /* Backgrounds */
  --bg-primary: #0a0a0a;
  --bg-secondary: #1a1a1a;
  --bg-tertiary: #2a2a2a;

  /* Text Colors */
  --text-primary: #ffffff;
  --text-secondary: #aaaaaa;
  --text-tertiary: #888888;
  --text-placeholder: #666666;

  /* Border Colors */
  --border-light: #333333;
  --border-dark: #1a1a1a;

  /* Status Colors */
  --color-success: #00b400;
  --color-error: #c80000;
  --color-warning: #ff8c00;
  --color-info: #0099ff;

  /* State Colors */
  --state-disabled: #444444;
  --state-disabled-text: #888888;
  --state-ready: rgba(0, 180, 0, 0.95);
  --state-ready-glow: rgba(0, 255, 0, 0.7);
  --state-inactive: rgba(128, 128, 128, 0.35);

  /* Overlay Colors */
  --overlay-dark: rgba(0, 0, 0, 0.85);
  --overlay-light: rgba(0, 0, 0, 0.4);
  --overlay-semi: rgba(0, 0, 0, 0.9);

  /* ============================================
     SPACING TOKENS
     ============================================ */

  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;

  /* Common Spacing Patterns */
  --form-gap: 1rem;
  --form-group-gap: 0.5rem;
  --card-padding: 2rem;
  --button-padding: 1rem 2rem;
  --input-padding: 0.875rem 1rem;

  /* ============================================
     TYPOGRAPHY TOKENS
     ============================================ */

  /* Font Family */
  --font-family-base: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-family-mono: "Courier New", monospace;

  /* Font Sizes */
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.25rem;
  --font-size-xl: 1.5rem;
  --font-size-2xl: 1.75rem;

  /* Font Weights */
  --font-weight-normal: 400;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Line Heights */
  --line-height-tight: 1.2;
  --line-height-normal: 1.4;
  --line-height-relaxed: 1.6;

  /* ============================================
     LAYOUT TOKENS
     ============================================ */

  /* Border Radius */
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 20px;
  --radius-full: 9999px;

  /* Shadows */
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.5);
  --shadow-lg: 0 10px 20px rgba(0, 0, 0, 0.8);
  --shadow-camera: 0 0 20px rgba(0, 0, 0, 0.8);
  --shadow-camera-ready: 0 0 25px rgba(0, 255, 0, 0.7);

  /* Transitions */
  --transition-fast: 0.2s ease;
  --transition-normal: 0.3s ease;
  --transition-slow: 0.5s ease;

  /* Z-index Scale */
  --z-base: 1;
  --z-dropdown: 10;
  --z-fixed: 100;
  --z-modal: 1000;
  --z-tooltip: 1001;
  --z-overlay: 9999;

  /* ============================================
     COMPONENT-SPECIFIC TOKENS
     ============================================ */

  /* Card Component */
  --card-bg: var(--bg-secondary);
  --card-border: var(--border-light);
  --card-padding: var(--card-padding);
  --card-radius: var(--radius-md);

  /* Button Component */
  --button-bg: var(--color-primary);
  --button-text: #000;
  --button-padding: var(--button-padding);
  --button-radius: var(--radius-sm);
  --button-hover-bg: var(--color-primary-hover);
  --button-disabled-bg: var(--state-disabled);
  --button-disabled-text: var(--state-disabled-text);

  /* Input Component */
  --input-bg: var(--bg-primary);
  --input-text: var(--text-primary);
  --input-border: var(--border-light);
  --input-border-focus: var(--color-primary);
  --input-padding: var(--input-padding);
  --input-radius: var(--radius-sm);
  --input-placeholder: var(--text-placeholder);

  /* Progress Bar */
  --progress-bg: rgba(255, 255, 255, 0.2);
  --progress-fill: var(--color-primary);
  --progress-height: 4px;

  /* Banner Component */
  --banner-bg: var(--overlay-dark);
  --banner-border: var(--color-primary);
  --banner-text: var(--text-primary);
  --banner-accent: var(--color-primary);
  --banner-padding: 0.75rem 1.25rem;
  --banner-radius: 12px;

  /* Camera Shutter Button */
  --shutter-width: auto;
  --shutter-padding: 0.875rem 2.5rem;
  --shutter-radius: var(--radius-full);
  --shutter-bg-inactive: rgba(200, 0, 0, 0.9);
  --shutter-bg-ready: var(--state-ready);
  --shutter-shadow-inactive: 0 0 20px rgba(0, 0, 0, 0.8);
  --shutter-shadow-ready: var(--shadow-camera-ready);

  /* Status Text */
  --status-bg: rgba(0, 0, 0, 0.4);
  --status-text: var(--text-primary);
  --status-padding: 0.25rem 0.75rem;
  --status-radius: var(--radius-full);
  --status-font-size: var(--font-size-sm);

  /* Overlay Wrapper */
  --overlay-wrapper-size: 260px;
  --overlay-z: 3;

  /* ============================================
     RESPONSIVE TOKENS
     ============================================ */

  /* Breakpoints (CSS only supports tokens, not media queries) */
  /* Use these in media queries by referencing pixel values */
  --breakpoint-mobile: 480px;
  --breakpoint-tablet: 768px;
  --breakpoint-desktop: 1024px;
}

/**
 * Brand Variant: Laufwerk (Default)
 * This is the primary configuration. Other brands can override
 * specific tokens by creating additional rule sets.
 *
 * Example: Creating an ON brand variant would override:
 * --color-primary: #c45500;
 * --bg-primary: #ffffff;
 * --text-primary: #000000;
 * etc.
 */

/* No additional rule set needed - :root is the Laufwerk brand default */
