/* 干部画像系统 · 全局样式 v2（专业政务风） */
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --blue-900:#0a1f3d;--blue-800:#12305c;--blue-700:#1a4a8a;--blue-600:#2f74c9;--blue-100:#eaf1fb;
  --red-700:#c8382f;--red-600:#e0493d;--red-100:#fdecea;
  --gold:#c9a227;--gold-100:#fdf6e3;
  --gray-900:#1a202c;--gray-700:#374151;--gray-600:#4b5563;--gray-400:#9aa5b1;--gray-200:#e5eaf1;--gray-100:#f4f7fb;
  --line:#e3e9f2;--bg:#eef2f8;--white:#fff;
  --shadow:0 2px 14px rgba(10,31,61,.07);--shadow-lg:0 8px 30px rgba(10,31,61,.12);
}
body{font-family:"PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--gray-900);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}

/* ── 顶栏 ── */
.topbar{background:linear-gradient(120deg,var(--blue-900) 0%,var(--blue-700) 100%);color:#fff;padding:0 28px;height:62px;display:flex;align-items:center;gap:30px;box-shadow:0 2px 12px rgba(10,31,61,.2);position:sticky;top:0;z-index:100;}
.topbar .logo{font-size:17.5px;font-weight:800;letter-spacing:.5px;display:flex;align-items:baseline;gap:8px;}
.topbar .logo::before{content:"◈";color:var(--gold);font-size:19px;}
.topbar .logo .en{font-size:10px;opacity:.5;font-weight:400;letter-spacing:1.5px;}
.topbar nav{display:flex;gap:3px;margin-left:8px;}
.topbar nav a{padding:9px 17px;border-radius:8px;font-size:13.5px;opacity:.8;transition:.2s;position:relative;}
.topbar nav a:hover{background:rgba(255,255,255,.1);opacity:1;}
.topbar nav a.on{background:rgba(255,255,255,.17);opacity:1;font-weight:700;}
.topbar .spacer{flex:1;}
.topbar .env{font-size:11.5px;opacity:.55;}

/* ── 容器 ── */
.wrap{max-width:1300px;margin:0 auto;padding:26px 28px 70px;}
.page-title{font-size:23px;font-weight:800;color:var(--blue-900);margin-bottom:5px;letter-spacing:.5px;}
.page-sub{font-size:13.5px;color:var(--gray-400);margin-bottom:22px;}

/* ── 卡片 ── */
.card{background:var(--white);border-radius:14px;box-shadow:var(--shadow);padding:22px 24px;margin-bottom:18px;border:1px solid rgba(227,233,242,.7);}
.card-title{font-size:16px;font-weight:800;color:var(--blue-900);margin-bottom:16px;display:flex;align-items:center;gap:9px;}
.card-title::before{content:"";width:4px;height:17px;background:linear-gradient(180deg,var(--red-600),var(--red-700));border-radius:2px;}

/* ── 按钮 ── */
.btn{padding:10px 22px;border-radius:9px;border:none;font-size:13.5px;font-weight:700;cursor:pointer;transition:.2s;font-family:inherit;display:inline-flex;align-items:center;gap:6px;}
.btn-primary{background:linear-gradient(135deg,var(--blue-700),var(--blue-600));color:#fff;box-shadow:0 3px 10px rgba(26,74,138,.25);}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(26,74,138,.32);}
.btn-red{background:linear-gradient(135deg,var(--red-700),var(--red-600));color:#fff;box-shadow:0 3px 10px rgba(200,56,47,.25);}
.btn-red:hover{transform:translateY(-1px);}
.btn-ghost{background:var(--gray-100);color:var(--gray-700);}
.btn-ghost:hover{background:#e7eef8;}
.btn-sm{padding:6px 15px;font-size:12.5px;}

/* ── 统计卡 ── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;}
.stat{background:var(--white);border-radius:14px;padding:20px 22px;box-shadow:var(--shadow);border:1px solid rgba(227,233,242,.7);position:relative;overflow:hidden;}
.stat::after{content:"";position:absolute;right:-20px;top:-20px;width:80px;height:80px;border-radius:50%;background:var(--blue-100);opacity:.6;}
.stat.red::after{background:var(--red-100);}
.stat.gold::after{background:var(--gold-100);}
.stat .n{font-size:32px;font-weight:900;color:var(--blue-800);line-height:1.1;position:relative;font-variant-numeric:tabular-nums;}
.stat.red .n{color:var(--red-700);}
.stat.gold .n{color:#a67c00;}
.stat .l{font-size:12.5px;color:var(--gray-400);margin-top:7px;position:relative;}

/* ── 表格 ── */
table{width:100%;border-collapse:collapse;}
th,td{padding:13px 14px;text-align:left;border-bottom:1px solid var(--line);font-size:13.5px;}
th{background:var(--gray-100);color:var(--gray-600);font-weight:700;font-size:12.5px;letter-spacing:.3px;white-space:nowrap;}
th:first-child{border-top-left-radius:9px;}
th:last-child{border-top-right-radius:9px;}
tbody tr{transition:.15s;}
tbody tr:hover td{background:#f8fbff;}
td.num{font-weight:800;color:var(--blue-800);font-variant-numeric:tabular-nums;}
.rank-badge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;font-weight:900;font-size:13px;background:var(--gray-100);color:var(--gray-600);}
.rank-badge.top1{background:linear-gradient(135deg,#ffd700,#ffb300);color:#7a5000;}
.rank-badge.top2{background:linear-gradient(135deg,#e0e0e0,#b0b0b0);color:#444;}
.rank-badge.top3{background:linear-gradient(135deg,#e8b98a,#c98a4b);color:#5c3313;}

/* ── 标签 ── */
.tg{display:inline-block;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:700;}
.tg-h{background:#e6f4ea;color:#1e8e3e;}
.tg-m{background:var(--gold-100);color:#b06000;}
.tg-l{background:var(--red-100);color:var(--red-700);}
.tg-b{background:var(--blue-100);color:var(--blue-700);}
.tg-veto{background:var(--red-700);color:#fff;}

/* ── 九宫格 ── */
.grid9{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.n9{background:var(--white);border:1.5px solid var(--line);border-radius:12px;padding:14px;min-height:150px;transition:.2s;}
.n9:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.n9.hl{border-color:var(--red-600);box-shadow:0 0 0 3px rgba(224,73,61,.12);background:linear-gradient(180deg,#fff,#fff9f8);}
.n9 .q{font-size:13.5px;font-weight:800;color:var(--blue-900);}
.n9 .occ{font-size:11px;color:var(--gray-400);margin:3px 0 10px;}
.n9 .who{font-size:12.5px;color:var(--gray-600);padding:5px 0;border-bottom:1px dashed var(--line);display:flex;justify-content:space-between;gap:8px;}
.n9 .who:last-child{border-bottom:none;}
.n9 .who .nm{font-weight:800;color:var(--gray-900);}
.n9 .who .dept{opacity:.75;font-size:11.5px;text-align:right;}
.axis-label{text-align:center;font-size:12.5px;color:var(--gray-400);margin:10px 0;font-weight:600;}

/* ── 雷达 ── */
.radar-box{display:flex;gap:30px;align-items:center;flex-wrap:wrap;}

/* ── 表单 ── */
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 20px;}
.field label{display:block;font-size:12.5px;color:var(--gray-600);font-weight:700;margin-bottom:6px;}
.field label .req{color:var(--red-600);}
.field input,.field select,.field textarea{width:100%;padding:9px 12px;border:1.5px solid var(--line);border-radius:8px;font-size:13.5px;font-family:inherit;transition:.15s;background:var(--white);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue-600);box-shadow:0 0 0 3px rgba(47,116,201,.12);}
.field.full{grid-column:1/-1;}
.field .val{padding:8px 0;font-weight:700;color:var(--gray-700);}

/* ── 提示条 ── */
.tip{background:var(--gold-100);border-left:4px solid var(--gold);padding:12px 16px;border-radius:8px;font-size:13px;color:#8a6d00;margin-bottom:16px;line-height:1.7;}
.tip b{color:#6b5200;}
.tip.info{background:var(--blue-100);border-left-color:var(--blue-600);color:var(--blue-800);}
.tip.info b{color:var(--blue-900);}

/* ── Toast ── */
.toast{position:fixed;top:76px;left:50%;transform:translateX(-50%) translateY(-20px);background:var(--blue-900);color:#fff;padding:12px 26px;border-radius:10px;font-size:13.5px;opacity:0;transition:.3s;z-index:999;pointer-events:none;box-shadow:var(--shadow-lg);}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.loading{text-align:center;padding:50px;color:var(--gray-400);font-size:14px;}

/* ── 进度条（维度分）── */
.dim-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);}
.dim-row:last-child{border-bottom:none;}
.dim-row .dn{width:84px;font-weight:700;color:var(--gray-600);font-size:13px;}
.dim-row .db{flex:1;height:9px;background:var(--gray-100);border-radius:5px;overflow:hidden;}
.dim-row .db i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--blue-600),var(--blue-700));transition:width .6s;}
.dim-row .dv{width:48px;text-align:right;font-weight:900;color:var(--blue-800);font-variant-numeric:tabular-nums;}

@media(max-width:900px){
  .stats{grid-template-columns:repeat(2,1fr);}
  .form-grid{grid-template-columns:1fr;}
  .topbar nav{display:none;}
}
