/* =====================================================================
   江西循环经济产业大脑 —— 公共样式 v4 · 循环经济绿色主题
   设计语言：环保绿主色 + 大圆角 + 柔和绿调阴影 + 现代门户排版
   主色 #10B981 / 深绿 #047857 / 墨绿 #064E3B；页面底色 #F4F8F5
   ===================================================================== */
:root{
  /* 品牌绿主色阶（循环经济 / 环保主题） */
  --navy:#047857;          /* 主色：按钮/链接/标题强调（深翠绿） */
  --blue:#10B981;          /* 亮翠绿：辅助渐变/强调 */
  --blue-lt:#EAF9F1;       /* 极浅绿：选中底/标签底 */
  --blue-2:#D3F0E1;        /* 浅绿：边框分隔 */
  --gold:#F59E0B;          /* 金：星级/重点标签 */
  --gold-lt:#F59E0B;
  --forest:#064E3B;        /* 墨绿：页脚/登录深色底 */
  --mint:#34D399;          /* 薄荷绿：图表辅助色 */
  /* 状态色 */
  --ok:#2E7D32; --warn:#EA580C;    /* 增长/强调用橙 */
  --alert:#DC2626;                 /* 警示红 */
  /* 背景与卡片 */
  --bg:#F4F8F5;            /* 页面级背景（绿灰） */
  --bg2:#E7F0EA; --card:#FFFFFF;
  /* 边框与分割线（统一浅绿灰） */
  --line:#E6EFE9; --line-lt:#EFF5F1; --line-2:#CBDCD1;
  /* 文字层级 */
  --ink:#0E2A20; --tx:#33453C; --tx2:#4C6157; --tx3:#86988D;
  /* 圆角：卡片 16px、按钮 10px、标签 999px */
  --r:10px;                /* 按钮/小元素 */
  --card-r:16px;           /* 卡片主圆角 */
  /* 阴影：轻、带绿调 */
  --sh:0 1px 2px rgba(16,61,44,.04),0 4px 14px rgba(16,61,44,.05);
  --sh2:0 12px 32px rgba(16,61,44,.12);
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{background:var(--bg);color:var(--tx);
  font-family:"PingFang SC","Microsoft YaHei","Source Han Sans SC","思源黑体",sans-serif;
  font-size:14.5px;line-height:1.65;-webkit-font-smoothing:antialiased;}
body{background-image:
    radial-gradient(1200px 500px at 85% -10%,rgba(16,185,129,.10),transparent 60%),
    radial-gradient(900px 420px at -8% 12%,rgba(16,185,129,.08),transparent 55%),
    radial-gradient(1000px 520px at 105% 78%,rgba(4,120,87,.07),transparent 62%),
    linear-gradient(180deg,#F3FAF6 0%,#F7FBF8 45%,#EFF7F2 100%);
  zoom:1.1;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
input,select{font-family:inherit;outline:none;}
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-thumb{background:#BFD3C7;border-radius:6px;border:2px solid transparent;background-clip:padding-box;}
::-webkit-scrollbar-thumb:hover{background:#9DBCA9;border:2px solid transparent;background-clip:padding-box;}
::-webkit-scrollbar-track{background:transparent;}
.num{font-family:"DIN Alternate","JetBrains Mono",Consolas,ui-monospace,monospace;
  font-variant-numeric:tabular-nums;letter-spacing:.2px;}
.hidden{display:none !important;}

/* ---------- 按钮 / 表单控件 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border-radius:var(--r);font-size:14px;height:36px;padding:0 18px;transition:.18s;white-space:nowrap;font-weight:500;}
.btn:active{transform:scale(.98);}
.btn-pri{background:linear-gradient(135deg,#12B981 0%,#059669 55%,#047857 100%);color:#fff;border:none;
  box-shadow:0 4px 12px rgba(5,150,105,.22);}
.btn-pri:hover{background:linear-gradient(135deg,#059669 0%,#047857 60%,#065F46 100%);
  box-shadow:0 6px 18px rgba(5,150,105,.32);transform:translateY(-1px);}
.btn-ghost{background:#fff;color:var(--navy);border:1px solid var(--blue-2);}
.btn-ghost:hover{background:var(--blue-lt);border-color:var(--blue);box-shadow:0 2px 8px rgba(16,185,129,.12);}
.btn-sm{height:28px;padding:0 12px;font-size:12px;border-radius:8px;}
.btn-line{background:#fff;color:var(--navy);border:1px solid var(--blue-2);}
.btn-line:hover{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 4px 12px rgba(5,150,105,.25);}
.ipt,.sel{height:32px;border:1px solid var(--line);border-radius:var(--r);background:#fff;
  padding:0 12px;font-size:12.5px;color:var(--tx);transition:.18s;}
.ipt::placeholder{color:#A7B9AE;}
.ipt:focus,.sel:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(16,185,129,.14);}
.sel{appearance:none;-webkit-appearance:none;padding-right:26px;cursor:pointer;
  background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%2386988D' stroke-width='1.4' fill='none' stroke-linecap='round'/></svg>") no-repeat right 10px center;}
.ck{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--tx2);cursor:pointer;user-select:none;}
.ck input{display:none;}
.ck i{width:16px;height:16px;border:1.5px solid #BDCFC4;border-radius:5px;background:#fff;
  display:inline-flex;align-items:center;justify-content:center;transition:.18s;flex:none;}
.ck i::after{content:"";width:8px;height:4px;border-left:1.8px solid #fff;border-bottom:1.8px solid #fff;
  transform:rotate(-45deg) translate(0,-1px);opacity:0;}
.ck input:checked + i{background:var(--blue);border-color:var(--blue);}
.ck input:checked + i::after{opacity:1;}

/* ---------- 制式工具条（保留兼容，页面已不再使用） ---------- */
.utilbar{height:30px;background:#E4EBE6;border-bottom:1px solid var(--line);font-size:11.5px;color:var(--tx2);}
.utilbar .in{max-width:1440px;margin:0 auto;padding:0 24px;height:100%;
  display:flex;align-items:center;justify-content:space-between;gap:16px;}
.utilbar a{cursor:pointer;}
.utilbar a:hover{color:var(--navy);}
.utilbar .dot-sep{margin:0 8px;color:#A7B9AE;}

/* ---------- 站点头 masthead（保留兼容） ---------- */
.masthead{height:60px;background:#fff;border-bottom:1px solid var(--line);}
.masthead .in{max-width:1440px;margin:0 auto;height:100%;padding:0 24px;display:flex;align-items:center;gap:14px;}
.emblem{width:38px;height:38px;flex:none;border-radius:11px;
  background:linear-gradient(135deg,#10B981 0%,#047857 100%);
  box-shadow:0 4px 12px rgba(5,150,105,.28);
  display:flex;align-items:center;justify-content:center;}
.mh-txt{display:flex;flex-direction:column;line-height:1.2;}
.mh-name{font-size:17px;font-weight:700;color:var(--ink);letter-spacing:.3px;white-space:nowrap;}
.mh-en{font-size:9px;color:var(--tx3);letter-spacing:1.8px;margin-top:2px;white-space:nowrap;}
.mh-right{margin-left:auto;display:flex;align-items:center;gap:20px;}
.mh-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--tx2);
  padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:#F5FAF7;}
.mh-tag i{width:6px;height:6px;border-radius:50%;background:var(--ok);}
.mh-date{font-size:12px;color:var(--tx3);}
.mh-date b{color:var(--tx2);font-weight:500;font-family:"DIN Alternate",Consolas,monospace;}

/* ---------- 主导航（玻璃白底 sticky，绿色胶囊活跃态） ---------- */
.topnav{height:46px;background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(242,250,246,.9) 100%);
  backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  position:sticky;top:0;z-index:84;border-bottom:1px solid var(--line);
  box-shadow:0 2px 14px rgba(5,105,82,.07);}
.topnav .in{width:100%;padding:0 28px;height:100%;
  display:flex;align-items:center;gap:10px;}
.menu{display:flex;align-items:center;height:100%;overflow-x:auto;scrollbar-width:none;gap:2px;flex:1;min-width:0;justify-content:center;}
.menu::-webkit-scrollbar{display:none;}
.menu a{display:flex;align-items:center;height:40px;padding:0 17px;font-size:15px;color:var(--tx2);
  white-space:nowrap;position:relative;transition:.18s;cursor:pointer;border-radius:10px;}
.menu a:hover{color:var(--navy);background:var(--blue-lt);}
.menu a.on{color:var(--navy);font-weight:600;background:var(--blue-lt);}
.menu a.on::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:4px;width:16px;height:3px;
  background:linear-gradient(90deg,#10B981,#047857);border-radius:3px;}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex:none;}

/* ---------- 导航栏品牌区 ---------- */
.topnav.topnav-brand{height:68px;box-shadow:0 1px 0 rgba(16,61,44,.04);}
.tn-brand{display:flex;align-items:center;gap:11px;flex:none;cursor:pointer;padding-right:6px;}
.tn-brand .emblem{width:38px;height:38px;border-radius:11px;}
.tn-brand .bt{display:flex;flex-direction:column;line-height:1.2;}
.tn-brand .bn{font-size:17.5px;font-weight:700;color:var(--ink);letter-spacing:.3px;white-space:nowrap;
  background:linear-gradient(90deg,#0E2A20,#047857);-webkit-background-clip:text;background-clip:text;color:transparent;}
.tn-brand .be{font-size:9.5px;color:var(--tx3);letter-spacing:1.3px;margin-top:2px;white-space:nowrap;}
.tn-brand + .menu{border-left:1px solid var(--line-lt);margin-left:8px;padding-left:12px;}
@media (max-width:1280px){ .tn-brand .be{display:none;} }
.nav-screen{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;flex:none;
  border-radius:999px;font-size:13.5px;font-weight:600;color:var(--navy);white-space:nowrap;
  background:linear-gradient(135deg,rgba(16,185,129,.14),rgba(4,120,87,.10));
  border:1px solid rgba(4,120,87,.28);transition:.18s;cursor:pointer;text-decoration:none;}
.nav-screen:hover{color:#fff;background:linear-gradient(135deg,#10B981,#047857);
  box-shadow:0 4px 14px rgba(5,150,105,.32);transform:translateY(-1px);}
.icon-btn{position:relative;width:34px;height:34px;border-radius:10px;display:flex;
  align-items:center;justify-content:center;color:var(--tx2);transition:.18s;cursor:pointer;}
.icon-btn:hover{color:var(--navy);background:var(--blue-lt);}
.msg-dot{position:absolute;top:0;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:8px;
  background:var(--alert);color:#fff;font-size:10px;line-height:16px;text-align:center;
  border:1.5px solid #fff;}
.user-box{position:relative;}
.user-btn{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:10px;transition:.18s;cursor:pointer;}
.user-btn:hover{background:var(--blue-lt);}
.ava{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#12B981,#047857);
  color:#fff;font-size:12px;box-shadow:0 2px 8px rgba(5,150,105,.25);
  display:flex;align-items:center;justify-content:center;}
.user-btn .un{color:var(--tx);font-size:13.5px;line-height:1.25;text-align:left;}
.user-btn .un small{display:block;color:var(--tx3);font-size:11.5px;}
.user-pop{position:absolute;right:0;top:44px;width:224px;background:#fff;border:1px solid var(--line);
  border-radius:14px;box-shadow:var(--sh2);padding:6px;display:none;z-index:90;}
.user-pop.open{display:block;animation:popIn .16s ease;}
@keyframes popIn{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}
.user-pop .up-info{padding:10px 12px;border-bottom:1px solid var(--line-lt);margin-bottom:6px;}
.user-pop .up-info b{font-size:13.5px;color:var(--ink);}
.user-pop .up-info p{font-size:11.5px;color:var(--tx3);margin-top:3px;line-height:1.5;}
.user-pop a{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:12.5px;color:var(--tx);cursor:pointer;transition:.15s;}
.user-pop a:hover{background:var(--blue-lt);color:var(--navy);}

/* ---------- 子栏：面包屑 + 全局时间筛选 ---------- */
.subbar{position:sticky;top:64px;z-index:80;background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);}
.subbar .in{max-width:1440px;margin:0 auto;padding:0 24px;height:48px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;}
.crumb{font-size:13px;color:var(--tx3);display:flex;align-items:center;gap:7px;white-space:nowrap;}
.crumb b{color:var(--ink);font-weight:600;font-size:14px;}
.crumb .sep{color:#A7B9AE;}
.sub-right{display:flex;align-items:center;gap:10px;}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#F6FAF7;padding:2px;gap:2px;}
.seg button{height:28px;padding:0 14px;font-size:13.5px;color:var(--tx2);border-radius:8px;
  transition:.18s;cursor:pointer;}
.seg button:hover{color:var(--navy);background:#fff;}
.seg button.on{background:linear-gradient(135deg,#12B981,#047857);color:#fff;box-shadow:0 2px 8px rgba(5,150,105,.25);}
.range-box{position:relative;}
.date-pop{position:absolute;right:0;top:38px;width:264px;background:#fff;border:1px solid var(--line);
  border-radius:14px;box-shadow:var(--sh2);padding:14px;display:none;z-index:95;}
.date-pop.open{display:block;}
.date-pop .dp-t{font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:10px;}
.date-pop label{display:block;font-size:11.5px;color:var(--tx3);margin:8px 0 4px;}
.date-pop input[type=date]{width:100%;height:30px;border:1px solid var(--line);border-radius:8px;
  padding:0 8px;font-size:12.5px;color:var(--tx);}
.date-pop .dp-ft{display:flex;gap:8px;margin-top:14px;}
.date-pop .dp-ft .btn{flex:1;}
.upd{font-size:12.5px;color:var(--tx3);white-space:nowrap;}
.upd b{color:var(--tx2);font-weight:500;}

/* ---------- 页面容器 / 卡片 ---------- */
.page{max-width:1440px;margin:0 auto;padding:24px 28px 12px;}
.card{background:linear-gradient(180deg,#FFFFFF 0%,#FBFDFC 100%);
  border:1px solid var(--line);border-radius:var(--card-r);box-shadow:var(--sh);
  transition:box-shadow .2s,border-color .2s;}
.card:hover{box-shadow:var(--sh2);border-color:#DCEAE1;}
.card-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 18px;border-bottom:1px solid var(--line-lt);}
.ct{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:600;color:var(--ink);}
.ct::before{content:"";width:4px;height:16px;border-radius:3px;flex:none;
  background:linear-gradient(180deg,#10B981,#047857);}
.ct-note{font-size:12.5px;color:var(--tx3);font-weight:400;}
.card-bd{padding:14px 18px;}
.grid12{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;}
.c3{grid-column:span 3;}.c4{grid-column:span 4;}.c5{grid-column:span 5;}
.c6{grid-column:span 6;}.c7{grid-column:span 7;}.c8{grid-column:span 8;}.c12{grid-column:span 12;}
.stack{display:flex;flex-direction:column;gap:14px;}

/* ---------- 栏目化 section 头 ---------- */
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:32px 0 14px;}
.sec-head .sh-l{display:flex;align-items:center;gap:10px;}
.sec-head .sh-l b{font-size:17px;font-weight:800;color:var(--ink);letter-spacing:.3px;}
.sec-head .sh-l i{width:5px;height:20px;border-radius:4px;
  background:linear-gradient(180deg,#34D399,#047857);
  box-shadow:0 2px 8px rgba(5,150,105,.35);}
.sec-head .sh-note{font-size:12.5px;color:var(--tx3);}
.sec-more{font-size:13.5px;color:var(--tx2);display:inline-flex;align-items:center;gap:4px;cursor:pointer;transition:.15s;}
.sec-more:hover{color:var(--navy);}
.sec-more::after{content:"›";font-size:15px;line-height:1;}

/* ---------- 全幅 Hero 横幅（现代绿意门户风） ---------- */
.hero{position:relative;overflow:hidden;border-radius:20px;min-height:260px;
  background:linear-gradient(120deg,#F1FBF5 0%,#F8FDFA 55%,#EAF7F0 100%);
  border:1px solid #DFEEE5;box-shadow:var(--sh);}
.hero::before{content:"";position:absolute;right:-140px;top:-160px;width:460px;height:460px;border-radius:50%;
  background:radial-gradient(circle,rgba(16,185,129,.18),rgba(16,185,129,0) 65%);pointer-events:none;}
.hero::after{content:"";position:absolute;right:120px;bottom:-180px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(52,211,153,.16),rgba(52,211,153,0) 65%);pointer-events:none;}
.hero .img{position:absolute;inset:0;opacity:.32;background-size:cover;background-position:center;mix-blend-mode:luminosity;pointer-events:none;}
.hero .mask{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.8) 48%,rgba(240,250,245,.45) 100%);pointer-events:none;}
.hero-l{position:relative;z-index:2;max-width:68%;padding:38px 42px 34px;display:flex;flex-direction:column;min-height:260px;}
.hero-l h1{font-size:28px;font-weight:800;letter-spacing:.5px;line-height:1.4;
  background:linear-gradient(95deg,#0B2E24 0%,#047857 70%,#10B981 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.hero-l .sub{font-size:13.5px;color:var(--navy);letter-spacing:.5px;margin-top:12px;
  display:inline-flex;align-items:center;gap:8px;font-weight:500;}
.hero-l .sub::before{content:"";width:22px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,#10B981,#047857);}
.hero-l .desc{font-size:14px;color:var(--tx2);line-height:1.95;max-width:720px;margin-top:14px;text-align:justify;}
.hero-facts{display:flex;margin-top:24px;gap:0;flex-wrap:wrap;}
.hero-facts .f{padding:0 28px;border-left:1px solid #DCEAE1;min-width:120px;}
.hero-facts .f:first-child{padding-left:0;border-left:none;}
.hero-facts .fv{font-size:27px;font-weight:700;color:var(--navy);line-height:1.2;font-family:"DIN Alternate",Consolas,monospace;}
.hero-facts .fv small{font-size:12px;font-weight:500;color:var(--tx2);margin-left:3px;}
.hero-facts .fk{font-size:11.5px;color:var(--tx3);margin-top:4px;}
.hero-btns{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap;}
.hero-btns .btn{height:38px;border-radius:999px;padding:0 20px;}
.hero .cap{position:absolute;left:0;right:0;bottom:0;padding:12px 42px;z-index:3;
  display:flex;align-items:center;justify-content:space-between;pointer-events:none;}
.hero .cap span{color:var(--tx3);font-size:11px;}
.hero .cap a{color:var(--navy);font-size:12px;border:1px solid var(--blue-2);border-radius:999px;
  padding:5px 14px;cursor:pointer;transition:.18s;background:#fff;pointer-events:auto;}
.hero .cap a:hover{background:var(--navy);color:#fff;border-color:var(--navy);}

/* ---------- 核心指标带 ---------- */
.kpi-band{display:grid;grid-template-columns:repeat(6,1fr);}
.kpi{padding:16px 16px 14px;border-left:1px solid var(--line-lt);transition:.18s;cursor:pointer;position:relative;}
.kpi:first-child{border-left:none;}
.kpi:hover{background:#F3FBF7;}
.kpi:hover .v{color:#059669;}
.kpi .k{font-size:12px;color:var(--tx3);}
.kpi .v{font-size:25px;font-weight:700;color:var(--navy);line-height:1.25;margin-top:3px;font-family:"DIN Alternate",Consolas,monospace;transition:.18s;}
.kpi .v small{font-size:11px;font-weight:500;color:var(--tx2);margin-left:4px;}
.kpi .d{font-size:11.5px;margin-top:3px;display:flex;align-items:center;gap:5px;}
.kpi .d .tri{font-size:9px;}
.kpi .d.up{color:var(--warn);}
.kpi .d.down{color:#2E7D32;}
.kpi .d.flat{color:var(--tx3);}
.kpi .d small{color:var(--tx3);}

/* ---------- 功能入口矩阵 ---------- */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.tile{display:flex;gap:13px;align-items:flex-start;padding:16px 17px;border:1px solid var(--line);
  border-radius:14px;background:#fff;transition:.2s;cursor:pointer;position:relative;min-width:0;overflow:hidden;}
.tile::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#34D399,#047857);
  opacity:0;transition:.2s;}
.tile:hover{border-color:#BEE9D3;box-shadow:0 10px 26px rgba(16,61,44,.10);transform:translateY(-2px);}
.tile:hover::before{opacity:1;}
.tile .ic{width:42px;height:42px;flex:none;border-radius:12px;
  background:linear-gradient(135deg,#EAF9F1,#D3F0E1);display:flex;align-items:center;justify-content:center;color:var(--navy);font-size:17px;}
.tile .no{position:absolute;right:14px;top:12px;font-size:10px;color:#C6D5CB;letter-spacing:1px;font-family:"DIN Alternate",Consolas,monospace;}
.tile .tt{font-size:14.5px;font-weight:600;color:var(--ink);}
.tile .td{font-size:12.5px;color:var(--tx3);margin-top:4px;line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.tile .go{margin-top:7px;font-size:12.5px;color:var(--blue);display:inline-flex;align-items:center;gap:3px;transition:.18s;font-weight:500;}
.tile:hover .go{color:var(--navy);gap:7px;}

/* 企业矩阵网格：minmax(0,1fr) 强制等分，防止长内容将轨道撑破卡片 */
.ent-grid{padding:16px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;}
@media (max-width:1440px){ .ent-grid{grid-template-columns:repeat(4,minmax(0,1fr));} }
@media (max-width:1280px){ .ent-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (max-width:1100px){ .ent-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }

/* ---------- 图表容器 ---------- */
.chart{width:100%;height:280px;}
.chart-lg{width:100%;height:340px;}
.map-note{display:flex;gap:18px;padding:0 16px 12px;font-size:11px;color:var(--tx3);}
.map-note i{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:5px;vertical-align:-1px;}
.chart-fallback{height:100%;min-height:180px;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:20px;color:var(--tx3);font-size:12.5px;line-height:1.9;background:#F8FCF9;border-radius:var(--r);}

/* ---------- 表格 ---------- */
.toolbar{display:flex;align-items:center;gap:8px;padding:12px 18px;border-bottom:1px solid var(--line-lt);
  flex-wrap:wrap;background:#F8FCF9;border-radius:var(--card-r) var(--card-r) 0 0;}
.toolbar .sp{flex:1;}
.tbl-wrap{overflow-x:auto;}
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:720px;}
table.tbl th{background:#F1F8F4;color:var(--tx2);font-weight:600;font-size:13px;
  text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;}
table.tbl th:first-child{border-radius:10px 0 0 10px;}
table.tbl th:last-child{border-radius:0 10px 10px 0;}
table.tbl td{padding:12px 14px;border-bottom:1px solid var(--line-lt);color:var(--tx);white-space:nowrap;}
table.tbl tbody tr{cursor:pointer;transition:.14s;}
table.tbl tbody tr:hover{background:#F3FBF7;}
.td-ell{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.badge{display:inline-block;padding:1px 9px;border-radius:999px;font-size:11px;line-height:18px;font-weight:500;}
.b-alert{color:#B91C1C;background:#FEF2F2;border:1px solid #FBD5D5;}
.b-warn{color:#C2410C;background:#FFF7ED;border:1px solid #FED7AA;}
.b-ok{color:#047857;background:#ECFDF5;border:1px solid #A7F3D0;}
.b-info{color:var(--navy);background:var(--blue-lt);border:1px solid var(--blue-2);}
.b-gray{color:var(--tx3);background:#F4F7F5;border:1px solid var(--line);}

/* ---------- 政策公告列表 ---------- */
.news{padding:4px 0;}
.news-item{display:flex;gap:12px;padding:11px 18px;cursor:pointer;transition:.14s;align-items:baseline;border-radius:10px;margin:0 6px;}
.news-item:hover{background:var(--blue-lt);}
.news-item .nd{font-size:11.5px;color:var(--tx3);font-family:"DIN Alternate",Consolas,ui-monospace,monospace;flex:none;width:78px;}
.news-item .nt{font-size:12.5px;color:var(--tx);line-height:1.55;flex:1;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.news-item:hover .nt{color:var(--navy);}
.news-item .nc{flex:none;}

/* ---------- 弹窗 ---------- */
.modal-mask{position:fixed;inset:0;background:rgba(6,32,24,.52);backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);display:flex;align-items:center;
  justify-content:center;padding:32px 20px;z-index:200;opacity:0;transition:opacity .2s;
  pointer-events:none;visibility:hidden;transition:opacity .2s,visibility 0s .2s;}
.modal-mask.open{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .2s;}
.modal-panel{background:#fff;border-radius:20px;width:100%;max-height:88vh;display:flex;flex-direction:column;
  box-shadow:0 24px 64px rgba(6,32,24,.28);transform:translateY(10px) scale(.985);transition:transform .22s;}
.modal-mask.open .modal-panel{transform:none;}
.modal-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;
  border-bottom:1px solid var(--line-lt);}
.modal-hd .mt{font-size:15px;font-weight:600;color:var(--ink);
  display:flex;align-items:center;gap:9px;}
.modal-hd .mt::before{content:"";width:4px;height:16px;border-radius:3px;
  background:linear-gradient(180deg,#10B981,#047857);}
.modal-x{width:30px;height:30px;border-radius:9px;font-size:18px;line-height:1;color:var(--tx3);transition:.15s;cursor:pointer;}
.modal-x:hover{color:#B91C1C;background:#FEF2F2;}
.modal-bd{padding:20px;overflow-y:auto;}
.modal-ft{padding:14px 20px;border-top:1px solid var(--line-lt);display:flex;justify-content:flex-end;gap:10px;}
.kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line-lt);border-radius:12px;overflow:hidden;}
.kv{display:flex;border-bottom:1px solid var(--line-lt);font-size:12.5px;}
.kv:nth-last-child(1),.kv:nth-last-child(2){border-bottom:none;}
.kv span{width:100px;flex:none;background:#F8FCF9;color:var(--tx3);padding:9px 12px;
  border-right:1px solid var(--line-lt);}
.kv b{padding:9px 12px;color:var(--tx);font-weight:500;word-break:break-all;}
.blk{margin-top:16px;}
.blk .bt{font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:7px;
  display:flex;align-items:center;gap:8px;}
.blk .bt::before{content:"";width:7px;height:7px;border-radius:2px;
  background:linear-gradient(135deg,#10B981,#047857);}
.blk .bc{font-size:12.5px;color:var(--tx2);line-height:1.9;background:#F8FCF9;border:1px solid var(--line-lt);
  border-radius:12px;padding:12px 14px;text-align:justify;}
.tl{list-style:none;}
.tl li{position:relative;padding:0 0 14px 20px;}
.tl li::before{content:"";position:absolute;left:4px;top:7px;width:7px;height:7px;border-radius:50%;
  background:var(--blue);}
.tl li::after{content:"";position:absolute;left:7px;top:18px;bottom:-2px;width:1px;background:var(--line);}
.tl li:last-child::after{display:none;}
.tl li:last-child{padding-bottom:0;}
.tl .tt{display:flex;align-items:baseline;gap:10px;font-size:12.5px;color:var(--ink);font-weight:600;}
.tl .tt em{font-style:normal;font-size:11px;color:var(--tx3);font-weight:400;
  font-family:"DIN Alternate",Consolas,ui-monospace,monospace;}
.tl p{font-size:12px;color:var(--tx2);margin-top:2px;}

/* ---------- Toast ---------- */
#toast-root{position:fixed;top:76px;left:50%;transform:translateX(-50%);z-index:400;
  display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;}
.toast{background:rgba(8,46,34,.96);color:#fff;padding:10px 20px;border-radius:999px;font-size:12.5px;
  box-shadow:0 10px 26px rgba(6,32,24,.28);opacity:0;transform:translateY(-8px);
  transition:.22s;display:flex;align-items:center;gap:8px;max-width:560px;backdrop-filter:blur(8px);}
.toast.on{opacity:1;transform:none;}
.toast .ti{width:6px;height:6px;border-radius:50%;background:#6EE7B7;flex:none;}
.toast.ok .ti{background:#34D399;}
.toast.err .ti{background:#F87171;}
.toast.warn .ti{background:#FBBF24;}

/* ---------- 登录页（深绿生态 + 玻璃质感） ---------- */
/* ---------- 登录页（参考设计：全屏背景图 + 居中双栏卡片 · 浅绿环保风） ---------- */
.lg-wrap{min-height:100vh;display:flex;padding:40px 28px;
  background:
    linear-gradient(120deg,rgba(238,250,244,.88) 0%,rgba(224,243,233,.72) 50%,rgba(232,247,240,.85) 100%),
    radial-gradient(1000px 600px at 20% 12%,rgba(110,231,183,.3),transparent 60%),
    url('https://aka.doubaocdn.com/s/xiYi5tItSO') center/cover no-repeat fixed,
    linear-gradient(135deg,#DFF2E8,#C9E9DA);
  background-color:#DFF2E8;}
.login{position:relative;z-index:1;flex:none;width:100%;max-width:980px;min-height:500px;
  margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;
  border-radius:18px;overflow:hidden;
  box-shadow:0 26px 70px rgba(6,58,42,.28),0 0 0 1px rgba(255,255,255,.5);}
/* 左：玻璃品牌栏（背景图透出） */
.login-l{position:relative;color:#fff;overflow:hidden;display:flex;
  background:linear-gradient(160deg,rgba(6,78,59,.68) 0%,rgba(11,107,79,.6) 55%,rgba(14,138,99,.55) 100%);
  backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);}
.login-l .img{position:absolute;inset:0;
  background-image:url('https://aka.doubaocdn.com/s/xiYi5tItSO');
  background-size:cover;background-position:center;opacity:.28;filter:brightness(.9);}
.login-l .mask{position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(4,70,52,.5),rgba(16,120,88,.32));}
.login-l .in{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;padding:32px 44px 26px;}
.ll-brand{display:flex;align-items:center;gap:12px;}
.ll-brand .emblem{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.16);
  backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);box-shadow:none;}
.ll-brand .nm{font-size:16px;font-weight:700;letter-spacing:1px;}
.ll-brand .en{font-size:9px;color:rgba(255,255,255,.55);letter-spacing:2px;margin-top:2px;}
.ll-mid{margin:auto 0;padding:14px 0;}
.ll-rule{width:44px;height:3px;border-radius:2px;background:linear-gradient(90deg,#6EE7B7,#FCD34D);margin:0 0 18px;
  box-shadow:0 0 12px rgba(110,231,183,.6);}
.login-l h1{font-size:34px;font-weight:800;letter-spacing:6px;line-height:1.5;
  text-shadow:0 2px 18px rgba(2,30,20,.45);}
.login-l .h-sub{font-size:12px;color:rgba(255,255,255,.78);letter-spacing:2px;margin-top:12px;}
.login-l .h-desc{font-size:12.5px;color:rgba(255,255,255,.7);line-height:1.9;margin-top:12px;text-align:justify;}
.ll-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px;}
.ll-stats .s{padding:11px 16px;border-radius:14px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:.2s;}
.ll-stats .s:hover{background:rgba(255,255,255,.18);transform:translateY(-2px);}
.ll-stats .sv{font-size:22px;font-weight:700;font-family:"DIN Alternate",Consolas,ui-monospace,monospace;color:#fff;
  text-shadow:0 0 16px rgba(110,231,183,.5);}
.ll-stats .sv small{font-size:11px;font-weight:400;color:rgba(255,255,255,.7);margin-left:3px;}
.ll-stats .sk{font-size:10.5px;color:rgba(255,255,255,.65);margin-top:3px;letter-spacing:.5px;}
/* 右：白色表单（下划线输入 + 登录/注册 Tab） */
.login-r{background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:48px 56px;position:relative;}
.login-card{width:100%;max-width:360px;}
.lc-tabs{display:flex;gap:38px;margin-bottom:20px;}
.lc-tabs span{position:relative;font-size:17px;font-weight:600;color:#9AAFA3;letter-spacing:3px;
  cursor:pointer;padding-bottom:10px;transition:.18s;}
.lc-tabs span.on{color:var(--navy);font-weight:800;}
.lc-tabs span.on::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:0;
  width:28px;height:3px;border-radius:2px;background:linear-gradient(90deg,#34D399,#047857);}
.field{margin-bottom:16px;}
.field .inp{width:100%;height:40px;border:none;border-bottom:1.5px solid #E2EDE6;border-radius:0;
  padding:0 2px;font-size:14px;color:var(--ink);transition:.18s;background:transparent;}
.field .inp::placeholder{color:#A9BDB2;letter-spacing:1px;}
.field .inp:focus{border-bottom-color:var(--blue);box-shadow:none;background:transparent;outline:none;}
.cap-row{display:flex;gap:14px;align-items:center;}
.cap-row .inp{flex:1;}
#capCv{width:108px;height:40px;border-radius:6px;cursor:pointer;flex:none;box-shadow:0 0 0 1px #E2EDE6;}
.btn-login{width:100%;height:44px;background:linear-gradient(135deg,#10B981 0%,#047857 100%);
  color:#fff;border-radius:8px;font-size:15px;letter-spacing:8px;transition:.18s;font-weight:600;
  box-shadow:0 10px 24px rgba(5,150,105,.3);margin-top:6px;}
.btn-login:hover{box-shadow:0 12px 30px rgba(5,150,105,.4);transform:translateY(-1px);
  background:linear-gradient(135deg,#059669 0%,#065F46 100%);}
.btn-login:active{transform:scale(.99);}
.lc-mid{display:flex;align-items:center;justify-content:space-between;margin-top:12px;}
.rg-sel{appearance:none;-webkit-appearance:none;cursor:pointer;height:40px;
  background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236B8578' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 4px center;}
.cap-row canvas{cursor:pointer;}
.lc-mid a{font-size:12.5px;color:var(--tx3);cursor:pointer;transition:.15s;}
.lc-mid a:hover{color:var(--blue);}
.lc-foot a:hover{color:var(--blue);}
.doc-p{font-size:12.5px;line-height:2;color:var(--tx);text-align:justify;margin-bottom:10px;}
.doc-p b{color:var(--ink);}

/* ---------- 占位子页（侧边二级菜单） ---------- */
.layout{max-width:1440px;margin:0 auto;padding:14px 24px 0;
  display:grid;grid-template-columns:216px 1fr;gap:14px;align-items:start;}
.side{background:#fff;border:1px solid var(--line);border-radius:var(--card-r);box-shadow:var(--sh);
  position:sticky;top:124px;overflow:hidden;}
.side .sh{padding:13px 16px;border-bottom:1px solid var(--line-lt);font-size:13px;font-weight:600;
  color:var(--ink);background:#F8FCF9;}
.side-grp{border-bottom:1px solid var(--line-lt);}
.side-grp:last-of-type{border-bottom:none;}
.side-grp .gh{width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:11px 16px;font-size:12px;color:var(--tx3);transition:.15s;cursor:pointer;}
.side-grp .gh:hover{color:var(--navy);}
.side-grp .gh .cv{transition:.2s;font-size:10px;color:#A7B9AE;}
.side-grp.open .gh .cv{transform:rotate(180deg);}
.side-grp .gb{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.side-grp.open .gb{max-height:400px;}
.side a.si{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;
  font-size:12.5px;color:var(--tx2);cursor:pointer;transition:.14s;border-left:3px solid transparent;border-radius:0 10px 10px 0;margin-right:6px;}
.side a.si:hover{color:var(--navy);background:#F3FBF7;}
.side a.si.on{color:var(--navy);font-weight:600;background:var(--blue-lt);border-left-color:var(--blue);}
.side a.si .st{font-size:10px;color:#B91C1C;background:#FEF2F2;border-radius:999px;padding:0 6px;}
.side .tip{padding:12px 16px;font-size:11px;color:var(--tx3);line-height:1.7;border-top:1px solid var(--line-lt);}
.main-col{display:flex;flex-direction:column;gap:14px;min-width:0;}
.ph-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;}
.ph-head h2{font-size:18px;color:var(--ink);font-weight:800;}
.ph-head .ph-sub{font-size:12px;color:var(--tx3);margin-top:4px;}
.status-row{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-lt);}
.status-cell{padding:16px 22px;border-left:1px solid var(--line-lt);}
.status-cell:first-child{border-left:none;}
.status-cell .sk{font-size:11.5px;color:var(--tx3);}
.status-cell .sv{font-size:15px;font-weight:600;color:var(--ink);margin-top:4px;}
.status-cell .sv.wait{color:#EA580C;}

/* ---------- 页脚（墨绿渐变） ---------- */
.foot{margin-top:48px;background:linear-gradient(135deg,#0A3B2C 0%,#064E3B 60%,#0A4A36 100%);color:rgba(255,255,255,.78);}
.foot .in{max-width:1440px;margin:0 auto;padding:26px 24px;text-align:center;
  font-size:12px;line-height:2;}
.foot .in b{color:#fff;font-weight:500;}
.foot .fl{display:flex;justify-content:center;gap:0;margin-bottom:8px;flex-wrap:wrap;}
.foot .fl a{cursor:pointer;padding:0 12px;border-right:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.78);transition:.15s;}
.foot .fl a:last-child{border-right:none;}
.foot .fl a:hover{color:#6EE7B7;}

/* ---------- 三大产业链概况 ---------- */
.chains{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.chain{padding:18px 20px;border-left:1px solid var(--line-lt);cursor:pointer;transition:.18s;position:relative;}
.chain:first-child{border-left:none;}
.chain:hover{background:#F5FBF8;}
.chain:hover .ch-name{color:var(--navy);}
.chain .ch-h{display:flex;align-items:center;gap:9px;margin-bottom:10px;}
.chain .ch-dot{width:10px;height:10px;border-radius:3px;flex:none;}
.chain .ch-name{font-size:13.5px;font-weight:600;color:var(--ink);transition:.15s;}
.chain .ch-tag{margin-left:auto;font-size:10.5px;color:var(--tx3);border:1px solid var(--line);border-radius:999px;padding:1px 8px;white-space:nowrap;}
.chain .ch-flow{display:flex;align-items:center;gap:4px;margin:12px 0;font-size:11.5px;color:var(--tx2);flex-wrap:wrap;}
.chain .ch-flow .step{background:#F2FAF6;border:1px solid var(--line-lt);border-radius:8px;padding:3px 9px;white-space:nowrap;}
.chain .ch-flow .ar{color:#A7B9AE;}
.chain .ch-m{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:6px;}
.chain .ch-m .mi{display:flex;flex-direction:column;}
.chain .ch-m .mi .ml{font-size:11px;color:var(--tx3);}
.chain .ch-m .mi .mv{font-size:17px;font-weight:700;color:var(--navy);font-family:"DIN Alternate",Consolas,monospace;}
.chain .ch-m .mi .mv small{font-size:10.5px;color:var(--tx2);font-weight:500;margin-left:2px;}
.chain .ch-lead{font-size:11.5px;color:var(--tx2);margin-top:10px;line-height:1.6;}
.chain .ch-lead b{color:var(--tx);font-weight:600;}
.chain .ch-nat{margin-top:8px;font-size:11px;color:#065F46;background:#ECFDF5;border:1px solid #BBF7D0;
  border-radius:8px;padding:5px 9px;line-height:1.6;}
.chain .ch-nat span{display:inline-block;margin-right:6px;padding:0 5px;border-radius:4px;
  background:#059669;color:#fff;font-size:10px;line-height:15px;vertical-align:1px;}
.chain .ch-nat b{color:#065F46;font-weight:700;font-family:"DIN Alternate",Consolas,monospace;}
.chain .ch-weak{margin-top:8px;font-size:11px;color:#C2410C;background:#FFF7ED;border:1px solid #FED7AA;border-radius:8px;padding:5px 9px;line-height:1.6;}
.chain .ch-weak b{color:#C2410C;font-weight:600;}

/* ---------- 应用平台运行监测 ---------- */
.plat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0;}
.plat{padding:16px 16px;border-left:1px solid var(--line-lt);transition:.18s;cursor:pointer;}
.plat:first-child{border-left:none;}
.plat:hover{background:#F5FBF8;}
.plat .pn{font-size:13px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px;}
.plat .pn .pd{width:9px;height:9px;border-radius:3px;background:var(--navy);flex:none;}
.plat .pt{font-size:10.5px;color:var(--tx3);margin:4px 0 12px;}
.plat .pi{display:flex;flex-direction:column;gap:8px;}
.plat .pi .pr{display:flex;align-items:baseline;justify-content:space-between;font-size:11px;color:var(--tx3);}
.plat .pi .pr b{font-size:15px;color:var(--navy);font-weight:700;font-family:"DIN Alternate",Consolas,monospace;}
.plat .pi .pr b small{font-size:10px;color:var(--tx2);font-weight:500;margin-left:2px;}

/* ---------- 供应链平台专属组件 ---------- */
.sum-strip{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line-lt);}
.sum{padding:16px;border-left:1px solid var(--line-lt);}
.sum:first-child{border-left:none;}
.sum .sk{font-size:11.5px;color:var(--tx3);}
.sum .sv{font-size:21px;font-weight:700;color:var(--navy);line-height:1.25;margin-top:3px;font-family:"DIN Alternate",Consolas,monospace;}
.sum .sv small{font-size:11px;font-weight:500;color:var(--tx2);margin-left:3px;}
.sum .sn{font-size:11px;color:var(--tx3);margin-top:2px;}

/* 子页横幅 banner */
.banner{position:relative;overflow:hidden;border-radius:20px;min-height:120px;
  background:linear-gradient(120deg,#F1FBF5 0%,#F7FDFA 55%,#E9F7EF 100%);
  border:1px solid #DFEEE5;box-shadow:var(--sh);}
.banner::before{content:"";position:absolute;right:-80px;top:-120px;width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle,rgba(16,185,129,.16),rgba(16,185,129,0) 65%);}
.banner .b-img{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.22;mix-blend-mode:luminosity;}
.banner .b-mask{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.9),rgba(255,255,255,.45));}
.banner .b-in{position:relative;z-index:2;padding:20px 26px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.banner .b-txt b{font-size:18px;color:var(--ink);font-weight:800;}
.banner .b-txt b::before{content:"";width:5px;height:20px;border-radius:4px;
  background:linear-gradient(180deg,#34D399,#047857);margin-right:11px;vertical-align:-3px;display:inline-block;}
.banner .b-txt p{font-size:12.5px;color:var(--tx3);margin-top:7px;max-width:600px;line-height:1.75;padding-left:16px;}
.banner .b-stats{margin-left:auto;display:flex;gap:0;}
.banner .b-stats .bs{padding:0 24px;border-left:1px solid #DCEAE1;}
.banner .b-stats .bs:first-child{border-left:none;}
.banner .bv{font-size:23px;font-weight:700;color:var(--navy);font-family:"DIN Alternate",Consolas,monospace;}
.banner .bv small{font-size:11px;font-weight:500;color:var(--tx2);margin-left:2px;}
.banner .bk{font-size:11px;color:var(--tx3);margin-top:2px;}

/* 内部二级标签 */
.subtabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);
  padding:6px 12px;background:#F8FCF9;border-radius:var(--card-r) var(--card-r) 0 0;flex-wrap:wrap;}
.subtabs button{height:38px;padding:0 16px;font-size:13px;color:var(--tx2);position:relative;
  transition:.18s;letter-spacing:.3px;border-radius:10px;cursor:pointer;}
.subtabs button:hover{color:var(--navy);background:#fff;}
.subtabs button.on{color:var(--navy);font-weight:600;background:#fff;box-shadow:0 2px 8px rgba(16,61,44,.07);}
.subtabs button.on::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:2px;width:18px;height:3px;
  border-radius:3px;background:linear-gradient(90deg,#10B981,#047857);}
.subtabs .st-sp{flex:1;}

/* 现货商城网格 */
.mall-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:16px;}
.mall{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 15px;
  transition:.18s;cursor:pointer;position:relative;}
.mall:hover{border-color:#BEE9D3;box-shadow:0 10px 26px rgba(16,61,44,.10);transform:translateY(-2px);}
.mall .mn{font-size:13.5px;font-weight:600;color:var(--ink);}
.mall .mg{font-size:11px;color:var(--tx3);margin:3px 0 9px;}
.mall .mp{font-size:19px;font-weight:700;color:var(--navy);font-family:"DIN Alternate",Consolas,monospace;}
.mall .mp small{font-size:11px;color:var(--tx2);font-weight:500;margin-left:3px;}
.mall .mi{display:flex;justify-content:space-between;font-size:11px;color:var(--tx3);margin-top:9px;
  padding-top:9px;border-top:1px solid var(--line-lt);}
.mall .ms{position:absolute;top:12px;right:12px;font-size:10.5px;padding:1px 8px;border-radius:999px;}
.mall .ms.on{color:#047857;background:#ECFDF5;border:1px solid #A7F3D0;}
.mall .ms.tight{color:#C2410C;background:#FFF7ED;border:1px solid #FED7AA;}
.mall .ms.pre{color:var(--navy);background:var(--blue-lt);border:1px solid var(--blue-2);}

/* 开票统计小卡 */
.inv-stat{display:grid;grid-template-columns:repeat(4,1fr);}
.inv-stat .is{padding:16px;border-left:1px solid var(--line-lt);}
.inv-stat .is:first-child{border-left:none;}
.inv-stat .is .il{font-size:11.5px;color:var(--tx3);}
.inv-stat .is .iv{font-size:21px;font-weight:700;color:var(--navy);margin-top:3px;font-family:"DIN Alternate",Consolas,monospace;}
.inv-stat .is .iv small{font-size:11px;color:var(--tx2);font-weight:500;margin-left:3px;}

/* 票据预览（模拟增值税发票） */
.invoice{background:#fff;border:1px solid #DCE8E1;border-radius:10px;padding:16px 18px;max-width:520px;margin:0 auto;
  font-size:12.5px;color:#33473D;position:relative;}
.invoice .inv-t{text-align:center;font-size:16px;font-weight:700;letter-spacing:2px;color:#17251F;margin-bottom:2px;}
.invoice .inv-st{text-align:center;font-size:11px;color:#86988D;margin-bottom:10px;letter-spacing:1px;}
.invoice .inv-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dashed #DCE8E1;font-size:12px;}
.invoice .inv-row b{font-weight:600;color:#17251F;}
.invoice .inv-total{display:flex;justify-content:space-between;margin-top:10px;padding-top:8px;
  border-top:1px solid #DCE8E1;font-size:14px;font-weight:700;color:var(--navy);}
.invoice .inv-seal{position:absolute;right:22px;bottom:36px;width:78px;height:78px;border:2px solid #DC2626;border-radius:50%;
  color:#DC2626;display:flex;align-items:center;justify-content:center;text-align:center;font-size:11px;
  transform:rotate(-14deg);opacity:.75;line-height:1.4;}

/* ---------- 能耗双碳监测 ---------- */
.e2{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line-lt);}
.e2 .ei{padding:16px 18px;border-left:1px solid var(--line-lt);}
.e2 .ei:first-child{border-left:none;}
.e2 .ei .el{font-size:11.5px;color:var(--tx3);}
.e2 .ei .ev{font-size:23px;font-weight:700;color:var(--navy);margin-top:3px;line-height:1.2;font-family:"DIN Alternate",Consolas,monospace;}
.e2 .ei .ev small{font-size:11px;color:var(--tx2);font-weight:500;margin-left:3px;}

/* ---------- 响应式 ---------- */
@media (max-width:1440px){
  .tiles{grid-template-columns:repeat(4,1fr);}
  .sum-strip{grid-template-columns:repeat(3,1fr);} .sum{border-top:1px solid var(--line-lt);} .sum:nth-child(-n+3){border-top:none;}
  .mall-grid{grid-template-columns:repeat(4,1fr);}
  .kpi-band{grid-template-columns:repeat(3,1fr);} .kpi{border-top:1px solid var(--line-lt);} .kpi:nth-child(-n+3){border-top:none;} .kpi:nth-child(4){border-left:none;}
  .plat-grid{grid-template-columns:repeat(3,1fr);} .plat{border-top:1px solid var(--line-lt);} .plat:nth-child(4){border-left:none;} .plat:nth-child(-n+3){border-top:none;}
}
@media (max-width:1280px){
  .hero-l{max-width:100%;} .hero-l h1{font-size:25px;}
  .chains{grid-template-columns:1fr;} .chain{border-left:none;border-top:1px solid var(--line-lt);} .chain:first-child{border-top:none;}
  .e2{grid-template-columns:1fr;} .e2 .ei{border-left:none;border-top:1px solid var(--line-lt);} .e2 .ei:first-child{border-top:none;}
  .mall-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:1100px){
  .c3,.c4,.c5,.c6,.c7,.c8{grid-column:span 12;}
  .tiles{grid-template-columns:repeat(2,1fr);}
  .login{grid-template-columns:1fr;} .login-l{min-height:360px;}
  .sum-strip{grid-template-columns:repeat(2,1fr);} .sum:nth-child(-n+2){border-top:none;}
  .inv-stat{grid-template-columns:repeat(2,1fr);} .inv-stat .is{border-top:1px solid var(--line-lt);} .inv-stat .is:nth-child(-n+2){border-top:none;}
  .plat-grid{grid-template-columns:repeat(2,1fr);} .plat:nth-child(-n+2){border-top:none;}
}

/* =====================================================================
   供需对接（门户首页 + 供应链平台共用）
   ===================================================================== */
.sd-bar{display:flex;align-items:center;gap:26px;padding:13px 18px;border-bottom:1px solid var(--line-lt);
  background:linear-gradient(90deg,#F6FCF8 0%,#FFFFFF 70%);border-radius:var(--card-r) var(--card-r) 0 0;flex-wrap:wrap;}
.sd-bar .sp{flex:1;min-width:8px;}
.sd-kpi{display:flex;flex-direction:column;line-height:1.3;}
.sd-kpi b{font-size:20px;font-weight:700;color:var(--navy);font-family:"DIN Alternate",Consolas,monospace;}
.sd-kpi b small{font-size:10.5px;font-weight:500;color:var(--tx2);margin-left:2px;}
.sd-kpi span{font-size:11.5px;color:var(--tx3);}
.sd-board{display:grid;grid-template-columns:1fr 1fr;}
.sd-col{padding-bottom:4px;}
.sd-col + .sd-col{border-left:1px solid var(--line-lt);}
.sd-col-hd{display:flex;align-items:center;gap:8px;padding:12px 18px 9px;}
.sd-col-hd b{font-size:13.5px;font-weight:600;color:var(--ink);}
.sd-col-hd .n{font-size:11.5px;color:var(--tx3);}
.sd-item{display:flex;align-items:center;gap:12px;padding:10px 18px;border-top:1px solid var(--line-lt);
  cursor:pointer;transition:.15s;}
.sd-item:hover{background:#F3FBF7;}
.sd-kind{flex:none;font-size:11px;line-height:18px;padding:1px 9px;border-radius:999px;font-weight:500;white-space:nowrap;}
.sd-kind.sup{color:#047857;background:#ECFDF5;border:1px solid #A7F3D0;}
.sd-kind.dem{color:#B45309;background:#FFFBEB;border:1px solid #FDE68A;}
.sd-main{flex:1;min-width:0;}
.sd-t{font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sd-t small{font-weight:400;font-size:11.5px;color:var(--tx3);margin-left:6px;}
.sd-m{font-size:11.5px;color:var(--tx3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sd-num{flex:none;width:78px;text-align:right;}
.sd-num b{display:block;font-size:14px;font-weight:700;color:var(--navy);line-height:1.3;
  font-family:"DIN Alternate",Consolas,monospace;}
.sd-num span{display:block;font-size:10.5px;color:var(--tx3);}
.sd-score{flex:none;width:66px;}
.sd-score i{display:block;height:5px;border-radius:3px;background:#E7F0EA;position:relative;overflow:hidden;}
.sd-score i::after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--w,60%);
  background:linear-gradient(90deg,#34D399,#059669);border-radius:3px;}
.sd-score em{display:block;font-style:normal;font-size:10.5px;color:var(--tx3);margin-top:3px;text-align:right;}
.sd-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px;}
.sd-card{position:relative;border:1px solid var(--line);border-radius:14px;background:#fff;
  padding:14px 15px 12px;cursor:pointer;transition:.18s;}
.sd-card:hover{border-color:#BEE9D3;box-shadow:0 10px 26px rgba(16,61,44,.10);transform:translateY(-2px);}
.sd-card-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.sd-card .sd-name{font-size:14.5px;font-weight:600;color:var(--ink);margin-top:9px;}
.sd-card .sd-name small{font-size:11.5px;font-weight:400;color:var(--tx3);margin-left:6px;}
.sd-card .sd-price{font-size:21px;font-weight:700;color:var(--navy);margin-top:6px;
  font-family:"DIN Alternate",Consolas,monospace;line-height:1.2;}
.sd-card .sd-price small{font-size:11px;font-weight:500;color:var(--tx2);margin-left:3px;}
.sd-card .sd-meta{font-size:11.5px;color:var(--tx3);margin-top:4px;}
.sd-card .sd-ent{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--tx2);
  margin-top:10px;padding-top:9px;border-top:1px solid var(--line-lt);}
.sd-card .sd-ent span{color:var(--tx3);flex:none;}
.sd-card .sd-foot{font-size:11px;color:var(--blue);margin-top:6px;}
@media (max-width:1280px){ .sd-cards{grid-template-columns:repeat(2,1fr);} }
@media (max-width:1100px){
  .sd-board{grid-template-columns:1fr;}
  .sd-col + .sd-col{border-left:none;border-top:1px solid var(--line);}
  .sd-cards{grid-template-columns:1fr;}
}

/* ===== 共享机修 · 服务商列表 ===== */
.rs-shop{padding:12px 16px;border-top:1px solid var(--line-lt);cursor:pointer;transition:.15s;}
.rs-shop:first-child{border-top:none;}
.rs-shop:hover{background:#F3FBF7;}
.rs-shop .rn{font-size:13px;font-weight:600;color:var(--ink);line-height:1.45;}
.rs-shop .rm{font-size:11.5px;color:var(--tx3);margin-top:2px;line-height:1.6;}
.rs-shop .rf{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--tx3);margin-top:6px;}
.rs-shop .rf b{color:var(--gold);font-weight:600;flex:none;}

/* =====================================================================
   表格分页（>20 条按每页 10 条分页，≤20 条仅显示总数）
   ===================================================================== */
.pager{display:flex;align-items:center;gap:16px;padding:12px 18px;border-top:1px solid var(--line-lt);
  background:#FCFEFD;flex-wrap:wrap;}
.pager .pg-info{font-size:12.5px;color:var(--tx3);}
.pager .pg-info b{color:var(--navy);font-weight:600;font-family:"DIN Alternate",Consolas,monospace;font-size:13px;}
.pager .pg-info em{font-style:normal;color:var(--tx2);}
.pager .pg-list{display:flex;align-items:center;gap:5px;margin-left:auto;}
.pg-btn{min-width:29px;height:29px;padding:0 9px;border:1px solid var(--line);background:#fff;border-radius:6px;
  font-size:12.5px;color:var(--tx2);cursor:pointer;transition:.14s;font-family:inherit;line-height:1;}
.pg-btn:hover:not(:disabled):not(.on){border-color:#A7E3C6;color:var(--navy);background:#F3FBF7;}
.pg-btn.on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600;}
.pg-btn:disabled{opacity:.35;cursor:not-allowed;}
.pg-dots{min-width:18px;text-align:center;color:var(--tx3);font-size:12.5px;}
.pg-jump{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--tx3);}
.pg-jump input{width:44px;height:29px;text-align:center;border:1px solid var(--line);border-radius:6px;
  font-size:12.5px;color:var(--ink);font-family:inherit;outline:none;}
.pg-jump input:focus{border-color:#7FD3AC;}

/* =====================================================================
   智能体市场卡片
   ===================================================================== */
.ag-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
@media (max-width:1400px){ .ag-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:1120px){ .ag-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:760px){ .ag-grid{grid-template-columns:1fr;} }
.ag-card{position:relative;display:flex;flex-direction:column;padding:12px 13px 0;border:1px solid var(--line-lt);
  border-radius:12px;background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s;overflow:hidden;}
.ag-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,#34D399,#0D9488);opacity:0;transition:.2s;}
.ag-card:hover{border-color:#A9E5CC;box-shadow:0 14px 32px rgba(16,61,44,.12);transform:translateY(-3px);}
.ag-card:hover::before{opacity:1;}
.ag-hd{display:flex;gap:10px;align-items:flex-start;}
.ag-ava{border-radius:14px;flex:none;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#EAF9F1,#D3F0E1);border:1px solid #DCF2E6;line-height:1;}
.ag-hd-r{flex:1;min-width:0;padding-right:2px;}
.ag-name{font-size:14.5px;font-weight:700;color:var(--ink);line-height:1.35;padding-right:40px;}
.ag-meta{display:flex;align-items:center;gap:6px;margin-top:5px;min-width:0;}
.ag-field{font-size:11px;line-height:18px;padding:1px 8px;border-radius:999px;color:#047857;background:#ECFDF5;
  border:1px solid #A7F3D0;white-space:nowrap;flex:none;}
.ag-dev{font-size:11.5px;color:var(--tx3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ag-badge{position:absolute;top:12px;right:12px;}
.ag-desc{font-size:12.5px;color:var(--tx2);line-height:1.58;margin-top:8px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px;}
.ag-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:8px -13px 0;padding:6px 0;
  border-top:1px dashed var(--line-lt);background:#FAFDFB;}
.ag-stat{text-align:center;position:relative;}
.ag-stat + .ag-stat::before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:1px;background:var(--line-lt);}
.ag-stat b{display:block;font-size:14.5px;font-weight:700;color:var(--navy);line-height:1.3;
  font-family:"DIN Alternate",Consolas,monospace;}
.ag-stat b.gold{color:#D4A017;}
.ag-stat b i{font-style:normal;font-size:10.5px;margin-right:1px;}
.ag-stat b small{font-size:11px;font-weight:500;color:var(--tx2);margin-left:1px;font-family:inherit;}
.ag-stat span{font-size:11px;color:var(--tx3);}
.ag-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0 10px;}
.ag-free{font-size:14.5px;font-weight:700;color:#059669;}
.ag-price{font-size:15px;font-weight:700;color:#C62828;line-height:1.2;white-space:nowrap;
  font-family:"DIN Alternate",Consolas,monospace;}
.ag-price em{font-style:normal;font-size:11px;font-weight:600;margin:0 1px;font-family:inherit;}
.ag-price u{text-decoration:none;font-size:10.5px;font-weight:500;color:var(--tx3);margin-left:5px;font-family:inherit;}

/* 卡片底部「立即体验」：无底色文字链接 */
.ag-go{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;font-weight:600;
  color:var(--navy);cursor:pointer;transition:.15s;user-select:none;}
.ag-go::after{content:"→";font-size:12px;transition:transform .15s;}
.ag-go:hover{color:#059669;}
.ag-go:hover::after{transform:translateX(3px);}

/* ---------- Hero 右侧：1+6+1 总体架构可视化 ---------- */
.hero-arch{position:absolute;right:38px;top:26px;bottom:50px;width:338px;z-index:2;
  display:flex;flex-direction:column;align-items:stretch;pointer-events:none;}
.arch-top{flex:none;display:flex;justify-content:center;}
.arch-node{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 22px;
  border-radius:999px;background:linear-gradient(95deg,#065F46,#0E9F6E);color:#fff;font-size:13.5px;font-weight:600;
  box-shadow:0 6px 18px rgba(5,150,105,.32);cursor:pointer;transition:.18s;letter-spacing:.5px;}
.arch-node:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(5,150,105,.42);}
.arch-node .d{width:8px;height:8px;border-radius:50%;background:#FCD34D;box-shadow:0 0 0 4px rgba(252,211,77,.25);}
.arch-link{flex:1;min-height:12px;display:flex;justify-content:center;}
.arch-link i{width:2px;background:linear-gradient(180deg,#0E9F6E 60%,rgba(14,159,110,.15));position:relative;}
.arch-link i::after{content:"";position:absolute;left:50%;width:6px;height:6px;border-radius:50%;background:#0E9F6E;
  transform:translateX(-50%);animation:archPulse 2.6s ease-in-out infinite;}
@keyframes archPulse{0%,100%{top:12%;opacity:.9}50%{top:78%;opacity:.35}}
.arch-grid{flex:none;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.arch-chip{pointer-events:auto;display:flex;align-items:center;gap:9px;padding:9px 12px;background:rgba(255,255,255,.92);
  border:1px solid #DCEAE1;border-radius:8px;cursor:pointer;transition:.16s;
  box-shadow:0 2px 8px rgba(11,46,36,.06);animation:archIn .5s ease backwards;}
.arch-chip:hover{border-color:#0E9F6E;transform:translateY(-2px);box-shadow:0 6px 16px rgba(5,150,105,.18);}
.arch-chip b{flex:none;width:24px;height:24px;border-radius:6px;color:#fff;font-size:12px;font-weight:600;
  display:inline-flex;align-items:center;justify-content:center;}
.arch-chip .t{display:flex;flex-direction:column;min-width:0;}
.arch-chip .t b{width:auto;height:auto;background:none;border-radius:0;color:#0B2E24;font-size:12.5px;
  font-weight:600;line-height:1.3;white-space:nowrap;}
.arch-chip .t i{font-style:normal;font-size:10.5px;color:var(--tx3);line-height:1.3;white-space:nowrap;}
@keyframes archIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.arch-base{flex:none;margin-top:8px;padding:9px 14px;border-radius:8px;
  background:linear-gradient(95deg,rgba(6,95,70,.92),rgba(16,185,129,.88));color:#fff;
  display:flex;align-items:center;gap:10px;justify-content:center;}
.arch-base b{font-size:12.5px;font-weight:700;letter-spacing:1px;flex:none;}
.arch-base s{flex:none;width:1px;height:14px;background:rgba(255,255,255,.4);text-decoration:none;}
.arch-base span{font-size:11px;opacity:.92;letter-spacing:.3px;white-space:nowrap;}
@media (max-width:1200px){.hero-arch{display:none}}
