body {
    font-family: sans-serif;
    font-size: 1.6vh;
    height: 100vh;
    margin: 0px !important;
    box-sizing: border-box;
}

h1 {
    margin: 5px;
}

h2 {
    margin-bottom: 12px;
    margin-top: 6px;
}

@media only screen and (min-width: 320px) and (max-width: 991px) and (orientation: portrait){
    h1 {
        font-size: 2.8vh;
    }

    h2 {
        font-size: 2.0vh;
    }

    .main {
        background-color: #eef2f5;
        font-size: 2vh;
    }

    #form-text-container {
        position: absolute;
        top: 0;
        left: 0;
        padding: 2vh;
    }

    .ui-title {
        margin: 0;
        font-size: 2.5vh;
    }

    .ui-text {
        font-size: 2vh;
    }

    .ui-form-field {
        flex-direction: column;
        align-content: flex-start;
        align-items: flex-start;
        justify-content: flex-end;
        flex-wrap: wrap;
    }

    .ui-form-field label {
        text-align:left;
    }

    .ui-btn {
        font-size: 2vh;
    }

    #button-container {
        position: absolute;
        bottom: 0;
        right: 0;
        width: 100vw;
        padding: 2vh 2vh 2vh 2vh;
    }

    #debug-bar {
        display: none;
    }
}

/* smartphone et tablettes 19/9 */
@media only screen and (min-width: 320px) and (max-width: 991px) and (orientation: landscape){
    h1 {
        font-size: 2.8vh;
    }

    h2 {
        font-size: 2.0vh;
    }


    .main {
        background-color: #eef2f5;
        font-size: 4vh;
    }

    form {
        width: 75vw;
    }

    #form-text-container {
        position: absolute;
        top: 0;
        left: 0;
        padding: 2vh
    }

    .ui-title {
        margin: 0;
        font-size: 4.5vh;
    }

    .ui-text {
        font-size: 4vh;
    }

    .ui-form-field {
        flex-direction: row;
        align-items: flex-start;
        justify-content: center;
        margin: 0 auto;

    }

    .ui-form-field label {
        text-align:right;
    }

    .ui-btn {
        font-size: 4vh;
    }

    #button-container {
        position: absolute;
        bottom: 0;
        right: 0;
        width: 100vw;
        padding: 3vh 3vh 3vh 3vh;
    }

    #debug-bar {
        display: none;
    }
}

/* others */
@media only screen and (min-width: 992px) {
    h1 {
        font-size: 2.5vh;
    }

    h2 {
        font-size: 1.8vh;
    }

    .main {
        justify-content: center;
    }

    form {
        box-shadow: 3px 7px 5px 3px rgb(0 0 0 / 10%);
        border-radius: 5px;
        min-width: 520px;
        max-width: 1080px;
        /*min-height: 520px;*/
        max-height: 90vh;
        margin: 0 auto;
    }

    .ui-title {
        margin: 0;
        font-size: 2vh;
    }

    .ui-text {
        font-size: 1.5vh;
    }

    .ui-form-field {
        flex-direction: row;
        align-content: center;
        align-items: center;
        justify-content: flex-end;
    }

    .ui-form-field label {
        text-align:right;
    }

    .ui-btn {
        font-size: 1.8vh;
    }

    #button-container {
        margin-top: 2vh;
    }

    #debug-bar {
        display: flex;
    }
}

form {
    padding: 1vh;
    background-color: #eef2f5;
    border: unset;
}

.main {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    flex-wrap: nowrap;
    align-items: center;
    height: 100%;
}

.ui-title {
    font-weight: bold;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
}

.ui-text {
    text-align: justify;
    margin: 1vh 1vh 2vh 1vh;
    font-weight: normal;
}

.ui-form-field { /* ligne de formulaire */
    display: flex;
    padding: 1vh 1vh 1vh 1vh;
}

.ui-form-field label {/*label de ligne de formulaire */
    text-wrap: nowrap;
    width: 40%;
    padding:4px;
    box-sizing: border-box;
}

.ui-form-field input {/*input de  ligne de formulaire */
    min-width: 275px;
    width: -webkit-fill-available;
}

.ui-form-field #password-input-container {/* de  ligne de formulaire */
    display: flex;
    width: -webkit-fill-available;
}

#button-container {
    display: flex;
    flex-direction: row;
    /*    width: 100vw;
        padding: 2vh;*/
    box-sizing: border-box;
}

:root {
    /* base color */
    --white: hsl(0, 0, 100%);
    --black: hsl(0, 0, 0%);
    --light-grey: hsl(0, 0, 95%);
    --grey: hsl(0, 0, 80%);
    --dark-grey: hsl(0, 0, 50%);

    /* border */
    --null-border: none;
    --border: 1px solid hsl(0deg, 0%, 95%);

    /* background color */
    --header-bg-color: hsl(0, 0, 100%);
    --header-bg-color-darker: hsl(0, 0, 100%);
    --content-bg-color: hsl(0, 0, 100%);
    --content-bg-color-darker: hsl(0, 0, 100%);
    --footer-bg-color: hsl(0, 0, 100%);
    --footer-bg-color-darker: hsl(0, 0, 100%);

    /* min-heigth */
    --header-min-height: 9vh;
    --footer-min-height: 4vh;

    /* min-width */
    --left-min-width: 5vw;
    --right-min-width: 5vw;

    --ui-container-bg-color: hsl(0, 0%, 91%);
    --ui-btn-bg-color: hsl(0, 0%, 96%);
    --ui-btn-color: hsl(0, 0, 0%);

    --ui-selected-bg-color: #5e94b4;
    --ui-selected-color: white;
}

.ui-centered-span {
    padding: 5px 0px 0px 0px;
    width: 100%;
    text-align: center;
    box-sizing: border-box;
}
.ui-state-hidden {
    display: none;
}

/* */
.ui-link-forgot-password {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-content: center;
    align-items: center;
    justify-content: center;
}

.ui-link-forgot-password a {
    font-size: 1.2vh;
}


.ui-icon-btn  {
    cursor: pointer;
    border-style: none;
    background-color: var(--ui-btn-bg-color);
    border: 1px solid grey;
    border-radius: 0.5vh;
}

.ui-btn {
    cursor: pointer;
    width: 14vw;
    min-width: fit-content;
    max-width: 5vw;
    border-style: none;
    border: 1px solid lightgrey;
    padding: 8px;
    margin: 2px;
    font-weight:bold;
    background-color: var(--ui-btn-bg-color);
}

.ui-btn:hover, .ui-icon-btn:hover, .ui-btn-char:hover {
    filter: brightness(85%);
}

.ui-btn-char {
    cursor: pointer;
    width: 14vw;
    min-width: fit-content;
    max-width: 20px;
    border-style: none;
    padding: 1px;
    margin: 2px;
    font-size: 1.6vh;
    font-weight:bold;
    background-color: var(--ui-btn-bg-color);
}

.ui-input-text {
    text-align: left;
    height: 5vh;
    min-height: 25px;
    max-height: 28px;
    width:100%;
    min-width: 127px;
    max-width: 250px;
    padding: 0.5vh;
    font-size: 1.6vh;
    border: 1px solid grey;
    border-radius: 0.5vh;
    background-color: #f4f4f4;
    box-sizing: border-box;
}

.ui-list-menu {
    text-decoration: none;
    list-style: none;
    display: flex;
    flex-direction: column;
    align-content: flex-start !important;
    flex-wrap: nowrap;
    margin-block: unset;
    margin-inline: unset;
    padding-inline: 3px;
    unicode-bidi: unset;
}

.ui-list-menu li {
    margin:0;
    padding: 0;
    box-sizing: border-box;
    width: 100%;
}

.ui-list-menu li .ui-btn {
    width: 100% !important;
    max-width: unset;
    font-weight: bold;
    text-align: left;
}

/* barre des onglets */
.ui-tab-bar {
    display: flex;
    flex-direction: row;
    border-bottom: 1px solid lightgray;
    box-sizing: border-box;
    margin-bottom:5px;
    margin-left: 5px;
    margin-right: 5px
}

/* bouton des onglets */
.ui-tab-btn {
    height:20px;
    width: fit-content;
    margin-top: 5px;
    margin-right:4px;
    padding: 5px;
    background-color: #EFEFEF;
    border-top: 1px solid grey;
    border-left: 1px solid grey;
    border-right: 1px solid grey;
    font-family: sans-serif;
    font-size: 16px;
    text-wrap-mode: nowrap;
    color: #555555;
    cursor: pointer;
    font-weight: bold;
}

.ui-tab-btn:hover {
    background-color: #5e94b4;
    color: white;
}

.ui-tab-btn-selected {
    background-color: #5e94b4;
    color: white;
}

.ui-input-label {
    text-align: right;
    margin-right:4px;
    padding-top:7px;
}

.ui-input {
    min-width: 300px;
    width: -webkit-fill-available;
    ;
    text-align: left;
    font-family: Arial,Helvetica,sans-serif;
    font-size: 1em;
    background-color: #f6f6f6;
    border-radius: 3px 3px 3px 3px;
    border: 1px solid lightgray;
    font-family: Arial,Helvetica,sans-serif;
    font-size: 1em;
    padding: 0.4em 1em;
    vertical-align: middle;
    cursor: pointer;
}

.ui-input:hover {
    background-color: rgba(94,148,180,1);
    border: 1px solid rgba(118,118,118,1);
    color: rgba(255,255,255,0.8);
}

.ui-input:focus {
    background-color: rgba(246, 246, 246,1);
    border: 1px solid rgba(118,118,118,1);
    color: black;
}

.ui-input:blur {
    background-color: #f6f6f6;
    border: 1px solid lightgray;
    color: rgba(0,0,0,1);
}



select[multiple].ui-input {
    background-color: white;
    border-radius: 3px;
    border: 1px solid lightgray;
    padding: 2px;
}

select[multiple]:hover {
    background-color: #f6f6f6;
    color: black;
}

select.ui-input {
    padding: 4px 4px 4px 10px;
    min-height: 1.4em;
    font-size: 1em;
    cursor: pointer;
}

select.ui-input:hover {
    background-color: rgba(94,148,180,1);
    color: rgba(255,255,255,0.8);
    ;
}

select.ui-input:focus {
    background-color: rgba(94,148,180,1);
    font-weight: bold;
    color: rgba(255,255,255,0.8);
    ;
}

select.ui-input:blur {
    background-color: #f6f6f6;
    font-weight: normal;
    color: rgba(0,0,0,1);
}

table.ui-form-table {
    margin: 0 auto;
    border-spacing: 0;
    border-collapse: collapse;
}

table.ui-form-table td:first-child {
    text-wrap: nowrap;
    text-align: right;
}

/* message utilisateur */
.ui-message-container {
    transition: opacity 0.2s;
    position: absolute;
    top: 0;
    width:100%;
    display: none;
    font-size: 2vh;
    font-weight: normal;
}

.ui-message-container-fade {
    opacity:0;
}

.ui-message {
    font-size: 2vh;
    margin: 10px auto;
    width: 50%;
    min-width: 25%;
    padding: 15px;
    background-color: #e5caca;
    border: 2px solid #dea4a4;
    color: darkred;
}

.ui-message-alert {
    background-color: #ececac;
    border: 2px solid #c5a721;
    color: darkgoldenrod;
}

.ui-message-error {
    background-color: #e5caca;
    border: 2px solid #dea4a4;
    color: darkred;
}

.ui-message-info {
    background-color: #cad5e5;
    border: 2px solid #316cd1;
    color: darkblue;
}

#loader {
    position: absolute;
    top: 0;
    left: 0;
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width:100%;
    height:100%;
    background-color: #ccccccb8;
}

.loader {
    font-size: 10px;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    position: relative;
    text-indent: -9999em;
    animation: mulShdSpin 1.1s infinite ease;
    transform: translateZ(0);
}
@keyframes mulShdSpin {
    0%,
    100% {
        box-shadow: 0em -2.6em 0em 0em #ffffff, 1.8em -1.8em 0 0em rgba(255,255,255, 0.2), 2.5em 0em 0 0em rgba(255,255,255, 0.2), 1.75em 1.75em 0 0em rgba(255,255,255, 0.2), 0em 2.5em 0 0em rgba(255,255,255, 0.2), -1.8em 1.8em 0 0em rgba(255,255,255, 0.2), -2.6em 0em 0 0em rgba(255,255,255, 0.5), -1.8em -1.8em 0 0em rgba(255,255,255, 0.7);
    }
    12.5% {
        box-shadow: 0em -2.6em 0em 0em rgba(255,255,255, 0.7), 1.8em -1.8em 0 0em #ffffff, 2.5em 0em 0 0em rgba(255,255,255, 0.2), 1.75em 1.75em 0 0em rgba(255,255,255, 0.2), 0em 2.5em 0 0em rgba(255,255,255, 0.2), -1.8em 1.8em 0 0em rgba(255,255,255, 0.2), -2.6em 0em 0 0em rgba(255,255,255, 0.2), -1.8em -1.8em 0 0em rgba(255,255,255, 0.5);
    }
    25% {
        box-shadow: 0em -2.6em 0em 0em rgba(255,255,255, 0.5), 1.8em -1.8em 0 0em rgba(255,255,255, 0.7), 2.5em 0em 0 0em #ffffff, 1.75em 1.75em 0 0em rgba(255,255,255, 0.2), 0em 2.5em 0 0em rgba(255,255,255, 0.2), -1.8em 1.8em 0 0em rgba(255,255,255, 0.2), -2.6em 0em 0 0em rgba(255,255,255, 0.2), -1.8em -1.8em 0 0em rgba(255,255,255, 0.2);
    }
    37.5% {
        box-shadow: 0em -2.6em 0em 0em rgba(255,255,255, 0.2), 1.8em -1.8em 0 0em rgba(255,255,255, 0.5), 2.5em 0em 0 0em rgba(255,255,255, 0.7), 1.75em 1.75em 0 0em #ffffff, 0em 2.5em 0 0em rgba(255,255,255, 0.2), -1.8em 1.8em 0 0em rgba(255,255,255, 0.2), -2.6em 0em 0 0em rgba(255,255,255, 0.2), -1.8em -1.8em 0 0em rgba(255,255,255, 0.2);
    }
    50% {
        box-shadow: 0em -2.6em 0em 0em rgba(255,255,255, 0.2), 1.8em -1.8em 0 0em rgba(255,255,255, 0.2), 2.5em 0em 0 0em rgba(255,255,255, 0.5), 1.75em 1.75em 0 0em rgba(255,255,255, 0.7), 0em 2.5em 0 0em #ffffff, -1.8em 1.8em 0 0em rgba(255,255,255, 0.2), -2.6em 0em 0 0em rgba(255,255,255, 0.2), -1.8em -1.8em 0 0em rgba(255,255,255, 0.2);
    }
    62.5% {
        box-shadow: 0em -2.6em 0em 0em rgba(255,255,255, 0.2), 1.8em -1.8em 0 0em rgba(255,255,255, 0.2), 2.5em 0em 0 0em rgba(255,255,255, 0.2), 1.75em 1.75em 0 0em rgba(255,255,255, 0.5), 0em 2.5em 0 0em rgba(255,255,255, 0.7), -1.8em 1.8em 0 0em #ffffff, -2.6em 0em 0 0em rgba(255,255,255, 0.2), -1.8em -1.8em 0 0em rgba(255,255,255, 0.2);
    }
    75% {
        box-shadow: 0em -2.6em 0em 0em rgba(255,255,255, 0.2), 1.8em -1.8em 0 0em rgba(255,255,255, 0.2), 2.5em 0em 0 0em rgba(255,255,255, 0.2), 1.75em 1.75em 0 0em rgba(255,255,255, 0.2), 0em 2.5em 0 0em rgba(255,255,255, 0.5), -1.8em 1.8em 0 0em rgba(255,255,255, 0.7), -2.6em 0em 0 0em #ffffff, -1.8em -1.8em 0 0em rgba(255,255,255, 0.2);
    }
    87.5% {
        box-shadow: 0em -2.6em 0em 0em rgba(255,255,255, 0.2), 1.8em -1.8em 0 0em rgba(255,255,255, 0.2), 2.5em 0em 0 0em rgba(255,255,255, 0.2), 1.75em 1.75em 0 0em rgba(255,255,255, 0.2), 0em 2.5em 0 0em rgba(255,255,255, 0.2), -1.8em 1.8em 0 0em rgba(255,255,255, 0.5), -2.6em 0em 0 0em rgba(255,255,255, 0.7), -1.8em -1.8em 0 0em #ffffff;
    }
}

/* ui component for debug */
.ui-debug-bar {
    flex-direction: row;
    position: absolute;
    bottom: 0;
    left: 0;
    background-color: #6bc36d;
    width: 100%;
    align-content: flex-start;
    flex-wrap: wrap;
    justify-content: flex-start;
    padding: 5px;
    box-sizing: border-box;
}

.ui-debug-btn {
    margin:3px;
}

.ui-debug-data {
    display:none;
    background-color: white;
    border: 1px solid lightgrey;
    position: absolute;
    top: 0;
    left: 0;
    font-size: 12px;
    opacity: 0.8;
    overflow: auto;
    min-width: 40vw;
    min-height: 30vh;
}

