/* WOWASCO requested UI refinements */
.table-responsive{overflow-x:visible!important}.table{width:100%;table-layout:fixed}.table th,.table td{white-space:normal!important;word-break:break-word;font-size:.82rem;padding:.55rem .45rem;vertical-align:middle}.table .btn{white-space:nowrap;font-size:.76rem;padding:.3rem .55rem}@media(max-width:767.98px){.table th,.table td{font-size:.74rem;padding:.4rem .3rem}.table .btn{font-size:.7rem}}
.search-field-wrap{position:relative}.search-field-wrap>i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#6c757d;z-index:2}.search-field-wrap input{padding-left:38px}

/* ================================================================
   WOWASCO GLOBAL FOOTER POSITIONING
   Keep the footer at the bottom of the viewport on short pages.
   On long pages the footer follows the content normally.
   This is NOT a fixed footer, so it never overlaps page content.
   ================================================================ */

html,
body {
    min-height: 100%;
}

/* Back-office pages */
.main.main-app {
    min-height: calc(100vh - 72px);
    display: flex;
    flex-direction: column;
}

.main.main-app > .main-footer {
    margin-top: auto !important;
}

/* Customer portal pages */
body > .container-fluid:has(> .main-footer) {
    min-height: calc(100vh - 72px);
    display: flex;
    flex-direction: column;
}

body > .container-fluid:has(> .main-footer) > .main-footer {
    margin-top: auto !important;
}

/* Preserve comfortable spacing above the footer when content is long. */
.main-footer {
    flex-shrink: 0;
    padding-bottom: 8px;
}
