.brand { display: inline-flex; align-items: center; gap: .65rem; overflow-wrap: anywhere; }
.editorial-body { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 1.1rem; line-height: 1.8; }
.member-links { white-space: nowrap; font-size: .85rem; }
.site-logo { width: auto; max-width: 140px; height: 42px; object-fit: contain; flex-shrink: 0; }
.admin-brand { overflow-wrap: anywhere; min-width: 0; }
.admin-brand .site-logo { max-width: 48px; height: 36px; }
.settings-logo-preview { max-width: 240px; max-height: 100px; object-fit: contain; }
.hero--text {
  grid-template-columns: minmax(0, 760px);
}

.language-picker { display: flex; align-items: center; gap: .45rem; font-size: .82rem; }
.language-picker select, .language-picker button { min-height: 2.35rem; }
.language-picker button { padding: .4rem .65rem; }
.admin-section-nav { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1rem 0 2rem; }
.admin-section-nav a { border: 1px solid var(--line); border-radius: 999px; padding: .45rem .8rem; }
.ad-slot { margin: 1.5rem 0; padding: 1rem; border: 1px solid var(--line); background: var(--panel); text-align: center; }
.ad-slot__disclosure { display: block; color: var(--muted); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.ad-slot img { display: block; width: min(100%, 640px); height: auto; aspect-ratio: 4 / 1; object-fit: contain; margin: .5rem auto; }
.ad-slot a { display: inline-flex; align-items: center; gap: .8rem; }
.ad-area-editor { margin-bottom: 1.5rem; }

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

.hero > *,
.grid > *,
.card {
  min-width: 0;
}

.hero h1 a {
  text-decoration: none;
}

.hero h1,
.card h2 {
  overflow-wrap: anywhere;
}

:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}

.source-showcase {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
}

.source-showcase li {
  background: var(--card);
  border: 1px solid var(--line);
  display: grid;
  gap: .45rem;
  padding: 1.25rem;
}

.source-showcase__name {
  font: 700 1.25rem Georgia, serif;
}

.source-showcase li > span,
.source-showcase__external {
  color: var(--muted);
  font-size: .86rem;
}

@media (max-width: 760px) {
  .source-showcase {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .source-showcase {
    grid-template-columns: 1fr;
  }
}

.pagination {
  align-items: center;
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr auto 1fr;
  margin: 2.5rem 0 1rem;
}

.pagination__link {
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ink);
  justify-self: start;
  padding: .65rem 1rem;
  text-decoration: none;
}

.pagination__link:last-child {
  justify-self: end;
}

.pagination__link:hover,
.pagination__link:focus-visible {
  border-color: var(--accent);
  color: var(--accent);
}

.pagination__status {
  color: var(--muted);
  font-size: .9rem;
}

.diagnostics-wrap {
  overflow-x: auto;
}

.diagnostics {
  background: var(--card);
  border-collapse: collapse;
  font-size: .86rem;
  min-width: 980px;
  width: 100%;
}

.diagnostics th,
.diagnostics td {
  border: 1px solid var(--line);
  padding: .75rem;
  text-align: left;
  vertical-align: top;
}

.diagnostics thead th {
  background: var(--ink);
  color: white;
}

.diagnostics tbody th span,
.diagnostics tbody th small {
  color: var(--muted);
  font-weight: normal;
}

.source-updated {
  color: var(--muted);
  font-size: .9rem;
}

.article-content {
  font: 1.05rem/1.75 Georgia, serif;
  margin-top: 2rem;
}

.article-content img {
  height: auto;
  max-width: 100%;
}

.article-figure {
  margin: 2rem 0;
}

.article-figure .article-image {
  margin-bottom: .5rem;
}

.article-figure figcaption {
  color: var(--muted);
  font-size: .85rem;
}

.article-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  list-style: none;
  padding: 0;
}

.article-tags li {
  background: #eceff1;
  border-radius: 999px;
  font-size: .8rem;
  padding: .3rem .7rem;
}

.admin-login {
  margin: 4rem auto;
  max-width: 520px;
}

.admin-form {
  display: grid;
  gap: .75rem;
  margin-top: 1.5rem;
}

.admin-form input {
  border: 1px solid var(--line);
  font: inherit;
  padding: .8rem;
}

.admin-form button,
.source-form > button,
.admin-actions button,
.diagnostics button,
.admin-danger-zone button {
  background: var(--ink);
  border: 0;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  padding: .7rem 1rem;
}

.admin-form button:hover,
.source-form > button:hover,
.admin-actions button:hover,
.diagnostics button:hover {
  background: var(--accent);
}

.admin-header {
  align-items: start;
  display: flex;
  gap: 2rem;
  justify-content: space-between;
}

.admin-stats {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, 1fr);
}

.admin-stats div {
  background: var(--card);
  border: 1px solid var(--line);
  display: grid;
  gap: .3rem;
  padding: 1.25rem;
}

.admin-stats strong {
  font: 700 2rem Georgia, serif;
}

.admin-stats span,
.admin-feed-url {
  color: var(--muted);
  font-size: .85rem;
}

.admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.admin-actions form {
  margin: 0;
}

.button--danger {
  background: #7d1d1d;
}

.admin-danger-zone {
  background: #fff7f7;
  border: 1px solid #d9a5a5;
  margin-top: 2rem;
  padding: 1.25rem;
}

.admin-danger-zone form {
  display: grid;
  gap: 1rem;
  justify-items: start;
}

.notice {
  background: #edf7ed;
  border-left: 4px solid #357a38;
  margin: 1rem 0;
  padding: 1rem;
}

.notice--error {
  background: #fff0f0;
  border-color: #a52323;
}

.admin-editor {
  margin: 2rem auto;
  max-width: 820px;
}

.source-form {
  display: grid;
  gap: 1.5rem;
}

.source-form fieldset {
  border: 1px solid var(--line);
  display: grid;
  gap: .65rem;
  margin: 0;
  padding: 1.25rem;
}

.source-form legend {
  font: 700 1.25rem Georgia, serif;
  padding: 0 .4rem;
}

.source-form input,
.source-form textarea,
.source-form select {
  background: var(--card);
  border: 1px solid var(--line);
  color: var(--ink);
  font: inherit;
  padding: .75rem;
  width: 100%;
}

.source-form input[readonly] {
  background: #eceff1;
  color: var(--muted);
}

.source-form small {
  color: var(--muted);
}

.source-form .check {
  align-items: center;
  display: flex;
  gap: .5rem;
}

.source-form .check input {
  width: auto;
}

.check--warning {
  background: #fff6df;
  border-left: 4px solid #a56300;
  padding: .75rem;
}

.check-group {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1.25rem;
}

.check-group > span {
  flex-basis: 100%;
}

.source-form__columns {
  grid-template-columns: repeat(2, 1fr);
}

.html-selector-editor {
  background: #f7f8f8;
  border: 1px solid var(--line);
  display: grid;
  gap: .6rem;
  padding: .85rem;
}

.html-selector-editor summary {
  cursor: pointer;
  font-weight: 700;
}

@media (max-width: 620px) {
  .source-form__columns {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .admin-header {
    display: grid;
  }

  .admin-stats {
    grid-template-columns: 1fr;
  }

  .search {
    max-width: 100%;
  }

  .search input {
    width: 0;
  }
}
/* Privacy-friendly analytics dashboard */
.analytics-filter{display:flex;align-items:end;gap:1rem;flex-wrap:wrap;margin:1.5rem 0}.analytics-filter label{display:grid;gap:.35rem}.analytics-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.25rem 0 2rem}.analytics-panel,.analytics-trend{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.25rem}.analytics-panel h2,.analytics-trend h2{margin-top:0}.analytics-section-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap}.analytics-section-heading .eyebrow{margin:0}.analytics-section-heading span{color:var(--muted);font-size:.86rem}.analytics-trend-list,.analytics-ranking{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.analytics-trend-list{margin-top:1.25rem}.analytics-trend-list li{display:grid;grid-template-columns:3.5rem minmax(0,1fr) 3rem;align-items:center;gap:.8rem}.analytics-trend-list time,.analytics-trend-list strong{font-size:.82rem;font-variant-numeric:tabular-nums}.analytics-trend-list strong{text-align:right}.analytics-ranking li>div{display:flex;justify-content:space-between;gap:1rem}.analytics-ranking li span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics-ranking progress,.analytics-trend-list progress{display:block;width:100%;height:.7rem;accent-color:var(--accent)}.analytics-details{margin:1.25rem 0}.analytics-details>summary{cursor:pointer;font-weight:700;padding:.9rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}.analytics-details[open]>summary{border-radius:12px 12px 0 0}.analytics-more>.analytics-grid{margin-top:1rem}@media(max-width:900px){.analytics-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-grid{grid-template-columns:1fr}}@media(max-width:540px){.analytics-summary{grid-template-columns:1fr}.analytics-trend-list li{grid-template-columns:3rem minmax(0,1fr) 2rem;gap:.45rem}}
.category-preferences{background:var(--card);border:1px solid var(--line);padding:1rem;margin-bottom:1rem}.category-preferences summary{cursor:pointer;font-weight:700}.category-preferences fieldset{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.ad-slot--homepage_top,.ad-slot--homepage_bottom{margin:2rem 0;min-height:90px}
.ad-area-preview{display:block;width:min(100%,640px);max-height:180px;object-fit:contain;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.5rem}
.admin-media-preview{display:block;width:min(100%,640px);max-height:360px;margin:.75rem 0;border-radius:10px}
