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

body, body .ui-widget {
    font-size: 16px;
    transition: font-size .3s;
}

body.centered > main {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

body.centered > main ul {
    list-style-type: none;
    padding: 0;
}

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.5em;
}

body li {
    margin: .5em 0;
}

body br {
    display: block;
    content: "";
    height: .25em;
}

body hr {
    border: 0;
    border-bottom: 1px solid var(--surface-400);
}

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

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

body .ui-fieldset .ui-outputlabel > aside {
    float: right;
}

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,
body .ui-fieldset .ui-outputlabel + .ui-trigger-calendar > .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: 114px;
}

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: center;
    margin: 1em 0;
}

body .ui-button {
    white-space: nowrap;
}

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;
    border: 1px solid var(--surface-border);
    border-radius: 4px;
    box-shadow: 0 0 .5em 0 var(--surface-400);
}

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

body .ui-datatable .ui-paginator.ui-paginator-bottom {
    border: 0;
    border-radius: 0 0 4px 4px;
}

body .ui-datatable thead th:first-child {
    border-radius: 4px 0 0 0;
}

body .ui-datatable thead th:last-child {
    border-radius: 0 4px 0 0;
}

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

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

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

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

body .ui-menu {
    box-shadow: 0 0 .5em 0 var(--surface-400);
}

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-state-valid {
    color: var(--green-600);
}

body .ui-state-invalid {
    color: var(--pink-600);
}

body .ui-panel {
    margin: 1em 0;
    box-shadow: 0 0 .5em 0 var(--surface-400);
}

body .ui-panel .ui-panel-title h3 {
    margin: 0;
}

body .ui-panel .ui-panel-content {
    overflow: hidden;
}

body .centered-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5em;
}

body .centered-row label {
    font-weight: 600;
}

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 {
    padding: .5em;
}

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;
}

