﻿/* ============================================================
   app.css — 一品智造 补充样式 (不在 theme.css / ui.css 中)
   ============================================================ */

/* 底部固定容器 max-width */
.app{max-width:430px;margin:0 auto;min-height:100vh;padding-bottom:56px;padding-top:52px;position:relative}
/* 商家面板暖白渐变底色 — 匹配设计稿预览 */
#panel-m{background:linear-gradient(180deg,#FBF7F3 0%,#F6F8F9 100%);min-height:100%}
/* AI设计面板底色 — 匹配设计稿预览 */
#panel-a{background:#F6F8F9;min-height:100%}
/* 营销面板底色 — 匹配设计稿预览 */
#panel-k{background:#F6F8F9;min-height:100%}

/* Dark mode overrides */
/* Dark mode overrides */
body.dark{--bg-main:#1A0E0E;--bg-card:#2C1818;--border-light:#3D2020;--border-default:#3D2020;--text-primary:#E8E0E0;--text-secondary:#9A8A8A;--text-tertiary:#6B5050;--text-placeholder:#5A4040;--gray-100:#2A1818;--gray-200:#342020;--gray-300:#3D2828;--gray-400:#4A3030;--gray-500:#5A4040;--gray-600:#6B5050;--gray-700:#8A7070;--gray-900:#C0B0B0;--bg-base:#1A0E0E;--bg-surface:#2C1818;--bg-elevated:#332020;--bg-highlight:#3D1818;--bg-warm:#2A1A10;--bg-nature:#2A2210;--bg-hover:rgba(216,16,24,0.12);--color-primary-light:#3D1818;--color-restaurant:#E85D3A;--color-restaurant-light:#2A1A10;--color-agriculture:#D4940A;--color-agriculture-light:#1F1808;--color-tourism:#E04040;--color-tourism-light:#1F0E0E;--color-folk:#D44D8C;--color-folk-light:#2A0F1A;--color-ice:#FF8C42;--color-ice-light:#1F1208;--shadow-sm:0 1px 3px rgba(0,0,0,0.3);--shadow-card:0 2px 6px rgba(0,0,0,0.3),0 4px 20px rgba(0,0,0,0.2);--shadow-hover:0 6px 16px rgba(0,0,0,0.35),0 12px 48px rgba(0,0,0,0.25);--shadow-lg:0 10px 30px rgba(0,0,0,0.4),0 20px 70px rgba(0,0,0,0.25);--shadow-button:0 1px 3px rgba(0,0,0,0.25);--gradient-primary:linear-gradient(135deg,#A80C12,#D81018);--gradient-warm:linear-gradient(135deg,#D81018,#E85D3A);--gradient-nature:linear-gradient(135deg,#A07008,#D4940A);--gradient-ice:linear-gradient(135deg,#C04020,#FF8C42);--gradient-folk:linear-gradient(135deg,#A8306A,#D44D8C);--gradient-accent:linear-gradient(135deg,#A80C12,#FF6030)}
body.dark .app-nav,body.dark .app-tabbar{background:rgba(44,46,54,0.94)}
body.dark .menu-row:hover{background:var(--bg-hover)}
body.dark .toast-msg{background:#3a3d45;color:#e8eaed}
body.dark .skeleton{background:linear-gradient(90deg,#33353e 25%,#3a3d45 50%,#33353e 75%)}
body.dark .chip-item{background:#33353e;color:#9aa0a6}
body.dark .chip-item:hover{background:#3a3d45}
body.dark .chip-item.active{background:var(--color-primary);color:#fff}
/* 新增标签按钮 */
.chip-item.add-btn{border:1px dashed var(--border-light);background:none;color:var(--text-tertiary);cursor:pointer;font-size:11px;padding:4px 10px}
.chip-item.add-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--bg-hover)}
body.dark .section-gold{background:linear-gradient(135deg,#2a2210,#1f1a0a);border-top-color:rgba(202,138,4,0.12)}
body.dark .section-blue{background:linear-gradient(135deg,#0a1a2e,#0f1528);border-top-color:rgba(44,123,229,0.12)}
body.dark .theme-dot.active{border-color:var(--text-primary)!important}
body.dark .form-input{background:var(--bg-elevated);border-color:var(--border-light)}
body.dark .bg-dots span{background:var(--color-primary);opacity:0.12}
body.dark .modal-sheet{background:var(--bg-card)}
body.dark .search-panel{background:var(--bg-card)}

/* Dark mode overrides for v3 components */
body.dark .modal-sheet::-webkit-scrollbar-thumb,
body.dark #searchResults::-webkit-scrollbar-thumb{background:var(--gray-500)}
body.dark .login-preset-item{background:var(--bg-elevated)}
body.dark .login-preset-item:hover{background:var(--bg-highlight)}

/* ============================================================
   THEME COLOR VARIANTS — 6 套主题色系
   [data-theme] 由 settings.js 的 setTheme() 设置到 <html>
   ============================================================ */

/* --- 暖棕 Warm (中国红暖棕变体) --- */
[data-theme="warm"] {
  --color-primary: #C43A1A;
  --color-primary-hover: #A83018;
  --color-primary-active: #8A2812;
  --color-primary-light: #FEF0EE;
  --color-accent: #FF6030;
  --border-focus: #C43A1A;
  --gradient-primary: linear-gradient(135deg, #C43A1A, #E85D3A);
  --gradient-warm: linear-gradient(135deg, #E85D3A, #FFD070);
  --gradient-accent: linear-gradient(135deg, #C43A1A, #FF6030);
  --bg-highlight: #FEF0EE;
  --bg-warm: #FFF5F0;
  --bg-hover: rgba(196,58,26,0.06);
}

/* --- 赤金 Red-Gold (原林绿→赤金暖色) --- */
[data-theme="forest"] {
  --color-primary: #C84A0A;
  --color-primary-hover: #B03E08;
  --color-primary-active: #983206;
  --color-primary-light: #FEF5E8;
  --color-accent: #D4940A;
  --border-focus: #C84A0A;
  --gradient-primary: linear-gradient(135deg, #C84A0A, #D4940A);
  --gradient-warm: linear-gradient(135deg, #C84A0A, #FFD070);
  --gradient-accent: linear-gradient(135deg, #C84A0A, #D4940A);
  --bg-highlight: #FEF5E8;
  --bg-warm: #FFF8E8;
  --bg-hover: rgba(200,74,10,0.06);
}

/* --- 暖橙 Orange (原冰蓝→暖橙) --- */
[data-theme="ice"] {
  --color-primary: #E06A20;
  --color-primary-hover: #C85A18;
  --color-primary-active: #B04A10;
  --color-primary-light: #FFF0E0;
  --color-accent: #FF8C42;
  --border-focus: #E06A20;
  --gradient-primary: linear-gradient(135deg, #E06A20, #FF8C42);
  --gradient-warm: linear-gradient(135deg, #FF6030, #FFD070);
  --gradient-accent: linear-gradient(135deg, #E06A20, #FF8C42);
  --bg-highlight: #FFF0E0;
  --bg-warm: #FFF5E8;
  --bg-hover: rgba(224,106,32,0.06);
}

/* --- 花布红 Folk (花瓣粉红) --- */
[data-theme="folk"] {
  --color-primary: #D44D8C;
  --color-primary-hover: #C03D7A;
  --color-primary-active: #A83068;
  --color-primary-light: #FCEDF2;
  --color-accent: #E89292;
  --border-focus: #D44D8C;
  --gradient-primary: linear-gradient(135deg, #D44D8C, #E89292);
  --gradient-warm: linear-gradient(135deg, #D44D8C, #F093B0);
  --gradient-accent: linear-gradient(135deg, #D44D8C, #E89292);
  --bg-highlight: #FCEDF2;
  --bg-warm: #FEF5F8;
  --bg-hover: rgba(212,77,140,0.06);
}

/* --- 赛博红 Cyber (原赛博紫→赛博红) --- */
[data-theme="cyber"] {
  --color-primary: #D8305A;
  --color-primary-hover: #C0284A;
  --color-primary-active: #A8203A;
  --color-primary-light: #FDE8EE;
  --color-accent: #F06080;
  --border-focus: #D8305A;
  --gradient-primary: linear-gradient(135deg, #D8305A, #F06080);
  --gradient-warm: linear-gradient(135deg, #D8305A, #FF9060);
  --gradient-accent: linear-gradient(135deg, #D8305A, #F06080);
  --bg-highlight: #FDE8EE;
  --bg-warm: #FFF0F0;
  --bg-hover: rgba(216,48,90,0.06);
}

/* --- 冰雪白 Ice-White (暖白配红) --- */
[data-theme="ice-white"] {
  --color-primary: #D81018;
  --color-primary-hover: #C40E16;
  --color-primary-active: #A80C12;
  --color-primary-light: #FEF0EE;
  --color-accent: #E85D3A;
  --border-focus: #D81018;
  --gradient-primary: linear-gradient(135deg, #D81018, #E85D3A);
  --gradient-warm: linear-gradient(135deg, #E85D3A, #FFD070);
  --gradient-accent: linear-gradient(135deg, #D81018, #E85D3A);
  --bg-highlight: #FEF0EE;
  --bg-warm: #FFFAF5;
  --bg-hover: rgba(216,16,24,0.06);
}

/* --- 各主题深色模式覆盖 (保持主题主色，覆盖背景色) --- */
body.dark[data-theme="warm"] {
  --color-primary-light: #3D1818;
  --bg-highlight: #3D1818;
  --bg-warm: #2A1A10;
  --bg-hover: rgba(139,69,19,0.12);
}
body.dark[data-theme="forest"] {
  --color-primary-light: #1F1808;
  --bg-highlight: #1F1808;
  --bg-warm: #1A1408;
  --bg-nature: #1A1408;
  --bg-hover: rgba(212,148,10,0.12);
}
body.dark[data-theme="ice"] {
  --color-primary-light: #1F1208;
  --bg-highlight: #1F1208;
  --bg-warm: #1A1008;
  --bg-hover: rgba(255,140,66,0.12);
}
body.dark[data-theme="folk"] {
  --color-primary-light: #2A0F1A;
  --bg-highlight: #2A0F1A;
  --bg-warm: #200A14;
  --bg-hover: rgba(212,77,140,0.12);
}
body.dark[data-theme="cyber"] {
  --color-primary-light: #2A0E1A;
  --bg-highlight: #2A0E1A;
  --bg-warm: #200A14;
  --bg-hover: rgba(212,77,140,0.12);
}
body.dark[data-theme="ice-white"] {
  --color-primary-light: #2A1208;
  --bg-highlight: #2A1208;
  --bg-warm: #200E08;
  --bg-hover: rgba(216,16,24,0.12);
}

/* 工具类: d-none / flex-row / badge-dot / flex utilities */
.d-none{display:none!important}
.flex{display:flex}
.flex-row{display:flex;align-items:center;gap:12px}
.flex-wrap{flex-wrap:wrap}
.flex-between{display:flex;justify-content:space-between;align-items:center}
.gap-xs{gap:4px}.gap-sm{gap:8px}.gap-md{gap:12px}.gap-lg{gap:16px}
.text-primary{color:var(--text-primary)}
.text-secondary{color:var(--text-secondary)}
.text-tertiary{color:var(--text-tertiary)}
.fw-500{font-weight:500}
.fw-600{font-weight:600}
.fw-700{font-weight:700}
.fw-800{font-weight:800}
.fs-9{font-size:9px}.fs-10{font-size:10px}.fs-11{font-size:11px}.fs-12{font-size:12px}.fs-13{font-size:13px}.fs-14{font-size:14px}.fs-15{font-size:15px}.fs-16{font-size:16px}
.lh-compact{line-height:1.6}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.icon-box{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.icon-box-lg{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.panel-header{background:linear-gradient(135deg,var(--bg-highlight),var(--bg-card));border:none;border-radius:var(--radius-lg);padding:16px;text-align:center;margin-bottom:10px}
.badge-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--color-error);color:#fff;font-size:7px;font-weight:700;border:2px solid var(--bg-card);margin-left:-6px;margin-bottom:-8px}

/* 导航标题 — 绝对居中，不受 nav-back / nav-actions 不对称影响 */
.nav-title {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  pointer-events: none;
}
.nav-title .nc {
  display: inline-block;
}

/* app.css 不重复定义 .nav-btn，ui.css 已有 */

/* 模式切换按钮 (商家 / AI设计 / 营销) */
.mode-switcher{position:sticky;top:52px;z-index:99;background:var(--bg-base);padding:6px 12px 0;box-shadow:0 1px 0 rgba(0,0,0,0.04)}
.mode-switcher-inner{display:flex;gap:2px;background:var(--bg-elevated);border-radius:var(--radius-md);padding:3px}
.mode-switcher-title{text-align:center;font-size:11px;font-weight:600;color:var(--text-secondary);padding:4px 0 6px;letter-spacing:.02em}
.mode-btn{flex:1;padding:8px;border:none;border-radius:var(--radius-sm);font-size:11px;font-weight:600;cursor:pointer;transition:all .25s;font-family:inherit;color:var(--text-secondary);background:transparent;display:flex;align-items:center;justify-content:center;gap:4px}
.mode-btn i{font-size:14px;transition:transform .3s}
.mode-btn:active{transform:scale(0.95);opacity:.7}
.mode-btn.active{background:var(--bg-card);color:var(--color-primary);box-shadow:0 1px 3px rgba(0,0,0,0.06)}
.mode-btn.active i{transform:scale(1.1)}

/* 加载按钮旋转动画 */
.spinner-border{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinnerSpin .6s linear infinite;vertical-align:middle;margin-right:4px}
.spinner-border-sm{width:12px;height:12px}
@keyframes spinnerSpin{to{transform:rotate(360deg)}}

/* 三点跳动 loading */
.dot-loading{display:flex;gap:4px;justify-content:center;align-items:center;padding:16px}
.dot-loading span{width:8px;height:8px;border-radius:50%;background:var(--color-primary);animation:dotBounce 1.4s ease-in-out infinite both}
.dot-loading span:nth-child(1){animation-delay:-0.32s}
.dot-loading span:nth-child(2){animation-delay:-0.16s}
@keyframes dotBounce{0%,80%,100%{transform:scale(0)}40%{transform:scale(1)}}

/* 震动动画 */
.shake{animation:shake .5s ease-in-out}
@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}

/* 全屏遮罩 + 模态框 */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:2000;display:none;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.modal-overlay.active{display:block}
.modal-sheet{position:fixed;bottom:0;left:50%;transform:translateX(-50%);max-width:430px;width:100%;z-index:2001;background:var(--bg-card);border-radius:var(--radius-3xl) var(--radius-3xl) 0 0;padding:16px 20px calc(24px + var(--tab-height));display:none;max-height:calc(100vh - 52px - 56px);overflow-y:auto;clip-path:inset(0 round 20px 20px 0 0)}
.modal-sheet.active{display:block}
.modal-sheet .handle{width:40px;height:4px;border-radius:4px;background:var(--border-default);margin:0 auto 16px}
.modal-sheet .modal-title{font-weight:700;font-size:16px;margin-bottom:12px}

/* Tab 切换面板 — GSAP就绪后覆盖CSS动画避免冲突 */
.tab-panel{display:none;padding:0 var(--sp-base) var(--sp-base)}
.tab-panel.active{display:block;animation:fi .35s ease}
.tab-panel.gsap-ready.active{animation:none}
@keyframes fi{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}

/* 模态开关样式 (toggle) */
.toggle-btn{cursor:pointer;width:44px;height:26px;border-radius:var(--radius-3xl);background:var(--gray-300);position:relative;transition:.35s;flex-shrink:0;border:none;padding:0}
.toggle-btn.on{background:var(--color-primary)}
.toggle-btn::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.35s cubic-bezier(.34,1.56,.64,1);box-shadow:0 1px 4px rgba(0,0,0,0.15)}
.toggle-btn.on::after{left:21px}

/* 平台选择卡片 */
.platform-card{background:var(--bg-card);border:none;border-radius:var(--radius-xl);padding:14px 10px;text-align:center;cursor:pointer;transition:all .3s}
.platform-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.platform-card:active{transform:scale(0.96)}
.platform-card.selected{background:var(--bg-warm);box-shadow:0 4px 16px color-mix(in srgb, var(--color-primary) 15%, transparent)}
.platform-card .platform-icon{width:40px;height:40px;border-radius:var(--radius-lg);margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.platform-card:hover .platform-icon{transform:scale(1.1) rotate(-5deg)}
.platform-card.selected .platform-icon{transform:scale(1.15)}
.platform-card .platform-label{font-weight:600;font-size:11px}

/* 搜索面板 */
.search-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.35);z-index:1100;display:none;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.search-overlay.active{display:block}
.search-panel{position:fixed;top:0;left:50%;transform:translateX(-50%);max-width:430px;width:100%;z-index:1101;background:var(--bg-card);padding:16px 20px;box-shadow:0 12px 40px rgba(0,0,0,0.1);display:none;border-radius:0 0 var(--radius-2xl) var(--radius-2xl)}
.search-panel.active{display:block}

/* 横向滚动卡片选中态 */
.hscroll-item.selected{background:var(--bg-highlight);box-shadow:var(--shadow-card)}

/* 搜索区域结果 */
.search-hot-title{font-size:10px;color:var(--text-tertiary);font-weight:600;padding:4px 0}
.search-hot-tags{display:flex;gap:6px;flex-wrap:wrap}
.search-input-row{display:flex;gap:8px;margin-bottom:10px}
.search-cancel-btn{white-space:nowrap;background:none;border:none;color:var(--color-primary);font-weight:600;font-size:13px;cursor:pointer;padding:0 8px}
.search-results{max-height:280px;overflow-y:auto}
.search-result-item{padding:12px 14px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:10px;border-radius:var(--radius-md);transition:all .2s}
.search-result-item:hover{background:var(--bg-hover);transform:translateX(6px)}
.search-result-item:active{transform:translateX(4px) scale(0.97)}

/* ===== CRITICAL LAYOUT: 全屏 Hero 双栏区域 ===== */
.hero-mini{position:relative;border-radius:var(--radius-xl);overflow:hidden;margin:8px 0;color:#fff;cursor:default}
.hero-mini-bg{position:absolute;inset:0;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));z-index:0}
.hero-mini-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 50% at 30% 0%,rgba(255,255,255,0.12),transparent 70%);pointer-events:none}
.hero-mini-content{position:relative;z-index:1;padding:var(--sp-lg);display:flex;align-items:center;gap:var(--sp-base)}
.hero-mini-info{flex:1;min-width:0}
.hero-mini-name{font-weight:700;font-size:17px;margin-bottom:2px}
.hero-mini-sub{font-size:10px;opacity:.75;display:flex;align-items:center;gap:4px}

/* ===== SECTION HEADER ===== */
.section-header{display:flex;align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) 0 var(--sp-xs);margin-top:var(--sp-xs)}
.section-header h3{font-weight:600;font-size:13px;flex:1;min-width:0;margin:0}
.section-header .more{font-size:10px;color:var(--text-tertiary);font-weight:400;cursor:pointer;transition:color .2s;white-space:nowrap}
.section-header .more:hover{color:var(--color-primary)}
.section-header .more i{font-size:9px;margin-left:2px}

/* ===== CARD LAYOUT VARIANTS ===== */

/* -- 统计角色卡 -- */
.stat-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--sp-sm)}
.stat-item{background:var(--bg-card);border:none;border-radius:var(--radius-lg);padding:var(--sp-md);text-align:center;transition:all .25s}
.stat-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.stat-item .stat-val{font-size:22px;font-weight:800;line-height:1.2;letter-spacing:-.02em}
.stat-item .stat-lbl{font-size:10px;color:var(--text-tertiary);margin-top:2px;font-weight:500}
.stat-item .stat-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;margin:0 auto var(--sp-xs)}

/* -- 快捷操作入口 -- */
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-sm)}
.quick-card{background:var(--bg-card);border:none;border-radius:var(--radius-xl);padding:var(--sp-md);text-align:center;cursor:pointer;transition:all .25s}
.quick-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.quick-card:active{transform:scale(0.96)}
.quick-card .quick-icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;margin:0 auto var(--sp-xs)}
.quick-card .quick-label{font-weight:600;font-size:11px;margin-bottom:2px}
.quick-card .quick-desc{font-size:8px;color:var(--text-tertiary)}

/* -- 项目横向滑动卡 -- */
.project-scroll{display:flex;gap:var(--sp-sm);overflow-x:auto;padding:0 0 var(--sp-sm);-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.project-scroll::-webkit-scrollbar{display:none}
.project-scroll-card{flex:0 0 200px;background:var(--bg-card);border:none;border-radius:var(--radius-xl);padding:var(--sp-md);cursor:pointer;transition:all .3s}
.project-scroll-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.project-scroll-card:active{transform:scale(0.97)}
.project-scroll-card .ps-header{display:flex;align-items:flex-start;gap:var(--sp-sm);margin-bottom:var(--sp-sm)}
.project-scroll-card .ps-icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff;flex-shrink:0}
.project-scroll-card .ps-name{font-size:12px;font-weight:600;line-height:1.3;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.project-scroll-card .ps-sub{font-size:9px;color:var(--text-tertiary);margin-top:2px}
.project-scroll-card .ps-progress{height:4px;background:var(--border-light);border-radius:4px;overflow:hidden;margin-top:var(--sp-sm)}
.project-scroll-card .ps-progress div{height:100%;border-radius:4px;transition:width 1s}

/* -- 时间轴微卡片 -- */
.timeline-compact{padding-left:20px;position:relative;margin:var(--sp-sm) 0}
.timeline-compact::before{content:'';position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--border-light);border-radius:1px}
.tl-item{position:relative;padding:0 0 var(--sp-sm) 14px}
.tl-item:last-child{padding-bottom:0}
.tl-dot{position:absolute;left:-16px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--border-default);border:2px solid var(--bg-card);z-index:1}
.tl-dot.green{background:var(--color-success);border-color:var(--color-success);box-shadow:0 0 0 2px rgba(52,199,89,0.15)}
.tl-dot.blue{background:var(--color-primary);border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-primary) 18%, transparent)}
.tl-text{font-size:11px;font-weight:500;color:var(--text-primary)}
.tl-sub{font-size:9px;color:var(--text-tertiary);margin-top:1px}

/* -- Pipeline 流水线 -- */
.pipeline-wrap{background:var(--bg-card);border:none;border-radius:var(--radius-xl);padding:var(--sp-base);margin-bottom:var(--sp-sm)}
.pipeline-flow{display:flex;align-items:center;justify-content:center;gap:2px;padding:6px 0}
.pipe-node{display:flex;flex-direction:column;align-items:center;gap:2px;flex-shrink:0;padding:6px 5px;border-radius:var(--radius-md);background:var(--bg-elevated);transition:all .3s;min-width:50px;width:50px;cursor:pointer;border:1px solid transparent}
.pipe-node:hover{background:var(--bg-card);transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--border-light)}
.pipe-node .pipe-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:16px;transition:transform .3s}
.pipe-node:hover .pipe-icon{transform:scale(1.1)}
.pipe-node .pipe-name{font-size:12px;font-weight:700;color:var(--text-secondary);white-space:nowrap;letter-spacing:0.01em}
.pipe-node .pipe-count{font-size:12px;font-weight:800;min-width:20px;height:20px;line-height:20px;text-align:center;border-radius:var(--radius-md);margin-top:-1px;transition:transform .3s,background .3s}
.pipe-node .pipe-count.has-count{background:currentColor;color:#fff}
.pipe-node .pipe-count:not(.has-count){background:transparent;border:1px solid var(--border-light);color:var(--text-tertiary)}
.pipe-node.pipe-empty{opacity:1}
.pipe-node.pipe-empty .pipe-count:not(.has-count){background:var(--bg-elevated);border:1px solid var(--border-light);color:var(--text-tertiary);font-size:8px;font-weight:600}
.pipe-node.pipe-active{border-color:var(--color-primary);background:var(--bg-highlight);box-shadow:0 0 0 1px var(--color-primary)}
.pipe-node.pipe-active .pipe-count{transform:scale(1.15)}
.pipe-arrow{color:var(--text-tertiary);font-size:10px;flex-shrink:0;opacity:0.2}

/* -- Pipeline header (独立于 section-header) -- */
.pipeline-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-sm) 0 var(--sp-xs);margin-top:var(--sp-xs)}
.pipeline-header-left{font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px}
.pipeline-hint{font-size:9px;color:var(--text-tertiary);font-weight:400}
.pipe-reset{font-size:10px;color:var(--text-tertiary);cursor:pointer;display:inline-flex;align-items:center;gap:3px;padding:4px 8px;border-radius:var(--radius-sm);transition:all .2s}
.pipe-reset:hover{color:var(--color-primary);background:var(--bg-highlight)}

/* -- Sub-filter (流水线子阶段) -- */
.subfilter-wrap{display:flex;gap:6px;overflow-x:auto;padding:6px 0 2px;-webkit-overflow-scrolling:touch}
.subfilter-wrap::-webkit-scrollbar{display:none}
.subfilter-wrap .chip-item{flex-shrink:0;font-size:11px;padding:4px 12px;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);border:1px solid transparent;cursor:pointer;transition:all .2s;font-weight:500;white-space:nowrap}
.subfilter-wrap .chip-item:hover{background:var(--bg-card);color:var(--text-primary)}
.subfilter-wrap .chip-item.active{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}

/* -- Orders Summary (底部统计精简版) -- */
.orders-summary{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:6px;padding:var(--sp-sm) 0;margin-bottom:var(--sp-xs)}
.orders-summary .summary-item{background:var(--bg-card);border-radius:var(--radius-lg);padding:10px 8px;text-align:center;cursor:default}
.orders-summary .summary-label{font-size:9px;color:var(--text-tertiary);margin-bottom:2px}
.orders-summary .summary-val{font-size:15px;font-weight:700;display:block}

/* -- 产品卡 -- */
.prod-card{background:var(--bg-card);border:none;border-radius:var(--radius-xl);padding:var(--sp-base);cursor:pointer;transition:all .3s;position:relative}
.prod-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.prod-card:active{transform:scale(0.98)}
.prod-card .prod-accent{position:absolute;top:0;left:0;width:3px;height:100%;border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.prod-card .prod-header{display:flex;align-items:flex-start;gap:var(--sp-sm);margin-bottom:var(--sp-sm)}
.prod-card .prod-icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff;flex-shrink:0}
.prod-card .prod-title{font-size:12px;font-weight:600;color:var(--text-primary)}
.prod-card .prod-sub{font-size:9px;color:var(--text-tertiary);margin-top:1px}
.prod-card .prod-meta{display:flex;gap:var(--sp-sm);font-size:9px;color:var(--text-tertiary);margin-top:var(--sp-xs)}
.prod-card .prod-meta span{display:flex;align-items:center;gap:3px}

/* -- 版本方案卡 -- */
.version-card{background:var(--bg-card);border:none;border-left:3px solid var(--color-primary);border-radius:var(--radius-xl);padding:var(--sp-base);cursor:pointer;transition:all .3s}
.version-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.version-card .ver-tag{font-size:16px;font-weight:800;letter-spacing:-.03em;line-height:1}
.version-card .ver-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin-bottom:4px}
.version-card .ver-slogan{font-size:11px;color:var(--color-primary);font-style:italic;margin:4px 0}
.version-card .ver-colors{display:flex;gap:4px;margin-top:6px}
.version-card .ver-colors span{flex:1;height:16px;border-radius:var(--radius-sm)}

/* -- 版本详情布局优化 -- */
.version-card .ver-char{font-size:11px;color:var(--text-secondary);margin-top:var(--sp-sm);line-height:1.7;padding:var(--sp-sm) var(--sp-xs)}
.version-card .ver-char i.bi-quote{color:var(--color-primary);opacity:.6;margin-right:2px}
.version-card .ver-prods{display:flex;gap:var(--sp-xs);flex-wrap:wrap;margin-top:var(--sp-xs)}
.version-card .ver-prod-item{display:inline-flex;align-items:center;gap:var(--sp-xs);padding:3px 8px;background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border-light);cursor:default}
.version-card .ver-prod-item .sample-thumb{width:20px;height:20px;border-radius:var(--radius-sm);object-fit:cover;cursor:pointer;flex-shrink:0}
.version-card .ver-prod-item .chip-item{padding:1px 4px;font-size:11px;border:none;background:transparent}
.version-card .ver-prod-item .chip-item.active{background:transparent;color:var(--color-primary);font-weight:600}
.version-card .ver-prod-price{font-size:9px;color:var(--text-tertiary);white-space:nowrap}
.version-card .ver-prod-add{opacity:0.6;transition:opacity .25s;cursor:pointer}
.version-card .ver-prod-add:hover{opacity:1}
.version-card .ver-prod-add .sample-thumb{width:20px;height:20px;border-radius:var(--radius-sm);border:1px dashed var(--border-light);transition:all .25s;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);font-size:20px;color:var(--text-tertiary);cursor:pointer;flex-shrink:0}
.version-card .ver-prod-add:hover .sample-thumb{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 4%,var(--bg-subtle));color:var(--color-primary)}
.version-card .ver-prod-add .chip-item{border:1px dashed var(--border-light);background:none;color:var(--text-tertiary)}
.version-card .ver-prod-add:hover .chip-item{border-color:var(--color-primary);color:var(--color-primary)}
.version-card .ver-actions{display:flex;gap:var(--sp-xs);margin-top:var(--sp-sm)}
.version-card .ver-actions .btn{flex:1;font-size:11px;height:30px}
.version-card .ver-process{display:flex;gap:var(--sp-xs);margin-top:var(--sp-xs);flex-wrap:wrap}
.version-card .ver-process .tag{background:var(--bg-highlight);color:var(--color-primary);border-color:transparent;cursor:pointer;font-size:10px;padding:3px 10px}
.version-card .ver-estimate{background:var(--bg-warm);border-radius:var(--radius-md);padding:var(--sp-sm) var(--sp-md);margin-top:var(--sp-sm)}
.version-card .ver-estimate-title{font-size:10px;font-weight:600;margin-bottom:var(--sp-xs)}
.version-card .ver-estimate-title i{color:var(--color-primary)}
.version-card .ver-estimate-row{display:flex;justify-content:space-between;font-size:10px;color:var(--text-secondary);margin-top:var(--sp-xxs)}
.version-card .ver-estimate-row span:last-child{font-weight:600;color:var(--text-primary)}
.version-card .ver-estimate-divider{border-top:1px solid var(--border-light);margin:var(--sp-xs) 0}
.version-card .ver-estimate-total{display:flex;justify-content:space-between;font-size:12px}
.version-card .ver-estimate-total span:first-child{font-weight:600}
.version-card .ver-estimate-total span:last-child{font-weight:800;color:var(--color-primary)}
.version-card .ver-order-status{margin-top:var(--sp-sm);padding:var(--sp-sm) var(--sp-md);background:var(--bg-warm);border-radius:var(--radius-md);font-size:11px;color:var(--text-secondary)}
.version-card .ver-order-status i.bi-check-circle-fill{color:var(--color-success)}
.version-card .ver-order-status a{color:var(--color-primary);margin-left:var(--sp-xs)}

@media(max-width:360px){
  .version-card .ver-prod-item .chip-item{font-size:10px}
  .version-card .ver-actions .btn{font-size:10px}
}

/* -- 矩阵对比表 -- */
.matrix-wrap{background:var(--bg-card);border:none;border-radius:var(--radius-xl);padding:var(--sp-base);overflow-x:auto}
.matrix-grid{display:grid;gap:3px;align-items:center;min-width:280px}
.matrix-label{font-size:8px;color:var(--text-tertiary);font-weight:600;text-align:right;padding-right:6px}
.matrix-cell{height:20px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:9px;transition:all .2s}
.matrix-cell.full{background:var(--bg-highlight);color:var(--color-primary)}
.matrix-cell.partial{background:var(--bg-warm);color:var(--color-warning)}
.matrix-cell.empty{background:var(--bg-elevated);color:var(--text-tertiary)}
.matrix-cell.high{background:rgba(52,199,89,0.12);color:var(--color-success)}
.matrix-header{font-size:7px;color:var(--text-tertiary);font-weight:600;text-align:center;padding-bottom:2px;text-transform:uppercase;letter-spacing:.03em}

/* -- 流程步骤圈 -- */
.process-row{display:flex;gap:var(--sp-sm);margin:var(--sp-sm) 0;overflow-x:auto}
.process-step{flex:1;min-width:70px;text-align:center;position:relative}
.process-step .step-num{width:28px;height:28px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;margin:0 auto 4px;transition:all .3s}
.process-step .step-label{font-size:8px;color:var(--text-tertiary);font-weight:500;white-space:nowrap}
.process-step.active .step-num{background:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent);transform:scale(1.1)}
.process-step.done .step-num{background:var(--color-success)}

/* -- 密集信息行 -- */
.dense-card{display:flex;align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-sm);background:var(--bg-card);border:none;border-radius:var(--radius-lg);margin-bottom:var(--sp-xs);cursor:pointer;transition:all .2s}
.dense-card:hover{transform:translateX(4px);box-shadow:var(--shadow-sm)}
.dense-card:active{transform:scale(0.98)}
.dense-card .dense-icon{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;flex-shrink:0}
.dense-card .dense-info{flex:1;min-width:0}
.dense-card .dense-title{font-size:12px;font-weight:600}
.dense-card .dense-sub{font-size:9px;color:var(--text-tertiary)}
.dense-card .dense-tag{font-size:8px;padding:1px 6px;border-radius:var(--radius-sm);font-weight:500;flex-shrink:0}

/* -- 文化元素卡 -- */
.culture-card{background:var(--bg-card);border:none;border-radius:var(--radius-xl);padding:var(--sp-base);cursor:default;transition:all .25s}
.culture-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.culture-card .culture-header{display:flex;align-items:center;gap:var(--sp-sm);margin-bottom:var(--sp-sm)}
.culture-card .culture-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;flex-shrink:0}
.culture-card .culture-name{font-weight:600;font-size:12px}
.culture-card .culture-tags{display:flex;gap:3px;flex-wrap:wrap}
.culture-card .culture-tags span{font-size:8px;padding:1px 6px;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-tertiary)}

/* -- 环形进度 -- */
.circle-progress{position:relative;display:inline-flex;align-items:center;justify-content:center}
.circle-progress svg{transform:rotate(-90deg)}
.circle-progress .cp-bg{fill:none;stroke:var(--border-light)}
.circle-progress .cp-fill{fill:none;stroke-linecap:round;transition:stroke-dashoffset 0.8s ease}
.circle-progress .cp-text{position:absolute;font-size:10px;font-weight:700;color:var(--text-primary)}

/* -- Toast 增强 + 滑动指示 -- */
.toast-msg{display:flex!important;align-items:center;gap:8px;touch-action:pan-y;will-change:transform,opacity;user-select:none}

/* -- 提示气泡按钮 -- */
.tip-btn{position:fixed;bottom:70px;right:10px;z-index:90;width:36px;height:36px;border-radius:50%;border:none;background:var(--bg-card);color:var(--text-secondary);font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,0.1);transition:all .3s;font-family:inherit}
.tip-btn:hover{background:var(--color-primary);color:#fff;transform:scale(1.1);box-shadow:0 4px 16px color-mix(in srgb, var(--color-primary) 25%, transparent)}
.tip-btn:active{transform:scale(0.92)}
.tip-popup{position:fixed;bottom:116px;right:10px;z-index:91;max-width:280px;background:var(--bg-card);border:none;border-radius:var(--radius-xl);padding:14px 16px;box-shadow:0 8px 32px rgba(0,0,0,0.12);display:none}
.tip-popup.active{display:block;animation:fi .3s ease}
.tip-popup .tip-body{font-size:12px;line-height:1.7;color:var(--text-primary)}
.tip-popup .tip-body i{color:var(--color-primary);margin-right:4px}
.tip-popup .tip-close{font-size:10px;color:var(--text-tertiary);cursor:pointer;float:right;padding:2px 6px}
.tip-popup .tip-close:hover{color:var(--text-primary)}

/* -- Touch ripple -- */
.ripple-btn{position:relative;overflow:hidden}

/* -- 主题色选择圆点 -- */
.theme-dot{display:inline-block;width:28px;height:28px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .2s}
.theme-dot.active{border-color:var(--text-primary)!important;transform:scale(1.15);box-shadow:0 2px 8px rgba(0,0,0,0.15)}
.theme-dot-dft{background:linear-gradient(135deg,#D81018,#E85D3A)}
.theme-dot-warm{background:linear-gradient(135deg,#C43A1A,#E85D3A)}
.theme-dot-forest{background:linear-gradient(135deg,#C84A0A,#D4940A)}
.theme-dot-ice{background:linear-gradient(135deg,#E06A20,#FF8C42)}
.theme-dot-folk{background:linear-gradient(135deg,#D44D8C,#E89292)}
.theme-dot-cyber{background:linear-gradient(135deg,#D8305A,#F06080)}
.theme-dot-ice-white{background:linear-gradient(135deg,#D81018,#E85D3A)}

/* -- 新手引导蒙层 -- */
.onboard-overlay{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,0.55);display:none}
.onboard-overlay.active{display:block}
.onboard-dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--bg-card);border-radius:var(--radius-2xl);padding:28px 24px 20px;max-width:320px;width:90vw;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,0.2)}
.onboard-dialog .onb-icon{width:48px;height:48px;border-radius:var(--radius-lg);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;margin:0 auto 12px}
.onboard-dialog .onb-title{font-weight:700;font-size:15px;margin-bottom:6px}
.onboard-dialog .onb-desc{font-size:12px;color:var(--text-secondary);line-height:1.7;margin-bottom:16px}
.onboard-dialog .onb-actions{display:flex;gap:8px;justify-content:center}
.onboard-dialog .onb-dots{display:flex;gap:6px;justify-content:center;margin-bottom:14px}
.onboard-dialog .onb-dots span{width:6px;height:6px;border-radius:50%;background:var(--border-default);transition:all .3s}
.onboard-dialog .onb-dots span.active{width:20px;border-radius:6px;background:var(--color-primary)}
.onboard-step-highlight{position:absolute;border-radius:var(--radius-lg);box-shadow:0 0 0 4px color-mix(in srgb, var(--color-primary) 40%, transparent),0 0 0 9999px rgba(0,0,0,0.55);z-index:10000;transition:all .4s;pointer-events:none}

/* ===== 丰富动效系统 ===== */

/* -- 旋转环形进度条 -- */
.spinner-ring{display:inline-flex;align-items:center;justify-content:center;position:relative}
.spinner-ring svg{transform:rotate(-90deg)}
.spinner-ring .ring-bg{fill:none;stroke:var(--border-light)}
.spinner-ring .ring-fill{fill:none;stroke:var(--color-primary);stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.22,1,.36,1)}
.spinner-ring .ring-text{position:absolute;font-size:14px;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}

/* -- 全局卡片交错入场 -- */
.stagger-in,.stagger-in-left,.stagger-in-right{}

/* -- 数字跳动动画 -- */
.num-pop{display:inline-block;transition:all .3s}
.num-pop.pop{animation:numPop .4s cubic-bezier(.34,1.56,.64,1)}
@keyframes numPop{0%{transform:scale(1)}50%{transform:scale(1.25)}100%{transform:scale(1)}}

/* -- 玻璃态卡片微光 -- */
.glow-card{position:relative;overflow:hidden}
.glow-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,0.08) 50%,transparent 60%);transform:translateX(-100%);transition:transform .6s;pointer-events:none}
.glow-card:hover::before{transform:translateX(100%)}

/* -- 页面装饰粒子背景 -- */
.bg-dots{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.bg-dots span{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--color-primary);opacity:0.08}.bg-dots span:nth-child(1){top:10%;left:5%}
.bg-dots span:nth-child(2){top:25%;left:80%}
.bg-dots span:nth-child(3){top:50%;left:15%}
.bg-dots span:nth-child(4){top:70%;left:70%}
.bg-dots span:nth-child(5){top:85%;left:40%}
.bg-dots span:nth-child(6){top:40%;left:90%}

/* -- 减少留白: 紧凑间距 (基于 --sp-* 变量) -- */
.stat-row{gap:var(--sp-sm)}
.stat-item{padding:var(--sp-sm) var(--sp-xs)}
.stat-item .stat-val{font-size:20px}
.stat-item .stat-icon{width:28px;height:28px;font-size:13px}
.quick-grid{gap:var(--sp-sm)}
.quick-card{padding:var(--sp-sm) var(--sp-xs)}
.quick-card .quick-icon{width:32px;height:32px;font-size:16px}
/* .section-header consolidated above */
.project-scroll-card{flex:0 0 180px;padding:10px}
.project-scroll-card .ps-icon{width:30px;height:30px;font-size:14px}
.project-scroll-card .ps-name{font-size:11px}
.prod-card{padding:10px}
.prod-card .prod-icon{width:30px;height:30px;font-size:14px}
.prod-card .prod-title{font-size:11px}
.version-card{padding:10px}
.dense-card{padding:8px 10px}
.dense-card .dense-icon{width:24px;height:24px;font-size:11px}
.dense-card .dense-title{font-size:11px}
.culture-card{padding:10px}
.card-item{padding:12px}
.circle-progress svg{display:block}
/* Pipeline compact on small screens */
.pipe-node{padding:8px 6px;min-width:56px;width:56px}
.pipe-node .pipe-icon{width:28px;height:28px;font-size:14px;border-radius:var(--radius-sm)}
.pipe-node .pipe-name{font-size:10px}
.pipe-node .pipe-count{font-size:11px;min-width:18px;height:18px;line-height:18px}
.pipe-arrow{font-size:9px}
.pipeline-flow{gap:2px;padding:4px 0}
.orders-summary{gap:4px}
.orders-summary .summary-item{padding:8px 4px}
.orders-summary .summary-val{font-size:13px}

/* ===== 底部 Tab 栏 - 三模式独特样式 ===== */

/* --- 商家模式 --- */
.app-tabbar.mode-m{justify-content:space-evenly}
.app-tabbar.mode-m .tab-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;background:none;border:none;color:var(--text-tertiary);font-size:9px;cursor:pointer;padding:6px 4px 4px;min-width:64px;min-height:44px;transition:color .25s}
.app-tabbar.mode-m .tab-item i:not(.bi-yipin){font-size:22px}
.app-tabbar.mode-m .tab-item i.bi-yipin{font-size:20px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),color .2s}
.app-tabbar.mode-m .tab-item.active{color:var(--color-primary)!important}
.app-tabbar.mode-m .tab-item.active i{color:var(--color-primary)!important;animation:tabPop .4s cubic-bezier(.34,1.56,.64,1)}
.app-tabbar.mode-m .tab-item .tab-badge{position:absolute;top:0;right:4px;min-width:16px;height:14px;border-radius:var(--radius-sm);background:var(--color-error);color:#fff;font-size:8px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;border:1.5px solid var(--bg-card)}
.app-tabbar.mode-m .tab-item .tab-badge.zero{display:none}

/* --- AI设计模式 --- */
.app-tabbar.mode-a{justify-content:center;gap:6px;padding:0 8px}
.app-tabbar.mode-a .tab-item{display:flex;flex-direction:column;align-items:center;gap:1px;background:none;border:none;color:var(--text-tertiary);font-size:9px;cursor:pointer;padding:8px 6px 4px;min-width:44px;min-height:44px;transition:color .25s;position:relative}
.app-tabbar.mode-a .tab-item i:not(.tab-fab i){font-size:20px}transition:transform .3s cubic-bezier(.34,1.56,.64,1),color .2s}
.app-tabbar.mode-a .tab-item.active{color:var(--color-primary)!important}
.app-tabbar.mode-a .tab-item.active i{color:var(--color-primary)!important;animation:tabPop .4s cubic-bezier(.34,1.56,.64,1)}
.app-tabbar.mode-a .tab-item.tab-fab{margin-top:-16px;min-width:64px}
.app-tabbar.mode-a .tab-item.tab-fab i{width:48px;height:48px;border-radius:50%;background:var(--gradient-primary);color:#fff!important;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 4px 16px color-mix(in srgb, var(--color-primary) 35%, transparent);transition:all .3s cubic-bezier(.34,1.56,.64,1)}
.app-tabbar.mode-a .tab-item.tab-fab.active i{box-shadow:0 6px 24px color-mix(in srgb, var(--color-primary) 50%, transparent);transform:scale(1.08)}
.app-tabbar.mode-a .tab-item.tab-fab span{margin-top:6px}
@keyframes fabPulse{0%,100%{box-shadow:0 4px 16px color-mix(in srgb, var(--color-primary) 35%, transparent)}50%{box-shadow:0 4px 24px color-mix(in srgb, var(--color-primary) 55%, transparent)}}
.app-tabbar.mode-a .tab-item.tab-fab i{animation:fabPulse 3s ease-in-out infinite}

/* --- 营销模式 --- */
.app-tabbar.mode-k{justify-content:center;gap:8px;padding:8px 12px}
.app-tabbar.mode-k .tab-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--bg-elevated);border:none;border-radius:var(--radius-md);color:var(--text-tertiary);font-size:9px;cursor:pointer;padding:8px 8px;min-height:40px;transition:all .25s}
.app-tabbar.mode-k .tab-item i{font-size:18px}transition:transform .3s cubic-bezier(.34,1.56,.64,1),color .2s}
.app-tabbar.mode-k .tab-item span{font-size:8px}
.app-tabbar.mode-k .tab-item.active{color:var(--color-primary)!important}
.app-tabbar.mode-k .tab-item.active i{color:var(--color-primary)!important;animation:tabPop .4s cubic-bezier(.34,1.56,.64,1)}
.app-tabbar.mode-k .tab-item .tab-count{font-size:7px;opacity:.7;margin-top:1px}
.app-tabbar.mode-k .tab-item.active .tab-count{color:var(--color-primary)}

/* 通用 Tab 动画 */
@keyframes tabPop{0%{transform:scale(1)}40%{transform:scale(1.2)}100%{transform:scale(1)}}

/* 趋势柱状图 */
.trend-bar{width:70%;background:var(--color-accent);border-radius:6px 6px 0 0;transition:height .6s cubic-bezier(.22,1,.36,1)}
.animated-bar{transition:width .8s cubic-bezier(.22,1,.36,1)}

/* backdrop-filter 兼容性 */
.app-nav,.app-tabbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}

/* -- 脉冲点 -- */
.pulse-dot{width:6px;height:6px;border-radius:50%;animation:pulse-dot 2s infinite;display:inline-block}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:0.3}}

/* -- 统计数值闪入 -- */
.stat-val.num-in{animation:numSlide .5s cubic-bezier(.22,1,.36,1)}
@keyframes numSlide{0%{opacity:0;transform:translateY(10px) scale(0.8)}100%{opacity:1;transform:translateY(0) scale(1)}}

/* ===== 统计卡片 ===== */
.card-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-sm)}

/* ===== 全局自定义滚动条样式 ===== */
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-sm);transition:background .2s}
::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}
body::-webkit-scrollbar{width:6px}
body::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:6px}
body::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}
.modal-sheet::-webkit-scrollbar,
#searchResults::-webkit-scrollbar{width:3px}
.modal-sheet::-webkit-scrollbar-thumb,
#searchResults::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:6px}

/* ===== 工作台 3x3 九宫格 ===== */
.ws-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px 10px;margin-bottom:4px}
.ws-grid-item{background:none;border:none;border-radius:var(--radius-xl);padding:8px 4px;text-align:center;cursor:pointer;transition:all .25s;display:flex;flex-direction:column;align-items:center}
.ws-grid-item:hover{transform:translateY(-3px)}
.ws-grid-item:active{transform:scale(0.95)}
.ws-grid-icon{width:80px!important;height:80px!important;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:36px;color:#fff;margin:0 auto 6px;transition:transform .35s cubic-bezier(.34,1.56,.64,1);background:none!important;border:none;position:relative}
.ws-grid-icon>div{width:68px!important;height:68px!important;border-radius:10px;flex-shrink:0}

.ws-grid-item:hover .ws-grid-icon{transform:scale(1.12)}
.ws-grid-label{font-size:13px;font-weight:500;color:#1A1917;line-height:1.3;text-align:center;width:100%}
.ws-grid-count{font-size:28px;font-weight:800;line-height:1.1;margin-bottom:4px}
.ws-grid-sublabel{font-size:9px;color:var(--text-tertiary)}

/* ===== 最近项目列表 ===== */
.ws-recent-item{display:flex;align-items:center;padding:12px 14px;background:var(--bg-card);border:none;border-radius:var(--radius-lg);margin-bottom:6px;cursor:pointer;transition:all .2s}
.ws-recent-item:hover{transform:translateX(4px);box-shadow:var(--shadow-sm)}
.ws-recent-item:active{transform:scale(0.98)}
.ws-recent-info{flex:1;min-width:0}
.ws-recent-name{font-size:13px;font-weight:600;color:var(--text-primary)}
.ws-recent-sub{font-size:10px;color:var(--text-tertiary);margin-top:2px}

/* ===== IP 形象图片展示 ===== */
.ip-thumb{width:44px;height:44px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;background:var(--bg-elevated);box-shadow:var(--shadow-sm)}
.ip-thumb-sm{width:32px;height:32px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;background:var(--bg-elevated)}
.ip-thumb-lg{width:56px;height:56px;border-radius:var(--radius-lg);object-fit:cover;flex-shrink:0;background:var(--bg-elevated);box-shadow:var(--shadow-card)}
.ip-card-img{width:100%;aspect-ratio:1/1;border-radius:var(--radius-lg);object-fit:cover;background:var(--bg-elevated);box-shadow:var(--shadow-card);transition:transform .3s ease}
.ip-card-img:hover{transform:scale(1.02)}
.ip-gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.ip-gallery img{width:100%;aspect-ratio:1/1;border-radius:var(--radius-sm);object-fit:cover;background:var(--bg-elevated);cursor:pointer;transition:all .2s}
.ip-gallery img:hover{transform:scale(1.05);box-shadow:var(--shadow-hover)}
/* 项目详情 — IP画廊横向滑动 */
.ip-gallery-scroll{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.ip-gallery-scroll::-webkit-scrollbar{height:3px}
.ip-gallery-scroll::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}
.ip-gallery-scroll img{flex:0 0 200px;aspect-ratio:1/1;border-radius:var(--radius-md);object-fit:cover;background:var(--bg-elevated);cursor:pointer;scroll-snap-align:start;transition:all .2s}
.ip-gallery-scroll img:hover{transform:scale(1.03);box-shadow:var(--shadow-hover)}
/* 项目详情 — 衍生品网格 */
.pd-prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.pd-prod-item{text-align:center;padding:6px;background:var(--bg-subtle);border-radius:8px;cursor:default}
.pd-prod-item img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:6px;margin-bottom:4px}
.pd-prod-name{font-size:10px;font-weight:500;color:var(--text-primary)}
.pd-prod-price{font-size:9px;color:var(--color-primary);font-weight:600}

/* -- 项目详情页布局 -- */
.pd-header{display:flex;align-items:center;gap:var(--sp-sm)}
.pd-header-back{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.2);display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;flex-shrink:0;transition:background .2s}
.pd-header-back:hover{background:rgba(255,255,255,0.3)}
.pd-header-thumb{width:44px;height:44px;border-radius:var(--radius-md);overflow:hidden;flex-shrink:0}
.pd-header-thumb img{width:100%;height:100%;object-fit:cover}
.pd-header-info{min-width:0}
.pd-header-title{color:#fff;font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pd-header-sub{color:rgba(255,255,255,0.7);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pd-stats{display:flex;gap:var(--sp-md);flex-wrap:wrap}
.pd-stats .stat-item{padding:var(--sp-xs) var(--sp-sm);cursor:default;flex:1;text-align:center}
.pd-stats .stat-item .stat-val{font-size:14px}
.pd-stats .stat-item .stat-lbl{font-size:9px;margin-top:var(--sp-xxs)}
.pd-versions{margin-top:var(--sp-sm)}
.pd-version-name{font-size:14px;font-weight:700}
.pd-version-slogan{font-size:12px;color:var(--color-primary);margin:var(--sp-xs) 0}
.pd-version-colors{display:flex;gap:var(--sp-xs);margin-top:var(--sp-sm)}
.pd-version-colors span{flex:1;height:24px;border-radius:var(--radius-sm)}
.pd-version-actions{display:flex;gap:var(--sp-xs);padding:0;margin-top:var(--sp-md)}

.ip-banner{width:100%;height:140px;border-radius:var(--radius-lg);object-fit:cover;background:var(--bg-elevated);box-shadow:var(--shadow-card);margin-bottom:10px;display:block}

/* ===== 滚动触发入场（.reveal 配合 IntersectionObserver） ===== */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.5s ease,transform 0.5s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ===== 商家资料头部（替代内联样式 margin:-4px -12px 避免溢出） ===== */
.profile-header{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));padding:20px 16px 24px;margin:0 -12px;position:relative;overflow:hidden}
.profile-section{padding:8px 0 0}
.profile-actions{display:flex;gap:8px}
.profile-action-btn{width:36px;height:36px;border-radius:var(--radius-md);background:color-mix(in srgb, var(--text-on-primary) 15%, transparent);display:flex;align-items:center;justify-content:center;cursor:pointer}

/* ===== 快速入门引导入口 ===== */

/* ===== 工作台品牌头 ===== */
.ws-header{background:var(--gradient-primary);color:var(--text-on-primary);border:none;cursor:default;border-radius:0 0 var(--radius-3xl) var(--radius-3xl);padding:24px 20px;margin:0 -12px 12px;box-shadow:0 4px 20px color-mix(in srgb, var(--color-primary) 20%, transparent);text-align:center}
.ws-header-sub{font-size:12px;font-weight:500;opacity:.7;letter-spacing:.02em;margin-bottom:4px}

/* 首页标语 — 工作台大标题 */
.ws-slogan{font-size:22px;font-weight:800;line-height:1.3;letter-spacing:-.01em}

/* prefers-reduced-motion: 关闭所有 GSAP/CSS 动画 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .tab-panel.active { animation: none !important; }
  .stagger-in, .stagger-in-left, .stagger-in-right { opacity: 1 !important; transform: none !important; }
}

.onboard-entry{display:flex;align-items:center;gap:10px;padding:12px 14px;margin:0 0 10px;background:linear-gradient(135deg,var(--bg-highlight),var(--bg-warm));border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .3s;box-shadow:var(--shadow-sm)}
.onboard-entry:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.onboard-entry:active{transform:scale(0.98)}
.onboard-entry-icon{width:36px;height:36px;border-radius:var(--radius-md);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px;flex-shrink:0}
.onboard-entry-text{flex:1;min-width:0}
.onboard-entry-title{font-weight:700;font-size:13px;color:var(--text-primary)}
.onboard-entry-desc{font-size:10px;color:var(--text-tertiary);margin-top:1px}
.onboard-entry-arrow{font-size:14px;color:var(--text-tertiary);flex-shrink:0;transition:transform .3s}
.onboard-entry:hover .onboard-entry-arrow{transform:translateX(3px);color:var(--color-primary)}
.onb-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--border-default);margin:0 3px;transition:all .3s}
.onb-dot.active{width:24px;border-radius:var(--radius-sm);background:var(--color-primary)}

/* ===== 快速登录预设入口 ===== */
.login-divider{margin-top:24px;padding-top:20px;border-top:1px solid var(--border-light)}
.login-divider-label{font-size:10px;color:var(--text-tertiary);margin-bottom:10px;text-align:center;letter-spacing:.04em}
#loginBtn{height:46px;font-size:15px;border-radius:var(--radius-sm);margin-top:16px}
.login-preset-item{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-elevated);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;border:none}
.login-preset-item:hover{background:var(--bg-highlight);box-shadow:var(--shadow-sm)}
.login-preset-item:active{transform:scale(0.98)}

/* ===== 样图查看器 ===== */


/* ===== 开屏动画（loading.webp 全屏图 + 底部纯进度条，无遮罩无文字） ===== */
.splash{position:fixed;inset:0;z-index:9999}
.splash-bg-full{position:fixed;inset:0;z-index:0}
.splash-bg-full img{width:100%;height:100%;object-fit:cover;display:block}
.splash-bottom{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:1}
.splash-bar-track{width:160px;height:2px;border-radius:1px;background:rgba(255,255,255,0.2);overflow:hidden}
.splash-bar-fill{width:0%;height:100%;border-radius:1px;background:linear-gradient(90deg,#FF6030,#FFD070);animation:splashBarFill 2.6s cubic-bezier(0.22,1,0.36,1) forwards}
@keyframes splashBarFill{0%{width:0%}100%{width:100%}}
.splash.fade-out{opacity:0;animation:splashFadeOut 0.4s ease forwards}
@keyframes splashFadeOut{0%{opacity:1}100%{opacity:0}}

/* ===== 引导页 (intro) — 全屏滑动卡片 ===== */
.intro-overlay{position:fixed;inset:0;z-index:9998;background:#fff;display:flex;flex-direction:column;overflow:hidden}
.intro-track{display:flex;flex:1;align-items:center;justify-content:center}
.intro-slide{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px 100px;box-sizing:border-box}
.intro-slide img{width:100%;max-width:92%;max-height:70vh;object-fit:contain;display:block;border-radius:var(--radius-xl);box-shadow:0 8px 40px rgba(0,0,0,0.08);user-select:none;-webkit-user-drag:none;pointer-events:none}
.intro-slide-caption{text-align:center;margin-top:20px;padding:0 16px}
.intro-slide-caption h2{font-size:22px;font-weight:800;color:#1a1a2e;margin:0 0 8px;letter-spacing:-.02em}
.intro-slide-caption p{font-size:14px;color:#666;line-height:1.6;margin:0;letter-spacing:.01em}
.intro-dots{position:absolute;bottom:72px;left:50%;transform:translateX(-50%);z-index:10;display:flex;gap:8px;align-items:center}
.intro-dots span{width:8px;height:8px;border-radius:50%;background:#ddd;transition:all .3s cubic-bezier(.34,1.56,.64,1);cursor:pointer}
.intro-dots span.active{width:28px;border-radius:var(--radius-sm);background:var(--color-primary,#D81018)}
.intro-actions{position:absolute;bottom:28px;left:0;right:0;z-index:10;display:flex;justify-content:space-between;padding:0 24px;align-items:center}
.intro-btn{background:transparent;border:none;font-size:15px;font-weight:600;cursor:pointer;padding:10px 18px;border-radius:var(--radius-md);transition:all .2s;font-family:inherit}
.intro-btn-skip{color:#999}
.intro-btn-skip:active{opacity:.6}
.intro-btn-next{background:var(--color-primary,#D81018);color:#fff;box-shadow:0 4px 14px color-mix(in srgb, var(--color-primary,#D81018) 30%, transparent)}
.intro-btn-next:active{transform:scale(0.95)}
.intro-btn-next:disabled{opacity:0.5;transform:none;box-shadow:none}
.intro-btn-finish{background:var(--color-primary,#D81018);color:#fff;box-shadow:0 4px 14px color-mix(in srgb, var(--color-primary,#D81018) 30%, transparent)}
.intro-fade-out{opacity:0;transform:scale(0.95);transition:opacity 0.35s ease,transform 0.35s ease}
body.dark .intro-overlay{background:#1a1a2e}
body.dark .intro-slide-caption h2{color:#eee}
body.dark .intro-slide-caption p{color:#aaa}
body.dark .intro-dots span{background:#444}
body.dark .intro-btn-skip{color:#777}

/* ===== 品牌 SVG 图标（中国红底 + 橙金发光） ===== */
.brand-svg{display:block;width:36px;height:36px;margin:0 auto 12px;color:rgba(255,255,255,0.6)}
body.dark .brand-svg{color:rgba(255,255,255,0.5)}

/* ===== 登录页品牌区 — 黄金三分位 ===== */
.login-page{display:none;flex-direction:column;min-height:100vh;padding:0}
.login-brand-area{padding:0 16px;position:relative;z-index:1;width:100%;max-width:360px;margin:0 auto;text-align:center;flex:1;display:flex;flex-direction:column;padding-top:14vh}
@media(max-height:640px){.login-brand-area{padding-top:6vh}}
.login-brand-icon{width:64px;height:64px;border-radius:var(--radius-xl);margin:0 auto 16px;overflow:hidden;box-shadow:0 8px 32px color-mix(in srgb, var(--color-primary) 20%, transparent)}
.login-brand-icon img{width:100%;height:100%;display:block;object-fit:cover}
.login-brand-title{font-size:26px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px;color:var(--text-primary)}
.login-brand-sub{font-size:13px;color:var(--text-tertiary);margin-bottom:28px;letter-spacing:.02em}
/* 登录页品牌区入场动画 */
.login-page .login-brand-area{animation:loginFadeIn .5s cubic-bezier(.22,1,.36,1) both}
.login-page .card-item{animation:loginFadeIn .5s cubic-bezier(.22,1,.36,1) .15s both}
.login-page #loginPresets{animation:loginFadeIn .5s cubic-bezier(.22,1,.36,1) .25s both}
@keyframes loginFadeIn{0%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:translateY(0)}}

/* ===== 字体排版系统 ===== */
.fs-xs{font-size:10px}.fs-sm{font-size:12px}.fs-base{font-size:14px}.fs-lg{font-size:20px}.fs-xl{font-size:26px}
.fw-500{font-weight:500}.fw-600{font-weight:600}.fw-700{font-weight:700}.fw-800{font-weight:800}
.text-tertiary{color:var(--text-tertiary)}
.text-secondary{color:var(--text-secondary)}
.text-primary{color:var(--text-primary)}
.ls-compact{letter-spacing:-.02em}
.ls-wide{letter-spacing:.02em}
.ls-widest{letter-spacing:.04em}

/* ===== 间距系统 ===== */
.sp-xs{margin-bottom:4px}.sp-sm{margin-bottom:8px}.sp-base{margin-bottom:12px}.sp-lg{margin-bottom:16px}.sp-xl{margin-bottom:24px}
.p-xs{padding:4px}.p-sm{padding:8px}.p-base{padding:12px}.p-lg{padding:16px}.p-xl{padding:24px}
.px-sm{padding-left:8px;padding-right:8px}.px-base{padding-left:12px;padding-right:12px}.px-lg{padding-left:16px;padding-right:16px}
.py-xs{padding-top:4px;padding-bottom:4px}.py-sm{padding-top:8px;padding-bottom:8px}.py-base{padding-top:12px;padding-bottom:12px}

/* --- 内联样式替代类 (提取高频模式) --- */
.menu-row{display:flex;align-items:center;gap:10px;padding:6px 14px;cursor:pointer;transition:background .2s}
.menu-row:hover{background:var(--bg-hover)}
.chevron-right{font-size:12px;color:var(--text-tertiary);flex-shrink:0}
.section-icon{color:var(--color-primary);margin-right:4px}
.chip-group{display:flex;gap:4px;flex-wrap:wrap}
.chip-group-6{display:flex;gap:6px;flex-wrap:wrap}
.hint-text{font-size:10px;color:var(--text-tertiary)}
.border-bottom-light{border-bottom:1px solid var(--border-light)}
.panel-header-sm{background:linear-gradient(135deg,var(--bg-highlight),var(--bg-card));border:none;border-radius:var(--radius-lg);padding:16px;text-align:center;margin-bottom:10px}
.card-static{cursor:default}
.card-static-sm{padding:12px;cursor:default;margin-bottom:8px}
.logout-card{margin-top:10px;cursor:pointer;padding:12px 14px;display:flex;align-items:center;justify-content:space-between}
.logout-card .flex-row-inline{display:flex;align-items:center;gap:8px}
.logout-card .logout-text{font-weight:500;font-size:12px;color:var(--color-error);flex:1}
.form-group-sm{margin-bottom:6px}
.gap-xs{gap:4px}.gap-sm{gap:6px}.gap-md{gap:8px}.gap-lg{gap:12px}
.sample-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:2500;display:none;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.sample-overlay.active{display:block}
.sample-viewer{position:fixed;inset:0;z-index:2501;max-width:430px;width:100%;margin:0 auto;display:none;flex-direction:column;background:var(--bg-card)}
.sample-viewer.active{display:flex}
.sv-header{display:flex;align-items:center;padding:16px 16px 12px;flex-shrink:0}
.sv-counter{font-size:13px;font-weight:600;color:var(--text-secondary);min-width:48px}
.sv-label{flex:1;text-align:center;font-weight:700;font-size:15px;color:var(--text-primary)}
.sv-close{background:none;border:none;color:var(--text-tertiary);font-size:16px;cursor:pointer;padding:4px 8px;transition:color .2s}
.sv-close:hover{color:var(--text-primary)}
.sv-stage{flex:1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--bg-base);min-height:0}
.sv-track{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.sv-slide{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:20px}
.sv-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-lg);box-shadow:0 4px 20px rgba(0,0,0,0.1);user-select:none;-webkit-user-drag:none;background:var(--bg-elevated)}
.sv-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:40px;height:40px;border-radius:50%;background:var(--bg-card);border:none;color:var(--text-primary);font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,0.1);transition:all .2s;opacity:0.8}
.sv-arrow:hover{opacity:1;box-shadow:0 4px 16px rgba(0,0,0,0.15);transform:translateY(-50%) scale(1.08)}
.sv-arrow:active{transform:translateY(-50%) scale(0.92)}
.sv-arrow-left{left:8px}
.sv-arrow-right{right:8px}
.sv-actions{display:flex;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,4px));flex-shrink:0;background:var(--bg-card)}
.sv-actions .btn{flex:1;height:40px;font-size:13px}
/* 样图查看器深色模式 */
body.dark .sample-viewer{background:var(--bg-card)}
body.dark .sv-stage{background:var(--bg-base)}
body.dark .sv-arrow{background:var(--bg-elevated);color:var(--text-primary)}
/* 样图缩略图入口 */
.sample-thumb{width:36px;height:36px;border-radius:var(--radius-sm);object-fit:cover;cursor:pointer;border:none;transition:all .2s;background:var(--bg-elevated);flex-shrink:0}
.sample-thumb:hover{transform:scale(1.1);box-shadow:0 2px 8px color-mix(in srgb, var(--color-primary) 20%, transparent)}

/* ===== 高频内联样式复用类 ===== */
.mt-sm{margin-top:8px}.mt-base{margin-top:12px}.mt-lg{margin-top:16px}
.mb-sm{margin-bottom:8px}.mb-base{margin-bottom:12px}.mb-lg{margin-bottom:16px}
.mr-sm{margin-right:8px}.menu-row-label{flex:1;font-size:13px;font-weight:500;color:var(--text-primary)}
.ml-auto{margin-left:auto}
.w-full{width:100%}
.text-center{text-align:center}
.flex-between{display:flex;justify-content:space-between;align-items:center}
.grid-2{gap:8px;display:grid;grid-template-columns:1fr 1fr}

/* ===== 小屏设备全局字号/颜色优化（≤399px 覆盖 iPhone SE 及以下） ===== */
@media(max-width:399px){
  /* 全局基础字号 */
  body, .app{font-size:15px}

  /* --- 标签栏 / 导航 --- */
  .app-tabbar.mode-m .tab-item,
  .app-tabbar.mode-a .tab-item,
  .app-tabbar.mode-k .tab-item{font-size:11px}
  .app-tabbar .tab-item span{font-size:10px}
  .app-tabbar .tab-badge{font-size:9px}

  /* --- 9px → 11px 卡片副标题 / 元数据 / 标签 / 价格 --- */
  .prod-card .prod-sub,
  .prod-card .prod-meta,
  .project-scroll-card .ps-sub,
  .orders-summary .summary-label,
  .version-card .ver-label,
  .dense-card .dense-sub,
  .ws-grid-sublabel,
  .pd-stats .stat-item .stat-lbl,
  .tl-sub,
  .pipeline-hint,
  .version-card .ver-prod-price,
  .matrix-cell,
  .nct,
  .fnode .fd,
  .fnode-sm .fl{font-size:11px !important}

  /* --- 8px → 10px 极小型装饰文字 --- */
  .quick-card .quick-desc,
  .process-step .step-label,
  .dense-card .dense-tag,
  .culture-card .culture-tags span,
  .matrix-label,
  .pipe-badge,
  .summary-stat .stat-lbl,
  .form-help{font-size:10px !important}

  /* --- 10px → 12px 次要正文/统计/提示 --- */
  .stat-item .stat-lbl,
  .version-card .ver-estimate-title,
  .version-card .ver-estimate-row,
  .section-header .more,
  .section-header .more i,
  .version-card .ver-process .tag,
  .pipeline-hint,
  .hero-mini-sub,
  .search-hot-title,
  .onboard-entry-desc,
  .ws-recent-sub,
  .pd-header-sub,
  .hint-text,
  .login-divider-label,
  .circle-progress .cp-text,
  .tip-popup .tip-close,
  .pipe-reset{font-size:12px !important}

  /* --- 11px → 13px 标签/按钮/描述 --- */
  .mode-switcher-title,
  .mode-btn,
  .quick-card .quick-label,
  .platform-card .platform-label,
  .subfilter-wrap .chip-item,
  .version-card .ver-slogan,
  .version-card .ver-char,
  .ws-grid-label,
  .tl-text,
  .project-scroll-card .ps-name,
  .prod-card .prod-title,
  .dense-card .dense-title,
  .onboard-dialog .onb-desc,
  .pd-version-slogan,
  .nct,
  .orbit-card .fl{font-size:13px !important}

  /* --- 12px → 14px 正文卡片 --- */
  .search-result-item,
  .version-card .ver-estimate-total,
  .logout-card .logout-text{font-size:14px !important}

  /* --- 颜色加深：tertiary → secondary 用于可读文本 --- */
  .version-card .ver-prod-price,
  .prod-card .prod-meta,
  .ws-grid-sublabel,
  .pd-header-sub,
  .stat-item .stat-lbl,
  .pipeline-hint,
  .search-hot-title,
  .hint-text,
  .form-help,
  .onboard-entry-desc,
  .ws-recent-sub,
  .login-divider-label,
  .circle-progress .cp-text,
  .tip-popup .tip-close,
  .tl-sub,
  .quick-card .quick-desc{color:var(--text-secondary) !important}

  /* --- 徽章点击区域适配 --- */
  .badge-dot{width:20px;height:20px;font-size:9px}
}
/* ============================================================
   智造 · 万物赋灵 (v4) — 品牌介绍 + 定制下单
   ============================================================ */
/* --- Hero --- */
.mf-hero{position:relative;border-radius:var(--radius-xl);overflow:hidden;margin:8px 0;color:#fff;cursor:default;padding:36px var(--sp-lg)}
.mf-hero-bg{position:absolute;inset:0;z-index:0;background:linear-gradient(165deg,#5A060A 0%,#8A0A10 25%,#C80E16 50%,#E06030 80%,#E85D3A 100%)}
.mf-hero-bg::before{content:'';position:absolute;inset:0;background-image:linear-gradient(45deg,rgba(255,255,255,0.025) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.025) 50%,rgba(255,255,255,0.025) 75%,transparent 75%,transparent);background-size:48px 48px;pointer-events:none}
.mf-hero-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 100% 45% at 25% -5%,rgba(255,255,255,0.22),transparent 70%),radial-gradient(ellipse 50% 30% at 80% 100%,rgba(255,208,112,0.12),transparent 60%),radial-gradient(ellipse 40% 25% at 50% 10%,rgba(255,255,255,0.08),transparent 50%);pointer-events:none}
.mf-hero-content{position:relative;z-index:1;text-align:center}
.mf-hero-overline{font-size:10px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;opacity:.55;margin-bottom:8px}
.mf-hero-title{font-size:30px;font-weight:800;letter-spacing:4px;margin-bottom:10px;font-family:'Outfit','Inter',sans-serif;line-height:1.15;animation:title-glow 3s ease-in-out infinite}
.mf-hero-desc{font-size:11px;opacity:.6;line-height:1.6;max-width:260px;margin:0 auto}

/* --- 产品轮播 (GSAP track) --- */

/* --- 总分总流程 --- */
.mf-flow-total{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:18px 14px;margin-bottom:14px;cursor:default;display:flex;flex-wrap:nowrap;align-items:center;gap:8px;max-width:350px}
.mf-flow-vertical{flex-direction:column;align-items:center;max-width:100%;padding:16px 14px;gap:3px}
.mf-flow-node{font-size:9px;font-weight:600;color:var(--text-primary);text-align:center;padding:4px 8px;background:var(--bg-subtle);border-radius:var(--radius-sm);white-space:nowrap;transition:box-shadow .4s,background .4s}
.mf-flow-split,.mf-flow-merge{display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mf-flow-merge svg{transform:rotate(180deg)}
.mf-flow-branches{display:flex;flex-direction:column;gap:6px}
.mf-flow-vertical .mf-flow-branches{flex-direction:row;gap:10px}
.mf-flow-chain{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.mf-flow-vertical .mf-flow-chain{flex-direction:column;gap:1px}

/* --- 电路板通电动画 --- */
@keyframes circuit-dash{to{stroke-dashoffset:-40}}
@keyframes node-glow{0%,100%{box-shadow:0 0 0 transparent}50%{box-shadow:0 0 8px color-mix(in srgb,var(--color-primary) 35%,transparent)}}
@keyframes dot-pulse{0%,100%{opacity:.6;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}

.mf-flow-total .mf-flow-split svg path,
.mf-flow-total .mf-flow-merge svg path,
.mf-flow-total .mf-flow-chain svg path{stroke:var(--color-primary)!important;stroke-dasharray:6 4;animation:circuit-dash .6s linear infinite}
.mf-flow-total .mf-flow-split svg circle,
.mf-flow-total .mf-flow-merge svg circle,
.mf-flow-total .mf-flow-chain svg circle{animation:dot-pulse 1.4s ease-in-out infinite;transform-origin:center}
.mf-flow-total .mf-flow-node{animation:node-glow 2.5s ease-in-out infinite}

/* --- 竖立流程曲线增强 --- */
.mf-flow-vertical .mf-flow-split svg path,
.mf-flow-vertical .mf-flow-merge svg path{stroke-dasharray:5 3!important}
.mf-flow-vertical .mf-flow-chain svg path{stroke-dasharray:4 3!important}
.mf-flow-vertical .mf-flow-split svg,
.mf-flow-vertical .mf-flow-merge svg{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--color-primary) 30%,transparent))}
.mf-flow-vertical .mf-flow-chain svg{filter:drop-shadow(0 0 2px color-mix(in srgb,var(--color-primary) 25%,transparent))}

/* --- 全局科技动画增强 --- */
@keyframes grid-scroll{to{background-position:48px 48px}}
@keyframes title-glow{0%,100%{text-shadow:0 0 20px rgba(255,255,255,.08)}50%{text-shadow:0 0 40px rgba(255,255,255,.2)}}
@keyframes header-bar{0%,100%{width:28px;opacity:1}50%{width:48px;opacity:.65}}
@keyframes btn-pulse{0%,100%{box-shadow:0 4px 20px color-mix(in srgb,var(--color-primary) 30%,transparent)}50%{box-shadow:0 4px 30px color-mix(in srgb,var(--color-primary) 50%,transparent),0 0 0 8px color-mix(in srgb,var(--color-primary) 10%,transparent)}}
@keyframes dot-glow{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--color-primary) 30%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 15%,transparent)}}
@keyframes card-border{0%{opacity:.3}50%{opacity:.7}100%{opacity:.3}}

/* Hero 网格滚动 */
.mf-hero-bg::before{animation:grid-scroll 8s linear infinite}

/* Section header 装饰光条 */
.section-header h3::after{content:'';display:block;width:28px;height:2px;background:linear-gradient(90deg,var(--color-primary),transparent);border-radius:4px;margin-top:4px;animation:header-bar 2.5s ease-in-out infinite}

/* --- CTA 按钮 --- */
.mf-start-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:48px;border:none;border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 4px 20px color-mix(in srgb, var(--color-primary) 30%, transparent);letter-spacing:.5px;font-family:inherit;animation:btn-pulse 3s ease-in-out infinite}
.mf-start-btn:active{transform:scale(0.97)}
.mf-start-btn i{font-size:18px;transition:transform .3s}
.mf-start-btn:hover i{transform:translateX(4px)}
.mf-back-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;padding:8px 12px;border-radius:var(--radius-sm);font-family:inherit;transition:all .2s}
.mf-back-btn:hover{color:var(--color-primary);background:var(--bg-subtle)}
.mf-back-btn i{font-size:14px}

/* --- 步骤指示器 --- */
.mf-progress{display:flex;align-items:center;gap:6px;padding:10px 0 8px;margin-bottom:4px}
.mf-prog-step{display:flex;align-items:center;gap:4px;opacity:.55;transition:all .3s}
.mf-prog-step.active{opacity:1}
.mf-prog-num{width:20px;height:20px;border-radius:50%;background:var(--border-light);color:var(--text-tertiary);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .3s}
.mf-prog-step.active .mf-prog-num{background:var(--color-primary);color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 25%,transparent)}
.mf-prog-lbl{font-size:9px;font-weight:600;color:var(--text-tertiary);white-space:nowrap}
.mf-prog-step.active .mf-prog-lbl{color:var(--text-primary);font-weight:700}
.mf-prog-step.completed{opacity:.65}
.mf-prog-step.completed .mf-prog-num{background:var(--color-primary);color:#fff;opacity:.75}
.mf-prog-step.completed .mf-prog-lbl{color:var(--text-secondary)}
.mf-prog-bar{flex:1;height:2px;background:var(--border-light);border-radius:4px;overflow:hidden;min-width:12px}
.mf-prog-fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width .4s ease}

/* --- 提交需求 3步向导 (wizard) --- */
.wz-section{animation:fadeInUp .35s ease}
@keyframes fadeInUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* --- IP 选择（扩展 3 列支持更多/自定义） --- */
.mf-ip-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.mf-ip-card{position:relative;background:var(--bg-card);border:2px solid transparent;border-radius:var(--radius-xl);padding:12px;text-align:center;cursor:pointer;transition:all .25s;box-shadow:var(--shadow-card)}
.mf-ip-card:active{transform:scale(0.96)}
.mf-ip-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary),var(--shadow-hover);background:color-mix(in srgb,var(--color-primary) 3%,var(--bg-card));transform:scale(1.02)}
.mf-ip-img{width:72px;height:72px;border-radius:50%;overflow:hidden;margin:0 auto 8px;background:var(--bg-subtle)}
.mf-ip-img img{width:100%;height:100%;object-fit:cover}
.mf-ip-name{font-size:12px;font-weight:600;color:var(--text-primary)}
.mf-ip-check{position:absolute;top:6px;right:6px;width:18px;height:18px;border-radius:50%;background:var(--border-light);color:#fff;font-size:9px;display:none;align-items:center;justify-content:center}
.mf-ip-card.selected .mf-ip-check{display:flex;background:var(--color-primary)}
.mf-ip-more,.mf-ip-custom{cursor:pointer!important;border-style:dashed!important;opacity:.6;transition:all .3s}
.mf-ip-more:hover,.mf-ip-custom:hover{opacity:1;border-color:var(--color-primary)!important;background:color-mix(in srgb,var(--color-primary) 4%,var(--bg-card))}
.mf-ip-img-more{display:flex!important;align-items:center;justify-content:center;font-size:28px;color:var(--text-tertiary);background:var(--bg-subtle)!important}

/* --- 步骤按钮组 --- */
.mf-section-btns{display:flex;gap:8px;margin-top:10px}
.mf-section-btns .btn{flex:1;height:40px;font-size:13px;font-weight:600}
.mf-section-btns .btn i{font-size:14px}
.mf-section-next{height:40px;margin-top:12px;font-size:13px;font-weight:600}

/* --- 产品卡片网格（重新设计） --- */
.mf-prod-grid{display:flex;flex-direction:column;gap:10px;padding:2px 0}
.mf-prod-card{position:relative;display:flex;align-items:flex-start;gap:12px;background:var(--bg-card);border:2px solid var(--border-light);border-radius:var(--radius-xl);padding:14px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden}
.mf-prod-card:active{transform:scale(0.98)}
.mf-prod-card::before{content:'';position:absolute;inset:0;border-radius:var(--radius-xl);opacity:0;transition:opacity .4s;pointer-events:none}
.mf-prod-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary),var(--shadow-hover)}
.mf-prod-card.selected::before{background:color-mix(in srgb,var(--color-primary) 4%,transparent);opacity:1}
.mf-prod-icon{flex-shrink:0;width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;transition:transform .35s cubic-bezier(.34,1.56,.64,1);position:relative;z-index:1}
.mf-prod-card.selected .mf-prod-icon{transform:scale(1.1) rotate(-4deg)}
.mf-prod-info{flex:1;min-width:0;position:relative;z-index:1}
.mf-prod-name{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:2px}
.mf-prod-price{font-size:15px;font-weight:600;color:var(--text-primary);line-height:1.3}
.mf-prod-price small{font-size:10px;font-weight:400;color:var(--text-tertiary);margin-left:2px}
.mf-prod-tags{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}
.mf-prod-tag{font-size:9px;font-weight:600;color:var(--text-secondary);background:var(--bg-subtle);padding:2px 7px;border-radius:var(--radius-sm);white-space:nowrap;transition:all .3s}
.mf-prod-card.selected .mf-prod-tag{background:color-mix(in srgb,var(--color-primary) 8%,var(--bg-subtle));color:var(--color-primary)}
.mf-prod-desc{font-size:10px;color:var(--text-tertiary);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mf-prod-check{position:absolute;top:10px;right:10px;width:20px;height:20px;border-radius:50%;background:var(--border-light);color:#fff;font-size:10px;display:none;align-items:center;justify-content:center;transition:all .3s;z-index:2}
.mf-prod-card.selected .mf-prod-check{display:flex;background:var(--color-primary);box-shadow:0 2px 6px color-mix(in srgb,var(--color-primary) 40%,transparent)}
/* 徽章 */
.mf-prod-badge{position:absolute;top:-1px;left:16px;font-size:8px;font-weight:700;padding:2px 8px 3px;border-radius:0 0 var(--radius-sm) var(--radius-sm);z-index:3;letter-spacing:.5px;text-transform:uppercase}
.mf-prod-badge.hot{background:linear-gradient(135deg,#D81018,#E85D3A);color:#fff}
.mf-prod-badge.new{background:linear-gradient(135deg,#2d8a4e,#3cb371);color:#fff}

/* --- 配置卡片（集中样式） --- */
.mf-config-card{padding:16px;margin-bottom:10px;cursor:default}
.mf-config-custom{border-left:3px solid var(--border-light);background:var(--bg-card)}

/* --- 功能勾选 --- */
.mf-feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.mf-feat-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-primary);cursor:pointer;padding:6px 8px;border-radius:var(--radius-sm);background:var(--bg-subtle);transition:all .2s}
.mf-feat-item:hover{background:color-mix(in srgb,var(--color-primary) 6%,var(--bg-subtle))}
.mf-feat-item:active{background:var(--bg-hover)}
.mf-feat-item input[type=checkbox]{width:15px;height:15px;accent-color:var(--color-primary);cursor:pointer}

/* --- 确认区 --- */
.mf-confirm-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-light)}
.mf-confirm-label{font-size:11px;color:var(--text-tertiary)}
.mf-confirm-val{font-size:12px;font-weight:600;color:var(--text-primary);text-align:right}

/* --- 步骤容器 --- */
.mf-section{animation:mfFadeIn .3s ease}
@keyframes mfFadeIn{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}

/* ===== 智造 tab 图标 2x+ 放大，去掉文字，形成明显 dock 差异 ===== */
.app-tabbar.mode-m .tab-item[data-page="manufacture"]{min-height:52px}
.app-tabbar.mode-m .tab-item[data-page="manufacture"] i{font-size:32px}

/* --- 社媒创写页面自定义样式 --- */
.mk-config-card{transition:all .25s}
.mk-config-card:active{transform:scale(0.99)}
.platform-card.selected{border-color:var(--color-primary)!important;background:color-mix(in srgb,var(--color-primary) 4%,var(--bg-card))!important;box-shadow:0 0 0 1px var(--color-primary),var(--shadow-sm)!important}
.platform-card.selected .platform-label{color:var(--color-primary)!important}
.platform-card:hover{border-color:var(--color-primary)!important;opacity:.85}
.mk-hero{box-shadow:0 4px 20px color-mix(in srgb, var(--color-primary) 20%, transparent)}
/* mk-hero-img — 设计稿 v5 全宽图片型 hero */
.mk-hero-img{width:calc(100% + 32px);height:214px;overflow:hidden;margin:0 -16px}
.mk-hero-img img{width:100%;height:100%;display:block;object-fit:cover}
/* page-mkcreate 内卡片扁平无阴影 — 匹配设计稿 v5 */
#page-mkcreate .card-item{box-shadow:none}
/* page-orders 单卡片扁平无阴影 — 匹配设计稿 v7 */
#page-orders .ord-card{box-shadow:none}
/* ============================================================
   登录页新设计 — 画板1 样式
   ============================================================ */
.login-page{overflow-x:hidden}
.login-page .login-brand-area{padding:0;max-width:100%;padding-top:0}
.login-hero{position:relative;width:375px;height:332px;margin:0 auto;overflow:hidden}
.login-hero-bg{width:375px;height:332px;overflow:hidden}
.login-hero-bg img{width:375px;height:625.257px;margin-top:-292.999px;display:block}
.login-logo{position:absolute;left:50%;top:51px;transform:translateX(-50%);width:75px;height:75px}
.login-logo img{width:100%;height:100%;display:block}
.login-title{position:absolute;left:50%;top:126px;transform:translateX(-50%);font-size:20px;font-weight:500;color:#000;white-space:nowrap;z-index:2}
.login-subtitle{position:absolute;left:50%;top:152px;transform:translateX(-50%);width:140px;height:12px;z-index:2}
.login-subtitle img{width:100%;height:100%;display:block}
.login-hero-grad{position:absolute;left:0;bottom:0;width:375px;height:139px;background:linear-gradient(180deg,rgba(247,248,249,0) 0%,#F7F8F9 100%);pointer-events:none;z-index:3}
.login-card-new{width:347px;margin:-36px auto 0;padding:20px 28px 28px;background:#FEFDFC;border-radius:var(--radius-2xl);z-index:4;position:relative}
.login-form .lg-fg{margin-bottom:16px}
.lg-label{display:block;font-size:16px;font-weight:500;color:#1A1917;margin-bottom:8px}
.lg-label .hint-text{color:#A6A7AA;font-weight:400;font-size:14px}
.lg-input-wrap{position:relative;height:48px}
.lg-ico{position:absolute;left:14px;top:15px;width:18px;height:18px;z-index:1}
.lg-ico img{width:100%;height:100%;display:block}
.lg-input-wrap .form-input{width:100%;height:48px;padding:0 14px 0 40px;border:1px solid #F4F0ED;border-radius:var(--radius-input);background:#FBF7F3;font-size:14px;color:#A6A7AA;outline:none;font-family:inherit}
.lg-input-wrap .form-input:focus{border-color:#DA3634;color:#1A1917}
.lg-input-wrap .form-input::placeholder{color:#A6A7AA}
.lg-hint{margin-top:6px}
.lg-hint img{height:14px}
.lg-chips{display:flex;gap:20px;margin-top:2px}
.lg-chip{display:flex;align-items:center;gap:8px;height:40px;padding:0 20px;border:1px solid #F4F0ED;border-radius:159px;background:#FBF7F3;font-size:14px;font-weight:500;color:#1A1917;cursor:pointer;transition:all 0.2s;white-space:nowrap;font-family:inherit}
.lg-chip .lg-ci{width:18px;height:18px}
.lg-chip .lg-ci img{width:100%;height:100%;display:block}
.lg-chip.active{background:#DA3634;color:#fff;border-color:#DA3634;box-shadow:0 3px 5px rgba(255,130,132,0.28)}
.lg-chip.active .lg-ci img{filter:brightness(0)invert(1)}
.lg-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:48px;border:none;border-radius:var(--radius-btn);background:#DA3634;color:#fff;font-size:16px;font-weight:500;cursor:pointer;font-family:inherit;box-shadow:0 3px 5px rgba(255,130,132,0.28);transition:all 0.2s;margin-top:16px}
.lg-btn:hover{background:#C40E16}
.lg-btn:active{transform:scale(0.98)}
.lg-btn .lg-bi{width:28px;height:28px}
.lg-btn .lg-bi img{width:100%;height:100%;display:block}
.login-quick{margin-top:24px;padding:20px 14px 0}
.lq-divider{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.lq-line{height:1px}
.lq-l{width:136px;background:#CCC;flex-shrink:0}
.lq-r{flex:1;background:#F4F0ED}
.lq-label{font-size:14px;color:#A6A7AA;white-space:nowrap}

/* ============================================================
   短剧页新设计 — 画板2 样式
   ============================================================ */
.anime-cover{width:347px;height:126px;border-radius:var(--radius-card-lg);overflow:hidden;margin:0 auto 10px}
.anime-cover img{width:100%;height:100%;display:block;object-fit:cover}
.anime-card{background:#FEFDFC;border-radius:var(--radius-2xl);padding:12px 14px;margin:0 6px}
.anime-sec{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.anime-si{width:16px;height:16px;flex-shrink:0}
.anime-si img{width:100%;height:100%;display:block}
.anime-st{font-size:16px;font-weight:500;color:#1A1917}
.anime-dv{height:1px;background:#F4F0ED;margin-bottom:10px}
.anime-fg{margin-bottom:12px}
.anime-lb{font-size:12px;font-weight:500;color:#A6A7AA;margin-bottom:4px}
.anime-lb .hint-text{color:#1A1917}
.anime-in{width:100%;height:36px;border:1px solid #F4F0ED;border-radius:var(--radius-input);background:#FBF7F3;padding:0 12px;font-size:12px;color:#1A1917;font-family:inherit;outline:none}
.anime-ta{width:100%;height:40px;border:1px solid #F4F0ED;border-radius:var(--radius-input);background:#FBF7F3;padding:6px 10px;font-size:12px;color:#1A1917;font-family:inherit;outline:none;resize:none;line-height:20px}
.anime-cg{display:flex;gap:6px;flex-wrap:wrap}
.anime-cp{height:26px;padding:0 8px;border-radius:159px;display:flex;align-items:center;font-size:10px;font-weight:500;cursor:pointer;font-family:inherit;border:1px solid #F4F0ED;background:#FBF7F3;color:#1A1917;transition:all 0.2s;white-space:nowrap}
.anime-cp.active{background:#DA3634;color:#fff;border-color:#DA3634;box-shadow:0 2px 4px rgba(255,130,132,0.28)}
.anime-scr{position:relative;padding-top:2px}
.anime-scr-ta{width:100%;height:80px;border:1px solid #F4F0ED;border-radius:var(--radius-input);background:#FBF7F3;position:relative;margin-bottom:4px}
.anime-scr-dv{position:absolute;left:10px;top:48px;width:calc(100% - 20px);height:1px;background:#F4F0ED}
.anime-scr-txt{padding:6px 10px;font-size:12px;line-height:20px;color:#1A1917;white-space:pre-line}
.anime-scr-ht{display:flex;align-items:center;gap:4px;font-size:11px;color:#A6A7AA}
.anime-scr-ht img{width:12px;height:12px}

/* 漫剧视频播放器 */
.anime-video-wrap{width:100%;border-radius:10px;overflow:hidden;margin-bottom:8px;background:#000;position:relative}
.anime-video-wrap video{width:100%;display:block;max-height:300px;object-fit:contain;background:#111}
.anime-video-title{font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;margin:6px 0 4px}
.anime-video-badge{font-size:9px;padding:2px 6px;border-radius:4px;background:var(--color-primary);color:#fff;font-weight:500}
/* 漫剧作品集网格 */
.anime-gallery{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.anime-gallery-item{border-radius:8px;overflow:hidden;background:#FEFDFC;border:1px solid var(--border-light);cursor:pointer;transition:transform .2s,box-shadow .2s}
.anime-gallery-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.anime-gallery-item video{width:100%;height:80px;object-fit:cover;display:block;background:#111}
.anime-gallery-info{padding:4px 6px 6px}
.anime-gallery-title{font-size:10px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.anime-gallery-sub{font-size:8px;color:var(--text-tertiary);margin-top:1px}

/* ============================================================
   协议与规则页面 — 简约版
   ============================================================ */
.agr-header{display:flex;align-items:center;gap:10px;padding:8px 0 12px;position:sticky;top:0;background:#fff;z-index:1}
.agr-back{background:none;border:none;color:var(--text-secondary);font-size:18px;cursor:pointer;padding:4px;transition:color .2s}
.agr-back:hover{color:var(--color-primary)}
.agr-title{font-size:16px;font-weight:700;color:var(--text-primary)}
.agr-intro{text-align:center;font-size:12px;font-weight:700;color:var(--text-primary);line-height:1.6;margin-bottom:0;padding:4px}
.agr-doc:first-child{margin-top:10px}
.agr-doc-header{display:flex;align-items:center;gap:8px;padding:0 0 8px;border-bottom:1px solid var(--border-light)}
.agr-doc-title{font-size:13px;font-weight:700;color:var(--text-primary)}
.agr-doc-body{padding-top:8px}
.agr-item{font-size:11px;color:var(--text-secondary);line-height:1.75;padding:4px 0;border:none}
/* chip-item 覆盖 — 新设计需重置 ui.css 默认值 */
.lg-chip.chip-item{padding:0 20px;border-radius:159px;height:40px;font-size:14px;background:#FBF7F3}
.lg-chip.chip-item.active{background:#DA3634;color:#fff;border-color:#DA3634;box-shadow:0 3px 5px rgba(255,130,132,0.28)}
.anime-cp.chip-item{padding:0 8px;border-radius:159px;height:26px;font-size:10px;background:#FBF7F3}
.anime-cp.chip-item.active{background:#DA3634;color:#fff;border-color:#DA3634;box-shadow:0 2px 4px rgba(255,130,132,0.28)}

/* ============================================================
   IP数字人 — 设计稿 v3 (2026-07)
   ============================================================ */
/* Chip 样式 — 设计稿 chip 系统 */
.dh-chip{height:32px;padding:0 14px;border-radius:122px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:400;cursor:pointer;transition:all .2s;gap:4px;white-space:nowrap;font-family:inherit;border:1px solid transparent}
.dh-chip-red{background:#DA3634;color:#fff;box-shadow:0 3px 5px rgba(255,130,132,0.28)}
.dh-chip-gray{background:#FBF7F3;color:#333;border:1px solid #F4F0ED}
.dh-chip-light{background:#F6F8F9;color:#333;border:1px solid #F4F0ED}
.dh-chip .dot{width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.5}

/* chip-item 覆盖 — 数字人 chip 需双重 class 支持事件委托 */
#dhGenStyle .chip-item.dh-chip{padding:0 14px;height:32px;font-size:12px;border-radius:122px}
#dhGenStyle .chip-item.dh-chip.dh-chip-red{background:#DA3634;color:#fff;border-color:transparent;box-shadow:0 3px 5px rgba(255,130,132,0.28)}
#dhGenStyle .chip-item.dh-chip.dh-chip-gray{background:#FBF7F3;color:#333;border:1px solid #F4F0ED;box-shadow:none}
#dhGenStyle .chip-item.dh-chip.dh-chip-light{background:#F6F8F9;color:#333;border:1px solid #F4F0ED;box-shadow:none}

#dhVoice .chip-item.dh-chip{padding:0 14px;height:32px;font-size:12px;border-radius:122px}
#dhVoice .chip-item.dh-chip.dh-chip-red{background:#DA3634;color:#fff;border-color:transparent;box-shadow:0 3px 5px rgba(255,130,132,0.28)}
#dhVoice .chip-item.dh-chip.dh-chip-gray{background:#FBF7F3;color:#333;border:1px solid #F4F0ED;box-shadow:none}
#dhVoice .chip-item.dh-chip.dh-chip-light{background:#F6F8F9;color:#333;border:1px solid #F4F0ED;box-shadow:none}

/* 3列等分 chip */
.dh-chip-3{display:flex;gap:6px}
.dh-chip-3 .chip-item.dh-chip{flex:1;justify-content:center}

/* Chip row 2行排列 */
.dh-chip-row-2{display:flex;flex-direction:column;gap:6px}
.dh-chip-wrap{display:flex;gap:6px;flex-wrap:wrap}

/* 表单标签 */
.dh-flbl{font-size:13px;color:#333;font-weight:400}
.dh-flbl small{color:#999;font-weight:400}

/* 上传区 */
.dh-upload-box{width:100%;height:120px;border-radius:10px;border:1px solid #F4F0ED;background:#FBF7F3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.dh-upload-icon{width:24px;height:24px}
.dh-upload-hint{font-size:12px;color:#999}

/* 卡片 */
.dh-card{background:#FEFDFC;border-radius:14px;padding:20px 14px}
.dh-card-body{display:flex;flex-direction:column;gap:12px}

/* Hero */
.dh-hero{width:100%;height:214px;overflow:hidden}
.dh-hero img{width:100%;height:100%;display:block;object-fit:cover}

/* 页面标题 */
.dh-page-title{font-size:18px;font-weight:600;color:#111;padding:16px 14px 0;letter-spacing:-0.3px}

/* 内容区 */
.dh-content-area{padding:14px;display:flex;flex-direction:column;gap:14px}

/* 自定义进度条 */
.dh-progress-item{display:flex;align-items:center;gap:10px}
.dh-progress-lbl{width:30px;font-size:12px;color:#888;flex-shrink:0;text-align:right}
.dh-progress-track{flex:1;height:6px;background:#FBF7F3;border-radius:40px;border:1px solid #F4F0ED;position:relative;cursor:pointer}
.dh-progress-fill{height:100%;background:#DA3634;border-radius:40px;position:relative;transition:width 0.15s ease}
.dh-progress-thumb{position:absolute;right:-8px;top:-7px;width:20px;height:20px;background:url(../image/play-btn.webp) no-repeat center/cover;border-radius:50%;cursor:grab}
.dh-progress-thumb:active{cursor:grabbing}
.dh-progress-tail{width:13px;height:15px;flex-shrink:0}

/* CTA */
#dhGenerateBtn{height:48px;border-radius:10px;font-size:16px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px}

/* ============================================================
   IP数字人 — active class 兼容覆盖 (JS 通过 toggle active 控制视觉)
   ============================================================ */
/* #dhGenStyle chip active 态 */
#dhGenStyle .chip-item.active{background:#DA3634!important;color:#fff!important;border-color:#DA3634!important;box-shadow:0 3px 5px rgba(255,130,132,0.28)!important}
/* #dhGenStyle chip 普通态（排除 light 新增按钮） */
#dhGenStyle .chip-item:not(.active):not(.dh-chip-light){background:#FBF7F3!important;color:#333!important;border:1px solid #F4F0ED!important;box-shadow:none!important}

/* #dhVoice chip 同样逻辑 */
#dhVoice .chip-item.active{background:#DA3634!important;color:#fff!important;border-color:#DA3634!important;box-shadow:0 3px 5px rgba(255,130,132,0.28)!important}
#dhVoice .chip-item:not(.active):not(.dh-chip-light){background:#FBF7F3!important;color:#333!important;border:1px solid #F4F0ED!important;box-shadow:none!important}

/* 3列 chip (表情 + 时长) */
.dh-chip-3 .chip-item.active{background:#DA3634!important;color:#fff!important;border-color:#DA3634!important;box-shadow:0 3px 5px rgba(255,130,132,0.28)!important}
.dh-chip-3 .chip-item:not(.active){background:#FBF7F3!important;color:#333!important;border:1px solid #F4F0ED!important;box-shadow:none!important}

/* ============================================================
   社媒创写 — 设计稿 v5 (2026-07)
   ============================================================ */
/* Chip 系统 */
.mk-chip{height:32px;padding:0 14px;border-radius:122px;display:flex;align-items:center;font-size:12px;cursor:pointer;white-space:nowrap;gap:4px;transition:all .2s;font-family:inherit;border:1px solid transparent}
.mk-chip-red{background:#DA3634;color:#fff;box-shadow:0 3px 5px rgba(255,130,132,0.28)}
.mk-chip-gray{background:#FBF7F3;color:#333;border:1px solid #F4F0ED}
.mk-chip-light{background:#F6F8F9;color:#333;border:1px solid #F4F0ED}
.mk-chip .dot{width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.5}

/* chip-item 覆盖 — 社媒创写 chip 需双重 class 支持事件委托 */
#mkTones .chip-item.active{background:#DA3634!important;color:#fff!important;border-color:#DA3634!important;box-shadow:0 3px 5px rgba(255,130,132,0.28)!important}
#mkTones .chip-item:not(.active):not(.mk-chip-light){background:#FBF7F3!important;color:#333!important;border:1px solid #F4F0ED!important;box-shadow:none!important}

#mkFocus .chip-item.active{background:#DA3634!important;color:#fff!important;border-color:#DA3634!important;box-shadow:0 3px 5px rgba(255,130,132,0.28)!important}
#mkFocus .chip-item:not(.active):not(.mk-chip-light){background:#FBF7F3!important;color:#333!important;border:1px solid #F4F0ED!important;box-shadow:none!important}

/* 文案长度 chip-3 */
.mk-chip-3 .chip-item.active{background:#DA3634!important;color:#fff!important;border-color:#DA3634!important;box-shadow:0 3px 5px rgba(255,130,132,0.28)!important}
.mk-chip-3 .chip-item:not(.active){background:#FBF7F3!important;color:#333!important;border:1px solid #F4F0ED!important;box-shadow:none!important}

/* 表单标签 */
.mk-flbl{font-size:13px;color:#333;font-weight:400}
.mk-flbl small{color:#999;font-weight:400}

/* 项目选择器 */
.mk-proj-select{width:100%;height:40px;border-radius:10px;border:1px solid #F4F0ED;background:#FBF7F3;display:flex;align-items:center;padding:0 14px;gap:8px}
.mk-proj-select select{flex:1;border:none;background:transparent;font-size:12px;font-weight:500;color:#111;outline:none;appearance:none;font-family:inherit;cursor:pointer}
.mk-proj-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #999;flex-shrink:0}

/* 平台图标行 */
#mkPlatforms .platform-item{width:56px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;flex-shrink:0}
#mkPlatforms .platform-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:all .2s}
#mkPlatforms .platform-item.active .platform-icon{background:rgba(218,54,52,0.1);border:1px solid #DA3634}
#mkPlatforms .platform-item.inactive .platform-icon{background:#FBF7F3;border:1px solid #F4F0ED}
#mkPlatforms .platform-label{font-size:10px;color:#333;text-align:center;font-weight:500}
#mkPlatforms .platform-label img{display:block;margin:0 auto}

/* 上传区 */
.mk-upload-box{width:100%;height:120px;border-radius:10px;border:1px solid #F4F0ED;background:#FBF7F3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.mk-upload-icon{width:24px;height:24px}
.mk-upload-hint{font-size:11px;color:#999}

/* 版本数进度条 */
.mk-ver-row{display:flex;align-items:center;gap:10px;width:100%}
.mk-ver-track{flex:1;height:6px;background:#FBF7F3;border-radius:40px;border:1px solid #F4F0ED;position:relative}
.mk-ver-fill{height:100%;background:#DA3634;border-radius:40px;position:relative}
.mk-ver-thumb{position:absolute;right:-10px;top:-7px;width:20px;height:20px;background:url(../image/play-btn.webp) no-repeat center/cover;border-radius:50%}

/* 三等分 chip */
.mk-chip-3{display:flex;gap:7px}
.mk-chip-3 .chip-item{flex:1;justify-content:center}
.mk-chip-4{display:flex;gap:7px;flex-wrap:wrap}

/* CTA */
#mkGenerate{height:48px;font-size:16px;font-weight:500;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:8px}

/* ============================================================
   订单管理 — 设计稿 v7 (2026-07)
   ============================================================ */
/* Container card for pipeline/suppliers JS */
.ord-card{background:#FEFDFC;border-radius:14px;padding:20px 14px;margin-bottom:14px}

/* Header row */
.ord-hd-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.ord-hd-left{display:flex;align-items:center;gap:10px}
.ord-hd-icon{width:32px;height:32px;border-radius:8px;flex-shrink:0;background:#DA3634;display:flex;align-items:center;justify-content:center}
.ord-hd-icon img{width:20px;height:20px;display:block}
.ord-hd-filter{height:28px;padding:0 14px;border-radius:122px;background:rgba(218,54,52,0.1);display:flex;align-items:center;font-size:11px;font-weight:500;color:#DA3634;cursor:default}

/* KPI row */
.ord-kpi-row{display:flex;gap:10px;margin-bottom:14px}

/* Pipeline items — 给 JS 渲染用的 pipeline 样式 */
.ord-pipeline{display:flex;justify-content:space-between;gap:0}
.ord-pl-item{width:56px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;flex-shrink:0}
.ord-pl-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center}
.ord-pl-item.active .ord-pl-icon{background:rgba(218,54,52,0.1);border:1px solid #DA3634}
.ord-pl-item.inactive .ord-pl-icon{background:#FBF7F3;border:1px solid #F4F0ED}
.ord-pl-icon img{width:24px;height:24px;display:block}
.ord-pl-label{font-size:9px;color:#333;font-weight:500;line-height:1.2}

/* Divider */
.ord-divider{width:100%;height:1px;background:#F0EBE6;margin:14px 0}

/* Order items — 给 JS 渲染使用 */
.ord-section{display:flex;flex-direction:column;gap:14px}
.ord-item{display:flex;align-items:center;gap:12px}
.ord-item-icon{width:32px;height:32px;border-radius:8px;flex-shrink:0;background:#DA3634;display:flex;align-items:center;justify-content:center}
.ord-item-icon img{width:20px;height:20px;display:block}
.ord-info{flex:1;min-width:0}
.ord-name{font-size:12px;font-weight:500;color:#111;line-height:1.3}
.ord-desc{font-size:9px;color:#888;margin-top:2px;line-height:1.3}
.ord-amount{font-size:11px;font-weight:600;color:#DA3634;margin-top:2px}
.ord-right{display:flex;align-items:center;gap:8px;flex-shrink:0}

/* Order tags */
.ord-tag{height:22px;padding:0 8px;border-radius:122px;display:flex;align-items:center;font-size:9px;font-weight:500;white-space:nowrap}
.ord-tag.blue{background:rgba(34,148,245,0.1);border:1px solid rgba(34,148,245,0.4);color:#2294F5}
.ord-tag.orange{background:rgba(255,126,0,0.1);border:1px solid rgba(255,126,0,0.4);color:#FF7E00}
.ord-tag.green{background:rgba(80,158,58,0.1);border:1px solid rgba(80,158,58,0.4);color:#509E3A}
.ord-tag.red{background:rgba(218,54,52,0.1);border:1px solid rgba(218,54,52,0.4);color:#DA3634}

/* Circular progress */
.ord-circle{width:32px;height:32px;flex-shrink:0;position:relative}
.ord-circle svg{width:32px;height:32px;transform:rotate(-90deg)}
.ord-circle .bg{fill:none;stroke:#f0e8e8;stroke-width:3}
.ord-circle .fill{fill:none;stroke:#DA3634;stroke-width:3;stroke-linecap:round;stroke-dasharray:75.4}
.ord-circle .pct{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:8px;font-weight:700;color:#DA3634}

/* Suppliers section */
.ord-sup-hd{display:flex;justify-content:space-between;align-items:center}
.ord-sup-hd .left{display:flex;align-items:center;gap:10px}
.ord-sup-hd .left .sup-icon{width:24px;height:24px;flex-shrink:0;border-radius:6px;background:rgba(218,54,52,0.08);display:flex;align-items:center;justify-content:center}
.ord-sup-hd .left .sup-icon img{width:16px;height:16px;display:block}
.ord-sup-hd .left h3{font-size:16px;font-weight:600;color:#000;margin:0}
.ord-sup-hd .right{display:flex;align-items:center;gap:4px;font-size:12px;color:#666;cursor:default}
.ord-sup-arrow{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center}
.ord-sup-list{display:flex;flex-direction:column;gap:14px}
.ord-sup-item{display:flex;align-items:center;gap:12px;padding:4px 0}
.ord-sup-avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,#FEF0EE,#F8DDD8);border:1.5px solid rgba(218,54,52,0.1);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:#DA3634}
.ord-sup-tag{height:26px;padding:0 10px;border-radius:8px;display:flex;align-items:center;font-size:10px;font-weight:500;background:linear-gradient(180deg,#FFF6F4,#F8E1DB);border:1px solid rgba(218,54,52,0.1);color:#DA3634;white-space:nowrap;flex-shrink:0}

/* ============================================================
   首页工作台 — 设计稿预览 (2026-07)
   ============================================================ */
.home-hero{width:100%;height:auto;overflow:hidden;position:relative}
.home-hero-bg{width:100%;height:332px;overflow:hidden}
.home-hero-bg img{width:100%;height:100%;display:block;object-fit:cover}
.home-hero-title-area{margin-top:-50px;padding:0 14px 14px;position:relative;z-index:2}

/* ============================================================
   AI智造流程 — 设计稿 v6 (2026-07)
   ============================================================ */
.mf-card-hd{display:flex;align-items:center;gap:10px}
.mf-card-icon{width:24px;height:24px}
.mf-card-icon img{width:24px;height:24px;display:block}
.mf-flow-area{width:290px;height:249px;margin:0 auto;position:relative}
.mf-flow-step{position:absolute;width:126px;height:40px;border-radius:10px;background:#F4DDBF;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;color:#000;left:50%;transform:translateX(-50%)}
.mf-flow-step.mf-s1{top:0}
.mf-flow-step.mf-s2{top:142px}
.mf-flow-step.mf-s3{top:209px}
.mf-flow-branch{position:absolute;top:75px;height:40px;border-radius:10px;background:#F4DDBF;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;color:#000;padding:0 10px}
.mf-flow-branch.left{left:0;width:137px}
.mf-flow-branch.right{left:159px;width:131px}

/* ============================================================
   首页 6宫格 — 雪碧图版 sprite-products (2026-07)
   ============================================================ */

/* ============================================================
   首页 — 促销卡 + 最近项目卡片 (2026-07)
   ============================================================ */
.home-promo-card{margin:14px 14px 0;padding:0 20px;border-radius:10px;background:linear-gradient(78.47deg,#FFE2B2 0%,#FFFAF1 100%);border:1px solid rgba(247,222,194,0.6);display:flex;align-items:center;gap:10px;height:70px}
.home-tag-new{height:28px;padding:0 10px;border-radius:122px;display:flex;align-items:center;gap:4px;font-size:10px;font-weight:500;flex-shrink:0;background:rgba(255,126,0,0.1);border:1px solid rgba(255,126,0,0.4);color:#FF7E00}
