/* ============================================================
   绿茵千顷 · 字号统一层
   目标：工具页面控制在 6 个常用文字层级内；少量 Hero/结果数字保留放大。
   说明：仅作用于屏幕显示，不覆盖工程图打印图框的 pt 字号。
   ============================================================ */

:root{
  --ry-fs-hero:36px;
  --ry-fs-display:30px;
  --ry-fs-kpi:22px;
  --ry-fs-title:16px;
  --ry-fs-card:14px;
  --ry-fs-body:13px;
  --ry-fs-note:12px;
  --ry-fs-tiny:11px;
}

@media screen{
  body:where(:not(.topbar *)){
    font-size:var(--ry-fs-body);
    line-height:1.5;
  }

  /* 顶部品牌 / 导航 */
  .brand-name:where(:not(.topbar *)),
  .ry-nav .brand-name:where(:not(.topbar *)),
  .wb-brand-name:where(:not(.topbar *)),
  .brand:where(:not(.topbar *)){
    font-size:var(--ry-fs-title) !important;
    line-height:1.25;
  }
  .brand-logo:where(:not(.topbar *)),
  .ry-nav .brand-logo:where(:not(.topbar *)),
  .wb-logo:where(:not(.topbar *)){
    font-size:15px !important;
  }
  .brand-sub:where(:not(.topbar *)),
  .ry-nav .brand-sub:where(:not(.topbar *)),
  .wb-brand-sub:where(:not(.topbar *)){
    font-size:var(--ry-fs-tiny) !important;
    line-height:1.35;
  }
  .nav-link:where(:not(.topbar *)),
  .ry-nav .nav-link:where(:not(.topbar *)),
  .nav-home-btn:where(:not(.topbar *)),
  .ry-nav .nav-home-btn:where(:not(.topbar *)),
  .wb-header-links a:where(:not(.topbar *)),
  .wb-nav a:where(:not(.topbar *)),
  .wb-side-actions a:where(:not(.topbar *)),
  .wb-side-actions button:where(:not(.topbar *)),
  .nav-link-pill:where(:not(.topbar *)),
  .sync-pill:where(:not(.topbar *)),
  .auth-btn:where(:not(.topbar *)){
    font-size:var(--ry-fs-body) !important;
  }

  /* 标题层级 */
  .section-title:where(:not(.topbar *)),
  .wb-section-title:where(:not(.topbar *)),
  .panel-heading h2:where(:not(.topbar *)),
  .detail-heading h2:where(:not(.topbar *)),
  .pipe-table-title h3:where(:not(.topbar *)),
  .control-card h2:where(:not(.topbar *)),
  .weather-title:where(:not(.topbar *)),
  .plot-board .board-head h2:where(:not(.topbar *)),
  .qp-head h2:where(:not(.topbar *)),
  .sec-head h2:where(:not(.topbar *)),
  .plan-head h3:where(:not(.topbar *)),
  .card h2:where(:not(.topbar *)),
  .no-print h1:where(:not(.topbar *)),
  aside h2:where(:not(.topbar *)),
  .tl-header h2:where(:not(.topbar *)),
  #areaTool .at-topbar h1:where(:not(.topbar *)),
  #pipePlanSection .pp-title:where(:not(.topbar *)),
  .pp-diagram-title:where(:not(.topbar *)){
    font-size:var(--ry-fs-title) !important;
    line-height:1.35;
  }
  .card h3:where(:not(.topbar *)),
  .panel h3:where(:not(.topbar *)),
  .wb-panel h3:where(:not(.topbar *)),
  .wb-list-head h3:where(:not(.topbar *)),
  .farm h3:where(:not(.topbar *)),
  .gate-card h2:where(:not(.topbar *)),
  .qp-modal-head h3:where(:not(.topbar *)),
  .diagram h3:where(:not(.topbar *)),
  .mock-title:where(:not(.topbar *)),
  .field-plan-head strong:where(:not(.topbar *)),
  .method-note>div>span:where(:not(.topbar *)){
    font-size:var(--ry-fs-card) !important;
    line-height:1.35;
  }

  /* 正文、表单、按钮、表格 */
  p:where(:not(.topbar *)),
  li:where(:not(.topbar *)),
  table:where(:not(.topbar *)),
  .ry-table:where(:not(.topbar *)),
  .wb-table:where(:not(.topbar *)),
  .selection-table:where(:not(.topbar *)),
  .control-card label:where(:not(.topbar *)),
  .field>span:where(:not(.topbar *)),
  .field label:where(:not(.topbar *)),
  .wb-field label:where(:not(.topbar *)),
  .wb-field input:where(:not(.topbar *)),
  .wb-field select:where(:not(.topbar *)),
  .wb-field textarea:where(:not(.topbar *)),
  input:where(:not(.topbar *)),
  select:where(:not(.topbar *)),
  textarea:where(:not(.topbar *)),
  button:where(:not(.topbar *)),
  .btn:where(:not(.topbar *)),
  .btn-primary:where(:not(.topbar *)),
  .btn-ghost:where(:not(.topbar *)),
  .ghost-button:where(:not(.topbar *)),
  .ghost-btn:where(:not(.topbar *)),
  .text-button:where(:not(.topbar *)),
  .primary-btn:where(:not(.topbar *)),
  .at-btn:where(:not(.topbar *)),
  .at-btn-action:where(:not(.topbar *)),
  .wb-btn:where(:not(.topbar *)),
  .wb-todo:where(:not(.topbar *)),
  .wb-rec-meta:where(:not(.topbar *)),
  .result-list:where(:not(.topbar *)),
  .result-list dd:where(:not(.topbar *)),
  .operation-card ol:where(:not(.topbar *)),
  .history-advice-card ol:where(:not(.topbar *)),
  .note p:where(:not(.topbar *)),
  .farm p:where(:not(.topbar *)),
  footer p:where(:not(.topbar *)){
    font-size:var(--ry-fs-body) !important;
  }
  th:where(:not(.topbar *)),
  td:where(:not(.topbar *)),
  .ry-table th:where(:not(.topbar *)),
  .ry-table td:where(:not(.topbar *)),
  .wb-table th:where(:not(.topbar *)),
  .wb-table td:where(:not(.topbar *)),
  .selection-table th:where(:not(.topbar *)),
  .selection-table td:where(:not(.topbar *)){
    font-size:var(--ry-fs-body) !important;
    line-height:1.5;
  }

  /* 辅助说明 */
  small:where(:not(.topbar *)),
  .sub:where(:not(.topbar *)),
  .wb-sub:where(:not(.topbar *)),
  .wb-muted:where(:not(.topbar *)),
  .field-hint:where(:not(.topbar *)),
  .tip:where(:not(.topbar *)),
  .src:where(:not(.topbar *)),
  .note-box:where(:not(.topbar *)),
  .pipe-table-note:where(:not(.topbar *)),
  .detail-heading p:where(:not(.topbar *)),
  .result-list dt:where(:not(.topbar *)),
  .wb-form-note:where(:not(.topbar *)),
  .wb-rec-remark:where(:not(.topbar *)),
  .wb-tl-date:where(:not(.topbar *)),
  .ii-meta:where(:not(.topbar *)),
  .pc-meta:where(:not(.topbar *)),
  .weather-metric span:where(:not(.topbar *)),
  .section-head span:where(:not(.topbar *)),
  .quiet-copy:where(:not(.topbar *)),
  .gate-card p:where(:not(.topbar *)),
  .plot-board-empty:where(:not(.topbar *)),
  .daily-advice:where(:not(.topbar *)),
  .chart-note:where(:not(.topbar *)){
    font-size:var(--ry-fs-note) !important;
    line-height:1.55;
  }

  /* 标签 / 徽章 */
  .tag:where(:not(.topbar *)),
  .mod-tag:where(:not(.topbar *)),
  .npill:where(:not(.topbar *)),
  .pipe-status:where(:not(.topbar *)),
  .live-pill:where(:not(.topbar *)),
  .live-pill-btn:where(:not(.topbar *)),
  .metric-label:where(:not(.topbar *)),
  .wb-status:where(:not(.topbar *)),
  .wb-nav a small:where(:not(.topbar *)),
  .wb-side-kicker:where(:not(.topbar *)),
  .wb-brand-sub:where(:not(.topbar *)),
  .prod .tag:where(:not(.topbar *)),
  .kpi small:where(:not(.topbar *)),
  .season-kpi span:where(:not(.topbar *)),
  .season-kpi em:where(:not(.topbar *)),
  .plot-card .pc-badge:where(:not(.topbar *)),
  .plot-card .pc-stage .pcs-label:where(:not(.topbar *)),
  .plot-card .pc-stage .pcs-days:where(:not(.topbar *)),
  .plot-card .pc-stage .pcs-target:where(:not(.topbar *)),
  .plot-card .pc-stage .pcs-foot:where(:not(.topbar *)),
  .plot-card .pc-stage-empty:where(:not(.topbar *)),
  .op-viewport-bar .op-cur:where(:not(.topbar *)),
  .op-view-detail:where(:not(.topbar *)),
  .legend:where(:not(.topbar *)),
  .legend .lab:where(:not(.topbar *)){
    font-size:var(--ry-fs-tiny) !important;
    line-height:1.45;
  }

  /* 数据/结果层级，保留必要强调但收窄跨度 */
  .wb-stat .value:where(:not(.topbar *)),
  .kpi strong:where(:not(.topbar *)),
  .card .cost:where(:not(.topbar *)),
  .total-line b:where(:not(.topbar *)),
  .donut .center b:where(:not(.topbar *)),
  .area-strip strong:where(:not(.topbar *)),
  .optimal-title strong:where(:not(.topbar *)),
  .diameter-grid strong:where(:not(.topbar *)),
  .pump-node strong:where(:not(.topbar *)),
  .network-summary strong:where(:not(.topbar *)),
  .result .big small:where(:not(.topbar *)){
    font-size:var(--ry-fs-kpi) !important;
    line-height:1.2;
  }
  .score-card strong:where(:not(.topbar *)),
  .result .big:where(:not(.topbar *)),
  .pump-metrics strong:where(:not(.topbar *)){
    font-size:var(--ry-fs-display) !important;
    line-height:1.08;
  }
  .hero h1:where(:not(.topbar *)),
  .hero-title:where(:not(.topbar *)),
  h1:where(:not(.topbar *)){
    font-size:var(--ry-fs-hero) !important;
    line-height:1.16;
  }
  .hero-copy h1:where(:not(.topbar *)){
    font-size:var(--ry-fs-kpi) !important;
    line-height:1.25;
  }
  .hero-copy:where(:not(.topbar *)),
  .hero-desc:where(:not(.topbar *)),
  .hero-copy .hero-sub:where(:not(.topbar *)),
  .hero-sub:where(:not(.topbar *)),
  .lead:where(:not(.topbar *)){
    font-size:15px !important;
    line-height:1.65;
  }
  .hero-note strong:where(:not(.topbar *)),
  .hero-note .summary-main strong:where(:not(.topbar *)),
  .hero-note .summary-area b:where(:not(.topbar *)),
  .chip b:where(:not(.topbar *)),
  footer .big:where(:not(.topbar *)){
    font-size:var(--ry-fs-display) !important;
    line-height:1.08;
  }
  .chip span:where(:not(.topbar *)),
  .hero p.sub:where(:not(.topbar *)),
  .section-sub:where(:not(.topbar *)){
    font-size:var(--ry-fs-card) !important;
  }

  /* 工具页特殊组件 */
  .confidence:where(:not(.topbar *)){font-size:var(--ry-fs-tiny) !important;}
  #areaTool .at-empty-state .big-icon:where(:not(.topbar *)),
  .pp-empty .big-icon:where(:not(.topbar *)){
    font-size:34px !important;
  }
  .history-advice-card:where(:not(.topbar *)),
  .dec-warn:where(:not(.topbar *)),
  .dec-note:where(:not(.topbar *)),
  .op-side-card b:where(:not(.topbar *)),
  .op-side-card span:where(:not(.topbar *)),
  .op-side-card ul:where(:not(.topbar *)),
  .op-single-block b:where(:not(.topbar *)),
  .op-single-block .op-list-text:where(:not(.topbar *)),
  .op-single-block .op-mix-text:where(:not(.topbar *)),
  .qp-modal-body:where(:not(.topbar *)){
    font-size:var(--ry-fs-body) !important;
  }
  #schedule table tbody td:where(:not(.topbar *)),
  #dailyLogTable td:where(:not(.topbar *)),
  #dailyLogTable th:where(:not(.topbar *)),
  #weatherLogTable td:where(:not(.topbar *)),
  #weatherLogTable th:where(:not(.topbar *)){
    font-size:var(--ry-fs-note) !important;
  }

  @media(max-width:640px){
    :root{
      --ry-fs-hero:26px;
      --ry-fs-display:26px;
      --ry-fs-kpi:20px;
      --ry-fs-title:15px;
      --ry-fs-card:14px;
      --ry-fs-body:13px;
      --ry-fs-note:12px;
      --ry-fs-tiny:11px;
    }
  }
}
