:root {
  --paper:#E4E9F0;
  --panel:#E4E9F0;
  --ink:#29364B;
  --muted:#58677D;
  --accent:#667eea;
  --accent-ink:#4258B8;
  --shadow-dark:#BEC8D4;
  --shadow-light:#FFFFFF;
  --raised:5px 5px 14px #c8d1dc,-5px -5px 14px #f8fbff;
  --raised-small:3px 3px 10px #ccd5df,-3px -3px 10px #f7faff;
  --pressed:inset 3px 3px 8px #cbd4de,inset -3px -3px 8px #f8fbff;
  --up:#19705C;
  --down:#AC454F;
  --amber:#8C611D;
  --line:rgba(88,103,125,.13);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--paper); }
body { margin:0; background:var(--paper); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; font-size:16px; }
button,select,input { font:inherit; }

.sidebar { position:fixed; inset:0 auto 0 0; width:260px; padding:38px 34px 28px; background:var(--paper); color:var(--ink); box-shadow:6px 0 18px rgba(148,163,184,.16); z-index:5; }
.brand { padding:14px 6px 26px; }
.brand strong { display:block; font-size:1.13rem; font-weight:780; letter-spacing:-.02em; }
.brand small { display:block; margin-top:9px; color:var(--muted); font-size:.72rem; font-weight:520; }
nav { display:grid; gap:10px; margin:6px 0 42px; }
.nav-link { display:block; min-height:48px; padding:14px 15px; border-radius:14px; color:var(--muted); text-decoration:none; font-weight:680; transition:box-shadow .16s ease,color .16s ease; }
.nav-link::before { content:""; display:inline-block; width:13px; height:13px; margin-right:11px; border:1.5px solid #8B98A9; border-radius:50%; vertical-align:-1px; }
.nav-link:hover { color:var(--accent-ink); box-shadow:var(--raised-small); }
.nav-link.active { color:var(--accent-ink); box-shadow:var(--pressed); }
.nav-link.active::before { border:5px solid var(--accent); }
.scope-panel { padding:19px; border:0; border-radius:16px; background:var(--paper); box-shadow:var(--pressed); }
.scope-title { margin:0 0 12px; color:var(--muted); font-size:.67rem; font-weight:780; letter-spacing:.06em; }
.scope-panel dl { margin:0; }
.scope-panel dl div { display:flex; justify-content:space-between; gap:12px; padding:5px 0; font-size:.74rem; }
.scope-panel dt { color:var(--muted); font-weight:680; }
.scope-panel dd { margin:0; color:var(--ink); text-align:right; }
.readonly-note { margin:20px 5px 0; color:#748297; font-size:.69rem; line-height:1.65; }

main { margin-left:260px; min-height:100vh; }
.mobile-header { display:none; }
.page-section { width:min(1520px,calc(100% - 72px)); margin:0 auto; padding:48px 0 10px; scroll-margin-top:18px; }
.page-head { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:30px; }
.eyebrow { margin:0 0 13px; color:var(--accent-ink); font-size:.66rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
h1,h2,p { letter-spacing:0; }
h1 { margin:0; color:var(--ink); font-size:2rem; line-height:1.22; letter-spacing:-.03em; }
h2 { margin:0; color:var(--ink); font-size:1.12rem; letter-spacing:-.015em; }
.meta { margin:12px 0 0; color:var(--muted); font-size:.78rem; line-height:1.65; }
.updated { display:flex; align-items:center; gap:7px; padding:11px 16px; background:var(--paper); border:0; border-radius:20px; color:var(--muted); box-shadow:var(--raised-small); font-size:.72rem; white-space:nowrap; }
.updated span:first-child { width:7px; height:7px; border-radius:50%; background:var(--up); }

.task-health-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 0 26px; padding:10px; border-radius:16px; box-shadow:var(--pressed); }
.task-health-grid article { display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:4px 12px; min-width:0; padding:10px 12px; }
.task-health-grid span { color:var(--muted); font-size:.69rem; font-weight:680; }
.task-health-grid strong { color:var(--ink); font-size:.88rem; text-align:right; font-variant-numeric:tabular-nums; }
.task-health-grid small { grid-column:1 / -1; color:var(--muted); font-size:.64rem; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.workspace-label { margin:0 0 9px; color:var(--muted); font-size:.7rem; font-weight:720; }
.workspace-tabs { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:38px; padding:7px; border-radius:16px; box-shadow:var(--raised-small); }
.workspace-tabs a { min-height:46px; padding:13px 14px; border-radius:12px; color:var(--muted); text-align:center; text-decoration:none; font-size:.86rem; }
.workspace-tabs a:hover { color:var(--accent-ink); }
.workspace-tabs a.active { color:var(--accent-ink); box-shadow:var(--pressed); font-weight:720; }

.kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin-bottom:28px; }
.kpi { min-height:136px; padding:21px; background:var(--paper); border-radius:18px; box-shadow:var(--raised); }
.kpi p,.panel-label { margin:0; color:var(--muted); font-size:.76rem; font-weight:690; }
.kpi strong { display:block; margin:11px 0 7px; font-size:1.86rem; font-weight:780; line-height:1.05; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.kpi small { color:var(--muted); font-size:.69rem; line-height:1.65; }
.positive { color:var(--up)!important; }
.negative { color:var(--down)!important; }

.filter-bar,.matrix-filters,.movement-filters,.correlation-filters,.sif-filters { display:grid; gap:18px; padding:20px; border:0; border-radius:18px; background:var(--paper); box-shadow:var(--raised); }
.filter-bar { grid-template-columns:1.35fr 1.3fr 1.05fr; }
.matrix-filters { grid-template-columns:minmax(260px,1.5fr) minmax(220px,1fr); margin:0 0 20px; }
.movement-filters { grid-template-columns:minmax(320px,1fr) minmax(360px,1.5fr); margin:0 0 14px; }
.correlation-filters { grid-template-columns:repeat(3,minmax(0,1fr)); margin:0 0 22px; }
.sif-filters { grid-template-columns:repeat(3,minmax(0,1fr)); margin:0 0 22px; }
.filter-field { position:relative; display:grid; align-content:start; gap:8px; min-width:0; }
.filter-label { display:block; min-height:22px; color:var(--muted); font-size:.76rem; font-weight:680; line-height:22px; }
select,.product-picker>button,.matrix-filters input,.matrix-filters select,.movement-filters input { width:100%; min-height:46px; padding:10px 13px; border:0; border-radius:12px; background:var(--paper); color:var(--ink); box-shadow:var(--raised-small); outline:none; text-align:left; }
select:focus,.product-picker>button:focus,.matrix-filters input:focus,.movement-filters input:focus { box-shadow:var(--pressed); outline:2px solid var(--accent); outline-offset:3px; }
.product-picker>button::after { content:"⌄"; float:right; color:var(--muted); font-weight:800; }
.product-menu { position:absolute; top:76px; left:0; right:0; max-height:290px; overflow:auto; padding:10px; border:0; border-radius:14px; background:var(--paper); box-shadow:10px 10px 24px rgba(133,149,169,.32),-8px -8px 20px rgba(255,255,255,.9); z-index:8; }
.product-menu label { display:flex; align-items:flex-start; gap:9px; padding:9px; border-radius:10px; color:var(--ink); font-size:.82rem; line-height:1.45; }
.product-menu label:hover { box-shadow:var(--pressed); }
.product-menu input { margin-top:3px; accent-color:var(--accent); }
.segments { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; padding:5px; border-radius:14px; box-shadow:var(--pressed); }
.segments button { min-height:36px; border:0; border-radius:10px; background:transparent; color:var(--muted); font-size:.78rem; white-space:nowrap; }
.segments button.active { color:var(--accent-ink); background:var(--paper); box-shadow:var(--raised-small); font-weight:720; }
.task-segments { grid-template-columns:repeat(3,1fr); }
.task-segments button { min-height:44px; }
.movement-search input { height:52px; min-height:52px; }
.movement-count { margin:0 0 15px; color:var(--muted); font-size:.71rem; }
.selection-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; margin:24px 0 0; padding:8px; border-radius:16px; box-shadow:var(--pressed); }
.selection-kpis article { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; }
.selection-kpis span { color:var(--muted); font-size:.7rem; font-weight:680; }
.selection-kpis strong { color:var(--ink); font-size:.9rem; font-variant-numeric:tabular-nums; }
.data-notice { margin:0 0 18px; padding:16px 18px; border-radius:15px; color:var(--muted); background:var(--paper); box-shadow:var(--pressed); font-size:.76rem; line-height:1.65; }
.data-notice strong { color:var(--ink); }
.correlation-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.correlation-kpis article { min-width:0; padding:17px 18px; border-radius:16px; background:var(--paper); box-shadow:var(--raised-small); }
.correlation-kpis span,.correlation-kpis small { display:block; color:var(--muted); font-size:.68rem; }
.correlation-kpis strong { display:block; margin:8px 0 5px; color:var(--ink); font-size:1.35rem; font-variant-numeric:tabular-nums; }
.correlation-kpis small { min-height:1.35em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.empty-card { margin:24px 0 4px; padding:34px 28px; border-radius:18px; background:var(--paper); box-shadow:var(--pressed); text-align:center; }
.empty-card strong,.empty-card span { display:block; }
.empty-card strong { margin-bottom:9px; color:var(--ink); font-size:1rem; }
.empty-card span { max-width:720px; margin:auto; color:var(--muted); font-size:.76rem; line-height:1.75; }

.section-head { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin:38px 0 14px; }
.section-head p { margin:0; color:var(--muted); font-size:.73rem; }
.trend-grid { display:grid; grid-template-columns:minmax(0,2.1fr) minmax(320px,1fr); gap:24px; }
.chart-panel,.snapshot-panel { min-width:0; }
.chart-panel { height:440px; padding:18px; border:0; border-radius:20px; background:var(--paper); box-shadow:var(--raised); }
.chart { position:relative; width:100%; height:360px; }
.chart svg { width:100%; height:100%; display:block; }
.chart-legend { display:flex; flex-wrap:wrap; gap:8px 18px; min-height:42px; color:var(--muted); font-size:.74rem; }
.chart-legend span { display:flex; align-items:center; gap:7px; }
.chart-legend i { width:18px; height:3px; border-radius:2px; }
.rank-hover-capture { cursor:crosshair; pointer-events:all; }
.rank-point { transition:r .12s ease,opacity .12s ease; }
.rank-tooltip { position:absolute; top:10px; z-index:6; width:min(370px,calc(100% - 24px)); padding:13px 15px; border:1px solid rgba(88,103,125,.24); border-radius:12px; background:rgba(228,233,240,.98); color:var(--ink); box-shadow:8px 8px 18px rgba(130,145,165,.28),-5px -5px 14px rgba(255,255,255,.78); transform:translateX(14px); pointer-events:none; backdrop-filter:blur(8px); }
.rank-tooltip.align-left { transform:translateX(calc(-100% - 14px)); }
.rank-tooltip-date { padding:0 0 9px; border-bottom:1px solid var(--line); font-size:.79rem; font-weight:760; }
.rank-tooltip-item { display:grid; grid-template-columns:12px minmax(0,1fr); gap:10px; padding:11px 0; border-bottom:1px solid var(--line); }
.rank-tooltip-item:last-child { padding-bottom:2px; border-bottom:0; }
.rank-tooltip-item>i { width:10px; height:10px; margin-top:5px; border-radius:50%; box-shadow:0 0 0 2px rgba(255,255,255,.8); }
.rank-tooltip-item>div { display:grid; gap:2px; min-width:0; }
.rank-tooltip-item strong { font-size:.8rem; line-height:1.45; }
.rank-tooltip-item span,.rank-tooltip-item b { overflow-wrap:anywhere; font-size:.72rem; font-weight:520; line-height:1.45; }
.rank-tooltip-item b { font-weight:760; }
.snapshot-panel .panel-label,.movement-grid .panel-label { margin:0 0 12px; }
.subhead { margin-top:30px; }
.correlation-panel { height:430px; }
.correlation-chart { height:365px; }
.chart-guide { display:flex; flex-wrap:wrap; gap:8px 20px; min-height:34px; color:var(--muted); font-size:.69rem; }
.chart-guide span { display:flex; align-items:center; gap:7px; }
.chart-guide i { width:10px; height:10px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 2px rgba(255,255,255,.8); }
.business-trend-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.mini-chart-card { min-width:0; padding:18px; border-radius:18px; background:var(--paper); box-shadow:var(--raised-small); }
.mini-chart-card .panel-label { margin-bottom:10px; }
.mini-chart { width:100%; height:270px; }
.mini-chart svg { width:100%; height:100%; display:block; }
/* SVG coordinates track the container; keep labels at a consistent reading size. */
:is(.chart,.mini-chart,.sif-trend-chart,.sif-rhythm-chart) svg text { font-family:inherit; font-size:12px; font-weight:500; letter-spacing:0; font-variant-numeric:tabular-nums; }
.chart-legend span,.chart-guide span,.sif-diagnostic-legend span { min-width:0; overflow-wrap:anywhere; }
.correlation-table { max-height:440px; }
.correlation-table th:nth-child(4),.correlation-table td:nth-child(4),.correlation-table th:last-child,.correlation-table td:last-child { text-align:center; }

.sif-heading { align-items:flex-end; }
.sif-heading .eyebrow { margin-bottom:7px; }
.sif-notice { border-left:4px solid var(--amber); }
.sif-structure-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.sif-card,.sif-trend-card,.sif-timeline-card { min-width:0; padding:20px; border-radius:19px; background:var(--paper); box-shadow:var(--raised-small); }
.sif-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; min-height:68px; }
.sif-card-head strong { display:block; margin-top:8px; color:var(--ink); font-size:1.5rem; line-height:1; font-variant-numeric:tabular-nums; }
.sif-card-head small { max-width:132px; color:var(--muted); font-size:.66rem; line-height:1.5; text-align:right; }
.sif-bars { display:grid; gap:13px; margin-top:18px; }
.sif-bar-row { display:grid; grid-template-columns:minmax(84px,.75fr) minmax(100px,1.5fr) auto; align-items:center; gap:10px; color:var(--muted); font-size:.72rem; }
.sif-bar-row b { color:var(--ink); font-size:.74rem; font-variant-numeric:tabular-nums; }
.sif-bar-track { height:12px; overflow:hidden; border-radius:8px; background:rgba(88,103,125,.12); box-shadow:inset 2px 2px 5px rgba(138,151,169,.24),inset -2px -2px 5px rgba(255,255,255,.58); }
.sif-bar-fill { display:block; min-width:2px; height:100%; border-radius:8px; background:var(--up); }
.sif-bar-fill.orange { background:#D88918; }
.sif-bar-fill.blue { background:#526DC4; }
.sif-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:18px; }
.sif-metrics div { padding:12px; border-radius:12px; box-shadow:var(--pressed); }
.sif-metrics span,.sif-metrics strong { display:block; }
.sif-metrics span { color:var(--muted); font-size:.67rem; }
.sif-metrics strong { margin-top:6px; color:var(--ink); font-size:.9rem; font-variant-numeric:tabular-nums; }
.sif-trend-card { min-height:430px; }
.sif-legend { display:flex; flex-wrap:wrap; gap:10px 22px; margin-bottom:12px; color:var(--muted); font-size:.72rem; }
.sif-legend span { display:flex; align-items:center; gap:7px; }
.sif-legend i { width:18px; height:4px; border-radius:3px; }
.sif-green { background:#29A36A; }.sif-orange { background:#D88918; }.sif-blue { background:#526DC4; }
.sif-trend-chart { width:100%; height:360px; }
.sif-trend-chart svg { width:100%; height:100%; display:block; }
.sif-trend-chart { position:relative; margin-bottom:28px; }
.chart-footnote { position:absolute; top:100%; left:0; margin:4px 0 0; color:var(--muted); font-size:12px; line-height:1.6; }
.sif-timeline-card { padding:0; background:transparent; box-shadow:none; }
.sif-timeline { display:grid; gap:18px; min-width:0; }
.sif-diagnostic-card { min-width:0; padding:20px; border-radius:18px; background:var(--paper); box-shadow:var(--raised-small); }
.sif-diagnostic-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.sif-diagnostic-head strong { display:block; color:var(--ink); font-size:.94rem; }
.sif-diagnostic-head p { max-width:820px; margin:7px 0 0; color:var(--muted); font-size:.72rem; line-height:1.65; }
.sif-verdict { flex:0 0 auto; padding:8px 11px; border-radius:999px; color:var(--muted); box-shadow:var(--pressed); font-size:.68rem; font-weight:720; white-space:nowrap; }
.sif-verdict.good { color:var(--up); }.sif-verdict.watch { color:var(--amber); }.sif-verdict.risk { color:var(--down); }
.sif-diagnostic-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:18px 0; }
.sif-diagnostic-kpis div { min-width:0; padding:12px 13px; border-radius:12px; box-shadow:var(--pressed); }
.sif-diagnostic-kpis span,.sif-diagnostic-kpis b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sif-diagnostic-kpis span { color:var(--muted); font-size:.64rem; }
.sif-diagnostic-kpis b { margin-top:6px; color:var(--ink); font-size:.78rem; font-variant-numeric:tabular-nums; }
.sif-diagnostic-kpis :is(span,b) { white-space:normal; overflow-wrap:anywhere; overflow:visible; line-height:1.6; }
.sif-diagnostic-legend { display:flex; flex-wrap:wrap; gap:8px 20px; margin:4px 0 2px; color:var(--muted); font-size:.67rem; }
.sif-diagnostic-legend span { display:flex; align-items:center; gap:6px; }
.sif-diagnostic-legend i { width:17px; height:4px; border-radius:3px; }
.sif-rhythm-chart { width:100%; height:220px; }
.sif-rhythm-chart svg { width:100%; height:100%; display:block; }
.sif-timeline-axis { display:none; }

.table-wrap { overflow:auto; border:0; border-radius:16px; background:var(--paper); box-shadow:var(--raised-small); }
.compact { height:394px; }
table { width:100%; border-collapse:separate; border-spacing:0; color:var(--ink); font-size:.78rem; }
th,td { height:44px; padding:11px 12px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; }
th { position:sticky; top:0; color:var(--muted); background:rgba(255,255,255,.38); font-weight:700; z-index:2; }
tbody tr:hover td { background-color:rgba(255,255,255,.2); }
.empty-row { color:var(--muted); text-align:center; }
.movement-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.movement-grid > * { min-width:0; }
.rank-legend { display:flex; flex-wrap:wrap; gap:10px 18px; margin:0 0 14px; color:var(--muted); font-size:.72rem; }
.rank-legend span { display:flex; align-items:center; gap:6px; }
.swatch { width:9px; height:9px; border-radius:3px; }
.top10{background:#B9E0D1}.page1{background:#D2EADC}.page2{background:#F1DFB8}.page3{background:#E9C8CB}.missing{background:#D9DEE5}
.matrix-wrap { max-height:700px; }
.matrix-wrap table { min-width:1680px; }
.matrix-wrap th:first-child,.matrix-wrap td:first-child { position:sticky; left:0; z-index:3; background:var(--paper); }
.matrix-wrap th:nth-child(2),.matrix-wrap td:nth-child(2) { position:sticky; left:190px; z-index:3; background:var(--paper); }
.matrix-wrap th:first-child,.matrix-wrap td:first-child{width:190px;min-width:190px}
.matrix-wrap th:nth-child(2),.matrix-wrap td:nth-child(2){width:115px;min-width:115px}
.rank-top10{background:#C9E8DB;color:#17624F;font-weight:760}.rank-page1{background:#DCEDE5;color:#276852}.rank-page2{background:#F4E7CA;color:#845F20}.rank-page3{background:#ECD5D7;color:#91474E}.rank-missing{background:#DDE2E8;color:#6D7888}
.rank-cell { width:100%; padding:0; border:0; background:transparent; color:inherit; text-align:left; cursor:pointer; font-weight:inherit; }
.rank-cell:hover { color:var(--accent-ink); text-decoration:underline; }

footer { width:min(1520px,calc(100% - 72px)); margin:18px auto 0; padding:30px 0 48px; color:var(--muted); font-size:.71rem; }
.error-state { position:fixed; right:24px; bottom:24px; padding:15px 18px; border:0; border-radius:14px; background:var(--paper); color:var(--down); box-shadow:var(--raised); z-index:20; }
dialog { width:min(760px,calc(100% - 28px)); max-height:80vh; padding:22px; border:0; border-radius:20px; background:var(--paper); color:var(--ink); box-shadow:12px 12px 32px rgba(80,97,122,.25),-8px -8px 24px rgba(255,255,255,.7); }
dialog::backdrop { background:rgba(67,79,98,.32); backdrop-filter:blur(3px); }
.dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:18px; }
.dialog-head .eyebrow { margin-bottom:6px; }
.dialog-head .meta { max-width:620px; overflow-wrap:anywhere; }
.dialog-head button { width:38px; height:38px; border:0; border-radius:12px; background:var(--paper); color:var(--ink); box-shadow:var(--raised-small); font-size:1.35rem; line-height:1; cursor:pointer; }
.dialog-head button:active { box-shadow:var(--pressed); }
button:focus-visible,select:focus-visible,a:focus-visible,input:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }

@media (max-width:1100px) {
  .page-section,footer { width:calc(100% - 48px); }
  .kpi-grid { gap:15px; }
  .kpi { padding:18px; }
  .task-health-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .sidebar { display:none; }
  main { margin-left:0; }
  .mobile-header { display:flex; align-items:baseline; justify-content:space-between; padding:18px 20px; background:var(--paper); color:var(--ink); box-shadow:0 5px 14px rgba(148,163,184,.16); }
  .mobile-header small { color:var(--muted); font-size:.68rem; }
  .page-section,footer { width:calc(100% - 32px); }
  .page-section { padding-top:30px; }
  .page-head { align-items:flex-start; flex-direction:column; }
  .kpi-grid,.selection-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .filter-bar,.matrix-filters,.movement-filters,.correlation-filters,.sif-filters { grid-template-columns:1fr; }
  .trend-grid,.movement-grid,.business-trend-grid,.sif-structure-grid { grid-template-columns:1fr; }
  .correlation-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .chart-panel { height:400px; }
  .chart { height:320px; }
  .compact { height:auto; max-height:360px; }
  .section-head { align-items:flex-start; flex-direction:column; gap:7px; }
}
@media (max-width:520px) {
  h1 { font-size:1.65rem; }
  .page-section,footer { width:calc(100% - 24px); }
  .task-health-grid { grid-template-columns:1fr; gap:2px; }
  .workspace-tabs { gap:4px; }
  .workspace-tabs a { padding:12px 7px; font-size:.78rem; }
  .kpi-grid { gap:14px; }
  .kpi { min-height:132px; padding:16px; border-radius:16px; }
  .kpi strong { font-size:1.58rem; }
  .filter-bar,.matrix-filters,.movement-filters,.correlation-filters,.sif-filters { padding:15px; border-radius:16px; }
  .correlation-kpis { grid-template-columns:1fr 1fr; gap:9px; }
  .correlation-kpis article { padding:14px; }
  .correlation-kpis small { white-space:normal; }
  .business-trend-grid { gap:16px; }
  .movement-search input { transform:none; }
  .chart-panel { padding:10px; border-radius:16px; }
  .rank-tooltip { top:5px; width:min(320px,calc(100% - 16px)); max-height:300px; overflow:auto; padding:11px 12px; }
  th,td { padding:10px 9px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none!important; scroll-behavior:auto!important; } }

/* Shared dashboard ergonomics; retain the existing soft UI theme. */
[hidden] { display:none!important; }
.workspace-tabs { grid-template-columns:repeat(6,minmax(0,1fr)); }
.mode-bar,.date-controls,.chart-keyboard { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin:18px 0; }
.mode-bar label,.date-controls label,.chart-keyboard label { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; font-size:.8rem; }
.mode-bar select { width:auto; max-width:100%; }
button { cursor:pointer; }
.mode-bar button,.date-controls button,.date-controls input,.chart-keyboard button,#downloadSamples,#downloadHistory,#reloadVersion { min-height:42px; padding:10px 14px; border:0; border-radius:12px; color:var(--ink); background:var(--paper); box-shadow:var(--raised-small); }
.date-controls input { max-width:180px; }
.keyword-checks { display:grid; gap:8px; max-height:190px; overflow:auto; font-size:.8rem; }
.keyword-checks label { display:flex; gap:8px; }
.chart-panel { height:auto; min-height:440px; }
.chart-legend { padding-bottom:12px; }
.chart-keyboard { margin:10px 0 0; }
.chart-keyboard select { width:auto; }
.rank-tooltip { transform:none!important; max-width:100%; max-height:min(420px,65vh); overflow:auto; overscroll-behavior:contain; pointer-events:auto; }
.tooltip-head { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.tooltip-head button { border:0; border-radius:8px; width:36px; height:36px; background:var(--paper); font-size:24px; color:var(--ink); }
.chart-empty-label { position:absolute; top:35%; left:15%; right:10%; font-size:.8rem; text-align:center; }
.event-panel { margin:20px 0; padding:18px; border-radius:16px; box-shadow:var(--pressed); font-size:.8rem; }
.event-panel summary { cursor:pointer; font-weight:700; }
.source-accordion { margin:34px 0 12px; border-radius:18px; background:var(--paper); box-shadow:var(--raised-small); }
.source-accordion summary { display:flex; align-items:center; gap:12px; min-height:62px; padding:17px 20px; cursor:pointer; list-style:none; }
.source-accordion summary::-webkit-details-marker { display:none; }
.source-accordion summary strong { color:var(--ink); font-size:1.12rem; }
.source-accordion summary span:nth-child(2) { margin-left:auto; color:var(--muted); font-size:.73rem; }
.source-chevron { color:var(--accent-ink); font-size:1.45rem; line-height:1; transition:transform .16s ease; }
.source-accordion[open] .source-chevron { transform:rotate(180deg); }
.source-accordion[open] { box-shadow:var(--pressed); }
.source-accordion-content { padding:0 20px 20px; }
.source-accordion summary:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:18px; }
.text-button { border:0; background:transparent; color:var(--accent-ink); padding:4px; text-align:center; white-space:normal; overflow-wrap:anywhere; }
th,td,.rank-cell { text-align:center; }
.movement-grid table td { white-space:normal; overflow-wrap:anywhere; }
.movement-grid .table-wrap { max-height:560px; }
.task-health-grid small { white-space:normal; }
.mobile-matrix { display:none; }
#dateRangeStatus:empty { display:none; }
.date-controls input[aria-invalid="true"] { outline:2px solid var(--negative,#bd4152); outline-offset:2px; }
#versionNotice { position:sticky; top:8px; z-index:25; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
#versionNotice[hidden] { display:none; }
dialog { width:min(1040px,calc(100% - 28px)); }
dialog .table-wrap { max-height:360px; margin:16px 0; }
dialog details { margin-top:18px; }
dialog .mini-chart { height:240px; }
@media(max-width:600px){
  .source-accordion summary { flex-wrap:wrap; padding:16px; }
  .source-accordion summary span:nth-child(2) { order:3; width:100%; margin-left:0; }
  .source-accordion-content { padding:0 12px 16px; }
  .workspace-tabs { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .sif-card,.sif-trend-card,.sif-timeline-card { padding:15px; }
  .sif-timeline-card { padding:0; }
  .sif-diagnostic-card { padding:15px; }
  .sif-diagnostic-head { flex-direction:column; gap:10px; }
  .sif-verdict { align-self:flex-start; }
  .sif-diagnostic-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sif-diagnostic-kpis span,.sif-diagnostic-kpis b { white-space:normal; }
  .sif-rhythm-chart { height:250px; }
  .sif-bar-row { grid-template-columns:78px minmax(78px,1fr) auto; gap:8px; }
  .sif-trend-chart { height:300px; }
  .matrix-wrap { display:none; }
  .mobile-matrix { display:block; }
  .matrix-desktop-scope { display:none; }
  .mobile-matrix>label { display:grid; gap:10px; margin-bottom:16px; }
  .matrix-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(125px,.9fr); gap:12px; padding:16px 12px; margin:14px 0; border-radius:16px; box-shadow:var(--raised-small); }
  .matrix-card strong { font-size:.83rem; overflow-wrap:anywhere; }
  .matrix-card small { display:block; color:var(--muted); font-size:.7rem; margin-top:8px; }
  .matrix-card button { border:0; border-radius:12px; font-size:.8rem; padding:10px; white-space:normal; }
  .rank-tooltip { position:fixed; inset:auto 12px 12px 12px!important; width:auto; max-width:none; max-height:65vh; z-index:30; }
  .chart { height:270px; }
  .chart-panel { min-height:0; }
  .chart-keyboard { justify-content:space-between; }
  .chart-keyboard select { max-width:160px; }
  .date-controls { gap:12px; }
  .date-controls label { flex:1 1 40%; }
  .date-controls input { width:100%; min-width:0; }
  .date-controls button { flex:1 1 40%; }
  .mode-bar select { width:100%; }
  #sourceFreshness { overflow-wrap:anywhere; }
}

/* Operations hierarchy: one active page, clear priorities, gentle Soft UI. */
.page-section { padding-top:32px; padding-bottom:40px; }
.workbench-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:22px 0 32px; }
.workbench-kpis article { padding:22px; background:var(--panel); border-radius:18px; box-shadow:var(--raised); min-width:0; }
.workbench-kpis span { color:var(--muted); font-size:14px; }
.workbench-kpis strong { display:block; font-size:28px; margin:12px 0; font-variant-numeric:tabular-nums; }
.workbench-kpis small,.workbench-actions small { display:block; color:var(--muted); font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.workbench-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:18px 0 30px; }
.workbench-actions article { padding:22px; background:rgba(248,250,253,.55); border-radius:16px; min-width:0; }
.workbench-actions strong { font-size:16px; line-height:1.7; }
.workbench-actions p { font-size:14px; line-height:1.8; margin:12px 0; }
.workbench-actions a,.section-head a { color:var(--accent-ink); text-decoration:none; font-size:14px; }
.workbench-actions button { border:0; background:var(--panel); padding:10px 13px; border-radius:10px; color:var(--accent-ink); cursor:pointer; margin:0 10px 12px 0; }
.rank-overview { border-radius:18px; margin-top:24px; background:rgba(255,255,255,.2); }
.rank-overview>summary { padding:20px; font-weight:700; cursor:pointer; color:var(--ink); }
.rank-overview[open] { padding:0 20px 20px; }
.rank-overview[open]>summary { padding-left:0; }
.data-quality-note { font-size:13px; color:var(--muted); line-height:1.8; margin:10px 0 20px; overflow-wrap:anywhere; }
.movement-grid { grid-template-columns:1fr; }
.movement-grid .table-wrap,.matrix-wrap,.correlation-table,.table-wrap.compact { max-height:none; height:auto; }
.movement-grid table { table-layout:fixed; }
.movement-grid th,.movement-grid td { text-align:center; }
.movement-grid td small { display:block; font-size:13px; color:var(--muted); margin-top:6px; line-height:1.6; }
.movement-grid .text-button { text-align:center; white-space:normal; line-height:1.6; }
.movement-grid select { min-width:90px; font-size:14px; box-shadow:none; background:#edf2f7; text-align:center; }
.matrix-wrap th,.matrix-wrap td { text-align:center; }
.matrix-wrap table[data-compact="true"] { min-width:700px; table-layout:fixed; }
.matrix-wrap td:first-child { white-space:normal; min-width:190px; line-height:1.6; }
.matrix-wrap th { white-space:normal; line-height:1.5; min-width:145px; }
.rank-cell { white-space:normal; line-height:1.6; }
.rank-cell strong { display:block; font-size:16px; }
.rank-cell small { display:block; color:var(--muted); font-size:12px; }
.scope-title { text-transform:none; }
.scope-panel dd { overflow-wrap:anywhere; }
@media(min-width:901px) { .matrix-filters { grid-template-columns:1.3fr 1fr 1fr; } }
:focus-visible { outline:2px solid var(--accent-ink); outline-offset:3px; }
@media(max-width:1100px) {
  .workbench-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .workbench-actions { grid-template-columns:1fr; }
}
@media(max-width:900px) {
  .mobile-header { position:sticky; top:0; z-index:12; display:grid; grid-template-columns:minmax(0,1fr); justify-content:stretch; gap:12px; padding:14px 20px; }
  .mobile-header strong { font-size:16px; }
  .mobile-header label { display:flex; align-items:center; gap:12px; font-size:13px; color:var(--muted); white-space:nowrap; }
  .mobile-header select { flex:1; min-width:0; width:auto; min-height:40px; padding:8px 12px; box-shadow:var(--pressed); }
  .page-section { scroll-margin-top:130px; }
}
@media(max-width:600px) {
  .workbench-kpis { gap:12px; }
  .workbench-kpis article { padding:16px; }
  .workbench-kpis strong { font-size:22px; }
  .workbench-kpis span,.workbench-kpis small { font-size:12px; }
  .workbench-actions article { padding:18px; }
  .rank-overview[open] { padding:0 10px 15px; }
  .movement-grid table { min-width:740px; }
  .task-health-grid small { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
