html,
body {
    height: 100%;
    margin: 0;
}

/* Page layout */
.page-wrapper {
    display: flex;
    flex-direction: column;
    height: 100vh;
}

/* Header already fixed/sticky */
.body-wrapper {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Main container */
.fullscreen-wrapper {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Form layout */
.form-scroll-layout {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Sticky program header */
.program-header {
    position: sticky;
    top: 80px;
    /* navbar height */
    z-index: 1070;
    background: #fff;
}

/* ONLY this scrolls */
.program-scroll-area {
    flex: 1;
    overflow-y: auto;
    padding-bottom: 10px;
}

/* Sticky footer */
footer {
    position: sticky;
    bottom: 0;
    z-index: 1080;
    background: #fff;
    border-top: 1px solid #ddd;
}

.dataTables_wrapper table thead th:first-child {
    border-top-left-radius: 9px;
}

.dataTables_wrapper table thead th:last-child {
    border-top-right-radius: 9px;
}

.dataTables_wrapper table tbody tr:last-child td:first-child {
    border-bottom-left-radius: 9px;
}

.dataTables_wrapper table tbody tr:last-child td:last-child {
    border-bottom-right-radius: 9px;
}

