/**
 * Advanced ISEN Widgets CSS
 * 
 * Comprehensive styling for all enhanced ISEN widgets
 * Includes modern design, RTL support, dark mode, accessibility, and animations
 * 
 * @package ISEN_Registry
 * @since 1.0.0
 */

/* ==========================================================================
   Base Styles and Variables
   ========================================================================== */

:root {
	/* Color Variables */
	--isen-primary-color: #0073e6;
	--isen-secondary-color: #6c757d;
	--isen-success-color: #28a745;
	--isen-warning-color: #ffc107;
	--isen-danger-color: #dc3545;
	--isen-info-color: #17a2b8;
	--isen-light-color: #f8f9fa;
	--isen-dark-color: #343a40;
	
	/* Typography */
	--isen-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--isen-font-size-base: 1rem;
	--isen-line-height-base: 1.5;
	
	/* Spacing */
	--isen-spacing-xs: 0.25rem;
	--isen-spacing-sm: 0.5rem;
	--isen-spacing-md: 1rem;
	--isen-spacing-lg: 1.5rem;
	--isen-spacing-xl: 3rem;
	
	/* Border Radius */
	--isen-border-radius: 0.375rem;
	--isen-border-radius-lg: 0.5rem;
	--isen-border-radius-xl: 1rem;
	
	/* Shadows */
	--isen-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
	--isen-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
	--isen-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
	
	/* Transitions */
	--isen-transition: all 0.15s ease-in-out;
	--isen-transition-fast: all 0.1s ease-in-out;
	--isen-transition-slow: all 0.3s ease-in-out;
	
	/* Z-index */
	--isen-z-dropdown: 1000;
	--isen-z-sticky: 1020;
	--isen-z-fixed: 1030;
	--isen-z-modal-backdrop: 1040;
	--isen-z-modal: 1050;
	--isen-z-popover: 1060;
	--isen-z-tooltip: 1070;
}

/* ==========================================================================
   Dark Mode Variables
   ========================================================================== */

.isen-dark-mode {
	--isen-primary-color: #4dabf7;
	--isen-secondary-color: #adb5bd;
	--isen-success-color: #51cf66;
	--isen-warning-color: #ffd43b;
	--isen-danger-color: #ff6b6b;
	--isen-info-color: #74c0fc;
	--isen-light-color: #495057;
	--isen-dark-color: #f8f9fa;
	
	--isen-bg-color: #212529;
	--isen-text-color: #f8f9fa;
	--isen-border-color: #495057;
}

/* ==========================================================================
   RTL Support
   ========================================================================== */

.isen-rtl {
	direction: rtl;
	text-align: right;
}

.isen-rtl .isen-form-group {
	text-align: right;
}

.isen-rtl .isen-input,
.isen-rtl .isen-textarea,
.isen-rtl .isen-select {
	text-align: right;
}

/* ==========================================================================
   Accessibility Features
   ========================================================================== */

.isen-accessibility *:focus {
	outline: 2px solid var(--isen-primary-color);
	outline-offset: 2px;
}

.isen-accessibility .isen-button:focus,
.isen-accessibility .isen-input:focus,
.isen-accessibility .isen-textarea:focus,
.isen-accessibility .isen-select:focus {
	box-shadow: 0 0 0 3px rgba(0, 115, 230, 0.25);
}

.isen-accessibility .isen-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ==========================================================================
   Animations
   ========================================================================== */

.isen-animated {
	animation-duration: 0.3s;
	animation-fill-mode: both;
}

@keyframes isen-fade-in {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes isen-slide-in {
	from {
		transform: translateX(-100%);
	}
	to {
		transform: translateX(0);
	}
}

@keyframes isen-scale-in {
	from {
		transform: scale(0.9);
		opacity: 0;
	}
	to {
		transform: scale(1);
		opacity: 1;
	}
}

.isen-fade-in {
	animation-name: isen-fade-in;
}

.isen-slide-in {
	animation-name: isen-slide-in;
}

.isen-scale-in {
	animation-name: isen-scale-in;
}

/* ==========================================================================
   Common Widget Styles
   ========================================================================== */

.isen-widget-base {
	font-family: var(--isen-font-family);
	font-size: var(--isen-font-size-base);
	line-height: var(--isen-line-height-base);
	color: var(--isen-text-color, #333);
	background-color: var(--isen-bg-color, #fff);
	border: 1px solid var(--isen-border-color, #dee2e6);
	border-radius: var(--isen-border-radius);
	box-shadow: var(--isen-shadow-sm);
	transition: var(--isen-transition);
}

.isen-widget-base:hover {
	box-shadow: var(--isen-shadow);
}

/* ==========================================================================
   Form Elements
   ========================================================================== */

.isen-form-group {
	margin-bottom: var(--isen-spacing-md);
}

.isen-label {
	display: block;
	margin-bottom: var(--isen-spacing-xs);
	font-weight: 500;
	color: var(--isen-text-color, #333);
}

.isen-input,
.isen-textarea,
.isen-select {
	display: block;
	width: 100%;
	padding: var(--isen-spacing-sm) var(--isen-spacing-md);
	font-size: var(--isen-font-size-base);
	line-height: var(--isen-line-height-base);
	color: var(--isen-text-color, #333);
	background-color: var(--isen-bg-color, #fff);
	border: 1px solid var(--isen-border-color, #ced4da);
	border-radius: var(--isen-border-radius);
	transition: var(--isen-transition);
}

.isen-input:focus,
.isen-textarea:focus,
.isen-select:focus {
	border-color: var(--isen-primary-color);
	box-shadow: 0 0 0 0.2rem rgba(0, 115, 230, 0.25);
	outline: 0;
}

.isen-input.isen-error,
.isen-textarea.isen-error,
.isen-select.isen-error {
	border-color: var(--isen-danger-color);
}

.isen-textarea {
	resize: vertical;
	min-height: 100px;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.isen-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--isen-spacing-sm) var(--isen-spacing-lg);
	font-size: var(--isen-font-size-base);
	font-weight: 500;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	vertical-align: middle;
	cursor: pointer;
	user-select: none;
	border: 1px solid transparent;
	border-radius: var(--isen-border-radius);
	transition: var(--isen-transition);
	background-color: var(--isen-primary-color);
	color: #fff;
}

.isen-button:hover {
	background-color: #0056b3;
	color: #fff;
	text-decoration: none;
}

.isen-button:focus {
	outline: 0;
	box-shadow: 0 0 0 0.2rem rgba(0, 115, 230, 0.25);
}

.isen-button.isen-secondary {
	background-color: var(--isen-secondary-color);
}

.isen-button.isen-success {
	background-color: var(--isen-success-color);
}

.isen-button.isen-warning {
	background-color: var(--isen-warning-color);
	color: #212529;
}

.isen-button.isen-danger {
	background-color: var(--isen-danger-color);
}

.isen-button.isen-outline {
	background-color: transparent;
	border-color: var(--isen-primary-color);
	color: var(--isen-primary-color);
}

.isen-button.isen-outline:hover {
	background-color: var(--isen-primary-color);
	color: #fff;
}

/* ==========================================================================
   Enhanced Registration Form Widget
   ========================================================================== */

.isen-registration-form-enhanced {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	padding: var(--isen-spacing-xl);
	border-radius: var(--isen-border-radius-xl);
	color: #fff;
}

.isen-registration-form-enhanced .isen-form-title {
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: var(--isen-spacing-lg);
	text-align: center;
}

.isen-registration-form-enhanced .isen-form-description {
	font-size: 1.1rem;
	margin-bottom: var(--isen-spacing-xl);
	text-align: center;
	opacity: 0.9;
}

.isen-registration-form-enhanced .isen-form-container {
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(10px);
	padding: var(--isen-spacing-xl);
	border-radius: var(--isen-border-radius-lg);
	border: 1px solid rgba(255, 255, 255, 0.2);
}

.isen-registration-form-enhanced .isen-input,
.isen-registration-form-enhanced .isen-textarea,
.isen-registration-form-enhanced .isen-select {
	background: rgba(255, 255, 255, 0.9);
	border: none;
	color: #333;
}

.isen-registration-form-enhanced .isen-button {
	width: 100%;
	padding: var(--isen-spacing-md) var(--isen-spacing-xl);
	font-size: 1.1rem;
	font-weight: 600;
	background: linear-gradient(45deg, #ff6b6b, #ee5a24);
	border: none;
	box-shadow: var(--isen-shadow);
}

.isen-registration-form-enhanced .isen-button:hover {
	transform: translateY(-2px);
	box-shadow: var(--isen-shadow-lg);
}

/* ==========================================================================
   Enhanced Table Widget
   ========================================================================== */

.isen-table-enhanced {
	background: #fff;
	border-radius: var(--isen-border-radius-lg);
	box-shadow: var(--isen-shadow);
	overflow: hidden;
}

.isen-table-enhanced .isen-table-header {
	background: linear-gradient(135deg, var(--isen-primary-color), #0056b3);
	color: #fff;
	padding: var(--isen-spacing-lg);
}

.isen-table-enhanced .isen-table-title {
	font-size: 1.5rem;
	font-weight: 600;
	margin: 0;
}

.isen-table-enhanced .isen-table-description {
	opacity: 0.9;
	margin-top: var(--isen-spacing-xs);
}

.isen-table-enhanced .isen-table-search {
	padding: var(--isen-spacing-md);
	background: var(--isen-light-color);
	border-bottom: 1px solid var(--isen-border-color);
}

.isen-table-enhanced .isen-search-input {
	border-radius: var(--isen-border-radius-lg);
	border: 2px solid transparent;
	transition: var(--isen-transition);
}

.isen-table-enhanced .isen-search-input:focus {
	border-color: var(--isen-primary-color);
	box-shadow: 0 0 0 0.2rem rgba(0, 115, 230, 0.25);
}

.isen-table-enhanced .isen-table {
	width: 100%;
	border-collapse: collapse;
}

.isen-table-enhanced .isen-table th {
	background: var(--isen-light-color);
	padding: var(--isen-spacing-md);
	font-weight: 600;
	text-align: left;
	border-bottom: 2px solid var(--isen-border-color);
	cursor: pointer;
	transition: var(--isen-transition);
}

.isen-table-enhanced .isen-table th:hover {
	background: #e9ecef;
}

.isen-table-enhanced .isen-table td {
	padding: var(--isen-spacing-md);
	border-bottom: 1px solid var(--isen-border-color);
	transition: var(--isen-transition);
}

.isen-table-enhanced .isen-table tbody tr:hover {
	background: var(--isen-light-color);
}

.isen-table-enhanced .isen-status {
	padding: var(--isen-spacing-xs) var(--isen-spacing-sm);
	border-radius: var(--isen-border-radius);
	font-size: 0.875rem;
	font-weight: 500;
}

.isen-table-enhanced .isen-status.isen-active {
	background: rgba(40, 167, 69, 0.1);
	color: var(--isen-success-color);
}

.isen-table-enhanced .isen-status.isen-pending {
	background: rgba(255, 193, 7, 0.1);
	color: var(--isen-warning-color);
}

.isen-table-enhanced .isen-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: var(--isen-spacing-md);
	background: var(--isen-light-color);
}

.isen-table-enhanced .isen-pagination-link {
	padding: var(--isen-spacing-sm) var(--isen-spacing-md);
	margin: 0 var(--isen-spacing-xs);
	border: 1px solid var(--isen-border-color);
	border-radius: var(--isen-border-radius);
	text-decoration: none;
	color: var(--isen-primary-color);
	transition: var(--isen-transition);
}

.isen-table-enhanced .isen-pagination-link:hover,
.isen-table-enhanced .isen-pagination-link.isen-active {
	background: var(--isen-primary-color);
	color: #fff;
	border-color: var(--isen-primary-color);
}

/* ==========================================================================
   Enhanced Chart Widget
   ========================================================================== */

.isen-chart-enhanced {
	background: #fff;
	border-radius: var(--isen-border-radius-lg);
	box-shadow: var(--isen-shadow);
	padding: var(--isen-spacing-lg);
}

.isen-chart-enhanced .isen-chart-header {
	text-align: center;
	margin-bottom: var(--isen-spacing-lg);
}

.isen-chart-enhanced .isen-chart-title {
	font-size: 1.5rem;
	font-weight: 600;
	margin: 0 0 var(--isen-spacing-sm) 0;
	color: var(--isen-dark-color);
}

.isen-chart-enhanced .isen-chart-description {
	color: var(--isen-secondary-color);
	margin: 0;
}

.isen-chart-enhanced .isen-chart-container {
	position: relative;
	height: 400px;
	margin: var(--isen-spacing-lg) 0;
}

.isen-chart-enhanced .isen-chart-canvas {
	width: 100% !important;
	height: 100% !important;
}

.isen-chart-enhanced .isen-chart-legend {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--isen-spacing-md);
	margin-top: var(--isen-spacing-lg);
}

.isen-chart-enhanced .isen-legend-item {
	display: flex;
	align-items: center;
	gap: var(--isen-spacing-xs);
	padding: var(--isen-spacing-xs) var(--isen-spacing-sm);
	background: var(--isen-light-color);
	border-radius: var(--isen-border-radius);
	font-size: 0.875rem;
}

.isen-chart-enhanced .isen-legend-color {
	width: 12px;
	height: 12px;
	border-radius: 50%;
}

/* ==========================================================================
   Enhanced User Dashboard Widget
   ========================================================================== */

.isen-user-dashboard-enhanced {
	background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
	padding: var(--isen-spacing-xl);
	border-radius: var(--isen-border-radius-xl);
}

.isen-user-dashboard-enhanced .isen-dashboard-header {
	text-align: center;
	margin-bottom: var(--isen-spacing-xl);
}

.isen-user-dashboard-enhanced .isen-dashboard-title {
	font-size: 2.5rem;
	font-weight: 700;
	margin: 0 0 var(--isen-spacing-sm) 0;
	background: linear-gradient(45deg, var(--isen-primary-color), #0056b3);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.isen-user-dashboard-enhanced .isen-dashboard-description {
	font-size: 1.1rem;
	color: var(--isen-secondary-color);
	margin: 0;
}

.isen-user-dashboard-enhanced .isen-welcome-message {
	background: rgba(255, 255, 255, 0.8);
	padding: var(--isen-spacing-lg);
	border-radius: var(--isen-border-radius-lg);
	text-align: center;
	margin-bottom: var(--isen-spacing-xl);
	backdrop-filter: blur(10px);
}

.isen-user-dashboard-enhanced .isen-dashboard-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: var(--isen-spacing-lg);
}

.isen-user-dashboard-enhanced .isen-dashboard-section {
	background: rgba(255, 255, 255, 0.9);
	border-radius: var(--isen-border-radius-lg);
	padding: var(--isen-spacing-lg);
	box-shadow: var(--isen-shadow);
	backdrop-filter: blur(10px);
	transition: var(--isen-transition);
}

.isen-user-dashboard-enhanced .isen-dashboard-section:hover {
	transform: translateY(-5px);
	box-shadow: var(--isen-shadow-lg);
}

.isen-user-dashboard-enhanced .isen-dashboard-section h3 {
	font-size: 1.25rem;
	font-weight: 600;
	margin: 0 0 var(--isen-spacing-md) 0;
	color: var(--isen-dark-color);
	border-bottom: 2px solid var(--isen-primary-color);
	padding-bottom: var(--isen-spacing-sm);
}

/* Profile Section */
.isen-user-dashboard-enhanced .isen-profile-info {
	display: flex;
	align-items: center;
	gap: var(--isen-spacing-md);
}

.isen-user-dashboard-enhanced .isen-profile-avatar img {
	border-radius: 50%;
	border: 3px solid var(--isen-primary-color);
}

.isen-user-dashboard-enhanced .isen-profile-details h4 {
	margin: 0 0 var(--isen-spacing-xs) 0;
	font-size: 1.1rem;
	font-weight: 600;
}

.isen-user-dashboard-enhanced .isen-profile-details p {
	margin: 0 0 var(--isen-spacing-xs) 0;
	color: var(--isen-secondary-color);
	font-size: 0.9rem;
}

/* Stats Section */
.isen-user-dashboard-enhanced .isen-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: var(--isen-spacing-md);
}

.isen-user-dashboard-enhanced .isen-stat-item {
	text-align: center;
	padding: var(--isen-spacing-md);
	background: linear-gradient(135deg, var(--isen-primary-color), #0056b3);
	border-radius: var(--isen-border-radius);
	color: #fff;
}

.isen-user-dashboard-enhanced .isen-stat-number {
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: var(--isen-spacing-xs);
}

.isen-user-dashboard-enhanced .isen-stat-label {
	font-size: 0.875rem;
	opacity: 0.9;
}

/* Activity Section */
.isen-user-dashboard-enhanced .isen-activity-list {
	max-height: 300px;
	overflow-y: auto;
}

.isen-user-dashboard-enhanced .isen-activity-item {
	padding: var(--isen-spacing-sm);
	border-left: 3px solid var(--isen-primary-color);
	margin-bottom: var(--isen-spacing-sm);
	background: rgba(0, 115, 230, 0.05);
	border-radius: 0 var(--isen-border-radius) var(--isen-border-radius) 0;
}

.isen-user-dashboard-enhanced .isen-activity-action {
	font-weight: 500;
	color: var(--isen-dark-color);
}

.isen-user-dashboard-enhanced .isen-activity-time {
	color: var(--isen-secondary-color);
	font-size: 0.875rem;
}

/* Quick Actions Section */
.isen-user-dashboard-enhanced .isen-quick-actions-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: var(--isen-spacing-md);
}

.isen-user-dashboard-enhanced .isen-quick-action {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--isen-spacing-sm);
	padding: var(--isen-spacing-lg);
	background: linear-gradient(135deg, var(--action-color, var(--isen-primary-color)), #0056b3);
	border-radius: var(--isen-border-radius);
	color: #fff;
	text-decoration: none;
	transition: var(--isen-transition);
	text-align: center;
}

.isen-user-dashboard-enhanced .isen-quick-action:hover {
	transform: translateY(-3px);
	box-shadow: var(--isen-shadow-lg);
	color: #fff;
	text-decoration: none;
}

.isen-user-dashboard-enhanced .isen-quick-action i {
	font-size: 2rem;
}

/* ==========================================================================
   Enhanced User Profile Widget
   ========================================================================== */

.isen-user-profile-enhanced {
	background: #fff;
	border-radius: var(--isen-border-radius-xl);
	box-shadow: var(--isen-shadow);
	overflow: hidden;
}

.isen-user-profile-enhanced .isen-profile-header {
	background: linear-gradient(135deg, var(--isen-primary-color), #0056b3);
	color: #fff;
	padding: var(--isen-spacing-xl);
	text-align: center;
}

.isen-user-profile-enhanced .isen-profile-title {
	font-size: 2rem;
	font-weight: 700;
	margin: 0 0 var(--isen-spacing-sm) 0;
}

.isen-user-profile-enhanced .isen-profile-description {
	opacity: 0.9;
	margin: 0;
}

.isen-user-profile-enhanced .isen-profile-content {
	padding: var(--isen-spacing-xl);
}

.isen-user-profile-enhanced .isen-profile-avatar-section {
	text-align: center;
	margin-bottom: var(--isen-spacing-xl);
}

.isen-user-profile-enhanced .isen-profile-avatar {
	position: relative;
	display: inline-block;
}

.isen-user-profile-enhanced .isen-profile-avatar img {
	border-radius: 50%;
	border: 4px solid var(--isen-primary-color);
	box-shadow: var(--isen-shadow);
}

.isen-user-profile-enhanced .isen-avatar-upload {
	margin-top: var(--isen-spacing-md);
}

.isen-user-profile-enhanced .isen-avatar-input {
	display: none;
}

.isen-user-profile-enhanced .isen-avatar-upload-btn {
	background: var(--isen-secondary-color);
	color: #fff;
	border: none;
	padding: var(--isen-spacing-sm) var(--isen-spacing-md);
	border-radius: var(--isen-border-radius);
	cursor: pointer;
	transition: var(--isen-transition);
}

.isen-user-profile-enhanced .isen-avatar-upload-btn:hover {
	background: #5a6268;
}

.isen-user-profile-enhanced .isen-profile-fields {
	max-width: 600px;
	margin: 0 auto;
}

.isen-user-profile-enhanced .isen-profile-field {
	margin-bottom: var(--isen-spacing-lg);
}

.isen-user-profile-enhanced .isen-profile-field label {
	font-weight: 600;
	color: var(--isen-dark-color);
	margin-bottom: var(--isen-spacing-sm);
}

.isen-user-profile-enhanced .isen-required {
	color: var(--isen-danger-color);
}

.isen-user-profile-enhanced .isen-field-value {
	padding: var(--isen-spacing-sm) var(--isen-spacing-md);
	background: var(--isen-light-color);
	border-radius: var(--isen-border-radius);
	border: 1px solid var(--isen-border-color);
	min-height: 38px;
	display: flex;
	align-items: center;
}

.isen-user-profile-enhanced .isen-profile-actions {
	text-align: center;
	margin-top: var(--isen-spacing-xl);
}

.isen-user-profile-enhanced .isen-save-button {
	background: linear-gradient(45deg, var(--isen-success-color), #1e7e34);
	border: none;
	padding: var(--isen-spacing-md) var(--isen-spacing-xl);
	font-size: 1.1rem;
	font-weight: 600;
	box-shadow: var(--isen-shadow);
}

.isen-user-profile-enhanced .isen-save-button:hover {
	transform: translateY(-2px);
	box-shadow: var(--isen-shadow-lg);
}

/* ==========================================================================
   User Notifications Widget
   ========================================================================== */

.isen-user-notifications-widget {
	background: #fff;
	border-radius: var(--isen-border-radius-lg);
	box-shadow: var(--isen-shadow);
	overflow: hidden;
}

.isen-user-notifications-widget .isen-notifications-header {
	background: linear-gradient(135deg, var(--isen-primary-color), #0056b3);
	color: #fff;
	padding: var(--isen-spacing-lg);
}

.isen-user-notifications-widget .isen-notifications-title {
	font-size: 1.5rem;
	font-weight: 600;
	margin: 0 0 var(--isen-spacing-sm) 0;
}

.isen-user-notifications-widget .isen-notifications-subtitle {
	opacity: 0.9;
	margin: 0 0 var(--isen-spacing-sm) 0;
}

.isen-user-notifications-widget .isen-notifications-description {
	opacity: 0.8;
	margin: 0;
}

.isen-user-notifications-widget .isen-notifications-filters {
	padding: var(--isen-spacing-md);
	background: var(--isen-light-color);
	border-bottom: 1px solid var(--isen-border-color);
}

.isen-user-notifications-widget .isen-search-filter {
	margin-bottom: var(--isen-spacing-md);
}

.isen-user-notifications-widget .isen-type-filters {
	display: flex;
	flex-wrap: wrap;
	gap: var(--isen-spacing-sm);
}

.isen-user-notifications-widget .isen-type-filter {
	background: #fff;
	border: 1px solid var(--isen-border-color);
	border-radius: var(--isen-border-radius);
	padding: var(--isen-spacing-xs) var(--isen-spacing-sm);
	font-size: 0.875rem;
	cursor: pointer;
	transition: var(--isen-transition);
}

.isen-user-notifications-widget .isen-type-filter:hover,
.isen-user-notifications-widget .isen-type-filter.isen-active {
	background: var(--isen-primary-color);
	color: #fff;
	border-color: var(--isen-primary-color);
}

.isen-user-notifications-widget .isen-notifications-container {
	max-height: 400px;
	overflow-y: auto;
}

.isen-user-notifications-widget .isen-notifications-list {
	padding: var(--isen-spacing-md);
}

.isen-user-notifications-widget .isen-notification-item {
	padding: var(--isen-spacing-md);
	border-left: 4px solid var(--isen-primary-color);
	margin-bottom: var(--isen-spacing-md);
	background: rgba(0, 115, 230, 0.05);
	border-radius: 0 var(--isen-border-radius) var(--isen-border-radius) 0;
	transition: var(--isen-transition);
}

.isen-user-notifications-widget .isen-notification-item:hover {
	background: rgba(0, 115, 230, 0.1);
}

.isen-user-notifications-widget .isen-notification-item.isen-success {
	border-left-color: var(--isen-success-color);
	background: rgba(40, 167, 69, 0.05);
}

.isen-user-notifications-widget .isen-notification-item.isen-warning {
	border-left-color: var(--isen-warning-color);
	background: rgba(255, 193, 7, 0.05);
}

.isen-user-notifications-widget .isen-notification-item.isen-error {
	border-left-color: var(--isen-danger-color);
	background: rgba(220, 53, 69, 0.05);
}

.isen-user-notifications-widget .isen-notification-item h4 {
	margin: 0 0 var(--isen-spacing-xs) 0;
	font-size: 1rem;
	font-weight: 600;
}

.isen-user-notifications-widget .isen-notification-item p {
	margin: 0 0 var(--isen-spacing-xs) 0;
	color: var(--isen-secondary-color);
}

.isen-user-notifications-widget .isen-notification-item small {
	color: var(--isen-secondary-color);
	font-size: 0.875rem;
}

.isen-user-notifications-widget .isen-notifications-sorting {
	padding: var(--isen-spacing-md);
	background: var(--isen-light-color);
	border-top: 1px solid var(--isen-border-color);
}

.isen-user-notifications-widget .isen-sort-select {
	width: 100%;
	max-width: 200px;
}

/* ==========================================================================
   Responsive Design
   ========================================================================== */

@media (max-width: 768px) {
	.isen-user-dashboard-enhanced .isen-dashboard-grid {
		grid-template-columns: 1fr;
	}
	
	.isen-user-dashboard-enhanced .isen-stats-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	
	.isen-user-dashboard-enhanced .isen-quick-actions-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	
	.isen-table-enhanced .isen-table {
		font-size: 0.875rem;
	}
	
	.isen-table-enhanced .isen-table th,
	.isen-table-enhanced .isen-table td {
		padding: var(--isen-spacing-sm);
	}
	
	.isen-registration-form-enhanced,
	.isen-user-dashboard-enhanced,
	.isen-user-profile-enhanced {
		padding: var(--isen-spacing-lg);
	}
}

@media (max-width: 480px) {
	.isen-user-dashboard-enhanced .isen-stats-grid {
		grid-template-columns: 1fr;
	}
	
	.isen-user-dashboard-enhanced .isen-quick-actions-grid {
		grid-template-columns: 1fr;
	}
	
	.isen-user-dashboard-enhanced .isen-profile-info {
		flex-direction: column;
		text-align: center;
	}
	
	.isen-table-enhanced .isen-table {
		font-size: 0.75rem;
	}
	
	.isen-table-enhanced .isen-table th,
	.isen-table-enhanced .isen-table td {
		padding: var(--isen-spacing-xs);
	}
}

/* ==========================================================================
   Loading States
   ========================================================================== */

.isen-loading {
	text-align: center;
	padding: var(--isen-spacing-xl);
	color: var(--isen-secondary-color);
}

.isen-loading::before {
	content: '';
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2px solid var(--isen-border-color);
	border-radius: 50%;
	border-top-color: var(--isen-primary-color);
	animation: isen-spin 1s ease-in-out infinite;
	margin-right: var(--isen-spacing-sm);
}

@keyframes isen-spin {
	to {
		transform: rotate(360deg);
	}
}

/* ==========================================================================
   Messages and Alerts
   ========================================================================== */

.isen-message {
	padding: var(--isen-spacing-md);
	border-radius: var(--isen-border-radius);
	margin-bottom: var(--isen-spacing-md);
	border-left: 4px solid;
}

.isen-message.isen-success {
	background: rgba(40, 167, 69, 0.1);
	border-left-color: var(--isen-success-color);
	color: var(--isen-success-color);
}

.isen-message.isen-error {
	background: rgba(220, 53, 69, 0.1);
	border-left-color: var(--isen-danger-color);
	color: var(--isen-danger-color);
}

.isen-message.isen-warning {
	background: rgba(255, 193, 7, 0.1);
	border-left-color: var(--isen-warning-color);
	color: var(--isen-warning-color);
}

.isen-message.isen-info {
	background: rgba(23, 162, 184, 0.1);
	border-left-color: var(--isen-info-color);
	color: var(--isen-info-color);
}

/* ==========================================================================
   Utility Classes
   ========================================================================== */

.isen-text-center {
	text-align: center;
}

.isen-text-left {
	text-align: left;
}

.isen-text-right {
	text-align: right;
}

.isen-mb-0 {
	margin-bottom: 0;
}

.isen-mb-1 {
	margin-bottom: var(--isen-spacing-xs);
}

.isen-mb-2 {
	margin-bottom: var(--isen-spacing-sm);
}

.isen-mb-3 {
	margin-bottom: var(--isen-spacing-md);
}

.isen-mb-4 {
	margin-bottom: var(--isen-spacing-lg);
}

.isen-mb-5 {
	margin-bottom: var(--isen-spacing-xl);
}

.isen-mt-0 {
	margin-top: 0;
}

.isen-mt-1 {
	margin-top: var(--isen-spacing-xs);
}

.isen-mt-2 {
	margin-top: var(--isen-spacing-sm);
}

.isen-mt-3 {
	margin-top: var(--isen-spacing-md);
}

.isen-mt-4 {
	margin-top: var(--isen-spacing-lg);
}

.isen-mt-5 {
	margin-top: var(--isen-spacing-xl);
}

.isen-d-none {
	display: none;
}

.isen-d-block {
	display: block;
}

.isen-d-flex {
	display: flex;
}

.isen-d-grid {
	display: grid;
}

.isen-justify-center {
	justify-content: center;
}

.isen-align-center {
	align-items: center;
}

.isen-w-100 {
	width: 100%;
}

.isen-h-100 {
	height: 100%;
}
