/* Shared visual language with the IPN archive: Inter, ink, teal, quiet surfaces. */
@font-face { font-family: Inter; src: url('fonts/inter-variable.woff2') format('woff2'); font-weight:100 900; font-style:normal; font-display:swap; }
:root {
  color-scheme:light;
  --ink:#0b1113; --ink-soft:#28383d; --muted:#56696f;
  --current:#176a61; --current-dark:#10534c; --current-soft:#e8f3f0;
  --paper:#f5f8f7; --line:#dce5e3; --white:#fff;
  --review-accent:var(--current); --review-border:var(--line);
  --review-text:var(--ink-soft); --review-muted:var(--muted);
  --font-heading:Inter; --font-body:Inter; --font-mono:Inter;
  font-size:100%; line-height:1.55;
}
body { font-family:Inter,system-ui,sans-serif; background:var(--white); color:var(--ink-soft); }
html { background:var(--white); }
button,input,textarea,select { font:inherit; }
button,a,input,select,summary { touch-action:manipulation; }
a { color:var(--current); text-underline-offset:.2em; }
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible,.credit-info:focus-visible { outline:3px solid var(--current); outline-offset:4px; }
.skip-link { position:fixed; top:-100px; left:20px; z-index:100; padding:12px 20px; border-radius:9px; background:var(--ink); color:#fff; }
.skip-link:focus { top:12px; }
.dashboard { max-width:1536px; margin:auto; padding:40px clamp(20px,4vw,56px) 0; }
.dashboard-header { gap:24px; margin-bottom:32px; align-items:flex-end; }
.title-lockup h1 { font-size:clamp(1.8rem,3vw,2.6rem); font-weight:600; line-height:1.15; letter-spacing:-.035em; color:var(--ink); }
.eyebrow { font:500 .85rem/1.5 Inter,system-ui,sans-serif; color:var(--muted); letter-spacing:.025em; text-transform:none; margin-bottom:10px; }
.release-picker { padding:0; gap:6px; grid-template-columns:1fr; background:none; border:0; box-shadow:none; }
.release-picker > span { font:500 .8rem/1.4 Inter,system-ui,sans-serif; text-transform:none; letter-spacing:0; color:var(--muted); }
.release-picker select { min-height:44px; font-size:.94rem; font-weight:500; border:1px solid #728780; background:var(--white); border-radius:9px; }
.view-tabs { gap:28px; margin:0; border-color:var(--line); }
.view-tabs button { min-height:52px; padding:12px 0; font-size:.94rem; font-weight:600; color:var(--muted); }
.view-tabs button[aria-selected=true] { color:var(--current); border-bottom-color:var(--current); }
.scope-note { margin:22px 0 8px; font-size:.85rem; color:var(--muted); max-width:100ch; }
.scope-note p:first-child { font-size:.94rem; font-weight:600; }
.context-disclosures { display:flex; flex-wrap:wrap; gap:0 28px; border-bottom:1px solid var(--line); margin-bottom:24px; padding-bottom:8px; }
.context-disclosures > details { margin:0; font-size:.85rem; }
.context-disclosures > details[open] { flex-basis:100%; }
.context-disclosures p { max-width:90ch; color:var(--muted); }
#triage-advanced summary,.review-advanced summary,.research-analysis > summary { min-height:44px; padding:11px 0; font-size:.85rem; font-weight:500; color:var(--current); }
.triage-intro,.research-intro { gap:20px; margin-bottom:20px; font-size:.85rem; }
.triage-intro p,.research-intro p { color:var(--muted); max-width:85ch; }
#triage-freshness,#research-freshness { font-size:.75rem; color:var(--muted); }
.triage-filter-panel,.research-filter-panel { padding:24px; background:var(--paper); border:0; border-radius:14px; margin-bottom:24px; }
.triage-search-grid,.research-search-grid { gap:24px; }
.triage-search-grid label,.research-search-grid label { font-size:.85rem; font-weight:600; }
.triage-search-grid small,.research-search-grid small { color:var(--muted); font-size:.75rem; }
.triage-search-grid input,.triage-search-grid textarea,.research-search-grid input,.research-search-grid select,.triage-signal-filters select,#triage-sort,#update-type { min-height:48px; padding:11px 12px; border:1px solid #728780; border-radius:9px; background:var(--white); font-size:1rem; color:var(--ink); }
input::placeholder,textarea::placeholder { color:var(--muted); opacity:1; }
#triage-advanced,.research-filter-panel .review-advanced { margin-top:12px; }
.triage-facets legend,.triage-signal-filters label { font-size:.85rem; }
.triage-check { min-height:36px; font-size:.85rem; margin:0; }
.triage-check input,.triage-table input[type=checkbox] { accent-color:var(--current); width:20px; height:20px; }
.triage-toolbar,.research-toolbar { gap:16px; margin:24px 0 16px; }
.triage-toolbar strong,.research-toolbar strong { font-size:1.15rem; letter-spacing:-.02em; font-weight:600; color:var(--ink); }
#shortlist-count,#tracked-count { font-size:.75rem; color:var(--muted); margin:6px 0 0; }
.triage-actions,.research-actions { gap:8px; }
.triage-actions button,.research-actions button,.triage-pagination button,.research-pagination button,.review-dialog-close,#export-updates,#update-list button { min-height:44px; padding:10px 14px; font-size:.8rem; font-weight:500; color:var(--current); background:var(--white); border:1px solid #728780; border-radius:9px; cursor:pointer; }
.triage-actions .primary-button,.research-actions .primary-button { background:var(--current); border-color:var(--current); color:#fff; }
button:disabled { opacity:.5; cursor:default; }
button:not(:disabled):hover { filter:brightness(.97); }
.triage-actions button[aria-pressed=true] { background:var(--current-soft); border-color:var(--current); }
#update-groups,.research-analysis { padding:0; border:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); border-radius:0; margin:16px 0; background:var(--white); font-size:.85rem; }
#update-groups > p { max-width:90ch; color:var(--muted); }
#update-type { width:auto; max-width:100%; margin-left:8px; }
.triage-sort-row { color:var(--muted); font-size:.75rem; }
#triage-sort { font-size:.8rem; min-height:44px; }
.triage-table-wrap,.registry-table-wrap { border-color:var(--line); border-radius:12px; }
.review-table th { color:var(--muted); background:var(--paper); font-size:.75rem; font-weight:600; text-transform:none; letter-spacing:0; line-height:1.4; padding:12px; border-color:var(--line); }
.review-table td { font-size:.8rem; color:var(--ink-soft); padding:16px 12px; border-color:var(--line); }
.review-table td small,.triage-table td small { color:var(--muted); font-size:.7rem; }
.triage-table th button { min-height:32px; }
.cve-detail-link { color:var(--current); font-weight:600; min-height:32px; }
.cve-title { color:var(--ink-soft); }
.review-table .view-button { min-height:44px; min-width:44px; font-size:.75rem; color:var(--current); }
.triage-table .is-selected { background:var(--current-soft); }
.signal-tag { white-space:normal; }
.severity-critical { color:#a62f26; }
.reporting-green { color:#176a61; }
.credit-entry { color:var(--ink-soft); }
#research-panel .summary-cards { gap:16px; margin:24px 0; grid-template-columns:repeat(4,minmax(0,1fr)); }
#research-panel .summary-card { padding:20px; border:1px solid var(--line); border-radius:12px; background:var(--white); }
#research-panel .summary-card:hover,#research-panel .summary-card.selected { background:var(--paper); border-color:var(--current); }
#research-panel .card-icon { display:none; }
#research-panel .card-label { color:var(--muted); font-size:.8rem; font-weight:500; }
#research-panel .summary-card > strong { font-size:2rem; font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums; }
#research-panel .summary-card > p { color:var(--muted); font-size:.75rem; }
#research-panel .summary-card > i { height:3px; background:var(--line); }
#research-panel .facet-chip { min-height:44px; }
#research-panel .facet-chip[aria-pressed=true] { background:var(--current-soft); }
.research-table-note { font-size:.75rem; }
.review-dialog { color:var(--ink-soft); background:var(--white); border-color:var(--line); border-radius:18px; padding:28px; }
.review-dialog::backdrop { background:#0b111366; }
.detail-facts { background:var(--paper); }
#triage-detail-content p,#triage-detail-content li,.research-details dd { font-size:.94rem; }
.detail-facts dt,.research-details dt,#triage-dialog small,#triage-dialog .remediation-list span { color:var(--muted); font-size:.8rem; }
.research-details .drawer-link { font-size:.85rem; padding:12px 16px; }
.triage-pagination,.research-pagination { font-size:.8rem; color:var(--muted); }
footer { border-top:1px solid var(--line); margin-top:24px; padding:24px 0; font-size:.75rem; }
footer a { display:inline-flex; align-items:center; min-height:44px; }
@media(max-width:1100px) { .triage-toolbar { align-items:flex-start; } .triage-actions { width:100%; } }
@media(max-width:760px) {
  .dashboard { padding-top:24px; }
  .dashboard-header { align-items:stretch; margin-bottom:24px; }
  .release-picker { width:100%; grid-template-columns:1fr; }
  .view-tabs { gap:20px; flex-wrap:nowrap; }
  .view-tabs button { flex:1; font-size:.85rem; text-align:left; }
  .context-disclosures { gap:0 16px; }
  .triage-filter-panel,.research-filter-panel { padding:20px; }
  .triage-search-grid,.research-search-grid { gap:20px; }
  .triage-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  #research-panel .summary-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  #research-panel .summary-card { padding:16px; }
  .review-dialog { padding:20px; }
  .detail-facts { grid-template-columns:1fr; }
}
@media(prefers-contrast:more) { :root { --line:#56696f; } }
@media(forced-colors:active) { .view-tabs button[aria-selected=true],.summary-card.selected { border:2px solid Highlight; } .triage-filter-panel,.research-filter-panel { border:1px solid CanvasText; } }

/* Keep the matching Details action on one line in both result tables. */
.research-table th:nth-child(7) { width:84px; }
.review-table .view-button { white-space:nowrap; }

/* Accessible controls and readable record layouts at narrow widths. */
.active-filters button { min-width:44px; min-height:44px; font-size:1rem; border:0; background:transparent; color:var(--current); cursor:pointer; }
.shortlist-target { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; cursor:pointer; }
.triage-table th:nth-child(1) { width:68px; }
.cve-detail-link,.triage-table th button,.facet-row { min-height:44px; }
/* The hit area is generous; only the small symbol is visibly outlined. */
.credit-info { min-width:44px; height:44px; flex-basis:44px; font-size:.75rem; background:transparent; border:0; border-radius:9px; }
.credit-info-symbol { display:grid; place-items:center; width:1.25rem; height:1.25rem; border:1px solid #b6d9d4; border-radius:50%; background:var(--current-soft); color:var(--current-dark); font-weight:600; line-height:1; }
.credit-info:hover,.credit-info:focus-visible { background:transparent; color:var(--current-dark); }
.credit-info:hover .credit-info-symbol,.credit-info:focus-visible .credit-info-symbol { background:var(--current); border-color:var(--current); color:#fff; }
@media(max-width:760px) {
  .review-table,.triage-table,.research-table { min-width:0; width:100%; display:block; }
  .review-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .review-table tbody { display:block; }
  .review-table tr { display:flex; flex-direction:column; padding:20px; border-bottom:1px solid var(--line); }
  .review-table tr:last-child { border-bottom:0; }
  .review-table td { display:block; width:100% !important; min-width:0 !important; height:auto; padding:6px 0; border:0; overflow-wrap:anywhere; }
  .review-table td[data-label]::before { content:attr(data-label); display:block; color:var(--muted); font-size:.75rem; margin-bottom:4px; }
  .research-table td:nth-child(1) { order:0; }
  .research-table td:nth-child(2) { order:1; }
  .research-table td:nth-child(6) { order:2; }
  .research-table td:nth-child(3),.research-table td:nth-child(4),.research-table td:nth-child(5) { display:none; }
  .research-table td:nth-child(7) { order:3; text-align:left; }
  .triage-table td:nth-child(1) { order:5; }
  .triage-table td:nth-child(1) label::after { content:'Shortlist'; margin-left:8px; }
  .triage-table td:nth-child(3)::before { content:'Products'; display:block; color:var(--muted); }
  .triage-table td:nth-child(5)::before { content:'CVSS'; display:block; color:var(--muted); }
  .triage-table td:last-child { order:6; }
  .review-table .view-button { padding:10px 14px; border:1px solid #728780; border-radius:9px; }
  .review-table .credit-name { max-width:none; }
}
@media(max-width:760px) {
  .credit-tooltip { left:auto; right:0; transform:none; white-space:normal; }
  .credit-info:hover .credit-tooltip,.credit-info:focus .credit-tooltip { transform:none; }
  .credit-tooltip::after { left:auto; right:16px; }
}
