*,*::before,*::after{box-sizing:border-box}html{max-width:100%;overflow-x:clip}body{max-width:100%;overflow-x:clip;-webkit-text-size-adjust:100%}img,svg,video,canvas{max-width:100%;height:auto}input,select,textarea,button{max-width:100%;font:inherit}.app-auto-table-responsive,.auto-table-responsive,.table-responsive,.app-data-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overscroll-behavior-x:contain;scrollbar-gutter:stable}.app-auto-table-responsive>table,.auto-table-responsive>table,.app-data-scroll>table{min-width:100%;width:max-content;margin-bottom:0}.modal-dialog{max-width:min(96vw,900px)}.offcanvas{max-width:92vw}.container,.container-fluid,.row,.row>*,main,section,article,.card,.card-body,.tab-content,.tab-pane{min-width:0}
@media(max-width:767.98px){body{font-size:15px}.container,.container-fluid{padding-left:14px;padding-right:14px}.card{max-width:100%}.card-body{padding:1rem}.btn,input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:44px}.btn-sm{min-height:38px}.form-control,.form-select{font-size:16px}.modal-dialog{margin:.65rem}.modal-content{border-radius:1rem}.navbar-brand{max-width:70vw;overflow:hidden;text-overflow:ellipsis}.app-mobile-stack{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:.75rem!important}.app-mobile-stack>.btn,.app-mobile-stack>button,.app-mobile-stack>a.btn{width:100%}.pagination{flex-wrap:wrap}.table-responsive,.app-auto-table-responsive{border-radius:.75rem}.toast-container{max-width:calc(100vw - 20px)}}
@media(min-width:768px){.app-auto-table-responsive>table{min-width:100%}}

/* Cross-browser/touch hardening shared by every module. */
html{-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{min-width:0}a,button,input,select,textarea{touch-action:manipulation}img{content-visibility:auto}iframe{max-width:100%}.dropdown-menu,.autocomplete-results,[role="listbox"]{max-width:min(96vw,720px)}
/* JS-populated fallbacks for browsers that do not support CSS :has(). */
.pm-comparison-criterion.has-checked,.compare-criterion.has-checked,.district-check.has-checked{border-color:#10b981!important;background:#ecfdf5!important}.column-toggle-chip.has-unchecked{opacity:.62;background:#f2f4f7}
@supports not (overflow:clip){html,body{overflow-x:hidden}.modal,.offcanvas{max-width:100vw}}
@media(max-width:767.98px){
  body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  input,select,textarea{font-size:16px!important}
  button,.btn,[role="button"],a.nav-link{min-width:0}
  .dropdown-menu,.autocomplete-results,[role="listbox"]{max-width:calc(100vw - 24px);overscroll-behavior:contain}
  .table-responsive,.auto-table-responsive,.app-auto-table-responsive,.app-data-scroll{max-width:100%;overscroll-behavior-x:contain}
  pre,code{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}
}

@media(max-width:767.98px){
  .pm-sheet-wrap{max-width:100%;overflow:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;scrollbar-gutter:stable}
  .pm-grid-toolbar{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#fff!important}
  .pm-action-btn:hover,.pm-card:hover{transform:none!important}
  .dashboard-page .table-responsive,.dashboard-shell .table-responsive{max-height:72dvh;overflow:auto}
}
@media(hover:none),(pointer:coarse){.pm-action-btn:hover,.pm-product-card:hover{transform:none!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{scroll-behavior:auto!important}}
