@font-face {
    font-family: 'ubunturegular';
    src: url('../webfont/ubuntu/ubuntu-r-webfont.woff2') format('woff2'),
         url('../webfont/ubuntu/ubuntu-r-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

/*************
	GENERAL
*************/

*{
	padding: 0;
	margin: 0;
	display: inline-block;
	font-family: 'ubunturegular';
}

*:not(path) {
    color: #3D3D3D;
}

pre{
	width: 100%;
	background-color: lightgrey;
	font-size: 12px;
}

head, script, .input_hidden{
	display: none;
}

html, body {
	height: 100%;
    background-color: #ebebeb;
}

body{
	width: 100%;
}

small{
	margin-bottom: 10px;
}

input[type="submit"]{
	margin-top: 10px;
	padding: 10px 0;
	background-color: #5bb15b;
	border-radius: 0;
	color: #fff;
	font-size: 22px;
}

input, textarea, button, a {
    outline: none;
}

input, textarea, button {
    border: 1px solid silver;
    border-radius: 5px;
    padding: .7vw 1.2vw;
    font-size: 1.3vw;
}

svg {
    width: 1.8vw!important;
    height: 1.8vw!important;
}

.flex-0 {
    flex: .0;
}
.flex-05 {
    flex: .05;
}
.flex-1 {
    flex: .1;
}
.flex-15 {
    flex: .15;
}
.flex-2 {
    flex: .2;
}
.flex-25 {
    flex: .25;
}
.flex-3 {
    flex: .3;
}
.flex-35 {
    flex: .35;
}
.flex-4 {
    flex: .4;
}
.flex-45 {
    flex: .45;
}
.flex-5 {
    flex: .5;
}
.flex-55 {
    flex: .55;
}
.flex-6 {
    flex: .6;
}
.flex-65 {
    flex: .65;
}
.flex-7 {
    flex: .7;
}
.flex-75 {
    flex: .75;
}
.flex-8 {
    flex: .8;
}
.flex-85 {
    flex: .85;
}
.flex-9 {
    flex: .9;
}
.flex-95 {
    flex: .95;
}
.flex-full {
    flex: 1;
}
    
.flex{
    display: flex;
}

.flex-self-start {
    align-self: flex-start;
}
.flex-self-end {
    align-self: flex-end;
}
.flex-self-center {
    align-self: center;
}
.flex-self-center {
    align-self: stretch;
}

.flex-center {
    align-items: center;
    justify-content: center;
}
.flex-center-a {
    align-items: center;
}
.flex-center-j {
    justify-content: center;
}


.flex-start-j {
    justify-content: flex-start;
}
.flex-start-a {
    align-items: flex-start;
}
.flex-end-j {
    justify-content: flex-end;
}
.flex-end-a {
    align-items: flex-end;
}

.flex-stretch {
    align-items: stretch;
}


.flex-row {
    flex-direction: row;
}

.flex-col {
    flex-direction: column;
}

.bold {
    font-weight: bold;
}
.italic {
    font-style: italic;
}
.text-center {
    text-align: center;
}
.hidden {
    display: none;
}

#postMessage {
    z-index: 1000;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    display: flex;
    transition: .3s bottom, .1s opacity;
    justify-content: center;
    pointer-events: none;
    opacity: 0;
}

#postMessage.showMessage {
	bottom: 5%;
	opacity: 1;
	pointer-events: all;
}

#postMessage > div {
    width: 30%;
    display: flex;
    align-items: center;
    font-size: 18px;
    border-radius: 5px;
    padding: 20px 20px;
    color: white;
    box-shadow: 0 0 10px rgba(25, 25, 25, 0.4);
}

#postMessage svg {
    color: #fff;
}

#postMessage > div.success {
    background-color: #5bb15b;
}

#postMessage > div.error{
	background-color: #ff4d4d;
}

#postMessage > div > p {
    margin: 0 10px;
    flex: 1;
    color: #fff;
}
#postMessage div > span:nth-child(2) {
	display: none;
}


#postMessage.confirm {
    bottom: 20%;
    pointer-events: all;
    opacity: 1;
}

#postMessage.confirm > div {
    opacity: 1;
    width: 40%;
    background-color: white;
}

#postMessage.confirm > div > div{
    display: flex;
}

#postMessage.confirm > div > p {
    color: #2c2c2c;
}

#postMessage.confirm div > span {
    cursor: pointer;
    font-size: 25px;
    padding: 10px;
    border-radius: 100%;
    margin-right: 15px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#postMessage.confirm div > span{
    transition: background-color .1s, color .1s, box-shadow .2s;
}
#postMessage.confirm div > span:nth-child(1) > svg {
    color: #5bb15b;
}
#postMessage.confirm div > span:nth-child(2) > svg {
    color: #ff4d4d;
}

#postMessage.confirm div > span:hover > svg {
    color: #fff;
}

#postMessage.confirm div > span:nth-child(1):hover {
    background-color: #5bb15b;
    box-shadow: 0 0 0 3px #5bb15b;
}
#postMessage.confirm div > span:nth-child(2):hover {
    background-color: #ff4d4d;
    box-shadow: 0 0 0 3px #ff4d4d;
}

.correct, .edit, .wrong {
    color: white!important;
}

.correct{
    background-color: #5bb15b!important;
}

.edit{
    background-color: #ffa500!important;
}

.wrong{
    background-color: #ff4d4d!important;
}

span.hover {
    position: absolute;
    left: 0;
    top: 0;
    width: 3.5vw;
    height: 3.5vw;
    font-size: 1.7vw;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 100%;
    box-shadow: 0 0 0 0 #fff, 0px 0px 5px silver;
    transition: box-shadow .5s, background-color .1s, border-color 0s;
    cursor: pointer;
    background-color: #fff;
}

/****** PAGE DE CONNEXION *******/

.log{
    text-align: center;
}


.log article {
    width: 60%;
    height: 100%;
    display: flex;
    margin: auto;
    margin-bottom: 3vw;
    flex-direction: column;
    background-color: #E0DADA;
    border-radius: 10px;
    background-color: #e8e8e8;
    box-shadow: 0 0 20px rgba(0,0,0,.25);
}

.log .container_fields{
    padding: 0 20px;
    flex: 1;
    width: 75%;
    align-self: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.log .container_label, .container_labels {
    position: relative;
    display: flex;
    align-items: center;
    margin-top: 2vw;
}

.container_labels > .container_label {
    flex: 1;
    margin-top: 0;
}

.container_labels > .container_label:not(:last-child) {
    margin-right: 15px;
}

.container_label > label{
	padding: 0!important;
    position: absolute;
    transform: translateX(80%);
    background-color: transparent!important;
    color: #2c2c2c;
}

.container_labels > label {
    font-size: 30px;
    background-color: transparent;
    color: #2c2c2c;
}

.log input:not([type="submit"]) {
    background-color: white;
    color: #3D3D3D;
    border-radius: 10px;
    padding: 1.2vw;
    padding-left: 5vw;
    font-size: 1.7vw;
    transition: border-radius .2s, background-color .1s;
    box-shadow: 0px 3px 5px #bfbfbf;
}

.container_labels > .container_label > input {
    padding: 1vw 0;
    text-align: center;
}

.log input[type="submit"] {
    border-radius: 5px;
    padding: .8vw 2.5vw;
    font-size: 2vw;
    color: #fff;
    background-color: #20d2c2;
    align-self: center;
    margin: 1vw;
    margin-top: 3.5vw;
}

p.new_user{
	width: 100%;
	font-size: 20px;
	margin: 10px 0;
}

.log a{
	color: #FF503F;
}

#new_account a{
	margin: 10px 0;
}

#new_account > article {
    background-color: #fff;
}

#new_account input:not([type=submit]) {
    background-color: #ebebeb;
}

#new_account form {
    position: relative;
}
#new_account p#delete {
    position: absolute;
    bottom: 5%;
    right: 10%;
    color: red;
    text-decoration: underline;
    font-size: 1.5vw;
    cursor: pointer;
}


.log a:hover{
	text-decoration: underline;
}

/****** NAVIGATION *******/

nav {
    z-index: 100;
    display: flex;
    align-items: center;
    position: fixed;
    width: 100%;
    transition: background-color .2s, box-shadow .2s;
}

nav.scroll {
    box-shadow: 0 0 10px silver;
    background-color: #fff;
}

nav img {
    width: 16vw;
    height: 3vw;
    padding: 10px;
}

img#login-logo {
    width: 20vw;
    height: 4vw;
    padding: 15px;
    border-radius: 5px;
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -125%);
}

ul{
	width: 100%;
	text-align: right;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

ul a {
    display: flex;
    align-items: center;
    justify-content: center;
	padding: 10px;
    border-radius: 5px;
    margin: 0 5px;
    font-size: 1.3vw;
    transition: background-color .2s, color .2s;
    color: #000;
}

a, button, input[type="submit"]{
	cursor: pointer;
	text-decoration: none;
}

ul > li svg {
    font-size: 25px!important;
    margin: 0 5px;
    transition: color .1s;
}

ul > li > a:hover, ul > li > a:hover > svg{
    color: #fff;
}

ul a:hover{
    background-color: #3D3D3D;
}

ul > li > span {
    display: flex;
    align-items: center;
    padding: 10px;
    font-size: 1.3vw;
    background-color: #fff;
    border-radius: 5px;
    color: #000;
}

/****** SECTION *******/

/*************************/
/****** LISTE COURS ******/

.cours {
    display: flex;
    flex-direction: column;
}

.cours p.description {
    font-style: italic;
}

.cours > .infos {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.cours > .infos > h2 {
    color: #2c2c2c;
    padding: 10px 35px;
    padding-left: 50px;
    font-size: 30px;
    border-bottom: 5px solid #33db95;
    transition: background-color .1s, padding .3s, color .1s, margin-left .1s;
}

.cours.lock h2 {
    display: flex;
    align-items: center;
    border-color: orange;
}
.cours.lock h2 > span.show {
    border-color: orange;
}
.cours.lock h2 > span.show:hover {
    box-shadow: 0 0 0 5px orange, 0px 0px 12px #9a9a9a;
    background-color: orange;
}
.cours.lock h2 > span.show > svg {
    color: orange;
}

.cours > .infos > p {
    font-size: 20px;
    margin: 15px 30px;
    margin-right: 0;
}

#liste_cours_user .cours > .infos > div {
    display: none;
}

.cours > .videos {
    display: flex;
    justify-content: center;
    flex-flow: wrap;
}

.cours > .videos > .video {
    position: relative;
    display: flex;
    flex-direction: column;
    max-width: 350px;
    background-color: #e8e8e8;
    border: 1px solid silver;
    margin: 15px 35px;
    cursor: pointer;
    border-radius: 5px;
    box-shadow: 0px 5px 10px silver;
    transition: transform .2s, box-shadow .5s, background-color .2s;
}

.videos > .video:hover {
	transform: translateY(-10px);
    box-shadow: 0px 10px 20px #8d8d8d;
}

.videos > .video > img {
    width: 300px;
}

.videos > .video > .infos {
    padding: 10px;
    padding-bottom: 0;
}

.video > .infos > * {
    display: block;
    margin-bottom: 10px;
}

.videos > .video > .infos > h3 {
	display: flex;
	align-items: center;
}

.videos > .video > .infos > h3 > svg {
	margin-right: 10px;
}


/* Affichage de la liste des cours */

#showMenu {
    position: fixed;
    bottom: 3vh;
    transform: translateX(-50%);
    left: 50%;
    display: flex;
    justify-content: center;
}

#showMenu > div {
    display: flex;
    align-items: center;
    font-size: 25px;
    border-radius: 5px;
    padding: 10px 20px;
    box-shadow: 0 0 5px grey;
    background-color: #ff9d38;
    cursor: pointer;
    transition: box-shadow .3s, color .1s, background-color .1s;
}
#showMenu > div > svg {
    margin-right: 10px;
}
#showMenu > div > p {
    color: #fff;
}

#showMenu > div:hover {
    background-color: #fff;
    box-shadow: 0 0 0 5px #ff9d38;
    color: #ff9d38;
}

#showMenu > div:hover > p{
    color: #ff9d38;
}

#liste_cours_user.menu {
    padding-bottom: 5vw;
}
#liste_cours_user.menu h2 {
    border-bottom: 0;
    padding: 10px 20px;
    cursor: pointer;
    background-color: #e8e8e8;
    font-size: 25px;
    border-radius: 5px;
    margin: 5px 0;
    margin-left: 10px;
}
#liste_cours_user.menu .cours.lock h2 {
    background-color: #f6f6f6;
}

#liste_cours_user.menu .cours:not(.lock):not(.ui-sortable-helper) h2:hover {
    margin-left: 30px;
    background-color: rgba(32, 210, 194, .2);
}
#liste_cours_user.menu .cours.ui-sortable-helper h2.ui-sortable-handle {
    margin-left: 3vw;
    background-color: #fff;
    box-shadow: 0 0 0 5px #20d2c280;
    color: #20d2c2;
}
#liste_cours_user.menu .placeholderMenu {
    height: 4vw;
    border-left: 10px solid #20d2c280;
}

#liste_cours_user.menu .cours > .infos {
    flex-direction: row;
    align-items: center;
}
#liste_cours_user.menu .cours.lock h2 > svg {
    display: none;
}

#liste_cours_user.menu .cours > .infos > div {
    display: flex;
    font-size: 25px;
    margin-left: 10px;
    align-items: center;
}


#liste_cours_user.menu .cours > .infos > div > svg {
    font-size: 20px;
}

#liste_cours_user.menu .cours.lock > .infos > div.lock > svg {
    background-color: orange;
}
#liste_cours_user.menu .cours > .infos > div:not(.lock) > svg {
    margin-right: 10px;
    background-color: #20d2c2;
}

#liste_cours_user.menu .cours > .infos > div > svg {
    color: #fff;
    padding: 10px;
    border-radius: 100%;
    width: 25px;
    height: 25px;
}

/**** FIN LISTE COURS ****/
/*************************/

section{
	width: 100%;
}

.title_section {
    width: 100%;
    text-align: center;
    font-size: 2.5vw;
    padding: 2vw 0;
}

p.message{
	display: flex;
	color: #E0DADA;
	padding: 10px 0;
	justify-content: center;
	text-align: center;
}

#message_add_cours{
	width: 100%;
	border-radius: 0;
}

.message.error{
	background-color: #ff4d4d;
}

.message.success{
	background-color: #5bb15b;
}

.empty_cours {
	width: 100%;
	text-align: center;
}

.empty_cours > h2 {
    width: 50%;
    padding: 20px 0;
	color: white;
	background-color: rgba(0,0,0,.5);
}

/****** FORMULAIRE *******/

form{
	display: flex;
	flex-direction: column;
	height: 100%;
}

form label {
    padding: 1vw 1.5vw;
    background-color: #3D3D3D;
    color: #E0DADA;
    border-radius: 10px 0 0 10px;
}

form input, form textarea{
	padding: 5px 10px;
	flex: 1;
}

form button{
	align-items: center;
}

form input{
	border-radius: 0 10px 10px 0;
	font-size: 18px;
}

form textarea{
	border-radius: 0 10px 10px 10px;
	font-size: 15px;
}

fieldset{
	margin: 5px;
	padding: 10px;
    border: none;
    background-color: rgba(224, 218, 218, 0.9);
    width: 100%;
    border-radius: 10px;
}

legend{
	background-color: #3D3D3D;
	font-size: 30px;
	color: #E0DADA;
	padding: 8px 25px;
	border-radius: 5px;
	text-align: center;
}

.allowUpdate > label {
    position: unset;
    transform: unset;
    font-size: 1.3vw;
}

.allowUpdate > div {
    position: relative;
    height: 1.8vw;
    width: 3vw;
    background-color: white;
    border-radius: 30px;
    border: 1px solid grey;
    margin-right: 10px;
    transition: background-color .1s;
}

.allowUpdate > div > span {
    position: absolute;
    left: 10%;
    top: 50%;
    transform: translateY(-50%);
    width: 1.3vw;
    height: 1.3vw;
    background-color: grey;
    border-radius: 100%;
    transition: left .2s, background-color .3s;
}

.allowUpdate > input:checked + div {
	border-color: #5bb15b;
	background-color: #5bb15b;
}
.allowUpdate > input:checked + div > span {
    left: 45%;
    background-color: white;
}

input[readonly], input:disabled{
	pointer-events: none;
    background-color: lightgray!important;
}

/*** LISTE COURS ***/

.container_cours{
	display: flex;
    flex-direction: column;
    padding: 0 100px;
}

.video_container{
	display: flex;
	flex-direction: column;
}

.infos_cours:nth-child(odd){
	border-bottom: 1px solid black;
}

.infos_cours:nth-child(even){
	border-top: 1px solid black;
}

.infos_cours{
    background-color: #E0DADA;
	display: flex;
	align-items: center;
}

#liste_cours_user .cours_element{
	display: flex;
}

.desc_cours, .cours_element, .question_element, .reponse_element{
	border-left: 1px solid black;
}

.cours_element{
    background-color: floralwhite;
	transition: .1s background-color;
	border-bottom: 1px solid black;
}

.video_element {
    display: flex;
    background-color: floralwhite;
	flex-direction: column;
}

.question_element{
	align-items: center;
	border-bottom: 1px solid black;
}

.list_reponse{
	display: flex;
	flex-direction: column;
}

.reponse_element{
	background-color: lightgray;
	border-bottom: 1px solid black;
}

.question_element p, .reponse_element p{
	margin-left: 10px;
}

.title_video{
	padding: 10px 20px;
    flex: 100%;
    color: #3D3D3D;
}

.num_cours{
	margin-left: 15px;
    margin-right: 30px;
    flex: 1;
}

.drop{
	color: #3D3D3D;
}

.drop.cours{
    padding: 10px 25px;
    background-color: #3D3D3D;
    color: #E0DADA;
    cursor: pointer;
}

.drop_video, .drop_question{
	padding: 10px 20px;
    background-color: #E0DADA;
    border-right: 1px solid black;
    cursor: pointer;
}

.rotate{
	transform: rotate(90deg);
}

.nbV{
	display: flex;
	align-items: center;
	margin-right: 50px;
}

a.nbV > svg{
	font-size: 30px;
    color: #ffa500;
}

.nbV p{
	font-size: 20px;
	font-weight: bold;
	margin-left: 6px;
}

#liste_cours_user .desc_cours{
	display: flex;
}

.desc_cours{
	background-color: #E0DADA;
	padding: 10px 20px;
	flex-direction: column;
	border-bottom: 1px solid black;
}

.desc_cours p{
	width: 100%;
	margin-top: 5px;
}

.dropped_border{
	border-left: 8px solid darksalmon;
}

.dropped_bg, .drop:hover{
	background-color: darksalmon;
	color: #3D3D3D;
}

/** USERS **/

#users {
    display: flex;
    align-items: center;
    flex-direction: column;
}

#handle {
    display: flex;
    align-items: center;
    width: 40%;
    margin-bottom: 20px;
}

#handle > input {
    flex: 1;
    align-self: center;
    padding: 1vw 2vw;
    font-size: 1.5vw;
    outline: none;
    border-radius: 3px;
    box-shadow: 0 3px 15px silver;
    border: 1px solid silver;
}

#handle > a {
    margin-left: 10px;
    font-size: 25px;
    height: 3.5vw;
    width: 3.5vw;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #42ae42;
    border-radius: 30px;
}

#handle > a > svg {
    color: #fff;
}


/* MODAL */


#modal {
    z-index: 999;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,.3);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1vw;
}

#modal > div {
    display: flex;
    flex-direction: column;
    height: 75vh;
    width: 50vw;
    font-size: 1vw;
    border-radius: 5px;
    box-shadow: 0 0 10px 0 rgba(0,0,0,.5);
    background-color: #fff;
}

#modal_title {
    position: relative;
    display: flex;
    align-items: center;
    background-color: #e8e8e8;
    border-bottom: 1px solid #e0e0e0;
    padding: 1vw 0;
    border-radius: 5px 5px 0 0;
}
#modal_title > p {
    font-size: 1.3vw;
    margin-left: 1.5vw;
}
#modal_title > svg {
    position: absolute;
    right: 3%;
    color: #d35d5d;
    width: 1.8vw;
    height: 1.8vw;
    cursor: pointer;
}

#modal_content {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 1vw;
}
#modal_content > div {
    flex: 1;
}
#modal_content p {
    font-size: 1.2vw;
}

#modal_buttons {
    margin: 1vw;
}
#modal_buttons > button {
    margin: 0 .5vw;
    background-color: #e8e8e8;
    transition: .1s;
}
#modal_buttons > button:hover {
    background-color: #fff;
    box-shadow: 0 0 0px 5px #e8e8e8;
}