/* The research library (owner 2026-10-22): the theme's white documentation pages (snippets/documentation-styles), laid out as a reference:
   contents on the left, the infobox floated right in the article, glossary terms underlined with dots. */
.rl { background: #ffffff; color: #1a1a1a; }
.rl__container { max-width: 1180px; margin: 0 auto; padding: 2.5rem 2rem 4rem; }
.rl__container--wide { max-width: 1180px; }
.rl a { color: #7a1fc7; text-decoration: none; }
.rl a:hover, .rl a:focus-visible { text-decoration: underline; }

.rl__crumbs ol { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem; margin: 0 0 1.5rem; padding: 0; font-size: 0.875rem; color: #666; }
.rl__crumbs li { display: inline-flex; align-items: center; gap: 0.25rem; }
.rl__crumbs svg { color: #aaa; }

.rl__header { padding-bottom: 1.5rem; margin-bottom: 2rem; border-bottom: 2px solid #e0e0e0; }
.rl__kicker { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0 0 0.75rem; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: #A939FF; }
.rl__header h1 { font-size: 2.5rem; font-weight: 700; line-height: 1.15; margin: 0 0 0.75rem; color: #1a1a1a; }
.rl__lead { font-size: 1.15rem; line-height: 1.7; color: #444; margin: 0; max-width: 780px; }
.rl__meta { margin: 0.9rem 0 0; font-size: 0.875rem; color: #777; }

.rl__layout { display: block; }
.rl__layout--toc { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 3rem; align-items: start; }
.rl__toc { position: sticky; top: 1.5rem; font-size: 0.9rem; border-left: 2px solid #eee; padding-left: 1rem; }
.rl__toc-title { margin: 0 0 0.5rem; font-weight: 600; color: #1a1a1a; }
.rl__toc ol { margin: 0; padding-left: 1.1rem; color: #888; }
.rl__toc li { margin: 0.35rem 0; line-height: 1.4; }
.rl__toc a { color: #444; }

.rl__article { min-width: 0; max-width: 860px; }
.rl__container--wide .rl__article { max-width: none; }
.rl__infobox { float: right; width: 300px; margin: 0 0 1.5rem 2rem; border: 1px solid #e3d4f5; border-radius: 6px; background: #faf7fe; font-size: 0.875rem; overflow: hidden; }
.rl__infobox-title { margin: 0; padding: 0.6rem 1rem; background: #A939FF; color: #fff; font-weight: 600; }
.rl__infobox dl { margin: 0; padding: 0.5rem 1rem 0.75rem; }
.rl__infobox dt { font-weight: 600; color: #555; margin-top: 0.6rem; }
.rl__infobox dd { margin: 0.1rem 0 0; color: #1a1a1a; line-height: 1.5; overflow-wrap: anywhere; }

.rl__body { font-size: 1rem; line-height: 1.8; color: #333; }
.rl__body > p:first-child { font-size: 1.05rem; }
.rl__body h2, .rl__see-also h2, .rl__az-group h2, .rl__hub-section h2 { clear: none; font-size: 1.6rem; font-weight: 600; color: #1a1a1a; margin: 2.5rem 0 1rem; padding-bottom: 0.4rem; border-bottom: 1px solid #A939FF; scroll-margin-top: 1rem; }
.rl__body h3 { font-size: 1.15rem; font-weight: 600; margin: 1.75rem 0 0.5rem; }
.rl__body p { margin: 0 0 1rem; }
.rl__body ul, .rl__body ol { margin: 0 0 1rem; padding-left: 1.5rem; }
.rl__body li { margin-bottom: 0.4rem; }
.rl__body strong { color: #1a1a1a; }
.rl__body a.term-link, .product-description-content a.term-link { text-decoration: underline dotted; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.rl__body table.rd-table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; font-size: 0.9rem; line-height: 1.5; }
.rl__body .rd-table caption { caption-side: top; text-align: left; font-weight: 600; color: #555; padding-bottom: 0.5rem; }
.rl__body .rd-table th, .rl__body .rd-table td { border: 1px solid #e0e0e0; padding: 0.55rem 0.7rem; text-align: left; vertical-align: top; }
.rl__body .rd-table th { background: #f6f2fb; font-weight: 600; }
.rl__body .rd-table tbody tr:nth-child(even) td { background: #fbfbfb; }
.rl__body dl.rd-faq dt { font-weight: 600; color: #1a1a1a; margin-top: 1.25rem; }
.rl__body dl.rd-faq dd { margin: 0.3rem 0 0; }
.rl__body h2[id^="sources"] + ol { font-size: 0.875rem; line-height: 1.6; color: #555; }

.rl__see-also { clear: both; }
.rl__see-also ul { columns: 2; column-gap: 2rem; padding-left: 1.25rem; margin: 0; line-height: 1.9; }
.rl__see-also span { color: #888; font-size: 0.875rem; }
.rl__notice { clear: both; display: flex; gap: 0.5rem; align-items: flex-start; margin: 3rem 0 0; padding: 1rem 1.25rem; background: #f7f7f7; border-radius: 6px; font-size: 0.875rem; line-height: 1.6; color: #555; }
.rl__notice svg { flex: none; margin-top: 0.2rem; color: #A939FF; }

/* glossary index */
.rl__az { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 1rem; }
.rl__az a { display: inline-flex; align-items: center; justify-content: center; min-width: 2.25rem; height: 2.25rem; border: 1px solid #e0e0e0; border-radius: 4px; font-weight: 600; }
.rl__az-group h2 { margin-top: 2rem; }
.rl__terms { margin: 0; display: grid; grid-template-columns: minmax(180px, 260px) minmax(0, 1fr); gap: 0.6rem 2rem; }
.rl__terms dt { font-weight: 600; }
.rl__terms dd { margin: 0; color: #444; line-height: 1.6; }

/* front page */
.rl__hub-section h2 { display: flex; align-items: center; gap: 0.6rem; margin-top: 1rem; }
.rl__hub-section h2 svg { color: #A939FF; }
.rl__hub-section + .rl__hub-section { margin-top: 3rem; }
.rl__hub-intro { color: #444; line-height: 1.7; margin: 0 0 1.25rem; max-width: 780px; }
.rl__cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.rl a.rl__card { display: flex; flex-direction: column; gap: 0.5rem; height: 100%; padding: 1.25rem; border: 1px solid #e0e0e0; border-radius: 8px; color: #1a1a1a; transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.rl a.rl__card:hover, .rl a.rl__card:focus-visible { text-decoration: none; border-color: #A939FF; box-shadow: 0 2px 12px rgba(169, 57, 255, 0.12); }
.rl__card-title { font-weight: 600; font-size: 1.1rem; }
.rl__card-text { color: #555; line-height: 1.6; font-size: 0.95rem; flex: 1; }
.rl__card-more { display: inline-flex; align-items: center; gap: 0.3rem; color: #7a1fc7; font-weight: 600; font-size: 0.9rem; }
.rl__hub-az { columns: 4 200px; column-gap: 2rem; }
.rl__hub-az > div { break-inside: avoid; margin-bottom: 1rem; }
.rl__hub-letter { margin: 0 0 0.25rem; font-weight: 700; color: #A939FF; }
.rl__hub-az ul { list-style: none; margin: 0; padding: 0; line-height: 1.8; }

@media (max-width: 1000px) {
  .rl__layout--toc { display: block; }
  .rl__toc { position: static; margin-bottom: 2rem; border-left: 0; padding: 1rem 1.25rem; background: #f7f7f7; border-radius: 6px; }
}
@media (max-width: 760px) {
  .rl__container { padding: 1.5rem 16px 3rem; }
  .rl__header h1 { font-size: 1.9rem; }
  .rl__lead { font-size: 1.05rem; }
  .rl__infobox { float: none; width: auto; margin: 0 0 1.5rem; }
  .rl__body table.rd-table { display: block; overflow-x: auto; }
  .rl__see-also ul { columns: 1; }
  .rl__terms { grid-template-columns: 1fr; gap: 0.2rem; }
  .rl__terms dd { margin-bottom: 0.8rem; }
}

/* analysis label, series position, previous/next (the compliance series) */
.rl__note { display: flex; gap: 0.5rem; align-items: flex-start; margin: 1rem 0 0; padding: 0.75rem 1rem; max-width: 780px; background: #faf7fe; border-left: 3px solid #A939FF; font-size: 0.9rem; line-height: 1.6; color: #444; }
.rl__note svg { flex: none; margin-top: 0.2rem; color: #A939FF; }
.rl__series { margin: 0.9rem 0 0; font-size: 0.875rem; font-weight: 600; color: #555; }
.rl__pager { clear: both; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 3rem 0 0; }
.rl a.rl__pager-prev, .rl a.rl__pager-next { display: flex; flex-direction: column; gap: 0.25rem; padding: 1rem 1.25rem; border: 1px solid #e0e0e0; border-radius: 8px; color: #1a1a1a; font-weight: 600; line-height: 1.4; }
.rl a.rl__pager-next { text-align: right; }
.rl a.rl__pager-prev:hover, .rl a.rl__pager-next:hover { text-decoration: none; border-color: #A939FF; }
.rl__pager span { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: #A939FF; }

/* quotations from the public record (statutes, regulations, FDA letters) */
.rl__body blockquote.rq { margin: 1.25rem 0 1.5rem; padding: 0.9rem 1.25rem; background: #f7f7f7; border-left: 3px solid #bbb; color: #333; }
.rl__body blockquote.rq p { margin: 0 0 0.5rem; font-style: italic; }
.rl__body blockquote.rq footer { font-size: 0.85rem; color: #666; font-style: normal; }
.rl__body q.rq { font-style: italic; }
.rl__body .rl__pull { margin: 2rem 0; padding: 1.25rem 1.5rem; border-top: 2px solid #A939FF; border-bottom: 2px solid #A939FF; font-size: 1.25rem; line-height: 1.55; font-weight: 600; color: #1a1a1a; }
.rl__body .rl__callout { margin: 1.5rem 0; padding: 1rem 1.25rem; background: #faf7fe; border: 1px solid #e3d4f5; border-radius: 6px; }
.rl__body .rl__callout p:last-child { margin-bottom: 0; }
@media (max-width: 760px) { .rl__pager { grid-template-columns: 1fr; } .rl a.rl__pager-next { text-align: left; } }
.rl__cards--series { counter-reset: none; }
.rl__card-step { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #A939FF; }
.rl__body h4 { font-size: 1.05rem; font-weight: 600; margin: 1.5rem 0 0.5rem; color: #1a1a1a; }
.rl__callout--interp { border-left: 3px solid #A939FF; }

/* the FDA enforcement tracker */
.rt__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; margin: 0 0 1.5rem; }
.rt__stat { display: flex; flex-direction: column; gap: 0.35rem; padding: 1rem 1.1rem; border: 1px solid #e3d4f5; border-radius: 8px; background: #faf7fe; }
.rt__stat-value { font-size: 1.75rem; font-weight: 700; color: #7a1fc7; line-height: 1.1; }
.rt__stat-label { font-size: 0.875rem; line-height: 1.4; color: #555; }
.rt__table-wrap { overflow-x: auto; margin: 1rem 0 1.5rem; }
.rl__body table.rt__letters { min-width: 980px; margin: 0; font-size: 0.85rem; }
.rt__letters td:first-child { white-space: nowrap; }
.rt__ref { display: block; margin-top: 0.25rem; font-size: 0.78rem; color: #777; }
.rl__body .rt__letters q.rq { font-style: normal; }
.rl__body ul.rt__chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.3rem; }
.rl__body .rt__chip { margin: 0; padding: 0.1rem 0.5rem; border-radius: 999px; background: #f1ebf9; color: #5b1896; font-size: 0.75rem; line-height: 1.6; white-space: nowrap; }
.rl__body .rt__chip--solvent, .rl__body .rt__chip--kit, .rl__body .rt__chip--tools, .rl__body .rt__chip--dosing { background: #fdeee8; color: #8a3412; }
.rl__body .rt__chip--lab, .rl__body .rt__chip--linked, .rl__body .rt__chip--research { background: #e8f1fd; color: #1b4f8a; }
.rl__body tr:target td { background: #fff8d6 !important; }
.rl a.rl__feature { display: flex; flex-direction: column; gap: 0.4rem; margin: 0 0 1rem; padding: 1.25rem 1.5rem; border: 2px solid #A939FF; border-radius: 8px; color: #1a1a1a; background: #faf7fe; }
.rl a.rl__feature:hover { text-decoration: none; box-shadow: 0 2px 12px rgba(169, 57, 255, 0.15); }
/* wide pages (the tracker): contents above the body, not beside it, so tables get the full width */
.rl__container--wide .rl__layout--toc { display: block; }
.rl__container--wide .rl__toc { position: static; margin-bottom: 2rem; border-left: 0; padding: 1rem 1.25rem; background: #f7f7f7; border-radius: 6px; }
.rl__container--wide .rl__toc ol { columns: 3 200px; column-gap: 2rem; }
