*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:#eef1f5;color:#2b3242;font-size:14px}
.wrap{max-width:1180px;margin:0 auto;padding:28px}
.title{font-size:24px;font-weight:800;color:#3370ff;border-left:4px solid #3370ff;padding-left:12px}
.sub{color:#6b7280;margin-top:8px;font-size:13px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:24px}
.card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:18px;box-shadow:0 8px 22px rgba(15,23,42,.05)}
.card h2{font-size:17px;margin:0 0 8px}.card p{font-size:13px;line-height:1.7;color:#6b7280}
.btn{display:inline-block;margin-top:12px;border:1px solid #3370ff;background:#3370ff;color:#fff;border-radius:9px;padding:8px 12px;text-decoration:none;font-size:13px;cursor:pointer}
.muted{background:#f8fafc;border-color:#dbe3ef;color:#475569}
.panel{margin-top:22px;background:#fff;border-radius:14px;border:1px solid #e5e7eb;padding:18px}
label{display:block;font-size:13px;color:#64748b;margin:10px 0 4px}
input{width:100%;padding:9px 10px;border:1px solid #dbe3ef;border-radius:9px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:720px){.row{grid-template-columns:1fr}}
h2.sec{font-size:16px;font-weight:700;border-left:3px solid #3370ff;padding-left:9px}
.auto{font-size:12px;color:#2bb673;font-weight:700}
.scanbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#f7faff;border:1px solid #e1e8f5;border-radius:9px;padding:11px 14px;margin:16px 0;color:#2b3242;flex-wrap:wrap}
.subtab{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 16px;border-bottom:2px solid #eef1f6}
.stb{padding:9px 17px;font-size:13.5px;font-weight:600;color:#5a6378;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer}
.stb.on{color:#3370ff;border-bottom-color:#3370ff}
.tabpane{display:none}.tabpane.on{display:block}
.gtag{display:inline-block;font-size:13.5px;font-weight:700;padding:3px 11px;border-radius:8px;background:#e7eefe;color:#3370ff;margin-bottom:8px}
table.audit{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}
.audit th,.audit td{border:1px solid #e6eaf1;padding:7px 10px;text-align:left;vertical-align:middle;background:#fff}
.audit th{background:#f5f7fb;color:#5a6378;font-weight:600}
.audit td.module{background:#f4f7fe;color:#34466c;font-weight:700;text-align:center;width:98px}
.audit td.rule{width:28%;color:#1d2330}.audit td.result{width:96px}.audit td.page,.audit td.teach{width:110px;text-align:center}
.audit tr.gsep td{border-top:1px solid #e4ebf5}
.evlist{margin:0;padding-left:16px;line-height:1.65}
.evlist.fail,.evlist.evno{color:#c83e6b}
.evlist.evwarn{color:#d9912a}
.table-wrap{border:1px solid #e9edf4;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 1px 3px rgba(30,50,90,.035);margin-top:8px}
.table-wrap table{width:100%;border-collapse:collapse;font-size:13px}
.table-wrap th{background:#f8fafd;color:#6b7488;font-weight:600;font-size:12px;text-align:left;padding:8px 15px;border-bottom:1px solid #edf1f7;white-space:nowrap}
.table-wrap td{padding:8px 15px;line-height:1.42;vertical-align:middle;border-bottom:1px solid #f2f5f9;color:#2b3242}
.table-wrap tbody tr:last-child td{border-bottom:none}
.table-wrap tbody tr:hover td{background:#fbfcff}
.table-wrap td.module{background:#f7f9fe;font-weight:700;color:#43506b;border-right:1px solid #eef2f8;white-space:nowrap;text-align:center}
.badge{display:inline-block;padding:2px 9px;border-radius:11px;font-size:12px;font-weight:600;white-space:nowrap}
.b-done{background:#e3f7e9;color:#2bb673}.b-no{background:#fde9ef;color:#c83e6b}.b-todo{background:#eef1f6;color:#8a93a6}.b-warn{background:#fff3df;color:#d9912a}
.pill{display:inline-block;color:#3370ff;border:1px solid #3370ff;background:#fff;border-radius:7px;padding:3px 10px;font-size:12px;text-decoration:none;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.act{border:1px solid #cfd6e4;background:#fff;border-radius:10px;padding:5px 11px;font-size:12px;color:#5a6378;cursor:pointer;white-space:nowrap}
.act.go{background:#3370ff;color:#fff;border-color:#3370ff}
.act.tut{color:#3370ff;border-color:#3370ff;background:#eef3fe;border-radius:7px;padding:3px 10px;text-decoration:none;display:inline-block}
.empty,.note{color:#8a93a6;text-align:center;padding:18px;font-size:13px}
.psi{margin-bottom:12px;padding:12px;border:1px solid #e6eaf1;border-radius:10px;background:#fbfcfe;font-size:13px}
.status,.statusline{margin-top:12px;white-space:pre-wrap;background:#0f172a;color:#e5e7eb;padding:12px;border-radius:10px;overflow:auto;min-height:72px;font-size:12px}
