mirror of
https://github.com/0xMarcio/cve.git
synced 2026-10-27 16:51:03 +00:00
82,000 CVEs sat behind one URL. Each of them is a query somebody types, and the pages answering those queries belonged to other people: searching "CVE-2026-72898 poc" returns SentinelOne, Horizon3, Wiz and BishopFox, all of them serving one page per CVE. Pages are flat files at /CVE-2026-72898. No /cve/ prefix, no extension, no trailing slash. GitHub Pages resolves an extensionless request to the .html beside it, checked against the live site rather than assumed. Each page carries what the index already knows and nothing invented: every CVSS assessment with its vector, EPSS with percentile, KEV date and ransomware flag, Nuclei severity and CWE, and the PoC links grouped by source with stars and last push. 94% of them carry three or more of those signals. Discovery works two ways. sitemap.xml is now an index over one shard per year, which fits the 50,000 URL cap on the split the data already has and lets a crawler refetch only the year that moved. Search results link to the CVE page instead of straight out to NVD, which moves to a chip beside CVE.ORG, and each page links six related CVEs picked by shared PoC author. Rendering all of them takes 20s and adds nothing to the repository: the payloads they read are already gitignored and built in CI, so the pages go into the Pages artifact and git never sees them.
610 lines
18 KiB
CSS
610 lines
18 KiB
CSS
/* PoC Index. GitHub Primer dark_default tokens, per the refit handoff. */
|
|
:root {
|
|
--canvas: #0d1117;
|
|
--canvas-subtle: #161b22;
|
|
--border: #30363d;
|
|
--border-muted: #21262d;
|
|
--fg: #e6edf3;
|
|
--fg-subtle: #c9d1d9;
|
|
--fg-muted: #9198a1;
|
|
--neutral: #7d8590;
|
|
--accent: #58a6ff;
|
|
--accent-hover: #79c0ff;
|
|
--accent-emphasis: #1f6feb;
|
|
--attention: #e3b341;
|
|
--danger: #f85149;
|
|
--mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
--sans: 'Space Grotesk', system-ui, -apple-system, sans-serif;
|
|
}
|
|
|
|
*, *::before, *::after { box-sizing: border-box; }
|
|
* { scrollbar-width: thin; scrollbar-color: var(--border) transparent; }
|
|
|
|
html, body { margin: 0; padding: 0; background: var(--canvas); min-height: 100%; }
|
|
body {
|
|
font-family: var(--sans);
|
|
-webkit-font-smoothing: antialiased;
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: 100vh;
|
|
}
|
|
|
|
a { color: var(--accent); text-decoration: none; }
|
|
a:hover { color: var(--accent-hover); }
|
|
:focus-visible { outline: 2px solid var(--accent-emphasis); outline-offset: 2px; border-radius: 2px; }
|
|
[hidden] { display: none !important; }
|
|
|
|
.container { max-width: 1240px; width: 100%; margin: 0 auto; padding: 0 32px; }
|
|
|
|
/* ---- hero, the same card the README banner draws ------------------------ */
|
|
|
|
.hero-bar { padding-top: 30px; }
|
|
.hero {
|
|
position: relative;
|
|
overflow: hidden;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 32px;
|
|
flex-wrap: wrap;
|
|
padding: 26px 28px;
|
|
background: var(--canvas-subtle);
|
|
border: 1px solid var(--border);
|
|
border-radius: 6px;
|
|
}
|
|
.hero-radar {
|
|
position: absolute;
|
|
right: -40px;
|
|
top: 50%;
|
|
width: 300px;
|
|
height: 300px;
|
|
transform: translateY(-50%);
|
|
pointer-events: none;
|
|
opacity: .5;
|
|
}
|
|
.hero-radar circle { fill: none; stroke: var(--accent-emphasis); stroke-width: 2; opacity: .35; }
|
|
.hero-radar .hero-sweep {
|
|
stroke: var(--accent);
|
|
stroke-width: 3;
|
|
stroke-linecap: round;
|
|
opacity: .55;
|
|
transform-origin: 200px 200px;
|
|
animation: hero-sweep 8s linear infinite;
|
|
}
|
|
@keyframes hero-sweep { to { transform: rotate(360deg); } }
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.hero-radar .hero-sweep { animation: none; }
|
|
}
|
|
|
|
.hero-id { position: relative; min-width: 0; }
|
|
.hero-id h1 {
|
|
margin: 0;
|
|
font: 700 34px/1 var(--mono);
|
|
letter-spacing: .06em;
|
|
color: var(--fg);
|
|
}
|
|
.hero-id p {
|
|
margin: 12px 0 0;
|
|
font: 400 13.5px/1 var(--mono);
|
|
color: var(--fg-muted);
|
|
}
|
|
|
|
.hero-stats { position: relative; display: flex; gap: 44px; margin: 0; flex-wrap: wrap; }
|
|
.hero-stats dt {
|
|
font: 700 27px/1 var(--mono);
|
|
letter-spacing: -.02em;
|
|
color: var(--fg);
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
.hero-stats dt.is-accent { color: var(--accent); }
|
|
.hero-stats dt.is-danger { color: var(--danger); }
|
|
.hero-stats dd {
|
|
margin: 8px 0 0;
|
|
font: 500 10px/1 var(--mono);
|
|
letter-spacing: .12em;
|
|
color: var(--neutral);
|
|
}
|
|
|
|
/* ---- search ------------------------------------------------------------- */
|
|
|
|
.search-bar { padding-top: 18px; }
|
|
.search {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 13px;
|
|
height: 52px;
|
|
padding: 0 17px;
|
|
background: var(--canvas-subtle);
|
|
border: 1px solid var(--border);
|
|
border-radius: 6px;
|
|
}
|
|
.search:focus-within { border-color: var(--accent-emphasis); }
|
|
.search svg { flex: none; display: block; }
|
|
.search input {
|
|
flex: 1;
|
|
min-width: 0;
|
|
background: transparent;
|
|
border: 0;
|
|
outline: 0;
|
|
padding: 0;
|
|
font: 400 15px/1 var(--mono);
|
|
color: var(--fg);
|
|
}
|
|
.search input::placeholder { color: var(--neutral); }
|
|
.search-status {
|
|
flex: none;
|
|
white-space: nowrap;
|
|
font: 400 11.5px/1 var(--mono);
|
|
color: var(--fg-muted);
|
|
}
|
|
.filters {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-height: 35px;
|
|
margin-top: 8px;
|
|
font: 500 10px/1 var(--mono);
|
|
letter-spacing: .07em;
|
|
}
|
|
.filter-caption { margin-right: 2px; color: var(--neutral); }
|
|
.filter-menu { position: relative; }
|
|
.filter-trigger {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 9px;
|
|
height: 31px;
|
|
min-width: 154px;
|
|
padding: 0 10px;
|
|
color: var(--neutral);
|
|
border: 1px solid var(--border-muted);
|
|
border-radius: 4px;
|
|
background: var(--canvas-subtle);
|
|
font: 500 10px/1 var(--mono);
|
|
letter-spacing: .07em;
|
|
cursor: pointer;
|
|
}
|
|
.filter-menu[data-filter-menu="source"] .filter-trigger { min-width: 174px; }
|
|
.filter-trigger strong {
|
|
margin-left: auto;
|
|
color: var(--fg-subtle);
|
|
font: inherit;
|
|
}
|
|
.filter-trigger::after {
|
|
width: 6px;
|
|
height: 6px;
|
|
margin: -3px 1px 0 4px;
|
|
border-right: 1px solid var(--fg-muted);
|
|
border-bottom: 1px solid var(--fg-muted);
|
|
transform: rotate(45deg);
|
|
content: '';
|
|
}
|
|
.filter-trigger:hover, .filter-trigger[aria-expanded="true"] {
|
|
color: var(--fg-muted);
|
|
border-color: var(--fg-muted);
|
|
}
|
|
.filter-trigger[aria-expanded="true"]::after { margin-top: 3px; transform: rotate(225deg); }
|
|
.filter-popover {
|
|
position: absolute;
|
|
z-index: 20;
|
|
top: calc(100% + 6px);
|
|
left: 0;
|
|
width: 210px;
|
|
padding: 6px;
|
|
color: var(--fg-muted);
|
|
border: 1px solid var(--border);
|
|
border-radius: 5px;
|
|
background: var(--canvas-subtle);
|
|
box-shadow: 0 12px 28px rgba(1, 4, 9, .55);
|
|
}
|
|
.filter-option {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 9px;
|
|
min-height: 31px;
|
|
padding: 0 7px;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
}
|
|
.filter-option:hover { background: var(--canvas); }
|
|
.filter-option input {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
opacity: 0;
|
|
}
|
|
.filter-check {
|
|
position: relative;
|
|
width: 13px;
|
|
height: 13px;
|
|
flex: none;
|
|
border: 1px solid var(--border);
|
|
border-radius: 3px;
|
|
background: var(--canvas);
|
|
}
|
|
.filter-option input:focus-visible + .filter-check {
|
|
outline: 2px solid var(--accent);
|
|
outline-offset: 2px;
|
|
}
|
|
.filter-option input:checked + .filter-check {
|
|
border-color: var(--accent);
|
|
background: var(--accent);
|
|
}
|
|
.filter-option input:checked + .filter-check::after {
|
|
position: absolute;
|
|
top: 1px;
|
|
left: 4px;
|
|
width: 3px;
|
|
height: 7px;
|
|
border-right: 2px solid #fff;
|
|
border-bottom: 2px solid #fff;
|
|
transform: rotate(45deg);
|
|
content: '';
|
|
}
|
|
.filter-option-label { color: var(--fg-subtle); }
|
|
.filter-toggle, .filter-clear {
|
|
height: 31px;
|
|
padding: 0 10px;
|
|
color: var(--fg-muted);
|
|
border: 1px solid var(--border-muted);
|
|
border-radius: 4px;
|
|
background: var(--canvas-subtle);
|
|
font: 500 10px/1 var(--mono);
|
|
letter-spacing: .07em;
|
|
cursor: pointer;
|
|
}
|
|
.filter-toggle:hover, .filter-clear:hover { color: var(--fg); border-color: var(--fg-muted); }
|
|
.filter-toggle[aria-pressed="true"] {
|
|
color: var(--danger);
|
|
border-color: rgba(248, 81, 73, .45);
|
|
background: rgba(248, 81, 73, .1);
|
|
}
|
|
.filter-clear { margin-left: auto; color: var(--accent); background: transparent; }
|
|
.filters :disabled { cursor: wait; opacity: .45; }
|
|
|
|
.content { flex: 1; padding-top: 26px; padding-bottom: 48px; }
|
|
|
|
/* ---- shared table shell ------------------------------------------------- */
|
|
|
|
.panel { border: 1px solid var(--border); border-radius: 6px; overflow: hidden; }
|
|
.panel-head {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 10px;
|
|
padding: 13px 16px;
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
.panel-head h2 {
|
|
flex: none;
|
|
margin: 0;
|
|
font: 600 14px/1 var(--sans);
|
|
letter-spacing: -.01em;
|
|
color: var(--fg);
|
|
}
|
|
.panel-count {
|
|
flex: none;
|
|
white-space: nowrap;
|
|
font: 400 11.5px/1 var(--mono);
|
|
color: var(--fg-muted);
|
|
}
|
|
.col-head {
|
|
display: grid;
|
|
padding: 8px 16px;
|
|
background: var(--canvas-subtle);
|
|
border-bottom: 1px solid var(--border);
|
|
font: 500 10.5px/1 var(--mono);
|
|
letter-spacing: .1em;
|
|
color: var(--fg-muted);
|
|
}
|
|
|
|
/* ---- state A: results --------------------------------------------------- */
|
|
|
|
.results .col-head, .result-row { grid-template-columns: 196px minmax(0, 1fr); }
|
|
.result-row { display: grid; border-bottom: 1px solid var(--border-muted); }
|
|
.result-row:last-child { border-bottom: 0; }
|
|
|
|
.result-meta { padding: 16px; border-right: 1px solid var(--border-muted); }
|
|
.result-id { font: 500 13.5px/1.2 var(--mono); letter-spacing: -.01em; }
|
|
.result-pocs { margin-top: 8px; font: 400 11.5px/1 var(--mono); color: var(--fg-muted); }
|
|
.result-dates {
|
|
margin: 12px 0 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
font: 400 11px/1.4 var(--mono);
|
|
color: var(--fg-muted);
|
|
}
|
|
.chips { margin-top: 13px; display: flex; gap: 6px; flex-wrap: wrap; }
|
|
.chip {
|
|
font: 400 11px/1 var(--mono);
|
|
letter-spacing: .06em;
|
|
color: var(--fg-muted);
|
|
border: 1px solid var(--border);
|
|
border-radius: 4px;
|
|
padding: 5px 8px;
|
|
}
|
|
a.chip:hover { color: var(--fg); border-color: var(--fg-muted); }
|
|
.chip-kev {
|
|
font-weight: 500;
|
|
color: var(--danger);
|
|
background: rgba(248, 81, 73, .1);
|
|
border-color: rgba(248, 81, 73, .4);
|
|
}
|
|
.chip-sev { font-weight: 500; letter-spacing: .08em; }
|
|
.chip-sev.is-critical { color: #ff7b72; border-color: rgba(255, 123, 114, .45); background: rgba(255, 123, 114, .1); }
|
|
.chip-sev.is-high { color: #f0883e; border-color: rgba(240, 136, 62, .45); background: rgba(240, 136, 62, .1); }
|
|
.chip-sev.is-medium { color: var(--attention); border-color: rgba(227, 179, 65, .4); background: rgba(227, 179, 65, .1); }
|
|
.chip-sev.is-low { color: var(--fg-muted); }
|
|
.chip-epss { color: var(--fg-muted); font-variant-numeric: tabular-nums; }
|
|
.chip-epss.is-hot { color: #f0883e; border-color: rgba(240, 136, 62, .45); background: rgba(240, 136, 62, .1); }
|
|
|
|
.result-body { padding: 16px; min-width: 0; }
|
|
.result-desc {
|
|
margin: 0;
|
|
max-width: 96ch;
|
|
font: 400 13.5px/1.6 var(--sans);
|
|
color: var(--fg-subtle);
|
|
max-height: 3.2em;
|
|
overflow: hidden;
|
|
text-wrap: pretty;
|
|
}
|
|
.result-desc.is-open { max-height: none; }
|
|
.expander {
|
|
margin-top: 8px;
|
|
background: transparent;
|
|
border: 0;
|
|
padding: 0;
|
|
cursor: pointer;
|
|
font: 400 11px/1 var(--mono);
|
|
color: var(--accent);
|
|
}
|
|
.expander:hover { color: var(--accent-hover); }
|
|
|
|
.poc-list { margin-top: 14px; border-top: 1px solid var(--border-muted); }
|
|
.poc-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) 78px 52px;
|
|
gap: 14px;
|
|
align-items: center;
|
|
padding: 9px 0;
|
|
border-bottom: 1px solid var(--border-muted);
|
|
}
|
|
.poc-name {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
font: 400 12.5px/1 var(--mono);
|
|
color: var(--fg-muted);
|
|
}
|
|
.poc-sep { color: var(--neutral); }
|
|
.poc-name a { color: var(--fg); font-weight: 500; }
|
|
.poc-name a:hover { color: var(--accent); }
|
|
.poc-name a.plain { color: var(--fg-muted); font-weight: 400; }
|
|
.poc-tag {
|
|
display: inline-block;
|
|
min-width: 42px;
|
|
margin-right: 7px;
|
|
padding: 2px 5px;
|
|
border-radius: 3px;
|
|
text-align: center;
|
|
font: 600 9px/1 var(--mono);
|
|
letter-spacing: .08em;
|
|
color: #a5d6ff;
|
|
background: rgba(56, 139, 253, .12);
|
|
border: 1px solid rgba(56, 139, 253, .4);
|
|
}
|
|
.poc-tag.is-msf { color: #d2a8ff; background: rgba(163, 113, 247, .12); border-color: rgba(163, 113, 247, .4); }
|
|
.poc-tag.is-edb { color: #7ee787; background: rgba(63, 185, 80, .12); border-color: rgba(63, 185, 80, .4); }
|
|
.poc-tag.is-vulhub { color: #ffa657; background: rgba(210, 153, 34, .12); border-color: rgba(210, 153, 34, .4); }
|
|
.poc-tag.is-afrog, .poc-tag.is-xray, .poc-tag.is-0day, .poc-tag.is-poc { color: #a5d6ff; background: rgba(56, 139, 253, .1); border-color: rgba(56, 139, 253, .35); }
|
|
.poc-tag.is-advisory { color: var(--fg-muted); background: rgba(110, 118, 129, .1); border-color: var(--border); }
|
|
.poc-name a.plain:hover { color: var(--accent); }
|
|
.poc-stars { text-align: right; font: 400 12px/1 var(--mono); color: var(--fg-muted); }
|
|
.poc-stars.is-popular { color: var(--attention); }
|
|
.star { color: var(--neutral); }
|
|
.poc-age { text-align: right; font: 400 11.5px/1 var(--mono); color: var(--fg-muted); }
|
|
.poc-more {
|
|
display: block;
|
|
width: 100%;
|
|
text-align: left;
|
|
background: transparent;
|
|
border: 0;
|
|
padding: 9px 0 0;
|
|
cursor: pointer;
|
|
font: 400 11px/1 var(--mono);
|
|
color: var(--fg-muted);
|
|
}
|
|
.poc-more:hover { color: var(--accent); }
|
|
.advisory-list { margin-top: 14px; }
|
|
.advisory-head {
|
|
padding: 8px 0;
|
|
border-top: 1px solid var(--border-muted);
|
|
border-bottom: 1px solid var(--border-muted);
|
|
font: 500 9.5px/1 var(--mono);
|
|
letter-spacing: .1em;
|
|
color: var(--neutral);
|
|
}
|
|
.advisory-head span { margin-left: 5px; color: var(--fg-muted); }
|
|
|
|
/* ---- state B: nothing matched ------------------------------------------- */
|
|
|
|
.empty {
|
|
padding: 44px 16px;
|
|
text-align: center;
|
|
font: 400 13px/1 var(--mono);
|
|
color: var(--fg-muted);
|
|
}
|
|
|
|
/* ---- state C: trending -------------------------------------------------- */
|
|
|
|
.trend-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 14px;
|
|
}
|
|
.switch { display: flex; border: 1px solid var(--border); border-radius: 4px; overflow: hidden; }
|
|
.switch button {
|
|
border: 0;
|
|
padding: 7px 12px;
|
|
cursor: pointer;
|
|
font: 500 10.5px/1 var(--mono);
|
|
letter-spacing: .06em;
|
|
background: transparent;
|
|
color: var(--fg-muted);
|
|
}
|
|
.switch button[aria-pressed="true"] { background: var(--accent-emphasis); color: #ffffff; }
|
|
.trend-note {
|
|
flex: none;
|
|
white-space: nowrap;
|
|
font: 400 11.5px/1 var(--mono);
|
|
color: var(--fg-muted);
|
|
}
|
|
|
|
.trending .col-head, .trend-row {
|
|
grid-template-columns: 74px 96px 300px minmax(0, 1fr);
|
|
gap: 18px;
|
|
}
|
|
.trend-row {
|
|
display: grid;
|
|
align-items: center;
|
|
padding: 10px 16px;
|
|
border-bottom: 1px solid var(--border-muted);
|
|
}
|
|
.trend-row:last-child { border-bottom: 0; }
|
|
.trend-row:hover { background: var(--canvas-subtle); }
|
|
.col-stars { text-align: right; }
|
|
.trend-stars {
|
|
text-align: right;
|
|
white-space: nowrap;
|
|
font: 500 12.5px/1 var(--mono);
|
|
color: var(--fg-muted);
|
|
}
|
|
.trend-stars.is-popular { color: var(--attention); }
|
|
.trend-age { white-space: nowrap; font: 400 12px/1 var(--mono); color: var(--fg-muted); }
|
|
.trend-kev {
|
|
display: inline-block;
|
|
margin-right: 7px;
|
|
padding: 2px 5px;
|
|
border-radius: 3px;
|
|
vertical-align: 1px;
|
|
font: 600 9px/1 var(--mono);
|
|
letter-spacing: .08em;
|
|
color: var(--danger);
|
|
background: rgba(248, 81, 73, .12);
|
|
border: 1px solid rgba(248, 81, 73, .4);
|
|
}
|
|
.trend-name-cell {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
.trend-name { font: 500 12.5px/1 var(--mono); }
|
|
.trend-desc {
|
|
font: 400 13px/1.4 var(--sans);
|
|
color: var(--fg-subtle);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* ---- footer ------------------------------------------------------------- */
|
|
|
|
.site-footer { border-top: 1px solid var(--border-muted); padding: 14px 0; }
|
|
.site-footer .container {
|
|
display: flex;
|
|
gap: 20px;
|
|
flex-wrap: wrap;
|
|
font: 400 11px/1.6 var(--mono);
|
|
color: var(--fg-muted);
|
|
}
|
|
.site-footer span:last-child { margin-left: auto; }
|
|
|
|
/* ---- narrow viewports --------------------------------------------------- */
|
|
|
|
@media (max-width: 900px) {
|
|
.container { padding: 0 16px; }
|
|
.hero { gap: 22px; padding: 22px; }
|
|
.hero-radar { display: none; }
|
|
.hero-id h1 { font-size: 27px; }
|
|
.hero-stats { gap: 28px; }
|
|
.hero-stats dt { font-size: 22px; }
|
|
.results .col-head { display: none; }
|
|
.result-row { grid-template-columns: 1fr; }
|
|
.result-meta { border-right: 0; border-bottom: 1px solid var(--border-muted); }
|
|
.trending .col-head, .trend-row { grid-template-columns: 70px 92px minmax(0, 1fr); }
|
|
.col-desc, .trend-desc { display: none; }
|
|
}
|
|
|
|
@media (max-width: 620px) {
|
|
.trending .col-head, .trend-row { grid-template-columns: 66px minmax(0, 1fr); }
|
|
.col-updated, .trend-age { display: none; }
|
|
.search-status { display: none; }
|
|
.filters { align-items: stretch; flex-wrap: wrap; }
|
|
.filter-caption { display: none; }
|
|
.filter-clear { margin-left: 0; }
|
|
.filter-popover { max-width: calc(100vw - 32px); }
|
|
.filter-menu[data-filter-menu="source"] .filter-popover { right: 0; left: auto; }
|
|
}
|
|
|
|
/* ---- per-CVE page ------------------------------------------------------- */
|
|
|
|
.cve-bar {
|
|
display: flex; align-items: center; gap: 24px;
|
|
padding-top: 20px; padding-bottom: 20px;
|
|
border-bottom: 1px solid var(--border-muted);
|
|
}
|
|
.cve-home { font: 700 19px/1 var(--mono); color: var(--fg); letter-spacing: .04em; }
|
|
.cve-home:hover { color: var(--accent); }
|
|
.cve-search { flex: 1; max-width: 520px; }
|
|
.cve-search input {
|
|
width: 100%; padding: 9px 14px; border-radius: 8px;
|
|
background: var(--canvas-subtle); border: 1px solid var(--border);
|
|
color: var(--fg); font: 400 13px/1.4 var(--mono);
|
|
}
|
|
.cve-search input::placeholder { color: var(--neutral); }
|
|
.cve-search input:focus { outline: none; border-color: var(--accent-emphasis); }
|
|
|
|
.cve-page { flex: 1; padding-top: 32px; padding-bottom: 56px; max-width: 900px; }
|
|
.cve-page h1 { margin: 0 0 14px; font: 700 32px/1.1 var(--mono); color: var(--fg); }
|
|
.cve-page h2 {
|
|
margin: 34px 0 12px; font: 500 11px/1 var(--mono); letter-spacing: .1em;
|
|
text-transform: uppercase; color: var(--fg-muted);
|
|
}
|
|
.cve-desc { margin: 16px 0 0; font: 400 15px/1.65 var(--sans); color: var(--fg-subtle); }
|
|
|
|
.cve-facts {
|
|
display: grid; grid-template-columns: max-content 1fr; gap: 8px 20px;
|
|
margin: 24px 0 0; padding: 18px 20px;
|
|
background: var(--canvas-subtle); border: 1px solid var(--border-muted); border-radius: 10px;
|
|
}
|
|
.cve-facts dt { font: 500 11px/1.5 var(--mono); letter-spacing: .06em; color: var(--fg-muted); text-transform: uppercase; }
|
|
.cve-facts dd { margin: 0; font: 400 13px/1.5 var(--mono); color: var(--fg-subtle); }
|
|
.cve-facts dd code { display: block; margin-top: 3px; font-size: 11px; color: var(--neutral); word-break: break-all; }
|
|
|
|
.cve-links { list-style: none; margin: 0; padding: 0; }
|
|
.cve-links li {
|
|
display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
|
|
padding: 8px 0; border-bottom: 1px solid var(--border-muted);
|
|
font: 400 13px/1.5 var(--mono);
|
|
}
|
|
.cve-links li span { flex: none; font-size: 11px; color: var(--neutral); white-space: nowrap; }
|
|
.cve-links a { word-break: break-all; }
|
|
|
|
.cve-related { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
|
|
.cve-related a {
|
|
display: inline-block; padding: 5px 11px; border-radius: 6px;
|
|
background: var(--canvas-subtle); border: 1px solid var(--border-muted);
|
|
font: 400 12px/1 var(--mono);
|
|
}
|
|
|
|
@media (max-width: 700px) {
|
|
.cve-bar { flex-wrap: wrap; gap: 14px; }
|
|
.cve-page h1 { font-size: 25px; }
|
|
.cve-facts { grid-template-columns: 1fr; gap: 3px 0; }
|
|
.cve-facts dd { margin-bottom: 10px; }
|
|
.cve-links li { flex-direction: column; gap: 2px; }
|
|
}
|