/* Escala de leitura e toque compartilhada, preservando o desenho atual. */
.module-head h1, .contract-head h1 { font-size: 24px; }
.module-head p, .contract-head p { font-size: 12px; line-height: 1.45; }
.back-button, .module-add, .contract-head-add, .contract-more,
.item-edit, .icon-button, .contract-cancel, .contract-primary,
.contract-outline, .link-button { min-height: 42px; font-size: 12px; }
.contract-form { gap: 14px; padding: 16px; }
.contract-form label, dialog label { font-size: 13px; }
.contract-form label > small, dialog label small { font-size: 11px; }
.contract-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.contract-form select, .contract-form textarea,
dialog input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
dialog select, dialog textarea { min-height: 46px; font-size: 14px; }
.contract-form summary { min-height: 44px; padding: 13px; font-size: 13px; }
.contract-equipment-card { min-height: 72px; padding: 11px; }
.contract-equipment-card b { font-size: 13px; }
.contract-equipment-card small, .contract-equipment-card em { font-size: 11px; line-height: 1.35; }
.contract-order-card { padding: 13px; }
.contract-order-card > div:first-child b, .contract-order-card footer > b { font-size: 12px; }
.contract-order-card time { font-size: 11px; }
.contract-order-card > strong { font-size: 13px; }
.contract-order-card > p { font-size: 12px; line-height: 1.4; }
.contract-order-card > button { min-height: 40px; height: auto; font-size: 12px; }
.detail-summary span, .order-hero dt { font-size: 11px; }
.detail-summary b, .order-hero dd { font-size: 13px; }
.detail-summary p, .feature-note { font-size: 12px; line-height: 1.45; }
.settings-group button { min-height: 60px; }
.settings-group button small, .settings-features small { font-size: 12px; line-height: 1.4; }

@media (max-width: 800px) {
  .view { font-size: 14px; }
  .view input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .view select,
  .view textarea,
  dialog input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  dialog select,
  dialog textarea { min-height: 48px; padding: 12px 13px; font-size: 16px; line-height: 1.35; }
  .view textarea, dialog textarea { min-height: 96px; }
  .view label, dialog label { font-size: 13px; }
  .view label small, dialog label small,
  .module-head p, .contract-head p { font-size: 12px; line-height: 1.45; }
  .back-button, .module-add, .contract-head-add, .contract-more,
  .item-edit, .icon-button, .link-button, .contract-cancel,
  .contract-primary, .contract-outline { min-height: 44px; font-size: 12px; }
  .back-button { width: 44px; height: 44px; }
  .module-head, .contract-head { grid-template-columns: 44px minmax(0,1fr) auto; gap: 11px; margin-bottom: 17px; }
  .module-head h1, .contract-head h1 { font-size: 24px; line-height: 1.12; }
  .module-info, .contract-context, .feature-note { padding: 14px; font-size: 12px; line-height: 1.5; }
  .status { padding: 6px 9px; font-size: 11px; }
  .empty-state b { font-size: 15px; }
  .empty-state span { font-size: 12px; line-height: 1.45; }

  .contract-form { gap: 15px; padding: 16px; }
  .contract-form label { gap: 7px; font-size: 13px; }
  .contract-form label > small { font-size: 11px; }
  .contract-form summary { min-height: 46px; padding: 14px; font-size: 13px; }
  .contract-form-inner { gap: 13px; padding: 0 13px 13px; }
  .contract-switch, .same-phone { min-height: 48px; padding: 11px; font-size: 13px !important; }
  .contract-switch input, .same-phone input,
  .settings-features input, .notification-options input { width: 24px !important; height: 24px !important; }
  .contract-actions { gap: 10px; }
  .contract-actions button, .dialog-actions button { min-height: 48px; font-size: 14px; }

  .module-search, .contract-search { min-height: 50px; height: auto; padding: 0 14px; }
  .module-search input, .contract-search input { min-height: 46px !important; font-size: 15px !important; }
  .filter-row .chip, .client-filters button, .task-contract-filters button { min-height: 42px; padding: 9px 15px; font-size: 12px; }
  .catalog-item, .stock-item, .movement-item,
  .task-item, .user-item, .equipment-item, .order-item,
  .event-item, .ranking-item { padding: 15px; gap: 12px; }
  .catalog-item h3, .stock-item h3, .movement-item h3,
  .task-item h3, .user-item h3, .equipment-item h3, .order-item h3 { font-size: 15px; }
  .catalog-item p, .stock-item p, .movement-item p,
  .task-item p, .user-item p, .equipment-item p, .order-item p { font-size: 12px; line-height: 1.4; }
  .task-item small, .user-item small, .event-item small,
  .ranking-item small, .stock-tag { font-size: 11px; }

  .settings-account { padding: 18px; }
  .settings-account strong { font-size: 16px; }
  .settings-account span, .settings-group button small,
  .settings-features small { font-size: 12px; line-height: 1.4; }
  .settings-group-title { margin: 21px 3px 10px; font-size: 12px; }
  .settings-group button { min-height: 66px; grid-template-columns: 38px minmax(0,1fr) auto; gap: 12px; padding: 15px; font-size: 14px; }
  .settings-group button > span { font-size: 19px; }
  .settings-features label, .notification-options label { min-height: 62px; padding: 15px; }

  .report-period label { font-size: 13px; }
  .report-period button { min-height: 48px; font-size: 14px; }
  .report-summary > div { min-height: 92px; padding: 17px; }
  .report-summary span { font-size: 11px; }
  .report-summary strong { font-size: 22px; }
  .ranking-item strong { font-size: 14px; }

  .today-order { padding: 16px; }
  .today-time span, .today-time small, .today-main span, .today-side small { font-size: 11px; line-height: 1.35; }
  .today-main b { font-size: 14px; }
  .today-order > p { font-size: 12px; }
  .today-order > button { min-height: 44px; font-size: 12px; }
  .home-related-task { min-height: 66px; padding: 11px 12px; }
  .home-related-task strong { font-size: 13px; }
  .home-related-task small { font-size: 11px; line-height: 1.35; white-space: normal; }
  .home-related-task > button { min-height: 40px; font-size: 12px; }

  .agenda-contract-card, .agenda-task-card { padding: 13px; }
  .agenda-order-main b, .agenda-task-card b { font-size: 13px; }
  .agenda-order-main small, .agenda-order-main em, .agenda-task-card small { font-size: 11px; line-height: 1.4; }
  .agenda-contract-card > button, .agenda-task-card > button { min-height: 42px; font-size: 12px; }
  .agenda-calendar button { min-height: 38px; font-size: 12px; }

  .order-hero { padding: 18px; }
  .order-hero h2 { font-size: 19px; }
  .order-hero p, .order-total span { font-size: 13px; line-height: 1.45; }
  .order-hero dt, .execution-problem span, .execution-timer > span { font-size: 11px; }
  .order-hero dd, .execution-customer small, .execution-timer small { font-size: 12px; }
  .order-status-actions button { min-height: 42px; font-size: 12px; }
  .execution-problem { padding: 14px; }

  dialog .dialog-card { padding: 23px 20px; }
  dialog .dialog-head h2 { font-size: 22px; }
  dialog .close-button { width: 44px; height: 44px; }
  dialog .form-grid { gap: 15px; }
  .charge-detail-row { padding: 15px 0; font-size: 13px; }
  #chargeDetailContent h3 { font-size: 16px; }
}

/* Detalhe do Cliente: prioridade de leitura e alvos de toque. */
#view-client-detail .client-detail-hero { grid-template-columns: 52px minmax(0,1fr) auto; gap: 12px; padding: 16px; border-radius: 16px; }
#view-client-detail .client-detail-avatar { width: 52px; height: 52px; font-size: 19px; }
#view-client-detail .client-detail-hero h2 { font-size: 18px; line-height: 1.25; }
#view-client-detail .client-detail-hero p { margin: 5px 0; font-size: 12px; line-height: 1.35; }
#view-client-detail .client-detail-hero span { font-size: 11px; }
#view-client-detail .client-detail-hero > button { min-height: 42px; padding: 9px 12px; font-size: 12px; }
#view-client-detail .client-quick-actions { gap: 9px; margin: 10px 0; }
#view-client-detail .client-quick-actions button { min-height: 46px; height: auto; font-size: 13px; }
#view-client-detail .client-detail-data { gap: 10px; padding: 14px; border-radius: 15px; }
#view-client-detail .client-detail-data > div { min-height: 61px; padding: 11px; }
#view-client-detail .client-detail-data span { font-size: 10px; letter-spacing: .04em; }
#view-client-detail .client-detail-data b { margin-top: 5px; font-size: 13px; line-height: 1.35; }
#view-client-detail .client-detail-data > p { padding: 11px; font-size: 12px; line-height: 1.45; }
#view-client-detail .contract-section-head { margin: 19px 2px 9px; }
#view-client-detail .contract-section-head h2 { font-size: 16px; }
#view-client-detail .contract-section-head button { min-height: 40px; padding: 8px 10px; font-size: 12px; }
#view-client-detail .contract-equipment-card { min-height: 76px; grid-template-columns: 42px minmax(0,1fr) 16px; gap: 11px; padding: 12px; }
#view-client-detail .contract-equipment-card > span { width: 42px; height: 42px; }
#view-client-detail .contract-equipment-card b { font-size: 13px; }
#view-client-detail .contract-equipment-card small,
#view-client-detail .contract-equipment-card em { font-size: 11px; line-height: 1.35; }
#view-client-detail .contract-order-card { padding: 13px; }
#view-client-detail .contract-order-card > div:first-child b,
#view-client-detail .contract-order-card footer > b { font-size: 12px; }
#view-client-detail .contract-order-card time { font-size: 11px; }
#view-client-detail .contract-order-card > strong { font-size: 13px; }
#view-client-detail .contract-order-card > p { font-size: 12px; line-height: 1.4; }
#view-client-detail .contract-order-card > button { min-height: 42px; height: auto; font-size: 12px; }
#view-client-detail > .contract-primary { min-height: 49px; margin-top: 12px; font-size: 14px; }

@media (max-width: 360px) {
  #view-client-detail .client-detail-hero { grid-template-columns: 48px minmax(0,1fr); }
  #view-client-detail .client-detail-hero > button { grid-column: 1/-1; width: 100%; }
  #view-client-detail .client-detail-data { grid-template-columns: 1fr; }
  #view-client-detail .client-detail-data .wide,
  #view-client-detail .client-detail-data > p { grid-column: auto; }
}

/* Equipamento e histórico: escala confortável sem alterar a composição. */
#view-equipment-detail .equipment-detail-hero { padding: 17px; border-radius: 17px; }
#view-equipment-detail .equipment-detail-hero > div:first-child { gap: 13px; }
#view-equipment-detail .equipment-detail-hero > div:first-child > span { width: 50px; height: 50px; font-size: 22px; }
#view-equipment-detail .equipment-detail-hero h2 { font-size: 19px; line-height: 1.25; }
#view-equipment-detail .equipment-detail-hero p { margin: 5px 0; font-size: 12px; line-height: 1.4; }
#view-equipment-detail .equipment-detail-hero em { font-size: 11px; line-height: 1.35; }
#view-equipment-detail .equipment-detail-hero > div:last-child { gap: 10px; margin-top: 14px; }
#view-equipment-detail .equipment-detail-hero button { min-height: 44px; height: auto; font-size: 13px; }
#view-equipment-detail .equipment-detail-data { gap: 10px; padding: 14px; border-radius: 16px; }
#view-equipment-detail .equipment-detail-data > div { min-height: 62px; padding: 12px; }
#view-equipment-detail .equipment-detail-data span { font-size: 10px; letter-spacing: .04em; }
#view-equipment-detail .equipment-detail-data b { margin-top: 5px; font-size: 14px; line-height: 1.35; }
#view-equipment-detail .equipment-detail-data > p { padding: 12px; font-size: 13px; line-height: 1.45; }
#view-equipment-detail .contract-section-head,
#view-equipment-history .contract-section-head { margin: 20px 2px 10px; }
#view-equipment-detail .contract-section-head h2 { font-size: 17px; }
#view-equipment-detail .contract-section-head > span { font-size: 11px; }
#view-equipment-detail .contract-order-card,
#view-equipment-history .contract-order-card { padding: 14px; border-radius: 14px; }
#view-equipment-detail .contract-order-card > div:first-child b,
#view-equipment-detail .contract-order-card footer > b,
#view-equipment-history .contract-order-card > div:first-child b,
#view-equipment-history .contract-order-card footer > b { font-size: 13px; }
#view-equipment-detail .contract-order-card time,
#view-equipment-history .contract-order-card time { font-size: 11px; }
#view-equipment-detail .contract-order-card > strong,
#view-equipment-history .contract-order-card > strong { margin-top: 9px; font-size: 14px; }
#view-equipment-detail .contract-order-card > p,
#view-equipment-history .contract-order-card > p { margin: 6px 0 9px; font-size: 12px; line-height: 1.45; }
#view-equipment-detail .contract-order-card > button,
#view-equipment-history .contract-order-card > button { min-height: 44px; height: auto; font-size: 12px; }
#view-equipment-detail .contract-outline { min-height: 48px; margin-top: 11px; font-size: 14px; }
#view-equipment-history .contract-context { margin-bottom: 13px; }
#view-equipment-history .contract-context span { font-size: 10px; }
#view-equipment-history .contract-context strong { margin-top: 5px; font-size: 14px; line-height: 1.35; }
#view-equipment-history .client-filters { gap: 8px; overflow-x: auto; }
#view-equipment-history .client-filters button { min-height: 42px; padding: 10px 15px; font-size: 12px; white-space: nowrap; }
#view-equipment-history .history-summary { gap: 10px; margin: 13px 0; }
#view-equipment-history .history-summary > div { min-height: 78px; padding: 14px; }
#view-equipment-history .history-summary span { font-size: 10px; line-height: 1.3; }
#view-equipment-history .history-summary strong { margin-top: 6px; font-size: 20px; }

/* Cobranças: busca e filtros com alvos de toque consistentes. */
.charge-search { max-width: none; margin-bottom: 12px; }
.charge-filters { margin-bottom: 18px; }

/* Detalhe da OS: ações próximas do total e controles de item compactos. */
.order-data-edit { width: 100%; min-height: 42px; margin-top: 13px; border: 1px solid #bdd7e9; border-radius: 11px; background: #fff; color: #075f9e; font-weight: 850; }
.order-status-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 10px; overflow: visible; }
.order-status-actions > :only-child { grid-column: 1/-1; }
.order-status-actions button { min-height: 46px; font-size: 13px; white-space: normal; }
.order-item { grid-template-columns: minmax(0,1fr) auto; }
.order-item > strong { text-align: right; }
.order-item-controls { display: grid; grid-template-columns: 40px minmax(42px,auto) 40px; align-items: center; justify-self: start; gap: 5px; }
.order-item-controls button { width: 40px; height: 40px; border: 1px solid #c8ddeb; border-radius: 10px; background: #edf6fc; color: #075f9e; font-size: 20px; font-weight: 850; }
.order-item-controls button:disabled { opacity: .4; cursor: default; }
.order-item-controls span { min-width: 42px; text-align: center; color: #244b6d; font-size: 13px; font-weight: 850; }
.order-item > .order-item-remove { grid-column: 2; grid-row: 2; width: 40px; height: 40px; justify-self: end; border: 1px solid #e3d9da; border-radius: 10px; background: #fff; color: #a9444c; }
.order-item-remove svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

@media (max-width: 420px) {
  .order-status-actions { grid-template-columns: 1fr; }
  .order-status-actions > :only-child { grid-column: auto; }
}

/* Serviços e produtos da OS conforme o fluxo compacto do mockup. */
#view-order-detail .order-items-title { margin: 24px 2px 9px; }
#view-order-detail .order-items-title h2 { font-size: 20px; }
.order-items-panel { padding: 11px; border: 1px solid #dbe5ee; border-radius: 18px; background: #fff; box-shadow: 0 7px 22px rgba(23,58,97,.045); }
.order-catalog-search-row { display: grid; grid-template-columns: minmax(0,1fr) 50px; gap: 9px; }
.order-catalog-search-row.without-create { grid-template-columns: minmax(0,1fr); }
.order-catalog-search { min-width: 0; min-height: 50px; display: flex; grid-template-columns: none; align-items: center; border: 1.5px solid #bfd0df; border-radius: 13px; background: #fff; overflow: hidden; }
.order-catalog-search:focus-within { border-color: #0874bd; box-shadow: 0 0 0 3px rgba(8,116,189,.1); }
.order-catalog-search input { min-width: 0; min-height: 48px !important; padding: 0 5px 0 13px !important; border: 0; box-shadow: none !important; font-size: 15px !important; }
.order-catalog-search span { padding: 0 12px 0 4px; color: #7794ae; font-size: 22px; font-weight: 500; }
.order-catalog-create { width: 50px; min-height: 50px; border: 2px solid #0874bd; border-radius: 13px; background: #fff; color: #0874bd; font-size: 30px; font-weight: 300; line-height: 1; }
.order-catalog-help { margin: 9px 1px 11px; color: #7890aa; font-size: 11px; line-height: 1.45; }
.order-catalog-results { display: grid; gap: 6px; max-height: 225px; margin: 0 0 11px; padding: 7px; overflow: auto; border: 1px solid #dbe6ef; border-radius: 12px; background: #f7fafc; }
.order-catalog-results > button { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border: 1px solid #d9e4ed; border-radius: 10px; background: #fff; text-align: left; color: #173e62; }
.order-catalog-results > button span b,
.order-catalog-results > button span small { display: block; }
.order-catalog-results > button span b { font-size: 13px; }
.order-catalog-results > button span small { margin-top: 3px; color: #72879b; font-size: 11px; }
.order-catalog-results > button > strong { color: #0874bd; font-size: 11px; }
.order-catalog-results > p { margin: 8px; color: #718398; font-size: 12px; text-align: center; }
.order-compact-list { display: grid; overflow: hidden; border: 1px solid #d9e4ed; border-radius: 13px; }
.order-compact-list > .empty-state { border: 0; padding: 25px 12px; }
.os-line-item { min-width: 0; display: grid; grid-template-columns: minmax(108px,1fr) 72px minmax(58px,auto) 32px 32px; align-items: stretch; border-bottom: 1px solid #e3eaf0; background: #fff; }
.os-line-item:last-child { border-bottom: 0; }
.os-item-info { min-width: 0; align-self: center; padding: 10px 6px 10px 10px; }
.os-item-info h3 { margin: 0; color: #103b66; font-size: 13px; line-height: 1.2; overflow-wrap: normal; word-break: normal; hyphens: auto; }
.os-item-info p { margin: 4px 0 0; color: #7890aa; font-size: 11px; line-height: 1.2; }
.os-quantity-control { align-self: center; display: grid; grid-template-columns: 23px minmax(24px,1fr) 23px; min-height: 38px; margin: 6px 2px; overflow: hidden; border: 1px solid #cfe0ec; border-radius: 10px; background: #edf6fc; }
.os-quantity-control button { width: auto; min-width: 0; min-height: 36px; border: 0; background: transparent; color: #0874bd; font-size: 19px; }
.os-quantity-control button:disabled { opacity: .35; cursor: default; }
.os-quantity-control span { display: grid; place-items: center; background: #fff; color: #123d63; font-size: 13px; font-weight: 850; font-variant-numeric: tabular-nums; }
.os-item-total { min-width: 0; align-self: center; padding: 8px 5px; text-align: right; }
.os-item-total strong,
.os-item-total span { display: block; white-space: nowrap; }
.os-item-total strong { color: #0874bd; font-size: 13px; }
.os-item-total span { margin-top: 4px; color: #7890aa; font-size: 11px; }
.os-item-action { min-width: 32px; min-height: 54px; display: grid; place-items: center; padding: 0; border: 0; border-left: 1px solid #e1e8ef; background: #fff; color: #6e8ba6; }
.os-item-action:active { background: #edf6fc; }
.os-item-action.remove { color: #8b8490; }
.os-item-action svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

@media (max-width: 370px) {
  .os-line-item { grid-template-columns: minmax(0,1fr) 80px 36px 36px; }
  .os-item-info { grid-column: 1/2; }
  .os-quantity-control { grid-column: 1/2; grid-row: 2; width: 82px; margin: 0 0 9px 10px; }
  .os-item-total { grid-column: 2; grid-row: 1/3; }
  .os-item-action { grid-row: 1/3; }
}
