/* Shared interaction patterns, responsive controls and semantic colors. */
html body.vs-body :is(.btn,.handoff-btn,.ui-pill,.relation-action-btn,.relation-tool-button,.tip-action) { border-radius: 999px!important; cursor: pointer; transition: background-color .16s ease,border-color .16s ease,color .16s ease!important; }
html body.vs-body :is(.btn,.handoff-btn,.ui-pill,.relation-action-btn,.relation-tool-button,.tip-action):not(:disabled) { border-color: var(--action-border,color-mix(in srgb,var(--vs-primary) 32%,var(--vs-line2))); color: var(--action-ink,var(--vs-primary)); background-color: var(--action-surface,color-mix(in srgb,var(--vs-primary) 6%,var(--vs-surface))); }
html body.vs-body :is(.btn,.handoff-btn,.ui-pill,.relation-action-btn,.relation-tool-button,.tip-action):not(:disabled):hover { border-color: var(--vs-primary)!important; background-color: color-mix(in srgb,var(--vs-primary) 14%,var(--vs-surface))!important; color: var(--vs-text)!important; }
html body.vs-body :is(.btn.primary,.btn-primary,.engine .handoff-primary):not(:disabled):hover { background-color: var(--vs-button-end)!important; color: var(--vs-button-text)!important; }
html body.vs-body :is(button,.btn,.handoff-btn):disabled { cursor: not-allowed; opacity: .45; }
body.vs-body :is(.text-button,.report-feedback a,a.relation-link,a.overview-pivot) { color: var(--vs-primary); text-decoration: none; text-underline-offset: 4px; text-decoration-thickness: 1px; }
body.vs-body :is(.text-button,.report-feedback a,a.relation-link,a.overview-pivot):is(:hover,:focus-visible) { text-decoration: none; color: var(--vs-text); }
body.vs-body :is(.node-row,.signal-entry,.insight-links button) { cursor: pointer; transition: background-color .16s ease,border-color .16s ease; }
body.vs-body :is(.node-row,.signal-entry,.insight-links button):hover { background-color: color-mix(in srgb,var(--vs-primary) 7%,var(--vs-panel)); border-color: color-mix(in srgb,var(--vs-primary) 50%,var(--vs-line2)); }
.signal-entry .gallery-foot { color: var(--vs-primary); }
body.vs-body :is(.tabs button,.view-tabs button,.header-search button):hover { color: var(--vs-primary); background-color: color-mix(in srgb,var(--vs-primary) 7%,transparent); }
body.vs-body :is(span.pill,em.pill,.panel-badge,.mini-badge,.tag-row>span) { border-radius: 999px; cursor: default; box-shadow: none; background-color: color-mix(in srgb,var(--vs-text) 3%,transparent); }
.report-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.report-meta .pills { margin: 0; }
.report-meta .pill { font: 400 12px/1.5 var(--sans); padding: 3px 9px; }
.identity { padding-top: 12px; }
.report-service-status { display: inline-flex; align-items: center; gap: 11px; margin-left: auto; padding: 7px 0; color: var(--vs-muted); font: 400 12px/1.5 var(--sans); white-space: nowrap; }
.report-service-status strong { font: 400 12px/1.5 var(--sans); color: var(--vs-text); font-variant-numeric: tabular-nums; margin-left: 4px; }
.report-service-status .status-divider { color: var(--vs-faint); opacity: .6; }
.brief-dimension { flex-shrink: 0; }
.brief-interactive { position: relative; min-width: 0; }
#brief-graph { display: block; width: 100%; touch-action: pan-y; outline-offset: -4px; }
.brief-tooltip { position: absolute; z-index: 3; pointer-events: auto; max-width: min(285px,calc(100% - 16px)); padding: 11px 13px; border: 1px solid var(--vs-line); border-radius: 7px; background: var(--vs-panel); box-shadow: none; color: var(--vs-text); }
.brief-tooltip strong { display: block; font: 400 12px/1.65 var(--mono); overflow-wrap: anywhere; }
.brief-tooltip span { display: block; font: 400 11px/1.6 var(--sans); color: var(--vs-muted); margin-top: 5px; }
.brief-tooltip small { display: block; font: 400 11px/1.6 var(--sans); color: var(--vs-primary); margin-top: 7px; }
.brief-help { font: 400 11px/1.6 var(--sans); text-align: center; color: var(--vs-faint); margin: 0 15px 17px; }
.obs-relation-note { position: absolute; bottom: 76px; left: 20%; z-index: 2; pointer-events: none; font: 400 12px/1.5 var(--sans); color: var(--vs-text); }
.obs-relation-note small { display: block; margin-top: 3px; font-size: 11px; color: var(--vs-muted); }
#precision-stage :is(#geo-map,#geo-stage,#geo-scene,.geo-base) { border: 0!important; outline: 0; box-shadow: none!important; }
#precision-stage :is(#geo-map,#geo-stage,#geo-scene)::before, #precision-stage :is(#geo-map,#geo-stage,#geo-scene)::after { display: none!important; }
@media(max-width:760px) {
  .report-meta { gap: 10px; }
  .report-meta .pill { font-size: 11px; }
  .report-meta .report-service-status { margin-left: auto; }
  .identity { padding-top: 6px; }
  .report-service-status { gap: 8px; font-size: 11px; padding-block: 6px; }
  .report-service-status strong { font-size: 11px; }
  .brief-help { font-size: 11px; margin-bottom: 14px; }
  .obs-relation-note { font-size: 11px; bottom: 61px; left: 7%; }
  .obs-relation-note small { font-size: 10px; }
}
@media(prefers-reduced-motion:reduce) {
  html body.vs-body :is(.btn,.handoff-btn,.ui-pill,.node-row,.signal-entry) { transition: none!important; }
}
#brief-graph:focus-visible { outline: 2px solid var(--vs-primary); outline-offset: -4px; border-radius: 0; }
body.vs-body :is(.signal-entry,.node-row,.geo-summary-ioc-link), body.vs-body :is(.signal-entry,.node-row,.geo-summary-ioc-link):is(:hover,:focus-visible), body.vs-body :is(.signal-entry,.node-row,.geo-summary-ioc-link) :is(code,strong,span,h3) { text-decoration: none!important; }
body.vs-body :is(a.relation-link,a.overview-pivot) { border-radius: 3px; border-bottom: 0; }
body.vs-body :is(.relation-row,.bulk-table tbody tr,.recent-report-list a,.usage-table tbody tr):hover { background: color-mix(in srgb,var(--vs-primary) 6%,var(--vs-panel)); }
body.vs-body :is(.pill,.tag,.tag-chip,.tag-pill,.panel-badge,.mini-badge,.ui-count,.tag-row>span,.pills>span,.relation-chip,.relation-extra .badge,.tabs button>span) { border-radius: 999px!important; }
.report-identity .pill, .analysis-context .pill { font: 400 12px/1.5 var(--sans); padding: 3px 9px; }
html body.vs-body :is(input,textarea,select,button,.btn,.handoff-btn,.ui-pill):not(.copy-icon):focus { outline: 0!important; box-shadow: none!important; }
html body.vs-body :is(input,textarea,select):focus { border-color: var(--vs-primary); }
html body.vs-body :is(button,.btn,.handoff-btn,.ui-pill):not(.copy-icon):focus-visible { border-color: var(--vs-primary)!important; background-color: color-mix(in srgb,var(--vs-primary) 14%,var(--vs-surface))!important; color: var(--vs-text); }
html body.vs-body :is(.text-button,summary):focus-visible { outline: 0; text-decoration: underline; text-underline-offset: 4px; }
html body.vs-body :is(.header-search,.search-input-wrap,.graph-search-box,.relation-search-box):focus-within { outline: 0!important; box-shadow: none!important; border-color: var(--vs-primary); }
html body.vs-body :is(.header-search,.search-input-wrap,.graph-search-box,.relation-search-box) input:focus { border: 0!important; outline: 0!important; box-shadow: none!important; }
html body.vs-body .identity .ioc-title, html body.vs-body .identity .ioc-title:focus { border: 0!important; outline: 0!important; box-shadow: none!important; background: transparent!important; cursor: text; white-space: nowrap; }
html body.vs-body .actor-signal>summary:focus-visible { border-color: var(--vs-primary); text-decoration: none; background-color: color-mix(in srgb,var(--vs-primary) 14%,var(--vs-surface)); }
.score-ring { width: 96px; height: 96px; padding: 6px; box-shadow: none; }
body.vs-body .segmented-control { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(max-content,1fr); gap:0; padding:0; border:1px solid var(--vs-line2); border-radius:6px; overflow:hidden; isolation:isolate; }
html body.vs-body .segmented-control>button { display:flex; align-items:center; justify-content:center; text-align:center; white-space:nowrap; margin:0; border:0!important; border-radius:0!important; padding:7px 13px; height:auto; min-width:40px; min-height:32px; font:600 12px/1.5 var(--sans); color:var(--vs-muted); background:transparent; box-shadow:none!important; }
html body.vs-body .segmented-control>button:is(:hover,:focus-visible):not(:disabled) { color:var(--vs-primary)!important; background:color-mix(in srgb,var(--vs-primary) 7%,transparent)!important; }
html body.vs-body .segmented-control>button:is(.active,[aria-pressed=true]):not(:disabled) { background:color-mix(in srgb,var(--vs-primary) 14%,var(--vs-panel))!important; color:var(--vs-primary)!important; box-shadow:none!important; }
.tabs { gap: 12px; }
.tabs button { padding: 10px 13px 12px; border-radius: 5px 5px 0 0; }
.tabs button:hover { background: color-mix(in srgb,var(--vs-primary) 7%,var(--vs-panel)); }
[data-pane=data]>.section-title { margin-top: 0; align-items: center; }
[data-pane=data]>.section-title h3 { font: 650 17px/1.5 var(--sans); margin: 0; }
[data-pane=data]>.muted { font-size: 13px; }
.engine .relation-tools :is(input,select), .engine .relation-search-box input { font: 400 12px/1.5 var(--sans)!important; }
.node-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; max-height: 288px; border: 1px solid var(--vs-line2); border-radius: 7px; padding: 0; align-content: start; }
.node-row { display: grid; grid-template-columns: 46px minmax(0,1fr) minmax(75px,32%); align-items: center; column-gap: 10px; min-height: 44px; height: 44px; padding: 8px 12px; border: 0; border-bottom: 1px solid var(--vs-line2); border-radius: 0; background: transparent; overflow: hidden; }
.node-row:nth-child(odd) { border-right: 1px solid var(--vs-line2); }
.node-row strong { font: 400 12px/1.5 var(--mono); color: var(--vs-primary); }
.node-row small { margin: 0; font: 400 11px/1.5 var(--sans); text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--vs-muted); }
.node-row .node-type { font: 400 10px/1.5 var(--sans); color: var(--vs-muted); text-overflow: ellipsis; overflow: hidden; }
.node-row[aria-pressed=true] { background: color-mix(in srgb,var(--vs-primary) 12%,var(--vs-panel)); }
.node-row[aria-pressed=true] strong { color: var(--vs-heading); }
[data-bulk-app]>.page-intro h1 { font-size: clamp(24px,3.25vw,46px); letter-spacing: -1.2px; max-width: none; white-space: nowrap; }
[data-bulk-app]>.page-intro { max-width: none; }
.brief-tip-head { display: flex; align-items: start; gap: 12px; margin-bottom: 7px; }
.brief-tip-head span { margin: 0; flex: 1; }
.brief-close { border: 0; background: none; color: var(--vs-muted); font: 18px/1 var(--sans); padding: 0 3px; cursor: pointer; }
.brief-tooltip .text-button { font: 600 12px/1.5 var(--sans); margin-top: 12px; padding: 3px 0; }
.investigation-shell { position: relative; }
.investigation-popovers { position: absolute; inset: 0; pointer-events: none; z-index: 40; }
.investigation-popovers .geo-summary-detail { position: absolute; pointer-events: auto; overflow: auto; max-width: calc(100% - 16px); box-shadow: none; border: 1px solid var(--vs-line); background: var(--vs-panel); }
.investigation-popovers .geo-summary-detail[hidden] { display: none!important; }
.stage-bottom>#scene-details, .inspector>#inspector-close { display: none; }
body.has-studio-fullscreen { overflow: hidden; }
#investigation-shell:is(:fullscreen,.is-fullscreen-fallback) { display: flex; flex-direction: column; width: 100%; height: 100dvh; max-width: none; max-height: none; min-height: 0; border: 0; border-radius: 0; background: var(--vs-bg); overflow: hidden; }
#investigation-shell.is-fullscreen-fallback { position: fixed; inset: 0; z-index: 10000; }
#investigation-shell.is-fullscreen>.investigation-toolbar, #investigation-shell.is-fullscreen>.analysis-tools, #investigation-shell.is-fullscreen>.scene-footnote, #investigation-shell.is-fullscreen>.ioc-type-legend { flex: 0 0 auto; }
#investigation-shell.is-fullscreen>.analysis-tools { max-height: 35dvh; overflow: auto; }
#investigation-shell.is-fullscreen>.investigation-grid { flex: 1 1 0; min-height: 0; overflow: hidden; }
#investigation-shell.is-fullscreen .visual-stage { height: 100%; min-height: 0; }
#investigation-shell.is-fullscreen .inspector { height: 100%; min-height: 0; max-height: none; overflow: auto; }
@media(max-width:760px) {
  .investigation-popovers .geo-summary-detail { position: fixed; left: 12px!important; right: 12px; top: auto!important; bottom: max(12px,env(safe-area-inset-bottom)); width: auto!important; max-height: min(62dvh,520px)!important; overscroll-behavior: contain; }
  .score-ring { width: 80px; height: 80px; padding: 6px; }
  .report-identity .pill, .analysis-context .pill { font-size: 11px; }
  .tabs { gap: 6px; }
  .tabs button { padding: 9px 11px 11px; }
  .node-list { grid-template-columns: 1fr; max-height: 270px; }
  .node-row { grid-template-columns: 35px minmax(0,1fr) minmax(55px,28%); gap: 7px; min-height: 44px; height: 44px; padding: 8px 10px; }
  .node-row:nth-child(odd) { border-right: 0; }
  .node-row strong { font-size: 11px; }
  .node-row small { font-size: 10px; }
  .node-row .node-type { font-size: 9px; }
  [data-bulk-app]>.page-intro h1 { white-space: normal; font-size: 27px; line-height: 1.3; letter-spacing: -.7px; }
  #investigation-shell.is-fullscreen>.investigation-grid { grid-template-columns: 1fr; grid-template-rows: minmax(0,1fr); }
  #investigation-shell.is-fullscreen .inspector { display: none; position: absolute; bottom: 0; left: 0; right: 0; height: auto; max-height: 55dvh; z-index: 50; border: 1px solid var(--vs-line); border-bottom: 0; border-radius: 14px 14px 0 0; padding: 14px 16px 20px; background: var(--vs-panel); overscroll-behavior: contain; }
  #investigation-shell.is-fullscreen.is-inspector-open .inspector { display: block; }
  #investigation-shell.is-fullscreen .inspector-close { display: block; position: sticky; top: 0; float: right; margin: 0 0 10px 12px; z-index: 1; background: var(--vs-panel); }
  #investigation-shell.is-fullscreen .inspector-toggle { display: inline-flex; pointer-events: auto; width: auto; padding: 5px 12px; height: 32px; min-height: 32px; font-size: 12px; }
  #investigation-shell.is-fullscreen #scene-hint { display: none; }
  #investigation-shell.is-fullscreen>.scene-footnote, #investigation-shell.is-fullscreen>.ioc-type-legend { display: none; }
  #investigation-shell.is-fullscreen #studio-minimap { display: none; }
  #investigation-shell.is-fullscreen .inspector>.eyebrow { display: none; }
  #investigation-shell.is-fullscreen .inspector #inspector-heading h3 { margin-top: 0; }
  #investigation-shell.is-fullscreen>.scene-footnote { font-size: 10px; padding: 7px 12px; }
  #investigation-shell.is-fullscreen>.ioc-type-legend { padding: 12px 12px 8px; gap: 12px; font-size: 10px; }
  #investigation-shell.is-fullscreen>.investigation-toolbar { padding: 8px 12px; }
}
#investigation-shell [hidden] { display: none!important; }
#investigation-shell:not([data-lens=geo]) :is(#geo-map,#geo-leaflet), #investigation-shell:not([data-lens=time]) #vs-timeline, #investigation-shell:not([data-lens=relations]) #native-graph-stage, #investigation-shell[data-dimension="3d"] #precision-stage { display: none!important; }
#precision-stage>:is(#native-graph-stage,#vs-timeline,#geo-map,#geo-leaflet) { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; min-height: 0; }
.stage-bottom>div, .obs-space-bottom>div { display: flex; align-items: center; gap: 4px; }
.stage-bottom button, .obs-space-bottom button, .tool-icon { display: inline-flex; align-items: center; justify-content: center; padding: 0; line-height: 1; flex-shrink: 0; }
#scene-fullscreen svg { display: block; flex: none; margin: 0; width: 14px; height: 14px; }
.header-bar { --vs-header-surface:color-mix(in srgb,var(--vs-bg) 80%,#000); width:100%; border-bottom:1px solid var(--vs-line2); background:var(--vs-header-surface); position:sticky; top:0; z-index:100; }
html { scroll-padding-top:136px; }
/* Sticky search is already visible; anchor clearance must not move its caret. */
html:has(.header-search input:focus) { scroll-padding-top:0; }
.header-bar .studio-header { border-bottom: 0; background: transparent; }
.studio-header .header-search { background:transparent; margin: 0; flex: 1 1 240px; max-width: none; min-width: 160px; }
.studio-header nav { margin-left: 0; flex-shrink: 0; }

@media(min-width:951px) {
  html { scroll-padding-top: 106px; }
}
@media(max-width:950px) {
  .studio-header .header-search { margin-left: auto; max-width: 310px; flex: 1 1 220px; }
}
@media(max-width:760px) {
  .studio-header .header-search { margin: 0 0 17px; max-width: none; flex-basis: 100%; }
}
@media print {
  .header-bar { display: none; }
}
body.vs-body .coverage-state { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border: 1px solid var(--vs-line2); border-radius: 999px; background: color-mix(in srgb,var(--vs-text) 3%,transparent); color: var(--vs-muted)!important; font: 400 12px/1.6 var(--sans); }
.coverage-state time { margin: 0; color: inherit; white-space: normal; }
#analysis-tools { --action-border:var(--vs-line2); --action-ink:var(--vs-faint); --action-surface:var(--vs-surface); }
#analysis-tools .ui-pill:is(.active,[aria-pressed=true],[aria-expanded=true]):not(:disabled) { --action-border:var(--vs-primary); --action-ink:var(--vs-primary); --action-surface:color-mix(in srgb,var(--vs-primary) 14%,var(--vs-surface)); }
#analysis-tools .panel { padding: 14px 20px; margin: 0; }
#analysis-tools .graph-toolbar { gap: 9px; }
#analysis-tools .graph-toolbar-primary { display: flex!important; flex-wrap: wrap; align-items: center; justify-content: flex-start!important; gap: 8px 12px; }
#analysis-tools .graph-toolbar-primary>.graph-stats-pill { order: 0!important; flex: 0 0 auto; min-width: 0; padding: 4px 0; }
#analysis-tools .graph-toolbar-primary>.graph-search-box { order: 0!important; flex: 1 1 160px; width: auto; min-width: 140px; max-width: none; margin: 0; border: 1px solid var(--vs-line2); border-radius: 5px; height: 34px; background: var(--vs-surface); }
#analysis-tools .graph-search-box input { height: 32px; margin: 0; border: 0; border-radius: 0; min-width: 0; padding: 6px 9px; font: 400 12px/1.5 var(--sans); }
#analysis-tools .graph-toolbar-primary>.graph-toolbar-viewtools { order: 0!important; display: flex; flex: 0 0 auto!important; justify-content: flex-start!important; align-items: center; gap: 7px; width: auto!important; margin: 0!important; }
#analysis-tools .graph-toolbar-secondary { width:auto; flex:0 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0; padding: 0; }
#analysis-tools :is(.graph-toolbar-secondary>.ui-pill,.graph-export-wrap>.ui-pill) { height: 32px; padding: 5px 11px; font: 600 12px/1.5 var(--sans); }
#analysis-tools .graph-toolbar-secondary>.graph-icon-action { width: 32px; min-width: 32px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
#analysis-tools .segmented-control { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(max-content,1fr); min-height:32px; gap:0; padding:0; }

#analysis-tools .timeline-layout-control { margin-left:auto; flex:0 0 auto; }
#analysis-tools .timeline-toolbar-controls>.view-camera-controls { display:none; }

#analysis-tools .graph-head>div:first-child { max-width: none; min-width: 0; width: 100%; flex: none; }
#analysis-tools :is(.timeline-toolbar,.geo-toolbar) { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; }
#analysis-tools :is(.timeline-toolbar-info,.geo-toolbar-info) { flex: 0 1 auto; min-width: 0; max-width: 100%; }
#analysis-tools :is(.timeline-toolbar-controls,.geo-toolbar-controls) { display: flex; flex: 0 1 auto; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; width: auto; margin-left: auto; }
#analysis-tools .toolbar-filter-cluster { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; min-width: 0; }
#analysis-tools .view-filter { font: 400 12px/1.5 var(--sans); width: 120px!important; min-width: 100px!important; max-width: 150px!important; height: 34px; padding: 6px 8px; }
#analysis-tools .view-filter-wide { width: 145px!important; }
#analysis-tools .view-stats-pill { min-width: 0; max-width: 100%; white-space: normal; font: 400 11px/1.5 var(--sans); padding: 0; color: var(--vs-muted); }
#analysis-tools .geo-country-shortcuts { display: inline-flex; gap: 5px; margin: 0; }
.engine .relation-tools { display: grid; grid-template-columns: minmax(180px,1fr) repeat(3,minmax(110px,146px)) 104px; gap: 8px; align-items: center; width: 100%; min-width: 0; }
.engine .relation-tools>.relation-search-box { width: 100%; max-width: none; min-width: 0; margin: 0; }
.engine .relation-tools>.relation-view-filter, .engine #relation-collapse-all.relation-tool-button { width: 100%; min-width: 0; max-width: none; margin: 0; height: 34px; }
.engine .relation-tools>.relation-search-box input { height: 34px; min-width: 0; }
@media(max-width:1000px) {
  .engine .relation-tools { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .engine .relation-tools>.relation-search-box { grid-column: 1/-1; }
}
@media(max-width:760px) {
  #analysis-tools .panel { padding: 11px 13px; }
  #analysis-tools .graph-toolbar-primary { display: grid!important; grid-template-columns: auto minmax(0,1fr); gap: 7px 10px; }
  #analysis-tools .graph-toolbar-primary>.graph-search-box { width: 100%; max-width: none; min-width: 0; }
  #analysis-tools .graph-toolbar-primary>.graph-toolbar-viewtools { width: 100%!important; min-width: 0; grid-column: 1/-1; }
  #analysis-tools .graph-toolbar-layouts, #analysis-tools .graph-layout-toggle { width: 100%; }
  #analysis-tools .graph-layout-toggle>.layout-toggle { flex: 1 1 0; text-align: center; }
  #analysis-tools .graph-toolbar-primary>.graph-stats-pill { gap: 4px; white-space: nowrap; font-size: 10px; }
  #analysis-tools .graph-toolbar-secondary { gap:5px; width:100%; grid-column:1/-1; }
  #analysis-tools :is(.graph-toolbar-secondary>.ui-pill,.graph-export-wrap>.ui-pill) { height: 30px; padding: 4px 9px; font-size: 11px; }
  #analysis-tools .graph-toolbar-secondary>.graph-icon-action { width: 30px; min-width: 30px; padding: 0; }
  #analysis-tools :is(.timeline-toolbar,.geo-toolbar) { display: flex; flex-direction: column; align-items: stretch; gap: 7px; }
  #analysis-tools :is(.timeline-toolbar-controls,.geo-toolbar-controls) { margin: 0; width: 100%; justify-content: flex-start; gap: 7px; }
  #analysis-tools .toolbar-filter-cluster { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; flex: 1 1 100%; }
  #analysis-tools :is(.view-filter,.view-filter-wide) { width: 100%!important; min-width: 0!important; max-width: none!important; font-size: 11px; padding: 5px 6px; }
  #analysis-tools .geo-country-shortcuts { grid-column: 1/-1; }
  #analysis-tools .geo-map-controls { margin: 0; }
  #investigation-shell.is-fullscreen>.analysis-tools { max-height: 38dvh; }
}
@media(max-width:600px) {
  .engine .relation-tools { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
:root, :root[data-theme-preset=virussign_dark], :root[data-theme-preset=cyber_dark] { --vs-red: #e0525b; --vs-amber: #f5a623; --vs-green: #37c58b; --vs-risk-danger: var(--vs-red); --vs-risk-warn: var(--vs-amber); --vs-risk-safe: var(--vs-green); }
:root[data-theme-preset=virussign_light] { --vs-red: #d92525; --vs-amber: #a75b00; --vs-green: #177a53; --vs-risk-danger: var(--vs-red); --vs-risk-warn: var(--vs-amber); --vs-risk-safe: var(--vs-green); }
.score-ring.risk-danger { --vs-detection: var(--vs-risk-danger); }
.score-ring.risk-warn { --vs-detection: var(--vs-risk-warn); }
.score-ring.risk-safe { --vs-detection: var(--vs-risk-safe); }
.score-ring.risk-neutral { --vs-detection: var(--vs-muted); }
body.vs-body :is(.danger,.warn,.safe) { --risk-ink: var(--vs-muted); }
body.vs-body .danger { --risk-ink: var(--vs-risk-danger); color: var(--risk-ink)!important; }
body.vs-body .warn { --risk-ink: var(--vs-risk-warn); color: var(--risk-ink)!important; }
body.vs-body .safe { --risk-ink: var(--vs-risk-safe); color: var(--risk-ink)!important; }
body.vs-body :is(.pill,.mini-badge):is(.danger,.warn,.safe) { border-color: color-mix(in srgb,var(--risk-ink) 45%,transparent); background: color-mix(in srgb,var(--risk-ink) 7%,var(--vs-panel)); color: var(--risk-ink)!important; }
body.vs-body .metrics strong:is(.danger,.warn,.safe), body.vs-body .signal-list strong:is(.danger,.warn,.safe) { color: var(--risk-ink)!important; }
body.vs-body .engine :is(.evidence-card,.finding-card):is(.danger,.warn,.safe) { border-left: 3px solid var(--risk-ink); box-shadow: none; }
body.vs-body .engine .evidence-card:is(.danger,.warn,.safe)>strong { color: var(--risk-ink)!important; }
body.vs-body .engine .finding-card:is(.danger,.warn,.safe) .finding-dot { background: var(--risk-ink); box-shadow: none; }
body.vs-body .engine .finding-card:is(.danger,.warn,.safe) strong { color: var(--vs-heading); }
@media(max-width:380px) {
  .investigation-toolbar { flex-wrap: wrap; gap: 8px; padding: 10px 13px; }
  .investigation-toolbar .view-tabs { width: 100%; justify-content: space-between; gap: 3px; }
  .investigation-toolbar .dimension { margin-left: auto; }
}
/* Navigation uses the same restrained page-tab language at both levels. */
:root[data-theme-preset=virussign_light] .header-bar { --vs-header-surface:#fff; }
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)) {
  .header-bar { background:color-mix(in srgb,var(--vs-header-surface) 74%,transparent); backdrop-filter:blur(10px) saturate(1.08); -webkit-backdrop-filter:blur(10px) saturate(1.08); }
}
html body.vs-body .section-tabs>:is(button,a) { display:inline-flex;align-items:center;font:600 14px/1.5 var(--sans);text-decoration:none;background:transparent; border:0; border-bottom:2px solid transparent; border-radius:5px 5px 0 0; color:var(--vs-muted); padding:10px 13px 12px; white-space:nowrap; }
html body.vs-body .section-tabs>:is(button,a):is([aria-selected=true],[aria-pressed=true],[aria-current]) { color:var(--vs-primary); border-bottom-color:var(--vs-primary); background:transparent; }
html body.vs-body .section-tabs>:is(button,a):hover { color:var(--vs-primary); background:color-mix(in srgb,var(--vs-primary) 7%,var(--vs-panel)); }
.investigation-toolbar .section-tabs { gap:12px; align-self:stretch; }
.investigation-toolbar { padding-top:0; padding-bottom:0; }
.investigation-toolbar>.dimension { margin-top:8px; margin-bottom:8px; flex-shrink:0; }
#handoff-heading:focus { outline:0; }
/* One continuous dialog surface; sections are separated by spacing and rules. */
.handoff-dialog .engine :is(.handoff-panel,.handoff-grid,.handoff-column,.handoff-access) { background:transparent; border:0; border-radius:0; box-shadow:none; }
.handoff-dialog .engine .handoff-grid { gap:0; }
.handoff-dialog .engine .handoff-column { padding:0 24px 0 0; }
.handoff-dialog .engine .handoff-column+.handoff-column { border-left:1px solid var(--vs-line2); padding:0 0 0 24px; }
.signal-entry-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.signal-entry-heading .card-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 24px; width:24px; height:24px; margin:0; background:none; border:0; box-shadow:none; color:var(--vs-muted); }
.signal-entry-heading .card-icon svg { display:block; width:22px; height:22px; }
.signal-entry:hover .card-icon { color:var(--vs-primary); }
@media(max-width:980px) {
  .handoff-dialog .engine .handoff-column { padding:0; }
  .handoff-dialog .engine .handoff-column+.handoff-column { border-left:0; border-top:1px solid var(--vs-line2); padding:20px 0 0; margin-top:20px; }
}
@media(max-width:760px) {
  html body.vs-body .section-tabs>:is(button,a) { padding:9px 11px 11px; }
  .investigation-toolbar .section-tabs { gap:3px; }
  html body.vs-body .investigation-toolbar .section-tabs>:is(button,a) { font-size:12px; padding-left:5px; padding-right:5px; }
  .signal-entry-heading { gap:6px; }
  .signal-entry-heading .card-icon { width:20px; height:20px; flex-basis:20px; }
  .signal-entry-heading .card-icon svg { width:20px; height:20px; }
}
/* The input inherits the navigation surface, including focused state. */
.studio-header .header-search input { background:transparent; }
/* Navigation has a subtle separator shadow, never a floating input surface. */
.header-bar { box-shadow:0 2px 6px #0000000a; }
:root[data-theme-preset=virussign_light] .header-bar { box-shadow:0 2px 6px #17203308; }
.obs-search .search-input-wrap, .obs-search .search-input-wrap:focus-within { box-shadow:none!important; }
/* Swap complete icons so mobile compositing cannot leave a fading middle stroke. */
.nav-toggle { display:none; position:relative; width:24px; height:24px; flex:0 0 24px; padding:0; border:0; background:transparent; color:var(--vs-text); cursor:pointer; -webkit-tap-highlight-color:transparent; }
.nav-toggle::before { content:''; position:absolute; inset:-10px; }
.nav-toggle svg { display:block; flex:none; }
.nav-toggle .nav-icon-close, .nav-toggle[aria-expanded=true] .nav-icon-menu { display:none; }
.nav-toggle[aria-expanded=true] .nav-icon-close { display:block; }
.nav-toggle:focus-visible { outline:1px solid var(--vs-primary); outline-offset:6px; }
.theme-choice-label { display:none; }
.node-verdict-legend { display:inline-flex; align-items:center; flex-wrap:wrap; gap:15px; border-left:1px solid var(--vs-line2); padding-left:15px; }
.node-verdict-legend>span { display:inline-flex; align-items:center; gap:5px; }
.node-verdict-icon { background:transparent; border:0; pointer-events:none; }
.navigation-menu, .navigation-appearance { display:contents; }
.navigation-appearance h3 { display:none; }
@media(prefers-reduced-motion:reduce) {
  .navigation-menu { transition:none!important; }
}
.structured-heading { flex-wrap:wrap; gap:12px; }
.overview-findings .finding-list { display:grid; gap:12px; }
@media(max-width:950px) {
  body.vs-nav-open { overflow:hidden; }
  .header-bar.is-nav-open { background:var(--vs-header-surface); backdrop-filter:none; -webkit-backdrop-filter:none; }
  .nav-ready .navigation-menu {
    display:block; position:absolute; top:100%; left:0; right:0;
    height:calc(100dvh - 100%); overflow:auto; overscroll-behavior:contain;
    padding:16px 6% max(24px,env(safe-area-inset-bottom)); background:var(--vs-bg);
    opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-8px);
    transition:opacity .18s ease,transform .18s ease;
  }
  .nav-ready .is-nav-open .navigation-menu { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); transition-delay:0s; }
  .navigation-menu #primary-navigation { display:flex; flex-direction:column; gap:0; margin:0; padding:0; }
  .navigation-menu #primary-navigation a, .navigation-menu .key-nav { display:block; padding:19px 14px; color:var(--vs-text); border-radius:6px; font:600 20px/1.5 var(--sans); text-decoration:none; }
  .navigation-menu #primary-navigation a:is(:hover,:focus-visible,[aria-current=page]), .navigation-menu .key-nav:is(:hover,:focus-visible,[aria-current=page]) { color:var(--vs-primary); background:color-mix(in srgb,var(--vs-primary) 8%,var(--vs-bg)); outline:0; }
  .navigation-menu .key-nav { border:0; margin:0 0 20px; white-space:normal; overflow-wrap:anywhere; }
  .navigation-appearance { display:block; border-top:1px solid var(--vs-line2); padding-top:24px; }
  .navigation-appearance h3 { display:block; font:500 14px/1.5 var(--sans); color:var(--vs-muted); margin:0 0 14px; }
  .studio-header .navigation-appearance .vs-theme-switch { margin:0; padding:0; border:0; display:flex; flex-wrap:wrap; gap:10px; }
  .navigation-appearance .vs-theme-button { width:auto; height:auto; min-height:40px; padding:9px 13px 9px 29px; border:1px solid var(--vs-line2); border-radius:999px; opacity:1; color:var(--vs-muted); background:transparent; }
  .navigation-appearance .vs-theme-button::after { left:15px; background:var(--theme-primary); }
  .navigation-appearance .vs-theme-button[aria-pressed=true] { color:var(--vs-text); border-color:var(--vs-primary); background:color-mix(in srgb,var(--vs-primary) 9%,var(--vs-bg)); }
  .navigation-appearance .theme-choice-label { display:inline; font:400 13px/1.5 var(--sans); }
  .navigation-appearance .vs-theme-button:focus-visible { outline:0; border-color:var(--vs-primary); }
  .nav-ready .studio-header { min-height:0; flex-wrap:wrap; padding-block:16px; gap:12px; }
  .nav-ready .studio-header>.brand { order:0; }
  .nav-ready .studio-header>.nav-toggle { order:2; display:inline-flex; margin-left:auto; }
  .nav-ready .studio-header>.header-search { order:3; flex:1 1 100%; width:100%; max-width:none; min-width:0; margin:0; }
}
@media(max-width:380px) {
  .nav-ready .studio-header { gap:8px; }
}
.footer-bar { width:100%; border-top:1px solid var(--vs-line2); }
.copy-icon[data-copy-feedback=success] { color:var(--vs-green); }
[data-copy-feedback=error] { color:var(--vs-risk-danger); }
.copy-announcement { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.recent-reports { margin-top:56px; }
.recent-reports .section-title { align-items:center; margin-bottom:12px; }
.recent-note { font-size:12px; margin-bottom:20px; }
.recent-report-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--vs-line2); }
.recent-report-list li { border-bottom:1px solid var(--vs-line2); }
.recent-report-list a { display:grid; grid-template-columns:66px minmax(0,1fr) 110px 150px; gap:18px; align-items:center; padding:18px 10px; border-radius:4px; }
.recent-type { color:var(--vs-primary); font:11px var(--sans); }
.recent-report-list code { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.recent-status { font-size:12px; color:var(--vs-muted); }
.recent-status[data-risk=malicious] { color:var(--vs-risk-danger); }
.recent-status[data-risk=suspicious] { color:var(--vs-risk-warn); }
.recent-report-list time { font-size:11px; color:var(--vs-muted); text-align:right; }
@media(max-width:650px) {
  .recent-report-list a { grid-template-columns:48px minmax(0,1fr) auto; gap:8px 12px; }
  .recent-report-list code { grid-column:2 / 4; }
  .recent-status { grid-column:2; }
  .recent-report-list time { grid-column:3; }
}
@media print {
  .footer-bar { display:none; }
}

/* Actor context stays visible without changing the four analysis metrics. */
.actor-signal { margin:0 0 24px; border:1px solid var(--vs-line2); border-left:3px solid var(--vs-primary); border-radius:8px; background:var(--vs-panel); }
.actor-signal>summary { display:flex; align-items:center; flex-wrap:wrap; gap:12px 18px; padding:15px 18px; list-style:none; cursor:pointer; }
.actor-signal>summary::-webkit-details-marker { display:none; }
.actor-signal-label { color:var(--vs-muted); font:500 13px/1.5 var(--sans); }
.actor-signal-names { display:flex; flex:1 1 260px; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; font:500 14px/1.5 var(--sans); }
.actor-signal-names .pill { white-space:normal; overflow-wrap:anywhere; }
body.vs-body .actor-signal-names .actor-signal-item { border-color:color-mix(in srgb,var(--vs-primary) 40%,var(--vs-line)); background-color:color-mix(in srgb,var(--vs-primary) 12%,var(--vs-panel)); }
.actor-signal-names strong { color:var(--vs-primary); font-weight:500; }
.actor-signal-names .pill>span { color:var(--vs-muted); }
.actor-signal-action { display:inline-flex; align-items:center; gap:8px; margin-left:auto; color:var(--vs-primary); font:500 13px/1.5 var(--sans); }
.actor-signal>summary:is(:hover,:focus-visible) { background:color-mix(in srgb,var(--vs-primary) 7%,transparent); }
.actor-signal[open] .actor-signal-action svg { transform:rotate(180deg); }
.actor-signal-context { padding:0 18px 16px; color:var(--vs-muted); font:400 13px/1.6 var(--sans); }
.actor-signal-context p { margin:0 0 10px; }
@media(max-width:600px) {
  .actor-signal>summary { gap:10px; padding:13px 14px; }
  .actor-signal-names { order:2; flex-basis:100%; }
  .actor-signal-context { padding-inline:14px; }
}

/* One compact close control for export, graph and map popovers. */
html body.vs-body .popover-close { display:inline-flex; align-items:center; justify-content:center; flex:0 0 var(--close-size,28px); width:var(--close-size,28px); min-width:var(--close-size,28px); height:var(--close-size,28px); padding:0; border:1px solid var(--vs-line2); border-radius:999px; background:transparent; color:var(--vs-muted); font:400 var(--close-font,18px)/1 var(--sans); cursor:pointer; }
.popover-close-small { --close-size:22px; --close-font:16px; }
html body.vs-body .popover-close:is(:hover,:focus-visible) { color:var(--vs-primary); border-color:var(--vs-primary); background:color-mix(in srgb,var(--vs-primary) 7%,transparent); }

/* Report identity: one IOC row, aligned observation metadata. */
.identity-sub { display:flex; flex-wrap:wrap; gap:8px 24px; margin:0; }
.identity-sub>div { display:flex; align-items:baseline; flex-wrap:wrap; gap:5px 8px; min-width:0; }
.identity-sub dt { color:var(--vs-muted); font:400 11px/1.5 var(--sans); }
.identity-sub dd { margin:0; color:var(--vs-faint); font:400 11px/1.5 var(--mono); overflow-wrap:anywhere; }
.actor-signal-more { display:none; }
@media(max-width:600px) {
  .ioc-report>.report-meta { gap:8px; }
  .ioc-report .report-service-status { gap:6px; padding-block:4px; font-size:10px; }
  .ioc-report .report-service-status strong { font-size:10px; margin-left:2px; }
  .ioc-report>.identity { display:grid; grid-template-columns:minmax(0,1fr) 112px; align-items:center; gap:14px 16px; padding:18px 0; }
  .identity .report-identity { display:contents; }
  .identity .ioc-line { grid-column:1/-1; display:flex; flex-wrap:nowrap; gap:10px; margin:0; min-width:0; }
  .identity .ioc-title { flex:1 1 0; width:0; min-width:0; max-width:none; font-size:18px; line-height:1.5; letter-spacing:-.3px; }
  .identity .identity-sub { grid-column:1; grid-row:2; display:grid; gap:12px; min-width:0; }
  .identity-sub>div { display:grid; gap:3px; }
  .identity-sub dd { font-size:11px; line-height:1.5; }
  .identity .score-block { grid-column:2; grid-row:2; justify-self:end; }
  .identity .score-ring { width:112px; height:112px; padding:6px; }
  .identity .score-ring strong { font-size:32px; line-height:1.1; }
  .identity .score-ring small { font:400 9px/1.4 var(--sans); letter-spacing:.2px; margin-top:5px; }
  .ioc-report>.metrics article { padding:14px; }
  .ioc-report>.metrics small { font:500 10px/1.4 var(--sans); letter-spacing:.25px; }
  .ioc-report>.metrics strong { font:650 20px/1.25 var(--sans); margin:7px 0 5px; }
  .ioc-report>.metrics article>span { display:block; font:400 12px/1.45 var(--sans); letter-spacing:0; }
  .actor-signal { margin:0 0 14px; border:0; border-top:1px solid var(--vs-line2); border-bottom:1px solid var(--vs-line2); border-radius:0; background:transparent; }
  .actor-signal>summary { display:grid; grid-template-columns:1fr auto; gap:6px 10px; padding:10px 12px; }
  .actor-signal-label { font-size:11px; }
  .actor-signal-names { grid-column:1/-1; order:2; gap:6px; font-size:12px; }
  .actor-signal-names .pill { font-size:11px; padding:3px 8px; }
  .actor-signal-item:not(:first-child), .actor-confidence-label, .actor-signal-action>span { display:none; }
  .actor-signal-more { display:inline-flex; }
  .actor-signal-context { padding:0 12px 12px; font-size:12px; }
}
@media(max-width:360px) {
  .ioc-report>.identity { grid-template-columns:minmax(0,1fr) 104px; column-gap:12px; }
  .identity .score-ring { width:104px; height:104px; }
  .ioc-report>.metrics article { padding:12px; }
}

/* Shared horizontal navigation, with overflow arrows supplied by common.js. */
.report-view-toolbar { display:flex; align-items:center; gap:16px; margin:28px 0 26px; padding-bottom:10px; border-bottom:1px solid var(--vs-line2); }
.tab-scroll { display:flex; align-items:center; flex:1; min-width:0; gap:4px; }
.tab-scroll>.tab-scroll-strip { flex:1; min-width:0; margin:0; border:0; overflow-x:auto; scrollbar-width:thin; scrollbar-color:var(--vs-line) transparent; overscroll-behavior-x:contain; }
.tab-scroll-strip>:is(a,button) { flex:none; }
.tab-scroll .tabs>button { min-height:44px; }
.tab-scroll:not(.is-overflowing) .tab-scroll-control { display:none; }
.tab-scroll-control { flex:0 0 28px; width:28px; height:44px; }
.report-export { flex:none; gap:0; min-height:44px; white-space:nowrap; margin:0; }
@media(max-width:1100px) { .report-view-toolbar { gap:10px; } .export-label-detail { display:none; } }
@media(max-width:600px) {
  .tab-scroll { gap:2px; }
  .tab-scroll .tab-scroll-control { flex-basis:22px; width:22px; min-width:22px; }
  html body.vs-body :is(.report-view-toolbar,.docs-sidebar) .section-tabs>:is(button,a) { font-size:12px; padding-inline:8px; }
  .report-view-toolbar .report-export { font-size:12px; }
}
.analysis-context { margin-bottom:22px; }
.analysis-context .pills:empty, .analysis-context .keyvals:empty { display:none; }
.analysis-context-body>p { margin-top:10px; }
.analysis-context .keyvals { margin-top:18px; }
@media(max-width:760px) {
  .report-view-toolbar { gap:8px; }
  .report-export { padding:7px 10px; }
}
@media print { .report-view-toolbar { display:none; } }

/* Commonality results reuse selection controls, text links and the close button. */
.graph-commonalities { flex-basis:100%; min-width:0; margin:0 0 12px; padding:14px; border:1px solid var(--vs-line2); border-radius:8px; background:var(--vs-panel); }
.commonality-columns { max-height:300px; overflow:auto; overscroll-behavior:contain; }
.commonality-columns section { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:18px; }
.commonality-columns :is(h4,.panel-note), .commonality-row:only-of-type { grid-column:1/-1; }
.commonality-columns h4 { margin:12px 0 8px; font:500 13px/1.5 var(--sans); }
.commonality-row { padding:9px 0; border-top:1px solid var(--vs-line2); }
.commonality-row .text-button { display:block; width:100%; text-align:left; overflow-wrap:anywhere; font:400 13px/1.5 var(--sans); }
.commonality-row small { display:block; margin-top:4px; color:var(--vs-muted); font:400 11px/1.5 var(--sans); }
@media(max-width:760px) { #graph-common-toggle { grid-column:span 2; } }
@media(max-width:600px) { .commonality-columns { max-height:38dvh; } .commonality-columns section { grid-template-columns:1fr; } }

.obs-search.has-file-search .search-input-wrap { grid-template-columns:minmax(0,1fr) auto auto; }
.file-search-button { display:inline-grid; place-items:center; width:40px; padding:0; border:0; border-radius:5px; background:transparent; color:var(--vs-muted); cursor:pointer; }
.file-search-button:hover { color:var(--vs-primary); background:color-mix(in srgb,var(--vs-primary) 9%,transparent); }
.file-search-button:focus-visible, .file-hash-status button:focus-visible { outline:2px solid var(--vs-primary); outline-offset:2px; }
.file-search-button:disabled { opacity:.45; cursor:wait; }
.file-search-note { margin:10px 0 0; color:var(--vs-muted); font:400 12px/1.6 var(--sans); }
.file-search-note span { display:block; }
.file-drop-overlay { position:fixed; inset:0; z-index:10000; display:grid; place-items:center; padding:24px; background:color-mix(in srgb,var(--vs-bg) 94%,transparent); pointer-events:none; }
.file-drop-overlay>div { width:min(100%,540px); padding:38px 26px; border:2px dashed var(--vs-primary); border-radius:16px; background:var(--vs-panel); color:var(--vs-text); text-align:center; }
.file-drop-overlay strong { color:var(--vs-heading); font:500 25px/1.3 var(--sans); }
.file-drop-overlay p { font:400 15px/1.6 var(--sans); }
.file-drop-overlay small { color:var(--vs-muted); font:400 12px/1.6 var(--sans); }
.file-hash-status { position:fixed; z-index:10001; bottom:max(20px,env(safe-area-inset-bottom)); right:20px; width:min(440px,calc(100vw - 40px)); box-sizing:border-box; padding:18px; border:1px solid var(--vs-line2); border-radius:10px; background:var(--vs-panel); color:var(--vs-text); box-shadow:0 8px 30px #0003; }
.file-hash-status strong { font:500 14px/1.5 var(--sans); color:var(--vs-heading); }
.file-hash-status p { margin:6px 0 12px; color:var(--vs-muted); font:400 12px/1.5 var(--sans); overflow-wrap:anywhere; }
.file-hash-status progress { display:block; width:100%; height:6px; margin-bottom:14px; accent-color:var(--vs-primary); border:0; border-radius:8px; overflow:hidden; background:var(--vs-line); }
.file-hash-status progress::-webkit-progress-bar { background:var(--vs-line); }
.file-hash-status progress::-webkit-progress-value { background:var(--vs-primary); }
.file-hash-status progress::-moz-progress-bar { background:var(--vs-primary); }
.file-hash-status button { min-height:36px; padding:6px 14px; border:1px solid var(--vs-line2); border-radius:5px; background:var(--vs-surface); color:var(--vs-text); cursor:pointer; font:600 12px/1.5 var(--sans); }
.file-hash-status button:hover { border-color:var(--vs-primary); color:var(--vs-primary); }
.file-drop-overlay[hidden], .file-hash-status[hidden], .file-hash-status progress[hidden], [data-file-search][hidden], [data-file-search-input][hidden], [data-file-hashes][hidden], [data-file-hashes-input][hidden], [data-file-search-note][hidden] { display:none!important; }
@media(max-width:950px) {
  .studio-header .header-search { height:44px; }
  .studio-header .header-search button { width:44px; height:42px; }
}
@media(max-width:600px) {
  .file-search-button { width:42px; min-height:44px; }
  .file-hash-status button { min-height:44px; }
  .bulk-workspace .bulk-input-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Stretch the existing report link across the row, retaining native link behavior. */
.linked-row { position:relative; isolation:isolate; }
.linked-row .row-link::after { content:""; position:absolute; inset:0; z-index:0; cursor:pointer; }
.linked-row .row-link:focus-visible::after { outline:2px solid var(--vs-primary); outline-offset:-2px; }
.linked-row :is(button,a:not(.row-link)) { position:relative; z-index:1; }

/* Dense investigation controls stay lighter than report tabs and primary actions. */
#investigation-shell :is(.investigation-toolbar,#analysis-tools,.stage-bottom) :is(button,button span,.ui-count), html body.vs-body .brief-dimension>button { font-weight:400!important; }

/* Legal pages reuse the site's typography and theme tokens. */
.legal-page { max-width:800px; margin:0 auto; padding-top:48px; font-size:15px; overflow-wrap:anywhere; }
.legal-header { margin-bottom:30px; padding-bottom:24px; border-bottom:1px solid var(--vs-line2); }
.legal-header h1 { margin:8px 0 12px; font-size:clamp(30px,5vw,42px); line-height:1.2; }
.legal-header>p { font-size:13px; }
.legal-header nav { margin:20px 0 0; gap:4px; border:0; }
.legal-page a { color:var(--vs-primary); text-decoration:underline; text-underline-offset:3px; }
.legal-header a { font-weight:600; text-decoration:none; }
.legal-page section { margin-top:30px; }
.legal-page h2 { margin-bottom:12px; font-size:20px; letter-spacing:-.3px; }
.legal-page p+p { margin-top:12px; }
.legal-page ul { padding-left:22px; margin:12px 0; color:var(--vs-muted); }
.legal-page li+li { margin-top:10px; }
.legal-page li strong { color:var(--vs-text); font-weight:600; }
@media(max-width:600px) { .legal-page { padding-top:30px; } }

.reset-icon, .tab-scroll-control svg { display:block;flex-shrink:0;margin-inline:auto;width:var(--icon-size,14px);height:var(--icon-size,14px);fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round; }
#usage-refresh, .tab-scroll-control { --icon-size:16px; }

@media(max-width:680px){
 .recent-report-list a,.usage-table tbody tr { padding:12px;border-radius:4px; }
}

.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }
