/* Replication Lab — /research/replication/ (pages built by scripts/build-replication-pages.js) */
.rl { max-width: 980px; }
.rl h1 { margin-bottom: var(--space-sm); }
.rl h2 { margin-top: var(--space-xl); margin-bottom: var(--space-sm); }
.rl h3 { margin-top: var(--space-md); }
.rl .card { margin-top: var(--space-sm); }
.rl .card ul, .rl .card ol { padding-left: 1.2rem; }
.rl .card li { margin-bottom: 6px; line-height: 1.5; }
.rl-kicker { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-tertiary); margin-bottom: 4px; }
.rl-kicker a { color: var(--accent-blue); text-decoration: none; }
.rl-lede { font-size: 1.02rem; max-width: 760px; color: var(--text-secondary); }
.rl-small { font-size: 0.85rem; color: var(--text-secondary); }
.rl-verdict { margin: var(--space-md) 0; padding: 12px 16px; border-left: 4px solid var(--accent-red); background: var(--bg-card);
  border-radius: var(--radius-sm); box-shadow: var(--shadow-card); max-width: 820px; line-height: 1.55; }
.rl-toc { font-size: 0.85rem; margin: var(--space-md) 0; line-height: 1.9; }
.rl-toc a { color: var(--accent-blue); text-decoration: none; }

.rl-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--space-sm); margin: var(--space-md) 0; }
.rl-tile { background: var(--bg-card); border: 1px solid var(--border-light); border-radius: var(--radius-md); padding: 12px 14px; }
.rl-tile-key { border-color: var(--accent-red); }
.rl-tile-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-tertiary); }
.rl-tile-value { font-family: var(--font-headline); font-size: 2rem; font-weight: 700; line-height: 1.1; margin: 4px 0; }
.rl-tile-detail { font-size: 0.8rem; color: var(--text-secondary); line-height: 1.4; }

.rl-th-sub { font-weight: 400; color: var(--text-tertiary); font-size: 0.78rem; }
.rl-table td { vertical-align: top; }
.rl-case { min-width: 220px; }
.rl-inputs { font-size: 0.75rem; color: var(--text-tertiary); margin-top: 2px; line-height: 1.35; }
.rl-c { text-align: center; }
.rl-ok { color: #1a7f37; font-weight: 700; }
.rl-miss { color: var(--accent-red); font-weight: 700; }
.rl-row-miss { background: rgba(200, 30, 30, 0.035); }
.rl-up { color: #1a7f37; }
.rl-down { color: var(--accent-red); }
.rl-total td { border-top: 2px solid var(--border-medium); font-weight: 600; }
.rl-dev th[scope="row"] { white-space: nowrap; vertical-align: top; text-align: left; }
.rl-dev td { vertical-align: top; font-size: 0.88rem; }
.rl-cites { font-size: 0.85rem; margin-top: var(--space-sm); }
.rl-cites a { white-space: nowrap; }

.rl-term { margin: var(--space-sm) 0; border: 1px solid var(--border-light); border-radius: var(--radius-md); background: var(--bg-card); }
.rl-term > summary { cursor: pointer; padding: 10px 14px; font-size: 0.92rem; }
.rl-term[open] > summary { border-bottom: 1px solid var(--border-light); }
.rl-term > p, .rl-term > .db-table-wrap { margin: 10px 14px; }

.rl-studies { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-sm); margin: var(--space-md) 0; }
a.rl-study { display: block; color: inherit; text-decoration: none; border: 1px solid var(--border-light); }
a.rl-study:hover { border-color: var(--accent-blue); }
.rl-study h3 { margin: 0 0 2px; }
.rl-study-title { font-style: italic; color: var(--text-secondary); font-size: 0.9rem; }
.rl-study-score { font-size: 0.85rem; }
.rl-study-next { opacity: 0.7; }

@media (max-width: 640px) {
  .rl-dev th[scope="row"] { white-space: normal; }
  .rl-case { min-width: 160px; }
  .rl-tile-value { font-size: 1.6rem; }
}

/* line chart (Katz page) */
.rl-chart { margin: var(--space-sm) 0; }
.rl-chart svg { width: 100%; height: auto; display: block; }
.rl-grid { stroke: var(--border-light); stroke-width: 1; }
.rl-axis { font-size: 11px; fill: var(--text-tertiary); font-family: var(--font-body); }
.rl-chart polyline { stroke-width: 2.2; }
.rl-s1 { stroke: var(--accent-red); background: var(--accent-red); }
.rl-s2 { stroke: var(--accent-blue); background: var(--accent-blue); stroke-dasharray: 5 3; }
.rl-s3 { stroke: var(--text-tertiary); background: var(--text-tertiary); }
.rl-legend { font-size: 0.8rem; color: var(--text-secondary); display: flex; flex-wrap: wrap; gap: 14px; margin-top: 4px; }
.rl-key i { display: inline-block; width: 16px; height: 3px; vertical-align: middle; margin-right: 6px; }
.rl-feats { font-size: 0.85rem; margin-top: 4px; }
.rl-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--space-md); }
