/* PC 后台可读性字号（第三轮验收标准） */
:root {
  --fs-body: 15px;
  --fs-ui: 14px;
  --fs-small: 13px;
  --fs-caption: 12px;
  --fs-h1: 30px;
  --fs-h2: 19px;
  --fs-stat: 34px;
  --lh-body: 1.6;
  --control-h: 42px;
  --ink-body: #3a5244;
  --ink-muted: #5c6e58;
}

body {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--ink-body);
}

h1 {
  font-size: var(--fs-h1) !important;
}

.heading-subtitle,
.notice,
.settings-panel p,
.detail-info p,
.help-list p {
  font-size: var(--fs-small) !important;
  color: var(--ink-muted) !important;
  line-height: 1.65 !important;
}

.nav-item,
.profile,
.button,
.field-control,
.segmented button,
.form-group input,
.form-group select,
.form-group textarea,
td,
.row-action,
.pagination button,
.summary-line,
.breadcrumb,
.topbar-actions,
.toolbar,
.modal-header p,
.form-group,
.confirm-body {
  font-size: var(--fs-ui) !important;
}

th,
.form-group label,
.stat-label,
.section-sub,
.project-meta,
.project-bottom,
.progress-header,
.chart-summary,
.legend,
.table-footer,
.eyebrow,
.detail-info small,
.category-head,
.info-row,
.stat-foot {
  font-size: var(--fs-small) !important;
}

.project-code,
.badge,
.project-metrics small,
.chart-axis,
.month-label,
.distribution-row,
.banner-tag,
.side-note > span:last-child {
  font-size: var(--fs-caption) !important;
}

.section-title,
.settings-panel h2,
.modal-header h2 {
  font-size: var(--fs-h2) !important;
}

.project-card h3,
.detail-hero h1,
.large-projects .project-card h3 {
  font-size: 18px !important;
}

.stat-value {
  font-size: var(--fs-stat) !important;
}

.field-control,
.button,
.form-group input,
.form-group select,
.form-group textarea {
  min-height: var(--control-h) !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.table-panel td {
  font-size: var(--fs-ui) !important;
  color: var(--ink-body) !important;
}

.table-panel th {
  font-size: var(--fs-small) !important;
}

.table-panel .amount {
  font-size: 15px !important;
}

.table-panel th.amount {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

@media (min-width: 1550px) {
  .stat-value {
    font-size: 36px !important;
  }
}

.workspace small,
.profile small,
.nav-label,
.nav-label span,
.distribution-foot,
.record-type,
.form-hint,
.project-metrics small,
.progress-header,
.project-bottom,
.banner-tag,
.side-note > span:last-child,
.chart-axis,
.month-label,
.stat-foot,
.eyebrow {
  font-size: var(--fs-caption) !important;
}

.nav-label {
  font-size: var(--fs-small) !important;
}

.form-hint,
.distribution-foot,
.notice {
  font-size: var(--fs-small) !important;
  color: var(--ink-muted) !important;
}

.analytics-grid.full-width {
  display: grid !important;
  grid-template-columns: 1fr !important;
}

.analytics-grid.compose-dual {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 22px !important;
  align-items: stretch !important;
}

.compose-panel {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.donut-wrap {
  position: relative;
}

.donut-center {
  pointer-events: none;
}

.distribution-row {
  border: none;
  background: transparent;
  width: 100%;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  padding: 4px 0;
}

.distribution-row:disabled {
  opacity: 0.45;
  cursor: default;
}

.ledger-filter-more {
  margin: 12px 0;
  padding: 16px;
}

.filter-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0;
}

.filter-tags .pill {
  cursor: pointer;
}

@media (max-width: 1250px) {
  .analytics-grid.compose-dual {
    grid-template-columns: 1fr !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .distribution-row,
  .donut-wrap circle {
    transition: none !important;
  }
}
