/* 📚 释难刷题模块 */
.shinan-entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 4px 0 18px;
  padding: 14px 18px;
  border: 1px solid rgba(var(--color-apricot-rgb), 0.45);
  border-radius: 20px;
  background: var(--color-section-extra);
  box-shadow: var(--shadow-card-soft);
  color: var(--color-primary);
  cursor: pointer;
}
.shinan-entry-title { font-family: var(--title-font); font-size: 16px; font-weight: 600; letter-spacing: 0.1em; }
.shinan-entry-meta { color: var(--color-muted); font-size: 13px; }

.shinan-view {
  width: 100%;
  max-width: 430px;
  margin: 0 auto;
  padding: 16px 4px 40px;
}
.shinan-header { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.shinan-header h2 { margin: 0; font-family: var(--title-font); font-size: 20px; font-weight: 600; }
.shinan-progress { margin-left: auto; color: var(--color-muted); font-size: 13px; }

.shinan-tabs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
  padding: 4px;
  margin-bottom: 12px;
  border: 1px solid var(--color-line);
  border-radius: 999px;
  background: var(--color-card);
}
.shinan-tab {
  padding: 8px 0;
  border: none;
  border-radius: 999px;
  background: none;
  color: var(--color-muted);
  font-size: 13px;
  cursor: pointer;
}
.shinan-tab.on { background: var(--color-section-extra); color: var(--color-primary); font-weight: 600; }

.shinan-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px; }
.shinan-chip {
  padding: 5px 12px;
  border: 1px solid var(--color-line);
  border-radius: 999px;
  background: none;
  color: var(--color-muted);
  font-size: 12px;
  cursor: pointer;
}
.shinan-chip.on { border-color: rgba(var(--color-accent-rgb), 0.7); background: var(--color-sage-soft); color: var(--color-primary); }
.shinan-note { margin: 0 0 10px 4px; color: var(--color-weak); font-size: 12px; }
.shinan-flash {
  margin: 0 0 10px;
  padding: 8px 12px;
  border-radius: 12px;
  background: var(--color-blush-soft);
  font-size: 13px;
}

.shinan-card {
  padding: 18px 18px 14px;
  border: 1px solid rgba(108, 88, 68, 0.12);
  border-radius: 24px;
  background-color: var(--color-card-surface);
  background-image: var(--texture-paper-grain);
  background-size: 132px 112px, 132px 112px, 132px 112px;
  box-shadow: var(--shadow-card-soft);
}
.shinan-card-meta { display: flex; align-items: center; gap: 10px; color: var(--color-muted); font-size: 13px; }
.shinan-qno { font-weight: 600; color: var(--color-due-text); }
.shinan-page { margin-left: auto; color: var(--color-weak); font-size: 12px; }
.shinan-stars { display: inline-flex; }
.shinan-star {
  padding: 2px 3px;
  border: none;
  background: none;
  color: var(--color-weak);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.shinan-star.on { color: #C9A25B; }
.shinan-title {
  margin: 10px 0 12px;
  font-family: var(--title-font);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.55;
}

.shinan-timer {
  margin-bottom: 10px;
  padding: 5px 12px;
  border: 1px dashed var(--color-line-strong);
  border-radius: 999px;
  background: none;
  color: var(--color-muted);
  font-size: 12px;
  cursor: pointer;
}
.shinan-timer.is-running { border-style: solid; border-color: rgba(var(--color-blue-rgb), 0.7); background: var(--color-blue-soft); color: var(--color-primary); }
.shinan-timer.is-answer { border-color: rgba(var(--color-accent-rgb), 0.8); background: var(--color-sage-soft); }
.shinan-timer.is-done { border-color: rgba(var(--color-warning-rgb), 0.8); background: var(--color-blush-soft); }

.shinan-body { font-size: 15px; line-height: 1.75; }
.shinan-body p { margin: 0 0 4px; }
.shinan-hint { color: var(--color-due-text); font-size: 13px; }
.shinan-tag {
  display: inline-block;
  margin-right: 6px;
  padding: 0 7px;
  border-radius: 6px;
  background: rgba(var(--color-apricot-rgb), 0.35);
  font-size: 12px;
  vertical-align: 1px;
}
.shinan-opening {
  margin-bottom: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: var(--color-section-extra);
  font-weight: 600;
}
.shinan-points { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.shinan-point {
  padding: 6px 6px 6px 10px;
  border: 1px solid var(--color-line);
  border-radius: 14px;
}
.shinan-point.is-marked { border-color: rgba(var(--color-warning-rgb), 0.9); background: var(--color-blush-soft); }
.shinan-point-head { display: flex; align-items: flex-start; gap: 2px; }
.shinan-point-main {
  flex: 1;
  padding: 4px 0;
  border: none;
  background: none;
  color: inherit;
  font: inherit;
  line-height: 1.6;
  text-align: left;
  cursor: pointer;
}
.shinan-point-text { font-weight: 600; }
.shinan-icons { flex: none; display: flex; align-items: center; }
.shinan-icon {
  width: 28px;
  height: 30px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: none;
  color: var(--color-weak);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}
.shinan-icon.on { background: var(--color-blush-soft); color: var(--color-due-text); }
.shinan-icon.is-q.on { background: var(--color-blue-soft); color: #4C6470; }
.shinan-icon.is-chev { font-size: 12px; }
.shinan-detail-foot { display: flex; gap: 10px; justify-content: flex-end; margin-top: 6px; }
.shinan-editlink {
  padding: 2px 8px;
  border: 1px solid var(--color-line);
  border-radius: 999px;
  background: none;
  color: var(--color-weak);
  font-size: 12px;
  cursor: pointer;
}
.shinan-point.is-open { background: rgba(255, 255, 255, 0.35); }
.shinan-flag {
  flex: none;
  padding: 2px 8px;
  border: 1px solid var(--color-line);
  border-radius: 999px;
  background: none;
  color: var(--color-weak);
  font-size: 12px;
  cursor: pointer;
}
.shinan-flag.on { border-color: rgba(var(--color-warning-rgb), 0.9); color: var(--color-due-text); background: var(--color-card); }
.shinan-detail { margin-top: 2px; padding-left: 2px; color: var(--color-muted); font-size: 14px; line-height: 1.7; }

.shinan-block { margin-top: 12px; }
.shinan-block h4 { margin: 0 0 4px; font-size: 13px; color: var(--color-muted); }
.shinan-block ul { margin: 0; padding-left: 18px; font-size: 14px; }
.shinan-block.is-judgment h4 { color: var(--color-due-text); }
.shinan-block.is-ext, .shinan-block.is-note { color: var(--color-muted); font-size: 14px; }

.shinan-card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.shinan-reveal {
  flex: 1;
  min-width: 140px;
  padding: 12px;
  border: 1px solid rgba(var(--color-accent-rgb), 0.72);
  border-radius: 14px;
  background: var(--color-accent);
  color: var(--color-primary);
  font-size: 15px;
  cursor: pointer;
}
.shinan-ghost {
  padding: 10px 14px;
  border: 1px solid var(--color-line-strong);
  border-radius: 14px;
  background: none;
  color: var(--color-primary);
  font-size: 14px;
  cursor: pointer;
}
.shinan-big {
  padding: 12px 22px;
  border: 1px solid rgba(var(--color-apricot-rgb), 0.7);
  border-radius: 14px;
  background: var(--color-section-extra);
  color: var(--color-primary);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}
.shinan-nav { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 14px; }
.shinan-nav .shinan-big { margin-left: auto; }
.shinan-pos { color: var(--color-muted); font-size: 13px; }
.shinan-empty { padding: 40px 10px; text-align: center; color: var(--color-muted); }
.shinan-empty p { margin: 0 0 14px; }

.shinan-jump { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; font-size: 14px; }
.shinan-jump input {
  width: 64px;
  padding: 6px 8px;
  border: 1px solid var(--color-line-strong);
  border-radius: 10px;
  background: var(--color-card);
  text-align: center;
}

.shinan-search { width: 100%; margin-bottom: 6px; }
.shinan-list { display: grid; gap: 6px; }
.shinan-row {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 2px 8px;
  padding: 10px 12px;
  border: 1px solid var(--color-line);
  border-radius: 14px;
  background: var(--color-card);
  color: var(--color-primary);
  text-align: left;
  cursor: pointer;
}
.shinan-row-no { grid-row: span 2; color: var(--color-due-text); font-weight: 600; }
.shinan-row-title { font-size: 14px; line-height: 1.5; }
.shinan-row-meta { display: flex; gap: 8px; color: var(--color-weak); font-size: 12px; }
.shinan-row-star { color: #C9A25B; font-weight: 400; }
.shinan-row-flag { color: var(--color-due-text); font-weight: 400; }
.shinan-listback { margin-bottom: 10px; }

.shinan-sync {
  margin: 0 0 10px;
  padding: 6px 12px;
  border-radius: 12px;
  background: var(--color-blue-soft);
  color: var(--color-muted);
  font-size: 12px;
  text-align: center;
}

.shinan-inline { display: inline; }
.shinan-flag.is-q.on { border-color: rgba(var(--color-blue-rgb), 0.9); color: var(--color-primary); background: var(--color-blue-soft); }
.shinan-point.is-unclear { border-color: rgba(var(--color-blue-rgb), 0.7); }
.shinan-point.is-marked.is-unclear { border-color: rgba(var(--color-warning-rgb), 0.9); }
.shinan-edit {
  flex: none;
  margin-left: 6px;
  padding: 0 6px;
  border: none;
  background: none;
  color: var(--color-weak);
  font-size: 14px;
  cursor: pointer;
}
.shinan-edited {
  margin-left: 6px;
  padding: 0 6px;
  border-radius: 6px;
  background: var(--color-sage-soft);
  color: var(--color-muted);
  font-size: 11px;
  vertical-align: 1px;
}
.shinan-editor { width: 100%; }
.shinan-textarea {
  width: 100%;
  min-height: 80px;
  padding: 8px 10px;
  border: 1px solid var(--color-line-strong);
  border-radius: 12px;
  background: var(--color-card);
  color: var(--color-primary);
  font: inherit;
  line-height: 1.7;
  resize: vertical;
}
.shinan-editor-actions { display: flex; gap: 8px; margin-top: 8px; }
.shinan-editor-actions .shinan-ghost { padding: 6px 12px; font-size: 13px; }
.shinan-row-q { color: #6B7F88; font-weight: 400; }
.shinan-row-edit { color: var(--color-weak); font-weight: 400; }

/* 🚗 车上：大字题目，瞄一眼就够 */
.shinan-car {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
  width: 100%;
  min-height: 56vh;
  padding: 28px 22px 18px;
  border: 1px solid rgba(108, 88, 68, 0.12);
  border-radius: 24px;
  background-color: var(--color-card-surface);
  background-image: var(--texture-paper-grain);
  background-size: 132px 112px, 132px 112px, 132px 112px;
  box-shadow: var(--shadow-card-soft);
  color: var(--color-primary);
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.shinan-car-no { color: var(--color-due-text); font-size: 18px; font-weight: 600; }
.shinan-car-title {
  font-family: var(--title-font);
  font-size: 32px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.02em;
}
.shinan-car-opening {
  padding: 12px 14px;
  border-radius: 14px;
  background: var(--color-section-extra);
  font-size: 20px;
  line-height: 1.6;
}
.shinan-car-hint { margin-top: auto; color: var(--color-weak); font-size: 13px; text-align: center; }
.shinan-car-nav { display: flex; gap: 10px; margin-top: 12px; }
.shinan-car-nav .shinan-ghost { flex: 1; padding: 14px; font-size: 16px; }
.shinan-car-nav .shinan-ghost.on { background: var(--color-section-extra); }
.shinan-view.is-car .archive-link { display: none; }
.shinan-car-now {
  padding: 12px 14px;
  border-left: 3px solid rgba(var(--color-accent-rgb), 0.9);
  border-radius: 12px;
  background: var(--color-sage-soft);
  font-size: 19px;
  line-height: 1.6;
}
.shinan-listen {
  width: 100%;
  margin-top: 12px;
  padding: 16px;
  border: 1px solid rgba(var(--color-accent-rgb), 0.72);
  border-radius: 16px;
  background: var(--color-accent);
  color: var(--color-primary);
  font-size: 17px;
  font-weight: 600;
  cursor: pointer;
}
.shinan-listen.is-playing { background: var(--color-sage-soft); }
.shinan-car-set { margin-top: 16px; }
.shinan-seq-listen { margin-bottom: 12px; }
.shinan-seq-listen .shinan-listen { margin-top: 0; }
.shinan-seq-listen .shinan-car-now { margin-top: 10px; }
.shinan-seq-listen .shinan-note { margin-top: 4px; text-align: right; }
.shinan-say { margin-top: 10px; font-size: 13px; color: var(--color-muted); }
.shinan-say summary { cursor: pointer; padding: 6px 0; }
.shinan-say textarea { width: 100%; margin-top: 6px; padding: 10px 12px; border: 1px solid rgba(108, 88, 68, 0.18); border-radius: 12px; background: var(--color-card-surface); color: var(--color-primary); font: inherit; font-size: 15px; line-height: 1.6; resize: vertical; }
.shinan-say-act { display: flex; gap: 10px; margin-top: 8px; }
.shinan-say-act .shinan-ghost { flex: 1; padding: 10px; }
.shinan-car-row { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; font-size: 13px; color: var(--color-muted); }
.shinan-car-row > span { flex: none; width: 30px; }
.shinan-car-row .shinan-chips { margin: 0; }

/* 整条删掉的要点：淡淡留一行，可恢复 */
.shinan-point.is-hidden { display: flex; align-items: center; gap: 8px; opacity: 0.55; font-size: 13px; }
.shinan-hidden-text { flex: 1; text-decoration: line-through; color: var(--color-weak); }
.shinan-editlink.is-del { color: var(--color-due-text); }
