/* OFFENSIVE LABS TECHNOLOGIES - offensivelabs.tech | css/research.css
   Page styles for research.html (the credibility engine). Loads AFTER
   css/main.css. Source of truth: DESIGN.md v5.0 - vibrant monochrome by
   inversion. HARD RULE: no hue anywhere; page colors come from main.css
   tokens only. */

/* Anchored sections clear the fixed header. */
#disclosure { scroll-margin-top: calc(var(--header-h) + 0.5rem); }

/* ----- //01 RESEARCH TRACKS — numbered index rows, hairline-divided ----- */
.track-rows { border-top: 1px solid var(--line); }

.track-row {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr) auto;
  gap: var(--space-4) var(--space-5);
  align-items: baseline;
  padding: var(--space-5) var(--space-2);
  border-bottom: 1px solid var(--line);
  transition: background-color var(--t-fast) var(--ease);
}
.track-row:hover { background: var(--wash); }

.track-index {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-label);
  color: var(--ink-faint);
  margin: 0;
}

.track-name { margin-bottom: var(--space-2); }

.track-abstract {
  color: var(--ink-muted);
  max-width: 56ch;
  margin: 0;
}

/* Chip base (mono/10px/uppercase/ink-muted/line border) comes from the
   shared .chip group in main.css; this chip's wider tracking, padding
   and grid placement differ and stay here. */
.track-eng {
  letter-spacing: 0.14em;
  padding: 2px 8px;
  margin: 0;
  white-space: nowrap;
  justify-self: end;
}

@media (max-width: 719px) {
  .track-row { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .track-row:hover { background: transparent; }
  .track-eng { justify-self: start; }
  .track-row:hover .track-eng { border-color: var(--line-strong); }
  .pub-table .pub-tags { max-width: 14rem; }
}

/* ----- //02 WRITING — dense editorial table on the spec-sheet base ----- */
.pub-table .pub-title { font-weight: 500; }
.pub-table .pub-date {
  font-family: var(--font-mono);
  font-size: 0.8125rem;
  color: var(--ink-muted);
  white-space: nowrap;
}
.pub-table td:first-child { white-space: nowrap; }

/* v5: publication rows invert fully on hover (DESIGN.md 4.4). */
.pub-table tbody tr { transition: background-color var(--t-fast) var(--ease); }
.pub-table tbody tr:hover { background: var(--accent); }
.pub-table tbody tr:hover td { color: var(--accent-ink); }

.pub-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
}
/* v5: tag chips - outlined mono at rest, FULL inversion on hover (4.4);
   inside an inverted row they counter-invert so both stay legible.
   Chip base comes from the shared .chip group in main.css. */
.pub-tag {
  border-color: var(--line-strong);
  white-space: nowrap;
  transition:
    background-color var(--t-fast) var(--ease),
    border-color var(--t-fast) var(--ease),
    color var(--t-fast) var(--ease);
}
.pub-tag:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-ink);
}
.pub-table tbody tr:hover .pub-tag {
  background: var(--accent-ink);
  border-color: var(--accent-ink);
  color: var(--accent);
}

.pub-note {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--ink-faint);
  margin: var(--space-4) 0 0;
}
.pub-note a { color: var(--ink-muted); text-decoration-color: var(--line-strong); }
.pub-note a:hover { color: var(--ink); text-decoration-color: var(--accent); }

@media (prefers-reduced-motion: reduce) {
  .pub-table tbody tr,
  .pub-tag { transition: none; }
}

/* ----- //03 DISCLOSURE — mono policy rows, link styled to match ----- */
.disclosure-list { margin-top: var(--space-4); }
.disclosure-list .spec-v a { color: var(--ink-muted); text-decoration-color: var(--line-strong); }
.disclosure-list .spec-v a:hover { color: var(--ink); text-decoration-color: var(--accent); }

/* ----- //04 FROM THE LAB — two UNEVEN notes, not a card grid ----- */
.lab-notes {
  display: grid;
  grid-template-columns: 1.45fr 1fr;
  gap: var(--space-5);
  align-items: start;
}

.lab-note-date {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--ink-faint);
  margin: 0 0 var(--space-3);
}
.lab-note .card-text { margin: 0; }

@media (max-width: 859px) {
  .lab-notes { grid-template-columns: minmax(0, 1fr); }
}
