/* ===========================================================
   智仓项目库 · 设计系统 v2
   =========================================================== */
:root{
  --brand:#1d4ed8;
  --brand-700:#1e40af;
  --brand-900:#172554;
  --ink:#0f172a;
  --ink-2:#334155;
  --ink-3:#64748b;
  --line:#e2e8f0;
  --line-2:#eef2f7;
  --bg:#f6f8fb;
  --card:#ffffff;
  --ok:#16a34a;
  --radius:12px;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06),0 1px 3px rgba(15,23,42,.04);
  --shadow:0 4px 16px rgba(15,23,42,.10);
  --shadow-lg:0 20px 60px rgba(15,23,42,.20);
  --sans:"PingFang SC","Microsoft YaHei","Segoe UI",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* ---------- Lucide icons ---------- */
.nav-ic{width:16px;height:16px;stroke:currentColor;flex:0 0 auto}
.s-ic{width:15px;height:15px;stroke:currentColor;flex:0 0 auto;color:#94a3b8}
.stat-ic{width:18px;height:18px;stroke:currentColor}
.sec-ic{width:14px;height:14px;stroke:currentColor;color:var(--brand)}

/* ---------- Layout ---------- */
.layout{display:flex;min-height:100vh}

/* ---------- Sidebar ---------- */
.sidebar{
  width:230px;flex:0 0 230px;
  background:linear-gradient(180deg,#172554 0%,#1e3a8a 100%);
  color:#cbd5e1;display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;overflow:hidden;
}
.brand{padding:20px 20px 16px;display:flex;align-items:center;gap:10px}
.brand .logo{
  width:36px;height:36px;border-radius:9px;flex:0 0 auto;
  background:linear-gradient(135deg,#38bdf8,#2563eb);
  display:grid;place-items:center;font-weight:800;color:#fff;font-size:16px;
  box-shadow:0 4px 12px rgba(56,189,248,.35);
}
.brand .bn{display:flex;flex-direction:column;line-height:1.25}
.brand .bn b{color:#fff;font-size:15px;letter-spacing:.3px}
.brand .bn span{font-size:10px;color:#93c5fd;letter-spacing:1.5px}
.nav{padding:8px 12px;display:flex;flex-direction:column;gap:2px}
.nav-label{font-size:10px;color:#475569;padding:12px 10px 5px;letter-spacing:1.5px;text-transform:uppercase}
.nav-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 11px;border-radius:8px;font-size:13.5px;color:#94a3b8;transition:.15s;
}
.nav-item:hover{background:rgba(255,255,255,.07);color:#e2e8f0}
.nav-item.active{background:rgba(56,189,248,.14);color:#fff;font-weight:600}
.nav-item.active .nav-ic{color:#38bdf8}
.sidebar-foot{margin-top:auto;padding:14px 18px;font-size:11px;color:#94a3b8;border-top:1px solid rgba(255,255,255,.07);line-height:1.7}
.sidebar-foot small{display:block;font-size:10px;color:#64748b;margin-top:2px}

/* ---------- Topbar ---------- */
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  height:60px;background:var(--card);border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:14px;padding:0 24px;
  position:sticky;top:0;z-index:20;
}
.topbar h1{font-size:15px;font-weight:700;color:var(--ink)}
.search{
  margin-left:auto;display:flex;align-items:center;gap:8px;
  background:var(--bg);border:1px solid var(--line);border-radius:9px;
  padding:7px 12px;width:280px;
}
.search input{border:none;background:none;outline:none;width:100%;font-size:13px;color:var(--ink)}
.btn-cta{
  background:var(--brand);color:#fff;font-weight:600;font-size:13px;
  padding:8px 15px;border-radius:9px;transition:.15s;white-space:nowrap;
}
.btn-cta:hover{background:var(--brand-700)}
.content{padding:24px;max-width:1240px;width:100%}

/* ---------- Demo banner ---------- */
.demo-banner{
  background:#fffbeb;border:1px solid #fcd34d;color:#92400e;
  border-radius:9px;padding:9px 14px;font-size:12px;margin-bottom:20px;
  display:flex;align-items:center;gap:8px;
}

/* ---------- Page head ---------- */
.page-head{
  background:linear-gradient(135deg,#172554 0%,#1e3a8a 40%,#1d4ed8 100%);
  border-radius:16px;padding:28px 32px;margin-bottom:22px;
  color:#fff;position:relative;overflow:hidden;
  box-shadow:0 8px 32px rgba(29,78,216,.25);
}
.page-head::after{
  content:'';position:absolute;right:-40px;top:-30px;
  width:200px;height:200px;border-radius:50%;
  background:rgba(255,255,255,.06);
}
.page-head h2{font-size:22px;font-weight:800;letter-spacing:.3px;position:relative;z-index:1}
.page-head p{color:rgba(255,255,255,.7);font-size:13px;margin-top:4px;position:relative;z-index:1}

/* ---------- Stat cards ---------- */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.stat{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:18px 20px 16px;box-shadow:var(--shadow-sm);
  transition:transform .15s,box-shadow .15s;
  position:relative;overflow:hidden;
}
.stat:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(15,23,42,.12)}
.stat .k{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:7px;font-weight:600}
.stat .v{font-size:28px;font-weight:800;margin-top:6px;letter-spacing:.2px;color:var(--ink)}
.stat .v small{font-size:13px;font-weight:600;color:var(--ink-3);margin-left:2px}
.stat .trend{font-size:11px;color:var(--ok);margin-top:4px;font-weight:600}
.stat .badge-ic{
  position:absolute;right:16px;top:16px;width:36px;height:36px;
  border-radius:10px;display:grid;place-items:center;
}
/* stat accent bars */
.stat::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  border-radius:14px 14px 0 0;
}
.stat:nth-child(1)::before{background:#2563eb}
.stat-grid.five{grid-template-columns:repeat(5,1fr)}
.stat-grid.five .tender-stat{cursor:pointer}.stat-grid.five .tender-stat::before{background:#ea580c}.stat-grid.five .tender-stat:hover{border-color:#fdba74}
.stat:nth-child(2)::before{background:#16a34a}
.stat:nth-child(3)::before{background:#d97706}
.stat:nth-child(4)::before{background:#7c3aed}

/* ---------- Panels ---------- */
.row{display:grid;gap:14px;margin-bottom:22px}
.row.two{grid-template-columns:1.3fr 1fr}
.panel{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:20px 22px;box-shadow:var(--shadow-sm);
  transition:box-shadow .15s;
}
.panel:hover{box-shadow:0 4px 20px rgba(15,23,42,.1)}
.panel h3{font-size:14px;font-weight:700;margin-bottom:4px;display:flex;align-items:center;justify-content:space-between;color:var(--ink)}
.panel h3 .sub{font-size:11px;color:var(--ink-3);font-weight:400}
.refresh-btn{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--brand);background:#eff6ff;border:1px solid #bfdbfe;border-radius:7px;padding:5px 10px;transition:.15s}
.refresh-btn:hover{background:#dbeafe;border-color:var(--brand)}
.refresh-ic{width:13px;height:13px;stroke:currentColor;flex:0 0 auto}
.panel .desc{font-size:12px;color:var(--ink-3);margin-bottom:14px;line-height:1.5}

/* ---------- Market analytics ---------- */
.market-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.market-filter-label{font-size:12.5px;color:var(--ink-2);font-weight:600}
.market-filter-btn{padding:6px 14px;border-radius:20px;font-size:12.5px;color:var(--ink-2);background:var(--line-2);transition:.15s}
.market-filter-btn:hover{background:#dbeafe}
.market-filter-btn.on{background:var(--brand);color:#fff}

/* ---------- Competitor analytics ---------- */
.cmp-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:18px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.cmp-modes{display:flex;gap:6px}
.cmp-mode-btn{display:flex;align-items:center;gap:5px;padding:7px 13px;border-radius:8px;font-size:12.5px;font-weight:600;color:var(--ink-2);background:var(--line-2);transition:.15s}
.cmp-mode-btn:hover{background:#dbeafe}
.cmp-mode-btn.on{background:var(--brand);color:#fff}
.cmp-fgroup{display:flex;align-items:center;gap:6px}
.cmp-fgroup label{font-size:12px;color:var(--ink-3)}
.cmp-select{min-width:150px}
.cmp-range-btn{padding:6px 12px;border-radius:20px;font-size:12px;color:var(--ink-2);background:var(--line-2);transition:.15s;margin-left:2px}
.cmp-range-btn:hover{background:#dbeafe}
.cmp-range-btn.on{background:var(--brand);color:#fff}
.cmp-hint{margin-left:auto;font-size:12px;color:var(--ink-3)}
.cmp-search-box{position:relative;min-width:180px}
.cmp-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:300px;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:8px;z-index:100;box-shadow:var(--shadow)}
.cmp-option{padding:7px 10px;font-size:12.5px;cursor:pointer;transition:.15s;border-bottom:1px solid #f1f5f9}
.cmp-option:last-child{border-bottom:none}
.cmp-option:hover{background:var(--bg)}
.cmp-option.on{background:#dbeafe;color:var(--brand);font-weight:600}
.empty-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:48px 24px;text-align:center;color:var(--ink-3);font-size:13px}

/* ---------- Market analytics ---------- */
.market-filter-hint{margin-left:auto;font-size:12px;color:var(--ink-3)}
.chart-container{width:100%;height:260px}
.bid-table th,.bid-table td{vertical-align:middle}
.bid-table th{font-size:11.5px;font-weight:600;color:var(--ink-2)}
.bid-table td{font-size:12px;color:var(--ink)}
.bid-table tr:hover td{background:#f8fafc}
.bid-table tr:hover{cursor:pointer}
.bid-table th:nth-last-child(1),.bid-table td:nth-last-child(1),
.bid-table th:nth-last-child(2),.bid-table td:nth-last-child(2){white-space:nowrap}
.empty{padding:24px 0;text-align:center;color:var(--ink-3);font-size:13px}

.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.pg-btn {
  padding: 7px 14px;
  border-radius: 8px;
  background: var(--brand);
  color: #fff;
  font-size: 12.5px;
  font-weight: 600;
  transition: .15s;
}
.pg-btn:hover:not(:disabled) { background: var(--brand-700); }
.pg-btn:disabled { background: #cbd5e1; cursor: not-allowed; }
.pg-info { font-size: 12.5px; color: var(--ink-3); }

/* ---------- Bar chart ---------- */
.bars{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.bar-row{display:grid;grid-template-columns:90px 1fr 72px;align-items:center;gap:10px;padding:3px 6px;border-radius:6px;transition:background .15s}
.bar-row:hover{background:var(--bg)}
.bar-row .lb{font-size:12.5px;color:var(--ink-2);display:flex;align-items:center;gap:6px;font-weight:500;white-space:nowrap}
.dot{width:9px;height:9px;border-radius:3px;flex:0 0 auto}
.bar-track{height:10px;background:var(--line-2);border-radius:6px;overflow:hidden}
.bar-fill{height:100%;border-radius:6px;transition:width 1s cubic-bezier(.2,.8,.2,1);min-width:3px}
.bar-row .vl{font-size:12px;color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums;font-weight:600}

/* ---------- Rank list ---------- */
.rank{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.rank-item{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:10px;padding:9px 8px;border-radius:8px;transition:.15s;cursor:pointer;border:1px solid transparent}
.rank-item:hover{background:var(--bg);border-color:var(--line)}
.rank-no{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--line-2);color:var(--ink-3)}
.rank-item:nth-child(1) .rank-no{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}
.rank-item:nth-child(2) .rank-no{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);color:#475569}
.rank-item:nth-child(3) .rank-no{background:linear-gradient(135deg,#fde9d3,#fed7aa);color:#c2410c}
.rank-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;color:var(--ink)}
.rank-meta{font-size:11.5px;color:var(--ink-3);white-space:nowrap;text-align:right}

/* ---------- Industry cards (dashboard small cards) ---------- */
.ind-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:6px}
.ind-cards .ind-card{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:9px;
  background:var(--bg);border:1px solid var(--line);border-left-width:3px;
  transition:.15s;cursor:pointer;
}
.ind-cards .ind-card:hover{background:#fff;box-shadow:var(--shadow-sm);transform:translateX(2px)}
.ind-cards .ind-card-dot{width:10px;height:10px;border-radius:3px;flex:0 0 auto}
.ind-cards .ind-card-name{font-size:12.5px;font-weight:600;color:var(--ink);flex:1}
.ind-cards .ind-card-num{font-size:18px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}

/* ---------- Equipment pills ---------- */
.equip-pills{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.equip-pill{
  display:flex;align-items:center;gap:12px;
  padding:10px 14px;border-radius:10px;
  background:var(--bg);border:1px solid var(--line);
  transition:.15s;
}
.equip-pill:hover{background:#fff;border-color:var(--c);box-shadow:0 2px 12px rgba(0,0,0,.06)}
.ep-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto}
.ep-label{font-size:13px;font-weight:600;color:var(--ink);min-width:60px}
.ep-count{font-size:14px;font-weight:600;color:var(--c)}
.ep-count small{font-size:11px;color:var(--ink-3);font-weight:400}
.ep-pct{font-size:13px;font-weight:700;color:var(--c);opacity:.7}

/* ---------- Featured case card (industry detail) ---------- */
.feat-case-card{
  background:var(--bg);border:1px solid var(--line);border-radius:10px;
  padding:12px 14px;margin-bottom:8px;cursor:pointer;
  transition:.15s;border-left:3px solid #f59e0b;
}
.feat-case-card:hover{background:#fff;box-shadow:var(--shadow-sm);transform:translateX(2px)}
.feat-case-h{font-size:13px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:6px;margin-bottom:4px}
.feat-case-body{font-size:12px;color:var(--ink-3);line-height:1.55;margin-bottom:4px}
.feat-case-foot{font-size:11px;color:var(--ink-3);font-weight:500}

/* ---------- Keyword cloud ---------- */
.kw-cloud{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;padding:8px 0;min-height:40px}
.kw-tag{
  display:inline-flex;align-items:center;gap:3px;
  padding:3px 10px;border-radius:20px;
  background:#f8fafc;border:1px solid #e2e8f0;
  color:var(--ink-2);transition:.12s;cursor:default;
}
.kw-tag:hover{background:#fff;border-color:#93c5fd;transform:scale(1.06);z-index:1}
.kw-tag small{font-size:10px;color:var(--ink-3);font-weight:400;margin-left:1px}

/* ---------- Competition grid ---------- */
.competition-grid{display:flex;flex-direction:column;gap:6px;padding:4px 0}
.comp-bar-row{
  display:flex;align-items:center;gap:10px;padding:8px 10px;
  border-radius:8px;background:var(--bg);cursor:pointer;
  transition:.15s;position:relative;overflow:hidden;
}
.comp-bar-row::after{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--cw);background:var(--c);opacity:.12;border-radius:0 8px 8px 0;z-index:0}
.comp-bar-row>*{position:relative;z-index:1}
.comp-bar-row:hover{background:#fff;box-shadow:var(--shadow-sm)}
.comp-bar-row.is-target{background:#eff6ff;box-shadow:0 0 0 2px #2563eb}
.comp-rank{font-size:11px;font-weight:800;color:var(--ink-3);width:24px;flex:0 0 auto}
.comp-name{font-size:12.5px;font-weight:600;color:var(--ink);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.comp-track{flex:1;height:8px;background:var(--line-2);border-radius:4px;overflow:hidden}
.comp-fill{height:100%;border-radius:4px;background:var(--c);transition:width .8s ease}
.comp-val{font-size:12px;font-weight:700;color:var(--c);white-space:nowrap}

/* ---------- 客户重叠分析 ---------- */
.cmp-overlap-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.cmp-ov-row{padding:10px 12px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}
.cmp-ov-name{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:4px;display:flex;align-items:center;gap:8px}
.cmp-ov-name em{font-size:10.5px;font-weight:400;color:var(--ink-3);background:#e2e8f0;padding:1px 6px;border-radius:4px}
.cmp-ov-owners{font-size:11.5px;color:var(--ink-3);line-height:1.5}
.cmp-ov-hot{margin-top:10px;font-size:11.5px;color:var(--ink-2);line-height:1.6;background:#fef3c7;padding:8px 12px;border-radius:6px}
.cmp-ov-hot b{color:#92400e}

/* ---------- 成长性评估 ---------- */
.cmp-trend-tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;padding:3px 10px;border-radius:12px;margin-left:6px}
.cmp-trend-tag.up{background:#dcfce7;color:#16a34a}
.cmp-trend-tag.down{background:#fee2e2;color:#dc2626}
.cmp-trend-tag.stable{background:#f1f5f9;color:#64748b}
.cmp-growth-bars{display:flex;align-items:flex-end;gap:16px;height:120px;padding:8px 0;margin-top:8px}
.cmp-grow-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}
.cmp-grow-bar{width:36px;background:linear-gradient(0deg,#2563eb,#60a5fa);border-radius:6px 6px 0 0;transition:height .6s ease;min-height:4px}
.cmp-grow-val{font-size:12px;font-weight:700;color:var(--brand-700)}
.cmp-grow-year{font-size:10.5px;color:var(--ink-3)}

/* ---------- Relation list ---------- */
.relation-list{display:flex;flex-direction:column;gap:4px;padding:2px 0}
.relation-item{
  display:flex;align-items:center;justify-content:space-between;
  padding:7px 10px;border-radius:8px;background:var(--bg);
  position:relative;overflow:hidden;transition:.15s;
}
.relation-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--r);background:var(--rh);opacity:.15;border-radius:0 4px 4px 0}
.relation-item:hover{background:#fff;box-shadow:var(--shadow-sm)}
.rel-name{font-size:12.5px;font-weight:500;color:var(--ink);position:relative;z-index:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}
.rel-count{font-size:12px;font-weight:700;color:var(--rh);position:relative;z-index:1}

/* ---------- Amount segments ---------- */
.amount-segments{display:flex;flex-direction:column;gap:8px;padding:4px 0}
.seg-bar{display:flex;align-items:center;gap:10px}
.seg-label{font-size:11.5px;color:var(--ink-3);width:80px;flex:0 0 auto;text-align:right}
.seg-track{flex:1;height:22px;background:#f1f5f9;border-radius:6px;overflow:hidden}
.seg-fill{height:100%;border-radius:6px;transition:width .8s ease;min-width:3px}
.seg-num{font-size:12px;font-weight:700;color:var(--ink);width:36px;flex:0 0 auto;text-align:right}

/* ---------- Metric cards (avg trend) ---------- */
.metric-cards{display:flex;gap:10px;flex-wrap:wrap;padding:4px 0}
.metric-card{
  flex:1 1 80px;min-width:70px;
  background:var(--bg);border-radius:10px;padding:10px 8px 8px;
  display:flex;flex-direction:column;align-items:center;gap:4px;
  transition:.15s;border:1px solid var(--line);
}
.metric-card:hover{background:#fff;box-shadow:var(--shadow-sm)}
.mc-bar{width:100%;height:6px;background:#f1f5f9;border-radius:3px;overflow:hidden}
.mc-fill{display:block;height:100%;border-radius:3px;background:var(--mc);width:var(--m);transition:width .8s ease}
.mc-label{font-size:11px;color:var(--ink-3);font-weight:600}
.mc-val{font-size:14px;font-weight:800;color:var(--mc)}

/* ---------- Ring chart (amount range) ---------- */
.ring-grid{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding:4px 0}
.ring-item{display:flex;flex-direction:column;align-items:center;gap:4px;flex:0 0 80px}
.ring-svg{filter:drop-shadow(0 2px 4px rgba(15,23,42,.08))}
.ring-label{font-size:11px;color:var(--ink-3);font-weight:500;text-align:center}

/* ---------- Province tags ---------- */
.prov-tags{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;padding:8px 0;min-height:60px}
.prov-tag{
  display:inline-flex;align-items:center;gap:4px;
  padding:6px 14px;border-radius:24px;
  color:#fff;font-weight:600;cursor:default;
  transition:transform .15s;box-shadow:0 2px 8px rgba(15,23,42,.12);
}
.prov-tag:hover{transform:scale(1.08)}
.prov-tag em{font-style:normal;font-size:80%;opacity:.85;margin-left:2px}

/* ---------- CR3 badge ---------- */
.cr3-badge{
  display:flex;align-items:center;gap:14px;
  margin-top:12px;padding:12px 16px;
  background:linear-gradient(135deg,#eff6ff,#ede9fe);
  border-radius:12px;border:1px solid #bfdbfe;
}
.cr3-num{font-size:30px;font-weight:800;color:#2563eb;line-height:1}
.cr3-num small{font-size:16px;font-weight:600;color:#7c3aed}
.cr3-label{font-size:11.5px;color:var(--ink-3);line-height:1.4}

/* ---------- Donut chart ---------- */
.donut-wrap{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.donut-svg-box{flex:0 0 auto;display:grid;place-items:center}
.donut-svg{filter:drop-shadow(0 4px 12px rgba(15,23,42,.08))}
.donut-legend{flex:1;min-width:180px;display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;align-content:center;max-height:220px;overflow:auto}
.legend-item{
  display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;
  font-size:12px;cursor:pointer;transition:.15s;
  border:1px solid transparent;
}
.legend-item:hover{background:var(--bg);border-color:var(--lc)}
.legend-dot{width:10px;height:10px;border-radius:3px;flex:0 0 auto;box-shadow:0 0 0 2px rgba(255,255,255,.8)}
.legend-name{flex:1;color:var(--ink-2);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legend-val{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.legend-val small{font-weight:500;color:var(--ink-3);margin-left:2px}

/* ---------- Bubble cloud (region) ---------- */
.bubble-cloud{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  gap:14px;padding:24px 8px;min-height:180px;
  background:radial-gradient(circle at 30% 40%,#eff6ff 0%,transparent 60%),
             radial-gradient(circle at 70% 70%,#dbeafe 0%,transparent 60%);
  border-radius:12px;
}
.bubble{
  border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:#fff;cursor:pointer;transition:transform .2s,box-shadow .2s;
  box-shadow:0 4px 12px rgba(15,23,42,.12);position:relative;
  text-align:center;
}
.bubble:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(15,23,42,.18)}
.bubble-v{font-size:16px;font-weight:800;line-height:1}
.bubble-k{font-size:10px;opacity:.9;margin-top:1px;font-weight:500}

/* ---------- Heat grid (equipment) ---------- */
.heat-grid{
  display:flex;flex-wrap:wrap;gap:6px;padding:6px 0;
}
.heat-cell{
  border-radius:10px;padding:14px 12px;color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;cursor:pointer;
  transition:transform .2s,box-shadow .2s,filter .2s;
  box-shadow:0 4px 14px rgba(15,23,42,.18);
  position:relative;overflow:hidden;
}
.heat-cell::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.25),transparent 60%);
  pointer-events:none;
}
.heat-cell:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 8px 24px rgba(15,23,42,.25);filter:brightness(1.08)}
.heat-ic{width:22px;height:22px;stroke:#fff;stroke-width:2;margin-bottom:2px}
.heat-name{font-size:13px;font-weight:700;letter-spacing:.3px;position:relative}
.heat-meta{font-size:11px;opacity:.85;font-weight:500;position:relative}

/* ---------- Filters ---------- */
.filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:16px;align-items:center}
.fgroup{display:flex;align-items:center;gap:6px}
.fgroup label{font-size:12px;color:var(--ink-3)}
select.fs{
  appearance:none;border:1px solid var(--line);background:var(--card);
  padding:7px 28px 7px 11px;border-radius:8px;font-size:12.5px;color:var(--ink);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 9px center;cursor:pointer;
}
.chip-reset{font-size:12px;color:var(--brand);padding:7px 4px}
.result-count{margin-left:auto;font-size:12px;color:var(--ink-3)}

/* ---------- Type tabs ---------- */
.ttabs{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.ttab{
  display:flex;align-items:center;gap:6px;padding:8px 14px;
  font-size:13px;color:var(--ink-3);border-bottom:2px solid transparent;
  font-weight:600;margin-bottom:-1px;transition:.15s;
}
.ttab:hover{color:var(--ink)}
.ttab.on{color:var(--brand-700);border-bottom-color:var(--brand)}
.ttab .tn{background:var(--line-2);color:var(--ink-3);font-size:11px;padding:1px 7px;border-radius:20px;font-weight:500}
.ttab.on .tn{background:#dbeafe;color:var(--brand-700)}

/* ---------- Tags ---------- */
.tag{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:20px}
.tag.ind{color:#fff}
.tag.status{background:#f1f5f9;color:var(--ink-2)}
.tag.status.win{background:#dcfce7;color:#15803d}
.tag.status.pub{background:#fef3c7;color:#b45309}
.tag.status.done{background:#e0e7ff;color:#4338ca}
.tag.tcase{background:#e0f2fe;color:#0369a1}
.tag.tbid{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;font-size:11px;padding:3px 9px}
.tag.ttender{background:#ffedd5;color:#c2410c;border:1px solid #fdba74;font-size:11px;padding:3px 9px}
.tag.tcase svg,.tag.tbid svg{width:10px;height:10px;vertical-align:-1.5px;margin-right:3px;stroke-width:2.5}
.tag.feat{background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff}

/* ---------- Project cards — UNIFIED ---------- */
.proj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}

.pcard{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden;
  transition:box-shadow .18s, transform .18s, border-color .18s;
  display:flex;flex-direction:column;
  min-height:220px;          /* 统一最小高度 */
}
.pcard:hover{box-shadow:var(--shadow);transform:translateY(-2px)}

/* 实施案例卡片：左侧蓝条 + 白色背景 */
.pcard-case{
  background:#ffffff;
  border-left:5px solid #3b82f6;
}
.pcard-case:hover{border-left-color:#2563eb}

/* 中标快讯卡片：整体橙底 + 左侧粗橙条 + 金额高亮 */
.pcard-bid{
  background:linear-gradient(135deg,#fff7ed 0%,#ffedd5 100%);
  border:1px solid #fdba74;
  border-left:6px solid #f97316;
}
.pcard-bid:hover{border-color:#f97316;border-left-color:#ea580c}
.pcard-bid .pcard-stripe{height:0;flex:0}
.pcard-bid .amt{color:#ea580c;font-size:19px}
.pcard-bid .pfoot{border-top-color:#fed7aa}

/* 顶部色条 */
.pcard-stripe{
  height:6px;flex:0 0 6px;
  background:var(--stripe-color, var(--brand));
}
.pcard-case .pcard-stripe{height:4px;flex:0 0 4px}

.pcard .pbody{
  padding:14px 16px 14px;
  display:flex;flex-direction:column;flex:1;
}

.pcard .ptop{display:flex;align-items:center;gap:6px;margin-bottom:9px;flex-wrap:wrap}
.pcard h4{font-size:14px;font-weight:700;line-height:1.5;margin-bottom:10px;color:var(--ink);flex:1}
.pcard .pmeta{
  display:flex;flex-wrap:wrap;gap:5px 14px;
  font-size:12px;color:var(--ink-3);margin-bottom:12px;
}
.pcard .pmeta span{display:flex;align-items:center;gap:4px}
.pcard .pmeta b{color:var(--ink-2);font-weight:600}
.pmeta-ic{width:12px;height:12px;stroke:currentColor;flex:0 0 auto}

.pcard .pfoot{
  margin-top:auto;display:flex;align-items:center;
  justify-content:space-between;padding-top:11px;
  border-top:1px solid var(--line-2);
}
.pcard .amt{font-size:17px;font-weight:800;color:var(--brand-700)}
.pcard .amt small{font-size:11px;color:var(--ink-3);font-weight:400;margin-left:2px}
.pcard .integ{font-size:12px;color:var(--ink-2);font-weight:600;
  max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcard .integ.only{max-width:100%;color:var(--ink-2)}

.pcard .pkeywords{
  display:flex;flex-wrap:wrap;gap:6px;
  margin-top:auto;margin-bottom:10px;
}
.pcard .pkeywords:empty{display:none}
.pkeyword{
  display:inline-flex;align-items:center;gap:4px;
  font-size:11px;font-weight:600;line-height:1.3;
  padding:3px 8px;border-radius:6px;
  max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:transform .12s ease,box-shadow .12s ease;
}
.pkeyword:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.08)}
.pkeyword svg{width:11px;height:11px;stroke-width:2;flex:0 0 auto}
.pkeyword.cfg{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.pkeyword.equip{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
.pkeyword.metric{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}
.pkeyword.highlight{background:#faf5ff;color:#7e22ce;border:1px solid #e9d5ff}
.pkeyword.summary{background:#f8fafc;color:#475569;border:1px dashed #cbd5e1;font-weight:500}

/* ---------- Detail modal ---------- */
.modal-mask{
  position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(4px);
  display:none;align-items:flex-start;justify-content:center;
  z-index:60;padding:36px 20px;overflow:auto;
}
.modal-mask.open{display:flex}
.modal{
  background:var(--bg);width:100%;max-width:880px;border-radius:16px;overflow:hidden;
  box-shadow:var(--shadow-lg);animation:pop .22s ease;
}
@keyframes pop{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
.spin{animation:spin 1s linear infinite;display:inline-block}

/* 骨架屏 */
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
.skeleton{
  background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 50%,#e2e8f0 75%);
  background-size:800px 100%;animation:shimmer 1.5s ease-in-out infinite;
  border-radius:6px;
}
.skeleton-tag{display:inline-block;border-radius:4px}
.skeleton-row{padding:0 26px;margin-bottom:24px}
.modal-head-loading{background:linear-gradient(135deg,#1e3a8a,#2563eb);padding:22px 26px}
.modal-head-loading .skeleton{background:linear-gradient(90deg,rgba(255,255,255,.12) 25%,rgba(255,255,255,.22) 50%,rgba(255,255,255,.12) 75%);background-size:800px 100%}

.modal-head{

  background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;
  padding:22px 26px;position:relative;
}
.modal-head .mtags{display:flex;gap:7px;margin-bottom:11px;flex-wrap:wrap}
.modal-head h2{font-size:18px;font-weight:800;line-height:1.4;max-width:92%}
.modal-head .mid{font-size:11.5px;color:#bfdbfe;margin-top:7px;font-family:monospace}
.modal-close{
  position:absolute;right:16px;top:16px;width:32px;height:32px;
  border-radius:8px;background:rgba(255,255,255,.14);color:#fff;
  display:grid;place-items:center;transition:.15s;
}
.modal-close:hover{background:rgba(255,255,255,.26)}
.modal-body{padding:22px 26px 28px}

.kv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}
.kv{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 13px}
.kv .k{font-size:11px;color:var(--ink-3)}
.kv .v{font-size:15px;font-weight:800;margin-top:4px}
.kv .v.blue{color:var(--brand-700)}

.sec-title{
  font-size:13.5px;font-weight:700;margin:18px 0 10px;
  display:flex;align-items:center;gap:8px;color:var(--ink);
}
.sec-title::before{content:"";width:3px;height:14px;background:var(--brand);border-radius:2px;flex:0 0 auto}

.config-table{background:var(--card);border:1px solid var(--line);border-radius:11px;overflow:hidden}
.config-row{display:grid;grid-template-columns:120px 1fr;border-bottom:1px solid var(--line-2)}
.config-row:last-child{border-bottom:none}
.config-row .ck{background:var(--bg);padding:11px 14px;font-size:12px;color:var(--ink-3);font-weight:600;display:flex;align-items:center}
.config-row .cv{padding:11px 14px;font-size:12.5px;color:var(--ink-2)}

.hl-list{display:flex;flex-direction:column;gap:8px}
.hl{
  display:flex;gap:10px;font-size:12.5px;color:var(--ink-2);
  background:var(--card);border:1px solid var(--line);border-radius:9px;padding:10px 13px;
}
.hl .ck{color:var(--ok);font-weight:800;flex:0 0 auto}

/* ---------- Pricing / About ---------- */
.pricing-panel h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.year-badge{
  font-size:11px;font-weight:700;color:#b45309;background:#fef3c7;
  padding:3px 8px;border-radius:20px;border:1px solid #fde68a
}
.pricing-cards{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.pricing-card{
  background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;
  position:relative;transition:box-shadow .18s, transform .18s, border-color .18s;
}
.pricing-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#bfdbfe}
.pricing-card.recommended{
  background:linear-gradient(135deg,#eff6ff 0%,#fff 100%);
  border:2px solid #3b82f6;
}
.plan-badge{
  position:absolute;right:10px;top:-10px;
  background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;
  font-size:10.5px;font-weight:700;padding:4px 10px;border-radius:20px;
  box-shadow:0 4px 10px rgba(249,115,22,.25)
}
.plan-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.plan-name{font-size:13.5px;font-weight:700;color:var(--ink)}
.early-badge{
  font-size:10px;font-weight:700;color:#9a3412;background:#ffedd6;
  padding:2px 8px;border-radius:20px;border:1px solid #fed7aa
}
.plan-price{font-size:26px;font-weight:800;color:var(--brand-700);line-height:1.1}
.plan-price .currency{font-size:16px;margin-right:2px;vertical-align:top}
.plan-price .period{font-size:13px;font-weight:600;color:var(--ink-2);margin-left:2px}
.plan-original{
  font-size:12px;color:var(--ink-3);text-decoration:line-through;margin-top:4px
}
.plan-daily{
  font-size:11.5px;color:#15803d;font-weight:600;margin-top:6px;
  display:inline-block;background:#dcfce7;padding:2px 8px;border-radius:20px
}
.pricing-card.recommended .plan-daily{background:#dbeafe;color:#1d4ed8}
.plan-features{list-style:none;margin-top:10px;padding:0;display:flex;flex-direction:column;gap:5px}
.plan-features li{
  font-size:12px;color:var(--ink-3);padding-left:16px;position:relative;line-height:1.5
}
.plan-features li::before{
  content:"✓";position:absolute;left:0;color:var(--ok);font-weight:800
}
.qr-section{
  margin-top:14px;padding:14px;background:var(--bg);border-radius:11px;text-align:center;
  border:1px dashed var(--line)
}
.qr-section>p{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:8px}
.qr-wrap{
  width:280px;margin:0 auto;background:#fff;border:1px solid var(--line);
  border-radius:10px;overflow:hidden;display:grid;place-items:center;position:relative;
  aspect-ratio:888/1131
}
.qr-wrap img{width:100%;height:100%;object-fit:contain;display:block;border-radius:10px;transition:opacity .18s}
.qr-wrap img.is-loading{opacity:0}
.qr-wrap:has(img.is-loading)::before{content:'二维码加载中…';position:absolute;inset:0;display:grid;place-items:center;font-size:11.5px;color:var(--ink-3);background:linear-gradient(110deg,#f8fafc 30%,#eef2f7 45%,#f8fafc 60%);background-size:220% 100%;animation:qrShimmer 1.2s linear infinite}
@keyframes qrShimmer{to{background-position:-220% 0}}
.qr-placeholder{
  display:none;position:absolute;inset:0;width:100%;height:100%;align-items:center;justify-content:center;
  font-size:11.5px;color:var(--ink-3);text-align:center;line-height:1.5;
  background:#f8fafc;padding:12px
}
.qr-tip{display:block;margin-top:8px;font-size:11.5px;color:var(--ink-3)}

/* ---------- Plan comparison table ---------- */
.plan-table{width:100%;border-collapse:collapse;font-size:13px;min-width:580px;border:2px solid #cbd5e1;border-radius:12px;overflow:hidden}
.plan-table thead th{padding:18px 16px 14px;text-align:center;border-bottom:2px solid #cbd5e1;vertical-align:bottom}
.plan-table thead.section-head th{background:linear-gradient(90deg,#eff6ff,#f0f4ff);font-size:12.5px;font-weight:700;color:#1d4ed8;text-align:left!important;padding:16px 18px;border-top:2px solid #2563eb;border-bottom:2px solid #2563eb;letter-spacing:.5px}
.plan-table thead.section-head th:first-child{border-left:4px solid #2563eb;padding-left:14px}
.plan-table tbody td{padding:12px 16px;text-align:center;border-bottom:1px solid #cbd5e1;color:var(--ink-2)}
.plan-table tbody td:first-child{text-align:left;font-weight:500;color:var(--ink)}
.plan-table tbody tr:hover td{background:#f8fafc}
.plan-table .ok{color:#16a34a;font-weight:700}
.plan-table .no{color:#cbd5e1}
.plan-table .plan-table-label{font-size:13px;font-weight:700;color:var(--ink)}
.plan-table .plan-table-label.label-ent{color:#2563eb}
.plan-table .plan-table-price{font-size:20px;font-weight:800;margin-top:2px;color:var(--ink)}
.plan-table .plan-table-price small{font-size:13px;font-weight:500;color:var(--ink-3);margin-left:2px}
.plan-table .plan-table-price .per-year{font-size:12px;font-weight:700;color:#ea580c;background:#fff7ed;padding:1px 6px;border-radius:4px;margin-left:4px}

/* ---------- Early price banner ---------- */
.early-price-banner{
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(135deg,#fef3c7,#fff7ed);
  border:2px solid #f59e0b;border-radius:12px;
  padding:14px 18px;margin-bottom:22px;
  font-size:13px;color:#92400e;line-height:1.6;
}
.early-price-banner b{color:#b45309}

/* ---------- Plan highlight ---------- */
.plan-highlight{padding:8px 0}
.plan-price-big{font-size:36px;font-weight:800;margin-bottom:12px;color:var(--ink)}
.plan-price-big span{font-size:18px;vertical-align:super}
.plan-price-big .per-year-big{font-size:14px;font-weight:700;color:#ea580c;background:#fff7ed;padding:2px 8px;border-radius:6px;margin-left:4px;vertical-align:middle}
.plan-price-big small{font-size:12px;color:var(--ink-3);font-weight:500;margin-left:8px}

/* ---------- 出海情报新闻卡片 ---------- */
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.news-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;transition:.15s}
.news-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08);border-color:#93c5fd}
.news-card-img{height:160px;overflow:hidden;background:linear-gradient(135deg,#1e3a8a,#7c3aed);position:relative}
.news-card-img img{width:100%;height:100%;object-fit:cover}
.news-card-noimg{height:160px;background:linear-gradient(135deg,#1e3a8a 0%,#7c3aed 50%,#db2777 100%);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.news-card-noimg::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.1) 0%,transparent 50%)}
.news-card-noimg-icon{font-size:48px;color:rgba(255,255,255,.9);position:relative;z-index:1}
.news-card-noimg-text{font-size:11px;color:rgba(255,255,255,.7);position:absolute;bottom:10px;left:0;right:0;text-align:center;letter-spacing:1px}
.news-card-body{padding:14px 16px}
.news-card-title{font-size:14px;font-weight:700;color:var(--ink);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:6px}
.news-card-date{font-size:11px;color:var(--ink-3);margin-bottom:6px}
.news-card-tags{display:flex;flex-wrap:wrap;gap:4px}
.news-card-tags span{font-size:10px;padding:2px 6px;background:#eff6ff;color:#2563eb;border-radius:4px}
@media(max-width:560px){.news-grid{grid-template-columns:1fr}}

/* ---------- 出海情报 2026 ---------- */
.overseas-page{display:flex;flex-direction:column;gap:22px}.overseas-hero{position:relative;isolation:isolate;overflow:hidden;padding:32px 34px 22px;border-radius:20px;background:#101a2e;color:#fff;box-shadow:0 16px 42px rgba(15,28,52,.14)}.overseas-hero:after{content:"";position:absolute;z-index:-1;right:-100px;top:-170px;width:430px;height:430px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.38),rgba(37,99,235,.06) 48%,transparent 70%)}.overseas-hero-grid{position:absolute;z-index:-1;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(90deg,transparent 15%,#000 60%,transparent)}.overseas-hero-copy{max-width:620px}.overseas-hero-copy>span{display:flex;align-items:center;gap:8px;color:#91a0b7;font-size:9px;font-weight:700;letter-spacing:1.2px}.overseas-hero-copy>span i{width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.1)}.overseas-hero-copy h2{margin:12px 0 7px;font-size:30px;letter-spacing:-.8px}.overseas-hero-copy p{max-width:540px;color:#9eabc0;font-size:12px;line-height:1.75}.overseas-hero-meta{position:absolute;right:34px;top:35px;display:flex;gap:30px}.overseas-hero-meta>div{display:flex;flex-direction:column;align-items:flex-end}.overseas-hero-meta strong{font-size:17px;font-weight:750}.overseas-hero-meta span{margin-top:3px;color:#718198;font-size:8.5px}.overseas-topic-strip{display:flex;align-items:center;gap:16px;margin:27px -34px -22px;padding:14px 34px;border-top:1px solid rgba(255,255,255,.08);background:rgba(3,8,20,.12)}.overseas-topic-strip>span{color:#687990;font-size:9px;white-space:nowrap}.overseas-topic-strip>div{display:flex;gap:7px;overflow:hidden}.overseas-topic-strip em{padding:4px 8px;border:1px solid rgba(148,163,184,.16);border-radius:14px;color:#b8c4d5;font-size:8.5px;font-style:normal;white-space:nowrap}
.overseas-loading{display:grid;grid-template-columns:1.4fr .6fr;gap:18px}.overseas-loading div{height:320px;border-radius:16px;background:linear-gradient(90deg,#edf1f6,#f7f9fb,#edf1f6);background-size:200% 100%;animation:overseas-shimmer 1.5s infinite}.overseas-loading div:nth-child(3){grid-column:1/-1;height:180px}@keyframes overseas-shimmer{to{background-position:-200% 0}}
.overseas-content{display:flex;flex-direction:column;gap:26px}.overseas-lead{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.75fr);gap:18px}.overseas-feature{display:grid;grid-template-columns:43% minmax(0,1fr);overflow:hidden;min-height:330px;width:100%;border:1px solid #e3e8ef;border-radius:17px;background:#fff;text-align:left;box-shadow:0 9px 30px rgba(20,35,65,.055);transition:transform .2s,box-shadow .2s}.overseas-feature:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(20,35,65,.1)}.overseas-media{position:relative;display:block;overflow:hidden;background:#16213a}.overseas-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}.overseas-feature:hover .overseas-media>img,.overseas-feed>button:hover .overseas-media>img{transform:scale(1.025)}.overseas-media-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:24px;background:radial-gradient(circle at 76% 18%,rgba(59,130,246,.5),transparent 34%),linear-gradient(145deg,#111b31,#18335e);color:#fff}.overseas-media-fallback:before{content:"";position:absolute;inset:0;opacity:.13;background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);background-size:28px 28px}.overseas-media-fallback svg{position:absolute;right:22px;top:22px;width:34px;height:34px;color:#60a5fa}.overseas-media-fallback b{position:relative;font-size:15px;line-height:1.25;letter-spacing:1.6px}.overseas-media-fallback em{position:relative;margin-top:9px;color:#93c5fd;font-size:9px;font-style:normal}.overseas-feature-copy{display:flex;flex-direction:column;padding:29px 27px}.overseas-kicker{display:flex;align-items:center;gap:8px;color:#8a97aa;font-size:9px}.overseas-kicker em{color:#2563eb;font-style:normal;font-weight:700}.overseas-kicker i{width:3px;height:3px;border-radius:50%;background:#c0c8d3}.overseas-feature-copy>strong{margin-top:19px;color:#19243a;font-size:21px;line-height:1.4;letter-spacing:-.35px}.overseas-feature-copy>small{margin-top:8px;color:#8e9bad;font-size:9.5px;line-height:1.5}.overseas-feature-copy>p{margin-top:17px;color:#5f6d82;font-size:11px;line-height:1.85}.overseas-feature-copy>b{display:flex;align-items:center;gap:5px;margin-top:auto;padding-top:18px;color:#2563eb;font-size:10px}.overseas-feature-copy>b svg{width:13px}
.overseas-briefs{padding:22px 22px 10px;border:1px solid #e3e8ef;border-radius:17px;background:#fff}.overseas-briefs>header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid #e9edf2}.overseas-briefs>header span,.overseas-latest>header span{color:#9aa6b7;font-size:7.5px;font-weight:800;letter-spacing:1.1px}.overseas-briefs>header h3,.overseas-latest>header h3{margin:3px 0 0;font-size:15px}.overseas-briefs>header>svg{width:16px;color:#2563eb}.overseas-briefs>div>button{display:grid;grid-template-columns:27px minmax(0,1fr) 13px;align-items:center;gap:9px;width:100%;padding:16px 0;border-bottom:1px solid #edf0f4;text-align:left}.overseas-briefs>div>button:last-child{border-bottom:0}.overseas-briefs>div>button>em{color:#c1c9d4;font-size:9px;font-style:normal}.overseas-briefs>div>button>span{display:flex;flex-direction:column;min-width:0}.overseas-briefs>div>button small{color:#8f9bad;font-size:8px}.overseas-briefs>div>button b{display:-webkit-box;margin-top:5px;overflow:hidden;color:#2d394d;font-size:10.5px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.overseas-briefs>div>button:hover b{color:#2563eb}.overseas-briefs>div>button>svg{width:12px;color:#b4becb}
.overseas-latest{padding-top:2px}.overseas-latest>header{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:15px;border-bottom:1px solid #dfe5ec}.overseas-latest>header p{color:#909cad;font-size:9.5px}.overseas-feed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}.overseas-feed>button{position:relative;display:grid;grid-template-columns:126px minmax(0,1fr) 15px;gap:15px;min-height:134px;padding:19px 0;border-bottom:1px solid #e5e9ef;text-align:left}.overseas-media.is-thumb{height:94px;border-radius:10px}.overseas-media.is-thumb .overseas-media-fallback{padding:12px}.overseas-media.is-thumb .overseas-media-fallback svg{right:10px;top:10px;width:20px}.overseas-media.is-thumb .overseas-media-fallback b{font-size:8px}.overseas-media.is-thumb .overseas-media-fallback em{margin-top:5px;font-size:7px}.overseas-feed-copy{display:flex;flex-direction:column;min-width:0}.overseas-feed-copy>small{display:flex;align-items:center;gap:8px;color:#929eae;font-size:8px}.overseas-feed-copy>small em{color:#2563eb;font-style:normal;font-weight:700}.overseas-feed-copy>b{display:-webkit-box;margin-top:7px;overflow:hidden;color:#273349;font-size:11px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.overseas-feed>button:hover .overseas-feed-copy>b{color:#2563eb}.overseas-feed-copy>p{display:-webkit-box;margin-top:7px;overflow:hidden;color:#7e8b9e;font-size:9px;line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:2}.overseas-feed-copy>i{display:flex;gap:5px;margin-top:auto;font-style:normal}.overseas-feed-copy>i span{color:#929daf;font-size:7.5px}.overseas-feed>button>svg{width:13px;color:#acb6c4}
.overseas-detail-head>span{display:block;margin-bottom:10px;color:#2563eb;font-size:10px;font-weight:700;letter-spacing:.4px}.overseas-detail-head>p{margin-top:8px;color:#77859a;font-size:11px;line-height:1.55}.overseas-detail-cover{display:block;width:100%;max-height:360px;margin-bottom:22px;border-radius:12px;object-fit:cover}.overseas-detail-content{color:#2f3b4e;font-size:13px;line-height:2}.overseas-detail-source{display:inline-flex!important;align-items:center;gap:5px;margin-top:22px!important}.overseas-detail-source svg{width:13px}.overseas-detail-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}.overseas-detail-gallery img{width:100%;height:130px;border-radius:8px;object-fit:cover}
@media(max-width:980px){.overseas-lead{grid-template-columns:1fr}.overseas-briefs>div{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.overseas-briefs>div>button{align-items:start}.overseas-feed{grid-template-columns:1fr}}
@media(max-width:700px){.overseas-page{gap:15px}.overseas-hero{padding:24px 20px 17px;border-radius:15px}.overseas-hero-copy h2{font-size:24px}.overseas-hero-copy p{font-size:11px}.overseas-hero-meta{position:static;margin-top:20px;justify-content:flex-start}.overseas-hero-meta>div{align-items:flex-start}.overseas-topic-strip{margin:20px -20px -17px;padding:12px 20px}.overseas-feature{grid-template-columns:1fr;min-height:0}.overseas-media.is-feature{height:205px}.overseas-feature-copy{padding:22px 20px}.overseas-feature-copy>strong{margin-top:14px;font-size:18px}.overseas-feature-copy>b{margin-top:17px}.overseas-briefs>div{grid-template-columns:1fr;gap:0}.overseas-latest>header p{display:none}.overseas-feed>button{grid-template-columns:96px minmax(0,1fr) 13px;gap:11px;min-height:110px;padding:14px 0}.overseas-media.is-thumb{height:82px}.overseas-feed-copy>p{display:none}.overseas-detail-gallery{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.overseas-hero-copy>span{font-size:8px}.overseas-hero-meta{gap:22px}.overseas-topic-strip>span{display:none}.overseas-feature-copy>small{display:none}.overseas-feed>button{grid-template-columns:82px minmax(0,1fr) 12px}.overseas-media.is-thumb{height:74px}.overseas-feed-copy>i{display:none}}
.overseas-media>img{z-index:2;background:#16213a}

/* ---------- About 底部说明 ---------- */
.about-note{margin-top:16px;padding:14px 18px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;text-align:center}
.about-note p{font-size:12px;color:var(--ink-3);line-height:1.8;margin:0}

/* ---------- Paywall ---------- */
.paywall{
  position:absolute;left:0;right:0;bottom:0;
  top:64px; /* 露出标题与描述区 */
  z-index:10;
  display:flex;flex-direction:column;align-items:center;
  justify-content:flex-start;
  text-align:center;padding:56px 24px 24px;
  background:rgba(255,255,255,0.25);
  backdrop-filter:blur(4px) saturate(110%);
  -webkit-backdrop-filter:blur(4px) saturate(110%);
  border-radius:0 0 12px 12px;
  border-top:1px dashed rgba(203,213,225,0.5);
  pointer-events:auto;
}
.paywall .pw-icon{font-size:34px;margin-bottom:8px;opacity:.85}
.paywall h4{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:6px}
.paywall p{font-size:12.5px;color:var(--ink-3);max-width:280px;line-height:1.7;margin-bottom:14px}
.paywall .pw-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.pw-require{
  font-size:12px;color:var(--ink-3);margin-bottom:10px;
  background:linear-gradient(135deg,#dbeafe,#ede9fe);padding:5px 14px;border-radius:20px;
}
.pw-require span{font-weight:800;color:#1d4ed8;font-size:13px}
.paywall .pw-hint{
  font-size:11px;color:#94a3b8;margin-top:auto;
  background:rgba(255,255,255,0.7);padding:6px 12px;border-radius:20px;
}


/* ---------- Gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.gtile{height:110px;border-radius:10px;overflow:hidden;background:var(--line-2)}
.gtile.real{padding:0}
.gtile.real img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in;transition:.15s}
.gtile.real img:hover{opacity:.88}

/* 图片灯箱 */
.lightbox{
  position:fixed;inset:0;background:rgba(15,23,42,.9);z-index:100;
  display:none;align-items:center;justify-content:center;padding:40px;cursor:zoom-out;
}
.lightbox.open{display:flex}
.lightbox img{max-width:92%;max-height:92%;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox .lb-close{position:absolute;right:24px;top:18px;color:#fff;font-size:32px;cursor:pointer;line-height:1}
.gtile.video{
  background:#0f172a;display:grid;place-items:center;
  color:#93c5fd;font-size:12.5px;font-weight:600;
}
.gtile.loading{display:grid;place-items:center;color:var(--ink-3);font-size:12px}
.video-note{margin-top:7px;font-size:12px;color:var(--ink-3);padding:7px 11px;background:var(--bg);border-radius:7px}

/* ---------- Summary / Source ---------- */
.summary{
  background:var(--card);border:1px solid var(--line);border-radius:11px;
  padding:13px 15px;font-size:13px;line-height:1.85;color:var(--ink-2);
}
.src-note{
  margin-top:14px;font-size:11.5px;color:var(--ink-3);
  background:var(--bg);border:1px dashed var(--line);border-radius:7px;padding:10px 12px;
}
.src-note .src-line{margin-bottom:4px}
.src-note .src-link{
  display:inline-flex;align-items:center;gap:4px;
  margin-top:6px;color:var(--brand-700);font-weight:600;text-decoration:none;
}
.src-note .src-link:hover{text-decoration:underline}

/* ---------- Detail enhancements ---------- */
.detail-abstract{
  display:flex;gap:12px;align-items:flex-start;
  background:linear-gradient(135deg,#eff6ff 0,#f8fafc 100%);
  border:1px solid #bfdbfe;border-radius:11px;padding:14px 16px;margin-bottom:18px;
}
.detail-abstract i{color:#2563eb;flex:0 0 20px;margin-top:2px}
.detail-abstract p{margin:0;font-size:13px;line-height:1.75;color:var(--ink-2)}

.detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 18px}
.btn-outline{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:600;color:var(--brand-700);
  background:#fff;border:1px solid #bfdbfe;border-radius:8px;
  padding:8px 12px;cursor:pointer;transition:.15s;
}
.btn-outline:hover{background:#eff6ff;border-color:#93c5fd}
.btn-outline i{width:14px;height:14px}

.solution-arch{
  display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;
  background:var(--card);border:1px solid var(--line);border-radius:11px;padding:16px;margin-bottom:18px;
}
.arch-node{
  flex:1;min-width:110px;max-width:160px;
  background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:12px 10px;text-align:center;
}
.arch-icon{width:32px;height:32px;border-radius:8px;background:#eff6ff;color:#2563eb;display:grid;place-items:center;margin:0 auto 8px}
.arch-icon svg{width:16px;height:16px}
.arch-label{font-size:11px;font-weight:700;color:var(--ink-3);margin-bottom:5px}
.arch-value{font-size:12px;font-weight:600;color:var(--ink);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.arch-arrow{display:grid;place-items:center;color:#cbd5e1;align-self:center}
.arch-arrow svg{width:18px;height:18px}

.equip-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.equip-chip{
  display:inline-flex;align-items:center;gap:6px;
  background:#f1f5f9;border:1px solid #e2e8f0;border-radius:20px;
  padding:6px 12px;font-size:12px;color:var(--ink);
}
.equip-chip b{font-weight:600}
.equip-chip em{font-style:normal;color:#64748b;font-size:11px}

.ind-ref{
  background:var(--card);border:1px solid var(--line);border-radius:11px;padding:16px;margin-bottom:18px;
}
.ind-ref-stats{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}
.ind-ref-stat{
  flex:1;min-width:140px;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:12px;
}
.ind-ref-stat b{display:block;font-size:15px;font-weight:700;color:var(--brand-700);margin-bottom:4px;line-height:1.4}
.ind-ref-stat span{font-size:11.5px;color:var(--ink-3)}
.ind-ref-label{font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:10px}
.ind-ref-cases .recs{margin-top:0}

/* ---------- Company Profile ---------- */
.profile-stats{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}
.profile-stat{
  flex:1;min-width:140px;background:linear-gradient(135deg,#eff6ff,#f8fafc);
  border:1px solid #bfdbfe;border-radius:10px;padding:14px;
}
.profile-stat b{display:block;font-size:18px;font-weight:700;color:var(--brand-700);margin-bottom:4px}
.profile-stat span{font-size:12px;color:var(--ink-3)}
.profile-sec{margin-bottom:18px}
.profile-sec-title{font-size:13px;font-weight:700;color:var(--ink-2);margin-bottom:10px}
.partner-list{display:flex;flex-direction:column;gap:8px}
.partner-item{
  display:flex;justify-content:space-between;align-items:center;
  background:var(--bg);border:1px solid var(--line);border-radius:8px;
  padding:9px 12px;cursor:pointer;transition:.12s;
}
.partner-item:hover{background:#f1f5f9;border-color:#cbd5e1}
.partner-item span{font-size:12.5px;font-weight:600;color:var(--ink)}
.partner-item em{font-size:11px;color:var(--ink-3);font-style:normal}

/* ---------- Metrics ---------- */
.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}
.metric{background:linear-gradient(160deg,#eff6ff,#fff);border:1px solid #dbeafe;border-radius:10px;padding:13px 9px;text-align:center}
.metric .mv{font-size:16px;font-weight:800;color:var(--brand-700);line-height:1.2}
.metric .mk{font-size:11.5px;color:var(--ink-2);margin-top:5px;font-weight:600}
.metric .mn{font-size:10px;color:var(--ink-3);margin-top:3px}

/* ---------- Phases ---------- */
.phases{display:flex;flex-direction:column;gap:8px}
.phase{display:flex;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:13px 15px}
.ph-no{
  width:24px;height:24px;border-radius:7px;background:var(--brand);
  color:#fff;font-weight:700;font-size:12px;display:grid;place-items:center;
  flex:0 0 auto;margin-top:1px;
}
.ph-body b{font-size:13px;color:var(--ink)}
.ph-body p{font-size:12px;color:var(--ink-3);margin-top:3px;line-height:1.7}

/* ---------- Voices ---------- */
.voices{display:flex;flex-direction:column;gap:7px}
.voice{
  background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;
  padding:11px 14px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;
}
.vq{font-size:12.5px;color:var(--ink-2);font-style:italic;line-height:1.7;flex:1}
.vr{font-size:11.5px;color:var(--ink-3);font-weight:600;white-space:nowrap}

/* ---------- Locked ---------- */
.locked{
  margin-top:20px;border:1px dashed #cbd5e1;border-radius:11px;padding:22px;text-align:center;
  background:repeating-linear-gradient(45deg,#f8fafc,#f8fafc 10px,#f1f5f9 10px,#f1f5f9 20px);
}
.locked p{font-size:13px;color:var(--ink-3);margin:8px 0 14px}

/* ---------- Empty ---------- */
.empty{text-align:center;padding:60px 20px;color:var(--ink-3);font-size:13px}

/* ---------- Industry ---------- */
.ind-note{
  display:flex;align-items:flex-start;gap:10px;
  background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;
  padding:10px 14px;margin-bottom:18px;
  font-size:12px;color:var(--ink-2);line-height:1.6;
}
.ind-note b{color:#1d4ed8}
.ind-overview{display:flex;align-items:flex-start;gap:10px;background:linear-gradient(135deg,#fefce8,#fffbeb);border:1px solid #fde68a;border-radius:10px;padding:12px 16px;margin-bottom:16px;font-size:13.5px;color:#78350f;line-height:1.8}
.ind-overview b{color:#92400e}
.ind-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;min-width:0}
.ind-card{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:20px;box-shadow:var(--shadow-sm);cursor:pointer;transition:.18s;border-top:3px solid var(--line);
  min-width:0;overflow:hidden;
}
.ind-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.ind-card h4{font-size:16px;font-weight:800;margin-bottom:6px;display:block;overflow:visible}
.ind-card .ist{font-size:12.5px;color:var(--ink-3);margin-bottom:14px;line-height:1.55;display:block;overflow:visible}
.ind-card .inums{display:flex;gap:24px;margin-bottom:14px;flex-wrap:wrap}
.ind-card .inums div{min-width:50px}
.ind-card .inums div b{font-size:20px;font-weight:800;color:var(--brand-700);display:block;line-height:1.2}
.ind-card .inums div span{font-size:11.5px;color:var(--ink-3);margin-top:2px;display:block}
.ind-analytics{margin-top:8px;display:flex;flex-direction:column;gap:12px;min-width:0}
.ia-title{font-size:11px;color:var(--ink-3);font-weight:600;margin-bottom:4px}
.tag-cloud{position:relative;width:100%;display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:32px}
.cloud-tag{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:3px 9px;background:#f8fafc;border:1px solid;border-radius:999px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .12s ease,opacity .12s ease;cursor:default}
.cloud-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}
.cloud-tag:hover{transform:scale(1.04);opacity:1 !important;z-index:1;background:#fff}
.cloud-count{display:inline-block;font-style:normal;font-size:10px;font-weight:700;padding:1px 6px;background:currentColor;color:#fff;border-radius:999px;opacity:.9;line-height:1.3;flex:0 0 auto}
.cloud-empty{font-size:12px;color:#94a3b8}

/* ---------- Footer ---------- */
.map-wrap{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}
.map-left{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.map-right{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);max-height:520px;overflow:hidden;display:flex;flex-direction:column}
.map-prov-head{
  padding:14px 16px;border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;gap:8px;flex:0 0 auto;
}
.map-prov-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.map-type-tabs{display:flex;gap:4px;flex-wrap:wrap}
.map-type-tab{font-size:11px;font-weight:600;color:var(--ink-3);background:var(--line-2);border:1px solid var(--line);border-radius:6px;padding:4px 9px;transition:.15s;white-space:nowrap}
.map-type-tab:hover{background:#dbeafe;color:var(--brand-700)}
.map-type-tab.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.map-prov-head b{font-size:15px;font-weight:700}
.map-prov-head span{font-size:12px;color:var(--ink-3)}
.map-list{overflow-y:auto;flex:1;padding:8px}
.map-item{
  padding:11px 12px;border-radius:9px;cursor:pointer;transition:.15s;
  border:1px solid transparent;margin-bottom:6px;
}
.map-item:hover{background:var(--bg);border-color:var(--line)}
.map-item-top{display:flex;gap:5px;margin-bottom:6px;flex-wrap:wrap}
.map-item-name{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.45;margin-bottom:6px}
.map-item-foot{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--ink-3)}
.map-amt{font-weight:700;color:var(--brand-700);font-size:12px}
.map-hint{
  padding:30px 20px;text-align:center;color:var(--ink-3);
  display:flex;flex-direction:column;align-items:center;gap:12px;flex:1;justify-content:center;
}
.map-hint p{font-size:13px;line-height:1.7}
.map-trend-box{width:100%;margin-top:4px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px}
.map-trend-title{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--ink-2);margin-bottom:8px}
.map-trend-row{display:grid;grid-template-columns:20px 1fr 32px;align-items:center;gap:8px;padding:3px 0;font-size:11.5px}
.map-trend-idx{font-weight:800;color:var(--brand-500);font-size:11px;text-align:center}
.map-trend-name{color:var(--ink);font-weight:600}
.map-stat-list{width:100%;margin-top:8px;display:flex;flex-direction:column;gap:7px}
.map-stat-row{
  display:grid;grid-template-columns:36px 1fr 28px;align-items:center;gap:8px;
  cursor:pointer;padding:5px 6px;border-radius:7px;transition:.15s;
}
.map-stat-row:hover{background:var(--bg)}
.map-stat-name{font-size:12px;color:var(--ink-2);font-weight:600}
.map-mini-bar{height:6px;background:var(--line-2);border-radius:3px;overflow:hidden}
.map-stat-n{font-size:11.5px;color:var(--ink-3);text-align:right}
@media(max-width:980px){.map-wrap{grid-template-columns:1fr}.map-right{max-height:300px}}

.map-offnote{padding:10px 14px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.map-offnote span{font-size:11px;color:var(--ink-3)}
.off-chip{font-size:12px;font-weight:600;color:var(--brand-700);background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;padding:4px 12px;cursor:pointer}
.off-chip:hover{background:#dbeafe}

/* ---------- Footer ---------- */
.foot{padding:22px 24px;color:var(--ink-3);font-size:11.5px;text-align:center;border-top:1px solid var(--line);margin-top:8px}

/* ---------- 移动端底部导航 ---------- */
.mob-nav{display:none}
@media(max-width:980px){
  .sidebar{display:none}
  .mob-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:50;background:#fff;border-top:1px solid var(--line);padding:4px 0 env(safe-area-inset-bottom,8px);justify-content:space-around}
  .mob-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;font-size:10px;font-weight:600;color:var(--ink-3);text-decoration:none;transition:.15s;min-width:56px}
  .mob-nav-item i{width:20px;height:20px;stroke:currentColor}
  .mob-nav-item.active{color:var(--brand-600)}
  .main{padding-bottom:72px}
}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .row.two{grid-template-columns:1fr}
  .proj-grid{grid-template-columns:1fr}
  .kv-grid{grid-template-columns:repeat(2,1fr)}
  .ind-grid{grid-template-columns:1fr}
  .search{width:150px}
  .metrics{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:520px){
  .metrics{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(2,1fr)}
}
/* 手机端 (<480px) 关键适配 */
@media(max-width:480px){
  .page-head{padding:18px 16px}
  .page-head h2{font-size:17px}
  .page-head p{font-size:12px}
  .modal-head{padding:16px 16px}
  .modal-head h2{font-size:15px}
  .modal-body{padding:16px}
  .stat-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .stat{padding:12px 10px}
  .stat .v{font-size:22px}
  .stat .k{font-size:10.5px}
  .kv-grid{grid-template-columns:repeat(2,1fr);gap:6px}
  .kv .v{font-size:13px}
  .kv .k{font-size:10px}
  .filters{gap:6px}
  .filters .fgroup{flex-wrap:wrap}
  .filters select.fs{font-size:11px;padding:6px 8px}
  .chip-reset{font-size:11px;padding:5px 10px}
  .result-count{font-size:11px}
  .search{width:130px}
  .cmp-filter-bar{gap:6px}
  .cmp-modes{gap:4px}
  .cmp-mode-btn{padding:5px 10px;font-size:11px}
  .cmp-search-box{min-width:140px}
  .cmp-select{min-width:120px}
  .config-row{grid-template-columns:80px 1fr}
  .config-row .ck{font-size:11px;padding:10px 8px}
  .config-row .cv{font-size:12px;padding:10px 8px}
  .arch-node{min-width:80px;max-width:120px;padding:10px 6px}
  .arch-icon{width:28px;height:28px}
  .arch-label{font-size:10px}
  .arch-value{font-size:10px}
  .phase{padding:10px 12px;gap:10px}
  .ph-no{width:20px;height:20px;font-size:10px}
  .hl{font-size:11px;padding:8px 10px}
  .voice{flex-direction:column;align-items:flex-start;gap:4px}
  .vr{align-self:flex-end}
  .cmp-growth-bars{overflow-x:auto;padding-bottom:4px}
  .cmp-grow-col{min-width:44px}
  .recs{grid-template-columns:1fr}
  .owner-timeline{padding:8px 0 8px 18px}
  .ot-dot{left:-14px;width:10px;height:10px}
  .ot-line{left:-10px}
  .ot-card{padding:10px 12px}
  .ot-name{font-size:12px}
  .ind-overview{font-size:12px;padding:10px 12px}
  .map-trend-box{padding:10px}
  .map-trend-row{font-size:10.5px}
  .cmp-overlap-list{gap:6px}
  .cmp-ov-row{padding:8px 10px}
  .cmp-ov-name{font-size:12px}
  .cmp-ov-owners{font-size:10.5px}
  .cmp-ov-hot{font-size:10.5px;padding:6px 10px}
}

/* ---------- Auth box (topbar) ---------- */
.auth-box{margin-left:auto;display:flex;align-items:center;gap:8px}
.auth-user{font-size:13px;font-weight:700;color:var(--ink)}
.auth-exp{font-size:11px;color:var(--ink-3);background:var(--bg);padding:2px 8px;border-radius:20px}
.auth-exp.warn{color:#b91c1c;background:#fee2e2;font-weight:600}
.auth-btn{font-size:12.5px;color:var(--ink-2);background:var(--bg);border:1px solid var(--line);padding:6px 12px;border-radius:8px}
.auth-btn:hover{background:#eef2f7}
.auth-btn.login{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
.auth-btn.login:hover{background:var(--brand-700)}
.auth-lvl{font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px;background:#dcfce7;color:#16a34a;margin-left:-4px}
.auth-lvl.ent{background:#dbeafe;color:#1d4ed8}

/* ---------- Login modal ---------- */
.login-mask{position:fixed;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(3px);
  display:none;align-items:center;justify-content:center;z-index:80}
.login-mask.open{display:flex}
.login-box{background:#fff;width:340px;max-width:92%;border-radius:16px;padding:26px 24px;position:relative;box-shadow:var(--shadow-lg)}
.login-h{font-size:18px;font-weight:800;margin-bottom:4px}
.login-sub{font-size:13px;color:var(--ink-3);margin-bottom:14px;line-height:1.7}
.login-sub strong{color:#ea580c;font-weight:700}
.paywall-tag-ent{display:inline-block;font-size:11px;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);padding:3px 12px;border-radius:12px;margin-bottom:10px;letter-spacing:.5px}
.paywall-divider{height:1px;background:linear-gradient(90deg,transparent,#e2e8f0,transparent);margin:12px 0}
.paywall-mini{display:flex;flex-direction:column;gap:7px;margin-bottom:4px}
.pwmini-item{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2)}
.pwmini-item i{width:14px;height:14px;color:#16a34a;flex:0 0 auto}
.login-box input{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:13.5px;margin-bottom:10px;font-family:inherit}
.login-box input:focus{outline:none;border-color:var(--brand)}
.login-msg{font-size:12.5px;color:#b91c1c;min-height:18px}
.login-tip{font-size:11.5px;color:var(--ink-3);text-align:center;margin-top:12px}
.login-close{position:absolute;right:16px;top:14px;font-size:22px;color:#94a3b8;cursor:pointer;line-height:1}
.login-close:hover{color:var(--ink)}

/* ---------- 相关项目推荐 ---------- */
.recs{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.rec{display:flex;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;transition:.15s}
.rec:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:#bfdbfe}
.rec-stripe{width:5px;flex:0 0 5px}
.rec-body{padding:11px 13px;min-width:0}
.rec-name{font-size:13px;font-weight:600;color:var(--ink);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rec-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--ink-3);margin-top:7px}
.rec-tag{font-weight:600}
.rec-amt{font-weight:700;color:var(--brand-700)}
.rec-status{color:#64748b}
.rec-keywords{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.rec-keywords .pkeyword{font-size:10.5px;padding:2px 6px;border-radius:5px}
@media(max-width:560px){.recs{grid-template-columns:1fr}}

/* ---------- 甲方采购画像 ---------- */
.owner-profile{background:linear-gradient(135deg,#f8fafc,#eff6ff);border:1px solid #e2e8f0;border-radius:12px;padding:18px;margin:10px 0 16px}
.op-stats{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.op-stat{flex:1;min-width:100px;text-align:center;background:#fff;border-radius:8px;padding:10px 8px;border:1px solid #e2e8f0}
.op-sv{font-size:20px;font-weight:800;color:var(--brand-700);line-height:1.3}
.op-sk{font-size:11px;color:var(--ink-3);margin-top:3px}
.op-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}
.op-row:last-child{margin-bottom:0}
.op-label{font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap;padding-top:5px;min-width:72px}
.op-tags{display:flex;flex-wrap:wrap;gap:5px}
.op-tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:20px;background:#e0f2fe;color:#0369a1}
.op-tag em{font-size:10px;font-weight:400;opacity:.7}
.op-tag.integ{background:#fef3c7;color:#92400e}
.op-tag.equip{background:#fce7f3;color:#9d174d}

/* ---------- 采购时间线 ---------- */
.owner-timeline{position:relative;padding:8px 0 8px 24px;margin:10px 0 16px}
.ot-node{position:relative;padding:0 0 20px 0}
.ot-node:last-child{padding-bottom:0}
.ot-dot{position:absolute;left:-18px;top:16px;width:12px;height:12px;border-radius:50%;background:#cbd5e1;border:3px solid #e2e8f0;z-index:1}
.ot-node.current .ot-dot{background:var(--brand-600);border-color:#bfdbfe;box-shadow:0 0 0 4px rgba(37,99,235,.15)}
.ot-line{position:absolute;left:-13px;top:28px;bottom:0;width:2px;background:#e2e8f0}
.ot-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;transition:.15s}
.ot-node.current .ot-card{border-color:var(--brand-400);background:linear-gradient(135deg,#f0f9ff,#fff)}
.ot-card[onclick]{cursor:pointer}
.ot-card[onclick]:hover{box-shadow:0 2px 8px rgba(0,0,0,.08);border-color:#93c5fd}
.ot-year{font-size:11px;font-weight:600;color:var(--brand-600);margin-bottom:3px}
.ot-year small{display:inline-block;margin-left:4px;padding:1px 4px;border-radius:999px;background:#eef2ff;color:#6366f1;font-size:9px;font-weight:600;vertical-align:1px}
.ot-node.current .ot-year{color:var(--brand-700)}
.ot-name{font-size:13px;font-weight:600;color:var(--ink);line-height:1.4;margin-bottom:6px}
.ot-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-3);flex-wrap:wrap}
.ot-meta span{padding:2px 8px;background:#f1f5f9;border-radius:4px}
.ot-badge{background:var(--brand-100)!important;color:var(--brand-700)!important;font-weight:600;font-size:10px}

/* ---------- 列表视图按钮 ---------- */
.btn-tiny{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--brand-700);background:var(--brand-50);border:1px solid var(--brand-200);border-radius:6px;padding:4px 10px;cursor:pointer;margin-left:8px;transition:.15s}
.btn-tiny:hover{background:var(--brand-100);border-color:var(--brand-400)}
.btn-tiny i{width:13px;height:13px}
.ind-chip{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:4px;white-space:nowrap}

/* ---------- 方案评估与横向对比 ---------- */
.insight-box{margin:10px 0 16px}
.insight-loading{font-size:13px;color:var(--ink-3);padding:16px;text-align:center}
.insight-empty{font-size:12px;color:var(--ink-3);text-align:center;padding:12px}
.insight-interpretation{font-size:13.5px;line-height:1.8;color:var(--ink);background:linear-gradient(135deg,#fefce8,#fffbeb);border:1px solid #fde68a;border-radius:10px;padding:14px 16px;margin-bottom:14px}
.insight-interpretation b{color:#92400e}
.insight-compare{margin-bottom:14px}
.insight-subtitle{display:block;font-size:11.5px;font-weight:600;color:var(--ink-3);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}
.insight-bars{display:flex;flex-direction:column;gap:8px}
.ibar{display:flex;align-items:center;gap:10px}
.ibar-label{width:90px;font-size:12px;font-weight:600;color:var(--ink-2);text-align:right;flex-shrink:0;line-height:1.3}
.ibar-label em{display:block;font-size:10px;font-weight:400;color:var(--ink-3)}
.ibar-track{flex:1;height:18px;background:#f1f5f9;border-radius:9px;overflow:hidden;border:1px solid #e2e8f0}
.ibar-fill{height:100%;border-radius:9px;transition:width .6s ease;min-width:4px}
.ibar-pct{width:90px;font-size:11px;color:var(--ink-3);flex-shrink:0;white-space:nowrap}
.ibar-pct b{color:var(--ink);font-weight:700}

@media(max-width:560px){
  .ibar{flex-wrap:wrap;gap:4px}
  .ibar-label{width:100%;text-align:left}
  .ibar-pct{width:auto}
  .op-stats{gap:6px}
  .op-stat{min-width:70px;padding:8px 6px}
  .op-sv{font-size:16px}
  .op-row{flex-direction:column;gap:4px}
}

/* ---------- 方案组合标签 ---------- */
.solution-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.solution-tag{
  display:inline-flex;align-items:center;
  font-size:11px;font-weight:600;color:#1d4ed8;
  background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;
  padding:4px 10px;cursor:pointer;transition:.12s;
}
.solution-tag:hover{background:#dbeafe;border-color:#93c5fd}
.pcard .solution-tags{margin:8px 0 6px}
.detail-solution-tags{margin:10px 0 18px}

/* ---------- 独立招标信息 ---------- */
.tender-head{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(135deg,#7c2d12,#c2410c 52%,#f97316)}
.tender-eyebrow{font-size:9.5px;letter-spacing:1.5px;color:#fed7aa;font-weight:700}.tender-head-stat{position:relative;z-index:1;min-width:130px;text-align:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:12px 18px}.tender-head-stat b{display:block;font-size:25px}.tender-head-stat span{font-size:10.5px;color:#ffedd5}
.tender-toolbar{display:flex;gap:9px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.tender-toolbar select{height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px;color:var(--ink-2);font-size:12px}.tender-search{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:0 5px 0 11px;flex:1;min-width:260px;height:38px}.tender-search svg{width:15px;color:#94a3b8}.tender-search input{border:0;outline:0;flex:1;min-width:0;font-size:12px}.tender-search button{background:#ea580c;color:#fff;border-radius:6px;font-size:11.5px;font-weight:700;padding:6px 12px}
.tender-note{display:flex;align-items:center;gap:8px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:9px;padding:9px 12px;font-size:11.5px;margin-bottom:15px}.tender-note svg{width:15px;flex:0 0 auto}.tender-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tender-card{background:#fff;border:1px solid var(--line);border-top:3px solid #f97316;border-radius:12px;padding:16px 17px;cursor:pointer;box-shadow:var(--shadow-sm);transition:.15s;display:flex;flex-direction:column;min-width:0}.tender-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#fdba74}.tender-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.tender-label{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;color:#c2410c}.tender-label svg{width:13px}.deadline{font-size:10px;font-weight:700;padding:3px 7px;border-radius:12px}.deadline.active{background:#dcfce7;color:#15803d}.deadline.urgent{background:#fee2e2;color:#b91c1c}.deadline.expired{background:#f1f5f9;color:#64748b}.deadline.unknown{background:#fef3c7;color:#92400e}.tender-card h3{font-size:14px;line-height:1.55;margin:10px 0;color:var(--ink)}.tender-owner{display:grid;grid-template-columns:14px 52px minmax(0,1fr);gap:5px;align-items:center;font-size:11px;color:var(--ink-3)}.tender-owner svg{width:13px}.tender-owner b{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tender-card>p{font-size:11.5px;color:var(--ink-3);line-height:1.7;margin:10px 0;background:#f8fafc;border-radius:7px;padding:8px 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tender-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:10.5px;color:var(--ink-3);margin-top:auto}.tender-meta span{display:flex;align-items:center;gap:4px}.tender-meta svg{width:12px}.tender-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-top:1px solid var(--line-2);margin-top:12px;padding-top:11px}.tender-foot>div{display:flex;flex-direction:column}.tender-foot small{font-size:9.5px;color:var(--ink-3)}.tender-foot b{font-size:16px;color:#c2410c}.tender-foot button{display:flex;align-items:center;gap:4px;color:#ea580c;font-size:11px;font-weight:700}.tender-foot button svg{width:13px}

/* ---------- 数据鲜活度与更新动态 ---------- */
.live-head{display:flex;align-items:center;gap:12px;position:relative;z-index:1;flex-wrap:wrap}
.live-badge{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;color:#dcfce7;background:rgba(22,163,74,.22);border:1px solid rgba(134,239,172,.3);padding:4px 10px;border-radius:20px}
.live-badge i{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.14);animation:livePulse 1.8s infinite}
@keyframes livePulse{50%{box-shadow:0 0 0 7px rgba(74,222,128,0)}}
.fresh-strip{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:16px;position:relative;z-index:1;font-size:11.5px;color:rgba(255,255,255,.72)}
.fresh-strip span{display:flex;gap:5px}.fresh-strip b{color:#fff;font-size:12px}
.activity-panel{margin-bottom:22px}.activity-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:8px}.activity-title .btn-outline{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.activity-title .btn-outline svg{width:14px}
.activity-list{display:flex;flex-direction:column}.activity-list.compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.activity-item{display:flex;align-items:center;gap:11px;width:100%;padding:12px 4px;text-align:left;border-bottom:1px solid var(--line-2);min-width:0}
.activity-item:hover .activity-main b{color:var(--brand)}.activity-kind{font-size:10px;font-weight:700;padding:3px 7px;border-radius:5px;flex:0 0 auto}.activity-kind.added{background:#dcfce7;color:#15803d}.activity-kind.updated{background:#dbeafe;color:#1d4ed8}
.activity-kind.tender{background:#ffedd5;color:#c2410c}
.activity-main{display:flex;flex-direction:column;min-width:0;flex:1}.activity-main b{font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:.15s}.activity-main small{font-size:10.5px;color:var(--ink-3);margin-top:2px}.activity-time{font-size:10.5px;color:var(--ink-3);white-space:nowrap}.activity-item>svg{width:14px;color:#cbd5e1;flex:0 0 auto}
.fresh-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.fresh-summary>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 18px;display:flex;flex-direction:column}.fresh-summary b{font-size:20px;color:var(--brand-700)}.fresh-summary span{font-size:11px;color:var(--ink-3)}.update-page-panel h3{margin-bottom:6px}
.detail-freshness{display:flex;gap:8px 16px!important;flex-wrap:wrap}.tracking-dot{display:inline-flex;align-items:center;gap:5px}.tracking-dot::before{content:'';width:6px;height:6px;border-radius:50%;background:#4ade80}

/* ---------- 企业情报 ---------- */
.company-head{padding-bottom:30px}.company-search{display:flex;align-items:center;gap:10px;max-width:720px;background:#fff;border:1px solid rgba(255,255,255,.45);border-radius:12px;padding:6px 7px 6px 14px;margin-top:18px;position:relative;z-index:2;box-shadow:0 10px 30px rgba(15,23,42,.16)}.company-search svg{width:17px;color:#64748b}.company-search input{flex:1;min-width:0;border:0;outline:0;font-size:13.5px;color:var(--ink)}.company-search button{background:var(--brand);color:#fff;border-radius:8px;padding:9px 18px;font-size:12.5px;font-weight:700}
.company-tabs{display:flex;align-items:center;gap:5px;margin:-6px 0 16px;flex-wrap:wrap}.company-tabs button{font-size:12px;color:var(--ink-3);padding:7px 13px;border:1px solid var(--line);background:#fff;border-radius:8px}.company-tabs button.on{color:var(--brand-700);border-color:#93c5fd;background:#eff6ff;font-weight:700}.company-tabs>span{margin-left:auto;font-size:11px;color:var(--ink-3)}
.company-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}.company-results{padding:16px;position:sticky;top:76px;max-height:calc(100vh - 92px);overflow:auto}.company-results h3{margin-bottom:8px}.company-result-list{display:flex;flex-direction:column}.company-result{display:flex;align-items:center;gap:9px;text-align:left;padding:10px 8px;border-bottom:1px solid var(--line-2);border-radius:8px;width:100%}.company-result:hover,.company-result.active{background:#eff6ff}.company-result>span:nth-child(2){display:flex;flex-direction:column;min-width:0;flex:1}.company-result b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.company-result small{font-size:10px;color:var(--ink-3)}.company-result>svg{width:14px;color:#cbd5e1}.company-avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#dbeafe;color:#1d4ed8;font-size:11px;font-weight:800;flex:0 0 auto}
.company-profile-area{min-width:0}.company-empty{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.company-empty>svg{width:44px;height:44px;color:#cbd5e1;margin-bottom:10px}.company-empty p{font-size:12px;color:var(--ink-3);margin-top:4px}.company-profile-loading{min-height:360px}.company-locked-wrap{position:relative;min-height:520px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.company-locked-wrap>.paywall-overlay{position:absolute;inset:0}.company-locked-wrap .paywall{top:42px;justify-content:flex-start;padding-top:92px}.company-preview-blur{padding:20px;filter:blur(4px);opacity:.5}.fake-hero{height:90px;background:linear-gradient(135deg,#dbeafe,#e2e8f0);border-radius:12px}.fake-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.fake-grid i{height:72px;background:#e2e8f0;border-radius:10px}.fake-panels{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fake-panels i{height:240px;background:#f1f5f9;border-radius:12px}
.company-profile-page{display:flex;flex-direction:column;gap:16px}.company-profile-hero{background:linear-gradient(135deg,#172554,#1d4ed8);border-radius:14px;padding:22px 24px;color:#fff;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.company-role{font-size:10px;font-weight:700;background:rgba(255,255,255,.16);padding:3px 9px;border-radius:12px}.company-profile-hero h2{font-size:20px;margin:7px 0 2px}.company-profile-hero p{font-size:11px;color:rgba(255,255,255,.7)}.enterprise-seal{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;color:#dbeafe;white-space:nowrap}.enterprise-seal svg{width:16px}
.profile-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.profile-kpis>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px;display:flex;flex-direction:column}.profile-kpis b{font-size:18px;color:var(--brand-700);white-space:nowrap}.profile-kpis span{font-size:10.5px;color:var(--ink-3)}.company-profile-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.company-profile-grid .panel{margin:0}.profile-block{margin-top:15px}.profile-block label{display:block;font-size:10.5px;font-weight:700;color:var(--ink-3);margin-bottom:7px}.profile-chip-list{display:flex;flex-wrap:wrap;gap:6px}.profile-chip-list span{font-size:11px;color:var(--ink-2);background:color-mix(in srgb,var(--chip,#2563eb) 10%,white);border:1px solid color-mix(in srgb,var(--chip,#2563eb) 25%,white);padding:4px 9px;border-radius:16px}.profile-chip-list em{font-style:normal;font-size:9px;opacity:.7}.profile-chip-list.neutral span{background:#f1f5f9;border-color:#e2e8f0}.profile-chip-list.equipment span{background:#fdf2f8;border-color:#fbcfe8;color:#9d174d}
.company-profile-page .profile-kpis{grid-template-columns:repeat(5,1fr)}
.company-year-bars{display:flex;flex-direction:column;gap:9px;margin-top:14px}.company-year-bars>div{display:grid;grid-template-columns:38px 1fr 24px;align-items:center;gap:8px;font-size:10.5px;color:var(--ink-3)}.company-year-bars i{height:7px;background:#eff6ff;border-radius:5px;overflow:hidden}.company-year-bars i b{display:block;height:100%;background:linear-gradient(90deg,#38bdf8,#2563eb);border-radius:5px}.company-year-bars em{font-style:normal;text-align:right}.company-partners{display:flex;flex-direction:column}.company-partner{display:flex;align-items:center;gap:8px;text-align:left;padding:9px 4px;border-bottom:1px solid var(--line-2)}.company-partner span{font-size:11.5px;font-weight:600;flex:1}.company-partner em{font-size:10px;font-style:normal;color:var(--ink-3)}.company-partner svg{width:13px;color:#94a3b8}.profile-note{font-size:12px;line-height:1.8;color:var(--ink-3);background:#f8fafc;border-radius:9px;padding:13px;margin-top:12px}.company-projects{margin:0}.company-project-list{display:flex;flex-direction:column;margin-top:8px}.company-project-list>button{display:grid;grid-template-columns:54px minmax(0,1fr) 130px 90px 16px;align-items:center;gap:9px;text-align:left;padding:10px 2px;border-bottom:1px solid var(--line-2)}.company-project-list b{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.company-project-list small,.company-project-list em{font-size:10px;color:var(--ink-3);font-style:normal}.company-project-list>button>svg{width:14px;color:#cbd5e1}

@media(max-width:1100px){.stat-grid.five{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.activity-list.compact{grid-template-columns:1fr}.company-layout{grid-template-columns:1fr}.company-results{position:static;max-height:320px}.company-profile-grid{grid-template-columns:1fr}.tender-grid{grid-template-columns:1fr}.mob-nav-item{flex:1;min-width:0;padding-left:3px;padding-right:3px}}
@media(max-width:560px){.fresh-strip{gap:6px 12px}.fresh-summary{grid-template-columns:repeat(2,1fr)}.activity-time{display:none}.activity-title{flex-direction:column}.company-search{margin-top:14px}.company-tabs>span{width:100%;margin:3px 0 0}.profile-kpis{grid-template-columns:repeat(2,1fr)}.company-profile-hero{flex-direction:column}.company-project-list>button{grid-template-columns:48px minmax(0,1fr) 16px}.company-project-list small,.company-project-list em{display:none}.fake-grid{grid-template-columns:repeat(2,1fr)}.tender-head{align-items:flex-start}.tender-head-stat{display:none}.tender-search{min-width:100%;}.tender-toolbar select{flex:1;min-width:105px}.tender-foot{align-items:center}.stat-grid.five{grid-template-columns:repeat(2,1fr)}}

/* ---------- 详情页可点击的行业/集成商 ---------- */
.tag.tag-click{cursor:pointer}
.tag.tag-click:hover{background:rgba(255,255,255,.4)!important}
.integ-link{color:var(--brand-700);cursor:pointer;border-bottom:1px dashed var(--brand)}
.integ-link:hover{color:var(--brand)}

/* 集成商筛选提示条 */
.active-filter{display:flex;align-items:center;gap:8px;background:#eff6ff;border:1px solid #bfdbfe;
  border-radius:9px;padding:9px 14px;font-size:13px;color:var(--ink-2);margin-bottom:14px}
.active-filter b{color:var(--brand-700)}
.active-filter button{margin-left:auto;font-size:12px;color:var(--ink-3);background:#fff;
  border:1px solid var(--line);border-radius:7px;padding:4px 10px}
.solution-active-filter{background:#f5f3ff;border-color:#ddd6fe}.solution-active-filter b{color:#6d28d9}
.solution-lens{display:flex;align-items:center;gap:16px;margin-bottom:12px;padding:12px 14px;border:1px solid #e3e8ef;border-radius:11px;background:#fff}.solution-lens>span{display:grid;grid-template-columns:20px auto;grid-template-rows:auto auto;column-gap:7px;min-width:132px}.solution-lens>span svg{grid-row:1/3;width:16px;color:#2563eb}.solution-lens>span b{font-size:11px}.solution-lens>span small{color:#8a97aa;font-size:8.5px}.solution-lens>div{display:flex;flex-wrap:wrap;gap:6px}.solution-lens button{padding:5px 9px;border:1px solid #e3e8ef;border-radius:16px;color:#5b687b;font-size:9px;background:#fafbfc}.solution-lens button:hover,.solution-lens button.on{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}
@media(max-width:700px){.solution-lens{align-items:flex-start;flex-direction:column;gap:10px}.solution-lens>span{min-width:0}.solution-lens>div{flex-wrap:nowrap;width:100%;padding-bottom:3px;overflow-x:auto}.solution-lens button{white-space:nowrap}}

/* ---------- 现代企业画像 ---------- */
.intel-profile{--intel-navy:#0b1739;--intel-blue:#2563eb;display:flex;flex-direction:column;gap:16px;color:#16213a}
.intel-cover{position:relative;isolation:isolate;overflow:hidden;min-height:184px;padding:27px 28px 22px;border-radius:20px;background:linear-gradient(118deg,#08142f 0%,#10275c 58%,#164e8e 100%);color:#fff;box-shadow:0 18px 45px rgba(15,35,83,.18)}
.intel-cover-grid{position:absolute;inset:0;z-index:-1;opacity:.14;background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(90deg,transparent 4%,#000 45%,transparent 100%)}
.intel-cover-glow{position:absolute;z-index:-1;width:360px;height:360px;border-radius:50%;right:-90px;top:-210px;background:radial-gradient(circle,rgba(56,189,248,.48),rgba(37,99,235,.1) 52%,transparent 70%)}
.intel-identity{display:flex;align-items:center;gap:18px;position:relative}
.intel-monogram{width:66px;height:66px;flex:0 0 auto;display:grid;place-items:center;border:1px solid rgba(255,255,255,.26);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.22),rgba(255,255,255,.07));box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 12px 30px rgba(0,0,0,.15);font-size:21px;font-weight:900;letter-spacing:1px;backdrop-filter:blur(8px)}
.intel-title{min-width:0}.intel-eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:7px}.intel-eyebrow span,.intel-eyebrow em{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:999px;font-size:9px;font-style:normal;font-weight:800;letter-spacing:.6px}.intel-eyebrow span{color:#bfdbfe;background:rgba(59,130,246,.2);border:1px solid rgba(147,197,253,.2)}.intel-eyebrow em{color:#a7f3d0;background:rgba(16,185,129,.13)}.intel-eyebrow svg{width:12px;height:12px}
.intel-title h2{margin:0;font-size:24px;line-height:1.25;letter-spacing:-.4px}.intel-title p{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:10.5px;color:rgba(226,232,240,.73)}.intel-title p>svg{width:13px}.intel-title p span{width:3px;height:3px;border-radius:50%;background:#60a5fa}
.intel-cover-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:17px;border-top:1px solid rgba(255,255,255,.11)}.intel-cover-tags span{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:8px;background:rgba(255,255,255,.07);color:#dbeafe;font-size:10px;border:1px solid rgba(255,255,255,.08)}.intel-cover-tags svg{width:13px;height:13px;color:#7dd3fc}.intel-cover-tags .verified{margin-left:auto;color:#a7f3d0;background:rgba(16,185,129,.1)}.intel-cover-tags .verified svg{color:#34d399}
.intel-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.intel-kpi{position:relative;overflow:hidden;display:flex;align-items:center;gap:11px;min-width:0;padding:15px 13px;background:#fff;border:1px solid #e8edf5;border-radius:14px;box-shadow:0 5px 18px rgba(15,35,83,.045)}.intel-kpi:after{content:"";position:absolute;right:-14px;bottom:-18px;width:58px;height:58px;border-radius:50%;background:var(--kpi);opacity:.055}.intel-kpi-icon{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;color:var(--kpi);background:color-mix(in srgb,var(--kpi) 10%,white)}.intel-kpi-icon svg{width:16px}.intel-kpi>div{display:flex;flex-direction:column;min-width:0}.intel-kpi b{font-size:16px;line-height:1.1;white-space:nowrap;letter-spacing:-.3px}.intel-kpi span:not(.intel-kpi-icon){margin-top:4px;font-size:10px;font-weight:700;color:#52617a}.intel-kpi small{margin-top:2px;color:#a0aabd;font-size:8.5px;white-space:nowrap}.intel-kpi.tone-blue{--kpi:#2563eb}.intel-kpi.tone-emerald{--kpi:#059669}.intel-kpi.tone-orange{--kpi:#ea580c}.intel-kpi.tone-violet{--kpi:#7c3aed}.intel-kpi.tone-cyan{--kpi:#0891b2}
.intel-bento{display:grid;grid-template-columns:1.08fr .92fr;gap:16px}.intel-card{margin:0;padding:20px;background:#fff;border:1px solid #e6ebf3;border-radius:17px;box-shadow:0 7px 24px rgba(15,35,83,.045)}.intel-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.intel-card>header h3{margin:2px 0 0;font-size:14px;letter-spacing:-.1px}.intel-card>header>svg{width:18px;height:18px;color:#8fa0b8}.intel-card-kicker{display:block;color:#8b9ab1;font-size:7.5px;font-weight:900;letter-spacing:1.25px}.intel-card .intel-empty{min-height:110px;display:grid;place-items:center;color:#9aa7ba;font-size:11px}
.intel-bar-list{display:flex;flex-direction:column;gap:15px}.intel-bar-row>div{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.intel-bar-row>div span{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#34425a}.intel-bar-row>div span em{font-size:8px;font-style:normal;color:#9ba8ba;font-variant-numeric:tabular-nums}.intel-bar-row>div>b{font-size:9px;color:#8b98aa}.intel-bar-row>i{display:block;height:6px;border-radius:999px;background:#eef2f7;overflow:hidden}.intel-bar-row>i>b{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--bar) 70%,#fff),var(--bar))}
.intel-live{display:flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:#ecfdf5;color:#047857;font-size:8.5px;font-weight:800}.intel-live i{width:5px;height:5px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.12)}.intel-column-chart{height:185px;display:flex;align-items:stretch;gap:8px;padding-top:10px}.intel-column{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center}.intel-column>em{height:23px;font-size:9px;font-style:normal;font-weight:700;color:#61708a}.intel-column>i{position:relative;display:flex;align-items:flex-end;width:100%;height:125px;border-radius:6px 6px 3px 3px;background:linear-gradient(180deg,#f5f8fc,#eef3f9);overflow:hidden}.intel-column>i>b{display:block;width:100%;min-height:8px;border-radius:6px 6px 3px 3px;background:linear-gradient(180deg,#38bdf8,#2563eb);box-shadow:0 -5px 14px rgba(37,99,235,.18)}.intel-column>span{margin-top:8px;font-size:8.5px;color:#8492a7;white-space:nowrap}
.intel-regions,.intel-equipment{min-height:260px}.intel-region-list{display:flex;flex-direction:column;gap:11px}.intel-region{display:grid;grid-template-columns:25px 1fr 26px;align-items:center;gap:9px}.intel-rank{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:#f1f5f9;color:#75849a;font-size:8px;font-weight:900}.intel-region:nth-child(-n+3) .intel-rank{background:#eff6ff;color:#2563eb}.intel-region>div{min-width:0}.intel-region>div>b{display:block;margin-bottom:5px;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.intel-region>div>i{display:block;height:4px;border-radius:3px;background:#eef2f7;overflow:hidden}.intel-region>div>i>em{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#93c5fd,#2563eb)}.intel-region>strong{text-align:right;font-size:10px;color:#596980}
.intel-tech-cloud{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px}.intel-tech-cloud span{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:9px;background:#f7f8fc;border:1px solid #edf0f5;color:#4d5b70;font-size:10px;font-weight:700}.intel-tech-cloud span.level-0{background:#eff6ff;border-color:#dbeafe;color:#1d4ed8}.intel-tech-cloud span.level-1{background:#f5f3ff;border-color:#ede9fe;color:#6d28d9}.intel-tech-cloud span.level-2{background:#ecfeff;border-color:#cffafe;color:#0e7490}.intel-tech-cloud span.level-3{background:#f0fdf4;border-color:#dcfce7;color:#15803d}.intel-tech-cloud em{padding-left:6px;border-left:1px solid currentColor;opacity:.5;font-size:8px;font-style:normal}
.intel-network{grid-column:1/-1}.intel-partner-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.intel-partner{display:grid;grid-template-columns:32px minmax(0,1fr) 44px 14px;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid #edf0f5;text-align:left}.intel-partner:hover b{color:#2563eb}.intel-partner-avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#e0ecff,#f0f6ff);color:#2563eb;font-size:11px;font-weight:900}.intel-partner>span:nth-child(2){min-width:0}.intel-partner>span:nth-child(2)>b{display:block;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s}.intel-partner>span:nth-child(2)>i{display:block;width:72px;height:3px;margin-top:6px;border-radius:2px;background:#eef2f7;overflow:hidden}.intel-partner>span:nth-child(2)>i>em{display:block;height:100%;background:linear-gradient(90deg,#60a5fa,#2563eb)}.intel-partner>strong{font-size:11px;text-align:right}.intel-partner>strong small{display:block;color:#9ca8b9;font-size:7px;font-weight:500}.intel-partner>svg{width:13px;color:#a6b1c1}
.intel-projects{padding:0;overflow:hidden}.intel-projects>header{align-items:center;margin:0;padding:20px 22px;border-bottom:1px solid #edf0f5;background:linear-gradient(180deg,#fff,#fbfcfe)}.intel-projects>header p{margin-top:5px;color:#8a97aa;font-size:9.5px}.intel-project-count{display:flex;align-items:baseline;gap:5px;color:#1d4ed8;font-size:22px;font-weight:900}.intel-project-count small{color:#8795aa;font-size:8px;font-weight:600}.intel-project-list{padding:0 20px}.intel-project-list>button{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr) 86px 16px;align-items:center;gap:13px;width:100%;padding:13px 3px;border-bottom:1px solid #edf0f5;text-align:left;transition:background .2s,transform .2s}.intel-project-list>button:hover{background:#f8faff;transform:translateX(2px)}.intel-project-type{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:5px 7px;border-radius:7px;font-size:9px;font-weight:800}.intel-project-type svg{width:11px;height:11px}.intel-project-type.is-tender{color:#c2410c;background:#fff7ed}.intel-project-type.is-bid{color:#047857;background:#ecfdf5}.intel-project-type.is-case{color:#1d4ed8;background:#eff6ff}.intel-project-main{min-width:0}.intel-project-main>b{display:block;overflow:hidden;color:#26344b;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.intel-project-main>small{display:flex;align-items:center;gap:4px;margin-top:5px;color:#939fb0;font-size:8.5px}.intel-project-main>small svg{width:10px;height:10px}.intel-project-main>small em{width:2px;height:2px;margin:0 3px;border-radius:50%;background:#bdc6d2}.intel-project-list>button>strong{text-align:right;color:#526178;font-size:10px;white-space:nowrap}.intel-project-list>button>svg{width:14px;color:#b8c2d0}.intel-project-foot{padding:12px;text-align:center;color:#929fb0;background:#fbfcfe;font-size:9px}.intel-source-note{display:flex;align-items:flex-start;gap:6px;padding:0 4px;color:#8996a8;font-size:9px;line-height:1.6}.intel-source-note svg{width:12px;height:12px;flex:0 0 auto;margin-top:1px}

@media(max-width:1160px){.intel-kpi-grid{grid-template-columns:repeat(3,1fr)}.intel-bento{grid-template-columns:1fr}.intel-network{grid-column:auto}}
@media(max-width:760px){.intel-cover{min-height:0;padding:22px 20px}.intel-monogram{width:54px;height:54px;border-radius:15px;font-size:17px}.intel-title h2{font-size:19px}.intel-cover-tags .verified{margin-left:0}.intel-kpi-grid{grid-template-columns:repeat(2,1fr)}.intel-partner-list{grid-template-columns:1fr}.intel-project-list{padding:0 12px}.intel-project-list>button{grid-template-columns:61px minmax(0,1fr) 14px;gap:8px}.intel-project-list>button>strong{display:none}}
@media(max-width:480px){.intel-profile{gap:12px}.intel-cover{border-radius:15px;padding:18px 16px}.intel-identity{align-items:flex-start;gap:12px}.intel-monogram{width:45px;height:45px;border-radius:12px;font-size:14px}.intel-eyebrow em{display:none}.intel-title h2{font-size:16px}.intel-title p{align-items:flex-start;flex-wrap:wrap;line-height:1.5}.intel-title p span{display:none}.intel-cover-tags{margin-top:16px;padding-top:13px}.intel-cover-tags span{font-size:9px}.intel-kpi{padding:12px 10px}.intel-kpi-icon{width:30px;height:30px}.intel-kpi b{font-size:14px}.intel-kpi small{display:none}.intel-card{padding:16px;border-radius:14px}.intel-column-chart{gap:4px;height:165px}.intel-column>i{height:105px}.intel-region,.intel-partner{gap:7px}.intel-projects{padding:0}.intel-projects>header{padding:17px 15px}.intel-projects>header p{display:none}.intel-project-count{font-size:18px}.intel-project-main>small{white-space:nowrap;overflow:hidden}.intel-project-type{padding:5px 4px}.intel-source-note{font-size:8.5px}}

/* ---------- 企业情报档案 2026 ---------- */
.dossier-profile{overflow:hidden;background:#fff;border:1px solid #e5e9f0;border-radius:20px;color:#172033;box-shadow:0 18px 50px rgba(24,39,75,.08)}
.dossier-head{position:relative;overflow:hidden;padding:27px 30px 0;background:#111a2d;color:#fff}.dossier-head:after{content:"";position:absolute;right:-120px;top:-190px;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,rgba(59,130,246,.28),transparent 68%);pointer-events:none}.dossier-head-light{position:absolute;left:42%;top:-80px;width:1px;height:280px;transform:rotate(34deg);background:rgba(255,255,255,.08);box-shadow:70px 0 rgba(255,255,255,.035),140px 0 rgba(255,255,255,.02)}
.dossier-head-top{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.dossier-identity{display:flex;align-items:center;gap:16px;min-width:0}.dossier-logo{width:58px;height:58px;flex:0 0 auto;display:grid;place-items:center;border-radius:16px;background:#2563eb;color:#fff;font-size:17px;font-weight:800;letter-spacing:.5px;box-shadow:0 10px 28px rgba(37,99,235,.32)}.dossier-identity>div{min-width:0}.dossier-label{display:flex;align-items:center;gap:7px;margin-bottom:7px;color:#9dabbe;font-size:10px;font-weight:600;letter-spacing:.5px}.dossier-label span{color:#93c5fd}.dossier-label i{width:3px;height:3px;border-radius:50%;background:#475569}.dossier-identity h2{margin:0;max-width:650px;font-size:22px;line-height:1.25;letter-spacing:-.3px}.dossier-identity p{margin-top:7px;color:#8290a6;font-size:10.5px}.dossier-status{display:flex;flex-direction:column;align-items:flex-end;gap:7px;white-space:nowrap}.dossier-status>span{display:flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid rgba(74,222,128,.16);border-radius:20px;background:rgba(34,197,94,.08);color:#86efac;font-size:9px;font-weight:700}.dossier-status>span i{width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.1)}.dossier-status small{color:#738198;font-size:9px}
.dossier-facts{position:relative;z-index:1;display:flex;gap:24px;margin:23px 0 20px}.dossier-facts>span{display:grid;grid-template-columns:18px auto;grid-template-rows:auto auto;column-gap:7px;align-items:center}.dossier-facts svg{grid-row:1/3;width:15px;height:15px;color:#64748b}.dossier-facts small{color:#64748b;font-size:8px}.dossier-facts b{margin-top:1px;color:#d7deea;font-size:10px;font-weight:600}
.dossier-metrics{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,1fr);margin:0 -30px;border-top:1px solid rgba(255,255,255,.08);background:rgba(3,8,20,.16)}.dossier-metrics>div{position:relative;padding:16px 20px}.dossier-metrics>div+div:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:1px;background:rgba(255,255,255,.075)}.dossier-metrics strong{display:block;font-size:17px;font-weight:750;font-variant-numeric:tabular-nums}.dossier-metrics span{display:block;margin-top:3px;color:#75849a;font-size:9px}
.dossier-body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr)}.dossier-main{min-width:0;border-right:1px solid #e9edf3}.dossier-section{padding:26px 28px}.dossier-section+.dossier-section{border-top:1px solid #e9edf3}.dossier-section>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:21px}.dossier-section>header span{display:block;margin-bottom:4px;color:#9aa5b5;font-size:8px;font-weight:700;letter-spacing:.7px}.dossier-section>header h3{margin:0;font-size:15px;letter-spacing:-.1px}.dossier-section>header p{color:#9aa5b5;font-size:9px}.dossier-section>header>b{color:#66758c;font-size:10px;font-weight:600}.dossier-empty{min-height:110px;display:grid;place-items:center;color:#99a5b6;font-size:11px}
.dossier-line-chart{width:100%}.dossier-line-chart svg{display:block;width:100%;height:auto;overflow:visible}.dossier-chart-grid line{stroke:#e8edf3;stroke-width:1}.dossier-chart-area{fill:url(#dossier-area)}.dossier-chart-line{fill:none;stroke:#2563eb;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.dossier-chart-point circle{fill:#fff;stroke:#2563eb;stroke-width:2.5}.dossier-chart-point text{fill:#34435b;font-size:9px;font-weight:700;text-anchor:middle}.dossier-chart-point text.year{fill:#8d99aa;font-size:8px;font-weight:500}
.dossier-project-list{display:flex;flex-direction:column}.dossier-project-list>button{display:grid;grid-template-columns:5px minmax(0,1fr) 80px 16px;align-items:center;gap:13px;width:100%;padding:13px 0;border-bottom:1px solid #edf0f4;text-align:left}.dossier-project-list>button:hover .dossier-project-copy>b{color:#2563eb}.dossier-project-mark{width:4px;height:30px;border-radius:4px;background:#3b82f6}.dossier-project-mark.is-tender{background:#f59e0b}.dossier-project-mark.is-bid{background:#10b981}.dossier-project-mark.is-case{background:#3b82f6}.dossier-project-copy{display:flex;flex-direction:column;min-width:0}.dossier-project-copy small{color:#8d99aa;font-size:8px}.dossier-project-copy>b{margin:4px 0 3px;overflow:hidden;color:#263249;font-size:10.5px;white-space:nowrap;text-overflow:ellipsis;transition:color .2s}.dossier-project-copy em{color:#a3adba;font-size:8px;font-style:normal}.dossier-project-list>button>strong{text-align:right;color:#526077;font-size:9.5px;font-weight:650;white-space:nowrap}.dossier-project-list>button>svg{width:13px;color:#aab4c2}.dossier-more{margin:14px 0 0;text-align:center;color:#98a4b4;font-size:8.5px}
.dossier-side{min-width:0}.dossier-side .dossier-section{padding:24px}.dossier-industry-list{display:flex;flex-direction:column;gap:14px}.dossier-industry-list>div>span{display:grid;grid-template-columns:24px minmax(0,1fr) 24px;align-items:center;gap:5px;margin-bottom:6px}.dossier-industry-list>div>span i{color:#b0bac8;font-size:8px;font-style:normal}.dossier-industry-list>div>span b{overflow:hidden;font-size:10px;white-space:nowrap;text-overflow:ellipsis}.dossier-industry-list>div>span em{text-align:right;color:#7c899c;font-size:9px;font-style:normal}.dossier-industry-list>div>u{display:block;height:3px;margin-left:29px;border-radius:3px;background:#edf1f5;text-decoration:none;overflow:hidden}.dossier-industry-list>div>u i{display:block;height:100%;border-radius:3px;background:#2563eb}
.dossier-regions>div{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.dossier-regions>div>span{display:flex;flex-direction:column;padding:10px 11px;border-radius:9px;background:#f6f8fb}.dossier-regions b{font-size:10px}.dossier-regions em{margin-top:3px;color:#8e9aac;font-size:8px;font-style:normal}.dossier-tech>div{display:flex;flex-wrap:wrap;gap:7px}.dossier-tech>div>span{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #e4e9f0;border-radius:7px;color:#46556b;font-size:9px;font-weight:600}.dossier-tech>div>span em{color:#9aa5b4;font-size:8px;font-style:normal;font-weight:500}
.dossier-network .company-partner{display:grid;grid-template-columns:29px minmax(0,1fr) 20px 13px;align-items:center;gap:8px;width:100%;padding:9px 0;border-bottom:1px solid #edf0f4;text-align:left}.dossier-network .dossier-partner-logo{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#eef4ff;color:#2563eb;font-size:10px;font-weight:800}.dossier-network .company-partner>span:nth-child(2){display:block;min-width:0}.dossier-network .company-partner>span:nth-child(2)>b{display:block;overflow:hidden;color:#354258;font-size:9.5px;white-space:nowrap;text-overflow:ellipsis}.dossier-network .company-partner>span:nth-child(2)>i{display:block;width:54px;height:2px;margin-top:5px;border-radius:2px;background:#edf1f5;overflow:hidden}.dossier-network .company-partner>span:nth-child(2)>i>em{display:block;height:100%;background:#60a5fa}.dossier-network .company-partner>strong{text-align:right;color:#536178;font-size:9px}.dossier-network .company-partner>svg{width:12px;color:#b0bac7}.dossier-note{display:flex;align-items:center;gap:6px;padding:12px 28px;border-top:1px solid #e9edf3;background:#fafbfc;color:#8e9aab;font-size:8.5px}.dossier-note svg{width:12px;height:12px}
.dossier-solutions>div{display:flex;flex-direction:column}.dossier-solutions>div>button{display:grid;grid-template-columns:minmax(0,1fr) auto 13px;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #edf0f4;text-align:left}.dossier-solutions>div>button span{overflow:hidden;color:#334155;font-size:9.5px;font-weight:650;white-space:nowrap;text-overflow:ellipsis}.dossier-solutions>div>button em{color:#8b98aa;font-size:8px;font-style:normal}.dossier-solutions>div>button svg{width:11px;color:#a8b3c1}.dossier-solutions>div>button:hover span{color:#2563eb}
@media(max-width:1160px){.dossier-body{grid-template-columns:1fr}.dossier-main{border-right:0}.dossier-side{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #e9edf3}.dossier-side .dossier-section{border-top:0}.dossier-side .dossier-section:nth-child(even){border-left:1px solid #e9edf3}.dossier-side .dossier-section:nth-child(n+3){border-top:1px solid #e9edf3}}
@media(max-width:720px){.dossier-profile{border-radius:15px}.dossier-head{padding:20px 18px 0}.dossier-head-top{flex-direction:column;gap:14px}.dossier-status{align-items:flex-start}.dossier-status small{display:none}.dossier-logo{width:48px;height:48px;border-radius:13px;font-size:14px}.dossier-identity{align-items:flex-start;gap:12px}.dossier-identity h2{font-size:17px}.dossier-facts{flex-wrap:wrap;gap:13px 20px;margin:18px 0}.dossier-metrics{grid-template-columns:repeat(3,1fr);margin:0 -18px}.dossier-metrics>div{padding:13px 14px}.dossier-metrics>div:nth-child(4),.dossier-metrics>div:nth-child(5){border-top:1px solid rgba(255,255,255,.07)}.dossier-metrics>div:nth-child(4):before{display:none}.dossier-section,.dossier-side .dossier-section{padding:20px 17px}.dossier-side{grid-template-columns:1fr}.dossier-side .dossier-section:nth-child(even){border-left:0}.dossier-side .dossier-section:nth-child(n+2){border-top:1px solid #e9edf3}.dossier-project-list>button{grid-template-columns:4px minmax(0,1fr) 13px;gap:9px}.dossier-project-list>button>strong{display:none}.dossier-note{padding:12px 17px;align-items:flex-start}}
@media(max-width:420px){.dossier-facts>span:nth-child(3){display:none}.dossier-metrics strong{font-size:15px}.dossier-section>header{margin-bottom:16px}.dossier-regions>div{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.company-profile-page .profile-kpis{grid-template-columns:repeat(2,1fr)}}
.active-filter button:hover{background:var(--bg);color:#b91c1c}

/* ---------- 企业画像 · 多维数据视图 ---------- */
.profile-viz-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;padding:16px;background:#f4f7fb}
.profile-viz{min-width:0;padding:22px 24px;border:1px solid #e4e9f1;border-radius:17px;background:#fff;box-shadow:0 7px 24px rgba(15,35,83,.04)}
.profile-viz-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.profile-viz-head span{display:block;margin-bottom:5px;color:#9aa7ba;font-size:7.5px;font-weight:850;letter-spacing:1.25px}.profile-viz-head h3{margin:0;color:#1f2b40;font-size:14px;letter-spacing:-.15px}.profile-viz-head p{color:#91a0b4;font-size:9px;white-space:nowrap}.profile-viz-head>i,.profile-viz-head>svg{width:18px;height:18px;color:#90a0b6}.profile-viz-head>strong{display:flex;align-items:baseline;gap:5px;color:#2563eb;font-size:23px}.profile-viz-head>strong small{color:#929fb1;font-size:8px;font-weight:600}
.viz-trend{grid-column:span 7;background:linear-gradient(160deg,#fff 55%,#f7faff)}.viz-donut{grid-column:span 5;background:linear-gradient(145deg,#fff,#f8fbff)}.viz-radar{grid-column:span 5;background:linear-gradient(155deg,#fbfaff,#fff 56%)}.viz-regions{grid-column:span 7}.viz-tech{grid-column:span 5;background:linear-gradient(145deg,#f8fbff,#fff)}.viz-network{grid-column:span 7;background:linear-gradient(145deg,#fff,#f8fafc)}.viz-projects{grid-column:1/-1;padding:0;overflow:hidden}
.profile-trend-summary{display:flex;align-items:baseline;gap:7px;margin:-4px 0 5px;color:#718097}.profile-trend-summary strong{color:#2563eb;font-size:22px;letter-spacing:-.5px}.profile-trend-summary span{font-size:9px}.profile-trend-summary i{width:1px;height:10px;margin:0 5px;background:#dce2ea}.viz-trend .dossier-line-chart{margin-top:2px}.viz-trend .dossier-chart-grid line{stroke:#e7edf5}.viz-trend .dossier-chart-line{stroke-width:3}
.profile-donut-layout{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:22px;min-height:190px}.profile-donut{position:relative;width:150px;height:150px;border-radius:50%;box-shadow:0 10px 24px rgba(37,99,235,.12)}.profile-donut:after{content:"";position:absolute;inset:25px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #eef2f7}.profile-donut>span{position:absolute;z-index:1;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.profile-donut strong{font-size:23px;color:#18243a}.profile-donut small{margin-top:2px;color:#96a3b5;font-size:8px}.profile-donut-legend{display:flex;flex-direction:column;gap:11px;min-width:0}.profile-donut-legend>div{display:grid;grid-template-columns:7px minmax(0,1fr) 28px 22px;align-items:center;gap:7px}.profile-donut-legend i{width:7px;height:7px;border-radius:2px;background:var(--dot)}.profile-donut-legend span{overflow:hidden;color:#4c5a70;font-size:9.5px;white-space:nowrap;text-overflow:ellipsis}.profile-donut-legend b{color:#2e3a4d;font-size:9px;text-align:right}.profile-donut-legend small{color:#a1adbd;font-size:8px;text-align:right}
.profile-radar-wrap{display:grid;grid-template-columns:minmax(190px,1fr) 118px;align-items:center;gap:10px}.profile-radar-wrap>svg{display:block;width:100%;max-height:245px;overflow:visible}.profile-radar-grid polygon{fill:none;stroke:#dfe5ef;stroke-width:1}.profile-radar-grid line{stroke:#e6eaf1;stroke-width:1}.profile-radar-area{fill:rgba(124,58,237,.16);stroke:#7c3aed;stroke-width:2;stroke-linejoin:round}.profile-radar-dot{fill:#fff;stroke:#7c3aed;stroke-width:2}.profile-radar-label{fill:#64748b;font-size:8px;font-weight:650}.profile-radar-list{display:flex;flex-direction:column;gap:6px}.profile-radar-list button{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:7px 8px;border:1px solid #ece8fa;border-radius:8px;background:rgba(250,248,255,.85);text-align:left}.profile-radar-list button:hover{border-color:#c4b5fd;background:#f5f3ff}.profile-radar-list span{overflow:hidden;color:#5c5373;font-size:8.5px;white-space:nowrap;text-overflow:ellipsis}.profile-radar-list b{color:#7c3aed;font-size:9px}.profile-solution-fallback{display:flex;flex-wrap:wrap;gap:8px}.profile-solution-fallback button{display:flex;gap:7px;padding:8px 10px;border:1px solid #e8e3f7;border-radius:9px;background:#faf8ff;color:#65577d;font-size:9px}.profile-solution-fallback b{color:#7c3aed}
.profile-region-rank{display:flex;flex-direction:column;gap:13px}.profile-region-row{display:grid;grid-template-columns:22px 54px minmax(80px,1fr) 24px;align-items:center;gap:9px}.profile-region-row>span{color:#a6b1c0;font-size:7.5px;font-weight:800}.profile-region-row>b{overflow:hidden;color:#405068;font-size:9.5px;white-space:nowrap;text-overflow:ellipsis}.profile-region-row>i{position:relative;display:block;height:3px;border-radius:5px;background:#edf1f6}.profile-region-row>i>em{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#93c5fd,#2563eb)}.profile-region-row>i>u{position:absolute;top:50%;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#2563eb;box-shadow:0 1px 5px rgba(37,99,235,.38);transform:translate(-50%,-50%);text-decoration:none}.profile-region-row>strong{text-align:right;color:#526177;font-size:9px}
.profile-tech-cloud{display:flex;align-content:flex-start;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px;min-height:195px;padding:6px}.profile-tech-cloud>span{display:flex;align-items:center;gap:7px;padding:calc(7px + var(--weight)*5px) calc(9px + var(--weight)*7px);border:1px solid color-mix(in srgb,var(--bubble) 22%,white);border-radius:999px;background:color-mix(in srgb,var(--bubble) calc(6% + var(--weight)*8%),white);color:color-mix(in srgb,var(--bubble) 75%,#172033);box-shadow:0 5px 14px color-mix(in srgb,var(--bubble) 9%,transparent)}.profile-tech-cloud b{font-size:calc(8.5px + var(--weight)*2px);white-space:nowrap}.profile-tech-cloud em{display:grid;place-items:center;min-width:17px;height:17px;border-radius:50%;background:rgba(255,255,255,.78);font-size:7.5px;font-style:normal}.profile-tech-cloud .tone-0{--bubble:#2563eb}.profile-tech-cloud .tone-1{--bubble:#7c3aed}.profile-tech-cloud .tone-2{--bubble:#0891b2}.profile-tech-cloud .tone-3{--bubble:#059669}.profile-tech-cloud .tone-4{--bubble:#ea580c}
.profile-network-map{display:grid;grid-template-columns:155px 45px minmax(0,1fr);align-items:center;min-height:225px}.profile-network-core{position:relative;z-index:2;display:flex;align-items:center;flex-direction:column;text-align:center}.profile-network-core>span{width:62px;height:62px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#1d4ed8,#2563eb);color:#fff;font-size:17px;font-weight:900;box-shadow:0 12px 25px rgba(37,99,235,.25)}.profile-network-core>b{overflow:hidden;width:145px;margin-top:10px;color:#26354b;font-size:9.5px;white-space:nowrap;text-overflow:ellipsis}.profile-network-core>small{margin-top:3px;color:#9aa6b7;font-size:7.5px}.profile-network-rail{position:relative;height:172px}.profile-network-rail:before{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:linear-gradient(90deg,#93c5fd,#dce4ef)}.profile-network-rail i{position:absolute;right:0;width:17px;height:1px;background:#dce4ef}.profile-network-rail i:nth-child(1){top:22%;transform:rotate(-28deg);transform-origin:right}.profile-network-rail i:nth-child(2){top:50%}.profile-network-rail i:nth-child(3){top:78%;transform:rotate(28deg);transform-origin:right}.profile-network-nodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.profile-network-node{position:relative;display:grid!important;grid-template-columns:7px minmax(0,1fr) 18px!important;gap:9px!important;width:100%;padding:10px 11px!important;border:1px solid #e7ebf1!important;border-radius:10px;background:#fff;text-align:left;box-shadow:0 3px 10px rgba(24,39,75,.035)}.profile-network-node:hover{border-color:#bfdbfe!important;transform:translateY(-1px)}.profile-network-node>i:first-child{width:7px;height:7px;border-radius:50%;background:#3b82f6;box-shadow:0 0 0 calc(2px + var(--strength)*3px) rgba(59,130,246,.12)}.profile-network-node>span{display:block!important;min-width:0}.profile-network-node>span b{display:block!important;overflow:hidden;color:#3e4b60!important;font-size:9px!important;white-space:nowrap;text-overflow:ellipsis}.profile-network-node>span small{display:block;margin-top:3px;color:#9ba7b7;font-size:7.5px}.profile-network-node>strong{width:18px;height:18px;display:grid;place-items:center;border-radius:6px;background:#f1f5f9;color:#8492a6!important;font-size:7px!important}
.viz-projects>.profile-viz-head{align-items:center;margin:0;padding:21px 24px;border-bottom:1px solid #e8edf3;background:linear-gradient(180deg,#fff,#fafcff)}.profile-project-timeline{position:relative;padding:5px 24px 5px 19px}.profile-project-timeline:before{content:"";position:absolute;left:105px;top:0;bottom:0;width:1px;background:#e2e7ee}.profile-project-timeline>button{position:relative;display:grid;grid-template-columns:64px 16px minmax(0,1fr) 90px 15px;align-items:center;gap:14px;width:100%;padding:13px 4px;border-bottom:1px solid #edf1f5;text-align:left}.profile-project-timeline>button:hover{background:#f8faff}.profile-timeline-date{display:flex;align-items:flex-end;flex-direction:column}.profile-timeline-date b{color:#526176;font-size:9px;font-variant-numeric:tabular-nums}.profile-timeline-date small{margin-top:3px;color:#a3adbb;font-size:7.5px}.profile-timeline-dot{position:relative;z-index:1;width:12px;height:12px;display:grid;place-items:center;border:3px solid #fff;border-radius:50%;background:#3b82f6;box-shadow:0 0 0 1px #93c5fd}.profile-timeline-dot.is-tender{background:#f59e0b;box-shadow:0 0 0 1px #fcd34d}.profile-timeline-dot.is-bid{background:#10b981;box-shadow:0 0 0 1px #6ee7b7}.profile-timeline-copy{display:flex;flex-direction:column;min-width:0}.profile-timeline-copy>b{overflow:hidden;color:#2b384e;font-size:10.5px;white-space:nowrap;text-overflow:ellipsis}.profile-timeline-copy>small{display:flex;align-items:center;gap:4px;margin-top:5px;color:#98a4b4;font-size:8px}.profile-timeline-copy>small svg{width:10px;height:10px}.profile-project-timeline>button>strong{text-align:right;color:#536177;font-size:9px;white-space:nowrap}.profile-project-timeline>button>svg{width:13px;color:#aab5c4}.profile-timeline-more{margin:0;padding:12px;text-align:center;background:#fafbfd;color:#929fb0;font-size:8.5px}

@media(max-width:1160px){.viz-trend,.viz-donut,.viz-radar,.viz-regions,.viz-tech,.viz-network{grid-column:span 6}.profile-radar-wrap{grid-template-columns:1fr}.profile-radar-list{display:grid;grid-template-columns:repeat(2,1fr)}.profile-network-map{grid-template-columns:125px 30px minmax(0,1fr)}}
@media(max-width:860px){.profile-viz-grid{grid-template-columns:1fr}.viz-trend,.viz-donut,.viz-radar,.viz-regions,.viz-tech,.viz-network,.viz-projects{grid-column:1}.profile-donut-layout{grid-template-columns:140px minmax(0,1fr)}.profile-network-map{grid-template-columns:130px 36px minmax(0,1fr)}}
@media(max-width:620px){.profile-viz-grid{gap:10px;padding:10px}.profile-viz{padding:18px 16px;border-radius:14px}.profile-viz-head{margin-bottom:15px}.profile-donut-layout{grid-template-columns:120px minmax(0,1fr);gap:14px}.profile-donut{width:120px;height:120px}.profile-donut:after{inset:21px}.profile-network-map{grid-template-columns:1fr;gap:18px}.profile-network-rail{display:none}.profile-network-core>b{width:220px}.profile-network-nodes{grid-template-columns:1fr 1fr}.viz-projects{padding:0}.viz-projects>.profile-viz-head{padding:18px 16px}.profile-project-timeline{padding:4px 12px}.profile-project-timeline:before{left:79px}.profile-project-timeline>button{grid-template-columns:45px 13px minmax(0,1fr) 13px;gap:8px}.profile-project-timeline>button>strong{display:none}.profile-timeline-date b{font-size:8px}.profile-timeline-copy>b{font-size:9.5px}}
@media(max-width:420px){.profile-donut-layout{grid-template-columns:1fr}.profile-donut{margin:0 auto}.profile-donut-legend{display:grid;grid-template-columns:1fr 1fr}.profile-donut-legend>div{grid-template-columns:7px minmax(0,1fr) 25px}.profile-donut-legend small{display:none}.profile-radar-list{grid-template-columns:1fr}.profile-network-nodes{grid-template-columns:1fr}.profile-tech-cloud{min-height:0}.profile-trend-summary span:last-child{display:none}}

/* ---------- 方案情报 ---------- */
.solution-intel{display:flex;flex-direction:column;gap:16px;color:#18243a}.solution-loading{min-height:560px}.solution-hero{position:relative;isolation:isolate;overflow:hidden;padding:30px 32px 0;border-radius:20px;background:linear-gradient(118deg,#111936 0%,#172554 54%,#1e3a8a 100%);color:#fff;box-shadow:0 18px 45px rgba(15,35,83,.16)}.solution-hero:after{content:"";position:absolute;z-index:-1;right:-80px;top:-210px;width:430px;height:430px;border-radius:50%;background:radial-gradient(circle,rgba(56,189,248,.32),transparent 68%)}.solution-hero-grid{position:absolute;z-index:-1;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(90deg,transparent,#000 38%,transparent)}
.solution-hero-copy{max-width:680px}.solution-hero-copy>span{color:#7dd3fc;font-size:8px;font-weight:850;letter-spacing:1.5px}.solution-hero-copy h2{margin:9px 0 8px;font-size:28px;letter-spacing:-.6px}.solution-hero-copy p{max-width:620px;color:#bac8dd;font-size:11px;line-height:1.8}.solution-hero-status{position:absolute;right:30px;top:31px;display:grid;grid-template-columns:7px auto;column-gap:7px;align-items:center}.solution-hero-status>i{width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.1)}.solution-hero-status span{color:#a7f3d0;font-size:9px;font-weight:700}.solution-hero-status small{grid-column:2;margin-top:5px;color:#8291aa;font-size:8px}.solution-hero-metrics{display:grid;grid-template-columns:repeat(3,1fr);margin:26px -32px 0;border-top:1px solid rgba(255,255,255,.09);background:rgba(5,10,28,.22)}.solution-hero-metrics>div{position:relative;padding:17px 32px}.solution-hero-metrics>div+div:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:1px;background:rgba(255,255,255,.08)}.solution-hero-metrics strong{display:block;font-size:18px}.solution-hero-metrics span{display:block;margin-top:3px;color:#8291a9;font-size:8.5px}
.solution-pulse,.solution-rank-panel,.solution-library,.solution-analysis,.solution-report,.solution-entities,.solution-projects{background:#fff;border:1px solid #e4e9f1;border-radius:17px;box-shadow:0 7px 24px rgba(15,35,83,.04)}.solution-pulse,.solution-rank-panel,.solution-library{padding:22px 24px}.solution-pulse>header,.solution-rank-panel>header,.solution-library>header,.solution-analysis>header,.solution-report>header,.solution-entities>header,.solution-projects>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.solution-pulse>header span,.solution-rank-panel>header span,.solution-library>header>div>span,.solution-analysis>header span,.solution-report>header>div>span,.solution-entities>header>div>span,.solution-projects>header>div>span{display:block;margin-bottom:5px;color:#98a5b7;font-size:7.5px;font-weight:850;letter-spacing:1.25px}.solution-pulse>header h3,.solution-rank-panel>header h3,.solution-library>header h3,.solution-analysis>header h3,.solution-report>header h3,.solution-entities>header h3,.solution-projects>header h3{margin:0;font-size:14px}.solution-pulse>header p,.solution-rank-panel>header p,.solution-analysis>header p{color:#96a3b5;font-size:9px}
.solution-pulse-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.solution-pulse-grid>button{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:11px;padding:15px;border:1px solid #e8edf4;border-radius:12px;background:linear-gradient(145deg,#fff,#f8faff);text-align:left}.solution-pulse-grid>button:hover{border-color:#bfdbfe;transform:translateY(-1px)}.solution-pulse-grid>button>svg{grid-row:1/4;width:16px;height:16px;padding:9px;border-radius:10px;background:#eff6ff;color:#2563eb;box-sizing:content-box}.solution-pulse-grid span{color:#99a5b6;font-size:8px}.solution-pulse-grid b{overflow:hidden;margin:3px 0;color:#2b3a50;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.solution-pulse-grid small{color:#718098;font-size:8.5px}
.solution-rank-chart{display:flex;flex-direction:column;gap:10px}.solution-rank-chart>button{display:grid;grid-template-columns:24px 116px minmax(100px,1fr) 30px;align-items:center;gap:8px;text-align:left}.solution-rank-chart>button:hover b{color:#2563eb}.solution-rank-chart span{color:#a6b0c0;font-size:7.5px;font-weight:800}.solution-rank-chart b{overflow:hidden;color:#435168;font-size:9.5px;white-space:nowrap;text-overflow:ellipsis}.solution-rank-chart>button>i{display:block;height:6px;border-radius:5px;background:#edf1f6;overflow:hidden}.solution-rank-chart em{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#60a5fa,#4f46e5)}.solution-rank-chart strong{text-align:right;color:#536178;font-size:9px}
.solution-library>header{align-items:center}.solution-library nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.solution-library nav button{padding:5px 9px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;color:#64748b;font-size:8.5px}.solution-library nav button.on{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8;font-weight:700}.solution-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.solution-card{position:relative;display:flex;min-height:212px;flex-direction:column;padding:16px;border:1px solid #e6ebf2;border-radius:13px;background:#fff;text-align:left;transition:.2s}.solution-card:hover{border-color:#b8cdf5;box-shadow:0 11px 25px rgba(39,72,133,.09);transform:translateY(-2px)}.solution-card-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#eef4ff,#f7f9ff);color:#4f46e5}.solution-card-icon svg{width:16px}.solution-card-group{position:absolute;right:14px;top:15px;color:#9aa6b7;font-size:7.5px;font-weight:700}.solution-card h4{margin:13px 0 6px;color:#26364d;font-size:12px}.solution-card>p{min-height:34px;color:#7d8ba0;font-size:8.5px;line-height:1.6}.solution-card-fit{display:flex;align-items:center;gap:5px;margin:10px 0;color:#5f6e84;font-size:8px}.solution-card-fit svg{width:11px;height:11px;color:#8b5cf6}.solution-card-types{display:flex;height:4px;margin-top:auto;border-radius:4px;background:#edf1f5;overflow:hidden}.solution-card-types i{display:block}.solution-card-types .tender{background:#f59e0b}.solution-card-types .bid{background:#10b981}.solution-card-types .case{background:#3b82f6}.solution-card-foot{display:grid;grid-template-columns:auto 1fr 13px;align-items:end;gap:8px;margin-top:10px}.solution-card-foot>b{color:#25344a;font-size:15px}.solution-card-foot>b small{margin-left:4px;color:#9aa6b6;font-size:7.5px;font-weight:500}.solution-card-foot>em{text-align:right;color:#8a97a9;font-size:7.5px;font-style:normal}.solution-card-foot>em.up{color:#059669}.solution-card-foot>svg{width:12px;color:#a9b4c3}
.solution-back{display:inline-flex;align-items:center;align-self:flex-start;gap:6px;padding:7px 2px;color:#65748a;font-size:9px}.solution-back svg{width:13px}.solution-detail-hero{display:grid;grid-template-columns:68px minmax(0,1fr) auto;align-items:center;gap:18px;padding:25px 27px;border-radius:19px;background:linear-gradient(120deg,#10182f,#172554 62%,#1d4ed8);color:#fff;box-shadow:0 16px 38px rgba(15,35,83,.16)}.solution-detail-icon{width:62px;height:62px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:17px;background:rgba(255,255,255,.1)}.solution-detail-icon svg{width:26px}.solution-detail-hero>div>span{color:#93c5fd;font-size:8px;font-weight:800;letter-spacing:1px}.solution-detail-hero h2{margin:7px 0 5px;font-size:22px}.solution-detail-hero p{color:#aebbd0;font-size:9.5px}.solution-detail-hero em{display:flex;align-items:center;gap:5px;margin-top:10px;color:#dbeafe;font-size:8px;font-style:normal}.solution-detail-hero em svg{width:11px}.solution-detail-hero>button{display:flex;align-items:center;gap:6px;padding:9px 12px;border:1px solid rgba(255,255,255,.16);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;font-size:9px}.solution-detail-hero>button svg{width:12px}
.solution-detail-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.solution-detail-kpis>div{padding:14px 16px;border:1px solid #e5eaf1;border-radius:12px;background:#fff}.solution-detail-kpis span{display:block;color:#8e9bad;font-size:8px}.solution-detail-kpis strong{display:block;margin:6px 0 3px;color:#24344b;font-size:18px;white-space:nowrap}.solution-detail-kpis small{color:#a0abbb;font-size:7.5px}.solution-analysis-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.solution-analysis{min-width:0;padding:21px 23px}.solution-year svg{display:block;width:100%;overflow:visible}.solution-year .solution-chart-grid line{stroke:#e7ecf3;stroke-width:1}.solution-chart-area{fill:url(#solution-area)}.solution-year polyline{fill:none;stroke:#4f46e5;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.solution-year circle{fill:#fff;stroke:#4f46e5;stroke-width:2}.solution-year text{fill:#46546a;font-size:8px;font-weight:700;text-anchor:middle}.solution-year text.year{fill:#98a4b5;font-size:7.5px;font-weight:500}
.solution-industry>div{display:flex;flex-direction:column;gap:13px}.solution-industry button{text-align:left}.solution-industry button>span{display:grid;grid-template-columns:23px minmax(0,1fr) 23px;align-items:center;gap:5px;margin-bottom:6px}.solution-industry button>span i{color:#a5b0c0;font-size:7px;font-style:normal}.solution-industry button b{font-size:9px}.solution-industry button em{text-align:right;color:#748198;font-size:8px;font-style:normal}.solution-industry button>u{display:block;height:4px;margin-left:28px;border-radius:3px;background:#edf1f6;text-decoration:none;overflow:hidden}.solution-industry button>u i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#22d3ee,#2563eb)}.solution-region>div{display:flex;flex-direction:column;gap:12px}.solution-region>div>span{display:grid;grid-template-columns:23px 48px minmax(70px,1fr) 25px;align-items:center;gap:7px}.solution-region span>i{color:#abb5c3;font-size:7px;font-style:normal}.solution-region span>b{font-size:9px}.solution-region span>u{height:3px;border-radius:3px;background:#edf1f5;text-decoration:none;overflow:hidden}.solution-region span>u em{display:block;height:100%;border-radius:3px;background:#8b5cf6}.solution-region span>strong{text-align:right;color:#607087;font-size:8px}
.solution-combo>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.solution-combo button{display:grid;grid-template-columns:28px minmax(0,1fr) auto 12px;align-items:center;gap:8px;padding:9px;border:1px solid #e9edf3;border-radius:9px;text-align:left}.solution-combo button:hover{border-color:#c7d2fe;background:#fafaff}.solution-combo button>span{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:#f2f0ff;color:#7c3aed}.solution-combo button>span svg{width:12px}.solution-combo button>b{overflow:hidden;color:#415068;font-size:8.5px;white-space:nowrap;text-overflow:ellipsis}.solution-combo button>em{color:#929eb0;font-size:7.5px;font-style:normal;white-space:nowrap}.solution-combo button>svg{width:11px;color:#aeb8c5}
.solution-report{overflow:hidden}.solution-report>header{margin:0;padding:20px 23px;border-bottom:1px solid #e9edf3;background:linear-gradient(180deg,#fff,#fbfcff)}.solution-report>header>span{align-self:center;color:#98a4b4;font-size:8px}.solution-report-body{display:grid;grid-template-columns:48px minmax(0,1fr);gap:17px;padding:24px}.solution-report-no{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:#eef2ff;color:#4f46e5;font-size:12px;font-weight:850}.solution-report-body p{margin:0 0 8px;color:#46566d;font-size:10px;line-height:1.75}.solution-report footer{display:flex;align-items:flex-start;gap:6px;padding:11px 23px;border-top:1px solid #edf1f5;background:#fafbfc;color:#929eae;font-size:8px}.solution-report footer svg{width:11px;flex:0 0 auto}
.solution-entities{overflow:hidden}.solution-entities>header{align-items:center;margin:0;padding:20px 23px;border-bottom:1px solid #e9edf3}.enterprise-only{display:flex;align-items:center;gap:5px;padding:5px 8px;border-radius:15px;background:#eff6ff;color:#2563eb;font-size:8px;font-weight:700}.enterprise-only svg{width:11px}.solution-entity-grid{display:grid;grid-template-columns:repeat(2,1fr)}.solution-entity-grid>div{padding:18px 22px}.solution-entity-grid>div+div{border-left:1px solid #e9edf3}.solution-entity-grid h4{margin:0 0 8px;color:#7d8a9d;font-size:9px}.solution-entity-grid button{display:grid;grid-template-columns:23px minmax(0,1fr) 48px 12px;align-items:center;gap:6px;width:100%;padding:9px 0;border-bottom:1px solid #edf1f5;text-align:left}.solution-entity-grid button>span{color:#adb7c4;font-size:7px}.solution-entity-grid button>b{overflow:hidden;color:#3b4a60;font-size:9px;white-space:nowrap;text-overflow:ellipsis}.solution-entity-grid button>em{text-align:right;color:#8996a8;font-size:7.5px;font-style:normal}.solution-entity-grid button>svg{width:11px;color:#aeb8c5}.solution-entity-locked{position:relative;min-height:210px;display:grid;place-items:center;overflow:hidden}.entity-fake{position:absolute;inset:18px 24px;display:grid;grid-template-columns:repeat(2,1fr);gap:0 24px;filter:blur(4px);opacity:.32}.entity-fake>span{display:grid;grid-template-columns:22px 1fr 45px;align-items:center;gap:8px;border-bottom:1px solid #dce2ea}.entity-fake i{font-size:7px;font-style:normal}.entity-fake b,.entity-fake em{height:7px;border-radius:4px;background:#b8c3d2}.solution-entity-locked>div:last-child{position:relative;display:flex;align-items:center;flex-direction:column;padding:18px;text-align:center}.solution-entity-locked>div:last-child>svg{width:22px;color:#4f46e5}.solution-entity-locked h4{margin:8px 0 4px;font-size:11px}.solution-entity-locked p{color:#8290a3;font-size:8.5px}.solution-entity-locked button{margin-top:10px;padding:7px 12px;border-radius:8px;background:#2563eb;color:#fff;font-size:8.5px}
.solution-projects{overflow:hidden}.solution-projects>header{align-items:center;margin:0;padding:20px 23px;border-bottom:1px solid #e9edf3}.solution-projects>header>button{display:flex;align-items:center;gap:5px;color:#2563eb;font-size:8.5px}.solution-projects>header>button svg{width:12px}.solution-projects>div{padding:0 21px}.solution-projects>div>button{display:grid;grid-template-columns:52px minmax(0,1fr) 84px 13px;align-items:center;gap:11px;width:100%;padding:12px 2px;border-bottom:1px solid #edf1f5;text-align:left}.solution-project-type{padding:5px 6px;border-radius:7px;text-align:center;font-size:8px;font-weight:700}.solution-project-type.tender{background:#fff7ed;color:#c2410c}.solution-project-type.bid{background:#ecfdf5;color:#047857}.solution-project-type.case{background:#eff6ff;color:#1d4ed8}.solution-projects>div>button>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.solution-projects>div>button small,.solution-projects>div>button em{color:#98a4b4;font-size:7.5px;font-style:normal}.solution-projects>div>button b{overflow:hidden;margin:3px 0;color:#334158;font-size:9.5px;white-space:nowrap;text-overflow:ellipsis}.solution-projects>div>button>strong{text-align:right;color:#526178;font-size:8.5px;white-space:nowrap}.solution-projects>div>button>svg{width:12px;color:#aab5c3}
@media(max-width:1100px){.solution-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.solution-analysis-grid{grid-template-columns:1fr}.solution-pulse-grid{grid-template-columns:1fr 1fr}.solution-pulse-grid>button:last-child{grid-column:1/-1}.solution-combo>div{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.solution-hero{padding:23px 20px 0}.solution-hero-status{position:static;margin-top:15px}.solution-hero-metrics{margin:20px -20px 0}.solution-hero-metrics>div{padding:14px 18px}.solution-pulse,.solution-rank-panel,.solution-library{padding:18px 16px}.solution-pulse-grid{grid-template-columns:1fr}.solution-pulse-grid>button:last-child{grid-column:auto}.solution-library>header{align-items:flex-start;flex-direction:column}.solution-library nav{justify-content:flex-start}.solution-card-grid{grid-template-columns:1fr}.solution-card{min-height:196px}.solution-detail-hero{grid-template-columns:50px minmax(0,1fr);padding:21px 18px}.solution-detail-icon{width:48px;height:48px;border-radius:14px}.solution-detail-hero>button{grid-column:1/-1;justify-content:center}.solution-detail-kpis{grid-template-columns:repeat(2,1fr)}.solution-combo>div{grid-template-columns:repeat(2,minmax(0,1fr))}.solution-entity-grid{grid-template-columns:1fr}.solution-entity-grid>div+div{border-top:1px solid #e9edf3;border-left:0}.solution-projects>div{padding:0 12px}.solution-projects>div>button{grid-template-columns:45px minmax(0,1fr) 12px}.solution-projects>div>button>strong{display:none}}
@media(max-width:460px){.solution-hero-copy h2{font-size:23px}.solution-hero-metrics strong{font-size:15px}.solution-hero-metrics>div{padding:12px 10px}.solution-rank-chart>button{grid-template-columns:20px 82px minmax(70px,1fr) 23px}.solution-card-grid{gap:8px}.solution-detail-kpis{gap:7px}.solution-detail-kpis>div{padding:12px 11px}.solution-detail-kpis strong{font-size:15px}.solution-analysis{padding:18px 15px}.solution-combo>div{grid-template-columns:1fr}.solution-report-body{grid-template-columns:1fr}.solution-report-no{width:36px;height:36px}.solution-report>header>span{display:none}.solution-entities>header{align-items:flex-start}.mob-nav-item{font-size:9px}}

/* ---------- 方案情报 · 可读性与多样化视图 ---------- */
.solution-intel{font-size:13px}.solution-hero-copy>span{font-size:10px}.solution-hero-copy h2{font-size:30px}.solution-hero-copy p{font-size:13px;line-height:1.75}.solution-hero-status span{font-size:11px}.solution-hero-status small{font-size:10px}.solution-hero-metrics strong{font-size:21px}.solution-hero-metrics span{font-size:11px}
.solution-pulse>header span,.solution-library>header>div>span,.solution-analysis>header span,.solution-report>header>div>span,.solution-entities>header>div>span,.solution-projects>header>div>span,.solution-landscape>header span{font-size:9px}.solution-pulse>header h3,.solution-library>header h3,.solution-analysis>header h3,.solution-report>header h3,.solution-entities>header h3,.solution-projects>header h3,.solution-landscape>header h3{font-size:16px}.solution-pulse>header p,.solution-analysis>header p,.solution-landscape>header p{font-size:11px}.solution-pulse-grid span{font-size:10px}.solution-pulse-grid b{font-size:14px}.solution-pulse-grid small{font-size:11px}.solution-library nav button{padding:6px 11px;font-size:10.5px}.solution-card-group{font-size:10px}.solution-card h4{font-size:15px}.solution-card>p{min-height:43px;font-size:12px;line-height:1.7}.solution-card-fit{font-size:11px}.solution-card-foot>b{font-size:18px}.solution-card-foot>b small,.solution-card-foot>em{font-size:10px}
.solution-detail-hero>div>span{font-size:10px}.solution-detail-hero h2{font-size:25px}.solution-detail-hero p{font-size:12px}.solution-detail-hero em,.solution-detail-hero>button{font-size:11px}.solution-back{font-size:11px}.solution-detail-kpis span{font-size:11px}.solution-detail-kpis strong{font-size:20px}.solution-detail-kpis small{font-size:10px}.solution-report>header>span{font-size:10px}.solution-report-body p{font-size:12px}.solution-report footer{font-size:10px}.enterprise-only{font-size:10px}.solution-entity-grid h4{font-size:12px}.solution-entity-grid button>b{font-size:11.5px}.solution-entity-grid button>em{font-size:10px}.solution-entity-locked h4{font-size:14px}.solution-entity-locked p,.solution-entity-locked button{font-size:11px}.solution-projects>header>button{font-size:11px}
.solution-landscape{overflow:hidden;background:#fff;border:1px solid #e4e9f1;border-radius:18px;box-shadow:0 8px 26px rgba(15,35,83,.045)}.solution-landscape>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:23px 25px 18px;border-bottom:1px solid #e9edf3}.solution-landscape>header span{display:block;margin-bottom:5px;color:#98a5b7;font-weight:850;letter-spacing:1.25px}.solution-landscape>header h3{margin:0}.solution-landscape>header p{color:#8e9bad}.solution-landscape-grid{display:grid;grid-template-columns:.9fr 1.1fr;min-height:390px}.solution-bubble-panel,.solution-momentum-panel{padding:22px 24px}.solution-momentum-panel{border-left:1px solid #e9edf3;background:linear-gradient(145deg,#fff,#fafbff)}.solution-viz-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}.solution-viz-title b{color:#34435a;font-size:13px}.solution-viz-title span{color:#98a4b4;font-size:10px}.solution-bubble-field{display:flex;align-content:center;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px;min-height:300px}.solution-bubble{--bubble:#4f46e5;width:var(--bubble-size);height:var(--bubble-size);display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid color-mix(in srgb,var(--bubble) 22%,white);border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff,color-mix(in srgb,var(--bubble) 11%,white) 67%);color:#27344b;box-shadow:0 8px 18px color-mix(in srgb,var(--bubble) 11%,transparent);transition:.2s}.solution-bubble:hover{z-index:2;border-color:color-mix(in srgb,var(--bubble) 45%,white);transform:translateY(-3px) scale(1.025)}.solution-bubble.group-unit{--bubble:#2563eb}.solution-bubble.group-operation{--bubble:#0891b2}.solution-bubble.group-technology{--bubble:#7c3aed}.solution-bubble.group-software{--bubble:#059669}.solution-bubble.group-scenario{--bubble:#ea580c}.solution-bubble>svg{width:15px;height:15px;margin-bottom:4px;color:var(--bubble)}.solution-bubble>b{max-width:85%;overflow:hidden;font-size:10.5px;white-space:nowrap;text-overflow:ellipsis}.solution-bubble>strong{margin-top:2px;color:var(--bubble);font-size:13px}
.solution-momentum-layout{display:grid;grid-template-columns:minmax(0,1fr) 145px;align-items:center;gap:12px}.solution-momentum-layout>svg{display:block;width:100%;min-width:0}.solution-quadrant-grid rect{fill:#f8f9fd;stroke:#dde4ee;stroke-width:1}.solution-quadrant-grid line{stroke:#dde4ee;stroke-width:1}.solution-quadrant-labels text{fill:#8996aa;font-size:10px}.solution-momentum-dot{cursor:pointer}.solution-momentum-dot circle{fill:#4f46e5;stroke:#fff;stroke-width:2;filter:drop-shadow(0 3px 5px rgba(79,70,229,.22))}.solution-momentum-dot text{fill:#fff;font-size:8px;font-weight:700;text-anchor:middle;pointer-events:none}.solution-momentum-legend{display:flex;flex-direction:column;gap:5px}.solution-momentum-legend button{display:grid;grid-template-columns:20px minmax(0,1fr) 36px;align-items:center;gap:6px;padding:6px 0;text-align:left}.solution-momentum-legend button:hover span{color:#4f46e5}.solution-momentum-legend i{width:19px;height:19px;display:grid;place-items:center;border-radius:6px;background:#eef2ff;color:#4f46e5;font-size:9px;font-style:normal;font-weight:700}.solution-momentum-legend span{overflow:hidden;color:#526177;font-size:10.5px;white-space:nowrap;text-overflow:ellipsis}.solution-momentum-legend b{text-align:right;color:#77859a;font-size:10px}.solution-momentum-legend b.up{color:#059669}.solution-momentum-legend b.down{color:#e11d48}.solution-landscape>footer{display:flex;align-items:center;gap:6px;padding:12px 24px;border-top:1px solid #edf1f5;background:#fafbfc;color:#8e9bad;font-size:10px}.solution-landscape>footer svg{width:12px;height:12px}
.solution-industry-donut-layout{display:grid!important;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:22px;min-height:210px}.solution-industry-donut{position:relative;width:150px;height:150px;border-radius:50%;box-shadow:0 9px 24px rgba(37,99,235,.12)}.solution-industry-donut:after{content:"";position:absolute;inset:26px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #edf1f6}.solution-industry-donut>span{position:absolute;z-index:1;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.solution-industry-donut strong{color:#24334a;font-size:22px}.solution-industry-donut small{margin-top:3px;color:#8e9bad;font-size:10px}.solution-industry-legend{display:flex!important;flex-direction:column;gap:9px}.solution-industry-legend button{display:grid;grid-template-columns:8px minmax(0,1fr) 33px 25px;align-items:center;gap:7px;text-align:left}.solution-industry-legend button>i{width:8px;height:8px;border-radius:3px;background:var(--legend)}.solution-industry-legend button>span{overflow:hidden;color:#4a596f;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.solution-industry-legend button>b{color:#344158;font-size:10.5px;text-align:right}.solution-industry-legend button>em{color:#9aa6b6;font-size:10px;font-style:normal;text-align:right}
.solution-region>div{gap:14px}.solution-region>div>span{grid-template-columns:25px 55px minmax(70px,1fr) 28px}.solution-region span>b{font-size:11px}.solution-region span>strong{font-size:10px}.solution-region span>i{font-size:9px}
.solution-combo-network{display:grid!important;grid-template-columns:135px 34px minmax(0,1fr);align-items:center;min-height:230px}.solution-combo-core{display:flex;align-items:center;flex-direction:column;text-align:center}.solution-combo-core>span{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,#4f46e5,#7c3aed);color:#fff;box-shadow:0 10px 22px rgba(79,70,229,.24)}.solution-combo-core>span svg{width:21px}.solution-combo-core>b{max-width:130px;overflow:hidden;margin-top:9px;color:#344158;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.solution-combo-core>small{margin-top:3px;color:#98a4b4;font-size:9px}.solution-combo-connectors{position:relative;height:180px}.solution-combo-connectors:before{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:linear-gradient(90deg,#c4b5fd,#e2e8f0)}.solution-combo-connectors i{position:absolute;right:0;width:17px;height:1px;background:#dfe4ec}.solution-combo-connectors i:nth-child(1){top:25%;transform:rotate(-28deg);transform-origin:right}.solution-combo-connectors i:nth-child(2){top:50%}.solution-combo-connectors i:nth-child(3){top:75%;transform:rotate(28deg);transform-origin:right}.solution-combo-nodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.solution-combo-nodes button{display:grid!important;grid-template-columns:29px minmax(0,1fr) auto 18px!important;align-items:center;gap:7px!important;padding:9px 10px!important;border:1px solid #e8ebf2!important;border-radius:10px;background:#fff;text-align:left}.solution-combo-nodes button:hover{border-color:#c4b5fd!important;background:#fafaff}.solution-combo-nodes button>span{width:28px!important;height:28px!important;display:grid!important;place-items:center;border-radius:8px!important;background:#f1efff!important;color:#7c3aed!important}.solution-combo-nodes button>span svg{width:13px}.solution-combo-nodes button>b{overflow:hidden;color:#425168!important;font-size:10.5px!important;white-space:nowrap;text-overflow:ellipsis}.solution-combo-nodes button>em{color:#909caf!important;font-size:9px!important;font-style:normal;white-space:nowrap}.solution-combo-nodes button>strong{width:17px;height:17px;display:grid;place-items:center;border-radius:5px;background:#f1f5f9;color:#8794a7;font-size:8px}
.solution-projects>div.solution-project-timeline{position:relative;padding:4px 22px 5px 18px}.solution-project-timeline:before{content:"";position:absolute;left:102px;top:0;bottom:0;width:1px;background:#e1e7ef}.solution-project-timeline>button{display:grid!important;grid-template-columns:62px 15px minmax(0,1fr) 88px 14px!important;align-items:center;gap:13px!important;padding:13px 3px!important}.solution-project-date{display:flex;align-items:flex-end;flex-direction:column}.solution-project-date b{color:#526177!important;font-size:10.5px!important}.solution-project-date small{margin-top:3px;color:#99a5b5!important;font-size:9px!important}.solution-project-dot{position:relative;z-index:1;width:12px;height:12px;display:grid;border:3px solid #fff;border-radius:50%;background:#3b82f6;box-shadow:0 0 0 1px #93c5fd}.solution-project-dot.tender{background:#f59e0b;box-shadow:0 0 0 1px #fcd34d}.solution-project-dot.bid{background:#10b981;box-shadow:0 0 0 1px #6ee7b7}.solution-project-copy{display:flex;min-width:0;flex-direction:column}.solution-project-copy>b{overflow:hidden;color:#334158;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.solution-project-copy>small{display:flex;align-items:center;gap:4px;margin-top:5px;color:#929eae;font-size:10px}.solution-project-copy>small svg{width:11px}.solution-project-copy>small em{width:3px;height:3px;margin:0 3px;border-radius:50%;background:#c3ccd7}.solution-project-timeline>button>strong{font-size:10.5px!important}
@media(max-width:1050px){.solution-landscape-grid{grid-template-columns:1fr}.solution-momentum-panel{border-top:1px solid #e9edf3;border-left:0}.solution-momentum-layout{grid-template-columns:minmax(0,1fr) 170px}}
@media(max-width:720px){.solution-hero-copy p{font-size:12px}.solution-hero-metrics span{font-size:10px}.solution-landscape>header{flex-direction:column;padding:19px 17px}.solution-landscape>header p{line-height:1.6}.solution-bubble-panel,.solution-momentum-panel{padding:18px 16px}.solution-bubble-field{min-height:0}.solution-momentum-layout{grid-template-columns:1fr}.solution-momentum-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.solution-momentum-legend button{grid-template-columns:20px minmax(0,1fr) 34px}.solution-landscape>footer{align-items:flex-start;padding:11px 16px}.solution-industry-donut-layout{grid-template-columns:135px minmax(0,1fr);gap:15px}.solution-industry-donut{width:135px;height:135px}.solution-industry-donut:after{inset:24px}.solution-combo-network{grid-template-columns:1fr;gap:17px}.solution-combo-connectors{display:none}.solution-combo-nodes{grid-template-columns:repeat(2,minmax(0,1fr))}.solution-projects>div.solution-project-timeline{padding:4px 11px}.solution-project-timeline:before{left:76px}.solution-project-timeline>button{grid-template-columns:43px 13px minmax(0,1fr) 13px!important;gap:8px!important}.solution-project-timeline>button>strong{display:none}.solution-project-date b{font-size:9.5px!important}.solution-project-copy>b{font-size:11px}}
@media(max-width:440px){.solution-bubble{--bubble-size:90px!important}.solution-bubble>b{font-size:9.5px}.solution-momentum-legend{grid-template-columns:1fr}.solution-industry-donut-layout{grid-template-columns:1fr}.solution-industry-donut{margin:0 auto}.solution-industry-legend{display:grid!important;grid-template-columns:1fr 1fr}.solution-industry-legend button{grid-template-columns:8px minmax(0,1fr) 30px}.solution-industry-legend button>em{display:none}.solution-combo-nodes{grid-template-columns:1fr}.solution-viz-title{align-items:flex-start;flex-direction:column;gap:3px}.solution-detail-hero h2{font-size:21px}.solution-detail-kpis strong{font-size:17px}}
.solution-combo-nodes{grid-template-columns:1fr}
.solution-projects>div.solution-project-timeline>button .solution-project-copy>b{font-size:12px}
.solution-projects>div.solution-project-timeline>button .solution-project-copy>small{font-size:10px}
@media(max-width:720px){.solution-combo-nodes{grid-template-columns:1fr}.solution-projects>div.solution-project-timeline>button .solution-project-copy>b{font-size:11.5px}}

/* ---------- 方案情报 · 直接标注与差异化企业视图 ---------- */
.solution-activity-orbit{position:relative;min-height:310px;overflow:hidden}.solution-orbit-rings{position:absolute;inset:20px 40px;display:grid;place-items:center}.solution-orbit-rings:before,.solution-orbit-rings:after,.solution-orbit-rings i{content:"";position:absolute;border:1px solid #e6e9f7;border-radius:50%}.solution-orbit-rings:before{width:250px;height:250px}.solution-orbit-rings:after{width:170px;height:170px}.solution-orbit-rings i:nth-child(1){width:90px;height:90px;background:radial-gradient(circle,rgba(79,70,229,.06),transparent 68%)}.solution-orbit-rings i:nth-child(2){width:1px;height:260px;border:0;border-left:1px solid #eef0f7;border-radius:0}.solution-orbit-rings i:nth-child(3){width:300px;height:1px;border:0;border-top:1px solid #eef0f7;border-radius:0}.solution-orbit-core{position:absolute;left:50%;top:50%;z-index:2;width:88px;height:88px;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:50%;background:linear-gradient(145deg,#4338ca,#6366f1);color:#fff;box-shadow:0 13px 28px rgba(79,70,229,.25);transform:translate(-50%,-50%)}.solution-orbit-core strong{font-size:22px}.solution-orbit-core span{margin-top:1px;font-size:10px}.solution-orbit-core small{margin-top:2px;color:#c7d2fe;font-size:8.5px}.solution-orbit-node{position:absolute;z-index:3;display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:7px;width:170px;padding:8px 9px;border:1px solid color-mix(in srgb,#4f46e5 calc(15% + var(--activity)*22%),white);border-radius:11px;background:color-mix(in srgb,#eef2ff calc(35% + var(--activity)*28%),white);text-align:left;box-shadow:0 5px 14px rgba(38,51,90,.06);transition:.2s}.solution-orbit-node:hover{z-index:4;border-color:#a5b4fc;transform:translateY(-2px)}.solution-orbit-node>span{grid-row:1/3;width:29px;height:29px;display:grid;place-items:center;border-radius:8px;background:#fff;color:#4f46e5}.solution-orbit-node>span svg{width:14px}.solution-orbit-node>b{color:#344158;font-size:10.5px;line-height:1.25;white-space:normal}.solution-orbit-node>em{grid-column:2;color:#4f46e5;font-size:9.5px;font-style:normal;font-weight:700}.solution-orbit-node.orbit-0{left:50%;top:5px;transform:translateX(-50%)}.solution-orbit-node.orbit-0:hover{transform:translate(-50%,-2px)}.solution-orbit-node.orbit-1{right:3px;top:60px}.solution-orbit-node.orbit-2{right:3px;bottom:38px}.solution-orbit-node.orbit-3{left:50%;bottom:4px;transform:translateX(-50%)}.solution-orbit-node.orbit-3:hover{transform:translate(-50%,-2px)}.solution-orbit-node.orbit-4{left:3px;bottom:38px}.solution-orbit-node.orbit-5{left:3px;top:60px}
.solution-entity-showcase{display:grid;grid-template-columns:.92fr 1.08fr;min-height:520px}.solution-owner-landscape,.solution-integrator-ranking{min-width:0;padding:22px 24px}.solution-integrator-ranking{border-left:1px solid #e7ecf3;background:linear-gradient(145deg,#fff,#fafcff)}.solution-entity-subhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}.solution-entity-subhead span{display:block;margin-bottom:4px;color:#9aa6b8;font-size:9px;font-weight:800;letter-spacing:1px}.solution-entity-subhead h4{margin:0;color:#344158;font-size:14px}.solution-entity-subhead p{color:#98a4b5;font-size:10px}.solution-owner-feature{display:grid;grid-template-columns:48px minmax(0,1fr) 15px;align-items:center;gap:12px;width:100%;padding:15px;border-radius:14px;background:linear-gradient(125deg,#172554,#1d4ed8);color:#fff;text-align:left;box-shadow:0 12px 25px rgba(37,99,235,.16)}.solution-owner-feature>span{width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:rgba(255,255,255,.12);font-size:16px;font-weight:800}.solution-owner-feature>div{display:flex;min-width:0;flex-direction:column}.solution-owner-feature small{color:#93c5fd;font-size:9px}.solution-owner-feature b{overflow:hidden;margin:3px 0;color:#fff;font-size:14px;white-space:nowrap;text-overflow:ellipsis}.solution-owner-feature em{color:#cbd5e1;font-size:10px;font-style:normal}.solution-owner-feature>svg{width:14px;color:#bfdbfe}.solution-owner-cloud{display:flex;align-content:flex-start;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;min-height:335px;padding:18px 2px 2px}.solution-owner-cloud>button{display:grid;grid-template-columns:26px minmax(0,1fr) 19px;align-items:center;gap:7px;max-width:100%;padding:calc(7px + var(--owner-weight)*3px) calc(9px + var(--owner-weight)*4px);border:1px solid color-mix(in srgb,#2563eb calc(12% + var(--owner-weight)*18%),white);border-radius:999px;background:color-mix(in srgb,#eff6ff calc(45% + var(--owner-weight)*35%),white);text-align:left}.solution-owner-cloud>button:hover{border-color:#93c5fd;transform:translateY(-1px)}.solution-owner-cloud>button>span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#2563eb;font-size:9px;font-weight:800}.solution-owner-cloud>button>b{overflow:hidden;max-width:185px;color:#405068;font-size:calc(10px + var(--owner-weight)*1.5px);white-space:nowrap;text-overflow:ellipsis}.solution-owner-cloud>button>em{width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#2563eb;font-size:8px;font-style:normal}.solution-integrator-ranking>div:last-child{display:flex;flex-direction:column}.solution-integrator-ranking>div:last-child>button{display:grid;grid-template-columns:34px minmax(0,1fr) 42px 13px;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid #e9edf3;text-align:left}.solution-integrator-ranking>div:last-child>button:hover .solution-integrator-copy>b{color:#2563eb}.solution-integrator-avatar{width:33px;height:33px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#e0ecff,#f4f7ff);color:#2563eb;font-size:11px;font-weight:800}.solution-integrator-copy{display:grid;grid-template-columns:22px minmax(0,1fr);grid-template-rows:auto 6px;align-items:center;min-width:0}.solution-integrator-copy>small{color:#a4afbe;font-size:8px}.solution-integrator-copy>b{overflow:hidden;color:#3d4c62;font-size:11.5px;white-space:nowrap;text-overflow:ellipsis}.solution-integrator-copy>i{position:relative;grid-column:1/-1;display:block;height:4px;margin-top:5px;border-radius:4px;background:#e9eef5}.solution-integrator-copy>i>em{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#22d3ee,#2563eb)}.solution-integrator-copy>i>u{position:absolute;top:50%;width:8px;height:8px;border:2px solid #fff;border-radius:50%;background:#2563eb;box-shadow:0 1px 4px rgba(37,99,235,.3);transform:translate(-50%,-50%);text-decoration:none}.solution-integrator-ranking button>strong{text-align:right;color:#344158;font-size:12px}.solution-integrator-ranking button>strong small{display:block;color:#9ba7b7;font-size:8px;font-weight:500}.solution-integrator-ranking button>svg{width:12px;color:#aab5c3}
@media(max-width:1060px){.solution-entity-showcase{grid-template-columns:1fr}.solution-integrator-ranking{border-top:1px solid #e7ecf3;border-left:0}.solution-owner-cloud{min-height:230px}}
@media(max-width:720px){.solution-activity-orbit{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-height:0}.solution-orbit-rings{display:none}.solution-orbit-core{position:static;grid-column:1/-1;width:auto;height:auto;padding:12px;border-radius:12px;transform:none}.solution-orbit-core strong{font-size:19px}.solution-orbit-core small{display:none}.solution-orbit-node,.solution-orbit-node.orbit-0,.solution-orbit-node.orbit-1,.solution-orbit-node.orbit-2,.solution-orbit-node.orbit-3,.solution-orbit-node.orbit-4,.solution-orbit-node.orbit-5{position:static;width:100%;transform:none}.solution-orbit-node:hover,.solution-orbit-node.orbit-0:hover,.solution-orbit-node.orbit-3:hover{transform:translateY(-1px)}.solution-owner-landscape,.solution-integrator-ranking{padding:18px 16px}.solution-owner-cloud{min-height:0}.solution-entity-subhead p{display:none}}
@media(max-width:430px){.solution-activity-orbit{grid-template-columns:1fr}.solution-owner-feature{grid-template-columns:42px minmax(0,1fr) 13px;padding:13px}.solution-owner-feature>span{width:40px;height:40px}.solution-owner-cloud{justify-content:flex-start}.solution-owner-cloud>button{width:100%}.solution-owner-cloud>button>b{max-width:none}.solution-integrator-ranking>div:last-child>button{grid-template-columns:31px minmax(0,1fr) 36px 11px;gap:7px}.solution-integrator-copy>b{font-size:11px}}
