/* ============ 主题 ============ */
:root{
  --el-color-primary:#f97316;--el-color-primary-light-3:#fb9b5c;--el-color-primary-light-5:#fcb98b;--el-color-primary-light-7:#fdd5b9;--el-color-primary-light-8:#fee3d0;--el-color-primary-light-9:#fff1e8;--el-color-primary-dark-2:#c75c12;
  --el-border-radius-base:8px;
  --bg:#f4f6fa;--ink:#0f172a;--sub:#64748b;--line:#e8edf3;--navy:#131921;--navy2:#232f3e;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Segoe UI",Roboto,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}
.boot{display:flex;height:100vh;align-items:center;justify-content:center;color:var(--sub);font-size:16px}
.muted{color:var(--sub)}.sm{font-size:12px}.mb{margin-bottom:14px}.w100{width:100%}
.c-g{color:#16a34a}.c-y{color:#d97706}.c-r{color:#dc2626}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none}.dot.lg{width:14px;height:14px;margin-right:6px}
.ellipsis2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}
.fade-enter-active,.fade-leave-active{transition:opacity .18s,transform .18s}.fade-enter-from{opacity:0;transform:translateY(6px)}.fade-leave-to{opacity:0}

/* ============ 顶栏 ============ */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 24px;background:linear-gradient(90deg,var(--navy),var(--navy2));color:#fff;box-shadow:0 2px 12px rgba(0,0,0,.15)}
.brand{display:flex;align-items:center;gap:12px}
.logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#ff9900,#f97316);display:grid;place-items:center;font-size:22px;box-shadow:0 4px 14px rgba(249,115,22,.45)}
.brand-t{font-size:18px;font-weight:800;letter-spacing:.5px}.brand-s{font-size:11px;color:#94a3b8;letter-spacing:.6px}
.top-r{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.today{display:flex;align-items:center;gap:8px;font-size:12px;color:#cbd5e1}
.top-btn{color:#e2e8f0!important}.top-btn:hover{background:rgba(255,255,255,.08)!important}

/* ============ 步骤条 ============ */
.stepbar{position:sticky;top:60px;z-index:15;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 4px 16px rgba(15,23,42,.04)}
.steps{display:flex;max-width:1600px;margin:0 auto;padding:10px 24px;gap:4px;overflow-x:auto}
.st{flex:1;min-width:150px;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:12px;cursor:pointer;position:relative;transition:.2s}
.st:hover{background:#fff7ed}
.st-ic{position:relative;width:38px;height:38px;border-radius:11px;background:#f1f5f9;color:#64748b;display:grid;place-items:center;font-size:18px;flex:none;transition:.2s}
.st-no{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:#cbd5e1;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;border:2px solid #fff}
.st-b{display:flex;flex-direction:column;line-height:1.25}.st-b b{font-size:14px}.st-b small{color:var(--sub);font-size:11px}
.st-arrow{margin-left:auto;color:#cbd5e1}
.st.on{background:linear-gradient(135deg,#fff7ed,#ffedd5)}
.st.on .st-ic{background:linear-gradient(135deg,#fb923c,#f97316);color:#fff;box-shadow:0 6px 16px rgba(249,115,22,.35)}.st.on .st-no{background:#c2410c}
.st.done .st-ic{background:#dcfce7;color:#16a34a}.st.done .st-no{background:#16a34a}
.st.dis{opacity:.45;cursor:not-allowed}

/* ============ 布局 ============ */
.main{max-width:1600px;margin:0 auto;padding:18px 24px 30px;display:grid;grid-template-columns:1fr;gap:18px}
.main.side{grid-template-columns:minmax(0,1fr) 300px}
.aside{position:relative}
.foot{text-align:center;color:#94a3b8;font-size:12px;padding:20px 0 30px}
@media (max-width:1280px){.main.side{grid-template-columns:1fr}.aside{order:-1}.summary{position:static!important}}
@media (max-width:768px){.topbar{padding:10px 14px}.brand-s,.today span{display:none}.main{padding:12px}.stepbar{top:0;position:relative}}

.card{border-radius:16px!important;border:1px solid var(--line)!important;margin-bottom:16px}
.card .el-card__body{padding:18px 20px}
.step-wrap{min-width:0}
.sec-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.sec-l{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700}
.sec-l small{font-weight:400;color:var(--sub);font-size:12px}
.sec-ic{color:var(--el-color-primary);background:#fff1e8;border-radius:8px;padding:5px;width:28px;height:28px}
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.toolbar.tight{margin:0}
.next-bar{display:flex;justify-content:flex-end;gap:12px;padding:6px 0 10px}
.vchart{width:100%}

/* KPI */
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:16px}
.kpi{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}
.kpi-ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:22px;flex:none}
.kpi-l{font-size:12px;color:var(--sub)}.kpi-v{font-size:22px;font-weight:800;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-s{font-size:12px;color:#94a3b8}
.kpi-b{min-width:0}

/* 图片 */
.imgbox{position:relative;width:100%;overflow:hidden;background:#f1f5f9;border-radius:12px 12px 0 0}
.imgbox.round{border-radius:10px;flex:none}
.imgph{width:100%;height:100%;display:grid;place-items:center;font-size:40px;background:linear-gradient(135deg,#fff7ed,#fde68a 60%,#fdba74)}
.imgbox.round .imgph{font-size:22px}
.imgph.loading{animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.6}}
.ring-num{font-weight:800}.ring-sub{font-size:11px;color:var(--sub)}

/* ============ ① 节日卡片 ============ */
.hcard{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:16px;cursor:pointer;transition:.2s;position:relative}
.hcard:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,23,42,.10)}
.hcard.on{outline:2px solid var(--el-color-primary);box-shadow:0 10px 26px rgba(249,115,22,.2)}
.hcard.t-red{filter:saturate(.6)}
.hcard-badge{position:absolute;left:10px;top:10px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;background:rgba(255,255,255,.92);backdrop-filter:blur(4px)}
.b-green{color:#15803d}.b-yellow{color:#b45309}.b-red{color:#b91c1c}
.hcard-days{position:absolute;right:10px;bottom:10px;padding:2px 10px;border-radius:20px;background:rgba(15,23,42,.72);color:#fff;font-size:12px}.hcard-days b{font-size:15px}
.hcard-b{padding:12px 14px}
.hcard-t{display:flex;justify-content:space-between;align-items:center;font-size:16px;font-weight:700}
.hcard-en{font-size:12px;color:#94a3b8;margin:2px 0 8px}
.hcard-meta{display:flex;gap:14px;font-size:12px;color:var(--sub)}.hcard-meta span{display:flex;align-items:center;gap:4px}
.hcard-start{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);font-size:13px}
.hcard-roll{font-size:12px;color:#b45309;margin-top:6px}
.hol-detail{scroll-margin-top:150px}
.hd-head{display:grid;grid-template-columns:260px 1fr 200px;gap:20px;align-items:start}
.hd-img{border-radius:14px!important}
.hd-name{font-size:24px;font-weight:800}.hd-name small{font-size:14px;color:var(--sub);font-weight:400;margin-left:6px}
.hd-tags{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.hd-culture{color:#334155;line-height:1.7;margin:8px 0 12px}
.hd-cta{display:flex;flex-direction:column;gap:14px;align-items:stretch}
.hd-count{text-align:center;background:linear-gradient(135deg,#fff7ed,#ffedd5);border-radius:14px;padding:16px}
.hd-count b{display:block;font-size:40px;color:#ea580c;line-height:1}.hd-count span{font-size:13px;color:#9a3412}.hd-count em{display:block;font-style:normal;color:var(--sub);font-size:12px;margin-top:4px}
@media (max-width:1100px){.hd-head{grid-template-columns:1fr}}
.chain{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px}
.chain-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.mini-steps .el-step__title{font-size:12px!important;line-height:1.6}.mini-steps .el-step__description{font-size:12px!important}
.chain-flags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.tips{margin:0;padding-left:18px;line-height:1.9;color:#334155}
.promo-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.promo{display:flex;gap:12px;padding:12px;border-radius:12px;background:#f8fafc;border:1px solid var(--line)}.promo-e{font-size:30px}

/* ============ 通用 banner ============ */
.banner{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:16px;background-image:radial-gradient(circle at 100% 0,#fff1e8 0,transparent 40%)}
.banner-img{width:160px!important;border-radius:12px!important;flex:none}
.banner-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.banner-t{font-size:20px;font-weight:800;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:768px){.banner{flex-wrap:wrap}.banner-img{width:100%!important}}

/* ============ ② 商品卡片 ============ */
.pcard{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:16px;transition:.2s}
.pcard:hover{box-shadow:0 12px 28px rgba(15,23,42,.10)}.pcard.on{outline:2px solid var(--el-color-primary)}
.pcard-score{position:absolute;right:8px;top:8px;background:rgba(255,255,255,.94);border-radius:50%;padding:2px;line-height:0}
.pcard-v{position:absolute;left:10px;bottom:10px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;color:#fff}
.v-g{background:#16a34a}.v-y{background:#d97706}.v-r{background:#dc2626}
.pcard-b{padding:12px 14px}
.pcard-t{font-size:16px;font-weight:700;margin-bottom:6px}
.kw-line{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.pcard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:#f8fafc;border-radius:10px;padding:10px}
.pcard-grid div{display:flex;flex-direction:column}.pcard-grid span{font-size:11px;color:var(--sub)}.pcard-grid b{font-size:15px}
.pcard-mat,.pcard-angle{display:flex;gap:6px;align-items:flex-start;font-size:13px;margin-top:10px;color:#334155;line-height:1.5}
.pcard-mat .el-icon,.pcard-angle .el-icon{margin-top:3px;color:var(--el-color-primary);flex:none}
.pcard-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.pcard-act{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.cell-prod{display:flex;gap:10px;align-items:center}.cell-prod .imgbox{width:auto;aspect-ratio:1}
.cell-badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.click-rows .el-table__row{cursor:pointer}

/* ============ ③ 竞品 ============ */
.chance .chance-i{display:flex;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);line-height:1.6;color:#334155}
.chance-n{flex:none;width:22px;height:22px;border-radius:50%;background:#fff1e8;color:#ea580c;font-weight:700;display:grid;place-items:center;font-size:12px;margin-top:1px}

/* ============ ④ 材质 ============ */
.rec-card .el-card__body{background:linear-gradient(120deg,#fff 0,#fff7ed 100%)}
.rec{display:grid;grid-template-columns:340px 1fr;gap:20px;align-items:center}
@media (max-width:1100px){.rec{grid-template-columns:1fr}}
.rec-k{display:flex;align-items:center;gap:6px;color:#ea580c;font-weight:600}
.rec-n{font-size:28px;font-weight:800;margin:4px 0}
.rec-s{color:#334155}.rec-s b{color:var(--ink)}
.rec-why{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.mat-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.mat-opt{position:relative;display:flex;gap:10px;align-items:center;padding:8px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:.2s}
.mat-opt:hover{border-color:#fdba74}.mat-opt.on{border-color:var(--el-color-primary);box-shadow:0 6px 18px rgba(249,115,22,.18)}
.mat-opt .imgbox{width:64px!important}
.mat-opt-b{display:flex;flex-direction:column;min-width:0}.mat-opt-b b{font-size:13px}.mat-opt-b span{font-size:12px;color:var(--sub)}
.mat-ok{position:absolute;right:8px;top:8px;color:var(--el-color-primary);font-size:18px}
.mat-best{position:absolute;right:8px;bottom:8px}
.el-table .row-on td{background:#fff7ed!important}
.deep-head{display:flex;gap:16px;align-items:center;margin-bottom:6px}
.deep-img{width:96px!important}
.deep-n{font-size:22px;font-weight:800;display:flex;align-items:center}.deep-n small{font-size:13px;color:var(--sub);font-weight:400;margin-left:8px}
.deep-tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.deep-tip{display:flex;gap:6px;color:#9a3412;background:#fff7ed;border-radius:10px;padding:8px 12px;line-height:1.6}.deep-tip .el-icon{margin-top:4px;flex:none}
.deep-tabs .el-tabs__item{font-size:14px}
.proc{padding:10px 0}
.region{display:flex;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px}.region .el-icon{color:#ea580c}
.cert{border:1px solid var(--line);border-left:4px solid #f59e0b;border-radius:10px;padding:12px 14px;margin-bottom:12px;background:#fff}
.cert.lv-high{border-left-color:#dc2626}
.cert-h{display:flex;justify-content:space-between;align-items:center}.cert p{color:#334155;line-height:1.6;margin:8px 0}
.cert-m{display:flex;gap:16px;font-size:12px;color:var(--sub)}.cert-m span{display:flex;gap:4px;align-items:center}
.pc-box{border-radius:12px;padding:12px 16px}.pc-box h4{margin:0 0 6px;display:flex;align-items:center;gap:6px}.pc-box ul{margin:0;padding-left:18px;line-height:1.9}
.pc-box.g{background:#f0fdf4;color:#14532d}.pc-box.r{background:#fef2f2;color:#7f1d1d}
.dim-bars{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 24px}
.dim-bar{display:grid;grid-template-columns:72px 1fr;align-items:center;gap:8px;font-size:13px}

/* ============ ⑤ 利润 ============ */
.pf .el-input-number{width:100%}
.pf .el-form-item{margin-bottom:12px}
.verdict-card{border-width:2px!important}
.vc-g{border-color:#bbf7d0!important}.vc-y{border-color:#fde68a!important}.vc-r{border-color:#fecaca!important}
.vc-l{display:flex;flex-direction:column;align-items:center;gap:6px}.vc-n{font-size:18px;font-weight:800}
.dim{padding:7px 0;border-bottom:1px dashed var(--line)}
.dim-h{display:flex;align-items:center;gap:8px}.dim-h small{color:#94a3b8}.dim-h span{margin-left:auto;font-weight:800;font-size:16px}
.dim-w{font-size:12px;color:var(--sub);margin-top:2px}

/* ============ ⑥ 备货 ============ */
.modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.mode{display:flex;gap:12px;padding:14px;border:1.5px solid var(--line);border-radius:14px;cursor:pointer;transition:.2s;background:#fff}
.mode:hover{border-color:#fdba74}.mode.on{border-color:var(--el-color-primary);background:#fff7ed}
.mode-ic{font-size:26px;color:var(--el-color-primary);background:#fff1e8;border-radius:12px;padding:8px;width:44px;height:44px;flex:none}
.plan-form .el-input-number{width:150px}
.kd{padding:6px 4px 0}
.qty-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qty-grid div{background:#f8fafc;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column}
.qty-grid span{font-size:12px;color:var(--sub)}.qty-grid b{font-size:18px}
.qty-grid .hl{background:#f0fdf4}

/* ============ ⑦ 看板 ============ */
.kanban{display:grid;grid-template-columns:repeat(6,minmax(240px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}
.kcol{background:#f8fafc;border-radius:14px;padding:10px;min-height:180px;border-top:4px solid #94a3b8}
.k-research{border-top-color:#3b82f6}.k-verified{border-top-color:#8b5cf6}.k-sample{border-top-color:#f59e0b}.k-ordered{border-top-color:#f97316}.k-live{border-top-color:#16a34a}.k-dropped{border-top-color:#94a3b8;opacity:.8}
.kcol-h{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 10px}
.kcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:10px;box-shadow:0 2px 6px rgba(15,23,42,.04)}
.kcard-top{display:flex;gap:8px;align-items:center}.kcard-top .imgbox{width:56px!important}
.kcard-t{flex:1;min-width:0}.kcard-t b{cursor:pointer;font-size:13px}.kcard-t b:hover{color:var(--el-color-primary)}
.kcard-m{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--sub);margin:8px 0}
.kcard-a{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:8px}

/* ============ 右侧摘要 ============ */
.summary{position:sticky;top:150px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.sum-h{font-weight:800;font-size:15px;display:flex;gap:6px;align-items:center;margin-bottom:12px}
.sum-sec{margin-bottom:12px}.sum-k{font-size:12px;color:#94a3b8;margin-bottom:6px}
.sum-hol{display:flex;gap:10px;align-items:center;cursor:pointer}.sum-e{font-size:28px}.sum-hol>div{flex:1}
.sum-prod{display:flex;gap:10px;align-items:center}.sum-prod .imgbox{width:48px!important}
.sum-mat{display:flex;gap:8px;align-items:center;cursor:pointer;font-weight:600}
.sum-score{display:flex;gap:10px;align-items:center;background:#f8fafc;border-radius:12px;padding:8px;margin-bottom:12px}
.sum-v{font-weight:800}
.sum-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.sum-grid div{display:flex;flex-direction:column;background:#f8fafc;border-radius:8px;padding:6px 10px}.sum-grid span{font-size:11px;color:var(--sub)}
.sum-empty{color:#94a3b8;padding:20px 0;text-align:center;border:1px dashed var(--line);border-radius:12px;margin-bottom:12px}

/* 术语 */
.gl{line-height:1.7;color:#334155}
.gl-tag{margin-bottom:10px}.gl-tag p{margin:4px 0 0;color:#475569;font-size:13px;line-height:1.6}
