/* 主观题两种外观共用题目、作答和评分 DOM；客观题模式不覆盖此处。 */
html .question-card.subjective-card {
  --subjective-surface:var(--white); --subjective-border:var(--border);
  background:var(--subjective-surface); border:1px solid var(--subjective-border);
  border-radius:18px; padding:0; box-shadow:var(--shadow-card); overflow:visible;
}
.subjective-card > .question-card-header {
  padding:20px 26px; margin:0; border-bottom:1px solid var(--subjective-border);
  background:transparent; border-radius:18px 18px 0 0; flex-wrap:wrap;
}
.subjective-card .question-num { background:transparent; border-radius:0; padding:0; font-weight:500; color:var(--primary); }
.subjective-card > .question-card-header .question-num { font-size:var(--type-title-sm); color:var(--primary); }
.subjective-card .question-type-tag { background:transparent; padding:0; color:var(--primary); }
.subjective-material,.subjective-standalone-body { padding:22px 26px; }
.subjective-material:empty { display:none; }
.subjective-material > :last-child,.subjective-card .sub-stem { margin-bottom:0; }
.subjective-card .parent-instruction { margin-top:16px; font-weight:500; }
html .subjective-card .sub-question-card {
  margin:0; border:0; border-top:1px solid var(--subjective-border);
  border-radius:0; padding:20px 26px; background:transparent; box-shadow:none;
}
.subjective-card .sub-question-card > .question-card-header { padding:0; margin:0 0 10px; background:transparent; }
.subjective-card .sub-subjective-card > .question-card-header { align-items:flex-start; }
.subjective-sub-heading { flex:1; min-width:0; margin:0; }
.subjective-card .question-review-warning { margin:12px 26px; }
.subjective-card .sub-question-card .question-review-warning { margin:12px 0; }
.subjective-card-foot { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; padding:12px 26px; border-top:1px solid var(--subjective-border); color:var(--on-surface-variant); font-size:12px; }
.subjective-standalone-tools { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.subjective-expand-btn,.subjective-source-btn,.collapse-answer-btn {
  padding:6px 8px; min-height:34px; font:inherit; font-size:13px;
  color:var(--primary); background:transparent; border:1px solid transparent; border-radius:7px; cursor:pointer;
}
.subjective-expand-btn { margin-left:auto; color:var(--on-surface-variant); }
.subjective-expand-btn:hover,.subjective-source-btn:hover,.collapse-answer-btn:hover { background:var(--alpha-06); color:var(--primary); }
.subjective-card button:focus-visible,.subjective-answer-input:focus-visible { outline:2px solid var(--primary); outline-offset:3px; }
.subjective-answer-box { margin-top:16px; }
.subjective-answer-box.collapsed { display:none; }
.subjective-answer-label { display:block; margin-bottom:8px; color:var(--on-surface-variant); font-size:12px; }
.subjective-answer-input {
  display:block; width:100%; min-height:140px; resize:vertical; box-sizing:border-box;
  padding:12px 14px; border:1px solid var(--border); border-radius:10px;
  font-family:inherit; font-size:var(--sf-font,var(--type-body)); line-height:var(--sf-line,var(--leading-body));
  color:var(--on-surface); background:var(--surface-subtle);
}
.subjective-answer-input::placeholder { color:var(--on-surface-variant); }
.subjective-answer-input:focus { border-color:var(--primary); background-color:var(--subjective-surface); }
.subjective-answer-footer { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-top:10px; }
.subjective-answer-status { margin-right:auto; color:var(--on-surface-variant); font-size:12px; }
.grade-btn { padding:7px 14px; min-height:36px; border:1px solid transparent; border-radius:8px; background:var(--action-fill); color:var(--on-action); font:inherit; font-size:13px; cursor:pointer; white-space:nowrap; }
.grade-btn:hover:not(:disabled) { filter:brightness(.95); }
.grade-btn:disabled { background:var(--surface-subtle); border-color:var(--border); color:var(--on-surface-variant); cursor:default; }
.collapse-answer-btn { color:var(--on-surface-variant); }

/* 纸感保留当前皮肤色与阅读字号，仅切换书页材质、字体和作答线。 */
html[data-subjective-view="paper"] .question-card.subjective-card {
  --subjective-surface:var(--paper-surface); --subjective-border:var(--paper-border);
  border-radius:4px; box-shadow:var(--shadow-card);
}
[data-subjective-view="paper"] .subjective-card > .question-card-header {
  margin:0 26px; padding:24px 0 18px; border-bottom:2px solid var(--on-surface); border-radius:0;
}
[data-subjective-view="paper"] .subjective-card .question-stem-text,
[data-subjective-view="paper"] .review-subjective .review-stem { font-family:'Songti SC','SimSun',serif; }
[data-subjective-view="paper"] .subjective-card .question-num { color:var(--primary); }
[data-subjective-view="paper"] .subjective-card > .question-card-header .question-type-tag { font-family:'Songti SC','SimSun',serif; font-size:16px; color:var(--primary); }
html[data-subjective-view="paper"] .subjective-card .sub-question-card { margin:0 26px; padding:20px 0; }
[data-subjective-view="paper"] .subjective-answer-input {
  --answer-line:calc(var(--sf-font,var(--type-body)) * var(--sf-line,var(--leading-body)));
  border:1px solid transparent; border-radius:0; padding:0 4px;
  background-color:transparent;
  background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--answer-line) - 1px),var(--paper-border) calc(var(--answer-line) - 1px),var(--paper-border) var(--answer-line));
  background-origin:content-box;
}
[data-subjective-view="paper"] .subjective-answer-input:focus { background-color:transparent; }
.review-item.review-subjective { background:var(--white); border:1px solid var(--border); border-radius:14px; }
[data-subjective-view="paper"] .review-item.review-subjective { background:var(--paper-surface); border-color:var(--paper-border); border-radius:4px; }
@media(max-width:620px) {
  .subjective-card > .question-card-header,.subjective-material,.subjective-standalone-body { padding:18px; }
  html .subjective-card .sub-question-card { padding:18px; }
  .subjective-card-foot { padding:12px 18px; }
  [data-subjective-view="paper"] .subjective-card > .question-card-header { margin:0 18px; padding:18px 0; }
  html[data-subjective-view="paper"] .subjective-card .sub-question-card { margin:0 18px; padding:18px 0; }
}
@media(pointer:coarse) {
  .subjective-expand-btn,.subjective-source-btn,.collapse-answer-btn,.grade-btn { min-height:44px; }
  .subjective-answer-input { font-size:max(16px,var(--sf-font,var(--type-body))); }
}
