/* Final presentation layer. Dark theme is intentional for the command centre. */
:root {
  --content-primary: #edf5ff; --content-secondary: #c0d0e0; --content-tertiary: #91a8c0;
  --border-primary: rgba(165,198,229,.18); --border-strong: rgba(165,198,229,.28);
  --grid: rgba(165,198,229,.12); --tooltip-bg: #142740;
  --bg-muted: #142b44; --bg-elevated: #152940;
}
.detail-shell { position:relative; }
.detail-topbar { display:flex; align-items:center; gap:16px; }
.detail-identity { flex:1; min-width:0; }
.detail-meta { flex-shrink:0; }
.detail-topbar .close-button { width:44px; height:44px; flex:0 0 44px; }
.detail-body { grid-template-columns:minmax(0,1fr); padding-right:56px; }
.detail-fullscreen { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-width:92px; flex-shrink:0; white-space:nowrap; border:1px solid var(--line); background:transparent; color:#bfd5e7; min-height:44px; padding:0 14px; border-radius:6px; font:inherit; cursor:pointer; font-size:14px; }
.detail-fullscreen:hover { border-color:var(--cyan); color:#edf8ff; }
.agent-drawer.detail-aside { position:absolute; right:12px; top:142px; bottom:12px; width:min(430px,calc(100% - 32px)); display:flex; flex-direction:column; gap:10px; z-index:32; transform:translateX(calc(100% + 24px)); transition:transform .22s ease,visibility .22s; visibility:hidden; background:#08192c; border:1px solid #2d506c; border-radius:10px; box-shadow:-14px 4px 40px rgba(0,0,0,.28); padding:10px; }
.agent-drawer.is-expanded { transform:translateX(0); visibility:visible; }
.agent-drawer .insight-card { flex:1; display:flex; flex-direction:column; min-height:0; }
.agent-drawer .insight-content { flex:1; min-height:0; overflow-y:auto; }
.agent-drawer .snapshot-card { flex:0 0 auto; }
.drawer-actions { display:flex; align-items:center; gap:8px; color:#91abc3; font-size:14px; min-height:36px; padding:0 4px; }
.drawer-actions>span { flex:1; }
.drawer-actions button { border:0; background:transparent; color:#bdd0e1; min-width:44px; height:36px; border-radius:6px; cursor:pointer; font:inherit; }
.drawer-actions button[aria-pressed=true] { color:#55daed; background:#163148; }
.drawer-actions #drawerClose { font-size:26px; }
.drawer-trigger { position:absolute; right:0; top:43%; z-index:31; width:42px; min-height:156px; border:1px solid #32566e; border-right:0; border-radius:10px 0 0 10px; background:#0b253b; color:#b6d8e9; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; cursor:pointer; font:600 14px/1.45 var(--font); }
.drawer-trigger>span:nth-child(2) { writing-mode:vertical-rl; letter-spacing:4px; }
.drawer-icon { color:#61dcee; font-size:20px; }
.drawer-trigger[aria-expanded=true] { opacity:0; pointer-events:none; }
.drawer-sensor { position:absolute; z-index:30; top:144px; right:0; bottom:0; width:12px; }
.tech-briefing .agent-drawer { bottom:52px; }
.tech-briefing .detail-topbar { height:76px; padding:0 26px; }
.detail-shell.tech-briefing { display:grid; grid-template-rows:76px 62px minmax(0,1fr) 44px; max-width:1920px; background:#07182b; }
.detail-shell.tech-briefing .detail-tabs { height:62px; padding:0 24px; gap:6px; overflow:visible; position:relative; z-index:36; }
.detail-shell.tech-briefing .detail-tabs>button { border:0; border-bottom:2px solid transparent; background:transparent; border-radius:0; padding:0 24px; height:62px; font-size:17px; letter-spacing:.4px; color:#93aec7; }
.detail-shell.tech-briefing .detail-tabs>button.is-active { background:rgba(36,193,218,.05); border-bottom-color:#55d9ef; color:#e5f6ff; }
.detail-shell.tech-briefing .detail-tabs>button:hover { color:#edf8ff; background:#0b253b; }
.detail-shell.tech-briefing .detail-body { height:auto; min-height:0; display:block; padding:18px 56px 16px 24px; overflow:hidden; }
.detail-shell.tech-briefing .detail-main { display:block; height:100%; min-height:0; overflow:hidden; }
.backup-wrap { margin-left:auto; position:relative; align-self:stretch; display:flex; align-items:center; }
.backup-button { min-height:44px; border:1px solid #27465f; border-radius:6px; background:transparent; color:#acc3d8; padding:0 18px; font:500 15px var(--font); cursor:pointer; }
.backup-button.is-active { color:#65dded; border-color:#377386; }
.backup-button span { margin-left:8px; font-size:18px; }
.backup-button { display:inline-flex; align-items:center; gap:8px; }
.backup-menu { position:absolute; right:0; top:calc(100% - 2px); width:264px; max-height:calc(100vh - 220px); overflow-y:auto; background:#11253d; border:1px solid #35526a; box-shadow:0 10px 30px #0005; border-radius:8px; padding:8px; z-index:38; }
.backup-menu button { display:block; width:100%; text-align:left; border:0; border-radius:5px; background:transparent; color:#d0dfed; font:15px var(--font); min-height:44px; padding:10px 14px; cursor:pointer; }
.backup-menu button:hover,.backup-menu button:focus-visible { background:#1a3853; color:#79e2f0; }
.backup-group { display:block; padding:10px 14px 6px; color:#92aac0; font-size:13px; letter-spacing:2px; }
.briefing-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid #203a52; padding:0 24px; color:#9fb5c9; font-size:13px; }
.briefing-nav { display:flex; align-items:center; gap:16px; color:#d3e2ed; font-variant-numeric:tabular-nums; }
.briefing-nav button { min-width:44px; height:40px; background:transparent; border:0; color:#bed9ed; font-size:22px; cursor:pointer; border-radius:6px; }
.briefing-nav button:hover:not(:disabled) { background:#18364e; }
.briefing-nav button:disabled { opacity:.28; cursor:default; }
.briefing-canvas { width:100%; height:100%; min-height:0; }
.exec-scene { height:100%; display:grid; grid-template-rows:auto auto auto minmax(0,1fr); gap:14px; min-height:0; }
.exec-scene.no-metrics { grid-template-rows:auto auto minmax(0,1fr); }
.exec-scene.survey-scene { grid-template-rows:auto minmax(0,1fr) auto; gap:18px; }
.exec-scene.relay-scene { grid-template-rows:auto minmax(0,1fr); }
.exec-hero { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:68px; }
.exec-eyebrow { margin:0 0 7px; color:#77afc6; font-size:12px; line-height:1.4; font-weight:600; letter-spacing:3px; }
.exec-hero h3 { margin:0; color:#f0f6ff; font-size:clamp(24px,1.75vw,32px); line-height:1.32; font-weight:650; letter-spacing:.4px; }
.exec-hero p:not(.exec-eyebrow) { margin:8px 0 0; color:#a8bdd0; font-size:14px; line-height:1.5; }
.exec-hero-action { border:1px solid #365569; background:#132d43; color:#cae4f2; min-height:44px; border-radius:6px; padding:0 14px; font:14px var(--font); cursor:pointer; white-space:nowrap; }
.exec-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; min-height:74px; border-top:1px solid #1d3b53; border-bottom:1px solid #1d3b53; padding:13px 0; }
.exec-metric { border-right:1px solid #294357; padding:0 22px; display:flex; flex-direction:column; gap:5px; }
.exec-metric:first-child { padding-left:0; }
.exec-metric:last-child { border:0; }
.metric-label { color:#a8c0d4; font-size:14px; }
.metric-value { display:flex; align-items:baseline; gap:6px; color:#eff8ff; font-size:32px; font-weight:600; font-variant-numeric:tabular-nums; letter-spacing:.1px; line-height:1.15; }
.metric-value.accent { color:#5cdaed; }
.metric-value small { color:#9cb6cd; font-size:15px; font-weight:450; }
.metric-context { color:#a3bdd2; font-size:13px; line-height:1.5; }
.metric-context b { color:#d4e4ee; font-weight:500; }
.exec-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:38px; flex-wrap:wrap; }
.exec-switch { display:inline-flex; flex-wrap:wrap; align-items:center; gap:4px; padding:3px; background:#061425; border:1px solid #294458; border-radius:7px; }
.exec-switch button { background:transparent; border:0; border-radius:4px; color:#aec4d5; min-height:36px; padding:0 14px; font:14px var(--font); cursor:pointer; }
.exec-switch button[aria-pressed=true] { background:#1b3d54; color:#87e4f1; }
.exec-select { max-width:320px; background:#0c2137; color:#d2e4f1; border:1px solid #32516a; min-height:42px; padding:0 12px; border-radius:6px; font:14px var(--font); }
.exec-timeline { display:flex; align-items:center; gap:10px; font-size:14px; color:#b4cce0; }
.exec-timeline label { color:#9ab8cd; }
.exec-timeline input { width:170px; accent-color:#50cbdc; cursor:pointer; min-height:32px; }
.timeline-position { min-width:72px; color:#e1f2fb; font-variant-numeric:tabular-nums; }
.timeline-play { width:38px; height:38px; border:1px solid #33536b; border-radius:6px; background:transparent; color:#90def0; font-size:14px; cursor:pointer; }
.exec-chart-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; min-height:0; }
.exec-chart-grid.overview-grid { grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); }
.exec-chart-card { position:relative; min-width:0; min-height:0; display:flex; flex-direction:column; padding:18px; background:#0c2036; border:1px solid #233e57; border-radius:8px; }
.exec-card-header { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:10px; min-height:26px; }
.exec-card-header h4 { margin:0; font-size:18px; font-weight:550; line-height:1.4; color:#e1effb; }
.exec-card-header span { color:#aac0d5; font-size:14px; white-space:nowrap; }
.exec-chart-card .legend { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; min-height:22px; color:#b5cadb; font-size:14px; }
.exec-chart-card .legend:empty { display:none; }
.exec-chart-card .legend-toggle { border:0; background:transparent; color:#c5d4e1; border-radius:5px; min-height:32px; padding:0 8px; display:inline-flex; align-items:center; cursor:pointer; font:14px var(--font); }
.exec-chart-card .legend-toggle[aria-pressed=false] { opacity:.35; }
.exec-chart-card .legend-toggle:hover { background:#18364d; }
.exec-chart-card .key-line { width:17px; margin-right:7px; border-top:3px solid; display:inline-block; vertical-align:middle; }
.exec-chart-card .key-sq { width:10px; height:10px; margin-right:7px; border-radius:1px; display:inline-block; vertical-align:middle; }
.exec-chart-card .passive-key { display:inline-flex; align-items:center; padding:0 8px; min-height:26px; }
.exec-chart-card .chart-wrap { flex:1; position:relative; width:100%; min-height:120px; height:100%; }
.exec-chart-card .chart-wrap>canvas { display:block; width:100%!important; height:100%!important; }
.exec-card-note { margin:10px 0 0; color:#a9c0d5; font-size:14px; line-height:1.5; min-height:20px; }
.exec-card-note strong { color:#d6e8f5; font-weight:550; }
.chart-tooltip { position:absolute; left:0; top:0; z-index:20; max-width:min(350px,calc(100% - 8px)); padding:12px 14px; border:1px solid #486984; border-radius:8px; background:#142740; box-shadow:0 4px 18px #0005; color:#f1f7ff; font:14px/1.65 var(--font); pointer-events:none; opacity:0; visibility:hidden; }
.chart-tooltip[data-visible=true] { opacity:1; visibility:visible; }
.tip-title { font-size:15px; font-weight:600; margin-bottom:6px; overflow-wrap:anywhere; }
.tip-row { display:grid; grid-template-columns:8px minmax(0,1fr) auto; align-items:center; gap:8px; min-width:170px; }
.tip-key { height:8px; width:8px; border-radius:1px; }
.tip-label { color:#c5d8e9; overflow-wrap:anywhere; }
.tip-value { color:#eef8ff; font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right; font-weight:550; }
.tip-extra { border-top:1px solid #3a546c; margin-top:8px; padding-top:6px; color:#bdd3e4; font-size:13px; overflow-wrap:anywhere; }
.exec-survey-card { padding:24px; display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:16px; background:#0c2036; border:1px solid #2b475f; border-radius:8px; min-height:0; min-width:0; }
.exec-survey-card .survey-kicker { display:block; color:#71d3e2; font-size:14px; letter-spacing:2px; font-weight:550; margin-bottom:9px; }
.exec-survey-card.risk .survey-kicker { color:#c4b1eb; }
.exec-survey-card h4 { margin:0; font-size:24px; font-weight:600; line-height:1.4; color:#e5f3fd; }
.exec-survey-card .exec-card-header h4 { font-size:18px; font-weight:500; }
.exec-survey-card header p { margin:8px 0 0; color:#a9bfd2; font-size:14px; line-height:1.5; }
.exec-survey-card .exec-chart-card { padding:0; background:transparent; border:0; border-radius:0; }
.survey-action { margin:0; padding:15px 16px; background:#102b42; color:#c5dceb; border-left:3px solid #51cadd; font-size:15px; line-height:1.65; }
.risk .survey-action { background:#202844; border-left-color:#bba0e7; }
.survey-action strong { color:#e6f2fc; font-weight:600; }
.exec-relay-strip { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; background:#102b41; border:1px solid #315169; border-radius:7px; padding:12px 18px; color:#d1e4ef; font-size:15px; }
.exec-relay-strip b { color:#6adced; font-weight:600; }
.exec-relay-strip span { color:#b4cce0; font-size:14px; }
.exec-relay-strip button { background:transparent; color:#9be7f0; border:0; font:14px var(--font); cursor:pointer; min-height:32px; }
.exec-relay { min-height:0; overflow-y:auto; padding:4px 0; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:24px; }
.relay-path { background:#0d2238; border:1px solid #28445d; padding:24px; border-radius:8px; display:flex; flex-direction:column; gap:24px; }
.relay-path h4,.relay-qa h4 { margin:0 0 8px; font-size:22px; font-weight:550; color:#e0f0fa; }
.relay-steps { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid #39536b; padding-bottom:22px; gap:12px; }
.relay-step { position:relative; padding:18px 12px; background:#153349; border-top:3px solid #4dc8da; }
.relay-step:not(:last-child):after { content:"→"; color:#68d0df; position:absolute; right:-14px; top:20px; z-index:1; }
.relay-step b { font-size:19px; color:#d9eff9; }
.relay-step span { display:block; font-size:14px; color:#a6c4d9; line-height:1.7; margin-top:10px; }
.relay-thread { border-left:3px solid #70d3e1; padding:0 0 0 18px; color:#bad3e6; font-size:16px; line-height:1.8; }
.relay-thread.purple { border-color:#c3abec; }
.relay-thread strong { display:block; font-size:21px; color:#e4f2fb; }
.relay-policy { font-size:15px; line-height:1.8; color:#bad2e5; margin:0; }
.relay-qa { display:flex; flex-direction:column; gap:16px; }
.relay-qa details { background:#0d2238; border:1px solid #2e4d64; border-radius:8px; padding:16px 20px; }
.relay-qa summary { color:#d6e7f5; font-size:17px; line-height:1.6; cursor:pointer; min-height:44px; }
.relay-qa p { font-size:15px; line-height:1.9; color:#b4cadd; margin:12px 0 0; }
.tech-briefing #methodView { height:100%; overflow-y:auto; }
.tech-briefing #dataExplorer { height:100%; }
.tech-briefing .data-toolbar { min-height:58px; }
.tech-briefing .method-grid { gap:18px; }
.tech-briefing .method-card { padding:20px; }
.tech-briefing .method-card p { font-size:15px; line-height:1.8; }
.tech-briefing .data-table td,.tech-briefing .data-table th { font-size:14px; }
.tech-briefing .control-input,.tech-briefing .control-select { min-height:44px; font-size:14px; }
.tech-briefing .detail-main.legacy-layout { display:grid; grid-template-rows:48px minmax(0,1.3fr) minmax(0,1fr); }
.tech-briefing .detail-main.legacy-layout.briefing-single { grid-template-rows:48px minmax(0,1fr); }
.tech-briefing .detail-main.legacy-layout:has(#dataExplorer:not([hidden])),.tech-briefing .detail-main.legacy-layout:has(#methodView:not([hidden])) { display:block; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid #85dded; outline-offset:3px; }
[hidden] { display:none!important; }
@media(min-width:1600px) {
  .exec-scene { gap:18px; }
  .exec-metrics { padding:18px 0; }
  .metric-value { font-size:38px; }
  .exec-chart-card { padding:22px; }
  .exec-card-header h4 { font-size:20px; }
  .exec-card-header span,.exec-card-note { font-size:15px; }
  .exec-survey-card h4 { font-size:28px; }
  .exec-survey-card .exec-card-header h4 { font-size:19px; }
  .exec-survey-card header p { font-size:16px; }
  .exec-relay-strip,.survey-action { font-size:17px; }
}
@media(min-width:821px) and (max-height:850px) {
  .detail-shell.tech-briefing { grid-template-rows:64px 54px minmax(0,1fr) 40px; }
  .tech-briefing .detail-topbar { height:64px; padding:0 20px; }
  .detail-shell.tech-briefing .detail-tabs { height:54px; }
  .detail-shell.tech-briefing .detail-tabs>button { height:54px; padding:0 20px; font-size:16px; }
  .detail-shell.tech-briefing .detail-body { padding:12px 56px 10px 20px; }
  .exec-scene { gap:10px; }
  .exec-hero { min-height:52px; }
  .exec-eyebrow { margin-bottom:4px; font-size:11px; }
  .exec-hero h3 { font-size:24px; }
  .exec-hero p:not(.exec-eyebrow) { margin-top:5px; }
  .exec-metrics { padding:10px 0; min-height:72px; }
  .metric-value { font-size:28px; }
  .exec-chart-card { padding:14px; }
  .exec-card-header { margin-bottom:5px; }
  .exec-card-header h4 { font-size:16px; }
  .exec-chart-card .legend { margin-bottom:5px; }
  .exec-card-note { margin-top:5px; font-size:13px; }
  .exec-survey-card { padding:18px; gap:12px; }
  .exec-survey-card h4 { font-size:22px; }
  .exec-survey-card .exec-card-header h4 { font-size:16px; }
  .exec-survey-card header p { font-size:13px; }
  .survey-action { padding:10px 14px; font-size:14px; }
  .exec-relay-strip { padding:8px 14px; font-size:14px; }
  .exec-scene.dense-industry { grid-template-rows:auto auto minmax(0,1fr); }
  .dense-industry .exec-metrics,.dense-industry .exec-card-note { display:none; }
}
@media(max-width:1050px) and (min-width:821px) {
  .detail-shell.tech-briefing .detail-tabs { padding:0 12px; gap:0; }
  .detail-shell.tech-briefing .detail-tabs>button { padding:0 12px; font-size:15px; }
  .backup-button { padding:0 12px; }
  .exec-timeline input { width:100px; }
  .exec-chart-grid { gap:14px; }
  .exec-chart-card { padding:12px; }
}
@media(min-width:821px) and (max-height:760px) {
  .exec-scene.survey-scene { gap:10px; }
  .exec-survey-card { padding:16px; gap:8px; }
  .exec-survey-card .survey-kicker,.exec-survey-card header p { display:none; }
  .government-scene .exec-card-note { display:none; }
}
@media(max-width:820px) {
  .detail-overlay { padding:0; overflow-y:auto; display:block; backdrop-filter:none; }
  .detail-body { padding-right:56px; }
  .detail-shell.tech-briefing { width:100%; height:auto; min-height:100vh; display:block; border-radius:0; overflow:visible; }
  .tech-briefing .detail-topbar { height:auto; min-height:76px; padding:14px 16px; position:sticky; top:0; z-index:42; background:#081a2d; gap:12px; flex-wrap:wrap; }
  .tech-briefing .detail-identity { gap:10px; flex:1; }
  .tech-briefing .detail-meta { display:none; }
  .detail-topbar { flex-wrap:wrap; }
  .detail-topbar .detail-meta { order:3; width:100%; }
  .detail-fullscreen { display:none; }
  .tech-briefing .detail-topbar h2 { font-size:23px; }
  .detail-shell.tech-briefing .detail-tabs { height:auto; padding:8px 12px; display:flex; flex-wrap:wrap; gap:4px; background:#091c30; }
  .detail-shell.tech-briefing .detail-tabs>button { min-height:44px; height:44px; font-size:14px; padding:0 12px; }
  .backup-wrap { margin-left:0; align-self:center; }
  .backup-button { min-height:42px; padding:0 12px; font-size:14px; }
  .backup-menu { right:auto; left:0; top:100%; max-height:65vh; width:min(280px,calc(100vw - 24px)); }
  .detail-shell.tech-briefing .detail-body { padding:18px 56px 20px 16px; overflow:visible; height:auto; }
  .detail-shell.tech-briefing .detail-main { height:auto; min-height:0; overflow:visible; }
  .briefing-canvas { height:auto; }
  .exec-scene,.exec-scene.no-metrics,.exec-scene.survey-scene,.exec-scene.relay-scene { height:auto; display:flex; flex-direction:column; gap:18px; }
  .exec-hero { align-items:flex-start; gap:12px; }
  .exec-hero h3 { font-size:24px; line-height:1.45; }
  .exec-eyebrow { font-size:11px; letter-spacing:2px; }
  .exec-hero p:not(.exec-eyebrow) { font-size:14px; }
  .exec-hero-action { display:none; }
  .exec-metrics { grid-template-columns:1fr; gap:14px; padding:18px 0; }
  .exec-metric,.exec-metric:first-child { padding:0; border:0; }
  .exec-metric { display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:4px 12px; }
  .metric-value { font-size:27px; }
  .metric-context { grid-column:1/-1; font-size:14px; }
  .metric-value small { font-size:14px; }
  .exec-toolbar { align-items:flex-start; flex-direction:column; gap:12px; }
  .exec-switch { max-width:100%; }
  .exec-switch button { min-height:40px; font-size:14px; padding:0 10px; }
  .exec-timeline { width:100%; font-size:14px; gap:8px; flex-wrap:wrap; }
  .exec-timeline input { flex:1; min-width:70px; width:auto; }
  .exec-select { width:100%; max-width:100%; }
  .exec-chart-grid,.exec-chart-grid.overview-grid { display:flex; flex-direction:column; gap:18px; }
  .exec-chart-card { padding:14px; min-height:360px; }
  .exec-card-header { flex-wrap:wrap; gap:4px; }
  .exec-card-header h4 { font-size:17px; }
  .exec-card-header span { font-size:14px; }
  .exec-chart-card .chart-wrap { height:270px; min-height:270px; flex:0 0 auto; }
  .exec-card-note { font-size:14px; }
  .exec-chart-card .legend-toggle { min-height:40px; font-size:14px; }
  .exec-survey-card { padding:18px 14px; display:flex; flex-direction:column; gap:14px; }
  .exec-survey-card h4 { font-size:23px; line-height:1.5; }
  .exec-survey-card .exec-card-header h4 { font-size:17px; }
  .exec-survey-card .exec-chart-card { min-height:300px; }
  .exec-survey-card .exec-chart-card .chart-wrap { min-height:270px; }
  .survey-action { font-size:15px; padding:12px; }
  .exec-relay-strip { padding:14px; flex-direction:column; align-items:flex-start; gap:8px; line-height:1.7; }
  .exec-relay { display:flex; flex-direction:column; overflow:visible; }
  .relay-path { padding:18px; }
  .relay-steps { grid-template-columns:1fr 1fr; gap:16px; }
  .relay-step b { font-size:18px; }
  .relay-step:nth-child(2):after { display:none; }
  .relay-qa summary { font-size:16px; }
  .briefing-footer { padding:12px 16px; font-size:13px; flex-wrap:wrap; }
  .briefing-nav { margin-left:auto; }
  .drawer-sensor { display:none; }
  .drawer-trigger { position:fixed; right:0; top:auto; bottom:26px; width:44px; min-height:132px; }
  .agent-drawer.detail-aside,.tech-briefing .agent-drawer { position:fixed; top:86px; bottom:16px; right:8px; width:min(410px,calc(100vw - 24px)); z-index:51; }
  .tech-briefing .detail-main.legacy-layout { min-height:930px; grid-template-rows:88px 420px 380px; }
  .tech-briefing .detail-main.legacy-layout:has(#dataExplorer:not([hidden])),.tech-briefing .detail-main.legacy-layout:has(#methodView:not([hidden])) { min-height:650px; }
  .tech-briefing #methodView { overflow:visible; }
  .tech-briefing .method-grid { grid-template-columns:1fr; }
  .tech-briefing .method-card.wide { grid-column:auto; }
  .tech-briefing #dataExplorer { min-height:680px; }
  .chart-tooltip { padding:10px; max-width:calc(100% - 8px); font-size:13px; }
  .tip-row { min-width:140px; }
}
@media(max-width:359px) {
  .detail-shell.tech-briefing .detail-tabs>button { padding:0 8px; }
  .exec-hero h3 { font-size:22px; }
  .exec-chart-card { padding:10px; }
  .exec-survey-card { padding:16px 10px; }
  .metric-value { font-size:24px; }
}
@media(prefers-reduced-motion:reduce) {
  .agent-drawer.detail-aside,.detail-shell { transition:none; }
}
/* ---------- 图表放大（chart-zoom.js） ---------- */
.cz-open { flex:none; width:30px; height:30px; display:inline-grid; place-items:center; padding:0; border:1px solid rgba(120,180,225,.28); border-radius:6px; background:rgba(14,40,64,.6); color:#9fc3dc; font-size:16px; line-height:1; cursor:zoom-in; transition:color .15s,border-color .15s,background .15s; }
.cz-open:hover,.cz-open:focus-visible { color:#eaf8ff; border-color:var(--cyan); background:#123352; }
.exec-card-header > span { margin-left:auto; }
.exec-card-header .cz-open { align-self:center; }
.exec-chart-card .chart-wrap { cursor:zoom-in; }
.trend-mini-card header .cz-open { width:24px; height:24px; font-size:13px; margin-left:6px; align-self:center; }
.cz-hint { position:fixed; z-index:1500; display:none; align-items:center; gap:6px; height:30px; padding:0 12px; border:1px solid rgba(34,211,238,.45); border-radius:15px; background:rgba(8,28,48,.94); color:#cdeffc; font:13px var(--font); cursor:zoom-in; box-shadow:0 6px 18px rgba(0,0,0,.35); }
.cz-hint.is-on { display:inline-flex; }
.cz-hint:hover { border-color:var(--cyan); color:#fff; }
.cz-overlay { position:fixed; inset:0; z-index:2000; display:grid; place-items:center; padding:24px; }
.cz-overlay[hidden] { display:none; }
.cz-backdrop { position:absolute; inset:0; background:rgba(1,7,18,.82); backdrop-filter:blur(6px); }
.cz-shell { position:relative; width:min(1720px,100%); height:min(1000px,100%); display:grid; grid-template-rows:auto minmax(0,1fr) auto; background:#081a2d; border:1px solid #2d506c; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.5); overflow:hidden; animation:czIn .18s ease; }
@keyframes czIn { from { opacity:0; transform:scale(.975); } }
.cz-head { display:flex; align-items:flex-start; gap:16px; padding:16px 22px 12px; border-bottom:1px solid #1d3a54; }
.cz-heading { flex:1; min-width:0; }
.cz-kicker { margin:0 0 4px; color:#5fd0e6; font-size:13px; letter-spacing:.14em; }
.cz-head h3 { margin:0; font-size:24px; font-weight:600; color:#eef7ff; line-height:1.3; }
.cz-sub { margin:6px 0 0; color:#a9c0d5; font-size:14px; line-height:1.5; }
.cz-tools { display:flex; gap:10px; align-items:center; flex-shrink:0; }
.cz-close { width:40px; height:40px; border:1px solid #35607f; border-radius:6px; background:transparent; color:#cfe3f2; font-size:24px; line-height:1; cursor:pointer; }
.cz-close:hover { border-color:var(--cyan); color:#fff; }
.cz-body { min-height:0; display:grid; grid-template-columns:minmax(0,1fr) 360px; }
.cz-stage { position:relative; min-width:0; min-height:0; padding:14px 18px 10px; display:flex; flex-direction:column; }
.cz-stage .exec-chart-card { flex:1; padding:0; background:transparent; border:0; border-radius:0; }
.cz-stage .exec-card-header,.cz-stage .exec-card-note { display:none; }
.cz-stage .exec-chart-card .legend,.cz-stage .exec-chart-card .legend-toggle { font-size:15px; }
.cz-stage .chart-wrap { cursor:pointer; }
.cz-plot { flex:1; min-height:0; }
.cz-side { min-height:0; overflow-y:auto; padding:16px 18px 20px; border-left:1px solid #1d3a54; background:#0a1e33; }
.cz-block + .cz-block { margin-top:18px; }
.cz-block h4 { margin:0 0 10px; color:#dbeaf6; font-size:15px; font-weight:600; letter-spacing:.02em; }
.cz-block h4 small { margin-left:6px; color:#8fa9c0; font-weight:400; font-size:13px; }
.cz-series { padding:9px 12px; border:1px solid #213f59; border-radius:8px; background:#0c2239; }
.cz-series + .cz-series { margin-top:8px; }
.cz-series header { display:flex; align-items:center; gap:8px; color:#e6f2fb; font-size:15px; font-weight:600; }
.cz-series header + .cz-kv { margin-top:6px; }
.cz-dot { width:10px; height:10px; border-radius:50%; flex:none; }
.cz-pin-val { margin-left:auto; color:#fff; font-size:17px; font-variant-numeric:tabular-nums; }
.cz-pin-label { margin:0 0 8px; color:#6fe3f4; font-size:18px; font-weight:600; }
.cz-kv { display:grid; grid-template-columns:auto 1fr; gap:3px 12px; margin:0; font-size:14px; }
.cz-kv dt { color:#8fa9c0; }
.cz-kv dd { margin:0; color:#eaf4fc; font-variant-numeric:tabular-nums; text-align:right; }
.cz-kv dd small { color:#8fa9c0; font-size:13px; margin-left:6px; }
.cz-kv-wide { padding:10px 12px; border:1px solid #213f59; border-radius:8px; background:#0c2239; margin-bottom:10px; }
.cz-up { color:#5fe0b0; } .cz-down { color:#ff8f9f; }
.cz-note { margin:8px 0 0; color:#b6cadb; font-size:14px; line-height:1.6; }
.cz-pin { padding-bottom:14px; border-bottom:1px solid #1d3a54; }
.cz-pin[hidden] + .cz-block { margin-top:0; }
.cz-table { width:100%; border-collapse:collapse; margin-top:8px; font-size:14px; font-variant-numeric:tabular-nums; }
.cz-table th,.cz-table td { padding:6px 6px; border-bottom:1px solid #1b3650; text-align:right; white-space:nowrap; }
.cz-table th:first-child { text-align:left; white-space:normal; color:#c8d9e7; font-weight:500; }
.cz-table thead th { color:#8fa9c0; font-weight:500; font-size:13px; }
.cz-table tbody tr { cursor:pointer; }
.cz-table tbody tr:hover { background:rgba(85,212,234,.06); }
.cz-table td { color:#e6f2fb; }
.cz-table td.is-max { color:#6fe3f4; font-weight:600; }
.cz-table tr.is-pin { background:rgba(85,212,234,.14); }
.cz-foot { padding:9px 22px; border-top:1px solid #1d3a54; color:#8fa9c0; font-size:13px; }
@media (prefers-reduced-motion: reduce) { .cz-shell { animation:none; } }
@media (max-width: 980px) {
  .cz-overlay { padding:8px; }
  .cz-shell { height:100%; }
  .cz-head { padding:12px 14px 10px; }
  .cz-head h3 { font-size:19px; }
  .cz-body { grid-template-columns:minmax(0,1fr); grid-template-rows:62vh auto; overflow-y:auto; }
  .cz-side { border-left:0; border-top:1px solid #1d3a54; overflow:visible; }
  .cz-foot { display:none; }
}

/* ---------- 指标权重页（app.js weightPanel / weightFlow）：方法卡 + 权重流向图 ---------- */
/* “指标体系”下两个按钮改为两个独立子页：选中哪个，哪个整屏显示 */
@media (min-width: 821px) {
  .detail-main:has(#detailChart > .wp) { grid-template-rows:auto minmax(0,1fr); }
  .detail-main.focus-primary:has(#detailChart > .wp) #detailChart2,
  .detail-main.focus-secondary:has(#detailChart > .wp) #detailChart { display:none; }
}
.detail-chart:has(> .wp) { container:wpbox / size; }
.detail-chart .wp { height:100%; display:grid; grid-template-columns:minmax(280px,21%) minmax(0,1fr); gap:26px; padding:18px 22px 14px; color:#dcebf6; overflow:hidden; }
.wp-method { min-height:0; display:flex; flex-direction:column; gap:12px; padding-right:24px; border-right:1px solid rgba(100,172,222,.16); overflow:hidden; }
.wp-kicker { margin:0; color:var(--wp-accent); font-size:13px; letter-spacing:.12em; }
.wp-method h3 { margin:0; font-size:21px; font-weight:600; line-height:1.3; color:#eef7ff; }
.wp-steps { list-style:none; margin:4px 0 0; padding:0; display:grid; gap:10px; counter-reset:wp; }
.wp-steps li { position:relative; display:grid; grid-template-columns:24px minmax(0,1fr); column-gap:10px; row-gap:1px; }
.wp-steps li::before { counter-increment:wp; content:counter(wp); grid-row:span 2; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-size:13px; font-weight:700; color:#04131f; background:var(--wp-accent); }
.wp-steps li:not(:last-child)::after { content:""; position:absolute; left:11.5px; top:27px; bottom:-9px; width:1px; background:color-mix(in srgb,var(--wp-accent) 45%,transparent); }
.wp-steps b { font-size:14px; font-weight:600; color:#eaf5fd; line-height:24px; }
.wp-steps span { font-size:13px; line-height:1.5; color:#a9c0d5; }
.wp-formula { display:inline-block; margin-top:2px; padding:2px 8px; border-radius:4px; background:rgba(255,255,255,.07); color:#f2fbff; font-style:normal; font-family:"Cambria Math","Times New Roman",serif; font-size:15px; white-space:nowrap; }
.wp-insight { margin:4px 0 0; padding:10px 12px; border-left:3px solid var(--wp-accent); border-radius:0 6px 6px 0; background:rgba(255,255,255,.04); font-size:14px; line-height:1.65; color:#c6d8e7; }
.wp-insight b { color:#f2fbff; font-weight:600; }
.wp-dims { margin-top:auto; display:grid; gap:7px; }
.wp-dims div { display:grid; grid-template-columns:12px minmax(0,1fr) auto; gap:8px; align-items:center; font-size:14px; color:#cfe0ee; }
.wp-dims i { width:12px; height:12px; border-radius:3px; background:var(--c); }
.wp-dims b { color:var(--c); font-weight:600; font-variant-numeric:tabular-nums; }
.wp-flow { position:relative; min-width:0; min-height:0; }
.wp-flow svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif; }
.wf-link { fill-opacity:.32; transition:fill-opacity .15s; }
.wp-flow.is-hover .wf-link { fill-opacity:.07; }
.wp-flow.is-hover .wf-link.on { fill-opacity:.7; }
.wf-node { transition:opacity .15s; }
.wp-flow.is-hover .wf-node:not(.on) { opacity:.32; }
.wf-node text { paint-order:stroke; stroke:#08192c; stroke-width:4px; stroke-linejoin:round; }
/* 矮屏：方法卡只留步骤名与公式 */
@container wpbox (max-height: 560px) {
  .detail-chart .wp { gap:18px; padding:12px 16px 10px; }
  .wp-method { gap:8px; padding-right:16px; }
  .wp-kicker { display:none; }
  .wp-method h3 { font-size:18px; }
  .wp-steps { gap:4px; margin:0; }
  .wp-steps li:not(:last-child)::after { display:none; }
  .wp-steps li:not(.has-formula) span { display:none; }
  .wp-insight { font-size:13px; padding:7px 10px; line-height:1.55; }
  .wp-dims { gap:4px; }
  .wp-dims div { font-size:13px; }
}
@media (max-width: 820px) {
  .detail-chart .wp { display:block; overflow-y:auto; padding:14px; }
  .wp-method { border-right:0; padding:0 0 14px; margin-bottom:12px; border-bottom:1px solid rgba(100,172,222,.16); overflow:visible; }
  .wp-flow { height:520px; }
}
/* 底层数据表：小数位切换按钮 */
.data-toolbar-right { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.digits-toggle[aria-pressed=true] { color:#eaf9ff; border-color:rgba(34,211,238,.5); background:rgba(34,211,238,.14); }
