/* 智队中枢 - 自定义样式 */ /* 基础样式 */ :root { --transition-speed: 200ms; } /* 平滑过渡 */ * { transition: background-color var(--transition-speed), border-color var(--transition-speed), color var(--transition-speed); } /* 滚动条样式 */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } /* 暗黑模式滚动条 */ .dark ::-webkit-scrollbar-thumb { background: #475569; } .dark ::-webkit-scrollbar-thumb:hover { background: #64748b; } /* 卡片样式 */ .card { @apply bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700; } .card-header { @apply px-6 py-4 border-b border-gray-200 dark:border-gray-700; } .card-body { @apply p-6; } /* 按钮样式 */ .btn { @apply px-4 py-2 rounded-lg font-medium transition-colors duration-200; } .btn-primary { @apply bg-primary-600 hover:bg-primary-700 text-white; } .btn-secondary { @apply bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-200; } .btn-success { @apply bg-green-600 hover:bg-green-700 text-white; } .btn-danger { @apply bg-red-600 hover:bg-red-700 text-white; } /* 输入框样式 */ .input { @apply w-full px-4 py-2 rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-primary-500 focus:border-transparent placeholder-gray-400 dark:placeholder-gray-500; } .select { @apply w-full px-4 py-2 rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-primary-500 focus:border-transparent; } /* 表格样式 */ .table { @apply w-full; } .table th { @apply px-4 py-3 text-left text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider bg-gray-50 dark:bg-gray-700/50; } .table td { @apply px-4 py-3 border-b border-gray-200 dark:border-gray-700; } .table tr:hover td { @apply bg-gray-50 dark:bg-gray-700/30; } /* 状态徽章 */ .badge { @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium; } .badge-success { @apply bg-green-100 dark:bg-green-900/30 text-green-800 dark:text-green-400; } .badge-warning { @apply bg-yellow-100 dark:bg-yellow-900/30 text-yellow-800 dark:text-yellow-400; } .badge-danger { @apply bg-red-100 dark:bg-red-900/30 text-red-800 dark:text-red-400; } .badge-info { @apply bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-400; } /* 统计卡片 */ .stat-card { @apply card p-6; } .stat-card .stat-value { @apply text-3xl font-bold text-gray-900 dark:text-white; } .stat-card .stat-label { @apply text-sm text-gray-500 dark:text-gray-400 mt-1; } /* 日志区域 */ .log-area { @apply bg-gray-900 text-gray-100 font-mono text-sm p-4 rounded-lg overflow-auto max-h-96; } .log-entry { @apply py-1; } .log-info { @apply text-blue-400; } .log-success { @apply text-green-400; } .log-warning { @apply text-yellow-400; } .log-error { @apply text-red-400; } /* 加载动画 */ .loading { @apply animate-spin rounded-full border-2 border-gray-300 border-t-primary-600; } .loading-sm { @apply w-4 h-4; } .loading-md { @apply w-6 h-6; } .loading-lg { @apply w-8 h-8; } /* HTMX 加载指示器 */ .htmx-request .htmx-indicator { @apply inline-block; } .htmx-indicator { @apply hidden; }