/* ============================================
   温岭非遗平台 - 前台样式 v2（现代·移动优先）
   ============================================ */

/* === 字体与基础 === */
/* @import removed for China access */
:root {
  /* 主题色 - 温岭红 */
  --primary: #c0392b;
  --primary-light: #e74c3c;
  --primary-dark: #a93226;
  --primary-glow: rgba(192,57,43,.15);
  --primary-bg: #fef2f2;

  /* 辅助色 */
  --accent: #667eea;
  --accent-light: #764ba2;
  --success: #10b981;
  --warning: #f59e0b;
  --danger: #ef4444;
  --info: #6b7280;

  /* 中性色 */
  --text: #1f2937;
  --text-secondary: #6b7280;
  --text-tertiary: #9ca3af;
  --text-muted: #d1d5db;
  --bg: #f3f4f6;
  --bg-card: #ffffff;
  --bg-body: #f9fafb;
  --bg-elevated: #ffffff;
  --border: #e5e7eb;
  --border-light: #f3f4f6;

  /* 阴影 */
  --shadow-sm: 0 1px 2px rgba(0,0,0,.05);
  --shadow-md: 0 4px 6px -1px rgba(0,0,0,.07), 0 2px 4px -2px rgba(0,0,0,.05);
  --shadow-lg: 0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.04);
  --shadow-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.05);

  /* 圆角 */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;

  /* 字体 */
  --font-sans: 'Inter', 'PingFang SC', 'Microsoft YaHei', -apple-system, sans-serif;
  --font-size-xs: .75rem;
  --font-size-sm: .875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-size-3xl: 1.875rem;
  --font-size-4xl: 2.25rem;

  /* 间距 */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;

  /* 动画 */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --duration-fast: .15s;
  --duration-normal: .25s;
  --duration-slow: .4s;
}

/* 暗黑模式 */
[data-theme="dark"] {
  --primary: #ef4444;
  --primary-light: #f87171;
  --primary-dark: #dc2626;
  --primary-glow: rgba(239,68,68,.2);
  --primary-bg: #2d1b1a;
  --text: #f3f4f6;
  --text-secondary: #d1d5db;
  --text-tertiary: #9ca3af;
  --text-muted: #6b7280;
  --bg: #111827;
  --bg-card: #1f2937;
  --bg-body: #0f172a;
  --bg-elevated: #1e293b;
  --border: #374151;
  --border-light: #1f2937;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.2);
  --shadow-md: 0 4px 6px -1px rgba(0,0,0,.3);
  --shadow-lg: 0 10px 15px -3px rgba(0,0,0,.4);
  --shadow-xl: 0 20px 25px -5px rgba(0,0,0,.5);
}

/* === Reset === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--font-sans);font-size:var(--font-size-base);line-height:1.6;color:var(--text);background:var(--bg-body);transition:background var(--duration-normal),color var(--duration-normal);-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;height:auto;display:block;}
button,input,select,textarea{font-family:inherit;font-size:inherit;}

/* === 工具类 === */
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-5);}
@media(max-width:640px){.container{padding:0 var(--space-4);}}

/* === 头部导航 === */
.site-header{position:sticky;top:0;z-index:100;background:rgba(26,26,46,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.06);}
[data-theme="dark"] .site-header{background:rgba(13,13,26,.95);}
.site-header .container{display:flex;align-items:center;height:64px;gap:var(--space-8);}
.logo{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-lg);font-weight:700;color:#fff;white-space:nowrap;}
.logo img{height:32px;width:auto;}
.main-nav{display:flex;align-items:center;gap:var(--space-1);}
.main-nav a{position:relative;color:rgba(255,255,255,.65);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:500;border-radius:var(--radius-sm);transition:color var(--duration-fast),background var(--duration-fast);}
.main-nav a::after{content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%) scaleX(0);width:60%;height:2px;background:var(--primary);border-radius:1px;transition:transform var(--duration-normal) var(--ease-out);}
.main-nav a:hover,.main-nav a.active{color:#fff;background:rgba(255,255,255,.08);}
.main-nav a.active::after{transform:translateX(-50%) scaleX(1);}
.header-right{display:flex;align-items:center;margin-left:auto;gap:var(--space-2);}

/* 主题切换 */
.theme-toggle{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:transparent;color:rgba(255,255,255,.7);font-size:var(--font-size-base);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast);}
.theme-toggle:hover{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.08);color:#fff;}

/* 移动端汉堡菜单 */
.nav-toggle{display:none;width:36px;height:36px;border:none;background:transparent;color:#fff;font-size:var(--font-size-xl);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--radius-sm);}
.nav-toggle:hover{background:rgba(255,255,255,.08);}

/* === 移动端抽屉菜单 === */
.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:199;opacity:0;transition:opacity var(--duration-normal);}
.mobile-overlay.show{opacity:1;}
.mobile-drawer{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:80vw;background:var(--bg-elevated);z-index:200;transform:translateX(-100%);transition:transform var(--duration-slow) var(--ease-out);overflow-y:auto;}
.mobile-drawer.open{transform:translateX(0);}
.mobile-drawer-header{padding:var(--space-6);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.mobile-drawer-header h3{font-size:var(--font-size-lg);font-weight:700;color:var(--text);}
.mobile-drawer-close{width:32px;height:32px;border:none;background:var(--bg);border-radius:50%;font-size:var(--font-size-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:background var(--duration-fast);}
.mobile-drawer-close:hover{background:var(--border);}
.mobile-drawer-nav{padding:var(--space-3);}
.mobile-drawer-nav a{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--text);font-size:var(--font-size-base);font-weight:500;transition:background var(--duration-fast);}
.mobile-drawer-nav a:hover,.mobile-drawer-nav a.active{background:var(--primary-bg);color:var(--primary);}
.mobile-drawer-nav a.active{font-weight:600;}

/* === Hero === */
.hero{position:relative;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 40%,#0f3460 100%);color:#fff;padding:var(--space-16) 0;text-align:center;overflow:hidden;}
.hero::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 40%,rgba(102,126,234,.15) 0%,transparent 50%),radial-gradient(circle at 70% 60%,rgba(118,75,162,.12) 0%,transparent 50%);animation:heroGlow 8s ease-in-out infinite alternate;}
@keyframes heroGlow{0%{transform:translate(0,0);}100%{transform:translate(-5%,5%);}}
.hero-content{position:relative;z-index:1;}
.hero-content h1{font-size:var(--font-size-4xl);font-weight:800;margin-bottom:var(--space-3);letter-spacing:-.02em;background:linear-gradient(135deg,#fff 30%,rgba(255,255,255,.7));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hero-content p{font-size:var(--font-size-lg);opacity:.7;margin-bottom:var(--space-6);max-width:500px;margin-left:auto;margin-right:auto;}
.hero-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-8);background:#fff;color:var(--primary);border-radius:999px;font-size:var(--font-size-base);font-weight:600;transition:all var(--duration-normal) var(--ease-out);}
.hero-btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px -8px rgba(0,0,0,.3);}

/* === 段落 === */
.section{padding:var(--space-16) 0;}
.section-gray{background:var(--bg);}
.section-title{text-align:center;margin-bottom:var(--space-10);}
.section-title h2{font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--space-2);color:var(--text);}
.section-title p{color:var(--text-secondary);font-size:var(--font-size-sm);}

/* === 卡片系统 === */
.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5);}
.person-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-5);}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4);}

.project-card,.person-card,.product-card{position:relative;background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:all var(--duration-normal) var(--ease-out);cursor:pointer;border:1px solid var(--border-light);}
.project-card:hover,.person-card:hover,.product-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent;}
.project-card::after,.product-card::after{content:'';position:absolute;inset:0;border-radius:var(--radius-lg);opacity:0;transition:opacity var(--duration-normal);pointer-events:none;}
.project-card:hover::after,.product-card:hover::after{opacity:1;}

/* 卡片图片 */
.card-img,.product-img{position:relative;height:200px;overflow:hidden;background:var(--bg);}
.card-img img,.product-img img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-out);}
.project-card:hover .card-img img,.product-card:hover .product-img img{transform:scale(1.05);}

/* 图片占位动画 */
.card-img::before,.product-img::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%);transform:translateX(-100%);}
.card-img.loading::before,.product-img.loading::before{animation:shimmer 1.5s infinite;}
@keyframes shimmer{100%{transform:translateX(100%);}}

.card-body,.product-body{padding:var(--space-4);}
.card-body h3,.product-body h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--space-1);color:var(--text);line-height:1.4;}

/* 传承人卡片 */
.person-card{text-align:center;padding:var(--space-8) var(--space-5);}
.person-avatar{width:88px;height:88px;border-radius:50%;margin:0 auto var(--space-4);overflow:hidden;background:linear-gradient(135deg,var(--primary-light),var(--accent-light));box-shadow:0 0 0 3px var(--bg-card),0 0 0 6px var(--primary-glow);transition:box-shadow var(--duration-normal);}
.person-card:hover .person-avatar{box-shadow:0 0 0 3px var(--bg-card),0 0 0 6px var(--primary-glow),0 8px 24px var(--primary-glow);}
.person-avatar img{width:100%;height:100%;object-fit:cover;}
.person-card h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--space-1);}
.person-card p{color:var(--text-secondary);font-size:var(--font-size-sm);}

/* 标签 */
.card-tag{display:inline-block;padding:2px 10px;background:var(--primary-bg);color:var(--primary);border-radius:999px;font-size:var(--font-size-xs);font-weight:500;}
.product-price{font-size:var(--font-size-xl);font-weight:700;color:var(--primary);margin:var(--space-2) 0;}
.product-price .original{font-size:var(--font-size-sm);color:var(--text-tertiary);text-decoration:line-through;font-weight:400;margin-left:var(--space-2);}
.product-meta{display:flex;justify-content:space-between;font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:var(--space-1);}

/* === 页面标题栏 === */
.page-header{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-light) 100%);color:#fff;padding:var(--space-10) 0;text-align:center;position:relative;overflow:hidden;}
.page-header::before{content:'';position:absolute;top:0;right:0;width:300px;height:300px;background:rgba(255,255,255,.04);border-radius:50%;transform:translate(100px,-100px);}
.page-header-actions{position:relative;z-index:1;}
.page-header h1{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--space-2);}
.page-header p{opacity:.75;font-size:var(--font-size-sm);}

/* === 筛选栏 === */
.filter-bar{background:var(--bg-card);padding:var(--space-4) 0;border-bottom:1px solid var(--border);position:sticky;top:64px;z-index:50;}
.filter-bar .container{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center;}
.filter-bar input,.filter-bar select{height:38px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);outline:none;background:var(--bg);color:var(--text);transition:border-color var(--duration-fast),box-shadow var(--duration-fast);}
.filter-bar input:focus,.filter-bar select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);}
.filter-bar button{height:38px;padding:0 var(--space-5);background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background var(--duration-fast),transform var(--duration-fast);}
.filter-bar button:hover{background:var(--primary-dark);transform:translateY(-1px);}
.filter-bar .sort-bar{display:flex;gap:var(--space-1);font-size:var(--font-size-sm);}
.filter-bar .sort-bar a{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--duration-fast);}
.filter-bar .sort-bar a:hover{color:var(--text);background:var(--bg);}
.filter-bar .sort-bar a.active{background:var(--primary);color:#fff;}

/* === 详情页 === */
.detail-body{padding:var(--space-8) 0;}
.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);margin-bottom:var(--space-8);}
.product-gallery{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-card);box-shadow:var(--shadow-sm);}
.product-gallery img{width:100%;}
.product-info{padding:var(--space-6) 0;}
.product-info h1{font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--space-3);color:var(--text);}
.product-info .summary{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.7;margin-bottom:var(--space-4);}
.product-info .price-block{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);}
.product-info .price-block .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary);}
.product-info .price-block .original{font-size:var(--font-size-base);color:var(--text-tertiary);text-decoration:line-through;}
.product-info .meta-row{display:flex;gap:var(--space-6);font-size:var(--font-size-sm);color:var(--text-tertiary);margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--border);}

/* 规格选择 */
.specs{margin-bottom:var(--space-5);}
.specs-label{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--space-2);color:var(--text);}
.spec-options{display:flex;gap:var(--space-2);flex-wrap:wrap;}
.spec-item{padding:var(--space-2) var(--space-4);border:2px solid var(--border);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--duration-fast);color:var(--text);}
.spec-item:hover{border-color:var(--primary);color:var(--primary);}
.spec-item.active{border-color:var(--primary);background:var(--primary-bg);color:var(--primary);font-weight:600;box-shadow:0 0 0 1px var(--primary);}

/* 购买按钮 */
.buy-area{display:flex;gap:var(--space-3);margin-top:var(--space-6);}
.btn-cart,.btn-buy{flex:1;padding:var(--space-3) var(--space-5);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);}
.btn-cart{background:var(--bg);color:var(--text);border:2px solid var(--border);}
.btn-cart:hover{background:var(--primary-bg);border-color:var(--primary);color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md);}
.btn-buy{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;}
.btn-buy:hover{transform:translateY(-2px);box-shadow:0 8px 20px var(--primary-glow);}

/* 详情内容区 */
.content-block{background:var(--bg-card);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);line-height:1.8;font-size:var(--font-size-base);}
.content-block h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border);}

/* === 详情通用（展示厅/传承人）=== */
.detail-header{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-light) 100%);color:#fff;padding:var(--space-10) 0;text-align:center;}
.detail-header h1{font-size:var(--font-size-3xl);font-weight:700;}
.detail-header .meta{display:flex;justify-content:center;gap:var(--space-6);margin-top:var(--space-3);font-size:var(--font-size-sm);opacity:.75;}
.detail-section{padding:var(--space-8) 0;}
.detail-section .content{background:var(--bg-card);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);line-height:1.8;}

/* === 空状态 === */
.empty-state{text-align:center;padding:var(--space-16) 0;color:var(--text-tertiary);}
.empty-state .icon{font-size:var(--font-size-4xl);margin-bottom:var(--space-4);opacity:.4;}
.empty-state p{font-size:var(--font-size-base);}

/* === 分页 === */
.pagination{text-align:center;padding:var(--space-8) 0;}
.pagination a,.pagination span{display:inline-block;padding:var(--space-2) var(--space-4);margin:0 var(--space-1);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--font-size-sm);transition:all var(--duration-fast);}
.pagination .current{background:var(--primary);color:#fff;border-color:var(--primary);}
.pagination a:hover{background:var(--bg);border-color:var(--primary);color:var(--primary);}

/* === 表单 === */
.form-page{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--bg);}
.form-box{width:400px;max-width:100%;background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-8);}
.form-box h2{font-size:var(--font-size-2xl);font-weight:700;text-align:center;margin-bottom:var(--space-6);}
.form-field{margin-bottom:var(--space-4);}
.form-field label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-1);}
.form-field input{width:100%;height:44px;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--font-size-base);outline:none;background:var(--bg);color:var(--text);transition:border-color var(--duration-fast),box-shadow var(--duration-fast);}
.form-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);}
.form-field .code-row{display:flex;gap:var(--space-2);}
.form-field .code-row input{flex:1;}
.form-field .code-row button{flex-shrink:0;height:44px;padding:0 var(--space-4);background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--duration-fast);}
.form-field .code-row button:hover{border-color:var(--primary);color:var(--primary);}
.submit-btn{width:100%;height:44px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--duration-fast);margin-top:var(--space-2);}
.submit-btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px var(--primary-glow);}
.form-links{text-align:center;margin-top:var(--space-5);font-size:var(--font-size-sm);color:var(--text-secondary);}
.form-links a{color:var(--primary);font-weight:500;}
.form-links a:hover{text-decoration:underline;}

/* === 购物车 === */
.cart-page{padding:var(--space-8) 0;}
.cart-title{font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--space-6);}
.cart-list{display:flex;flex-direction:column;gap:var(--space-3);}
.cart-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);transition:box-shadow var(--duration-fast);}
.cart-item:hover{box-shadow:var(--shadow-md);}
.cart-item-img{width:80px;height:80px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--bg);}
.cart-item-img img{width:100%;height:100%;object-fit:cover;}
.cart-item-info{flex:1;min-width:0;}
.cart-item-info h4{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--space-1);}
.cart-item-info .spec{font-size:var(--font-size-xs);color:var(--text-tertiary);}
.cart-item-info .price{color:var(--primary);font-weight:600;font-size:var(--font-size-sm);}
.cart-item-actions{display:flex;align-items:center;gap:var(--space-2);}
.cart-item-actions button{width:28px;height:28px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;font-size:var(--font-size-sm);display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast);}
.cart-item-actions button:hover{border-color:var(--primary);color:var(--primary);}
.cart-item-actions .num{width:40px;text-align:center;font-size:var(--font-size-sm);font-weight:500;}
.cart-item-actions .delete{color:var(--danger);border-color:transparent;font-size:var(--font-size-base);}
.cart-item-actions .delete:hover{border-color:var(--danger);background:rgba(239,68,68,.05);}
.cart-footer{margin-top:var(--space-6);padding:var(--space-5);background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border-light);}
.cart-footer .total{font-size:var(--font-size-lg);}
.cart-footer .total span{color:var(--primary);font-weight:700;font-size:var(--font-size-2xl);}
.cart-footer .checkout-btn{padding:var(--space-3) var(--space-8);background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--duration-fast);}
.cart-footer .checkout-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px var(--primary-glow);}

/* === 底部 === */
.site-footer{background:linear-gradient(135deg,#1a1a2e,#16213e);color:rgba(255,255,255,.5);padding:var(--space-8) 0;text-align:center;font-size:var(--font-size-xs);line-height:2;}
[data-theme="dark"] .site-footer{background:linear-gradient(135deg,#0d0d1a,#1a1a2e);}

/* === Toast 组件 === */
.toast{position:fixed;top:var(--space-5);right:var(--space-5);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-sm);z-index:9999;box-shadow:var(--shadow-lg);transform:translateY(-20px);opacity:0;transition:all var(--duration-normal) var(--ease-out);display:flex;align-items:center;gap:var(--space-2);max-width:360px;}
.toast.show{transform:translateY(0);opacity:1;}
.toast-success{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0;}
.toast-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;}
[data-theme="dark"] .toast-success{background:#064e3b;color:#6ee7b7;border-color:#065f46;}
[data-theme="dark"] .toast-error{background:#7f1d1d;color:#fca5a5;border-color:#991b1b;}

/* === 按钮通用 === */
.btn{padding:var(--space-2) var(--space-5);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px var(--primary-glow);}
.btn-default{background:var(--bg);color:var(--text);border:1px solid var(--border);}
.btn-default:hover{border-color:var(--primary);color:var(--primary);}
.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);}
.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);}

/* === 订单卡片 === */
.order-card{background:var(--bg-card);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);margin-bottom:var(--space-3);}
.order-card-hd{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm);}
.order-card-hd .order-no{color:var(--text-secondary);}
.order-card-hd .order-status{font-weight:600;}
.order-card-bd{padding:var(--space-4);}
.order-card-ft{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm);}
.order-card-ft .amount{font-weight:700;color:var(--primary);font-size:var(--font-size-lg);}
.status-pending{color:var(--warning);}
.status-paid{color:var(--success);}
.status-shipped{color:var(--accent);}
.status-completed{color:var(--text-tertiary);}
.status-canceled{color:var(--danger);}

/* === 用户页面 === */
.user-page{padding:var(--space-8) 0;min-height:calc(100vh - 64px);}
.user-page .page-title{font-size:var(--font-size-xl);font-weight:700;margin-bottom:var(--space-6);}
.user-nav{display:flex;gap:var(--space-2);margin-bottom:var(--space-6);flex-wrap:wrap;}
.user-nav a{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--text-secondary);transition:all var(--duration-fast);}
.user-nav a:hover{background:var(--bg);color:var(--text);}
.user-nav a.active{background:var(--primary);color:#fff;}

/* === 响应式 === */
@media(max-width:768px){
  .main-nav{display:none;}
  .nav-toggle{display:flex;}
  .hero{padding:var(--space-10) 0;}
  .hero-content h1{font-size:var(--font-size-3xl);}
  .project-grid,.person-grid,.product-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-3);}
  .product-detail{grid-template-columns:1fr;gap:var(--space-4);}
  .product-info{padding:0;}
  .page-header{padding:var(--space-6) 0;}
  .page-header h1{font-size:var(--font-size-2xl);}
  .filter-bar{top:64px;}
  .filter-bar .container{gap:var(--space-2);}
  .buy-area{flex-direction:column;}
  .section{padding:var(--space-10) 0;}
  .cart-item{flex-wrap:wrap;}
  .cart-footer{flex-direction:column;gap:var(--space-4);text-align:center;}
  .footer .container{flex-direction:column;gap:var(--space-4);text-align:center;}
  .empty-state{padding:var(--space-10) 0;}
  .detail-header{padding:var(--space-6) 0;}
  .detail-section .content{padding:var(--space-4);}
  .content-block{padding:var(--space-4);}
  .form-box{padding:var(--space-6);}
  .cart-item-actions .delete{font-size:var(--font-size-sm);}
}

@media(max-width:480px){
  .project-grid,.person-grid,.product-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-2);}
  .card-img,.product-img{height:140px;}
  .card-body,.product-body{padding:var(--space-3);}
  .card-body h3,.product-body h3{font-size:var(--font-size-sm);}
  .hero-content h1{font-size:var(--font-size-2xl);}
  .site-header .logo{font-size:var(--font-size-base);}
  .site-header .logo img{height:24px;}
  .product-info h1{font-size:var(--font-size-xl);}
}

/* === 页面过渡动画 === */
.fade-in{animation:fadeIn var(--duration-normal) var(--ease-out);}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

/* === 通用卡片（面板） === */
.panel{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);overflow:hidden;}
.panel-hd{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;}
.panel-bd{padding:var(--space-5);}
