$primary-color: #0d6efd; $secondary-color: #6c757d; $success-color: #146c43; $warning-color: #ca8a04; $danger-color: #dc3545; $info-color: #0891b2; $primary: $primary-color; $secondary: $secondary-color; $success: $success-color; $warning: $warning-color; $danger: $danger-color; $info: $info-color; $gradient-end-color: #764ba2; $primary-gradient: linear-gradient(135deg, $primary-color 0%, $gradient-end-color 100%); $white: #ffffff; $black: #000000; $gray-100: #f7fafc; $gray-200: #edf2f7; $gray-300: #e2e8f0; $gray-400: #cbd5e0; $gray-500: #a0aec0; $gray-600: #718096; $gray-700: #4a5568; $gray-800: #2d3748; $gray-900: #1a202c; $font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; $font-family-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace; $font-size-base: 1rem; $font-size-sm: 0.875rem; $font-size-lg: 1.125rem; $font-size-xl: 1.25rem; $font-size-2xl: 1.5rem; $font-size-3xl: 1.875rem; $font-weight-light: 300; $font-weight-normal: 400; $font-weight-medium: 500; $font-weight-semibold: 600; $font-weight-bold: 700; $line-height-base: 1.5; $line-height-tight: 1.25; $line-height-loose: 1.75; $spacing-xs: 0.25rem; $spacing-sm: 0.5rem; $spacing-md: 1rem; $spacing-lg: 1.5rem; $spacing-xl: 2rem; $spacing-2xl: 3rem; $spacing-3xl: 4rem; $border-radius-sm: 0.25rem; $border-radius-md: 0.375rem; $border-radius-lg: 0.5rem; $border-radius-xl: 0.75rem; $border-radius-full: 9999px; $border-width: 1px; $border-color: #b8b8b8; $shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); $shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); $shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); $shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); $shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25); $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; $breakpoint-sm: 640px; $breakpoint-md: 768px; $breakpoint-lg: 1024px; $breakpoint-xl: 1280px; $breakpoint-2xl: 1536px; $container-max-width: 1280px; $container-padding: $spacing-lg; $card-bg: $white; $card-border-radius: $border-radius-lg; $card-shadow: $shadow-lg; $card-padding: $spacing-xl; $button-padding-x: $spacing-lg; $button-padding-y: $spacing-sm; $button-border-radius: $border-radius-md; $button-font-weight: $font-weight-semibold; $input-padding-x: $spacing-md; $input-padding-y: $spacing-sm; $input-border-radius: $border-radius-md; $input-border-color: #b8b8b8; $input-focus-border-color: $primary-color; $transition-base: all 0.2s ease-in-out; $transition-fast: all 0.15s ease-in-out; $transition-slow: all 0.3s ease-in-out; @mixin button-variant($bg-color, $text-color: $white) { background-color: $bg-color; color: $text-color; &:hover { background-color: darken($bg-color, 10%); } &:focus { outline: none; box-shadow: 0 0 0 3px rgba($bg-color, 0.5); } &:active { background-color: darken($bg-color, 15%); } } @mixin card { background: $card-bg; border-radius: $card-border-radius; box-shadow: $card-shadow; padding: $card-padding; } @mixin truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }