/*
 * font-scale.css — 全局字号层级与响应式适配
 *
 * 这是独立的最后加载覆盖层，专门处理字号，不改业务结构和数据逻辑。
 * 如需回退，只需移除 index.html 中本文件的 link，或回到 codex/font-size-baseline。
 */

:root {
  --ui-font-body: 15px;
  --ui-font-title: 20px;
  --ui-font-section: 17px;
  --ui-font-subtitle: 14px;
  --ui-font-control: 13.5px;
  --ui-font-caption: 12px;
  --ui-font-micro: 11.5px;
  --ui-line-body: 1.6;
  --ui-line-compact: 1.45;
}

html,
body {
  font-size: var(--ui-font-body);
  line-height: var(--ui-line-body);
}

button,
input,
select,
textarea {
  font-family: inherit;
}

/* 顶部导航与全局通用控件 */
.system-title { font-size: 20px !important; }
.system-subtitle { font-size: 12px !important; }
.nav-item { font-size: 14px !important; }
.nav-info-item { font-size: 13px !important; }
.user-avatar { font-size: 13px !important; }
.user-name { font-size: 13px !important; }
.backend-status,
.status-text { font-size: var(--ui-font-caption) !important; }
.panel-title { font-size: 15px !important; }
.panel-subtitle { font-size: var(--ui-font-caption) !important; }

/* 态势总览：主界面优先保证可读性 */
#page-overview .panel-left .panel-title,
#page-overview .panel-right .panel-title,
#page-overview #digitalTwinPanel .panel-title { font-size: 15px !important; }
#page-overview .overview-scope-label { font-size: 12px !important; }
#page-overview .overview-panel-meta { font-size: 12px !important; }
#page-overview .section-label { font-size: 13px !important; }
#page-overview .metric-label { font-size: 13px !important; }
#page-overview .metric-value { font-size: 13.5px !important; }
#page-overview .scenario-btn { font-size: 13.5px !important; }
#page-overview .scenario-name { font-size: 14px !important; line-height: 1.4 !important; }
#page-overview .scenario-desc { font-size: 12px !important; line-height: 1.5 !important; }
#page-overview .scope-control-row label,
#page-overview .scope-select,
#page-overview .scope-hint,
#page-overview .scope-empty { font-size: 12px !important; }
#page-overview .agent-input-label { font-size: 13px !important; }
#page-overview #agentTaskInput { font-size: 13.5px !important; line-height: 1.55 !important; }
#page-overview .agent-task-input { font-size: 13.5px !important; line-height: 1.55 !important; }
#page-overview .btn-agent-start { font-size: 13.5px !important; }
#page-overview .agent-step-item { font-size: 13px !important; line-height: 1.4 !important; }
#page-overview .agent-step-item .step-name { font-size: 13px !important; }
#page-overview .agent-step-item .step-tool { font-size: 11.5px !important; }
#page-overview .step-duration { font-size: 11.5px !important; }
#page-overview .result-header { font-size: 13.5px !important; }
#page-overview .result-risk-label { font-size: 12px !important; }
#page-overview .result-risk-value { font-size: 14.5px !important; }
#page-overview .btn-result-action { font-size: 13px !important; }
#page-overview .analysis-title { font-size: 14px !important; }
#page-overview .analysis-card-body,
#page-overview .risk-reasons ol,
#page-overview .suggest-list { font-size: 13px !important; line-height: 1.65 !important; }
#page-overview .subsection-title { font-size: 12.5px !important; }
#page-overview .analysis-badge { font-size: 11.5px !important; }
#page-overview .risk-stat-label { font-size: 12px !important; }
#page-overview .risk-stat-value { font-size: 18px !important; }
#page-overview .agent-mode-hint { font-size: 12px !important; }
#page-overview .agent-chat-body .chat-msg { font-size: 13px !important; line-height: 1.6 !important; }
#page-overview .simulink-label,
#page-overview .simulink-note { font-size: 11.5px !important; }
#page-overview .flow-step { font-size: 11.5px !important; }
#page-overview .region-float-name { font-size: 14.5px !important; }
#page-overview .region-float-id { font-size: 12px !important; }
#page-overview .region-float-row { font-size: 13px !important; }
#page-overview .three-district-label { font-size: 14.5px !important; }

/* 风险推演工作台 */
#page-risk .risk-sidebar-header { font-size: 15px !important; }
#page-risk .risk-source-task-label,
#page-risk .risk-source-task-stats,
#page-risk .risk-source-stat { font-size: var(--ui-font-caption) !important; }
#page-risk .risk-source-task-id { font-size: 11.5px !important; }
#page-risk .risk-source-task-query { font-size: 13px !important; }
#page-risk .risk-config-label,
#page-risk .risk-param-name,
#page-risk .risk-param-value { font-size: 13px !important; }
#page-risk .risk-scenario-description,
#page-risk .risk-scenario-recommendation-reason { font-size: 13px !important; }
#page-risk .risk-scenario-recommendation-title,
#page-risk .risk-section-title { font-size: 16px !important; }
#page-risk .risk-scenario-btn,
#page-risk .risk-history-scenario,
#page-risk .risk-history-time { font-size: 13px !important; }
#page-risk .risk-btn-start { font-size: 13.5px !important; }
#page-risk .risk-progress-text,
#page-risk .risk-step-name { font-size: 13px !important; }
#page-risk .risk-step-tool,
#page-risk .risk-step-duration { font-size: 11.5px !important; }
#page-risk .risk-compare-label,
#page-risk .risk-compare-note,
#page-risk .risk-card-header { font-size: 13px !important; }
#page-risk .risk-score-num { font-size: 27px !important; }
#page-risk .risk-score-sub,
#page-risk .risk-score-delta-label,
#page-risk .risk-period-label,
#page-risk .risk-period-text { font-size: 13px !important; }
#page-risk .risk-score-delta-num { font-size: 19px !important; }
#page-risk .risk-plan-title { font-size: 16px !important; }
#page-risk .risk-plan-feasibility,
#page-risk .risk-plan-metric-label,
#page-risk .risk-plan-parameters-label { font-size: 12px !important; }
#page-risk .risk-plan-metric-value,
#page-risk .risk-plan-desc,
#page-risk .risk-plan-scenario,
#page-risk .risk-plan-parameter-chip,
#page-risk .risk-plan-btn { font-size: 13px !important; }

/* 智能分析页 */
#page-analysis .ana-sidebar-header { font-size: 15px !important; }
#page-analysis .ana-task-label,
#page-analysis .agent-task-range-title,
#page-analysis .ana-task-info-label { font-size: 12px !important; }
#page-analysis .ana-task-input,
#page-analysis .ana-preset-btn,
#page-analysis .ana-btn-start,
#page-analysis .ana-btn-back-overview { font-size: 13.5px !important; }
#page-analysis .ana-task-info-value,
#page-analysis .ana-card-title,
#page-analysis .ana-section-title { font-size: 15px !important; }
#page-analysis .ana-card-body,
#page-analysis .ana-result-body,
#page-analysis .ana-result-text { font-size: 13.5px !important; line-height: 1.65 !important; }
#page-analysis .ana-badge,
#page-analysis .ana-meta,
#page-analysis .ana-chart-label { font-size: 12px !important; }

/* 知识库 */
#page-knowledge .kb-sidebar-header,
#page-knowledge .kb-card-title,
#page-knowledge .kb-detail-title { font-size: 15px !important; }
#page-knowledge .kb-search-input,
#page-knowledge .kb-rag-input,
#page-knowledge .kb-btn-rag,
#page-knowledge .kb-sort-select { font-size: 13.5px !important; }
#page-knowledge .kb-cat-btn,
#page-knowledge .kb-card-summary,
#page-knowledge .kb-card-meta,
#page-knowledge .kb-card-btn,
#page-knowledge .kb-rag-answer,
#page-knowledge .kb-rag-conclusion,
#page-knowledge .kb-detail-value { font-size: 13px !important; }
#page-knowledge .kb-stat-label,
#page-knowledge .kb-detail-label,
#page-knowledge .kb-badge,
#page-knowledge .kb-kw-tag { font-size: 11.5px !important; }

/* 报告中心 */
#page-report .report-sidebar-header,
#page-report .report-view-title { font-size: 20px !important; }
#page-report .report-stat-label,
#page-report .report-list-item-meta,
#page-report .report-badge,
#page-report .report-action-btn { font-size: 13px !important; }
#page-report .report-stat-num { font-size: 27px !important; }
#page-report .report-list-item-name,
#page-report .report-real-panel-title,
#page-report .report-real-panel-button { font-size: 14px !important; }
#page-report .report-real-panel-meta,
#page-report .report-real-meta { font-size: 13px !important; }
#page-report .report-section-title { font-size: 16px !important; }
#page-report .report-section-body,
#page-report .report-edit-textarea,
#page-report .report-review-input { font-size: 13.5px !important; }
#page-report .report-markdown { font-size: 15px !important; line-height: 1.85 !important; }

/* 通用弹窗与提示：统一层级，但不放大图表 SVG/canvas 内部文字 */
.dialog-title,
.dialog-header h3 { font-size: 19px !important; }
.dialog-section h4,
.dialog-stat-label { font-size: 13px !important; }
.dialog-list,
.dialog-effect,
.dialog-safety,
.btn-dialog { font-size: 14px !important; }

/* 首页底部风险事件轴：放大文字，保持时间轴与图表尺寸不变。 */
#bottomArea .risk-timeline .rt-title { font-size: 13px !important; }
#bottomArea .risk-timeline .rt-region,
#bottomArea .risk-timeline .rt-region-cell { font-size: 11px !important; }
#bottomArea .risk-timeline .rt-axis,
#bottomArea .risk-timeline .rt-axis-cell--labels,
#bottomArea .risk-timeline .rt-axis-time { font-size: 10.5px !important; }
#bottomArea .risk-timeline .rt-date-label,
#bottomArea .risk-timeline .rt-now-label { font-size: 11px !important; }
#bottomArea .risk-timeline .rt-legend { font-size: 11px !important; }

/* 断点规则：宽度变窄时保持正文可读，只压缩标题和导航，避免横向溢出。 */
@media (max-width: 1399px) {
  :root { --ui-font-body: 14.5px; }
  .system-title { font-size: 19px !important; }
  .nav-item { font-size: 13.5px !important; padding-left: 12px !important; padding-right: 12px !important; }
  #page-overview .metric-label { font-size: 12.5px !important; }
  #page-overview .metric-value { font-size: 13px !important; }
}

@media (max-width: 1199px) {
  :root { --ui-font-body: 14px; }
  .top-nav { padding-left: 18px !important; padding-right: 18px !important; }
  .nav-item { font-size: 13px !important; padding-left: 9px !important; padding-right: 9px !important; }
  .nav-right { gap: 10px !important; }
  .nav-info-item { font-size: 12.5px !important; }
  #page-overview .scenario-name { font-size: 13.5px !important; }
  #page-overview .scenario-desc { font-size: 11.5px !important; }
  #page-overview .agent-step-item,
  #page-overview .agent-step-item .step-name { font-size: 12px !important; }
  #page-overview .analysis-card-body,
  #page-overview .risk-reasons ol,
  #page-overview .suggest-list { font-size: 12px !important; }
}

@media (max-width: 768px) {
  :root { --ui-font-body: 13.5px; }
  .top-nav { padding-left: 12px !important; padding-right: 12px !important; }
  .system-title { font-size: 17px !important; }
  .system-subtitle,
  .nav-info-item,
  .user-name { display: none !important; }
  .nav-item { font-size: 12.5px !important; padding-left: 7px !important; padding-right: 7px !important; }
  #page-overview .metric-label,
  #page-overview .metric-value { font-size: 12.5px !important; }
  #page-overview .panel-left:not(.collapsed),
  #page-overview .panel-right:not(.collapsed) { max-width: 280px !important; }
  #page-overview .scenario-name,
  #page-overview .agent-step-item .step-name { font-size: 12.5px !important; }
  #page-risk .risk-plan-title,
  #page-analysis .ana-card-title { font-size: 14px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .font-scale-transition { transition: none !important; }
}
