Files
Agent-n8n/web_frontend/web_result/order-classes/chemical/css/styles.css
Yep_Q 38313038a3 feat: 完成化工订单班半导体AI检测项目展示页面
详细说明:
- 创建化工订单班(chemical)展示页面完整结构
- 实现300mm硅晶圆+SiO₂薄膜AI综合检测项目展示
- 使用紫色/紫罗兰科技主题(#7c3aed, #8b5cf6)突出半导体专业特色
- 深色主题采用深邃紫黑色(#0f0a1f)营造科技氛围

核心功能:
- 4个展示区块:项目概述、判定标准、检测流程、检测结果
- 4个Agent角色展示:项目经理、质量工程师、AI系统工程师、数据分析师
- 智能数据动画:单片用时6分钟、批次1.5小时、AI可信度94%、合格率95%
- 8张专业图片:检测背景、硅晶圆项目、光学检测、热力图等
- 深浅主题切换、平滑滚动、懒加载等交互功能

技术特性:
- 玻璃态设计(glassmorphism)配合backdrop-filter
- 视差滚动效果(background-attachment: fixed)
- Intersection Observer实现动画和懒加载
- LocalStorage持久化主题偏好
- 响应式网格布局适配多屏幕

修复问题:
- Agent头像映射:使用现有3个头像文件适配4个角色
- 图片文件名编码:修复全角/半角括号差异(使用sed命令)

文件清单:
- web_frontend/web_result/order-classes/chemical/index.html (641行)
- web_frontend/web_result/order-classes/chemical/css/styles.css (961行)
- web_frontend/web_result/order-classes/chemical/js/main.js (266行)
- 软链接:agent-avatars → data/订单班文档资料/化工/agent头像
- 软链接:images → data/订单班文档资料/化工/notion文稿/image

项目数据:
- 检测对象:300mm P型硅晶圆20片
- 检测项目:外观(颗粒/划痕/腐蚀)、薄膜(厚度/均匀性)、电学(Rs)、成分(XPS)
- 批次结果:19片合格、1片观察、0片不合格
- AI判定规则:≥0.90合格、0.80-0.90观察、<0.80待复核

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 04:02:30 +08:00

962 lines
24 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 半导体AI综合检测项目 - 化工订单班科技感设计系统 */
/* ========== 设计变量 ========== */
:root {
/* 专业紫蓝主题 - 半导体科技风格 */
--bg-dark: #f5f3ff; /* 浅紫背景 */
--bg-semi-dark: rgba(245, 243, 255, 0.95); /* 半透明浅紫 */
--bg-overlay: rgba(255, 255, 255, 0.85); /* 白色遮罩 */
--bg-card: rgba(255, 255, 255, 0.9); /* 卡片背景 */
--primary-dark: #4c1d95; /* 主色深紫 */
--primary-purple: #7c3aed; /* 主色紫 - 半导体专业 */
--accent-violet: #8b5cf6; /* 紫罗兰强调 - 科技主题 */
--accent-violet-light: #a78bfa; /* 浅紫罗兰 */
--text-light: #1a1a1a; /* 深色文字 */
--text-gray: #666666; /* 灰色文字 */
--border-light: rgba(124, 58, 237, 0.2); /* 紫色边框 */
--hover-bg: rgba(139, 92, 246, 0.15); /* 悬停背景 */
--active-bg: rgba(124, 58, 237, 0.2); /* 激活背景 */
/* 间距系统 - 针对大屏幕优化 */
--spacing-xs: 0.75rem; /* 12px */
--spacing-sm: 1.25rem; /* 20px */
--spacing-md: 2rem; /* 32px */
--spacing-lg: 3rem; /* 48px */
--spacing-xl: 4rem; /* 64px */
--spacing-2xl: 6rem; /* 96px */
--spacing-3xl: 8rem; /* 128px */
/* 字体系统 */
--font-primary: 'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, sans-serif;
--font-display: 'Inter', sans-serif;
/* 字体大小 - 针对大屏幕优化 */
--text-xs: 0.875rem; /* 14px */
--text-sm: 1rem; /* 16px */
--text-base: 1.125rem; /* 18px */
--text-lg: 1.375rem; /* 22px */
--text-xl: 1.625rem; /* 26px */
--text-2xl: 2rem; /* 32px */
--text-3xl: 2.5rem; /* 40px */
--text-4xl: 3rem; /* 48px */
--text-5xl: 4rem; /* 64px */
/* 字重 */
--font-light: 300;
--font-normal: 400;
--font-medium: 500;
--font-semibold: 600;
--font-bold: 700;
/* 圆角 */
--radius-sm: 0.375rem;
--radius-md: 0.5rem;
--radius-lg: 0.75rem;
--radius-xl: 1rem;
--radius-2xl: 1.5rem;
--radius-full: 9999px;
/* 阴影 - 轻盈专业主题 */
--shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
--shadow-md: 0 2px 4px rgba(0,0,0,0.08);
--shadow-lg: 0 4px 8px rgba(0,0,0,0.1);
--shadow-xl: 0 8px 16px rgba(0,0,0,0.12);
--shadow-violet: 0 2px 8px rgba(139, 92, 246, 0.15);
/* 过渡 */
--transition-fast: 150ms ease;
--transition-base: 250ms ease;
--transition-slow: 350ms ease;
/* 布局 */
--container-max: 1600px; /* 增加最大宽度适配1920屏幕 */
}
/* ========== 深色主题 - 深邃紫蓝配色 ========== */
body.dark-theme {
--bg-dark: #0f0a1f; /* 深邃紫黑背景 */
--bg-semi-dark: rgba(15, 10, 31, 0.95); /* 深紫半透明 */
--bg-overlay: rgba(20, 15, 35, 0.85); /* 深紫遮罩层 */
--bg-card: rgba(25, 20, 45, 0.9); /* 深紫卡片背景 */
--primary-dark: #4c1d95; /* 中度深紫 */
--primary-purple: #a78bfa; /* 明亮紫 */
--accent-violet: #8b5cf6; /* 深紫罗兰 */
--accent-violet-light: #c4b5fd; /* 亮紫罗兰 */
--text-light: #e9e5f5; /* 浅色文字 */
--text-gray: #a8a29e; /* 灰色文字 */
--border-light: rgba(167, 139, 250, 0.25); /* 紫色边框 */
--hover-bg: rgba(139, 92, 246, 0.15); /* 悬停背景 */
--active-bg: rgba(167, 139, 250, 0.2); /* 激活背景 */
--shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
--shadow-md: 0 2px 4px rgba(0,0,0,0.5);
--shadow-lg: 0 4px 8px rgba(0,0,0,0.6);
--shadow-xl: 0 8px 16px rgba(0,0,0,0.7);
--shadow-violet: 0 2px 8px rgba(139, 92, 246, 0.25);
}
/* ========== 重置样式 ========== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body {
font-family: var(--font-primary);
font-size: var(--text-base);
line-height: 1.6;
color: var(--text-light);
background-color: var(--bg-dark);
overflow-x: hidden;
}
/* ========== Hero 区域 - 全屏图片背景 ========== */
.hero {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background:
linear-gradient(135deg, rgba(245, 243, 255, 0.9) 0%, rgba(237, 233, 254, 0.95) 100%),
url('../images/检测背景主图.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
position: relative;
overflow: hidden;
}
/* 深色主题下的Hero渐变 */
body.dark-theme .hero {
background:
linear-gradient(135deg, rgba(15, 10, 31, 0.9) 0%, rgba(20, 15, 35, 0.8) 100%),
url('../images/检测背景主图.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
.hero::before {
content: '';
position: absolute;
width: 100%;
height: 100%;
background-image:
radial-gradient(circle at 20% 50%, rgba(139, 92, 246, 0.1) 0%, transparent 50%),
radial-gradient(circle at 80% 80%, rgba(124, 58, 237, 0.05) 0%, transparent 50%);
pointer-events: none;
animation: glow 8s ease-in-out infinite;
}
@keyframes glow {
0%, 100% { opacity: 1; }
50% { opacity: 0.6; }
}
.hero-content {
text-align: center;
color: var(--text-light);
z-index: 1;
position: relative;
padding: var(--spacing-xl);
max-width: 900px;
}
.hero-badge {
display: inline-block;
padding: var(--spacing-md) var(--spacing-xl);
background: rgba(139, 92, 246, 0.15);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-radius: var(--radius-full);
font-size: var(--text-lg);
font-weight: var(--font-semibold);
letter-spacing: 0.1em;
margin-bottom: var(--spacing-xl);
border: 3px solid var(--accent-violet);
box-shadow: var(--shadow-violet);
text-transform: uppercase;
transition: all var(--transition-base);
}
.hero-badge:hover {
background: rgba(139, 92, 246, 0.25);
transform: translateY(-2px);
}
.hero-title {
font-size: clamp(3.5rem, 10vw, 6.5rem);
font-weight: var(--font-bold);
margin-bottom: var(--spacing-lg);
letter-spacing: -0.02em;
line-height: 1.1;
color: var(--accent-violet-light);
text-shadow: 0 6px 30px rgba(0,0,0,0.8), 0 0 60px rgba(139, 92, 246, 0.4);
}
.hero-subtitle {
font-size: clamp(1.5rem, 4vw, 2.5rem);
font-weight: var(--font-light);
opacity: 0.95;
margin-bottom: var(--spacing-xl);
color: var(--text-light);
}
.hero-description {
font-size: var(--text-xl);
opacity: 0.85;
max-width: 800px;
margin: 0 auto;
line-height: 1.8;
}
/* ========== 导航 - 深色玻璃态 ========== */
.nav {
position: sticky;
top: 0;
z-index: 100;
background: var(--bg-semi-dark);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-bottom: 1px solid var(--border-light);
padding: var(--spacing-md) 0;
box-shadow: var(--shadow-md);
}
.nav-container {
display: flex;
justify-content: center;
gap: var(--spacing-sm);
flex-wrap: wrap;
padding: 0 var(--spacing-md);
}
.nav-item {
padding: var(--spacing-sm) var(--spacing-lg);
background: var(--bg-overlay);
backdrop-filter: blur(10px);
border: 1px solid var(--border-light);
border-radius: var(--radius-lg);
cursor: pointer;
transition: all var(--transition-base);
font-weight: var(--font-medium);
display: flex;
align-items: center;
gap: var(--spacing-xs);
color: var(--text-gray);
}
.nav-item i {
width: 20px;
height: 20px;
stroke-width: 2;
}
.nav-item span {
font-size: var(--text-base);
}
.nav-item:hover {
background: var(--hover-bg);
color: var(--accent-violet);
transform: translateY(-2px);
box-shadow: var(--shadow-violet);
}
.nav-item.active {
background: var(--active-bg);
color: var(--primary-purple);
border-color: var(--primary-purple);
box-shadow: var(--shadow-violet);
}
/* ========== 内容区块 - 图片背景 ========== */
.section {
padding: var(--spacing-2xl) 0;
background: var(--bg-dark);
position: relative;
}
/* 浅色图片背景 - 每个区块使用不同图片 */
.section:nth-child(1) {
background-image:
linear-gradient(to bottom, rgba(245, 243, 255, 0.9) 0%, rgba(237, 233, 254, 1) 100%),
url('../images/硅晶圆检测项目.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
.section:nth-child(2) {
background-image:
linear-gradient(to bottom, rgba(245, 243, 255, 0.9) 0%, rgba(237, 233, 254, 1) 100%),
url('../images/光学镜头检测硅晶圆示意图.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
.section:nth-child(3) {
background-image:
linear-gradient(to bottom, rgba(245, 243, 255, 0.9) 0%, rgba(237, 233, 254, 1) 100%),
url('../images/外观热力图(颗粒划痕腐蚀).jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
.section:nth-child(4) {
background-image:
linear-gradient(to bottom, rgba(245, 243, 255, 0.9) 0%, rgba(237, 233, 254, 1) 100%),
url('../images/检测结果主图.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
/* 通用奇偶区块当超过4个section时 */
.section:nth-child(n+5):nth-child(odd) {
background-image:
linear-gradient(to bottom, rgba(245, 243, 255, 0.9) 0%, rgba(237, 233, 254, 1) 100%),
url('../images/厚度分布图.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
.section:nth-child(n+5):nth-child(even) {
background-image:
linear-gradient(to bottom, rgba(245, 243, 255, 0.9) 0%, rgba(237, 233, 254, 1) 100%),
url('../images/电学对比图.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
/* 深色主题下的区块背景 - 每个区块使用对应图片 */
body.dark-theme .section:nth-child(1) {
background-image:
linear-gradient(to bottom, rgba(15, 10, 31, 0.92) 0%, rgba(20, 15, 35, 0.88) 100%),
url('../images/硅晶圆检测项目.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
body.dark-theme .section:nth-child(2) {
background-image:
linear-gradient(to bottom, rgba(20, 15, 35, 0.90) 0%, rgba(15, 10, 31, 0.88) 100%),
url('../images/光学镜头检测硅晶圆示意图.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
body.dark-theme .section:nth-child(3) {
background-image:
linear-gradient(to bottom, rgba(15, 10, 31, 0.92) 0%, rgba(20, 15, 35, 0.88) 100%),
url('../images/外观热力图(颗粒划痕腐蚀).jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
body.dark-theme .section:nth-child(4) {
background-image:
linear-gradient(to bottom, rgba(20, 15, 35, 0.90) 0%, rgba(15, 10, 31, 0.88) 100%),
url('../images/检测结果主图.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
/* 通用奇偶区块当超过4个section时 */
body.dark-theme .section:nth-child(n+5):nth-child(odd) {
background-image:
linear-gradient(to bottom, rgba(15, 10, 31, 0.92) 0%, rgba(20, 15, 35, 0.88) 100%),
url('../images/厚度分布图.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
body.dark-theme .section:nth-child(n+5):nth-child(even) {
background-image:
linear-gradient(to bottom, rgba(20, 15, 35, 0.90) 0%, rgba(15, 10, 31, 0.88) 100%),
url('../images/电学对比图.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
/* 深色主题下的特定元素调整 */
body.dark-theme .stat-item {
background: rgba(25, 20, 45, 0.8);
backdrop-filter: blur(5px);
}
body.dark-theme .stat-item:hover {
background: rgba(167, 139, 250, 0.15);
border-color: var(--primary-purple);
}
body.dark-theme .stat-value {
color: var(--accent-violet-light);
}
body.dark-theme th {
background: rgba(167, 139, 250, 0.12);
color: var(--accent-violet-light);
}
body.dark-theme tr:hover {
background: rgba(167, 139, 250, 0.08);
}
.container {
max-width: var(--container-max);
margin: 0 auto;
padding: 0 var(--spacing-md);
}
.section-header {
display: flex;
align-items: center;
gap: var(--spacing-lg);
margin-bottom: var(--spacing-xl);
padding: var(--spacing-lg);
background: var(--bg-card);
backdrop-filter: blur(15px);
-webkit-backdrop-filter: blur(15px);
border-radius: var(--radius-xl);
border: 2px solid var(--border-light);
box-shadow: var(--shadow-md);
}
.agent-avatar {
width: 100px;
height: 100px;
border-radius: var(--radius-xl);
object-fit: cover;
border: 3px solid var(--primary-purple);
box-shadow: var(--shadow-md);
transition: all var(--transition-base);
}
.agent-avatar:hover {
transform: scale(1.05);
box-shadow: var(--shadow-lg);
border-color: var(--accent-violet);
}
.agent-info {
flex: 1;
}
.agent-name {
font-size: var(--text-lg);
color: var(--primary-purple);
text-transform: uppercase;
letter-spacing: 0.1em;
margin-bottom: var(--spacing-sm);
font-weight: var(--font-semibold);
}
.section-title {
font-size: var(--text-4xl);
font-weight: var(--font-bold);
color: var(--text-light);
letter-spacing: -0.01em;
text-shadow: none;
position: relative;
padding-bottom: var(--spacing-sm);
}
.section-title::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 180px;
height: 4px;
background: linear-gradient(90deg, var(--accent-violet), transparent);
border-radius: 2px;
}
.section-content {
max-width: 100%;
margin: 0 auto;
}
.expert-intro {
background: var(--bg-card);
backdrop-filter: blur(15px);
-webkit-backdrop-filter: blur(15px);
border-radius: var(--radius-xl);
padding: var(--spacing-lg);
margin-bottom: var(--spacing-xl);
border: 2px solid var(--border-light);
box-shadow: var(--shadow-md);
}
.expert-intro h3 {
font-size: var(--text-2xl);
color: var(--primary-purple);
margin-bottom: var(--spacing-lg);
display: flex;
align-items: center;
gap: var(--spacing-md);
}
.expert-intro p {
color: var(--text-gray);
line-height: 1.8;
font-size: var(--text-lg);
}
/* ========== 网格布局 - 针对大屏幕优化,更大气的布局 ========== */
.grid {
display: grid;
gap: var(--spacing-2xl);
}
.grid-2 {
grid-template-columns: repeat(2, 1fr);
}
.grid-3 {
grid-template-columns: repeat(2, 1fr);
}
.grid-4 {
grid-template-columns: repeat(3, 1fr);
}
/* ========== 卡片 - 图片优先布局 ========== */
.card {
background: var(--bg-card);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border-radius: var(--radius-2xl);
overflow: hidden;
border: 2px solid var(--border-light);
transition: all var(--transition-base);
box-shadow: var(--shadow-md);
padding: 0;
display: flex;
flex-direction: column;
}
.card:hover {
transform: translateY(-8px);
box-shadow: var(--shadow-xl), var(--shadow-violet);
border-color: var(--accent-violet);
}
.card-header {
padding: var(--spacing-xl);
background: var(--bg-semi-dark);
border-bottom: 2px solid var(--border-light);
order: 2;
}
.card-title {
font-size: var(--text-2xl);
font-weight: var(--font-semibold);
color: var(--primary-purple);
margin-bottom: var(--spacing-sm);
}
.card-body {
padding: var(--spacing-xl);
order: 3;
flex: 1;
}
/* ========== 图片容器 - 突出展示 - 超大气布局 ========== */
.image-container {
width: 100%;
aspect-ratio: 3/2;
overflow: hidden;
border-radius: 0;
margin-bottom: 0;
background: rgba(0,0,0,0.5);
position: relative;
box-shadow: none;
border: none;
transition: all var(--transition-base);
order: 1;
flex-shrink: 0;
}
.image-container img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform var(--transition-slow);
filter: brightness(0.9);
}
.image-container:hover img {
transform: scale(1.1);
filter: brightness(1.1);
}
.image-caption {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: var(--spacing-md);
background: linear-gradient(to top, rgba(0,0,0,0.9), transparent);
color: var(--text-light);
font-size: var(--text-sm);
font-weight: var(--font-medium);
text-align: center;
transform: translateY(100%);
transition: transform var(--transition-base);
}
.image-container:hover .image-caption {
transform: translateY(0);
}
/* ========== 列表 ========== */
.feature-list {
list-style: none;
padding: 0;
}
.feature-list li {
padding: var(--spacing-sm) 0;
border-bottom: 1px solid var(--border-light);
color: var(--text-gray);
transition: all var(--transition-fast);
}
.feature-list li:hover {
color: var(--primary-purple);
padding-left: var(--spacing-sm);
}
.feature-list li:last-child {
border-bottom: none;
}
/* ========== 统计数据 ========== */
.stats {
display: flex;
gap: var(--spacing-md);
padding: var(--spacing-lg);
background: var(--bg-overlay);
backdrop-filter: blur(10px);
border-radius: var(--radius-lg);
border: 1px solid var(--border-light);
}
.stat-item {
flex: 1;
text-align: center;
padding: var(--spacing-md);
border-radius: var(--radius-md);
background: var(--bg-card);
border: 1px solid transparent;
transition: all var(--transition-base);
}
.stat-item:hover {
background: var(--hover-bg);
transform: translateY(-4px);
border-color: var(--border-light);
box-shadow: var(--shadow-md);
}
.stat-label {
font-size: var(--text-sm);
color: var(--text-gray);
margin-bottom: var(--spacing-xs);
}
.stat-value {
font-size: var(--text-2xl);
font-weight: var(--font-bold);
color: var(--primary-purple);
text-shadow: none;
}
/* ========== 表格 ========== */
.table-container {
overflow-x: auto;
margin: var(--spacing-xl) 0;
border-radius: var(--radius-lg);
box-shadow: var(--shadow-lg);
}
table {
width: 100%;
border-collapse: collapse;
background: var(--bg-card);
backdrop-filter: blur(10px);
border-radius: var(--radius-lg);
overflow: hidden;
}
th {
background: var(--active-bg);
color: var(--primary-purple);
padding: var(--spacing-md);
text-align: left;
font-weight: var(--font-semibold);
border-bottom: 2px solid var(--primary-purple);
}
td {
padding: var(--spacing-md);
border-bottom: 1px solid var(--border-light);
color: var(--text-gray);
}
tr:last-child td {
border-bottom: none;
}
tr:hover {
background: var(--hover-bg);
}
/* ========== 响应式 ========== */
@media (max-width: 768px) {
:root {
--spacing-sm: 0.75rem;
--spacing-md: 1rem;
--spacing-lg: 1.5rem;
--spacing-xl: 2rem;
--spacing-2xl: 3rem;
--spacing-3xl: 4rem;
}
.hero {
background-attachment: scroll;
}
.section:nth-child(odd),
.section:nth-child(even) {
background-attachment: scroll;
}
.hero-content {
padding: var(--spacing-lg);
}
.nav-container {
gap: var(--spacing-xs);
}
.nav-item {
padding: var(--spacing-xs) var(--spacing-md);
font-size: var(--text-sm);
}
.section {
padding: var(--spacing-2xl) 0;
}
.grid-2,
.grid-3,
.grid-4 {
grid-template-columns: 1fr;
}
.section-header {
flex-direction: column;
text-align: center;
}
.stats {
flex-direction: column;
}
}
/* ========== 动画 ========== */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slideIn {
from {
opacity: 0;
transform: translateX(-20px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
@keyframes shimmer {
0% {
background-position: -1000px 0;
}
100% {
background-position: 1000px 0;
}
}
.fade-in {
animation: fadeIn 0.6s ease forwards;
}
.slide-in {
animation: slideIn 0.6s ease forwards;
}
/* ========== 工具类 ========== */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.mt-sm { margin-top: var(--spacing-sm); }
.mt-md { margin-top: var(--spacing-md); }
.mt-lg { margin-top: var(--spacing-lg); }
.mt-xl { margin-top: var(--spacing-xl); }
.mb-sm { margin-bottom: var(--spacing-sm); }
.mb-md { margin-bottom: var(--spacing-md); }
.mb-lg { margin-bottom: var(--spacing-lg); }
.mb-xl { margin-bottom: var(--spacing-xl); }
.hidden { display: none; }
.block { display: block; }
.flex { display: flex; }
.grid { display: grid; }
.gap-sm { gap: var(--spacing-sm); }
.gap-md { gap: var(--spacing-md); }
.gap-lg { gap: var(--spacing-lg); }
/* ========== 图片加载状态 ========== */
img {
transition: opacity var(--transition-base);
}
img.loaded {
opacity: 1;
}
img.error {
opacity: 0.5;
filter: grayscale(1);
}
/* ========== SVG图标尺寸统一管理 ========== */
.hero-description i[data-lucide] {
width: 24px !important;
height: 24px !important;
display: inline-block !important;
vertical-align: middle !important;
margin-right: 8px !important;
}
.agent-name i[data-lucide] {
width: 20px !important;
height: 20px !important;
display: inline-block !important;
vertical-align: middle !important;
margin-right: 8px !important;
}
.expert-intro h3 i[data-lucide] {
width: 40px !important;
height: 40px !important;
display: inline-block !important;
vertical-align: middle !important;
margin-right: 10px !important;
}
.feature-list li i[data-lucide] {
width: 18px !important;
height: 18px !important;
display: inline-block !important;
vertical-align: middle !important;
margin-right: 8px !important;
}
.nav-item i[data-lucide] {
width: 20px !important;
height: 20px !important;
display: block !important;
margin: 0 auto 4px !important;
}
/* ========== 主题切换按钮 ========== */
.theme-toggle {
position: fixed;
top: 24px;
right: 24px;
z-index: 1000;
}
.theme-toggle-btn {
position: relative;
width: 64px;
height: 32px;
background: var(--bg-card);
border: 2px solid var(--border-light);
border-radius: var(--radius-full);
cursor: pointer;
padding: 0;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 6px;
transition: all var(--transition-base);
box-shadow: var(--shadow-md);
}
.theme-toggle-btn:hover {
transform: scale(1.05);
box-shadow: var(--shadow-lg);
}
.theme-toggle-btn:active {
transform: scale(0.95);
}
.theme-icon {
width: 18px !important;
height: 18px !important;
transition: all var(--transition-base);
color: var(--text-gray);
}
body:not(.dark-theme) .theme-icon-light {
color: var(--accent-violet);
transform: scale(1.2);
}
body:not(.dark-theme) .theme-icon-dark {
opacity: 0.5;
}
body.dark-theme .theme-icon-dark {
color: var(--primary-purple);
transform: scale(1.2);
}
body.dark-theme .theme-icon-light {
opacity: 0.5;
}