:root {
    --industry-bg: #080a0f;
    --industry-panel: #11151d;
    --industry-panel-2: #161b24;
    --industry-text: #f4f7f8;
    --industry-muted: #a4adb7;
    --industry-dim: #727d89;
    --industry-line: rgba(255, 255, 255, 0.11);
    --industry-line-strong: rgba(255, 255, 255, 0.2);
    --industry-accent: #49ddcd;
    --industry-soft: rgba(73, 221, 205, 0.1);
    --ir-accent: var(--industry-accent);
    --ir-accent-soft: var(--industry-soft);
    --ir-blue: #1473e6;
    --ir-amber: #e69b00;
    --ir-violet: #7c3aed;
    --ir-magenta: #d63384;
    --ir-red: #d94343;
    --industry-cyan: #1473e6;
    --industry-violet: #7c3aed;
    --industry-red: #d94343;
    --ir-max: 1480px;
}

[data-theme="light"] {
    --industry-bg: #f4f6f8;
    --industry-panel: #ffffff;
    --industry-panel-2: #eef2f5;
    --industry-text: #12171c;
    --industry-muted: #56616c;
    --industry-dim: #7a858f;
    --industry-line: rgba(18, 23, 28, 0.12);
    --industry-line-strong: rgba(18, 23, 28, 0.22);
    --industry-accent: #087f78;
    --industry-soft: rgba(0, 128, 122, 0.09);
}

.industry-research-page,
.industry-research-page * { box-sizing: border-box; }

.industry-research-page {
    --nv-bg: var(--industry-bg);
    --nv-panel: var(--industry-panel);
    --nv-panel-strong: var(--industry-panel-2);
    --nv-line: var(--industry-line);
    --nv-line-strong: var(--industry-line-strong);
    --nv-text: var(--industry-text);
    --nv-muted: var(--industry-muted);
    --nv-dim: var(--industry-dim);
    margin: 0;
    color: var(--industry-text);
    background: var(--industry-bg);
    font-family: var(--nv-font-sans, "Montserrat", "Noto Sans SC", sans-serif);
}
.industry-research-page button,
.industry-research-page input,
.industry-research-page select,
.industry-research-page textarea { font-family: inherit; }

.ir-shell { width: min(var(--ir-max), calc(100% - 64px)); margin: 0 auto; padding: 46px 0 110px; }
.ir-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: clamp(38px, 7vw, 92px); align-items: end; padding: clamp(34px, 6vw, 72px); border: 1px solid var(--nv-line); border-radius: 28px; background: radial-gradient(circle at 92% 8%, var(--ir-accent-soft), transparent 24rem), linear-gradient(135deg, color-mix(in srgb, var(--ir-accent) 7%, transparent), transparent 52%), var(--nv-panel); overflow: hidden; }
.ir-back { display: inline-flex; gap: 6px; margin-bottom: 40px; color: var(--nv-muted); font-size: 13px; }
.ir-back a { color: inherit; text-decoration: none; }
.ir-back strong { color: var(--nv-text); }
.ir-eyebrow, .ir-section-head p, .ir-kicker { margin: 0 0 10px; color: var(--ir-accent); font: 700 11px/1.3 Montserrat, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.ir-hero h1 { max-width: 760px; margin: 0; color: var(--nv-text); font-size: clamp(42px, 6.4vw, 76px); line-height: 1.03; letter-spacing: -.055em; text-wrap: balance; }
.ir-lead { max-width: 760px; margin: 24px 0 0; color: var(--nv-muted); font-size: clamp(16px, 1.7vw, 20px); line-height: 1.8; }
.ir-scope { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 24px; }
.ir-scope span { padding: 0; border: 0; border-radius: 0; color: var(--nv-muted); background: transparent; font-size: 12px; }
.ir-scope strong { color: var(--nv-text); font-size: 13px; }
.ir-scope i { width: 1px; height: 18px; background: var(--nv-line); }
.ir-hero-side { align-self: stretch; display: flex; min-width: 0; flex-direction: column; justify-content: flex-end; }
.ir-hero-side [data-nv-page-actions] { display: flex; justify-content: flex-end; min-height: 38px; margin-bottom: 12px; }
.ir-hero-metrics { display: grid; gap: 10px; }
.ir-hero-metrics article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 18px; align-items: end; padding: 18px; border: 1px solid var(--nv-line); border-radius: 15px; background: color-mix(in srgb, var(--nv-panel) 88%, transparent); }
.ir-hero-metrics small { color: var(--nv-muted); font-size: 11px; line-height: 1.45; }
.ir-hero-metrics strong { grid-row: span 2; color: var(--nv-text); font: 750 clamp(22px, 3vw, 33px)/1 Montserrat, sans-serif; letter-spacing: -.04em; }
.ir-hero-metrics span { color: var(--nv-muted); font-size: 11px; }

.ir-executive, .ir-panel { padding-top: clamp(56px, 8vw, 86px); }
.ir-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .7fr); gap: 36px; align-items: end; margin-bottom: 26px; }
.ir-section-head > div { min-width: 0; }
.ir-section-head h2 { max-width: 840px; margin: 0; color: var(--nv-text); font-size: clamp(27px, 3.6vw, 43px); line-height: 1.14; letter-spacing: -.04em; text-wrap: balance; }
.ir-section-head > span { justify-self: end; max-width: 480px; color: var(--nv-muted); font-size: 13px; line-height: 1.7; text-align: right; }
.ir-executive-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ir-insight { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-content: start; min-width: 0; padding: 24px; border: 1px solid var(--nv-line); border-radius: 18px; background: var(--nv-panel); }
.ir-insight-num { color: var(--ir-accent); font: 750 12px/1 Montserrat, sans-serif; letter-spacing: .1em; }
.ir-insight h3, .ir-card h3 { margin: 0; color: var(--nv-text); font-size: 20px; line-height: 1.45; letter-spacing: -.025em; text-wrap: balance; }
.ir-insight p, .ir-card p { margin: 0; color: var(--nv-muted); font-size: 13px; line-height: 1.72; }
.ir-insight-evidence { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; padding: 13px 14px; border-left: 3px solid var(--ir-accent); background: var(--ir-accent-soft); }
.ir-insight-evidence strong { color: var(--nv-text); font: 750 22px/1 Montserrat, sans-serif; white-space: nowrap; }
.ir-insight-evidence span { color: var(--nv-muted); font-size: 12px; line-height: 1.55; }
.ir-why { padding-top: 13px; border-top: 1px solid var(--nv-line); }
.ir-why strong { display: block; margin-bottom: 5px; color: var(--nv-text); font-size: 12px; }

.ir-tabs { position: sticky; top: 0; z-index: 20; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 72px; border: 1px solid var(--nv-line); border-radius: 14px; background: color-mix(in srgb, var(--nv-bg) 92%, transparent); backdrop-filter: blur(18px); overflow: hidden; }
.ir-tabs button { min-width: 0; min-height: 50px; padding: 10px; border: 0; border-right: 1px solid var(--nv-line); color: var(--nv-muted); background: transparent; font: inherit; font-size: 13px; cursor: pointer; }
.ir-tabs button:last-child { border-right: 0; }
.ir-tabs button.is-active { color: var(--nv-text); background: var(--ir-accent-soft); box-shadow: inset 0 -3px var(--ir-accent); }

.ir-boundary-tree { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ir-boundary-tree article { position: relative; min-width: 0; padding: 20px; border: 1px solid var(--nv-line); border-radius: 16px; background: var(--nv-panel); }
.ir-boundary-tree article:not(:last-child)::after { position: absolute; right: -10px; top: 50%; z-index: 2; width: 10px; border-top: 1px solid var(--ir-accent); content: ""; }
.ir-boundary-tree small, .ir-card small { color: var(--ir-accent); font: 700 10px/1.4 Montserrat, sans-serif; letter-spacing: .08em; }
.ir-boundary-tree h3 { margin: 10px 0 8px; color: var(--nv-text); font-size: 17px; line-height: 1.4; }
.ir-boundary-tree p { margin: 0; color: var(--nv-muted); font-size: 12px; line-height: 1.65; }
.ir-boundary-value { display: block; margin-top: 16px; color: var(--nv-text); font: 750 21px/1.1 Montserrat, sans-serif; }
.ir-section-block { margin-top: 18px; padding: clamp(20px, 3vw, 30px); border: 1px solid var(--nv-line); border-radius: 20px; background: var(--nv-panel); }
.ir-block-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .65fr); gap: 30px; align-items: end; margin-bottom: 22px; }
.ir-block-head h3 { margin: 0; color: var(--nv-text); font-size: clamp(21px, 2.5vw, 29px); line-height: 1.25; letter-spacing: -.035em; text-wrap: balance; }
.ir-block-head p { margin: 0; color: var(--nv-muted); font-size: 12px; line-height: 1.65; text-align: right; }
.ir-signal-grid, .ir-profit-grid, .ir-archetype-grid, .ir-scenario-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ir-card { min-width: 0; padding: 20px; border: 1px solid var(--nv-line); border-radius: 15px; background: color-mix(in srgb, var(--nv-panel) 90%, var(--nv-bg)); }
.ir-card-metric { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin: 14px 0 10px; }
.ir-card-metric strong { color: var(--nv-text); font: 750 26px/1 Montserrat, sans-serif; letter-spacing: -.04em; }
.ir-card-metric span { color: var(--nv-muted); font-size: 11px; text-align: right; }
.ir-bar { height: 7px; margin: 14px 0 12px; border-radius: 99px; background: color-mix(in srgb, var(--nv-line) 70%, transparent); overflow: hidden; }
.ir-bar i { display: block; height: 100%; width: calc(var(--value) * 1%); border-radius: inherit; background: var(--ir-accent); }

.ir-chain-flow { display: grid; grid-template-columns: repeat(var(--chain-count), minmax(0, 1fr)); gap: 10px; }
.ir-chain-node { position: relative; min-width: 0; padding: 18px; border: 1px solid var(--nv-line); border-radius: 15px; background: var(--nv-panel); }
.ir-chain-node:not(:last-child)::after { position: absolute; right: -11px; top: 28px; z-index: 3; color: var(--ir-accent); content: "→"; font-weight: 800; }
.ir-chain-node h3 { margin: 8px 0 12px; color: var(--nv-text); font-size: 16px; line-height: 1.35; }
.ir-ledger { display: grid; gap: 9px; }
.ir-ledger div { display: grid; gap: 3px; }
.ir-ledger dt { color: var(--nv-muted); font-size: 10px; }
.ir-ledger dd { margin: 0; color: var(--nv-text); font-size: 11px; line-height: 1.45; }

.ir-archetype-grid .ir-card { border-top: 3px solid var(--tone, var(--ir-accent)); }
.ir-tag-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.ir-tag-row span { padding: 5px 8px; border-radius: 999px; color: var(--nv-muted); background: color-mix(in srgb, var(--nv-line) 45%, transparent); font-size: 10px; }
.ir-matrix-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 24px; align-items: start; }
.ir-matrix { position: relative; aspect-ratio: 1.5; min-height: 420px; border: 1px solid var(--nv-line); border-radius: 16px; background: linear-gradient(to right, transparent 49.8%, var(--nv-line) 50%, transparent 50.2%), linear-gradient(to bottom, transparent 49.8%, var(--nv-line) 50%, transparent 50.2%), color-mix(in srgb, var(--nv-panel) 85%, transparent); overflow: hidden; }
.ir-matrix::before { position: absolute; inset: 0; background-image: linear-gradient(to right, var(--nv-line) 1px, transparent 1px), linear-gradient(to bottom, var(--nv-line) 1px, transparent 1px); background-size: 25% 25%; opacity: .26; content: ""; }
.ir-matrix-point { position: absolute; left: calc(var(--x) * 1%); bottom: calc(var(--y) * 1%); z-index: 2; transform: translate(-50%, 50%); display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 36px; padding: 6px 9px; border: 2px solid var(--tone, var(--ir-accent)); border-radius: 999px; color: var(--nv-text); background: var(--nv-panel); box-shadow: 0 6px 22px rgba(0,0,0,.14); font-size: 10px; font-weight: 700; cursor: pointer; }
.ir-matrix-axis { position: absolute; z-index: 1; color: var(--nv-muted); font-size: 10px; pointer-events: none; }
.ir-axis-x { right: 12px; bottom: 10px; }
.ir-axis-y { left: 10px; top: 12px; writing-mode: vertical-rl; }
html[lang="en"] .ir-axis-y {
    left: 12px;
    top: 50%;
    width: max-content;
    writing-mode: horizontal-tb;
    white-space: nowrap;
    transform: translate(-50%, -50%) rotate(-90deg);
    transform-origin: center;
}
.ir-matrix-note { color: var(--nv-muted); font-size: 12px; line-height: 1.72; }
.ir-matrix-legend { display: grid; gap: 9px; margin-top: 18px; }
.ir-matrix-legend span { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 8px; align-items: center; color: var(--nv-muted); font-size: 11px; }
.ir-matrix-legend i { width: 9px; height: 9px; border-radius: 50%; background: var(--tone); }

.ir-variable-list { display: grid; gap: 12px; }
.ir-variable { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--nv-line); border-radius: 16px; background: var(--nv-panel); overflow: hidden; }
.ir-variable > div { position: relative; min-width: 0; padding: 18px; border-right: 1px solid var(--nv-line); }
.ir-variable > div:last-child { border-right: 0; }
.ir-variable > div:not(:last-child)::after { position: absolute; right: -7px; top: 50%; z-index: 2; transform: translateY(-50%); color: var(--ir-accent); content: "→"; font-weight: 800; }
.ir-variable small { color: var(--ir-accent); font-size: 9px; letter-spacing: .08em; }
.ir-variable strong { display: block; margin-top: 7px; color: var(--nv-text); font-size: 13px; line-height: 1.5; }
.ir-counter { margin-top: 10px; color: var(--nv-muted); font-size: 11px; line-height: 1.55; }

.ir-company-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ir-company-group { padding: 20px; border: 1px solid var(--nv-line); border-radius: 16px; background: var(--nv-panel); }
.ir-company-group h3 { margin: 0 0 14px; color: var(--nv-text); font-size: 16px; }
.ir-company-group ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ir-company-group li { color: var(--nv-muted); font-size: 12px; line-height: 1.5; }
.ir-company-group strong { color: var(--nv-text); }
.ir-metric-table { width: 100%; border-collapse: collapse; color: var(--nv-muted); font-size: 12px; }
.ir-metric-table th, .ir-metric-table td { padding: 13px 12px; border-bottom: 1px solid var(--nv-line); text-align: left; vertical-align: top; line-height: 1.55; }
.ir-metric-table th { color: var(--nv-text); font-size: 11px; }
.ir-method-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ir-method-grid details { padding: 16px 18px; border: 1px solid var(--nv-line); border-radius: 14px; background: var(--nv-panel); }
.ir-method-grid summary { color: var(--nv-text); font-size: 13px; cursor: pointer; }
.ir-method-grid p, .ir-method-grid li { color: var(--nv-muted); font-size: 11px; line-height: 1.7; }
.ir-card-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--nv-line); }
.ir-card-footer > em { flex: 0 0 auto; color: var(--nv-muted); font-size: 10px; font-style: normal; opacity: .7; }
.ir-sources { min-width: 0; margin: 0; }
.ir-sources summary { color: var(--nv-muted); font-size: 10px; cursor: pointer; }
.ir-sources ul { display: grid; gap: 5px; margin: 8px 0 0; padding-left: 18px; }
.ir-sources a { color: var(--ir-accent); font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }

.ir-drawer { width: min(680px, calc(100% - 24px)); max-height: min(86vh, 900px); margin: auto 0 auto auto; padding: 0; border: 0; color: var(--nv-text); background: var(--nv-panel); box-shadow: -20px 0 80px rgba(0,0,0,.28); }
.ir-drawer::backdrop { background: rgba(0,0,0,.48); backdrop-filter: blur(3px); }
.ir-drawer-inner { position: relative; min-height: 100%; padding: clamp(26px, 5vw, 52px); }
.ir-drawer-close { position: sticky; top: 0; float: right; width: 38px; height: 38px; border: 1px solid var(--nv-line); border-radius: 50%; color: var(--nv-text); background: var(--nv-bg); font-size: 22px; cursor: pointer; }
.ir-drawer h2 { margin: 48px 0 18px; font-size: 30px; line-height: 1.25; letter-spacing: -.035em; }
.ir-drawer p, .ir-drawer li { color: var(--nv-muted); font-size: 13px; line-height: 1.75; }

@media (max-width: 900px) {
    .ir-hero, .ir-section-head, .ir-block-head, .ir-matrix-wrap { grid-template-columns: 1fr; }
    .ir-section-head > span, .ir-block-head p { justify-self: start; text-align: left; }
    .ir-boundary-tree { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ir-boundary-tree article::after { display: none; }
    .ir-chain-flow { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }
    .ir-chain-node { flex: 0 0 min(300px, 82vw); scroll-snap-align: start; }
    .ir-company-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .ir-shell { width: min(100% - 24px, var(--ir-max)); padding-top: 20px; }
    .ir-hero { padding: 28px 20px; border-radius: 20px; }
    .ir-back { margin-bottom: 28px; }
    .ir-executive-grid, .ir-signal-grid, .ir-profit-grid, .ir-archetype-grid, .ir-scenario-grid, .ir-company-groups, .ir-method-grid, .ir-boundary-tree { grid-template-columns: 1fr; }
    .ir-insight-evidence { grid-template-columns: minmax(0, 1fr); }
    .ir-insight-evidence strong { white-space: normal; overflow-wrap: anywhere; }
    .ir-tabs { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(126px, 1fr); overflow-x: auto; border-radius: 12px; }
    .ir-variable { grid-template-columns: 1fr; }
    .ir-variable > div { border-right: 0; border-bottom: 1px solid var(--nv-line); }
    .ir-variable > div:last-child { border-bottom: 0; }
    .ir-variable > div:not(:last-child)::after { right: 18px; top: auto; bottom: -9px; transform: rotate(90deg); }
    .ir-matrix { min-height: 360px; aspect-ratio: .95; }
    .ir-matrix-point { min-width: 32px; min-height: 32px; padding: 5px 7px; font-size: 9px; }
    .ir-section-block { padding: 18px 14px; }
    .ir-metric-table { min-width: 720px; }
    #ir-metric-dictionary { overflow-x: auto; }
}

/* industry-research-v2: strict IP-lifestyle page-mode contract */
.ir-v2-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1.38fr) minmax(420px, .62fr); gap: clamp(48px, 7vw, 110px); align-items: center; min-height: 590px; padding: 56px 0 72px; border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.ir-v2-hero-copy { min-width: 0; }
.ir-v2-breadcrumb { display: flex; align-items: center; gap: 10px; margin: 22px 0 0; color: var(--industry-dim); font-size: 13px; }
.ir-v2-breadcrumb a { color: inherit; text-decoration: none; }
.ir-v2-breadcrumb a:hover { color: var(--ir-accent); }
.ir-v2-breadcrumb strong { color: var(--nv-text); font-weight: 600; }
.ir-v2-hero h1 { max-width: 900px; margin: 30px 0 0; color: var(--nv-text); font-size: clamp(58px, 7vw, 104px); font-weight: 700; line-height: .92; letter-spacing: -.065em; text-wrap: balance; }
.ir-v2-lead { max-width: 820px; margin: 34px 0 0; color: var(--nv-muted); font-size: clamp(16px, 1.35vw, 20px); line-height: 1.75; }
.ir-v2-scope-line { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 34px; font-size: 12px; }
.ir-v2-scope-line span { color: var(--industry-dim); }
.ir-v2-scope-line strong { color: var(--nv-text); font-size: 13px; }
.ir-v2-scope-line i { width: 1px; height: 18px; margin: 0 5px; background: var(--industry-line-strong); }
.ir-v2-hero-side { align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.ir-v2-hero-side [data-nv-page-actions] { min-height: 38px; display: flex; justify-content: flex-end; margin-bottom: 18px; }
.ir-v2-hero-pulse { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border: 1px solid var(--nv-line); border-radius: 22px; background: var(--nv-panel); overflow: hidden; }
.ir-v2-hero-pulse article,
.ir-v2-hero-pulse button { display: flex; min-width: 0; min-height: 168px; flex-direction: column; justify-content: space-between; gap: 12px; padding: 24px; border: 0; border-right: 1px solid var(--nv-line); border-bottom: 1px solid var(--nv-line); color: var(--nv-text); background: transparent; text-align: left; }
.ir-v2-hero-pulse button { cursor: pointer; font: inherit; }
.ir-v2-hero-pulse button:hover { background: var(--ir-accent-soft); }
.ir-v2-hero-pulse article:nth-child(2n),
.ir-v2-hero-pulse button:nth-child(2n) { border-right: 0; }
.ir-v2-hero-pulse article:nth-last-child(-n+2),
.ir-v2-hero-pulse button:nth-last-child(-n+2) { border-bottom: 0; }
.ir-v2-hero-pulse small, .ir-v2-hero-pulse span { color: var(--nv-muted); font-size: 11px; line-height: 1.45; }
.ir-v2-hero-pulse strong { color: var(--ir-accent); font-family: inherit; font-size: clamp(27px, 2.8vw, 42px); font-weight: 750; line-height: 1; letter-spacing: -.05em; white-space: nowrap; }
.ir-v2-hero-pulse strong i { margin-left: 4px; color: var(--nv-muted); font-family: inherit; font-size: 10px; font-style: normal; font-weight: 500; line-height: 1; letter-spacing: 0; }
.ir-v2-hero-pulse .ir-v2-update-value { font-size: clamp(22px, 2.25vw, 34px); letter-spacing: -.04em; }

.ir-v2-tabs { position: sticky; top: var(--nv-header-height, 72px); z-index: 20; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin-top: 0; border-top: 1px solid var(--nv-line); border-right: 0; border-bottom: 1px solid var(--nv-line); border-left: 0; border-radius: 0; background: color-mix(in srgb, var(--nv-bg) 90%, transparent); backdrop-filter: blur(20px); overflow: visible; }
.ir-v2-tabs button { min-width: 0; min-height: 70px; position: relative; padding: 0 18px; border: 0; color: var(--nv-muted); background: transparent; cursor: pointer; font-family: inherit; font-size: 14px; font-weight: 750; line-height: normal; }
.ir-v2-tabs button::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: transparent; }
.ir-v2-tabs button:hover,
.ir-v2-tabs button.active { color: var(--nv-text); background: var(--ir-accent-soft); box-shadow: none; }
.ir-v2-tabs button.active::after { background: var(--ir-accent); }
.ir-v2-tabs button:focus-visible, .ir-v2-detail:focus-visible, [data-driver-network-node]:focus-visible { outline: 2px solid var(--ir-accent); outline-offset: -3px; }
.ir-v2-panel { padding-top: 88px; }
.ir-v2-panel[hidden] { display: none; }

/* Benchmark overview contract: stage → economics → chain × archetype structure. */
.ir-v2-panel > .industry-overview-phase,
.ir-v2-panel > .industry-overview-profit,
.ir-v2-panel > .industry-overview-structure { min-width:0; margin-top:16px; padding:clamp(24px,3vw,38px); border:1px solid var(--industry-line); border-radius:22px; background:var(--industry-panel); }
.ir-v2-page-head + .industry-overview-phase { margin-top:0; }
.industry-overview-phase > header,
.industry-overview-profit > header,
.industry-overview-structure > header { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:clamp(28px,5vw,70px); align-items:end; }
.industry-overview-phase header span,
.industry-overview-profit header span,
.industry-overview-structure header span { color:var(--industry-accent); font-size:11px; font-weight:800; letter-spacing:.12em; }
.industry-overview-phase header h3,
.industry-overview-profit header h3,
.industry-overview-structure header h3 { max-width:880px; margin:12px 0 0; font-size:clamp(25px,2.6vw,39px); line-height:1.2; letter-spacing:-.04em; text-wrap:balance; }
.industry-overview-phase header p,
.industry-overview-profit header p,
.industry-overview-structure header p { margin:0; color:var(--industry-muted); font-size:14px; line-height:1.75; }
.industry-overview-pulse { display:grid; grid-template-columns:repeat(3,1fr); margin-top:32px; border-top:1px solid var(--industry-line); border-bottom:1px solid var(--industry-line); }
.industry-overview-pulse button { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px 16px; padding:22px 24px; border:0; border-right:1px solid var(--industry-line); color:inherit; background:transparent; cursor:pointer; font:inherit; text-align:left; }
.industry-overview-pulse button:last-child { border-right:0; }
.industry-overview-pulse button:hover { background:var(--industry-soft); }
.industry-overview-pulse span,.industry-overview-pulse strong,.industry-overview-pulse small { grid-column:1 / -1; }
.industry-overview-pulse span { color:var(--industry-muted); font-size:12px; }
.industry-overview-pulse strong { font-size:clamp(24px,2.6vw,38px); letter-spacing:-.04em; white-space:nowrap; }
.industry-overview-pulse button > div { height:6px; align-self:center; overflow:hidden; border-radius:999px; background:var(--industry-panel-2); }
.industry-overview-pulse button > div i { width:var(--pulse-width); height:100%; display:block; border-radius:inherit; background:linear-gradient(90deg,var(--industry-accent),var(--industry-cyan)); }
.industry-overview-pulse b { color:var(--industry-accent); font-size:11px; text-align:right; }
.industry-overview-pulse small { color:var(--industry-dim); font-size:10px; }
.industry-overview-profit-chart { display:grid; margin-top:32px; border-top:1px solid var(--industry-line); }
.industry-overview-profit-chart > button { width:100%; min-height:100px; display:grid; grid-template-columns:32px minmax(150px,.78fr) minmax(110px,.6fr) minmax(170px,.9fr) minmax(110px,.48fr) minmax(210px,1fr); gap:14px; align-items:center; padding:14px 4px; border:0; border-bottom:1px solid var(--industry-line); color:inherit; background:transparent; cursor:pointer; font:inherit; text-align:left; }
.industry-overview-profit-chart > button:hover { background:var(--industry-soft); }
.industry-overview-profit-chart small { color:var(--industry-dim); font-size:9px; }
.industry-overview-profit-chart span b,.industry-overview-profit-chart span em { display:block; }
.industry-overview-profit-chart span b { font-size:13px; }
.industry-overview-profit-chart span em { margin-top:5px; color:var(--industry-muted); font-size:9px; font-style:normal; }
.industry-overview-profit-chart button > div { height:9px; overflow:hidden; border-radius:999px; background:var(--industry-panel-2); }
.industry-overview-profit-chart button > div i { width:var(--profit-width); height:100%; display:block; border-radius:inherit; background:var(--industry-violet); }
.industry-overview-profit-chart .is-highest > div i { background:var(--industry-accent); }
.industry-overview-profit-chart .is-high > div i { background:var(--industry-cyan); }
.industry-overview-profit-chart .is-medium-low > div i { background:color-mix(in srgb,var(--industry-cyan) 55%,var(--industry-line)); }
.industry-overview-profit-chart .is-weak > div i { background:var(--industry-red); }
.industry-overview-profit-chart button > strong { min-width:130px; color:var(--industry-accent); font-size:18px; font-variant-numeric:tabular-nums; text-align:right; white-space:nowrap; }
.industry-overview-profit-chart .is-weak > strong { color:var(--industry-red); }
.industry-overview-profit-metric { min-width:0; }
.industry-overview-profit-metric small,.industry-overview-profit-metric b { display:block; }
.industry-overview-profit-metric small { margin-bottom:4px; }
.industry-overview-profit-metric b { color:var(--industry-text); font-size:10px !important; line-height:1.45; overflow-wrap:anywhere; }
.industry-overview-profit-chart button > p { margin:0; color:var(--industry-muted); font-size:10px; line-height:1.55; }
.industry-overview-profit-chart button > p b { display:block; margin-bottom:3px; color:var(--industry-accent); font-size:8px; }
.industry-overview-profit-withheld,.ir-shared-evidence-boundary { display:grid; gap:8px; margin-top:28px; padding:22px 24px; border:1px solid color-mix(in srgb,var(--industry-accent) 35%,var(--industry-line)); border-left:3px solid var(--industry-accent); border-radius:14px; background:color-mix(in srgb,var(--industry-soft) 76%,transparent); }
.industry-overview-profit-withheld strong,.ir-shared-evidence-boundary strong { color:var(--industry-text); font-size:15px; }
.industry-overview-profit-withheld p,.ir-shared-evidence-boundary p { margin:0; color:var(--industry-muted); font-size:12px; line-height:1.7; }
.ir-shared-evidence-boundary > small { color:var(--industry-accent); font-size:9px; font-weight:800; letter-spacing:.12em; }
.ir-shared-dynamics-boundary { min-height:220px; align-content:center; padding:clamp(28px,5vw,64px); }
.industry-overview-chain { margin-top:32px; }
.industry-overview-chain h4,.industry-overview-weak h4 { margin:0 0 16px; color:var(--industry-muted); font-size:11px; letter-spacing:.08em; }
.industry-chain-matrix { --chain-node-count:7; --chain-matrix-columns:minmax(130px,.82fr) repeat(var(--chain-node-count),minmax(78px,1fr)) minmax(170px,1fr); overflow:hidden; border:1px solid var(--industry-line); border-radius:16px; background:var(--industry-panel-2); }
.industry-chain-matrix-head,.industry-archetype-coverage > button { display:grid; grid-template-columns:var(--chain-matrix-columns); gap:6px; align-items:stretch; }
.industry-chain-matrix-head { padding:12px; border-bottom:1px solid var(--industry-line); }
.industry-chain-matrix-head > span { display:flex; align-items:center; padding:10px; color:var(--industry-muted); font-size:9px; font-weight:750; }
.industry-chain-matrix-head > span:last-child { justify-content:flex-end; text-align:right; }
.industry-chain-matrix-head > button { min-width:0; min-height:112px; display:flex; flex-direction:column; padding:11px 9px; border:1px solid var(--industry-line); border-radius:10px; color:inherit; background:var(--industry-panel); cursor:pointer; font:inherit; text-align:left; }
.industry-chain-matrix-head > button:hover { border-color:var(--industry-accent); background:var(--industry-soft); }
.industry-chain-matrix-head small { color:var(--industry-dim); font-size:8px; }
.industry-chain-matrix-head strong { margin-top:7px; font-size:10px; line-height:1.35; }
.industry-chain-matrix-head b { margin-top:auto; padding-top:8px; color:var(--industry-accent); font-size:11px; white-space:nowrap; }
.industry-chain-matrix-head button span { margin-top:4px; color:var(--industry-dim); font-size:7px; line-height:1.35; }
.industry-archetype-coverage { padding:0 12px 12px; }
.industry-archetype-coverage > header { padding:9px 4px; color:var(--industry-dim); font-size:8px; text-align:right; }
.industry-archetype-coverage > button { width:100%; align-items:center; padding:9px 0; border:0; border-top:1px solid var(--industry-line); color:inherit; background:transparent; cursor:pointer; font:inherit; text-align:left; }
.industry-archetype-coverage > button:hover { background:var(--industry-soft); }
.industry-archetype-coverage button > strong { padding-left:10px; font-size:10px; }
.industry-archetype-coverage button > i { height:22px; border-radius:6px; background:var(--industry-line); }
.industry-archetype-coverage button > i.active { background:var(--industry-accent); box-shadow:0 0 10px color-mix(in srgb,var(--industry-accent) 35%,transparent); }
.industry-archetype-coverage button > small { overflow:hidden; padding-right:10px; color:var(--industry-dim); font-size:8px; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.industry-overview-weak { margin-top:28px; }
.industry-overview-weak > div { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--industry-line); border-bottom:1px solid var(--industry-line); }
.industry-overview-weak button { display:grid; grid-template-columns:1fr auto; gap:8px 14px; padding:18px; border:0; border-right:1px solid var(--industry-line); color:inherit; background:transparent; cursor:pointer; font:inherit; text-align:left; }
.industry-overview-weak button:last-child { border-right:0; }
.industry-overview-weak button:hover { background:var(--industry-soft); }
.industry-overview-weak span { color:var(--industry-muted); font-size:10px; }
.industry-overview-weak strong { color:var(--industry-red); font-size:18px; white-space:nowrap; }
.industry-overview-weak p { grid-column:1 / -1; margin:4px 0 0; color:var(--industry-dim); font-size:9px; line-height:1.5; }
.industry-overview-weak i { color:var(--industry-accent); font-size:10px; font-style:normal; }

@media (max-width:1050px) {
    .industry-overview-phase > header,.industry-overview-profit > header,.industry-overview-structure > header { grid-template-columns:1fr; gap:8px; }
    .industry-overview-profit-chart > button { grid-template-columns:28px minmax(145px,.75fr) minmax(100px,.55fr) minmax(145px,.9fr) minmax(100px,.45fr) minmax(180px,1fr); gap:11px; }
    .industry-chain-matrix { --chain-matrix-columns:minmax(104px,.72fr) repeat(var(--chain-node-count),minmax(62px,1fr)) minmax(132px,.9fr); }
}
@media (max-width:700px) {
    .industry-overview-pulse,.industry-overview-weak > div { grid-template-columns:1fr; }
    .industry-overview-pulse button { border-right:0; border-bottom:1px solid var(--industry-line); }
    .industry-overview-profit-chart > button { grid-template-columns:24px minmax(0,1fr) 104px; gap:9px; }
    .industry-overview-profit-chart button > span:not(.industry-overview-profit-metric),.industry-overview-profit-chart button > div,.industry-overview-profit-chart button > p { grid-column:2 / -1; }
    .industry-overview-profit-metric { grid-column:2; }
    .industry-overview-profit-chart button > strong { grid-column:3; min-width:0; }
    .industry-chain-matrix { --chain-matrix-columns:74px repeat(var(--chain-node-count),minmax(0,1fr)) 78px; }
    .industry-chain-matrix-head { padding:7px 5px; gap:3px; }
    .industry-chain-matrix-head > span { padding:4px; font-size:7px; }
    .industry-chain-matrix-head > button { min-height:102px; padding:7px 4px; }
    .industry-chain-matrix-head strong { font-size:8px; }
    .industry-chain-matrix-head b { font-size:9px; }
    .industry-archetype-coverage { padding:0 5px 7px; }
    .industry-chain-matrix-head,.industry-archetype-coverage > button { gap:3px; }
    .industry-archetype-coverage button > strong { padding-left:3px; font-size:8px; }
    .industry-archetype-coverage button > small { padding-right:3px; font-size:7px; white-space:normal; }
    .industry-overview-weak button { border-right:0; border-bottom:1px solid var(--industry-line); }
}

.ir-v2-page-head { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); gap: 50px; align-items: end; margin-bottom: 44px; }
.ir-v2-page-head p { margin: 0; color: var(--ir-accent); font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.ir-v2-page-head h2 { max-width: 920px; margin: 14px 0 0; color: var(--nv-text); font-size: clamp(34px, 4.2vw, 58px); font-weight: 700; line-height: 1.05; letter-spacing: -.055em; text-wrap: balance; }
.ir-v2-page-head > span { width: min(100%, 470px); max-width: 470px; justify-self: end; color: var(--nv-muted); font-size: 14px; line-height: 1.65; text-align: right; text-wrap: pretty; }
.ir-v2-page-head > .ir-shared-segmented-switch { align-self: end; justify-self: end; }
.ir-v2-page-head + .ir-v2-block { margin-top: 0; }

.ir-v2-block { min-width: 0; margin-top: 28px; padding: clamp(24px, 3vw, 38px); border: 1px solid var(--nv-line); border-radius: 22px; background: var(--nv-panel); overflow: hidden; }
.ir-v2-block:first-child { margin-top: 0; }
.ir-v2-block-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .65fr); gap: 28px; align-items: end; margin-bottom: 24px; }
.ir-v2-block-head p { margin: 0 0 8px; color: var(--ir-accent); font-family: inherit; font-size: 10px; font-weight: 700; line-height: 1.3; letter-spacing: .13em; }
.ir-v2-block-head h3 { max-width: 860px; margin: 0; color: var(--nv-text); font-size: clamp(24px, 2.6vw, 39px); line-height: 1.2; letter-spacing: -.04em; }
.ir-v2-block-head > span { color: var(--nv-muted); font-size: 12px; line-height: 1.7; text-align: right; }
.ir-v2-title { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; text-wrap: balance; }
.ir-v2-card { display: flex; flex-direction: column; min-width: 0; padding: 20px; border: 1px solid var(--nv-line); border-radius: 16px; background: color-mix(in srgb, var(--nv-panel) 91%, var(--nv-bg)); }
.ir-v2-card > small { margin-bottom: 8px; color: var(--ir-accent); font: 700 9px/1.4 Montserrat, sans-serif; letter-spacing: .09em; text-transform: uppercase; overflow-wrap: anywhere; }
.ir-v2-card h3 { margin: 0; color: var(--nv-text); font-size: 18px; line-height: 1.42; letter-spacing: -.025em; }
.ir-v2-card > p { margin: 13px 0 0; color: var(--nv-muted); font-size: 12px; line-height: 1.72; }
.ir-v2-card > .ir-v2-visual-note { margin: 8px 0 0; color: var(--nv-muted); font-family: inherit; font-size: 9px; font-weight: 500; line-height: 1.55; letter-spacing: 0; text-transform: none; }
.ir-v2-card .ir-tag-row { display: grid; gap: 6px; }
.ir-v2-card .ir-tag-row span { border-radius: 8px; line-height: 1.5; }
.ir-v2-card-landing { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--nv-line); }
.ir-v2-card-landing small { color: var(--ir-accent); font-size: 9px; font-weight: 750; }
.ir-v2-card-landing span { color: var(--nv-text); font-size: 10px; line-height: 1.55; }
.ir-v2-detail { align-self: flex-start; margin-top: 15px; padding: 0; border: 0; color: var(--ir-accent); background: transparent; font-family: inherit; font-size: 11px; font-weight: 650; line-height: 1.4; cursor: pointer; }
.ir-v2-metric { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-top: 16px; }
.ir-v2-metric strong { color: var(--nv-text); font: 750 25px/1 Montserrat, sans-serif; letter-spacing: -.04em; }
.ir-v2-metric span { max-width: 58%; color: var(--nv-muted); font-size: 9px; line-height: 1.45; text-align: right; overflow-wrap: anywhere; }

.ir-v2-pulse-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ir-v2-scorecard, .ir-v2-card-grid, .ir-v2-control-grid, .ir-v2-archetypes, .ir-v2-related, .ir-v2-axis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

.ir-v2-loop { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.ir-v2-loop button { position: relative; display: grid; align-content: start; min-width: 0; min-height: 132px; padding: 15px; border: 1px solid var(--nv-line); border-radius: 14px; color: var(--nv-text); background: color-mix(in srgb, var(--nv-panel) 90%, var(--nv-bg)); text-align: left; cursor: pointer; }
.ir-v2-loop small { color: var(--ir-accent); font-size: 9px; }
.ir-v2-loop strong { margin-top: 9px; font-size: 13px; line-height: 1.4; }
.ir-v2-loop span { margin-top: 7px; color: var(--nv-muted); font-size: 9px; line-height: 1.5; }
.ir-v2-loop i { position: absolute; right: -8px; top: 50%; z-index: 2; color: var(--ir-accent); font-style: normal; font-weight: 800; }
.ir-v2-loop button:last-child i { right: 8px; top: auto; bottom: 6px; }
.ir-v2-control-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.ir-v2-control-row button { display: grid; gap: 5px; min-width: 0; padding: 13px; border: 1px solid color-mix(in srgb, var(--ir-accent) 35%, var(--nv-line)); border-radius: 12px; color: var(--nv-text); background: var(--ir-accent-soft); text-align: left; cursor: pointer; }
.ir-v2-control-row small { color: var(--ir-accent); font-size: 9px; }
.ir-v2-control-row strong { font-size: 12px; }
.ir-v2-control-row span { color: var(--nv-muted); font-size: 9px; line-height: 1.45; }

.ir-v2-watchlist { display: grid; gap: 0; border: 1px solid var(--nv-line); border-radius: 16px; overflow: hidden; }
.ir-v2-watchlist article { display: grid; grid-template-columns: 38px minmax(170px, .8fr) repeat(3, minmax(0, 1fr)) minmax(118px, .48fr); gap: 16px; align-items: start; min-width: 0; padding: 17px; border-bottom: 1px solid var(--nv-line); }
.ir-v2-watchlist article:last-child { border-bottom: 0; }
.ir-v2-watchlist > article > small { color: var(--ir-accent); font-weight: 750; }
.ir-v2-watchlist h3 { margin: 0; color: var(--nv-text); font-size: 14px; line-height: 1.45; }
.ir-v2-watchlist p { margin: 0; color: var(--nv-muted); font-size: 10px; line-height: 1.58; }
.ir-v2-watchlist p strong { display: block; margin-bottom: 3px; color: var(--nv-text); font-size: 9px; }
.ir-v2-watchlist footer { min-width: 118px; }
.ir-v2-watchlist footer span { display: block; color: var(--nv-muted); font-size: 9px; line-height: 1.5; }

.ir-v2-market-selector { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ir-v2-market-choice { position: relative; min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--nv-line); border-radius: 16px; background: var(--nv-panel); overflow: hidden; }
.ir-v2-market-choice.is-active { border-color: var(--ir-accent); box-shadow: 0 0 0 2px var(--ir-accent-soft); }
.ir-v2-market-choice > button:first-child { width: 100%; min-height: 300px; padding: 18px; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.ir-v2-market-choice small { color: var(--ir-accent); font-size: 9px; font-weight: 750; }
.ir-v2-market-choice h3 { margin: 10px 0; color: var(--nv-text); font-size: 17px; line-height: 1.35; }
.ir-v2-market-choice strong { display: inline-block; color: var(--nv-text); font: 750 24px/1 Montserrat, sans-serif; }
.ir-v2-market-choice strong + span { margin-left: 8px; color: var(--nv-muted); font-size: 9px; }
.ir-v2-market-choice p { min-height: 42px; color: var(--nv-muted); font-size: 10px; line-height: 1.6; }
.ir-v2-market-choice > .ir-v2-detail { margin: 0 18px 12px; }
.ir-v2-market-choice > .ir-card-footer { margin: auto 18px 14px; }
.ir-v2-market-choice .ir-shared-chart { margin-top: 8px; }
.ir-v2-market-choice .ir-shared-chart .ir-shared-legend, .ir-v2-market-choice .ir-shared-chart text { display: none; }
.ir-v2-market-choice .ir-shared-chart svg { max-height: 95px; }
.ir-v2-series-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ir-v2-selected-market > section { display: grid; grid-template-columns: minmax(0, 1.38fr) minmax(300px, .62fr); gap: 14px; }
.ir-v2-selected-market > section[hidden] { display: none; }
.ir-v2-selected-market > section > header { grid-column: 1 / -1; }
.ir-v2-selected-market > section > header small { color: var(--ir-accent); font-size: 9px; }
.ir-v2-selected-market > section > header h3 { max-width: 900px; margin: 8px 0 0; color: var(--nv-text); font-size: 19px; line-height: 1.42; }
.ir-shared-market-trend, .ir-shared-market-breakdown { min-width: 0; min-height: 390px; padding: 18px; border: 1px solid var(--nv-line); border-radius: 14px; background: color-mix(in srgb, var(--nv-panel) 94%, var(--nv-bg)); }
.ir-shared-market-trend h4, .ir-shared-market-breakdown h4 { margin: 0; color: var(--nv-text); font-size: 14px; line-height: 1.45; }
.ir-shared-market-breakdown { display: flex; flex-direction: column; }
.ir-shared-market-breakdown header small { color: var(--ir-accent); font-size: 9px; font-weight: 750; }
.ir-shared-market-breakdown header h4 { margin-top: 7px; }
.ir-shared-market-breakdown .ir-shared-chart, .ir-shared-market-breakdown .ir-shared-comparison, .ir-shared-market-breakdown .ir-shared-slope { margin-top: auto; margin-bottom: auto; }
.ir-shared-market-breakdown .ir-shared-legend { display: none; }
.ir-shared-market-breakdown > p { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--nv-line); color: var(--nv-muted); font-size: 10px; line-height: 1.6; }
.ir-shared-market-scale > .ir-v2-detail { grid-column: 1 / -1; justify-self: start; }
.ir-shared-market-scale > .ir-card-footer { grid-column: 1 / -1; }
.industry-market-scale-insight { margin: 16px 0 0; color: var(--industry-muted); font-size: 13px; line-height: 1.7; }
.ir-v2-internal-view-head { display: none; }
.ir-v2-view-switch { display: flex; justify-content: flex-end; gap: 7px; margin-bottom: 14px; }
.ir-v2-view-switch { gap: 0; margin: 0; }
.ir-v2-view-switch button { min-width: 112px; padding: 10px 18px; border: 1px solid var(--nv-line); border-radius: 0; color: var(--nv-muted); background: var(--nv-panel); font: inherit; font-size: 10px; font-weight: 750; cursor: pointer; }
.ir-v2-view-switch button:first-child { border-radius: 999px 0 0 999px; }
.ir-v2-view-switch button:last-child { margin-left: -1px; border-radius: 0 999px 999px 0; }
.ir-v2-view-switch button.is-active { border-color: var(--ir-accent); color: var(--nv-text); background: var(--ir-accent-soft); }
[data-signals-panel][hidden] { display: none; }
.ir-v2-mini-bars { display: grid; gap: 7px; margin-top: 15px; }
.ir-v2-mini-bars > div { display: grid; grid-template-columns: minmax(40px, auto) minmax(50px, 1fr) auto; gap: 8px; align-items: center; min-width: 0; }
.ir-v2-mini-bars span, .ir-v2-mini-bars strong { color: var(--nv-muted); font-size: 9px; font-weight: 500; white-space: nowrap; }
.ir-v2-mini-bars strong { color: var(--nv-text); text-align: right; }
.ir-v2-mini-bars i { display: block; width: calc(var(--bar) * 1%); height: 7px; border-radius: 99px; background: var(--ir-accent); }
.ir-v2-mini-bars .is-negative i { background: var(--ir-red); }
.ir-v2-stage-landing, .ir-v2-economics-landing { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; margin-top: 12px; padding: 14px 16px; border-left: 3px solid var(--ir-accent); background: var(--ir-accent-soft); }
.ir-v2-stage-landing small, .ir-v2-economics-landing small { color: var(--ir-accent); font-size: 9px; font-weight: 750; }
.ir-v2-stage-landing strong, .ir-v2-economics-landing strong { color: var(--nv-text); font-size: 11px; line-height: 1.55; }
.ir-v2-single-story { grid-template-columns: 1fr; }
.ir-v2-driver-grid { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); align-items: stretch; }
.ir-v2-driver-grid > article { height: 100%; }
.ir-shared-driver-card { position: relative; }
.ir-shared-driver-card > header { display: flex; align-items: start; justify-content: space-between; gap: 10px; min-height: 25px; margin-bottom: 8px; }
.ir-shared-driver-card > header > small { color: var(--ir-accent); font-size: 11px; font-weight: 750; letter-spacing: .08em; }
.ir-shared-driver-direction { flex: none; max-width: 92px; padding: 5px 9px; border: 1px solid currentColor; border-radius: 999px; font-size: 10px; font-weight: 750; line-height: 1; white-space: nowrap; }
.ir-shared-driver-direction.is-positive { color: var(--ir-accent); background: var(--ir-accent-soft); }
.ir-shared-driver-direction.is-negative { color: var(--ir-red); background: color-mix(in srgb, var(--ir-red) 9%, var(--nv-panel)); }
.ir-shared-driver-direction.is-conditional { color: var(--ir-amber); background: color-mix(in srgb, var(--ir-amber) 10%, var(--nv-panel)); }
.ir-shared-driver-latest { display: grid; justify-items: end; min-width: 0; color: var(--ir-accent); text-align: right; }
.ir-shared-driver-latest > strong { max-width: 100%; overflow-wrap: anywhere; color: inherit; font-size: clamp(18px, 2.2vw, 30px); line-height: 1; }
.ir-shared-driver-latest > small { margin-top: 5px; color: var(--nv-muted); font-size: 9px; font-weight: 500; line-height: 1.35; letter-spacing: 0; }
.ir-shared-driver-card > h4 { margin: 10px 0 8px; color: var(--nv-text); font-size: clamp(18px, 1.7vw, 25px); line-height: 1.2; }

.ir-v2-chain-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.ir-v2-chain-grid .ir-v2-card { padding: 15px; }
.ir-v2-chain-grid .ir-v2-card h3 { font-size: 15px; }
.ir-v2-chain-grid .ir-tag-row span { padding: 5px; font-size: 8px; }
.ir-v2-economics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ir-v2-economics article { display: grid; gap: 10px; min-width: 0; padding: 16px; border: 1px solid var(--nv-line); border-radius: 13px; }
.ir-v2-economics small { color: var(--ir-accent); font-size: 9px; }
.ir-v2-recognition-path { display: grid; grid-template-columns: minmax(92px, .42fr) auto minmax(0, 1fr); gap: 10px; align-items: center; }
.ir-v2-recognition-path span { color: var(--nv-muted); font-size: 9px; line-height: 1.5; }
.ir-v2-recognition-path i { color: var(--ir-accent); font-style: normal; font-weight: 800; }
.ir-v2-recognition-path strong { color: var(--nv-text); font-size: 11px; line-height: 1.5; }
.ir-v2-economics p { margin: 0; padding-top: 9px; border-top: 1px solid var(--nv-line); color: var(--nv-muted); font-size: 9px; line-height: 1.5; }

.ir-v2-network { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; padding: 20px; border: 1px solid var(--nv-line); border-radius: 16px; background: color-mix(in srgb, var(--nv-panel) 91%, var(--nv-bg)); }
.ir-v2-network section { position: relative; display: grid; align-content: start; gap: 8px; min-width: 0; }
.ir-v2-network section:not(:last-child)::after { position: absolute; right: -20px; top: 50%; color: var(--ir-accent); content: "→"; font-weight: 800; }
.ir-v2-network h3 { margin: 0 0 5px; color: var(--ir-accent); font-size: 11px; letter-spacing: .08em; }
.ir-v2-network button { min-width: 0; padding: 10px; border: 1px solid var(--nv-line); border-radius: 10px; color: var(--nv-text); background: var(--nv-panel); font-family: inherit; font-size: 11px; font-weight: 600; line-height: 1.4; text-align: left; cursor: pointer; transition: opacity .18s, border-color .18s, background .18s; }
.ir-v2-network button.is-selected { border-color: var(--ir-accent); background: var(--ir-accent-soft); }
.ir-v2-network button.is-muted { opacity: .34; }
.ir-v2-paths { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.ir-v2-paths article { display: grid; gap: 3px; min-width: 0; padding: 8px 10px; border-radius: 9px; background: color-mix(in srgb, var(--nv-line) 38%, transparent); }
.ir-v2-paths small { color: var(--ir-accent); font-size: 8px; }
.ir-v2-paths strong { color: var(--nv-muted); font-size: 9px; font-weight: 500; line-height: 1.4; }
.ir-v2-related { margin-top: 14px; }

.industry-research-page .v2-driver-network-module { --driver-surface: color-mix(in srgb, var(--nv-panel) 90%, var(--nv-bg)); --driver-panel: var(--nv-panel); --driver-line: var(--nv-line); --driver-text: var(--nv-text); --driver-muted: var(--nv-muted); --driver-accent: var(--ir-accent); }
.industry-research-page .industry-related-data { --industry-line: var(--nv-line); --industry-accent: var(--ir-accent); --industry-text: var(--nv-text); --industry-muted: var(--nv-muted); --industry-dim: var(--nv-muted); --industry-panel: var(--nv-panel); --industry-panel-2: color-mix(in srgb, var(--nv-panel) 88%, var(--nv-bg)); }
.ir-shared-network-host .v2-driver-network { margin-top: 0; }

.ir-shared-value-loop { display: grid; gap: 14px; }
.ir-shared-loop-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(142px, 1fr); grid-template-columns: none; gap: 8px; padding-bottom: 4px; overflow-x: auto; overscroll-behavior-x: contain; }
.ir-shared-loop-track button { position: relative; display: grid; align-content: start; min-width: 142px; min-height: 142px; padding: 14px; border: 1px solid var(--nv-line); border-radius: 14px; color: var(--nv-text); background: color-mix(in srgb, var(--nv-panel) 90%, var(--nv-bg)); text-align: left; cursor: pointer; }
.ir-shared-loop-track button.is-control { border-color: color-mix(in srgb, #e69b00 58%, var(--nv-line)); }
.ir-shared-loop-track button.is-selected { border-color: var(--ir-accent); background: var(--ir-accent-soft); box-shadow: inset 0 0 0 1px var(--ir-accent); }
.ir-shared-loop-track small { min-height: 30px; color: var(--nv-muted); font-size: 8px; line-height: 1.4; }
.ir-shared-loop-track strong { margin-top: 8px; font-size: 13px; line-height: 1.35; }
.ir-shared-loop-track span { margin-top: 7px; color: var(--nv-muted); font-size: 9px; line-height: 1.45; }
.ir-shared-loop-track em { align-self: end; justify-self: start; margin-top: 9px; padding: 4px 6px; border: 1px solid color-mix(in srgb, #e69b00 55%, var(--nv-line)); border-radius: 999px; color: #b87300; font-size: 8px; font-style: normal; }
.ir-shared-loop-track i { position: absolute; right: -8px; top: 50%; z-index: 2; color: var(--ir-accent); font-style: normal; }
.ir-shared-loop-track button:last-child i { right: 8px; top: auto; bottom: 7px; }
.ir-shared-node-detail { padding: 20px; border: 1px solid var(--nv-line); border-radius: 16px; background: color-mix(in srgb, var(--nv-panel) 94%, var(--nv-bg)); }
.ir-shared-node-detail-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); gap: 28px; align-items: start; }
.ir-shared-node-detail-head > header { min-width: 0; }
.ir-shared-node-detail-head > header p { max-width: 760px; margin: 12px 0 0; color: var(--nv-muted); font-size: 12px; line-height: 1.7; }
.ir-shared-node-detail-head .ir-v2-detail { margin-top: 16px; }
.ir-shared-value-logic { display: grid; gap: 0; margin: 0; border: 1px solid var(--nv-line); border-radius: 13px; overflow: hidden; }
.ir-shared-value-logic > div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; padding: 13px 14px; border-bottom: 1px solid var(--nv-line); }
.ir-shared-value-logic > div:last-child { border-bottom: 0; }
.ir-shared-value-logic dt { color: var(--ir-accent); font-size: 10px; font-weight: 750; }
.ir-shared-value-logic dd { margin: 0; color: var(--nv-text); font-size: 11px; line-height: 1.55; }
.ir-shared-node-analysis { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 16px; align-items: stretch; margin-top: 20px; }
.ir-shared-node-analysis > section { margin-top: 0; }
.ir-shared-node-detail small { color: var(--ir-accent); font-size: 9px; font-weight: 750; }
.ir-shared-node-detail h3 { margin: 7px 0 0; color: var(--nv-text); font-size: 20px; line-height: 1.4; }
.ir-shared-node-signal { display: grid; grid-template-columns: minmax(210px, .62fr) minmax(0, 1fr); gap: 22px; align-items: center; margin-top: 18px; padding: 16px; border: 1px solid color-mix(in srgb, var(--ir-accent) 30%, var(--nv-line)); border-radius: 13px; background: color-mix(in srgb, var(--ir-accent) 5%, transparent); }
.ir-shared-node-signal > header { min-width: 0; }
.ir-shared-node-signal h4 { margin: 7px 0 0; color: var(--nv-text); font-size: 14px; line-height: 1.55; }
.ir-shared-node-signal > header > strong { display: block; margin-top: 12px; color: var(--ir-accent); font-size: 10px; }
.ir-shared-node-signal .ir-shared-chart { margin-top: 0; }
.ir-shared-node-ledger { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 18px; }
.ir-shared-node-ledger > div { display: grid; gap: 6px; padding: 12px; border: 1px solid var(--nv-line); border-radius: 11px; }
.ir-shared-node-ledger strong { color: var(--nv-text); font-size: 10px; line-height: 1.5; }
.ir-shared-node-detail > p { margin: 15px 0 0; color: var(--nv-muted); font-size: 11px; line-height: 1.65; }
.ir-shared-node-detail > p strong { margin-right: 8px; color: var(--ir-accent); }
.ir-shared-node-detail aside { display: grid; gap: 6px; margin-top: 14px; padding: 13px; border-left: 3px solid #e69b00; background: color-mix(in srgb, #e69b00 7%, transparent); }
.ir-shared-node-detail aside span { color: #b87300; font-size: 9px; font-weight: 750; }
.ir-shared-node-detail aside strong { color: var(--nv-text); font-size: 12px; line-height: 1.45; }
.ir-shared-node-detail aside p { margin: 0; color: var(--nv-muted); font-size: 10px; line-height: 1.55; }

.ir-shared-matrix > aside dl { display: flex; flex: 0 1 470px; justify-content: flex-end; gap: 18px; margin: 0; }
.ir-shared-matrix > aside dl > div { max-width: 220px; }
.ir-shared-matrix > aside dt { color: var(--nv-text); font-size: 10px; font-weight: 750; }
.ir-shared-matrix > aside dd { margin: 3px 0 0; color: var(--nv-muted); font-size: 9px; line-height: 1.5; }
.ir-shared-matrix.is-compact .ir-shared-matrix-plot { min-height: 420px; margin-top: 4px; }
.ir-shared-detail-matrix .ir-shared-matrix:not(.is-compact) > aside { display: none; }

.ir-shared-scenario { display: grid; grid-template-columns: minmax(240px, .42fr) minmax(0, 1fr); gap: 18px; }
.ir-shared-scenario > aside { display: grid; align-content: start; gap: 16px; padding: 18px; border: 1px solid var(--nv-line); border-radius: 15px; background: color-mix(in srgb, var(--nv-panel) 90%, var(--nv-bg)); }
.ir-shared-scenario > aside > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--nv-line); }
.ir-shared-scenario > aside > header small, .ir-shared-scenario-controls > small { display: block; color: var(--ir-accent); font-size: 9px; font-weight: 750; }
.ir-shared-scenario > aside > header strong { display: block; margin-top: 5px; color: var(--nv-text); font-size: 14px; }
.ir-shared-scenario > aside > header button { padding: 7px 11px; border: 1px solid var(--nv-line); border-radius: 999px; color: var(--nv-muted); background: var(--nv-panel); font: inherit; font-size: 9px; cursor: pointer; }
.ir-shared-scenario .industry-scenario-selector-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-items: stretch; }
.ir-shared-scenario .industry-scenario-selector-row > * { min-width: 0; }
.ir-shared-scenario .industry-scenario-selector { padding: 14px; border: 1px solid var(--nv-line); border-radius: 11px; background: var(--nv-panel); }
.ir-shared-scenario .industry-scenario-selector > span { color: var(--nv-text); font-weight: 750; }
.ir-shared-scenario .industry-scenario-selector > small { color: var(--nv-muted); font-size: 9px; line-height: 1.55; }
.ir-shared-scenario .industry-scenario-horizon { display: grid; padding: 14px; border: 1px solid var(--nv-line); border-radius: 11px; background: var(--nv-panel); }
.ir-shared-scenario .industry-scenario-horizon label { align-content: start; }
.ir-shared-scenario .industry-scenario-control-head,
.ir-shared-scenario .industry-scenario-key-drivers > header { align-items: end; }
.ir-shared-scenario .industry-scenario-key-drivers > header button { padding: 7px 11px; border: 1px solid var(--nv-line); border-radius: 999px; color: var(--nv-muted); background: var(--nv-panel); font: inherit; font-size: 9px; line-height: 1.2; cursor: pointer; }
.ir-shared-scenario .industry-scenario-key-drivers > header button:hover { border-color: var(--ir-accent); color: var(--ir-accent); background: var(--ir-accent-soft); }
.ir-shared-scenario-controls { display: grid; gap: 16px; }
.ir-shared-scenario nav button { padding: 8px; border: 1px solid var(--nv-line); border-radius: 9px; color: var(--nv-muted); background: var(--nv-panel); font-size: 9px; cursor: pointer; }
.ir-shared-scenario label { display: grid; gap: 7px; color: var(--nv-muted); font-size: 10px; }
.ir-shared-scenario label span { display: flex; justify-content: space-between; gap: 12px; }
.ir-shared-scenario label strong { color: var(--ir-accent); }
.ir-shared-scenario select, .ir-shared-scenario input { width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; accent-color: var(--ir-accent); }
.ir-shared-scenario > section { min-width: 0; }
.ir-shared-scenario > section > header { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.ir-shared-scenario > section > header small { color: var(--ir-accent); font-size: 9px; font-weight: 750; }
.ir-shared-scenario > section > header h3 { max-width: 680px; margin: 7px 0 0; color: var(--nv-text); font-size: 20px; line-height: 1.4; }
.ir-shared-scenario > section > header > strong { color: var(--ir-accent); font: 750 26px/1 Montserrat, sans-serif; white-space: nowrap; }
.ir-shared-scenario > section > header i { margin-left: 4px; color: var(--nv-muted); font: 500 9px/1 sans-serif; }
.ir-shared-scenario nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 18px; }
.ir-shared-scenario .industry-scenario-result-tabs { display: flex; gap: 5px; border-bottom: 1px solid var(--ir-accent); }
.ir-shared-scenario .industry-scenario-result-tabs button { flex: 1; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; border-radius: 9px 9px 0 0; border-bottom: 0; }
.ir-shared-scenario .industry-scenario-result-tabs button small { color: var(--ir-accent); font-size: 8px; }
.ir-shared-scenario .industry-scenario-result-tabs button span { font-size: 10px; }
.ir-shared-scenario nav button.is-active { border-color: var(--ir-accent); color: var(--nv-text); background: var(--ir-accent-soft); }
.ir-shared-scenario details { margin-top: 12px; color: var(--nv-muted); font-size: 10px; line-height: 1.6; }
.ir-shared-chart { min-width: 0; margin-top: 14px; }
.ir-shared-chart svg { display: block; width: 100%; height: auto; }
.ir-shared-chart text { fill: var(--nv-muted); font-size: 11.5px; }
.ir-shared-chart .ir-shared-point-label { fill: var(--nv-text); font-size: 11.5px; font-weight: 750; }
.ir-shared-axis { stroke: var(--nv-line); }
.ir-shared-line { fill: none; stroke: var(--series); stroke-width: 2.5; }
.ir-shared-chart g.is-scenario .ir-shared-line { stroke-dasharray: 7 6; }
.ir-shared-chart circle { fill: var(--series); stroke: var(--nv-panel); stroke-width: 2; }
.ir-shared-comparison { display: grid; gap: 10px; margin-top: 14px; }
.ir-shared-comparison > div { display: grid; grid-template-columns: minmax(90px, .7fr) minmax(120px, 1fr) auto; gap: 10px; align-items: center; }
.ir-shared-comparison span, .ir-shared-comparison strong { color: var(--nv-muted); font-size: 11px; }
.ir-shared-comparison a { display: grid; gap: 2px; color: var(--nv-text); font-size: 10px; text-decoration: none; }
.ir-shared-comparison a small { color: var(--ir-accent); font-size: 8px; }
.ir-shared-comparison strong { color: var(--nv-text); white-space: nowrap; }
.ir-shared-comparison i { height: 7px; border-radius: 999px; background: color-mix(in srgb, var(--nv-line) 82%, transparent); overflow: hidden; }
.ir-shared-comparison b { display: block; width: var(--comparison); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--ir-accent), #1473e6); }
.ir-shared-comparison b.is-negative { background: #d4475f; }
.ir-shared-single-observation { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:baseline; gap:10px 18px; margin-top:18px; padding:16px 18px; border-block:1px solid var(--nv-line); background:color-mix(in srgb,var(--nv-panel) 94%,var(--ir-accent) 6%); text-align:left; }
.ir-shared-single-observation small { color:var(--nv-muted); font-size:10px; }
.ir-shared-single-observation strong { color:var(--nv-text); font-size:clamp(24px,2.4vw,36px); letter-spacing:-.04em; }
.ir-shared-single-observation p { margin:0; color:var(--ir-accent); font-size:9px; font-weight:750; letter-spacing:.04em; }
.ir-shared-single-plot { position:relative; grid-column:1 / -1; display:grid; grid-template-columns:auto 1fr auto; gap:9px; align-items:center; min-height:24px; color:var(--nv-muted); font-size:8px; }
.ir-shared-single-plot i { position:absolute; left:30px; right:30px; top:50%; height:2px; border-radius:999px; background:linear-gradient(90deg,color-mix(in srgb,var(--nv-line) 82%,transparent),var(--ir-accent)); transform:translateY(-50%); }
.ir-shared-single-plot b { position:absolute; z-index:1; left:var(--snapshot-position); top:50%; width:10px; height:10px; border:2px solid var(--nv-panel); border-radius:50%; background:var(--ir-accent); box-shadow:0 0 0 3px var(--ir-accent-soft); transform:translate(-50%,-50%); }
.ir-shared-single-plot span:last-child { grid-column:3; }
@media (max-width:560px) {
    .ir-shared-single-observation { grid-template-columns:1fr auto; gap:6px 12px; }
    .ir-shared-single-observation strong { grid-column:1 / -1; grid-row:2; }
    .ir-shared-single-observation p { grid-column:2; grid-row:1; }
}
.ir-shared-slope { margin-top: 14px; }
.ir-shared-slope svg { display: block; width: 100%; height: auto; }
.ir-shared-slope line { stroke: var(--ir-accent); stroke-width: 3; }
.ir-shared-slope circle { fill: var(--ir-accent); stroke: var(--nv-panel); stroke-width: 2; }
.ir-shared-slope text { fill: var(--nv-muted); font-size: 11.5px; }
.ir-shared-node-economics, .ir-shared-node-cases { display: grid; gap: 8px; margin-top: 16px; padding: 14px; border: 1px solid var(--nv-line); border-radius: 12px; }
.ir-shared-node-economics h4, .ir-shared-node-cases h4 { margin: 0; color: var(--ir-accent); font-size: 10px; }
.ir-shared-node-economics div { display: grid; grid-template-columns: minmax(90px, .45fr) minmax(0, 1fr); gap: 8px; padding-top: 8px; border-top: 1px solid var(--nv-line); }
.ir-shared-node-economics strong, .ir-shared-node-economics span, .ir-shared-node-cases a, .ir-shared-node-cases > span { color: var(--nv-text); font-size: 10px; line-height: 1.5; }
.ir-shared-node-economics p { grid-column: 1 / -1; margin: 0; color: var(--nv-muted); font-size: 9px; }
.ir-shared-node-cases a, .ir-shared-node-cases > span { display: flex; justify-content: space-between; padding: 9px 10px; border-radius: 9px; background: var(--nv-panel); text-decoration: none; }
.ir-shared-node-cases a span { color: var(--ir-accent); }
.ir-shared-node-cases > article { padding: 12px; border: 1px solid var(--nv-line); border-radius: 10px; background: color-mix(in srgb, var(--nv-panel) 95%, var(--nv-bg)); }
.ir-shared-node-cases > article > header a, .ir-shared-node-cases > article > header strong { display: flex; justify-content: space-between; padding: 0; color: var(--nv-text); background: transparent; font-size: 11px; font-weight: 750; }
.ir-shared-node-cases dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 10px 0 0; }
.ir-shared-node-cases dl div { min-width: 0; padding-top: 8px; border-top: 1px solid var(--nv-line); }
.ir-shared-node-cases dt { color: var(--ir-accent); font-size: 8px; font-weight: 750; }
.ir-shared-node-cases dd { margin: 4px 0 0; color: var(--nv-muted); font-size: 9px; line-height: 1.5; }
.ir-shared-detail-lead, .ir-shared-detail-visual, .ir-shared-detail-relations, .ir-shared-detail-matrix, .ir-shared-detail-samples, .ir-shared-detail-companies { margin-top: 16px; padding: 16px; border: 1px solid var(--nv-line); border-radius: 15px; background: color-mix(in srgb, var(--nv-panel) 90%, var(--ir-accent) 10%); }
.ir-shared-detail-lead small { color: var(--ir-accent); font-size: 9px; font-weight: 750; }
.ir-shared-detail-lead strong { display: block; margin-top: 10px; color: var(--ir-accent); font: 750 30px/1 Montserrat, sans-serif; }
.ir-shared-detail-lead p { margin: 12px 0 0; color: var(--nv-muted); font-size: 12px; line-height: 1.7; }
.ir-shared-detail-visual h3, .ir-shared-detail-relations h3, .ir-shared-detail-matrix h3, .ir-shared-detail-samples h3, .ir-shared-detail-companies h3 { margin: 0 0 10px; color: var(--ir-accent); font-size: 11px; }
.ir-shared-detail-fields { margin-top: 16px !important; }
.ir-shared-detail-relations > div { display: flex; flex-wrap: wrap; gap: 7px; }
.ir-shared-detail-relations span { padding: 6px 9px; border: 1px solid var(--nv-line); border-radius: 999px; color: var(--nv-muted); font-size: 9px; }
.ir-shared-detail-companies { display: grid; gap: 8px; }
.ir-shared-detail-companies h3 { grid-column: 1 / -1; }

.ir-shared-dynamics > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; margin-bottom: 24px; }
.ir-shared-dynamics > header small { color: var(--ir-accent); font-size: 10px; font-weight: 750; letter-spacing: .13em; }
.ir-shared-dynamics > header h2 { max-width: 900px; margin: 8px 0 0; color: var(--nv-text); font-size: clamp(28px, 3vw, 44px); line-height: 1.18; letter-spacing: -.04em; }
.ir-shared-segmented-switch { display: inline-flex; justify-self: end; gap: 0; }
.ir-shared-segmented-switch button { min-width: 112px; padding: 10px 18px; border: 1px solid var(--nv-line); border-radius: 0; color: var(--nv-muted); background: var(--nv-panel); font: inherit; font-size: 10px; font-weight: 750; cursor: pointer; }
.ir-shared-segmented-switch button:first-child { border-radius: 999px 0 0 999px; }
.ir-shared-segmented-switch button:last-child { margin-left: -1px; border-radius: 0 999px 999px 0; }
.ir-shared-segmented-switch button.is-active { z-index: 1; border-color: var(--ir-accent); color: var(--ir-accent); background: var(--ir-accent-soft); }
.ir-shared-dynamics-layout { display: grid; grid-template-columns: 1fr; gap: 18px; }
.ir-shared-dynamics-layout.is-open { grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr); }
.ir-shared-dynamics-layout[hidden], .ir-shared-dynamics-topics[hidden] { display: none; }
.ir-shared-timeline-intro { margin-bottom: 18px; }
.ir-shared-timeline-intro small { color: var(--ir-accent); font-size: 10px; font-weight: 750; letter-spacing: .12em; }
.ir-shared-timeline-intro h3 { max-width: 900px; margin: 8px 0 0; color: var(--nv-text); font-size: clamp(22px, 2.3vw, 34px); line-height: 1.25; letter-spacing: -.03em; }
.ir-shared-timeline-intro p { margin: 8px 0 0; color: var(--nv-muted); font-size: 11px; line-height: 1.65; }
.ir-shared-dynamics-layout ol { position: relative; display: grid; margin: 0; padding: 0 0 0 30px; list-style: none; }
.ir-shared-dynamics-layout ol::before { content: ""; position: absolute; left: 8px; top: 18px; bottom: 18px; width: 1px; background: color-mix(in srgb, var(--ir-accent) 45%, var(--nv-line)); }
.ir-shared-dynamics-layout li { position: relative; }
.ir-shared-dynamics-layout li::before { content: ""; position: absolute; z-index: 2; left: -27px; top: 25px; width: 9px; height: 9px; border: 2px solid var(--ir-accent); border-radius: 50%; background: var(--nv-bg); box-shadow: 0 0 0 4px var(--ir-accent-soft); }
.ir-shared-dynamics-layout li button { width: 100%; display: grid; grid-template-columns: 92px 126px minmax(0, 1fr) 22px; gap: 8px 12px; align-items: start; padding: 18px 8px 18px 12px; border: 0; border-bottom: 1px solid var(--nv-line); border-radius: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.ir-shared-dynamics-layout li button.is-active { background: linear-gradient(90deg, var(--ir-accent-soft), transparent); }
.ir-shared-dynamics-layout li time { color: var(--ir-accent); font-size: 11px; font-weight: 700; }
.ir-shared-dynamics-layout li em { color: var(--ir-accent); font-size: 10px; font-style: normal; font-weight: 750; }
.ir-shared-event-copy strong, .ir-shared-event-copy small { display: block; }
.ir-shared-event-copy strong { color: var(--nv-text); font-size: 12px; line-height: 1.45; }
.ir-shared-event-copy small { margin-top: 5px; color: var(--nv-muted); font-size: 10px; line-height: 1.55; }
.ir-shared-dynamics-layout li b { color: var(--ir-accent); font-size: 13px; text-align: right; }
.ir-shared-dynamics-layout.is-open li button { grid-template-columns: 78px minmax(0, 1fr) 18px; }
.ir-shared-dynamics-layout.is-open li em { grid-column: 2; }
.ir-shared-dynamics-layout.is-open .ir-shared-event-copy { grid-column: 2; }
.ir-shared-dynamics-layout.is-open li b { grid-column: 3; grid-row: 1; }
.ir-shared-dynamics-layout > article { padding: 22px; border: 1px solid var(--nv-line); border-radius: 16px; background: color-mix(in srgb, var(--nv-panel) 94%, var(--nv-bg)); }
.ir-shared-dynamics-layout > article > button { float: right; width: 34px; height: 34px; border: 1px solid var(--nv-line); border-radius: 50%; color: var(--nv-text); background: var(--nv-panel); font-size: 20px; cursor: pointer; }
.ir-shared-dynamics-layout > article > time { color: var(--ir-accent); font-size: 9px; }
.ir-shared-dynamics-layout > article h3 { margin: 8px 0 18px; color: var(--nv-text); font-size: 22px; line-height: 1.35; }
.ir-shared-dynamics-layout > article > section { padding: 14px 0; border-top: 1px solid var(--nv-line); }
.ir-shared-dynamics-layout > article > section small { color: var(--ir-accent); font-size: 9px; font-weight: 750; letter-spacing: .1em; }
.ir-shared-dynamics-layout > article > section h4 { margin: 5px 0 0; color: var(--nv-text); font-size: 12px; }
.ir-shared-dynamics-layout > article > section p { margin: 7px 0 0; color: var(--nv-muted); font-size: 11px; line-height: 1.65; }
.ir-shared-dynamics-topics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ir-shared-dynamics-topics article { padding: 20px; border: 1px solid var(--nv-line); border-radius: 15px; }
.ir-shared-detail-companies a, .ir-shared-detail-companies > span { display: flex; justify-content: space-between; padding: 10px; border: 1px solid var(--nv-line); border-radius: 10px; color: var(--nv-text); background: var(--nv-panel); font-size: 10px; text-decoration: none; }
.ir-shared-detail-companies a span { color: var(--ir-accent); }
.ir-shared-legend { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 12px; }
.ir-shared-legend span { color: var(--nv-muted); font-size: 9px; }
.ir-shared-legend i { display: inline-block; width: 13px; height: 2px; margin-right: 5px; vertical-align: middle; background: var(--legend); }
.ir-shared-legend .is-scenario i { background: repeating-linear-gradient(90deg, var(--legend) 0 6px, transparent 6px 10px); }

.ir-v2-scenario { display: grid; grid-template-columns: repeat(2, minmax(0, 170px)) minmax(0, 1fr) auto; gap: 18px; align-items: center; }
.ir-v2-scenario > div { display: grid; gap: 6px; padding: 15px; border: 1px solid var(--nv-line); border-radius: 13px; }
.ir-v2-scenario small { color: var(--nv-muted); font-size: 9px; }
.ir-v2-scenario strong { color: var(--nv-text); font: 750 20px/1.2 Montserrat, sans-serif; }
.ir-v2-scenario p { margin: 0; color: var(--nv-muted); font-size: 11px; line-height: 1.6; }
.ir-v2-scenario .ir-v2-detail { margin: 0; }
.ir-v2-observatory { min-width: 0; }
.ir-v2-observatory-nav { display: flex; justify-content: flex-end; gap: 6px; margin-bottom: 12px; }
.ir-v2-observatory-nav button { padding: 8px 12px; border: 1px solid var(--nv-line); border-radius: 999px; color: var(--nv-muted); background: transparent; font: inherit; font-size: 10px; cursor: pointer; }
.ir-v2-observatory-nav button.is-active { border-color: var(--ir-accent); color: var(--nv-text); background: var(--ir-accent-soft); }
.ir-v2-observatory > section { min-width: 0; padding: 18px; border: 1px solid var(--nv-line); border-radius: 16px; }
.ir-v2-observatory > section[hidden] { display: none; }
.ir-v2-observatory > section > header { min-height: 72px; }
.ir-v2-observatory-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ir-v2-observatory > section > header small { color: var(--ir-accent); font-size: 9px; }
.ir-v2-observatory > section > header h3 { margin: 8px 0 14px; color: var(--nv-text); font-size: 17px; line-height: 1.42; }
.ir-v2-observatory .ir-v2-card + .ir-v2-card { margin-top: 0; }

.ir-v2-timeline { position: relative; display: grid; gap: 0; }
.ir-v2-timeline::before { position: absolute; left: 95px; top: 6px; bottom: 6px; width: 1px; background: var(--nv-line); content: ""; }
.ir-v2-timeline article { position: relative; display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 50px; padding: 0 0 28px; }
.ir-v2-timeline article::before { position: absolute; left: 90px; top: 6px; width: 11px; height: 11px; border: 3px solid var(--nv-panel); border-radius: 50%; background: var(--ir-accent); content: ""; }
.ir-v2-timeline time { color: var(--ir-accent); font: 700 10px/1.4 Montserrat, sans-serif; }
.ir-v2-timeline h3 { margin: 0; color: var(--nv-text); font-size: 18px; line-height: 1.45; }
.ir-v2-timeline p { margin: 10px 0 0; color: var(--nv-muted); font-size: 12px; line-height: 1.7; }

.ir-v2-source-library { margin-top: 56px; padding: 0; border: 0; border-top: 1px solid var(--nv-line); border-bottom: 1px solid var(--nv-line); border-radius: 0; background: transparent; }
.ir-v2-source-library > summary { min-height: 54px; display:flex; align-items:center; justify-content:space-between; padding:0 2px; color: var(--nv-muted); font-size: 11px; cursor: pointer; }
.ir-v2-source-library > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.ir-v2-source-library section { min-width: 0; }
.ir-v2-source-library h3 { color: var(--nv-text); font-size: 13px; }
.ir-v2-source-library ol { padding-left: 22px; }
.ir-v2-source-library li { margin: 8px 0; color: var(--nv-muted); font-size: 10px; line-height: 1.5; }
.ir-v2-source-library a { display: block; color: var(--ir-accent); overflow-wrap: anywhere; }
.ir-v2-source-library li span { display: block; }
.ir-v2-source-library > footer { margin-top: 14px; color: var(--nv-muted); font-size: 10px; text-align: right; }

body.industry-drawer-open { overflow: hidden; }
.ir-v2-drawer-backdrop { position: fixed; inset: 0; z-index: 1390; background: rgba(0, 0, 0, .48); backdrop-filter: blur(3px); }
.ir-v2-drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 1400; width: min(560px, 94vw); display: none; flex-direction: column; padding: 0; border-left: 1px solid var(--nv-line); color: var(--nv-text); background: var(--nv-panel); box-shadow: -28px 0 70px rgba(0, 0, 0, .32); overflow: hidden; }
.ir-v2-drawer.open { display: flex; }
.ir-v2-drawer > header { min-height: 118px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 28px 30px; border-bottom: 1px solid var(--nv-line); }
.ir-v2-drawer > header small { color: var(--ir-accent); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.ir-v2-drawer > header h2 { max-width: 440px; margin: 10px 0 0; font-size: 24px; line-height: 1.35; letter-spacing: -.035em; }
.ir-v2-drawer > header button { flex: 0 0 auto; width: 38px; height: 38px; padding: 0; border: 1px solid var(--nv-line); border-radius: 50%; color: var(--nv-text); background: transparent; font-size: 25px; line-height: 1; cursor: pointer; }
.ir-v2-drawer > .industry-drawer-body { min-height: 0; overflow-y: auto; padding: 30px; }
.ir-v2-drawer dl { display: grid; gap: 0; margin: 0; border: 1px solid var(--nv-line); border-radius: 15px; overflow: hidden; }
.ir-v2-drawer dl > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; padding: 14px; border-bottom: 1px solid var(--nv-line); }
.ir-v2-drawer dl > div:last-child { border-bottom: 0; }
.ir-v2-drawer dt { color: var(--ir-accent); font-size: 10px; }
.ir-v2-drawer dd { margin: 0; color: var(--nv-muted); font-size: 12px; line-height: 1.7; }
.ir-v2-drawer-trend { margin-top: 18px; padding: 16px; border: 1px solid var(--nv-line); border-radius: 15px; background: color-mix(in srgb, var(--nv-panel) 82%, var(--ir-accent) 18%); }
.ir-v2-drawer-trend h3 { margin: 0 0 12px; color: var(--ir-accent); font-size: 12px; letter-spacing: .04em; }
.ir-v2-drawer-trend .ir-v2-mini-bars { margin-top: 0; }
.ir-v2-drawer > footer { margin-top: 24px; color: var(--nv-muted); font-size: 10px; text-align: right; }

@media (max-width: 1180px) {
    .ir-v2-hero { grid-template-columns: 1fr; min-height: auto; }
    .ir-v2-hero h1 { max-width: 900px; }
    .ir-v2-hero-pulse { width: min(760px, 100%); }
    .ir-v2-hero-side { max-width: 760px; }
}

.industry-quality-status {
    margin: 0 0 24px;
    border-block: 1px solid var(--nv-line);
    color: var(--nv-text);
    background: transparent;
}
.industry-quality-status > summary {
    min-height: 64px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 12px 0;
    cursor: pointer;
    list-style: none;
}
.industry-quality-status > summary::-webkit-details-marker { display: none; }
.industry-quality-status > summary span {
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--nv-risk, #d94343);
    background: color-mix(in srgb, var(--nv-risk, #d94343) 10%, transparent);
    font-size: 11px;
    font-weight: 750;
}
.industry-quality-status > summary strong { font-size: 14px; }
.industry-quality-status > summary em { color: var(--nv-muted); font-size: 12px; font-style: normal; text-align: right; }
.industry-quality-status > ul { display: grid; gap: 0; margin: 0; padding: 0 0 16px; list-style: none; }
.industry-quality-status li { display: grid; grid-template-columns: minmax(140px, .28fr) minmax(0, 1fr); gap: 16px; padding: 10px 0; border-top: 1px solid var(--nv-line); }
.industry-quality-status li strong { font-size: 12px; }
.industry-quality-status li span { color: var(--nv-muted); font-size: 12px; line-height: 1.6; }

@media (max-width: 1050px) {
    .ir-v2-pulse-grid, .ir-v2-control-row, .ir-v2-economics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ir-v2-observatory-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ir-v2-loop, .ir-v2-chain-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .ir-v2-loop button:nth-child(4) i { display: none; }
    .ir-v2-watchlist article { grid-template-columns: 32px minmax(0, .8fr) repeat(2, minmax(0, 1fr)); }
    .ir-v2-watchlist article p:last-of-type { grid-column: 3 / span 2; }
    .ir-v2-watchlist footer { grid-column: 2 / -1; }
    .ir-shared-loop-track { grid-template-columns: none; }
}

@media (max-width: 760px) {
    .industry-quality-status > summary { grid-template-columns: 1fr; gap: 7px; }
    .industry-quality-status > summary span { justify-self: start; }
    .industry-quality-status > summary em { text-align: left; }
    .industry-quality-status li { grid-template-columns: 1fr; gap: 5px; }
    .ir-shell { width: min(100% - 32px, var(--ir-max)); }
    .ir-v2-block-head, .ir-v2-page-head { grid-template-columns: 1fr; }
    .ir-v2-block-head > span { text-align: left; }
    .ir-v2-page-head > span { justify-self: start; text-align: left; }
    .ir-v2-tabs { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .ir-v2-tabs::-webkit-scrollbar { display: none; }
    .ir-v2-tabs button { min-width: 150px; scroll-snap-align: start; }
    .ir-v2-market-selector, .ir-v2-network, .ir-shared-scenario, .ir-shared-linked-matrices, .ir-v2-selected-market > section { grid-template-columns: 1fr; }
    .ir-v2-selected-market > section > header { grid-column: auto; }
    .ir-shared-matrix > aside { display: grid; }
    .ir-shared-matrix > aside dl { justify-content: flex-start; }
    .ir-v2-loop, .ir-v2-chain-grid { display: flex; padding-bottom: 8px; overflow-x: auto; scroll-snap-type: x mandatory; }
    .ir-v2-loop button, .ir-v2-chain-grid .ir-v2-card { flex: 0 0 min(260px, 78vw); scroll-snap-align: start; }
    .ir-v2-network section:not(:last-child)::after { right: 10px; top: auto; bottom: -21px; transform: rotate(90deg); }
    .ir-v2-scenario { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ir-v2-scenario p, .ir-v2-scenario .ir-v2-detail { grid-column: 1 / -1; }
    .ir-shared-loop-track { display: flex; padding-bottom: 8px; overflow-x: auto; scroll-snap-type: x mandatory; }
    .ir-shared-loop-track button { flex: 0 0 min(250px, 76vw); scroll-snap-align: start; }
    .ir-shared-node-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ir-shared-node-signal { grid-template-columns: 1fr; }
    .ir-v2-internal-view-head { justify-content: flex-start; margin: 0 0 18px; }
    .ir-shared-dynamics > header, .ir-shared-dynamics-layout, .ir-shared-dynamics-layout.is-open, .ir-shared-node-detail-head, .ir-shared-node-analysis { grid-template-columns: 1fr; }
    .ir-shared-dynamics-layout li button { grid-template-columns: 76px minmax(0, 1fr) 18px; }
    .ir-shared-dynamics-layout li em, .ir-shared-dynamics-layout .ir-shared-event-copy { grid-column: 2; }
    .ir-shared-dynamics-layout li b { grid-column: 3; grid-row: 1; }
    .ir-shared-segmented-switch { justify-self: start; }
    .ir-v2-page-head > .ir-shared-segmented-switch { justify-self: start; }
    .ir-shared-node-cases dl { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    .ir-v2-hero { gap: 28px; padding: 34px 0 52px; border-radius: 0; }
    .ir-v2-hero h1 { font-size: clamp(48px, 15vw, 68px); line-height: .92; letter-spacing: -.065em; }
    .ir-v2-lead { font-size: 15px; }
    .ir-v2-scope-line { align-items: flex-start; flex-direction: column; }
    .ir-v2-scope-line i { display: none; }
    .ir-v2-breadcrumb { margin-top: 22px; }
    .ir-v2-page-head h2 { font-size: 38px; }
    .ir-v2-block-head h3 { font-size: 20px; line-height: 1.22; letter-spacing: -.03em; }
    .ir-v2-card h3 { font-size: 16px; line-height: 1.4; }
    .ir-v2-hero-pulse, .ir-v2-pulse-grid, .ir-v2-scorecard, .ir-v2-card-grid, .ir-v2-control-grid, .ir-v2-archetypes, .ir-v2-related, .ir-v2-axis-grid, .ir-v2-series-grid, .ir-v2-observatory-cards, .ir-v2-economics, .ir-v2-source-library > div { grid-template-columns: 1fr; }
    .ir-v2-hero-pulse article, .ir-v2-hero-pulse button { min-height: 134px; padding: 17px; border-right: 0; }
    .ir-v2-hero-pulse article:nth-last-child(2), .ir-v2-hero-pulse button:nth-last-child(2) { border-bottom: 1px solid var(--nv-line); }
    .ir-v2-block { padding: 18px 14px; border-radius: 18px; }
    .ir-v2-control-row { grid-template-columns: 1fr; }
    .ir-v2-watchlist article { grid-template-columns: 28px minmax(0, 1fr); }
    .ir-v2-watchlist article p, .ir-v2-watchlist article p:last-of-type, .ir-v2-watchlist footer { grid-column: 2; }
    .ir-v2-scenario { grid-template-columns: 1fr; }
    .ir-v2-scenario p, .ir-v2-scenario .ir-v2-detail { grid-column: auto; }
    .ir-v2-timeline::before { left: 70px; }
    .ir-v2-timeline article { grid-template-columns: 52px minmax(0, 1fr); gap: 38px; }
    .ir-v2-timeline article::before { left: 65px; }
    .ir-v2-drawer dl > div { grid-template-columns: 1fr; gap: 5px; }
    .ir-v2-drawer { right: 6px; width: calc(100vw - 12px); max-width: calc(100vw - 12px); }
    .ir-v2-drawer > header { min-height: 108px; padding: 22px 20px; }
    .ir-v2-drawer > .industry-drawer-body { padding: 20px; }
    .ir-shared-node-ledger { grid-template-columns: 1fr; }
    .ir-v2-recognition-path { grid-template-columns: 1fr auto; }
    .ir-v2-recognition-path strong { grid-column: 1 / -1; }
    .ir-shared-matrix-plot { min-height: 400px; margin-left: 58px; }
    .ir-shared-matrix-plot button { width: 31%; }
    .ir-shared-scenario > section > header { display: grid; }
    .ir-shared-scenario .industry-scenario-selector-row { grid-template-columns: 1fr; }
}
