/**
 * PROFESSIONAL DESIGN SYSTEM
 * Inspired by Udemy & Coursera
 * Complete design system with colors, typography, spacing, components
 *
 * @package Coursee
 * @since 1.0.0
 */

/* ============================================
   DESIGN TOKENS - COLORS (Udemy/Coursera Style)
   ============================================ */

:root {
	/* Primary Colors - Purple (Udemy style) */
	--color-primary: #5624d0;
	--color-primary-dark: #4c1d95;
	--color-primary-light: #667eea;
	--color-primary-hover: #4c1d95;
	
	/* Secondary Colors */
	--color-secondary: #1c1d1f;
	--color-secondary-light: #3e4143;
	
	/* Accent Colors */
	--color-accent: #f3ca8c;
	--color-accent-dark: #e4a853;
	
	/* Status Colors */
	--color-success: #0f5132;
	--color-success-bg: #d1e7dd;
	--color-error: #842029;
	--color-error-bg: #f8d7da;
	--color-warning: #664d03;
	--color-warning-bg: #fff3cd;
	--color-info: #055160;
	--color-info-bg: #cff4fc;
	
	/* Neutral Colors */
	--color-white: #ffffff;
	--color-black: #000000;
	--color-gray-50: #f7f9fa;
	--color-gray-100: #e9ecef;
	--color-gray-200: #dee2e6;
	--color-gray-300: #ced4da;
	--color-gray-400: #adb5bd;
	--color-gray-500: #6c757d;
	--color-gray-600: #495057;
	--color-gray-700: #343a40;
	--color-gray-800: #212529;
	--color-gray-900: #1c1d1f;
	
	/* Text Colors */
	--color-text-primary: #1c1d1f;
	--color-text-secondary: #3e4143;
	--color-text-tertiary: #6a6f73;
	--color-text-disabled: #d1d7dc;
	--color-text-inverse: #ffffff;
	
	/* Background Colors */
	--color-bg-primary: #ffffff;
	--color-bg-secondary: #f7f9fa;
	--color-bg-tertiary: #f3f4f6;
	--color-bg-overlay: rgba(0, 0, 0, 0.5);
	
	/* Border Colors */
	--color-border-light: #d1d7dc;
	--color-border-medium: #6a6f73;
	--color-border-dark: #3e4143;
	
	/* Shadow Colors */
	--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
	--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
	--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
	--shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.15);
	--shadow-2xl: 0 25px 50px rgba(0, 0, 0, 0.25);
	
	/* Typography */
	--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--font-family-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	
	--font-size-xs: 0.75rem;    /* 12px */
	--font-size-sm: 0.875rem;   /* 14px */
	--font-size-base: 1rem;     /* 16px */
	--font-size-lg: 1.125rem;   /* 18px */
	--font-size-xl: 1.25rem;    /* 20px */
	--font-size-2xl: 1.5rem;    /* 24px */
	--font-size-3xl: 1.875rem;  /* 30px */
	--font-size-4xl: 2.25rem;   /* 36px */
	--font-size-5xl: 3rem;      /* 48px */
	
	--font-weight-normal: 400;
	--font-weight-medium: 500;
	--font-weight-semibold: 600;
	--font-weight-bold: 700;
	--font-weight-extrabold: 800;
	
	--line-height-tight: 1.25;
	--line-height-normal: 1.5;
	--line-height-relaxed: 1.75;
	
	/* Spacing */
	--spacing-xs: 0.25rem;   /* 4px */
	--spacing-sm: 0.5rem;    /* 8px */
	--spacing-md: 1rem;      /* 16px */
	--spacing-lg: 1.5rem;    /* 24px */
	--spacing-xl: 2rem;      /* 32px */
	--spacing-2xl: 3rem;     /* 48px */
	--spacing-3xl: 4rem;     /* 64px */
	
	/* Border Radius */
	--radius-sm: 4px;
	--radius-md: 8px;
	--radius-lg: 12px;
	--radius-xl: 16px;
	--radius-full: 9999px;
	
	/* Transitions */
	--transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
	--transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
	--transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
	
	/* Z-Index Scale */
	--z-dropdown: 1000;
	--z-sticky: 1020;
	--z-fixed: 1030;
	--z-modal-backdrop: 1040;
	--z-modal: 1050;
	--z-popover: 1060;
	--z-tooltip: 1070;
}

/* ============================================
   BASE TYPOGRAPHY
   ============================================ */

body {
	font-family: var(--font-family-base) !important;
	font-size: var(--font-size-base) !important;
	line-height: var(--line-height-normal) !important;
	color: var(--color-text-primary) !important;
	background-color: var(--color-bg-primary) !important;
	-webkit-font-smoothing: antialiased !important;
	-moz-osx-font-smoothing: grayscale !important;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-family-heading) !important;
	font-weight: var(--font-weight-bold) !important;
	line-height: var(--line-height-tight) !important;
	color: var(--color-text-primary) !important;
	margin: 0 0 var(--spacing-md) 0 !important;
}

h1 { font-size: var(--font-size-4xl) !important; }
h2 { font-size: var(--font-size-3xl) !important; }
h3 { font-size: var(--font-size-2xl) !important; }
h4 { font-size: var(--font-size-xl) !important; }
h5 { font-size: var(--font-size-lg) !important; }
h6 { font-size: var(--font-size-base) !important; }

p {
	margin: 0 0 var(--spacing-md) 0 !important;
	color: var(--color-text-secondary) !important;
}

/* ============================================
   PROFESSIONAL BUTTONS SYSTEM
   ============================================ */

.btn,
.button,
button.button,
.coursee-btn,
.coursee-enroll-btn,
.preview-lesson-btn,
.coursee-preview-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: var(--spacing-sm) !important;
	padding: 0.75rem 1.5rem !important;
	font-size: var(--font-size-base) !important;
	font-weight: var(--font-weight-bold) !important;
	line-height: 1.5 !important;
	text-align: center !important;
	text-decoration: none !important;
	border: 1px solid transparent !important;
	border-radius: var(--radius-sm) !important;
	cursor: pointer !important;
	transition: all var(--transition-base) !important;
	position: relative !important;
	overflow: hidden !important;
	white-space: nowrap !important;
	min-height: 44px !important;
	font-family: var(--font-family-base) !important;
	box-shadow: var(--shadow-sm) !important;
	user-select: none !important;
	-webkit-tap-highlight-color: transparent !important;
}

/* Primary Button */
.btn-primary,
.button-primary,
.coursee-enroll-btn {
	background-color: var(--color-primary) !important;
	color: var(--color-white) !important;
	border-color: var(--color-primary) !important;
}

.btn-primary:hover,
.button-primary:hover,
.coursee-enroll-btn:hover {
	background-color: var(--color-primary-dark) !important;
	border-color: var(--color-primary-dark) !important;
	color: var(--color-white) !important;
	transform: translateY(-1px) !important;
	box-shadow: var(--shadow-md) !important;
	text-decoration: none !important;
}

.btn-primary:active,
.button-primary:active,
.coursee-enroll-btn:active {
	transform: translateY(0) !important;
	box-shadow: var(--shadow-sm) !important;
}

.btn-primary:focus,
.button-primary:focus,
.coursee-enroll-btn:focus {
	outline: 2px solid var(--color-primary-light) !important;
	outline-offset: 2px !important;
}

/* Secondary Button */
.btn-secondary,
.button-secondary {
	background-color: var(--color-white) !important;
	color: var(--color-text-primary) !important;
	border-color: var(--color-border-light) !important;
}

.btn-secondary:hover,
.button-secondary:hover {
	background-color: var(--color-gray-50) !important;
	border-color: var(--color-gray-300) !important;
	color: var(--color-text-primary) !important;
	text-decoration: none !important;
}

/* Outline Button */
.btn-outline {
	background-color: transparent !important;
	color: var(--color-primary) !important;
	border-color: var(--color-primary) !important;
}

.btn-outline:hover {
	background-color: var(--color-primary) !important;
	color: var(--color-white) !important;
	border-color: var(--color-primary) !important;
}

/* Button Sizes */
.btn-sm,
.button-small {
	padding: 0.5rem 1rem !important;
	font-size: var(--font-size-sm) !important;
	min-height: 36px !important;
}

.btn-lg,
.button-large {
	padding: 1rem 2rem !important;
	font-size: var(--font-size-lg) !important;
	min-height: 52px !important;
}

/* Button States */
.btn:disabled,
.button:disabled,
button:disabled {
	opacity: 0.6 !important;
	cursor: not-allowed !important;
	pointer-events: none !important;
}

.btn.loading,
.button.loading {
	position: relative !important;
	color: transparent !important;
	pointer-events: none !important;
}

.btn.loading::after,
.button.loading::after {
	content: '' !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: 20px !important;
	height: 20px !important;
	margin: -10px 0 0 -10px !important;
	border: 2px solid rgba(255, 255, 255, 0.3) !important;
	border-top-color: var(--color-white) !important;
	border-radius: 50% !important;
	animation: spin 0.6s linear infinite !important;
}

@keyframes spin {
	to { transform: rotate(360deg); }
}

/* ============================================
   PROFESSIONAL MODALS SYSTEM
   ============================================ */

.modal-backdrop {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	background-color: var(--color-bg-overlay) !important;
	backdrop-filter: blur(4px) !important;
	-webkit-backdrop-filter: blur(4px) !important;
	z-index: var(--z-modal-backdrop) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: var(--spacing-lg) !important;
	opacity: 0 !important;
	visibility: hidden !important;
	transition: opacity var(--transition-base), visibility var(--transition-base) !important;
}

.modal-backdrop.active {
	opacity: 1 !important;
	visibility: visible !important;
}

.modal {
	background-color: var(--color-white) !important;
	border-radius: var(--radius-lg) !important;
	box-shadow: var(--shadow-2xl) !important;
	max-width: 600px !important;
	width: 100% !important;
	max-height: 90vh !important;
	overflow: hidden !important;
	display: flex !important;
	flex-direction: column !important;
	transform: scale(0.95) translateY(20px) !important;
	transition: transform var(--transition-base) !important;
	position: relative !important;
	z-index: var(--z-modal) !important;
}

.modal-backdrop.active .modal {
	transform: scale(1) translateY(0) !important;
}

.modal-header {
	padding: var(--spacing-xl) var(--spacing-xl) var(--spacing-lg) var(--spacing-xl) !important;
	border-bottom: 1px solid var(--color-border-light) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	flex-shrink: 0 !important;
}

.modal-title {
	font-size: var(--font-size-2xl) !important;
	font-weight: var(--font-weight-bold) !important;
	color: var(--color-text-primary) !important;
	margin: 0 !important;
}

.modal-close {
	background: none !important;
	border: none !important;
	padding: var(--spacing-sm) !important;
	cursor: pointer !important;
	color: var(--color-text-tertiary) !important;
	font-size: var(--font-size-xl) !important;
	line-height: 1 !important;
	border-radius: var(--radius-sm) !important;
	transition: all var(--transition-fast) !important;
	width: 32px !important;
	height: 32px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.modal-close:hover {
	background-color: var(--color-gray-100) !important;
	color: var(--color-text-primary) !important;
}

.modal-body {
	padding: var(--spacing-xl) !important;
	overflow-y: auto !important;
	flex: 1 !important;
}

.modal-footer {
	padding: var(--spacing-lg) var(--spacing-xl) var(--spacing-xl) var(--spacing-xl) !important;
	border-top: 1px solid var(--color-border-light) !important;
	display: flex !important;
	gap: var(--spacing-md) !important;
	justify-content: flex-end !important;
	flex-shrink: 0 !important;
	background-color: var(--color-gray-50) !important;
}

/* Modal Sizes */
.modal-sm {
	max-width: 400px !important;
}

.modal-lg {
	max-width: 800px !important;
}

.modal-xl {
	max-width: 1200px !important;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
	.modal {
		max-width: 100% !important;
		margin: var(--spacing-md) !important;
		max-height: calc(100vh - 2rem) !important;
	}
	
	.modal-header,
	.modal-body,
	.modal-footer {
		padding: var(--spacing-lg) !important;
	}
	
	.btn,
	.button {
		width: 100% !important;
		justify-content: center !important;
	}
}

