/* NETCOMP responsive safety layer.
   Intentionally conservative: preserve each page's existing layout and component styles. */
*,*::before,*::after{box-sizing:border-box}
html{max-width:100%;-webkit-text-size-adjust:100%}
body{min-width:0;max-width:100%}
img,video,canvas,iframe{max-width:100%}
img,video{height:auto}
/* Prevent long labels/URLs from expanding a card without changing its layout. */
.card,.panel,.content-card,.form-card,.receipt,.alert,.notice{min-width:0;overflow-wrap:anywhere}
/* Only enable horizontal scrolling where the page already uses a table wrapper. */
.table-responsive,.table-wrap,.tablewrap,.table-scroll,.ma-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-responsive table,.table-wrap table,.tablewrap table,.table-scroll table,.ma-scroll table{max-width:100%}
textarea{max-width:100%;resize:vertical}
button,.btn,input[type=submit],input[type=button],input[type=reset]{touch-action:manipulation}
@media(max-width:1199.98px){.container,.container-fluid{max-width:100%}}
@media(max-width:991.98px){.table-responsive{margin-bottom:.75rem}.form-actions,.button-row{flex-wrap:wrap}}
@media(max-width:767.98px){
  /* Bootstrap columns naturally stack only where page markup requests it. */
  .container,.container-fluid{max-width:100%}
  .modal-dialog{margin:.5rem}
  .table-responsive table{min-width:600px}
  .form-actions .btn,.button-row .btn{margin-bottom:.35rem}
  img,video,canvas,iframe{max-width:100%}
}
@media(max-width:575.98px){
  h1{font-size:clamp(1.4rem,5.5vw,2rem)}
  .card-body{overflow-wrap:anywhere}
  .table-responsive table{min-width:560px}
  .modal-dialog{margin:.35rem}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
