/* assets/research.css: research.html and source-directory.html (AQ-665), on top of
   app.css. Every colour is an app.css token, so light and dark follow the wire's
   switch. Same shell, gutter and head as calendar.css; nothing here is fixed-width,
   so a 320px phone reflows instead of scrolling sideways. */
.rn-shell { max-width: 1160px; margin: 0 auto; padding: 24px 20px 70px; }
.rn-head h1 { font-family: var(--serif); font-weight: 600; font-size: 30px; letter-spacing: -.01em; line-height: 1.15; }
.rn-shell .sub { font-size: 13.5px; color: var(--text-dim); margin-top: 6px; max-width: 680px; line-height: 1.5; }
.rn-stamp { display: flex; flex-wrap: wrap; column-gap: 8px; row-gap: 3px; margin-top: 12px;
            font-family: var(--mono); font-size: 11px; letter-spacing: .06em; color: var(--faint); }
.rn-find { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 8px; }
.rn-find input, .rn-find select { min-height: 44px; padding: 0 12px; border: 1px solid var(--grid);
  border-radius: 4px; background: var(--field); color: var(--text); font: 14px var(--sans); }
.rn-find input[type="search"] { flex: 1 1 260px; min-width: 0; }
.rn-find select { flex: 0 1 220px; min-width: 0; }
.rn-find label { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 13px; color: var(--text-dim); }
.rn-find :focus-visible, .rn-shell a:focus-visible, .rn-src summary:focus-visible, .rn-shell .btn:focus-visible {
  outline: 2px solid var(--brand); outline-offset: 2px; }
.rn-count { font-family: var(--mono); font-size: 11px; color: var(--faint); margin: 6px 0 4px; }
.rn-note { border-top: 1px solid var(--grid); padding: 16px 0; overflow-wrap: anywhere; }
.rn-note h3 { font-family: var(--serif); font-weight: 600; font-size: 19px; line-height: 1.3; margin: 6px 0 6px; }
.rn-note h3 a { color: var(--text); text-decoration: none; }
.rn-note h3 a:hover { text-decoration: underline; }
.rn-sum { font-size: 14.5px; line-height: 1.55; max-width: 760px; }
.rn-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px;
           font-family: var(--mono); font-size: 11px; color: var(--faint); }
.rn-chip { border: 1px solid var(--grid); border-radius: 3px; padding: 1px 6px; color: var(--text-dim); }
.rn-hand { border-color: var(--up-l); color: var(--up-l); }
.rn-machine { border-color: var(--violet); color: var(--violet); }
.rn-facts { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 8px; font-size: 12.5px; color: var(--text-dim); }
.rn-k { font-family: var(--mono); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--faint); }
.rn-caveat, .rn-by, .rn-dim { font-size: 12.5px; color: var(--text-dim); }
.rn-caveat, .rn-by { margin-top: 6px; max-width: 760px; }
.rn-ents { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.rn-ent { display: inline-flex; align-items: center; min-height: 32px; padding: 0 10px; border: 1px solid var(--grid);
          border-radius: 16px; font-size: 12.5px; color: var(--brand-l); text-decoration: none; }
.rn-src { margin-top: 8px; font-size: 12.5px; }
.rn-src summary { cursor: pointer; min-height: 32px; display: inline-flex; align-items: center;
                  font-family: var(--mono); font-size: 11px; color: var(--brand-l); }
.rn-src ul { list-style: none; margin: 6px 0 0; padding: 0; }
.rn-src li { padding: 6px 0; border-top: 1px dashed var(--grid-soft); }
.rn-method { display: block; margin-top: 2px; }
.rn-ledger { margin-top: 40px; }
.rn-ledger h2 { font-family: var(--serif); font-weight: 600; font-size: 24px; }
.sd-list { list-style: none; margin: 0; padding: 0; }
.sd-row { border-top: 1px solid var(--grid); padding: 12px 0; overflow-wrap: anywhere; }
.sd-row h3 { font-size: 15px; font-weight: 600; margin-bottom: 4px; }
.sd-row a { color: var(--brand-l); font-size: 12.5px; }
.rn-shell .btn.loadmore { margin-top: 16px; min-height: 44px; }
@media (max-width: 600px) {
  .rn-shell { padding: 18px 16px 56px; }
  .rn-head h1 { font-size: 25px; }
  .rn-find select { flex: 1 1 100%; }
}
