@tailwind base; @tailwind components; @tailwind utilities; @layer base { :root { --background: 0 0% 100%; --foreground: 222.2 84% 4.9%; --card: 0 0% 100%; --card-foreground: 222.2 84% 4.9%; --popover: 0 0% 100%; --popover-foreground: 222.2 84% 4.9%; --primary: 221.2 83.2% 53.3%; --primary-foreground: 210 40% 98%; --secondary: 210 40% 96%; --secondary-foreground: 222.2 84% 4.9%; --muted: 210 40% 96%; --muted-foreground: 215.4 16.3% 46.9%; --accent: 210 40% 96%; --accent-foreground: 222.2 84% 4.9%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 40% 98%; --border: 214.3 31.8% 91.4%; --input: 214.3 31.8% 91.4%; --ring: 221.2 83.2% 53.3%; --radius: 0.5rem; } .dark { --background: 222.2 84% 4.9%; --foreground: 210 40% 98%; --card: 222.2 84% 4.9%; --card-foreground: 210 40% 98%; --popover: 222.2 84% 4.9%; --popover-foreground: 210 40% 98%; --primary: 217.2 91.2% 59.8%; --primary-foreground: 222.2 84% 4.9%; --secondary: 217.2 32.6% 17.5%; --secondary-foreground: 210 40% 98%; --muted: 217.2 32.6% 17.5%; --muted-foreground: 215 20.2% 65.1%; --accent: 217.2 32.6% 17.5%; --accent-foreground: 210 40% 98%; --destructive: 0 62.8% 30.6%; --destructive-foreground: 210 40% 98%; --border: 217.2 32.6% 17.5%; --input: 217.2 32.6% 17.5%; --ring: 224.3 76.3% 94.1%; } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; } } /* 移动端底部导航安全区域 */ .safe-area-pb { padding-bottom: env(safe-area-inset-bottom); } /* 主内容区域,为底部导航留出空间 */ .main-content { padding-bottom: 4rem; /* 64px for bottom nav */ min-height: 100vh; } /* 移动端优化 */ @media (max-width: 768px) { .main-content { padding-bottom: calc(4rem + env(safe-area-inset-bottom)); } } /* 确保内容不被底部导航遮挡 */ .page-content { padding-bottom: 1rem; } /* 场景获客页面特殊样式 */ .scenario-card { transition: all 0.2s ease-in-out; } .scenario-card:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); } .scenario-icon { transition: transform 0.2s ease-in-out; } .scenario-card:hover .scenario-icon { transform: scale(1.1); } /* 渐变背景 */ .gradient-bg { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); } /* 卡片阴影效果 */ .card-shadow { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); } .card-shadow:hover { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } /* 动画效果 */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .fade-in-up { animation: fadeInUp 0.5s ease-out; } /* 加载动画 */ @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } /* 响应式设计 */ @media (max-width: 640px) { .scenario-grid { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; } } @media (min-width: 768px) { .scenario-grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; } } @media (min-width: 1024px) { .scenario-grid { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; } }