html { -webkit-text-size-adjust: 100%; }
body { min-width: 0; overflow-x: hidden; }
img, svg, video, canvas { max-width: 100%; height: auto; }
input, select, textarea, button { font-size: max(16px, 1rem); }
button, .button, input[type="button"], input[type="submit"], .tabs-title > a {
    min-height: 44px;
    touch-action: manipulation;
}
.input-group > .input-group-field,
.input-group > .input-group-label,
.input-group > .input-group-button,
.input-group > .input-group-button > .button {
    min-height: 44px;
}
textarea { width: 100%; }
table { max-width: 100%; }
.table-scroll, .responsive-table { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ui-dialog { max-width: calc(100vw - 1rem); }
.ui-dialog .ui-dialog-content { max-width: 100%; }
.ui-dialog-buttonpane .ui-dialog-buttonset { display: flex; flex-wrap: wrap; gap: .5rem; }
.ui-dialog-buttonpane button { margin: 0 !important; }
#map, #mapFrame { min-height: 20rem; }

@media (max-width: 639px) {
    .header { min-height: 3.5rem; height: auto; }
    .headline, .heading { float: none; line-height: 1.2; margin: 0; padding: .75rem; font-size: 1.35rem; text-align: center; }
    .grid-container.fluid { padding-left: .35rem; padding-right: .35rem; }
    .grid-padding-x > .cell { padding-left: .4rem; padding-right: .4rem; }
    .tabs { display: flex; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
    .tabs-title { float: none; flex: 0 0 auto; }
    .tabs-title > a { padding: .75rem; }
    .competition, .fieldset-container { padding: .75rem !important; border-radius: .75rem !important; }
    .row { flex-wrap: wrap; }
    .bigButton { width: 100%; }
    #assignmentNotes { height: auto; max-height: 35vh; margin-bottom: .75rem; }
    #outerTabs { width: 100% !important; }
    table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
