* { box-sizing:border-box; }
body { margin:0; font-family:"Microsoft YaHei",system-ui,sans-serif; background:#f0f4fa; color:#243044; }
.topbar { background:linear-gradient(135deg,#16418a,#2e5fd0); color:#fff; display:flex; align-items:center; gap:22px; padding:0 22px; height:52px; }
.topbar .brand { font-weight:700; letter-spacing:1px; }
.topbar nav { display:flex; gap:4px; flex:1; }
.topbar nav a { color:#dbe7fb; text-decoration:none; padding:6px 12px; border-radius:8px; font-size:14px; }
.topbar nav a:hover { background:rgba(255,255,255,.14); color:#fff; }
.topbar nav a.adm { background:rgba(255,255,255,.16); color:#fff; }
.topbar .who { font-size:13px; color:#cfe0fa; }
.topbar .who a { color:#fff; text-decoration:none; }
.wrap { max-width:1100px; margin:20px auto; padding:0 14px; }
.card { background:#fff; border-radius:12px; padding:18px 20px; margin-bottom:16px; box-shadow:0 1px 4px rgba(30,50,90,.07); }
h1 { font-size:20px; margin:0 0 14px; color:#16418a; }
h2 { font-size:16px; margin:0 0 10px; color:#16418a; }
.btn { display:inline-block; background:#2e5fd0; color:#fff; border:none; border-radius:8px; padding:8px 16px; font-size:14px; cursor:pointer; text-decoration:none; }
.btn.gray { background:#6b7a93; }
.btn.red { background:#b02a24; }
.btn.small { padding:4px 10px; font-size:12.5px; }
input[type=text],input[type=password],input[type=number],select,textarea { padding:8px 10px; border:1px solid #d5dbe6; border-radius:8px; font-size:14px; font-family:inherit; }
table.grid { width:100%; border-collapse:collapse; font-size:13.5px; }
table.grid th { text-align:left; color:#5c789e; font-weight:600; border-bottom:2px solid #e3eaf5; padding:8px 6px; }
table.grid td { border-bottom:1px solid #eef2f8; padding:8px 6px; vertical-align:top; }
.pill { display:inline-block; background:#e8f0fe; color:#2e5fd0; border-radius:20px; padding:2px 10px; font-size:12px; margin:0 4px 4px 0; }
.pill.warn { background:#fdeaea; color:#b02a24; }
.pill.ok { background:#e6f7ee; color:#0f8a55; }
.pill.gray { background:#eef1f6; color:#5c6b82; }
.stat { display:flex; gap:14px; flex-wrap:wrap; }
.stat .box { flex:1; min-width:130px; background:#fff; border-radius:12px; padding:14px 18px; box-shadow:0 1px 4px rgba(30,50,90,.07); }
.stat .box b { display:block; font-size:26px; color:#16418a; }
.stat .box span { font-size:12.5px; color:#5c789e; }
.scard { background:#fff; border-radius:12px; padding:14px 16px; margin-bottom:12px; box-shadow:0 1px 4px rgba(30,50,90,.07); }
.scard .head { display:flex; align-items:center; gap:8px; }
.scard .head .t { font-weight:700; flex:1; }
.scard .body { margin-top:10px; font-size:14.5px; line-height:1.8; background:#f7faff; border-radius:8px; padding:10px 14px; white-space:pre-wrap; }
.scard .meta { margin-top:8px; font-size:12.5px; color:#7d8ba3; line-height:1.7; white-space:pre-wrap; }
.copy { border:1px solid #2e5fd0; background:#fff; color:#2e5fd0; border-radius:6px; font-size:12px; padding:3px 10px; cursor:pointer; }
.copy:hover { background:#2e5fd0; color:#fff; }
.toolbar { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:14px; }
.shero { background:linear-gradient(180deg,#cfe3fc,#e8f2ff,#ffffff); border-radius:14px; padding:26px 26px 18px; text-align:center; margin-bottom:14px; }
.shero h1 { margin:0 0 6px; color:#16418a; font-size:26px; }
.shero p { margin:3px 0; color:#41537a; font-size:13px; }
.nm-wrap { font-size:13px; color:#41537a; display:inline-flex; align-items:center; gap:6px; }
.nm-wrap input { padding:6px 8px; border:1px solid #d8e2f2; border-radius:8px; font-size:13px; }
.btn.small.dark { background:#16418a; color:#fff; border:1px solid #16418a; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 10px; }
.chips a { background:#fff; border:1px solid #d8e2f2; border-radius:999px; padding:5px 14px; font-size:13px; color:#33456b; text-decoration:none; }
.chips a:hover { border-color:#2e5fd0; }
.chips a.act { background:#16418a; border-color:#16418a; color:#fff; }
.hint { font-size:12.5px; color:#8a97ad; margin:4px 0 12px; }
.sgrid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:860px) { .sgrid { grid-template-columns:1fr; } }
.sgrid .scard { margin-bottom:0; padding:0; overflow:hidden; }
.sgrid .scard .head { padding:12px 14px; cursor:pointer; }
.sgrid .scard .head .arr { color:#8a97ad; font-size:11px; transition:transform .2s; }
.sgrid .scard.open .arr { transform:rotate(180deg); }
.sgrid .scard .cwrap { display:none; padding:0 14px 12px; }
.sgrid .scard.open .cwrap { display:block; }
.ph { background:#fff3c4; border-radius:4px; padding:0 3px; }
.docbody { background:#fff; border-radius:12px; padding:26px 32px; line-height:1.9; font-size:14.5px; box-shadow:0 1px 4px rgba(30,50,90,.07); }
.docbody img { max-width:100%; }
.docbody table { border-collapse:collapse; }
.docbody table td,.docbody table th { border:1px solid #d5dbe6; padding:5px 9px; }
.docbody h1,.docbody h2 { color:#16418a; }
.examq { background:#fff; border-radius:12px; padding:14px 18px; margin-bottom:12px; box-shadow:0 1px 4px rgba(30,50,90,.07); }
.examq .stem { font-weight:600; margin-bottom:8px; white-space:pre-wrap; }
.examq label { display:block; padding:5px 8px; border-radius:6px; cursor:pointer; font-size:14px; }
.examq label:hover { background:#f0f4fa; }
.bigscore { font-size:44px; font-weight:800; color:#16418a; }
.pass { color:#0f8a55; } .fail { color:#b02a24; }
.login-box { max-width:360px; margin:90px auto; background:#fff; border-radius:16px; padding:32px 34px; box-shadow:0 8px 30px rgba(20,40,90,.15); }
.login-box h1 { text-align:center; }
.login-box input { width:100%; margin-bottom:12px; }
.err { background:#fdeaea; color:#b02a24; border-radius:8px; padding:8px 12px; margin-bottom:12px; font-size:13px; }
.msg { background:#e6f7ee; color:#0f8a55; border-radius:8px; padding:8px 12px; margin-bottom:12px; font-size:13px; }
form.inline { display:inline; }
.qtext { font-size:13px; color:#333; max-width:520px; }
a { color:#2e5fd0; }
