/* Mejoras de presentación compartidas. La lógica comercial está en cada módulo. */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { min-width:0; }
img, video, canvas { max-width:100%; }
button, a, input, select, textarea { -webkit-tap-highlight-color:transparent; }
button, a { touch-action:manipulation; }
input, select, textarea { max-width:100%; }
.workspace, .portal > main, #app, .main { min-width:0; }
.tablewrap, .table-wrap, .hrx-table-wrap { overflow:auto; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; }
@media (max-width:767px) {
  input, select, textarea { font-size:16px !important; }
  .hrx-actions { display:flex; flex-wrap:wrap; gap:8px; }
  .hrx-actions button { min-height:44px; white-space:normal; }
  .filters { flex-wrap:wrap; }
  [role="dialog"], dialog { max-width:calc(100vw - 16px); }
  .sheet { max-height:calc(100dvh - 16px); }
  .hrx-bar, .hrx-kpis { min-width:0; }
}
@supports (padding:max(0px)) {
  body { padding-bottom:env(safe-area-inset-bottom,0px); }
}
html[data-performance="lite"] :is(.panel,.card,.module-card,.filter-pill,.person-row,.hr-line-card) {
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  box-shadow:none !important;
}
html[data-performance="lite"] :is(.panel,.card,.module-card,.filter-pill,.person-row,.hr-line-card,button) { transition:none !important; }
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
