:root{
  --navy:#24409a; --gold:#d9a036; --ink:#0b0b0b; --ink2:#52514e; --ink3:#8a887f;
  --hair:#e5e4e0; --panel:#f7f6f3; --surf:#fff; --data:#2a78d6; --serious:#ec835a;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'PingFang SC','Hiragino Sans GB','Microsoft YaHei',system-ui,sans-serif;
  color:var(--ink);background:#f0f1f4;line-height:1.6;font-size:14px}
a{color:var(--navy);text-decoration:none}
.mast{background:var(--surf);border-bottom:3px solid var(--navy);padding:14px 28px;
  display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10}
.mast .brand{font-size:12px;letter-spacing:3px;color:var(--navy);font-weight:700}
.mast .brand b{display:block;font-size:16px;letter-spacing:1px;margin-top:2px;color:var(--ink)}
.mast nav a{margin-left:18px;font-size:13px;color:var(--ink2)}
.mast nav a:hover{color:var(--navy)}
.wrap{max-width:1080px;margin:26px auto;padding:0 24px}
h1{font-size:22px;font-weight:700;margin-bottom:4px}
.sub{color:var(--ink3);font-size:13px;margin-bottom:22px}
h2{font-size:15px;font-weight:700;margin:20px 0 10px;display:flex;align-items:center;gap:8px}
h2::before{content:'';width:9px;height:9px;background:var(--gold);border-radius:2px}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.card{background:var(--surf);border:1px solid var(--hair);border-radius:10px;padding:18px 20px;
  transition:.15s;display:block}
.card:hover{border-color:var(--navy);box-shadow:0 4px 16px rgba(36,64,154,.1);transform:translateY(-2px)}
.card .name{font-size:18px;font-weight:700}
.card .meta{color:var(--ink3);font-size:12px;margin-top:6px;line-height:1.7}
.card .badge{display:inline-block;font-size:10px;padding:1px 7px;border-radius:99px;margin-top:8px;
  background:#eaf1e9;color:#3a7d44}
.card .badge.stub{background:#fdf1e6;color:#b5651d}
.card .links{margin-top:12px;font-size:12px;display:flex;gap:14px}

.panel{background:var(--surf);border:1px solid var(--hair);border-radius:10px;padding:20px 24px;margin-bottom:18px}
.row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.fld{flex:1;min-width:150px}
.fld label{display:block;font-size:12px;color:var(--ink2);font-weight:600;margin-bottom:4px}
.fld .help{font-size:11px;color:var(--ink3);margin-top:3px}
input[type=text],input[type=number],input[type=date],select{
  width:100%;padding:8px 10px;border:1px solid var(--hair);border-radius:6px;font-size:13px;font-family:inherit;background:var(--surf)}
input:focus,select:focus{outline:none;border-color:var(--navy)}
.chk{display:flex;flex-wrap:wrap;gap:6px 16px}
.chk label{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--ink);font-weight:400}
.chk input{width:auto}

.grid-sec{margin:8px 0 14px}
.grid-sec .stag{font-size:12px;color:var(--ink3);margin-bottom:6px}
table.ans{border-collapse:collapse;width:100%;font-size:13px}
table.ans td{border:1px solid var(--hair);padding:5px 8px;text-align:center}
table.ans td.qid{background:var(--panel);font-weight:600;width:52px}
table.ans .opt{display:inline-flex;gap:2px;align-items:center;margin:0 4px;cursor:pointer}
table.ans .opt input{margin:0}
.scpart{margin:8px 0}
.scpart label{font-size:13px;font-weight:600;color:var(--ink2)}

.btn{display:inline-block;background:var(--navy);color:#fff;border:none;border-radius:7px;
  padding:10px 22px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;
  white-space:nowrap}
.btn:hover{background:#1b3378}
.btn.gold{background:var(--gold)}.btn.gold:hover{background:#c08e28}
.btn.ghost{background:#fff;color:var(--navy);border:1.5px solid var(--navy)}
.actions{display:flex;gap:12px;margin-top:18px;align-items:center;flex-wrap:wrap}
.actions .note{flex-basis:100%;margin-top:2px}

.reportframe{width:100%;height:calc(100vh - 200px);min-height:900px;border:1px solid var(--hair);
  border-radius:8px;background:#888}
.internal{background:#fff7ec;border:1px solid #f0d9b5;border-radius:8px;padding:14px 18px;margin-bottom:16px;font-size:13px}
.internal .tag{display:inline-block;background:var(--serious);color:#fff;font-size:10px;letter-spacing:1px;
  padding:2px 8px;border-radius:4px;font-weight:700;margin-bottom:8px}
.internal code{background:#fff;padding:1px 5px;border-radius:3px;border:1px solid var(--hair)}
.note{font-size:12px;color:var(--ink3);margin-top:8px}

/* 学生端答题 */
.qcard{background:var(--surf);border:1px solid var(--hair);border-radius:9px;padding:16px 20px;margin-bottom:12px}
.qcard .qh{font-size:12px;color:var(--navy);font-weight:700;margin-bottom:6px}
.qcard .qt{font-size:14px;margin-bottom:10px;white-space:pre-wrap;line-height:1.7}
.qcard .opts label{display:block;padding:7px 12px;border:1px solid var(--hair);border-radius:6px;margin-bottom:6px;cursor:pointer;font-size:13px}
.qcard .opts label:hover{border-color:var(--navy);background:var(--panel)}
.secbar{background:var(--navy);color:#fff;padding:8px 16px;border-radius:7px;font-weight:700;font-size:14px;margin:18px 0 12px}
.timer{position:sticky;top:66px;background:#fff;border:1px solid var(--hair);border-radius:8px;padding:10px 16px;
  font-size:13px;color:var(--ink2);z-index:5;box-shadow:0 2px 8px rgba(0,0,0,.05)}

/* 题目配图（数学内联SVG / 化学裁切图） */
.qcard .qfig{margin:10px 0 12px;}
.qcard .qfig img{max-width:min(100%,420px);height:auto;display:block;border:1px solid var(--hair);border-radius:6px;padding:6px;background:#fff}
.qcard .qfig svg{max-width:100%;height:auto}
