.project-meta {
  margin-top: 5px;
  color: #66ccff;
  font-size: 9px;
  font-weight: normal;
  line-height: 1.45;
  white-space: normal;
}

.project-record {
  margin-top: 6px;
  font-weight: normal;
}

.project-record summary {
  color: #7e8792;
  cursor: pointer;
  display: inline-block;
  font-size: 9px;
  letter-spacing: .4px;
  list-style: none;
  user-select: none;
}

.project-record summary::-webkit-details-marker {
  display: none;
}

.project-record summary::before {
  color: #00ffff;
  content: "[+] ";
}

.project-record[open] summary::before {
  content: "[−] ";
}

.project-record[open] summary {
  color: #00ffff;
}

.record-grid {
  background: #07090c;
  border: 1px solid #252a31;
  display: grid;
  gap: 8px 12px;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  margin-top: 7px;
  max-width: 720px;
  padding: 9px;
}

.record-grid div {
  min-width: 0;
}

.record-grid b,
.record-grid span {
  display: block;
}

.record-grid b {
  color: #8d95a3;
  font-size: 8px;
  letter-spacing: .4px;
  margin-bottom: 2px;
}

.record-grid span {
  color: #d4d8de;
  font-size: 9px;
  overflow-wrap: anywhere;
}

.project-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 135px;
}

.action-link,
.action-disabled,
.copy-id {
  background: #000;
  border: 1px solid #343b45;
  color: #00ffff;
  cursor: pointer;
  display: inline-block;
  font: 700 9px 'Courier New', monospace;
  padding: 5px 7px;
  text-decoration: none;
  white-space: nowrap;
}

.action-link:hover,
.copy-id:hover,
.copy-id.copied {
  border-color: #00ffff;
  color: #fff;
}

.action-disabled {
  color: #626b77;
  cursor: not-allowed;
}

.newslink {
  font-size: 9px;
}

.results-meta {
  align-self: center;
  color: #aef7d1;
  font-size: 10px;
  font-weight: bold;
}

.results-meta.is-filtered {
  color: #ffcc00;
}

.clear-filters {
  border-color: #8d95a3;
}

.export-inline {
  border-color: #00ffff;
  color: #00ffff;
}

.export-meta {
  align-self: center;
  color: #8d95a3;
  font-size: 10px;
}

.release-meta {
  color: #8d95a3;
}

.news-quality {
  border: 1px solid #555;
  display: inline-block;
  padding: 1px 4px;
}

.news-quality.relevant {
  border-color: #167d4d;
  color: #60ff9c;
}

.news-quality.unverified {
  border-color: #6b4b25;
  color: #d6a66f;
}

@media (max-width: 768px) {
  .project-meta {
    font-size: 8px;
  }

  .record-grid {
    grid-template-columns: 1fr;
    min-width: 230px;
  }

  .project-actions {
    align-items: flex-start;
    flex-direction: column;
    min-width: 68px;
  }

  /* A thumb, not a mouse pointer. These were measured at 37 x 21 px on the
     served page — below Apple's 44 x 44 minimum and well below Android's
     48 dp — in a product whose reported defect was that its primary control
     could not be hit. Making them smaller on the smaller screen was exactly
     backwards. inline-flex so the label centres inside the enlarged box. */
  .action-link,
  .action-disabled,
  .copy-id {
    align-items: center;
    display: inline-flex;
    font-size: 9px;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
    padding: 4px 6px;
  }

  .results-meta,
  .export-meta {
    width: 100%;
  }
}

/* The V9.3 status line is longer than V7.1. Preserve the V5 shell and
   three-gauge layout, but stack only the header where the 250 px sidebar
   otherwise clips that status between tablet and mobile widths. */
@media (min-width: 769px) and (max-width: 920px) {
  .header {
    align-items: flex-start;
    flex-direction: column;
  }

  .status {
    width: 100%;
    white-space: normal;
  }
}

/* V9.3.1 exposes official identity and update fields as desktop columns.
   Mobile keeps the same facts in the compact project metadata line. */
.project-meta {
  display: none;
}

/* DESKTOP ONLY, AND THAT IS THE WHOLE FIX.

   This declaration was unconditional. The media query above it closes on the
   preceding line, so it applied at every width, and on a phone it forced a
   1280 px table inside a 371 px wrapper. Measured 2026-09-05 at 393 x 852:
   the ACTIONS column's MAP anchor was drawn with its left edge at x = 1156,
   763 px past the right edge of the viewport, and document.elementFromPoint()
   at the anchor's own centre returned null. The link was correct and pointed
   at the canonical receiver; it simply could not be reached with a thumb.
   That is what "the map button doesn't work just tested on mobile" was.

   Eleven columns do not fit on a phone and never did, which is why v7.css
   hides five of them below 769 px and the row markup re-states their facts in
   .project-meta and .mobile-extra. Both halves are needed: measured by
   ablation, this rule alone left the anchor 346 px off-screen and the column
   rule alone left it 799 px off-screen. */
@media (min-width: 769px) {
  .tablewrap table {
    min-width: 1280px;
  }
}

.reference-cell {
  color: #66ccff;
  font-size: 10px;
}

.globalgrid-ref {
  overflow-wrap: anywhere;
}

.repd-updated {
  color: #d4d8de;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .project-meta {
    display: block;
  }
}
