body {
    font-family: var(--font-family);
    min-width: 300px;
    max-width: 1200px;
    margin: 1em auto; 
    padding: 0 1em;  
}

body {
    height: calc(100vh - 2em);
    display: flex;
    flex-direction: column;
}

body > footer {
    font-size: .75em;
    margin-top: auto;
    padding: 1em 0;
    text-align: center;
    opacity: .5;
}

body ul {
    padding: 0 0 0 1.25em;
}

body h3 {
    font-size: 1.25em;
}

body .ui-fieldset {
    padding: 0 1em;
}

body .ui-fieldset .ui-outputlabel {
    display: block;
    width: 100%;
    margin: 1em 0 .5em;
}

body .ui-fieldset .ui-outputlabel + * {
    display: block;
    width: 100%;
    margin: .5em 0;
}

body .ui-fieldset .ui-outputlabel + * > .ui-inputfield {
    width: 100%;
}

body .ui-fieldset .ui-outputlabel + .ui-autocomplete-dd > .ui-inputfield {
    width: calc(100% - 2.357em);
}

body .ui-fieldset .ui-outputlabel + * + .ui-message {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
}

body .ui-fieldset .ui-outputlabel + * + .ui-message > div {
    padding: .5em;
}

body .ui-fieldset .ui-inputtextarea {
    min-height: 2em;
}

body .ui-fieldset-content > .ui-panelgrid .ui-panelgrid-cell {
    padding: 0;
} 

body .ui-fieldset-content > .ui-panelgrid .ui-panelgrid-cell + .ui-panelgrid-cell {
    padding-left: 1em;
} 

body .ui-fieldset footer {
    display: flex;
    column-gap: .5em;
    justify-content: flex-end;
    margin: 1em 0;
}

body .ui-dialog {
    max-width: 800px;
}

body .ui-dialog-content {
    min-width: 500px;
}

body .ui-panel .ui-panel-content {
    padding-top: 0;
    padding-bottom: 0;
}

body .ui-datatable {
    margin: 1em 0;
}

body .ui-datatable thead th,
body .ui-datatable .ui-datatable-data>tr>td,
body .ui-datatable tfoot td {
    padding: .5rem;
}

body .ui-datatable .ui-datatable-data>tr>th {
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

body .ui-datatable .ui-datatable-data>tr .ui-row-toggler,
body .ui-datatable .ui-datatable-data>tr .icon-drag-handle-vertical {
    color: var(--blue-500);
}

body .ui-datatable .ui-datatable-data>tr.ui-expanded-row-content>td {
    padding: 0 0 1rem;
}

body .ui-datatable.ui-headless > .ui-datatable-tablewrapper > table > thead > tr > th {
    height: 0;
    padding: 0;
}

body .ui-datatable.ui-headless tfoot td {
    background: none;
}

body .ui-datatable.ui-sortable-helper .ui-datatable-data>tr>td {
    border-top-width: 1px;
}

body .ui-datatable .ui-datatable-data>tr .icon-drag-handle-vertical {
    width: 1rem;
    height: 1rem;
    margin: .266666rem;
}

body .ui-datatable td ul {
    margin: 0;
}


body .ui-datatable td.nowrap {
    white-space: nowrap;
}

body .ui-datatable td.actions {
    text-align: right;
}

body .ui-datatable td.actions .ui-button {
    display: block;
    font-size: .875em;
    width: 100%;
    margin: .5em 0;
}

body .ui-datatable td.actions .ui-commandlink + .ui-commandlink {
    margin-left: .5em;
}

body .ui-datatable td.actions > div {
    display: flex;
    gap: .5em;
    margin: .5em 0;
}

body .ui-datatable td.actions > div .ui-button {
    margin: 0;
}

body .ui-datatable .ui-datatable-data > tr.ui-datatable-grouped-row > td.ui-grouped-column {
    font-weight: bold;
    border-right-width: 1px;
}

body .ui-datatable .ui-datatable-header .ui-outputlabel {
    margin-right: .5em;
}

body .ui-datatable .ui-filter-column.ui-filter-hidden .ui-column-filter {
    display: none;
}

body .ui-panelgrid-cell.bottom {
    align-content: end;
}

body .ui-autocomplete-item[data-item-class='ui-helper-hidden'] {
    display: none;   
}

body .ui-menu .ui-menu-list {
    display: flex;
    flex-wrap: wrap;
}

body .ui-menu .ui-menu-list .ui-menuitem {
    white-space: nowrap;
}

body .ui-menu .ui-menu-list .ui-menuitem.right {
    margin-left: auto;
}

body .ui-helper-strong {
    font-weight: 700;
}

body .ui-card {
    box-shadow: 0 .25em 1em var(--surface-500);
    border-radius: 1.5em;
    max-width: 500px;
    margin-bottom: 2em;
}

body .ui-card .ui-card-title {
    font-size: 1em;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1em;
    margin: 0;
    text-align: center;
}

body .ui-card .ui-card-title h2 {
    flex: 1;
    margin: 0;
}

body .ui-card .ui-card-body {
    padding: 1em;
}

body .ui-card .ui-card-content {
    padding: 0;
}


body .ui-card .ui-card-content .pi-refresh {
    color: var(--gray-500);
}

body .ui-card .ui-card-content .pi-check {
    color: var(--green-500);
}

body .ui-card .ui-card-content .ui-fieldset {
    border: 0;
    padding: 0;
}

body .ui-card .ui-card-content .ui-fieldset .ui-outputlabel {
    font-weight: bold;
}

body .ui-card .ui-card-content .ui-fieldset .ui-outputlabel:first-child {
    margin-top: 0;
}

body .centered {
    text-align: center;
}

body .ui-link, body .ui-outputlabel-label {
    white-space: nowrap;
}

body .ui-icon {
    font-size: 1em;
}

body .ui-menu.ui-menubar,
body .ui-inputfield,
body .ui-autocomplete .ui-autocomplete-input.ui-autocomplete-dd-input,
body .ui-button.ui-button-text-only .ui-button-text,
body .ui-button.ui-button-icon-only .ui-button-text,
body .ui-message,
body .ui-datatable .ui-datatable-header,
body select {
    padding: .5em;
}

body .ui-inputfield {
    min-height: calc(1rem + 1em + 2px);
}

body .ui-button.ui-button-icon-only .ui-icon,
body .ui-chkbox .ui-chkbox-box .ui-chkbox-icon {
    margin-top: -.5em;
    margin-left: -.5em;
}

body .ui-calendar .ui-button.ui-button-icon-only, body .ui-autocomplete .ui-autocomplete-dropdown {
    width: 2.357em;
}

body .ui-dialog .ui-dialog-titlebar .ui-dialog-title {
    font-size: 1.25em;
}

body .ui-dialog .ui-dialog-titlebar {
    display: flex;
    align-items: center;
    height: 5em;
    padding: 1.5em;
}

body .ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-icon {
    margin-left: auto;
}

body .ui-dialog .ui-dialog-content {
    padding: 0 1.5em 1.5em;
}

body .ui-datepicker {
    min-width: 300px;
}

body .ui-datepicker .ui-datepicker-calendar-container {
    height: 20em;
}

body .ui-datepicker .ui-datepicker-calendar td>a, body .ui-datepicker .ui-datepicker-calendar td>span, body .ui-datepicker .ui-picker-up {
    width: 2em;
    height: 2em;
    line-height: 2em;
}

body .ui-chkbox .ui-chkbox-box {
    width: 1.5em;
    min-width: 1.5em;
    height: 1.5em;
}

body .ui-autocomplete .ui-autocomplete-multiple-container {
    padding: .25em .5em;
}

body .ui-autocomplete .ui-autocomplete-multiple-container .ui-autocomplete-input-token {
    padding: .25em 0;
}

body .ui-autocomplete .ui-autocomplete-multiple-container .ui-autocomplete-input-token input {
    font-size: 1em;
}

body .ui-autocomplete .ui-autocomplete-multiple-container .ui-autocomplete-token .ui-autocomplete-token-icon {
    margin-top: .5em;
}

body .ui-outputlabel-rfi {
    color: var(--red-500);
}

body .ui-dialog.ui-confirm-dialog .ui-dialog-content > span {
    margin: 0;
}

body .ui-dialog.ui-confirm-dialog .ui-dialog-content > span.ui-icon {
    display: none !important; /* because of generated inline style */
}

body .ui-helper-hidden {
    display: none;
}

body .ui-sortable-handle {
    cursor: move;
}

body #sessionBlockExecutionDialog fieldset p {
    text-align: center;
}

body #sessionBlockExecutionDialog fieldset table {
    width: 100%;
    border-collapse: collapse;
}

body #sessionBlockExecutionDialog fieldset table tr.current {
    background: var(--blue-100);
}

body #sessionBlockExecutionDialog fieldset table tr.current th {
    border-radius: .5em 0 0 .5em;
}

body #sessionBlockExecutionDialog fieldset table tr.current td:last-child {
    border-radius: 0 .5em .5em 0;
}

body #sessionBlockExecutionDialog fieldset table th {
    white-space: nowrap;
}

body #sessionBlockExecutionDialog fieldset table th,
body #sessionBlockExecutionDialog fieldset table td {
    padding: .5em;
    text-align: center;
}

body #sessionBlockExecutionDialog fieldset table td input {
    width: 100%;
}

body table.sets th.set {
    width: 2.5em;
    padding-left: 1em;
    text-align: left;
}

body .float-right {
    float: right;
}

body .ui-datatable .ui-reflow-show {
    display: none;
}

body .ui-datatable .ui-reflow-label {
    font-weight: bold;
    color: var(--text-color);
}

body .ui-spinner.sets {
    width: 5.25rem;
    margin: 0 .25em;
}

body .ui-commandlink.ui-link-danger {
    color: #d32f2f;
}

body .ui-card.sticky-buttons {
    position: sticky;
    bottom: -1.5em;
    z-index: 1;
}

body .ui-card.sticky-buttons .ui-card-content {
    display: flex;
    gap: 1em;
    margin-bottom: 1.5em;
}

body .ui-card.sticky-buttons .ui-card-content .ui-button {
    width: 100%;
}

