/* 全能数智双碳工具 · 亮色苹果风（金属浮雕质感 + 真实立体投影） */
:root{
  /* 苹果亮色色板 */
  --bg1:#fbfbfd;             /* 顶部近白 */
  --bg2:#f0f0f3;             /* 底部苹果灰 */
  --surface:#ffffff;
  --ink:#1d1d1f;             /* 苹果近黑 */
  --ink-2:#6e6e73;           /* 次级灰 */
  --ink-3:#86868b;
  --line:rgba(0,0,0,.08);
  --line-soft:rgba(0,0,0,.05);
  --brand:#34c759;           /* 苹果绿 */
  --brand-d:#248a3d;
  --brand-soft:rgba(52,199,89,.12);
  --blue:#0071e3;            /* 苹果蓝 */
  --blue-d:#0058b0;
  --blue-soft:rgba(0,113,227,.10);
  --warn:#ff9f0a;
  --warn-soft:rgba(255,159,10,.12);
  --ok:#34c759;
  --bad:#ff3b30;
  --chip:#f5f5f7;
  --radius:22px;
  --radius-sm:13px;
  /* 立体投影：环境光 + 主投影 + 远投影（浮起感） */
  --shadow:0 1px 2px rgba(0,0,0,.05), 0 8px 20px rgba(0,0,0,.07), 0 28px 56px rgba(0,0,0,.10);
  --shadow-hover:0 2px 5px rgba(0,0,0,.06), 0 16px 34px rgba(0,0,0,.11), 0 44px 82px rgba(0,0,0,.14);
  --shadow-sm:0 1px 2px rgba(0,0,0,.05), 0 4px 12px rgba(0,0,0,.05);
  /* 金属浮雕高光：顶部内描边 */
  --bevel:inset 0 1px 0 rgba(255,255,255,.95), inset 0 0 0 1px rgba(0,0,0,.04);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;
  --ink-1:#1d1d1f;            /* 报告正文/强调文字（report.js 用，原缺失会导致颜色退化） */
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font);
  color:var(--ink); font-size:15px; line-height:1.62;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  letter-spacing:.1px;
  background-color:var(--bg2);
  background-image:
    radial-gradient(120% 60% at 50% -10%, rgba(52,199,89,.10), transparent 55%),
    radial-gradient(90% 50% at 90% 0%, rgba(0,113,227,.08), transparent 50%),
    linear-gradient(180deg, var(--bg1) 0%, var(--bg2) 55%, var(--bg2) 100%);
  background-attachment:fixed;
  min-height:100vh;
}
a{color:var(--blue); text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1080px; margin:0 auto; padding:0 22px}

/* 顶栏 · 亮色毛玻璃（悬浮） */
.topbar{
  background:rgba(251,251,253,.72); backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid rgba(0,0,0,.07);
  box-shadow:0 1px 0 rgba(255,255,255,.6), 0 4px 20px rgba(0,0,0,.04);
  position:sticky; top:0; z-index:30;
}
.topbar .wrap{display:flex; align-items:center; height:64px; justify-content:space-between}
.logo{display:flex; align-items:center; gap:11px; font-weight:600; font-size:18px; color:var(--ink); letter-spacing:-.2px}
.logo .dot{
  width:30px; height:30px; border-radius:9px;
  background:linear-gradient(150deg, #ffffff 0%, #e8e8ed 45%, #b9b9be 75%, #f2f2f5 100%);
  display:inline-flex; align-items:center; justify-content:center;
  color:#1d1d1f; font-size:15px; font-weight:800;
  box-shadow:0 2px 6px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.9), inset 0 -1px 2px rgba(0,0,0,.12);
}
.nav{display:flex; gap:16px; align-items:center; flex-wrap:wrap}
.nav-sep{width:1px; height:18px; background:rgba(0,0,0,.12); margin:0 2px}
.nav-search{display:flex; align-items:center; margin-left:2px}
.nav-search input{
  width:172px; height:34px; box-sizing:border-box;
  border:1px solid rgba(0,0,0,.12); border-radius:18px;
  padding:0 14px; font-size:13px; background:rgba(255,255,255,.7);
  color:var(--ink); font-family:inherit;
}
.nav-search input:focus{outline:none; border-color:var(--brand); background:#fff}
.nav-search input::placeholder{color:rgba(0,0,0,.35)}
.nav a{color:var(--ink-2); font-size:14px; font-weight:400}
.nav a:hover{color:var(--ink); text-decoration:none}

/* 按钮 · 金属浮雕 + 苹果绿 */
.btn{
  border:none; background:#fff; color:var(--ink);
  padding:10px 22px; border-radius:980px; font-size:14px; font-weight:500; cursor:pointer;
  transition:.22s cubic-bezier(.3,.7,.4,1);
  box-shadow:0 1px 2px rgba(0,0,0,.06), 0 3px 10px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.9), inset 0 0 0 1px rgba(0,0,0,.05);
}
.btn:hover{transform:translateY(-1px); box-shadow:0 2px 4px rgba(0,0,0,.07), 0 8px 18px rgba(0,0,0,.09), inset 0 1px 0 rgba(255,255,255,.95)}
.btn:active{transform:translateY(0); box-shadow:inset 0 2px 5px rgba(0,0,0,.12)}
.btn.solid{
  background:linear-gradient(180deg, #44d76a 0%, #2bb14e 100%);
  color:#fff; font-weight:600;
  box-shadow:0 2px 6px rgba(52,199,89,.4), 0 8px 20px rgba(52,199,89,.28), inset 0 1px 0 rgba(255,255,255,.45);
}
.btn.solid:hover{background:linear-gradient(180deg, #4fe277 0%, #2fbf55 100%); box-shadow:0 3px 8px rgba(52,199,89,.45), 0 12px 26px rgba(52,199,89,.34), inset 0 1px 0 rgba(255,255,255,.5)}
.btn:disabled{opacity:.4; cursor:not-allowed; transform:none; box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}
.btn.ghost{background:transparent; color:var(--ink-2); box-shadow:inset 0 0 0 1px rgba(0,0,0,.10)}
.btn.ghost:hover{background:rgba(0,0,0,.03); color:var(--ink)}

/* Hero · 立体大标题 + 极淡舞台光 */
.hero{position:relative; padding:84px 0 44px; text-align:center; overflow:hidden}
.hero::before{
  content:""; position:absolute; top:-160px; left:50%; transform:translateX(-50%);
  width:560px; height:380px;
  background:radial-gradient(closest-side, rgba(52,199,89,.16), rgba(0,113,227,.08), transparent 70%);
  filter:blur(10px); z-index:0; pointer-events:none;
}
.hero > *{position:relative; z-index:1}
.hero h1{
  font-size:46px; font-weight:700; margin:0 0 12px; letter-spacing:-1.2px; line-height:1.08;
  color:var(--ink);
  text-shadow:0 1px 0 rgba(255,255,255,.8), 0 2px 14px rgba(0,0,0,.04);
}
.hero .sub{color:var(--ink-2); font-size:17px; margin:0 auto 32px; max-width:680px; line-height:1.6}

/* 计算器卡片 · 白浮玻璃 + 浮雕边 */
.calc{
  background:var(--surface); border-radius:var(--radius);
  box-shadow:var(--shadow), var(--bevel);
  max-width:800px; margin:0 auto; padding:32px 32px 28px; text-align:left;
  transition:.3s;
}
.calc:hover{box-shadow:var(--shadow-hover), var(--bevel)}
.calc h2{font-size:19px; margin:0 0 4px; display:flex; align-items:center; gap:9px; font-weight:600}
.calc .tag{font-size:12px; color:#fff; background:linear-gradient(180deg,#44d76a,#2bb14e); padding:3px 11px; border-radius:980px; font-weight:700; letter-spacing:.3px; box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.calc .hint{color:var(--ink-2); font-size:13px; margin:0 0 20px; line-height:1.55}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:14px 18px}
.field label{display:block; font-size:13px; color:var(--ink-2); margin-bottom:6px; font-weight:500}
.field input,.field select{
  width:100%; padding:12px 14px; border:1px solid rgba(0,0,0,.10);
  border-radius:var(--radius-sm); font-size:15px; background:#fff;
  outline:none; transition:.2s; font-family:var(--font); color:var(--ink);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.04);
}
.field input:focus,.field select:focus{border-color:var(--brand); box-shadow:0 0 0 4px var(--brand-soft), inset 0 1px 2px rgba(0,0,0,.03)}
.row-actions{display:flex; gap:10px; margin-top:22px; align-items:center}
.result{margin-top:22px; border-top:1px solid var(--line-soft); padding-top:20px}
.result .grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:12px}
.metric{
  background:#fff; border-radius:15px; padding:16px;
  box-shadow:var(--shadow-sm), var(--bevel);
}
.metric .k{font-size:12px; color:var(--ink-2); font-weight:500}
.metric .v{font-size:23px; font-weight:600; margin-top:5px; letter-spacing:-.4px; font-variant-numeric:tabular-nums}
.metric .v small{font-size:12px; color:var(--ink-2); font-weight:500}
.benefit{margin-top:14px; display:grid; grid-template-columns:1fr 1fr; gap:12px}
.benefit .b{
  background:#fff; border-radius:15px; padding:15px;
  box-shadow:var(--shadow-sm), var(--bevel);
}
.benefit .b .k{font-size:12px; color:var(--ink-2); font-weight:500}
.benefit .b .v{font-size:20px; font-weight:600; color:var(--ink); margin-top:4px; font-variant-numeric:tabular-nums}
.note{font-size:12px; color:var(--ink-3); margin-top:12px; line-height:1.55}

/* 分类卡片 · 白浮玻璃 + 顶部横幅图标区（覆盖上方约1/5） */
.cats{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:36px 0 10px}
.cat{
  display:flex; flex-direction:column; align-items:flex-start;
  background:var(--surface); border-radius:var(--radius); padding:22px 20px;
  box-shadow:var(--shadow), var(--bevel);
  transition:.28s cubic-bezier(.3,.7,.4,1); cursor:pointer;
  overflow:hidden;
}
.cat:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-hover), var(--bevel);
  text-decoration:none;
}
.cat:hover .ic img{transform:scale(1.08)}
.cat .ic{
  width:calc(100% + 40px); height:84px; display:flex; align-items:center; justify-content:flex-start;
  background:
    url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='nf'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23nf)' opacity='0.10'/%3E%3C/svg%3E"),
    linear-gradient(180deg, rgba(247,248,250,.94), rgba(238,240,243,.94));
  border-radius:22px 22px 0 0; margin:-22px -20px 14px; padding:8px 8px 8px 22px;
  box-shadow:0 4px 10px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.9), inset 0 -1px 0 rgba(0,0,0,.04);
  backdrop-filter: blur(12px) saturate(145%);
  -webkit-backdrop-filter: blur(12px) saturate(145%);
  transition:background .3s cubic-bezier(.3,.7,.4,1);
}
.cat .ic img{width:66px; height:66px; object-fit:contain; display:block; border-radius:10px; transition:transform .3s cubic-bezier(.3,.7,.4,1)}
.cat .t{font-size:16px; font-weight:600; margin:0 0 5px; color:var(--ink); letter-spacing:-.2px}
.cat .d{font-size:12.5px; color:var(--ink-2); line-height:1.5}
.cat .go{margin-top:14px; font-size:13px; color:var(--brand); font-weight:600}

/* 二级页 */
.page-head{padding:32px 0 8px}
.page-head h1{font-size:27px; margin:0 0 5px; font-weight:700; letter-spacing:-.5px}
.page-head .sub{color:var(--ink-2); font-size:14px; margin:0}
.panel{
  background:var(--surface); border-radius:var(--radius); box-shadow:var(--shadow), var(--bevel);
  padding:24px; margin:18px 0;
}
.panel h3{margin:0 0 14px; font-size:16px; display:flex; align-items:center; gap:8px; font-weight:600}
.list{display:flex; flex-direction:column; gap:10px}
.item{
  display:flex; align-items:center; justify-content:space-between;
  background:#fff; border:1px solid var(--line-soft);
  border-radius:15px; padding:13px 16px;
  box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9);
}
.item .nm{font-weight:600}
.item .ds{font-size:12px; color:var(--ink-2)}
.badge{font-size:12px; padding:3px 11px; border-radius:980px; background:var(--chip); color:var(--ink-2); font-weight:500}
.badge.ok{background:var(--brand-soft); color:var(--brand-d); font-weight:600}
.badge.no{background:rgba(255,59,48,.12); color:var(--bad); font-weight:600}

/* 上传区 */
.drop{
  border:1.5px dashed rgba(0,0,0,.18); border-radius:16px; padding:28px;
  text-align:center; color:var(--ink-2); cursor:pointer; transition:.2s;
  background:linear-gradient(180deg,#fafafa,#f2f2f5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.drop:hover{border-color:var(--brand); color:var(--brand-d); background:var(--brand-soft)}
.drop.drag{border-color:var(--brand); background:var(--brand-soft)}
.up-list{margin-top:12px; display:flex; flex-direction:column; gap:8px}
.up{display:flex; align-items:center; justify-content:space-between; background:#fff; border-radius:12px; padding:10px 14px; font-size:13px; box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9)}
.up .x{cursor:pointer; color:var(--bad)}

/* 生成 / 报告 */
.genbar{display:flex; align-items:center; gap:14px; margin-top:8px}
.genbar .state{font-size:13px; color:var(--ink-2)}
.progress{height:6px; background:rgba(0,0,0,.07); border-radius:980px; overflow:hidden; margin-top:10px}
.progress i{display:block; height:100%; width:0; background:linear-gradient(90deg,#44d76a,#2bb14e); border-radius:980px; transition:.4s; box-shadow:0 0 8px rgba(52,199,89,.4)}

/* 报告视图 */
.report{
  background:var(--surface); border-radius:var(--radius); padding:36px 42px; margin:18px 0;
  box-shadow:var(--shadow), var(--bevel);
}
.report h1{font-size:23px; border-bottom:2px solid var(--brand); padding-bottom:12px; font-weight:700; letter-spacing:-.3px}
.report h2{font-size:16px; margin:24px 0 10px; color:var(--brand-d); font-weight:600}
.report table{width:100%; border-collapse:collapse; margin:8px 0; font-size:13.5px; border-radius:12px; overflow:hidden; box-shadow:var(--shadow-sm)}
.report th,.report td{border:1px solid var(--line-soft); padding:9px 12px; text-align:left}
.report th{background:#f5f5f7; font-weight:600}
.report .kv{display:grid; grid-template-columns:180px 1fr; gap:4px 14px; font-size:13.5px}
.report .kv b{color:var(--ink-2); font-weight:600}
.pay-mask{filter:blur(6px); user-select:none; pointer-events:none}

/* 报告深化：执行摘要 / 改进建议 / 章节色条 / 对标条形图图例 */
.report h2{position:relative; padding-left:14px; border-left:4px solid var(--brand); border-radius:2px}
.report h2:first-of-type{margin-top:8px}
.exec-sum{background:linear-gradient(180deg,rgba(48,209,88,.10),rgba(48,209,88,.04)); border:1px solid rgba(48,209,88,.22); border-radius:14px; padding:14px 18px; margin:10px 0 4px}
.exec-sum ul{margin:0; padding-left:20px}
.exec-sum li{margin:7px 0; line-height:1.6; font-size:13.5px; color:var(--ink-1)}
.advice{background:#fafafc; border:1px solid var(--line-soft); border-radius:14px; padding:12px 18px; margin:10px 0 4px}
.advice ul{margin:0; padding-left:20px; list-style:none}
.advice li{margin:9px 0; line-height:1.62; font-size:13.5px; color:var(--ink-1); display:flex; gap:10px; align-items:flex-start}
.advice .advice-p{flex:none; font-size:11px; font-weight:700; color:#fff; padding:2px 9px; border-radius:980px; white-space:nowrap; box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.advice .p-高{background:linear-gradient(180deg,#ff6b5e,#ff453a)}
.advice .p-中{background:linear-gradient(180deg,#ffb340,#ff9f0a)}
.advice .p-低{background:linear-gradient(180deg,#5ac8fa,#0a84ff)}
/* ESG 报告：E/S/G 披露对照表 */
.esg-ch{display:flex; align-items:center; gap:10px; margin-top:22px; padding:9px 0 9px 14px; border-left:5px solid var(--brand,#0a84ff);
  background:linear-gradient(90deg,rgba(10,132,255,.08),transparent); border-radius:0 10px 10px 0; font-size:17px}
.esg-letter{flex:none; width:30px; height:30px; border-radius:9px; background:linear-gradient(180deg,#0a84ff,#0071e3); color:#fff;
  font-weight:800; display:inline-flex; align-items:center; justify-content:center; font-size:15px}
.esg-sec{font-size:14.5px; color:var(--ink-1); margin:14px 0 7px; font-weight:700}
.esg-sec .std{font-weight:400; font-size:11.5px}
.esg-g{font-size:13px; color:var(--brand,#0a84ff); margin:16px 0 8px; font-weight:700; letter-spacing:.5px}
.esg-tbl{width:100%; border-collapse:collapse; margin:4px 0 6px; font-size:12.8px; border:1px solid var(--line-soft); border-radius:12px; overflow:hidden}
.esg-tbl th{background:#f3f5f8; color:var(--ink-2); font-weight:700; text-align:left; padding:8px 10px; border-bottom:1px solid var(--line-soft)}
.esg-tbl td{padding:8px 10px; border-bottom:1px solid var(--line-soft); vertical-align:top; line-height:1.5}
.esg-tbl tr:last-child td{border-bottom:0}
.esg-tbl .std{font-size:11px; color:var(--ink-3); white-space:nowrap}
.esg-tbl .val{font-weight:700; color:var(--ink-1); min-width:96px}
.esg-tbl .bench{background:rgba(255,159,10,.06); color:var(--ink-2); font-size:11.5px}
.esg-tbl tr:hover td{background:rgba(10,132,255,.03)}
/* bench 条形图图例 */
.bars .bar-row .bl{font-weight:600}
.bars .bar-row .bv{font-weight:700}

/* 弹窗 */
.modal-bg{position:fixed; inset:0; background:rgba(0,0,0,.35); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); display:none; align-items:center; justify-content:center; z-index:50}
.modal-bg.show{display:flex}
.modal{background:#fff; border-radius:24px; padding:30px; width:420px; max-width:92vw; box-shadow:0 24px 70px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.9)}
.modal h3{margin:0 0 10px; font-size:20px; font-weight:700; letter-spacing:-.3px}
.modal .pay-amt{font-size:32px; font-weight:700; color:var(--brand-d); text-align:center; margin:14px 0; font-variant-numeric:tabular-nums; text-shadow:0 1px 0 rgba(255,255,255,.7)}
.modal .row{display:flex; gap:10px; margin-top:18px}
.modal .row .btn{flex:1; text-align:center}
.modal.disc{width:480px}
.modal.disc h3{display:flex; align-items:center; gap:8px}
.disc-body{font-size:13.5px; line-height:1.7; color:var(--ink-2); max-height:46vh; overflow:auto; margin:4px 0}
.disc-body p{margin:0 0 8px}
.disc-body ul{margin:0; padding-left:18px}
.disc-body li{margin:5px 0}
.disc-body b{color:var(--ink-1)}

/* 表单通用 */
.form-card{max-width:440px; margin:34px auto}
.form-card .f{margin-bottom:14px}
.form-card label{display:block; font-size:13px; color:var(--ink-2); margin-bottom:6px; font-weight:500}
.form-card input,.form-card select{width:100%; padding:12px 14px; border:1px solid rgba(0,0,0,.10); border-radius:var(--radius-sm); font-size:15px; outline:none; transition:.2s; font-family:var(--font); background:#fff; color:var(--ink); box-shadow:inset 0 1px 2px rgba(0,0,0,.04)}
.form-card input:focus,.form-card select:focus{border-color:var(--brand); box-shadow:0 0 0 4px var(--brand-soft)}
.tabs{display:flex; gap:8px; margin:10px 0 20px}
.tabs .t{padding:9px 18px; border:1px solid rgba(0,0,0,.10); border-radius:980px; cursor:pointer; font-size:14px; color:var(--ink-2); transition:.2s; background:#fff; box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.tabs .t.on{background:linear-gradient(180deg,#44d76a,#2bb14e); color:#fff; border-color:transparent; font-weight:600; box-shadow:0 3px 10px rgba(52,199,89,.3), inset 0 1px 0 rgba(255,255,255,.4)}
.msg{font-size:13px; margin-top:8px}
.msg.err{color:var(--bad)}
.msg.ok{color:var(--ok)}
.muted{color:var(--ink-2); font-size:13px}
.center{text-align:center}

/* 计算结果区 */
.rs-title{font-size:15px; font-weight:600; margin:22px 0 10px; padding-bottom:7px; border-bottom:1px solid var(--line-soft); letter-spacing:-.2px; color:var(--ink)}
.rs-title .rs-sub{font-size:12px; font-weight:400; color:var(--ink-2); margin-left:8px}
.rs-a{color:var(--blue); border-color:rgba(0,113,227,.2)}
.rs-b{color:#c47d00; border-color:rgba(255,159,10,.25)}
.rs-c{color:var(--brand-d); border-color:rgba(52,199,89,.25)}

/* 合规状态标签 */
.tag-ok{font-size:11px; color:#fff; background:var(--brand); padding:2px 9px; border-radius:980px; font-weight:700; box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.tag-warn{font-size:11px; color:#fff; background:var(--warn); padding:2px 9px; border-radius:980px; font-weight:700; box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}

/* 三栏收益行 */
.benefit-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; margin:8px 0}
.benefit .b{background:#fff; border-radius:15px; padding:13px; text-align:center; box-shadow:var(--shadow-sm), var(--bevel)}
.benefit .b .k{font-size:11.5px; color:var(--ink-2); font-weight:500}
.benefit .b .v{font-size:19px; font-weight:600; margin-top:4px; font-variant-numeric:tabular-nums}
.benefit .b .v small{font-size:11px; font-weight:500}

/* A线（蓝）*/
.b-a{background:var(--blue-soft) !important; border-color:rgba(0,113,227,.2) !important}
.b-a .k{color:#0071e3}
.b-a .v{color:#0071e3}
.b-a.highlight{background:linear-gradient(180deg, #2c8bff, var(--blue-d)) !important; border-color:transparent !important; box-shadow:0 6px 20px rgba(0,113,227,.32), inset 0 1px 0 rgba(255,255,255,.35)}
.b-a.highlight .k,.b-a.highlight .v{color:#fff}

/* B线（橙）*/
.b-b{background:var(--warn-soft) !important; border-color:rgba(255,159,10,.22) !important}
.b-b .k{color:#c47d00}
.b-b .v{color:#c47d00}
.b-b.highlight{background:linear-gradient(180deg, #ffb24d, #f08a00) !important; border-color:transparent !important; box-shadow:0 6px 20px rgba(255,159,10,.32), inset 0 1px 0 rgba(255,255,255,.35)}
.b-b.highlight .k,.b-b.highlight .v{color:#fff}

/* C线（绿）*/
.b-c{background:var(--brand-soft) !important; border-color:rgba(52,199,89,.2) !important}
.b-c .k{color:var(--brand-d)}
.b-c .v{color:var(--brand-d)}
.b-c.highlight{background:linear-gradient(180deg, #44d76a, var(--brand-d)) !important; border-color:transparent !important; box-shadow:0 6px 22px rgba(52,199,89,.36), inset 0 1px 0 rgba(255,255,255,.4)}
.b-c.highlight .k,.b-c.highlight .v{color:#fff}

.b-note{font-size:12px; color:var(--ink-3); margin:6px 0 16px; line-height:1.55; padding-left:10px; border-left:3px solid rgba(0,0,0,.08)}
.cbam-compare{font-size:13px; color:var(--brand-d); background:rgba(52,199,89,.08); border:1px solid rgba(52,199,89,.3); border-radius:8px; padding:10px 14px; margin:4px 0 16px; line-height:1.6}

/* 分项小标题 / 分项合计 / 合计拆分 */
.sub-h{font-size:13px; font-weight:600; color:var(--ink); margin:16px 0 5px; padding-left:10px; border-left:3px solid var(--brand)}
.sub-total{font-size:14px; font-weight:600; color:var(--brand-d); text-align:right; margin:8px 0 4px; padding:10px 14px; background:var(--brand-soft); border-radius:12px; border:1px solid rgba(52,199,89,.18)}
.sub-total span{color:#1f9a44}
.grand-break{font-size:12.5px; color:var(--ink-2); margin:6px 0 0; text-align:right}

/* 合计 · 苹果绿浮起卡 */
.grand-total{
  display:flex; align-items:center; justify-content:space-between;
  background:linear-gradient(135deg, #44d76a, #28a949);
  color:#fff; border-radius:18px; padding:20px 26px; margin:20px 0 8px;
  box-shadow:0 8px 26px rgba(52,199,89,.32), inset 0 1px 0 rgba(255,255,255,.4);
}
.grand-total .k{font-size:15px; font-weight:700; letter-spacing:.2px}
.grand-total .v{font-size:32px; font-weight:800; font-variant-numeric:tabular-nums; letter-spacing:-.5px}

/* 页脚 */
footer{border-top:1px solid var(--line-soft); margin-top:48px; padding:22px 0; color:var(--ink-2); font-size:12.5px; text-align:center; background:transparent}

/* ===== 会员档位徽章 / 高阶权益 CTA ===== */
.tierbadge{
  display:inline-block; font-size:15px; font-weight:800; letter-spacing:.2px;
  background:linear-gradient(135deg,#0071e3,#0a84ff); color:#fff;
  padding:6px 14px; border-radius:999px; margin-bottom:12px;
  box-shadow:0 4px 14px rgba(0,113,227,.28), inset 0 1px 0 rgba(255,255,255,.4);
}
.cta-wrap{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:18px 0 8px}
.cta{background:linear-gradient(160deg,#fafafa,#eef1f5); border:1px solid var(--line-soft); border-radius:18px; padding:18px 20px; box-shadow:var(--shadow)}
.cta .cta-t{font-size:16px; font-weight:800; margin-bottom:6px}
.cta .cta-d{font-size:13px; color:var(--ink-2); line-height:1.6; margin-bottom:12px}
.cta-gold{background:linear-gradient(160deg,#fff7e8,#ffe9bf); border-color:#f4d79a}
.cta-gold .cta-t{color:#9a6a00}
@media(max-width:760px){ .cta-wrap{grid-template-columns:1fr} }

/* ===== 苹果式入场动画 · 淡入上浮（错峰） ===== */
@keyframes fadeUp{from{opacity:0; transform:translateY(20px)} to{opacity:1; transform:none}}
.hero{animation:fadeUp .7s cubic-bezier(.2,.7,.3,1) both}
.calc{animation:fadeUp .7s .08s cubic-bezier(.2,.7,.3,1) both}
.cats{animation:fadeUp .7s .16s cubic-bezier(.2,.7,.3,1) both}
.cats .cat{animation:fadeUp .6s both}
.cats .cat:nth-child(1){animation-delay:.20s}
.cats .cat:nth-child(2){animation-delay:.28s}
.cats .cat:nth-child(3){animation-delay:.36s}
.cats .cat:nth-child(4){animation-delay:.44s}
.cats .cat:nth-child(5){animation-delay:.52s}
.cats .cat:nth-child(6){animation-delay:.60s}
.panel{animation:fadeUp .6s .1s cubic-bezier(.2,.7,.3,1) both}
.form-card{animation:fadeUp .6s .1s cubic-bezier(.2,.7,.3,1) both}
.report{animation:fadeUp .6s .08s cubic-bezier(.2,.7,.3,1) both}
/* 按钮点击细腻反馈 */
.btn:active{transform:translateY(0) scale(.97)}
/* 全局平滑过渡基线 */
a,.metric,.benefit .b,.item{transition:.22s cubic-bezier(.3,.7,.4,1)}
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important}
}

/* ===== 导出工具栏 ===== */
.export-bar{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:18px 0 4px; padding:12px 14px; background:var(--chip-soft,#f5f5f7); border-radius:14px; border:1px solid var(--line-soft); box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9)}
.eb-label{font-size:13px; font-weight:600; color:var(--ink-2); margin-right:2px}
.btn.sm{font-size:12.5px; padding:7px 14px; border-radius:980px; box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9)}
.btn.sm:active{transform:scale(.96)}

/* ===== 移动端底部导航 ===== */
.botbar{display:none}
@media(max-width:760px){
  .botbar{
    position:fixed; left:0; right:0; bottom:0; z-index:60; display:flex;
    background:rgba(255,255,255,.82); -webkit-backdrop-filter:saturate(180%) blur(20px); backdrop-filter:saturate(180%) blur(20px);
    border-top:1px solid var(--line-soft); box-shadow:0 -6px 20px rgba(0,0,0,.06);
    padding:6px 0 calc(6px + env(safe-area-inset-bottom));
  }
  .botbar a{flex:1; display:flex; flex-direction:column; align-items:center; gap:2px; font-size:11px; color:var(--ink-2); text-decoration:none; padding:4px 0; transition:.2s}
  .botbar a .bi{font-size:20px; line-height:1}
  .botbar a.active{color:var(--brand)}
  .botbar a:active{transform:scale(.94)}
  body{padding-bottom:62px}
  main.wrap{padding-bottom:10px}
}

/* ===== 打印：仅输出自查结果 / 报告 ===== */
@media print{
  body *{visibility:hidden}
  #c_result, #c_result *, #reportDoc, #reportDoc *{visibility:visible}
  #c_result, #reportDoc{position:absolute; left:0; top:0; width:100%; box-shadow:none; border:0; background:#fff}
  .export-bar, .row-actions, .genbar{display:none !important}
  /* 保留报告内彩色条形/徽章底色 */
  #reportDoc *{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  #reportDoc .report{box-shadow:none}
  #reportDoc .exec-sum, #reportDoc .advice{break-inside:avoid}
  #reportDoc table, #reportDoc .bar-row, #reportDoc .kv{break-inside:avoid}
}

/* 报告内条形图（排放范围构成） */
.bars{margin:10px 0 4px; display:grid; gap:10px}
.bar-row{display:grid; grid-template-columns:64px 1fr 116px; align-items:center; gap:10px; font-size:13px}
.bar-row .bl{color:var(--ink-2); font-weight:500}
.bar-row .bt{height:12px; background:#ececf0; border-radius:980px; overflow:hidden; box-shadow:inset 0 1px 2px rgba(0,0,0,.08)}
.bar-row .bt i{display:block; height:100%; border-radius:980px; transition:width .9s cubic-bezier(.2,.7,.3,1)}
.bar-row .bv{text-align:right; font-variant-numeric:tabular-nums; color:var(--ink-1); font-weight:600}

/* ===== 顶层政策依据条（首页 / 关于） ===== */
.policy-strip{margin:6px 0 4px; padding:16px 18px; background:linear-gradient(180deg,#fbfbfd,#f1f1f4); border:1px solid var(--line-soft); border-radius:18px; box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9)}
.pol-chip{display:inline-flex; align-items:center; gap:5px; margin:4px 7px 4px 0; padding:6px 14px; font-size:12px; font-weight:700; color:#0a7a2a;
  background:linear-gradient(180deg,#f6fff8 0%,#e3f8e8 100%);
  border:1px solid rgba(42,168,82,.35); border-bottom-color:rgba(25,135,56,.45); border-radius:980px;
  box-shadow:0 3px 6px rgba(25,135,56,.12), 0 1px 0 rgba(255,255,255,.8) inset, 0 -1px 0 rgba(25,135,56,.12) inset;
  text-shadow:0 1px 0 rgba(255,255,255,.7); transition:transform .15s ease, box-shadow .15s ease}
.pol-chip::before{content:""; width:7px; height:7px; border-radius:50%; background:linear-gradient(180deg,#34c759,#21a345);
  box-shadow:0 1px 2px rgba(33,163,69,.35), inset 0 1px 0 rgba(255,255,255,.5)}
.pol-chip:hover{transform:translateY(-1px); box-shadow:0 5px 10px rgba(25,135,56,.18), 0 1px 0 rgba(255,255,255,.8) inset, 0 -1px 0 rgba(25,135,56,.12) inset}
.pol-chip:active{transform:translateY(0); box-shadow:0 2px 4px rgba(25,135,56,.12), 0 1px 0 rgba(255,255,255,.8) inset}
.pol-details{margin-top:10px}
.pol-details summary{cursor:pointer; font-size:13px; font-weight:600; color:var(--ink-2)}
.pol-details summary:hover{color:var(--brand)}
.pol-full{margin-top:12px; display:grid; gap:12px}
.pol-item{padding:12px 14px; background:#fff; border:1px solid var(--line-soft); border-radius:14px; box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9)}
.pol-head{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.pol-head b{font-size:14.5px; color:var(--ink-1)}
.pol-tier{font-size:11px; font-weight:700; color:#fff; background:linear-gradient(180deg,#ff9f0a,#ff8800); padding:3px 10px; border-radius:980px; box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.pol-doc{font-size:11px; color:var(--ink-3); margin-left:auto}
.pol-meta{font-size:11.5px; color:var(--ink-3); margin:4px 0 6px}
.pol-rules{margin:0; padding-left:18px; font-size:12.5px; color:var(--ink-2); line-height:1.7}

/* ===== 零碳园区指标面板 ===== */
.chk{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink-2); padding:6px 0}
.chk input{width:16px; height:16px; accent-color:var(--brand)}
.zc-core{margin:12px 0; padding:14px 16px; border-radius:14px; border:1px solid var(--line-soft); box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9); background:#fff}
.zc-core.fail{border-color:#ff453a; background:linear-gradient(180deg,#fff,#fff5f4)}
.zc-core.core-ok,.zc-core.core-pending{border-color:#30d158; background:linear-gradient(180deg,#fff,#f3fcf5)}
.zc-core-line{display:flex; align-items:center; gap:10px; padding:5px 0; font-size:13.5px; color:var(--ink-2)}
.zc-core-line b{color:var(--ink-1); font-variant-numeric:tabular-nums}
.zc-core-line .muted{margin-left:auto; font-size:11.5px}
.zc-concl{margin-top:8px; font-size:13px; font-weight:600; line-height:1.55}
.zc-inds{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px; margin-top:6px}
.zc-ind{display:flex; flex-direction:column; gap:4px; padding:10px 12px; border-radius:12px; border:1px solid var(--line-soft); background:#fff; box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9)}
.zc-ind b{font-size:12.5px; color:var(--ink-1)}
.zc-ind.ok{border-color:rgba(48,209,88,.5)}
.zc-ind.no{border-color:rgba(255,159,10,.55); background:linear-gradient(180deg,#fff,#fffaf0)}
.zc-ind i{font-size:11.5px; font-style:normal}

/* ===== 地方碳普惠标准标注 ===== */
.ph-label{margin:10px 0 4px; padding:10px 14px; font-size:12.5px; line-height:1.6; color:var(--ink-2); background:rgba(0,113,227,.06); border:1px solid rgba(0,113,227,.18); border-radius:12px}

/* ===== 免责弹窗内"核算依据"块 ===== */
.disc-note{margin-top:12px; padding:12px 14px; font-size:12.5px; line-height:1.62; color:var(--ink-2); background:rgba(0,0,0,.03); border:1px solid rgba(0,0,0,.06); border-left:3px solid #2bb14e; border-radius:12px}
.disc-note b{color:var(--ink-1)}

/* ===== 碳价实时条（国内·北京绿交所 / 国际·EU ETS） ===== */
.cp-strip{margin:18px 0 2px}
.cp-cards{display:grid; grid-template-columns:1fr 1fr; gap:14px}
/* 紧凑模式：首屏一行碳价小胶囊（约为原卡片一半高度） */
.cp-strip.compact{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px; margin:14px auto 0}
.cp-label{font-size:12px; font-weight:700; color:var(--ink-2); padding:4px 11px; background:var(--chip); border-radius:980px}
.cp-pill{display:inline-flex; align-items:baseline; gap:6px; padding:6px 14px; border-radius:980px; background:#fff; border:1px solid var(--line-soft); box-shadow:var(--shadow-sm); font-variant-numeric:tabular-nums}
.cp-pill.snap{border-left:3px solid #34c759}
.cp-pill.live{border-left:3px solid #0a84ff}
.cp-pill-tag{font-size:11px; color:var(--ink-2); font-weight:600}
.cp-pill-price{font-size:16px; font-weight:700; color:var(--ink-1)}
.cp-pill-price small{font-size:10px; font-weight:500; color:var(--ink-2); margin-left:2px}
.cp-chg{font-size:11px; font-weight:600; margin-left:4px}
.cp-chg.up{color:#34c759}
.cp-chg.down{color:#ff3b30}
.cp-updated{font-size:11px; color:#9aa0a6}
.cp-card{padding:16px 18px; border-radius:16px; background:#fff; box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9); border:1px solid var(--line-soft); position:relative; overflow:hidden}
.cp-card::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px}
.cp-card.snap::before{background:linear-gradient(180deg,#34c759,#30d158)}
.cp-card.live::before{background:linear-gradient(180deg,#0a84ff,#0071e3)}
.cp-tag{font-size:12px; font-weight:600; color:var(--ink-2); letter-spacing:.2px}
.cp-price{margin:6px 0 2px; font-size:30px; font-weight:700; color:var(--ink-1); font-variant-numeric:tabular-nums; line-height:1.1}
.cp-unit{font-size:13px; font-weight:500; color:var(--ink-2); margin-left:4px}
.cp-chg{font-size:13px; font-weight:600; margin-left:8px}
.cp-chg.up{color:#34c759}
.cp-chg.down{color:#ff3b30}
.cp-range{font-size:12px; color:var(--ink-2)}
.cp-src{margin-top:6px; font-size:11px; color:#9aa0a6; line-height:1.5}
.cp-foot{margin-top:8px}
.cp-badge{display:inline-block; font-size:11px; font-weight:600; padding:2px 8px; border-radius:999px}
.cp-badge.snap{color:#8a6d00; background:rgba(255,196,0,.16)}
.cp-badge.live{color:#1a7f37; background:rgba(52,199,89,.16)}
.cp-note{margin:12px 2px 0; font-size:11px; color:#9aa0a6; line-height:1.6}
.cp-note code{background:rgba(0,0,0,.05); padding:1px 5px; border-radius:5px; font-size:10.5px}

/* ===== 折叠计算器（最显眼引流入口：宽幅渐变标题栏） ===== */
.calc-details{margin:18px 0; border:1px solid var(--line-soft); border-radius:16px; background:#fff; box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9); overflow:hidden}
.calc-details>summary{list-style:none; cursor:pointer; padding:16px 20px; font-size:15px; font-weight:700; color:var(--ink-1); display:flex; align-items:center; gap:10px; user-select:none}
.calc-details>summary::-webkit-details-marker{display:none}
.calc-details>summary::-moz-list-bullet{display:none}
.calc-details>summary:hover{background:#fafafa}
.calc-details[open]>summary{border-bottom:1px solid var(--line-soft)}
.calc-details>summary .tag{background:linear-gradient(150deg,#30d158,#28a949); color:#fff; font-size:11px; font-weight:600; padding:2px 8px; border-radius:999px}

/* 主页引流版：宽幅醒目标题栏 */
.calc-hero{margin:16px 0; border:1px solid rgba(0,0,0,.07); border-radius:18px; background:#fff; box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9)}
.calc-hero>summary{list-style:none; cursor:pointer; padding:18px 22px; display:flex; align-items:center; gap:14px; user-select:none;
  background:linear-gradient(180deg,#fbfbfd 0%,#f1f2f5 100%); color:var(--ink-1); border-radius:18px; transition:.2s cubic-bezier(.3,.7,.4,1)}
.calc-hero>summary::-webkit-details-marker{display:none}
.calc-hero>summary:hover{background:linear-gradient(180deg,#f4f4f7 0%,#e9eaee 100%); box-shadow:0 2px 10px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.9)}
.calc-hero>summary:active{background:linear-gradient(180deg,#eeeff2 0%,#e3e5ea 100%)}
.calc-hero .ch-ic{font-size:27px; line-height:1; filter:drop-shadow(0 1px 2px rgba(0,0,0,.18)); background:linear-gradient(150deg,#eef6f0,#e3f1e7); width:46px; height:46px; display:flex; align-items:center; justify-content:center; border-radius:13px; box-shadow:inset 0 1px 0 rgba(255,255,255,.8), inset 0 0 0 1px rgba(0,0,0,.04); padding:5px}
.calc-hero .ch-ic img{width:100%; height:100%; object-fit:contain; display:block; border-radius:8px}
.calc-hero .ch-tx{flex:1; display:flex; flex-direction:column; gap:2px; min-width:0}
.calc-hero .ch-tx b{font-size:19px; font-weight:700; letter-spacing:-.3px; color:var(--ink-1)}
.calc-hero .ch-tx small{font-size:12.5px; color:var(--ink-2)}
.calc-hero .ch-cta{font-size:15px; font-weight:700; padding:10px 20px; border-radius:980px; background:linear-gradient(180deg,#44d76a 0%,#2bb14e 100%); color:#fff; box-shadow:0 2px 6px rgba(52,199,89,.4), 0 8px 20px rgba(52,199,89,.28), inset 0 1px 0 rgba(255,255,255,.45); white-space:nowrap; transition:.2s cubic-bezier(.3,.7,.4,1)}
.calc-hero .ch-cta:hover{background:linear-gradient(180deg,#4fe277 0%,#2fbf55 100%); transform:translateY(-1px); box-shadow:0 3px 8px rgba(52,199,89,.45), 0 12px 26px rgba(52,199,89,.34), inset 0 1px 0 rgba(255,255,255,.5)}
.calc-hero .ch-cta:active{transform:translateY(0); box-shadow:inset 0 2px 5px rgba(0,0,0,.12)}
.calc-hero[open]>summary{border-radius:18px 18px 0 0; border-bottom:1px solid rgba(0,0,0,.06)}
.calc-hero .calc{margin:0; padding:20px 22px; background:#fff; border:none; border-radius:0; box-shadow:none}
.calc-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:4px}
.calc-top h2{margin:0}
.disc-link{font-size:13px; color:var(--brand); cursor:pointer; text-decoration:none; font-weight:500}
.disc-link:hover{text-decoration:underline}

/* ===================== 移动端适配（响应式，统一管理） ===================== */
@media (max-width: 760px){
  body{ font-size:14px; }
  .wrap{ padding:12px 10px; }
  .cats{ grid-template-columns:1fr 1fr; }
  .hero{ padding:18px 16px; border-radius:16px; }
  .hero h1{ font-size:22px; }
  .hero p{ font-size:13px; }
  /* 移动端隐藏顶部导航链接与搜索框，导航交给底部 botbar；保留登录态 #memBox */
  .topbar .nav a, .topbar .nav-sep, .topbar .nav-search{ display:none !important; }
  .nav{ gap:8px; }
  .nav-search{order:6; flex:1 1 100%; margin-left:0}
  .nav-search input{width:100%}
  .panel{ padding:16px 14px; border-radius:14px; }
  .grid2,.grid3{ grid-template-columns:1fr; gap:10px; }
  .field{ margin-bottom:10px; }
  .field label{ font-size:12.5px; }
  .field input,.field select,.field textarea{ font-size:15px; padding:11px 12px; }

  /* 报告视图 */
  .report{ padding:16px 14px; }
  .report h1{ font-size:20px; line-height:1.3; }
  .report h2{ font-size:17px; margin:18px 0 8px; }
  .report h3{ font-size:15px; }
  .report p,.report li{ font-size:13.5px; line-height:1.7; }
  .report-toc{ position:static; width:auto; margin:0 0 14px; box-shadow:var(--shadow-sm); }
  .report-toc ul{ columns:1; }

  /* 表格横向滚动，避免溢出 */
  .esg-tbl,.report table{ display:block; width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; font-size:12.5px; }
  .esg-tbl th,.esg-tbl td,.report table th,.report table td{ white-space:nowrap; padding:8px 10px; }
  .bars{ gap:6px; }
  .bar-row{ font-size:12px; }

  /* 计算条 / 碳价卡 / 零碳指标 */
  .calc-hero>summary{ flex-wrap:wrap; gap:10px; padding:14px 16px; border-radius:14px; }
  .calc-hero .ch-tx b{ font-size:16px; }
  .calc-hero .ch-cta{ width:100%; text-align:center; }
  .cp-cards{ grid-template-columns:1fr; }
  .cp-strip.compact{ gap:8px; }
  .zc-inds{ grid-template-columns:1fr 1fr; gap:8px; }
  .zc-core{ padding:12px; }

  /* 下载/操作按钮栏换行 */
  .genbar,.dlbar{ display:flex; flex-wrap:wrap; gap:8px; }
  .genbar .btn,.dlbar .btn{ flex:1 1 calc(50% - 8px); min-width:120px; }
  .demobar{ flex-direction:column; align-items:stretch; gap:6px; }
  .demobar .muted{ font-size:11.5px; }

  /* 弹窗 */
  .modal{ padding:10px; }
}
@media (max-width: 420px){
  .genbar .btn,.dlbar .btn{ flex:1 1 100%; }
  .zc-inds{ grid-template-columns:1fr; }
}

/* 计算器结果可视化（ECharts 本地渲染） */
.viz-block{ margin:24px 0 10px; padding:18px 18px 8px; border:1px solid #e1efe8; border-radius:14px; background:linear-gradient(180deg,#f7fbf9,#eef7f2); }
.viz-block .rs-title{ margin:0 0 4px; }
.viz-sub{ font-size:12.5px; color:#5a7a6c; margin:0 0 12px; }
.viz-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.viz-card{ border:1px solid #e7eef3; border-radius:12px; padding:12px 12px 6px; background:#fff; box-shadow:0 2px 10px rgba(20,80,60,.05); }
.viz-h{ font-size:13px; font-weight:600; color:#234; margin:0 0 6px; line-height:1.4; }
.echart{ width:100%; height:260px; }
@media (max-width:760px){ .viz-grid{ grid-template-columns:1fr; } }

/* 测算结果抬头：企业名称 + 生成时间 */
.rs-head{ display:flex; flex-wrap:wrap; gap:8px 18px; align-items:baseline; justify-content:space-between;
  padding:10px 14px; margin-bottom:14px; background:var(--card2,#f4f7fb); border:1px solid var(--bd,#e3e8f0); border-radius:10px; }
.rs-ent{ font-weight:700; color:var(--ink,#1a2230); font-size:15px; }
.rs-ts{ font-size:12px; color:var(--muted,#7a8699); }

/* ===== 会员门禁通用面板（Gate 组件） ===== */
.gate-panel{ max-width:520px; margin:46px auto; text-align:center; padding:30px 24px;
  border:1px solid var(--line-soft); border-radius:16px; background:var(--bg-secondary); box-shadow:var(--shadow-sm); }
.gate-panel .lock{ font-size:36px; line-height:1; }
.gate-panel h2{ margin:12px 0 6px; font-size:20px; color:var(--ink-1); }
.gate-panel p{ color:var(--ink-2); font-size:14px; line-height:1.75; margin:0 0 4px; }
.gate-panel .btn{ margin-top:16px; display:inline-block; }

/* ===== 会员服务分级（member.js 渲染） ===== */
.tier-list{ display:grid; gap:10px; margin-top:6px; }
.tier-row{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
  border:1px solid var(--line-soft); border-radius:11px; padding:11px 14px; background:var(--bg-primary); }
.tier-row b{ font-size:14.5px; color:var(--ink-1); }
.tier-row .tier-desc{ font-size:13px; color:var(--ink-2); flex:1 1 200px; }
.tier-row .tier-price{ font-size:13.5px; color:var(--brand-d); font-weight:600; }

/* ===== 会员「可用功能」（个人/企业分流） ===== */
.feat-list{ display:flex; flex-wrap:wrap; gap:8px; }
.feat{ display:inline-block; padding:5px 12px; border-radius:20px; font-size:13px; font-weight:600;
  background:#e6f0ff; color:#16489b; border:1px solid #cfe0ff; }

/* ===== 表格水印（由 lib/site.js 注入叠加层，此处仅兜底） ===== */
.wm-target{ position:relative; }
.wm-target .wm-overlay{ position:absolute; inset:0; pointer-events:none; z-index:5; overflow:hidden;
  background-image:repeating-linear-gradient(-28deg, transparent 0 70px, rgba(15,44,76,.55) 70px 71px); opacity:.5; }
.wm-target .wm-text{ position:absolute; inset:-20%; display:flex; flex-wrap:wrap; align-content:center;
  justify-content:center; gap:46px; transform:rotate(-28deg); font-size:26px; font-weight:700;
  color:rgba(15,44,76,.10); user-select:none; pointer-events:none; z-index:6; overflow:hidden; line-height:2; }
.wm-text span{ padding:0 22px; white-space:nowrap; }
