.sat-bank-entry { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 28px; margin-bottom: 30px; background: var(--mint); border: 1px solid var(--line); border-radius: 9px; }
.sat-bank-entry h2 { font-size: 20px; }
.sat-bank-entry p { color: var(--muted); font-size: 13px; margin-top: 8px; }
.topic-bank-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 24px; }
.topic-bank-heading h2 { font-size: 24px; margin-bottom: 10px; }
.topic-bank-heading p { font-size: 13px; }
.topic-bank-heading > .tag { flex-shrink: 0; }
.topic-bank-filters { grid-template-columns: minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.2fr) auto; align-items: end; padding: 14px; }
.topic-bank-filters .search-field { grid-column: 1/-1; }
.topic-bank-filters > label { min-width: 0; }
.topic-bank-filters > label > span:not(.sr-only) { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; }
.topic-bank-filters > .search-field > span:last-child { position: absolute; margin: 0; top: 3px; font-size: 23px; }
.topic-bank-filters select { min-width: 0; }
.topic-bank-filters .button { height: 43px; }
.topic-question-bank .question-preview { padding: 22px; }
.topic-question-bank .question-preview h2 { font-size: 17px; }
.topic-question-bank .results-meta { align-items: center; }
.topic-question-bank .results-meta a { font-size: 11px; }
.topic-question-bank .empty-state { grid-column: 1/-1; }
.topic-question-bank .pagination { gap: 16px; flex-wrap: wrap; }
@media(max-width:1100px) {
  .topic-bank-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .topic-bank-filters > label:nth-child(2), .topic-bank-filters .button { grid-column: 1/-1; }
  .topic-question-bank .question-grid { grid-template-columns: 1fr; }
}
@media(max-width:600px) {
  .sat-bank-entry { align-items: flex-start; flex-direction: column; gap: 18px; padding: 22px; }
  .topic-bank-heading h2 { font-size: 21px; }
  .topic-question-bank .question-preview { padding: 18px; }
  .topic-question-bank .pagination { gap: 10px; font-size: 12px; }
}

/* Cards lead with the question stem now that the module title is gone. */
.question-preview .question-excerpt { color: var(--ink); font-size: 14.5px; line-height: 1.8; }

/* Searchable grouped paper-source picker */
.zx-src-native { display: none; }
.zx-src-holder { position: relative; }
.zx-src-picker { position: relative; }
.zx-src-toggle { height: 43px; width: 100%; display: flex; align-items: center; justify-content: space-between;
  gap: 8px; border: 1px solid #ced6df; border-radius: 5px; background: #fff; padding: 8px 12px;
  font-size: 12px; color: var(--ink); cursor: pointer; text-align: left; }
.zx-src-toggle > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zx-src-toggle::after { content: "▾"; color: #8a9381; flex: none; }
.zx-src-panel { position: absolute; top: calc(100% + 6px); left: 0; z-index: 60;
  width: max(100%, 330px); max-width: min(440px, calc(100vw - 40px));
  background: #fff; border: 1px solid var(--line); border-radius: 9px;
  box-shadow: 0 18px 48px rgba(21,44,69,.16); padding: 10px; }
.zx-src-search { width: 100%; height: 38px; border: 1px solid #ced6df; border-radius: 5px;
  padding: 8px 12px; font-size: 13px; margin-bottom: 8px; }
.zx-src-list { max-height: 320px; overflow: auto; overscroll-behavior: contain; }
.zx-src-group { position: sticky; top: 0; background: #fff; font-size: 10px; font-weight: 600;
  letter-spacing: .12em; color: #8a9381; text-transform: uppercase; padding: 10px 8px 4px; }
.zx-src-option { display: block; width: 100%; text-align: left; border: 0; background: none;
  border-radius: 5px; padding: 8px 10px; font-size: 13px; color: var(--ink); cursor: pointer; }
.zx-src-option:hover, .zx-src-option.zx-active { background: #e9edf1; }
.zx-src-option[aria-selected="true"] { background: #24374c; color: #fff; }
.zx-src-empty { padding: 14px 10px; font-size: 12px; color: var(--muted); }

/* Chinese conclusion line prepended to English reference explanations */
.prose .zh-conclusion { font-weight: 600; color: var(--ink); background: #e9eff5;
  border-left: 3px solid #677d95; border-radius: 4px; padding: 10px 14px; margin: 0 0 14px; }
