:root {
    --p-text-align: justify;
    --margin-small: 10px;

    --h1-background-color: #1e429a;
    --h1-text-color: #eee;
    --h1-border-radius: 0;
    --h1-font-size: 2.0em;
    --h1-padding: 20px;
    --h2-background-color: none;
    --h2-text-color: #333;
    --h2-border-radius: 0;
    --h2-font-size: 1.5em;
    --h2-padding: 10px;

    --main-background-color: #eee;
    --main-text-color: #333;
    --primary-background-color: #1e429a;
    --primary-text-color: #eee;
    --secondary-background-color: #00b8f1;
    --secondary-text-color: #eee;
    --error-icon-color: #ef5350;
    --error-background-color: #ef5350;
    --error-text-color: #fff;
    --container-even-color: #eee;
    --container-odd-color: #ddd;
    --dialog-background-color: #eee;
    --flex-container-gap-size: 20px;

    --datatable-header-background-color: lightgray;
    --datatable-header-border-color: gray;
    --datatable-header-text-color: #333;
    --datatable-row-even-background-color: #eee;
    --datatable-row-odd-background-color: #ddd;
    --datatable-cell-read-yes-color: #333;
    --datatable-cell-read-yes-background-color: hsl(120, 50%, 85%);
    --datatable-cell-read-no-color: #333;
    --datatable-cell-read-no-background-color: hsl(45, 70%, 85%);
    --datatable-cell-read-never-color: #333;
    --datatable-cell-read-never-background-color: hsl(0, 60%, 85%);

    --accordion-header-background-color: #1e429a;
    --accordion-header-text-color: #eee;
    --accordion-header-font-weight: bold;
    --accordion-border-bottom: 3px solid #00b8f1;
    --accordion-border-radius-header: 0;
    --accordion-border-radius-content: 0;

    --button-big-background-color: hsl(350, 85%, 50%);
    --button-big-background-color-hover: hsl(350, 85%, 45%);
    --button-big-background-color-active: hsl(350, 85%, 40%);
    --button-big-border-radius: 0;
    --button-big-text-color: #eee;
    --button-small-background-color: hsl(195, 100%, 50%);
    --button-small-background-color-hover: hsl(195, 100%, 40%);
    --button-small-background-color-active: hsl(195, 100%, 30%);
    --button-small-border-radius: 0;
    --button-small-text-color: #eee;

    --external-service-log-ERROR-background: hsl(0, 60%, 85%);
    --external-service-log-OK-background: hsl(120, 50%, 85%);
    --external-service-log-NEGATIVE-background: hsl(0, 0%, 85%);
    --external-service-log-EXPIRED-background: hsl(45, 70%, 85%);
    --external-service-log-BOOKED-background: hsl(210, 60%, 85%);

    --notification-success-background: hsl(120, 50%, 85%);
    --notification-in_progress-background: hsl(45, 70%, 85%);
    --notification-failure-background: hsl(0, 60%, 85%);

    --conversation-left-header-background-color: hsl(152.73, 31.43%, 75%);
    --conversation-left-background-color: hsl(152.73, 31.43%, 85%);
    --conversation-left-text-color: #333;
    --conversation-right-header-background-color: hsl(188, 52.94%, 75%);
    --conversation-right-background-color: hsl(188, 52.94%, 85%);
    --conversation-right-text-color: #333;
    --conversation-border-radius: 0;

    --confirm-dialog-border-radius: 0;
    --confirm-dialog-background-color: #eee;
    --confirm-dialog-header-bg-color: #eee;
    --confirm-dialog-header-text-color: #333;
    --confirm-dialog-button-big-border-radius: 0;
    --confirm-dialog-button-yes-background-color: hsl(122, 32%, 45%);
    --confirm-dialog-button-yes-background-color-hover: hsl(122, 32%, 35%);
    --confirm-dialog-button-yes-background-color-active: hsl(122, 32%, 30%);
    --confirm-dialog-button-yes-text-color: #fff;
    --confirm-dialog-button-no-background-color: hsl(1, 83%, 60%);
    --confirm-dialog-button-no-background-color-hover: hsl(1, 83%, 50%);
    --confirm-dialog-button-no-background-color-active: hsl(1, 83%, 40%);
    --confirm-dialog-button-no-text-color: #fff;
}

/* Reset all PrimeFaces styles */
/*[class^="ui-"], [class*=" ui-"] {
    all: unset;
}*/

* {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 15px;
}

html, body {
    height: 100%;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    background-color: var(--main-background-color);
    color: var(--main-text-color);
}
body {
    min-height: 100vh;
}

/* PrimeFaces style override - start */
fieldset {
    margin: 20px 0 0 0 !important;
    padding: 0 !important;
}
fieldset.border-none {
    border: none;
}
fieldset.margin-none {
    margin: 0 !important;
}
label,
input {
    font-family: inherit !important;
}

.ui-widget {
    font-family: inherit !important;
}
.ui-widget-content {
    font-family: inhetit;
    background: inherit;
    color: inherit;
}
.ui-menu .ui-widget-content {
    background-color: var(--dialog-background-color);
}

.ui-confirm-dialog {
    border-radius: var(--confirm-dialog-border-radius) !important;
    background-color: var(--confirm-dialog-background-color) !important;
}
.ui-confirm-dialog .ui-widget-header {
    background-color: var(--confirm-dialog-header-bg-color) !important;
}
.ui-confirm-dialog .ui-dialog-title {
    color: var(--confirm-dialog-header-text-color) !important;
}
.ui-confirm-dialog .ui-confirm-dialog-message {
    color: var(--confirm-dialog-header-text-color) !important;
}
.ui-confirm-dialog .ui-button {
    border-radius: var(--confirm-dialog-button-big-border-radius) !important;
    transition: background-color 0.3s ease !important;
}
.ui-dialog {
    background-color: var(--main-background-color) !important;
}
.ui-dialog .ui-dialog-buttonpane {
    padding: 0 !important;
    text-align: center !important;
}
.ui-confirm-dialog .ui-button.ui-confirmdialog-yes {
    background-color: var(--confirm-dialog-button-yes-background-color) !important;
    border-color: var(--confirm-dialog-button-yes-background-color) !important;
    color: var(--confirm-dialog-button-yes-text-color) !important;
}
.ui-confirm-dialog .ui-button.ui-confirmdialog-yes:hover {
    background-color: var(--confirm-dialog-button-yes-background-color-hover) !important;
    border-color: var(--confirm-dialog-button-yes-background-color-hover) !important;
}
.ui-confirm-dialog .ui-button.ui-confirmdialog-yes:active {
    background-color: var(--confirm-dialog-button-yes-background-color-active) !important;
    border-color: var(--confirm-dialog-button-yes-background-color-active) !important;
}
.ui-confirm-dialog .ui-button.ui-confirmdialog-no {
    background-color: var(--confirm-dialog-button-no-background-color) !important;
    border-color: var(--confirm-dialog-button-no-background-color) !important;
    color: var(--confirm-dialog-button-no-text-color) !important;
}
.ui-confirm-dialog .ui-button.ui-confirmdialog-no:hover {
    background-color: var(--confirm-dialog-button-no-background-color-hover) !important;
    border-color: var(--confirm-dialog-button-no-background-color-hover) !important;
}
.ui-confirm-dialog .ui-button.ui-confirmdialog-no:active {
    background-color: var(--confirm-dialog-button-no-background-color-active) !important;
    border-color: var(--confirm-dialog-button-no-background-color-active) !important;
}

.ui-datatable.header-none thead {
    display: none;
}
.ui-datatable.borderless thead th,
.ui-datatable.borderless tbody,
.ui-datatable.borderless tbody tr,
.ui-datatable.borderless tbody td {
    border: none;
}
.ui-datatable tr.ui-datatable-empty-message {
    font-weight: bold;
    font-style: italic;
}
.ui-datatable tr.ui-datatable-even {
    background-color: var(--datatable-row-even-background-color);
}
.ui-datatable tr.ui-datatable-odd {
    background-color: var(--datatable-row-odd-background-color);
}
.ui-datatable th.ui-state-default {
    background-color: var(--datatable-header-background-color) !important;
}
.ui-datatable th.ui-state-default {
    border-top: none !important;
    border-right: 1px solid var(--datatable-header-border-color) !important;
    border-bottom: 1px solid var(--datatable-header-border-color) !important;
    border-left: none !important;
}
.ui-datatable th.ui-state-default:last-child {
    border-right: none !important;
}
.ui-datatable th {
    padding-top: 0.6em !important;
    padding-bottom: 0.5em !important;
    box-sizing: border-box;
}
.ui-datatable th .ui-column-title {
    color: var(--datatable-header-text-color) !important;
    font-weight: bold !important;
}

.ui-chkbox-box.ui-state-active {
    border: 1px solid var(--primary-background-color);
    background: var(--primary-background-color);
    color: var(--primary-text-color);
}
.ui-selectbooleancheckbox {
    display: inline-flex !important;
    align-items: flex-start !important;
}
.ui-selectbooleancheckbox label {
    margin-left: 5px !important;
    white-space: normal !important;
}

.ui-fileupload {
    border: none !important;
    background: inherit !important;
}
.ui-fileupload-content {
    border: none !important;
    background: inherit !important;
}
.ui-fileupload-buttonbar {
    border: none !important;
    background: inherit !important;
}
.ui-fileupload-choose {
    border-color: var(--secondary-background-color) !important;
    background-color: var(--secondary-background-color) !important;
    color: var(--secondary-text-color) !important;
}
.ui-fileupload-choose .ui-icon {
    background: none !important;
}
.ui-fileupload-choose:before {
    font-family: "Font Awesome 5 Free";
    content: "\f067";
    font-weight: 900;
    color: var(--secondary-text-color);
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
}

.ui-accordion {
    margin: 0 0 20px 0 !important;
}
.ui-accordion .ui-accordion-header {
    position: relative;
    background-color: var(--accordion-header-background-color) !important;
    color: var(--accordion-header-text-color) !important;
    font-weight: var(--accordion-header-font-weight) !important;
    border-radius: var(--accordion-border-radius-header) !important;
}
.ui-accordion .ui-accordion-header.ui-state-active {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}
.ui-accordion .ui-accordion-header .ui-icon {
    display: none;
}
.ui-accordion .ui-accordion-header:before {
    font-family: 'Font Awesome 5 Free';
    content: "\f0da";
    font-weight: 900;
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
}
.ui-accordion .ui-accordion-header.ui-state-active:before {
    content: "\f0d7";
}
.ui-accordion .ui-accordion-content {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-bottom-left-radius: var(--accordion-border-radius-content);
    border-bottom-right-radius: var(--accordion-border-radius-content);
    border-top: 0;
    border-right: 0;
    border-bottom: var(--accordion-border-bottom);
    border-left: 0;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
}
/* PrimeFaces style override - end */

i {
    color: var(--main-text-color);
}

h1 {
    width: 100%;
    background-color: var(--h1-background-color);
    color: var(--h1-text-color);
    font-size: var(--h1-font-size);
    text-align: center;
    padding: var(--h1-padding);
    border-radius: var(--h1-border-radius);
    margin-block-start: 0.0em;
    margin-block-end: 0.0em;
    margin-inline-start: 0;
    margin-inline-end: 0;
    box-sizing: border-box;
}
h2 {
    width: 100%;
    background-color: var(--h2-background-color);
    color: var(--h2-text-color);
    font-size: var(--h2-font-size);
    text-align: center;
    padding: var(--h2-padding);
    border-radius: var(--h2-border-radius);
    margin-block-start: 0.0em;
    margin-block-end: 0.0em;
    margin-inline-start: 0;
    margin-inline-end: 0;
    box-sizing: border-box;
}

.center {
    text-align: center;
}
.bold {
    font-weight: bold;
}
.italic {
    font-style: italic;
}
.strikethrough {
    text-decoration: line-through;
}
.error {
    background-color: var(--error-background-color);
    color: var(--error-text-color);
    font-weight: bold;
}
.margin-top-small {
    margin-top: var(--margin-small);
}

li p {
    text-align: justify;
}
p {
    text-align: var(--p-text-align);
}
a,
.ui-selectbooleancheckbox a {
    text-decoration: none;
    color: var(--button-big-background-color);
    transition: transform 0.3s ease;
}
a:hover,
a:hover i,
.ui-selectbooleancheckbox a:hover {
    text-decoration: underline;
    color: var(--button-big-background-color-hover);
}

#content {
    display: flex;
    flex-direction: column;
    flex: 1;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    box-sizing: border-box;
    background: none;
}

#recaptcha,
#recaptcha * {
    z-index: 999999 !important;
}

.container {
    margin: 0;
    padding: 20px;
    height: 100%;
}
.container:nth-child(even) {
    background-color: var(--container-even-color);
}
.container:nth-child(odd) {
    background-color: var(--container-odd-color);
}

.wrapper {
    max-width: 1340px !important;
    margin-left: auto;
    margin-right: auto;
}

.flex-column-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}
.flex-column-container .item {
    width: 100%;
    text-align: center;
}

.universal-flex-container {
    display: flex;
    flex-direction: row;
    gap: 10px;
}
.universal-flex-container .item {
    display: flex;
    align-items: center;
    box-sizing: border-box;
}
.universal-flex-container .align-left {
    justify-content: flex-start;
}
.universal-flex-container .align-center {
    justify-content: center;
}
.universal-flex-container .align-right {
    justify-content: flex-end;
}
.universal-flex-container .auto-width {
    flex: 0 1 auto;
}
.universal-flex-container .full-width {
    flex: 1 1 0;
}

.cookie-notification-bar {
    background-color: var(--primary-background-color) !important;
    color: var(--primary-text-color) !important;
    height: auto !important;
    box-sizing: border-box !important;
    padding: 15px 20px !important;
    text-align: center !important;
    opacity: 0.9;
}
.cookie-notification-bar a {
    color: var(--primary-text-color);
    font-size: 1.0em !important;
    font-weight: bold;
}
.cookie-notification-bar a:hover {
    color: var(--primary-text-color);
    text-decoration: underline;
}
.cookie-notification-bar .button {
    font-size: 1.2em !important;
}

.rodo-container {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    height: 100%;
    background: url("/javax.faces.resource/regulamin.jpg.xhtml") no-repeat center center fixed;
    background-size: cover;
    flex: 1;
}
.rodo-container .message {
    padding: 10px 20px;
    margin: 20px 0;
    font-size: 1.2em;
    text-align: var(--p-text-align);
    border-radius: var(--button-big-border-radius) !important;
    background-color: var(--primary-background-color);
    color: var(--primary-text-color);
    opacity: 0.95;
}
.rodo-container ol,
.rodo-dialog.ui-dialog .ui-dialog-content ol {
    list-style: none;
    counter-reset: list-counter;
}
.rodo-container ol > li,
.rodo-dialog.ui-dialog .ui-dialog-content ol > li {
    counter-increment: list-counter;
    margin: 5px 0;
    padding-left: 0.0em;
    text-indent: -1.5em;
}
.rodo-container ol > li::before,
.rodo-dialog.ui-dialog .ui-dialog-content ol > li::before {
    content: counter(list-counter) ". ";
    margin-right: 0.5em;
}
.rodo-container ol ol,
.rodo-dialog.ui-dialog .ui-dialog-content ol ol {
    list-style: none;
    counter-reset: nested-list-counter;
}
.rodo-container ol ol > li,
.rodo-dialog.ui-dialog .ui-dialog-content ol ol > li {
    counter-increment: nested-list-counter;
    margin: 5px 0;
    padding-left: 0.0em;
    text-indent: -1.5em;
}
.rodo-container ol ol > li::before,
.rodo-dialog.ui-dialog .ui-dialog-content ol ol > li::before {
    content: counter(nested-list-counter, lower-alpha) ". ";
    margin-right: 0.5em;
}

.rodo-dialog.ui-dialog {
    position: absolute !important;
    min-width: 500px !important;
    min-height: 200px !important;
    max-width: 80vw !important;
    max-height: 80vh !important;
    width: auto !important;
    height: auto !important;
    box-sizing: border-box !important;
    background-color: var(--dialog-background-color) !important;
}
.rodo-dialog.ui-dialog .ui-dialog-titlebar {
    background-color: var(--primary-background-color) !important;
}
.rodo-dialog.ui-dialog .ui-dialog-titlebar .ui-dialog-title {
    color: var(--primary-text-color) !important;
}
.rodo-dialog.ui-dialog .ui-dialog-content {
    display: flex;
    flex-direction: row;
    flex-grow: 1;
    overflow: hidden;
    gap: 10px;
    max-height: calc(80vh - 100px);
}
.rodo-dialog.ui-dialog .ui-dialog-content .scrollable-content {
    flex-grow: 1;
    overflow-y: auto;
    padding: 15px;
    box-sizing: border-box;
}
.rodo-dialog.ui-dialog .ui-dialog-content .buttons {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 15px;
    padding: 0 15px;
    box-sizing: border-box;
    border-left: 5px solid var(--primary-background-color);
    align-items: center;
}
.rodo-dialog.ui-dialog .ui-dialog-content .buttons .ui-button {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    padding: 10px;
    text-align: center;
    margin: 10px 0;
}
.rodo-dialog.ui-dialog .ui-dialog-content .buttons .ui-button .ui-button-text {
    font-weight: bold;
    font-size: 1.2em;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.rodo-dialog.ui-dialog .ui-dialog-content .buttons .accept {
    background-color: var(--secondary-background-color);
    border-color: var(--secondary-background-color);
    color: var(--primary-text-color);
}
.rodo-dialog.ui-dialog .ui-dialog-content .buttons .reject {
    background-color: var(--error-background-color);
    border-color: var(--error-background-color);
    color: var(--error-text-color);
}

.button-big-container {
    text-align: center;
    margin-top: 20px;
    margin-bottom: 20px;
}
.button-big {
    display: inline-block !important;
    min-width: 300px !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 15px 20px !important;
    font-size: 1.4em !important;
    font-weight: bold !important;
    text-align: center !important;
    background-color: var(--button-big-background-color) !important;
    color: var(--button-big-text-color) !important;
    border: none !important;
    border-radius: var(--button-big-border-radius) !important;
    cursor: pointer !important;
    white-space: normal !important;
    word-wrap: break-word !important;
    box-sizing: border-box !important;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.5) !important;
    transition: background-color 0.3s ease, box-shadow 0.3s, transform 0.3s ease-in-out !important;
}
.button-big:hover {
    background-color: var(--button-big-background-color-hover) !important;
    color: var(--button-big-text-color) !important;
    text-decoration: none !important;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.6) !important;
    transform: translateY(2px) !important;
}
.button-big:active {
    background-color: var(--button-big-background-color-active) !important;
    color: var(--button-big-text-color) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.7) !important;
    transform: translateY(4px) !important;
}
.button-big .ui-button-text {
    padding: 0 !important;
    font-size: inherit !important;
    background-color: var(--button-big-background-color) !important;
    color: var(--button-big-text-color) !important;
    transition: background-color 0.3s ease, box-shadow 0.3s, transform 0.3s ease-in-out !important;
}
.button-big:hover .ui-button-text {
    background-color: var(--button-big-background-color-hover) !important;
    color: var(--button-big-text-color) !important;
    text-decoration: none !important;
}
.button-big:active .ui-button-text {
    background-color: var(--button-big-background-color-active) !important;
    color: var(--button-big-text-color) !important;
}

.button-small.ui-button,
.button-small.ui-menubutton {
    background-color: var(--button-small-background-color) !important;
    border-color: var(--button-small-background-color) !important;
    border-radius: var(--button-small-border-radius) !important;
    transition: background-color 0.3s ease !important;
}
.button-small.ui-button:hover,
.button-small.ui-menubutton:hover {
    background-color: var(--button-small-background-color-hover) !important;
    border-color: var(--button-small-background-color-hover) !important;
}
.button-small.ui-button:active,
.button-small.ui-menubutton:active {
    background-color: var(--button-small-background-color-active) !important;
    border-color: var(--button-small-background-color-active) !important;
}
.button-small.ui-button .ui-icon,
.button-small.ui-button .ui-button-text,
.button-small.ui-menubutton .ui-icon,
.button-small.ui-menubutton .ui-button-text {
    color: var(--button-small-text-color) !important;
}

.button-small.button-yes.ui-button {
    background-color: var(--confirm-dialog-button-yes-background-color) !important;
    border-color: var(--confirm-dialog-button-yes-background-color) !important;
    color: var(--confirm-dialog-button-yes-text-color) !important;
}
.button-small.button-yes.ui-button:hover {
    background-color: var(--confirm-dialog-button-yes-background-color-hover) !important;
    border-color: var(--confirm-dialog-button-yes-background-color-hover) !important;
}
.button-small.button-yes.ui-button:active {
    background-color: var(--confirm-dialog-button-yes-background-color-active) !important;
    border-color: var(--confirm-dialog-button-yes-background-color-active) !important;
}
.button-small.button-no.ui-button {
    background-color: var(--confirm-dialog-button-no-background-color) !important;
    border-color: var(--confirm-dialog-button-no-background-color) !important;
    color: var(--confirm-dialog-button-no-text-color) !important;
}
.button-small.button-no.ui-button:hover {
    background-color: var(--confirm-dialog-button-no-background-color-hover) !important;
    border-color: var(--confirm-dialog-button-no-background-color-hover) !important;
}
.button-small.button-no.ui-button:active {
    background-color: var(--confirm-dialog-button-no-background-color-active) !important;
    border-color: var(--confirm-dialog-button-no-background-color-active) !important;
}

.home-image-container {
    position: relative;
    display: inline-block;
}
.home-image-container::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 35px;
    opacity: 0.8;
    background-color: var(--primary-background-color);
}
.home-image-container .home-image {
    width: 100%;
    height: auto;
    display: block;
}

.alert {
    margin: 0;
    padding: 10px 20px;
    font-size: 2em;
    font-weight: bold;
    text-align: center;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
    letter-spacing: 0.05em;
    color: var(--error-text-color);
    background-color: var(--error-background-color);
}

.notification-grid-layout {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-auto-rows: auto;
    gap: 10px 20px;
}
.notification-grid-layout .divider {
    grid-column: 1 / span 2;
    border-top: 1px dashed gray;
    margin: 0;
    height: 0;
}
.notification-grid-layout .span-2 {
    grid-column: 1 / span 2;
}
.notification-grid-layout .text-left {
    text-align: left;
}
.notification-grid-layout .text-right {
    text-align: right;
}
.notification-success {
    background-color: var(--notification-success-background) !important;
}
.notification-in_progress {
    background-color: var(--notification-in_progress-background) !important;
}
.notification-failure {
    background-color: var(--notification-failure-background) !important;
}

.grid-layout {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-auto-rows: auto;
    gap: 20px 100px;
}
.grid-layout .divider {
    grid-column: 1 / span 2;
    border-top: 1px dashed gray;
    margin: 0;
    height: 0;
}
.grid-layout .hidden-on-big {
    display: none;
}
.grid-layout .print {
    grid-column: 1 / span 2;
    justify-self: end;
}
.grid-layout .print a,
.grid-layout .print a *,
.grid-layout .print a:hover * {
    cursor: pointer;
    text-decoration: none;
}
.grid-layout .print i {
    margin-left: 3px;
    margin-right: 5px;
}
.grid-layout .item {
    display: grid;
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 5px;
}

.registered-container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
    background: url("/javax.faces.resource/registered.jpg.xhtml") no-repeat center center fixed;
    background-size: cover;
    flex: 1;
}
.registered-container .message {
    padding: 10px 20px;
    margin: 20px 0;
    text-align: center !important;
    border-radius: var(--button-big-border-radius) !important;
    background-color: var(--primary-background-color);
    color: var(--primary-text-color);
    opacity: 0.95;
}
.registered-container .message p {
    font-size: 1.2em;
    text-align: center;
}
.registered-container .message a {
    font-size: 1.3em;
    font-weight: bold;
    letter-spacing: 0.05em;
}

.appeal-list.ui-datatable a:hover,
.appeal-list.ui-datatable a:hover i {
    text-decoration: none !important;
}
.appeal-list td.read-yes {
    color: var(--datatable-cell-read-yes-color) !important;
    background-color: var(--datatable-cell-read-yes-background-color) !important;
    background-image: none !important;
}
.appeal-list td.read-no {
    color: var(--datatable-cell-read-no-color) !important;
    background-color: var(--datatable-cell-read-no-background-color) !important;
    background-image: none !important;
}
.appeal-list td.read-never {
    color: var(--datatable-cell-read-never-color) !important;
    background-color: var(--datatable-cell-read-never-background-color) !important;
    background-image: none !important;
}

.appeal-details {
}
.appeal-details .details-container {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--flex-container-gap-size);
}
.appeal-details .details-item {
    flex: 1 1 100px;
    box-sizing: border-box;
}
.appeal-details .details-item .highlighted-key,
.appeal-details .details-item .highlighted-value {
    font-size: 1.1em;
    font-weight: bold;
    color: var(--main-text-color);
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
    letter-spacing: 0.05em;
}
.appeal-details .details-item .highlighted-value {
    font-size: 1.3em;
}
.appeal-details .deadline-passed {
    font-size: 0.9em;
    font-style: italic;
    font-weight: bold;
    color: var(--error-background-color);
}
.appeal-details .conversation {
    display: flex;
    flex-direction: column;
    gap: 50px;
    padding: 10px;
}
.appeal-details .conversation:last-child {
    margin-bottom: 30px; /* because of conversation ::before and ::after is absolute and does not fit to container */
}
.appeal-details .conversation .bubble-left,
.appeal-details .conversation .bubble-right {
    min-width: 70%;
    max-width: 70%;
    border-radius: var(--conversation-border-radius);
    position: relative;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}
.appeal-details .conversation .bubble-left {
    align-self: flex-start;
    color: var(--conversation-left-text-color);
    background-color: var(--conversation-left-background-color);
}
.appeal-details .conversation .bubble-left::after {
    content: "";
    position: absolute;
    top: 100%;
    right: 15px;
    width: 0;
    height: 0;
    border: 25px solid transparent;
    border-top-color: var(--conversation-left-background-color);
}
.appeal-details .conversation .bubble-left::before {
    content: "";
    position: absolute;
    top: 100%;
    right: 15px;
    width: 0;
    height: 0;
    border: 25px solid transparent;
    border-top-color: rgba(0, 0, 0, 0.2);
    z-index: -1;
    transform: translateX(1px) translateY(2px);
}
.appeal-details .conversation .bubble-left .header {
    background-color: var(--conversation-left-header-background-color);
}
.appeal-details .conversation .bubble-right {
    align-self: flex-end;
    color: var(--conversation-right-text-color);
    background-color: var(--conversation-right-background-color);
}
.appeal-details .conversation .bubble-right::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 15px;
    width: 0;
    height: 0;
    border: 25px solid transparent;
    border-top-color: var(--conversation-right-background-color);
}
.appeal-details .conversation .bubble-right::before {
    content: "";
    position: absolute;
    top: 100%;
    left: 15px;
    width: 0;
    height: 0;
    border: 25px solid transparent;
    border-top-color: rgba(0, 0, 0, 0.2);
    z-index: -1;
    transform: translateX(1px) translateY(2px);
}
.appeal-details .conversation .bubble-right .header {
    background-color: var(--conversation-right-header-background-color);
}
.appeal-details .conversation .header {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px;
}
.appeal-details .conversation .header a:hover,
.appeal-details .conversation .header a:hover i,
.appeal-details .conversation .footer a:hover,
.appeal-details .conversation .footer a:hover i {
    text-decoration: none !important;
}
.appeal-details .conversation .header .part {
    display: flex;
    gap: 5px;
    align-items: center;
}
.appeal-details .conversation .header .part .fill {
    flex: 1;
}
.appeal-details .conversation .header .part .align-right {
    display: flex;
    justify-content: flex-end;
}
.appeal-details .conversation .header .part .edit {
    font-size: 0.85em;
    font-style: italic;
}
.appeal-details .conversation .content {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px;
    white-space: pre-line;
    text-align: left;
}
.appeal-details .conversation .content .part {
    display: flex;
    gap: 5px;
    align-items: center;
}
.appeal-details .conversation .footer {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px;
}
.appeal-details .conversation .footer .part {
    display: flex;
    gap: 5px;
    align-items: center;
}
.appeal-details .conversation .footer .part .fill {
    flex: 1;
}
.appeal-details .conversation .footer .part .align-right {
    display: flex;
    justify-content: flex-end;
}
.appeal-details .conversation .footer .part .edit {
    font-size: 0.85em;
    font-style: italic;
}

.appeal-details-response-dialog.ui-dialog {
    position: absolute !important;
    min-width: max(50vw, 500px) !important;
    min-height: max(10vh, 100px) !important;
    max-width: 80vw !important;
    max-height: 80vh !important;
    width: auto !important;
    height: auto !important;
    box-sizing: border-box !important;
    background-color: var(--dialog-background-color) !important;
}
.appeal-details-response-dialog.ui-dialog .ui-dialog-titlebar {
    background-color: var(--primary-background-color) !important;
}
.appeal-details-response-dialog.ui-dialog .ui-dialog-titlebar .ui-dialog-title {
    color: var(--primary-text-color) !important;
}
.appeal-details-response-dialog.ui-dialog .ui-dialog-content {
    display: flex;
    flex-direction: row;
    flex-grow: 1;
    overflow: hidden;
    gap: 10px;
    max-height: calc(80vh - 100px);
}
.appeal-details-response-dialog.ui-dialog .ui-dialog-content .scrollable-content {
    overflow-y: auto;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px;
    text-align: left;
    width: 100% !important;
}
.appeal-details-response-dialog.ui-dialog .ui-dialog-content .scrollable-content .part {
    display: flex;
    gap: 5px;
    align-items: center;
}

tr.external-service-log-ERROR {
    background-color: var(--external-service-log-ERROR-background) !important;
}
tr.external-service-log-OK {
    background-color: var(--external-service-log-OK-background) !important;
}
tr.external-service-log-EXPIRED {
    background-color: var(--external-service-log-EXPIRED-background) !important;
}
tr.external-service-log-NEGATIVE {
    background-color: var(--external-service-log-NEGATIVE-background) !important;
}
tr.external-service-log-BOOKED {
    background-color: var(--external-service-log-BOOKED-background) !important;
}

.flex-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--flex-container-gap-size);
}
.flex-item {
    flex: 1 1 100px;
    background-color: var(--secondary-background-color);
    color: var(--secondary-text-color);
    text-align: center;
    box-sizing: border-box;
}

.form-container {
    display: grid;
    grid-template-columns: 35% 1fr;
    gap: 10px;
    margin-bottom: 15px;
    align-items: stretch;
    width: 100%;
}
.form-container .label,
.form-container .input {
    height: 100%;
    width: 100%;
    padding: 10px;
    box-sizing: border-box;
}
.form-container .label {
    text-align: right !important;
}
.form-container .input {
    text-align: left !important;
}
.form-container .colspan-2 {
    grid-column: 1 / span 2;
}
.form-container .input input,
.form-container .input .ui-inputfield {
    width: 100%;
    box-sizing: border-box;
}
.form-container .separated {
    /* Used at small screens */
}

.data-container {
    display: flex;
    gap: 10px;
    flex-wrap: wrap; /* To wrap columns at small screens */
}
.data-container .column {
    flex: 1; /* Default set for column if more than 2 (check belowe) */
    padding: 10px;
}
.data-container .column:nth-child(1) {
    flex: 1; /* First column fit the whole available space */
}
.data-container .column:nth-child(2) {
    flex: 0 0 40%; /* Second column fit 40% */
}

.contact {
    text-align: center;
}
.contact .top {
    margin: 15px 20px;
    padding-top: 20px;
    font-size: 1.6em;
    font-style: italic;
    font-weight: bold;
    letter-spacing: 0.05em;
}
.contact .bottom {
    margin: 15px 20px;
    padding-bottom: 20px;
    font-size: 1.1em;
}
.contact a {
    font-size: 1.1em;
    color: inherit;
}
.contact a:hover {
    text-decoration: none;
    color: var(--button-big-background-color);
}

.error-status-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}
.error-status-container h1 {
    background-color: var(--error-background-color);
    color: var(--error-text-color);
}
.error-status-container .error-status-icon {
    font-size: 20em;
}
.error-status-container .error-status-400::before {
    content: "\f071"; /* Unicode for fa-exclamation-triangle */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: var(--error-icon-color);
    display: inline-block;
}
.error-status-container .error-status-401::before {
    content: "\f502"; /* Unicode for fa-user-lock */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: var(--error-icon-color);
    display: inline-block;
}
.error-status-container .error-status-403::before {
    content: "\f05e"; /* Unicode for fa-ban */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: var(--error-icon-color);
    display: inline-block;
}
.error-status-container .error-status-404::before {
    content: "\f010"; /* Unicode for fa-search-minus */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: var(--error-icon-color);
    display: inline-block;
}
.error-status-container .error-status-500::before {
    content: "\f233"; /* Unicode for fa-server */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: var(--error-icon-color);
    display: inline-block;
}

.payment-status-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}
.payment-status-container .item {
    text-align: center;
}
.payment-status-container .payment-status-icon {
    font-size: 150px;
}
.payment-status-container .payment-status-text {
    font-size: 1.3em;
    font-weight: bold;
}
.payment-status-container .payment-status-canceled::before {
    content: "\f057"; /* Unicode for fa-times-circle */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: #d9534f;
    display: inline-block;
}
.payment-status-container .payment-status-completed::before {
    content: "\f058"; /* Unicode for fa-check-circle */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: #5cb85c;
    display: inline-block;
}
.payment-status-container .payment-status-new::before {
    content: "\f110"; /* Unicode for fa-spinner */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: #0275d8;
    display: inline-block;
    animation: payment-status-spin 2s infinite linear;
}
.payment-status-container .payment-status-pending::before {
    content: "\f252"; /* Unicode for fa-hourglass-half */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: #f0ad4e;
    display: inline-block;
    animation: payment-status-pulse 2s infinite;
}
.payment-status-container .payment-status-refunded::before {
    content: "\f2ea"; /* Unicode for fa-undo-alt */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: #5bc0de;
    display: inline-block;
}
.payment-status-container .payment-status-rejected::before {
    content: "\f05e"; /* Unicode for fa-ban */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: #d9534f;
    display: inline-block;
}
.payment-status-container .payment-status-unknown::before {
    content: "\f059"; /* Unicode for fa-question-circle */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: #6c757d;
    display: inline-block;
}
@keyframes payment-status-spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}
@keyframes payment-status-pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.15);
    }
}

.faq-section {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.faq-section .faq-item {
    flex: 1 1 100%;
    background-color: inherit;
    box-sizing: border-box;
    margin: 5px 0;
}
.faq-section .faq-toggle {
    display: flex;
    align-items: center;
    width: 100%;
    color: inherit;
    background-color: inherit;
    border: none;
    padding: 10px;
    font-size: 1.0em;
    font-weight: bold;
    cursor: pointer;
    transition: text-shadow 0.3s ease;
}
.faq-section .faq-toggle:hover {
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
}
.faq-section .faq-toggle .icon {
    font-size: 1.5em;
    margin-right: 10px;
    transition: color 0.3s ease;
}
.faq-section .faq-toggle:hover .icon {
    color: var(--secondary-background-color)
}
.faq-section .faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s ease;
    padding: 0 10px;
    border-left: 4px solid var(--secondary-background-color);
    background-color: inherit;
    font-size: 1em;
}
.faq-section .faq-answer p {
    text-align: justify;
}
.faq-section button:focus {
    outline: none;
}
.faq-section ol {
    list-style: none;
    counter-reset: list-counter;
}
.faq-section ol > li {
    counter-increment: list-counter;
}
.faq-section ol > li::before {
    content: counter(list-counter, lower-alpha) ") ";
    margin-right: 0.5em;
}

.payment-provider {
    height: 100px;
    width: auto;
    object-fit: contain;
}
.payment-provider[data-provider="payu"] {
    content: url("/javax.faces.resource/payu.png.xhtml");
}
.payment-provider[data-provider="autopay"] {
    content: url("/javax.faces.resource/autopay.svg.xhtml");
}

#appealForm\:attachmentDataTable,
#appealTalkResponseForm\:attachmentDataTable,
#historyForm\:attachmentDataTable {
    margin-bottom: 20px;
}
#appealForm\:attachmentDataTable thead,
#appealTalkResponseForm\:attachmentDataTable thead,
#historyForm\:attachmentDataTable thead {
    display: none;
}
#appealForm\:attachmentDataTable table,
#appealTalkResponseForm\:attachmentDataTable table,
#historyForm\:attachmentDataTable table {
    border: none;
    background-color: transparent;
}
#appealForm\:attachmentDataTable td,
#appealForm\:attachmentDataTable th,
#appealTalkResponseForm\:attachmentDataTable td,
#appealTalkResponseForm\:attachmentDataTable th,
#historyForm\:attachmentDataTable td,
#historyForm\:attachmentDataTable th {
    border: none;
    background-color: transparent;
}
#appealForm\:attachmentDataTable .ui-widget-content,
#appealTalkResponseForm\:attachmentDataTable .ui-widget-content,
#historyForm\:attachmentDataTable .ui-widget-content {
    border: none;
    background-color: transparent;
}

.session-message-container {
    margin: 10px 20px;
    padding: 10px 20px;
    font-size: 2em !important;
    font-weight: bold;
    text-align: center;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
    letter-spacing: 0.1em;
    color: var(--error-text-color);
    background-color: var(--error-background-color);
}

/* AjaxStatus - begin */
.ajax-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.3);
    z-index: 9999;
    display: block;
}
.ajax-overlay .ajax-icon {
    position: absolute;
    bottom: 40px;
    right: 60px;
    font-size: 50px;
    color: #ddd;
    z-index: 10000;
    animation: spin 2s linear infinite;
}
@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}
/* AjaxStatus - end */

@media (max-width: 1024px) {
    .home-image-container::after {
        display: none;
    }

    .appeal-details .details-container {
        flex-direction: column;
    }
    .appeal-details .details-item {
        flex: 1 1 100%;
    }
    .appeal-details .conversation .bubble-left,
    .appeal-details .conversation .bubble-right {
        min-width: 80%;
        max-width: 80%;
    }

    .data-container {
        flex-direction: column;
    }
    .data-container .column {
        flex: 1 1 100%;
    }
}

@media (max-width: 768px) {
    .rodo-dialog.ui-dialog {
        min-width: 100vw !important;
        min-height: 100vh !important;
        max-width: 100vw !important;
        max-height: 100vh !important;
    }
    .rodo-dialog.ui-dialog .ui-dialog-content {
        max-height: calc(100vh - 100px);
    }
    .appeal-details-response-dialog.ui-dialog {
        min-width: 100vw !important;
        min-height: 100vh !important;
        max-width: 100vw !important;
        max-height: 100vh !important;
    }
    .appeal-details-response-dialog.ui-dialog .ui-dialog-content {
        max-height: calc(100vh - 100px);
    }

    .grid-layout {
        grid-template-columns: 1fr;
        gap: 10px 50px;
    }
    .grid-layout .divider {
        grid-column: 1;
    }
    .grid-layout .print {
        grid-column: 1;
    }
    .grid-layout .hidden-on-big {
        display: block;
    }

    .flex-item {
        flex: 1 1 calc(100%);
    }

    .form-container {
        grid-template-columns: 1fr;
    }
    .form-container .label,
    .form-container .input {
        padding-bottom: 5px;
        text-align: left !important;
    }
    .form-container .colspan-2 {
        grid-column: 1;
    }
    .form-container .label:empty, /* Hide if empty */
    .form-container .label:only-child:not(:has(*)):not(:has(text)) {
        display: none;
    }
    .form-container .input {
        padding-top: 5px;
    }
    .form-container .separated {
        border-top: 1px dashed gray;
    }

    .appeal-details .conversation .bubble-left,
    .appeal-details .conversation .bubble-right {
        min-width: 90%;
        max-width: 90%;
    }
}
