:root {
  --bg: #0b0d12; --panel: #12151c; --panel2: #171b24; --panel3: #222735; --line: #232838; --line2: #323a4e; --fg: #e6e8ee; --mut: #8b93a7;
  --acc: #3b82f6; --acc-h: #2f6fd8; --acc-bg: rgba(59,130,246,.15); --acc-fg: #93b8fb; --ring-track: #232838;
  --crit: #e5484d; --crit-bg: rgba(229,72,77,.13); --crit-fg: #ff9592; --high-bg: rgba(247,107,21,.12); --high-fg: #ffa057;
  --med: #e2a336; --med-bg: rgba(226,163,54,.12); --med-fg: #f1c56b;
  --tip-bg: #2a3040; --tip-fg: #e6e8ee; --tip-line: #3a4357;
  --code-key: #7ee787; --code-str: #a5d6ff; --code-lit: #79c0ff; --code-ln: #5d6578;
  color-scheme: dark;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --bg: #f8f9fb; --panel: #ffffff; --panel2: #f2f4f7; --panel3: #e9ecf1; --line: #eaecf0; --line2: #d0d5dd; --fg: #101828; --mut: #667085;
    --acc: #2563eb; --acc-h: #1d4fd0; --acc-bg: #eff4ff; --acc-fg: #1d4ed8; --ring-track: #eaecf0; --crit: #d92d20; --crit-bg: #fef3f2; --crit-fg: #b42318; --high-bg: #fff4ed; --high-fg: #b93815; --med: #d18b00; --med-bg: #fef7e6; --med-fg: #9a6400; color-scheme: light;
    --tip-bg: #101828; --tip-fg: #ffffff; --tip-line: #101828;
    --code-key: #116329; --code-str: #0a3069; --code-lit: #0550ae; --code-ln: #98a2b3;
  }
}
:root[data-theme="light"] {
  --bg: #f8f9fb; --panel: #ffffff; --panel2: #f2f4f7; --panel3: #e9ecf1; --line: #eaecf0; --line2: #d0d5dd; --fg: #101828; --mut: #667085;
  --acc: #2563eb; --acc-h: #1d4fd0; --acc-bg: #eff4ff; --acc-fg: #1d4ed8; --ring-track: #eaecf0; --crit: #d92d20; --crit-bg: #fef3f2; --crit-fg: #b42318; --high-bg: #fff4ed; --high-fg: #b93815; --med: #d18b00; --med-bg: #fef7e6; --med-fg: #9a6400; color-scheme: light;
  --tip-bg: #101828; --tip-fg: #ffffff; --tip-line: #101828;
  --code-key: #116329; --code-str: #0a3069; --code-lit: #0550ae; --code-ln: #98a2b3;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--bg); color: var(--fg); }
body { font: 14px/1.55 Inter, system-ui, -apple-system, "Segoe UI", sans-serif; min-height: 100vh; display: flex; flex-direction: column; }
a { color: var(--acc); }
code, .mono { font-family: ui-monospace, "JetBrains Mono", Menlo, monospace; font-size: .92em; }
h1 { font-size: 24px; letter-spacing: -.01em; margin: 0 0 6px; }
h2 { font-size: 16px; margin: 22px 0 8px; }
.muted { color: var(--mut); } .small { font-size: 12px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.nav { display: flex; justify-content: space-between; align-items: center; padding: 12px 24px; border-bottom: 1px solid var(--line); }
.logo { display: flex; gap: 8px; align-items: center; color: var(--fg); text-decoration: none; font-weight: 800; letter-spacing: -.02em; font-size: 16px; }
.logo b { color: var(--acc); }
.nav nav { display: flex; gap: 18px; align-items: center; }
.nav nav a { color: var(--mut); text-decoration: none; font-size: 13px; }
.nav nav a:hover { color: var(--fg); }
.nav nav .gh { display: inline-flex; align-items: center; gap: 6px; }
.theme-toggle { display: inline-grid; place-items: center; width: 32px; height: 32px; background: none; border: 0; color: var(--mut); border-radius: 8px; cursor: pointer; transition: background-color .12s, color .12s; }
/* Tooltips: data-tip="…" shows a small label below the element on hover or keyboard focus; data-tip-end aligns it to the right edge. */
[data-tip] { position: relative; }
[data-tip]::after { content: attr(data-tip); position: absolute; top: calc(100% + 8px); left: 50%; z-index: 30; transform: translate(-50%, -3px); padding: 6px 9px; border: 1px solid var(--tip-line); border-radius: 6px; background: var(--tip-bg); color: var(--tip-fg); box-shadow: 0 6px 16px rgba(0,0,0,.18); font: 500 12px/1.35 system-ui, -apple-system, "Segoe UI", sans-serif; letter-spacing: 0; text-transform: none; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .12s, transform .12s; }
[data-tip]:hover::after, [data-tip]:focus-visible::after { opacity: 1; transform: translate(-50%, 0); transition-delay: .25s; }
[data-tip][data-tip-end]::after { left: auto; right: 0; transform: translateY(-3px); }
[data-tip][data-tip-end]:hover::after, [data-tip][data-tip-end]:focus-visible::after { transform: translateY(0); }
[data-tip]:disabled::after { display: none; }
th[data-tip] { cursor: help; } th[data-tip] > span { border-bottom: 1px dotted var(--line2); }
.theme-toggle:hover { background: var(--panel3); color: var(--fg); } .theme-toggle:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; }
/* Show the icon of the theme you would switch to. */
.theme-toggle .i-moon { display: none; }
:root[data-theme="light"] .theme-toggle .i-sun { display: none; } :root[data-theme="light"] .theme-toggle .i-moon { display: block; }
@media (prefers-color-scheme: light) { :root:not([data-theme]) .theme-toggle .i-sun { display: none; } :root:not([data-theme]) .theme-toggle .i-moon { display: block; } }
.wrap { width: 100%; max-width: 1360px; margin: 0 auto; padding: 24px; flex: 1; }
.foot { border-top: 1px solid var(--line); padding: 14px 24px; color: var(--mut); font-size: 12px; display: flex; gap: 18px; flex-wrap: wrap; justify-content: center; }
.foot a { color: var(--mut); }

.panel { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 18px; }
.b { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 14px; font-family: inherit; line-height: 20px; vertical-align: middle; border-radius: 8px; border: 1px solid transparent; background: var(--panel3); color: var(--fg); font-weight: 600; font-size: 13px; text-decoration: none; cursor: pointer; white-space: nowrap; }
.b { transition: background-color .12s, color .12s; }
.b:hover { background: var(--line2); }
.b.p { background: var(--acc); color: #fff; } .b.p:hover { background: var(--acc-h); }
.b.ghost { background: transparent; color: var(--mut); padding-left: 8px; padding-right: 8px; } .b.ghost:hover { background: var(--panel2); color: var(--fg); }
.b:focus-visible, .file-pick:has(input:focus-visible) { outline: 2px solid var(--acc); outline-offset: 2px; }
.row-actions { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-top: 12px; }

.hero { max-width: 820px; margin: 24px auto 20px; text-align: center; }
.hero h1 { font-size: 34px; }
.lede { font-size: 16px; color: var(--mut); }
.check-form { max-width: 980px; margin: 0 auto; }
.label { display: block; font-weight: 600; margin-bottom: 6px; }
textarea, input[type=email], input[type=text], select { width: 100%; background: var(--bg); color: var(--fg); border: 1px solid var(--line); border-radius: 8px; padding: 10px; font: inherit; transition: border-color .12s, background-color .12s; }
textarea { font-family: ui-monospace, "JetBrains Mono", Menlo, monospace; font-size: 12.5px; line-height: 1.65; padding: 12px 14px; tab-size: 2; color: var(--fg); resize: vertical; scrollbar-width: thin; scrollbar-color: var(--line2) transparent; }
textarea::placeholder, input::placeholder { color: var(--mut); opacity: .7; }
textarea:hover, input[type=email]:hover, input[type=text]:hover { border-color: var(--line2); }
textarea:focus, input[type=email]:focus, input[type=text]:focus, select:focus { outline: none; border-color: var(--line2); background: var(--panel2); }
/* Browser autofill keeps our field colours instead of Chrome's tinted background. */
input:-webkit-autofill, input:-webkit-autofill:hover { -webkit-text-fill-color: var(--fg); caret-color: var(--fg); -webkit-box-shadow: 0 0 0 1000px var(--bg) inset; transition: background-color 600000s 0s; }
input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px var(--panel2) inset; }
textarea.dragover { border-color: var(--acc); border-style: dashed; }
/* package.json editor: a transparent textarea over a highlighted copy, with line numbers (app.js adds .live). Without JS it is a plain textarea. */
.editor { border: 1px solid var(--line); border-radius: 10px; background: var(--bg); overflow: hidden; transition: border-color .12s; }
.editor:hover, .editor:focus-within { border-color: var(--line2); }
.editor.dragover { border-color: var(--acc); border-style: dashed; }
.editor-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 14px; background: var(--panel2); border-bottom: 1px solid var(--line); }
.editor-head label { font: 600 12.5px/20px ui-monospace, "JetBrains Mono", Menlo, monospace; color: var(--fg); }
.editor-stats { font: 12px/20px ui-monospace, "JetBrains Mono", Menlo, monospace; color: var(--mut); }
.editor-body { display: flex; }
.editor-stack { position: relative; flex: 1; min-width: 0; }
.editor textarea, .editor-hl, .editor-gutter { margin: 0; font-family: ui-monospace, "JetBrains Mono", Menlo, monospace; font-size: 12.5px; line-height: 20px; tab-size: 2; letter-spacing: 0; white-space: pre; }
.editor textarea { display: block; border: 0; border-radius: 0; background: transparent; padding: 12px 14px; min-height: 300px; overflow: auto; }
.editor textarea:focus { background: transparent; }
.editor textarea { scrollbar-color: color-mix(in srgb, var(--mut) 60%, transparent) transparent; }
.editor-gutter, .editor-hl { display: none; }
.editor.live .editor-gutter { display: block; flex: none; contain: size; width: calc(var(--digits, 2) * 1ch + 26px); padding: 12px 10px 60px 16px; overflow: hidden; text-align: right; color: var(--code-ln); user-select: none; border-right: 1px solid var(--line); }
.editor.live .editor-hl { display: block; position: absolute; inset: 0; padding: 12px 14px 60px; overflow: hidden; color: var(--fg); pointer-events: none; }
.editor.live.empty .editor-gutter { display: none; }
.editor.live textarea { position: relative; color: transparent; caret-color: var(--fg); resize: none; max-height: 560px; }
.editor.live textarea::selection { color: transparent; background: var(--acc-bg); }
.editor-hl code { font: inherit; }
.editor-hl .k { color: var(--code-key); } .editor-hl .s { color: var(--code-str); } .editor-hl .l { color: var(--code-lit); } .editor-hl .p { color: var(--mut); }
.files { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 12px 0; font-size: 13px; }
.file-label { display: block; margin-bottom: 6px; }
.file-row { display: flex; align-items: center; gap: 10px; min-width: 0; }
.file-pick { position: relative; font-weight: 600; }
.file-pick input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; font-size: 0; }
.file-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-name.chosen { color: var(--fg); }
.how { max-width: 980px; margin: 20px auto 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.how p { margin: 4px 0 0; font-size: 13px; }
.notice { max-width: 640px; margin: 40px auto; }
.prose { max-width: 960px; margin: 0 auto; }
.legal { padding: 28px 32px; } .legal h2 { margin-top: 28px; }
.legal table.rules { margin: 4px 0 12px; } .legal table.rules td { padding: 10px 8px; vertical-align: top; } .legal table.rules td:first-child { width: 42%; padding-left: 0; } .legal table.rules th:first-child { padding-left: 0; }
.legal table.rules .sev { margin: 0 4px 4px 0; }
.score-rules { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 4px 0 16px; }
.score-rules div { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; background: var(--panel2); border: 1px solid var(--line); border-radius: 10px; }
@media (max-width: 640px) { .score-rules { grid-template-columns: repeat(2, 1fr); } }
.facts { display: grid; grid-template-columns: 160px 1fr; margin: 0; border-top: 1px solid var(--line); }
.facts dt, .facts dd { margin: 0; padding: 10px 0; border-bottom: 1px solid var(--line); }
.facts dt { color: var(--mut); font-size: 13px; padding-right: 16px; }
@media (max-width: 640px) { .facts { grid-template-columns: 1fr; } .facts dt { border-bottom: 0; padding-bottom: 0; } .legal { padding: 20px; } }
.prose table, .tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.prose th, .prose td, .tbl th, .tbl td { text-align: left; padding: 8px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.tbl th { color: var(--mut); font-weight: 500; }
.tbl th:first-child, .tbl td:first-child { padding-left: 18px; } .tbl th:last-child, .tbl td:last-child { padding-right: 18px; }
.nowrap { white-space: nowrap; }

.sev { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.sev::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.sev.critical { background: var(--crit-bg); color: var(--crit-fg); } .sev.high { background: var(--high-bg); color: var(--high-fg); }
.sev.medium { background: var(--med-bg); color: var(--med-fg); } .sev.low { background: var(--panel2); color: var(--mut); }
.sev.healthy, .sev.none { background: transparent; color: var(--mut); border: 1px solid var(--line); }

/* report */
.report { display: grid; grid-template-columns: 1fr 300px; gap: 18px; }
.report-head { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.summary { grid-column: 1 / -1; display: grid; grid-template-columns: 180px 1fr; gap: 18px; align-items: center; }
.ring { display: block; margin: 0 auto 6px; }
.ring .track { stroke: var(--ring-track); } .ring .val { stroke-linecap: round; }
.ring .val { stroke: var(--acc); } .ring .val.attention { stroke: var(--med); } .ring .val.risk { stroke: var(--crit); }
.ring text { fill: var(--fg); font: 800 26px Inter, system-ui, sans-serif; }
.summary-text { font-size: 15px; line-height: 1.55; }
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 12px; }
.kpi { display: block; width: 100%; text-align: left; font: inherit; color: inherit; cursor: pointer; background: var(--panel2); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; transition: background-color .12s, border-color .12s; }
.kpi:hover { background: var(--panel3); }
.kpi[aria-pressed="true"] { background: var(--acc-bg); border-color: transparent; }
.kpi:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; }
.kpi .n { display: block; font-size: 22px; font-weight: 700; } .kpi .l { display: block; color: var(--mut); font-size: 11px; }
.kpi .n.crit { color: var(--crit-fg); } .kpi .n.high { color: var(--acc-fg); }
.banner { grid-column: 1 / -1; border: 1px solid var(--acc); background: var(--acc-bg); border-radius: 10px; padding: 10px 14px; }
.deps-panel { padding: 0; overflow-x: auto; }
.deps-tools { padding: 14px 18px; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.tabs, .filters { display: flex; gap: 6px; flex-wrap: wrap; }
.tabs button, .filters button { font: inherit; background: none; border: 0; color: var(--mut); cursor: pointer; transition: background-color .12s, color .12s; }
.tabs { gap: 2px; padding: 3px; background: var(--bg); border: 1px solid var(--line); border-radius: 9px; }
.tabs button { padding: 5px 12px; border-radius: 6px; font-size: 13px; font-weight: 600; }
.tabs button[aria-pressed="true"] { background: var(--panel3); color: var(--fg); }
.filters button { padding: 4px 11px; border-radius: 999px; font-size: 12px; }
.filters button[aria-pressed="true"] { background: var(--acc-bg); color: var(--acc-fg); }
.tabs button:hover, .filters button:hover { color: var(--fg); }
.tbl.deps { table-layout: fixed; min-width: 860px; }
.c-ver { width: 76px; } .c-date { width: 90px; } .c-maint { width: 56px; } .c-dl { width: 100px; } .c-score { width: 96px; } .c-risk { width: 104px; }
.tbl td .pk { display: flex; align-items: center; gap: 6px; font-weight: 600; overflow-wrap: anywhere; }
.chev { flex: none; color: var(--mut); transition: transform .15s; } tr.row[aria-expanded="true"] .chev { transform: rotate(90deg); }
.tbl tr.row:hover td { background: var(--panel2); } .tbl td .sub { color: var(--mut); font-size: 11px; }
.tbl tr.row[data-expand] { cursor: pointer; } .tbl tr.row[aria-expanded="true"] td { background: var(--panel2); border-bottom-color: transparent; }
.tbl tr.detail td { background: var(--panel2); padding-top: 0; padding-bottom: 14px; }
.detail-box { display: grid; gap: 12px; padding: 12px 14px; background: var(--bg); border: 1px solid var(--line); border-radius: 10px; }
.detail-h { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--mut); margin-bottom: 6px; }
.dep-note { margin: 0; font-size: 13px; overflow-wrap: anywhere; }
.advisories { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.advisories li { display: grid; grid-template-columns: 96px 1fr auto auto; gap: 12px; align-items: center; padding: 6px 0; border-top: 1px solid var(--line); font-size: 13px; }
.advisories li:first-child { border-top: 0; }
.advisories .sev { justify-self: start; }
.adv-id { font-size: 12px; color: var(--mut); } .adv-id:hover { color: var(--acc); }
.adv-fix { color: var(--mut); font-size: 12px; white-space: nowrap; }
.tbl tr[hidden] { display: none; }
.bar { display: inline-block; width: 56px; height: 6px; border-radius: 3px; background: var(--line); overflow: hidden; vertical-align: middle; }
.bar span { display: block; height: 100%; background: var(--acc); }
.w0 span { width: 0 } .w1 span { width: 10% } .w2 span { width: 20% } .w3 span { width: 30% } .w4 span { width: 40% }
.w5 span { width: 50% } .w6 span { width: 60% } .w7 span { width: 70% } .w8 span { width: 80% } .w9 span { width: 90% } .w10 span { width: 100% }
.side h3 { margin: 0 0 4px; font-size: 14px; }
.step { display: flex; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.step:last-of-type { border-bottom: 0; }
.num { width: 20px; height: 20px; border-radius: 50%; background: var(--acc-bg); color: var(--acc); font-weight: 700; font-size: 11px; display: grid; place-items: center; flex: none; }
.total { display: flex; justify-content: space-between; gap: 8px; padding: 10px 0; margin-top: 8px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.side .plan { margin-top: 14px; }
.pager { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 18px; border-top: 1px solid var(--line); }
.plan .pager { padding: 10px 0 0; }
.pager-btns { display: flex; gap: 6px; }
.b.icon { padding: 6px; width: 32px; height: 32px; }
.b:disabled, .b:disabled:hover { opacity: .35; cursor: default; background: var(--panel3); }
.pager[hidden], .step[hidden] { display: none; }
.expert { border: 1px solid var(--line); background: var(--panel); border-radius: 12px; padding: 16px; }
.expert p { color: var(--mut); font-size: 13px; }
.chips { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0; } .chips span { font-size: 10px; padding: 2px 7px; border-radius: 999px; background: var(--panel3); color: var(--mut); }
.pdf { margin-top: 14px; border: 1px dashed var(--line); border-radius: 12px; padding: 14px; }
.notify .in { display: flex; gap: 6px; margin-top: 8px; }
.notify .in input { flex: 1; min-width: 0; height: 38px; padding: 0 10px; }
.notify .in .b { height: 38px; }
.progress { max-width: 560px; margin: 60px auto; text-align: center; }
.spinner { width: 36px; height: 36px; border-radius: 50%; border: 3px solid var(--line); border-top-color: var(--acc); margin: 0 auto 14px; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.contact-form { max-width: 720px; margin: 0 auto; display: grid; gap: 14px; padding: 28px 32px; }
.contact-form h1, .contact-form p { margin: 0; }
.contact-form label { display: grid; gap: 6px; font-weight: 600; font-size: 13px; }
.contact-form label .muted { font-weight: 400; }
.hint { font-weight: 400; font-size: 12px; color: var(--mut); }
.field-error { display: block; font-weight: 500; font-size: 12px; color: var(--crit-fg); }
.notify .field-error { margin-top: 6px; }
/* Attribute repeated on purpose: it must outrank input[type=email]:focus. */
input[aria-invalid][aria-invalid], textarea[aria-invalid][aria-invalid] { border-color: var(--crit); }
.hint:has(+ .field-error:not([hidden])) { display: none; }
.contact-form > .cf-turnstile { margin-bottom: -14px; } .contact-form .row-actions { margin-top: 0; }
@media (max-width: 640px) { .contact-form { padding: 20px; } }
.hp { position: absolute; left: -10000px; }

@media (max-width: 900px) {
  .report, .summary, .files, .how { grid-template-columns: 1fr; }
  .kpis { grid-template-columns: repeat(2, 1fr); }
  .wrap { padding: 16px; }
  .nav-new { display: none; }
}

.center { text-align: center; }

@media (max-width: 700px) {
  .nav { padding: 10px 16px; } .nav nav { gap: 14px; } .gh-t { display: none; }
  /* Dependency table becomes one card per package: name and risk on top, the numbers in a 3-column grid below. */
  .tbl.deps { min-width: 0; }
  .tbl.deps colgroup, .tbl.deps thead { display: none; }
  .tbl.deps, .tbl.deps tbody, .tbl.deps td { display: block; }
  .tbl.deps tr.row:not([hidden]) { display: flex; flex-wrap: wrap; align-items: flex-start; row-gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
  .tbl.deps tr.row[aria-expanded="true"] { border-bottom: 0; background: var(--panel2); } .tbl.deps tr.row[aria-expanded="true"] td { background: none; }
  .tbl.deps tr.row td { padding: 0; border: 0; }
  .tbl.deps tr.row td:first-child { flex: 1 1 calc(100% - 110px); min-width: 0; padding-right: 12px; }
  .tbl.deps tr.row td.risk-cell { order: 1; flex: none; }
  .tbl.deps tr.row td[data-label] { order: 2; flex: 0 0 33.333%; font-size: 13px; }
  .tbl.deps td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; font: 400 11px/1.3 system-ui, -apple-system, "Segoe UI", sans-serif; color: var(--mut); }
  .tbl.deps tr.detail td { padding: 0 16px 14px; }
  .tbl.deps tr.detail:not([hidden]) { display: block; border-bottom: 1px solid var(--line); }
  .tbl.deps tr.detail td { border: 0; }
  .tbl.deps tr.row:hover td { background: none; } .tbl.deps tr.row:hover { background: var(--panel2); }
  .advisories li { display: flex; flex-wrap: wrap; gap: 6px 12px; padding: 10px 0; }
  .adv-sum { flex-basis: 100%; }
}
