:root {
  --ink: #f4f5f2;
  --muted: #a8ada8;
  --paper: #111310;
  --panel: #191c18;
  --panel-2: #20241f;
  --line: #333831;
  --acid: #d7ff3f;
  --orange: #ff8a3d;
  --red: #ff5f57;
  --blue: #72a8ff;
  --green: #67d391;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 85% 5%, rgba(215, 255, 63, .08), transparent 25rem),
    var(--paper);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
}

.topbar {
  min-height: 86px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  justify-content: space-between;
  gap: .8rem 2rem;
  padding: 1.15rem max(1.25rem, calc((100vw - 1120px) / 2));
  border-bottom: 1px solid var(--line);
  background: rgba(17, 19, 16, .88);
  backdrop-filter: blur(16px);
  position: sticky;
  top: 0;
  z-index: 10;
}
.brand-lockup { min-width: 0; }
.brand-title-row {
  display: flex;
  align-items: center;
  gap: .7rem;
  flex-wrap: wrap;
}
.online-counter {
  display: flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .7rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--muted);
  font-size: .8rem;
  white-space: nowrap;
}
.online-counter strong { color: var(--ink); }
.online-counter .status-dot { width: 8px; height: 8px; }
.header-actions {
  display: flex;
  align-items: center;
  gap: .65rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.header-contact {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .45rem .7rem;
  color: #c8d6a0;
  background: rgba(255, 255, 255, .02);
  font-size: .78rem;
  font-weight: 750;
  white-space: nowrap;
}
.header-contact:hover { color: var(--acid); border-color: rgba(215, 255, 63, .45); }

h1, h2, h3, p { margin-top: 0; }
h1 { margin: -.2rem 0 0; font-size: 1.55rem; letter-spacing: -.03em; }
h2 { margin-bottom: .6rem; font-size: clamp(1.45rem, 3vw, 2.25rem); line-height: 1.12; letter-spacing: -.04em; }
h3 { line-height: 1.25; letter-spacing: -.02em; }
.beta-badge {
  display: inline-flex;
  padding: .22rem .5rem;
  border: 1px solid rgba(215, 255, 63, .28);
  border-radius: 999px;
  color: #cce88a;
  background: rgba(215, 255, 63, .045);
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .01em;
}
.eyebrow {
  color: var(--acid);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .18em;
  margin-bottom: .25rem;
  text-transform: uppercase;
}
.workflow-strip {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .5rem;
  margin: .15rem 0 0;
  padding: .7rem 0 0;
  border-top: 1px solid rgba(255, 255, 255, .07);
  list-style: none;
}
.workflow-strip li {
  position: relative;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: .55rem;
  align-items: center;
  min-width: 0;
  margin: 0;
  color: var(--muted);
}
.workflow-strip li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 12px;
  right: .1rem;
  width: 1.25rem;
  height: 1px;
  background: var(--line);
}
.workflow-number {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid rgba(215, 255, 63, .35);
  border-radius: 50%;
  color: var(--acid);
  font: 800 .67rem/1 monospace;
}
.workflow-strip strong,
.workflow-strip small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workflow-strip strong { color: var(--ink); font-size: .72rem; }
.workflow-strip small { font-size: .64rem; }
.site-nav {
  width: min(1120px, calc(100% - 2rem));
  margin: .85rem auto 0;
  display: flex;
  gap: .4rem;
  flex-wrap: nowrap;
  overflow-x: auto;
  padding: .1rem 0 .2rem;
  white-space: nowrap;
}
.site-nav a {
  position: relative;
  flex: 0 0 auto;
  border: 0;
  border-radius: 7px;
  padding: .55rem .7rem .7rem;
  color: var(--muted);
  background: transparent;
  font-size: .84rem;
  font-weight: 850;
  transition: color .2s ease, background .2s ease;
}
.site-nav a::after {
  content: "";
  position: absolute;
  right: .7rem;
  bottom: .22rem;
  left: .7rem;
  height: 2px;
  border-radius: 999px;
  background: var(--acid);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .2s ease;
}
.site-nav a:hover {
  color: var(--ink);
  background: rgba(255, 255, 255, .04);
}
.site-nav a.active {
  color: var(--acid);
  background: rgba(215, 255, 63, .055);
}
.site-nav a.active::after { transform: scaleX(1); }
.site-nav a:focus-visible { outline: 2px solid var(--acid); outline-offset: 2px; }
.site-nav a[data-page-link="police"].active {
  color: var(--blue);
  background: rgba(114, 168, 255, .07);
}
.site-nav a[data-page-link="police"].active::after { background: var(--blue); }
.site-nav a[data-page-link="police"]:focus-visible { outline-color: var(--blue); }
.nav-new-badge {
  display: inline-flex;
  margin-left: .3rem;
  padding: .08rem .32rem;
  border-radius: 999px;
  color: #11130f;
  background: var(--acid);
  font-size: .55rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  vertical-align: .12rem;
}
.page-hidden { display: none; }
.static-page {
  min-height: 320px;
  display: grid;
  align-content: center;
}
.static-page > p:last-child {
  color: var(--muted);
  font-size: 1.05rem;
}
.contact-list {
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
}
.contact-list div {
  display: grid;
  gap: .3rem;
}
.contact-list strong { color: var(--ink); }
.policy-embed-panel {
  padding: 0;
  overflow: hidden;
}
.policy-embed {
  display: block;
  width: 100%;
  min-height: 78vh;
  border: 0;
  background: var(--paper);
}
.police-module {
  --police-accent: var(--blue);
}
.police-intro {
  border-color: rgba(114, 168, 255, .34);
  box-shadow: inset 3px 0 0 rgba(114, 168, 255, .78);
}
.police-eyebrow {
  color: var(--police-accent);
}
.police-subtitle {
  max-width: 850px;
  color: #dbe8ff;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  font-weight: 800;
  line-height: 1.45;
}
.police-intro > p:not(.eyebrow):not(.police-subtitle) {
  max-width: 920px;
  color: var(--muted);
}
.police-status-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  border-color: rgba(114, 168, 255, .28);
  background: linear-gradient(135deg, rgba(114, 168, 255, .08), rgba(25, 31, 25, .96) 52%);
}
.police-status-card h3,
.police-empty-state h3 {
  margin: 0 0 8px;
}
.police-status-card p:last-child,
.police-empty-state p {
  margin-bottom: 0;
  color: var(--muted);
}
.police-status-dot {
  flex: 0 0 auto;
  width: 12px;
  height: 12px;
  margin-top: 7px;
  border-radius: 50%;
  background: var(--police-accent);
  box-shadow: 0 0 18px rgba(114, 168, 255, .7);
}
.police-workspace {
  border-color: rgba(114, 168, 255, .24);
}
.police-workspace input:disabled {
  border-color: rgba(114, 168, 255, .24);
  background: rgba(8, 12, 18, .72);
  color: #8392a9;
  cursor: not-allowed;
  opacity: 1;
}
.police-workspace input:disabled::placeholder {
  color: #78869c;
}
.police-empty-state {
  margin-top: 20px;
  padding: 34px 24px;
  border: 1px dashed rgba(114, 168, 255, .32);
  border-radius: var(--radius-sm);
  background: rgba(10, 16, 24, .42);
  text-align: center;
}
.updates-intro {
  align-content: start;
}
.updates-list {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}
.publisher-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr);
  gap: 1.25rem;
  align-items: start;
}
.preview-panel {
  display: grid;
  gap: 1rem;
}
.update-card {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  background: #11130f;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 20px 55px rgba(0, 0, 0, .18);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.update-card:hover { transform: translateY(-2px); border-color: #444b42; box-shadow: 0 24px 65px rgba(0, 0, 0, .24); }
.article-progress { position: absolute; inset: 0 0 auto; z-index: 2; height: 3px; background: rgba(255, 255, 255, .06); }
.article-progress span { display: block; width: 0; height: 100%; background: var(--acid); transition: width .16s linear; }
.update-card img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  background: #0e100d;
  max-height: min(76vh, 820px);
}
.update-card-body {
  padding: clamp(1.15rem, 3vw, 2rem);
  min-width: 0;
}
.update-card-body h3 { max-width: 900px; margin: .65rem 0 .9rem; font-size: clamp(1.35rem, 3vw, 2rem); }
.update-card-body p {
  color: #d6d9d3;
  white-space: pre-wrap;
  max-width: 850px;
  font-size: 1rem;
  line-height: 1.72;
}
.news-article-kicker { padding-bottom: .75rem; border-bottom: 1px solid rgba(255, 255, 255, .07); }
.sourcewire { overflow: hidden; }
.sourcewire-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; margin-bottom: 1rem; }
.sourcewire-heading h2 { margin: .2rem 0 0; }
.sourcewire-live { display: inline-flex; align-items: center; gap: .45rem; color: var(--acid); font-size: .72rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.sourcewire-live span { width: .55rem; height: .55rem; border-radius: 50%; background: var(--acid); box-shadow: 0 0 0 4px rgba(215, 255, 63, .1); }
.sourcewire-card { display: grid; grid-template-columns: minmax(240px, .85fr) minmax(0, 1.15fr); min-height: 350px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #11130f; transition: opacity .22s ease; }
.sourcewire-card.sourcewire-changing { opacity: .72; }
.sourcewire-image { display: block; width: 100%; height: 100%; min-height: 350px; object-fit: cover; background: #0c0e0b; }
.sourcewire-image-fallback { display: grid; place-items: center; background: radial-gradient(circle at 45% 40%, #252c1e, #0c0e0b 70%); color: rgba(215, 255, 63, .62); font-size: clamp(1rem, 3vw, 1.6rem); font-weight: 900; letter-spacing: .16em; }
.sourcewire-body { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: clamp(1.25rem, 4vw, 2.6rem); }
.sourcewire-meta { margin: 0; color: var(--acid); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sourcewire-body h3 { margin: 1rem 0 1.5rem; font-size: clamp(1.5rem, 4vw, 2.7rem); line-height: 1.08; }
.sourcewire-controls { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; margin-top: auto; }
.sourcewire-controls > button { width: 2.55rem; height: 2.55rem; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--ink); }
.sourcewire-dots { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem; }
.sourcewire-dots button { width: .55rem; min-width: .55rem; height: .55rem; padding: 0; border: 0; border-radius: 50%; background: #555b52; box-shadow: none; }
.sourcewire-dots button.active { background: var(--acid); }
.sourcewire-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; margin-top: 1.4rem; }
.sourcewire-actions > * { width: fit-content; }
.sourcewire-open, .sourcewire-article { padding: .72rem 1rem; }
.sourcewire-article[aria-disabled="true"] { opacity: .55; pointer-events: none; }
.sourcewire-status { min-height: 1.2em; margin: .65rem 0 0; color: var(--muted); font-size: .78rem; }
@media (max-width: 720px) {
  .sourcewire-card { grid-template-columns: 1fr; min-height: 0; }
  .sourcewire-image { min-height: 210px; max-height: 300px; }
  .sourcewire-body { min-height: 310px; }
  .sourcewire-actions > * { flex: 1 1 12rem; text-align: center; }
}
.news-category { color: var(--acid); font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.article-actions { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; margin-top: 1rem; }
.article-link {
  display: inline-flex;
  width: fit-content;
  margin-top: .85rem;
  padding: .65rem .9rem;
  border: 1px solid rgba(215, 255, 63, .42);
  border-radius: 999px;
  color: var(--acid);
  font-size: .82rem;
  font-weight: 800;
  text-decoration: none;
}
.article-action {
  width: auto;
  margin-top: .85rem;
  padding: .65rem .9rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ink);
  background: transparent;
  font-size: .82rem;
  font-weight: 800;
}
.article-action:hover { border-color: rgba(215, 255, 63, .55); color: var(--acid); box-shadow: none; transform: none; }
.article-link:hover {
  border-color: var(--acid);
  background: rgba(215, 255, 63, .08);
}
.news-engagement {
  display: grid;
  gap: 1rem;
  margin-top: 1.25rem;
  padding: 1.25rem;
  border-top: 1px solid var(--line);
  border-radius: 9px;
  background: rgba(255, 255, 255, .018);
}
.like-row {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}
.like-button,
.comment-form button {
  width: auto;
  min-width: 112px;
  padding: .65rem .9rem;
  font-size: .82rem;
}
.like-button {
  background: #1d231b;
  color: var(--ink);
  border: 1px solid rgba(215, 255, 63, .42);
}
.like-button:hover {
  border-color: var(--acid);
  box-shadow: 0 0 0 3px rgba(215, 255, 63, .08);
}
.like-count {
  color: var(--muted);
  font-size: .9rem;
}
.comments-section {
  display: grid;
  gap: .85rem;
}
.comments-section h4 {
  margin: 0;
  font-size: 1rem;
}
.comment-form {
  display: grid;
  gap: .7rem;
  padding: .85rem;
  background: rgba(0, 0, 0, .18);
  border: 1px solid var(--line);
  border-radius: 10px;
}
.comment-form textarea {
  min-height: 84px;
}
.comment-status {
  min-height: 1.2rem;
  margin: 0;
  font-size: .86rem;
  color: var(--muted);
}
.comment-status.success {
  color: var(--green);
}
.comment-status.failed {
  color: #ff8b7f;
}
.comment-list {
  display: grid;
  gap: .65rem;
}
.comment-card {
  padding: .85rem;
  background: #0b0d0a;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.comment-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: baseline;
  margin-bottom: .45rem;
}
.comment-meta strong {
  color: var(--ink);
}
.comment-meta span {
  color: var(--muted);
  font-size: .78rem;
}
.comment-card p {
  margin: 0;
  overflow-wrap: anywhere;
}
.preview-card {
  grid-template-columns: 1fr;
}
.preview-card img {
  max-height: 360px;
}
.update-caption {
  display: grid;
  gap: .35rem;
  margin-top: 1rem;
  padding: .85rem;
  border-left: 3px solid var(--acid);
  background: rgba(215, 255, 63, .05);
}
.update-caption strong {
  color: var(--acid);
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.update-caption span {
  color: #d6d9d3;
  white-space: pre-wrap;
}

main { width: min(1120px, calc(100% - 2rem)); margin: 2rem auto 5rem; }
.panel {
  background: linear-gradient(145deg, rgba(32, 36, 31, .94), rgba(24, 27, 23, .96));
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: clamp(1.2rem, 3vw, 2rem);
  margin-bottom: 1rem;
  box-shadow: 0 18px 50px rgba(0, 0, 0, .16);
}
.intro { display: grid; grid-template-columns: 1.5fr .8fr; gap: 2rem; align-items: end; }
.intro > div > p:last-child, .section-copy { color: var(--muted); max-width: 720px; margin-bottom: 0; }
.status-card {
  display: flex;
  gap: .8rem;
  align-items: center;
  background: var(--paper);
  border: 1px solid var(--line);
  padding: 1rem;
  border-radius: 10px;
}
.status-card small { color: var(--muted); display: block; }
.status-dot { width: 10px; height: 10px; background: var(--green); border-radius: 50%; box-shadow: 0 0 14px var(--green); }

form { display: grid; gap: 1rem; }
.field { display: grid; gap: .45rem; }
.field.nested { margin-top: 1rem; }
label { font-weight: 700; font-size: .86rem; }
input, textarea, select {
  width: 100%;
  color: var(--ink);
  background: #0e100d;
  border: 1px solid #3b4139;
  border-radius: 8px;
  padding: .9rem 1rem;
  font: inherit;
  outline: none;
  transition: border .2s, box-shadow .2s;
}
input:focus, textarea:focus, select:focus { border-color: var(--acid); box-shadow: 0 0 0 3px rgba(215, 255, 63, .12); }
textarea { resize: vertical; min-height: 110px; }
select { appearance: auto; }
details summary { cursor: pointer; color: var(--muted); font-weight: 700; }

button {
  border: 0;
  border-radius: 8px;
  padding: .95rem 1.2rem;
  color: #10120e;
  background: var(--acid);
  font: inherit;
  font-weight: 850;
  cursor: pointer;
  transition: transform .15s, opacity .15s;
}
button:hover { transform: translateY(-1px); }
button:disabled { opacity: .55; cursor: wait; }
button.secondary { padding: .65rem .9rem; background: transparent; color: var(--acid); border: 1px solid var(--acid); }
.results-toolbar { display: flex; justify-content: flex-end; margin: 0 0 .8rem; }
.result-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .65rem;
  margin: 0 0 1rem;
}
.result-metric {
  min-width: 0;
  padding: .8rem .9rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(17, 19, 15, .72);
}
.result-metric strong,
.result-metric span { display: block; }
.result-metric strong { color: var(--ink); font-size: 1rem; }
.result-metric span {
  margin-top: .2rem;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.chronology-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem;
  margin: 0 0 1rem;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(14, 16, 13, .82);
}
.timeline-search {
  flex: 1 1 220px;
  min-width: 180px;
}
.timeline-search label {
  display: block;
  margin: 0 0 .35rem;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.timeline-search-field {
  position: relative;
}
.timeline-search-field input {
  min-height: 40px;
  padding: .62rem 4.4rem .62rem .75rem;
  font-size: .82rem;
}
.timeline-search-field input::-webkit-search-cancel-button {
  appearance: none;
  -webkit-appearance: none;
}
.timeline-search-clear {
  position: absolute;
  top: 50%;
  right: .35rem;
  width: auto;
  min-height: 30px;
  padding: .3rem .55rem;
  border: 0;
  border-radius: 6px;
  color: var(--acid);
  background: rgba(215, 255, 63, .08);
  font-size: .7rem;
  font-weight: 850;
}
.timeline-search-clear:hover,
.timeline-search-clear:focus-visible { background: rgba(215, 255, 63, .15); }
.toolbar-group { display: flex; flex-wrap: wrap; gap: .35rem; }
.toolbar-button {
  width: auto;
  min-height: 36px;
  padding: .48rem .65rem;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--muted);
  background: transparent;
  font-size: .74rem;
  font-weight: 800;
  white-space: nowrap;
}
.toolbar-button:hover,
.toolbar-button:focus-visible {
  border-color: rgba(215, 255, 63, .48);
  color: var(--ink);
  background: rgba(215, 255, 63, .045);
}
.toolbar-button.active {
  border-color: rgba(215, 255, 63, .6);
  color: var(--acid);
  background: rgba(215, 255, 63, .075);
}
.toolbar-status {
  flex: 1 0 100%;
  min-height: 1.1rem;
  margin: 0;
  color: var(--muted);
  font-size: .72rem;
}
.timeline-no-results {
  flex: 1 0 100%;
  margin: 0;
  padding: .85rem 1rem;
  border: 1px dashed rgba(255, 138, 61, .55);
  border-radius: 8px;
  color: #f2b184;
  background: rgba(255, 138, 61, .055);
  font-size: .82rem;
  font-weight: 750;
}
.copy-report-buffer {
  position: fixed;
  left: -100000px;
  top: 0;
  width: min(1200px, 90vw);
  pointer-events: none;
}
.clipboard-fallback {
  position: fixed;
  left: -100000px;
  top: 0;
}
.button-link {
  display: inline-block;
  border-radius: 8px;
  padding: .65rem .9rem;
  color: #10120e;
  background: var(--acid);
  font-weight: 850;
}
.button-link.secondary { background: transparent; color: var(--acid); border: 1px solid var(--acid); }
.error { color: #ff938e; margin: 0; font-weight: 700; }
.hidden { display: none !important; }

.loading { display: flex; align-items: center; gap: 1rem; }
.loading p { color: var(--muted); margin: .15rem 0 0; }
.spinner {
  width: 32px; height: 32px; border: 3px solid var(--line); border-top-color: var(--acid);
  border-radius: 50%; animation: spin .8s linear infinite; flex: none;
}
@keyframes spin { to { transform: rotate(360deg); } }

.section-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-bottom: 1.2rem; }
.section-heading h2 { margin: 0; }
.timestamp, .count { color: var(--muted); font-size: .82rem; }
.count { border: 1px solid var(--line); border-radius: 99px; padding: .35rem .7rem; }
.dna-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: .7rem; }
.dna-item { min-height: 92px; padding: .85rem; background: #11130f; border: 1px solid var(--line); border-radius: 8px; }
.dna-item span { display: block; color: var(--muted); text-transform: uppercase; font-size: .68rem; letter-spacing: .08em; margin-bottom: .35rem; }
.notice { margin-top: 1rem; padding: .85rem 1rem; border-left: 3px solid var(--blue); background: rgba(114, 168, 255, .07); color: var(--muted); }
.notice strong { color: var(--ink); }

.source-list { display: grid; gap: .7rem; margin-top: 1.3rem; }
.source-card {
  display: grid;
  grid-template-columns: 55px 1fr;
  background: #11130f;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 7px 20px rgba(0, 0, 0, .12);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.source-card[hidden] { display: none !important; }
.source-card:hover {
  border-color: rgba(215, 255, 63, .24);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .2);
  transform: translateY(-1px);
}
.lead-card { border-style: dashed; border-color: rgba(255, 138, 61, .55); }
.context-card { border-left: 3px solid var(--orange); }
.source-number { color: #697068; font: 800 1.05rem/1 monospace; padding: 1.2rem 1rem; border-right: 1px solid var(--line); background: rgba(255, 255, 255, .012); }
.source-body { padding: 1.15rem; min-width: 0; }
.timeline-card .source-body { padding: 1.25rem 1.35rem; }
.source-body h3 { margin: .65rem 0 .5rem; }
.timeline-card .source-body h3 { max-width: 920px; margin: .8rem 0 .7rem; font-size: clamp(1.02rem, 1.7vw, 1.22rem); line-height: 1.35; }
.source-body p { color: #c8ccc6; }
.source-meta, .source-footer { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem 1rem; color: var(--muted); font-size: .78rem; }
.timeline-card .source-meta { gap: .45rem .8rem; }
.source-publisher { color: #e3e6df; font-weight: 800; }
.source-date { color: #b7bdb4; font-variant-numeric: tabular-nums; }
.source-provenance { color: #7f877d; }
.source-summary-block { max-width: 940px; margin: 0 0 1rem; }
.source-summary-block .source-summary { margin: 0; color: #cfd3cc; line-height: 1.62; }
.source-summary-block .source-summary-note { margin: .52rem 0 0; color: #858d82; font-size: .72rem; line-height: 1.45; }
.summary-unavailable .source-summary { color: #aeb5ab; font-style: italic; }
.article-extract-evidence { margin-top: .55rem; font-size: .85rem; overflow-wrap: anywhere; }
.article-extract-evidence blockquote { margin: .75rem 0; padding-left: .75rem; border-left: 2px solid var(--line); }
.article-extracted-text { white-space: pre-wrap; max-height: 24rem; overflow: auto; margin-top: .75rem; }
#article-extract-progress { margin: .75rem 0; color: var(--muted); font-size: .8rem; }
#article-extract-progress button { margin-bottom: .7rem; }
.source-footer { justify-content: space-between; border-top: 1px solid var(--line); padding-top: .8rem; }
.timeline-card .source-footer { gap: .75rem 1rem; }
.source-verification { display: grid; gap: .18rem; min-width: 0; }
.source-verification strong { color: #c4cac1; font-size: .72rem; font-weight: 850; text-transform: uppercase; letter-spacing: .045em; }
.source-verification span { color: #7f877d; }
.timeline-card .source-footer a { flex: none; padding: .42rem .62rem; border: 1px solid rgba(215, 255, 63, .28); border-radius: 7px; }
.timeline-card .source-footer a:hover,
.timeline-card .source-footer a:focus-visible { border-color: rgba(215, 255, 63, .62); background: rgba(215, 255, 63, .06); }
.compact-timeline .source-card { grid-template-columns: 44px 1fr; }
.compact-timeline .source-number { padding: .85rem .75rem; font-size: .94rem; }
.compact-timeline .source-body { padding: .8rem .9rem; }
.compact-timeline .source-body h3 { margin: .4rem 0 .3rem; font-size: 1rem; }
.compact-timeline .source-body p { margin: .35rem 0; font-size: .86rem; }
.compact-timeline .source-footer { padding-top: .55rem; }
a { color: var(--acid); text-decoration: none; font-weight: 750; }
.badge { border: 1px solid currentColor; border-radius: 4px; padding: .16rem .38rem; font-size: .65rem; text-transform: uppercase; font-weight: 850; letter-spacing: .06em; }
.badge.official { color: var(--green); }
.badge.mainstream { color: var(--blue); }
.badge.local { color: var(--orange); }
.badge.weak { color: var(--red); }

.comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.compare-card { padding: 1.1rem; background: #11130f; border: 1px solid var(--line); border-top: 3px solid var(--muted); border-radius: 8px; }
.compare-card.confirmed { border-top-color: var(--green); }
.compare-card.single { border-top-color: var(--blue); }
.compare-card.missing { border-top-color: var(--orange); }
.compare-card.contradiction { border-top-color: var(--red); }
.compare-card h3 { font-size: 1rem; }
ul { margin: .6rem 0 0; padding-left: 1.2rem; }
li { margin-bottom: .5rem; color: #d3d6d1; }
.empty, .caution { color: var(--muted); font-style: italic; }
.caution { font-size: .82rem; margin: 1rem 0 0; }
.empty-state { padding: 2rem; text-align: center; border: 1px dashed var(--line); color: var(--muted); }

.draft-panel { border-color: rgba(215, 255, 63, .36); }
#draft > h3 { font-size: clamp(1.35rem, 3vw, 2rem); max-width: 850px; }
.draft-copy { max-width: 760px; color: #d6d9d3; padding-left: 1rem; border-left: 3px solid var(--acid); }
.angle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.5rem 0; }
.angle-grid > div { background: #11130f; border: 1px solid var(--line); padding: 1rem; border-radius: 8px; }
.angle-grid span { color: var(--acid); font-size: .7rem; letter-spacing: .12em; font-weight: 850; }
.hashtags { color: var(--acid); font-weight: 800; word-spacing: .35rem; }
.draft-warning { color: var(--orange); font-size: .82rem; margin-bottom: 0; }

.feedback-panel { margin-top: 2rem; }
.feedback-panel form { margin-top: 1.2rem; }
.feedback-panel .optional { color: var(--muted); font-weight: 500; }
.feedback-trap {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.feedback-status { min-height: 1.5rem; margin: 0; font-weight: 700; }
.feedback-status.success { color: var(--green); }
.feedback-status.failed { color: #ff938e; }

.admin-shell { min-height: 100vh; display: grid; place-items: center; margin: 0 auto; }
.admin-card { width: min(520px, 100%); }
.admin-card form { margin-top: 1.25rem; }
.admin-actions { display: flex; align-items: center; gap: .65rem; }
.admin-actions form { margin: 0; }
.report-list { display: grid; gap: .8rem; margin-top: 1.2rem; }
.report-card { padding: 1.1rem; background: #11130f; border: 1px solid var(--line); border-radius: 10px; }
.report-message { margin: 1rem 0; white-space: pre-wrap; color: #d6d9d3; }
.report-card dl { display: grid; grid-template-columns: 110px 1fr; gap: .35rem .75rem; margin: 0; font-size: .84rem; }
.report-card dt { color: var(--muted); }
.report-card dd { margin: 0; overflow-wrap: anywhere; }
code { color: var(--acid); }

.diagnostics > summary { color: var(--ink); }
.nested-heading { margin-top: 1.4rem; }
.diagnostics > div { margin-top: 1rem; }
.diagnostic-row { display: flex; flex-wrap: wrap; gap: .6rem; }
.diagnostic-row span { background: #11130f; border: 1px solid var(--line); border-radius: 99px; padding: .35rem .65rem; font-size: .8rem; }
.universe-list { display: grid; gap: .4rem; }
.universe-list > div { padding: .7rem; background: #11130f; border-radius: 6px; font-size: .83rem; }
.universe-list small { display: block; color: var(--muted); margin: .2rem 0 0 3.8rem; }

#coverage-reader { margin-top: 1.5rem; padding: clamp(1.25rem, 4vw, 2.5rem); }
#coverage-title { color: #b7ff2f; font-size: .85rem; letter-spacing: .16em; }
#coverage-count { margin: .35rem 0 1.75rem; color: var(--muted); }
#coverage-reader .coverage-byline { color: var(--muted); font-size: .8rem; line-height: 1.6; letter-spacing: .04em; text-transform: uppercase; }
#coverage-publisher { color: #b7ff2f; font-weight: 700; }
#coverage-headline { margin: .75rem 0 1rem; font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.25; overflow-wrap: anywhere; }
#coverage-description { margin: 0 0 1.5rem; line-height: 1.75; color: #d2d8ce; }
#coverage-reader .coverage-evidence { margin: 0 0 1.75rem; font-size: .8rem; color: var(--muted); }
#coverage-reader .coverage-evidence summary { cursor: pointer; width: fit-content; }
#coverage-reader .coverage-evidence p { line-height: 1.6; overflow-wrap: anywhere; }
#coverage-reader .coverage-navigation { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .75rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
#coverage-reader .coverage-navigation button { min-width: 0; font-size: .8rem; letter-spacing: .04em; }
#coverage-position { color: var(--muted); font-size: .85rem; font-variant-numeric: tabular-nums; }
#coverage-reader .coverage-progress-row { display: flex; align-items: center; gap: .9rem; margin: 1.2rem 0 1.75rem; font-size: .65rem; letter-spacing: .08em; color: var(--muted); }
#coverage-reader .coverage-progress { position: relative; flex: 1; height: 2px; margin: 0 5px; background: var(--line); }
#coverage-reader .coverage-progress > span { position: absolute; top: -4px; left: var(--coverage-position, 0%); width: 10px; height: 10px; transform: translateX(-50%); border-radius: 50%; background: #b7ff2f; box-shadow: 0 0 0 3px #b7ff2f15; }
#coverage-reader .coverage-original-row { margin: 0; }
#coverage-original { display: block; width: fit-content; max-width: 100%; text-align: center; font-size: .8rem; letter-spacing: .04em; }
@media (max-width: 520px) {
  #coverage-reader .coverage-navigation { gap: .5rem; }
  #coverage-reader .coverage-navigation button { padding: .75rem .4rem; font-size: .72rem; }
  #coverage-original { width: 100%; }
}

footer { max-width: 1120px; margin: 0 auto; padding: 0 1rem 3rem; color: #737970; font-size: .8rem; text-align: center; display: grid; gap: .35rem; }
footer a { color: #b7ff2f; }

@media (max-width: 800px) {
  .topbar { position: static; grid-template-columns: 1fr; }
  .header-actions { justify-content: flex-start; width: 100%; }
  .workflow-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workflow-strip li::after { display: none; }
  .site-nav {
    margin-top: .75rem;
    flex-wrap: wrap;
    overflow: visible;
    white-space: normal;
  }
  .intro, .comparison-grid, .angle-grid, .update-card, .publisher-grid { grid-template-columns: 1fr; }
  .dna-grid { grid-template-columns: 1fr 1fr; }
  .update-card img { max-height: none; }
  .chronology-toolbar { align-items: stretch; }
  .timeline-search { flex-basis: 100%; }
}

@media (max-width: 520px) {
  main { width: min(100% - 1rem, 1120px); margin-top: .5rem; }
  .topbar { gap: .75rem; padding: 1rem; }
  .brand-title-row { gap: .45rem; }
  .header-contact { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
  .online-counter { font-size: .76rem; }
  .panel { border-radius: 9px; padding: 1rem; }
  .dna-grid { grid-template-columns: 1fr; }
  .source-card { grid-template-columns: 1fr; }
  .source-number { border-right: 0; border-bottom: 1px solid var(--line); padding: .65rem 1rem; }
  .timeline-card .source-body { padding: 1rem; }
  .source-provenance { flex-basis: 100%; }
  .timeline-card .source-footer { align-items: stretch; }
  .timeline-card .source-footer a { width: 100%; text-align: center; }
  .section-heading { align-items: flex-start; }
  .result-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .toolbar-group { width: 100%; }
  .toolbar-button { flex: 1 1 auto; }
  .compact-timeline .source-card { grid-template-columns: 1fr; }
  .article-actions { align-items: stretch; }
  .article-action { flex: 1 1 100%; justify-content: center; text-align: center; }
}

@media (max-width: 360px) {
  .workflow-strip { grid-template-columns: 1fr; }
  .workflow-strip small { white-space: normal; }
  .result-summary { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
