/**
 * 公共工具类样式
 * 提供常用的工具类，避免在各个文件中重复定义
 */

/* ===== 文本工具类 ===== */
.text-primary { color: var(--text-primary) !important; }
.text-secondary { color: var(--text-secondary) !important; }
.text-muted { color: var(--text-muted) !important; }
.text-success { color: var(--success) !important; }
.text-warning { color: var(--warning) !important; }
.text-danger { color: var(--danger) !important; }
.text-info { color: var(--info) !important; }

/* ===== 背景工具类 ===== */
.bg-glass { 
    background: var(--glass-bg);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--glass-border);
}

.bg-glass-hover:hover {
    background: var(--glass-bg-hover);
}

/* ===== 圆角工具类 ===== */
.rounded-sm { border-radius: var(--radius-sm) !important; }
.rounded-md { border-radius: var(--radius-md) !important; }
.rounded-lg { border-radius: var(--radius-lg) !important; }
.rounded-xl { border-radius: var(--radius-xl) !important; }
.rounded-full { border-radius: var(--radius-full) !important; }

/* ===== 间距工具类 ===== */
.gap-xs { gap: var(--spacing-xs) !important; }
.gap-sm { gap: var(--spacing-sm) !important; }
.gap-md { gap: var(--spacing-md) !important; }
.gap-lg { gap: var(--spacing-lg) !important; }
.gap-xl { gap: var(--spacing-xl) !important; }

/* ===== 过渡动画工具类 ===== */
.transition-fast { transition: all var(--transition-fast) !important; }
.transition-normal { transition: all var(--transition-normal) !important; }
.transition-slow { transition: all var(--transition-slow) !important; }

/* ===== 阴影工具类 ===== */
.shadow-sm { box-shadow: var(--shadow-sm) !important; }
.shadow { box-shadow: var(--shadow) !important; }
.shadow-lg { box-shadow: var(--shadow-lg) !important; }
.shadow-glass { box-shadow: var(--glass-shadow) !important; }

/* ===== 边框工具类 ===== */
.border-glass { border: 1px solid var(--glass-border) !important; }
.border-primary { border-color: var(--primary) !important; }
.border-secondary { border-color: var(--secondary) !important; }

/* ===== 渐变工具类 ===== */
.gradient-primary {
    background: linear-gradient(135deg, var(--primary), var(--secondary)) !important;
}

.gradient-primary-horizontal {
    background: linear-gradient(90deg, var(--primary), var(--secondary)) !important;
}

/* ===== 显示/隐藏工具类 ===== */
.hidden { display: none !important; }
.visible { display: block !important; }
.flex { display: flex !important; }
.inline-flex { display: inline-flex !important; }
.grid { display: grid !important; }

/* ===== 定位工具类 ===== */
.relative { position: relative !important; }
.absolute { position: absolute !important; }
.fixed { position: fixed !important; }
.sticky { position: sticky !important; }

/* ===== 溢出工具类 ===== */
.overflow-hidden { overflow: hidden !important; }
.overflow-auto { overflow: auto !important; }
.overflow-scroll { overflow: scroll !important; }
.overflow-x-auto { overflow-x: auto !important; }
.overflow-y-auto { overflow-y: auto !important; }

/* ===== 文本对齐工具类 ===== */
.text-left { text-align: left !important; }
.text-center { text-align: center !important; }
.text-right { text-align: right !important; }
.text-justify { text-align: justify !important; }

/* ===== 字体粗细工具类 ===== */
.font-light { font-weight: 300 !important; }
.font-normal { font-weight: 400 !important; }
.font-medium { font-weight: 500 !important; }
.font-semibold { font-weight: 600 !important; }
.font-bold { font-weight: 700 !important; }

/* ===== 光标工具类 ===== */
.cursor-pointer { cursor: pointer !important; }
.cursor-not-allowed { cursor: not-allowed !important; }
.cursor-default { cursor: default !important; }

/* ===== 用户选择工具类 ===== */
.select-none { user-select: none !important; }
.select-text { user-select: text !important; }
.select-all { user-select: all !important; }

/* ===== 响应式容器 ===== */
.container-responsive {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 var(--spacing-lg);
}

@media (max-width: 1024px) {
    .container-responsive {
        padding: 0 var(--spacing-md);
    }
}

@media (max-width: 768px) {
    .container-responsive {
        padding: 0 var(--spacing-sm);
    }
}


