/* =============================================================================
   SKIP Design System - Inspired by Bell.ca
   Modern, clean, enterprise-grade design tokens
   ============================================================================= */

/* =============================================================================
   COLOR PALETTE
   ============================================================================= */

:root {
    /* Primary Brand Colors */
    --skip-primary: #0d6efd;          /* Primary blue */
    --skip-primary-hover: #0b5ed7;    /* Darker blue for hover */
    --skip-primary-light: #cfe2ff;    /* Light blue for backgrounds */
    --skip-primary-dark: #084298;     /* Dark blue for text */
    
    /* Secondary Colors */
    --skip-secondary: #6c757d;        /* Gray for secondary elements */
    --skip-secondary-hover: #5c636a;  /* Darker gray */
    
    /* Accent Colors */
    --skip-accent: #0dcaf0;           /* Cyan for highlights */
    --skip-accent-dark: #087990;      /* Dark cyan */
    --skip-success: #198754;          /* Green for success states */
    --skip-warning: #ffc107;          /* Yellow for warnings */
    --skip-danger: #dc3545;           /* Red for errors */
    
    /* Neutral Colors - Light Mode */
    --skip-bg-primary-light: #ffffff;
    --skip-bg-secondary-light: #f8f9fa;
    --skip-bg-tertiary-light: #e9ecef;
    
    --skip-text-primary-light: #212529;
    --skip-text-secondary-light: #6c757d;
    --skip-text-muted-light: #adb5bd;
    
    --skip-border-light: #dee2e6;
    --skip-border-subtle-light: #e9ecef;
    
    /* Neutral Colors - Dark Mode */
    --skip-bg-primary-dark: #1a1d20;
    --skip-bg-secondary-dark: #212529;
    --skip-bg-tertiary-dark: #2d3238;
    
    --skip-text-primary-dark: #f8f9fa;
    --skip-text-secondary-dark: #adb5bd;
    --skip-text-muted-dark: #6c757d;
    
    --skip-border-dark: #495057;
    --skip-border-subtle-dark: #343a40;
    
    /* Active Theme Variables (defaults to light) */
    --skip-bg-primary: var(--skip-bg-primary-light);
    --skip-bg-secondary: var(--skip-bg-secondary-light);
    --skip-bg-tertiary: var(--skip-bg-tertiary-light);
    
    --skip-text-primary: var(--skip-text-primary-light);
    --skip-text-secondary: var(--skip-text-secondary-light);
    --skip-text-muted: var(--skip-text-muted-light);
    
    --skip-border: var(--skip-border-light);
    --skip-border-subtle: var(--skip-border-subtle-light);
}

/* Dark Theme Override */
[data-bs-theme="dark"] {
    --skip-bg-primary: var(--skip-bg-primary-dark);
    --skip-bg-secondary: var(--skip-bg-secondary-dark);
    --skip-bg-tertiary: var(--skip-bg-tertiary-dark);
    
    --skip-text-primary: var(--skip-text-primary-dark);
    --skip-text-secondary: var(--skip-text-secondary-dark);
    --skip-text-muted: var(--skip-text-muted-dark);
    
    --skip-border: var(--skip-border-dark);
    --skip-border-subtle: var(--skip-border-subtle-dark);
}

/* =============================================================================
   TYPOGRAPHY
   ============================================================================= */

:root {
    /* Font Families */
    --skip-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, 
                      "Helvetica Neue", Arial, sans-serif;
    --skip-font-mono: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", 
                      "Courier New", monospace;
    
    /* Font Sizes */
    --skip-font-xs: 0.75rem;      /* 12px */
    --skip-font-sm: 0.875rem;     /* 14px */
    --skip-font-base: 1rem;       /* 16px */
    --skip-font-lg: 1.125rem;     /* 18px */
    --skip-font-xl: 1.25rem;      /* 20px */
    --skip-font-2xl: 1.5rem;      /* 24px */
    --skip-font-3xl: 1.875rem;    /* 30px */
    --skip-font-4xl: 2.25rem;     /* 36px */
    --skip-font-5xl: 3rem;        /* 48px */
    
    /* Font Weights */
    --skip-font-light: 300;
    --skip-font-normal: 400;
    --skip-font-medium: 500;
    --skip-font-semibold: 600;
    --skip-font-bold: 700;
    
    /* Line Heights */
    --skip-leading-tight: 1.25;
    --skip-leading-snug: 1.375;
    --skip-leading-normal: 1.5;
    --skip-leading-relaxed: 1.625;
    --skip-leading-loose: 2;
}

/* =============================================================================
   SPACING
   ============================================================================= */

:root {
    --skip-space-1: 0.25rem;   /* 4px */
    --skip-space-2: 0.5rem;    /* 8px */
    --skip-space-3: 0.75rem;   /* 12px */
    --skip-space-4: 1rem;      /* 16px */
    --skip-space-5: 1.25rem;   /* 20px */
    --skip-space-6: 1.5rem;    /* 24px */
    --skip-space-8: 2rem;      /* 32px */
    --skip-space-10: 2.5rem;   /* 40px */
    --skip-space-12: 3rem;     /* 48px */
    --skip-space-16: 4rem;     /* 64px */
    --skip-space-20: 5rem;     /* 80px */
    --skip-space-24: 6rem;     /* 96px */
}

/* =============================================================================
   BORDERS & RADIUS
   ============================================================================= */

:root {
    --skip-radius-sm: 0.25rem;   /* 4px */
    --skip-radius: 0.375rem;     /* 6px */
    --skip-radius-md: 0.5rem;    /* 8px */
    --skip-radius-lg: 0.75rem;   /* 12px */
    --skip-radius-xl: 1rem;      /* 16px */
    --skip-radius-2xl: 1.5rem;   /* 24px */
    --skip-radius-full: 9999px;  /* Fully rounded */
    
    --skip-border-width: 1px;
    --skip-border-width-2: 2px;
    --skip-border-width-4: 4px;
}

/* =============================================================================
   SHADOWS
   ============================================================================= */

:root {
    --skip-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --skip-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    --skip-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
    --skip-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    --skip-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    --skip-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

[data-bs-theme="dark"] {
    --skip-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
    --skip-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.4), 0 1px 2px -1px rgba(0, 0, 0, 0.3);
    --skip-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3);
    --skip-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -4px rgba(0, 0, 0, 0.3);
    --skip-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.4), 0 8px 10px -6px rgba(0, 0, 0, 0.3);
    --skip-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}

/* =============================================================================
   Z-INDEX LAYERS
   ============================================================================= */

:root {
    --skip-z-dropdown: 1000;
    --skip-z-sticky: 1020;
    --skip-z-fixed: 1030;
    --skip-z-modal-backdrop: 1040;
    --skip-z-modal: 1050;
    --skip-z-popover: 1060;
    --skip-z-tooltip: 1070;
}

/* =============================================================================
   TRANSITIONS
   ============================================================================= */

:root {
    --skip-transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --skip-transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
    --skip-transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);
    --skip-transition-slower: 500ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* =============================================================================
   LAYOUT CONSTRAINTS
   ============================================================================= */

:root {
    --skip-container-sm: 640px;
    --skip-container-md: 768px;
    --skip-container-lg: 1024px;
    --skip-container-xl: 1280px;
    --skip-container-2xl: 1536px;
    
    --skip-header-height: 64px;
    --skip-sidebar-width: 250px;
    --skip-sidebar-width-collapsed: 64px;
}

/* =============================================================================
   GLOBAL RESETS & BASE STYLES
   ============================================================================= */

* {
    box-sizing: border-box;
}

html, body {
    height: 100%;
    overflow: hidden; /* Prevent body scroll, let layout handle it */
}

body {
    font-family: var(--skip-font-sans);
    font-size: var(--skip-font-base);
    line-height: var(--skip-leading-normal);
    color: var(--skip-text-primary);
    background-color: var(--skip-bg-secondary);
    margin: 0;
    padding: 0;
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Improved text rendering */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Focus styles */
:focus-visible {
    outline: 2px solid var(--skip-primary);
    outline-offset: 2px;
}

/* Selection colors */
::selection {
    background-color: var(--skip-primary-light);
    color: var(--skip-primary-dark);
}

/* =============================================================================
   UTILITY CLASSES
   ============================================================================= */

/* Container */
.skip-container {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--skip-space-4);
    padding-right: var(--skip-space-4);
}

@media (min-width: 640px) {
    .skip-container { max-width: var(--skip-container-sm); }
}

@media (min-width: 768px) {
    .skip-container { max-width: var(--skip-container-md); }
}

@media (min-width: 1024px) {
    .skip-container { max-width: var(--skip-container-lg); }
}

@media (min-width: 1280px) {
    .skip-container { max-width: var(--skip-container-xl); }
}

/* Card Component */
.skip-card {
    background-color: var(--skip-bg-primary);
    border-radius: var(--skip-radius-lg);
    box-shadow: var(--skip-shadow);
    padding: var(--skip-space-6);
    transition: box-shadow var(--skip-transition-base);
}

.skip-card:hover {
    box-shadow: var(--skip-shadow-lg);
}

/* Button Styles */
.skip-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--skip-space-2);
    padding: var(--skip-space-3) var(--skip-space-6);
    font-size: var(--skip-font-base);
    font-weight: var(--skip-font-semibold);
    line-height: 1;
    border-radius: var(--skip-radius);
    border: none;
    cursor: pointer;
    transition: all var(--skip-transition-base);
    text-decoration: none;
}

.skip-btn-primary {
    background-color: var(--skip-primary);
    color: white;
}

.skip-btn-primary:hover {
    background-color: var(--skip-primary-hover);
}

.skip-btn-secondary {
    background-color: var(--skip-bg-secondary);
    color: var(--skip-text-primary);
}

.skip-btn-secondary:hover {
    background-color: var(--skip-bg-tertiary);
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
