/* Shared mobile baseline; wide operational tables scroll within their region. */
img, video { max-width:100%; }
.mobile-table-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; }
.mobile-table-scroll:focus-visible { outline:3px solid #16794c; }
.install-help { margin:16px; padding:12px; border:1px solid #dbe5df; border-radius:10px; background:#fff; font-size:14px; }
.install-help[hidden], #install-app[hidden] { display:none !important; }
.install-help summary { cursor:pointer; min-height:44px; display:flex; align-items:center; }
@media screen and (max-width:880px) {
  html { scroll-padding-top:64px; }
  body { overflow-x:visible; }
  .shell::before,.shell::after { display:none; }
  .shell,.shell-main,.app,main.app,form,section,article,.card { min-width:0; max-width:100%; }
  .shell-main { padding:12px 12px calc(76px + env(safe-area-inset-bottom)) !important; }
  .shell-main > .app { width:100%; }
  .side:not([hidden]) { height:auto; max-height:65dvh; overflow-y:auto; position:relative; width:100%; }
  .side nav { flex-shrink:0; overflow:visible; }
  .side nav a { white-space:normal; min-height:44px; }
  .side summary { min-height:44px; }
  #menu-toggle { position:sticky; top:env(safe-area-inset-top,0px); z-index:20; min-height:44px; }
  input:not([type=hidden]):not([type=checkbox]):not([type=radio]), select,textarea { font-size:16px !important; max-width:100%; min-height:44px; }
  button,.btn { min-height:44px; white-space:normal; }
  input[type=checkbox],input[type=radio] { width:20px; height:20px; }
  .toolbar,.pb-actions,.actions { flex-wrap:wrap; }
  .card,.pb-card { padding:12px !important; }
  .nc-ranking,.nc-grid,.pb-grid { grid-template-columns:minmax(0,1fr) !important; }
  .nc-grid > *, .pb-grid > * { min-width:0; }
  input[type=file] { width:100%; min-width:0; }
  .nc-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nc-kpis>div { padding:12px; overflow-wrap:anywhere; }
  .mobile-table-scroll table { display:table !important; overflow:visible; white-space:normal; }
  .mobile-table-scroll td,.mobile-table-scroll th { min-width:100px; }
  .mobile-table-scroll input { min-width:100px; }
  .appbar .inner,.appbar nav { flex-wrap:wrap; gap:8px; }
  main [style*="grid-template-columns"] { grid-template-columns:minmax(0,1fr) !important; }
  main [style*="display:flex"],main [style*="display: flex"] { flex-wrap:wrap; }
  main h1,main h2,main p,main a { overflow-wrap:anywhere; }
  /* Keep the back control in flow: it must not cover Confirmar / Guardar. */
  #globalBack { position:static !important; margin:12px 12px calc(12px + env(safe-area-inset-bottom)); }
}
@media screen and (max-width:380px) { .nc-kpis { grid-template-columns:minmax(0,1fr); } }
@media print {
  .install-help,#menu-toggle,#globalBack { display:none !important; }
  .mobile-table-scroll { overflow:visible; max-width:none; }
}
