    .practice-toolbar { display: flex; align-items: center; gap: 2px; padding: 0 6px; flex-shrink: 1; overflow: visible; min-width: 0; }
    .toolbar-inner { display: flex; align-items: center; gap: 2px; white-space: nowrap; flex-shrink: 0; }
    .nav-spacer { flex: 1; min-width: 8px; }

    /* Calculator */
    .calc-popup {
      display: none; position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(calc(-50% - 180px));
      background: var(--white); border: 1px solid var(--border); border-radius: 16px;
      padding: 16px; box-shadow: 0 8px 32px rgba(0,0,0,0.12); z-index: 100; width: 240px;
    }
    .calc-popup.open { display: block; }
    /* 拖拽中：相对视口定位，覆盖默认跟随按钮的 absolute 定位 */
    .calc-popup.dragging { position: fixed; transform: none; margin: 0; }
    .calc-drag-handle {
      position: absolute; top: 0; left: 0; right: 0; height: 22px;
      cursor: move; border-radius: 16px 16px 0 0;
      user-select: none; -webkit-user-select: none; touch-action: none;
    }
    .calc-drag-handle::before {
      content: ''; position: absolute; top: 8px; left: 50%; transform: translateX(-50%);
      width: 36px; height: 4px; border-radius: 999px; background: var(--border);
    }
    .calc-drag-handle:hover::before { background: var(--outline); }
    .calc-close {
      position: absolute; top: 6px; right: 6px; width: 22px; height: 22px;
      display: flex; align-items: center; justify-content: center;
      border: none; border-radius: 8px; background: transparent; cursor: pointer;
      color: var(--outline); font-size: 16px; line-height: 1; z-index: 2; padding: 0;
    }
    .calc-close:hover { background: rgba(0,0,0,0.06); color: var(--on-surface); }
    .calc-display {
      background: #f5f5f5; border-radius: 10px; padding: 12px 16px; text-align: right;
      font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums;
      color: var(--on-surface); margin-bottom: 12px; min-height: 48px; overflow: hidden;
    }
    .calc-btns { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
    .calc-btn {
      height: 40px; border-radius: 10px; border: none; cursor: pointer;
      font-family: inherit; font-size: 15px; font-weight: 500;
      background: #f5f5f5; color: var(--on-surface); transition: background 0.1s;
    }
    .calc-btn:hover { background: #e0e0e0; }
    .calc-btn:active { background: #d0d0d0; }
    .calc-btn.op { background: var(--alpha-10); color: var(--primary); font-weight: 700; }
    .calc-btn.op:hover { background: var(--alpha-20); }
    .calc-btn.eq { background: var(--primary); color: white; }
    .calc-btn.eq:hover { background: var(--primary-dark); }
    .calc-btn.zero { grid-column: span 2; }
    .tool-btn {
      width: 30px; height: 30px; border-radius: 8px; border: none; background: transparent;
      cursor: pointer; display: flex; align-items: center; justify-content: center;
      color: var(--on-surface-variant); font-family: inherit; font-size: 13px; font-weight: 600;
      transition: all 0.15s ease;
    }
    .tool-btn:hover { background: var(--hover-bg); color: var(--on-surface); }
    .tool-btn.active { background: var(--alpha-10); color: var(--primary-soft); }
    .tool-divider { width: 1px; height: 18px; background: var(--border); margin: 0 4px; }
    .svg-icon-sm { width: 16px; height: 16px; flex-shrink: 0; }

    .icon-btn { width: 36px; height: 36px; border-radius: 50%; border: none; background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--on-surface-variant); transition: background 0.2s; flex-shrink: 0; }
    .topbar-actions { display: flex; flex-direction: column; align-items: center; gap: 0; flex-shrink: 0; margin-left: 12px; }
    .topbar-icons { display: flex; align-items: center; margin-top: -2px; }
    .topbar-time { display: none; position: relative; }
    .topbar-time.visible { display: flex; align-items: center; margin-top: -1px; }
    .time-btn {
      border: none; cursor: pointer; padding: 2px 8px; border-radius: 8px; position: relative;
      font-family: inherit; transition: color 0.3s ease; min-width: 64px; text-align: center;
    }
    .time-btn:hover { filter: brightness(0.95); }
    .time-clock { font-size: 14px; font-weight: 600; color: inherit; line-height: 1; white-space: nowrap; font-variant-numeric: tabular-nums; }
    .time-btn.clock-mode .time-clock { color: var(--on-surface-variant); }
    .time-btn.countdown-mode .time-clock { color: white; }
    .time-btn.gradient-bg .time-clock { color: white; }
    .time-bell { display: none; position: absolute; top: -8px; right: -8px; width: 18px; height: 18px; color: #ff3d00; animation: bellRing 0.6s ease-in-out; }
    .time-bell svg { width: 100%; height: 100%; display: block; }
    .time-bell.show { display: block; }
    @keyframes bellRing {
      0%, 100% { transform: rotate(0); }
      20% { transform: rotate(15deg); }
      40% { transform: rotate(-15deg); }
      60% { transform: rotate(10deg); }
      80% { transform: rotate(-5deg); }
    }

    /* Timer Popup */
    .timer-popup {
      display: none; position: absolute; top: calc(100% + 8px); right: 0;
      background: var(--white); border: 1px solid var(--border); border-radius: 16px;
      padding: 20px 24px; box-shadow: 0 8px 32px rgba(0,0,0,0.12); z-index: 100;
      min-width: 260px;
    }
    .timer-popup.open { display: block; }
    .timer-display {
      font-size: 36px; font-weight: 700; color: var(--on-surface);
      text-align: center; margin-bottom: 16px;
      font-variant-numeric: tabular-nums; letter-spacing: 2px;
    }
    .timer-display.running { color: var(--primary); }
    .timer-presets {
      display: flex; gap: 6px; margin-bottom: 10px; flex-wrap: wrap;
    }
    .preset-btn {
      flex: 1; padding: 7px 0; border-radius: 10px; border: 1px solid var(--border);
      background: var(--white); cursor: pointer; font-family: inherit;
      font-size: 12px; color: var(--on-surface-variant);
      transition: all 0.15s ease; white-space: nowrap; min-width: 0;
    }
    .preset-btn:hover { background: var(--primary-container); color: var(--primary-soft); border-color: var(--primary); }
    .preset-btn.active { background: var(--primary-soft); color: var(--on-primary); border-color: var(--primary); }
    [data-theme="dark"] .preset-btn.active {
      background: var(--primary-container); color: var(--primary-soft);
    }
    .timer-custom {
      display: flex; gap: 6px; margin-bottom: 12px;
    }
    .timer-input {
      flex: 1; padding: 6px 10px; border-radius: 8px; border: 1px solid var(--border);
      font-family: inherit; font-size: 13px; outline: none; min-width: 0;
    }
    .timer-input:focus { border-color: var(--primary); }
    .timer-custom .preset-btn { flex: 0 0 auto; padding: 6px 12px; font-size: 12px; }
    .timer-controls {
      display: flex; gap: 6px; justify-content: center; margin-bottom: 14px;
    }
    .timer-ctrl-btn {
      padding: 4px 10px; border-radius: 14px; border: 1px solid var(--border);
      background: var(--white); cursor: pointer; font-family: inherit;
      font-size: 11px; color: var(--on-surface-variant);
      transition: all 0.15s ease;
    }
    .timer-ctrl-btn:hover { background: var(--hover-bg); color: var(--on-surface); }
    .timer-ctrl-btn.start { background: var(--primary); color: var(--on-primary); border-color: var(--primary); }
    .timer-ctrl-btn.start:hover { box-shadow: 0 2px 8px var(--alpha-30); }
    .timer-toggle-row {
      display: flex; align-items: center; justify-content: center; gap: 8px;
      padding-top: 10px; border-top: 1px solid var(--border);
    }
    .toggle-label { font-size: 11px; color: var(--on-surface-variant); }
    .toggle-switch {
      padding: 4px 12px; border-radius: 20px; border: 1px solid var(--border);
      background: var(--white); cursor: pointer; font-family: inherit;
      font-size: 12px; color: var(--on-surface-variant);
      transition: all 0.2s ease; font-weight: 500;
    }
    .toggle-switch:hover { background: var(--hover-bg); }
    .toggle-switch.countdown-mode { background: var(--primary-soft); color: var(--on-primary); border-color: var(--primary); }
    [data-theme="dark"] .toggle-switch.countdown-mode {
      background: var(--primary-container); color: var(--primary-soft);
    }
    /* @component TabPage — 导航标签对应的内容页（复盘总结/知识拼图/考试日历） */
    .tab-page {
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      height: 100%; text-align: center; padding: 40px 24px;
    }
    .tab-page-title { font-size: 18px; font-weight: 600; color: var(--on-surface); margin-bottom: 4px; }
    .tab-page-sub { font-size: 14px; color: var(--on-surface-variant); max-width: 360px; line-height: 1.6; }

    /* ── 复盘总结页（V6.68；V6.68.3 起不显示科目名/文件数标题）── */
    /* 内容从顶部开始（覆盖 .tab-page 的垂直居中，与拼图页同款处理） */
    #wrongPage { justify-content: flex-start; align-items: stretch; padding: 0; }
    /* 显示区域与做题页统一：固定高度 + 内部滚动（内容超出不撑高整页） */
    .review-page {
      width: 100%; flex: 1; min-height: 0; max-width: 780px; margin: 0 auto; padding: 0;
      display: flex; flex-direction: column; text-align: left;
    }
    #reviewContent.review-content {
      flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden;
      padding: 16px 0 40px;
    }

    /* 复盘总结子页下拉菜单（V9.11：Tab 变下拉，fixed 定位在按钮下方） */
    .review-dd-menu {
      position: fixed; min-width: 180px; padding: 6px; z-index: 100;
      background: var(--white); border: 1px solid var(--border); border-radius: 12px;
      box-shadow: 0 12px 40px rgba(0,0,0,0.14);
    }
    .review-dd-opt {
      display: block; width: 100%; text-align: left; padding: 9px 12px;
      border: none; background: transparent; border-radius: 8px;
      font-family: inherit; font-size: 13px; color: var(--on-surface); cursor: pointer;
    }
    .review-dd-opt:hover { background: var(--hover-bg); }
    .review-dd-opt.active { color: var(--primary); font-weight: 600; }
    .nav-review-caret { width: 12px; height: 12px; margin-left: 2px; }
    /* 做题轮次选择下拉（V9.14：悬停「开始做题」弹出第一/二/三轮，勾选切换；fixed 定位在顶栏下方） */
    .round-dd-menu {
      position: fixed; min-width: 140px; padding: 6px; z-index: 100;
      background: var(--white); border: 1px solid var(--border); border-radius: 12px;
      box-shadow: 0 12px 40px rgba(0,0,0,0.14);
    }
    .round-dd-opt {
      display: flex; align-items: center; gap: 8px; padding: 9px 12px;
      border-radius: 8px; font-size: 13px; color: var(--on-surface); cursor: pointer;
      transition: background 0.12s;
    }
    .round-dd-opt:hover { background: var(--hover-bg); }
    .round-dd-opt input[type=radio] { accent-color: var(--primary); flex-shrink: 0; cursor: pointer; }
    /* 做题页章节概览轮次指示（V9.14：轮次不显示在导航标签上，概览顶部提示） */
    .round-indicator {
      font-size: 12px; color: var(--on-surface-variant); padding: 2px 4px 10px;
    }
    /* 筛选卡片（V9.15：顶栏「筛选」按钮弹出，fixed 覆盖层，宽 = 做题内容宽 780px；JS 定位到复盘页左缘）
       V9.16：卡片改上下布局，筛选列区内部滚动、脚部（计数+全选/清空/确认选择）固定在底部不随滚动 */
    .review-filter-card {
      position: fixed; z-index: 100;
      background: var(--white); border: 1px solid var(--border); border-radius: 12px;
      box-shadow: 0 12px 40px rgba(0,0,0,0.14); padding: 10px;
      max-height: 70vh; display: flex; flex-direction: column;
    }
    .review-filter-fly-cols {
      display: flex; gap: 16px; align-items: flex-start;
      overflow-x: auto; overflow-y: auto; min-height: 0; padding-bottom: 2px;
    }
    .review-filter-fly-col { flex: 1 1 0; min-width: 120px; max-width: none; }
    .review-filter-fly-col-head {
      font-size: 12px; font-weight: 600; color: var(--on-surface-variant);
      padding: 4px 6px 6px; border-bottom: 1px solid var(--border); margin-bottom: 4px;
    }
    .review-filter-fly-item {
      display: flex; align-items: center; gap: 6px; padding: 6px 6px;
      border-radius: 6px; cursor: pointer; font-size: 13px; color: var(--on-surface);
      transition: background 0.12s;
    }
    .review-filter-fly-item:hover { background: var(--hover-bg); }
    .review-filter-fly-item input[type=checkbox] { accent-color: var(--primary); flex-shrink: 0; cursor: pointer; }
    .review-filter-fly-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .review-filter-fly-foot {
      display: flex; align-items: center; justify-content: space-between; gap: 10px;
      padding: 8px 6px 2px; border-top: 1px solid var(--border); margin-top: 8px;
      flex-shrink: 0;   /* V9.16：脚部固定，列区滚动时始终可见 */
    }
    .review-filter-fly-foot .review-filter-result {
      font-size: 12px; color: var(--on-surface-variant); white-space: nowrap;
    }
    .review-filter-fly-foot .review-filter-result b { color: var(--primary); font-weight: 700; }
    .review-filter-fly-btns { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
    .review-filter-fly-clear,
    .review-filter-fly-btn {
      padding: 5px 12px; border-radius: 8px; border: 1px solid var(--border);
      background: transparent; color: var(--on-surface-variant);
      font-family: inherit; font-size: 12px; cursor: pointer;
      transition: all 0.15s ease; white-space: nowrap;
    }
    .review-filter-fly-clear:hover,
    .review-filter-fly-btn:hover { background: var(--hover-bg); color: var(--on-surface); }
    .review-filter-fly-confirm {
      padding: 5px 14px; border-radius: 8px; border: none;
      background: var(--primary); color: #fff;
      font-family: inherit; font-size: 12px; cursor: pointer;
      transition: background 0.15s ease; white-space: nowrap;
    }
    .review-filter-fly-confirm:hover { background: var(--primary-dark); }

    /* ── 复盘「显示全部分析」浮动分析框（V9.18，替代 V9.15 逐行左栏两列）── */
    /* 分析模式只向左扩页（340 框 + 16 间隙 + 780 题 = 1136，746 = 356 + 390），题目保持原位不移动；
       分析框绝对定位在题目左侧留白、框高与卡片对齐，视觉同草稿纸文本框 */
    .review-page.review-analysis-on {
      max-width: 1136px; width: min(1136px, 100%);
      margin-left: calc(50% - 746px); margin-right: auto;
    }
    .review-row { position: relative; padding-left: 356px; margin-bottom: 10px; }
    .review-row .review-item { margin-bottom: 0; }
    .review-analysis-box {
      position: absolute; left: 0; top: 0; bottom: 0;
      width: 340px; overflow-y: auto;
      border: 1px dashed #d0d0d0; border-radius: 10px;
      background: rgba(255,255,255,0.92); padding: 12px 14px;
      font-size: 13px; color: var(--on-surface);
      box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    }
    .review-analysis-box .analysis-section { margin-bottom: 8px; }
    .review-analysis-box .analysis-label {
      font-size: 11px; font-weight: 600; color: var(--on-surface-variant); margin-bottom: 3px;
    }
    .review-analysis-box .analysis-text { line-height: 1.6; overflow-wrap: break-word; }

    .review-doc-group { margin-bottom: 18px; }
    .review-chapter-group { margin-bottom: 12px; }
    .review-chapter-name { font-size: 13px; font-weight: 600; color: var(--primary); margin-bottom: 6px; }

    /* ── 收藏/错题条目：题干完整显示 + 选项折叠（V9.9）── */
    .review-item {
      display: flex; flex-direction: column; align-items: stretch; gap: 8px;
      padding: 14px 18px; margin-bottom: 10px;
      border-radius: 12px; border: 1px solid var(--border); background: var(--white);
      cursor: pointer; transition: border-color 0.15s ease, background 0.15s ease;
    }
    .review-item:hover { border-color: var(--primary); background: var(--alpha-03); }
    .review-item.expanded { border-color: var(--primary); }
    .review-item.no-options { cursor: default; }
    .review-item-head { display: flex; align-items: center; gap: 8px; }
    .review-item-spacer { flex: 1; }
    .review-type {
      font-size: 11px; font-weight: 600; color: var(--primary); background: var(--primary-container);
      padding: 2px 8px; border-radius: 6px; white-space: nowrap; flex-shrink: 0;
    }
    .review-num { font-size: 12px; font-weight: 700; color: var(--on-surface-variant); white-space: nowrap; flex-shrink: 0; }
    /* 轮次徽章（V9.14：替换原「已答」——复盘条目必属某轮） */
    .review-badge-round {
      font-size: 11px; color: #5d4037; background: #efebe9;
      padding: 2px 8px; border-radius: 4px; white-space: nowrap; flex-shrink: 0;
    }
    /* 来源徽章（收藏 / 错题，同一题可两属） */
    .review-badge-bookmark {
      font-size: 11px; color: var(--primary); background: var(--primary-container);
      padding: 2px 8px; border-radius: 4px; white-space: nowrap; flex-shrink: 0;
    }
    .review-badge-wrong {
      font-size: 11px; color: #b71c1c; background: #ffebee;
      padding: 2px 8px; border-radius: 4px; white-space: nowrap; flex-shrink: 0;
    }
    /* 题干：像做题页一样完整正常排版（字号/行距跟随注入 #study-font-style 的 --sf-font，V9.10 A+/A- 生效） */
    .review-stem { color: var(--on-surface); overflow-wrap: break-word; }
    .review-stem.sub-stem { margin-top: 6px; }
    /* 学习状态操作：题干下方保持右侧操作位置。 */
    .review-action-row {
      display: flex; align-items: center; gap: 8px; width: 100%; min-height: 28px;
    }
    .review-action-spacer { flex: 1; min-width: 0; }
    .review-mastered-btn {
      flex: 0 0 auto; padding: 5px 11px; border: 1px solid var(--primary);
      border-radius: 8px; background: var(--primary-container); color: var(--primary);
      font-family: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
      transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
      white-space: nowrap;
    }
    .review-mastered-btn:hover:not(:disabled) { background: var(--primary); color: var(--on-primary); }
    .review-mastered-btn.is-mastered {
      background: var(--alpha-06); color: var(--on-surface-variant); border-color: var(--border);
    }
    .review-mastered-btn.is-mastered:hover:not(:disabled) {
      background: var(--hover-bg); color: var(--on-surface); border-color: var(--outline);
    }
    .review-mastered-btn:disabled { opacity: .6; cursor: wait; }
    .review-badge-mastered {
      font-size: 11px; color: var(--primary); background: var(--primary-container);
      padding: 2px 8px; border-radius: 4px; white-space: nowrap; flex-shrink: 0;
    }
    /* 折叠选项区：字号/行距跟随注入 --sf-font（不钉死，V9.10 A+/A- 生效）；
       选项文字放开 pointer-events（V9.15：复盘页需选中选项文字做高亮/批注）；字母按钮保持只读 */
    .review-item-options { margin-top: 8px; padding-top: 10px; border-top: 1px dashed var(--border); }
    .review-item-options .option-letter-btn { pointer-events: none; cursor: default; }
    /* 卡片脚行：徽章 + 定位原题，居右，仅卡片展开时显示。 */
    .review-item-foot {
      display: flex; align-items: center; justify-content: flex-end; gap: 8px;
      margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--border);
    }
    .review-foot-spacer { flex: 1; }
    .review-goto {
      padding: 6px 14px; border-radius: 8px;
      border: 1px solid var(--primary); background: var(--white); color: var(--primary);
      font-family: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
      transition: background 0.15s ease, color 0.15s ease;
    }
    .review-goto:hover { background: var(--primary); color: var(--on-primary); }
    .review-collapse-btn {
      display: inline-flex; align-items: center; justify-content: center; gap: 3px;
      height: 26px; padding: 0 8px; border-radius: 6px;
      border: 1px solid var(--border); background: transparent; color: var(--on-surface-variant);
      font-family: inherit; font-size: 11px; font-weight: 600; white-space: nowrap;
      cursor: pointer; transition: background 0.15s ease, color 0.15s ease;
    }
    .review-item:not(.expanded) .review-collapse-btn { display: none; }
    .review-collapse-btn:hover { background: var(--hover-bg); color: var(--on-surface); }

    /* 简洁样式跟随（V9.10：复盘页条目与做题页卡片同款去卡片视觉） */
    [data-view^="simple"] .review-item { background: transparent; border: none; border-radius: 0; }
    [data-view^="simple"] .review-item:hover { background: var(--alpha-03); }
    /* 简洁样式1：题目回顾区整块白底（对应做题区白底，与两侧浅灰留白区分） */
    [data-view="simple-1"] #reviewContent { background: var(--white); }

    .review-empty {
      text-align: center; color: var(--on-surface-variant); padding: 48px 0;
      font-size: 15px; font-weight: 500; line-height: 1.8;
    }
    .review-empty-hint { font-size: 13px; color: var(--on-surface-variant); opacity: 0.85; font-weight: 400; }

    /* ── 薄弱分析看板（V9.46：概览 → 薄弱章节 → 优先强化 → 进度）── */
    .review-page.review-weak-on { max-width: none; margin: 0 auto; padding: 0; }
    .review-page.review-weak-on #reviewContent {
      padding: 12px; overflow-y: auto; overflow-x: hidden; box-sizing: border-box;
    }
    .weak-dashboard {
      display: flex; flex-direction: column; gap: 12px; width: 100%; min-height: 100%;
      color: var(--on-surface); text-align: left;
    }
    .weak-ui-icon { width: 16px; height: 16px; display: block; flex-shrink: 0; }
    .weak-page-head {
      display: flex; align-items: center; gap: 10px; min-height: 48px;
      padding: 4px 4px 2px;
    }
    .weak-page-mark, .weak-section-icon, .weak-document-icon, .weak-empty-icon {
      display: inline-flex; align-items: center; justify-content: center;
      width: 32px; height: 32px; border-radius: 10px;
      color: var(--primary); background: var(--primary-container); flex-shrink: 0;
    }
    .weak-page-mark .weak-ui-icon { width: 18px; height: 18px; }
    .weak-page-heading { min-width: 0; flex: 1; }
    .weak-page-title { font-size: 18px; font-weight: 600; color: var(--on-surface); }
    .weak-page-context {
      margin-top: 2px; font-size: 12px; color: var(--on-surface-variant);
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .weak-round-badge {
      display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px;
      border: 1px solid var(--border); border-radius: 9px;
      background: var(--white); color: var(--on-surface-variant); font-size: 12px; white-space: nowrap;
    }
    .weak-round-badge .weak-ui-icon { width: 14px; height: 14px; }

    .weak-overview {
      display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px;
    }
    .weak-stat-card {
      position: relative; min-width: 0; min-height: 126px; overflow: hidden;
      padding: 14px 16px; border: 1px solid var(--border); border-radius: 14px; background: var(--white);
    }
    .weak-stat-card::after {
      content: ''; position: absolute; right: -32px; bottom: -46px;
      width: 112px; height: 112px; border-radius: 50%; background: var(--alpha-05);
    }
    .weak-stat-card.accuracy::after { background: rgba(76, 175, 80, 0.08); }
    .weak-stat-card.strengthen::after { background: rgba(198, 108, 39, 0.09); }
    .weak-stat-label {
      position: relative; z-index: 1; display: flex; align-items: center; gap: 7px;
      color: var(--on-surface-variant); font-size: 12px;
    }
    .weak-stat-label .weak-ui-icon { width: 15px; height: 15px; color: var(--primary); }
    .weak-stat-card.accuracy .weak-stat-label .weak-ui-icon { color: #2e7d57; }
    .weak-stat-card.strengthen .weak-stat-label .weak-ui-icon { color: #c66c27; }
    .weak-stat-main {
      position: relative; z-index: 1; display: flex; align-items: flex-end; gap: 8px; margin-top: 8px;
    }
    .weak-stat-main strong {
      font-size: 27px; line-height: 1; font-weight: 600; letter-spacing: -0.03em; color: var(--on-surface);
    }
    .weak-stat-main span { padding-bottom: 2px; color: var(--on-surface-variant); font-size: 11px; }
    .weak-stat-sub {
      position: relative; z-index: 1; margin-top: 7px; color: var(--on-surface-variant);
      font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .weak-type-summary {
      position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 4px 11px;
      min-height: 17px; margin-top: 7px; color: var(--on-surface-variant); font-size: 10.5px;
    }
    .weak-type-summary b { color: var(--on-surface); font-weight: 600; }
    .weak-stat-accent {
      position: relative; z-index: 1; width: 42%; height: 5px; margin-top: 12px;
      border-radius: 999px; background: #c66c27;
    }

    .weak-progress-track {
      position: relative; z-index: 1; width: 100%; height: 7px; margin-top: 9px;
      overflow: hidden; border-radius: 999px; background: var(--alpha-08);
    }
    .weak-progress-fill {
      height: 100%; border-radius: inherit; background: var(--primary); transition: width 0.25s ease;
    }
    .weak-progress-fill.bad { background: var(--error); }
    .weak-progress-fill.mid { background: #c58a22; }
    .weak-progress-fill.good { background: #3f9a6a; }

    .weak-analysis-grid {
      display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .85fr);
      gap: 12px; align-items: stretch;
    }
    .weak-section-card {
      min-width: 0; border: 1px solid var(--border); border-radius: 14px; background: var(--white);
    }
    .weak-section-head {
      display: flex; align-items: flex-start; gap: 10px; min-height: 58px;
      padding: 12px 14px 10px; border-bottom: 1px solid var(--border);
    }
    .weak-section-icon { width: 28px; height: 28px; border-radius: 8px; }
    .weak-section-icon .weak-ui-icon { width: 15px; height: 15px; }
    .weak-section-icon.attention { color: #c66c27; background: rgba(198, 108, 39, 0.11); }
    .weak-section-head > div { min-width: 0; flex: 1; }
    .weak-section-head h3 {
      margin: 0; color: var(--on-surface); font-size: 14px; line-height: 1.35; font-weight: 600;
    }
    .weak-section-head p {
      margin: 3px 0 0; color: var(--on-surface-variant); font-size: 11px;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .weak-legend {
      display: flex; align-items: center; gap: 10px; flex: none;
      padding-top: 4px; color: var(--on-surface-variant); font-size: 10px;
    }
    .weak-legend span { display: inline-flex; align-items: center; gap: 4px; }
    .weak-legend i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
    .weak-legend .bad { color: var(--error); }
    .weak-legend .good { color: #3f9a6a; }

    .weak-chapter-list { padding: 6px 8px 9px; }
    .weak-chapter-item {
      display: grid; grid-template-columns: 28px minmax(120px, 1fr) minmax(120px, 1.25fr) 46px 62px;
      align-items: center; gap: 9px; width: 100%; padding: 8px;
      border: 0; border-radius: 9px; background: transparent; color: var(--on-surface);
      font-family: inherit; text-align: left; cursor: pointer;
    }
    .weak-chapter-item:hover, .weak-chapter-item.selected { background: var(--alpha-05); }
    .weak-chapter-item:focus-visible, .weak-link-btn:focus-visible, .weak-strengthen-btn:focus-visible,
    .weak-tree-item:focus-visible, .weak-doc-tab:focus-visible, .weak-chapter-go:focus-visible {
      outline: 2px solid var(--primary); outline-offset: 2px;
    }
    .weak-rank {
      display: inline-flex; align-items: center; justify-content: center;
      width: 24px; height: 24px; border-radius: 7px;
      color: var(--error); background: rgba(179, 38, 30, 0.08); font-size: 10px; font-weight: 600;
    }
    .weak-chapter-copy { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
    .weak-chapter-copy b, .weak-chapter-copy small {
      display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .weak-chapter-copy b { font-size: 12px; font-weight: 500; }
    .weak-chapter-copy small { color: var(--on-surface-variant); font-size: 9.5px; }
    .weak-rate-visual { min-width: 0; }
    .weak-rate-visual .weak-progress-track { height: 8px; margin-top: 0; }
    .weak-rate-value { font-size: 12px; font-weight: 600; text-align: right; }
    .weak-rate-value.bad, .weak-tree-item strong.bad, .weak-tree-point b.bad { color: var(--error); }
    .weak-rate-value.mid, .weak-tree-item strong.mid, .weak-tree-point b.mid { color: #a66e10; }
    .weak-rate-value.good, .weak-tree-item strong.good, .weak-tree-point b.good { color: #2e7d57; }
    .weak-sample { color: var(--on-surface-variant); font-size: 10px; text-align: right; white-space: nowrap; }

    .weak-link-btn {
      display: inline-flex; align-items: center; gap: 4px; flex: none;
      margin-left: auto; padding: 5px 7px; border: 0; border-radius: 7px;
      background: transparent; color: var(--primary); font-family: inherit; font-size: 10.5px; cursor: pointer;
    }
    .weak-link-btn:hover { background: var(--alpha-05); }
    .weak-link-btn .weak-ui-icon { width: 13px; height: 13px; }
    .weak-priority-body { padding: 10px 12px 12px; }
    .weak-selected-chapter {
      display: grid; grid-template-columns: 16px minmax(0, auto) minmax(0, 1fr);
      align-items: center; gap: 6px; min-height: 20px; margin: 0 2px 8px;
      color: var(--on-surface-variant); font-size: 10px;
    }
    .weak-selected-chapter .weak-ui-icon { width: 14px; height: 14px; color: var(--primary); }
    .weak-selected-chapter span {
      color: var(--on-surface); font-size: 11px; font-weight: 500; white-space: nowrap;
    }
    .weak-selected-chapter small {
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--on-surface-variant);
    }
    .weak-point-list { display: flex; flex-direction: column; gap: 7px; }
    .weak-point-item {
      display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center;
      gap: 8px; min-height: 50px; padding: 8px 9px; border-radius: 10px; background: var(--alpha-03);
    }
    .weak-point-rank {
      display: inline-flex; align-items: center; justify-content: center;
      width: 24px; height: 24px; border-radius: 8px;
      color: #a65e20; background: rgba(198, 108, 39, 0.11); font-size: 10px; font-weight: 600;
    }
    .weak-point-copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
    .weak-point-copy b, .weak-point-copy small {
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .weak-point-copy b { color: var(--on-surface); font-size: 11.5px; font-weight: 500; }
    .weak-point-copy small { color: var(--on-surface-variant); font-size: 9.5px; }
    .weak-strengthen-btn {
      display: inline-flex; align-items: center; gap: 4px; padding: 6px 8px;
      border: 0; border-radius: 8px; background: var(--primary-container); color: var(--primary);
      font-family: inherit; font-size: 10px; cursor: pointer; white-space: nowrap;
    }
    .weak-strengthen-btn:hover { background: var(--primary); color: var(--on-primary); }
    .weak-strengthen-btn .weak-ui-icon { width: 12px; height: 12px; }

    .weak-panel-empty, .weak-knowledge-empty {
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      min-height: 172px; padding: 24px 16px; color: var(--on-surface-variant); text-align: center;
    }
    .weak-panel-empty b, .weak-knowledge-empty b { color: var(--on-surface); font-size: 13px; font-weight: 500; }
    .weak-panel-empty span, .weak-knowledge-empty span {
      max-width: 360px; margin-top: 6px; font-size: 11px; line-height: 1.65;
    }
    .weak-panel-empty.compact { min-height: 112px; }
    .weak-knowledge-empty.compact { min-height: 132px; }
    .weak-empty-icon.small { width: 30px; height: 30px; margin-bottom: 9px; border-radius: 9px; }
    .weak-empty-icon.small .weak-ui-icon { width: 15px; height: 15px; }

    .weak-tree-list { display: flex; flex-direction: column; gap: 4px; }
    .weak-tree-item {
      display: grid; grid-template-columns: minmax(0, 1fr) 42px 12px; align-items: center;
      gap: 8px; width: 100%; padding: 8px 9px; border: 0; border-radius: 9px;
      background: transparent; color: var(--on-surface); font-family: inherit; text-align: left; cursor: pointer;
    }
    .weak-tree-item:hover { background: var(--alpha-05); }
    .weak-tree-item > span { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
    .weak-tree-item b, .weak-tree-item small {
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .weak-tree-item b { font-size: 11.5px; font-weight: 500; }
    .weak-tree-item small { color: var(--on-surface-variant); font-size: 9.5px; }
    .weak-tree-item strong { font-size: 11px; text-align: right; }
    .weak-tree-item > i { color: var(--on-surface-variant); font-size: 16px; font-style: normal; }
    .weak-tree-drill-head {
      display: flex; align-items: center; gap: 8px; padding-bottom: 9px; border-bottom: 1px solid var(--border);
    }
    .weak-tree-drill-head .weak-link-btn { margin-left: 0; }
    .weak-tree-drill-head > div { display: flex; flex-direction: column; min-width: 0; margin-left: auto; text-align: right; }
    .weak-tree-drill-head b, .weak-tree-drill-head span {
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .weak-tree-drill-head b { font-size: 11.5px; font-weight: 500; }
    .weak-tree-drill-head span { color: var(--on-surface-variant); font-size: 9.5px; }
    .weak-tree-section { padding-top: 9px; }
    .weak-tree-section-name { display: flex; justify-content: space-between; gap: 8px; padding: 0 3px 4px; }
    .weak-tree-section-name b { font-size: 10.5px; font-weight: 500; color: var(--primary); }
    .weak-tree-section-name span { color: var(--on-surface-variant); font-size: 10px; }
    .weak-tree-point {
      display: grid; grid-template-columns: minmax(90px, 1fr) minmax(80px, 1.2fr) 38px;
      align-items: center; gap: 8px; padding: 5px 3px;
    }
    .weak-tree-point > span {
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10.5px;
    }
    .weak-tree-point .weak-progress-track { height: 6px; margin-top: 0; }
    .weak-tree-point b { font-size: 10.5px; text-align: right; }

    .weak-documents-card { overflow: hidden; }
    .weak-doc-tabs {
      display: flex; gap: 7px; padding: 9px 12px; overflow-x: auto;
      border-bottom: 1px solid var(--border); scrollbar-width: thin;
    }
    .weak-doc-tab {
      display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px;
      min-width: 220px; max-width: 340px; padding: 7px 9px; flex: 1 0 220px;
      border: 1px solid var(--border); border-radius: 9px; background: var(--surface);
      color: var(--on-surface); font-family: inherit; text-align: left; cursor: pointer;
    }
    .weak-doc-tab:hover { background: var(--hover-bg); }
    .weak-doc-tab.selected { border-color: var(--primary); background: var(--primary-container); }
    .weak-doc-tab > span { display: flex; align-items: center; gap: 6px; min-width: 0; font-size: 10.5px; }
    .weak-doc-tab > span .weak-ui-icon { width: 13px; height: 13px; color: var(--primary); }
    .weak-doc-tab > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .weak-doc-tab b { color: var(--on-surface-variant); font-size: 10px; }
    .weak-doc-tab.selected b { color: var(--primary); }
    .weak-selected-document {
      display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 8px;
      padding: 9px 14px 7px; background: var(--alpha-03);
    }
    .weak-document-icon { width: 18px; height: 18px; border-radius: 6px; background: transparent; }
    .weak-document-icon .weak-ui-icon { width: 14px; height: 14px; }
    .weak-selected-document > div { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
    .weak-selected-document b {
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 500;
    }
    .weak-selected-document span { color: var(--on-surface-variant); font-size: 9.5px; white-space: nowrap; }
    .weak-selected-document > strong { font-size: 11px; color: var(--primary); }
    .weak-progress-chapters { padding: 5px 9px 9px; }
    .weak-progress-chapter {
      display: grid; grid-template-columns: 28px minmax(145px, 1.1fr) minmax(150px, 1.35fr) 42px 86px 84px;
      align-items: center; gap: 9px; min-height: 48px; padding: 6px 7px;
      border-bottom: 1px solid var(--border); color: var(--on-surface);
    }
    .weak-progress-chapter:last-child { border-bottom: 0; }
    .weak-progress-index {
      display: inline-flex; align-items: center; justify-content: center;
      width: 24px; height: 24px; border-radius: 7px; background: var(--alpha-05);
      color: var(--on-surface-variant); font-size: 9.5px; font-weight: 600;
    }
    .weak-progress-copy { display: flex; align-items: center; gap: 7px; min-width: 0; }
    .weak-progress-copy b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 500; }
    .weak-progress-status { padding: 2px 5px; border-radius: 999px; font-size: 8.5px; white-space: nowrap; }
    .weak-progress-status.not-started { color: var(--on-surface-variant); background: var(--alpha-05); }
    .weak-progress-status.ongoing { color: #9a6511; background: rgba(197, 138, 34, 0.11); }
    .weak-progress-status.completed { color: #2e7d57; background: rgba(63, 154, 106, 0.11); }
    .weak-progress-visual .weak-progress-track { height: 7px; margin-top: 0; }
    .weak-progress-rate { font-size: 10.5px; text-align: right; }
    .weak-progress-count { display: flex; flex-direction: column; gap: 2px; min-width: 0; text-align: right; }
    .weak-progress-count b { font-size: 9.5px; font-weight: 500; white-space: nowrap; }
    .weak-progress-count span { color: var(--on-surface-variant); font-size: 8.5px; white-space: nowrap; }
    .weak-chapter-go {
      display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 6px 7px;
      border: 1px solid var(--border); border-radius: 8px; background: var(--white); color: var(--primary);
      font-family: inherit; font-size: 9.5px; cursor: pointer; white-space: nowrap;
    }
    .weak-chapter-go:hover { border-color: var(--primary); background: var(--primary-container); }
    .weak-chapter-go .weak-ui-icon { width: 11px; height: 11px; }
    .weak-stat-note {
      display: flex; align-items: flex-start; gap: 6px; padding: 0 3px 3px;
      color: var(--on-surface-variant); font-size: 10px; line-height: 1.5;
    }
    .weak-stat-note .weak-ui-icon { width: 13px; height: 13px; margin-top: 1px; }

    .weak-empty-board { align-items: center; justify-content: center; min-height: 360px; text-align: center; }
    .weak-empty-icon { width: 42px; height: 42px; margin-bottom: 12px; }
    .weak-empty-icon .weak-ui-icon { width: 21px; height: 21px; }
    .weak-empty-title { color: var(--on-surface); font-size: 16px; font-weight: 600; }
    .weak-empty-desc {
      max-width: 420px; margin-top: 7px; color: var(--on-surface-variant); font-size: 12px; line-height: 1.7;
    }
    .weak-loading-line, .weak-loading-cards i {
      display: block; border-radius: 12px;
      background: linear-gradient(90deg, var(--alpha-03), var(--alpha-08), var(--alpha-03));
      background-size: 200% 100%; animation: weak-loading-shimmer 1.2s linear infinite;
    }
    .weak-loading-line { width: 210px; height: 42px; }
    .weak-loading-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
    .weak-loading-cards i { height: 124px; border: 1px solid var(--border); }
    @keyframes weak-loading-shimmer { to { background-position: -200% 0; } }

    /* 专项强化返回按钮继续复用 */
    .weak-back-btn {
      border: 1px solid var(--border); background: var(--white); color: var(--on-surface);
      border-radius: 8px; padding: 6px 12px; font-size: 12px; cursor: pointer;
      flex-shrink: 0; font-family: inherit;
    }
    .weak-back-btn:hover { background: var(--hover-bg); }

    [data-theme="dark"] .weak-stat-card.accuracy::after { background: rgba(96, 191, 145, 0.09); }
    [data-theme="dark"] .weak-stat-card.strengthen::after { background: rgba(239, 161, 100, 0.09); }
    [data-theme="dark"] .weak-stat-card.accuracy .weak-stat-label .weak-ui-icon,
    [data-theme="dark"] .weak-rate-value.good,
    [data-theme="dark"] .weak-tree-item strong.good,
    [data-theme="dark"] .weak-tree-point b.good { color: #60bf91; }
    [data-theme="dark"] .weak-stat-card.strengthen .weak-stat-label .weak-ui-icon,
    [data-theme="dark"] .weak-section-icon.attention,
    [data-theme="dark"] .weak-point-rank { color: #efa164; }
    [data-theme="dark"] .weak-rate-value.mid,
    [data-theme="dark"] .weak-tree-item strong.mid,
    [data-theme="dark"] .weak-tree-point b.mid { color: #e1ad55; }

    @media (max-width: 1180px) {
      .weak-analysis-grid { grid-template-columns: minmax(0, 1.3fr) minmax(300px, .9fr); }
      .weak-chapter-item { grid-template-columns: 28px minmax(110px, 1fr) minmax(90px, .9fr) 44px 58px; }
    }
    @media (max-width: 980px) {
      .weak-analysis-grid { grid-template-columns: 1fr; }
      .weak-progress-chapter { grid-template-columns: 28px minmax(130px, 1fr) 42px 82px 82px; }
      .weak-progress-visual { display: none; }
    }
    @media (max-width: 760px) {
      .review-filter-card { max-width: calc(100vw - 24px); box-sizing: border-box; }
      .review-filter-fly-cols { gap: 8px; overscroll-behavior-x: contain; }
      .review-filter-fly-col { flex: 0 0 132px; min-width: 132px; }
      .review-filter-fly-foot { flex-wrap: wrap; align-items: flex-start; }
      .review-filter-fly-foot .review-filter-result { flex: 1 1 100%; white-space: normal; line-height: 1.5; }
      .review-filter-fly-btns { margin-left: auto; }
      .review-page.review-weak-on #reviewContent { padding: 10px; }
      .weak-overview { grid-template-columns: 1fr; }
      .weak-stat-card { min-height: 112px; }
      .weak-section-head { flex-wrap: wrap; }
      .weak-section-head .weak-link-btn { margin-left: 38px; }
      .weak-legend { width: 100%; padding-left: 38px; }
      .weak-chapter-item { grid-template-columns: 28px minmax(110px, 1fr) 48px 58px; }
      .weak-rate-visual { display: none; }
      .weak-progress-chapter { grid-template-columns: 26px minmax(120px, 1fr) 40px 76px auto; gap: 7px; }
      .weak-progress-copy { align-items: flex-start; flex-direction: column; gap: 2px; }
      .weak-progress-count span { display: none; }
      .weak-loading-cards { grid-template-columns: 1fr; }
    }
    @media (max-width: 460px) {
      .weak-page-head { padding-inline: 1px; }
      .weak-round-badge span { display: none; }
      .weak-round-badge { padding: 7px; }
      .weak-chapter-item { grid-template-columns: 26px minmax(100px, 1fr) 44px; gap: 7px; }
      .weak-sample { display: none; }
      .weak-section-head p { white-space: normal; line-height: 1.45; }
      .weak-point-item { grid-template-columns: 24px minmax(0, 1fr) auto; padding-inline: 7px; }
      .weak-strengthen-btn span { display: none; }
      .weak-strengthen-btn { padding: 7px; }
      .weak-selected-chapter { grid-template-columns: 15px minmax(0, 1fr); }
      .weak-selected-chapter small { display: none; }
      .weak-selected-document > div { align-items: flex-start; flex-direction: column; gap: 2px; }
      .weak-progress-chapter { grid-template-columns: 25px minmax(105px, 1fr) 38px 30px; }
      .weak-progress-count { display: none; }
      .weak-chapter-go { width: 28px; height: 28px; padding: 0; }
      .weak-chapter-go span { display: none; }
      .weak-doc-tab { min-width: 190px; flex-basis: 190px; }
    }
    /* ── 专项强化（V9.20 界面2）── */
    .strengthen { display: flex; flex-direction: column; height: 100%; min-height: 0; }
    .strengthen-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; height: 100%; text-align: center; }
    .strengthen-head { display: flex; align-items: center; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--border); flex-shrink: 0; }
    .strengthen-title { flex: 1; min-width: 0; font-size: 16px; font-weight: 600; color: var(--on-surface); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .strengthen-nav { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
    .strengthen-arrow { border: 1px solid var(--border); background: var(--white); border-radius: 8px; padding: 6px 10px; font-size: 12px; cursor: pointer; color: var(--on-surface); font-family: inherit; }
    .strengthen-arrow:hover:not(:disabled) { background: var(--hover-bg); }
    .strengthen-arrow:disabled { opacity: 0.4; cursor: default; }
    .strengthen-counter { font-size: 12px; color: var(--on-surface-variant); }
    .strengthen-body { flex: 1; min-height: 0; display: flex; gap: 12px; margin-top: 12px; }
    .strengthen-explain {
      flex: 1; min-width: 0; overflow-y: auto;
      background: var(--white); border: 1px solid var(--border); border-radius: 14px; padding: 14px 16px;
    }
    .strengthen-practice {
      flex: 1.2; min-width: 0; overflow-y: auto;
      background: var(--white); border: 1px solid var(--border); border-radius: 14px; padding: 14px 16px;
    }
    .sx-panel-title { font-size: 13px; font-weight: 600; color: var(--on-surface-variant); margin-bottom: 10px; }
    .sx-block { background: var(--alpha-03); border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; }
    .sx-block:last-child { margin-bottom: 0; }
    .sx-block-title { font-size: 13px; font-weight: 600; color: var(--primary); margin-bottom: 6px; }
    .sx-block-text { font-size: 13px; color: var(--on-surface); line-height: 1.7; }
    .sx-practice-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
    .sx-q-counter { font-size: 12px; color: var(--on-surface-variant); }
    .sx-q-type { font-size: 12px; color: var(--primary); border: 1px solid var(--primary); border-radius: 6px; padding: 1px 8px; }
    .sx-q-stem { font-size: 14px; color: var(--on-surface); line-height: 1.7; margin-bottom: 12px; }
    .sx-q-opts { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
    .sx-opt {
      display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: var(--on-surface);
      cursor: pointer; padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; transition: border-color 0.12s;
    }
    .sx-opt:hover { border-color: var(--primary); }
    .sx-opt input { accent-color: var(--primary); margin-top: 2px; }
    .sx-q-actions { display: flex; gap: 10px; }
    .sx-btn {
      border: 1px solid var(--border); background: var(--white); color: var(--on-surface);
      border-radius: 8px; padding: 8px 16px; font-size: 13px; cursor: pointer; font-family: inherit;
    }
    .sx-btn:hover:not(:disabled) { background: var(--hover-bg); }
    .sx-btn:disabled { opacity: 0.4; cursor: default; }
    .sx-btn-primary { background: var(--primary); border-color: var(--primary); color: #fff; }
    .sx-btn-primary:hover:not(:disabled) { background: var(--primary-dark); }
    .sx-result { margin-top: 12px; border-radius: 10px; padding: 12px 14px; font-size: 13px; line-height: 1.6; }
    .sx-result.sx-right { background: rgba(76, 175, 80, 0.12); color: #2e7d32; }
    .sx-result.sx-wrong { background: rgba(183, 28, 28, 0.12); color: #b71c1c; }
    [data-theme="dark"] .sx-result.sx-right { color: #81c784; }
    [data-theme="dark"] .sx-result.sx-wrong { color: #ef9a9a; }
    .sx-mark { font-weight: 700; }
    .sx-correct-ans { margin-top: 6px; }
    .sx-explanation { margin-top: 6px; border-top: 1px dashed rgba(0, 0, 0, 0.15); padding-top: 6px; opacity: 0.9; }
    [data-theme="dark"] .sx-explanation { border-top-color: rgba(255, 255, 255, 0.15); }
    .sx-round-done { margin-top: 12px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

    /* ── 问答卡片学习笔记看板（V9.30.1）── */
    .review-page.review-qa-on { max-width: none; margin: 0 auto; padding: 0; }
    .review-page.review-qa-on #reviewContent { padding: 10px; overflow: hidden; box-sizing: border-box; }
    .qa-cards-page { display: flex; gap: 14px; height: 100%; min-height: 0; }

    /* 左：章节索引 */
    .qa-sidebar {
      width: 188px; flex-shrink: 0; display: flex; flex-direction: column; gap: 2px;
      border-right: 1px solid var(--border); padding: 4px 10px 4px 0; overflow-y: auto;
    }
    .qa-sidebar-title { font-size: 12px; font-weight: 600; color: var(--on-surface-variant);
      padding: 4px 8px 8px; letter-spacing: 0.08em; }
    .qa-side-item { display: block; width: 100%; text-align: left; border: none; background: none;
      font-size: 13px; color: var(--on-surface); padding: 8px 10px; border-radius: 9px; cursor: pointer;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .qa-side-item:hover { background: var(--alpha-04); }
    .qa-side-item.active { background: var(--primary-container); color: var(--primary); font-weight: 600; }

    /* 右：工具栏 + 单张主卡 */
    .qa-main { flex: 1; min-width: 0; display: flex; flex-direction: column; min-height: 0; }
    .qa-toolbar { display: flex; align-items: center; gap: 8px; padding: 0 2px 10px; flex-shrink: 0; }
    .qa-tool-group { display: flex; gap: 4px; }
    .qa-sort-btn, .qa-fav-toggle {
      border: 1px solid var(--border); background: var(--white); color: var(--on-surface-variant);
      font-size: 12.5px; padding: 6px 12px; border-radius: 999px; cursor: pointer; transition: all 0.15s ease;
    }
    .qa-sort-btn:hover, .qa-fav-toggle:hover { border-color: var(--primary); color: var(--primary); }
    .qa-sort-btn.active, .qa-fav-toggle.active {
      background: var(--primary-container); border-color: var(--primary); color: var(--primary); font-weight: 600;
    }
    .qa-tool-spacer { flex: 1; }
    .qa-pager { display: flex; align-items: center; gap: 8px; }
    .qa-nav-btn {
      width: 30px; height: 30px; border: 1px solid var(--border); background: var(--white);
      color: var(--on-surface); border-radius: 9px; cursor: pointer; font-size: 15px; line-height: 1;
    }
    .qa-nav-btn:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
    .qa-nav-btn:disabled { opacity: 0.35; cursor: default; }
    .qa-pager-info { font-size: 12px; color: var(--on-surface-variant); white-space: nowrap; }

    /* 主卡居中、左右仅露边预览；常规内容优先一屏展示，极端长内容才由卡片主体滚动兜底。 */
    .qa-window { flex: 1; min-height: 0; position: relative; overflow: hidden; }
    .qa-card {
      border: 1px solid var(--border); border-radius: 18px; background: var(--white);
      display: flex; flex-direction: column; overflow: hidden; min-height: 0;
      position: absolute; left: 50%; top: 0; width: min(680px, 68%); height: calc(100% - 8px);
      transform-origin: 50% 50%;
      transition: transform 0.4s cubic-bezier(0.33, 0, 0.2, 1), opacity 0.4s ease, box-shadow 0.3s ease;
      animation: qa-card-in 0.3s ease;
    }
    @keyframes qa-card-in { from { opacity: 0; } to { opacity: 1; } }
    .qa-card.fav { border-color: #f5b301; }
    .qa-card.pos-center {
      transform: translateX(-50%); opacity: 1; z-index: 3; cursor: default;
      box-shadow: 0 0 0 1px var(--alpha-12), 0 18px 42px rgba(0, 0, 0, 0.15);
    }
    .qa-card.pos-left {
      transform: translateX(-122%) scale(0.32); opacity: 0.38; z-index: 1; cursor: pointer;
      box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
    }
    .qa-card.pos-right {
      transform: translateX(22%) scale(0.32); opacity: 0.38; z-index: 1; cursor: pointer;
      box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
    }
    .qa-card.pos-left:hover { border-color: var(--primary); opacity: 0.62; transform: translateX(-122%) scale(0.32) translateY(-3px); }
    .qa-card.pos-right:hover { border-color: var(--primary); opacity: 0.62; transform: translateX(22%) scale(0.32) translateY(-3px); }

    .qa-card-head { display: flex; align-items: center; gap: 8px; padding: 9px 16px;
      border-bottom: 1px solid var(--border); flex-shrink: 0; }
    .qa-card-meta { flex: 1; min-width: 0; font-size: 12px; color: var(--on-surface-variant);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .qa-fav-btn { border: none; background: none; font-size: 17px; color: var(--outline);
      cursor: pointer; padding: 2px; line-height: 1; }
    .qa-fav-btn.on { color: #f5b301; }

    .qa-card-body { flex: 1; min-height: 0; overflow-y: auto; padding: 15px 20px 14px; }
    .qa-answer { color: var(--on-surface); word-break: break-word; }
    .qa-question-title { margin-bottom: 12px; font-size: 18px; line-height: 1.45; font-weight: 650; letter-spacing: -0.01em; }
    .qa-explanation-title { display: flex; align-items: center; gap: 8px; margin-bottom: 10px;
      color: var(--primary); font-size: 13px; font-weight: 700; letter-spacing: 0.06em; }
    .qa-explanation-title::after { content: ''; height: 1px; flex: 1; background: var(--alpha-18); }
    .qa-explanation { font-size: 12px; line-height: 1.74; }
    .qa-para { position: relative; margin: 0 0 10px; padding-left: 14px; }
    .qa-para::before { content: ''; position: absolute; left: 1px; top: 0.72em; width: 5px; height: 5px;
      border-radius: 50%; background: var(--primary-muted); }
    .qa-para:last-child { margin-bottom: 0; }
    .qa-answer strong { color: var(--primary); font-weight: 700; }
    .qa-answer ul { margin: 5px 0 0; padding-left: 18px; }
    .qa-answer li { margin: 4px 0; line-height: 1.75; }
    .qa-answer li::marker { color: var(--primary); }

    .qa-insights { margin-top: 15px; }
    .qa-reminder { display: flex; gap: 8px; margin-bottom: 10px; border-left: 2px solid var(--primary-muted);
      border-radius: 0 9px 9px 0; padding: 6px 9px; background: var(--alpha-04);
      color: var(--on-surface-variant); font-size: 12px; line-height: 1.55; }
    .qa-reminder-label { flex: none; color: var(--primary); font-weight: 600; font-size: 13px; }
    .qa-weak-tags { display: flex; flex-wrap: wrap; gap: 5px; }
    .qa-weak-tag { font-size: 11px; color: var(--on-surface-variant); background: var(--alpha-03);
      border: 1px solid var(--border); padding: 3px 8px; border-radius: 999px; }

    .qa-source { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 10px; }
    .qa-source-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%;
      border: 0; background: none; color: var(--primary); font-size: 13px; font-weight: 650; cursor: pointer; }
    .qa-source-chevron { transition: transform 0.2s ease; }
    .qa-source[data-open="true"] .qa-source-chevron { transform: rotate(180deg); }
    .qa-question { display: none; margin-top: 7px; border: 1px solid var(--border); border-radius: 8px;
      padding: 7px 9px; background: var(--alpha-03); font-size: 11.5px; line-height: 1.5; color: var(--on-surface-variant); }
    .qa-source[data-open="true"] .qa-question { display: block; }
    .qa-q-stem { line-height: 1.5; }
    .qa-q-stem.full { white-space: pre-wrap; }
    .qa-q-opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px 12px; margin-top: 5px; }
    .qa-q-opt { display: flex; align-items: baseline; gap: 4px; min-width: 0; }
    .qa-q-opt-label { flex: none; min-width: 12px; color: var(--primary); font-weight: 700; }
    .qa-q-opt-text { min-width: 0; word-break: break-word; }

    /* 内容完整放下且富余高度明显时，让一级区块在卡片内纵向均衡；段落内部仍保持紧密关联。 */
    .qa-card.qa-fit-balanced .qa-card-body {
      display: flex; flex-direction: column; justify-content: space-evenly;
    }
    .qa-card.qa-fit-balanced .qa-insights,
    .qa-card.qa-fit-balanced .qa-source { margin-top: 0; }

    /* 内容溢出时按两档压缩，优先保留全部知识点与原题，滚动仅作最终兜底。 */
    .qa-card.qa-fit-tight .qa-card-body { padding: 11px 18px 10px; }
    .qa-card.qa-fit-tight .qa-question-title { margin-bottom: 7px; font-size: 17px; }
    .qa-card.qa-fit-tight .qa-explanation-title { margin-bottom: 6px; font-size: 12px; }
    .qa-card.qa-fit-tight .qa-explanation { font-size: 12px; line-height: 1.56; }
    .qa-card.qa-fit-tight .qa-para { margin-bottom: 6px; }
    .qa-card.qa-fit-tight .qa-insights { margin-top: 8px; }
    .qa-card.qa-fit-tight .qa-reminder { margin-bottom: 6px; padding: 5px 8px; line-height: 1.45; }
    .qa-card.qa-fit-tight .qa-source { margin-top: 8px; padding-top: 8px; }
    .qa-card.qa-fit-tight .qa-question { margin-top: 5px; padding: 5px 8px; font-size: 10.8px; line-height: 1.4; }
    .qa-card.qa-fit-ultra .qa-card-body { padding: 9px 16px 8px; }
    .qa-card.qa-fit-ultra .qa-question-title { margin-bottom: 5px; font-size: 16px; line-height: 1.35; }
    .qa-card.qa-fit-ultra .qa-explanation-title { margin-bottom: 5px; font-size: 11px; }
    .qa-card.qa-fit-ultra .qa-explanation { font-size: 11px; line-height: 1.43; }
    .qa-card.qa-fit-ultra .qa-para { margin-bottom: 5px; padding-left: 12px; }
    .qa-card.qa-fit-ultra .qa-insights { margin-top: 6px; }
    .qa-card.qa-fit-ultra .qa-reminder { padding: 4px 7px; font-size: 11px; line-height: 1.35; }
    .qa-card.qa-fit-ultra .qa-weak-tag { padding: 2px 7px; font-size: 10.5px; }
    .qa-card.qa-fit-ultra .qa-source { margin-top: 6px; padding-top: 5px; }
    .qa-card.qa-fit-ultra .qa-source-toggle { font-size: 11px; }
    .qa-card.qa-fit-ultra .qa-question { margin-top: 4px; padding: 4px 7px; font-size: 10px; line-height: 1.3; }

    /* 空态 */
    .qa-empty { height: 100%; display: flex; flex-direction: column; align-items: center;
      justify-content: center; gap: 8px; color: var(--on-surface-variant); font-size: 14px; }
    .qa-empty-hint { font-size: 12px; color: var(--outline); }

    @media (max-width: 1180px) {
      .qa-sidebar { width: 172px; }
      .qa-card { width: min(650px, 74%); }
    }
    @media (max-width: 760px) {
      .review-page.review-qa-on #reviewContent { overflow-y: auto; overflow-x: hidden; }
      .qa-cards-page { display: block; height: auto; min-height: 100%; }
      .qa-sidebar { width: 100%; flex-direction: row; align-items: center; border-right: 0; border-bottom: 1px solid var(--border);
        padding: 0 0 8px; overflow-x: auto; overflow-y: hidden; }
      .qa-sidebar-title { display: none; }
      .qa-side-item { width: auto; flex: none; padding: 7px 10px; }
      .qa-main { min-height: 0; padding-top: 10px; }
      .qa-window { overflow: visible; min-height: 0; }
      .qa-card { position: relative; left: auto; top: auto; width: 100%; height: auto; min-height: 0; transform: none !important;
        opacity: 1 !important; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10); }
      .qa-card.pos-left, .qa-card.pos-right { display: none; }
      .qa-card-body { overflow: visible; }
      .qa-q-opts { grid-template-columns: 1fr; }
    }
    @media (max-width: 460px) {
      .qa-toolbar { flex-wrap: wrap; }
      .qa-tool-spacer { display: none; }
      .qa-pager { margin-left: auto; }
      .qa-card-body { padding: 14px 14px 13px; }
      .qa-question-title { font-size: 17px; }
      .qa-explanation-title { font-size: 12px; }
      .qa-explanation { font-size: 12px; }
      .qa-para { margin-bottom: 9px; }
      .qa-reminder { display: block; }
      .qa-reminder-label { display: block; margin-bottom: 3px; }
    }

    /* ── 汇总笔记打印预览（V9.32）── */
    .review-page.review-notes-on { max-width: none; margin: 0 auto; padding: 0; }
    .review-page.review-notes-on #reviewContent { padding: 10px; overflow: hidden; box-sizing: border-box; }
    .summary-notes-page { display: flex; gap: 0; height: 100%; min-height: 0; }
    .summary-notes-sidebar {
      width: 188px; flex-shrink: 0; display: flex; flex-direction: column; gap: 2px;
      border-right: 0; padding: 4px 12px 4px 0; overflow-y: auto;
    }
    .summary-notes-sidebar-title { font-size: var(--type-caption); font-weight: 600; color: var(--on-surface-variant);
      padding: 4px 8px 8px; letter-spacing: .08em; }
    .summary-notes-resizer { width: 20px; flex: 0 0 20px; cursor: col-resize; position: relative; z-index: 2;
      outline: none; touch-action: none; }
    .summary-notes-resizer::before { content: ''; position: absolute; top: 0; bottom: 0; left: 50%; width: 1px;
      transform: translateX(-50%); background: var(--border); transition: background .16s, width .16s; }
    .summary-notes-resizer::after { content: ''; position: absolute; top: 50%; left: 50%; width: 4px; height: 34px;
      transform: translate(-50%, -50%); border-radius: 999px; background: var(--outline); opacity: .32;
      box-shadow: 0 0 0 5px var(--surface); transition: opacity .16s, background .16s, height .16s, box-shadow .16s; }
    .summary-notes-resizer:hover::before, .summary-notes-resizer:focus-visible::before,
    .summary-notes-resizing .summary-notes-resizer::before { width: 2px; background: var(--primary); }
    .summary-notes-resizer:hover::after, .summary-notes-resizer:focus-visible::after,
    .summary-notes-resizing .summary-notes-resizer::after { height: 44px; opacity: 1; background: var(--primary);
      box-shadow: 0 0 0 5px var(--primary-container); }
    .summary-side-doc { color: var(--on-surface-variant); font-size: var(--type-caption); font-weight: 600;
      padding: 12px 8px 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .summary-side-item { display: block; width: 100%; text-align: left; border: none; background: none;
      font-size: var(--type-ui); color: var(--on-surface); padding: 8px 10px; border-radius: 9px; cursor: pointer;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .summary-side-item:hover { background: var(--alpha-04); }
    .summary-side-item.active { background: var(--primary-container); color: var(--primary); font-weight: 600; }
    .summary-notes-main { flex: 1; min-width: 0; min-height: 0; margin-left: 12px; display: flex; flex-direction: column; overflow: hidden; }
    .summary-notes-toolbar { display: flex; align-items: center; gap: 12px; padding: 0 2px 8px; flex-shrink: 0; }
    .summary-notes-title { color: var(--on-surface); font-size: var(--type-heading); font-weight: 700; letter-spacing: -.02em; }
    .summary-notes-count { color: var(--on-surface-variant); font-size: var(--type-caption); margin-top: 3px; }
    .summary-notes-actions { display: flex; gap: 7px; margin-left: auto; }
    .summary-notes-btn { border: 1px solid var(--border); background: var(--white); color: var(--on-surface-variant);
      border-radius: 8px; padding: 7px 12px; font: inherit; font-size: var(--type-ui); cursor: pointer; }
    .summary-notes-btn:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
    .summary-notes-btn-primary { color: #fff; background: var(--primary); border-color: var(--primary); }
    .summary-notes-btn-primary:hover:not(:disabled) { color: #fff; background: var(--primary-dark); }
    .summary-notes-btn:disabled { opacity: .45; cursor: default; }
    .summary-notes-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; color: var(--on-surface-variant);
      font-size: var(--type-caption); padding: 0 2px 9px; border-bottom: 1px solid var(--border); flex-shrink: 0; }
    .summary-source-filter { display: inline-flex; align-items: center; gap: 5px; border: 1px solid transparent;
      border-radius: 999px; background: transparent; color: var(--on-surface-variant); padding: 3px 6px;
      font: inherit; font-size: var(--type-caption); cursor: pointer; transition: .12s; }
    .summary-source-filter:hover { background: var(--alpha-06); }
    .summary-source-filter:not(.selected) { opacity: .38; text-decoration: line-through; }
    .summary-source-filter.selected { border-color: var(--border); background: var(--white); }
    .summary-legend-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; }
    .summary-legend-dot.annotation { background: #8b5cf6; }
    .summary-legend-dot.tag { background: #65a30d; }
    .summary-legend-dot.ai { background: #e11d48; }
    .summary-notes-paper { flex: 1; min-height: 0; overflow-y: auto; padding: 22px 24px 40px; }
    .summary-notes-doc { max-width: 760px; margin: 0 auto; }
    .summary-notes-doc > h2 { margin: 4px 0 22px; color: var(--on-surface); font-size: var(--type-title); font-weight: 600; }
    .summary-notes-chapter { margin-bottom: 30px; }
    .summary-notes-chapter > h3 { display: flex; align-items: center; gap: 9px; margin: 0 0 12px;
      color: var(--on-surface); font-size: var(--type-title-sm); font-weight: 600; }
    .summary-notes-chapter > h3::after { content: ''; height: 1px; flex: 1; background: var(--border); }
    .summary-notes-chapter > h3 span { color: var(--on-surface-variant); font-size: var(--type-caption); font-weight: 400; }
    /* 笔记采用连续阅读流：不使用逐条卡片、边框、阴影或彩色竖线。 */
    .summary-note-item { background: transparent; border: 0; border-radius: 0;
      padding: 0 2px; margin: 0 0 7px; box-shadow: none; }
    .summary-note-item-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
    .summary-note-source { color: var(--outline); font-size: var(--type-caption); font-weight: 400;
      display: inline-flex; align-items: center; gap: 5px; }
    .summary-note-source-icon { color: inherit; font-size: var(--type-caption); }
    .summary-note-item-actions { display: inline-flex; align-items: center; gap: 10px; margin-left: auto; }
    .summary-note-goto, .summary-note-remove, .summary-note-view { border: none; background: none; padding: 2px 0; color: var(--primary);
      font: inherit; font-size: var(--type-caption); cursor: pointer; opacity: 0; transition: opacity .12s; }
    .summary-note-remove { color: var(--outline); }
    .summary-note-item:hover .summary-note-goto, .summary-note-item:hover .summary-note-remove, .summary-note-item:hover .summary-note-view,
    .summary-note-goto:focus, .summary-note-remove:focus, .summary-note-view:focus { opacity: 1; }
    .summary-note-selected { display: inline; font-size: var(--type-body); line-height: var(--leading-body); word-break: break-word; }
    .summary-note-number { color: inherit; font: inherit; }
    .summary-note-number-annotation { color: #6d28d9; }
    .summary-selected-annotation { color: #6d28d9; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
    .summary-note-memo { color: var(--on-surface); font-size: var(--type-body); line-height: var(--leading-body); margin-top: 5px; white-space: pre-wrap; }
    .summary-note-ai-line { color: var(--on-surface); font-size: var(--type-body); line-height: var(--leading-body); word-break: break-word; font-weight: 400; }
    .summary-ai-text { color: var(--on-surface); font-weight: 400; }
    /* AI 重点不使用背景色：背景高亮唯一留给用户荧光笔。 */
    .summary-note-ai-line strong,
    .summary-modal-reminder strong { color: var(--primary); font-weight: 600; text-decoration: none; }
    .summary-note-ai-line em,
    .summary-modal-reminder em { color: var(--on-surface); font-style: normal; font-weight: 600; text-decoration: none; }
    .summary-note-ai-line .md-warning,
    .summary-modal-reminder .md-warning { color: #b42318; background: transparent; font-weight: 500;
      text-decoration-line: underline; text-decoration-style: wavy; text-decoration-color: currentColor;
      text-decoration-thickness: 1.2px; text-underline-offset: 3px; }
    [data-theme="dark"] .summary-note-ai-line .md-warning,
    [data-theme="dark"] .summary-modal-reminder .md-warning { color: #fda4af; }
    .summary-notes-loading, .summary-notes-empty { height: 100%; display: flex; flex-direction: column; align-items: center;
      justify-content: center; gap: 8px; color: var(--on-surface-variant); font-size: 14px; text-align: center; }
    .summary-notes-empty-hint { max-width: 420px; color: var(--outline); font-size: 12px; line-height: 1.7; }
    .summary-notes-empty-icon { color: var(--primary); font-size: 25px; }

    /* 汇总笔记原题卡片 */
    .summary-question-modal { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 22px; }
    .summary-question-modal-backdrop { position: absolute; inset: 0; background: rgba(17,24,39,.48); backdrop-filter: blur(2px); }
    .summary-question-modal-dialog { position: relative; z-index: 1; display: flex; flex-direction: column; width: min(820px, 100%);
      max-height: min(88vh, 900px); overflow: hidden; background: var(--surface, #fff); border: 1px solid var(--border);
      border-radius: 16px; box-shadow: 0 24px 70px rgba(15,23,42,.25); }
    .summary-question-modal-head { display: flex; align-items: flex-start; gap: 14px; padding: 12px 16px 10px; border-bottom: 1px solid var(--border); }
    .summary-question-modal-kicker { color: var(--primary); font-size: 12px; line-height: 1.5; font-weight: 700; margin-bottom: 2px; }
    .summary-question-modal-head h2 { margin: 0; color: var(--on-surface); font-size: 12px; line-height: 1.5; font-weight: 700; }
    .summary-question-modal-close { margin-left: auto; border: 0; background: transparent; color: var(--outline); font-size: 26px; line-height: 1; cursor: pointer; padding: 0 2px; }
    .summary-question-modal-body { overflow-y: auto; padding: 10px 14px 12px; font-size: 12px; }
    .summary-modal-section { margin-bottom: 9px; }
    .summary-modal-label { display: block; color: var(--on-surface-variant); font-size: 12px; line-height: 1.5; font-weight: 700; margin-bottom: 4px; }
    .summary-modal-question-card { margin: 0 0 9px; padding: 12px 14px; border-radius: 10px; }
    .summary-modal-question-card .option-letter-btn { pointer-events: none; cursor: default; }
    .summary-modal-subjective, .summary-modal-muted { color: var(--outline); font-size: 12px; line-height: 1.5; }
    .summary-modal-annotation { padding: 6px 8px; margin-bottom: 4px; border-left: 3px solid #8b5cf6; background: var(--alpha-04); border-radius: 0 7px 7px 0; }
    .summary-modal-annotation-type { color: var(--primary); font-size: 12px; font-weight: 700; margin-right: 6px; }
    .summary-modal-annotation-text { color: var(--on-surface); font-size: 12px; line-height: 1.5; }
    .summary-modal-annotation-note { color: var(--on-surface-variant); font-size: 12px; line-height: 1.5; margin-top: 2px; white-space: pre-wrap; }
    .summary-modal-analysis { padding: 7px 8px; background: var(--alpha-04); border-radius: 8px; }
    .summary-modal-reminder { color: var(--on-surface); font-size: 12px; line-height: 1.5; font-weight: 400; }
    .summary-question-modal-foot { display: flex; align-items: center; gap: 9px; padding: 8px 14px; border-top: 1px solid var(--border); color: var(--outline); font-size: 12px; line-height: 1.5; }
    .summary-question-modal-foot .summary-notes-btn { margin-left: auto; }
    /* 弹窗与行内原题共用紧凑排版，不受做题页字号设置影响。 */
    .summary-question-modal-body .question-card-header,
    .summary-inline-question-detail .question-card-header { gap: 7px; margin-bottom: 8px; }
    .summary-question-modal-body .question-num,
    .summary-question-modal-body .question-type-tag,
    .summary-inline-question-detail .question-num,
    .summary-inline-question-detail .question-type-tag { font-size: 12px; line-height: 1.4; font-weight: 700; padding: 3px 8px; }
    .summary-question-modal-body .question-stem-text,
    .summary-inline-question-detail .question-stem-text { font-size: 12px !important; line-height: 1.5 !important; margin-bottom: 8px; }
    .summary-question-modal-body .options-list,
    .summary-inline-question-detail .options-list { gap: 4px; }
    .summary-question-modal-body .option-item,
    .summary-inline-question-detail .option-item { gap: 9px; padding: 6px 9px; font-size: 12px; line-height: 1.5; border-radius: 8px; }
    .summary-question-modal-body .option-text,
    .summary-inline-question-detail .option-text { font-size: 12px !important; line-height: 1.5 !important; }
    .summary-question-modal-body .option-letter-btn,
    .summary-inline-question-detail .option-letter-btn { min-width: 24px; width: 24px; height: 24px; font-size: 12px; border-width: 1.5px; }
    .summary-question-modal-body .option-mark,
    .summary-inline-question-detail .option-mark { font-size: 12px; }
    .summary-question-modal-body .analysis-text,
    .summary-question-modal-body .analysis-option-text,
    .summary-inline-question-detail .analysis-text,
    .summary-inline-question-detail .analysis-option-text { font-size: 12px !important; line-height: 1.5 !important; }
    .summary-question-modal-body .analysis-label,
    .summary-question-modal-body .analysis-option-label,
    .summary-inline-question-detail .analysis-label,
    .summary-inline-question-detail .analysis-option-label { font-size: 12px !important; line-height: 1.5 !important; font-weight: 700; }
    .summary-question-modal-body .analysis-option-item,
    .summary-question-modal-body .analysis-empty,
    .summary-inline-question-detail .analysis-option-item,
    .summary-inline-question-detail .analysis-empty { font-size: 12px !important; line-height: 1.5 !important; }
    /* 行内展开用完整外框表达“这道题属于上方这条笔记”，不使用彩色竖线或阴影。 */
    .summary-inline-question-detail { margin: 10px 0 6px; padding: 10px 12px 11px; border: 1px solid var(--border);
      border-radius: 12px; background: var(--alpha-04); font-size: 12px; }
    .summary-inline-question-label { color: var(--outline); font-size: 12px; line-height: 1.5; font-weight: 700;
      margin-bottom: 7px; letter-spacing: .04em; }
    .summary-inline-question-detail .summary-modal-question-card { margin-bottom: 9px; }
    .summary-inline-question-detail .summary-modal-section:last-child { margin-bottom: 0; }
    .selection-popup.summary-highlight-only .popup-btn:not([data-action="highlight"]) { display: none; }

    @media (max-width: 760px) {
      .review-page.review-notes-on #reviewContent { overflow-y: auto; overflow-x: hidden; }
      .summary-notes-page { display: block; height: auto; min-height: 100%; }
      .summary-notes-sidebar { width: 100%; flex-direction: row; align-items: center; border-right: 0; border-bottom: 1px solid var(--border);
        padding: 0 0 8px; overflow-x: auto; overflow-y: hidden; }
      .summary-notes-sidebar-title, .summary-side-doc { display: none; }
      .summary-notes-resizer { display: none; }
      .summary-side-item { width: auto; flex: none; padding: 7px 10px; }
      .summary-notes-main { min-height: 0; margin-left: 0; padding-top: 10px; overflow: visible; }
      .summary-notes-toolbar { flex-wrap: wrap; }
      .summary-notes-actions { margin-left: 0; width: 100%; }
      .summary-notes-actions .summary-notes-btn { flex: 1; }
      .summary-notes-paper { overflow: visible; padding: 12px 0 24px; }
      .summary-notes-doc > h2 { margin-left: 2px; }
      .summary-note-goto, .summary-note-remove, .summary-note-view { opacity: 1; }
    }

    /* ── 自定义 tooltip（替代原生 title 黑块）── */
    .tool-btn[data-tooltip] { position: relative; }
    .tool-btn[data-tooltip]::after {
      content: attr(data-tooltip);
      position: absolute;
      top: calc(100% + 6px);
      left: 50%;
      transform: translateX(-50%);
      padding: 4px 10px;
      border-radius: 6px;
      background: rgba(0,0,0,0.75);
      color: #fff;
      font-size: 12px;
      font-weight: 400;
      white-space: nowrap;
      pointer-events: none;
      opacity: 0;
      transition: opacity 0.12s ease;
      z-index: 200;
    }
    .tool-btn[data-tooltip]:hover::after { opacity: 1; }

    /* ── 皮肤选择器弹出面板（从侧边栏底部换肤按钮弹出）── */
    .theme-picker-popup {
      position: fixed; z-index: 1001;
      background: var(--white); border-radius: 14px;
      box-shadow: 0 8px 32px rgba(0,0,0,0.15), 0 0 0 1px rgba(0,0,0,0.05);
      padding: 10px 6px; min-width: 176px;
      opacity: 0; pointer-events: none;
      transform: translateX(-8px);
      transition: opacity 0.15s, transform 0.15s;
    }
    .theme-picker-popup.open { opacity: 1; pointer-events: auto; transform: translateX(0); }
    .theme-picker-title {
      font-size: 13px; font-weight: 600; color: var(--on-surface);
      padding: 4px 10px 8px;
    }
    .theme-picker-item {
      display: flex; align-items: center; gap: 10px;
      width: 100%; padding: 8px 10px; border-radius: 8px;
      border: none; background: transparent; cursor: pointer;
      font-family: inherit; font-size: 13px;
      color: var(--on-surface); transition: background 0.12s;
    }
    .theme-picker-item:hover { background: var(--hover-bg); }
    .theme-picker-item.selected { background: var(--alpha-06); color: var(--primary-soft); font-weight: 600; }
    .theme-picker-dot {
      width: 20px; height: 20px; border-radius: 50%; flex-shrink: 0;
      box-shadow: inset 0 1px 2px rgba(0,0,0,0.15);
    }
    .theme-picker-name { flex: 1; text-align: left; }

    /* ═══════════════════════════════════════════════════════════
       工具栏自适应收纳
       ───────────────────────────────────────────────────────────
       JS 实测可用宽度，容器左右各留 6px 安全余量：完整直显 → 排版收纳 → 次要工具收纳
       → 极窄兜底。被收纳按钮仍保留在 DOM，由「排版/更多」菜单代理点击，不丢功能。
       ═══════════════════════════════════════════════════════════ */

    .toolbar-adaptive-trigger,
    .toolbar-format-trigger-divider,
    .toolbar-overflow-divider { display: none; }
    .toolbar-format-trigger { width: auto; min-width: 34px; padding: 0 6px; font-size: 12px; }

    /* 题目回顾不展示做题页专属的「校验答案」，避免无效按钮占宽。 */
    #practiceToolbar[data-toolbar-tab="wrong"] .practice-only-tool,
    #practiceToolbar[data-toolbar-tab="wrong"] .practice-only-tool + .tool-divider { display: none; }

    /* ①~③ 排版逐组收纳：优先保留字号，其次行距，最后段距。 */
    .toolbar-inner.adaptive-1 .para-spacing-tool,
    .toolbar-inner.adaptive-1 .para-spacing-tool + .tool-divider,
    .toolbar-inner.adaptive-2 .line-height-tool,
    .toolbar-inner.adaptive-2 .line-height-tool + .tool-divider,
    .toolbar-inner.adaptive-3 .font-size-tool,
    .toolbar-inner.adaptive-3 .font-size-tool + .tool-divider { display: none; }
    .toolbar-inner.adaptive-1 .toolbar-format-trigger { display: flex; }
    .toolbar-inner.adaptive-1 .toolbar-format-trigger-divider { display: block; }

    /* ④ 再收纳批注、计算器、草稿纸和答案原文，核心操作继续直显。 */
    .toolbar-inner.adaptive-4 .toggle-sticky-btn,
    .toolbar-inner.adaptive-4 .toggle-sticky-btn + .tool-divider,
    .toolbar-inner.adaptive-4 .calc-trigger,
    .toolbar-inner.adaptive-4 .calc-popup + .tool-divider,
    .toolbar-inner.adaptive-4 .scratch-trigger,
    .toolbar-inner.adaptive-4 .scratch-trigger + .tool-divider,
    .toolbar-inner.adaptive-4 .answer-pdf-trigger,
    .toolbar-inner.adaptive-4 .answer-pdf-trigger + .tool-divider { display: none; }
    .toolbar-inner.adaptive-4 .toolbar-overflow-trigger { display: flex; }
    .toolbar-inner.adaptive-4 .toolbar-overflow-divider { display: block; }

    /* ⑤ 极窄窗口把排版与分析一起放进「更多」，保留高亮、校验/筛选、AI 等核心入口。 */
    .toolbar-inner.adaptive-5 .toolbar-format-trigger,
    .toolbar-inner.adaptive-5 .toolbar-format-trigger-divider,
    .toolbar-inner.adaptive-5 #toggleAllAnalysisBtn,
    .toolbar-inner.adaptive-5 #toggleAllAnalysisBtn + .tool-divider { display: none; }

    .toolbar-adaptive-menu {
      position: fixed; z-index: 160; min-width: 144px; max-width: min(280px, calc(100vw - 24px));
      display: grid; grid-template-columns: 1fr; gap: 2px; padding: 6px;
      border: 1px solid var(--border); border-radius: 12px; background: var(--white);
      box-shadow: 0 12px 40px rgba(0,0,0,0.14);
    }
    .toolbar-adaptive-menu.format-menu { grid-template-columns: repeat(2, minmax(112px, 1fr)); }
    .toolbar-adaptive-menu-item {
      min-height: 34px; padding: 7px 10px; border: none; border-radius: 8px;
      background: transparent; color: var(--on-surface); cursor: pointer;
      font-family: inherit; font-size: 13px; text-align: left; white-space: nowrap;
    }
    .toolbar-adaptive-menu-item:hover { background: var(--hover-bg); }
    .toolbar-adaptive-menu-item.active { background: var(--alpha-10); color: var(--primary-soft); }

    /* 最小工具集仍溢出时才启用，不按窗口宽度猜断点。 */
    .topbar.toolbar-emergency-icons .topbar-actions .topbar-icon { display: none; }
    .topbar.toolbar-emergency-icons .topbar-actions { margin-left: 4px; }
    .topbar.toolbar-emergency-nav .nav-tabs { gap: 4px; }
    .topbar.toolbar-emergency-nav .nav-tab { padding: 10px 8px; gap: 4px; font-size: 13px; }
