/* 研究线索 · 编辑式工作台；颜色只表达进度，不表达多空方向。 */
.rl-page {
  --rl-ink: #202b30;
  --rl-muted: #66747a;
  --rl-line: #dce4e2;
  --rl-accent: #b66346;
  max-width: 1640px;
  margin: 0 auto;
  color: var(--rl-ink);
}

.rl-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  min-height: 96px;
  padding: 16px 24px;
  background: #f5f3ed;
  border: 1px solid #e6e2d7;
  border-radius: 12px;
  position: relative;
  overflow: hidden;
}
.rl-hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 24px;
  width: 55px;
  height: 3px;
  background: var(--rl-accent);
}
.rl-kicker {
  display: inline-block;
  color: #96604f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
}
.rl-hero h1 {
  margin: 3px 0 2px;
  font-family: 'Songti SC', 'STSong', 'Noto Serif CJK SC', serif;
  font-size: clamp(24px, 2.5vw, 31px);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.04em;
}
.rl-title-mark { color: var(--rl-accent); }
.rl-hero p {
  margin: 0;
  max-width: 660px;
  color: #58666b;
  font-size: 12px;
  line-height: 1.5;
}
.rl-hero-stat {
  min-width: 110px;
  border-top: 1px solid #c7d2cf;
  padding-top: 10px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  color: #617078;
  font-size: 12px;
  white-space: nowrap;
}
.rl-hero-stat strong {
  color: #20323a;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 26px;
  font-weight: 500;
  line-height: 1.2;
}
.rl-load-state {
  min-height: 30px;
  padding: 11px 2px 3px;
  color: #7b8589;
  font-size: 12px;
}
.rl-load-state.is-error { color: #9c5b36; font-weight: 600; }

.rl-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 0;
}
.rl-tabs { display: flex; flex-wrap: wrap; gap: 7px; }
.rl-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--rl-line);
  background: #fff;
  color: #5b686e;
  padding: 8px 12px;
  border-radius: 8px;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  line-height: 1.2;
}
.rl-tabs button span { font-size: 11px; opacity: .68; }
.rl-tabs button.is-active {
  background: #273a40;
  border-color: #273a40;
  color: #fff;
}
.rl-search { display: block; width: min(330px, 100%); }
.rl-search input {
  width: 100%;
  border: 1px solid var(--rl-line);
  background: #fff;
  color: var(--rl-ink);
  border-radius: 8px;
  padding: 10px 14px;
  outline: none;
  font: inherit;
  font-size: 13px;
}
.rl-search input:focus { border-color: #6e8989; box-shadow: 0 0 0 3px #dfeae7; }
.rl-search input::placeholder { color: #9da8aa; }
.rl-page .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.rl-board {
  display: grid;
  grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr);
  gap: 16px;
  align-items: start;
}
.rl-list-pane,
.rl-detail-pane {
  min-width: 0;
  background: #fff;
  border: 1px solid var(--rl-line);
  border-radius: 13px;
  box-shadow: 0 6px 22px rgba(39, 52, 57, .035);
}
.rl-list-pane { overflow: hidden; }
.rl-pane-head {
  display: flex;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid var(--rl-line);
  background: #fbfcfb;
  color: #69787c;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
}
.rl-list {
  max-height: min(76vh, 850px);
  min-height: 340px;
  overflow-y: auto;
  scrollbar-color: #ccd5d3 transparent;
}
.rl-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 18px;
  align-items: start;
  gap: 9px;
  width: 100%;
  padding: 17px 16px 18px;
  border: 0;
  border-bottom: 1px solid #edf0ee;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
  font: inherit;
}
.rl-item:hover { background: #f9faf8; }
.rl-item.is-selected { background: #f2f7f4; box-shadow: inset 3px 0 #547e70; }
.rl-item:focus-visible { outline: 2px solid #547e70; outline-offset: -3px; }
.rl-item-number {
  padding-top: 3px;
  color: #a7b3b4;
  font: 12px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
}
.rl-item-body { display: flex; flex-direction: column; min-width: 0; }
.rl-item-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 5px; }
.rl-item-source { color: #68777b; font-size: 11px; font-weight: 700; }
.rl-item-state { font-size: 10px; font-weight: 700; }
.rl-state-open { color: #8c6a4c; }
.rl-state-caution { color: #a65d41; }
.rl-state-settled { color: #437866; }
.rl-item-title {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  color: #26343a;
  font-size: 14px;
  line-height: 1.55;
  font-weight: 650;
}
.rl-item-context {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-top: 5px;
  color: #78868a;
  font-size: 12px;
}
.rl-item-foot { margin-top: 8px; color: #a1aaac; font-size: 11px; }
.rl-item-arrow { color: #a9b7b5; font-size: 15px; }
.rl-empty-list { padding: 24px; color: #79868a; font-size: 13px; }

.rl-detail-pane {
  position: sticky;
  top: calc(var(--topbar-h) + 18px);
  min-height: 460px;
  max-height: calc(100vh - var(--topbar-h) - 36px);
  overflow-y: auto;
  padding: clamp(19px, 2vw, 28px);
  scroll-margin-top: calc(var(--topbar-h) + 12px);
}
.rl-detail-eyebrow {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  color: #8a989a;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
}
.rl-detail-title {
  margin: 9px 0 10px;
  color: #1e2e35;
  font-family: 'Songti SC', 'STSong', 'Noto Serif CJK SC', serif;
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.42;
  letter-spacing: -.01em;
}
.rl-detail-title.is-clamped { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rl-title-expand { display: block; margin: -3px 0 9px; }
.rl-badge {
  display: inline-flex;
  padding: 4px 9px;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 750;
}
.rl-badge-open { color: #876a48; background: #f7f2e9; }
.rl-badge-caution { color: #a65d41; background: #fbf0ea; }
.rl-badge-settled { color: #39735e; background: #edf5ef; }
.rl-summary { margin-top: 17px; padding: 15px 17px; background: #f4f7f5; border-left: 3px solid #89a99a; border-radius: 4px; }
.rl-summary h3, .rl-evidence h3 { margin: 0 0 9px; color: #67797b; font-size: 12px; font-weight: 750; }
.rl-summary p { margin: 0; color: #2c3e42; font-size: 14px; line-height: 1.85; }
.rl-summary:not(.is-expanded) p { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.rl-expand { margin-top: 8px; padding: 0; border: 0; background: none; color: #2d6078; cursor: pointer; font: inherit; font-size: 12px; font-weight: 700; }
.rl-evidence-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 25px; }
.rl-evidence { margin-top: 23px; padding-top: 15px; border-top: 1px solid #e7ece9; }
.rl-evidence-grid .rl-evidence { margin-top: 0; }
.rl-evidence ul { margin: 0; padding-left: 18px; color: #334447; font-size: 13px; line-height: 1.8; }
.rl-evidence li + li { margin-top: 7px; }
.rl-evidence li span { display: block; color: #526267; font-size: 12px; }
.rl-source-link { color: #2d6078; text-decoration: underline; text-underline-offset: 2px; }
.rl-source-link:hover { color: #143c52; }
.rl-value { margin-top: 12px; padding: 14px 16px; border: 1px solid #e7e2d4; background: #faf9f5; border-radius: 7px; }
.rl-value h3, .rl-actions h3 { margin: 0 0 7px; font-size: 13px; color: #34474a; }
.rl-value p { margin: 0; color: #37474b; font-size: 13px; line-height: 1.7; }
.rl-value small { display: block; margin-top: 7px; color: #7b8586; line-height: 1.5; }
.rl-actions { margin-top: 18px; padding: 14px; border: 1px solid #cddbd5; background: #f8faf8; border-radius: 9px; }
.rl-actions > p { margin: 0 0 12px; font-size: 12px; color: #6d7b7c; line-height: 1.6; }
.rl-action-choices { display: grid; grid-template-columns: repeat(auto-fit,minmax(175px,1fr)); gap: 10px; }
.rl-action-option { padding: 12px; background: #fff; border: 1px solid #e1e8e4; border-radius: 7px; }
.rl-action-button { width: 100%; padding: 9px 10px; border: 1px solid #2d4f53; border-radius: 6px; background: #2d4f53; color: #fff; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.rl-action-button:hover { background: #1c373b; }
.rl-action-button:disabled { opacity: .55; cursor: wait; }
.rl-action-option small { display: block; margin-top: 7px; color: #748286; font-size: 11px; line-height: 1.5; }
.rl-actions .rl-action-state { margin-top: 12px; color: #415b60; font-size: 12px; }
.rl-unlock { color: #2d6078; font-size: 12px; }
.rl-empty-copy { margin: 0; color: #9aa6a8; font-size: 12px; line-height: 1.7; }
.rl-detail-meta { display: flex; flex-wrap: wrap; gap: 8px 19px; margin-top: 30px; padding-top: 14px; border-top: 1px solid #e7ece9; color: #849295; font-size: 11px; }
.rl-empty-detail { color: #8b9a9b; padding-top: 16px; font-size: 13px; }
.rl-page-note { margin: 16px 2px 0; color: #95a0a2; font-size: 11px; }

@media (max-width: 900px) {
  .rl-board { grid-template-columns: minmax(260px, .9fr) minmax(0, 1.1fr); }
  .rl-detail-pane { padding: 24px; }
  .rl-evidence-grid { grid-template-columns: 1fr; gap: 0; }
  .rl-evidence-grid .rl-evidence + .rl-evidence { margin-top: 17px; }
}
@media (max-width: 760px) {
  .rl-hero { min-height: 0; padding: 16px 18px; align-items: start; }
  .rl-hero::before { left: 24px; }
  .rl-hero-stat { min-width: 75px; }
  .rl-hero-stat strong { font-size: 30px; }
  .rl-controls { flex-direction: column; align-items: stretch; }
  .rl-search { width: 100%; }
  .rl-board { grid-template-columns: minmax(0, 1fr); }
  .rl-list { max-height: 410px; min-height: 150px; }
  .rl-detail-pane { position: static; max-height: none; min-height: 320px; }
}
@media (max-width: 460px) {
  .rl-hero { padding: 16px 15px; gap: 8px; }
  .rl-hero::before { left: 20px; }
  .rl-hero h1 { font-size: 24px; }
  .rl-hero p { font-size: 12px; }
  .rl-hero-stat { min-width: 55px; border: 0; align-items: end; }
  .rl-hero-stat strong { font-size: 27px; }
  .rl-tabs button { padding: 8px 9px; font-size: 12px; }
  .rl-detail-pane { padding: 22px 18px; }
  .rl-item { padding: 14px 12px; }
}
