* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: "Microsoft YaHei", "PingFang SC", sans-serif; background: #f0f2f5; color: #333; font-size: 14px; }

/* ===== 新壳层：左侧导航 ===== */
.layout { display: flex; height: 100vh; overflow: hidden; }
.sidebar { width: 200px; background: #001529; color: #fff; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; }
.sidebar .logo { font-size: 17px; font-weight: bold; padding: 20px 18px 16px; letter-spacing: 1px; border-bottom: 1px solid #1f3049; line-height: 1.5; }
.sidebar nav { flex: 1; padding: 10px 0; overflow-y: auto; }
.sidebar nav div { display: flex; align-items: center; padding: 11px 18px; cursor: pointer; color: rgba(255,255,255,.68); font-size: 14px; border-left: 3px solid transparent; }
.sidebar nav div:hover { color: #fff; background: rgba(22,119,255,.08); }
.sidebar nav div.on { color: #fff; background: rgba(22,119,255,.16); border-left-color: #1677ff; font-weight: 600; }
.side-foot { padding: 14px 16px; border-top: 1px solid #1f3049; }
.side-role { font-size: 13px; color: #ffc53d; margin-bottom: 4px; }
.side-foot .who { font-size: 13px; color: rgba(255,255,255,.85); }
.main { flex: 1; padding: 18px 22px; width: 99%; max-width: none; min-width: 0; overflow-y: auto; height: 99vh; box-sizing: border-box; }
.pagehead { display: flex; align-items: baseline; gap: 14px; margin-bottom: 14px; }
.pagehead h2 { font-size: 19px; }

/* 工作台首页 */
.home-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 14px; }
.home-grid .card:first-child { grid-column: 1 / -1; }
.homescript { padding: 6px 8px; border-radius: 4px; cursor: pointer; }
.homescript:hover { background: #f0f7ff; }
.shoprow { display: flex; gap: 10px; flex-wrap: wrap; }
.shopcard { background: #fafafa; border-radius: 6px; padding: 10px 14px; min-width: 130px; }
.shopcard.dim { opacity: .55; }
.shopname { font-weight: 600; font-size: 13px; }
.shopnum { font-size: 18px; color: #1677ff; font-weight: 700; margin: 2px 0; }

/* 运营看板 */
.ops-total { display: flex; gap: 26px; background: #001529; color: #fff; border-radius: 8px; padding: 16px 22px; margin-bottom: 14px; }
.ops-total b { display: block; font-size: 22px; color: #ffc53d; }
.ops-total .muted { color: rgba(255,255,255,.6); }
.opsrow { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
.opscard { background: #fff; border-radius: 8px; padding: 12px 14px; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.opscard.dim { opacity: .55; }
.kpirow { display: flex; justify-content: space-between; font-size: 13px; padding: 3px 0; }
.kpirow b { color: #1677ff; }

/* 财务子标签 */
.subtabs { display: flex; gap: 4px; margin-bottom: 12px; background: #fff; border-radius: 6px; padding: 4px; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.subtabs div { padding: 8px 18px; cursor: pointer; border-radius: 4px; font-size: 14px; color: #555; }
.subtabs div.on { background: #1677ff; color: #fff; font-weight: 600; }

/* 报价工作台分栏自适应：grid 两栏，窄屏自动单栏 */
.quote-cols { display: grid; grid-template-columns: minmax(560px, 1fr) minmax(360px, 470px); gap: 14px; align-items: start; }
.quote-left { min-width: 0; }
.quote-right { min-width: 0; position: sticky; top: 14px; max-height: calc(100vh - 28px); overflow-y: auto; padding-right: 2px; }
@media (min-width: 1560px) { .quote-cols { grid-template-columns: minmax(620px, 1fr) minmax(500px, 640px); } }
@media (max-width: 1080px) { .quote-cols { grid-template-columns: 1fr; } .quote-right { position: static; max-height: none; } }
.quote-scroll { overflow-x: auto; }
.quote-scroll table { margin: 0; }
.quote-scroll thead th { position: sticky; top: 0; z-index: 2; background: #fafafa; box-shadow: 0 1px 0 #e8e8e8; }

/* 异常标红引擎 */
.anomaly-red td { background: #fff1f0 !important; }
.anomaly-red .name-cell { border-left: 3px solid #ff4d4f; }
.anomaly-orange td { background: #fff7e6 !important; }
.anomaly-orange .name-cell { border-left: 3px solid #fa8c16; }
.anomaly-yellow td { background: #fffbe6 !important; }
.anomaly-yellow .name-cell { border-left: 3px solid #faad14; }
.anomaly-badge { color: #ff4d4f; font-size: 12px; cursor: help; }
/* 价格链面包屑 */
.chain-breadcrumb { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; background: #f0f7ff; border: 1px solid #d6e4ff; border-radius: 4px; padding: 6px 10px; margin-bottom: 8px; font-size: 12.5px; }
.chain-node { background: #fff; border-radius: 3px; padding: 2px 8px; border: 1px solid #d6e4ff; }
.chain-node b { color: #1677ff; }
.chain-discount { border-color: #ffa39e; background: #fff1f0; }
.chain-discount b { color: #cf1322; }
.chain-arrow { color: #1677ff; font-weight: bold; }

/* 预警中心 */
.alert-item { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; border-radius: 4px; margin-bottom: 4px; font-size: 13px; }
.alert-item .alert-title { font-weight: 600; }
.alert-red { background: #fff1f0; border-left: 3px solid #ff4d4f; }
.alert-orange { background: #fff7e6; border-left: 3px solid #fa8c16; }
.alert-yellow { background: #fffbe6; border-left: 3px solid #faad14; }
.alert-green { background: #f6ffed; border-left: 3px solid #52c41a; }

/* 进化看板 */
.evorow { display: flex; gap: 10px; flex-wrap: wrap; }
.evocard { background: #f5f8ff; border-radius: 6px; padding: 10px 16px; min-width: 120px; text-align: center; }
.evocard span { display: block; font-size: 12px; color: #666; margin-bottom: 4px; }
.evocard b { font-size: 20px; }

/* AI搜索结果卡片 */
.aicard { border: 1px solid #e6f4ff; background: linear-gradient(180deg,#f7fbff, #fff); border-radius: 8px; padding: 10px 14px; margin-bottom: 8px; }
.aicard .ai-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.aicard .ai-name { font-weight: 700; font-size: 15px; }
.aicard .ai-note { margin-top: 6px; font-size: 12.5px; color: #8c6d1f; background: #fffbe6; border-radius: 4px; padding: 4px 8px; }
.ai-price { font-size: 22px; font-weight: 700; color: #1677ff; white-space: nowrap; }
.ai-price::before { content: '¥'; font-size: 14px; margin-right: 2px; color: #1677ff; }
.optbtn { background: #fff; border: 1px solid #d9d9d9; border-radius: 15px; padding: 0 11px; height: 30px; display: inline-flex; align-items: center; font-size: 13px; color: #333; line-height: 1.5; }
.optbtn b { color: #fa541c; font-weight: 700; font-size: 15.5px; margin-left: 4px; font-family: Consolas, "Courier New", monospace; }
/* 报价条内操作按钮与倍率按钮同尺寸 */
.aicard .btn-sm, .rq-line .btn-sm { height: 30px; padding: 0 11px; display: inline-flex; align-items: center; font-size: 13px; border-radius: 15px; }
.optbtn:hover { border-color: #1677ff; color: #1677ff; }
.optbtn.on { background: #1677ff; border-color: #1677ff; color: #fff; font-weight: 600; }
.optbtn.on b { color: #ffe58f; }
/* 报价参考行 */
.refrow { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 7px; }
.ref { border-radius: 4px; padding: 3px 10px; font-size: 12.5px; }
.ref b { margin-left: 3px; font-size: 17px; }
.ref-sell { background: #e6f4ff; color: #0958d9; }
.ref-high { background: #fff1f0; color: #cf1322; }
.ref-low { background: #fffbe6; color: #d48806; }
.ref-cost { background: #f6ffed; color: #389e0d; }
.pmult { font-style: normal; font-size: 10px; font-weight: 500; opacity: .65; margin-left: 2px; white-space: nowrap; }
/* 话术库·AI问答 气泡UI */
.kbqa-card { background: linear-gradient(180deg, #f7faff 0%, #fff 100%); }
.kbqa-input { flex: 1; padding: 12px 16px; font-size: 15px; border: 1.5px solid #d6e4ff; border-radius: 10px; outline: none; }
.kbqa-input:focus { border-color: #1677ff; box-shadow: 0 0 0 3px rgba(22,119,255,.12); }
.kb-q-bubble { align-self: flex-end; max-width: 78%; background: #1677ff; color: #fff; border-radius: 14px 14px 3px 14px; padding: 9px 14px; font-size: 14.5px; margin: 6px 0 10px auto; box-shadow: 0 1px 3px rgba(22,119,255,.25); }
.kb-a-box { background: #fff; border: 1px solid #e8e8e8; border-radius: 12px; padding: 14px 16px; box-shadow: 0 1px 4px rgba(0,0,0,.04); }
.kb-typing { display: flex; align-items: center; gap: 3px; color: #8c8c8c; font-size: 13px; padding: 12px 4px; }
.kb-typing span { width: 6px; height: 6px; border-radius: 50%; background: #1677ff; animation: kbblink 1.2s infinite; margin-right: 2px; }
.kb-typing span:nth-child(2) { animation-delay: .2s; }
.kb-typing span:nth-child(3) { animation-delay: .4s; }
@keyframes kbblink { 0%,80%,100% { opacity: .25; } 40% { opacity: 1; } }
#ai-qty-0, #ai-unit-0 { }
/* AI搜索框 */
.aisearch-wrap { display: flex; align-items: center; gap: 8px; position: relative; }
.aisearch-icon { position: absolute; left: 14px; font-size: 17px; }
.aisearch-input { flex: 1; padding: 13px 84px 13px 42px; font-size: 15px; border: 2px solid #1677ff; border-radius: 8px; box-shadow: 0 2px 8px rgba(22,119,255,.12); }
.aisearch-input:focus { outline: none; border-color: #0958d9; }
.aisearch-clear { position: absolute; right: 118px; background: #f0f0f0; border: none; border-radius: 50%; width: 22px; height: 22px; line-height: 1; color: #888; font-size: 14px; padding: 0; }
.aisearch-btn { padding: 12px 26px; font-size: 15px; border-radius: 8px; }
.exchip { background: #f5f8ff; border: 1px solid #d6e4ff; color: #2f54eb; border-radius: 14px; padding: 3px 12px; font-size: 12.5px; }
.exchip:hover { background: #e6f4ff; }

/* ========== 移动端适配（V4-6） ========== */
@media (max-width: 768px) {
  .sidebar { width: 56px; }
  .sidebar .logo { font-size: 10px; padding: 10px 4px; text-align: center; }
  .sidebar nav div { padding: 10px 0; justify-content: center; font-size: 16px; }
  .sidebar nav div span { display: none; } /* 隐藏文字只留图标 */
  .side-role, .side-foot .who { display: none; }
  .main { padding: 10px; }
  .pagehead { flex-wrap: wrap; }
  .pagehead h2 { font-size: 16px; }
  .quote-cols { grid-template-columns: 1fr !important; }
  .quote-right { position: static !important; max-height: none !important; }
  .aisearch-input { padding: 10px 70px 10px 36px; font-size: 13px; }
  .aisearch-btn { padding: 10px 14px; font-size: 13px; }
  .aicard .ai-head { flex-direction: column; align-items: flex-start; }
  .aicard .ai-price { font-size: 18px; }
  .optbtn { padding: 3px 8px; font-size: 11px; }
  .optbtn b { font-size: 13px; }
  .kpi { grid-template-columns: repeat(2, 1fr) !important; }
  .evorow { flex-direction: column; }
  .alert-item { flex-direction: column; align-items: flex-start; gap: 2px; }
  #cat-nav { width: 100% !important; max-height: 200px; }
  .card { padding: 10px; }
  table { font-size: 12px; }
  th, td { padding: 4px 6px; }
  .home-grid { grid-template-columns: 1fr !important; }
  .shoprow, .opsrow { flex-direction: column; }
  .subtabs { flex-wrap: wrap; }
  .subtabs div { padding: 6px 10px; font-size: 12px; }
}

button { cursor: pointer; border: none; border-radius: 4px; padding: 6px 14px; font-size: 14px; }
input, select, textarea { padding: 6px 10px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 14px; }
input:focus, select:focus, textarea:focus { outline: none; border-color: #1677ff; }
.btn-p { background: #1677ff; color: #fff; } .btn-p:hover { background: #0958d9; }
.btn-d { background: #ff4d4f; color: #fff; }
.btn-s { background: #fff; border: 1px solid #d9d9d9; color: #333; } .btn-s:hover { border-color: #1677ff; color: #1677ff; }
.btn-sm { padding: 2px 8px; font-size: 12px; }

/* 登录 */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #1677ff 0%, #0958d9 100%); }
.login-box { background: #fff; border-radius: 8px; padding: 40px; width: 360px; box-shadow: 0 8px 30px rgba(0,0,0,.2); }
.login-box h2 { text-align: center; margin-bottom: 6px; }
.login-box .sub { text-align: center; color: #999; margin-bottom: 24px; font-size: 12px; }
.login-box .field { margin-bottom: 16px; }
.login-box input { width: 100%; padding: 10px; }
.login-box button { width: 100%; padding: 10px; background: #1677ff; color: #fff; font-size: 15px; }
.login-err { color: #ff4d4f; font-size: 12px; margin-top: 8px; text-align: center; min-height: 16px; }

/* 框架 */
.topbar { background: #001529; color: #fff; display: flex; align-items: center; padding: 0 20px; height: 52px; }
.topbar .logo { font-size: 17px; font-weight: bold; margin-right: 30px; }
.topbar .tabs { display: flex; gap: 4px; flex: 1; }
.topbar .tabs div { padding: 15px 16px; cursor: pointer; color: rgba(255,255,255,.75); }
.topbar .tabs div.on { color: #fff; border-bottom: 2px solid #1677ff; background: rgba(22,119,255,.15); }
.topbar .who { font-size: 13px; color: rgba(255,255,255,.85); }
.topbar .who b { color: #ffc53d; margin: 0 6px; }
.main { padding: 16px 20px; width: 99%; max-width: none; min-width: 0; margin: 0; }
.card { background: #fff; border-radius: 6px; padding: 16px; margin-bottom: 14px; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.card h3 { font-size: 15px; margin-bottom: 12px; border-left: 3px solid #1677ff; padding-left: 8px; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 7px 8px; border-bottom: 1px solid #f0f0f0; text-align: left; font-size: 13px; }
th { background: #fafafa; font-weight: 600; white-space: nowrap; }
tr:hover td { background: #f5f8ff; }
.muted { color: #999; font-size: 12px; }
.hl { color: #1677ff; font-weight: 600; }
.warn { color: #fa8c16; }
.danger { color: #ff4d4f; font-weight: 600; }
.tag { display: inline-block; background: #f0f5ff; color: #1677ff; border-radius: 3px; padding: 0 6px; font-size: 12px; margin-left: 6px; }
.tag-auto { background: #fff7e6; color: #fa8c16; }
.pill { border-radius: 10px; padding: 1px 8px; font-size: 12px; background: #f6ffed; color: #52c41a; border: 1px solid #b7eb8f; }
.row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.grow { flex: 1; }
.price-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 6px; margin-top: 6px; }
.price-cell { background: #fafafa; border-radius: 4px; padding: 6px 8px; font-size: 12px; }
.price-cell b { display: block; color: #1677ff; font-size: 14px; }
.price-cell.star { background: #e6f4ff; border: 1px solid #91caff; }
.master-item { border: 1px solid #f0f0f0; border-radius: 6px; padding: 10px; margin-bottom: 8px; }
.master-item .name { font-weight: 600; font-size: 14px; }
.modal-mask { position: fixed; inset: 0; background: rgba(0,0,0,.45); display: none; align-items: center; justify-content: center; z-index: 99; }
.modal-mask.show { display: flex; }
.modal { background: #fff; border-radius: 8px; padding: 24px; width: 640px; max-height: 80vh; overflow: auto; }
.modal h3 { margin-bottom: 12px; }
.modal pre { background: #f6f8fa; padding: 12px; border-radius: 6px; white-space: pre-wrap; font-family: inherit; font-size: 14px; line-height: 1.7; }
.empty { color: #bbb; text-align: center; padding: 24px 0; }
.kpi { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.kpi .item { background: #fafafa; padding: 10px; border-radius: 6px; }
.kpi .item b { display: block; font-size: 18px; color: #1677ff; }
.quote-item td input { width: 90px; }
.searchbar input { width: 420px; padding: 9px 12px; }
.qtext { line-height: 1.8; }
/* V40 我的报价单：统计条+筛选chips */
.qstats { display:flex; gap:14px; flex-wrap:wrap; font-size:12px; color:#595959; background:#f6f8fa; border-radius:6px; padding:7px 10px; }
.qstats b { font-size:14px; margin-left:2px; }
.qfchip { padding:3px 12px; border:1px solid #d9d9d9; background:#fff; border-radius:14px; cursor:pointer; font-size:12px; }
.qfchip:hover { border-color:#1677ff; color:#1677ff; }
.qfchip.on { background:#1677ff; color:#fff; border-color:#1677ff; font-weight:600; }
.copy-ok { color: #52c41a; margin-left: 8px; }

/* 分类价格表 */
.cat-nav-item { padding: 4px 6px 4px 14px; cursor: pointer; font-size: 13px; border-radius: 4px; }
.cat-nav-item.on { background: #e6f4ff; }
.cat-nav-item:hover { background: #f0f7ff; }
.cat-seg { margin-bottom: 14px; }
.cat-seg-title { font-weight: 600; padding: 6px 8px; background: #f5f8ff; border-radius: 4px; margin-bottom: 6px; font-size: 13px; }
#cat-table table { border-collapse: separate; border-spacing: 0; }
#cat-table thead th { position: sticky; top: 0; z-index: 2; background: #fafafa; box-shadow: 0 1px 0 #e8e8e8; }
#cat-table tbody td:first-child, #cat-table thead th:first-child { position: sticky; left: 0; z-index: 1; }
#cat-table thead th:first-child { z-index: 3; background: #fafafa; }
#cat-table tbody td:first-child { background: #fff; font-weight: 600; white-space: nowrap; box-shadow: 1px 0 0 #f0f0f0; }
#cat-table td.num { text-align: right; font-family: Consolas, "Courier New", monospace; font-variant-numeric: tabular-nums; white-space: nowrap; }
th.sortable { cursor: pointer; user-select: none; white-space: nowrap; }
th.sortable:hover { color: #1677ff; }

/* 列语义分区（V2） */
.mat-badge { display:inline-block; border-radius:3px; padding:0 4px; font-size:11px; margin-left:2px; }
.mat-304 { background:#e6f4ff; color:#1677ff; }
.mat-316 { background:#f9f0ff; color:#722ed1; }
.mat-201 { background:#fffbe6; color:#d48806; }
.mat-半钢 { background:#f5f5f5; color:#595959; }
#cat-table thead th.z-cost { background:#fff7e6; }
#cat-table thead th.z-sell { background:#e6f4ff; }
#cat-table thead th.z-channel { background:#f9f0ff; }
#cat-table thead th.z-peer { background:#f5f5f5; }
#cat-table thead th.z-weight, #cat-table thead th.z-pack { background:#fafafa; }
#cat-table thead th.z-cost:first-child { background:#fafafa; }
#cat-table tbody td:nth-child(n+2) { }
.cat-nav-item { padding: 4px 6px 4px 14px; cursor: pointer; font-size: 12.5px; border-radius: 4px; line-height: 1.4; }
.rowband { display:inline-block; background:#f0f5ff; color:#2f54eb; border-radius:3px; padding:0 4px; font-size:11px; margin-left:4px; }
.hl-row td { background: #fff7cc !important; animation: fadehl 3s; }
@keyframes fadehl { 0% { background: #ffe58f; } 100% { background: #fff7cc; } }
.catsug { padding: 6px 8px; cursor: pointer; border-radius: 4px; font-size: 13px; }
.catsug:hover { background: #f0f7ff; }
.qbadge { background: #ff4d4f; color: #fff; border-radius: 9px; font-size: 11px; padding: 0 6px; margin-left: 6px; }

/* 搜索结果分层 */
.master-item.product { border-left: 3px solid #1677ff; }
.master-item.spec { border-left: 3px solid #52c41a; background: #fcfffc; }
.spec-extra { display: none; }
/* 详情面板加载反馈（点"详"后可见） */
.info-flash { animation: infoFlash 1.2s ease-out; }
@keyframes infoFlash { 0% { background: #fff7cc; box-shadow: 0 0 0 3px #ffe58f; } 100% { background: transparent; box-shadow: none; } }

/* ========== V6 分类价格表：统一长表（核心列+行明细） ========== */
#cat-table table.v6table { border-collapse: separate; border-spacing: 0; }
.v6table .c-expand { width: 26px; text-align: center; padding: 7px 2px; }
.v6table td.c-expand, .v6table th.c-expand { position: sticky; left: 0; background: #fafafa; }
.v6table tbody td.c-expand { background: #fff; box-shadow: 1px 0 0 #f0f0f0; }
.exp-t { cursor: pointer; color: #1677ff; display: inline-block; width: 100%; font-size: 14px; font-weight: 700; }
.exp-t:hover { color: #fff; background: #1677ff; border-radius: 3px; }
.cat-legend { font-size: 12px; color: #8c8c8c; }
.cat-legend .lg-cost { color: #d46b08; font-weight: 600; }
.v6table .c-spec { position: sticky; left: 26px; min-width: 150px; }
.v6table thead th.c-spec { z-index: 4; background: #fafafa; }
.v6table tbody td.c-spec { z-index: 2; background: #fff; font-weight: 600; white-space: nowrap; box-shadow: 1px 0 0 #f0f0f0; }
.v6table thead th.c-cost { background: #ffe7ba; }
.v6table td.c-cost { background: #fffdf5; }
.v6table td.c-cost b, .v6table td.c-cost span { color: #d46b08; }
.v6table thead th.c-sell { background: #cdf3bd; font-size: 14px; }
.v6table td.c-sell { background: #f6ffed; font-size: 16px; font-weight: 700; color: #237804 !important; }
.v6table td.c-peer { color: #8c8c8c; }
.v6table td.c-peer b { font-size: 14.5px; font-weight: 600; color: #595959; }
.v6table .c-margin { font-weight: 600; }
.v6table thead th.c-margin { background: #f0f5ff; }
.m-ok { color: #52c41a; } .m-warn { color: #fa8c16; } .m-neg { color: #ff4d4f; }
.v6table td.num, .v6table th.num { text-align: right; font-family: Consolas, "Courier New", monospace; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v6table tbody tr:hover td.c-spec, .v6table tbody tr:hover td.c-expand { background: #f0f7ff; }
.v6table tbody tr:hover td.c-sell { background: #eaffd9; }
.v6table .mut { color: #d9d9d9; }
.sugg { color: #fa8c16; font-size: 12px; margin-right: 2px; cursor: help; }
/* 状态徽章 */
.stb { display: inline-block; border-radius: 3px; padding: 0 5px; font-size: 11px; margin-right: 3px; white-space: nowrap; }
.st-stop { background: #fff1f0; color: #cf1322; border: 1px solid #ffa39e; }
.st-out { background: #fff1f0; color: #fa541c; }
.st-ask { background: #f0f5ff; color: #2f54eb; }
.st-nobody { background: #f9f0ff; color: #722ed1; }
.st-stock { background: #f6ffed; color: #52c41a; }
/* 行明细展开卡片 */
.rd-row td { background: #fafcff !important; border-bottom: 2px solid #d6e4ff; padding: 8px 10px 10px; }
.rd-row.rq-bar td { background: #fffdf7 !important; border-bottom: 2px solid #ffe58f; }
.rq-line { align-items: center !important; gap: 8px; }
/* 页内报价篮（分类价格表页，不跳转完成报价） */
.cq-fab { position: fixed; right: 26px; bottom: 22px; z-index: 50; background: #001529; color: #fff; border-radius: 22px; padding: 10px 18px; cursor: pointer; font-size: 14px; box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.cq-fab b { background: #ff4d4f; border-radius: 9px; font-size: 11px; padding: 1px 7px; margin: 0 2px; }
.cq-fab:hover { background: #0958d9; }
.cq-panel { position: fixed; right: 26px; bottom: 72px; z-index: 50; width: min(560px, 92vw); background: #fff; border-radius: 8px; box-shadow: 0 8px 30px rgba(0,0,0,.22); padding: 12px 14px; max-height: 56vh; overflow: auto; }
.cq-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 14px; }
.cq-item { display: flex; align-items: center; gap: 6px; padding: 5px 0; border-bottom: 1px solid #f0f0f0; font-size: 12.5px; }
.cq-item .cq-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.cq-item .cq-sub { font-family: Consolas, monospace; color: #1677ff; min-width: 62px; text-align: right; }
.cq-item input { padding: 3px 6px; font-size: 12.5px; }
.rd-group { margin-bottom: 7px; }
.rd-group:last-child { margin-bottom: 0; }
.rd-title { font-size: 12px; font-weight: 700; color: #1c4fa1; margin-bottom: 4px; }
.rd-body { display: flex; flex-wrap: wrap; gap: 6px; }
.dchip { display: inline-flex; align-items: baseline; gap: 5px; background: #fff; border: 1px solid #e8e8e8; border-radius: 4px; padding: 3px 8px; font-size: 12.5px; max-width: 100%; }
.dchip .d-k { color: #8c8c8c; font-size: 11.5px; }
.dchip b { font-family: Consolas, "Courier New", monospace; font-variant-numeric: tabular-nums; font-weight: 600; }
.dchip i { color: #bfbfbf; font-size: 11px; font-style: normal; text-decoration: line-through; }
.d-cost { border-color: #ffe58f; background: #fffdf5; }
.d-cost b { color: #d46b08; }
.d-chan { border-color: #d3adf7; background: #fbf7ff; }
.d-chan b { color: #722ed1; }
.d-mult { background: #f9f0ff; color: #722ed1; border-radius: 3px; padding: 0 4px; font-size: 11px; font-weight: 600; }
.d-logi { border-color: #b7eb8f; background: #fcfffc; }
.d-logi b { color: #389e0d; }
.d-stru { border-color: #91caff; background: #f7fbff; }
.d-stru b { color: #096dd9; }
.d-attr { border-color: #e8e8e8; }
.d-text { border-color: #ffe58f; background: #fffdf0; }
.d-text span:last-child { color: #614700; }
/* 导航：收藏/折叠 */
.fav-star { color: #d4d4d4; cursor: pointer; margin-right: 4px; font-size: 12px; }
.fav-star:hover { color: #fa8c16; }
.fav-star.on { color: #faad14; }
.cat-fav-group { border-bottom: 1px solid #f0f0f0; padding-bottom: 8px; margin-bottom: 8px; }
.nav-sheet-head { user-select: none; }
.nav-sheet-head:hover { background: #e6f0ff !important; }
.nav-sheet-head .chev { font-size: 10px; color: #999; width: 12px; display: inline-block; }

/* ===== 滚动经营账·经营日历（V9-M1） ===== */
.cal-grid{display:flex;flex-wrap:wrap;gap:4px;max-width:620px}
.cal-cell{width:36px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid #e5e6eb;border-radius:4px;font-size:12px;background:#fff;color:#333}
.cal-ok{background:#f6ffed;border-color:#b7eb8f;color:#389e0d}
.cal-gap{background:#fff7e6;border-color:#ffd591;color:#d46b08}
.cal-rest{background:#fafafa;color:#999;text-decoration:line-through}
.cal-legend{display:flex;align-items:center;gap:6px;font-size:12px;color:#666;margin-bottom:6px;flex-wrap:wrap}
.cal-legend .cal-cell{width:24px;height:20px}
.rp-g td{font-weight:600;background:#f7f8fa}
.rp-sum td{font-weight:700;background:#f0f5ff}

/* ===== V9 分组导航 ===== */
.sidebar nav .nav-group { padding: 16px 18px 4px; font-size: 11px; color: rgba(255,255,255,.38); letter-spacing: 1.5px; cursor: default; border-left: 3px solid transparent; }
.sidebar nav .nav-group:hover { color: rgba(255,255,255,.38); background: none; }
.sidebar .logo { font-size: 16px; }

/* ===== V2b 客户档位模式 + 竞争力指示 ===== */
.tierbtn { padding:5px 14px; border:1px solid #d9d9d9; background:#fff; border-radius:6px; cursor: pointer; font-size:13px; }
.tierbtn.on { background:#1677ff; color:#fff; border-color:#1677ff; font-weight:600; }
/* 分类价格表·档位切换条（当前档位高亮） */
.tierbtn2 { padding:6px 18px; border:1px solid #d9d9d9; background:#fff; border-radius:8px; cursor:pointer; font-size:13px; color:#555; transition:all .15s; line-height:1.4; }
.tierbtn2:hover { border-color:#1677ff; color:#1677ff; background:#f7faff; }
.tierbtn2:active { transform:scale(.96); }
.tierbtn2.on { background:#1677ff; color:#fff; border-color:#1677ff; font-weight:700; box-shadow:0 2px 8px rgba(22,119,255,.35); }
.optbtn.opt-zp { border-color:#ffa39e; color:#cf1322; }
.optbtn.opt-zp.on { background:#fff1f0; border-color:#cf1322; color:#cf1322; }
.optbtn.opt-pp { border-color:#91d5ff; color:#096dd9; }
.optbtn.opt-pp.on { background:#e6f7ff; border-color:#096dd9; color:#096dd9; }
.tag-tier { background:#f0f5ff; color:#2f54eb; font-size:11px; padding:1px 6px; border-radius:8px; white-space:nowrap; }
.cdot { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:6px; vertical-align:middle; }
.dot-green { background:#52c41a; box-shadow:0 0 0 2px #f6ffed; }
.dot-yellow { background:#faad14; box-shadow:0 0 0 2px #fffbe6; }
.dot-red { background:#ff4d4f; box-shadow:0 0 0 2px #fff1f0; }
.dot-gray { background:#d9d9d9; }

/* ==================== 报表中心 ==================== */
.rpt-cal { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; max-width:760px; }
.rpt-cal-wd { text-align:center; font-size:12px; color:#889; padding:2px 0; }
.rpt-cal-cell { position:relative; min-height:52px; border-radius:8px; border:1px solid #e3e8ef; background:#f7f9fc; padding:4px 6px; overflow:hidden; }
.rpt-cal-cell.blank { border:none; background:transparent; }
.rpt-cal-cell .d { font-size:12px; color:#667; }
.rpt-cal-cell .v { position:absolute; right:5px; bottom:3px; font-size:11px; font-weight:600; color:#33506e; }
.rpt-cal-cell.ok { border-color:#87e8b1; }
.rpt-cal-cell.gap { border-color:#ffa39e; background:#fff8f7; }
.rpt-cal-cell.gap::after { content:'缺'; position:absolute; left:5px; bottom:3px; font-size:10px; color:#e8704a; }
.rpt-cal-cell.rest { opacity:.55; }
.rpt-cal-cell.lv1 { background:#e8f5ec; } .rpt-cal-cell.lv2 { background:#c9ebd6; }
.rpt-cal-cell.lv3 { background:#a3ddba; } .rpt-cal-cell.lv4 { background:#7ccb9e; }
.rpt-cal-cell.lv1.gap, .rpt-cal-cell.lv2.gap, .rpt-cal-cell.lv3.gap, .rpt-cal-cell.lv4.gap { background:#f7d9d5; }
.rpt-sbar { display:inline-block; vertical-align:middle; width:90px; height:9px; background:#eef1f6; border-radius:5px; overflow:hidden; margin-left:6px; }
.rpt-sbar i { display:block; height:100%; background:linear-gradient(90deg,#8fc9ff,#4c6ef5); border-radius:5px; }
.ri-shop { padding:3px 6px; border:1px solid #d5dce6; border-radius:6px; background:#fff; font-size:12.5px; max-width:120px; }
.tag { background:#f0f5ff; color:#2f54eb; font-size:11px; padding:1px 6px; border-radius:8px; white-space:nowrap; }

/* ==================== 分析库折叠组 ==================== */
details.lib-grp { border:1px solid #e3e8ef; border-radius:10px; background:#fff; margin-bottom:12px; overflow:hidden; }
details.lib-grp > summary { cursor:pointer; padding:11px 14px; font-weight:600; font-size:14px; background:#f7f9fc; user-select:none; list-style:none; }
details.lib-grp > summary::-webkit-details-marker { display:none; }
details.lib-grp > summary::before { content:'▸ '; color:#4c6ef5; }
details.lib-grp[open] > summary::before { content:'▾ '; }
details.lib-grp[open] > summary { border-bottom:1px solid #e3e8ef; }
details.lib-grp > .row { padding:12px; }

/* 侧栏布局：nav可滚动，底部用户区不再遮挡最后的导航项（小屏修复） */
.sidebar { display: flex; flex-direction: column; }
.sidebar .logo { flex-shrink: 0; }
.sidebar nav { flex: 1; min-height: 0; overflow-y: auto; padding-bottom: 8px; }
.sidebar nav::-webkit-scrollbar { width: 4px; }
.sidebar nav::-webkit-scrollbar-thumb { background: #2a4a6b; border-radius: 2px; }
.side-foot { flex-shrink: 0; position: static; }

/* ==================== UI审查修复（P3打磨） ==================== */
/* 分析库折叠组：箭头指示器 + 旋转动画 + hover反馈 */
details.lib-grp > summary { transition: background .15s; }
details.lib-grp > summary:hover { background: #eef3fa; }
details.lib-grp > summary::before { content: '▸'; display: inline-block; width: 14px; color: #4c6ef5; transition: transform .15s; }
details.lib-grp[open] > summary::before { content: '▸'; transform: rotate(90deg); }
/* 侧栏紧凑：行高 41→35，分组头间距收窄（768p 笔记本单份菜单不超可视区） */
.sidebar nav div { padding: 8px 18px; line-height: 1.35; }
.nav-group { padding: 8px 18px 4px; }
/* 对公主体宽表：容器内横滚 + 首列（主体名）冻结 */
#zt-list > table { display: block; max-width: 100%; overflow-x: auto; }
#zt-list th:first-child, #zt-list td:first-child { position: sticky; left: 0; background: #fff; z-index: 1; box-shadow: 2px 0 4px rgba(0,0,0,.06); }
#zt-list th:first-child { background: #f7f9fc; }
/* 工作台经营体检格：窄屏自适应列宽 */
.home-grid .evocard, [style*="repeat(7,1fr)"] { min-width: 0; }

/* ==================== 报表中心9页签一行排布（分析库5组提升为顶层页签） ==================== */
.subtabs.rpt-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
.subtabs.rpt-tabs div { white-space: nowrap; flex-shrink: 0; }

/* ==================== 分析库胶囊切换（替代顶层多页签，视觉更干净） ==================== */
.lib-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.lib-chip { padding: 6px 16px; border-radius: 999px; border: 1px solid #d5dce6; background: #fff; font-size: 13px; cursor: pointer; color: #4a5a70; transition: all .15s; user-select: none; }
.lib-chip:hover { border-color: #4c6ef5; color: #4c6ef5; }
.lib-chip.on { background: #4c6ef5; border-color: #4c6ef5; color: #fff; font-weight: 600; box-shadow: 0 2px 8px rgba(76,110,245,.25); }
/* 单组模式下隐藏折叠箭头（组强制展开，箭头无意义） */
details.lib-grp.solo > summary::before { display: none; }
details.lib-grp.solo > summary { cursor: default; background: #eef3fa; }

/* ==================== V11 利润作战台 / 利润率引擎（按利润率提升落地系统图） ==================== */
.ops-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.ops-head-main{flex:2;min-width:320px}
.ops-head-side{flex:1;min-width:280px;border-left:2px solid #f0f0f0;padding-left:16px}
.ops-bigrate{font-size:42px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
.ops-bigrate.ok{color:#237804}.ops-bigrate.mid{color:#d46b08}.ops-bigrate.bad{color:#cf1322}
.ratebar{position:relative;height:12px;border-radius:6px;background:#f0f0f0;overflow:hidden;margin:10px 0 6px}
.ratebar i{display:block;height:100%;background:linear-gradient(90deg,#4c6ef5,#237804);transition:width .3s}
.mdot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;flex-shrink:0}
.mdot-green{background:#52c41a;box-shadow:0 0 0 3px #52c41a22}.mdot-yellow{background:#faad14;box-shadow:0 0 0 3px #faad1422}
.mdot-red{background:#ff4d4f;box-shadow:0 0 0 3px #ff4d4f22}.mdot-gray{background:#d9d9d9}
.mtn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.mtn-grid-sm .mtn-card{padding:8px 12px}
.mtn-grid-sm .mtn-val{font-size:18px}
.mtn-card{border:1px solid #eee;border-left-width:4px;border-radius:10px;padding:12px 14px;background:#fafafa}
.mtn-card .mtn-val{font-size:24px;font-weight:700;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.mtn-ref{font-size:12px;color:#999;margin-top:2px}
.mdot-border-green{border-left-color:#52c41a}.mdot-border-yellow{border-left-color:#faad14}
.mdot-border-red{border-left-color:#ff4d4f}.mdot-border-gray{border-left-color:#d9d9d9}
.ops-act{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:12px}
.ops-act-col h3{margin-bottom:8px}
.ops-act-row{display:flex;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid #f5f5f5;font-size:13px}
.ops-act-row i{font-style:normal;font-size:12px;color:#888;flex-shrink:0}
.ops-act-row i.late{color:#cf1322;font-weight:600}
/* 利润瀑布 */
.wf-wrap{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.wf-row{display:grid;grid-template-columns:150px 1fr 110px 62px 110px;gap:10px;align-items:center;font-size:13px}
.wf-k{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wf-bar{height:16px;border-radius:4px;background:#f5f5f5;overflow:hidden}
.wf-bar i{display:block;height:100%;opacity:.8}
.wf-v{text-align:right;font-variant-numeric:tabular-nums}
.wf-pct{font-size:12px;color:#888;text-align:right}
.wf-bal{font-size:12px;text-align:right}
/* 16项成本对照 */
.cm-table td,.cm-table th{font-size:12.5px;padding:5px 8px}
.cm-grp{color:#1677ff;font-weight:600;white-space:nowrap}
/* 计分卡 */
.strat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
.strat-card{border:1px solid #eee;border-top:3px solid #d9d9d9;border-radius:10px;padding:10px 14px}
.strat-card.mdot-border-green{border-top-color:#52c41a}.strat-card.mdot-border-yellow{border-top-color:#faad14}
.strat-card.mdot-border-red{border-top-color:#ff4d4f}
.strat-metric{font-size:14px;margin:6px 0 2px}
/* 沙盘 */
.lever-wrap{display:flex;flex-direction:column;gap:6px}
.lever-row{display:grid;grid-template-columns:150px 130px 70px 24px 1fr;gap:10px;align-items:center;padding:5px 8px;border-radius:8px;background:#fafafa}
.lever-row input{padding:5px 8px;border:1px solid #ddd;border-radius:6px;font-variant-numeric:tabular-nums}
.sb-result{margin-top:10px;padding:10px 14px;border-radius:10px;background:#f6ffed;border:1px solid #b7eb8f}
.sb-rate{font-size:15px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.plan-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid #f5f5f5;font-size:13px}
.plan-row b{min-width:0}
/* admin 指标基准表 */
.bm-table input{width:70px;padding:4px 6px;border:1px solid #ddd;border-radius:5px;font-variant-numeric:tabular-nums}
.bm-table input.bm-name{width:120px}.bm-table input.bm-note{width:220px}

/* V13 ���ղ˵����ʼǱ�խ���� */
body.side-compact #tabs>div{padding:6px 18px!important;font-size:13px!important}
body.side-compact .nav-group{padding:8px 18px 4px!important;font-size:11px!important}
body.side-compact .logo{padding:12px 16px!important;font-size:16px!important}
body.side-compact .side-role{padding:2px 16px!important}

/* V15 ���󹹳ɶѵ��� */
.plbar{display:flex;height:34px;border-radius:8px;overflow:hidden;margin-top:8px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.plbar-seg{display:flex;align-items:center;justify-content:center;font-size:11.5px;color:#fff;font-weight:600;min-width:2px;transition:filter .15s}
.plbar-seg:hover{filter:brightness(1.12)}

/* V15 �����ٲ�ͼ */
.wfall{display:flex;flex-direction:column;gap:3px;margin-top:8px}
.wf2-row{display:grid;grid-template-columns:150px 1fr 110px 58px;gap:10px;align-items:center;font-size:13px;padding:1px 0}
.wf2-row:hover{background:#f7faff}
.wf2-k{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wf2-track{position:relative;height:20px;border-radius:4px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#e8e8e8 calc(25% - 1px),#e8e8e8 25%)}
.wf2-bar{position:absolute;top:0;height:100%;border-radius:4px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.wf2-bar em{font-style:normal;font-size:11px;color:#fff;font-weight:600}
.wf2-drop{position:absolute;top:-2px;width:1px;height:4px;background:#bbb}
.wf2-v{text-align:right;font-variant-numeric:tabular-nums}
.wf2-pct{font-size:12px;color:#888;text-align:right}
/* V15 �ɱ����շ����� */
.cm-table .cm-group td{background:#f0f7ff;padding:5px 8px!important;font-size:12.5px;border-left:3px solid #1677ff}

/* V17 ����ѡ��̬ */
.rpt-cal-cell.picked{outline:2.5px solid #1677ff;outline-offset:-2.5px;box-shadow:0 0 0 4px rgba(22,119,255,.18)}

/* V17b �������տ�Ŀҩ�� */
.b2-pill{display:inline-flex;align-items:baseline;gap:4px;font-size:12px;border-radius:14px;padding:2.5px 10px;white-space:nowrap}
.b2-pill b{font-size:12.5px;font-variant-numeric:tabular-nums}
.b2-gtag{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;border:1px solid;border-radius:6px;padding:2px 8px;flex-shrink:0}

/* V17c ����ȫ������ */
.day-card{border-left:none;background:linear-gradient(180deg,#f7faff 0%,#fff 120px)}
.day-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:6px 2px 12px;border-bottom:1px dashed #e8eef7;margin-bottom:12px}
.day-date{font-size:34px;font-weight:800;line-height:1.1;color:#1f3b5c}
.day-date small{font-size:15px;font-weight:600}
.day-wd{font-size:13px;font-weight:600;color:#1677ff;background:#e6f4ff;border-radius:8px;padding:2px 10px;margin-left:8px;vertical-align:6px}
.day-gp{text-align:center;background:linear-gradient(135deg,#f6ffed,#fff);border:1px solid #d9f7be;border-radius:12px;padding:8px 18px}
.day-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.day-stat{display:flex;gap:10px;align-items:center;background:#fbfcfe;border:1px solid #eef2f7;border-radius:12px;padding:10px 12px}
.ds-ic{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}
.ds-val{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}
.ds-lb{font-size:12px;color:#889}
.ds-sub{font-size:11.5px;color:#889;margin-top:1px}
.day-sec{font-size:13.5px;font-weight:700;margin:12px 0 6px;color:#1f3b5c;border-left:3px solid #1677ff;padding-left:8px}
.b2day-table td,.b2day-table th{font-size:12.5px;padding:5px 8px;white-space:nowrap}
.b2day-table thead{background:#f7f9fc;position:sticky;top:0}
.b2day-table tfoot{background:#f0f7ff;font-weight:700}

/* V20 ���������� */
.lt-link{color:#1677ff;cursor:pointer}
.lt-link:hover{text-decoration:underline}
.lt-wrap table th{white-space:nowrap}
tr.lt-hit td{background:#fffbe6!important}
details.lib-grp summary{cursor:pointer;position:relative;padding-left:20px;user-select:none}
details.lib-grp summary::before{content:'▸';position:absolute;left:4px;top:50%;transform:translateY(-50%);color:#1677ff;transition:transform .18s;font-size:13px}
details.lib-grp[open] summary::before{transform:translateY(-50%) rotate(90deg)}
details.lib-grp summary:hover{color:#1677ff}
.lib-scatter{position:relative;height:240px;border:1px solid #eef2f7;border-radius:10px;background:linear-gradient(180deg,#fbfcfe,#fff);margin:6px 0;overflow:hidden}
.lib-scatter::before{content:'';position:absolute;left:var(--medx);top:0;bottom:0;width:1px;background:#d9d9d9;border-left:1px dashed #bbb}
.lib-scatter::after{content:'';position:absolute;left:0;right:0;bottom:var(--medy);height:1px;background:#d9d9d9;border-top:1px dashed #bbb}
.sc-pt{position:absolute;width:11px;height:11px;border-radius:50%;transform:translate(-50%,50%);cursor:pointer;box-shadow:0 0 0 1px #fff;transition:transform .12s}
.sc-pt:hover{transform:translate(-50%,50%) scale(1.7);z-index:5}
.sc-star{background:#237804}.sc-potential{background:#4c6ef5}.sc-problem{background:#e8704a}.sc-dog{background:#bbb}
.sc-axis{position:absolute;font-size:11px;color:#aaa}

/* V24 ϵͳ管理升级 */
.role-badge{display:inline-block;padding:2px 10px;border-radius:12px;border:1px solid;font-size:12px;font-weight:600;white-space:nowrap}
.rp-table .rp-group td{background:#f0f7ff;padding:5px 10px!important;font-size:12.5px;border-left:3px solid #1677ff}
.rp-table td,.rp-table th{padding:4px 10px;font-size:12.5px}
#sec-admin .subtabs div{font-size:13px}

/* V25 客户中心2.0 */
.cust-card{flex:1;min-width:250px;max-width:330px;border:1px solid #e8eef7;border-radius:12px;padding:12px 14px;cursor:pointer;transition:transform .15s,box-shadow .15s}
.cust-card:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(22,119,255,.12)}
.cust-fchips{display:inline-flex;gap:6px}
.cust-fc{padding:4px 12px;border-radius:14px;font-size:12px;cursor:pointer;border:1px solid #ddd;background:#fff;user-select:none}
.cust-fc.on{background:var(--c,#1677ff);color:#fff;border-color:var(--c,#1677ff)}

/* V25 工作台 */
.home-welcome{font-size:19px;font-weight:700;color:#1f3b5c;margin:2px 0 12px;padding:2px 0 0 2px}
.alert-blue{border-left:3px solid #1677ff;background:#f0f7ff}

/* ===== 话术助手工作台 V3 ===== */
.kbwa-card { display:flex; flex-direction:column; }
.kbwa-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.kb-scene-btn { border:1px solid #d9e2ef; background:#f7f9fc; border-radius:14px; padding:4px 12px; cursor:pointer; font-size:12.5px; color:#445; }
.kb-scene-btn.on { background:#1677ff; border-color:#1677ff; color:#fff; }
.kbwa-chat { min-height:280px; max-height:56vh; overflow-y:auto; background:#f7f9fc; border:1px solid #eef2f7; border-radius:10px; padding:12px; display:flex; flex-direction:column; gap:10px; }
.kb-welcome { color:#889; font-size:13px; text-align:center; margin:auto; line-height:1.9 }
.kb-bub { max-width:86%; padding:8px 12px; border-radius:12px; font-size:13.5px; line-height:1.65; white-space:pre-wrap; word-break:break-word; }
.kb-bub.user { align-self:flex-end; background:#1677ff; color:#fff; border-bottom-right-radius:3px; }
.kb-bub.bot { align-self:flex-start; background:#fff; border:1px solid #e6ebf2; border-bottom-left-radius:3px; }
.kb-card { align-self:flex-start; max-width:92%; background:#fff; border:1px solid #e6ebf2; border-radius:12px; border-bottom-left-radius:3px; padding:10px 12px; box-shadow:0 1px 4px rgba(20,40,80,.06) }
.kb-card .kb-src { display:inline-block; font-size:11.5px; padding:1px 8px; border-radius:8px; margin-bottom:6px; font-weight:600 }
.kb-src.faq { background:#f6ffed; color:#237804 } .kb-src.data { background:#f0f7ff; color:#1677ff }
.kb-src.ai { background:#f9f0ff; color:#722ed1 } .kb-src.err { background:#fff1f0; color:#cf1322 }
.kb-card .kb-ans { font-size:13.5px; line-height:1.7; white-space:pre-wrap; word-break:break-word }
.kb-price-rows { margin:8px 0 4px; border-top:1px dashed #e6ebf2; padding-top:6px }
.kb-price-row { display:flex; gap:8px; align-items:center; padding:3px 0; font-size:13px }
.kb-price-row .grow { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.kb-price-row b { color:#d46b08 }
.kb-ops { display:flex; gap:6px; margin-top:8px; flex-wrap:wrap }
.kb-total { background:#fffbe6; border-radius:8px; padding:4px 8px; margin-top:4px; font-size:13px; color:#874d00 }
.kbwa-inputbar { display:flex; gap:8px; margin-top:10px }
.kbwa-inputbar .kbqa-input { flex:1; height:42px; }
@media (max-width:640px){ .kbwa-chat{max-height:60vh} .kb-bub{max-width:94%} .kb-card{max-width:97%} }

/* ===== 参数中心 V1.1 ===== */
.cfg-group { background:#fff; border:1px solid #e9eef5; border-left:3px solid #1677ff; border-radius:10px; padding:12px 16px; margin-bottom:12px }
.cfg-group-title { font-weight:700; color:#1f2d3d; font-size:14px; margin-bottom:8px }
.cfg-row { display:flex; gap:14px; align-items:flex-start; padding:7px 0; border-bottom:1px dashed #f0f3f7 }
.cfg-row:last-child { border-bottom:none }
.cfg-label { width:150px; flex-shrink:0; font-weight:600; font-size:13.5px; padding-top:7px; color:#334 }
.cfg-input { flex:1; min-width:0 }
.cfg-input input { width:100%; max-width:420px; padding:7px 10px; border:1px solid #d9e2ef; border-radius:6px; font-size:13.5px }
.cfg-input input:focus { outline:none; border-color:#1677ff; box-shadow:0 0 0 2px rgba(22,119,255,.12) }
.cfg-desc { font-size:12px; color:#8a97a8; margin-top:3px; line-height:1.5 }

/* ===== 系统管理 UI V1 ===== */
.adm-stat-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px }
.adm-stat { background:#f8fafd; border:1px solid #e9eef5; border-radius:10px; padding:12px 14px }
.adm-stat .v { font-size:22px; font-weight:800; color:#1f2d3d; line-height:1.2 }
.adm-stat .v.warn { color:#d46b08 } .adm-stat .v.bad { color:#cf1322 } .adm-stat .v.good { color:#237804 }
.adm-stat .k { font-size:12px; color:#8a97a8; margin-top:3px }
.adm-todo { display:inline-flex; align-items:center; gap:6px; background:#fff7e6; border:1px solid #ffd591; color:#874d00; border-radius:16px; padding:5px 14px; font-size:13px; cursor:pointer }
.adm-todo:hover { background:#fff1b8 }
.adm-todo.ok { background:#f6ffed; border-color:#b7eb8f; color:#237804; cursor:default }
#adm-content .subtabs div { font-size:13px; padding:7px 14px }
.adm-pane table { width:100%; font-size:13px }
.adm-pane table th { background:#f7f9fc; text-align:left; padding:7px 10px; font-size:12.5px; color:#556; border-bottom:2px solid #e9eef5 }
.adm-pane table td { padding:6px 10px; border-bottom:1px solid #f0f3f7 }
.adm-pane table tr:hover td { background:#f9fbff }
.ct-pane .card { margin-bottom:12px }

/* ===== 快速查价 V2 ===== */
.qq-card { border:1px solid #e6ebf2; border-radius:10px; padding:10px 12px; margin:6px 0; background:#fff }
.qq-card.qq-below { border-color:#ffa39e; background:#fff1f0 }
.qq-name { font-weight:700; font-size:14px; margin-bottom:4px }
.qq-prices { display:flex; gap:14px; flex-wrap:wrap; align-items:baseline; font-size:13px }
.qq-cost { color:#cf1322; font-weight:700 }
.qq-tier b { font-size:14px }
.qq-warn { color:#cf1322; font-size:12px; font-weight:600 }
.qq-last { font-size:12px; color:#d46b08; margin-top:3px }
.qq-recs { font-size:12px; margin-top:4px; color:#556 }
.qq-rec { background:#f6ffed; color:#237804; border-radius:10px; padding:1px 8px; margin-right:6px; cursor:pointer; border:1px solid #b7eb8f }
.qq-ops { margin-top:6px; display:flex; gap:8px }

/* ===== 分类价格表搜索V2 ===== */
.csr-gtitle{font-weight:700;font-size:13px;color:#1677ff;margin:8px 0 3px;cursor:pointer}
.csr-gtitle:hover{text-decoration:underline}
.csr-row{display:flex;gap:10px;align-items:center;padding:6px 10px;border:1px solid #e6ebf2;border-radius:8px;margin:4px 0;font-size:13px;flex-wrap:wrap;background:#fff}
.csr-name{font-weight:600;min-width:120px;cursor:pointer;color:#1f2d3f}
.csr-name:hover{color:#1677ff;text-decoration:underline}
.csr-peer{font-size:12px;color:#0958d9;background:#e6f4ff;border-radius:8px;padding:1px 8px}
.csr-qty{width:70px;padding:4px 8px;border:1px solid #d9e2ef;border-radius:6px}
.cat-hl{animation:cathl 2.5s ease}
@keyframes cathl{0%,60%{background:#fff1b8}100%{background:transparent}}
