/* Shared desktop typography scale. Font sizes only; layout and colors remain page-owned. */
@media (min-width:681px) and (min-height:501px), (min-width:951px) {
  body { font-size:13px !important; }

  button,
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  select,
  textarea,
  .btn,
  .input,
  .select,
  .data-row,
  .history-item,
  .product-card { font-size:13px !important; }

  label,
  .field > label,
  .form-grid label,
  th,
  .table th,
  .quote-table th,
  .quote-head,
  .order-head,
  .payment-head,
  .history-grid-head,
  .data-head,
  .dialog label,
  .modal label,
  .overlay label,
  .payment-overlay label { font-size:12px !important; }

  h2,
  h3,
  .page-head h2,
  .dialog-head h3,
  .section-title,
  .card h3 { font-size:16px !important; }

  td,
  .table td,
  .quote-table td,
  .quote-item,
  .quote-item [data-label="项目"],
  .order-item,
  .payment-row,
  .dialog-body,
  .modal-status,
  .dialog-status { font-size:12px !important; }

  small,
  .hint,
  .muted,
  .count,
  .status-pill,
  .dialog-head p,
  .page-head p,
  .field-error,
  .form-error { font-size:11px !important; }

  /* Shared desktop action-icon scale: quote table is the visual baseline. */
  button [data-icon],
  button .ui-icon,
  button svg { width:12px !important; height:12px !important; min-width:12px !important; min-height:12px !important; max-width:12px !important; max-height:12px !important; flex-basis:12px !important; padding:0 !important; box-sizing:border-box !important; }

  .size-edit [data-icon],
  .size-edit svg,
  .summary-edit [data-icon],
  .summary-edit svg,
  .image-remove-hit svg,
  .product-audit-button svg,
  .circle svg,
  .icon-btn svg,
  .delete-row svg { width:12px !important; height:12px !important; min-width:12px !important; min-height:12px !important; max-width:12px !important; max-height:12px !important; padding:0 !important; box-sizing:border-box !important; }

  button.size-edit.size-edit [data-icon],
  button.size-edit.size-edit svg,
  button.summary-edit.summary-edit [data-icon],
  button.summary-edit.summary-edit svg { width:12px !important; height:12px !important; min-width:12px !important; min-height:12px !important; max-width:12px !important; max-height:12px !important; }

  .btn.icon:not([data-icon-button-size]),
  .icon-btn,
  .icon-action,
  .op-icon,
  .action-icon,
  .edit-head,
  .circle,
  .circle-plus,
  .x-del,
  .drag-handle,
  .save-row,
  .save-public,
  .image-remove-hit,
  .recent-preview,
  .delete-customer,
  .product-audit-button,
  .summary-edit,
  button[aria-label]:not([data-icon-button-size]):has(> [data-icon]:only-child),
  button[aria-label]:not([data-icon-button-size]):has(> .ui-icon:only-child),
  button[aria-label]:not([data-icon-button-size]):has(> svg.lucide:only-child) {
    width:21px !important;
    min-width:21px !important;
    height:21px !important;
    min-height:21px !important;
    padding:0 !important;
  }

  /* Div-based data pages use the same scale as standard tables. */
  .statement-head,
  .cash-head,
  .history-table th,
  .order-picker th,
  .product-detail th,
  .statement-detail th,
  .analytics-range label,
  .metric span,
  .custom-range span,
  .range-label,
  .status-metric span { font-size:12px !important; }

  .statement-row,
  .history-table,
  .order-picker,
  .product-detail,
  .statement-detail,
  .preview-order-field,
  .cash-row,
  .ranking-item,
  .ranking-name,
  .ranking-amount,
  .month-value,
  .month-label,
  .confirm-message,
  .totals,
  .empty { font-size:12px !important; }

  .metric strong,
  .summary-item strong,
  .status-metric strong { font-size:16px !important; }

  .range-error,
  .date-range-label,
  .dialog-status,
  .batch-status,
  .record-count,
  #recordCount,
  .history-section-head span,
  .ranking-index { font-size:11px !important; }

  .status-metric strong::after { font-size:11px !important; }
}

html {
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

/* Cover Safari mobile layouts and "Request Desktop Website" touch layouts. */
@media (max-width:680px), (hover:none) and (pointer:coarse) {
  @supports (-webkit-touch-callout:none) {
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
    select,
    textarea {
      font-size:16px !important;
    }
  }
}
