/* ============================================================
   真工厂 · 全站设计系统 v1.0（桥接层）
   ------------------------------------------------------------
   用法：在原 static/style.css 之后加载本文件。
   原理：重新定义原站通用类名（.panel/.card/.btn/.tag/.tbl…），
        使 34 个模板无需修改任何 HTML 即获得统一现代视觉。
   设计原则：同家族色 / 4pt 网格 / 单一强调 / 中文正字距
   ============================================================ */

/* ---------- 1. Tokens ---------- */
:root{
  /* 品牌绿：保留 #02DBA3，补齐全阶 */
  --g-50:#E9FBF5;  --g-100:#C6F4E6;  --g-200:#92EBD3;  --g-300:#5FE0BF;
  --g-400:#21D1AE; --g-500:#02DBA3;  --g-600:#00B487;  --g-700:#008A6B;
  --g-800:#046A55; --g-900:#06493D;

  /* 墨绿中性族：替代原 slate 蓝灰，与品牌同家族 */
  --ink-900:#07130F; --ink-800:#0A1C16; --ink-700:#0E2620; --ink-600:#14332B;
  --ink-500:#1C4438;

  /* 浅底层次 */
  --paper:#FFFFFF; --paper-2:#F7F9F8; --paper-3:#EFF3F1; --paper-4:#E5EBE8;

  /* 文字（浅底） */
  --t1:#0E1F19; --t2:#46594F; --t3:#748A80; --t4:#9DAFA7;

  /* 文字（深底） */
  --d1:#EDF6F2; --d2:#A6C6B9; --d3:#6E9485;

  /* 线 */
  --line:#E4EBE8; --line-2:#D3DDD9;
  --line-d:rgba(255,255,255,.10); --line-d2:rgba(255,255,255,.16);

  /* 语义 */
  --ok:#0E9F6E; --ok-bg:#E7F7F0;
  --warn:#C2760A; --warn-bg:#FDF3E3;
  --err:#C0392B;  --err-bg:#FDECEA;
  --info:#2B7FB8; --info-bg:#EAF3FA;

  /* 字号：11 档，消灭半像素碎档 */
  --fs-11:11px; --fs-12:12px; --fs-13:13px; --fs-14:14px; --fs-15:15px;
  --fs-16:16px; --fs-18:18px; --fs-20:20px; --fs-24:24px; --fs-30:30px; --fs-38:38px;

  /* 间距：4pt 网格 */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:24px;
  --s-7:28px; --s-8:32px; --s-10:40px; --s-12:48px; --s-16:64px; --s-20:80px;

  /* 圆角 */
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:22px; --r-pill:999px;

  /* 阴影：轻多层，避免廉价投影 */
  --sh-1:0 1px 2px rgba(7,19,15,.04),0 1px 3px rgba(7,19,15,.03);
  --sh-2:0 2px 4px rgba(7,19,15,.04),0 4px 12px rgba(7,19,15,.05);
  --sh-3:0 10px 28px -8px rgba(7,19,15,.12),0 2px 8px rgba(7,19,15,.04);

  /* 动效 */
  --e:cubic-bezier(.4,0,.2,1);
  --e-out:cubic-bezier(.16,1,.3,1);
  --t-fast:150ms; --t:220ms; --t-slow:380ms;

  --wrap:1200px;
  --hdr-h:68px;
  --font:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

/* ---------- 2. 全局基线 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:var(--font);
  font-size:var(--fs-14);
  line-height:1.6;
  color:var(--t1);
  background:var(--paper-2);
  /* 中文正文一律正字距；负字距会让方块字笔画粘连 */
  letter-spacing:0;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4,h5{letter-spacing:0;font-weight:700;line-height:1.3;margin:0}
p{margin:0}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
::selection{background:var(--g-200);color:var(--ink-900)}

/* 统一焦点环（可访问性） */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--g-500);outline-offset:2px;border-radius:4px;
}

/* 图标基线 */
.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ic-sm{width:15px;height:15px}
.ic-lg{width:22px;height:22px}

/* ---------- 3. 容器 ---------- */
.hpin{max-width:var(--wrap);margin:0 auto;padding:0 var(--s-6);width:100%}
@media (max-width:640px){.hpin{padding:0 var(--s-4)}}

/* ---------- 4. 顶栏 ---------- */
.hp-top{
  background:var(--ink-900);color:var(--d2);
  font-size:var(--fs-12);height:36px;border:0;
}
.hp-top .hpin{display:flex;align-items:center;justify-content:space-between;height:36px;gap:var(--s-4)}
.hp-top .hpl{color:var(--d3);font-size:var(--fs-12);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hp-top .hp-langs{margin:0}
.hp-top .hp-langs>button{
  background:transparent;border:0;color:var(--d2);font-size:var(--fs-12);
  cursor:pointer;padding:4px 6px;border-radius:var(--r-sm);
  display:inline-flex;align-items:center;gap:5px;transition:background var(--t-fast) var(--e);
}
.hp-top .hp-langs>button:hover{background:rgba(255,255,255,.07);color:var(--d1)}
/* 账号入口：提亮到 10.28:1 对比度，并加图标区分层级 */
.hp-top .tb-user{
  color:var(--d1);font-size:var(--fs-13);font-weight:500;
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 8px;border-radius:var(--r-sm);transition:color var(--t-fast) var(--e);
}
.hp-top .tb-user:hover{color:#fff}
.hp-top .tb-reg{
  background:var(--g-500);color:#04241C;font-weight:700;font-size:var(--fs-12);
  padding:5px 14px;border-radius:var(--r-pill);margin-left:var(--s-2);
  transition:transform var(--t-fast) var(--e),box-shadow var(--t-fast) var(--e);
}
.hp-top .tb-reg:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(2,219,163,.28)}
.hp-top .belln{
  background:var(--g-500);color:#04241C;border-radius:var(--r-pill);
  padding:0 5px;font-size:10px;font-weight:800;margin-left:2px;
}
/* 通知铃铛：纯图标，padding 收成正方形；有未读时自身高亮 */
.hp-top .tb-bell{
  padding:5px;border-radius:var(--r-sm);position:relative;
  transition:background var(--t-fast) var(--e),color var(--t-fast) var(--e);
}
.hp-top .tb-bell:hover{background:rgba(255,255,255,.08);color:#fff}
.hp-top .tb-bell:has(.belln){color:#fff}

/* 多语言下拉 */
.hp-langs{position:relative;display:inline-flex}
.hp-langmenu{
  position:absolute;right:0;top:calc(100% + 6px);z-index:60;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--sh-3);padding:var(--s-2);min-width:150px;
  display:none;flex-direction:column;
}
.hp-langs:hover .hp-langmenu,.hp-langs:focus-within .hp-langmenu{display:flex}
.hp-langmenu a{
  padding:7px 10px;border-radius:var(--r-sm);font-size:var(--fs-13);
  color:var(--t2);display:flex;justify-content:space-between;gap:var(--s-3);
  transition:background var(--t-fast) var(--e);
}
.hp-langmenu a:hover{background:var(--g-50);color:var(--g-800)}
.hp-langmenu a.on{color:var(--g-700);font-weight:600;background:var(--g-50)}
.hp-langmenu a span{color:var(--t4);font-size:var(--fs-11);font-weight:600}

/* ---------- 5. 主头部 ---------- */
.hp-head{
  background:var(--paper);border-bottom:1px solid var(--line);
  box-shadow:none;position:sticky;top:0;z-index:50;
}
.hp-head .hpin{
  display:flex;align-items:center;gap:var(--s-6);height:var(--hdr-h);
}
.hp-logo{
  font-size:var(--fs-20);font-weight:800;color:var(--t1);
  letter-spacing:-.2px;display:flex;flex-direction:column;line-height:1.1;flex:none;
}
.hp-logo i{
  font-style:normal;font-size:9px;font-weight:600;letter-spacing:2.4px;
  color:var(--t4);margin-top:1px;
}
/* 「全部行业」入口：原站既有功能（指向 act=atlas），保留显示。
   实测 1440 下 logo 131 + 本按钮 116 + 搜索 719 + CTA 114 < 1200，不溢出 */
.hp-catbtn{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;
  height:40px;padding:0 16px;border-radius:var(--r-pill);
  background:var(--paper);border:1px solid var(--line-2);
  color:var(--t2);font-size:var(--fs-14);font-weight:600;
  cursor:pointer;font-family:inherit;
  transition:all var(--t-fast) var(--e);
}
.hp-catbtn:hover{border-color:var(--g-400);color:var(--g-800);background:var(--g-50)}
.hp-catbtn .ic{width:16px;height:16px}
.hp-searcharea{flex:1;min-width:0;display:flex;justify-content:center}
.hp-search{
  display:flex;align-items:center;gap:0;width:100%;max-width:380px;
  background:var(--paper-2);border:1px solid var(--line-2);
  border-radius:var(--r-pill);padding:3px 3px 3px 0;height:40px;
  transition:border-color var(--t-fast) var(--e),box-shadow var(--t-fast) var(--e);
}
.hp-search:focus-within{
  border-color:var(--g-400);box-shadow:0 0 0 3px rgba(2,219,163,.14);background:var(--paper);
}
.hp-search select{
  border:0;background:transparent;padding:0 var(--s-2) 0 var(--s-4);
  font-size:var(--fs-13);color:var(--t2);cursor:pointer;height:34px;flex:none;
  border-right:1px solid var(--line);margin-right:var(--s-2);max-width:96px;
}
.hp-search select:focus{outline:none}
.hp-search input{
  border:0;background:transparent;flex:1;min-width:0;height:34px;
  font-size:var(--fs-14);padding:0;
}
.hp-search input::placeholder{color:var(--t4)}
.hp-search input:focus{outline:none}
.hp-search button{
  flex:none;height:34px;padding:0 var(--s-5);border:0;border-radius:var(--r-pill);
  background:var(--g-500);color:#04241C;font-weight:700;font-size:var(--fs-13);
  cursor:pointer;transition:background var(--t-fast) var(--e);
  display:inline-flex;align-items:center;gap:5px;
}
.hp-search button:hover{background:var(--g-400)}
/* 热门词行：与搜索框重复且信息价值低，收起 */
.hp-hot{display:none}
.hp-headact{display:flex;align-items:center;gap:var(--s-3);flex:none}
.hp-btnghost{
  border:1px solid var(--line-2);background:var(--paper);color:var(--t2);
  border-radius:var(--r-pill);padding:8px var(--s-4);font-size:var(--fs-13);font-weight:500;
  transition:all var(--t-fast) var(--e);
}
.hp-btnghost:hover{border-color:var(--g-400);color:var(--g-700);background:var(--g-50)}
.hp-btncta{
  background:var(--ink-900);color:#fff;border-radius:var(--r-pill);
  padding:9px var(--s-5);font-size:var(--fs-13);font-weight:700;
  transition:transform var(--t-fast) var(--e),box-shadow var(--t-fast) var(--e);
  display:inline-flex;align-items:center;gap:6px;
}
.hp-btncta:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(7,19,15,.22)}

/* ---------- 6. 频道导航 ---------- */
.hp-nav{background:var(--paper);border-bottom:1px solid var(--line)}
.hp-nav .hpin{display:flex;align-items:center;gap:2px;height:46px;overflow-x:auto;scrollbar-width:none}
.hp-nav .hpin::-webkit-scrollbar{display:none}
.hp-nav a{
  position:relative;padding:7px var(--s-3);border-radius:var(--r-sm);
  font-size:var(--fs-14);font-weight:500;color:var(--t2);white-space:nowrap;
  transition:color var(--t-fast) var(--e),background var(--t-fast) var(--e);
}
.hp-nav a:hover{color:var(--g-800);background:var(--g-50)}
.hp-nav a.on{color:var(--g-800);font-weight:700}
.hp-nav a.on::after{
  content:"";position:absolute;left:var(--s-3);right:var(--s-3);bottom:-1px;
  height:2px;border-radius:2px;background:var(--g-500);
}
/* 服务承诺：Emoji 改为中性排版，弱化到右侧 */
.hp-nav .hpsvc{
  margin-left:auto;display:flex;align-items:center;gap:var(--s-4);padding-left:var(--s-4);
  flex:none;
}
.hp-nav .hpsvc b{
  font-weight:400;font-size:var(--fs-12);color:var(--t3);
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
}
.hp-nav .hpsvc b::before{
  content:"";width:5px;height:5px;border-radius:50%;background:var(--g-400);flex:none;
}

/* ---------- 7. 主体 ---------- */
.hp-main{padding:var(--s-8) 0 var(--s-16);min-height:60vh}

/* 区块标题：去掉渐变竖条，改克制的短横 + 正字距 */
.hp-sec{margin:var(--s-12) 0 0}
.hp-sec:first-child{margin-top:0}
.hp-sechead{
  display:flex;align-items:baseline;justify-content:space-between;
  margin-bottom:var(--s-5);gap:var(--s-4);flex-wrap:wrap;
}
.hp-sechead h2{
  font-size:var(--fs-20);font-weight:800;letter-spacing:0;color:var(--t1);
  position:relative;padding-left:var(--s-3);
}
.hp-sechead h2::before{
  content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;
  border-radius:2px;background:var(--g-500); /* 纯色替代渐变 */
}
.hp-sechead .hsub{color:var(--t3);font-size:var(--fs-13);flex:1;min-width:0}
.hp-sechead .more{
  font-size:var(--fs-13);color:var(--g-700);font-weight:600;white-space:nowrap;
  background:var(--g-50);border-radius:var(--r-pill);padding:6px var(--s-4);
  transition:all var(--t-fast) var(--e);
}
.hp-sechead .more:hover{background:var(--g-100);transform:translateY(-1px)}

/* ---------- 8. 面板 / 卡片 ---------- */
.panelrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s-4);margin:var(--s-5) 0}
.panel{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--s-6);transition:all var(--t) var(--e-out);
}
.panel:hover{box-shadow:var(--sh-2);border-color:var(--line-2)}
.panel h3{font-size:var(--fs-16);font-weight:700;margin-bottom:var(--s-2);color:var(--t1)}
.panel .btn{margin-top:var(--s-4)}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s-4)}
.card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--s-5);transition:all var(--t) var(--e-out);overflow:hidden;
}
.card:hover{
  border-color:var(--g-300);box-shadow:var(--sh-2);transform:translateY(-2px);
}
.card h3{font-size:var(--fs-16);font-weight:700;margin-bottom:var(--s-2);color:var(--t1)}
.card img{width:100%;height:150px;object-fit:cover;border-radius:var(--r-sm);margin-bottom:var(--s-3)}

/* ---------- 9. 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:var(--g-500);color:#04241C;border:0;border-radius:var(--r-sm);
  padding:10px var(--s-5);font-size:var(--fs-14);font-weight:700;cursor:pointer;
  transition:transform var(--t-fast) var(--e),box-shadow var(--t-fast) var(--e),background var(--t-fast) var(--e);
  text-align:center;line-height:1.2;
}
.btn:hover{background:var(--g-400);transform:translateY(-1px);box-shadow:0 6px 16px rgba(2,219,163,.22)}
.btn:active{transform:translateY(0)}
.btn.ghost{
  background:var(--paper);border:1px solid var(--line-2);color:var(--t2);font-weight:500;
}
.btn.ghost:hover{border-color:var(--g-400);color:var(--g-700);background:var(--g-50);box-shadow:none}
.btn.pri{background:var(--ink-900);color:#fff}
.btn.pri:hover{background:var(--ink-700);box-shadow:0 6px 18px rgba(7,19,15,.22)}
.btn.sm,.btn.small{padding:7px var(--s-4);font-size:var(--fs-13);border-radius:var(--r-sm)}
.btn.big{padding:12px var(--s-8);font-size:var(--fs-16);border-radius:var(--r-md)}
.btn[disabled],.btn.disabled{opacity:.5;pointer-events:none}

/* ---------- 10. 标签 ---------- */
.tag{
  display:inline-flex;align-items:center;gap:4px;
  font-size:var(--fs-12);font-weight:500;line-height:1.4;
  padding:3px 9px;border-radius:6px;border:1px solid var(--line-2);
  background:var(--paper-2);color:var(--t2);white-space:nowrap;
}
.tag.v{background:var(--g-50);border-color:var(--g-200);color:var(--g-800);font-weight:600}
.tag.ok{background:var(--ok-bg);border-color:#B7E4D0;color:#0B7A56;font-weight:600}
.tag.pay{background:var(--warn-bg);border-color:#F2D9A8;color:var(--warn);font-weight:700}
.tag.warn{background:var(--warn-bg);border-color:#F2D9A8;color:var(--warn);font-weight:600}
.tag.glass{background:var(--g-50);border-color:var(--g-200);color:var(--g-700)}
.tag.mkt{background:var(--info-bg);border-color:#C7DFF0;color:#1D5B8C}
.ctag{
  display:inline-flex;align-items:center;font-size:var(--fs-12);font-weight:600;
  padding:3px 9px;border-radius:6px;border:1px solid var(--line-2);
  background:var(--paper-2);color:var(--t2);
}

/* ---------- 11. 表格 ---------- */
.tblwrap{
  overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--paper);
}
.tbl{
  width:100%;border-collapse:collapse;font-size:var(--fs-13);margin:0;border-spacing:0;
}
.tbl td{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
/* 表头：去掉渐变，改浅底 + 上分隔，弱化存在感 */
.tbl tr:first-child td{
  background:var(--paper-3);border-radius:0;font-size:var(--fs-12);
  text-transform:none;color:var(--t2);font-weight:700;letter-spacing:0;
  border-bottom:1px solid var(--line-2);white-space:nowrap;
}
.tbl tr:first-child td:first-child{border-top-left-radius:var(--r-lg)}
.tbl tr:first-child td:last-child{border-top-right-radius:var(--r-lg)}
.tbl tr:hover td{background:var(--g-50)}

/* ---------- 12. 表单 ---------- */
.filters{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--s-4);margin-bottom:var(--s-5);
}
.filters form{display:flex;gap:var(--s-3);flex-wrap:wrap;align-items:center}
.filters input,.filters select{
  height:38px;padding:0 var(--s-3);border:1px solid var(--line-2);
  border-radius:var(--r-sm);background:var(--paper);font-size:var(--fs-13);
  transition:border-color var(--t-fast) var(--e),box-shadow var(--t-fast) var(--e);
}
.filters input:focus,.filters select:focus{
  outline:none;border-color:var(--g-400);box-shadow:0 0 0 3px rgba(2,219,163,.12);
}
.filters button{
  height:38px;padding:0 var(--s-5);border:0;border-radius:var(--r-sm);
  background:var(--ink-900);color:#fff;font-size:var(--fs-13);font-weight:600;cursor:pointer;
  transition:background var(--t-fast) var(--e);
}
.filters button:hover{background:var(--ink-700)}

.form{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-6)}
.form-row{margin-bottom:var(--s-4)}
.form-row:last-child{margin-bottom:0}
.form label{display:block;font-size:var(--fs-13);font-weight:600;color:var(--t1);margin-bottom:6px}
.form input,.form select,.form textarea{
  width:100%;height:40px;padding:0 var(--s-3);border:1px solid var(--line-2);
  border-radius:var(--r-sm);background:var(--paper);font-size:var(--fs-14);
  transition:border-color var(--t-fast) var(--e),box-shadow var(--t-fast) var(--e);
}
.form textarea{height:auto;min-height:96px;padding:var(--s-3);line-height:1.6;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{
  outline:none;border-color:var(--g-400);box-shadow:0 0 0 3px rgba(2,219,163,.12);
}
.form input::placeholder,.form textarea::placeholder{color:var(--t4)}

/* ---------- 13. 空态 / 提示 ---------- */
.empty{
  grid-column:1/-1;
  background:var(--paper);border:1px dashed var(--line-2);border-radius:var(--r-lg);
  padding:var(--s-16) var(--s-6);text-align:center;color:var(--t3);font-size:var(--fs-14);
}
.empty::before{
  content:"";display:block;width:44px;height:44px;margin:0 auto var(--s-4);
  border-radius:50%;background:var(--paper-3);
  /* 内嵌一个"空盒"示意，替代原来的 ◎ 字符 */
  box-shadow:inset 0 0 0 1px var(--line-2);
}
.empty:empty::before{margin-bottom:0}

/* 提示条 */
.contact,.msg,.alert{
  background:var(--info-bg);border:1px solid #C7DFF0;color:#1D5B8C;
  border-radius:var(--r-md);padding:var(--s-3) var(--s-4);font-size:var(--fs-13);
  margin-bottom:var(--s-4);
}
.msg-err,.alert.err{background:var(--err-bg);border-color:#F5C6C0;color:#9C2E22}
.msg-ok,.alert.ok{background:var(--ok-bg);border-color:#B7E4D0;color:#0B7A56}
.warn-box{background:var(--warn-bg);border:1px solid #F2D9A8;color:#8A5606;
  border-radius:var(--r-md);padding:var(--s-3) var(--s-4);font-size:var(--fs-13)}

/* ---------- 14. 文字工具类 ---------- */
.dim{color:var(--t3)}
.dim2{color:var(--t4)}
.hint{color:var(--t3);font-size:var(--fs-13)}
.meta{color:var(--t3);font-size:var(--fs-12);display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}
.tt{font-weight:700;color:var(--t1)}
.sm{font-size:var(--fs-13)}
.ds{color:var(--t3)}
.gy{color:var(--t3)}
.ok{color:var(--ok)}
.warn{color:var(--warn)}
.pri{color:var(--g-700)}
.go{color:var(--g-700);font-weight:600;white-space:nowrap}
.go:hover{text-decoration:underline}
.dot{width:6px;height:6px;border-radius:50%;background:var(--g-400);display:inline-block;flex:none}
.dot.ok{background:var(--ok)}
.dot.warn{background:var(--warn)}

/* 统计块 */
.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5)}
.stat b{display:block;font-size:var(--fs-24);font-weight:800;color:var(--t1);line-height:1.2;letter-spacing:0}
.stat span{font-size:var(--fs-12);color:var(--t3)}

/* Hero（内页复用） */
.hero{
  background:var(--ink-900);color:var(--d1);border-radius:var(--r-xl);
  padding:var(--s-12) var(--s-10);margin-bottom:var(--s-8);
}
.hero h1{font-size:var(--fs-30);font-weight:800;letter-spacing:0;color:var(--d1);margin-bottom:var(--s-3)}
.hero p{color:var(--d2);font-size:var(--fs-15)}

/* ---------- 15. 会员中心 mc-* ---------- */
.mc-card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--s-5);transition:all var(--t) var(--e-out);
}
.mc-card:hover{box-shadow:var(--sh-2);border-color:var(--line-2)}
.mc-bd{padding:0}
.mc-ch{
  font-size:var(--fs-16);font-weight:700;color:var(--t1);
  padding-bottom:var(--s-3);margin-bottom:var(--s-4);border-bottom:1px solid var(--line);
}
.mc-f{margin-bottom:var(--s-4)}
.mc-f label{display:block;font-size:var(--fs-13);font-weight:600;margin-bottom:6px;color:var(--t1)}
.mc-f input,.mc-f select,.mc-f textarea{
  width:100%;height:40px;padding:0 var(--s-3);border:1px solid var(--line-2);
  border-radius:var(--r-sm);font-size:var(--fs-14);background:var(--paper);
  transition:border-color var(--t-fast) var(--e),box-shadow var(--t-fast) var(--e);
}
.mc-f textarea{height:auto;min-height:96px;padding:var(--s-3);resize:vertical}
.mc-f input:focus,.mc-f select:focus,.mc-f textarea:focus{
  outline:none;border-color:var(--g-400);box-shadow:0 0 0 3px rgba(2,219,163,.12);
}
.mc-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:var(--g-500);color:#04241C;border:0;border-radius:var(--r-sm);
  padding:10px var(--s-5);font-size:var(--fs-14);font-weight:700;cursor:pointer;
  transition:transform var(--t-fast) var(--e),background var(--t-fast) var(--e);
}
.mc-btn:hover{background:var(--g-400);transform:translateY(-1px)}
.mc-btn.ghost{background:var(--paper);border:1px solid var(--line-2);color:var(--t2);font-weight:500}
.mc-btn.ghost:hover{border-color:var(--g-400);color:var(--g-700);background:var(--g-50)}
.mc-btnrow{display:flex;gap:var(--s-3);flex-wrap:wrap}
.mc-note{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);
  padding:var(--s-3) var(--s-4);font-size:var(--fs-13);color:var(--t2)}
.mc-alert{border-radius:var(--r-md);padding:var(--s-3) var(--s-4);font-size:var(--fs-13)}
.mc-empty{
  background:var(--paper);border:1px dashed var(--line-2);border-radius:var(--r-lg);
  padding:var(--s-12) var(--s-6);text-align:center;color:var(--t3);font-size:var(--fs-14);
}
.mc-grid{display:grid;gap:var(--s-4)}
.mc-frow{display:grid;gap:var(--s-4)}
.mc-tb{width:100%;border-collapse:collapse;font-size:var(--fs-13)}
.mc-tb td{padding:var(--s-3) var(--s-3);border-bottom:1px solid var(--line)}
.mc-tb tr:first-child td{background:var(--paper-3);font-weight:700;color:var(--t2);font-size:var(--fs-12)}
.mc-tb tr:hover td{background:var(--g-50)}
.mc-step{display:flex;align-items:center;gap:var(--s-3)}
.mc-num{
  width:26px;height:26px;border-radius:50%;background:var(--g-50);color:var(--g-800);
  display:inline-flex;align-items:center;justify-content:center;
  font-size:var(--fs-13);font-weight:800;flex:none;
}
.mc-num.on{background:var(--g-500);color:#04241C}
.mc-back{
  display:inline-flex;align-items:center;gap:6px;color:var(--t2);
  font-size:var(--fs-13);font-weight:500;margin-bottom:var(--s-4);
  transition:color var(--t-fast) var(--e);
}
.mc-back:hover{color:var(--g-700)}
.mc-ph{color:var(--t4);font-size:var(--fs-13)}
.mc-chip{
  display:inline-flex;align-items:center;font-size:var(--fs-12);font-weight:600;
  padding:3px 9px;border-radius:6px;border:1px solid var(--line-2);
  background:var(--paper-2);color:var(--t2);
}
.mc-edsep{height:1px;background:var(--line);margin:var(--s-4) 0;border:0}

/* ---------- 15b. 会员中心 / 后台：mc-* 变量族统一 ----------
   member.css 有 350 处 var(--mc-*) 引用、仅 52 处硬编码，
   因此只需重置变量即可把 slate 蓝灰中性换成墨绿家族，
   会员中心 15 页 + 后台 5 页同步统一，无需改动任何组件类。
   用 body .mc 提高特异性：member.css 在 body 内后加载，同权重会反超。 */
body .mc{
  --mc-bg:#F7F9F8;
  --mc-panel:#FFFFFF;
  --mc-line:#E4EBE8;
  --mc-line2:#EFF3F1;
  --mc-tx:#0E1F19;
  --mc-tx2:#46594F;
  --mc-tx3:#748A80;
  --mc-brand:#02DBA3;
  --mc-brand-dark:#00B487;
  --mc-brand-soft:#E9FBF5;
  --mc-brand-ink:#046A55;
  --mc-warn:#C2760A;
  --mc-warn-bg:#FDF3E3;
  --mc-danger:#C0392B;
  --mc-ok:#0E9F6E;
  --mc-r:12px;
  --mc-r-s:8px;
  font-family:var(--font);
}
/* 会员中心导航：选中态改为左侧色条，比整块底色更克制 */
body .mc .mc-navitem.on{
  background:var(--mc-brand-soft);color:var(--mc-brand-ink);font-weight:600;
  box-shadow:inset 3px 0 0 var(--mc-brand);
}
body .mc .mc-navitem{border-radius:var(--mc-r-s);transition:background var(--t-fast) var(--e),color var(--t-fast) var(--e)}
body .mc .mc-navitem:hover{background:var(--mc-bg);color:var(--mc-tx)}
body .mc .mc-navtt{letter-spacing:.04em;color:var(--mc-tx3);font-weight:600}
/* 主按钮统一为品牌绿 */
body .mc .mc-btn,body .mc .mc-fbsub{background:var(--mc-brand);color:#04241C;font-weight:700}

/* ---------- 15c. 补漏：模板中使用但原样式表未定义的类 ---------- */
.wide{max-width:1440px}
/* ptag 常用于窄卡内的价格串，不强制 nowrap，避免撑破容器 */
.ptag{
  display:inline-flex;align-items:center;font-size:var(--fs-12);font-weight:700;
  padding:3px 9px;border-radius:6px;border:1px solid var(--g-200);
  background:var(--g-50);color:var(--g-800);font-style:normal;
  max-width:100%;
}
/* 窄容器内统一允许断行，防止长串溢出 */
.aipcard,.aipcard *{min-width:0}
/* 会员中心面板 */
body .mc .mc-pane{
  background:var(--mc-panel);border:1px solid var(--mc-line);
  border-radius:var(--mc-r);padding:18px 20px;
}
/* 下载行（API / 数据页） */
.dl-row{
  display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;
  padding:var(--s-3) var(--s-4);border:1px solid var(--line);
  border-radius:var(--r-md);background:var(--paper);margin-bottom:var(--s-3);
  transition:border-color var(--t-fast) var(--e);
}
.dl-row:hover{border-color:var(--g-300)}
.dl-meta{flex:1;min-width:0}
.dl-os{font-size:var(--fs-13);color:var(--t2);white-space:nowrap}
.dl-btn{
  display:inline-flex;align-items:center;gap:6px;padding:7px var(--s-4);
  border-radius:var(--r-sm);background:var(--g-500);color:#04241C;
  font-size:var(--fs-13);font-weight:700;transition:transform var(--t-fast) var(--e);
}
.dl-btn:hover{transform:translateY(-1px)}
.ctxbox,.code{
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);
  padding:var(--s-4);font-size:var(--fs-13);color:var(--t2);line-height:1.7;
}

/* ---------- 16. 分页 ---------- */
/* v1.1.19：三处调整
 * ① 原先 justify-content:center + flex-wrap:wrap，窄屏把页码折成两行顶开版式；
 *    改为 nowrap + 横向滚动，保持单行。
 * ② 居中改由「首尾子元素 auto 外边距」实现——滚动容器一旦溢出，
 *    justify-content:center 会让左侧页码永远滚不到（经典坑）；auto 外边距溢出时归零。
 * ③ 清理全站零引用的 .pagination 与 .pager .cur（grep 全站仅在本文件出现；
 *    pager_html() 只输出 .on，.cur 是历史遗留）。 */
.pager{
  display:flex;align-items:center;justify-content:flex-start;gap:var(--s-2);
  margin-top:var(--s-8);flex-wrap:nowrap;white-space:nowrap;
  overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;
  padding:2px 0;
}
.pager>*:first-child{margin-left:auto}
.pager>*:last-child{margin-right:auto}
.pager a,.pager span{
  min-width:36px;height:36px;padding:0 var(--s-3);
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line-2);border-radius:var(--r-sm);
  background:var(--paper);color:var(--t2);font-size:var(--fs-13);font-weight:500;
  transition:all var(--t-fast) var(--e);
}
.pager a:hover{border-color:var(--g-400);color:var(--g-700);background:var(--g-50)}
.pager .on{background:var(--ink-900);border-color:var(--ink-900);color:#fff;font-weight:700}
/* v1.1.18：pager_html() 新增的箭头 / 省略号 / 总数（复用上方方框，只做必要覆盖） */
.pager .pg-nav{font-size:15px;line-height:1;padding:0}
.pager .pg-nav.off{opacity:.35;cursor:not-allowed}
.pager .pg-gap,.pager .pg-total{border:0;background:none;color:var(--t2);font-size:12.5px}
.pager .pg-gap{min-width:14px;padding:0}
.pager .pg-total{min-width:0;padding:0 var(--s-2) 0 0}
/* 窄屏压缩：9 个元素 × 30px + 8 × 4px = 302px，320px 屏也能单行放下 */
@media(max-width:560px){
  .pager{gap:4px}
  .pager a,.pager span{min-width:30px;height:30px;padding:0 6px;font-size:12.5px}
  .pager .pg-gap{min-width:12px}
}

/* ---------- 17. 页脚 ---------- */
.hp-footer{background:var(--ink-900);color:var(--d2);padding:var(--s-16) 0 0;margin-top:var(--s-16)}
.hp-footer .hpin{
  display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:var(--s-8);
  padding-bottom:var(--s-12);
}
.hp-footer h4{
  font-size:var(--fs-14);font-weight:700;color:var(--d1);margin-bottom:var(--s-4);
  letter-spacing:0;
}
.hp-footer h4+p,.hp-footer div>p{color:var(--d3);font-size:var(--fs-13);line-height:1.7}
.hp-footer a{
  display:block;color:var(--d2);font-size:var(--fs-13);padding:5px 0;
  transition:color var(--t-fast) var(--e);
}
.hp-footer a:hover{color:var(--g-300)}
/* v1.6.6：页脚底部（免责声明 / 语言切换 / 版权行）按要求居中显示。
   ★ theme.css 在 style.css 之后加载，.hp-fbottom 的 display:flex 就是它加的 ——
     v1.6.4 之前这里靠 style.css 的 text-align:center 居中，被 flex 覆盖后失效。 */
.hp-disc{
  border-top:1px solid var(--line-d);padding:var(--s-6) 0;
  color:var(--d3);font-size:var(--fs-12);line-height:1.8;
  justify-content:center;text-align:center;
}
.hp-disc b{color:var(--d2);font-weight:600}
.hp-disc p{margin-top:var(--s-2)}
.hp-fbottom{
  border-top:1px solid var(--line-d);padding:var(--s-5) 0;
  color:var(--d3);font-size:var(--fs-12);
  display:flex;align-items:center;justify-content:center;gap:var(--s-3);flex-wrap:wrap;
  text-align:center;
}
.hp-flangs{display:flex;gap:var(--s-2);flex-wrap:wrap}
.hp-flangs a{
  display:inline-flex;color:var(--d3);padding:3px 10px;border-radius:var(--r-pill);
  border:1px solid var(--line-d);font-size:var(--fs-12);transition:all var(--t-fast) var(--e);
}
.hp-flangs a:hover{color:var(--d1);border-color:var(--line-d2);background:rgba(255,255,255,.05)}
.hp-flangs a.on{color:var(--g-300);border-color:rgba(2,219,163,.4);background:rgba(2,219,163,.08)}

/* ---------- 17b. 详情页两栏 ---------- */
.dt-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--s-6);align-items:start}
/* 详情页容器在窄屏收窄内边距，否则内容区会被挤出视口 */
.detail{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-6) var(--s-7)}
.detail h1{font-size:var(--fs-24);line-height:1.4;margin-bottom:var(--s-3)}
.gallery{margin:var(--s-3) 0 var(--s-2)}
.gallery-main{border-radius:var(--r-lg);overflow:hidden;background:var(--paper-3);border:1px solid var(--line)}
.gallery-main img{width:100%;max-height:460px;object-fit:contain;display:block}
.gallery-thumbs{display:flex;gap:var(--s-2);margin-top:var(--s-2);flex-wrap:wrap}
.gthumb{
  width:74px;height:56px;border-radius:var(--r-sm);overflow:hidden;
  border:1px solid var(--line);transition:border-color var(--t-fast) var(--e);
}
.gthumb.on{border-color:var(--g-500);box-shadow:0 0 0 1px var(--g-500)}
.gthumb img{width:100%;height:100%;object-fit:cover}
/* 会员中心自适应网格：避免固定列数在窄屏溢出 */
body .mc .mc-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}

/* ---------- 18. 响应式 ---------- */
@media (max-width:1080px){
  .hp-footer .hpin{grid-template-columns:1fr 1fr 1fr;gap:var(--s-6)}
  .hp-nav .hpsvc{display:none}
  .dt-grid{grid-template-columns:1fr}
  /* 中等屏隐藏「全部行业」给搜索框让位（频道导航仍有 atlas 入口） */
  .hp-catbtn{display:none}
}
@media (max-width:860px){
  .hp-head .hpin{flex-wrap:wrap;height:auto;padding:var(--s-3) var(--s-4);gap:var(--s-3)}
  .hp-searcharea{order:3;width:100%;flex-basis:100%}
  .hp-search{max-width:none}
  .hp-headact{margin-left:auto}
  .hp-footer .hpin{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .hp-top .hpl{display:none}
  .hp-footer .hpin{grid-template-columns:1fr;gap:var(--s-6)}
  .hp-main{padding:var(--s-6) 0 var(--s-12)}
  .cards{grid-template-columns:1fr}
  .hp-sechead h2{font-size:var(--fs-18)}
  .detail{padding:var(--s-5) var(--s-4)}
  .detail h1{font-size:var(--fs-20)}
  .form{padding:var(--s-5) var(--s-4)}
  body .mc .mc-shell{grid-template-columns:1fr}
}

/* 尊重减弱动效偏好 */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto}
}
