/* 共享样式（浅色主题） */
* { box-sizing: border-box; }
body { margin:0; font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; background:#f5f7f8; color:#1f2d27; }
a { color:#2f7d4f; text-decoration:none; }
.wrap { max-width: 960px; margin: 0 auto; padding: 24px 16px 60px; }
.card { background:#fff; border-radius:14px; box-shadow:0 2px 14px rgba(0,0,0,.06); padding:22px; margin-bottom:18px; }
h1 { font-size:24px; margin:0 0 6px; }
h2 { font-size:18px; margin:0 0 14px; }
.muted { color:#7a8a82; font-size:13px; }
.btn { display:inline-block; border:none; border-radius:9px; padding:10px 16px; font-size:14px; cursor:pointer; background:#2f7d4f; color:#fff; }
.btn:hover { filter:brightness(.95); }
.btn.sec { background:#eef2ef; color:#2f7d4f; }
.btn.danger { background:#d9534f; }
.btn.sm { padding:6px 10px; font-size:12px; border-radius:7px; }
.btn:disabled, .btn.disabled { opacity:.55; cursor:not-allowed; }
.imp-spec { background:#fff; border:1px dashed #d6e2da; border-radius:8px; padding:12px 14px; margin-bottom:6px; }
.imp-code { display:inline-block; background:#eef2ef; padding:2px 7px; border-radius:5px; font-size:12px; font-family: ui-monospace, Menlo, Consolas, monospace; word-break:break-all; color:#2f5141; }
input,select { width:100%; padding:9px 11px; border:1px solid #d8e0db; border-radius:8px; font-size:14px; margin-bottom:10px; background:#fff; }
label { font-size:13px; color:#4a5a52; display:block; margin-bottom:4px; }
.row { display:flex; gap:12px; flex-wrap:wrap; }
.row > * { flex:1; min-width:140px; }
table { width:100%; border-collapse:collapse; font-size:13px; }
th,td { padding:9px 10px; text-align:left; border-bottom:1px solid #eef2ef; }
th { color:#7a8a82; font-weight:600; }
.badge { display:inline-block; padding:2px 9px; border-radius:20px; font-size:12px; }
.badge.active{background:#e3f3e8;color:#2f7d4f;}
.badge.pending{background:#fff3d6;color:#a9791a;}
.badge.suspended{background:#fde3e1;color:#c0392b;}
.tag { display:inline-block; padding:2px 8px; border-radius:6px; background:#eef2ef; color:#4a5a52; font-size:12px; margin-right:6px;}
.topbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.tabs { display:flex; gap:8px; margin-bottom:16px; }
.tabs button { border:none; background:#eef2ef; padding:8px 14px; border-radius:8px; cursor:pointer; font-size:14px; }
.tabs button.on { background:#2f7d4f; color:#fff; }
.hidden { display:none; }
.bar { height:10px; background:#eef2ef; border-radius:6px; overflow:hidden; }
.bar > i { display:block; height:100%; background:#2f7d4f; }
.up { color:#2f7d4f; } .down { color:#c0392b; } .flat{color:#7a8a82;}
.report-head { display:flex; align-items:center; gap:14px; border-bottom:3px solid var(--brand,#2f7d4f); padding-bottom:14px; margin-bottom:18px; }
.report-head .logo { width:46px; height:46px; border-radius:10px; background:var(--brand,#2f7d4f); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:20px; }
.report-head .inst { font-size:20px; font-weight:700; }
.kpi { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:18px; }
.kpi .box { flex:1; min-width:120px; background:#f8faf8; border-radius:12px; padding:14px; text-align:center; }
.kpi .num { font-size:30px; font-weight:700; }
