/* ===========================================================
   KBA REGISTRATION - DESIGN TOKEN SYSTEM
   Standardized colors, borders, shadows, and spacing
   =========================================================== */

:root {
    /* ===========================================================
       PRIMARY COLORS
       =========================================================== */
    --color-primary: #007bff;
    --color-primary-hover: #0056b3;
    --color-primary-light: rgba(0, 123, 255, 0.1);
    --color-primary-shadow: rgba(0, 123, 255, 0.15);
    --color-primary-dark: #004085;
    
    /* ===========================================================
       STATUS COLORS (Semantic)
       =========================================================== */
    --color-success: #28a745;
    --color-success-hover: #218838;
    --color-success-light: rgba(40, 167, 69, 0.1);
    --color-success-dark: #1e7e34;
    
    --color-warning: #ffc107;
    --color-warning-text: #000000; /* WCAG AA compliant contrast */
    --color-warning-hover: #e0a800;
    --color-warning-light: rgba(255, 193, 7, 0.1);
    --color-warning-dark: #856404;
    
    --color-danger: #dc3545;
    --color-danger-hover: #c82333;
    --color-danger-light: rgba(220, 53, 69, 0.1);
    --color-danger-dark: #bd2130;
    
    --color-info: #17a2b8;
    --color-info-hover: #138496;
    --color-info-light: rgba(23, 162, 184, 0.1);
    --color-info-dark: #117a8b;
    
    /* ===========================================================
       NEUTRAL GRAY SCALE
       =========================================================== */
    --color-gray-50: #f8f9fa;
    --color-gray-100: #f0f0f0;
    --color-gray-200: #e9ecef;
    --color-gray-300: #dee2e6;
    --color-gray-400: #ced4da;
    --color-gray-500: #adb5bd;
    --color-gray-600: #6c757d;
    --color-gray-700: #495057;
    --color-gray-800: #343a40;
    --color-gray-900: #212529;
    
    /* ===========================================================
       TEXT COLORS
       =========================================================== */
    --color-text-primary: #212529;
    --color-text-secondary: #495057;
    --color-text-muted: #6c757d;
    --color-text-light: #ffffff;
    --color-text-inverse: #ffffff;
    
    /* ===========================================================
       BACKGROUND COLORS
       =========================================================== */
    --color-bg-primary: #ffffff;
    --color-bg-secondary: #f8f9fa;
    --color-bg-hover: #f8f9fa;
    --color-bg-active: #e9ecef;
    --color-bg-overlay: rgba(0, 0, 0, 0.8);
    --color-bg-overlay-light: rgba(0, 0, 0, 0.5);
    
    /* ===========================================================
       BORDER SYSTEM
       =========================================================== */
    --border-width-thin: 1px;
    --border-width-medium: 2px;
    --border-width-thick: 3px;
    
    --border-color-default: #e9ecef;
    --border-color-light: #f0f0f0;
    --border-color-medium: #dee2e6;
    --border-color-primary: #007bff;
    --border-color-success: #28a745;
    --border-color-warning: #ffc107;
    --border-color-danger: #dc3545;
    
    --border-style-solid: solid;
    --border-style-dashed: dashed;
    --border-style-dotted: dotted;
    
    --border-radius-none: 0;
    --border-radius-sm: 4px;
    --border-radius-md: 8px;
    --border-radius-lg: 12px;
    --border-radius-xl: 16px;
    --border-radius-full: 9999px;
    
    /* ===========================================================
       SHADOW SYSTEM
       =========================================================== */
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.15);
    --shadow-xl: 0 8px 24px rgba(0, 0, 0, 0.2);
    --shadow-2xl: 0 12px 32px rgba(0, 0, 0, 0.25);
    
    --shadow-colored: 0 4px 12px var(--color-primary-shadow);
    --shadow-success: 0 4px 12px rgba(40, 167, 69, 0.15);
    --shadow-danger: 0 4px 12px rgba(220, 53, 69, 0.15);
    
    /* ===========================================================
       TRANSITION SYSTEM
       =========================================================== */
    --transition-fast: 0.15s ease;
    --transition-base: 0.3s ease;
    --transition-slow: 0.5s ease;
    
    --transition-bounce: 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    --transition-smooth: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    
    /* ===========================================================
       SPACING SYSTEM
       =========================================================== */
    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-2xl: 3rem;
    
    /* ===========================================================
       TYPOGRAPHY
       =========================================================== */
    --font-size-xs: 0.75rem;
    --font-size-sm: 0.875rem;
    --font-size-base: 1rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    --font-size-2xl: 1.5rem;
    --font-size-3xl: 1.875rem;
    
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    
    --line-height-tight: 1.25;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.75;
    
    /* ===========================================================
       Z-INDEX SCALE
       =========================================================== */
    --z-index-dropdown: 1000;
    --z-index-sticky: 1020;
    --z-index-fixed: 1030;
    --z-index-modal-backdrop: 1040;
    --z-index-modal: 1050;
    --z-index-popover: 1060;
    --z-index-tooltip: 1070;
}

/* ===========================================================
   ACCESSIBILITY ENHANCEMENTS
   =========================================================== */

/* High Contrast Mode Support */
@media (prefers-contrast: high) {
    :root {
        --border-color-default: #000000;
        --border-color-light: #000000;
        --color-text-secondary: #000000;
        --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.3);
    }
}

/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
    :root {
        --transition-fast: 0.01ms;
        --transition-base: 0.01ms;
        --transition-slow: 0.01ms;
    }
    
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* ===========================================================
   DARK MODE SUPPORT
   =========================================================== */

/* Dark mode is activated by adding 'dark-mode' class to <html> or <body> */
/* Can be toggled via JavaScript or user preference */

[data-theme="dark"],
.dark-mode,
html.dark-mode,
body.dark-mode {
    /* Primary Colors (adjusted for dark mode) */
    --color-primary: #4dabf7;
    --color-primary-hover: #339af0;
    --color-primary-light: rgba(77, 171, 247, 0.2);
    --color-primary-shadow: rgba(77, 171, 247, 0.3);
    
    /* Status Colors */
    --color-success: #51cf66;
    --color-success-hover: #40c057;
    --color-success-light: rgba(81, 207, 102, 0.2);
    --color-warning: #ffd43b;
    --color-warning-text: #000000; /* Keep black for contrast */
    --color-warning-hover: #fcc419;
    --color-warning-light: rgba(255, 212, 59, 0.2);
    --color-danger: #ff6b6b;
    --color-danger-hover: #ff5252;
    --color-danger-light: rgba(255, 107, 107, 0.2);
    --color-info: #74c0fc;
    --color-info-light: rgba(116, 192, 252, 0.2);
    
    /* Neutral Colors (inverted) */
    --color-gray-50: #1a1a1a;
    --color-gray-100: #2d2d2d;
    --color-gray-200: #3d3d3d;
    --color-gray-300: #4d4d4d;
    --color-gray-400: #6d6d6d;
    --color-gray-500: #8d8d8d;
    --color-gray-600: #adadad;
    --color-gray-700: #c8c8c8;
    --color-gray-800: #e0e0e0;
    --color-gray-900: #f5f5f5;
    
    /* Text Colors (inverted) */
    --color-text-primary: #f5f5f5;
    --color-text-secondary: #e0e0e0;
    --color-text-muted: #c8c8c8;
    --color-text-light: #1a1a1a;
    
    /* Background Colors (inverted) */
    --color-bg-primary: #1a1a1a;
    --color-bg-secondary: #2d2d2d;
    --color-bg-hover: #3d3d3d;
    --color-bg-active: #4d4d4d;
    --color-bg-overlay: rgba(0, 0, 0, 0.9);
    --color-bg-overlay-light: rgba(0, 0, 0, 0.7);
    
    /* Border Colors (adjusted for dark mode) */
    --border-color-default: #3d3d3d;
    --border-color-light: #2d2d2d;
    --border-color-medium: #4d4d4d;
    --border-color-primary: #4dabf7;
    
    /* Shadows (adjusted for dark mode) */
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.5);
    --shadow-xl: 0 8px 24px rgba(0, 0, 0, 0.6);
    --shadow-colored: 0 4px 12px rgba(77, 171, 247, 0.3);
}

/* System preference dark mode */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]):not(.light-mode) {
        /* Same dark mode variables as above */
        --color-primary: #4dabf7;
        --color-primary-hover: #339af0;
        --color-primary-light: rgba(77, 171, 247, 0.2);
        --color-primary-shadow: rgba(77, 171, 247, 0.3);
        --color-success: #51cf66;
        --color-success-hover: #40c057;
        --color-success-light: rgba(81, 207, 102, 0.2);
        --color-warning: #ffd43b;
        --color-warning-text: #000000;
        --color-warning-hover: #fcc419;
        --color-warning-light: rgba(255, 212, 59, 0.2);
        --color-danger: #ff6b6b;
        --color-danger-hover: #ff5252;
        --color-danger-light: rgba(255, 107, 107, 0.2);
        --color-info: #74c0fc;
        --color-info-light: rgba(116, 192, 252, 0.2);
        --color-gray-50: #1a1a1a;
        --color-gray-100: #2d2d2d;
        --color-gray-200: #3d3d3d;
        --color-gray-300: #4d4d4d;
        --color-gray-400: #6d6d6d;
        --color-gray-500: #8d8d8d;
        --color-gray-600: #adadad;
        --color-gray-700: #c8c8c8;
        --color-gray-800: #e0e0e0;
        --color-gray-900: #f5f5f5;
        --color-text-primary: #f5f5f5;
        --color-text-secondary: #e0e0e0;
        --color-text-muted: #c8c8c8;
        --color-text-light: #1a1a1a;
        --color-bg-primary: #1a1a1a;
        --color-bg-secondary: #2d2d2d;
        --color-bg-hover: #3d3d3d;
        --color-bg-active: #4d4d4d;
        --color-bg-overlay: rgba(0, 0, 0, 0.9);
        --color-bg-overlay-light: rgba(0, 0, 0, 0.7);
        --border-color-default: #3d3d3d;
        --border-color-light: #2d2d2d;
        --border-color-medium: #4d4d4d;
        --border-color-primary: #4dabf7;
        --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
        --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.4);
        --shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.5);
        --shadow-xl: 0 8px 24px rgba(0, 0, 0, 0.6);
        --shadow-colored: 0 4px 12px rgba(77, 171, 247, 0.3);
    }
}

/* Force light mode (override system preference) */
[data-theme="light"],
.light-mode {
    /* Explicitly use light mode variables */
    --color-primary: #007bff;
    --color-primary-hover: #0056b3;
    --color-primary-light: rgba(0, 123, 255, 0.1);
    --color-primary-shadow: rgba(0, 123, 255, 0.15);
    --color-success: #28a745;
    --color-success-hover: #218838;
    --color-success-light: rgba(40, 167, 69, 0.1);
    --color-warning: #ffc107;
    --color-warning-text: #000000;
    --color-warning-hover: #e0a800;
    --color-warning-light: rgba(255, 193, 7, 0.1);
    --color-danger: #dc3545;
    --color-danger-hover: #c82333;
    --color-danger-light: rgba(220, 53, 69, 0.1);
    --color-info: #17a2b8;
    --color-info-light: rgba(23, 162, 184, 0.1);
    --color-gray-50: #f8f9fa;
    --color-gray-100: #f0f0f0;
    --color-gray-200: #e9ecef;
    --color-gray-300: #dee2e6;
    --color-gray-400: #ced4da;
    --color-gray-500: #adb5bd;
    --color-gray-600: #6c757d;
    --color-gray-700: #495057;
    --color-gray-800: #343a40;
    --color-gray-900: #212529;
    --color-text-primary: #212529;
    --color-text-secondary: #495057;
    --color-text-muted: #6c757d;
    --color-text-light: #ffffff;
    --color-bg-primary: #ffffff;
    --color-bg-secondary: #f8f9fa;
    --color-bg-hover: #f8f9fa;
    --color-bg-active: #e9ecef;
    --color-bg-overlay: rgba(0, 0, 0, 0.8);
    --color-bg-overlay-light: rgba(0, 0, 0, 0.5);
    --border-color-default: #e9ecef;
    --border-color-light: #f0f0f0;
    --border-color-medium: #dee2e6;
    --border-color-primary: #007bff;
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.15);
    --shadow-xl: 0 8px 24px rgba(0, 0, 0, 0.2);
    --shadow-colored: 0 4px 12px rgba(0, 123, 255, 0.15);

    /* Typography — matches Bootstrap / AdminLTE variable name for components */
    --font-family-sans-serif: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
        "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

/* Override AdminLTE hardcoded Source Sans when this file loads after adminlte.min.css */
body,
.tooltip,
.popover,
.mapael .mapTooltip {
    font-family: var(--font-family-sans-serif);
}
