/* ─────────── resources ─────────── */
/* A link that leaves the app says so. */
.external-link { white-space: nowrap; }
.external-link .icon { width: auto; font-size: 0.8em; margin-left: 0.1875rem; vertical-align: -0.05em; }

/* A feed entry: where it came from, what it says, when it arrived. */
.entry-row { width: 100%; padding: 0.8125rem 0; border-bottom: 1px solid var(--line); }
.entry-row:last-child { border-bottom: 0; }
/* Only the title is the link. It takes the row's colour, and the focus ring is
 * on the link rather than the row, as in a note row. */
.entry-title a, .resource-name a, .entry-source a { color: inherit; text-decoration: none; }
.entry-title a:focus-visible, .resource-name a:focus-visible,
.entry-source a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.entry-source {
  margin-bottom: 0.1875rem;
  font-family: var(--mono);
  font-size: 0.75rem;
  letter-spacing: .03em;
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.entry-title {
  font-size: 0.96875rem;
  font-weight: 500;
  line-height: 1.34;
  letter-spacing: -.005em;
  color: var(--text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.entry-excerpt { margin-top: 0.25rem; font-size: 0.8125rem; line-height: 1.45; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.entry-time { margin-top: 0.3125rem; font-family: var(--mono); font-size: 0.75rem; color: var(--faint); }

/* A feed or a fetched page. */
.resource-row { width: 100%; padding: 0.875rem 0 0.9375rem; border-bottom: 1px solid var(--line); }
.resource-row:last-child { border-bottom: 0; }
.resource-row-top { display: flex; align-items: baseline; gap: 0.625rem; }
.resource-name {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--text);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: -.005em;
  overflow-wrap: break-word;
}
.resource-meta { margin-top: 0.3125rem; font-family: var(--mono); font-size: 0.75rem; color: var(--faint); letter-spacing: .02em; }
.resource-description {
  margin-top: 0.375rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ─────────── reader ─────────── */
.article-head { padding: 0 var(--pad); }
/* Above a heading this size rather than a row's title, so it needs the gap the
 * row does not. */
.article-head .entry-source { margin-bottom: 0.375rem; }
.article-title { margin: 0; font-size: 1.5625rem; font-weight: 600; line-height: 1.2; letter-spacing: -.025em; overflow-wrap: break-word; }
.article-meta { margin-top: 0.6875rem; font-family: var(--mono); font-size: 0.75rem; color: var(--faint); letter-spacing: .03em; line-height: 1.75; }
.article-meta a { color: var(--link); }
.feed-description { margin: 1rem 0 0; padding: 0 var(--pad) 1.125rem; font-size: 0.9375rem; line-height: 1.55; color: var(--muted); border-bottom: 1px solid var(--line); }
