:root{
  --navy:#0A2540; --blue:#0B3D91; --blue2:#1A5FCC; --cyan:#00B2A9; --cyan-l:#E6F7F6;
  --gold:#C9962B; --gold-l:#FDF6E7;
  --ink:#12263F; --ink2:#3D566E; --ink3:#6B8299;
  --line:#E3EAF2; --bg:#F5F8FC; --card:#FFFFFF;
  --ok:#12996B; --warn:#D9822B; --bad:#D2453E;
  --r:12px; --sh:0 1px 2px rgba(16,42,67,.06),0 8px 24px -12px rgba(16,42,67,.14);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--ink);font-size:14px;line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--blue2);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1220px;margin:0 auto;padding:0 22px}

/* ── 顶栏 ── */
header.top{
  position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);
  backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line);
}
.top-in{display:flex;align-items:center;gap:26px;height:62px}
.brand{display:flex;align-items:center;gap:10px;flex:none}
.brand .logo{width:34px;height:34px;flex:none;display:block}
.brand b{font-size:16.5px;letter-spacing:.3px;color:var(--navy);font-weight:700;white-space:nowrap}
.brand i{font-style:normal;font-size:10.5px;color:var(--ink3);display:block;letter-spacing:.4px;margin-top:-3px}
nav.menu{display:flex;gap:2px;flex:1;overflow-x:auto;scrollbar-width:none}
nav.menu::-webkit-scrollbar{display:none}
nav.menu a{
  padding:7px 12px;border-radius:8px;color:var(--ink2);font-size:13.5px;white-space:nowrap;
  text-decoration:none;transition:.15s;
}
nav.menu a:hover{background:#EEF4FB;color:var(--blue);text-decoration:none}
nav.menu a.on{background:var(--blue);color:#fff;font-weight:600}
.badge-live{
  display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink3);flex:none;
  padding-left:14px;border-left:1px solid var(--line);
}
.dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(18,153,107,.16)}

/* ── 英雄区 ── */
.hero{
  background:
    radial-gradient(1100px 380px at 88% -12%,rgba(0,178,169,.30),transparent 62%),
    radial-gradient(820px 340px at 4% 112%,rgba(26,95,204,.34),transparent 60%),
    linear-gradient(122deg,#071C33 0%,#0A2B52 46%,#0B3D91 100%);
  color:#fff;padding:52px 0 46px;position:relative;overflow:hidden;
}
.hero:after{
  content:"";position:absolute;inset:0;opacity:.42;
  background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:52px 52px;pointer-events:none;
}
.hero .wrap{position:relative;z-index:2}
.hero .tag{
  display:inline-flex;align-items:center;gap:7px;font-size:12px;letter-spacing:1.6px;
  color:#8FE3DD;border:1px solid rgba(143,227,221,.36);border-radius:20px;padding:4px 13px;margin-bottom:16px;
}
.hero h1{font-size:37px;line-height:1.24;font-weight:800;letter-spacing:-.4px;margin-bottom:12px}
.hero h1 em{font-style:normal;color:#57D9CE}
.hero p.sub{font-size:15px;color:#B9CFE4;max-width:730px;margin-bottom:26px}
.hero .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:12px;max-width:940px}
.hero .k{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:11px;padding:14px 16px}
.hero .k b{display:block;font-size:25px;font-weight:800;letter-spacing:-.5px;color:#fff}
.hero .k b small{font-size:12px;font-weight:600;color:#8FE3DD;margin-left:3px}
.hero .k i{font-style:normal;font-size:12px;color:#9FB8D1;display:block;margin-top:2px}

/* ── 版块 ── */
section.blk{padding:38px 0}
section.blk.tight{padding:26px 0}
.h2{display:flex;align-items:baseline;gap:11px;margin-bottom:18px;flex-wrap:wrap}
.h2 h2{font-size:20.5px;font-weight:750;letter-spacing:-.2px;color:var(--navy)}
.h2 span{font-size:12.5px;color:var(--ink3)}
.h2 .line{flex:1;height:1px;background:var(--line);min-width:20px}
.h2 .more{font-size:13px}

/* ── 卡片 ── */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(268px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(206px,1fr))}

.stat{padding:17px 18px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--sh)}
.stat b{display:block;font-size:26px;font-weight:800;letter-spacing:-.7px;color:var(--blue);line-height:1.16}
.stat b small{font-size:12.5px;font-weight:600;color:var(--cyan);margin-left:2px}
.stat i{font-style:normal;font-size:12.5px;color:var(--ink3);display:block;margin-top:3px}
.stat.cy b{color:var(--cyan)}
.stat.gd b{color:var(--gold)}

.feat{padding:20px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--sh);transition:.18s}
.feat:hover{transform:translateY(-2px);border-color:#C6DAF0;box-shadow:0 2px 4px rgba(16,42,67,.06),0 16px 34px -16px rgba(11,61,145,.28)}
.feat .ic{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#E8F1FE,#E6F7F6);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.feat h3{font-size:15.5px;font-weight:700;color:var(--navy);margin-bottom:6px}
.feat p{font-size:13px;color:var(--ink2);line-height:1.68}
.feat .go{font-size:12.5px;color:var(--blue2);margin-top:10px;display:inline-block}

/* ── 条状图 ── */
.bars{display:flex;flex-direction:column;gap:9px}
.bar-row{display:grid;grid-template-columns:104px 1fr 66px;align-items:center;gap:11px;font-size:13px}
.bar-row .nm{color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-row .tr{background:#EDF2F8;border-radius:5px;height:17px;overflow:hidden}
.bar-row .fl{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--blue2),var(--cyan))}
.bar-row .vl{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink3);font-size:12.5px}

/* ── 表格 ── */
.tw{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{
  text-align:left;padding:11px 13px;background:#F7FAFD;color:var(--ink3);font-weight:600;
  font-size:12px;letter-spacing:.4px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;
}
td{padding:10px 13px;border-bottom:1px solid #F0F4F9;vertical-align:top}
tbody tr:hover{background:#FAFCFF}
tbody tr:last-child td{border-bottom:none}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
.mono{font-variant-numeric:tabular-nums}

/* ── 标签 ── */
.tg{display:inline-block;padding:1px 8px;border-radius:20px;font-size:11.5px;font-weight:600;line-height:1.7;white-space:nowrap}
.tg.b{background:#E8F1FE;color:#1A5FCC}
.tg.c{background:var(--cyan-l);color:#00857E}
.tg.g{background:#E7F6EF;color:var(--ok)}
.tg.y{background:var(--gold-l);color:#9C7418}
.tg.r{background:#FDECEB;color:var(--bad)}
.tg.n{background:#EEF2F7;color:var(--ink3)}
.tier{display:inline-block;width:22px;height:22px;line-height:22px;text-align:center;border-radius:6px;font-size:11.5px;font-weight:800;color:#fff}
.tier.S{background:linear-gradient(135deg,#D2453E,#E4694F)}
.tier.A{background:linear-gradient(135deg,#C9962B,#E0B44F)}
.tier.B{background:linear-gradient(135deg,#1A5FCC,#4C8BE0)}
.tier.C{background:#9FB2C6}

/* ── 工具条 ── */
.tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
input,select{
  font:inherit;font-size:13px;padding:8px 11px;border:1px solid #D7E1EC;border-radius:9px;
  background:#fff;color:var(--ink);outline:none;transition:.15s;
}
input:focus,select:focus{border-color:var(--blue2);box-shadow:0 0 0 3px rgba(26,95,204,.13)}
input[type=search]{min-width:250px}
button{
  font:inherit;font-size:13px;padding:8px 15px;border-radius:9px;border:1px solid #D7E1EC;
  background:#fff;color:var(--ink2);cursor:pointer;transition:.15s;white-space:nowrap;
}
button:hover{border-color:var(--blue2);color:var(--blue)}
button.pri{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
button.pri:hover{background:#0A3278;color:#fff}
button:disabled{opacity:.42;cursor:not-allowed}
.pager{display:flex;gap:7px;align-items:center;justify-content:center;margin-top:16px;flex-wrap:wrap}
.pager button{padding:6px 12px}
.pager .info{font-size:12.5px;color:var(--ink3);margin:0 8px}

/* ── 列表项 ── */
.item{padding:13px 16px;border-bottom:1px solid #F0F4F9}
.item:last-child{border-bottom:none}
.item:hover{background:#FAFCFF}
.item .t1{font-weight:650;color:var(--navy);font-size:13.5px}
.item .t2{font-size:12.5px;color:var(--ink3);margin-top:2px}

/* ── 弹层 ── */
.modal{position:fixed;inset:0;background:rgba(10,37,64,.5);backdrop-filter:blur(3px);z-index:200;display:none;padding:34px 18px;overflow-y:auto}
.modal.on{display:block}
.modal .box{max-width:880px;margin:0 auto;background:#fff;border-radius:15px;box-shadow:0 30px 70px -20px rgba(7,28,51,.5);overflow:hidden}
.modal .hd{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:19px 22px;border-bottom:1px solid var(--line);background:#F9FBFE;position:sticky;top:0}
.modal .hd h3{font-size:17.5px;font-weight:750;color:var(--navy)}
.modal .hd .x{cursor:pointer;color:var(--ink3);font-size:21px;line-height:1;padding:0 4px;border:none;background:none}
.modal .bd{padding:20px 22px}

/* ── 提示 ── */
.note{padding:13px 16px;border-radius:10px;font-size:12.8px;line-height:1.7;border:1px solid}
.note.b{background:#F1F7FE;border-color:#CFE1F7;color:#1B4A80}
.note.g{background:#F0F9F4;border-color:#C9E9D7;color:#136C4C}
.note.y{background:var(--gold-l);border-color:#EDDCB0;color:#8A6512}
.note.r{background:#FDF1F0;border-color:#F5D2CF;color:#A33A33}

/* ── 页脚 ── */
footer.ft{background:var(--navy);color:#93AEC8;padding:34px 0 26px;margin-top:34px;font-size:12.5px}
footer.ft .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:26px;margin-bottom:22px}
footer.ft h4{color:#fff;font-size:13px;margin-bottom:9px;font-weight:650}
footer.ft a{color:#93AEC8;display:block;padding:2.5px 0}
footer.ft a:hover{color:#fff}
footer.ft .cp{border-top:1px solid rgba(255,255,255,.11);padding-top:15px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12px}
@media(max-width:820px){
  footer.ft .cols{grid-template-columns:1fr 1fr}
  .hero h1{font-size:27px}
  .top-in{gap:14px}.brand i{display:none}
  nav.menu a{padding:7px 9px;font-size:13px}
  .badge-live{display:none}
  section.blk{padding:26px 0}
}
@media(max-width:520px){
  .hero h1{font-size:23px}
  .hero .k b{font-size:21px}
  .bar-row{grid-template-columns:80px 1fr 56px}
}