/* Revue. Identity: Playfair for the masthead only, Source Serif 4 for reading, Inter for metadata and
   controls. Every color, font and size is a token here; templates use the tokens only. */
:root {
  /* Day edition */
  --paper: #F5F0E6;
  --rail: #EDE6D8;
  --field: #FBF8F1;
  --ink: #1B1A17;
  --body: #2E2B26;
  --muted: #5F584D;
  --hair: #DCD3C2;
  --rule: #CBBFA8;
  --accent: #1F4A86;            /* ink blue: links, active states, the Strong band (7.8:1 on paper) */
  --accent-soft: #E2E8F2;
  --ox: #7A2E2A;
  --ox-soft: #F3E3DE;
  --amber: #8A5A00;
  --good: #1F5132;              /* "Good" match band: forest green, apart from Strong's blue and Fair's grey */
  --good-soft: #DCE7DE;
  --amber-soft: #FBEFD5;
  --on-ink: #F5F0E6;
  --bar-bg: rgba(245, 240, 230, 0.88);
  --shadow: 0 12px 32px rgba(27, 26, 23, 0.12);

  --display: "Playfair Display", Georgia, "Times New Roman", serif;   /* masthead only */
  --text: "Source Serif 4", Georgia, "Times New Roman", serif;
  --ui: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;

  --page: 1120px;
  --column: 720px;
  --side: 300px;
  --gutter: 40px;
  --mast-size: 104px;
  --lead-size: 34px;
  --head-size: 22px;
  --read-size: 17px;
  --meta-size: 13px;
  --radius: 6px;
  --tap: 44px;
  --tap-small: 36px;
  --field-radius: 8px;
  color-scheme: light only;
}
@media (max-width: 760px) {
  :root { --gutter: 18px; --mast-size: 58px; --lead-size: 27px; --head-size: 20px; --read-size: 16.5px; }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 64px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 var(--read-size)/1.6 var(--text); }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--accent); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { max-width: var(--page); margin: 0 auto; padding: 0 var(--gutter); }
.onum { font-variant-numeric: oldstyle-nums proportional-nums; }
.meta { font: 400 var(--meta-size)/1.5 var(--ui); color: var(--muted); }
.link { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- slim top bar (stays on scroll) ---------- */
.topbar {
  position: sticky; top: 0; z-index: 30; background: var(--bar-bg);
  backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid var(--hair);
}
.topbar .wrap { display: flex; align-items: center; gap: 20px; min-height: 52px; }
.wordmark { font: 900 20px/1 var(--display); letter-spacing: 0.08em; color: var(--ink); }
.nav { display: flex; gap: 2px; margin-left: auto; font: 500 14px var(--ui); }
.nav a { min-height: var(--tap); display: inline-flex; align-items: center; padding: 0 12px; border-radius: 999px; color: var(--muted); }
.nav a[aria-current="page"] { color: var(--ink); background: var(--rail); }
@media (max-width: 560px) {
  .topbar .wrap { gap: 4px; }
  .topbar .wordmark { display: none; }   /* the masthead or page title sits just below */
  .nav { margin-left: -6px; flex: 1 1 auto; overflow-x: auto; scrollbar-width: none; }
  .nav a { padding: 0 9px; }
}
.account { position: relative; }
.account > summary { list-style: none; cursor: pointer; width: var(--tap); height: var(--tap); display: grid; place-items: center; }
.account > summary::-webkit-details-marker { display: none; }
.avatar {
  width: 32px; height: 32px; border-radius: 999px; display: grid; place-items: center;
  background: var(--ink); color: var(--paper); font: 600 14px/1 var(--ui);
}
.menu {
  position: absolute; right: 0; top: calc(100% + 6px); min-width: 200px; padding: 6px; z-index: 40;
  background: var(--field); border: 1px solid var(--hair); border-radius: 10px; box-shadow: var(--shadow);
  font: 500 14px var(--ui);
}
.menu .who { padding: 8px 10px; color: var(--muted); font-weight: 400; border-bottom: 1px solid var(--hair); margin-bottom: 4px; }
.menu a, .menu button {
  display: flex; width: 100%; min-height: 40px; align-items: center; padding: 0 10px; border: 0; border-radius: 6px;
  background: transparent; color: var(--ink); font: inherit; cursor: pointer; text-align: left;
}
.menu a:hover, .menu button:hover { background: var(--rail); color: var(--ink); }
.menu form { margin: 0; }

/* ---------- masthead (Today only): compact on the site; the email keeps the large one ---------- */
.masthead { padding-top: 18px; display: flex; flex-direction: column; gap: 0; }
.rule-top { border-top: 3px solid var(--ink); border-bottom: 1px solid var(--ink); height: 2px; }
.rule-bottom { border-top: 1px solid var(--ink); height: 0; }
.mast-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 36px; align-items: center; padding: 14px 0; }
.mast-id { display: flex; flex-direction: column; gap: 4px; }
.mast { margin: 0; font: 900 44px/1 var(--display); letter-spacing: 0.05em; }
.issue { margin: 0; font: 500 12.5px var(--ui); letter-spacing: 0.02em; color: var(--muted); }
.issue .short { display: none; }
.mast-note { border-left: 1px solid var(--hair); padding-left: 28px; display: flex; flex-direction: column; gap: 6px; }
.note { margin: 0; font-style: italic; font-size: 17px; line-height: 1.5; color: var(--body); }
.note .label { font: 600 11.5px var(--ui); font-style: normal; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin-right: 6px; }
.mast-note .day-line { margin: 0; text-align: left; }
.bar-issue { font: 500 12.5px var(--ui); color: var(--muted); opacity: 0; transition: opacity .2s; white-space: nowrap; }
body.past-mast .bar-issue { opacity: 1; }
@media (max-width: 960px) {
  .mast-row { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 12px 0; }
  .mast-id { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
  .mast { font-size: 34px; }
  .mast-note { border-left: 0; padding-left: 0; }
  .note { font-size: 16px; }
}
@media (max-width: 760px) {
  .issue .long { display: none; }
  .issue .short { display: inline; }
}
@media (max-width: 560px) { .bar-issue { display: none; } }

/* ---------- section tabs ---------- */
.toolbar { margin-top: 28px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: space-between;
  border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair); padding: 6px 0; }
.tabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; font: 500 14px var(--ui); }
.tabs::-webkit-scrollbar { display: none; }
.tabs a { flex: none; white-space: nowrap; min-height: 40px; display: inline-flex; align-items: center; gap: 6px; padding: 0 12px; border-radius: 999px; color: var(--muted); }
.tabs a.active { background: var(--ink); color: var(--paper); }
.tabs .n { font-variant-numeric: tabular-nums; opacity: 0.75; }
.switch { display: inline-flex; align-items: center; gap: 10px; min-height: var(--tap); font: 500 14px var(--ui); color: var(--body); cursor: pointer; }
.switch input { appearance: none; width: 36px; height: 22px; border-radius: 999px; background: var(--rule); position: relative; cursor: pointer; margin: 0; transition: background .15s; }
.switch input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 999px; background: var(--paper); transition: left .15s; }
.switch input:checked { background: var(--accent); }
.switch input:checked::after { left: 17px; }
@media (max-width: 760px) { .toolbar { flex-direction: column; align-items: stretch; } }
@media (min-width: 961px) { .today-toolbar { display: none; } }  /* desktop: every section is in view */

/* ---------- body: one reading column + a narrow side column ---------- */
.body {
  margin-top: 36px; display: grid; justify-content: center; column-gap: 56px;
  grid-template-columns: minmax(0, var(--column)) minmax(0, var(--side));
}
.side { border-left: 1px solid var(--hair); padding-left: 28px; display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 960px) {
  .body { grid-template-columns: minmax(0, var(--column)); }
  .side { border-left: 0; padding-left: 0; margin-top: 40px; border-top: 3px double var(--ink); padding-top: 18px; }
}
.section-label { margin: 0 0 4px; font: 600 12px var(--ui); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.main-head { margin: 44px 0 0; }
.empty { margin: 4px 0 18px; font-style: italic; color: var(--muted); font-size: 15px; }

/* ---------- cards ---------- */
.card { display: flex; flex-direction: column; gap: 8px; padding: 26px 0; border-bottom: 1px solid var(--hair); }
.card.lead { padding-top: 0; gap: 10px; border-bottom: 0; }
.metrics { margin: 4px 0 0; font: 500 13px/1.45 var(--ui); color: var(--body); font-variant-numeric: tabular-nums; }
.metrics[hidden] { display: none; }
.metrics .kf-new { color: var(--accent); font-weight: 700; }
.metrics .kf-preprint { color: var(--ox); font-weight: 600; }
.metrics .kf-oa { color: var(--accent); font-weight: 600; }
.metrics .kf-sep { color: var(--rule); }
.card-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font: 500 var(--meta-size) var(--ui); color: var(--muted); }
.rank { font: 600 13px var(--ui); color: var(--ink); font-variant-numeric: tabular-nums; }
.lead .rank { color: var(--accent); }
.card h2, .card h3 { margin: 0; font-family: var(--text); font-weight: 600; letter-spacing: -0.005em; text-wrap: pretty; }
.card h3 { font-size: var(--head-size); line-height: 1.28; }
.lead h2 { font-size: var(--lead-size); line-height: 1.18; text-wrap: balance; }
.authors { font: 400 14px/1.5 var(--ui); color: var(--body); }
.authors b { font-weight: 600; color: var(--ink); }
.summary { margin: 2px 0 0; color: var(--body); }
.lead .summary { font-size: calc(var(--read-size) + 1px); }
.clamp3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.clamp2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.side .card { padding: 18px 0; gap: 6px; }
.side .card h3 { font-size: 17px; line-height: 1.3; }
.side .card.news h3 { font-weight: 500; font-style: italic; }

/* badges */
.badges { display: flex; flex-wrap: wrap; gap: 6px; }
.badge {
  display: inline-flex; align-items: center; gap: 5px; min-height: 24px; padding: 2px 9px; border-radius: var(--radius);
  font: 500 12px/1.3 var(--ui); background: var(--rail); color: var(--body); border: 1px solid transparent;
}
.badge.new { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.badge.preprint { background: var(--ox-soft); color: var(--ox); font-weight: 600; }
.badge.link { background: transparent; border-color: var(--rule); color: var(--accent); }
.badge.link:hover { border-color: var(--accent); }

/* why it's here */
.why { font: 400 var(--meta-size)/1.5 var(--ui); color: var(--muted); }
.why b { font-weight: 600; color: var(--body); }

/* details */
.details > summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; min-height: 36px;
  font: 600 13px var(--ui); color: var(--ink);
}
.details > summary::-webkit-details-marker { display: none; }
.details > summary svg { transition: transform .15s; }
.details[open] > summary svg { transform: rotate(90deg); }
.details-body { display: flex; flex-direction: column; gap: 14px; padding: 10px 0 6px 14px; border-left: 2px solid var(--hair); margin: 4px 0 4px 2px; }
.details-body .k { display: block; font: 600 11.5px var(--ui); letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin-bottom: 2px; }
.details-body p { margin: 0; font-size: 15.5px; line-height: 1.55; color: var(--body); }
.details-body .matters { font-style: italic; }
.bars { display: flex; flex-direction: column; gap: 8px; }
.bar { display: grid; grid-template-columns: 76px minmax(0, 1fr) 92px; gap: 12px; align-items: center; font: 400 13px var(--ui); }
.bar-track { height: 3px; border-radius: 3px; background: var(--hair); overflow: hidden; }
.bar-fill { display: block; height: 3px; background: var(--accent); }
.bar-value { text-align: right; font-variant-numeric: tabular-nums; }
.bar-value .w { color: var(--muted); }

/* actions */
.foot { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
.foot .grow { flex: 1 1 auto; }
.actions { display: flex; gap: 2px; align-items: center; }
.actions form { margin: 0; }
.act {
  min-width: var(--tap); min-height: var(--tap); padding: 0 10px; border: 0; border-radius: 999px; background: transparent;
  color: var(--ink); display: inline-flex; align-items: center; justify-content: center; gap: 6px; font: 500 13px var(--ui); cursor: pointer;
}
.act:hover { background: var(--rail); }
.act[aria-pressed="true"] { color: var(--accent); }
.act[aria-pressed="true"] .fillable { fill: currentColor; }

/* drop cap on the lead only */
.lead .summary::first-letter { float: left; font: 400 3.4em/0.86 var(--display); padding: 5px 8px 0 0; color: var(--ink); }

/* toast (save → collection suggestion) */
.toast {
  position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 50; display: flex; align-items: center; gap: 10px;
  max-width: calc(100vw - 32px); padding: 10px 10px 10px 16px; border-radius: 12px; background: var(--ink); color: var(--paper);
  font: 500 14px var(--ui); box-shadow: var(--shadow);
}
.toast[hidden] { display: none; }
.toast button { min-height: 36px; padding: 0 12px; border-radius: 999px; border: 0; background: var(--paper); color: var(--ink); font: 600 13px var(--ui); cursor: pointer; }
.toast button.ghost { background: transparent; color: var(--paper); }

/* ---------- colophon ---------- */
.colophon { margin-top: 56px; padding: 18px 0 56px; border-top: 3px double var(--ink); text-align: center; display: flex; flex-direction: column; gap: 8px; }
.colophon p { margin: 0 auto; max-width: var(--column); font: 400 12.5px/1.6 var(--ui); color: var(--muted); }

/* ---------- simple pages ---------- */
.page-head { padding-top: 34px; display: flex; flex-direction: column; gap: 8px; text-align: center; }
.page-title { margin: 0; font: 600 44px/1.1 var(--text); letter-spacing: -0.01em; }
.page-sub { margin: 0 auto; max-width: var(--column); font-style: italic; font-size: 18px; color: var(--body); }
@media (max-width: 760px) { .page-title { font-size: 34px; } }
.narrow { max-width: 420px; margin: 36px auto 0; display: flex; flex-direction: column; gap: 14px; }
.prose { max-width: var(--column); margin: 28px auto 0; }
.prose h2 { margin: 40px 0 10px; font: 600 25px/1.25 var(--text); }
.prose p, .prose li { color: var(--body); }
.prose p { margin: 0 0 14px; }
.prose ul { margin: 0 0 14px; padding-left: 22px; }
.prose li { margin-bottom: 6px; }
.prose table { width: 100%; border-collapse: collapse; font: 400 14px/1.5 var(--ui); margin: 6px 0 14px; }
.prose th { text-align: left; font-weight: 600; padding: 8px 8px 8px 0; border-bottom: 1px solid var(--ink); }
.prose td { padding: 9px 8px 9px 0; border-bottom: 1px solid var(--hair); vertical-align: top; color: var(--body); }
.prose td.num, .prose th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; padding-right: 0; }

/* interface controls */
.btn {
  min-height: var(--tap); padding: 0 18px; border-radius: 999px; border: 1px solid var(--ink); background: transparent; color: var(--ink);
  font: 600 14px var(--ui); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.btn.primary { background: var(--ink); color: var(--on-ink); }
.btn.accent { background: var(--accent); color: var(--on-ink); border-color: var(--accent); }
.btn.small { min-height: 36px; padding: 0 14px; font-size: 13px; }
.doi-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.doi-line .k { margin: 0; flex-basis: 100%; }
code.doi { font: 400 13px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--body); overflow-wrap: anywhere; user-select: all; }
.btn:disabled { opacity: 0.5; cursor: default; }
.field-label { font: 600 12px var(--ui); letter-spacing: 0.04em; color: var(--muted); }
.input { min-height: var(--tap); width: 100%; padding: 0 12px; border: 1px solid var(--rule); border-radius: 8px; background: var(--field); color: var(--ink); font: 400 16px var(--ui); }
.input:focus { border-color: var(--ink); outline: none; }
textarea.input { padding: 10px 12px; min-height: 64px; line-height: 1.5; resize: vertical; }
select.input { padding-right: 28px; }
.error { margin: 0; font: 500 14px var(--ui); color: var(--ox); }
.badge.integrity { font-weight: 600; text-decoration: none; }
.badge.integrity-retracted { background: var(--ox); color: var(--on-ink); border-color: var(--ox); font-weight: 700; letter-spacing: 0.02em; }
.badge.integrity-concern { background: var(--amber-soft); color: var(--amber); border-color: var(--amber); }
.badge.integrity-corrected { background: transparent; color: var(--muted); border-color: var(--rule); font-weight: 500; }
.shared { max-width: 760px; padding-top: 32px; padding-bottom: 48px; }
.shared-title { font: 600 28px/1.25 var(--text); color: var(--ink); margin: 6px 0 6px; }
.shared-findings { margin: 10px 0; padding-left: 20px; font: 400 17px/1.55 var(--text); }
.share-box { border: 0; border-radius: 12px; padding: 18px 20px; max-width: min(560px, calc(100vw - 32px)); width: 100%; background: var(--paper); color: var(--body); box-shadow: var(--shadow); }
.share-box::backdrop { background: rgba(0, 0, 0, 0.35); }
.share-head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 6px; }
.share-head h2 { margin: 0; font: 600 16px var(--ui); color: var(--ink); }
.share-head .lightbox-close { position: static; }
.share-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.share-actions[hidden], .share-link[hidden], .share-preview[hidden] { display: none; }
.share-link a { overflow-wrap: anywhere; }
.share-preview { white-space: pre-wrap; font: 400 12.5px/1.5 var(--ui); background: var(--rail); border-radius: 8px; padding: 10px 12px; max-height: 40vh; overflow: auto; user-select: all; }
.newsletter { border: 0; padding: 0; margin: 18px 0; display: flex; flex-direction: column; gap: 8px; }
.nl-row { display: flex; align-items: center; gap: 8px 18px; flex-wrap: wrap; }
.nl-opt { display: inline-flex; align-items: center; gap: 8px; font: 500 15px var(--ui); color: var(--body); cursor: pointer; }
.nl-opt input { width: 18px; height: 18px; accent-color: var(--accent); margin: 0; }
.nl-day { width: auto; min-height: 40px; }
.nl-label { font: 500 14px var(--ui); color: var(--body); margin-top: 6px; }
.newsletter .meta { margin: 0; }
a.author { color: inherit; text-decoration: none; border-bottom: 1px dotted var(--rule); }
a.author:hover { color: var(--accent); border-bottom-color: var(--accent); }
.author-lookup { margin: 16px 0 0; }
.author-lookup > summary { cursor: pointer; font: 600 13px var(--ui); color: var(--accent); list-style: none; }
.author-lookup > summary::-webkit-details-marker { display: none; }
.author-lookup[open] > summary { margin-bottom: 12px; }
.badge.scoop { color: var(--ox); border: 1.5px solid var(--ox); background: transparent; font-weight: 700; }
.badge.project { color: var(--good); border-color: var(--good); background: var(--good-soft); font-weight: 600; }
.card.has-scoop { box-shadow: inset 3px 0 0 var(--ox); padding-left: 12px; }
.projects { margin-top: 36px; display: flex; flex-direction: column; gap: 10px; }
.project-form { display: flex; flex-direction: column; gap: 6px; padding: 12px 0; border-top: 1px solid var(--hair); }
.project-actions { display: flex; gap: 8px; }
.welcome .wstep { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--hair); display: flex; flex-direction: column; gap: 10px; }
.w-chips { list-style: none; padding: 0; margin: 4px 0; display: flex; flex-wrap: wrap; gap: 8px; }
.w-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 6px 4px 12px; border: 1px solid var(--rule); border-radius: 999px; font: 500 14px var(--ui); }
.w-sample { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; font-size: 15px; }
.jump { display: flex; gap: 6px; flex-wrap: wrap; margin: 16px 0 4px; font: 500 13px var(--ui); }
.jump a { padding: 4px 10px; border-radius: 999px; background: var(--rail); color: var(--ink); }
.notice { margin: 0; font: 500 14px var(--ui); color: var(--body); background: var(--rail); border-radius: 8px; padding: 8px 12px; }
li.notice { margin: 4px; }
.ok { margin: 0; font: 500 14px var(--ui); color: var(--accent); }

/* ---------- Topics page (The Editor's Desk) ---------- */
.desk { margin-top: 28px; display: flex; flex-direction: column; gap: 28px; padding-bottom: 120px; }
.search { position: relative; display: flex; flex-direction: column; gap: 8px; }
.search-box { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 16px; background: var(--field); border: 1px solid var(--rule); border-radius: 10px; }
.search-box:focus-within { border-color: var(--ink); }
.search-box input { flex: 1 1 auto; min-width: 0; border: 0; background: transparent; font: 400 17px var(--ui); color: var(--ink); outline: none; }
.search-box .hint { font: 400 12px var(--ui); color: var(--muted); }
@media (max-width: 520px) { .search-box .hint { display: none; } }
.suggest { list-style: none; margin: 0; padding: 6px; position: absolute; top: 100%; left: 0; right: 0; z-index: 20; background: var(--field); border: 1px solid var(--hair); border-radius: 10px; box-shadow: var(--shadow); }
.suggest[hidden] { display: none; }
.suggest button { width: 100%; min-height: var(--tap); display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 12px; align-items: center; padding: 6px 10px; border: 0; border-radius: 6px; background: transparent; text-align: left; cursor: pointer; color: var(--ink); font-family: var(--ui); }
.suggest button[aria-selected="true"], .suggest button:hover { background: var(--rail); }
.suggest .src { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.suggest .src-MeSH { color: var(--accent); }
.suggest .src-OpenAlex { color: var(--ox); }
.suggest .lbl { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.suggest .lbl b { font-size: 15px; font-weight: 500; }
.suggest .lbl small { font-size: 12.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.desk-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 40px; align-items: start; }
@media (max-width: 900px) { .desk-grid { grid-template-columns: minmax(0, 1fr); } }
.group-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--ink); padding-bottom: 6px; }
.group-head h2 { margin: 0; font: 600 13px var(--ui); letter-spacing: 0.08em; text-transform: uppercase; }
.group-head span { font: 400 13px var(--ui); color: var(--muted); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; min-height: 44px; padding: 8px 0; border-radius: 6px; }
.chips.drop-target { background: var(--accent-soft); }
.chip { display: inline-flex; align-items: center; gap: 4px; min-height: 40px; padding: 0 2px 0 12px; border: 1px solid var(--rule); border-radius: 999px; background: var(--field); color: var(--ink); font: 500 14px var(--ui); }
.chip.nice { border-style: dashed; }
.chip.editing { border-color: var(--accent); background: var(--accent-soft); }
.chip.muted { color: var(--muted); text-decoration: line-through; text-decoration-color: var(--muted); }
.chip.exclude { border-color: var(--ox); color: var(--ox); }
.chip .open { border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; min-height: 40px; padding: 0; text-align: left; }
.chip .n { font-weight: 400; color: var(--muted); font-variant-numeric: tabular-nums; }
.chip .warn { color: var(--ox); font-weight: 600; }
.chip-btn { width: 36px; height: 36px; border: 0; border-radius: 999px; background: transparent; color: var(--muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.chip-btn:hover { background: var(--rail); color: var(--ink); }
.minor { margin: 0; font-size: 14px; font-style: italic; color: var(--muted); }
.two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 520px) { .two { grid-template-columns: minmax(0, 1fr); } }
.add-row { display: flex; gap: 8px; }
.add-row .input { min-height: 40px; font-size: 14px; }
.editor { display: flex; flex-direction: column; gap: 14px; padding: 22px; background: var(--rail); border-radius: 12px; }
.editor[hidden] { display: none; }
.editor h2 { margin: -6px 0 0; font: 600 24px/1.2 var(--text); }
.prio { margin: 0; padding: 0; border: 0; display: flex; gap: 8px; flex-wrap: wrap; font-family: var(--ui); }
.prio legend { font: 600 12px var(--ui); letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.prio label { min-height: 40px; display: inline-flex; align-items: center; gap: 6px; padding: 0 14px; border: 1px solid var(--rule); border-radius: 999px; font-size: 14px; cursor: pointer; }
.prio label:has(input:checked) { border: 1.5px solid var(--accent); background: var(--field); color: var(--accent); font-weight: 600; }
.prio input { accent-color: var(--accent); }
.builder { display: flex; flex-direction: column; gap: 8px; font-family: var(--ui); }
.group { display: flex; flex-direction: column; gap: 8px; padding: 12px; background: var(--field); border: 1px solid var(--hair); border-radius: 8px; }
.group-title { display: flex; justify-content: space-between; align-items: center; font-size: 12px; font-weight: 600; color: var(--muted); }
.group .terms { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.group .chip { min-height: 34px; }
.group .term-input { min-height: 34px; width: 150px; padding: 0 10px; border: 1px dashed var(--muted); border-radius: 999px; background: transparent; font: 400 13px var(--ui); color: var(--ink); }
.and { text-align: center; font: 600 12px var(--ui); letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
.add-group { align-self: flex-start; min-height: 40px; padding: 0 12px; border: 1px dashed var(--ink); border-radius: 8px; background: transparent; font: 500 13px var(--ui); color: var(--ink); cursor: pointer; }
.expr { width: 100%; min-height: 64px; padding: 8px 10px; border: 1px solid var(--hair); border-radius: 8px; background: var(--paper); color: var(--body); font: 400 13px/1.45 ui-monospace, Menlo, monospace; resize: vertical; white-space: pre-wrap; overflow-wrap: anywhere; }
.preview { display: flex; flex-direction: column; gap: 8px; padding-top: 12px; border-top: 1px solid var(--rule); }
.preview .count { display: flex; align-items: baseline; gap: 10px; }
.preview .big { font: 600 34px/1 var(--text); font-variant-numeric: oldstyle-nums; }
.preview ol { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; font-size: 15px; line-height: 1.35; }
.preview .warn-line { margin: 0; font: 500 13px var(--ui); color: var(--ox); }
.savebar { position: sticky; bottom: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 12px 0; background: var(--paper); border-top: 3px double var(--ink); }
.savebar p { margin: 0; font-size: 15px; font-style: italic; color: var(--body); }
.savebar .buttons { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.savebar a, .savebar label.link { font: 500 13px var(--ui); min-height: var(--tap); display: inline-flex; align-items: center; cursor: pointer; }
.top10 { display: flex; flex-direction: column; gap: 10px; padding: 22px; background: var(--rail); border-radius: 12px; }
.top10[hidden] { display: none; }
.top10 .sec-head { margin: 0; font: 600 20px var(--text); }
.test-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 760px) { .test-cols { grid-template-columns: minmax(0, 1fr); } }
.test-h { margin: 0 0 8px; font: 600 12px var(--ui); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.top10 ol { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 10px; }
.top10 .meta { display: block; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ---------- Saved ---------- */
.saved-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding-bottom: 10px; border-bottom: 1px solid var(--ink); }
.saved-toolbar .grow { flex: 1 1 auto; }
.saved-row { display: grid; grid-template-columns: 28px minmax(0, 1fr); column-gap: 10px; }
.saved-row > input[type="checkbox"] { width: 18px; height: 18px; margin-top: 6px; accent-color: var(--accent); }
.badge.coll { gap: 2px; padding-right: 2px; background: var(--accent-soft); color: var(--accent); }
.badge.coll button { width: 22px; height: 22px; border: 0; border-radius: 999px; background: transparent; color: inherit; cursor: pointer; font: 600 14px/1 var(--ui); }
textarea.note-box { min-height: 40px; height: 40px; font-size: 14.5px; padding: 8px 12px; }
.add-coll .input { min-height: 36px; width: 210px; font-size: 13.5px; }
.filter-list { display: flex; flex-direction: column; gap: 2px; font: 500 14px var(--ui); }
.filter-list a { display: flex; justify-content: space-between; align-items: center; min-height: 38px; padding: 0 10px; border-radius: 8px; color: var(--body); flex: 1 1 auto; }
.filter-list a span { color: var(--muted); font-variant-numeric: tabular-nums; }
.filter-list a[aria-current="page"] { background: var(--rail); color: var(--ink); }
.filter-row { display: flex; align-items: center; }

/* ---------- Search ---------- */
.search-form { display: flex; flex-direction: column; gap: 10px; }
.search-form .search-box { padding-right: 6px; }
.search-options { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.search-options .grow { flex: 1 1 auto; }
.seg { display: inline-flex; margin: 0; padding: 3px; border: 1px solid var(--rule); border-radius: 999px; gap: 2px; font: 500 13.5px var(--ui); }
.seg[hidden] { display: none; }
.seg label { min-height: 36px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 999px; cursor: pointer; color: var(--body); }
.seg input { position: absolute; opacity: 0; pointer-events: none; }
.seg label:has(input:checked) { background: var(--ink); color: var(--paper); }
.seg label:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.seg label { white-space: nowrap; }
.seg.months { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.seg.months::-webkit-scrollbar { display: none; }
@media (max-width: 520px) { .seg.months label { padding: 0 9px; } }

/* ---------- figures ---------- */
.fig { margin: 6px 0 4px; display: flex; flex-direction: column; gap: 6px; }
.fig-open { padding: 0; border: 1px solid var(--hair); border-radius: 8px; background: #fff; cursor: zoom-in; overflow: hidden; display: block; }
.fig-open img { display: block; width: 100%; max-height: 340px; object-fit: contain; background: #fff; }
.fig figcaption { font: 400 12.5px/1.5 var(--ui); color: var(--muted); }
.fig figcaption b { color: var(--body); font-weight: 600; }
.fig .credit { display: block; margin-top: 2px; }
.lightbox { width: min(1100px, 96vw); max-height: 94vh; padding: 16px; border: 0; border-radius: 12px; background: var(--field); color: var(--ink); box-shadow: var(--shadow); }
.lightbox::backdrop { background: rgba(10, 10, 8, 0.72); }
.lightbox img { display: block; width: 100%; max-height: 74vh; object-fit: contain; background: #fff; border-radius: 6px; }
.lightbox-caption { margin: 10px 0 0; font: 400 14px/1.55 var(--ui); color: var(--body); }
.lightbox form { display: flex; justify-content: flex-end; margin: -6px -6px 6px 0; }
.lightbox-close { width: var(--tap); height: var(--tap); border: 0; border-radius: 999px; background: transparent; color: var(--ink); font: 400 26px/1 var(--ui); cursor: pointer; }
.sizes { margin: 8px 0 0; padding: 0; border: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
.sizes legend { margin-bottom: 8px; }
.sizes label { display: flex; flex-direction: column; gap: 4px; font: 500 13px var(--ui); color: var(--body); }
.sizes .meta { grid-column: 1 / -1; margin: 0; }
.badge.strength-strong { background: var(--accent); color: var(--on-ink); font-weight: 600; }
.badge.strength-good { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.badge.strength-fair { background: var(--rail); color: var(--muted); }
.day-line { margin: 10px 0 0; text-align: center; font: 600 13px var(--ui); color: var(--accent); }

/* ---------- key findings (cards and Reader) ---------- */
.findings > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; font: 600 13.5px var(--ui); color: var(--accent); }
.findings > summary::-webkit-details-marker { display: none; }
.findings > summary svg { transition: transform .15s; }
.findings[open] > summary svg { transform: rotate(90deg); }
.findings .from { font-weight: 400; color: var(--muted); }
.findings-body { display: flex; flex-direction: column; gap: 12px; padding: 10px 0 6px 14px; border-left: 2px solid var(--accent); margin: 4px 0 4px 2px; }
.findings-body p { margin: 0; font-size: 16px; line-height: 1.55; color: var(--body); }
.findings-body .main { font-weight: 600; color: var(--ink); }
.findings-body .k { display: block; font: 600 11.5px var(--ui); letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin-bottom: 2px; }
.findings-body ul { margin: 0; padding-left: 20px; font-size: 15.5px; line-height: 1.5; color: var(--body); }
.findings-body li { margin-bottom: 3px; }
.findings-body .numbers b { font-variant-numeric: tabular-nums; color: var(--ink); }
.findings-body .matters { font-style: italic; }
.findings-body .meta { font: 400 12.5px/1.5 var(--ui); color: var(--muted); }

/* ---------- Reader ---------- */
.reader { max-width: var(--column); margin: 28px auto 80px; font-size: 18px; line-height: 1.65; }
.reader-head { display: flex; flex-direction: column; gap: 10px; padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid var(--hair); }
.reader-head h1 { margin: 0; font: 600 34px/1.18 var(--text); letter-spacing: -0.01em; text-wrap: pretty; }
.reader-head .meta { margin: 0; font: 400 12.5px/1.5 var(--ui); color: var(--muted); }
.reader-head button.badge { cursor: pointer; font: 600 12px/1.3 var(--ui); }
.reader h2 { margin: 40px 0 10px; font: 600 25px/1.25 var(--text); }
.reader h3 { margin: 28px 0 8px; font: 600 20px/1.3 var(--text); }
.reader h4 { margin: 22px 0 6px; font: 600 12.5px var(--ui); letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.reader p { margin: 0 0 14px; color: var(--body); }
.reader ul, .reader ol { padding-left: 24px; color: var(--body); }
.reader a.xref { color: var(--accent); text-decoration: none; }
.reader aside { margin: 18px 0; padding: 4px 18px; background: var(--rail); border-radius: 10px; }
.reader blockquote { margin: 14px 0; padding-left: 16px; border-left: 2px solid var(--rule); }
.reader .formula { font-family: var(--ui); font-size: 15px; }
.reader .fig { margin: 22px 0; }
.reader .fig-open img { max-height: 560px; }
.reader .fig-missing, .reader .supp { font: 400 14px/1.5 var(--ui); color: var(--muted); }
.reader figure.table { margin: 22px 0; }
.reader figure.table figcaption { font: 400 14px/1.5 var(--ui); color: var(--body); margin-bottom: 6px; }
.reader .table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 1px solid var(--ink); }
.reader table { border-collapse: collapse; font: 400 13.5px/1.45 var(--ui); min-width: 100%; }
.reader th { text-align: left; font-weight: 600; padding: 7px 10px 7px 0; border-bottom: 1px solid var(--ink); vertical-align: bottom; }
.reader td { padding: 7px 10px 7px 0; border-bottom: 1px solid var(--hair); vertical-align: top; color: var(--body); }
.reader .table-foot { font: 400 12.5px/1.5 var(--ui); color: var(--muted); margin-top: 6px; }
.reader .table-foot p { margin: 0 0 4px; }
.reader-refs ol { font: 400 13.5px/1.5 var(--ui); }
.reader-refs li { margin-bottom: 6px; }
.reader-refs li:target, .reader .fig:target, .reader figure.table:target { background: var(--accent-soft); }
.badge.read { font-weight: 600; }
@media (max-width: 760px) { .reader { font-size: 17px; } .reader-head h1 { font-size: 27px; } }

/* ---------- Editor's Desk tabs; Authors and Journals ---------- */
.desk-tabs { display: flex; justify-content: center; gap: 4px; margin: 18px 0 26px; padding: 6px 0; border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair); }
.desk-tabs a { min-height: 40px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: 999px; font: 500 14px var(--ui); color: var(--muted); }
.desk-tabs a[aria-current="page"] { background: var(--ink); color: var(--on-ink); }
.muted-note { margin: 0; font: 400 13px/1.5 var(--ui); color: var(--muted); }
.muted-inline { font: 400 12.5px var(--ui); color: var(--muted); }
.pick-list { list-style: none; margin: 0; padding: 6px; background: var(--field); border: 1px solid var(--hair); border-radius: 10px; display: flex; flex-direction: column; gap: 2px; font-family: var(--ui); }
.pick-list[hidden] { display: none; }
.pick-list button { width: 100%; min-height: 52px; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 8px 12px; border: 0; border-radius: 8px; background: transparent; color: var(--ink); text-align: left; cursor: pointer; font: inherit; }
.pick-list button:hover, .pick-list button[aria-selected="true"] { background: var(--rail); }
.pick-list b { font-size: 15px; font-weight: 600; }
.pick-list small { font-size: 13px; color: var(--muted); }
.pick-empty { padding: 10px 12px; font-size: 14px; color: var(--muted); }
.jresult { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 6px 8px 6px 12px; }
.jresult .lbl { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
.jresult .where { font-size: 12.5px; color: var(--accent); white-space: nowrap; }
.jresult .add-to { width: auto; min-height: 36px; font-size: 13px; }
.pick-panel { display: flex; flex-direction: column; gap: 12px; padding: 22px; background: var(--rail); border-radius: 12px; font-family: var(--ui); }
.pick-panel[hidden] { display: none; }
.pick-panel h2 { margin: -4px 0 0; font: 600 26px/1.2 var(--text); }
.pick-meta { font-size: 14px; line-height: 1.6; color: var(--body); }
.pick-recent { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; font: 400 15px/1.4 var(--text); }
.modes { margin: 4px 0 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: 8px; }
.modes legend { margin-bottom: 8px; }
.modes label { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--rule); border-radius: 10px; background: var(--field); cursor: pointer; font-size: 14px; }
.modes label:has(input:checked) { border: 1.5px solid var(--accent); }
.modes input { margin-top: 3px; accent-color: var(--accent); }
.modes small { font-size: 13px; color: var(--muted); }
.pick-panel .btn { align-self: flex-start; }
.follow-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 0; border-bottom: 1px solid var(--hair); font-family: var(--ui); }
.follow-row .initials { width: 36px; height: 36px; flex: none; border-radius: 999px; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); font: 600 14px var(--ui); }
.follow-row .who { display: flex; flex-direction: column; gap: 2px; flex: 1 1 260px; min-width: 0; }
.follow-row .name { font-size: 15px; font-weight: 600; }
.follow-row .meta { font-size: 13px; color: var(--muted); }
.follow-row .count b { color: var(--ink); }
.seg { display: inline-flex; padding: 3px; border: 1px solid var(--rule); border-radius: 999px; }
.seg button { min-height: 34px; padding: 0 12px; border: 0; border-radius: 999px; background: transparent; color: var(--body); font: 500 13px var(--ui); cursor: pointer; }
.seg button[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); }
.recent-row { display: flex; flex-direction: column; gap: 3px; padding: 12px 0; border-bottom: 1px solid var(--hair); }
.recent-row a { font: 600 16.5px/1.35 var(--text); }
.recent-row .meta { font: 400 13px var(--ui); color: var(--muted); }
.more-link { margin: 8px 0 0; font: 500 14px var(--ui); }
.tier { margin-top: 32px; }
.tier .group-head .grow { flex: 1; }
.link-btn { border: 0; background: transparent; color: var(--accent); font: 600 13px var(--ui); cursor: pointer; min-height: 36px; padding: 0 4px; }
.jchip { cursor: grab; padding: 0 12px; gap: 7px; font-size: 13.5px; min-height: 36px; }
.jchip[aria-expanded="true"] { border-color: var(--ink); background: var(--rail); }
.jchip .byname { color: var(--muted); }
.dot { display: inline-block; flex: none; width: 8px; height: 8px; border-radius: 999px; }
.dot.follow { background: var(--accent); }
.dot.mute { border-radius: 2px; border: 1.5px solid var(--ox); width: 9px; height: 9px; }
.legend { margin: 0; display: flex; gap: 10px; align-items: baseline; font-size: 13.5px; line-height: 1.5; color: var(--body); }
.tier-table { border-collapse: collapse; width: 100%; font-size: 14px; }
.tier-table td { padding: 8px 0; border-bottom: 1px solid var(--hair); }
.tier-table tr:last-child td { border-bottom: 0; }
.tier-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.tier-table .muted { color: var(--muted); }
.jmenu { position: absolute; z-index: 30; width: 300px; padding: 8px; background: var(--field); border: 1px solid var(--rule); border-radius: 12px; box-shadow: var(--shadow); font-family: var(--ui); }
.jmenu[hidden] { display: none; }
.jmenu-head { padding: 6px 10px 8px; display: flex; flex-direction: column; gap: 2px; }
.jmenu-head small { font-size: 12.5px; color: var(--muted); }
.jmenu-tiers { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 0 6px 8px; }
.jmenu-tiers button { min-height: 36px; border: 1px solid var(--rule); border-radius: 999px; background: transparent; color: var(--ink); font: 600 12.5px var(--ui); cursor: pointer; }
.jmenu-tiers button[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.jmenu-row { width: 100%; min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 10px; border: 0; border-top: 1px solid var(--hair); background: transparent; color: var(--ink); font: 500 14px var(--ui); text-align: left; cursor: pointer; }
.jmenu-row small { font-weight: 400; font-size: 12.5px; color: var(--muted); }
.jmenu-row input { width: 18px; height: 18px; accent-color: var(--accent); }
@media (max-width: 760px) { .jmenu { width: min(320px, calc(100vw - 16px)); } }

/* ---------- loading states ---------- */
@keyframes spin { to { transform: rotate(360deg); } }
.spinner { display: inline-block; flex: none; width: 16px; height: 16px; border: 2px solid var(--rule); border-top-color: var(--accent); border-radius: 999px; animation: spin .8s linear infinite; }
.progress { display: flex; align-items: center; gap: 10px; margin-top: 22px; padding: 12px 14px; border-radius: 10px; background: var(--rail); font: 500 14px var(--ui); color: var(--body); }
.progress[hidden] { display: none; }
.dim { opacity: .45; transition: opacity .2s; }
.loading::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 6px; vertical-align: -1px; border: 2px solid var(--rule); border-top-color: var(--accent); border-radius: 999px; animation: spin .8s linear infinite; }
.pick-list.is-loading::after, .suggest.is-loading::after { content: "Looking up…"; display: block; padding: 10px 12px; font: 400 13px var(--ui); color: var(--muted); }
.skeleton { display: block; height: 14px; margin: 8px 0; border-radius: 6px; background: linear-gradient(90deg, var(--rail) 25%, var(--hair) 50%, var(--rail) 75%); background-size: 200% 100%; animation: shimmer 1.2s infinite; }
@keyframes shimmer { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .spinner, .loading::before, .skeleton { animation: none; } }
.search-box.busy .hint { visibility: hidden; }
.search-box.busy::after { content: ""; flex: none; width: 16px; height: 16px; border: 2px solid var(--rule); border-top-color: var(--accent); border-radius: 999px; animation: spin .8s linear infinite; }
body.has-mast .topbar .wordmark { opacity: 0; transition: opacity .2s; }
body.has-mast.past-mast .topbar .wordmark { opacity: 1; }
body.has-mast .toolbar { margin-top: 14px; }
.tchip { cursor: pointer; padding: 0 12px; gap: 6px; }
.tchip[aria-expanded="true"] { border-color: var(--ink); background: var(--rail); }

/* ---------- match strength pill, next to the title ---------- */
.title-row { display: flex; align-items: flex-start; gap: 12px; }
.title-row > h2, .title-row > h3 { flex: 1 1 auto; min-width: 0; }
.mscore { font: 700 13px var(--ui); font-variant-numeric: tabular-nums; padding: 0 6px; border-radius: 999px; line-height: 20px; }
.mscore-strong { background: var(--accent); color: var(--on-ink); }
.mscore-good { background: var(--good-soft); color: var(--good); box-shadow: inset 0 0 0 1px var(--good); }
.mscore-fair, .mscore-weak, .mscore-below-floor { background: transparent; color: var(--muted); font-weight: 600; box-shadow: inset 0 0 0 1px var(--rule); }
.question-hint { margin: 2px 0 0; font: 400 13px/1.5 var(--ui); color: var(--muted); }
.question-hint[hidden] { display: none; }
.pq-box { margin-top: 18px; display: flex; flex-direction: column; gap: 8px; padding: 14px 16px; border-radius: 10px; background: var(--rail); }
.pq-box textarea { font: 400 13.5px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; min-height: 72px; }
.pq-foot { display: flex; align-items: center; gap: 12px; justify-content: space-between; flex-wrap: wrap; }
.pq-foot .meta { margin: 0; font: 400 12.5px var(--ui); color: var(--muted); }
.result-tabs { margin-top: 18px; display: flex; gap: 4px; border-bottom: 1px solid var(--hair); }
.result-tabs a { min-height: 42px; display: inline-flex; align-items: center; gap: 6px; padding: 0 14px; border-bottom: 2px solid transparent; margin-bottom: -1px; font: 500 14px var(--ui); color: var(--muted); }
.result-tabs a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--ink); }
.result-tabs .sub { font-size: 12px; color: var(--muted); font-weight: 400; }
.pager { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 26px 0 10px; }
.pager .meta { margin: 0; font: 400 13px var(--ui); color: var(--muted); }
.mesh-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.mesh-chip { display: inline-flex; align-items: center; border: 1px solid var(--rule); border-radius: 999px; overflow: hidden; font: 500 12.5px var(--ui); }
.mesh-chip a { min-height: 30px; display: inline-flex; align-items: center; padding: 0 10px; color: var(--ink); }
.mesh-chip a.add { border-left: 1px solid var(--rule); color: var(--accent); font-weight: 600; padding: 0 9px; }
.mesh-chip a:hover { background: var(--rail); }
.similar-list { margin: 4px 0 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; font-size: 15px; line-height: 1.45; color: var(--body); }
.similar-list .meta { font: 400 12.5px var(--ui); color: var(--muted); }
.badge.link.quiet { color: var(--muted); }
.js-more { display: flex; flex-direction: column; gap: 14px; }
.back { margin: 0 0 12px; font: 500 14px var(--ui); }
.profile-head { display: flex; gap: 24px; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; padding: 18px 22px; border-radius: 12px; background: var(--rail); font-family: var(--ui); }
.profile-head h2 { margin: 0 0 4px; font: 600 28px/1.2 var(--text); }
.profile-head .meta, .profile-head .stats { margin: 2px 0 0; font-size: 13.5px; color: var(--muted); }
.profile-head .stats b { color: var(--ink); }
.follow-box { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.profile-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 22px 0 6px; font: 500 13px var(--ui); color: var(--muted); }
.profile-filters label { display: inline-flex; align-items: center; gap: 6px; }
.profile-filters .input { width: auto; min-height: 38px; font-size: 14px; }
.profile-filters .meta { margin-left: auto; }
.profile-row { padding: 18px 0; }
.profile-row button.badge { cursor: pointer; font: 600 12px/1.3 var(--ui); }
.lookup-seg { align-self: flex-start; }
.askbox { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.askbox .beta { font: 600 10px var(--ui); letter-spacing: .06em; text-transform: uppercase; color: var(--accent); border: 1px solid var(--accent); border-radius: 4px; padding: 0 4px; margin-left: 4px; }
.ask-row { display: flex; gap: 8px; }
.ask-row .input { min-height: 40px; font-size: 15px; }
.ask-note, .ask-meta, .ask-src { margin: 0; font: 400 12.5px/1.5 var(--ui); color: var(--muted); }
.ask-claims { margin: 4px 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; font-size: 15.5px; line-height: 1.5; color: var(--body); }
.ask-claims q { display: block; margin-top: 3px; padding-left: 10px; border-left: 2px solid var(--hair); font: italic 400 13.5px/1.5 var(--text); color: var(--muted); }
.reader-ask { margin: 22px 0; padding: 16px 18px; border-radius: 12px; background: var(--rail); }

/* Search, 5 years / All time: lists, citations, AI overview */
.sota-sec { margin-top: 30px; }
.sota-sec .card .rank { font-weight: 600; color: var(--accent); }
.badge.cites { display: inline-flex; align-items: center; gap: 6px; font-variant-numeric: tabular-nums; }
.cy-bar { display: inline-block; width: 44px; height: 4px; border-radius: 2px; background: var(--hair); position: relative; overflow: hidden; }
.cy-bar i { position: absolute; inset: 0 auto 0 0; background: var(--accent); border-radius: 0 2px 2px 0; }
.overview { margin-top: 24px; padding: 16px 18px; border: 1px solid var(--rule); border-radius: 10px; background: var(--field); }
.ov-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin-bottom: 10px; }
.ov-head h2 { margin: 0; font: 600 13px var(--ui); letter-spacing: 0.08em; text-transform: uppercase; }
.ov-text { margin: 0 0 8px; font: 400 16.5px/1.6 var(--text); color: var(--body); }
.ov-text .cite { color: var(--accent); font: 600 13px var(--ui); white-space: nowrap; }

/* Topics: Trends panel */
.trends { margin-top: 34px; }
.trends .group-head h2 { font: 600 13px var(--ui); letter-spacing: 0.08em; text-transform: uppercase; }
.tr-row { display: grid; grid-template-columns: minmax(0, 1fr) 170px 64px 70px; gap: 16px; align-items: center; min-height: 52px; border-bottom: 1px solid var(--hair); font-family: var(--ui); }
.tr-cols { min-height: 36px; font-size: 12px; color: var(--muted); }
.tr-row .num { text-align: right; font-variant-numeric: tabular-nums; }
.tr-topic { display: flex; align-items: center; gap: 8px; min-width: 0; }
.tr-prio { flex: none; font: 600 10.5px var(--ui); letter-spacing: .04em; padding: 2px 6px; border-radius: 4px; border: 1px solid var(--rule); color: var(--muted); }
.tr-prio.nice { border-style: dashed; }
.tr-label { font-size: 14.5px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--ink); }
.tr-last { font: 600 15px var(--ui); }
.tr-chg { font: 500 13px var(--ui); color: var(--body); }
.spark { display: block; max-width: 100%; overflow: visible; }
.sp-area { fill: var(--accent-soft); }
.sp-line { fill: none; stroke: var(--accent); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.sp-dot { fill: var(--accent); stroke: var(--paper); stroke-width: 2; }
.sp-wip { fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-dasharray: 2 3; opacity: .45; }
.sp-wip-dot { fill: var(--paper); stroke: var(--accent); stroke-width: 1.5; opacity: .55; }
.sp-hit { fill: transparent; }
.sp-hit:hover { fill: color-mix(in srgb, var(--accent) 10%, transparent); }
.tr-pending { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; }
.tr-note { margin: 10px 0 0; font-size: 12.5px; line-height: 1.5; }
@media (max-width: 760px) { .tr-row { grid-template-columns: minmax(0, 1fr) 110px 46px; gap: 10px; } .tr-row .tr-chg { display: none; } }

/* Today: "This edition" strip */
.ed-strip { margin: 14px 0 4px; border-bottom: 1px solid var(--hair); padding-bottom: 12px; }
.ed-strip summary { display: flex; align-items: baseline; gap: 12px; min-height: 40px; align-items: center; cursor: pointer; list-style: none; }
.ed-strip summary::-webkit-details-marker { display: none; }
.ed-strip summary::before { content: "▸"; font: 400 11px var(--ui); color: var(--muted); transition: transform .15s; }
.ed-strip[open] summary::before { transform: rotate(90deg); }
.ed-strip-h { font: 600 13px var(--ui); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink); }
.ed-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-top: 6px; }
.ed-group { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ed-group-h { font: 600 11px var(--ui); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.ed-bar { display: grid; grid-template-columns: minmax(0, 1fr) 120px 22px; gap: 8px; align-items: center; min-height: 30px; padding: 0 4px; margin: 0 -4px; border: 0; border-radius: 6px; background: transparent; color: var(--body); font: 400 12.5px/1.3 var(--ui); text-align: left; cursor: pointer; }
.ed-bar:hover { background: var(--rail); }
.ed-bar[aria-pressed="true"] { background: var(--accent-soft); color: var(--ink); }
.ed-bar:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.ed-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ed-track { display: block; height: 6px; background: var(--hair); border-radius: 0 4px 4px 0; overflow: hidden; }
.ed-track i { display: block; height: 100%; background: var(--accent); border-radius: 0 4px 4px 0; }
.ed-track i.s-good { background: var(--good); }
.ed-track i.s-fair { background: var(--rule); }
.ed-n { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink); }
.ed-filtering { margin: 10px 0 0; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ed-filtering[hidden] { display: none; }
.card.filtered-out { display: none; }
@media (max-width: 760px) { .ed-groups { grid-template-columns: minmax(0, 1fr); gap: 16px; } .ed-bar { grid-template-columns: minmax(0, 1fr) 90px 22px; } }
.ed-strip summary { flex-wrap: wrap; row-gap: 0; }
@media (max-width: 960px) { .mast-row .ed-strip { margin: 0; border-bottom: 0; padding-bottom: 0; } }  /* the masthead rule closes it */
/* desktop (Today): wider page and column; REVUE centred with the editor's note below; "This edition" as
   compact stats at the top of the sidebar (the masthead strip is for phones and tablets) */
body.today { --page: 1240px; --column: 800px; --side: 300px; }
.ed-stats { display: none; }
@media (min-width: 961px) {
  .mast-row .ed-strip { display: none; }
  .mast-row { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; gap: 10px; padding: 18px 0 16px; }
  .mast-id { align-items: center; }
  .mast { font-size: 56px; }
  .mast-note { border-left: 0; padding-left: 0; max-width: 680px; align-items: center; }
  .mast-note .day-line { text-align: center; }
  .ed-stats { display: block; margin-bottom: 26px; padding-bottom: 18px; border-bottom: 1px solid var(--hair); }
}
.ed-stats .section-label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; margin-bottom: 8px; }
.es-n { font: 400 12px var(--ui); letter-spacing: 0; text-transform: none; color: var(--muted); }
.es-line { margin: 0 0 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; font: 400 13.5px/1.5 var(--ui); color: var(--body); }
.es-k { font: 600 11px var(--ui); letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin-right: 4px; flex-basis: 100%; }
.es-chip { border: 0; background: transparent; color: inherit; font: inherit; padding: 2px 6px; margin: 0 -2px; border-radius: 6px; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; }
.es-chip b { font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.es-chip:hover { background: var(--rail); }
.es-chip[aria-pressed="true"] { background: var(--accent-soft); color: var(--ink); }
.es-chip:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.es-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.es-dot.s-strong { background: var(--accent); }
.es-dot.s-good { background: var(--good); }
.es-dot.s-fair { background: transparent; box-shadow: inset 0 0 0 1.5px var(--muted); }
.ed-stats .ed-filtering { margin-top: 8px; }
}
@media (max-width: 760px) { .result-tabs .sub { display: none; } .result-tabs a { padding: 0 10px; } }
@media (max-width: 760px) { .toolbar > #status { flex: 0 0 auto !important; } }

/* Admin */
.prose .table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.admin-row { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: end; margin: 8px 0 16px; }
.admin-row .input { width: auto; }
.admin-row input[type="number"] { width: 4.5em; }
.prose code.js-copy { word-break: break-all; user-select: all; }
.prose .table-scroll th { white-space: nowrap; padding-right: 14px; }
.prose .table-scroll td { padding-right: 14px; }
.similar-save { display: inline; margin-left: 2px; }
.similar-save .act { vertical-align: middle; }
.tchip .tflag { font: 600 10.5px var(--ui); letter-spacing: .04em; text-transform: uppercase; color: var(--accent); border: 1px solid currentColor; border-radius: 4px; padding: 0 4px; }
.side-fold > summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 8px; }
.side-fold > summary::-webkit-details-marker { display: none; }
.side-fold > summary .section-label { display: flex; gap: 8px; align-items: baseline; }
.side-fold > summary::after { content: "+"; margin-left: auto; font: 500 16px var(--ui); color: var(--muted); }
.side-fold[open] > summary::after { content: "−"; }
@media (min-width: 761px) { .side-fold > summary { cursor: default; pointer-events: none; } .side-fold > summary::after { display: none; } }
.ideas { margin-top: 18px; display: flex; flex-direction: column; gap: 6px; }
.ideas textarea { width: 100%; resize: vertical; }
.ideas .meta { margin: 0; }
.ideas > .js-ideas-go { align-self: flex-start; }
.ideas-list { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; }
.ideas-list .idea { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 8px 0; border-bottom: 1px dotted var(--hair); }
.ideas-list .idea-t { font-weight: 600; }
.ideas-list .idea-add { margin-left: auto; display: flex; gap: 6px; }
.ideas-list .idea.added { opacity: .6; }

/* ---------- Controls ----------
   Buttons and chips are pills (44px, small 36px, chips and toggles 40px); every text field has an 8px
   radius on --field with a --rule border; keyboard focus is the same accent ring everywhere. */
.btn:hover:not(:disabled) { background: var(--rail); }
.btn.primary:hover:not(:disabled) { background: var(--body); border-color: var(--body); }
.btn.accent:hover:not(:disabled) { filter: brightness(1.08); }
.btn.small { min-height: var(--tap-small); }
.input, .search-box, .expr, .add-group, .group, select.input, textarea.input { border-radius: var(--field-radius); }
.input:focus-visible, .expr:focus-visible, .search-box:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); outline: none; }
.input::placeholder, .search-box input::placeholder, .expr::placeholder { color: var(--muted); opacity: 0.85; }
.chip, .prio label, .tabs a, .es-chip { min-height: 40px; }
.chip-btn, .link-btn, .toast button { min-height: var(--tap-small); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--accent); width: 18px; height: 18px; }
.btn:focus-visible, .act:focus-visible, .chip:focus-visible, .chip-btn:focus-visible, .link-btn:focus-visible,
.tabs a:focus-visible, .nav a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.btn:disabled, .act:disabled, .chip-btn:disabled { opacity: 0.45; cursor: default; }

/* ---------- Welcome as cards ---------- */
.ob { max-width: 600px; margin: 18px auto 0; }
.ob-progress, .ob-nav, .ob-dots { display: none; }
.ob-on .ob-progress { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; font: 600 12px var(--ui); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.ob-bar { flex: 1; height: 4px; border-radius: 2px; background: var(--hair); overflow: hidden; }
.ob-bar i { display: block; height: 100%; width: 25%; background: var(--accent); transition: width .25s ease; }
.ob-title { font: 600 22px/1.25 var(--text); color: var(--ink); margin: 0; outline: none; }
.ob-title .meta { font: 500 13px var(--ui); margin-left: 6px; }
.welcome .ob-on .wstep { margin: 0; border: 1px solid var(--hair); border-radius: 16px; padding: 22px 20px; background: var(--field); min-height: 46vh; max-width: none; }
.welcome .ob-on .wstep[hidden] { display: none; }
.ob-on .ob-nav { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.ob-nav .grow { flex: 1; }
.ob-skip { color: var(--muted); text-decoration: underline; text-underline-offset: 3px; font-weight: 500; }
.ob-on .ob-dots { display: flex; justify-content: center; gap: 6px; margin: 14px 0 8px; }
.ob-dots i { width: 7px; height: 7px; border-radius: 50%; background: var(--rule); }
.ob-dots i.on { background: var(--ink); }
@media (max-width: 760px) {
  .welcome .ob-on .wstep { min-height: 56vh; padding: 18px 16px; }
  .ob-on .ob-nav { position: sticky; bottom: calc(10px + env(safe-area-inset-bottom)); background: var(--paper); padding: 8px 0; }
}
@media (prefers-reduced-motion: reduce) { .ob-bar i { transition: none; } }

/* ---------- Phones: app layout (bottom bar, sticky section chips, compact cards) ---------- */
.tabbar { display: none; }
.card-extra, .card-more { display: contents; }
@media (max-width: 760px) {
  .topbar .nav { display: none; }
  .topbar .wordmark, body.has-mast .topbar .wordmark { display: inline-block; opacity: 1; font-size: 15px; letter-spacing: 0.1em; margin-right: auto; }
  .topbar .wrap { min-height: 48px; }
  body:has(.tabbar) { padding-bottom: calc(62px + env(safe-area-inset-bottom, 0px)); }
  .tabbar { display: grid; grid-template-columns: repeat(4, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 35;
    padding: 4px max(8px, env(safe-area-inset-left, 0px)) calc(4px + env(safe-area-inset-bottom, 0px)) max(8px, env(safe-area-inset-right, 0px));
    background: var(--bar-bg); backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px); border-top: 1px solid var(--hair); }
  .tabbar a { min-height: 54px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    font: 500 11px var(--ui); color: var(--muted); border-radius: 12px; }
  .tabbar a[aria-current="page"] { color: var(--ink); font-weight: 600; }
  .tabbar a[aria-current="page"] .fillable { fill: currentColor; }
  .tabbar a:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
  .toast { bottom: calc(74px + env(safe-area-inset-bottom, 0px)); }
  .ob-on .ob-nav { bottom: calc(70px + env(safe-area-inset-bottom, 0px)); }

  /* section chips: stick under the top bar, the current section filled */
  .today-toolbar { position: sticky; top: 48px; z-index: 25; margin: 18px calc(-1 * var(--gutter)) 0; padding: 8px var(--gutter);
    background: var(--bar-bg); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-top: 0; }
  .today-toolbar .tabs { gap: 8px; min-width: 0; max-width: 100%; }   /* scrolls inside, never widens the page */
  .today-toolbar .tabs a { min-height: 36px; border: 1px solid var(--rule); color: var(--body); font-weight: 600; font-size: 13px; }
  .today-toolbar .tabs a.active { background: var(--ink); border-color: var(--ink); color: var(--paper); }
  [id="top"], #preprints, #methods, #top_journals, #news, #authors { scroll-margin-top: 104px; }

  /* compact cards below No. 1: title, authors, strength, key facts, two lines; the rest when Details opens */
  .card:not(.lead) { padding: 16px 0; gap: 5px; }
  .card:not(.lead) h3 { font-size: 17.5px; line-height: 1.3; }
  .card-extra { display: none; }
  .card:has(.details[open]) .card-extra { display: contents; }
  .card:not(.lead) .summary.clamp3 { -webkit-line-clamp: 2; }
  .card:not(.lead):has(.details[open]) .summary { -webkit-line-clamp: unset; display: block; }
  .card.lead .summary { font-size: 16.5px; }
}
.check { display: inline-flex; align-items: center; gap: 8px; min-height: var(--tap); font: 500 14px var(--ui); color: var(--body); cursor: pointer; }
.check input { margin: 0; cursor: pointer; }
.btn.danger { border-color: var(--ox); color: var(--ox); }
.btn.primary.danger { background: var(--ox); color: var(--on-ink); }
.admin-acts { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; }
.admin-acts form { display: inline-flex; gap: 6px; align-items: center; margin: 0; }
.admin-acts .check { min-height: var(--tap-small); font-size: 13px; }

/* ---------- Sample edition (signed out) ---------- */
.sample-tag { font: 600 12px var(--ui); letter-spacing: 0.04em; color: var(--accent); margin-right: 6px; }
.topbar .js-signin { flex: none; }
.signin-box { border: 0; border-radius: 12px; padding: 22px 20px; width: min(420px, calc(100vw - 32px)); background: var(--paper); color: var(--body); box-shadow: var(--shadow); position: fixed; }
.signin-box::backdrop { background: rgba(0, 0, 0, 0.45); }
.signin-close { position: absolute; top: 10px; right: 10px; margin: 0; }
.signin-form { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.signin-form .btn { margin-top: 8px; }

/* ---------- Editor's Desk: research profile and projects ---------- */
.rprofiles { display: flex; flex-direction: column; gap: 22px; margin-top: 18px; }
.rprofile { border: 1px solid var(--rule); border-radius: var(--radius); background: var(--field); padding: 18px 20px; display: flex; flex-direction: column; gap: 14px; }
.rprofile.project { border-style: dashed; }
.rp-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.rp-title { flex: 1 1 260px; min-width: 0; margin: 0; font: 600 20px var(--text); color: var(--ink); }
.rp-name { width: min(100%, 40ch); font: 600 20px var(--text); color: var(--ink); background: transparent; border: 0; border-bottom: 1px dashed var(--rule); padding: 2px 0; min-width: 12ch; }
.rp-tools { display: flex; gap: 8px; }
.rp-desc { margin: 0; font-size: 18px; line-height: 1.55; color: var(--body); }
.rp-desc.empty { font-style: normal; color: var(--muted); font-size: 15px; }
.rp-desc-wrap { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.rp-desc-wrap textarea { width: 100%; }
.rp-actions { display: flex; gap: 8px; }
.rp-row { display: flex; flex-direction: column; gap: 4px; }
.rp-row-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.rp-row-h h3 { margin: 0; font-size: 15px; }
.rp-offer { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; border-radius: var(--radius); background: var(--amber-soft); color: var(--body); font: 500 14px var(--ui); }
.rp-toggle { font: 400 14px var(--ui); color: var(--body); display: flex; align-items: center; gap: 6px; min-height: var(--tap-small); }
.rp-status.ok { color: var(--good); }
.rp-add { margin-top: 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.setup { border: 0; border-radius: 12px; padding: 22px 22px 16px; width: min(640px, calc(100vw - 24px)); max-height: calc(100vh - 40px); overflow: auto; background: var(--paper); color: var(--body); box-shadow: var(--shadow); }
.setup::backdrop { background: rgba(0, 0, 0, 0.45); }
.setup-close { position: absolute; top: 10px; right: 10px; margin: 0; }
.setup-h { margin: 0 0 6px; font: 600 22px var(--text); color: var(--ink); }
.setup-ai { margin: 0 0 14px; padding: 8px 10px; border-left: 3px solid var(--accent); background: var(--accent-soft); font: 400 13px/1.5 var(--ui); color: var(--body); }
.setup-step { display: flex; flex-direction: column; gap: 8px; }
.setup-step[hidden], .setup [hidden] { display: none; }
.setup-step textarea { width: 100%; }
.setup-q { border: 0; padding: 0; margin: 0 0 12px; }
.setup-q legend { font: 600 15px var(--ui); color: var(--ink); margin-bottom: 4px; }
.chip.pick { cursor: pointer; padding: 0 12px; }
.chip.pick[aria-pressed="true"] { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }
.setup-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 6px; }
.icon-btn { width: 36px; height: 36px; border: 0; border-radius: 999px; background: transparent; color: var(--muted); font-size: 22px; cursor: pointer; }
.more-fold { margin-top: 18px; }
.more-fold summary { cursor: pointer; font: 600 14px var(--ui); color: var(--accent); min-height: var(--tap-small); display: flex; align-items: center; }
.more-list { list-style: none; padding: 0; margin: 8px 0 0; display: flex; flex-direction: column; gap: 10px; }
.more-list li { border-top: 1px solid var(--hair); padding-top: 8px; }
.more-list .meta { display: block; }
.chip.narrow { border-color: var(--amber); color: var(--amber); }
