:root {
  --ink: #253648;
  --muted: #657487;
  --blue: #285fa8;
  --teal: #237c70;
  --paper: #f4f6f9;
  --white: #fff;
  --line: #dfe5ed;
  --soft: #edf3fc;
  --amber: #95631d;
  --amber-bg: #fff6e8;
  --body: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", sans-serif;
  --display: "Bahnschrift", "Microsoft YaHei", sans-serif;
  --number: "Bahnschrift", "Consolas", monospace
}

* {
  box-sizing: border-box
}

[hidden] { display: none !important; }
.trend-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin: 18px 0; }
.trend-controls label { display: flex; align-items: center; gap: 12px; font-weight: 600; }
.trend-controls select { padding: 8px 36px 8px 12px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: var(--white); }
.trend-scope-heading { margin-top: 22px; }
.account-menu { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.account-menu form { margin: 0; }
.text-button { border: 0; background: transparent; color: var(--blue); padding: 4px; }
.login-page { min-height: 100dvh; display: grid; place-items: center; padding: 24px; }
.login-panel { max-width: 480px; width: 100%; padding: 40px; background: var(--white); border: 1px solid var(--line); border-top: 4px solid var(--blue); border-radius: 10px; }
.login-brand { font: 600 22px var(--display); margin-bottom: 36px; }
.login-brand span { display: block; color: var(--muted); font: 13px var(--body); margin-top: 8px; }
.login-panel h1 { font-size: 26px; margin-bottom: 14px; }
.login-panel > p { margin-bottom: 22px; }
.login-panel .button { width: 100%; margin: 14px 0 20px; }
.creator-note { margin-top: 8px; color: var(--muted); }
@media (max-width: 540px) { .login-panel { padding: 26px; } .account-menu { gap: 8px; font-size: 12px; } }

html {
  scroll-behavior: smooth;
  scroll-padding-top: 94px
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 14px/1.65 var(--body)
}

a {
  color: var(--blue);
  text-decoration: none
}

a:hover {
  text-decoration: underline
}

button,
input,
select {
  font: inherit
}

input,
select {
  max-width: 100%
}

input:focus-visible,
select:focus-visible,
button:focus-visible,
a:focus-visible,
summary:focus-visible {
  outline: 3px solid #73b2d4;
  outline-offset: 3px
}

h1,
h2,
h3,
p {
  margin: 0
}

h1,
h2,
h3 {
  line-height: 1.35
}

h2 {
  font-size: 21px;
  font-weight: 650
}

button {
  cursor: pointer
}

.topbar {
  height: 80px;
  border-bottom: 1px solid var(--line);
  padding: 0 4.8%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: var(--white)
}

.brand {
  font-family: var(--display);
  font-size: 23px;
  font-weight: 650;
  letter-spacing: .06em;
  color: var(--ink);
  white-space: nowrap
}

.brand span {
  font: 12px var(--body);
  letter-spacing: .08em;
  margin-left: 18px;
  border-left: 1px solid #aabfc9;
  padding-left: 18px;
  color: var(--muted)
}

.topbar-note {
  color: var(--muted);
  font-size: 12px
}

.eyebrow {
  font-size: 11px;
  color: var(--blue);
  letter-spacing: .16em;
  font-weight: 700;
  margin-bottom: 12px
}

.muted {
  color: var(--muted)
}

.small {
  font-size: 12px
}

.upload-layout {
  max-width: 1220px;
  padding: 64px 32px 60px;
  margin: auto;
  display: grid;
  grid-template-columns: .87fr 1.13fr;
  gap: 84px;
  align-items: start
}

.intro {
  padding-top: 24px
}

.intro h1 {
  font-size: 45px;
  font-weight: 650;
  letter-spacing: -.04em;
  line-height: 1.45;
  margin-bottom: 22px
}

.intro-copy {
  color: var(--muted);
  font-size: 15px;
  line-height: 1.9;
  max-width: 350px
}

.process-note {
  margin: 38px 0 26px;
  border-top: 1px solid #cfdee8;
  padding-top: 24px
}

.process-note h2 {
  font-size: 14px
}

.steps {
  list-style: none;
  padding: 0;
  margin: 22px 0 0;
  counter-reset: step
}

.steps li {
  position: relative;
  padding: 0 0 24px 42px;
  counter-increment: step
}

.steps li:before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 0;
  width: 26px;
  height: 26px;
  background: #dbe9f1;
  border-radius: 50%;
  text-align: center;
  font-family: var(--number);
  font-size: 13px;
  line-height: 26px
}

.steps li:not(:last-child):after {
  content: "";
  position: absolute;
  left: 12px;
  top: 31px;
  bottom: 5px;
  border-left: 1px solid #c1d5e1
}

.steps strong,
.steps span {
  display: block
}

.steps strong {
  font-size: 13px
}

.steps span {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px
}

.upload-panel {
  background: white;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 30px 34px;
  box-shadow: 0 12px 34px #163b5010
}

.section-heading {
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px
}

.section-heading .eyebrow {
  margin-bottom: 6px
}

.quiet-tag {
  white-space: nowrap;
  font-size: 11px;
  background: var(--soft);
  padding: 5px 10px;
  border-radius: 5px;
  color: var(--blue)
}

.file-field {
  background: #f8fbfd;
  border: 1px solid #d2e1eb;
  border-radius: 9px;
  padding: 18px;
  margin-bottom: 16px
}

.file-field label {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px
}

.file-field label strong,
.file-field label small {
  display: block
}

.file-field label strong {
  font-size: 14px
}

.file-field label small {
  font-size: 11px;
  color: var(--muted);
  margin-top: 3px
}

.file-symbol {
  display: grid;
  place-items: center;
  width: 37px;
  height: 43px;
  border: 1px solid #c2d7e4;
  background: #e6f0f7;
  border-radius: 4px 10px 4px 4px;
  color: var(--blue);
  font-size: 16px
}

.file-symbol.alternate {
  background: #e8f3ef;
  border-color: #cce0d9;
  color: var(--teal)
}

input[type=file] {
  font-size: 12px;
  width: 100%;
  color: var(--muted)
}

input[type=file]::file-selector-button {
  border: 1px solid #b9cfdd;
  border-radius: 5px;
  background: #fff;
  color: var(--ink);
  padding: 7px 12px;
  margin-right: 10px;
  cursor: pointer
}

.file-status {
  font-size: 11px;
  color: var(--muted);
  margin-top: 8px;
  overflow-wrap: anywhere
}

.field {
  margin-top: 22px
}

.field>label {
  display: block;
  font-size: 12px;
  font-weight: 650;
  margin-bottom: 8px
}

.field>input,
.field>select,
.search-label input {
  width: 100%;
  border: 1px solid #c7d6df;
  background: #fff;
  border-radius: 6px;
  color: var(--ink);
  padding: 11px 12px;
  font-size: 13px
}

.field-help {
  font-size: 11px;
  color: var(--muted);
  margin-top: 8px
}

.settings {
  margin-top: 22px;
  border-top: 1px solid var(--line);
  padding-top: 16px
}

.settings>summary {
  cursor: pointer;
  font-size: 12px;
  color: var(--blue)
}

.settings .field {
  margin-top: 15px
}

.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  border: 0;
  border-radius: 6px;
  font-size: 13px;
  padding: 12px 22px;
  font-weight: 650;
  white-space: nowrap
}

.button:hover {
  text-decoration: none;
  filter: brightness(1.08)
}

.primary {
  color: white;
  background: var(--blue)
}

.button:disabled {
  opacity: .65;
  cursor: wait
}

.submit-button {
  width: 100%;
  margin-top: 26px;
  justify-content: space-between
}

.submit-note {
  font-size: 11px;
  text-align: center;
  color: var(--muted);
  margin-top: 12px
}

.footer {
  max-width: 1156px;
  margin: 0 auto 28px;
  border-top: 1px solid var(--line);
  padding-top: 18px;
  color: var(--muted);
  font-size: 11px;
  display: flex;
  justify-content: space-between
}

.error-message {
  padding: 16px;
  background: #fff0eb;
  border: 1px solid #edc6b9;
  color: #9b4128;
  border-radius: 7px;
  margin-bottom: 20px;
  font-size: 13px
}

.error-message p {
  margin-top: 6px
}

.actions {
  display: flex;
  align-items: center;
  gap: 24px
}

.compact {
  padding: 9px 16px;
  font-size: 12px
}

.text-link {
  font-size: 12px
}

.report-layout {
  max-width: 1510px;
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 36px;
  margin: auto;
  padding: 38px 40px 24px
}

.report-nav {
  min-width: 0;
  position: sticky;
  top: 30px;
  align-self: start;
  padding: 14px 0
}

.report-nav nav {
  display: flex;
  flex-direction: column;
  margin: 10px 0 40px;
  gap: 6px
}

.report-nav nav a {
  padding: 10px 10px;
  border-radius: 5px;
  font-size: 12px;
  color: var(--muted)
}

.report-nav nav a[aria-current] {
  background: #e0edf5;
  color: var(--ink);
  font-weight: 700
}

.report-nav nav a:hover {
  background: #e0edf5;
  text-decoration: none
}

.report-main {
  min-width: 0
}

.report-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 10px 0 26px
}

.report-heading h1 {
  font-family: var(--display);
  font-size: 28px;
  letter-spacing: -.03em
}

.date-separator {
  padding: 0 12px;
  color: #96a9b6;
  font-weight: 400
}

.report-heading p.muted {
  font-size: 12px;
  margin-top: 10px
}

.mode-tag {
  border: 1px solid #bfd9d0;
  background: #edf6f1;
  color: #306b59;
  padding: 6px 11px;
  font-size: 11px;
  border-radius: 20px;
  white-space: nowrap
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px
}

.metric {
  background: white;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 20px 18px
}

.metric>span {
  font-size: 12px;
  color: var(--muted)
}

.metric strong {
  font: 600 clamp(22px, 2vw, 32px)/1.4 var(--number);
  display: block;
  white-space: nowrap;
  letter-spacing: -.04em;
  margin-top: 10px
}

.metric strong small {
  font-size: 15px;
  vertical-align: top;
  margin-right: 3px;
  line-height: 2.5
}

.metric p {
  font-size: 10px;
  color: var(--muted);
  margin-top: 8px
}

.metric.featured {
  background: var(--ink);
  border-color: var(--ink);
  color: white
}

.metric.featured>span,
.metric.featured p {
  color: #c4dce8
}

.calculation-path {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 22px 12px 17px;
  margin-top: 8px;
  border-bottom: 1px solid var(--line)
}

.calculation-path div {
  min-width: 0
}

.calculation-path span,
.calculation-path strong {
  display: block
}

.calculation-path span {
  font-size: 10px;
  color: var(--muted)
}

.calculation-path strong {
  font: 500 15px/1.8 var(--number);
  margin-top: 3px;
  white-space: nowrap
}

.calculation-path>b {
  font-size: 19px;
  color: #93a8b6;
  font-weight: 400
}

.path-total strong {
  color: var(--teal)
}

.secondary-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  font-size: 11px;
  color: var(--muted);
  padding: 19px 4px
}

.secondary-stats strong {
  color: var(--ink);
  font-family: var(--number);
  font-weight: 600
}

.report-section {
  margin-top: 28px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 26px
}

.report-section h2 {
  font-size: 19px
}

.report-section .eyebrow {
  font-size: 10px
}

.report-section .section-heading {
  margin-bottom: 22px
}

.table-scroll {
  overflow: auto;
  width: 100%;
  scrollbar-width: thin
}

table {
  border-collapse: collapse;
  width: 100%;
  font-size: 12px;
  white-space: nowrap
}

thead th {
  font-weight: 500;
  color: var(--muted);
  background: #f1f6fa;
  text-align: right;
  font-size: 11px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line)
}

thead th:first-child {
  text-align: left
}

tbody th {
  font-weight: 500;
  text-align: left
}

td,
tbody th {
  padding: 14px;
  border-bottom: 1px solid #e8eef2
}

td {
  text-align: right;
  font-family: var(--number);
  font-size: 13px
}

tbody tr:last-child td,
tbody tr:last-child th {
  border-bottom: 0
}

tbody th small {
  display: block;
  font-weight: 400;
  font-size: 10px;
  color: var(--muted);
  margin-top: 3px
}

.emphasis {
  color: var(--teal);
  font-weight: 650
}

.daily-chart {
  padding: 0 0 22px;
  max-height: 360px;
  overflow: auto
}

.chart-row {
  display: grid;
  grid-template-columns: 45px minmax(0, 1fr) 100px;
  align-items: center;
  gap: 18px;
  margin: 12px 0;
  font-size: 11px
}

.chart-row>span {
  font-family: var(--number);
  color: var(--muted)
}

.chart-row strong {
  font: 12px var(--number);
  text-align: right
}

.bar-track {
  background: #f0f5f8;
  height: 20px;
  position: relative;
  overflow: hidden;
  border-radius: 2px
}

.bar {
  position: absolute;
  top: 0;
  height: 10px;
  background: #aec9dc;
  min-width: 0
}

.bar.gsv {
  top: 10px;
  background: var(--teal)
}

.legend {
  display: flex;
  gap: 7px;
  align-items: center;
  color: var(--muted);
  font-size: 11px
}

.legend i {
  display: block;
  width: 9px;
  height: 9px;
  background: #aec9dc;
  margin-left: 9px
}

.legend .gsv {
  background: var(--teal)
}

.count {
  font: 14px var(--number);
  color: var(--muted);
  margin-left: 7px
}

.empty-state {
  border: 1px dashed #ccdae3;
  border-radius: 6px;
  padding: 30px;
  text-align: center;
  color: var(--muted);
  font-size: 12px
}

.empty-state strong {
  font-weight: 500;
  color: var(--ink);
  font-size: 14px
}

.empty-state p {
  margin-top: 8px
}

.search-label input {
  font-size: 11px;
  padding: 8px 12px;
  min-width: 220px
}

.source-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px
}

.source-grid>div {
  border-left: 3px solid #a8c7d9;
  background: #f6f9fb;
  padding: 12px 16px;
  min-width: 0
}

.source-grid span,
.source-grid strong,
.source-grid small {
  display: block
}

.source-grid span {
  font-size: 10px;
  color: var(--muted)
}

.source-grid strong {
  font-size: 12px;
  font-weight: 500;
  overflow-wrap: anywhere;
  margin: 5px 0
}

.source-grid small {
  color: var(--muted);
  font-size: 11px
}

.match-note {
  font-size: 12px;
  color: var(--muted);
  margin-top: 18px
}

.issue-list {
  list-style: none;
  padding: 0;
  margin: 20px 0
}

.issue-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 8px;
  padding: 12px 15px;
  background: var(--amber-bg);
  color: var(--amber);
  font-size: 12px;
  border-radius: 5px
}

.issue-list li>span {
  font-family: var(--number);
  background: #f5e4c7;
  padding: 1px 7px;
  border-radius: 3px;
  flex-shrink: 0
}

.detail-preview {
  margin-top: 20px;
  font-size: 12px
}

.detail-preview>summary {
  cursor: pointer;
  color: var(--blue)
}

.detail-preview .table-scroll {
  margin: 14px 0
}

.rule-note {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 18px
}

.rules-table {
  white-space: normal
}

.rules-table tbody th {
  min-width: 190px;
  max-width: 240px
}

.rules-table td {
  font: 12px/1.7 var(--body);
  text-align: left;
  color: var(--muted)
}

.rules-table thead th {
  text-align: left
}

.rules-table+.small {
  margin-top: 20px
}

.report-footer {
  margin-top: 28px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: var(--muted);
  font-size: 10px
}

.report-footer a {
  margin-left: 18px
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0
}

@media(min-width:1600px) {
  .metric strong {
    font-size: 34px
  }
}

@media(max-width:1100px) {
  .upload-layout {
    gap: 40px;
    padding-top: 40px
  }

  .intro h1 {
    font-size: 37px
  }

  .report-layout {
    grid-template-columns: minmax(0, 1fr);
    padding: 26px;
    gap: 0
  }

  .report-nav {
    display: none
  }

  .metric strong {
    font-size: 28px
  }
}

@media(max-width:760px) {
  .topbar {
    height: 65px;
    padding: 0 20px
  }

  .brand {
    font-size: 18px
  }

  .brand span {
    margin-left: 10px;
    padding-left: 10px;
    font-size: 10px
  }

  .topbar-note {
    display: none
  }

  .upload-layout {
    display: block;
    padding: 26px 18px
  }

  .intro {
    padding: 0
  }

  .intro h1 {
    font-size: 29px;
    line-height: 1.5
  }

  .intro h1 br {
    display: none
  }

  .intro-copy {
    max-width: none;
    font-size: 13px
  }

  .process-note {
    display: none
  }

  .intro>.small {
    margin: 15px 0 24px
  }

  .upload-panel {
    padding: 23px
  }

  .footer {
    margin: 0 20px 22px;
    font-size: 10px;
    display: block
  }

  .footer span {
    display: block;
    margin-top: 4px
  }

  .report-layout {
    padding: 20px 14px
  }

  .report-heading {
    align-items: flex-start;
    flex-direction: column;
    margin: 8px 0 20px
  }

  .report-heading h1 {
    font-size: 23px
  }

  .report-heading .eyebrow {
    margin-bottom: 7px
  }

  .date-separator {
    padding: 0 5px
  }

  .metric-grid {
    grid-template-columns: 1fr 1fr;
    gap: 10px
  }

  .metric {
    padding: 15px 13px
  }

  .metric strong {
    font-size: 25px
  }

  .calculation-path {
    flex-wrap: wrap;
    gap: 10px 14px;
    padding: 20px 4px
  }

  .calculation-path div {
    flex-basis: 38%
  }

  .calculation-path>b {
    flex-basis: 5%;
    text-align: center
  }

  .calculation-path strong {
    font-size: 14px
  }

  .calculation-path .path-total {
    flex-basis: auto
  }

  .secondary-stats {
    gap: 9px 18px
  }

  .report-section {
    margin-top: 18px;
    padding: 20px 15px
  }

  .section-heading {
    gap: 14px;
    align-items: flex-start;
    flex-wrap: wrap
  }

  .source-grid {
    grid-template-columns: 1fr
  }

  .report-footer {
    flex-direction: column;
    gap: 12px
  }

  .report-footer a {
    margin-left: 0;
    margin-right: 16px
  }

  .actions {
    gap: 13px
  }

  .actions .compact {
    padding: 8px 11px;
    font-size: 11px
  }

  .actions .text-link {
    font-size: 10px
  }

  .chart-row {
    grid-template-columns: 38px minmax(0, 1fr) 78px;
    gap: 10px
  }

  .rules-table tbody th {
    min-width: 145px
  }

  .search-label {
    width: 100%
  }

  .rules-table td {
    min-width: 240px
  }
}

.analysis-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--white);
  overflow: hidden;
  margin: 8px 0 18px
}

.analysis-strip>div {
  padding: 18px;
  border-right: 1px solid var(--line)
}

.analysis-strip>div:last-child { border: 0 }
.analysis-strip span, .analysis-strip small, .period-observations span, .period-observations small { display: block; color: var(--muted); font-size: 11px }
.analysis-strip strong { display: block; margin: 8px 0; font: 600 21px var(--number) }
.analysis-strip small { font-size: 10px; line-height: 1.7 }

.period-observations {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  padding: 0 4px 18px
}

.period-observations>a { padding-left: 13px; border-left: 2px solid #a8c7d9 }
.period-observations strong { display: block; font: 500 16px var(--number); margin: 5px 0; color: var(--ink) }
.composition { margin: 4px 4px 20px }
.composition-bar { display: flex; height: 9px; overflow: hidden; border-radius: 3px }
.composition-bar span { display: block }
.composition .amber { background: var(--amber) }
.composition .blue { background: var(--blue) }
.composition .teal { background: var(--teal) }
.composition .muted { background: var(--muted) }
.composition-labels { display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: 11px; color: var(--muted); margin-top: 12px }
.composition-labels i { display: inline-block; width: 8px; height: 8px; margin-right: 6px }
.composition-labels strong { color: var(--ink); margin-left: 4px; font-family: var(--number) }
.table-note { font-size: 11px; color: var(--muted); margin: 14px 0 0; line-height: 1.9 }
.subsection-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin: 28px 0 16px }
.analysis-subsection { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--line) }
.analysis-subsection h3, .subsection-heading h3 { font-size: 15px; margin-bottom: 10px }
.analysis-subsection:first-of-type { margin-top: 0 }
.status-strip { display: flex; flex-wrap: wrap; gap: 18px 40px; margin: 20px 0 }
.status-strip>div { display: grid; gap: 5px; font-size: 12px }
.status-strip strong { font: 500 25px var(--number) }
.status-strip strong small { font: 11px var(--body); color: var(--muted) }

.trend-panel { margin: 0; padding: 10px 0 22px; border-bottom: 1px solid var(--line) }
.trend-panel+.trend-panel { padding-top: 26px }
.trend-heading { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center }
.trend-heading h3 { font-size: 14px }
.chart-legend { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px }
.series-toggle { border: 1px solid var(--line); border-radius: 5px; background: white; font-size: 11px; padding: 5px 10px; color: var(--ink) }
.series-toggle i { display: inline-block; width: 16px; height: 3px; background: currentColor; vertical-align: middle; margin-right: 7px }
.series-toggle.blue, .chart-series.blue { color: var(--blue) }
.series-toggle.teal, .chart-series.teal { color: var(--teal) }
.series-toggle.ink, .chart-series.ink { color: var(--ink) }
.series-toggle.amber, .chart-series.amber { color: var(--amber) }
.series-toggle[aria-pressed=false] { opacity: .55; text-decoration: line-through; background: var(--paper) }
.chart-scroll { overflow-x: auto; scrollbar-width: thin }
.trend-svg { display: block; width: 100%; min-width: 600px; height: auto }
.chart-gridline { stroke: var(--line); stroke-dasharray: 3 5 }
.chart-zero { stroke: #a3b6c1 }
.chart-axis { font: 11px var(--number); fill: var(--muted) }
.chart-series polyline { stroke: currentColor; stroke-width: 2.5; stroke-linejoin: round }
.chart-series circle { stroke: currentColor; stroke-width: 2; fill: white; cursor: crosshair }
.chart-series circle:focus, .chart-series circle:hover { fill: currentColor; stroke-width: 4; outline: none }
.chart-series.ink polyline { stroke-dasharray: 7 3 }
.chart-series.series-hidden { display: none }
.chart-reading { min-height: 26px; margin-top: 6px; font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums }

.table-scroll:focus-visible, .chart-scroll:focus-visible { outline: 2px solid #73b2d4; outline-offset: 3px }
.table-scroll thead th:first-child, .table-scroll tbody th, .table-scroll tfoot th { position: sticky; left: 0; z-index: 1 }
.table-scroll tbody th { background: var(--white) }
.table-scroll tbody tr:hover td, .table-scroll tbody tr:hover th { background: #f6f9fb }
tfoot th, tfoot td { border-top: 2px solid #c5d7e2; padding: 14px; background: #edf4f8; font-weight: 600 }
tfoot th { text-align: left }
.order-controls { display: grid; grid-template-columns: minmax(200px, 1fr) 180px 130px; gap: 14px; align-items: end; margin-bottom: 18px }
.order-controls label>span { display: block; font-size: 11px; margin-bottom: 6px; color: var(--muted) }
.filter-label select { width: 100%; border: 1px solid #c7d6df; border-radius: 6px; padding: 8px 10px; background: white; font-size: 12px; color: var(--ink) }
.order-table-scroll th:first-child { min-width: 205px; max-width: 260px }
.order-table-scroll small { display: block; max-width: 245px; white-space: normal; overflow-wrap: anywhere; font: 10px/1.7 var(--body); color: var(--muted); margin-top: 4px }
.order-table-scroll td:nth-child(2), .order-table-scroll td:nth-child(3) { font: 11px var(--body); text-align: left }
.order-pagination { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 18px; font-size: 11px; color: var(--muted) }
.order-pagination>div { display: flex; gap: 14px; align-items: center }
.order-pagination button { background: white; color: var(--blue); border: 1px solid #c7d6df; border-radius: 5px; padding: 6px 12px; font-size: 12px }
.order-pagination button:disabled { opacity: .4; cursor: default }
.order-empty { text-align: center; color: var(--muted); font: 12px var(--body); padding: 24px }
.order-controls[hidden], .order-pagination[hidden] { display: none }

@media(max-width:1100px) {
  .report-nav { display: block; position: static; padding: 0 }
  .report-nav>.eyebrow, .report-nav>p { display: none }
  .report-nav nav { flex-direction: row; overflow-x: auto; white-space: nowrap; gap: 4px; margin: 0 0 22px; padding: 4px 0 }
  .report-nav nav a { flex-shrink: 0; padding: 8px 10px }
}

@media(max-width:760px) {
  .analysis-strip { grid-template-columns: repeat(2, minmax(0,1fr)) }
  .analysis-strip>div { padding: 14px; border-bottom: 1px solid var(--line) }
  .analysis-strip>div:nth-child(2n) { border-right: 0 }
  .analysis-strip>div:nth-last-child(2) { border-bottom: 0 }
  .analysis-strip strong { font-size: 19px }
  .period-observations { grid-template-columns: 1fr; gap: 12px }
  .period-observations>a { display: flex; align-items: center; gap: 14px; flex-wrap: wrap }
  .period-observations strong { font-size: 14px; margin: 0 }
  .order-controls { grid-template-columns: 1fr 1fr }
  .order-controls .search-label { grid-column: 1 / -1 }
  .metric strong { font-size: clamp(17px, 5vw, 25px) }
  .status-strip { gap: 18px 24px }
  .table-scroll th, .table-scroll td { padding: 12px 10px }
}

@media(max-width:420px) {
  .actions .quiet-tag { display: none }
  .brand span { margin-left: 7px; padding-left: 7px }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto
  }
}

@media print {
  body {
    background: #fff
  }

  .topbar .actions,
  .report-nav,
  .report-footer a {
    display: none
  }

  .report-layout {
    display: block;
    padding: 0
  }

  .report-section {
    break-inside: avoid;
    border: 0;
    padding: 15px 0
  }

  .metric {
    border: 1px solid #bbb
  }

  .metric.featured {
    background: #fff;
    color: #17394c
  }

  .metric.featured>span,
  .metric.featured p {
    color: #617786
  }

  .table-scroll {
    overflow: visible
  }

  .report-section table {
    font-size: 10px
  }

  .topbar {
    height: 55px;
    padding: 0
  }

  .report-section td,
  .report-section th {
    padding: 7px
  }
}

/* Employee workspace: compact navigation, explicit report scope and reusable data tables. */
:root { --sidebar-width: 216px }
[hidden] { display: none !important }
.skip-link { position: fixed; top: -60px; left: 20px; z-index: 100; padding: 10px 20px; background: white; border: 2px solid var(--blue) }
.skip-link:focus { top: 8px }
.button { border: 1px solid transparent; padding: 10px 18px }
.button.secondary { color: var(--ink); background: white; border-color: #cbd5e1 }
.button.compact { padding: 7px 12px }
.workspace-sidebar, .report-workspace .report-nav { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); z-index: 30; background: #fafbfd; border-right: 1px solid var(--line); padding: 30px 18px; display: flex; flex-direction: column }
.workspace-brand { display: block; font: 600 22px var(--display); letter-spacing: .025em; color: #233f61; padding: 0 12px 34px }
.workspace-brand:hover { text-decoration: none }
.workspace-brand span { display: block; margin-top: 10px; font: 12px var(--body); letter-spacing: .1em; color: var(--muted) }
.nav-label { display: block; padding: 0 12px; color: var(--muted); font-size: 10px; margin: 7px 0 12px }
.workspace-sidebar nav, .report-workspace .report-nav nav { display: flex; flex-direction: column; gap: 6px; margin: 0 }
.workspace-sidebar nav a, .report-workspace .report-nav nav a { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 11px 12px; border-radius: 6px; color: #536277; font-size: 13px }
.workspace-sidebar nav a:hover, .report-workspace .report-nav nav a:hover { background: #eef2f7; text-decoration: none }
.workspace-sidebar nav a[aria-current], .report-workspace .report-nav nav a[aria-current] { background: #e7eefb; color: #28579a; font-weight: 650 }
.nav-symbol { width: 20px; text-align: center; font: 18px var(--display) }
.nav-count { margin-left: auto; font: 12px var(--number); padding: 2px 6px; background: #e4eaf3; border-radius: 4px; color: #536277 }
.sidebar-note { margin: auto 12px 0; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px }
.sidebar-note strong { color: #45576a; font-size: 12px; font-weight: 500 }
.sidebar-note p { margin-top: 7px; line-height: 1.9 }
.workspace-content { margin-left: var(--sidebar-width) }
.workspace-topbar, .report-workspace .topbar { min-height: 64px; height: auto; border-bottom: 1px solid var(--line); padding: 12px 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: white; font-size: 12px; color: var(--muted) }
.workspace-badge { color: #6d7a8c; font-size: 11px }
.breadcrumb-separator { margin: 0 12px; color: #a2adbb }
.workspace-main { max-width: 1536px; margin: auto; padding: 30px 32px }
.page-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 26px }
.page-heading h1 { font-size: 26px; font-weight: 650 }
.page-heading p { color: var(--muted); font-size: 12px; margin-top: 8px }
.workspace-stats { display: grid; grid-template-columns: 1fr 1fr 1.35fr; margin-bottom: 26px; background: white; border: 1px solid var(--line); border-radius: 8px }
.workspace-stats>a, .workspace-stats>div { min-width: 0; padding: 20px 24px; color: var(--ink) }
.workspace-stats>a:hover { text-decoration: none; background: #fafcff }
.workspace-stats>:not(:last-child) { border-right: 1px solid var(--line) }
.workspace-stats span { color: var(--muted); font-size: 12px }
.workspace-stats strong { display: block; font: 500 30px var(--number); margin: 9px 0 }
.workspace-stats strong small { font: 11px var(--body); color: var(--muted); margin-left: 8px }
.workspace-stats p { font-size: 11px; color: var(--muted) }
.workspace-stats .stat-period { font-size: 19px; line-height: 30px }
.workbench-grid { display: grid; grid-template-columns: minmax(0,1fr) 270px; gap: 24px; align-items: start; margin-bottom: 26px }
.workspace-panel { min-width: 0; background: white; border: 1px solid var(--line); border-radius: 8px; padding: 24px }
.panel-heading { display: flex; gap: 16px; align-items: center; justify-content: space-between; margin-bottom: 20px }
.panel-heading h2 { font-size: 18px }
.panel-heading p { font-size: 12px; color: var(--muted); margin-top: 7px }
.panel-heading .text-link { flex-shrink: 0 }
.optional { margin-left: 8px; font-size: 11px; font-weight: 400; color: var(--muted) }
.title-field { margin-top: 0 }
.workspace .field>input, .workspace .field>select { padding: 10px 12px; font-size: 12px }
input::placeholder { color: #788696 }
.upload-files { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 22px }
.workspace .file-field { min-width: 0; margin: 0; background: #fafcff; border: 1px dashed #bdccde; border-radius: 6px; padding: 16px; transition: border-color .15s, background .15s }
.workspace .file-field label { gap: 10px; margin-bottom: 18px }
.workspace .file-field label strong { font-size: 13px }
.workspace .file-field label small { font-size: 10px; line-height: 1.7 }
.workspace .file-symbol { width: 32px; height: 38px; flex: 0 0 32px; border-radius: 4px }
.required-mark { font-size: 10px; color: var(--muted); font-weight: 400; margin-left: 5px }
.workspace input[type=file] { font-size: 11px }
.workspace input[type=file]::file-selector-button { padding: 7px 10px; margin-right: 8px }
.workspace .file-status { font-size: 10px; margin-top: 10px; min-height: 18px }
.workspace .file-ready { border-style: solid; border-color: #94b5a9; background: #f7fbf9 }
.file-ready .file-status { color: var(--teal) }
.workspace .file-invalid { border-color: #c47d65; background: #fff8f6 }
.file-invalid .file-status { color: #a3442e }
.workspace .drag-over { border-color: var(--blue); background: var(--soft) }
.settings>summary span { font-size: 10px; color: var(--muted); margin-left: 8px }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px }
.submit-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; border-top: 1px solid var(--line); margin-top: 20px; padding-top: 20px }
.submit-row .submit-note { text-align: left; margin: 0 }
.submit-row .submit-button { min-width: 136px; width: auto; margin: 0; flex-shrink: 0; justify-content: center }
.guide-panel { padding: 26px 22px; border: 1px solid #dce5f2; border-radius: 8px; background: #edf2f9 }
.guide-kicker { color: #54729b; font-size: 11px }
.guide-panel h2 { margin: 10px 0 25px; font-size: 23px; line-height: 1.65; color: #334f75; font-weight: 600 }
.guide-steps { list-style: none; margin: 0; padding: 0; counter-reset: guide }
.guide-steps li { position: relative; padding: 0 0 24px 32px; counter-increment: guide }
.guide-steps li::before { content: counter(guide); position: absolute; top: 1px; left: 0; display: grid; place-items: center; width: 21px; height: 21px; border: 1px solid #bdcee5; border-radius: 50%; font: 11px var(--number); color: #46658d }
.guide-steps strong { font-size: 12px; font-weight: 600 }
.guide-steps p { font-size: 11px; color: #61738a; margin-top: 7px; line-height: 1.9 }
.guide-note { padding-top: 17px; border-top: 1px solid #d0dcea; font-size: 11px; color: #61738a }
.guide-note strong { color: #435e81; font-weight: 500 }
.guide-note p { margin-top: 6px; line-height: 1.9 }
.notice-message { padding: 14px 16px; background: var(--amber-bg); border: 1px solid #ead8b8; color: var(--amber); border-radius: 6px; margin-bottom: 20px; font-size: 12px }
.workspace-footer { display: flex; justify-content: space-between; gap: 14px; font-size: 10px; color: var(--muted); padding-top: 22px }
.history-filters { display: grid; grid-template-columns: minmax(180px,1fr) 180px auto auto auto; gap: 14px; align-items: end; padding: 16px; background: #f7f9fc; border: 1px solid var(--line); border-radius: 6px }
.history-filters label>span { display: block; font-size: 11px; color: var(--muted); margin-bottom: 6px }
.history-filters input[type=search], .history-filters select { min-height: 40px; min-width: 0 }
.review-filter { font-size: 12px; display: flex; align-items: center; gap: 5px; min-height: 40px; white-space: nowrap }
.history-filters>.text-link { padding: 10px 0 }
.filter-result { margin: 18px 0 12px; font-size: 11px; color: var(--muted) }
.history-table th:first-child { min-width: 250px; max-width: 320px; white-space: normal }
.report-title-link { display: block; color: var(--ink); font-size: 12px; line-height: 1.8; overflow-wrap: anywhere }
.report-title-link:hover { color: var(--blue) }
.history-meta { font: 11px var(--body); color: var(--muted) }
.history-meta small { display: block; font-size: 10px; margin-top: 4px }
.history-actions { font: 12px var(--body) }
.history-actions a+a { margin-left: 15px }
.review-tag { display: inline-block; color: var(--amber); background: var(--amber-bg); padding: 3px 7px; border-radius: 4px; font: 11px var(--body) }
.clear-tag { color: var(--teal); font: 11px var(--body) }
.history-pagination { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 20px; font-size: 11px; color: var(--muted) }
.history-pagination>div { display: flex; align-items: center; gap: 12px }
.empty-state .text-link { display: inline-block; margin-top: 16px }
.report-workspace .topbar { position: sticky; top: 0; z-index: 20; margin-left: var(--sidebar-width) }
.report-breadcrumb { white-space: nowrap }
.report-workspace .actions { gap: 12px }
.export-menu { position: relative }
.export-menu summary { cursor: pointer; list-style: none }
.export-menu summary::-webkit-details-marker { display: none }
.export-menu>div { position: absolute; top: calc(100% + 8px); right: 0; min-width: 180px; padding: 6px; border: 1px solid var(--line); background: white; border-radius: 6px; box-shadow: 0 8px 24px #243d5a12; z-index: 50 }
.export-menu a, .export-menu button { display: block; width: 100%; text-align: left; border: 0; background: white; padding: 10px; font: 12px var(--body); color: var(--ink) }
.export-menu a:hover, .export-menu button:hover { background: var(--soft); text-decoration: none }
.report-workspace .report-layout { display: block; max-width: none; margin: 0 0 0 var(--sidebar-width); padding: 28px 32px 24px }
.report-main { max-width: 1450px; margin: auto }
.report-back-links { display: grid; gap: 14px; padding: 0 12px 22px; margin-bottom: 18px; border-bottom: 1px solid var(--line); font-size: 12px }
.report-back-links a { color: var(--muted) }
.report-workspace .report-nav>p { margin: auto 12px 0; padding-top: 26px; font-size: 10px; color: var(--muted); line-height: 2 }
.report-heading { align-items: flex-start; margin-top: 0 }
.report-heading h1 { font: 650 26px/1.4 var(--body); overflow-wrap: anywhere; letter-spacing: 0 }
.report-period { font: 16px var(--number); margin-top: 12px }
.date-separator { padding: 0 10px; font: 11px var(--body); color: var(--muted) }
.report-heading p.muted { font-size: 11px }
.mode-tag { border-color: #cbd9ec; background: #edf3fc; color: #46638c; border-radius: 4px }
.metric { border-radius: 7px }
.metric strong { font-weight: 500 }
.metric.featured { background: #edf6f3; border-color: #bcd9cf; color: #236859 }
.metric.featured>span, .metric.featured p { color: #54756b }
.report-attention { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 14px 18px; margin: 18px 0 0; border: 1px solid var(--line); border-radius: 6px; background: white }
.report-attention strong { font-size: 12px; font-weight: 500 }
.report-attention p { color: var(--muted); font-size: 11px; margin-top: 4px }
.report-attention a { font-size: 12px; white-space: nowrap }
.report-attention.needs-review { border-left: 3px solid #c89c4c; background: #fffcf5 }
.overview-detail { margin-top: 14px; padding: 13px 18px; background: white; border: 1px solid var(--line); border-radius: 6px }
.overview-detail>summary { cursor: pointer; color: var(--blue); font-size: 12px }
.table-sort { border: 0; background: transparent; color: inherit; padding: 0; font: inherit; text-align: inherit; white-space: nowrap }
.table-sort span { margin-left: 5px; color: #8293a8 }
th[aria-sort=ascending] .table-sort span, th[aria-sort=descending] .table-sort span { color: var(--blue); font-size: 0 }
th[aria-sort=ascending] .table-sort span::after { content: '↑'; font-size: 11px }
th[aria-sort=descending] .table-sort span::after { content: '↓'; font-size: 11px }
.quick-filters { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 18px }
.quick-filters button { border: 1px solid var(--line); background: white; color: var(--muted); border-radius: 5px; padding: 7px 12px; font-size: 12px }
.quick-filters button[aria-pressed=true] { border-color: #b8cdeb; color: var(--blue); background: var(--soft) }
.order-controls { grid-template-columns: minmax(180px,1fr) 180px 130px auto }
.order-controls #order-reset { order: 4; min-height: 36px }
.page-size-label select { background: white; color: var(--blue); border: 1px solid #cbd5e1; border-radius: 5px; padding: 6px 8px; font-size: 12px }
@media(min-width:1500px) {
  .workbench-grid { grid-template-columns: minmax(0,1fr) 310px }
  .workspace-panel, .guide-panel { padding: 28px }
}
@media(max-width:1200px) {
  :root { --sidebar-width: 190px }
  .workspace-main, .report-workspace .report-layout { padding: 24px }
  .workspace-topbar, .report-workspace .topbar { padding-left: 24px; padding-right: 24px }
  .workspace-brand { font-size: 19px; padding-left: 6px }
  .workbench-grid { grid-template-columns: minmax(0,1fr) 230px; gap: 18px }
  .workspace-panel { padding: 20px }
  .upload-files { grid-template-columns: 1fr }
  .workspace-stats>a, .workspace-stats>div { padding: 18px }
  .workspace-stats .stat-period { font-size: 16px }
  .history-filters { grid-template-columns: minmax(180px,1fr) 160px auto }
  .history-filters>.text-link { justify-self: start }
  .metric { padding: 18px 14px }
  .metric strong { font-size: 24px }
}
@media(max-width:960px) {
  .workspace-sidebar { position: static; width: auto; padding: 16px 24px; border-right: 0; border-bottom: 1px solid var(--line); flex-direction: row; align-items: center; justify-content: space-between; gap: 18px }
  .workspace-sidebar .workspace-brand { padding: 0; font-size: 20px }
  .workspace-sidebar .workspace-brand span, .workspace-sidebar .nav-label, .sidebar-note, .workspace-sidebar .nav-symbol, .workspace-sidebar .nav-count { display: none }
  .workspace-sidebar nav { flex-direction: row; gap: 4px }
  .workspace-sidebar nav a { min-height: 36px; font-size: 12px; padding: 8px 10px }
  .workspace-content { margin-left: 0 }
  .workbench-grid { grid-template-columns: minmax(0,1fr) 250px }
  .report-workspace .topbar { margin-left: 0 }
  .report-workspace .report-layout { margin-left: 0; padding-top: 0 }
  .report-workspace .report-nav { position: sticky; inset: auto; top: 64px; width: auto; padding: 10px 0; border: 0; background: var(--paper); z-index: 10 }
  .report-workspace .report-nav>.workspace-brand, .report-workspace .report-nav>.nav-label, .report-workspace .report-nav>p, .report-back-links { display: none }
  .report-workspace .report-nav nav { flex-direction: row; overflow-x: auto; white-space: nowrap; gap: 4px; padding: 0 }
  .report-workspace .report-nav nav a { flex-shrink: 0; min-height: 36px; padding: 8px 10px; font-size: 12px }
  html { scroll-padding-top: 138px }
  .report-heading { margin-top: 12px }
  .metric strong { font-size: 27px }
}
@media(max-width:760px) {
  .workspace-sidebar { padding: 13px 16px; flex-wrap: wrap }
  .workspace-sidebar .workspace-brand { font-size: 18px }
  .workspace-sidebar nav a { font-size: 11px; padding: 7px 8px }
  .workspace-main, .report-workspace .report-layout { padding: 20px 16px }
  .report-workspace .report-layout { padding-top: 0 }
  .workspace-topbar { min-height: 44px; padding: 10px 16px; justify-content: flex-end }
  .workspace-topbar>span, .workspace-badge { display: none }
  .page-heading { align-items: flex-start; gap: 16px }
  .page-heading h1, .report-heading h1 { font-size: 23px }
  .page-heading p { font-size: 11px; max-width: 280px }
  .page-heading>.button { font-size: 11px; padding: 8px 10px }
  .workspace-stats { grid-template-columns: 1fr 1fr }
  .workspace-stats>div:last-child { grid-column: 1/-1; border-top: 1px solid var(--line) }
  .workspace-stats>:nth-child(2) { border-right: 0 }
  .workspace-stats>a, .workspace-stats>div { padding: 16px }
  .workspace-stats strong { font-size: 27px }
  .workspace-stats p { font-size: 10px }
  .workbench-grid { grid-template-columns: 1fr }
  .workspace-panel { padding: 20px 16px }
  .guide-panel { padding: 20px }
  .guide-panel h2 { font-size: 18px; margin-bottom: 18px }
  .guide-panel h2 br { display: none }
  .guide-steps li { padding-bottom: 18px }
  .upload-files { grid-template-columns: 1fr 1fr }
  .settings-grid { grid-template-columns: 1fr; gap: 0 }
  .panel-heading { align-items: flex-start; flex-wrap: wrap }
  .panel-heading h2 { font-size: 17px }
  .panel-heading p { font-size: 11px }
  .history-filters { grid-template-columns: 1fr 1fr; padding: 14px }
  .history-filters .search-label { grid-column: 1/-1 }
  .history-filters .button { justify-self: start }
  .workspace-footer { flex-direction: column; gap: 5px }
  .report-workspace .topbar { padding: 12px 16px; gap: 10px; flex-wrap: wrap }
  .report-breadcrumb { font-size: 11px }
  .report-workspace .actions { gap: 8px }
  .actions .text-link { display: none }
  .report-workspace .actions .compact { padding: 6px 9px; font-size: 11px }
  .report-heading { flex-direction: column; gap: 12px }
  .metric { padding: 17px 14px }
  .metric strong { font-size: clamp(20px,5vw,28px) }
  .report-attention { align-items: flex-start; flex-direction: column; gap: 9px; padding: 14px }
  .overview-detail { padding: 13px 14px }
  .order-controls { grid-template-columns: 1fr 1fr; gap: 12px }
  .order-controls #order-reset { grid-column: 2; justify-self: end }
  .order-pagination>div { gap: 8px; flex-wrap: wrap }
}
@media(max-width:480px) {
  .upload-files { grid-template-columns: 1fr }
  .workspace-sidebar { display: block }
  .workspace-sidebar nav { margin-top: 12px }
  .page-heading { flex-direction: column }
  .submit-row { flex-direction: column; gap: 12px; align-items: stretch }
  .submit-row .submit-note { text-align: left }
  .report-workspace .report-nav { top: 64px }
  .report-breadcrumb { display: none }
  .report-workspace .topbar { justify-content: flex-end; min-height: 64px }
  .mode-tag { white-space: normal }
}
@media(prefers-reduced-motion:reduce) { .workspace .file-field { transition: none } }
@media print {
  .report-workspace .topbar, .report-workspace .report-nav, .skip-link, .quick-filters, .order-controls, .order-pagination, .chart-legend { display: none !important }
  .report-workspace .report-layout { margin: 0; padding: 0 }
  .metric.featured { background: white }
  .table-scroll th, .table-scroll td { position: static !important; font-size: 9px }
  table { white-space: normal }
  .report-attention a { display: none }
  .overview-detail { border: 0; padding: 0 }
  .overview-detail>summary, .detail-preview>summary { color: var(--ink) }
  .chart-scroll { overflow: visible }
  .trend-svg { min-width: 0 }
  .table-sort span { display: none }
  .report-heading { margin-top: 0 }
}
/* Keep the desktop rail full height even when its navigation is short. */
@media(min-width:961px) { .report-workspace .report-nav { height: 100dvh; overflow-y: auto } }
.error-page { max-width: 640px; margin: 12vh auto; padding: 32px; background: white; border: 1px solid var(--line); border-radius: 8px }
.error-page h1 { font-size: 24px }
.error-page>p:not(.eyebrow) { margin: 18px 0 26px; color: var(--muted) }
.error-page .actions { flex-wrap: wrap }
@media(max-width:760px) { .error-page { margin: 36px 16px; padding: 24px } }
