
:root{
  --bg:#f8fafc;
  --panel:#ffffff;
  --ink:#0f172a;
  --muted:#64748b;
  --line:#e2e8f0;
  --brand:#1e3a8a;
  --brand2:#0f766e;
  --soft:#eff6ff;
  --warn:#fff7ed;
  --restricted:#fef2f2;
  --radius:18px;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,#ffffff 0%,var(--bg) 100%);
  line-height:1.65;
}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1180px;margin:0 auto;padding:0 22px}
.site-header{
  position:sticky;top:0;z-index:10;
  background:rgba(255,255,255,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0}
.logo{font-weight:800;letter-spacing:.02em;color:var(--brand)}
.nav-links{display:flex;gap:16px;flex-wrap:wrap;font-size:14px}
.hero{padding:58px 0 34px}
.kicker{font-weight:700;color:var(--brand2);text-transform:uppercase;letter-spacing:.08em;font-size:13px}
h1{font-size:clamp(34px,5vw,58px);line-height:1.08;margin:12px 0 16px;max-width:880px}
.lead{font-size:19px;color:#334155;max-width:880px}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}
.badge{padding:7px 12px;border:1px solid var(--line);background:var(--panel);border-radius:999px;font-size:13px;color:#334155}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:28px 0}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 8px 28px rgba(15,23,42,.05)}
.stat b{display:block;font-size:28px;color:var(--brand)}
.stat span{color:var(--muted);font-size:13px}
.section{padding:34px 0}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}
.section h2{font-size:30px;margin:0}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 8px 26px rgba(15,23,42,.04)}
.card h3{margin:0 0 8px;font-size:18px}
.card p{margin:0;color:#475569}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;margin:16px 0}
input,select,button{font:inherit}
input,select{
  width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)
}
button,.button{
  display:inline-block;border:0;background:var(--brand);color:#fff;padding:11px 14px;border-radius:12px;cursor:pointer;font-weight:700
}
.button.secondary{background:#0f766e}
.table-wrap{overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
table{border-collapse:collapse;width:100%;min-width:1150px;font-size:13px}
th,td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{position:sticky;top:0;background:#f1f5f9;text-align:left;z-index:1;color:#334155}
td{color:#334155}
.tag{display:inline-block;padding:3px 8px;border-radius:999px;background:var(--soft);color:var(--brand);font-size:12px;font-weight:700}
.tag.req{background:var(--warn);color:#9a3412}
.tag.res{background:var(--restricted);color:#991b1b}
.detail{
  margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:none
}
.detail.show{display:block}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.detail-item{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:12px}
.detail-item b{display:block;color:#0f172a;margin-bottom:4px}
.note{background:#f8fafc;border-left:4px solid var(--brand2);padding:14px 16px;color:#475569;border-radius:12px}
.footer{border-top:1px solid var(--line);padding:26px 0;margin-top:34px;color:var(--muted);font-size:14px}
@media(max-width:850px){
  .stats,.card-grid,.detail-grid{grid-template-columns:1fr}
  .filters{grid-template-columns:1fr}
  .nav{align-items:flex-start;flex-direction:column}
}
