:root {
    --bg: #f2f3ef;
    --surface: #fff;
    --ink: #17201c;
    --muted: #66716b;
    --line: #d8ddd8;
    --accent: #a9431b;
    --target: #267f86;
    --accent-ink: #fff8f4;
    --danger: #d94c35;
    --sidebar: 260px;
    --topbar: 70px;
}

[data-theme="dark"] {
    --bg: #101512;
    --surface: #19201c;
    --ink: #eef4eb;
    --muted: #a8b2ab;
    --line: #303a33;
    --accent: #c65326;
    --target: #55aeb1;
    --accent-ink: #fff8f4;
    --danger: #ff7b63;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: "DM Sans", sans-serif; }
button, input { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }

.topbar {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 20;
    height: var(--topbar);
    display: flex;
    align-items: center;
    padding: 0 1.5rem;
    border-bottom: 1px solid var(--line);
    background: color-mix(in srgb, var(--bg) 92%, transparent);
    backdrop-filter: blur(16px);
}

.brand { width: calc(var(--sidebar) - 1.5rem); font-size: 1.05rem; font-weight: 700; letter-spacing: -.07em; }
.brand span { margin-left: .28rem; padding: .15rem .32rem; border-radius: 3px; color: var(--accent-ink); background: var(--accent); font: 500 .57rem "DM Mono", monospace; letter-spacing: 0; vertical-align: middle; }
.topbar-context { margin: 0; color: var(--muted); font: 500 .65rem "DM Mono", monospace; letter-spacing: .05em; text-transform: uppercase; }
.theme-toggle { margin-left: auto; display: inline-flex; gap: .35rem; align-items: center; padding: .35rem .55rem; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 2rem; font: 500 .65rem "DM Mono", monospace; text-transform: uppercase; }
.theme-toggle:hover { border-color: var(--ink); }
.menu-toggle { display: none; color: var(--ink); background: none; border: 0; font: 500 .65rem "DM Mono", monospace; text-transform: uppercase; }

.sidebar {
    position: fixed;
    inset: var(--topbar) auto 0 0;
    z-index: 15;
    width: var(--sidebar);
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    border-right: 1px solid var(--line);
    background: var(--surface);
}
.sidebar-heading { padding-bottom: 1.8rem; border-bottom: 1px solid var(--line); }
.sidebar-heading span, .sidebar-heading small { display: block; }
.sidebar-heading span { font: 600 1.25rem "Space Grotesk", sans-serif; letter-spacing: -.05em; }
.sidebar-heading small { margin-top: .25rem; color: var(--muted); font: .6rem "DM Mono", monospace; text-transform: uppercase; }
.side-nav { display: block; margin-top: 2rem; overflow-y: auto; padding-bottom: 1rem; }
.nav-group + .nav-group { margin-top: 1.6rem; }
.nav-group p { display: flex; gap: .65rem; margin: 0 0 .7rem; font: 600 .75rem "DM Mono", monospace; text-transform: uppercase; }
.nav-index { color: var(--accent); }
.nav-group a { position: relative; display: block; margin-left: 1.95rem; padding: .58rem .75rem; color: var(--muted); border-left: 1px solid var(--line); font: 500 .66rem "DM Mono", monospace; text-transform: uppercase; transition: color .18s, background .18s; }
.nav-group a:hover, .nav-group a.active { color: var(--ink); background: color-mix(in srgb, var(--accent) 8%, transparent); }
.nav-group a.active::before { content: ""; position: absolute; left: -2px; top: 0; bottom: 0; width: 3px; background: var(--accent); }
.sidebar-footer { margin-top: auto; padding-top: 1rem; }
.sidebar-status { display: flex; align-items: center; color: var(--muted); font: .58rem "DM Mono", monospace; text-transform: uppercase; }
.sidebar-version { margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--line); color: var(--muted); font: 500 .58rem "DM Mono", monospace; letter-spacing: .04em; text-transform: uppercase; }
.sidebar-version a { float: right; color: var(--accent); }
.sidebar-version a:hover { color: var(--ink); }

.dashboard-shell { width: auto; min-height: 100vh; margin-left: var(--sidebar); padding: var(--topbar) clamp(1.25rem, 2vw, 2.5rem) 5rem; }
.view-panel { display: none; width: min(1480px, 100%); margin: auto; animation: enter .25s ease-out; }
.view-panel.active { display: block; }
@keyframes enter { from { opacity: 0; transform: translateY(8px); } }

.intro { min-height: 0; padding: 2.75rem 0 3.5rem; display: flex; justify-content: space-between; gap: 3rem; align-items: end; }
.page-heading { padding: 2.75rem 0 3rem; border-bottom: 1px solid var(--line); }
.page-heading > p:last-child { max-width: 480px; margin: 2rem 0 0; color: var(--muted); font-size: 1rem; }
.eyebrow { margin: 0 0 1rem; color: var(--muted); font: 500 .67rem "DM Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
.live-dot { display: inline-block; width: .47rem; height: .47rem; margin-right: .35rem; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); }
h2 { margin: 0; font: 600 clamp(2.6rem, 5vw, 4.7rem)/.87 "Space Grotesk", sans-serif; letter-spacing: -.075em; }
h2 em { font-style: normal; font-weight: 400; letter-spacing: -.1em; }
.intro-copy { max-width: 350px; margin: 0 0 .35rem; color: var(--muted); font-size: 1.05rem; line-height: 1.5; }

.metrics-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 2rem; border: 1px solid var(--line); border-right: 0; }
.metric-card { min-width: 0; min-height: 170px; padding: 1.4rem; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--line); background: var(--surface); }
.metric-card.highlight { background: var(--accent); color: var(--accent-ink); }
.metric-card p { margin: 0; font: 500 .65rem "DM Mono", monospace; letter-spacing: .04em; text-transform: uppercase; }
.metric-card strong { font-size: clamp(2rem, 3.5vw, 3.5rem); font-weight: 500; letter-spacing: -.08em; }
.metric-card strong.metric-date { font-size: clamp(1.35rem, 2vw, 2.1rem); letter-spacing: -.05em; }
.metric-card span { color: var(--muted); font-size: .78rem; }
.highlight span { color: color-mix(in srgb, var(--accent-ink) 65%, transparent); }
.methodology { margin: 2rem 0; min-height: 160px; gap: .65rem; justify-content: center; border: 1px solid var(--line); }
.methodology .eyebrow { margin: 0; }
.methodology h3, .chart-card h3 { margin: 0; font: 600 1.45rem/1.05 "Space Grotesk", sans-serif; letter-spacing: -.04em; }
.methodology-copy { margin: 0; max-width: 90ch; color: var(--muted); font-size: .9rem; line-height: 1.6; }

.section-head { display: flex; justify-content: space-between; align-items: end; margin: 4.5rem 0 1.6rem; }
.section-actions { display: flex; gap: 1.2rem; }
.text-button { padding: 0; color: var(--muted); border: 0; background: none; font: 500 .68rem "DM Mono", monospace; letter-spacing: .03em; text-transform: uppercase; }
.text-button:hover { color: var(--ink); }
.text-button:disabled { cursor: not-allowed; opacity: .45; }
.weakness-grid { display: grid; grid-template-columns: 1fr; gap: .75rem; }
.weakness-card { position: relative; min-width: 0; min-height: 245px; padding: 1.35rem 1.35rem 1.35rem 5.5rem; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); background: var(--surface); transition: border-color .18s, transform .18s; }
.weakness-card:hover { border-color: var(--accent); transform: translateY(-2px); }
.rank-number { position: absolute; left: 1.2rem; top: 1rem; color: color-mix(in srgb, var(--muted) 25%, transparent); font: 600 2.3rem "Space Grotesk", sans-serif; letter-spacing: -.1em; }
.weakness-card header { display: flex; justify-content: space-between; gap: 1rem; align-items: start; color: var(--muted); font: 500 .67rem "DM Mono", monospace; }
.weakness-card header a:hover { color: var(--accent); }
.status { padding: .25rem .45rem; border: 1px solid var(--line); border-radius: 2rem; text-transform: uppercase; font-size: .56rem; white-space: nowrap; }
.badge-row { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0 0; }
.data-badge { display: inline-flex; padding: .3rem .48rem; border: 1px solid var(--line); border-radius: 2rem; color: var(--ink); font: 500 .57rem "DM Mono", monospace; text-transform: uppercase; }
.muted-badge { color: var(--muted); }
.kev-badge { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 55%, var(--line)); }
.danger-badge { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 55%, var(--line)); }
.weakness-card h3 { max-width: 900px; margin: 1.7rem 0 .7rem; font-size: 1.35rem; font-weight: 500; letter-spacing: -.045em; line-height: 1.08; }
.weakness-card p { max-width: 85ch; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.5; }
.weakness-card .product-line { margin-top: 1.4rem; color: var(--accent); font: 500 .62rem "DM Mono", monospace; text-transform: uppercase; }
.cve-card h3 { margin-top: .65rem; }
.ransomware-card h3 { margin-bottom: .45rem; }
.claim-list { max-width: 900px; margin: .85rem 0 0; padding: 0; list-style: none; }
.claim-list li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-top: 1px solid var(--line); color: var(--ink); font-size: .76rem; }
.claim-list span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.claim-list time { flex: 0 0 auto; color: var(--muted); font: .58rem "DM Mono", monospace; text-transform: uppercase; }
.desc-toggle { align-self: start; margin-top: 1rem; padding: 0 0 .2rem; border: 0; border-bottom: 1px solid currentColor; background: none; color: var(--ink); font: 500 .65rem "DM Mono", monospace; text-transform: uppercase; }
.full-description { margin-top: 1rem !important; }
.weakness-card footer { margin-top: auto; padding-top: 1.5rem; font: 500 .62rem "DM Mono", monospace; text-transform: uppercase; }
.loading { grid-column: 1/-1; padding: 3rem; margin: 0; color: var(--muted); font: .8rem "DM Mono", monospace; }

.chart-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2rem; }
.chart-card { min-width: 0; padding: clamp(1.4rem, 3vw, 2.5rem); border: 1px solid var(--line); background: var(--surface); }
.chart-wide { grid-column: 1/-1; }
.chart-card h3 { margin-bottom: 2rem; }
.chart-pair { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); }
.chart-pair h4 { margin: 0 0 1.5rem; padding-bottom: .75rem; border-bottom: 1px solid var(--line); font: 500 .67rem "DM Mono", monospace; letter-spacing: .04em; text-transform: uppercase; }
.bar-row + .bar-row { margin-top: 1.25rem; }
.bar-label { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .45rem; font: .65rem "DM Mono", monospace; }
.bar-label span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bar-label strong { color: var(--accent); font-weight: 500; }
.bar-track { height: 9px; overflow: hidden; background: color-mix(in srgb, var(--line) 70%, transparent); }
.bar-track span { display: block; height: 100%; background: var(--accent); transform-origin: left; animation: grow .6s ease-out; }
@keyframes grow { from { transform: scaleX(0); } }
.chart-note { max-width: 72ch; margin: -1rem 0 1.5rem; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.chart-empty { padding: 4rem 1rem; color: var(--muted); text-align: center; font: .7rem "DM Mono", monospace; }
.line-chart { min-width: 0; }
.line-chart svg { display: block; width: 100%; min-height: 240px; overflow: visible; }
.line-grid { stroke: color-mix(in srgb, var(--line) 82%, transparent); stroke-width: 1; }
.line-axis-label { fill: var(--muted); font: 10px "DM Mono", monospace; }
.line-axis-title { fill: var(--ink); font: 500 10px "DM Mono", monospace; letter-spacing: .04em; text-transform: uppercase; }
.line-series { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; animation: draw-line .8s ease-out; }
.line-chart circle { stroke: var(--surface); stroke-width: 2; }
.line-legend { display: flex; flex-wrap: wrap; gap: .7rem 1.25rem; margin: .5rem 0 0 3rem; color: var(--muted); font: .63rem "DM Mono", monospace; text-transform: uppercase; }
.line-legend span { display: inline-flex; align-items: center; gap: .45rem; }
.line-legend i { width: 1.2rem; height: 3px; background: var(--series-color); }
@keyframes draw-line { from { stroke-dasharray: 1200; stroke-dashoffset: 1200; } }

@media (prefers-reduced-motion: reduce) {
    .bar-track span, .line-series, .map-pulse::before, .map-pulse::after, .map-flow { animation: none; }
}

.lookup-panel { margin-top: 6rem; padding: clamp(2rem, 5vw, 4.5rem); display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; background: var(--accent); color: var(--accent-ink); }
.lookup-content { align-self: end; }
.lookup-content label { display: block; margin-bottom: .55rem; font: 500 .65rem "DM Mono", monospace; text-transform: uppercase; }
.input-row { display: flex; border-bottom: 2px solid var(--accent-ink); }
.input-row input { min-width: 0; width: 100%; padding: .65rem 0; color: var(--accent-ink); border: 0; outline: 0; background: transparent; font-size: 1.4rem; letter-spacing: -.04em; }
.input-row input::placeholder { color: color-mix(in srgb, var(--accent-ink) 45%, transparent); }
.input-row button { padding: .5rem 0 .5rem 1rem; border: 0; background: transparent; color: var(--accent-ink); font: 500 .67rem "DM Mono", monospace; text-transform: uppercase; white-space: nowrap; }
.form-hint { margin: 1rem 0 0; font-size: .76rem; line-height: 1.45; }
.example-id { padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: inherit; }
.record-result { margin: 1.5rem 0 4rem; padding: 2rem; border: 1px solid var(--line); background: var(--surface); }
.record-result h3 { margin: 0 0 1rem; font-size: 1.7rem; letter-spacing: -.05em; }
.record-result > p:not(.eyebrow) { max-width: 80ch; color: var(--muted); line-height: 1.55; }
.record-meta, .record-links { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.5rem; }
.record-meta span, .record-links a { padding: .4rem .55rem; border: 1px solid var(--line); border-radius: 2rem; font: .62rem "DM Mono", monospace; text-transform: uppercase; }
.record-links a:hover { border-color: var(--accent); color: var(--accent); }
.error { color: var(--danger); }

.overview-heading { border-bottom: 0; }
.zero-day-strip { margin: 0 0 4rem; }
.zero-day-strip > header { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 1rem; }
.zero-day-strip h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
.zero-day-feed-link { display: block; border: 1px solid var(--line); background: var(--surface); transition: border-color .18s, transform .18s; }
.zero-day-feed-link:hover, .zero-day-feed-link:focus-visible { border-color: var(--accent); outline: 0; transform: translateY(-2px); }
.zero-day-feed { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.zero-day-feed-item { min-width: 0; min-height: 145px; padding: 1.2rem; border-left: 1px solid var(--line); }
.zero-day-feed-item:first-child { border-left: 0; }
.zero-day-feed-item strong, .zero-day-feed-item > span:not(.data-badge), .zero-day-feed-item time { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zero-day-feed-item strong { margin-top: 1.1rem; color: var(--accent); font: 600 .84rem "DM Mono", monospace; }
.zero-day-feed-item > span:not(.data-badge) { margin-top: .45rem; font-size: .72rem; }
.zero-day-feed-item time { margin-top: .55rem; color: var(--muted); font: .57rem "DM Mono", monospace; text-transform: uppercase; }
.zero-day-feed-cta { display: block; padding: .8rem 1.2rem; border-top: 1px solid var(--line); color: var(--accent); font: 500 .62rem "DM Mono", monospace; text-align: right; text-transform: uppercase; }
.zero-day-caveat { max-width: 100ch; margin: .8rem 0 0; color: var(--muted); font: .62rem/1.55 "DM Mono", monospace; }
.live-threat-stage { margin-bottom: 4rem; padding-top: 1rem; }
.live-stage-header { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 1rem; }
.live-stage-header h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
.live-stage-status { flex: 0 0 auto; text-align: right; font: .6rem "DM Mono", monospace; text-transform: uppercase; }
.live-stage-status span, .live-stage-status strong { display: block; }
.live-stage-status span { color: var(--accent); }
.live-stage-status strong { margin-top: .35rem; color: var(--muted); font-weight: 500; }
.live-stage-layout { display: grid; grid-template-columns: minmax(0, 2.7fr) minmax(260px, 1fr); min-height: 565px; border: 1px solid var(--line); background: var(--surface); }
.live-map-panel, .live-feed-panel { min-width: 0; padding: clamp(1.25rem, 2.5vw, 2rem); }
.live-feed-panel { border-left: 1px solid var(--line); overflow: hidden; }
.live-panel-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.live-panel-heading h3, .live-summary-card h3 { margin: 0; font: 600 1.35rem/1.05 "Space Grotesk", sans-serif; letter-spacing: -.04em; }
.live-map-tools { display: grid; justify-items: end; gap: .55rem; }
.map-view-switcher { display: inline-flex; border: 1px solid var(--line); border-radius: 2rem; overflow: hidden; }
.map-view-switcher button { padding: .35rem .55rem; border: 0; border-left: 1px solid var(--line); background: transparent; color: var(--muted); font: 500 .55rem "DM Mono", monospace; text-transform: uppercase; }
.map-view-switcher button:first-child { border-left: 0; }
.map-view-switcher button:hover { color: var(--ink); }
.map-view-switcher button[aria-pressed="true"] { background: var(--accent); color: var(--accent-ink); }
.threat-map { position: relative; min-height: 420px; margin-top: 1.5rem; overflow: hidden; border: 1px solid var(--line); background: color-mix(in srgb, var(--accent) 3%, var(--surface)); }
.map-canvas { position: absolute; inset: 0; overflow: hidden; }
.world-map-shape { width: 100%; height: 100%; }
.world-map-shape .world-land { fill: color-mix(in srgb, var(--ink) 7%, var(--surface)); fill-rule: evenodd; stroke: color-mix(in srgb, var(--ink) 28%, var(--line)); stroke-width: .75; vector-effect: non-scaling-stroke; }
.map-flow-layer { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.map-flow { fill: none; stroke: var(--accent); stroke-width: 1.15; stroke-linecap: round; stroke-dasharray: 5 7; opacity: .32; vector-effect: non-scaling-stroke; animation: flow-travel 4s linear infinite; transition: opacity .2s, stroke-width .2s; }
.map-flow.active { stroke-width: 2.4; opacity: 1; }
@keyframes flow-travel { to { stroke-dashoffset: -24; } }
.map-pulse { --pulse-color: var(--accent); position: absolute; z-index: 2; left: var(--map-x); top: var(--map-y); width: var(--pulse-size); height: var(--pulse-size); transform: translate(-50%, -50%); border: 1px solid color-mix(in srgb, var(--pulse-color) 70%, transparent); border-radius: 50%; background: color-mix(in srgb, var(--pulse-color) 13%, transparent); transition: transform .2s, background .2s; }
.map-pulse.target { --pulse-color: var(--target); }
.map-pulse.flow-node { opacity: .82; }
.map-pulse i { position: absolute; inset: 30%; border-radius: 50%; background: var(--pulse-color); box-shadow: 0 0 12px var(--pulse-color); }
.map-pulse::before, .map-pulse::after { content: ""; position: absolute; inset: 0; border: 1px solid var(--pulse-color); border-radius: 50%; opacity: 0; }
.map-pulse.active { z-index: 3; transform: translate(-50%, -50%) scale(1.35); background: color-mix(in srgb, var(--pulse-color) 30%, transparent); opacity: 1; }
.map-pulse.active::before { animation: threat-pulse 1.8s ease-out infinite; }
.map-pulse.active::after { animation: threat-pulse 1.8s .55s ease-out infinite; }
@keyframes threat-pulse { 0% { opacity: .8; transform: scale(.6); } 100% { opacity: 0; transform: scale(2.4); } }
.map-legend { position: absolute; z-index: 4; inset: auto 1rem .8rem; display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font: .56rem "DM Mono", monospace; text-transform: uppercase; }
.map-legend span:first-child { display: inline-flex; gap: .45rem; align-items: center; }
.map-legend i { width: .45rem; height: .45rem; border-radius: 50%; background: var(--accent); box-shadow: 0 0 8px var(--accent); }
.map-legend i.target-key { background: var(--target); box-shadow: 0 0 8px var(--target); }
.map-legend i.flow-key { width: 1.2rem; height: 2px; border-radius: 0; box-shadow: none; }
.map-caption { max-width: 80ch; margin: .8rem 0 0; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.live-feed { position: relative; height: 455px; margin-top: 1.5rem; overflow: hidden; scroll-behavior: smooth; }
.live-feed::after { content: ""; position: sticky; z-index: 3; bottom: 0; display: block; height: 3rem; margin-top: -3rem; background: linear-gradient(transparent, var(--surface)); pointer-events: none; }
.live-feed-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding: .9rem .4rem; border-bottom: 1px solid var(--line); opacity: .55; transition: opacity .2s, background .2s, padding .2s; }
.live-feed-row.active { padding-inline: .7rem; opacity: 1; background: color-mix(in srgb, var(--accent) 8%, transparent); }
.feed-sequence { color: var(--accent); font: .58rem "DM Mono", monospace; }
.live-feed-row div { min-width: 0; }
.live-feed-row strong, .live-feed-row span { display: block; }
.live-feed-row div > strong { overflow: hidden; font: 500 .72rem "DM Mono", monospace; text-overflow: ellipsis; white-space: nowrap; }
.live-feed-row div > span { margin-top: .22rem; overflow: hidden; color: var(--muted); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.feed-volume { text-align: right; }
.feed-volume strong { color: var(--accent); }
.feed-volume span { font: .52rem "DM Mono", monospace; text-transform: uppercase; }
.live-summaries { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); border-top: 0; }
.live-summary-card { min-width: 0; padding: clamp(1.4rem, 3vw, 2.25rem); }
.live-summary-card + .live-summary-card { border-left: 1px solid var(--line); }
.live-summary-card h3 { margin-bottom: 1.8rem; }
.live-summary-card .bar-row + .bar-row { margin-top: .9rem; }
.overview-stack { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; padding-bottom: 1rem; }
.overview-card { min-width: 0; min-height: 440px; display: grid; grid-template-rows: auto 1fr; border: 1px solid var(--line); background: var(--surface); }
.overview-card[data-route] { cursor: pointer; transition: border-color .18s, transform .18s, box-shadow .18s; }
.overview-card[data-route]:hover, .overview-card[data-route]:focus-visible { border-color: var(--accent); outline: 0; transform: translateY(-2px); box-shadow: 0 12px 28px color-mix(in srgb, #000 10%, transparent); }
.overview-loading { display: block; min-height: 180px; }
.overview-data, .overview-chart { min-width: 0; padding: clamp(1.15rem, 1.8vw, 1.55rem); }
.overview-data { display: flex; flex-direction: column; }
.overview-chart { border-top: 1px solid var(--line); background: color-mix(in srgb, var(--accent) 3%, var(--surface)); }
.overview-domain { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.overview-domain .eyebrow { margin: 0; }
.overview-domain .status { color: var(--accent); }
.overview-data h2 { margin-top: 1.1rem; font-size: clamp(1.65rem, 3vw, 2.75rem); line-height: .98; }
.overview-summary { max-width: 64ch; margin: .8rem 0 0; color: var(--muted); font-size: .84rem; line-height: 1.55; }
.overview-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin: 1rem 0; }
.overview-stat { min-width: 0; padding-top: .8rem; border-top: 1px solid var(--line); }
.overview-stat strong, .overview-stat span { display: block; }
.overview-stat strong { overflow: hidden; font: 500 1.35rem "Space Grotesk", sans-serif; letter-spacing: -.04em; text-overflow: ellipsis; white-space: nowrap; }
.overview-stat span { margin-top: .25rem; color: var(--muted); font: .56rem "DM Mono", monospace; text-transform: uppercase; }
.overview-link { align-self: start; margin-top: auto; color: var(--accent); font: 500 .65rem "DM Mono", monospace; text-transform: uppercase; }
.overview-link:hover { color: var(--ink); }
.overview-chart h3 { margin: 0 0 1rem; font: 600 1.05rem "Space Grotesk", sans-serif; letter-spacing: -.04em; }
.overview-chart .bar-row + .bar-row { margin-top: .6rem; }

.dshield-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.feed-panel { min-width: 0; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--line); background: var(--surface); }
.feed-panel.wide { grid-column: 1/-1; }
.feed-panel h3 { margin: 0 0 1.5rem; font: 600 1.45rem/1.05 "Space Grotesk", sans-serif; letter-spacing: -.04em; }
.feed-table-wrap { overflow-x: auto; }
.feed-table { width: 100%; border-collapse: collapse; font: .68rem "DM Mono", monospace; }
.feed-table th, .feed-table td { padding: .8rem .65rem; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }
.feed-table th { color: var(--muted); font-size: .57rem; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
.feed-table td:first-child { color: var(--accent); }
.indicator-cloud { display: flex; flex-wrap: wrap; gap: .45rem; }
.indicator-cloud .data-badge { text-transform: none; }
.feed-warning { margin: 0 0 1rem; padding: .8rem 1rem; border: 1px solid color-mix(in srgb, var(--danger) 55%, var(--line)); color: var(--danger); font: .65rem/1.5 "DM Mono", monospace; }
.source-credit { margin: 2rem 0 0; color: var(--muted); font: .62rem/1.6 "DM Mono", monospace; text-transform: uppercase; }
.source-credit a:hover { color: var(--accent); }

.catalog-filters { display: grid; grid-template-columns: 2fr 1fr; gap: 1rem; margin-bottom: 1rem; }
.catalog-filters label { display: grid; gap: .55rem; color: var(--muted); font: 500 .61rem "DM Mono", monospace; text-transform: uppercase; }
.catalog-filters input, .catalog-filters select { width: 100%; min-width: 0; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: 0; outline: 0; background: var(--surface); color: var(--ink); font: .8rem "DM Sans", sans-serif; }
.catalog-filters input:focus, .catalog-filters select:focus { border-color: var(--accent); }
.catalog-count { margin: 1rem 0; color: var(--muted); font: .62rem "DM Mono", monospace; text-transform: uppercase; }
.emerging-cve-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.emerging-cve-card { min-width: 0; min-height: 350px; padding: 1.5rem; display: flex; flex-direction: column; border: 1px solid var(--line); background: var(--surface); transition: border-color .18s, transform .18s; }
.emerging-cve-card:hover { border-color: var(--accent); transform: translateY(-2px); }
.emerging-cve-card header { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font: 500 .61rem "DM Mono", monospace; text-transform: uppercase; }
.emerging-cve-card header a { color: var(--accent); }
.emerging-cve-card header a:hover { color: var(--ink); }
.emerging-cve-card .badge-row { margin-top: 1rem; }
.emerging-cve-card .product-line { margin: 1.3rem 0 .5rem; color: var(--accent); font: 500 .61rem "DM Mono", monospace; text-transform: uppercase; }
.emerging-cve-card h3 { margin: .45rem 0 .8rem; font: 600 1.4rem/1.08 "Space Grotesk", sans-serif; letter-spacing: -.04em; }
.emerging-cve-card > p:not(.product-line) { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.55; }
.emerging-cve-card footer { margin-top: auto; padding-top: 1.3rem; color: var(--muted); font: .58rem "DM Mono", monospace; text-transform: uppercase; }
.actor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.actor-card { min-width: 0; min-height: 360px; padding: 1.5rem; display: flex; flex-direction: column; border: 1px solid var(--line); background: var(--surface); transition: border-color .18s, transform .18s; }
.actor-card:hover { border-color: var(--accent); transform: translateY(-2px); }
.actor-card header { display: flex; justify-content: space-between; gap: 1rem; align-items: start; color: var(--accent); font: 500 .66rem "DM Mono", monospace; }
.actor-card h3 { margin: 1.4rem 0 .2rem; font: 600 1.7rem/1 "Space Grotesk", sans-serif; letter-spacing: -.055em; }
.actor-card > p { margin: 1.25rem 0; color: var(--muted); font-size: .8rem; line-height: 1.55; }
.actor-sectors { margin-top: auto; padding-top: .5rem; }
.actor-card footer { display: grid; gap: .8rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font: .58rem/1.5 "DM Mono", monospace; text-transform: uppercase; }
.actor-links { display: flex; flex-wrap: wrap; gap: .7rem; }
.actor-links a { color: var(--ink); }
.actor-links a:hover { color: var(--accent); }
.catalog-more { width: 100%; margin-top: 1rem; padding: 1rem; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: 500 .65rem "DM Mono", monospace; text-transform: uppercase; }
.catalog-more:hover { border-color: var(--accent); color: var(--accent); }
.back-to-top-row { display: flex; justify-content: flex-end; margin: 2rem 0 1rem; }
.back-to-top { padding: .75rem 1rem; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: 500 .62rem "DM Mono", monospace; text-transform: uppercase; transition: border-color .18s, color .18s, transform .18s; }
.back-to-top:hover, .back-to-top:focus-visible { border-color: var(--accent); color: var(--accent); outline: 0; transform: translateY(-2px); }

body > footer { margin-left: var(--sidebar); display: flex; justify-content: space-between; gap: 1rem; padding: 1.5rem clamp(1.5rem, 4vw, 4.5rem); border-top: 1px solid var(--line); color: var(--muted); font: .62rem "DM Mono", monospace; text-transform: uppercase; }
body > footer a:hover { color: var(--ink); }

@media (max-width: 1200px) {
    .overview-stack { grid-template-columns: 1fr; }
    .overview-card { min-height: 295px; grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr); grid-template-rows: auto; }
    .overview-chart { border-top: 0; border-left: 1px solid var(--line); }
}

@media (max-width: 900px) {
    :root { --sidebar: 240px; }
    .menu-toggle { display: block; margin-right: 1rem; }
    .brand { width: auto; }
    .topbar-context { margin-left: 1.5rem; }
    .sidebar { transform: translateX(-100%); transition: transform .2s ease; box-shadow: 10px 0 30px color-mix(in srgb, #000 20%, transparent); }
    .nav-open .sidebar { transform: translateX(0); }
    .dashboard-shell, body > footer { margin-left: 0; }
    .metrics-grid { grid-template-columns: repeat(2, 1fr); }
    .overview-card { grid-template-columns: minmax(0, 3fr) minmax(260px, 2fr); }
    .live-stage-layout { grid-template-columns: minmax(0, 3fr) minmax(260px, 2fr); }
    .zero-day-feed { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zero-day-feed-item:nth-child(3) { border-left: 0; }
    .zero-day-feed-item:nth-child(n+3) { border-top: 1px solid var(--line); }
}

@media (max-width: 650px) {
    .topbar { padding-inline: 1rem; }
    .topbar-context { display: none; }
    .intro { min-height: 0; display: block; padding: 2.25rem 0 3rem; }
    .intro-copy { margin-top: 2rem; }
    .page-heading { padding-top: 2.25rem; }
    .section-head { display: block; margin-top: 3.5rem; }
    .section-actions, .section-head > .text-button { margin-top: 1.3rem; }
    .chart-grid { grid-template-columns: 1fr; }
    .chart-pair { grid-template-columns: 1fr; }
    .overview-card { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
    .live-stage-header { display: block; }
    .zero-day-strip > header { display: block; }
    .zero-day-strip > header .live-stage-status { margin-top: 1rem; }
    .live-stage-status { margin-top: 1rem; text-align: left; }
    .live-stage-layout, .live-summaries { grid-template-columns: 1fr; }
    .live-feed-panel, .live-summary-card + .live-summary-card { border-top: 1px solid var(--line); border-left: 0; }
    .live-map-panel .live-panel-heading { display: block; }
    .live-map-tools { justify-items: start; margin-top: 1rem; }
    .threat-map { min-height: 290px; }
    .overview-chart { border-top: 1px solid var(--line); border-left: 0; }
    .dshield-layout { grid-template-columns: 1fr; }
    .catalog-filters, .actor-grid, .emerging-cve-grid { grid-template-columns: 1fr; }
    .feed-panel.wide { grid-column: auto; }
    .chart-wide { grid-column: auto; }
    .lookup-panel { grid-template-columns: 1fr; margin-top: 4rem; }
    .weakness-card { padding-left: 1.25rem; padding-top: 4.6rem; }
    .rank-number { top: .75rem; }
    body > footer { display: block; line-height: 2; }
    body > footer > * { display: block; }
}

@media (max-width: 460px) {
    .dashboard-shell { padding-inline: 1rem; }
    .metrics-grid { grid-template-columns: 1fr; }
    .metric-card { min-height: 135px; }
    .section-actions { display: grid; gap: .7rem; justify-items: start; }
    .zero-day-feed { grid-template-columns: 1fr; }
    .zero-day-feed-item { border-top: 1px solid var(--line); border-left: 0; }
    .zero-day-feed-item:first-child { border-top: 0; }
}
