/* itswe.com /exam/ 样式（M1）——独立命名空间 .exm-*，不触碰 swe.css。
 * 深浅双主题沿用 swe 机制：html[data-theme] + .ocs-dark（localStorage 键 swe-theme）。
 * 色板基准：#F6F8FB（浅底）/ #0B1220（深底）/ #1E3A5F（主题蓝，同 manifest）。
 */
:root {
  --exm-bg: #F6F8FB;
  --exm-card: #FFFFFF;
  --exm-ink: #1C2B3A;
  --exm-ink-2: #5A6B7D;
  --exm-line: #D9E2EC;
  --exm-primary: #1E3A5F;
  --exm-primary-ink: #FFFFFF;
  --exm-ok: #167A3B;
  --exm-ok-bg: #E7F5EC;
  --exm-bad: #B3261E;
  --exm-bad-bg: #FBEAE9;
  --exm-warn: #B25E09;
  --exm-soft: #EEF3F8;
}
html.ocs-dark {
  --exm-bg: #0B1220;
  --exm-card: #121C2E;
  --exm-ink: #E4EBF3;
  --exm-ink-2: #93A4B8;
  --exm-line: #25344B;
  --exm-primary: #4C86D8;
  --exm-primary-ink: #0B1220;
  --exm-ok: #4CC38A;
  --exm-ok-bg: #12281C;
  --exm-bad: #E5484D;
  --exm-bad-bg: #2B1416;
  --exm-warn: #E8A33D;
  --exm-soft: #182538;
}
body.exm-page {
  background: var(--exm-bg);
  color: var(--exm-ink);
  margin: 0;
  font: 15px/1.7 "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
}
.exm-wrap { max-width: 960px; margin: 0 auto; padding: 16px 16px 48px; }
.exm-topbar { display: flex; align-items: center; gap: 12px; padding: 14px 0; }
.exm-topbar .brand { font-weight: 700; color: var(--exm-primary); text-decoration: none; font-size: 17px; }
.exm-topbar .crumb { color: var(--exm-ink-2); font-size: 13px; }
.exm-topbar .grow { flex: 1; }
a { color: var(--exm-primary); }

/* 按钮 */
.exm-btn {
  display: inline-block; padding: 7px 14px; border: 1px solid var(--exm-line);
  border-radius: 8px; background: var(--exm-card); color: var(--exm-ink);
  font-size: 14px; cursor: pointer; text-decoration: none; line-height: 1.5;
}
.exm-btn:hover { border-color: var(--exm-primary); color: var(--exm-primary); }
.exm-btn.exm-primary { background: var(--exm-primary); color: var(--exm-primary-ink); border-color: var(--exm-primary); }
.exm-btn.exm-primary:hover { opacity: .92; color: var(--exm-primary-ink); }
.exm-btn.exm-file { position: relative; overflow: hidden; }
.exm-btn[disabled] { opacity: .45; cursor: not-allowed; }

/* 卡片与题目 */
.exm-card { background: var(--exm-card); border: 1px solid var(--exm-line); border-radius: 12px; padding: 18px; margin: 12px 0; }
.exm-card-meta { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; flex-wrap: wrap; }
.exm-tag { background: var(--exm-soft); color: var(--exm-primary); border-radius: 6px; padding: 1px 8px; font-size: 12.5px; font-weight: 600; }
.exm-topic { color: var(--exm-ink-2); font-size: 13px; }
.exm-pos { margin-left: auto; color: var(--exm-ink-2); font-size: 13px; }
.exm-stem { font-size: 16.5px; font-weight: 600; margin: 6px 0 14px; }
.exm-options { display: grid; gap: 8px; }
.exm-opt {
  text-align: left; padding: 10px 12px; border: 1px solid var(--exm-line);
  border-radius: 9px; background: var(--exm-card); color: var(--exm-ink);
  font-size: 15px; cursor: pointer; line-height: 1.6;
}
.exm-opt b { color: var(--exm-primary); margin-right: 6px; }
.exm-opt:hover:not([disabled]) { border-color: var(--exm-primary); }
.exm-opt.on { border-color: var(--exm-primary); background: var(--exm-soft); }
.exm-opt.is-right { border-color: var(--exm-ok); background: var(--exm-ok-bg); }
.exm-opt.is-wrong { border-color: var(--exm-bad); background: var(--exm-bad-bg); }
.exm-opt[disabled] { cursor: default; }
.exm-explain { border-top: 1px dashed var(--exm-line); margin-top: 12px; padding-top: 10px; font-size: 14.5px; }
.exm-explain-text { color: var(--exm-ink); margin: 6px 0; }
.exm-ok { color: var(--exm-ok); font-weight: 700; }
.exm-bad { color: var(--exm-bad); font-weight: 700; }
.exm-ref { color: var(--exm-ink-2); font-size: 13px; margin-top: 6px; }
.exm-ref .exm-ref-std { font-weight: 600; margin-right: 8px; }
.exm-ref .exm-ref-link { margin-right: 8px; }
.exm-card-nav { display: flex; gap: 10px; margin-top: 14px; }

/* 工具条 / 统计 */
.exm-toolbar { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; background: var(--exm-card); border: 1px solid var(--exm-line); border-radius: 10px; padding: 10px 14px; }
.exm-toolbar label { font-size: 13.5px; color: var(--exm-ink-2); }
.exm-toolbar select { margin-left: 4px; padding: 4px 6px; border: 1px solid var(--exm-line); border-radius: 6px; background: var(--exm-card); color: var(--exm-ink); }
.exm-stat { margin-left: auto; color: var(--exm-ink-2); font-size: 13px; }
.exm-empty { padding: 40px 0; text-align: center; color: var(--exm-ink-2); }

/* 门户 */
.exm-hero { background: var(--exm-card); border: 1px solid var(--exm-line); border-radius: 14px; padding: 22px; margin: 10px 0 18px; }
.exm-hero h1 { margin: 0 0 8px; font-size: 22px; }
.exm-hero p { margin: 0; color: var(--exm-ink-2); }
.exm-sec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 14px 0; }
@media (max-width: 640px) { .exm-sec-grid { grid-template-columns: 1fr; } }
.exm-sec-card { background: var(--exm-card); border: 1px solid var(--exm-line); border-radius: 12px; padding: 16px; }
.exm-sec-card h2 { margin: 0 0 6px; font-size: 17px; }
.exm-sec-card p { color: var(--exm-ink-2); font-size: 13.5px; margin: 0 0 10px; }
.exm-paper-list { display: grid; gap: 8px; }
.exm-paper-row { display: flex; align-items: center; gap: 10px; border: 1px solid var(--exm-line); border-radius: 9px; padding: 9px 12px; text-decoration: none; color: var(--exm-ink); font-size: 14.5px; }
.exm-paper-row:hover { border-color: var(--exm-primary); }
.exm-paper-row .meta { color: var(--exm-ink-2); font-size: 12.5px; margin-left: auto; }
.exm-paper-row.disabled { opacity: .55; cursor: not-allowed; }
.exm-portal-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 14px; }
@media (max-width: 860px) { .exm-portal-grid { grid-template-columns: 1fr; } }
.exm-portal-card { background: var(--exm-card); border: 1px solid var(--exm-line); border-radius: 12px; padding: 14px; }
.exm-portal-card h2 { font-size: 16px; margin: 0 0 8px; }
.exm-portal-stat { color: var(--exm-ink-2); font-size: 14px; }
.exm-hint { color: var(--exm-ink-2); font-size: 13px; }
.exm-result-row { display: flex; gap: 10px; font-size: 13.5px; padding: 5px 0; border-bottom: 1px dashed var(--exm-line); }
.exm-result-row b { margin-left: auto; }
.exm-result-row.pass b { color: var(--exm-ok); }
.exm-result-row.fail b { color: var(--exm-bad); }

/* 考试条 / 计时 */
.exm-exam-bar { position: sticky; top: 0; z-index: 20; background: var(--exm-card); border: 1px solid var(--exm-line); border-radius: 10px; padding: 9px 14px; margin: 10px 0; }
.exm-exam-meta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.exm-timer { font-variant-numeric: tabular-nums; font-weight: 700; font-size: 17px; margin-left: auto; }
.exm-timer.warn { color: var(--exm-bad); animation: exm-blink 1s step-end infinite; }
@keyframes exm-blink { 50% { opacity: .45; } }

/* 答题卡 */
.exm-exam-main { display: grid; grid-template-columns: 1fr 220px; gap: 14px; align-items: start; }
@media (max-width: 760px) { .exm-exam-main { grid-template-columns: 1fr; } }
.exm-sheet { background: var(--exm-card); border: 1px solid var(--exm-line); border-radius: 12px; padding: 12px; }
.exm-sheet-title { font-weight: 700; margin-bottom: 6px; }
.exm-sheet-legend { color: var(--exm-ink-2); font-size: 12px; margin-bottom: 8px; }
.exm-sheet-legend .dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin: 0 3px 0 8px; }
.dot.unanswered { background: var(--exm-line); }
.dot.answered { background: var(--exm-primary); }
.dot.marked { background: var(--exm-warn); }
.exm-sheet-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(34px, 1fr)); gap: 5px; }
.exm-sheet-grid .cell { padding: 5px 0; text-align: center; border: 1px solid var(--exm-line); border-radius: 6px; background: var(--exm-card); color: var(--exm-ink); cursor: pointer; font-size: 12.5px; }
.exm-sheet-grid .cell.answered { background: var(--exm-soft); border-color: var(--exm-primary); }
.exm-sheet-grid .cell.marked { border-color: var(--exm-warn); color: var(--exm-warn); font-weight: 700; }
.exm-sheet-grid .cell.cur { outline: 2px solid var(--exm-primary); outline-offset: 1px; }

/* 须知 / 成绩单 / 声明 */
.exm-notice, .exm-result { background: var(--exm-card); border: 1px solid var(--exm-line); border-radius: 14px; padding: 20px; }
.exm-notice h2, .exm-result h2 { margin-top: 0; }
.exm-notice-list li { margin: 6px 0; }
.exm-pledge { display: block; margin: 14px 0; font-size: 14.5px; }
.exm-notice-actions { margin: 10px 0 4px; }
.exm-table { width: 100%; border-collapse: collapse; margin: 10px 0; }
.exm-table th, .exm-table td { border: 1px solid var(--exm-line); padding: 7px 10px; font-size: 14px; text-align: left; }
.exm-table th { width: 110px; background: var(--exm-soft); color: var(--exm-ink-2); font-weight: 600; }
.exm-disclaimer { margin-top: 16px; padding: 10px 12px; border: 1px dashed var(--exm-line); border-radius: 9px; color: var(--exm-ink-2); font-size: 12.5px; background: var(--exm-soft); }
.exm-score-head { border-radius: 12px; padding: 18px; margin-bottom: 12px; }
.exm-score-head.pass { background: var(--exm-ok-bg); border: 1px solid var(--exm-ok); }
.exm-score-head.fail { background: var(--exm-bad-bg); border: 1px solid var(--exm-bad); }
.exm-score { font-size: 40px; font-weight: 800; line-height: 1.1; }
.exm-score small { font-size: 16px; font-weight: 400; color: var(--exm-ink-2); }
.exm-verdict { font-weight: 700; margin: 4px 0; }
.exm-score-sub { color: var(--exm-ink-2); font-size: 13px; }
.exm-weak { background: var(--exm-soft); border: 1px solid var(--exm-line); border-radius: 9px; padding: 10px 12px; font-size: 14px; margin-bottom: 12px; }
.exm-review-item { border: 1px solid var(--exm-line); border-radius: 10px; padding: 12px 14px; margin: 10px 0; }
.exm-review-item .exm-review-head { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: 13.5px; margin-bottom: 6px; }
.exm-result-actions { display: flex; gap: 10px; margin-top: 16px; flex-wrap: wrap; }

/* Toast */
#exm-toast {
  position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%) translateY(20px);
  background: var(--exm-primary); color: var(--exm-primary-ink);
  padding: 9px 16px; border-radius: 9px; font-size: 14px; opacity: 0; pointer-events: none;
  transition: all .25s ease; z-index: 99; max-width: 90vw;
}
#exm-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* 知识点卡片（板块页） */
.exm-topic-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; margin: 12px 0; }
.exm-topic-card { background: var(--exm-card); border: 1px solid var(--exm-line); border-radius: 10px; padding: 12px 14px; cursor: pointer; text-align: left; }
.exm-topic-card b { display: block; margin-bottom: 3px; }
.exm-topic-card span { color: var(--exm-ink-2); font-size: 12.5px; }
.exm-topic-card:hover { border-color: var(--exm-primary); }

/* 打印：只留成绩单 */
@media print {
  .exm-topbar, .exm-result-actions, #exm-toast { display: none !important; }
  body.exm-page { background: #fff; color: #000; }
  .exm-card, .exm-result, .exm-review-item { border-color: #bbb; background: #fff; }
}

/* M3：全站风格页眉/页脚补充（配合 swe-chrome.css 的 calc-header/calc-footer） */
.exm-auth { margin-left: auto; }
.exm-auth a { margin-left: 10px; }
.exm-foot-links { margin-top: 8px; font-size: 13px; color: var(--exm-ink-2); }
.exm-foot-links a { color: var(--exm-ink-2); margin: 0 4px; }
.exm-foot-links a:hover { color: var(--exm-primary); }
.calc-footer .exm-disclaimer { margin-top: 10px; }
.calc-header nav a.active { color: var(--exm-primary); font-weight: 700; }
.exm-cloud { margin-top: 10px; border-top: 1px dashed var(--exm-line); padding-top: 8px; }
.exm-cloud b { display: block; margin-bottom: 4px; font-size: 13px; color: var(--exm-ink-2); }

/* M3：内容宽度对齐全站（swe .sec/.nav-in = max-width 1180px + 24px 内边距） */
body.exm-page .calc-header { padding: 0 max(24px, calc((100% - 1180px) / 2)); }
body.exm-page main.calc-wrap { max-width: 1180px; margin: 0 auto; padding: 16px 24px 32px; box-sizing: border-box; }
body.exm-page .calc-footer { max-width: 1180px; margin: 0 auto; padding: 18px 24px 26px; }

/* M3：按钮等高统一（导出全部数据 / 导入备份 等成对按钮视觉一致） */
.exm-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; box-sizing: border-box; }


body.exm-page .exm-auth{display:flex;align-items:center;gap:8px}
body.exm-page .exm-breadcrumb{font-size:13px;color:var(--muted);margin:0 0 14px}
body.exm-page .exm-breadcrumb a{color:var(--muted)}
body.exm-page .exm-breadcrumb a:hover{color:var(--primary)}
body.exm-page .exm-breadcrumb .sep{margin:0 8px;color:var(--border)}
body.exm-page .exm-breadcrumb b{color:var(--text)}
body.exm-page .ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
body.exm-page .brand .ic{width:27px;height:27px}

/* M3：页脚（原 swe-chrome 提供，改由本文件自带） */
body.exm-page .calc-footer { color: var(--exm-ink-2); font-size: 12.5px; text-align: center; padding: 18px 0 26px; }
body.exm-page .calc-footer a { color: var(--exm-primary); }
body.exm-page .calc-wrap h1 { font-size: clamp(24px, 3vw, 32px); letter-spacing: -.4px; font-weight: 800; }

/* ===== M3：页脚浅色化（对齐题库页底色；skins 全局 footer 深底规则被此覆盖） ===== */
body.exm-page footer.calc-footer {
  background: transparent;
  border-top: 1px solid var(--exm-line);
  color: var(--exm-ink-2);
  margin-top: 48px;
  padding: 22px 24px 28px;
}
body.exm-page footer.calc-footer b { color: var(--exm-ink); }
body.exm-page footer.calc-footer a { color: var(--exm-primary); }
body.exm-page footer .exm-foot-links a { color: var(--exm-ink-2); margin: 0 6px; }
body.exm-page footer .exm-foot-links a:hover { color: var(--exm-primary); }
body.exm-page footer .exm-disclaimer {
  background: var(--exm-soft);
  border-color: var(--exm-line);
  color: var(--exm-ink-2);
  margin-top: 14px;
}
body.exm-page footer .exm-disclaimer b { color: var(--exm-ink); }
