/* vulns.co research workbench. Local Manrope, with mono reserved for data. */
/* Keep navigation between research records immediate. */
@view-transition { navigation: none; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("/assets/fonts/manrope-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("/assets/fonts/manrope-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA-02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
  color-scheme: light;
  --bg: #f5f3ee; --bg-0: #f5f3ee; --bg-1: #eeece6; --bg-2: #e4e1da; --bg-3: #bbb8b2; --card: #fffcf7;
  --fg: #202329; --fg-dim: #525963; --fg-mute: #626a76; --border: #d8d6d0; --border-2: #a1a0a1; --control-border: #898c93;
  --ink-copper: #9d452e; --ink-blue: #295aa1; --ink-violet: #6d4e94; --ink-ochre: #805b1d;
  --ink-teal: #256a66; --ink-rose: #924568; --ink-slate: #4c6078; --ink-olive: #596834;
  --accent: var(--ink-copper); --accent-dim: var(--ink-copper); --link: var(--ink-copper); --on-accent: #fffcf7; --tone-strength: 10%;
  --sans: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif; --rail-width: 206px;
  --tone: var(--ink-slate);
  --accent-soft: color-mix(in srgb, var(--accent) var(--tone-strength), var(--card));
  --r-green: var(--ink-teal); --r-green-soft: color-mix(in srgb, var(--ink-teal) var(--tone-strength), var(--card));
  --r-warm: color-mix(in srgb, var(--ink-ochre) 8%, var(--card)); --r-ink: #30333d;
  --crit: var(--ink-rose); --high: var(--ink-copper); --med: var(--ink-ochre); --ok: var(--ink-teal);
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #13151a; --bg-0: #13151a; --bg-1: #20232b; --bg-2: #2a2e37; --bg-3: #494e59; --card: #1c1f26;
  --fg: #ebe9e3; --fg-dim: #b8bcc6; --fg-mute: #969ca9; --border: #343840; --border-2: #5b626e; --control-border: #6c7481;
  --ink-copper: #efad8c; --ink-blue: #94b8f0; --ink-violet: #c1a6e5; --ink-ochre: #dbba76;
  --ink-teal: #83c8c0; --ink-rose: #e7a1bd; --ink-slate: #a8b9cf; --ink-olive: #b5c28a;
  --on-accent: #13151a; --tone-strength: 14%;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
  color-scheme: dark;
  --bg: #13151a; --bg-0: #13151a; --bg-1: #20232b; --bg-2: #2a2e37; --bg-3: #494e59; --card: #1c1f26;
  --fg: #ebe9e3; --fg-dim: #b8bcc6; --fg-mute: #969ca9; --border: #343840; --border-2: #5b626e; --control-border: #6c7481;
  --ink-copper: #efad8c; --ink-blue: #94b8f0; --ink-violet: #c1a6e5; --ink-ochre: #dbba76;
  --ink-teal: #83c8c0; --ink-rose: #e7a1bd; --ink-slate: #a8b9cf; --ink-olive: #b5c28a;
  --on-accent: #13151a; --tone-strength: 14%;
  }
}
/* Resolve shared aliases after the legacy theme sheets in every theme mode. */
:root[data-theme], :root:not([data-theme]) {
  --accent: var(--ink-copper); --accent-dim: var(--ink-copper); --link: var(--ink-copper); --cyan: var(--ink-blue);
  --accent-soft: color-mix(in srgb, var(--accent) var(--tone-strength), var(--card));
  --r-green: var(--ink-teal); --r-green-soft: color-mix(in srgb, var(--ink-teal) var(--tone-strength), var(--card));
  --r-warm: color-mix(in srgb, var(--ink-ochre) 8%, var(--card)); --r-ink: #30333d;
  --crit: var(--ink-rose); --high: var(--ink-copper); --med: var(--ink-ochre); --ok: var(--ink-teal);
}
body { font-family: var(--sans); -webkit-font-smoothing: antialiased; }
button, input, select { font-family: var(--sans); }
.top { background: var(--bg-0); border-bottom: 1px solid var(--border); }
.brand { gap: 8px; }
.brand-mark { background: transparent; border-radius: 0; width: 24px; height: 24px; color: var(--accent); flex-shrink: 0; }
.brand-lockup { font: 800 22px/1 var(--sans); letter-spacing: -.055em; }
.brand-lockup .tld { color: var(--fg-mute); font-weight: 500; }
body:not([data-reader-shell]) .view-head h1 { font-weight: 750; letter-spacing: -.045em; }
.group-btn { font-size: 14px; font-weight: 650; }
.group-btn.on { color: var(--fg); }
.search-wrap { border-radius: 10px; min-height: 36px; background: var(--bg-1); border-color: transparent; }
.search-wrap input { font-size: 14px; font-weight: 500; }
.search-wrap .sicon { font-size: 23px; }
.theme-btn, .help-btn, .menu-btn { border-radius: 9px; min-height: 36px; font-size: 13px; background: transparent; }
.research-rail { position: fixed; top: 69px; bottom: 0; left: 0; width: var(--rail-width); padding: 24px 13px 16px; border-right: 1px solid var(--border); background: var(--bg-0); overflow-y: auto; z-index: 18; scrollbar-width: thin; }
.research-rail-group { margin-bottom: 23px; }
.research-rail-group > p { margin: 0 12px 9px; color: var(--fg-mute); font: 600 11px/1.4 var(--sans); letter-spacing: .13em; }
.research-rail-menu nav { display: grid; gap: 3px; }
.research-rail-menu nav a, .research-rail-branch > summary { display: flex; align-items: center; gap: 9px; padding: 9px 10px; min-height: 39px; color: var(--fg-dim); text-decoration: none; border-radius: 9px; font-size: 13px; font-weight: 600; line-height: 1.5; }
.research-rail-menu nav a:hover, .research-rail-branch > summary:hover { color: var(--fg); background: var(--bg-1); }
.research-rail-menu nav a[aria-current] { background: var(--bg-1); color: var(--fg); }
.research-rail-branch > summary { cursor: pointer; list-style: none; }
.research-rail-branch > summary::-webkit-details-marker { display: none; }
.research-rail-branch[data-active-section] > summary { color: var(--fg); }
.research-rail-label { min-width: 0; }
.research-rail-chevron { margin-left: auto; font: 19px/1 var(--sans); color: var(--fg-mute); flex-shrink: 0; }
.research-rail-branch[open] > summary .research-rail-chevron { transform: rotate(90deg); }
.research-rail-children { display: grid; gap: 3px; margin: 3px 0 9px 17px; padding-left: 10px; border-left: 1px solid var(--border); }
.research-rail-menu .research-rail-children a { font-size: 12px; min-height: 33px; padding: 7px 9px; border-radius: 6px; }
.research-rail-icon { width: 16px; color: var(--fg-mute); text-align: center; font: 16px/1 var(--mono); }
.research-rail-menu nav small { margin-left: auto; font: 10px var(--mono); color: var(--fg-mute); }
.research-rail-branch > summary small + .research-rail-chevron { margin-left: 0; }
.research-rail-source { padding: 18px 12px 0; border-top: 1px solid var(--border); font-size: 12px; color: var(--fg-mute); }
.research-rail-source span { display: block; line-height: 1.6; margin-bottom: 8px; }
.research-rail-source a { color: var(--fg-dim); text-decoration: none; font-size: 12px; }
body[data-workbench-shell="true"] main { width: auto; max-width: none; margin-left: var(--rail-width); margin-right: 0; padding: 34px 34px 46px; }
body[data-workbench-shell="true"] footer { width: auto; max-width: none; margin-left: calc(var(--rail-width) + 34px); margin-right: 34px; padding: 26px 0; }
.foot { grid-template-columns: 90px 1fr; font-size: 13px; }
.foot-links { font-size: 12px; }
.r-page-head h1, .r-article-head h1 { font-family: var(--sans); font-size: clamp(32px, 3.7vw, 47px); font-weight: 750; letter-spacing: -.045em; line-height: 1.15 !important; }
.r-page-head > p:last-child { font-size: 16px; line-height: 1.75; }
.r-eyebrow { font-size: 11px; letter-spacing: .06em; }
.r-crumb { margin-bottom: 27px; font-size: 12px; }
.r-article-deck { font-size: 18px; line-height: 1.75; }
.r-article-body { font-size: 16px; line-height: 1.85; }
.r-article-section h2 { font-family: var(--sans); font-size: 23px; font-weight: 700; letter-spacing: -.03em; }
.r-card { border-radius: 13px; }
.r-card-content { padding: 21px; }
.r-card h3 { font-family: var(--sans); font-size: 18px; line-height: 1.5; font-weight: 750; letter-spacing: -.025em; }
.r-card-content > p:not(.r-card-meta) { font-size: 14px; line-height: 1.8; }
.r-card-meta { font-size: 11px; }
.r-card-foot { font-size: 12px; }
.r-browser-controls { border-radius: 14px; padding: 18px; }
.r-browser-controls label { font-size: 12px; }
.r-browser-controls input, .r-browser-controls select { background: var(--bg-0); font-size: 14px; border-radius: 8px; }
.r-button { border-radius: 9px; min-height: 40px; font-size: 14px; font-weight: 700; padding: 10px 15px; gap: 15px; }
.r-topic { border-radius: 13px; }
.r-topic strong { font-size: 16px; font-weight: 700; }
.r-section-head h2 { font-size: 25px; font-weight: 750; }
.r-atlas-banner h2 { font-size: 33px; font-weight: 700; }
.r-data-card { border-radius: 14px; }
.r-data-card h2 { font-size: 22px; font-weight: 700; }
.r-stats { padding-block: 18px; }
.r-stats strong { font-size: 27px; font-weight: 700; font-style: normal; }
.r-stats span { font-size: 13px; }
.r-toc nav a { font-size: 13px; }
.r-feature-source > strong { font-family: var(--sans); font-size: 25px; font-weight: 650; }
.palette { border-radius: 18px; border: 1px solid var(--border-2); background: var(--card); box-shadow: 0 24px 100px rgb(0 0 0 / .25); }
.pal-label { font-family: var(--sans); font-weight: 650; }
.pal-item { border-radius: 9px; }
.research-desk { width: 100%; min-width: 0; }
.desk-heading { display: flex; justify-content: space-between; align-items: center; gap: 28px; margin-bottom: 25px; }
.desk-overline { margin: 0 0 10px; font: 600 11px/1.5 var(--mono); letter-spacing: .07em; color: var(--r-green); }
.desk-heading h1 { font: 750 clamp(32px, 3.25vw, 44px)/1.15 var(--sans); letter-spacing: -.052em; margin: 0 0 10px; }
.desk-heading p:last-child { font-size: 14px; line-height: 1.8; color: var(--fg-dim); margin: 0; }
.desk-updated { flex-shrink: 0; display: grid; gap: 6px; text-align: right; text-decoration: none; }
.desk-updated span { font-size: 11px; color: var(--fg-mute); }
.desk-updated strong { font: 12px var(--mono); color: var(--fg-dim); }
.desk-search { width: 100%; display: flex; align-items: center; gap: 17px; text-align: left; padding: 19px 22px; background: var(--card); color: var(--fg); border: 1px solid var(--border-2); border-radius: 14px; cursor: pointer; box-shadow: 0 5px 18px rgb(22 41 30 / .025); }
.desk-search:hover { border-color: var(--r-green); }
.desk-search-icon { display: grid; place-items: center; width: 35px; height: 35px; color: var(--fg-mute); }
.research-desk svg { width: 23px; height: 23px; flex-shrink: 0; }
.desk-search strong { display: block; font-size: 16px; font-weight: 600; letter-spacing: -.02em; margin-bottom: 5px; }
.desk-search small { display: block; font-size: 12px; color: var(--fg-mute); }
.desk-search kbd { margin-left: auto; font: 12px var(--mono); white-space: nowrap; padding: 6px 9px; border-radius: 5px; border: 1px solid var(--border); background: var(--bg-0); color: var(--fg-mute); }
.desk-quick-topics { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 14px 0 25px; }
.desk-quick-topics > span { margin-right: 3px; color: var(--fg-mute); font-size: 11px; }
.desk-quick-topics a { padding: 5px 9px; border: 1px solid var(--border); border-radius: 6px; text-decoration: none; color: var(--fg-dim); font-size: 11px; font-weight: 600; }
.desk-quick-topics a:hover { color: var(--fg); border-color: var(--border-2); background: var(--bg-1); }
.desk-quick-topics .desk-all-topics { border-color: transparent; color: var(--r-green); }
.desk-collections { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 30px; }
.desk-collection { display: flex; align-items: center; gap: 11px; min-width: 0; padding: 17px 13px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); text-decoration: none; color: var(--fg); }
.desk-collection:hover { border-color: var(--border-2); background: var(--r-green-soft); }
.desk-collection-icon { color: var(--r-green); width: 23px; }
.desk-collection strong { display: block; font-size: 13px; font-weight: 750; }
.desk-collection small { display: block; line-height: 1.5; font-size: 10px; margin-top: 5px; color: var(--fg-mute); }
.desk-collection-count { margin-left: auto; align-self: start; font: 11px var(--mono); color: var(--fg-mute); }
.desk-columns { display: grid; grid-template-columns: minmax(0, 1fr) clamp(266px, 19vw, 360px); gap: 24px; align-items: start; }
.desk-main, .desk-right { min-width: 0; }
.desk-section-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 14px; }
.desk-section-head h2 { margin: 0; font: 750 18px/1.4 var(--sans); letter-spacing: -.035em; }
.desk-section-head > a { color: var(--fg-mute); text-decoration: none; font-size: 11px; font-weight: 650; white-space: nowrap; }
.desk-section-head > a:hover { color: var(--accent); }
.desk-feature { border: 1px solid var(--border-2); border-radius: 15px; overflow: hidden; display: grid; grid-template-columns: .87fr 1.4fr; min-height: 246px; background: var(--card); }
.desk-feature-art { position: relative; padding: 25px 18px 35px; background: var(--r-green-soft); color: var(--r-green); display: grid; align-content: center; overflow: hidden; }
.desk-boundary { border: 1px solid color-mix(in srgb, var(--r-green) 38%, transparent); border-radius: 11px; padding: 12px; }
.desk-boundary > span { display: block; font: 8px/1.5 var(--mono); letter-spacing: .09em; margin-bottom: 10px; }
.boundary-outer { transform: rotate(-7deg); border-style: dashed; }
.boundary-inner { margin-left: 10px; background: color-mix(in srgb, var(--card) 45%, transparent); }
.boundary-resource { display: flex; align-items: center; gap: 4px; border-color: var(--r-green); background: var(--card); padding: 9px; }
.boundary-resource > span { margin: 0; }
.boundary-resource b { color: var(--accent); font: 500 19px var(--mono); margin-left: auto; }
.desk-art-note { position: absolute; left: 18px; right: 18px; bottom: 15px; font-size: 10px; line-height: 1.6; color: var(--fg-mute); }
.desk-feature-copy { display: flex; flex-direction: column; padding: 22px; }
.desk-feature-copy > p { max-width: 70ch; }
.desk-row-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 11px; color: var(--fg-mute); font: 11px/1.6 var(--mono); }
.desk-row-meta > span:first-child { color: var(--r-green); }
.desk-feature h2 { margin: 12px 0 13px; font: 750 clamp(21px, 1.8vw, 25px)/1.4 var(--sans); letter-spacing: -.035em; }
.desk-feature h2 a { color: var(--fg); text-decoration: none; }
.desk-feature h2 a:hover { color: var(--accent); }
.desk-feature p { margin: 0 0 18px; font-size: 13px; line-height: 1.75; color: var(--fg-dim); }
.desk-feature-link { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; color: var(--accent); text-decoration: none; font-size: 12px; font-weight: 750; }
.desk-feature-link svg { width: 17px; height: 17px; }
.desk-section { margin-top: 29px; }
.desk-case-list { border: 1px solid var(--border); border-radius: 13px; padding: 0 18px; background: var(--card); }
.desk-case-row { display: grid; grid-template-columns: 21px minmax(0, 1fr) 93px; gap: 12px; padding: 19px 0; border-bottom: 1px solid var(--border); }
.desk-case-row:last-child { border: 0; }
.desk-row-number { color: var(--fg-mute); font: 10px/1.8 var(--mono); padding-top: 1px; }
.desk-case-row h3 { margin: 7px 0 6px; font: 750 15px/1.65 var(--sans); letter-spacing: -.014em; }
.desk-case-row h3 a { color: var(--fg); text-decoration: none; }
.desk-case-row h3 a:hover { color: var(--accent); }
.desk-case-row p { font-size: 12px; color: var(--fg-mute); line-height: 1.7; margin: 0; }
.desk-row-end { text-align: right; padding-top: 3px; display: flex; flex-direction: column; align-items: end; }
.desk-row-end > span { font: 11px/1.6 var(--mono); color: var(--fg-dim); white-space: nowrap; }
.desk-row-end small { font-size: 10px; color: var(--fg-mute); margin-top: 3px; }
.desk-row-end a { margin-top: auto; color: var(--fg-mute); display: grid; place-items: center; min-width: 30px; min-height: 28px; }
.desk-row-end svg { width: 15px; height: 15px; }
.desk-reference-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.desk-reference { display: flex; flex-direction: column; align-items: start; color: var(--fg); padding: 19px; border: 1px solid var(--border); border-radius: 13px; background: var(--card); text-decoration: none; }
.desk-reference:hover { border-color: var(--border-2); }
.desk-reference-icon { color: var(--r-green); display: block; margin-bottom: 15px; }
.desk-reference .desk-row-meta { font-size: 10px; }
.desk-reference h3 { margin: 9px 0 10px; font: 750 15px/1.6 var(--sans); letter-spacing: -.016em; }
.desk-reference p { font-size: 12px; color: var(--fg-mute); line-height: 1.8; margin: 0 0 18px; }
.desk-reference-bottom { display: flex; justify-content: space-between; gap: 14px; width: 100%; border-top: 1px solid var(--border); padding-top: 13px; margin-top: auto; font-size: 10px; color: var(--fg-mute); text-transform: capitalize; }
.desk-side-panel { border: 1px solid var(--border); border-radius: 13px; padding: 18px; background: var(--card); margin-bottom: 18px; }
.desk-side-panel .desk-section-head h2 { font-size: 15px; font-weight: 750; }
.desk-subjects { display: grid; gap: 1px; }
.desk-subjects a { display: flex; min-height: 41px; align-items: center; gap: 10px; color: var(--fg-dim); text-decoration: none; font-size: 12px; font-weight: 600; padding-block: 9px; border-bottom: 1px solid var(--border); }
.desk-subjects a:last-child { border: 0; }
.desk-subjects a:hover { color: var(--accent); }
.desk-subject-glyph { font: 10px var(--mono); color: var(--fg-mute); }
.desk-subjects small { margin-left: auto; font: 10px var(--mono); color: var(--fg-mute); }
.desk-panel-note { font-size: 10px; color: var(--fg-mute); line-height: 1.7; margin: 12px 0 0; }
.desk-connected { background: var(--r-warm); }
.desk-connected-icon { color: var(--r-green); margin-bottom: 12px; }
.desk-connected h2, .desk-fieldkit h2 { font: 750 16px/1.5 var(--sans); letter-spacing: -.02em; margin: 0 0 8px; }
.desk-connected > p { font-size: 12px; line-height: 1.75; color: var(--fg-dim); margin: 0 0 18px; }
.desk-evidence-trail a { display: grid; grid-template-columns: 23px 1fr; gap: 10px; text-decoration: none; color: var(--fg); position: relative; padding-bottom: 17px; }
.desk-evidence-trail a > span { font: 10px/20px var(--mono); width: 21px; height: 21px; text-align: center; background: var(--card); color: var(--r-green); border-radius: 50%; border: 1px solid var(--border-2); z-index: 1; }
.desk-evidence-trail a:not(:last-child):after { content: ""; position: absolute; top: 20px; bottom: 0; left: 10px; width: 1px; background: var(--border-2); }
.desk-evidence-trail a:last-child { padding-bottom: 0; }
.desk-evidence-trail small { display: block; color: var(--fg-mute); font-size: 10px; margin: 2px 0 4px; }
.desk-evidence-trail strong { display: block; font-size: 12px; font-weight: 650; line-height: 1.7; }
.desk-evidence-trail a:hover strong { color: var(--accent); }
.desk-fieldkit .desk-overline { margin-bottom: 8px; font-size: 10px; }
.desk-fieldkit h2 { font-size: 16px; margin-bottom: 13px; }
.desk-fieldkit > a { display: flex; flex-direction: column; gap: 4px; padding: 11px 0; border-top: 1px solid var(--border); text-decoration: none; color: var(--fg); }
.desk-fieldkit strong { font-size: 12px; font-weight: 650; }
.desk-fieldkit a span { font-size: 10px; color: var(--fg-mute); }
.desk-program-strip { display: flex; align-items: center; gap: 18px; padding: 23px; margin-top: 28px; border: 1px solid var(--border-2); border-radius: 14px; background: var(--r-green-soft); }
.desk-program-icon { color: var(--r-green); }
.desk-program-strip h2 { font-size: 16px; letter-spacing: -.03em; font-weight: 750; margin: 0 0 6px; }
.desk-program-strip p { font-size: 12px; color: var(--fg-dim); margin: 0; line-height: 1.8; }
.desk-program-strip .r-button { margin-left: auto; white-space: nowrap; font-size: 12px; background: var(--card); }
.desk-source-footer { display: flex; justify-content: space-between; gap: 20px; font-size: 11px; margin-top: 24px; color: var(--fg-mute); }
.desk-source-footer a { color: var(--fg-dim); text-decoration: none; }
/* Whole-card and navigation links use their border/color hover feedback. */
:is(.brand, .desk-collection, .desk-reference, .desk-updated, .r-topic, .pal-item):hover,
:is(.desk-quick-topics, .desk-subjects, .desk-evidence-trail, .research-rail-menu nav, .r-stats, .r-related-list, .r-download-list) a:hover,
.desk-fieldkit > a:hover { text-decoration: none; }
.desk-reference:hover h3 { color: var(--collection-ink); }
.desk-fieldkit > a:hover strong { color: var(--accent); }
.r-related-list a:hover { border-color: var(--collection-ink, var(--accent)); }
/* Collection colors describe the kind of evidence. Topic colors describe its subject. */
[data-collection="disclosures"] { --collection-ink: var(--ink-copper); }
[data-collection="references"] { --collection-ink: var(--ink-blue); }
[data-collection="models"] { --collection-ink: var(--ink-violet); }
[data-collection="programs"] { --collection-ink: var(--ink-ochre); }
[data-topic-accent="authorization"] { --topic-ink: var(--ink-copper); }
[data-topic-accent="authentication"] { --topic-ink: var(--ink-blue); }
[data-topic-accent="business-logic"] { --topic-ink: var(--ink-ochre); }
[data-topic-accent="cloud-security"] { --topic-ink: var(--ink-teal); }
[data-topic-accent="supply-chain"] { --topic-ink: var(--ink-olive); }
[data-topic-accent="injection"] { --topic-ink: var(--ink-rose); }
[data-topic-accent="ai-security"] { --topic-ink: var(--ink-violet); }
[data-topic-accent="client-security"] { --topic-ink: var(--ink-blue); }
[data-topic-accent="server-request-trust"] { --topic-ink: var(--ink-slate); }
[data-topic-accent="memory-safety"] { --topic-ink: var(--ink-rose); }
[data-topic-accent="information-exposure"] { --topic-ink: var(--ink-olive); }
[data-collection] { --collection-soft: color-mix(in srgb, var(--collection-ink, var(--ink-slate)) var(--tone-strength), var(--card)); }
[data-topic-accent] { --topic-soft: color-mix(in srgb, var(--topic-ink, var(--ink-slate)) var(--tone-strength), var(--card)); }
.research-rail-menu nav a, .research-rail-branch { --nav-ink: var(--collection-ink, var(--ink-slate)); }
.research-rail-menu nav a[aria-current] { background: color-mix(in srgb, var(--nav-ink) var(--tone-strength), var(--card)); box-shadow: inset 3px 0 var(--nav-ink); }
.research-rail-menu [data-collection] .research-rail-icon { color: var(--nav-ink); }
.research-rail-menu .research-rail-children a[data-topic-accent] { border-left: 2px solid var(--topic-ink); }
.desk-overline, .r-eyebrow { color: var(--collection-ink, var(--ink-slate)); }
.desk-search { border-color: var(--control-border); }
.desk-search:hover { border-color: var(--ink-blue); }
.desk-collection { border-top: 2px solid var(--collection-ink); }
.desk-collection:hover { border-color: var(--collection-ink); background: var(--collection-soft); }
.desk-collection-icon, .desk-reference-icon, .desk-reference-bottom > span { color: var(--collection-ink); }
.desk-section[data-collection] .desk-section-head > a { color: var(--collection-ink); }
.desk-reference:hover { border-color: var(--collection-ink); }
.desk-quick-topics a[data-topic-accent] { display: inline-flex; align-items: center; gap: 7px; color: var(--fg-dim); }
.desk-quick-topics a[data-topic-accent]:hover { border-color: var(--topic-ink); background: var(--topic-soft); }
.desk-quick-topics .desk-all-topics { color: var(--fg-dim); }
.topic-mark { display: inline-grid; place-items: center; flex-shrink: 0; min-width: 24px; min-height: 22px; padding: 3px 4px; border-radius: 5px; color: var(--topic-ink, var(--ink-slate)); background: var(--topic-soft, var(--bg-1)); font: 600 10px/1 var(--mono); letter-spacing: .01em; }
.topic-label { min-width: 0; }
.topic-badge, .r-card-meta .topic-badge { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; color: var(--topic-ink, var(--ink-slate)); background: var(--topic-soft, var(--bg-1)); border: 0; border-radius: 5px; padding: 3px 7px 3px 3px; font: 600 10px/1.5 var(--sans); text-transform: none; letter-spacing: 0; }
.topic-badge .topic-mark { background: transparent; min-width: 22px; min-height: 19px; padding: 2px; }
.desk-subjects .topic-mark { min-width: 27px; min-height: 26px; }
.desk-subjects a:hover { color: var(--topic-ink); }
.r-topic { border-top: 2px solid var(--topic-ink); }
.r-topic:hover { border-color: var(--topic-ink); }
.r-topic .r-topic-symbol { display: inline-grid; width: 35px; height: 31px; min-height: 31px; place-items: center; margin-bottom: 17px; font: 600 11px/1 var(--mono); background: var(--topic-soft); color: var(--topic-ink); }
.r-topic small { color: var(--topic-ink); }
.r-page-head[data-topic-accent] .r-eyebrow { display: flex; align-items: center; gap: 10px; color: var(--topic-ink); }
.desk-row-meta > span:first-child { color: var(--fg-mute); }
.desk-feature-copy > .desk-row-meta > span:first-child { color: var(--ink-copper); }
.desk-row-end > span, .r-award { color: var(--ink-ochre); }
.desk-feature-art { background: var(--bg-1); color: var(--ink-copper); }
.desk-boundary { border-color: currentColor; }
.boundary-inner { color: var(--ink-blue); background: var(--card); }
.boundary-resource { color: var(--ink-ochre); border-color: currentColor; background: color-mix(in srgb, var(--ink-ochre) var(--tone-strength), var(--card)); }
.boundary-resource b { color: var(--ink-ochre); }
.desk-connected { background: var(--card); }
.desk-connected-icon { color: var(--ink-violet); }
.desk-evidence-trail a:nth-child(1) { --evidence-ink: var(--ink-copper); }
.desk-evidence-trail a:nth-child(2) { --evidence-ink: var(--ink-violet); }
.desk-evidence-trail a:nth-child(3) { --evidence-ink: var(--ink-blue); }
.desk-evidence-trail a > span { color: var(--evidence-ink); border-color: var(--evidence-ink); }
.desk-evidence-trail a:hover strong { color: var(--evidence-ink); }
.desk-program-strip, .r-atlas-overview { background: color-mix(in srgb, var(--ink-ochre) 7%, var(--card)); }
.desk-program-icon { color: var(--ink-ochre); }
.desk-program-strip .r-button { border-color: var(--ink-ochre); }
.r-stats a[data-collection] strong, .r-collection-tabs a[data-collection], [data-collection] .r-card-foot > a { color: var(--collection-ink); }
.r-card { border-top: 2px solid var(--collection-ink, var(--border)); }
.r-card-meta { color: var(--fg-mute); }
.r-card:hover { border-color: var(--collection-ink, var(--border-2)); }
.r-evidence-box { background: color-mix(in srgb, var(--ink-ochre) 7%, var(--card)); }
.r-evidence-box > strong { color: var(--ink-ochre); }
.r-related-list small { color: var(--collection-ink, var(--ink-slate)); }
.r-scope-table caption { background: var(--bg-1); }
.r-large-text .r-article-body { font-size: 20px; }
/* Native menus keep keyboard/touch behavior and follow the current page theme. */
body[data-workbench-shell] select, .r-browser-controls input { background-color: var(--card); color: var(--fg); border-color: var(--control-border); color-scheme: inherit; }
body[data-workbench-shell] select option, body[data-workbench-shell] select optgroup { background: var(--card); color: var(--fg); }
.r-browser-controls select[data-active="true"] { background-color: var(--collection-soft, var(--bg-1)); color: var(--collection-ink, var(--fg)); border-color: var(--collection-ink, var(--control-border)); font-weight: 650; }
.r-browser-controls select[data-filter="topic"][data-active="true"] { background-color: var(--topic-soft); color: var(--topic-ink); border-color: var(--topic-ink); }
.r-browser-controls input::placeholder, input::placeholder, textarea::placeholder { color: var(--fg-mute); opacity: 1; }
.r-view-toggle button[aria-pressed="true"] { background: var(--collection-soft, var(--bg-1)); color: var(--collection-ink, var(--fg)); box-shadow: inset 0 -2px var(--collection-ink, var(--fg)); }
.r-reset { color: var(--collection-ink, var(--accent)); }
.rail-item.on { color: var(--accent); background: var(--accent-soft); }
header.top .tab.active { color: var(--ink-slate); background: color-mix(in srgb, var(--ink-slate) var(--tone-strength), var(--card)); }
.r-reading-tools button[aria-pressed="true"] { border-color: var(--collection-ink, var(--ink-blue)); color: var(--collection-ink, var(--ink-blue)); }
.pal-type { --result-ink: var(--ink-slate); color: var(--result-ink); border-color: var(--result-ink); background: color-mix(in srgb, var(--result-ink) var(--tone-strength), var(--card)); }
.pal-type.disclosure, .pal-type.report { --result-ink: var(--ink-copper); }
.pal-type.reference, .pal-type.reading { --result-ink: var(--ink-blue); }
.pal-type.model, .pal-type.diagram, .pal-type.skill, .pal-type.playbook { --result-ink: var(--ink-violet); }
.pal-type.program, .pal-type.programs, .pal-type.program-atlas, .pal-type.reviewed-policy, .pal-type.platform, .pal-type.hunt { --result-ink: var(--ink-ochre); }
.pal-type.tool, .pal-type.checklist, .pal-type.pipeline, .pal-type.wordlist { --result-ink: var(--ink-teal); }
.pal-type.cve, .pal-type.payload, .pal-type.gadget, .pal-type.bypass { --result-ink: var(--ink-rose); }
.pal-item[aria-selected="true"], .pal-item.sel, .pal-item:hover { background: var(--bg-1); }
@media (min-width: 960px) {
  .top-row { height: 68px; max-width: none; padding-inline: 23px; }
  header.top:has(.groups) .nav { top: 69px; }
  .top-row .groups { margin-left: 14px; }
  .top-row .search-wrap { margin-left: auto; }
  body[data-workbench-shell] header.top .workbench-mobile-nav { display: none; }
  body[data-workbench-shell] .util-nav { display: none; }
  body[data-workbench-shell] .util-layout { grid-template-columns: minmax(0, 1fr); }
  .r-article-head { margin-left: 188px; }
  .r-reading-layout { grid-template-columns: 160px minmax(0, 1fr); gap: 28px; }
}

@media (min-width: 1500px) {
  .desk-feature { grid-template-columns: minmax(250px, .55fr) minmax(0, 1fr); }
  .desk-feature-art { padding-inline: 30px; }
  .boundary-outer { width: 100%; max-width: 330px; margin-inline: auto; }
  .desk-case-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
  .desk-case-row { grid-template-columns: 20px minmax(0, 1fr); }
  .desk-row-end { grid-column: 2; flex-direction: row; align-items: center; gap: 8px; text-align: left; }
  .desk-row-end a { margin: 0 0 0 auto; }
  .desk-case-row:nth-last-child(-n+2) { border-bottom: 0; }
  .desk-reference-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reader-browser .r-card-grid:not(.r-list-view),
  .reader-index .r-card-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
  body[data-section="tools"] .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 2100px) {
  .desk-reference-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .util-pane > .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1200px) and (min-width: 960px) {
  :root { --rail-width: 186px; }
  body[data-workbench-shell="true"] main { padding: 28px 24px 40px; }
  .research-rail { padding-inline: 9px; }
  .research-rail-menu nav a, .research-rail-branch > summary { gap: 7px; padding-inline: 8px; font-size: 12px; }
  .desk-columns { grid-template-columns: minmax(0, 1fr) 244px; gap: 18px; }
  .desk-collections { grid-template-columns: repeat(2, 1fr); }
  .desk-feature { grid-template-columns: 1fr; }
  .desk-feature-art { min-height: 112px; padding: 16px 25px; }
  .boundary-outer { transform: rotate(-3deg); max-width: 240px; margin-inline: auto; width: 100%; padding: 8px; }
  .desk-boundary { padding: 8px; }
  .desk-boundary > span { margin-bottom: 5px; }
  .desk-art-note { display: none; }
  .desk-row-end { display: none; }
  .desk-case-row { grid-template-columns: 20px minmax(0, 1fr); }
  .desk-updated { display: none; }
}
@media (max-width: 959px) {
  .research-rail { display: none; }
  body[data-workbench-shell] header.top .workbench-mobile-nav { display: none; }
  body[data-workbench-shell] header.top .nav-toggle:checked ~ .workbench-mobile-nav { display: block; position: fixed; top: 75px; bottom: 0; left: 0; right: 0; width: 100%; max-height: none; margin: 0; padding: 22px; overflow-y: auto; background: var(--bg-0); z-index: 50; }
  .workbench-mobile-nav .research-rail-menu { max-width: 560px; margin-inline: auto; }
  .workbench-mobile-nav .research-rail-menu nav a, .workbench-mobile-nav .research-rail-branch > summary { min-height: 44px; font-size: 15px; }
  body[data-workbench-shell="true"] main { margin-inline: auto; padding: 28px 24px 40px; transform: none; }
  body[data-workbench-shell="true"] footer { margin-inline: 24px; }
  .desk-columns { grid-template-columns: minmax(0, 1fr) 235px; gap: 20px; }
  .desk-collections { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .desk-feature { grid-template-columns: 1fr; }
  .desk-feature-art { display: none; }
  .desk-heading h1 { font-size: 34px; }
  .desk-row-end { display: none; }
  .desk-case-row { grid-template-columns: 20px minmax(0,1fr); }
  .r-article-head { margin-left: 0; }
  .r-reading-layout { display: block; }
  .r-toc { position: static; display: block; margin-bottom: 25px; padding: 18px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); }
  .r-toc nav { flex-direction: row; flex-wrap: wrap; gap: 6px 16px; border: 0; padding: 0; }
  .r-reading-tools { flex-direction: row; margin-top: 14px; }
}
@media (max-width: 700px) {
  body[data-workbench-shell] header.top .nav-toggle:checked ~ .workbench-mobile-nav { top: 114px; }
  body[data-workbench-shell="true"] main { padding: 24px 17px 34px; }
  body[data-workbench-shell="true"] footer { margin-inline: 17px; }
  .top-row { padding: 9px 17px; }
  .brand-lockup { font-size: 22px; }
  .search-wrap input { font-size: 16px; }
  .desk-heading { margin-bottom: 20px; }
  .desk-heading h1 { font-size: 34px; }
  .desk-heading p:last-child { font-size: 14px; max-width: 38ch; }
  .desk-updated { display: none; }
  .desk-search { gap: 11px; padding: 16px 14px; border-radius: 12px; }
  .desk-search strong { font-size: 15px; }
  .desk-search small { font-size: 11px; line-height: 1.7; max-width: 32ch; }
  .desk-search kbd { display: none; }
  .desk-search-icon { width: 24px; }
  .desk-quick-topics { margin: 12px 0 20px; gap: 7px; }
  .desk-quick-topics a { font-size: 12px; padding: 7px 9px; }
  .desk-quick-topics > span { display: none; }
  .desk-collections { gap: 9px; margin-bottom: 24px; }
  .desk-collection { padding: 14px 12px; gap: 9px; }
  .desk-collection strong { font-size: 13px; }
  .desk-collection small { font-size: 10px; line-height: 1.7; }
  .desk-collection-count { display: none; }
  .desk-collection-icon svg { width: 21px; }
  .desk-columns { display: block; }
  .desk-feature { display: block; }
  .desk-feature-art { display: block; height: 172px; padding: 22px; }
  .boundary-outer { max-width: 235px; margin-inline: auto; padding: 8px; transform: rotate(-4deg); }
  .desk-boundary { padding: 8px; }
  .desk-boundary > span { margin-bottom: 5px; }
  .desk-art-note { display: none; }
  .desk-feature-copy { padding: 20px; }
  .desk-feature h2 { font-size: 21px; line-height: 1.5; }
  .desk-feature p { font-size: 14px; }
  .desk-feature-link { font-size: 14px; }
  .desk-row-meta { font-size: 11px; }
  .desk-case-list { padding-inline: 15px; }
  .desk-case-row { gap: 10px; grid-template-columns: 16px minmax(0,1fr); padding-block: 19px; }
  .desk-case-row h3 { font-size: 15px; }
  .desk-case-row p { font-size: 13px; }
  .desk-reference-grid { grid-template-columns: 1fr; }
  .desk-reference { padding: 20px; }
  .desk-reference h3 { font-size: 16px; }
  .desk-reference p { font-size: 13px; }
  .desk-right { display: grid; grid-template-columns: 1fr; margin-top: 24px; }
  .desk-side-panel { padding: 21px; }
  .desk-side-panel .desk-section-head h2 { font-size: 16px; }
  .desk-subjects a { font-size: 14px; padding-block: 12px; }
  .desk-panel-note { font-size: 12px; }
  .desk-connected h2, .desk-fieldkit h2 { font-size: 18px; }
  .desk-connected > p, .desk-evidence-trail strong { font-size: 14px; }
  .desk-evidence-trail small, .desk-fieldkit a span { font-size: 12px; }
  .desk-fieldkit strong { font-size: 14px; }
  .desk-program-strip { flex-wrap: wrap; padding: 20px; gap: 12px; margin-top: 8px; }
  .desk-program-strip h2 { font-size: 16px; }
  .desk-program-strip > div { flex: 1 1 220px; }
  .desk-program-strip .r-button { margin-left: 0; }
  .desk-source-footer { flex-direction: column; gap: 10px; font-size: 12px; line-height: 1.7; }
  .r-page-head h1, .r-article-head h1 { font-size: 33px; }
  .r-browser-controls input, .r-browser-controls select { font-size: 16px; }
  .r-article-body { font-size: 16px; }
  .r-card h3 { font-size: 18px; }
  .r-card-content > p:not(.r-card-meta) { font-size: 15px; }
}
@media (max-width: 359px) { .r-topic-grid { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .desk-collection, .desk-reference { transition: none; } }
