/* ============================================================
   神铁运维官网 · 页面级样式
   ------------------------------------------------------------
   从静态原型的 13 个页面内联 <style> 抽取合并。
   公共部分在 site.css，这里只放各页专属的组件样式。
   各页 class 前缀不同，不会互相干扰。
   ============================================================ */


/* ---------- 首页（index.html） ---------- */
/* ===== 首页专属 ===== */
  .hero{position:relative;background:linear-gradient(160deg,var(--c-27) 0%,var(--c-12) 48%,var(--c-13) 100%);color:var(--on-dark);overflow:hidden}
  .hero .tunnel{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
  .hero .inner{position:relative;z-index:2;padding-top:clamp(44px,4.4vw,78px);padding-bottom:clamp(38px,3.8vw,64px)}
  .hero .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:clamp(11.5px,.76vw,12.5px);letter-spacing:.13em;color:var(--fg-28);border:1px solid rgba(147,200,234,.28);background:rgba(147,200,234,.08);padding:clamp(5px,.42vw,8px) clamp(12px,1vw,17px);border-radius:22px;margin-bottom:clamp(20px,1.9vw,34px)}
  .hero h1{font-size:clamp(28px,3.9vw,60px);line-height:1.24;font-weight:600;letter-spacing:clamp(-.4px,-.06vw,-1.4px);margin-bottom:clamp(18px,1.7vw,30px);max-width:15em}
  .hero h1 em{font-style:normal;color:var(--fg-29)}
  .hero p.lead{font-size:clamp(14.5px,.95vw,18px);line-height:1.8;color:rgba(255,255,255,.74);max-width:34em;margin-bottom:clamp(28px,2.8vw,46px)}
  .hero .acts{display:flex;gap:clamp(10px,1vw,16px);flex-wrap:wrap}
  .hero .acts .btn-o{border-color:rgba(255,255,255,.28);color:var(--on-dark);background:transparent}
  .hero .acts .btn-o:hover{border-color:var(--card-line);background:rgba(255,255,255,.09);color:var(--on-dark)}

  .databar{position:relative;border-top:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.18);backdrop-filter:blur(4px);z-index:2}
  .databar .wrap{display:grid;grid-template-columns:repeat(4,1fr);padding-top:clamp(22px,2vw,34px);padding-bottom:clamp(30px,2.9vw,50px);gap:0}
  .datum{position:relative;padding-left:clamp(18px,1.8vw,32px)}
  .datum:first-child{padding-left:0}
  .datum::before{content:"";position:absolute;left:0;top:clamp(7px,.7vw,11px);width:9px;height:9px;border-radius:50%;border:2px solid rgba(147,200,234,.5)}
  .datum:first-child::before{display:none}
  .datum::after{content:"";position:absolute;left:5px;top:clamp(11px,1vw,15px);right:0;height:1px;background:linear-gradient(90deg,rgba(147,200,234,.38),rgba(147,200,234,.04))}
  .datum:last-child::after{display:none}
  .datum b{display:block;font-size:clamp(26px,2.6vw,44px);font-weight:600;letter-spacing:-.8px;line-height:1.12;color:var(--on-dark)}
  .datum b i{font-style:normal;font-size:clamp(14px,.95vw,19px);color:var(--yellow-text);margin-left:3px;font-weight:500}
  .datum span{display:block;font-size:clamp(11.5px,.76vw,13.5px);color:rgba(255,255,255,.58);margin-top:clamp(3px,.35vw,7px)}

  .bizgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.5vw,26px)}
  /* ★ flex column 而不是原来的默认流式块（2026-11-04 用户要求）：
     ① 图标与标题同一行  ② "查看xx能力"统一落到卡片左下角
     两条都要靠布局容器才能做到：
       · 图标+标题放在 .head（flex row + align-items:center）里并排
       · .go 用 margin-top:auto 吸到卡片底部。grid 的卡片默认 stretch、
         三张卡等高，于是三个链接自然落在同一条水平线上 ——
         这比按 padding 算位置可靠，正文多一行也不会错位。
     ★ .go 要 align-self:flex-start：它是 inline-flex，作为 flex item
       默认 stretch 会拉满整行宽，点卡片空白处也会触发跳转，不像链接。 */
  .bizcard{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:var(--card);padding:clamp(24px,2.2vw,38px) clamp(22px,2vw,32px) clamp(22px,2vw,30px);transition:.25s;overflow:hidden}
  .bizcard:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--line2)}
  .bizcard .bar{position:absolute;left:0;top:0;width:100%;height:3px;background:var(--blue)}
  .bizcard:nth-child(2) .bar{background:var(--yellow)}
  .bizcard:nth-child(3) .bar{background:var(--navy2)}
  .bizcard .head{display:flex;align-items:center;gap:clamp(11px,1vw,15px);margin-bottom:clamp(12px,1.1vw,17px)}
  .bizcard .ico{width:clamp(38px,2.6vw,46px);height:clamp(38px,2.6vw,46px);margin:0;flex-shrink:0;color:var(--blue-text)}
  .bizcard:nth-child(2) .ico{color:var(--fg-31)}
  .bizcard:nth-child(3) .ico{color:var(--navy2-text)}
  /* 标题 margin 必须清零：在 .head 里它会撑高所在行，并排就白做了 */
  .bizcard h3{font-size:clamp(17px,1.35vw,23px);font-weight:600;margin:0;line-height:1.3}
  .bizcard p{font-size:clamp(13px,.86vw,15px);color:var(--ink2);line-height:1.8;margin-bottom:clamp(14px,1.3vw,20px);min-height:3.6em}
  .bizcard .tags{margin-bottom:clamp(4px,.4vw,8px)}
  .bizcard .go{display:inline-flex;align-items:center;gap:6px;font-size:clamp(12.5px,.82vw,14px);color:var(--blue-text);font-weight:500;margin-top:auto;padding:9px 0 0;align-self:flex-start;transition:.18s}
  .bizcard .go::after{content:"→";transition:.2s}
  .bizcard:hover .go::after{transform:translateX(3px)}

  .sols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.5vw,26px)}
  .sol{border:1px solid var(--line);border-radius:9px;background:var(--card);padding:clamp(22px,2vw,34px) clamp(20px,1.8vw,28px) clamp(20px,1.8vw,26px);transition:.25s}
  .sol:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--line2)}
  .sol .sc{display:inline-block;font-size:clamp(11.5px,.7vw,12px);letter-spacing:.06em;color:var(--blue-text);background:var(--surface-18);padding:3px clamp(8px,.65vw,12px);border-radius:3px;margin-bottom:clamp(12px,1.1vw,18px)}
  .sol h4{font-size:clamp(16px,1.15vw,20px);font-weight:600;line-height:1.45;margin-bottom:clamp(7px,.65vw,11px)}
  .sol .val{font-size:clamp(12.5px,.83vw,14.5px);color:var(--ink2);line-height:1.78;margin-bottom:clamp(14px,1.2vw,20px)}
  .sol ul{list-style:none;display:flex;flex-direction:column;gap:clamp(6px,.55vw,9px);border-top:1px dashed var(--line);padding-top:clamp(13px,1.1vw,18px)}
  .sol ul li{font-size:clamp(12px,.8vw,13.5px);color:var(--ink2);padding-left:16px;position:relative;line-height:1.65}
  .sol ul li::before{content:"";position:absolute;left:0;top:7px;width:5px;height:5px;border-radius:1px;background:var(--yellow)}

  .prods{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.3vw,22px)}
  .prod{border:1px solid var(--line);border-radius:9px;background:var(--card);padding:clamp(18px,1.6vw,28px) clamp(17px,1.5vw,24px);transition:.24s;display:flex;gap:clamp(14px,1.3vw,22px);align-items:flex-start}
  .prod:hover{border-color:var(--blue-text);box-shadow:var(--sh);transform:translateY(-4px)}
  .prod .thumb{width:clamp(58px,4.6vw,82px);height:clamp(58px,4.6vw,82px);flex-shrink:0;border-radius:6px;background:linear-gradient(145deg,var(--surface-32),var(--surface-33));display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
  .prod .thumb svg{width:56%;height:56%;color:var(--fg-34);position:relative;z-index:1}
  .prod .thumb::after{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(255,255,255,.55) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.55) 1px,transparent 1px);background-size:11px 11px;opacity:.6}
  .prod .info{min-width:0;flex:1}
  .prod .no{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:clamp(11.5px,.68vw,11.5px);color:var(--ink3);letter-spacing:.1em;display:flex;align-items:center;gap:7px;margin-bottom:clamp(5px,.45vw,8px)}
  .prod .no i{font-style:normal;font-size:clamp(11.5px,.64vw,10.5px);padding:1px 6px;border-radius:2px;background:var(--bg3);color:var(--ink2)}
  .prod .no i.dev{background:var(--surface-35);color:var(--ink-36)}
  .prod h4{font-size:clamp(14.5px,.98vw,17px);font-weight:600;margin-bottom:4px;line-height:1.4}
  .prod p{font-size:clamp(11.5px,.76vw,13px);color:var(--ink2);line-height:1.65}

  /* ---- 六大专业卡片（首页"在管项目与典型业绩"）----
     ★ 类名一律用 major* 前缀，不复用 .case / .card：
       2026-11-03 就因为新组件用了 .pcard，撞上产品列表页既有样式，
       卡片竖排、高度 128px，排查了两轮。前台 CSS 没有命名空间，
       新增组件必须先 grep 一遍类名。

     3 列 × 2 行：6 个专业一步看完，比 2 列省一屏。
     卡片不是等比缩小的 .case —— 这里信息量少（名称/项数/一句话），
     所以用纵向堆叠 + 顶部色条，扫视成本更低。 */
  .majorgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.1vw,18px)}
  .majorcard{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:9px;background:var(--card);padding:clamp(15px,1.3vw,21px) clamp(15px,1.4vw,22px) clamp(13px,1.2vw,18px);transition:.22s;overflow:hidden}
  .majorcard:hover{border-color:var(--line2);box-shadow:var(--sh);transform:translateY(-3px)}
  .majorcard .mc-bar{position:absolute;left:0;top:0;width:3px;height:100%;background:var(--blue)}
  .majorcard[data-m="comm"] .mc-bar{background:var(--c-37)}
  .majorcard[data-m="signal"] .mc-bar{background:var(--c-38)}
  .majorcard[data-m="mechanical"] .mc-bar{background:var(--c-4)}
  .majorcard[data-m="power"] .mc-bar{background:var(--c-3)}
  .majorcard[data-m="track"] .mc-bar{background:var(--c-39)}
  .majorcard[data-m="vehicle"] .mc-bar{background:var(--c-40)}
  .majorcard .mc-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
  .majorcard .mc-head b{font-size:clamp(14.5px,1.05vw,16.5px);font-weight:600;color:var(--ink)}
  /* "在管 N 项"用小字靠右：它是事实补充，不该抢专业名的视觉重量 */
  .majorcard .mc-head i{font-style:normal;font-size:clamp(11px,.72vw,12px);color:var(--green-text);white-space:nowrap;flex-shrink:0}
  .majorcard .mc-sum{display:block;flex:1;font-size:clamp(12px,.78vw,13px);color:var(--ink2);line-height:1.7;margin-bottom:10px}
  .majorcard .mc-go{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;font-size:clamp(11.5px,.74vw,12.5px);color:var(--blue-text);font-weight:500;transition:.18s}
  .majorcard .mc-go::after{content:"→";transition:.2s}
  .majorcard:hover .mc-go::after{transform:translateX(3px)}

  .cases{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,1.3vw,22px)}
  .case{display:flex;border:1px solid var(--line);border-radius:9px;background:var(--card);overflow:hidden;transition:.24s}
  .case:hover{border-color:var(--line2);box-shadow:var(--sh);transform:translateY(-3px)}
  .case .stripe{width:6px;flex-shrink:0;background:var(--blue)}
  /* 说明：`.case` 这套卡片当前**没有任何模板输出**（只剩 site.js 的
     reveal 动画选择器里还带着这个类名）。这里把色条规则同步成 code + `~=`，
     是为了万一以后复用这套结构时直接就是对的 —— 而不是又留一份
     "写了但永不匹配"的规则，让下一个人再踩一次同样的坑。 */
  .case[data-m~="comm"] .stripe{background:var(--c-37)}
  .case[data-m~="signal"] .stripe{background:var(--c-38)}
  .case[data-m~="mechanical"] .stripe{background:var(--c-42)}
  .case[data-m~="power"] .stripe{background:var(--c-3)}
  .case[data-m~="track"] .stripe{background:var(--c-4)}
  .case[data-m~="vehicle"] .stripe{background:var(--c-41)}
  .case .body{padding:clamp(18px,1.6vw,28px) clamp(18px,1.7vw,30px);flex:1;min-width:0}
  .case .meta{display:flex;gap:clamp(6px,.55vw,9px);align-items:center;margin-bottom:clamp(7px,.65vw,11px);flex-wrap:wrap}
  .case .meta .tag{font-size:clamp(11.5px,.68vw,11.5px);padding:2px 7px;border-radius:2px;background:var(--bg3);color:var(--ink2)}
  .case .meta .yr{font-size:clamp(11.5px,.7vw,12px);color:var(--ink3);font-family:ui-monospace,Menlo,monospace}
  .case h4{font-size:clamp(15px,1.08vw,18.5px);font-weight:600;line-height:1.45;margin-bottom:clamp(9px,.8vw,14px)}
  .case .scale{display:flex;flex-direction:column;gap:clamp(2px,.25vw,4px)}
  .case .scale span{font-size:clamp(11.5px,.78vw,13.5px);color:var(--ink2);padding-left:14px;position:relative;line-height:1.68}
  .case .scale span::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--line2)}

  .emerstrip{display:flex;align-items:center;gap:clamp(18px,2.2vw,42px);margin-top:clamp(26px,2.4vw,42px);padding-top:clamp(22px,2vw,34px);border-top:1px solid var(--line2);flex-wrap:wrap}
  .es-lead{flex-shrink:0}
  .es-lead b{display:block;font-size:clamp(14px,1vw,17px);font-weight:600;margin-bottom:3px}
  .es-lead span{display:block;font-size:clamp(11.5px,.78vw,13.5px);color:var(--ink3);line-height:1.6;max-width:13em}
  .es-lamps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(9px,.85vw,15px);flex:1;min-width:min(100%,520px)}
  .es-lamps .lamrow{padding:clamp(10px,.85vw,15px) clamp(11px,.95vw,16px);gap:clamp(9px,.85vw,14px)}
  .es-lamps .lamp{width:clamp(26px,1.9vw,34px);height:clamp(26px,1.9vw,34px);font-size:clamp(11.5px,.68vw,11.5px)}
  .es-lamps .txt b{font-size:clamp(12px,.82vw,14px);margin-bottom:1px}
  .es-lamps .txt span{font-size:clamp(11.5px,.72vw,12px);line-height:1.55}

  .qualrow{display:flex;flex-wrap:wrap;gap:clamp(7px,.65vw,11px)}
  .qtag{display:inline-flex;align-items:baseline;gap:8px;border:1px solid var(--line2);background:var(--card);border-radius:5px;padding:clamp(7px,.6vw,11px) clamp(11px,1vw,17px);transition:.2s}
  .qtag:hover{border-color:var(--blue-text)}
  .qtag b{font-size:clamp(12.5px,.85vw,14.5px);font-weight:500;color:var(--ink)}
  .qtag i{font-style:normal;font-size:clamp(11.5px,.66vw,11.5px);color:var(--green-text);background:var(--surface-43);padding:1px 6px;border-radius:2px}
  .qnote{margin-top:clamp(16px,1.4vw,24px);padding:clamp(13px,1.1vw,18px) clamp(15px,1.3vw,22px);border-left:3px solid var(--yellow-line);background:var(--surface-20);font-size:clamp(11.5px,.8vw,13.5px);color:var(--ink-21);line-height:1.78;border-radius:0 5px 5px 0}
  .qnote b{color:var(--ink-44)}

  .partners{margin-top:clamp(24px,2.2vw,38px);padding-top:clamp(18px,1.8vw,30px);border-top:1px solid var(--line2)}
  .ptitle{font-size:clamp(11.5px,.75vw,12.5px);color:var(--ink3);letter-spacing:.1em;margin-bottom:clamp(11px,1vw,16px);text-transform:uppercase}
  .logos{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(9px,.8vw,14px)}
  .logobox{height:clamp(50px,3.8vw,68px);border:1px dashed var(--line2);border-radius:6px;background:var(--card);display:flex;align-items:center;justify-content:center;color:var(--ink3);font-size:clamp(11.5px,.7vw,11.5px);transition:.2s}
  .logobox:hover{border-color:var(--blue-text);color:var(--blue-text)}

  .cta{background:linear-gradient(145deg,var(--c-11),var(--c-45) 68%,var(--c-13));color:var(--on-dark);position:relative;overflow:hidden}
  .cta .inner{position:relative;z-index:2;text-align:center;padding-top:clamp(48px,4.4vw,84px);padding-bottom:clamp(48px,4.4vw,84px)}
  .cta h2{font-size:clamp(24px,2.4vw,40px);font-weight:600;letter-spacing:-.5px;margin-bottom:clamp(12px,1.1vw,18px);line-height:1.32}
  .cta p{color:rgba(255,255,255,.68);font-size:clamp(13.5px,.9vw,16px);max-width:40em;margin:0 auto clamp(26px,2.4vw,40px);line-height:1.8}
  .cta .acts{display:flex;gap:clamp(10px,1vw,16px);justify-content:center;flex-wrap:wrap}
  .cta .acts .btn-o{border-color:rgba(255,255,255,.3);color:var(--on-dark);background:transparent}
  .cta .acts .btn-o:hover{border-color:var(--card-line);background:rgba(255,255,255,.09)}

  @media (max-width:1180px){
    .prods{grid-template-columns:repeat(2,1fr)}
    .logos{grid-template-columns:repeat(4,1fr)}
  }
  @media (max-width:980px){
    .bizgrid,.sols,.cases{grid-template-columns:1fr}
    /* 六大专业卡片：手机上保持 2 列而不是 1 列。
       这 6 个卡片信息量少（名称+项数+一句话），1 列排下来要划 6 屏中的
       大半天，而 2 列每列 158px，"通风空调、给排水…"这类摘要会折成
       3–4 行但仍在可读范围。3 列在 375px 下每列只有 101px，摘要会被
       压成竖条，所以不用 3 列。 */
    .majorgrid{grid-template-columns:repeat(2,1fr);gap:10px}
    .prods{grid-template-columns:1fr}
    .emerstrip{flex-direction:column;align-items:stretch;gap:14px}
    .es-lead span{max-width:none}
    .logos{grid-template-columns:repeat(3,1fr)}
  }
  @media (max-width:640px){
    .databar .wrap{grid-template-columns:repeat(2,1fr);gap:clamp(20px,4vw,28px) 0}
    .datum:nth-child(3)::after{display:none}
    .datum:nth-child(3){padding-left:0}
    .datum:nth-child(3)::before{display:none}
    .es-lamps{grid-template-columns:1fr;min-width:0}
    .logos{grid-template-columns:repeat(2,1fr)}
  }

/* ---------- 业务体系（business.html） ---------- */
.anchorbar{position:sticky;top:clamp(64px,5vw,84px);z-index:60;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
  .anchorbar .wrap{display:flex;gap:clamp(4px,.6vw,10px);overflow-x:auto;scrollbar-width:none}
  .anchorbar .wrap::-webkit-scrollbar{display:none}
  .anchorbar a{font-size:clamp(12.5px,.85vw,14px);color:var(--ink2);padding:clamp(11px,.9vw,15px) clamp(11px,1vw,17px);white-space:nowrap;border-bottom:2px solid transparent;transition:.18s;min-height:44px;display:flex;align-items:center}
  .anchorbar a:hover{color:var(--blue-text);border-bottom-color:var(--blue-text)}

  /* 三大板块 */
  .bizblock{display:grid;grid-template-columns:280px 1fr;gap:clamp(24px,3vw,56px);align-items:start;padding:clamp(34px,3.2vw,58px) 0;border-bottom:1px solid var(--line)}
  .bizblock:last-of-type{border-bottom:none}
  .bizblock .bc{position:sticky;top:clamp(130px,10vw,160px)}
  .bizblock .bc .no{font-family:ui-monospace,Menlo,monospace;font-size:clamp(32px,3.4vw,54px);font-weight:600;color:var(--line2);line-height:1;margin-bottom:10px;letter-spacing:-2px}
  .bizblock .bc h2{font-size:clamp(20px,1.7vw,28px);font-weight:600;margin-bottom:10px;letter-spacing:-.3px}
  .bizblock .bc p{font-size:clamp(12.5px,.83vw,14.5px);color:var(--ink2);line-height:1.8;margin-bottom:16px}
  .bizblock .bc .bar{width:44px;height:3px;background:var(--yellow);border-radius:2px}
  .bizblock .body{min-width:0}
  .bizblock .lead{font-size:clamp(14px,.92vw,16px);color:var(--ink2);line-height:1.9;margin-bottom:clamp(18px,1.8vw,28px)}
  .bizblock .lead b{color:var(--ink);font-weight:600}

  /* 专业明细卡 */
  .majors{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(12px,1.2vw,18px)}
  .major{border:1px solid var(--line);border-radius:9px;background:var(--card);padding:clamp(15px,1.4vw,22px);transition:.22s}
  .major:hover{border-color:var(--blue-text);box-shadow:var(--sh)}
  .major .mh{display:flex;align-items:center;gap:10px;margin-bottom:10px}
  .major .mi{width:32px;height:32px;flex-shrink:0;border-radius:5px;background:var(--bg3);display:flex;align-items:center;justify-content:center;color:var(--blue-text)}
  .major .mi svg{width:18px;height:18px}
  .major h3{font-size:clamp(14px,.96vw,16px);font-weight:600}
  .major ul{list-style:none;display:flex;flex-direction:column;gap:5px}
  .major ul li{font-size:clamp(11.5px,.78vw,13px);color:var(--ink2);padding-left:13px;position:relative;line-height:1.65}
  .major ul li::before{content:"";position:absolute;left:0;top:7px;width:4px;height:4px;border-radius:50%;background:var(--line2)}

  /* 集成改造方向 */
  .dirs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.2vw,18px)}
  .dir{border:1px solid var(--line);border-radius:8px;background:var(--card);padding:clamp(14px,1.3vw,20px);transition:.22s}
  .dir:hover{border-color:var(--blue-text);box-shadow:var(--sh);transform:translateY(-3px)}
  .dir .dt{font-size:clamp(13px,.88vw,15px);font-weight:600;margin-bottom:5px}
  .dir .dd{font-size:clamp(11.5px,.78vw,13px);color:var(--ink2);line-height:1.7}

  /* 流程条 */
  .flow{display:flex;align-items:stretch;gap:0;margin:clamp(18px,1.8vw,28px) 0;flex-wrap:wrap}
  .fstep{flex:1;min-width:110px;position:relative;padding:clamp(12px,1.1vw,18px) clamp(10px,1vw,16px);background:var(--card);border:1px solid var(--line);border-right:none;font-size:clamp(11.5px,.78vw,13px);color:var(--ink2);text-align:center}
  .fstep:first-child{border-radius:6px 0 0 6px}
  .fstep:last-child{border-right:1px solid var(--line);border-radius:0 6px 6px 0}
  .fstep b{display:block;font-size:clamp(12px,.84vw,14px);color:var(--ink);font-weight:600;margin-bottom:3px}
  .fstep .n{font-family:ui-monospace,Menlo,monospace;font-size:10px;color:var(--ink3);letter-spacing:.1em}
  .fstep::after{content:"";position:absolute;right:-5px;top:50%;transform:translateY(-50%) rotate(45deg);width:8px;height:8px;background:var(--card);border-top:1px solid var(--line);border-right:1px solid var(--line);z-index:2}
  .fstep:last-child::after{display:none}

  /* 产品入口 */
  .prolink{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
  .pl{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:6px;padding:10px 12px;background:var(--card);transition:.2s;font-size:clamp(11.5px,.78vw,13px);color:var(--ink2)}
  .pl:hover{border-color:var(--blue-text);color:var(--blue-text);box-shadow:var(--sh)}

  @media (max-width:1080px){
    .bizblock{grid-template-columns:1fr;gap:20px}
    .bizblock .bc{position:static}
    .bizblock .bc .no{font-size:36px}
    .dirs{grid-template-columns:repeat(2,1fr)}
    .prolink{grid-template-columns:repeat(2,1fr)}
  }
  @media (max-width:760px){
    .majors{grid-template-columns:1fr}
    .dirs{grid-template-columns:1fr}
    .fstep{min-width:50%;border-right:1px solid var(--line);border-bottom:none}
    .fstep::after{display:none}
    .fstep:nth-child(odd){border-radius:0}
    .fstep:first-child{border-radius:6px 0 0 0}
    .fstep:nth-child(2){border-radius:0 6px 0 0}
  }
@media (max-width:880px){.lamgrid{grid-template-columns:1fr !important}}

/* ---------- 解决方案列表（solutions.html） ---------- */
.solitem{display:grid;grid-template-columns:1fr 300px;gap:clamp(20px,2.6vw,48px);align-items:start;padding:clamp(28px,2.8vw,48px) 0;border-bottom:1px solid var(--line);scroll-margin-top:120px}
  .solitem:last-child{border-bottom:none}
  .solitem .sc{display:inline-flex;align-items:center;gap:7px;font-size:clamp(11.5px,.72vw,12px);letter-spacing:.06em;color:var(--blue-text);background:var(--surface-18);padding:4px 11px;border-radius:3px;margin-bottom:clamp(10px,1vw,15px)}
  .solitem h2{font-size:clamp(19px,1.6vw,26px);font-weight:600;letter-spacing:-.3px;line-height:1.35;margin-bottom:clamp(9px,.85vw,14px)}
  .solitem .pain{font-size:clamp(13.5px,.9vw,15.5px);color:var(--ink2);line-height:1.85;margin-bottom:clamp(14px,1.4vw,22px)}
  .solitem .pain b{color:var(--ink);font-weight:600}

  .kv{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(10px,1vw,16px)}
  .kvbox{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:clamp(13px,1.2vw,18px)}
  .kvbox .kk{font-size:clamp(11.5px,.72vw,11.5px);color:var(--ink3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px}
  .kvbox .vv{font-size:clamp(12.5px,.83vw,14px);color:var(--ink2);line-height:1.75}
  .kvbox .vv strong{display:block;color:var(--ink);font-weight:600;font-size:clamp(13.5px,.9vw,15.5px);margin-bottom:3px}

  .aside{border:1px solid var(--line);border-radius:9px;background:var(--card);padding:clamp(15px,1.4vw,22px);position:sticky;top:clamp(80px,6vw,104px)}
  .aside .at{font-size:12px;color:var(--ink3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:11px}
  .aside ul{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
  .aside ul li{font-size:clamp(11.5px,.78vw,13px);color:var(--ink2);padding-left:13px;position:relative;line-height:1.6}
  .aside ul li::before{content:"✓";position:absolute;left:0;top:0;color:var(--green-text);font-size:11px}
  .aside .relp{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
  .aside .relp span{font-size:10.5px;color:var(--ink2);background:var(--bg3);padding:3px 8px;border-radius:3px}

  .idx{display:flex;flex-direction:column;gap:8px;margin-bottom:clamp(20px,2vw,32px)}
  .idx a{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:7px;padding:clamp(11px,1vw,15px) clamp(13px,1.2vw,18px);background:var(--card);transition:.2s;font-size:clamp(12.5px,.84vw,14px)}
  .idx a:hover{border-color:var(--blue-text);box-shadow:var(--sh);transform:translateX(3px)}
  .idx .n{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--ink3);flex-shrink:0}
  .idx b{font-weight:500;flex:1}
  .idx span{font-size:10.5px;color:var(--ink3)}

  @media (max-width:1080px){
    .solitem{grid-template-columns:1fr}
    .aside{position:static}
  }
  @media (max-width:640px){.kv{grid-template-columns:1fr}}

/* ---------- 方案详情（solution.html） ---------- */
.layout{display:grid;grid-template-columns:1fr 320px;gap:clamp(24px,3vw,54px);align-items:start}
  .main-col{min-width:0}

  .solhead-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:clamp(14px,1.4vw,20px)}
  .solhead-tags span{font-size:clamp(11.5px,.72vw,12px);color:var(--fg-28);border:1px solid rgba(147,200,234,.3);background:rgba(147,200,234,.1);padding:4px 11px;border-radius:20px}

  .prose h2{font-size:clamp(18px,1.35vw,23px);font-weight:600;margin:clamp(26px,2.4vw,40px) 0 clamp(11px,1vw,16px);padding-bottom:9px;border-bottom:1px solid var(--line2);color:var(--navy-text)}
  .prose h2:first-child{margin-top:0}
  .prose p{font-size:clamp(13.5px,.9vw,15.5px);color:var(--ink2);line-height:1.88;margin-bottom:clamp(11px,1vw,16px)}
  .prose p b,.prose li b{color:var(--ink);font-weight:600}
  .prose h3{font-size:clamp(14.5px,.96vw,16.5px);font-weight:600;margin:clamp(18px,1.6vw,26px) 0 clamp(8px,.7vw,12px)}

  .painbox{border-left:3px solid var(--red);background:var(--surface-46);padding:clamp(14px,1.3vw,20px) clamp(16px,1.4vw,22px);border-radius:0 6px 6px 0;margin:clamp(14px,1.3vw,20px) 0}
  .painbox .pt{font-size:clamp(12px,.8vw,13px);color:var(--ink-47);font-weight:600;letter-spacing:.04em;margin-bottom:6px}
  .painbox p{margin:0;color:var(--ink-48);font-size:clamp(12.5px,.84vw,14px);line-height:1.8}

  .solutionbox{border-left:3px solid var(--green);background:var(--surface-49);padding:clamp(14px,1.3vw,20px) clamp(16px,1.4vw,22px);border-radius:0 6px 6px 0;margin:clamp(14px,1.3vw,20px) 0}
  .solutionbox .pt{font-size:clamp(12px,.8vw,13px);color:var(--ink-50);font-weight:600;letter-spacing:.04em;margin-bottom:6px}
  .solutionbox p{margin:0;color:var(--ink-51);font-size:clamp(12.5px,.84vw,14px);line-height:1.8}

  .steps{display:flex;flex-direction:column;gap:0;margin:clamp(16px,1.6vw,24px) 0}
  .step{display:flex;gap:clamp(12px,1.2vw,18px);padding-bottom:clamp(16px,1.5vw,24px);position:relative}
  .step:last-child{padding-bottom:0}
  .step:not(:last-child)::before{content:"";position:absolute;left:15px;top:32px;bottom:0;width:1px;background:var(--line2)}
  .step .sn{width:31px;height:31px;flex-shrink:0;border-radius:50%;background:var(--navy);color:var(--on-dark);font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;font-family:ui-monospace,Menlo,monospace;position:relative;z-index:1}
  .step .sc b{display:block;font-size:clamp(13.5px,.9vw,15px);font-weight:600;margin-bottom:3px}
  .step .sc p{font-size:clamp(12px,.8vw,13.5px);color:var(--ink2);line-height:1.72;margin:0}

  .benefit{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(10px,1vw,16px)}
  .bb{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:clamp(13px,1.2vw,19px)}
  .bb .bk{font-size:clamp(11.5px,.72vw,11.5px);color:var(--ink3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
  .bb .bv{font-size:clamp(12.5px,.83vw,14px);color:var(--ink2);line-height:1.72}
  .bb .bv strong{display:block;color:var(--ink);font-weight:600;font-size:clamp(13px,.88vw,15px);margin-bottom:2px}

  .aside{position:sticky;top:clamp(80px,6vw,104px);display:flex;flex-direction:column;gap:clamp(14px,1.4vw,20px)}
  .sidebox{border:1px solid var(--line);border-radius:9px;background:var(--card);padding:clamp(16px,1.5vw,24px)}
  .sidebox .k{font-size:12px;color:var(--ink3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:11px}
  .sidebox ul{list-style:none;display:flex;flex-direction:column;gap:9px}
  .sidebox ul li{font-size:clamp(12px,.8vw,13.5px);color:var(--ink2);padding-left:15px;position:relative;line-height:1.65}
  .sidebox ul li::before{content:"✓";position:absolute;left:0;top:0;color:var(--green-text);font-size:11px}
  .sidebox .relp{display:flex;flex-wrap:wrap;gap:6px}
  .sidebox .relp span{font-size:10.5px;color:var(--ink2);background:var(--bg3);padding:3px 8px;border-radius:3px}

  .ctabox{background:linear-gradient(150deg,var(--c-12),var(--c-45));color:var(--on-dark);border-radius:9px;padding:clamp(18px,1.7vw,26px);position:relative;overflow:hidden}
  .ctabox::before{content:"";position:absolute;right:-30px;top:-30px;width:130px;height:130px;border-radius:50%;border:1px solid rgba(127,193,238,.18)}
  .ctabox .t{font-size:clamp(14px,.96vw,16px);font-weight:600;margin-bottom:7px;position:relative}
  .ctabox .d{font-size:clamp(11.5px,.78vw,13px);color:rgba(255,255,255,.66);line-height:1.7;margin-bottom:15px;position:relative}
  .ctabox .btn{width:100%;position:relative}

  .nav2{display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line);margin-top:clamp(28px,2.6vw,44px);padding-top:clamp(18px,1.8vw,28px);flex-wrap:wrap}
  .nav2 a{display:flex;align-items:center;gap:9px;font-size:clamp(12.5px,.84vw,14px);color:var(--blue-text);font-weight:500;padding:9px 0}
  .nav2 a:hover{color:var(--navy-text)}

  @media (max-width:1080px){
    .layout{grid-template-columns:1fr}
    .aside{position:static}
  }
  @media (max-width:640px){.benefit{grid-template-columns:1fr}}

/* ---------- 产品列表（products.html） ---------- */
/* 筛选条 */
  .filterbar{position:sticky;top:clamp(64px,5vw,84px);z-index:60;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:clamp(10px,1vw,16px) 0}
  .filterbar .wrap{display:flex;align-items:center;gap:clamp(10px,1.4vw,22px);flex-wrap:wrap}
  .fgroup{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .fgroup .fl{font-size:clamp(11.5px,.75vw,12.5px);color:var(--ink3);letter-spacing:.04em;margin-right:2px}
  .chip{display:inline-flex;align-items:center;font-size:clamp(12px,.8vw,13.5px);color:var(--ink2);border:1px solid var(--line2);background:var(--card);border-radius:20px;padding:7px 14px;cursor:pointer;transition:.18s;min-height:38px;font-family:inherit}
  .chip:hover{border-color:var(--blue-text);color:var(--blue-text)}
  .chip.on{background:var(--navy);border-color:var(--navy-text);color:var(--on-dark);font-weight:500}
  .fcount{margin-left:auto;font-size:clamp(11.5px,.78vw,13px);color:var(--ink3)}
  .fcount b{color:var(--navy-text);font-weight:600}

  /* 产品网格 */
  .pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.5vw,26px)}
  .pcard{border:1px solid var(--line);border-radius:10px;background:var(--card);overflow:hidden;transition:.25s;display:flex;flex-direction:column}
  .pcard:hover{border-color:var(--blue-text);box-shadow:var(--sh-lg);transform:translateY(-5px)}
  .pcard .visual{position:relative;height:clamp(120px,10vw,168px);background:linear-gradient(145deg,var(--surface-32),var(--surface-52));display:flex;align-items:center;justify-content:center;overflow:hidden}
  .pcard .visual svg{width:clamp(46px,4vw,66px);height:clamp(46px,4vw,66px);color:var(--fg-34);position:relative;z-index:1;transition:.3s}
  .pcard:hover .visual svg{transform:scale(1.08);color:var(--blue-text)}
  .pcard .visual::after{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px);background-size:14px 14px;opacity:.6}
  .pcard .visual .idx{position:absolute;left:12px;top:10px;font-family:ui-monospace,Menlo,monospace;font-size:clamp(11.5px,.7vw,11.5px);color:var(--fg-53);letter-spacing:.1em;z-index:1}
  .pcard .visual .st{position:absolute;right:10px;top:9px;font-size:10.5px;padding:2px 7px;border-radius:2px;background:rgba(255,255,255,.85);color:var(--fg-54);z-index:1}
  .pcard .visual .st.dev{background:var(--surface-35);color:var(--ink-36)}
  .pcard .body{padding:clamp(16px,1.4vw,24px) clamp(16px,1.4vw,24px) clamp(14px,1.2vw,20px);display:flex;flex-direction:column;flex:1}
  .pcard h3{font-size:clamp(15px,1.05vw,18px);font-weight:600;margin-bottom:clamp(5px,.45vw,8px);line-height:1.4}
  .pcard .desc{font-size:clamp(12px,.8vw,13.5px);color:var(--ink2);line-height:1.7;margin-bottom:clamp(10px,.9vw,14px);flex:1}
  .pcard .foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:clamp(10px,.9vw,14px);border-top:1px dashed var(--line)}
  .pcard .foot .cat{font-size:clamp(11.5px,.72vw,12px);color:var(--ink3)}
  .pcard .foot .go{font-size:clamp(12px,.8vw,13.5px);color:var(--blue-text);font-weight:500;display:inline-flex;align-items:center;gap:5px}
  .pcard .foot .go::after{content:"→";transition:.2s}
  .pcard:hover .foot .go::after{transform:translateX(3px)}

  .empty{display:none;text-align:center;padding:clamp(40px,4vw,70px) 0;color:var(--ink3)}
  .empty b{display:block;font-size:16px;color:var(--ink2);margin-bottom:8px}

  .pgroup-head{display:flex;align-items:center;gap:12px;margin:clamp(26px,2.4vw,42px) 0 clamp(16px,1.4vw,24px)}
  .pgroup-head:first-of-type{margin-top:0}
  .pgroup-head h3{font-size:clamp(16px,1.1vw,19px);font-weight:600}
  .pgroup-head .cnt{font-size:clamp(11.5px,.75vw,12.5px);color:var(--ink3)}
  .pgroup-head::after{content:"";flex:1;height:1px;background:var(--line2)}

  @media (max-width:1180px){.pgrid{grid-template-columns:repeat(2,1fr)}}
  @media (max-width:760px){.pgrid{grid-template-columns:1fr}.fcount{display:none}}

/* ---------- 产品详情（product.html） ---------- */
.layout{display:grid;grid-template-columns:1fr 340px;gap:clamp(24px,3vw,54px);align-items:start}
  .main-col{min-width:0}

  /* 产品主视觉 */
  .hero-media{position:relative;border:1px solid var(--line);border-radius:10px;background:linear-gradient(145deg,var(--surface-32),var(--surface-55));height:clamp(200px,22vw,340px);display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:clamp(20px,2vw,32px)}
  .hero-media svg{width:clamp(76px,9vw,140px);height:clamp(76px,9vw,140px);color:var(--fg-34);position:relative;z-index:1}
  .hero-media::after{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(255,255,255,.55) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.55) 1px,transparent 1px);background-size:22px 22px;opacity:.55}
  .hero-media .ph{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:12px;color:var(--fg-56);z-index:2}

  .prose h2{font-size:clamp(18px,1.35vw,23px);font-weight:600;margin:clamp(26px,2.4vw,40px) 0 clamp(11px,1vw,16px);padding-bottom:9px;border-bottom:1px solid var(--line2);color:var(--navy-text)}
  .prose h2:first-child{margin-top:0}
  .prose p{font-size:clamp(13.5px,.9vw,15.5px);color:var(--ink2);line-height:1.85;margin-bottom:clamp(11px,1vw,16px)}
  .prose h3{font-size:clamp(14.5px,.96vw,16.5px);font-weight:600;margin:clamp(18px,1.6vw,26px) 0 clamp(8px,.7vw,12px)}

  .featlist{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.2vw,18px)}
  .featlist li{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:clamp(13px,1.2vw,18px)}
  .featlist .n{width:26px;height:26px;flex-shrink:0;border-radius:4px;background:var(--navy);color:var(--on-dark);font-size:11.5px;font-weight:600;display:flex;align-items:center;justify-content:center;font-family:ui-monospace,Menlo,monospace}
  .featlist b{display:block;font-size:clamp(13px,.88vw,15px);font-weight:600;margin-bottom:3px}
  .featlist p{font-size:clamp(12px,.8vw,13.5px);color:var(--ink2);line-height:1.7;margin:0}

  .scenes{display:flex;flex-wrap:wrap;gap:8px}
  .scenes span{font-size:clamp(12px,.8vw,13.5px);color:var(--ink2);background:var(--card);border:1px solid var(--line2);border-radius:4px;padding:8px 14px}

  /* 侧栏 */
  .side{position:sticky;top:clamp(80px,6vw,104px);display:flex;flex-direction:column;gap:clamp(14px,1.4vw,20px)}
  .sidebox{border:1px solid var(--line);border-radius:9px;background:var(--card);padding:clamp(16px,1.5vw,24px)}
  .sidebox .k{font-size:12px;color:var(--ink3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px}
  .sidebox dl{display:flex;flex-direction:column;gap:9px}
  .sidebox .row{display:flex;justify-content:space-between;gap:12px;font-size:clamp(12px,.8vw,13.5px);padding-bottom:9px;border-bottom:1px dashed var(--line)}
  .sidebox .row:last-child{border-bottom:none;padding-bottom:0}
  .sidebox .row dt{color:var(--ink3);flex-shrink:0}
  .sidebox .row dd{color:var(--ink);text-align:right;font-weight:500}
  .sidebox .badge{display:inline-block;font-size:10.5px;padding:2px 8px;border-radius:2px;background:var(--surface-43);color:var(--ink-57)}

  .dlbox{background:linear-gradient(150deg,var(--c-12),var(--c-45));color:var(--on-dark);border-radius:9px;padding:clamp(18px,1.7vw,26px);position:relative;overflow:hidden}
  .dlbox::before{content:"";position:absolute;right:-30px;top:-30px;width:130px;height:130px;border-radius:50%;border:1px solid rgba(127,193,238,.18)}
  .dlbox .t{font-size:clamp(14px,.96vw,16px);font-weight:600;margin-bottom:7px;position:relative}
  .dlbox .d{font-size:clamp(11.5px,.78vw,13px);color:rgba(255,255,255,.66);line-height:1.7;margin-bottom:15px;position:relative}
  .dlbox .btn{width:100%;position:relative}

  .related{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
  .rel{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:7px;padding:11px 12px;transition:.2s;background:var(--card)}
  .rel:hover{border-color:var(--blue-text);box-shadow:var(--sh)}
  .rel .ic{width:34px;height:34px;flex-shrink:0;border-radius:5px;background:linear-gradient(145deg,var(--surface-32),var(--surface-33));display:flex;align-items:center;justify-content:center;color:var(--fg-34)}
  .rel .ic svg{width:19px;height:19px}
  .rel b{display:block;font-size:12.5px;font-weight:500;line-height:1.4}
  .rel span{font-size:10.5px;color:var(--ink3)}

  .caseref{display:flex;flex-direction:column;gap:9px}
  .caseone{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--card);transition:.2s}
  .caseone:hover{border-color:var(--line2);box-shadow:var(--sh)}
  .caseone .bar{width:4px;flex-shrink:0;background:var(--c-3)}
  .caseone .c{padding:11px 14px;min-width:0}
  .caseone b{display:block;font-size:12.5px;font-weight:500;line-height:1.45;margin-bottom:2px}
  .caseone span{font-size:10.5px;color:var(--ink3)}

  @media (max-width:1080px){
    .layout{grid-template-columns:1fr}
    .side{position:static}
    .featlist{grid-template-columns:1fr}
  }
  @media (max-width:560px){
    .related{grid-template-columns:1fr}
  }
@media (max-width:880px){.nextgrid{grid-template-columns:1fr !important}}

/* ---------- 项目业绩（projects.html） ---------- */
.filterbar{position:sticky;top:clamp(64px,5vw,84px);z-index:60;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:clamp(10px,1vw,15px) 0}
  .frow{display:flex;align-items:center;gap:clamp(8px,1vw,16px);flex-wrap:wrap;padding:4px 0}
  .frow + .frow{border-top:1px dashed var(--line);margin-top:6px;padding-top:10px}
  .fl{font-size:clamp(11.5px,.74vw,12px);color:var(--ink3);letter-spacing:.04em;flex-shrink:0;width:4.5em}
  .chip{display:inline-flex;align-items:center;font-size:clamp(12px,.79vw,13.5px);color:var(--ink2);border:1px solid var(--line2);background:var(--card);border-radius:20px;padding:6px 13px;cursor:pointer;transition:.18s;min-height:36px;font-family:inherit}
  .chip:hover{border-color:var(--blue-text);color:var(--blue-text)}
  .chip.on{background:var(--navy);border-color:var(--navy-text);color:var(--on-dark);font-weight:500}
  .chip .c{font-size:10px;opacity:.65;margin-left:4px}

  .statline{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:clamp(18px,1.8vw,28px)}
  .statline .r{font-size:clamp(12.5px,.84vw,14px);color:var(--ink3)}
  .statline .r b{color:var(--navy-text);font-weight:600;font-size:clamp(15px,1.1vw,18px);margin:0 3px}
  .reset{font-size:clamp(11.5px,.78vw,13px);color:var(--blue-text);cursor:pointer;padding:7px 0;background:none;border:none;font-family:inherit}
  .reset:hover{text-decoration:underline}

  /* 业绩行：站名牌风格 */
  .plist{display:flex;flex-direction:column;gap:clamp(10px,1vw,14px)}
  .prow{display:flex;border:1px solid var(--line);border-radius:9px;background:var(--card);overflow:hidden;transition:.22s}
  .prow:hover{border-color:var(--line2);box-shadow:var(--sh);transform:translateY(-2px)}
  .prow .stripe{width:6px;flex-shrink:0;background:var(--blue)}
  /* ★ 属性选择器必须用 `~=`（按空白分词），不能用 `=`（精确等值）。
     模板输出的 data-m 是空格分隔的专业 code 列表，一个项目可能挂多个专业
     （如 data-m="signal comm"）。用等值匹配时：
       · 单词属性 "signal" 也匹配不上 "signal system" 这种旧写法；
       · 多专业项目更是永远匹配不到任何一条。
     这段规则此前写过中文名 + 逗号连接 + 等值匹配，结果是**一条都没生效过**，
     业绩页一直在用默认蓝。改 code 后与 Major.code 一一对应，不受中文改名影响。 */
  .prow[data-m~="comm"] .stripe{background:var(--c-37)}
  .prow[data-m~="signal"] .stripe{background:var(--c-38)}
  .prow[data-m~="mechanical"] .stripe{background:var(--c-42)}
  .prow[data-m~="power"] .stripe{background:var(--c-3)}
  .prow[data-m~="track"] .stripe{background:var(--c-4)}
  .prow[data-m~="vehicle"] .stripe{background:var(--c-41)}
  .prow .pb{padding:clamp(16px,1.5vw,24px) clamp(16px,1.6vw,26px);flex:1;min-width:0}
  .prow .top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:clamp(7px,.65vw,10px);flex-wrap:wrap}
  .prow h3{font-size:clamp(15px,1.05vw,18px);font-weight:600;line-height:1.45;margin-bottom:5px}
  .prow .tags{display:flex;gap:6px;flex-wrap:wrap}
  .prow .tags span{font-size:clamp(11.5px,.68vw,11.5px);padding:2px 8px;border-radius:2px;background:var(--bg3);color:var(--ink2)}
  .prow .tags span.t1{background:var(--surface-18);color:var(--ink-58)}
  .prow .yr{font-family:ui-monospace,Menlo,monospace;font-size:clamp(11.5px,.72vw,12px);color:var(--ink3);flex-shrink:0;padding-top:2px}
  .prow .scale{display:flex;flex-wrap:wrap;gap:6px 20px}
  .prow .scale span{font-size:clamp(11.5px,.78vw,13.5px);color:var(--ink2);padding-left:14px;position:relative;line-height:1.7}
  .prow .scale span::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--line2)}
  .prow .owner{font-size:clamp(11.5px,.72vw,12px);color:var(--ink3);margin-top:7px;padding-top:7px;border-top:1px dashed var(--line)}

  .empty{display:none;text-align:center;padding:clamp(40px,4vw,70px) 0;border:1px dashed var(--line2);border-radius:10px;background:var(--surface-19)}
  .empty b{display:block;font-size:16px;color:var(--ink2);margin-bottom:8px}
  .empty p{font-size:13px;color:var(--ink3);margin-bottom:16px}

  .note{border-left:3px solid var(--yellow-line);background:var(--surface-20);padding:clamp(12px,1.1vw,17px) clamp(14px,1.3vw,20px);font-size:clamp(11.5px,.8vw,13.5px);color:var(--ink-21);line-height:1.78;border-radius:0 5px 5px 0;margin-top:clamp(18px,1.8vw,26px)}

  @media (max-width:760px){
    .fl{width:100%}
    .frow{gap:6px}
    .prow .top{flex-direction:column;gap:4px}
  }

/* ---------- 关于神铁（about.html） ---------- */
.anchorbar{position:sticky;top:clamp(64px,5vw,84px);z-index:60;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
  .anchorbar .wrap{display:flex;gap:clamp(4px,.6vw,10px);overflow-x:auto;scrollbar-width:none}
  .anchorbar .wrap::-webkit-scrollbar{display:none}
  .anchorbar a{font-size:clamp(12.5px,.85vw,14px);color:var(--ink2);padding:clamp(11px,.9vw,15px) clamp(11px,1vw,17px);white-space:nowrap;border-bottom:2px solid transparent;transition:.18s;min-height:44px;display:flex;align-items:center}
  .anchorbar a:hover{color:var(--blue-text);border-bottom-color:var(--blue-text)}

  .intro{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(24px,3vw,56px);align-items:start}
  .intro .prose p{font-size:clamp(13.5px,.9vw,15.5px);color:var(--ink2);line-height:1.95;margin-bottom:clamp(12px,1.1vw,17px)}
  .intro .prose p:first-child{font-size:clamp(14.5px,.96vw,16.5px);color:var(--ink)}
  .intro .prose b{color:var(--ink);font-weight:600}
  .kpis{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,1vw,14px)}
  .kpi{border:1px solid var(--line);border-radius:9px;padding:clamp(14px,1.3vw,20px);background:var(--card)}
  .kpi b{display:block;font-size:clamp(22px,2vw,32px);font-weight:600;color:var(--navy-text);letter-spacing:-.6px;line-height:1.15}
  .kpi b i{font-style:normal;font-size:clamp(12px,.85vw,15px);color:var(--yellow-text);margin-left:2px}
  .kpi span{display:block;font-size:clamp(11.5px,.75vw,12.5px);color:var(--ink3);margin-top:4px;line-height:1.55}

  /* 时间轴 */
  .timeline{position:relative;padding-left:clamp(24px,2.4vw,40px)}
  .timeline::before{content:"";position:absolute;left:clamp(5px,.6vw,9px);top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--blue),var(--line2))}
  .titem{position:relative;padding-bottom:clamp(20px,2vw,32px)}
  .titem:last-child{padding-bottom:0}
  .titem::before{content:"";position:absolute;left:calc(clamp(24px,2.4vw,40px) * -1 + clamp(0px,.15vw,2px));top:6px;width:11px;height:11px;border-radius:50%;border:3px solid var(--blue-line);background:var(--card);z-index:1}
  .titem .ty{font-family:ui-monospace,Menlo,monospace;font-size:clamp(12px,.82vw,14px);color:var(--blue-text);font-weight:600;letter-spacing:.04em;margin-bottom:4px}
  .titem b{display:block;font-size:clamp(14px,.95vw,16px);font-weight:600;margin-bottom:4px}
  .titem p{font-size:clamp(12.5px,.83vw,14px);color:var(--ink2);line-height:1.72;margin:0}

  /* 资质 */
  .qualgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1vw,16px)}
  .qc{border:1px solid var(--line);border-radius:8px;background:var(--card);padding:clamp(14px,1.3vw,20px);transition:.2s}
  .qc:hover{border-color:var(--blue-text);box-shadow:var(--sh)}
  .qc .qn{font-size:clamp(13px,.88vw,15px);font-weight:600;margin-bottom:5px;line-height:1.45}
  .qc .ql{font-size:clamp(11.5px,.74vw,12.5px);color:var(--ink3);line-height:1.6;margin-bottom:8px}
  .qc .qs{display:inline-block;font-size:10.5px;padding:2px 8px;border-radius:2px;background:var(--surface-43);color:var(--ink-57)}

  /* 组织与团队 */
  .org{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1vw,16px)}
  .dept{border:1px solid var(--line);border-radius:8px;background:var(--card);padding:clamp(14px,1.3vw,20px)}
  .dept .dn{font-size:clamp(13px,.88vw,15px);font-weight:600;margin-bottom:6px}
  .dept .dd{font-size:clamp(11.5px,.76vw,13px);color:var(--ink2);line-height:1.7}
  .dept .dc{font-size:clamp(11.5px,.72vw,11.5px);color:var(--ink3);margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}

  /* 城市 */
  .cities{display:flex;flex-wrap:wrap;gap:clamp(8px,.8vw,12px)}
  .city{display:flex;align-items:center;gap:9px;border:1px solid var(--line2);border-radius:6px;padding:clamp(9px,.8vw,13px) clamp(12px,1.1vw,18px);background:var(--card);font-size:clamp(12.5px,.84vw,14px)}
  .city .dot{width:7px;height:7px;border-radius:50%;background:var(--blue);flex-shrink:0}
  .city.main{border-color:var(--navy-text);background:var(--navy);color:var(--on-dark)}
  .city.main .dot{background:var(--yellow)}
  .city span{font-size:clamp(11.5px,.72vw,11.5px);opacity:.6}

  /* 招聘 */
  .jobs{display:flex;flex-direction:column;gap:clamp(9px,.85vw,13px)}
  .job{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:8px;background:var(--card);padding:clamp(13px,1.2vw,18px) clamp(15px,1.4vw,22px);transition:.2s;flex-wrap:wrap}
  .job:hover{border-color:var(--blue-text);box-shadow:var(--sh)}
  .job .jl b{display:block;font-size:clamp(13.5px,.9vw,15.5px);font-weight:600;margin-bottom:3px}
  .job .jl .jm{display:flex;gap:12px;flex-wrap:wrap}
  .job .jl .jm span{font-size:clamp(11.5px,.74vw,12.5px);color:var(--ink3)}
  .job .js{display:flex;align-items:center;gap:10px}
  .job .js .st{font-size:10.5px;padding:2px 8px;border-radius:2px;background:var(--surface-43);color:var(--ink-57);white-space:nowrap}
  .job .js .st.urg{background:var(--surface-35);color:var(--ink-36)}

  @media (max-width:1080px){
    .intro{grid-template-columns:1fr}
    .qualgrid{grid-template-columns:repeat(2,1fr)}
    .org{grid-template-columns:repeat(2,1fr)}
  }
  @media (max-width:640px){
    .kpis{grid-template-columns:1fr}
    .qualgrid{grid-template-columns:1fr}
    .org{grid-template-columns:1fr}
  }

/* ---------- 联系我们（contact.html） ---------- */
.entries{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,1.6vw,26px)}
  .entry{position:relative;border:1px solid var(--line);border-radius:10px;background:var(--card);padding:clamp(22px,2vw,34px);transition:.25s;overflow:hidden;display:flex;flex-direction:column}
  .entry:hover{border-color:var(--line2);box-shadow:var(--sh-lg);transform:translateY(-4px)}
  .entry .bar{position:absolute;left:0;top:0;width:100%;height:3px;background:var(--blue)}
  .entry:nth-child(2) .bar{background:var(--yellow)}
  .entry:nth-child(3) .bar{background:var(--c-42)}
  .entry:nth-child(4) .bar{background:var(--c-41)}
  .entry .ic{width:clamp(40px,3vw,50px);height:clamp(40px,3vw,50px);border-radius:8px;background:var(--bg3);display:flex;align-items:center;justify-content:center;color:var(--blue-text);margin-bottom:clamp(14px,1.3vw,20px)}
  .entry:nth-child(2) .ic{color:var(--fg-31)}
  .entry:nth-child(3) .ic{color:var(--ink-59)}
  .entry:nth-child(4) .ic{color:var(--ink-60)}
  .entry .ic svg{width:55%;height:55%}
  .entry h3{font-size:clamp(16px,1.1vw,19px);font-weight:600;margin-bottom:clamp(7px,.65vw,11px)}
  .entry .d{font-size:clamp(12.5px,.83vw,14px);color:var(--ink2);line-height:1.78;margin-bottom:clamp(14px,1.3vw,20px);flex:1}
  .entry .meta{display:flex;flex-direction:column;gap:6px;padding-top:clamp(12px,1.1vw,17px);border-top:1px dashed var(--line);margin-bottom:clamp(14px,1.3vw,20px)}
  .entry .meta .mr{display:flex;gap:10px;font-size:clamp(11.5px,.78vw,13px);line-height:1.6}
  .entry .meta .mr dt{color:var(--ink3);flex-shrink:0;width:4.2em}
  .entry .meta .mr dd{color:var(--ink2)}
  .entry .go{align-self:flex-start}

  .addrbox{display:grid;grid-template-columns:1fr 380px;gap:clamp(20px,2.6vw,44px);align-items:stretch}
  .addrinfo{display:flex;flex-direction:column;gap:clamp(14px,1.4vw,20px)}
  .ai{display:flex;gap:14px;align-items:flex-start}
  .ai .ii{width:34px;height:34px;flex-shrink:0;border-radius:6px;background:var(--bg3);display:flex;align-items:center;justify-content:center;color:var(--blue-text)}
  .ai .ii svg{width:18px;height:18px}
  .ai .it b{display:block;font-size:clamp(12px,.8vw,13px);color:var(--ink3);font-weight:400;margin-bottom:2px}
  .ai .it span{font-size:clamp(13.5px,.9vw,15.5px);color:var(--ink);line-height:1.6}

  .mapbox{position:relative;border:1px solid var(--line);border-radius:10px;background:linear-gradient(145deg,var(--surface-32),var(--surface-33));display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:clamp(200px,20vw,300px)}
  .mapbox::after{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(255,255,255,.6) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.6) 1px,transparent 1px);background-size:26px 26px}
  .mapbox .pin{position:relative;z-index:1;text-align:center;color:var(--fg-61)}
  .mapbox .pin svg{width:38px;height:38px;color:var(--red-text);margin:0 auto 8px}
  .mapbox .pin b{display:block;font-size:13px;color:var(--fg-54);margin-bottom:3px}
  .mapbox .pin span{font-size:12px}

  .faq{display:flex;flex-direction:column;gap:clamp(8px,.8vw,12px)}
  .q{border:1px solid var(--line);border-radius:8px;background:var(--card);overflow:hidden}
  .q .qh{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:clamp(13px,1.2vw,18px) clamp(15px,1.4vw,22px);cursor:pointer;font-size:clamp(13px,.9vw,15px);font-weight:500}
  .q .qh:hover{background:var(--surface-17)}
  .q .qh .ar{color:var(--ink3);transition:.2s;flex-shrink:0}
  .q.open .qh .ar{transform:rotate(180deg)}
  .q .qb{display:none;padding:0 clamp(15px,1.4vw,22px) clamp(13px,1.2vw,18px);font-size:clamp(12.5px,.83vw,14px);color:var(--ink2);line-height:1.8}
  .q.open .qb{display:block}

  @media (max-width:1080px){
    .entries{grid-template-columns:1fr}
    .addrbox{grid-template-columns:1fr}
  }

/* ---------- 资料索取（request.html） ---------- */
.layout{display:grid;grid-template-columns:1fr 330px;gap:clamp(24px,3vw,52px);align-items:start}
  .main-col{min-width:0}

  .stepline{display:flex;align-items:center;gap:0;margin-bottom:clamp(22px,2.2vw,34px);flex-wrap:wrap}
  .sp{display:flex;align-items:center;gap:9px;font-size:clamp(11.5px,.78vw,13px);color:var(--ink3)}
  .sp .sn{width:24px;height:24px;border-radius:50%;border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;font-family:ui-monospace,Menlo,monospace;flex-shrink:0}
  .sp.act{color:var(--navy-text);font-weight:500}
  .sp.act .sn{background:var(--navy);border-color:var(--navy-text);color:var(--on-dark)}
  .sp::after{content:"";width:clamp(20px,3vw,54px);height:1px;background:var(--line2);margin:0 clamp(8px,.9vw,14px)}
  .sp:last-child::after{display:none}

  .aside{position:sticky;top:clamp(80px,6vw,104px);display:flex;flex-direction:column;gap:clamp(14px,1.4vw,20px)}
  .sidebox{border:1px solid var(--line);border-radius:9px;background:var(--card);padding:clamp(16px,1.5vw,24px)}
  .sidebox .k{font-size:12px;color:var(--ink3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:11px}
  .sidebox ul{list-style:none;display:flex;flex-direction:column;gap:10px}
  .sidebox ul li{font-size:clamp(12px,.8vw,13.5px);color:var(--ink2);padding-left:17px;position:relative;line-height:1.68}
  .sidebox ul li::before{content:"✓";position:absolute;left:0;top:0;color:var(--green-text);font-size:11px}
  .sidebox ul li b{color:var(--ink);font-weight:600}

  .promise{background:linear-gradient(150deg,var(--c-12),var(--c-45));color:var(--on-dark);border-radius:9px;padding:clamp(17px,1.6vw,24px);position:relative;overflow:hidden}
  .promise::before{content:"";position:absolute;right:-36px;top:-36px;width:140px;height:140px;border-radius:50%;border:1px solid rgba(127,193,238,.2)}
  .promise .pt{font-size:clamp(13.5px,.9vw,15.5px);font-weight:600;margin-bottom:8px;position:relative}
  .promise .pd{font-size:clamp(11.5px,.76vw,12.5px);color:rgba(255,255,255,.68);line-height:1.75;position:relative}
  .promise .pd b{color:var(--yellow-text);font-weight:600}
  .promise .pbadge{display:inline-block;margin-top:12px;font-size:12px;padding:3px 10px;border-radius:20px;background:rgba(232,163,23,.16);color:var(--yellow-text);position:relative}

  .warnbox{border-left:3px solid var(--red);background:var(--surface-46);padding:clamp(12px,1.1vw,17px) clamp(14px,1.3vw,20px);border-radius:0 5px 5px 0;font-size:clamp(11.5px,.8vw,13.5px);color:var(--ink-62);line-height:1.78}
  .warnbox b{color:var(--ink-47)}

  .success{display:none;text-align:center;padding:clamp(40px,4vw,70px) clamp(20px,3vw,50px);border:1px solid var(--line-63);background:var(--surface-64);border-radius:10px}
  .success .ic{width:56px;height:56px;border-radius:50%;background:var(--surface-65);color:var(--green-text);display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
  .success .ic svg{width:28px;height:28px}
  .success h3{font-size:clamp(17px,1.2vw,21px);font-weight:600;margin-bottom:9px;color:var(--ink-50)}
  .success p{font-size:clamp(12.5px,.84vw,14px);color:var(--ink-51);line-height:1.8;max-width:34em;margin:0 auto 8px}
  .success .mini{font-size:clamp(11.5px,.74vw,12.5px);color:var(--fg-66);margin-top:14px}

  @media (max-width:1080px){
    .layout{grid-template-columns:1fr}
    .aside{position:static}
  }

/* ---------- 供应商登记（supplier.html） ---------- */
.layout{display:grid;grid-template-columns:1fr 330px;gap:clamp(24px,3vw,52px);align-items:start}
  .main-col{min-width:0}

  .aside{position:sticky;top:clamp(80px,6vw,104px);display:flex;flex-direction:column;gap:clamp(14px,1.4vw,20px)}
  .sidebox{border:1px solid var(--line);border-radius:9px;background:var(--card);padding:clamp(16px,1.5vw,24px)}
  .sidebox .k{font-size:12px;color:var(--ink3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:11px}
  .sidebox ul{list-style:none;display:flex;flex-direction:column;gap:10px}
  .sidebox ul li{font-size:clamp(12px,.8vw,13.5px);color:var(--ink2);padding-left:17px;position:relative;line-height:1.68}
  .sidebox ul li::before{content:"✓";position:absolute;left:0;top:0;color:var(--green-text);font-size:11px}
  .sidebox ul li.no::before{content:"×";color:var(--red-text)}
  .sidebox ul li b{color:var(--ink);font-weight:600}

  .flowbox{background:linear-gradient(150deg,var(--c-12),var(--c-45));color:var(--on-dark);border-radius:9px;padding:clamp(17px,1.6vw,24px);position:relative;overflow:hidden}
  .flowbox::before{content:"";position:absolute;right:-36px;top:-36px;width:140px;height:140px;border-radius:50%;border:1px solid rgba(127,193,238,.2)}
  .flowbox .ft{font-size:clamp(13.5px,.9vw,15.5px);font-weight:600;margin-bottom:12px;position:relative}
  .flowbox ol{list-style:none;display:flex;flex-direction:column;gap:11px;position:relative;counter-reset:f}
  .flowbox ol li{font-size:clamp(11.5px,.76vw,12.5px);color:rgba(255,255,255,.72);line-height:1.65;padding-left:26px;position:relative;counter-increment:f}
  .flowbox ol li::before{content:counter(f);position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;background:rgba(127,193,238,.18);color:var(--fg-28);font-size:10px;display:flex;align-items:center;justify-content:center;font-weight:600}
  .flowbox ol li b{color:var(--on-dark);font-weight:500}

  .warnbox{border-left:3px solid var(--yellow-line);background:var(--surface-20);padding:clamp(12px,1.1vw,17px) clamp(14px,1.3vw,20px);border-radius:0 5px 5px 0;font-size:clamp(11.5px,.8vw,13.5px);color:var(--ink-21);line-height:1.78}
  .warnbox b{color:var(--ink-44)}

  .success{display:none;text-align:center;padding:clamp(40px,4vw,70px) clamp(20px,3vw,50px);border:1px solid var(--line-63);background:var(--surface-64);border-radius:10px}
  .success .ic{width:56px;height:56px;border-radius:50%;background:var(--surface-65);color:var(--green-text);display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
  .success .ic svg{width:28px;height:28px}
  .success h3{font-size:clamp(17px,1.2vw,21px);font-weight:600;margin-bottom:9px;color:var(--ink-50)}
  .success p{font-size:clamp(12.5px,.84vw,14px);color:var(--ink-51);line-height:1.8;max-width:36em;margin:0 auto 8px}
  .success .mini{font-size:clamp(11.5px,.74vw,12.5px);color:var(--fg-66);margin-top:14px}

  .catgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .catgrid label{display:flex;align-items:center;gap:8px;font-size:clamp(12px,.8vw,13.5px);border:1px solid var(--line2);border-radius:5px;padding:10px 13px;cursor:pointer;transition:.18s;background:var(--card);min-height:42px}
  .catgrid label:hover{border-color:var(--blue-text);background:var(--surface-17)}
  .catgrid label:has(input:checked){border-color:var(--blue-text);background:var(--surface-18)}
  .catgrid label:has(input:checked) span{color:var(--navy-text);font-weight:500}

  @media (max-width:1080px){
    .layout{grid-template-columns:1fr}
    .aside{position:static}
  }
  @media (max-width:560px){.catgrid{grid-template-columns:repeat(2,1fr)}}

/* ---------- 采购公告（notice.html） ---------- */
.status{display:flex;align-items:center;gap:14px;border:1px solid var(--line-67);background:var(--surface-68);border-radius:10px;padding:clamp(16px,1.5vw,24px);margin-bottom:clamp(20px,2vw,32px)}
  .status .dotwrap{width:42px;height:42px;flex-shrink:0;border-radius:50%;background:var(--surface-69);display:flex;align-items:center;justify-content:center}
  .status .dot{width:12px;height:12px;border-radius:50%;background:var(--c-70);box-shadow:0 0 0 5px rgba(217,154,43,.18)}
  .status .st{min-width:0}
  .status .st b{display:block;font-size:clamp(14px,.95vw,16px);font-weight:600;color:var(--ink-71);margin-bottom:3px}
  .status .st span{font-size:clamp(12px,.8vw,13.5px);color:var(--ink-72);line-height:1.65}
  .status .tag{margin-left:auto;flex-shrink:0;font-size:11px;padding:5px 12px;border-radius:20px;background:var(--surface-69);color:var(--ink-36);font-weight:500;white-space:nowrap}

  .demo{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}
  .demo .bar{display:flex;align-items:center;gap:10px;background:var(--bg3);border-bottom:1px solid var(--line);padding:10px 16px}
  .demo .bar .dots{display:flex;gap:5px}
  .demo .bar .dots i{width:9px;height:9px;border-radius:50%;background:var(--line2);display:block}
  .demo .bar .url{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--ink3);background:var(--card);border:1px solid var(--line);border-radius:4px;padding:3px 10px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .demo .inner{padding:clamp(18px,1.8vw,30px)}

  .nlist{display:flex;flex-direction:column;gap:0}
  .nrow{display:flex;align-items:flex-start;gap:14px;padding:clamp(13px,1.2vw,19px) 0;border-bottom:1px dashed var(--line)}
  .nrow:last-child{border-bottom:none}
  .nrow .nt{flex-shrink:0;font-size:10.5px;padding:3px 9px;border-radius:2px;background:var(--surface-18);color:var(--ink-58);white-space:nowrap;margin-top:2px}
  .nrow .nt.bid{background:var(--surface-35);color:var(--ink-36)}
  .nrow .nt.win{background:var(--surface-43);color:var(--ink-57)}
  .nrow .nt.col{background:var(--surface-73);color:var(--ink-74)}
  .nrow .nc{min-width:0;flex:1}
  .nrow .nc b{display:block;font-size:clamp(13px,.9vw,15px);font-weight:500;line-height:1.5;margin-bottom:4px}
  .nrow .nc span{font-size:clamp(11.5px,.74vw,12.5px);color:var(--ink3)}
  .nrow .nd{flex-shrink:0;font-family:ui-monospace,Menlo,monospace;font-size:clamp(11.5px,.72vw,12px);color:var(--ink3);padding-top:3px}

  .cfg{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.2vw,18px);margin-top:clamp(20px,2vw,30px)}
  .cfgbox{border:1px solid var(--line);border-radius:9px;background:var(--card);padding:clamp(15px,1.4vw,22px)}
  .cfgbox .ct{font-size:clamp(12.5px,.84vw,14px);font-weight:600;margin-bottom:9px;display:flex;align-items:center;gap:8px}
  .cfgbox .ct .badge{font-size:10px;padding:2px 7px;border-radius:2px;background:var(--surface-43);color:var(--ink-57);font-weight:500}
  .cfgbox .ct .badge.off{background:var(--surface-75);color:var(--fg-76)}
  .cfgbox ul{list-style:none;display:flex;flex-direction:column;gap:7px}
  .cfgbox ul li{font-size:clamp(11.5px,.78vw,13px);color:var(--ink2);padding-left:14px;position:relative;line-height:1.68}
  .cfgbox ul li::before{content:"·";position:absolute;left:2px;top:-1px;color:var(--ink3);font-weight:700}

  .fieldrow{display:flex;justify-content:space-between;gap:12px;font-size:clamp(11.5px,.78vw,13px);padding:8px 0;border-bottom:1px dashed var(--line)}
  .fieldrow:last-child{border-bottom:none}
  .fieldrow dt{color:var(--ink3)}
  .fieldrow dd{color:var(--ink2);text-align:right}

  @media (max-width:880px){
    .cfg{grid-template-columns:1fr}
    .status{flex-wrap:wrap}
    .status .tag{margin-left:0}
  }

/* ---------- 404（404.html） ---------- */
.e404{position:relative;min-height:calc(100vh - 152px);display:flex;align-items:center;background:linear-gradient(155deg,var(--c-27),var(--c-12) 50%,var(--c-13));color:var(--on-dark);overflow:hidden}
  .e404 .tunnel{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
  .e404 .inner{position:relative;z-index:2;width:100%;padding-top:clamp(60px,7vw,110px);padding-bottom:clamp(60px,7vw,110px);text-align:center}
  .code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:clamp(72px,13vw,168px);font-weight:700;line-height:1;letter-spacing:-.04em;
    background:linear-gradient(180deg,var(--card) 20%,rgba(127,193,238,.42) 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:clamp(6px,1vw,14px)}
  .sig{display:inline-flex;align-items:center;gap:12px;font-size:clamp(11.5px,.78vw,13px);color:var(--fg-28);letter-spacing:.14em;border:1px solid rgba(147,200,234,.26);background:rgba(147,200,234,.08);padding:7px 16px;border-radius:22px;margin-bottom:clamp(20px,2.2vw,32px)}
  .sig .lamp{width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px rgba(200,69,47,.2)}
  .e404 h1{font-size:clamp(20px,2.1vw,32px);font-weight:600;letter-spacing:-.4px;line-height:1.4;margin-bottom:clamp(11px,1.1vw,17px)}
  .e404 p{font-size:clamp(13px,.9vw,15.5px);color:rgba(255,255,255,.62);line-height:1.8;max-width:34em;margin:0 auto clamp(26px,2.6vw,40px)}
  .e404 .acts{display:flex;gap:clamp(10px,1vw,16px);justify-content:center;flex-wrap:wrap;margin-bottom:clamp(34px,3.4vw,52px)}
  .e404 .acts .btn-o{border-color:rgba(255,255,255,.28);color:var(--on-dark);background:transparent}
  .e404 .acts .btn-o:hover{border-color:var(--card-line);background:rgba(255,255,255,.09);color:var(--on-dark)}

  .quick{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(9px,.9vw,14px);max-width:760px;margin:0 auto;text-align:left}
  .quick a{display:block;border:1px solid rgba(255,255,255,.14);border-radius:7px;padding:clamp(11px,1vw,15px) clamp(13px,1.1vw,18px);transition:.2s;background:rgba(255,255,255,.03)}
  .quick a:hover{border-color:rgba(147,200,234,.5);background:rgba(147,200,234,.09);transform:translateY(-2px)}
  .quick a b{display:block;font-size:clamp(12.5px,.84vw,14px);font-weight:500;margin-bottom:2px}
  .quick a span{display:block;font-size:clamp(11.5px,.7vw,11.5px);color:rgba(255,255,255,.44);line-height:1.5}

  @media (max-width:760px){.quick{grid-template-columns:repeat(2,1fr)}}
