:root {
  color-scheme: light;
  --ink: #17212b;
  --muted: #667481;
  --line: #d9e0e5;
  --panel: #fff;
  --canvas: #f2f5f6;
  --accent: #176b61;
  --accent-strong: #10574f;
  --accent-soft: #e6f2ef;
  --warning: #a45a16;
  --sidebar: #f8faf9;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  overflow: hidden;
  font-family: "Segoe UI", "Microsoft YaHei", sans-serif;
  color: var(--ink);
  background: var(--canvas);
}
button, input, select { font: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid rgba(23, 107, 97, .28);
  outline-offset: 1px;
}
[hidden] { display: none !important; }
button {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  border-radius: 5px;
  cursor: pointer;
}
button:hover:not(:disabled) { border-color: var(--accent); color: var(--accent); }
button:disabled { opacity: .45; cursor: not-allowed; }

.question-emphasis-dot {
  -webkit-text-emphasis: filled dot;
  text-emphasis: filled dot;
  text-emphasis-position: under;
}
.question-text-underline { text-decoration: underline; text-decoration-thickness: 1px; }

.app-shell {
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(270px, 310px) minmax(0, 1fr);
  overflow: hidden;
}
.sidebar {
  min-height: 0;
  padding: 18px 14px 28px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  background: var(--sidebar);
  border-right: 1px solid var(--line);
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 8px 18px;
  border-bottom: 1px solid var(--line);
}
.brand-mark {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: #203c3a;
  color: #fff;
  font-weight: 700;
}
.brand strong, .brand small { display: block; }
.brand small { margin-top: 3px; color: var(--muted); font-size: 12px; }

.segment-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  margin: 14px 6px 4px;
  padding: 3px;
  border-radius: 6px;
  background: #e9eeec;
}
.segment-tabs button {
  min-width: 0;
  padding: 7px 8px;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 13px;
}
.segment-tabs button.active {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 1px 2px rgba(23, 33, 43, .1);
}
.data-quality-panel { margin: 9px 6px 0; border: 1px solid #dfe6e3; background: #fff; }
.data-quality-panel > summary { display: flex; justify-content: space-between; gap: 8px; padding: 8px; color: #42514e; cursor: pointer; font-size: 11px; font-weight: 650; }
.data-quality-panel > summary span:last-child { color: var(--muted); font-weight: 400; }
.data-quality-list { max-height: 280px; overflow-y: auto; border-top: 1px solid #e7ecea; }
.data-quality-list > p { margin: 0; padding: 9px; color: var(--muted); font-size: 10px; }
.data-quality-row { padding: 8px 9px; border-bottom: 1px solid #edf1ef; }
.data-quality-row:last-child { border-bottom: 0; }
.data-quality-row header { display: flex; justify-content: space-between; gap: 8px; font-size: 10px; }
.data-quality-row header span { color: #176f5f; }
.data-quality-row p { margin: 4px 0 0; color: #7b654c; font-size: 9px; line-height: 1.45; }
.data-quality-row.empty header span,
.data-quality-row.empty p { color: #8a9491; }
.data-quality-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin: 6px 0 0; }
.data-quality-metrics div { min-width: 0; padding: 4px 5px; border-left: 2px solid #cfddd8; background: #f6faf8; }
.data-quality-metrics dt { color: #66736f; font-size: 9px; }
.data-quality-metrics dd { margin: 1px 0 0; color: #1e3630; font-size: 11px; font-variant-numeric: tabular-nums; }
.data-quality-risks { display: grid; gap: 3px; margin-top: 6px; }
.data-quality-risk { display: flex; flex-wrap: wrap; gap: 3px 6px; align-items: baseline; }
.data-quality-risk strong { min-width: 25px; color: #4f625c; font-size: 9px; }
.data-quality-risk span { color: #7b654c; }
.data-quality-risk.answer-risk span:first-of-type { color: #9a5a24; }
.data-quality-risk.structure-risk span { color: #8d4741; }
.data-quality-risk.mapping-risk span { color: #536879; }
.data-quality-clear { color: #176f5f !important; }
.answer-status { display: inline-block; margin-right: 5px; padding: 1px 5px; border-radius: 3px; font-size: 10px; line-height: 1.4; }
.answer-status.complete { color: #176f5f; background: #e5f5ef; }
.answer-status.open { color: #5b5aa6; background: #eeedff; }
.answer-status.missing { color: #9a5a24; background: #fff1df; }
.catalog-tree { padding-top: 10px; }
.tree-subject-group, .tree-book-group { border-bottom: 1px solid #e8ecea; }
.tree-subject-group > summary, .tree-book-group > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  list-style: none;
  cursor: pointer;
}
.tree-subject-group > summary::-webkit-details-marker,
.tree-book-group > summary::-webkit-details-marker { display: none; }
.tree-subject-group > summary {
  min-height: 38px;
  padding: 7px 8px;
  font-size: 13px;
  font-weight: 650;
}
.tree-subject-group > summary::before {
  content: ">";
  width: 12px;
  color: #87928f;
  transform-origin: center;
  transition: transform .12s ease;
}
.tree-subject-group[open] > summary::before { transform: rotate(90deg); }
.tree-subject-group > summary span:first-child { flex: 1; }
.tree-subject-group > summary span:last-child { color: var(--muted); font-size: 11px; font-weight: 400; }
.tree-edition { padding: 8px 9px 4px 29px; color: #7a8783; font-size: 11px; }
.tree-book-group { margin-left: 18px; border-bottom: 0; }
.tree-book-group > summary { min-height: 34px; padding: 5px 8px 5px 11px; font-size: 12px; }
.tree-book-group > summary span:first-child { min-width: 0; overflow-wrap: anywhere; }
.book-count, .book-empty {
  flex: 0 0 auto;
  padding: 2px 5px;
  border-radius: 3px;
  font-size: 10px;
}
.book-count { color: #12685c; background: #dff0eb; }
.book-empty { color: #7b8582; background: #edf0ef; }
.tree-book-content {
  margin: 2px 0 7px 5px;
  padding-left: 7px;
  border-left: 1px solid #dbe3e0;
}
.book-scope-button {
  width: 100%;
  margin: 2px 0 5px;
  padding: 5px 6px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border: 0;
  border-radius: 4px;
  color: var(--accent-strong);
  background: #eef6f3;
  text-align: left;
  font-size: 11px;
  cursor: pointer;
}
.book-scope-button:hover, .book-scope-button.active { background: var(--accent-soft); }
.tree-chapter { margin: 2px 0; }
.tree-chapter-row { display: grid; grid-template-columns: minmax(0, 1fr) 28px; align-items: start; }
.tree-section-row { display: grid; grid-template-columns: minmax(0, 1fr) 28px; align-items: start; }
.tree-section-group { margin-left: 8px; }
.tree-subsections { margin-left: 12px; padding-left: 8px; border-left: 1px solid #e2e8e6; }
.subsection-button {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 7px 6px 10px;
    border: 0;
    background: transparent;
    color: #596763;
    text-align: left;
    font-size: 11px;
    line-height: 1.35;
}
.subsection-button:hover, .subsection-button.active { background: #eef3f1; color: var(--ink); }
.orphan-subsection { border-left: 2px solid #b87b45; }
.chapter-button, .section-button {
  min-width: 0;
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  text-align: left;
}
.chapter-button { padding: 7px 6px; font-size: 12px; font-weight: 600; line-height: 1.45; }
.section-button { padding: 6px 6px 6px 16px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.chapter-button:hover, .chapter-button.active,
.section-button:hover, .section-button.active { background: var(--accent-soft); color: var(--accent-strong); }
.tree-toggle {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #788480;
  font-size: 18px;
  line-height: 1;
}
.tree-count { flex: 0 0 auto; padding-top: 2px; color: #75827f; font-size: 10px; font-weight: 400; }
.tree-loading, .tree-error, .tree-empty { padding: 10px 8px 10px 16px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.tree-error { color: #9a4d21; }
.catalog-source-status { margin: 16px 8px 0; padding-top: 10px; border-top: 1px solid var(--line); color: #7b8783; font-size: 10px; }

.workspace {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.workspace-header {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 24px 34px 18px;
  border-bottom: 1px solid var(--line);
  background: var(--panel);
}
.eyebrow { display: block; max-width: min(760px, 70vw); color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.workspace h1 { margin: 8px 0 0; font-size: 22px; letter-spacing: 0; }
.header-meta { display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: 13px; }
.dot { width: 4px; height: 4px; border-radius: 50%; background: #a9b3bd; }
.workbench-controls {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px 22px;
  padding: 15px 34px 17px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.mode-row { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; }
.filter-toggle { display: none; padding: 7px 10px; color: var(--accent-strong); }
.info-button {
  width: 18px;
  height: 18px;
  padding: 0;
  border-radius: 50%;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 11px;
  line-height: 16px;
}
.mode-switch {
  display: inline-grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #edf1f0;
}
.mode-switch button {
  min-width: 96px;
  padding: 7px 13px;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 13px;
}
.mode-switch button.active {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 1px 2px rgba(23, 33, 43, .12);
}
.filter-strip {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: 9px;
  align-items: end;
  padding: 12px;
  border: 1px solid #e0e6e8;
  background: #f8faf9;
}
.keyword-filter { grid-column: span 2; }
.filter-strip label,
.control-group label,
.score-control label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
}
.filter-strip select,
.filter-strip input {
  width: 100%;
  min-width: 0;
  height: 32px;
  padding: 5px 7px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
  color: var(--ink);
}
.filter-strip input::placeholder { color: #9aa5ad; }
.filter-strip select.multi-filter { height: 72px; padding: 3px; }
.filter-strip select.multi-filter option { padding: 3px 5px; }
.filter-actions { display: flex; gap: 6px; }
.filter-actions button { height: 32px; padding: 5px 11px; white-space: nowrap; }
.filter-actions button:last-child { border-color: #82aaa4; color: var(--accent-strong); }
.compose-controls {
  min-width: 0;
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 22px;
}
.control-group { display: flex; flex-wrap: wrap; gap: 12px; }
.control-group input { width: 65px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 4px; }
.score-control { min-width: 210px; }
.score-control output { color: var(--accent); font-weight: 600; }
.score-control input { width: 210px; accent-color: var(--accent); }
.question-selector input { accent-color: var(--accent); }
.primary { align-self: end; min-width: 112px; padding: 8px 16px; border-color: var(--accent); background: var(--accent); color: #fff; }
.primary:hover:not(:disabled) { background: var(--accent-strong); color: #fff; }

.lesson-controls {
  grid-column: 1 / -1;
  display: grid;
  gap: 14px;
  padding: 14px;
  border: 1px solid #dce4e1;
  background: #f8faf9;
}
.lesson-task-details,
.lesson-detail-group,
.lesson-history-panel { min-width: 0; border: 1px solid #d8e1de; background: #fff; }
.lesson-task-details > summary,
.lesson-detail-group > summary,
.lesson-history-panel > summary {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 11px;
  color: var(--ink);
  cursor: pointer;
  font-size: 12px;
  font-weight: 650;
  list-style-position: inside;
}
.lesson-task-details > summary span:last-child,
.lesson-detail-group > summary span:last-child,
.lesson-history-panel > summary span:last-child { color: var(--muted); font-size: 10px; font-weight: 500; text-align: right; }
.lesson-task-details[open] > summary,
.lesson-detail-group[open] > summary,
.lesson-history-panel[open] > summary { border-bottom: 1px solid #e5ebe9; background: #f7f9f8; }
.lesson-task-details > :not(summary),
.lesson-detail-group > :not(summary),
.lesson-history-panel > :not(summary) { margin: 11px; }
.lesson-history-panel { margin: 0 11px 11px; background: #fbfcfc; }
.lesson-history-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px; }
.lesson-history-toolbar label { display: grid; gap: 4px; color: var(--muted); font-size: 10px; }
.lesson-history-toolbar input { min-width: 0; min-height: 32px; padding: 5px 8px; border: 1px solid var(--line); background: #fff; }
.lesson-history-list { max-height: 260px; overflow: auto; border-top: 1px solid #e5ebe9; }
.lesson-history-list > p { margin: 10px 0; color: var(--muted); font-size: 11px; }
.lesson-history-item { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 9px 4px; border: 0; border-bottom: 1px solid #edf1ef; background: transparent; color: var(--ink); text-align: left; }
.lesson-history-item:hover { background: #f4f8f6; }
.lesson-history-item.active { box-shadow: inset 3px 0 0 var(--accent); background: #f1f8f5; }
.lesson-history-item > span { min-width: 0; display: grid; gap: 3px; }
.lesson-history-item > span:last-child { justify-items: end; }
.lesson-history-item strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.lesson-history-item small,
.lesson-history-item time { color: var(--muted); font-size: 9px; }
.lesson-history-item b { color: #176f5f; font-size: 10px; font-weight: 600; }
.lesson-runtime-panel { min-height: 64px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid #cfdbe7; background: #f6f9fc; }
.lesson-runtime-panel[hidden] { display: none; }
.lesson-runtime-stats { display: grid; grid-template-columns: repeat(5, minmax(75px, 1fr)); gap: 7px; }
.lesson-runtime-stats span { min-width: 0; display: grid; gap: 2px; padding-right: 7px; border-right: 1px solid #dbe4ec; }
.lesson-runtime-stats span:last-child { border-right: 0; }
.lesson-runtime-stats small { color: #617181; font-size: 9px; }
.lesson-runtime-stats strong { overflow: hidden; color: #243748; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.lesson-runtime-actions { display: flex; gap: 5px; }
.lesson-runtime-actions button { min-height: 30px; padding: 4px 8px; font-size: 11px; }
.danger-button { border-color: #d6a9a9; color: #9a3939; }
.lesson-controls[data-job-status="completed"] .lesson-round-progress small { display: none; }
.lesson-controls[data-job-status="completed"] .lesson-round-progress li { padding-top: 6px; padding-bottom: 6px; }
.lesson-auth-row,
.lesson-upload-row { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; }
.lesson-auth-row { padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.lesson-auth-row label { display: grid; gap: 5px; min-width: min(300px, 100%); color: var(--muted); font-size: 11px; }
.lesson-auth-row input { min-height: 34px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 4px; color: var(--ink); background: #fff; }
.lesson-upload-row label,
.lesson-draft label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
}
.lesson-upload-row input[type="file"] { max-width: min(520px, 70vw); color: var(--ink); }
.lesson-upload-row button,
.lesson-actions button,
.knowledge-heading button { min-height: 32px; padding: 5px 11px; }
.lesson-upload-row .status { align-self: center; }
.lesson-round-progress { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 2px 0 0; padding: 0; list-style: none; }
.lesson-round-progress li { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 9px 10px; border: 1px solid #dce4e1; border-left: 3px solid #9aa7a3; background: #fff; }
.lesson-round-progress li > span { padding: 2px 5px; border: 1px solid #ccd6d3; color: #52605d; font-size: 10px; }
.lesson-round-progress li > div { min-width: 0; display: grid; gap: 2px; }
.lesson-round-progress strong { font-size: 12px; }
.lesson-round-progress small { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.lesson-round-progress b { color: #52605d; font-size: 10px; }
.lesson-round-progress li.working { border-left-color: #2d6ab3; background: #f5f9ff; }
.lesson-round-progress li.ready { border-left-color: #c27b25; background: #fffaf3; }
.lesson-round-progress li.completed { border-left-color: #23845e; background: #f3faf7; }
.lesson-round-progress li.blocked { border-left-color: #b34f4f; background: #fff8f7; }
.lesson-draft { display: grid; gap: 13px; padding-top: 13px; border-top: 1px solid var(--line); }
.lesson-editor-heading { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.lesson-editor-heading strong { color: var(--ink); font-size: 14px; }
.lesson-editor-heading p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.lesson-scope-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.lesson-scope-heading strong { font-size: 13px; }
.lesson-scope-heading button { min-height: 30px; padding: 4px 9px; }
.lesson-draft-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.lesson-draft label > span { display: flex; align-items: center; justify-content: space-between; gap: 5px; }
.lesson-evidence-button { min-height: 22px; padding: 1px 6px; color: #2d6ab3; background: #f4f8fd; font-size: 10px; }
.lesson-draft input,
.lesson-draft select,
.lesson-draft textarea {
  width: 100%;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
  color: var(--ink);
  resize: vertical;
}
.lesson-draft input[readonly] { color: #52605d; background: #eef2f1; }
.lesson-progress-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid #dce4e1; background: #fff; }
.lesson-progress-summary > div { min-width: 0; display: grid; gap: 4px; padding: 10px 11px; border-left: 3px solid #80908c; }
.lesson-progress-summary > div.current { border-left-color: #23845e; background: #f3faf7; }
.lesson-progress-summary > div.future { border-left-color: #b34f4f; background: #fff8f7; }
.lesson-progress-summary strong { color: var(--ink); font-size: 11px; }
.lesson-progress-summary span { overflow: hidden; color: var(--muted); font-size: 11px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.lesson-prior-editor { margin-top: 4px; }
.lesson-prior-editor summary { width: fit-content; color: var(--accent-strong); font-size: 11px; cursor: pointer; }
.lesson-prior-editor > div { max-height: 160px; display: grid; gap: 5px; margin-top: 7px; padding: 7px; overflow-y: auto; border: 1px solid #dce4e1; background: #fff; }
.lesson-prior-editor label { display: grid; grid-template-columns: 15px minmax(0, 1fr); align-items: start; gap: 6px; color: #34424d; font-size: 10px; line-height: 1.4; }
.lesson-prior-editor input { width: 14px; height: 14px; margin: 0; padding: 0; accent-color: var(--accent); }
.lesson-prior-editor label span { overflow: visible; text-overflow: clip; white-space: normal; }
.knowledge-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.knowledge-heading strong { font-size: 13px; }
.lesson-knowledge-list { display: grid; gap: 7px; }
.lesson-knowledge-row {
  display: grid;
  grid-template-columns: minmax(160px, 1.4fr) minmax(110px, .7fr) auto minmax(180px, 1fr) auto 48px 32px;
  gap: 7px;
  align-items: center;
}
.advanced-taught { display: inline-flex !important; align-items: center; flex-direction: row !important; white-space: nowrap; }
.advanced-confirmed { display: inline-flex !important; align-items: center; flex-direction: row !important; white-space: nowrap; }
.advanced-taught input, .advanced-confirmed input { width: 15px; height: 15px; margin: 0; }
.knowledge-evidence { width: 48px; }
.remove-knowledge { width: 32px; height: 32px; padding: 0; font-size: 18px; }
.lesson-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.lesson-actions .primary { align-self: auto; }
.lesson-flow-status { align-self: center; color: #52605d; font-size: 12px; line-height: 1.5; }
.lesson-flow-status[data-state="working"] { color: #2d6ab3; }
.lesson-flow-status[data-state="conflict"] { color: #9a4f0b; font-weight: 600; }
.lesson-flow-status[data-state="completed"] { color: #23845e; font-weight: 600; }
.lesson-paused-edit-hint { margin: 0; padding: 9px 11px; border-left: 3px solid #2d6ab3; background: #eef5fb; color: #31536f; font-size: 12px; line-height: 1.55; }
.lesson-boundary-panel { padding: 12px; border-left: 3px solid #2d6ab3; background: #fff; }
.lesson-boundary-panel h3 { margin: 0 0 9px; font-size: 13px; }
.lesson-review-progress { margin-bottom: 12px; padding: 12px; border: 1px solid #d8e3df; border-radius: 6px; background: #f8fbfa; }
.lesson-review-progress header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.lesson-review-progress header div { display: grid; gap: 3px; }
.lesson-review-progress header strong { color: var(--ink); font-size: 13px; }
.lesson-review-progress header span { color: var(--muted); font-size: 11px; }
.lesson-review-progress header b { color: #176f5f; font-size: 13px; }
.lesson-review-meter { height: 6px; margin: 9px 0 12px; overflow: hidden; border-radius: 3px; background: #dfe7e4; }
.lesson-review-meter span { display: block; height: 100%; background: #23845e; transition: width .25s ease; }
.lesson-review-progress ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
.lesson-review-progress li { min-width: 0; display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 7px; align-items: start; padding: 8px; border: 1px solid #e1e7e5; background: #fff; }
.lesson-review-progress li i { width: 8px; height: 8px; margin-top: 3px; border: 2px solid #a5b0ac; border-radius: 50%; }
.lesson-review-progress li div { min-width: 0; display: grid; gap: 3px; }
.lesson-review-progress li strong { overflow-wrap: anywhere; font-size: 11px; }
.lesson-review-progress li span, .lesson-review-progress li em { color: var(--muted); font-size: 10px; font-style: normal; line-height: 1.35; }
.lesson-review-progress li em { grid-column: 2; }
.lesson-review-progress li.working { border-color: #9ab8dd; background: #f5f9ff; }
.lesson-review-progress li.working i { border-color: #2d6ab3; border-top-color: transparent; animation: lesson-progress-spin .9s linear infinite; }
.lesson-review-progress li.completed i { border-color: #23845e; background: #23845e; }
.lesson-review-progress li.failed, .lesson-review-progress li.blocked { border-color: #dfb58f; background: #fff9f4; }
.lesson-review-progress li.failed i, .lesson-review-progress li.blocked i { border-color: #b7641c; background: #b7641c; }
.lesson-review-progress > p { margin: 9px 0 0; color: var(--muted); font-size: 10px; }
.lesson-review-progress > p[data-slow="true"] { color: #9a4f0b; font-weight: 600; }
@keyframes lesson-progress-spin { to { transform: rotate(360deg); } }
.boundary-review { padding: 8px 0; border-top: 1px solid #edf0f3; }
.boundary-review:first-child { border-top: 0; }
.boundary-review strong { font-size: 12px; }
.boundary-review p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.boundary-review.risk strong,
.boundary-review.reject strong,
.boundary-review.conflict strong { color: #9a4f0b; }
.boundary-verdict { margin-top: 9px; padding: 9px 10px; border: 1px solid #e4caa9; background: #fff9f1; }
.boundary-verdict.pass { border-color: #b8d9cb; background: #f3faf7; }
.boundary-verdict p { margin: 0; color: #52605d; font-size: 12px; line-height: 1.6; }
.boundary-verdict ul { margin: 6px 0 0; padding-left: 18px; color: #70451b; font-size: 12px; line-height: 1.55; }
.lesson-repair-panel { display: grid; gap: 11px; padding: 12px; border: 1px solid #e4caa9; background: #fffaf3; }
.lesson-repair-panel[hidden] { display: none; }
.lesson-repair-panel > header { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.lesson-repair-panel h3 { margin: 0; color: var(--ink); font-size: 14px; }
.lesson-repair-panel header p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.lesson-repair-list { display: grid; gap: 8px; }
.lesson-repair-item { display: grid; gap: 6px; padding: 10px; border: 1px solid #ead9c2; background: #fff; }
.lesson-repair-item > div:first-child { display: flex; align-items: center; gap: 8px; }
.lesson-repair-item > div:first-child span { padding: 2px 5px; border: 1px solid #d8c3a7; color: #70451b; font-size: 10px; }
.lesson-repair-item > div:first-child strong { font-size: 12px; }
.lesson-repair-item p { margin: 0; color: #52605d; font-size: 12px; line-height: 1.55; }
.lesson-repair-item .lesson-repair-value { padding: 7px 8px; border-left: 3px solid #2d6ab3; background: #f5f8fc; color: #243748; }
.lesson-repair-item small { color: #7a6b58; font-size: 10px; }
.lesson-repair-actions { display: flex; gap: 7px; }
.lesson-repair-actions button { min-height: 29px; padding: 4px 9px; }
.lesson-exclusion-panel,
.lesson-blueprint-panel { display: grid; gap: 11px; padding: 12px; border: 1px solid #d8e3df; background: #fbfcfc; }
.lesson-exclusion-panel[hidden], .lesson-blueprint-panel[hidden] { display: none; }
.lesson-exclusion-panel > header,
.lesson-blueprint-panel > header { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.lesson-exclusion-panel h3,
.lesson-blueprint-panel h3 { margin: 0; color: var(--ink); font-size: 14px; }
.lesson-exclusion-panel header p,
.lesson-blueprint-panel header p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.lesson-exclusion-list { display: grid; gap: 8px; }
.lesson-exclusion-item { display: grid; grid-template-columns: minmax(160px, .8fr) minmax(240px, 1.4fr) auto; align-items: end; gap: 9px; padding: 10px; border: 1px solid #dde5e2; border-left: 3px solid #9aa7a3; background: #fff; }
.lesson-exclusion-item.accepted { border-left-color: #b34f4f; background: #fffafa; }
.lesson-exclusion-item.rejected { border-left-color: #23845e; background: #f8fcfa; }
.lesson-exclusion-item label { display: grid; gap: 4px; color: var(--muted); font-size: 10px; }
.lesson-exclusion-item input, .lesson-exclusion-item textarea { width: 100%; min-width: 0; padding: 6px 7px; border: 1px solid var(--line); background: #fff; color: var(--ink); resize: vertical; }
.lesson-exclusion-actions { display: flex; gap: 6px; }
.lesson-exclusion-actions button { min-height: 31px; padding: 4px 8px; }
.lesson-exclusion-actions button.active { border-color: var(--accent); color: var(--accent-strong); background: var(--accent-soft); font-weight: 600; }
.lesson-blueprint-list { display: grid; gap: 7px; }
.lesson-blueprint-row { display: grid; grid-template-columns: minmax(150px, 1fr) 110px minmax(180px, auto) 32px; align-items: end; gap: 8px; padding: 9px 10px; border: 1px solid #dde5e2; background: #fff; }
.lesson-blueprint-row label { display: grid; gap: 4px; color: var(--muted); font-size: 10px; }
.lesson-blueprint-row input { width: 100%; min-width: 0; min-height: 32px; padding: 5px 7px; border: 1px solid var(--line); background: #fff; color: var(--ink); }
.lesson-blueprint-progress { align-self: center; display: flex; flex-wrap: wrap; gap: 5px 9px; color: var(--muted); font-size: 11px; }
.lesson-blueprint-progress strong { color: var(--ink); }
.remove-lesson-blueprint-type { width: 32px; height: 32px; padding: 0; font-size: 18px; }
.lesson-blueprint-footer { display: grid; grid-template-columns: auto minmax(190px, 1fr) auto auto; align-items: end; gap: 12px; }
.lesson-blueprint-footer label { display: grid; gap: 4px; color: var(--muted); font-size: 11px; }
.lesson-blueprint-footer input[type="range"] { width: 100%; accent-color: var(--accent); }
.lesson-blueprint-footer output { color: var(--accent-strong); font-weight: 700; }
.lesson-blueprint-total { align-self: center; color: var(--muted); font-size: 11px; white-space: nowrap; }
.lesson-blueprint-total strong { color: var(--ink); font-size: 15px; }
.lesson-selection-diagnostics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; padding: 11px 12px; border: 1px solid #e4caa9; background: #fffaf3; }
.lesson-selection-diagnostics[hidden] { display: none; }
.lesson-selection-diagnostics header { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.lesson-selection-diagnostics header strong { font-size: 13px; }
.lesson-selection-diagnostics header span { padding: 2px 6px; border: 1px solid #d8c3a7; color: #70451b; font-size: 10px; }
.lesson-selection-diagnostics div { padding: 8px 9px; background: #fff; }
.lesson-selection-diagnostics .lesson-selection-review-progress { grid-column: 1 / -1; min-height: 64px; }
.lesson-selection-diagnostics b { color: #70451b; font-size: 11px; }
.lesson-selection-diagnostics ul { margin: 5px 0 0; padding-left: 17px; color: #52605d; font-size: 11px; line-height: 1.5; }
.lesson-smart-compose { min-height: 84px; display: grid; grid-template-columns: minmax(240px, 1fr) 120px minmax(190px, .7fr) auto; align-items: end; gap: 12px; padding: 12px; border: 1px solid #b8d9cb; background: #f3faf7; }
.lesson-smart-compose[hidden] { display: none; }
.lesson-smart-compose p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.lesson-smart-compose label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; }
.lesson-smart-compose input[type="number"] { width: 100%; min-height: 32px; padding: 5px 7px; border: 1px solid var(--line); background: #fff; }
.lesson-smart-compose input[type="range"] { width: 100%; accent-color: var(--accent); }
.lesson-smart-compose output { color: var(--accent-strong); font-weight: 700; }
.lesson-recommendation-list { min-width: 0; display: grid; gap: 12px; margin-top: 14px; }
.lesson-recommendation { padding: 16px 18px; border: 1px solid var(--line); border-left-width: 4px; background: #fff; }
.lesson-recommendation.pass { border-left-color: #23845e; }
.lesson-recommendation.risk { border-left-color: #c27b25; }
.lesson-recommendation.reject { border-left-color: #b34f4f; }
.lesson-recommendation.error { border-left-color: #b34f4f; background: #fff8f7; }
.lesson-recommendation header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.lesson-recommendation header > div { min-width: 0; display: grid; gap: 6px; }
.lesson-recommendation-select { display: flex; align-items: flex-start; gap: 8px; }
.lesson-recommendation-select input { width: 15px; height: 15px; margin: 1px 0 0; accent-color: var(--accent); }
.lesson-recommendation-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.lesson-recommendation-meta span { max-width: min(420px, 100%); overflow: hidden; padding: 2px 6px; border: 1px solid #dce4e1; color: #52605d; background: #f8faf9; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.lesson-recommendation p { margin: 10px 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.lesson-recommendation button { padding: 6px 10px; border-color: #82aaa4; color: var(--accent-strong); }
.lesson-recommendation .question-stem { margin-top: 14px; }
.lesson-recommendation .question-options { margin-top: 10px; }
.lesson-recommendation-error { display: grid; gap: 4px; margin-top: 12px; padding: 10px 12px; border: 1px solid #e2b5ad; background: #fff; color: #8a3f36; font-size: 12px; line-height: 1.55; }
.lesson-recommendation .question-figure img { max-width: 100%; height: auto; object-fit: contain; }
.lesson-question-material { margin-top: 12px; padding: 9px 11px; border-left: 3px solid #7896b5; background: #f7f9fc; }
.lesson-question-material h3,
.lesson-question-parts > h3 { margin: 0 0 6px; color: #52605d; font-size: 11px; }
.lesson-question-material > div { color: #34424d; font-size: 13px; line-height: 1.7; }
.lesson-question-parts { display: grid; gap: 8px; margin-top: 12px; }
.lesson-question-parts > article { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 7px; padding-top: 9px; border-top: 1px solid #e7ecea; }
.lesson-question-parts > article > strong { color: var(--ink); font-size: 13px; }
.lesson-question-details { margin-top: 13px; }
.lesson-review-evidence { margin-top: 13px; border-top: 1px solid #dce4e1; }
.lesson-review-evidence > summary { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0 5px; color: #176f5f; cursor: pointer; font-size: 11px; font-weight: 650; }
.lesson-review-evidence > summary span:last-child { color: var(--muted); font-size: 10px; font-weight: 400; }
.lesson-review-final { margin: 5px 0 8px; padding: 8px 10px; border-left: 3px solid #23845e; background: #f3faf7; }
.lesson-review-final strong { font-size: 11px; }
.lesson-review-final p { margin: 3px 0; color: #34424d; }
.lesson-review-final small,
.lesson-model-review small { color: #7b654c; font-size: 9px; }
.lesson-model-review { display: grid; gap: 3px; padding: 8px 0; border-top: 1px solid #edf1ef; }
.lesson-model-review header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 7px; }
.lesson-model-review header strong { color: var(--ink); font-size: 11px; }
.lesson-model-review header span { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.lesson-model-review header b { padding: 1px 5px; border: 1px solid #b8d9cb; color: #176f5f; font-size: 9px; font-weight: 600; }
.lesson-model-review.risk header b { border-color: #e4caa9; color: #9a4f0b; }
.lesson-model-review.reject header b,
.lesson-model-review.failed header b { border-color: #dfb8b8; color: #9a3939; }
.lesson-model-review p { margin: 0; color: #42514e; }
.lesson-review-empty { color: var(--muted); }
.lesson-evidence-viewer { max-height: 260px; padding: 11px; overflow-y: auto; border: 1px solid #cfdbe7; background: #f8fbff; }
.lesson-evidence-viewer > strong { font-size: 12px; }
.lesson-evidence-viewer article { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 9px; padding: 8px 0; border-top: 1px solid #e1e9f1; }
.lesson-evidence-viewer article:first-child { margin-top: 7px; }
.lesson-evidence-viewer article span { color: #2d6ab3; font-size: 10px; }
.lesson-evidence-viewer p { margin: 0; color: #34424d; font-size: 12px; line-height: 1.55; }

.results { flex: 1 0 auto; padding: 22px 34px 34px; }
.section-heading { display: flex; align-items: center; justify-content: space-between; }
.section-heading h2 { margin: 0; font-size: 16px; }
.result-tools { display: flex; align-items: center; gap: 14px; }
.page-actions { display: flex; gap: 6px; }
.page-actions button { padding: 5px 9px; font-size: 12px; }
.status { color: var(--muted); font-size: 13px; }
.question-list { min-width: 0; display: grid; gap: 12px; margin-top: 14px; }
.question-status { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.question-delete-button {
  width: 30px; height: 30px; padding: 0; display: inline-grid; place-items: center;
  border: 1px solid #d8b5b2; border-radius: 6px; background: #fff; color: #9c302a;
  font-size: 20px; line-height: 1; cursor: pointer;
}
.question-delete-button:hover { border-color: #b5423a; background: #fff4f3; }
.question-delete-button:disabled { opacity: .5; cursor: wait; }
.question-loading { padding: 28px 16px; border: 1px solid var(--line); background: #fff; color: var(--muted); text-align: center; }
.question-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.question-pagination[hidden] { display: none; }
.question-pagination button { min-width: 76px; padding: 7px 12px; }
.question-pagination span { min-width: 110px; color: var(--muted); font-size: 13px; text-align: center; }
.page-jump, .page-size { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 12px; }
.page-jump input { width: 58px; height: 32px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 4px; }
.page-size select { height: 32px; padding: 4px 7px; border: 1px solid var(--line); border-radius: 4px; background: #fff; }
.question-row { min-width: 0; padding: 16px 18px 18px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.question-row.selected { border-color: #78a59d; box-shadow: inset 3px 0 0 var(--accent); }
  .question-row header { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 12px; color: var(--muted); font-size: 12px; }
  .question-meta { min-width: 0; flex: 1 1 520px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
  .question-status { display: inline-flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.question-selector { display: inline-flex; align-items: center; gap: 5px; color: var(--accent-strong); cursor: pointer; }
.question-selector input { width: 16px; height: 16px; margin: 0; }
.question-selector span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.import-controls { display: grid; gap: 12px; }
.import-setup, .import-job-panel { min-width: 0; padding: 14px; border: 1px solid var(--line); background: #fff; }
.import-setup > header { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.import-setup > header p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.import-auth-notice { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 8px 10px; border-left: 3px solid #b87b45; background: #fff8ef; color: #775126; font-size: 12px; }
.import-auth-notice[data-authenticated="true"] { border-left-color: #4d8f7e; background: #f1f8f5; color: #316457; }
.import-auth-notice button { padding: 5px 9px; white-space: nowrap; }
.import-auth-form { display: flex; align-items: center; gap: 7px; }
.import-auth-form input { width: min(210px, 42vw); min-height: 30px; padding: 5px 8px; border: 1px solid #d7bda4; border-radius: 4px; background: #fff; }
.import-auth-form small { min-width: 0; color: inherit; }
.import-catalog-grid { display: grid; grid-template-columns: minmax(110px, .55fr) minmax(210px, 1.45fr) minmax(180px, 1fr) minmax(180px, 1fr); gap: 9px; margin-top: 12px; }
.import-catalog-grid label { min-width: 0; display: grid; gap: 4px; color: var(--muted); font-size: 11px; }
.import-catalog-grid select { width: 100%; min-width: 0; min-height: 36px; }
.import-scope-lock-hint { margin: 8px 0 0; padding: 7px 9px; border-left: 3px solid #2d6ab3; background: #f2f7fc; color: #43566a; font-size: 12px; }
.import-pagination { margin-top: 12px; }
.import-history { padding: 12px 14px; border: 1px solid var(--line); background: #fff; }
.import-history > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.import-history-list { display: grid; gap: 6px; margin-top: 8px; }
.import-history-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; text-align: left; }
.import-history-row span { color: var(--muted); font-size: 11px; }
.import-review-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding: 10px; border: 1px solid var(--line); background: #f7faf9; }
.import-review-toolbar label { display: grid; gap: 3px; color: var(--muted); font-size: 11px; }
.import-review-toolbar input, .import-review-toolbar select { min-height: 34px; }
.import-review-toolbar input[type="search"] { width: min(240px, 70vw); }
.import-item-check { display: inline-flex !important; align-items: center; gap: 6px; margin: 0 !important; color: var(--ink) !important; }
.import-question-card .import-item-check input { width: auto; }
.import-item-scope { width: 100%; min-width: 0; max-width: 100%; }
.import-upload-row, .import-actions { display: flex; align-items: end; flex-wrap: wrap; gap: 9px; margin-top: 12px; }
.import-upload-row label { display: grid; gap: 4px; color: var(--muted); font-size: 11px; }
.import-upload-row select, .import-upload-row input { min-height: 34px; }
.import-upload-row .import-file { min-width: min(100%, 320px); flex: 1; }
.import-upload-row .import-file input { width: 100%; }
.import-feedback { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 10px; margin-top: 12px; padding: 10px 12px; border: 1px solid #dbe4e1; border-left: 3px solid #71827d; background: #f7faf9; font-size: 12px; }
.import-feedback > strong { color: var(--ink); }
.import-feedback > span { min-width: 0; color: var(--muted); }
.import-feedback[data-kind="loading"] { border-left-color: #2d6ab3; background: #f2f7fc; }
.import-feedback[data-kind="error"] { border-color: #e5c1bd; border-left-color: #b5423a; background: #fff4f3; }
.import-feedback[data-kind="error"] > strong, .import-feedback[data-kind="error"] > span { color: #87352f; }
.import-feedback[data-kind="success"] { border-left-color: #23845e; background: #f1f8f5; }
.import-feedback ol { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 7px 0 0; padding: 0; list-style: none; }
.import-feedback li { position: relative; min-width: 0; padding: 6px 7px 6px 23px; border: 1px solid #dce4e1; background: #fff; color: var(--muted); font-size: 10px; }
.import-feedback li::before { content: ''; position: absolute; left: 8px; top: 50%; width: 7px; height: 7px; border: 1px solid #9ca9a5; border-radius: 50%; transform: translateY(-50%); }
.import-feedback li[data-state="working"]::before { border-color: #2d6ab3; border-top-color: transparent; animation: import-spin .8s linear infinite; }
.import-feedback li[data-state="complete"] { color: #316457; }
.import-feedback li[data-state="complete"]::before { border-color: #23845e; background: #23845e; }
@keyframes import-spin { to { transform: translateY(-50%) rotate(360deg); } }
.import-progress { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.import-progress span { padding: 9px; border-left: 2px solid #75a196; background: #f7faf9; }
.import-progress small, .import-progress strong { display: block; }
.import-progress small { color: var(--muted); font-size: 10px; }
.import-action-feedback { margin-top: 12px; padding: 10px 12px; border: 1px solid #cadbe7; border-left: 3px solid #2d6ab3; background: #f2f7fc; }
.import-action-feedback header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.import-action-feedback header span { color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.import-action-feedback p { margin: 7px 0 0; color: #43566a; font-size: 12px; }
.import-action-feedback[data-kind="success"] { border-color: #c4ddd4; border-left-color: #23845e; background: #f1f8f5; }
.import-action-feedback[data-kind="error"] { border-color: #e5c1bd; border-left-color: #b5423a; background: #fff4f3; }
.import-action-meter { height: 3px; margin-top: 8px; overflow: hidden; background: #dce6ed; }
.import-action-meter span { display: block; width: 32%; height: 100%; background: #2d6ab3; animation: import-action-progress 1.5s ease-in-out infinite; }
.import-action-feedback:not([data-kind="loading"]) .import-action-meter { display: none; }
@keyframes import-action-progress { from { transform: translateX(-110%); } to { transform: translateX(330%); } }
.import-question-list { display: grid; min-width: 0; gap: 12px; margin-top: 14px; }
.import-question-card { min-width: 0; padding: 15px 17px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.import-question-card > header, .import-question-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.import-question-card > header span { color: var(--muted); font-size: 11px; }
.import-question-card label { display: grid; gap: 4px; margin-top: 10px; color: var(--muted); font-size: 11px; }
.import-question-card textarea, .import-question-card input { width: 100%; padding: 7px 8px; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--ink); font: inherit; }
.import-question-card select { width: 100%; min-width: 0; max-width: 100%; }
.rich-edit-field { display: grid; gap: 5px; margin-top: 10px; color: var(--muted); font-size: 11px; }
.rich-edit-field > strong { color: var(--muted); font-size: 11px; }
.rich-edit-field details { min-width: 0; }
.rich-edit-field summary { width: fit-content; color: var(--accent-strong); cursor: pointer; font-size: 11px; }
.rich-edit-field textarea { margin-top: 5px; }
.rich-edit-preview { min-height: 1.8em; padding: 7px 8px; border-left: 2px solid #b7c9c2; background: #f7faf8; color: #26342f; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.rich-edit-preview:empty::before { content: '预览为空'; color: var(--muted); }
.import-question-card footer { margin-top: 11px; }
.import-question-card footer button { margin-left: 6px; }
.import-group-summary { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; margin: 12px 0 2px; padding: 8px 10px; border-left: 3px solid #4d8f7e; background: #f1f8f5; color: #316457; font-size: 12px; }
.import-group-summary span { color: var(--muted); font-size: 11px; }
.import-shared-material { display: grid; min-width: 0; max-width: 100%; gap: 6px; margin-top: 10px; padding: 10px 12px; border: 1px solid #dbe4e1; background: #fbfcfc; }
.import-shared-material > strong { color: #316457; font-size: 11px; }
.import-shared-material > div { min-width: 0; color: #26342f; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.import-subquestion-list { display: grid; gap: 10px; margin-top: 14px; padding-top: 3px; border-top: 1px solid #dbe4e1; }
.import-subquestion { min-width: 0; padding: 12px 0 2px 14px; border-left: 3px solid #b7c9c2; }
.import-subquestion + .import-subquestion { border-top: 1px solid #e3ebe8; }
.import-subquestion > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.import-subquestion > header span { color: var(--muted); font-size: 11px; }
.import-subquestion .rich-edit-field { margin-top: 8px; }
.import-subquestion .import-options-editor { margin-top: 9px; }
.import-exclude-button { border-color: #d8b5b2; color: #9c302a; }
.import-exclude-confirmation { display: grid; gap: 7px; margin-top: 11px; padding: 10px; border-left: 3px solid #b5423a; background: #fff7f6; }
.import-exclude-confirmation label { margin-top: 0; }
.import-exclude-confirmation div { display: flex; flex-wrap: wrap; gap: 7px; }
.import-item-feedback { min-height: 1.2em; margin: 0; color: var(--muted); font-size: 12px; }
.import-item-feedback[data-kind="error"] { color: #87352f; }
.import-question-card[data-pending="true"] { opacity: .72; }
.import-question-card.import-action-error { border-color: #b5423a; box-shadow: inset 3px 0 #b5423a; }
.import-question-card footer b { margin-right: 5px; color: #9a4f0b; font-size: 10px; font-weight: 600; }
.import-editor-grid { display: grid; grid-template-columns: minmax(140px, .45fr) minmax(0, 1fr); gap: 10px; }
.import-options-editor { border: 1px solid var(--line); padding: 10px; display: grid; gap: 8px; }
.import-options-editor legend { padding: 0 6px; color: var(--muted); font-size: 12px; }
.import-options-editor label { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; align-items: start; }
.import-options-editor label > span { padding-top: 8px; font-weight: 700; }
.import-options-editor label > .rich-edit-preview, .import-options-editor label > details { grid-column: 2; }
.import-options-editor label .question-table-wrap,
.import-options-editor label .question-figure { grid-column: 2; }
.import-sync-error { padding: 8px 10px; border-left: 3px solid #b5423a; background: #fff4f3; color: #87352f; font-size: 12px; }
@media (max-width: 760px) {
  .import-setup > header, .import-auth-notice { align-items: stretch; flex-direction: column; }
  .import-auth-form { align-items: stretch; flex-direction: column; }
  .import-auth-form input { width: 100%; }
  .import-catalog-grid { grid-template-columns: 1fr; }
  .import-feedback { grid-template-columns: 1fr; }
  .import-feedback ol { grid-column: 1; grid-template-columns: 1fr 1fr; }
  .import-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .import-editor-grid { grid-template-columns: 1fr; }
  .import-history-row { align-items: stretch; flex-direction: column; }
  .import-review-toolbar { align-items: stretch; }
  .import-review-toolbar label, .import-review-toolbar button { width: 100%; }
  .import-review-toolbar input[type="search"] { width: 100%; }
  .import-group-summary { align-items: flex-start; flex-direction: column; gap: 3px; }
  .import-subquestion { padding-left: 10px; }
}
.question-number { color: var(--ink); font-size: 15px; }
.type-badge, .scope-badge, .badge { padding: 2px 7px; border-radius: 3px; }
.type-badge { color: #147a52; background: #e8f6ef; }
  .scope-badge { color: #855714; background: #f6ecd9; }
  .badge { color: var(--accent); background: var(--accent-soft); }
.question-tag-area { display: inline-flex; min-width: 0; flex-wrap: wrap; gap: 4px; }
.bloom-tag, .knowledge-tag, .source-tag, .review-stage-tag, .tag-missing {
  display: inline-block;
  max-width: 100%;
  padding: 2px 7px;
  border-radius: 3px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.bloom-tag { color: #235a75; background: #e5f1f7; }
.knowledge-tag { color: #65501e; background: #f5efdd; }
.source-tag { color: #146744; background: #e4f4eb; }
.review-stage-tag { color: #6b3e8b; background: #f1e8f7; }
.tag-missing { color: #8b4f32; background: #faece5; }
  .review { color: var(--warning); }
  .review-tag { padding: 2px 7px; border: 1px solid #e3a45d; border-radius: 3px; color: #9a4f0b; background: #fff3e3; font-weight: 700; }
  .review-action { padding: 3px 8px; border: 1px solid #b7c9c3; border-radius: 3px; color: var(--accent-strong); background: #f7fbf9; cursor: pointer; font: inherit; }
  .review-action:hover:not(:disabled) { border-color: var(--accent); background: var(--accent-soft); }
  .review-action:disabled { cursor: wait; opacity: .6; }
.question-stem { margin-top: 11px; color: #111820; font-size: 15px; line-height: 1.75; overflow-wrap: anywhere; }
  .question-blank-group { display: inline-block; white-space: nowrap; }
  .question-blank { display: inline-block; min-width: calc(var(--blank-size, 4) * 0.7em); height: 1.05em; margin: 0 0.12em; vertical-align: -0.08em; border-bottom: 1.5px solid currentColor; }
.question-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 32px;
  row-gap: 8px;
  margin-top: 10px;
  padding: 10px 0 12px;
  border-bottom: 1px solid #edf0f3;
}
.question-options div { min-width: 0; display: grid; grid-template-columns: 24px 1fr; line-height: 1.6; }
.question-options strong { color: #283849; }
.question-details { display: grid; gap: 9px; margin-top: 10px; }
.question-subparts { display: grid; gap: 10px; margin-top: 12px; }
.question-subparts > h3 { margin: 0; color: var(--muted); font-size: 12px; font-weight: 600; }
.question-subparts > article { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; padding-top: 12px; border-top: 1px solid #e2e8e6; }
.question-subparts > article > strong { color: var(--ink); line-height: 1.7; }
.question-subpart-status { min-height: 18px; margin-bottom: 3px; }
.question-subpart-status .answer-status { margin: 0; }
.question-subparts .question-options { margin-top: 7px; }
.answer-missing-details { max-width: 100%; color: #8a5625; font-size: 11px; }
.answer-missing-details summary { cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.answer-missing-details p { max-width: 280px; margin: 5px 0 0; padding: 6px 8px; border-left: 2px solid #e5b97a; background: #fff8ed; line-height: 1.5; }
.question-detail { display: grid; grid-template-columns: 64px 1fr; gap: 8px; align-items: start; line-height: 1.7; }
.question-detail h3 { margin: 0; padding-top: 1px; color: var(--muted); font-size: 13px; font-weight: 600; }
.question-detail > div { min-width: 0; overflow-wrap: anywhere; }
.question-analysis { padding-left: 10px; border-left: 3px solid #2d6ab3; }
.question-answer { padding-left: 10px; border-left: 3px solid #23845e; }
.question-answer > div { color: #166142; font-weight: 600; }
.question-method { padding-left: 10px; border-left: 3px solid #b77824; }
.question-table-wrap { width: 100%; min-width: 0; max-width: 100%; margin-top: 12px; overflow-x: auto; }
.question-table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.55; }
.question-table td { min-width: 110px; padding: 8px 10px; border: 1px solid #cfd7df; vertical-align: top; }
.question-table tr:first-child td { background: #f3f6f8; font-weight: 600; }
.question-figure { margin: 12px 0 4px; }
.question-figure img { display: block; width: auto; max-width: 100%; height: auto; object-fit: contain; }
.inline-office-asset { display: inline-flex; max-width: 100%; margin: 0 .12em; vertical-align: middle; line-height: 1; }
.inline-office-asset img { display: inline-block; width: auto; max-width: 100%; height: auto; object-fit: contain; vertical-align: middle; }
.inline-office-asset-group { display: inline-flex; align-items: center; gap: 2px; max-width: 100%; margin: 0 .12em; vertical-align: middle; line-height: 1; white-space: nowrap; }
.inline-office-asset-group img { display: block; width: auto; max-width: 100%; height: auto; object-fit: contain; }
.media-placement-review {
  display: inline-block;
  margin: 0 .2em;
  padding: 1px 5px;
  border: 1px dashed #c27b2c;
  border-radius: 3px;
  color: #8a4b0f;
  background: #fff7e8;
  font-size: .9em;
  white-space: nowrap;
}
.question-media-group { width: 100%; }
.question-media-group-items { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; max-width: 100%; }
.question-media-group-items img { display: block; max-width: 100%; height: auto; }
.math-formula {
  display: inline-block;
  width: max-content;
  max-width: none;
  margin: 0 .08em;
  padding: 0;
  overflow: visible;
  font-family: "Cambria Math", "STIX Two Math", serif;
  font-size: 1em;
  vertical-align: baseline;
  line-height: 1.3;
}
.math-formula-wrap {
  display: inline-block;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: auto;
  vertical-align: baseline;
  line-height: 1.3;
  padding-block: .35em;
  white-space: nowrap;
}
.math-formula mtable { display: inline-table; vertical-align: middle; }
.math-formula mtd { padding: .04em .12em; text-align: left; white-space: normal; }
.math-script { font-family: "Cambria Math", "STIX Two Math", serif; line-height: 1; vertical-align: baseline; font-size: .75em; }
.empty-state { padding: 28px 18px; border: 1px dashed #cbd4d1; background: #f8faf9; color: var(--muted); text-align: center; font-size: 13px; }
.export-bar {
  position: sticky;
  z-index: 5;
  bottom: 0;
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 14px;
  padding: 12px 34px;
  border-top: 1px solid var(--line);
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 -4px 14px rgba(28, 47, 44, .04);
  color: var(--muted);
  font-size: 13px;
}
.basket-summary { min-width: 0; display: flex; align-items: center; gap: 12px; }
.basket-summary strong { flex: 0 0 auto; color: var(--ink); }
.basket-summary > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.basket-summary button { flex: 0 0 auto; padding: 5px 8px; font-size: 12px; }
.manual-controls { display: flex; min-width: 0; align-items: center; }
.manual-export-order { display: flex; min-width: 0; margin: 0; padding: 0; border: 0; align-items: center; gap: 9px; }
.manual-export-order legend { float: left; padding: 0; color: var(--muted); font-size: 13px; }
.export-order-switch {
  display: inline-grid;
  grid-template-columns: repeat(3, minmax(76px, 1fr));
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #edf1f0;
}
.export-order-switch label { position: relative; min-width: 0; color: var(--muted); font-size: 13px; cursor: pointer; }
.export-order-switch input { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.export-order-switch span { display: block; padding: 6px 10px; border-radius: 4px; text-align: center; white-space: nowrap; }
.export-order-switch input:checked + span { background: #fff; color: var(--ink); box-shadow: 0 1px 2px rgba(23, 33, 43, .12); }
.export-order-switch input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 1px; }
.export-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.export-actions button { padding: 7px 12px; }
.basket-backdrop { position: fixed; z-index: 20; inset: 0; background: rgba(23, 33, 43, .3); }
.basket-drawer {
  position: fixed;
  z-index: 21;
  top: 0;
  right: 0;
  width: min(460px, 92vw);
  height: 100dvh;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-left: 1px solid var(--line);
  box-shadow: -10px 0 30px rgba(23, 33, 43, .14);
  transform: translateX(102%);
  transition: transform .18s ease;
}
.basket-drawer.open { transform: translateX(0); }
.longlin-push-drawer {
  position: fixed; inset: 0 0 0 auto; z-index: 24; width: min(520px, 100vw);
  padding: 20px; overflow-y: auto; background: var(--surface, #fff);
  border-left: 1px solid var(--line, #d8dde3); box-shadow: -12px 0 32px rgba(26, 36, 48, .16);
  transform: translateX(102%); transition: transform .2s ease;
}
.longlin-push-drawer.open { transform: translateX(0); }
.longlin-push-drawer > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.longlin-push-drawer h2 { margin: 2px 0 0; }
.longlin-push-summary { margin-top: 18px; line-height: 1.6; }
.longlin-push-meter { height: 8px; margin: 12px 0 18px; overflow: hidden; background: #e8edf1; border-radius: 4px; }
.longlin-push-meter > span { display: block; width: 0; height: 100%; background: #167052; transition: width .25s ease; }
.longlin-push-targets { display: grid; gap: 10px; }
.longlin-history { margin-top: 24px; border-top: 1px solid var(--line, #d8dde3); padding-top: 14px; }
.longlin-history > header { display: flex; justify-content: space-between; align-items: center; }
.longlin-history-list { display: grid; gap: 6px; margin-top: 8px; }
.longlin-history-row { display: flex; justify-content: space-between; gap: 12px; width: 100%; text-align: left; }
.longlin-target-row { padding: 10px 0; border-bottom: 1px solid var(--line, #d8dde3); }
.longlin-target-row strong, .longlin-target-row span { display: block; }
.longlin-target-row span { margin-top: 4px; color: var(--muted, #66717d); font-size: .9rem; }
.longlin-target-row[data-state="success"] strong { color: #167052; }
.longlin-target-row[data-state="failed"] strong { color: #a33b2f; }
.longlin-target-row[data-state="review"] strong { color: #9a4f0b; }
.longlin-push-actions { display: flex; justify-content: flex-end; margin-top: 18px; }
.longlin-push-actions button + button { margin-left: 8px; }
.longlin-push-drawer[data-busy="true"] .longlin-push-meter > span { animation: longlin-progress 1.5s ease-in-out infinite; }
@keyframes longlin-progress { 0% { width: 12%; } 50% { width: 72%; } 100% { width: 96%; } }
.basket-drawer > header { display: flex; align-items: center; justify-content: space-between; padding: 20px; border-bottom: 1px solid var(--line); }
.basket-drawer h2 { margin: 4px 0 0; font-size: 20px; }
.drawer-close { width: 34px; height: 34px; padding: 0; font-size: 22px; }
.basket-stats { display: grid; gap: 5px; padding: 14px 20px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 1.45; }
.basket-stats strong { color: var(--ink); font-size: 14px; }
.basket-duplicate-notice { margin: 12px 20px 0; padding: 9px 10px; border-left: 3px solid #c27b25; background: #fff7e8; color: #83500d; font-size: 12px; }
.basket-list { min-height: 0; flex: 1; margin: 0; padding: 12px 20px 24px; overflow-y: auto; list-style: none; }
.basket-item { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 9px; align-items: start; padding: 12px 0; border-bottom: 1px solid #e9edef; }
.basket-item.possible-duplicate { background: #fffaf1; }
.basket-order { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: #edf3f1; color: var(--accent-strong); font-size: 11px; font-weight: 700; }
.basket-item-main { min-width: 0; }
.basket-item-main strong { font-size: 12px; }
.basket-group-tag,
.question-group-badge { display: inline-block; margin-left: 6px; padding: 2px 5px; border: 1px solid #bad8cf; border-radius: 3px; background: #edf7f3; color: #286a59; font-size: 10px; line-height: 1.35; vertical-align: middle; }
.basket-group-tag.single { border-color: #d9e0e3; background: #f5f7f8; color: var(--muted); }
.basket-item-main p { display: -webkit-box; margin: 4px 0 0; overflow: hidden; color: #34424d; font-size: 12px; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.duplicate-tag { display: inline-block; margin-top: 5px; padding: 2px 5px; border-radius: 3px; background: #f6e5c5; color: #855714; font-size: 10px; }
.basket-item-actions { display: grid; grid-template-columns: repeat(3, 28px); gap: 3px; }
.basket-item-actions button { width: 28px; height: 28px; padding: 0; }

@media (max-width: 760px) {
  .app-shell { grid-template-columns: 1fr; grid-template-rows: minmax(180px, 36dvh) minmax(0, 1fr); }
  .sidebar { min-height: 0; padding: 12px 12px 18px; border-right: 0; border-bottom: 1px solid var(--line); }
  .brand { padding-bottom: 12px; }
  .brand-mark { width: 29px; height: 29px; }
  .segment-tabs { margin-top: 10px; }
  .workspace { min-height: 0; }
  .workspace-header, .workbench-controls, .results { padding-left: 16px; padding-right: 16px; }
  .workspace-header { align-items: flex-start; flex-direction: column; gap: 10px; padding-top: 16px; }
  .workspace h1 { font-size: 19px; }
  .eyebrow { max-width: 100%; }
  .header-meta { width: 100%; justify-content: flex-start; }
  .workbench-controls { grid-template-columns: 1fr; gap: 12px; padding-top: 12px; padding-bottom: 14px; }
  .mode-switch { width: 100%; }
  .mode-row { gap: 8px; }
  .mode-switch { flex: 1; }
  .mode-switch button { min-width: 0; padding-left: 7px; padding-right: 7px; }
  .filter-toggle { display: block; flex: 0 0 auto; }
  .filter-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 10px; }
  .filter-strip.collapsed { display: none; }
  .keyword-filter, .filter-actions { grid-column: 1 / -1; }
  .filter-actions button { flex: 1; }
  .compose-controls { gap: 14px; }
  .control-group { width: 100%; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
  .control-group input { width: 100%; }
  .score-control { min-width: 100%; }
  .score-control input { width: 100%; }
  .manual-controls, .manual-export-order { width: 100%; }
  .manual-export-order { align-items: flex-start; flex-direction: column; gap: 6px; }
  .export-order-switch { width: 100%; }
  .export-order-switch span { padding-left: 6px; padding-right: 6px; }
  .primary { width: 100%; }
  .lesson-controls { padding: 11px; }
  .lesson-task-details > summary,
  .lesson-detail-group > summary,
  .lesson-history-panel > summary { align-items: flex-start; }
  .lesson-task-details > summary span:last-child,
  .lesson-detail-group > summary span:last-child { max-width: 56%; }
  .lesson-history-toolbar { grid-template-columns: 1fr; }
  .lesson-history-toolbar button { width: 100%; }
  .lesson-history-item { grid-template-columns: minmax(0, 1fr); gap: 5px; }
  .lesson-history-item > span:last-child { grid-template-columns: auto 1fr; justify-items: start; gap: 8px; }
  .lesson-runtime-panel { grid-template-columns: 1fr; }
  .lesson-runtime-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lesson-runtime-stats span { border-right: 0; border-bottom: 1px solid #dbe4ec; padding-bottom: 5px; }
  .lesson-runtime-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lesson-runtime-actions button { min-width: 0; padding-left: 3px; padding-right: 3px; }
  .lesson-auth-row,
  .lesson-upload-row { align-items: stretch; flex-direction: column; }
  .lesson-upload-row input[type="file"] { max-width: 100%; }
  .lesson-round-progress { grid-template-columns: 1fr; }
  .lesson-controls[data-job-status="completed"] .lesson-round-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lesson-controls[data-job-status="completed"] .lesson-round-progress li { grid-template-columns: auto minmax(0, 1fr); }
  .lesson-controls[data-job-status="completed"] .lesson-round-progress b { display: none; }
  .lesson-round-progress li { grid-template-columns: auto minmax(0, 1fr) auto; }
  .lesson-draft-grid { grid-template-columns: 1fr 1fr; }
  .lesson-progress-summary { grid-template-columns: 1fr; }
  .lesson-progress-summary span { white-space: normal; }
  .lesson-review-progress ol { grid-template-columns: 1fr; }
  .lesson-knowledge-row { grid-template-columns: minmax(0, 1fr) minmax(105px, .75fr) 48px 32px; }
  .advanced-taught { grid-column: 1 / 2; }
  .lesson-advanced-note { grid-column: 2 / 5; }
  .advanced-confirmed { grid-column: 1 / 4; }
  .lesson-evidence-viewer article { grid-template-columns: 1fr; gap: 3px; }
  .lesson-actions { display: grid; grid-template-columns: 1fr; }
  .lesson-repair-panel > header { flex-direction: column; }
  .lesson-repair-panel > header button { width: 100%; }
  .lesson-exclusion-item { grid-template-columns: 1fr; align-items: stretch; }
  .lesson-exclusion-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .lesson-exclusion-actions button { width: 100%; }
  .lesson-blueprint-row { grid-template-columns: minmax(0, 1fr) 88px 32px; }
  .lesson-blueprint-progress { grid-column: 1 / -1; }
  .lesson-blueprint-footer { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .lesson-blueprint-footer label { grid-column: 1 / -1; }
  .lesson-blueprint-total { align-self: center; }
  .lesson-blueprint-footer .primary { width: 100%; }
  .lesson-selection-diagnostics { grid-template-columns: 1fr; }
  .lesson-smart-compose { grid-template-columns: 1fr; }
  .lesson-smart-compose .primary { width: 100%; }
  .lesson-recommendation { padding: 13px; }
  .lesson-recommendation > header { align-items: flex-start; flex-direction: column; }
  .lesson-recommendation > header > .review-tag { align-self: flex-start; }
  .lesson-model-review header { grid-template-columns: 1fr auto; }
  .lesson-model-review header span { grid-column: 1 / -1; grid-row: 2; }
  .results { padding-top: 18px; }
  .section-heading { align-items: flex-start; gap: 10px; }
  .result-tools { align-items: flex-end; flex-direction: column-reverse; gap: 7px; }
  .question-options { grid-template-columns: 1fr; }
  .question-detail { grid-template-columns: 1fr; gap: 2px; }
  .question-row { padding: 14px; }
  .export-bar {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 7px 10px;
    padding: 8px 16px calc(8px + env(safe-area-inset-bottom));
  }
  .basket-summary { grid-column: 1 / -1; width: 100%; gap: 8px; }
  .basket-summary > span { flex: 1 1 auto; }
  .basket-summary button { padding: 4px 7px; }
  .export-actions { display: flex; width: auto; max-width: none; flex-wrap: nowrap; justify-content: flex-end; gap: 5px; }
  .export-actions button { min-width: 0; padding: 6px 7px; font-size: 11px; white-space: nowrap; }
  .workspace { scroll-padding-bottom: calc(132px + env(safe-area-inset-bottom)); }
  .results { padding-bottom: calc(132px + env(safe-area-inset-bottom)); }
  .question-pagination { justify-content: flex-start; }
  .basket-drawer { width: 100vw; }
}
