@charset "utf-8";


:root {
    /* Colors */
    --color-white: #fff;
    --color-white-60: rgba(255, 255, 255, 0.6);
    --color-white-50: rgba(255, 255, 255, 0.5);
    --color-navy: #192F3E;       /* button text, table-view buttons */
    --color-navy-dark: #041C2C;  /* checkbox fill, admin dialog accents */
    --color-blue: #00405D;       /* table headers, select text */
    --color-blue-light: #3aa5de; /* input focus border */
    --color-grey: #707070;       /* court card text, input border */
    --color-grey-light: #bbb;    /* placeholder text */
    --color-backdrop: rgba(4, 28, 33, 0.6);

    --color-button-background: #FF7A71;     
    --color-button-text:       #fff;

    /* Fonts */
    --font-body: roc-grotesk, sans-serif;

    /* Font weights (roc-grotesk: 400 regular / 500 medium / 600 bold-ish, per Typekit kit) */
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-bold: 600;

    /* Spacing */
    --spacing: 30px;

    /* Radius */
    --radius-sm: 5px;
    --radius-md: 20px;
    --radius-lg: 30px;

    /* Motion */
    --transition-base: 0.3s all ease-out;

    /* Icons */
    --icon-location: url("../images/location.svg");
    --icon-tick: url("../images/tick.svg");
    --icon-camera-corners: url("../images/camera-corners.png");

    --set-width-one:350px;
    --set-width-two:500px;

}

body {
    background-image: url(../images/sp_home-1.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    height: 100vh;
    width: 100vw;
    padding: 30px;
    margin: 0;
    box-sizing: border-box;
    font-family: var(--font-body);
    font-weight: var(--font-weight-bold);
    font-style: normal;
    color: #FFF;
    font-size: 18px;
    line-height: 1.2;
}

body:before, body:after {
    content: "";
    position: absolute;
    background-repeat: no-repeat;
    background-size: contain;
    z-index: -1;
}

body:before {
    background-image: url(../images/top-right.svg);
    top: 0;
    right: 0;
    width: 30%;
    height: 50%;
    background-position: top right;
}

body:after {
    background-image: url(../images/bot-left.svg);
    bottom: 0;
    left: 0;
    width: 25%;
    height: 50%;
    background-position: bottom left;
}

header{text-align:right}

footer{position: absolute;  bottom: 30px;  display: grid;  grid-template-columns: 1fr 1fr 1fr;  width: calc(100% - 60px);  grid-gap: 30px;}
#clock {display: flex;align-items: end;justify-content: start;}
#clock #date-time{margin:0;text-transform: uppercase;margin-bottom:-13px;}
#clock span{font-size:48px; display:block}
#logo{display: flex; align-items: center; justify-content: center}
/*#logo img {max-width: 140px;}*/
#privacy{display: flex;  align-items: end;  justify-content: end;}
.content{height: calc(100dvh - 230px); display: flex; flex-direction: column; text-align: center; align-items: center;  justify-content: center;}

h1,h2,h3{text-transform: uppercase; margin: 0; line-height: 1}
h1{font-size:70px;margin-bottom:0px;}
h2{font-size:38px;font-weight:500;margin-bottom:8px;}
#checkintime {margin:0}
#checking_step_1 h1 {font-size: 80px;margin-bottom:0;}
.subheading {font-size:30px;}

.button, input[type="submit"]{
    border:none;
    background-color:var(--color-button-background);
    color:var(--color-button-text);
    text-transform: uppercase;
    padding: 18px 60px;
    font-weight: var(--font-weight-bold);
    font-size:18px;
    cursor: pointer;
    transition: 0.3s all ease-out;
    text-decoration: none;
    display: inline-block;
    box-sizing: border-box;
    border-radius: var(--radius-lg);
    text-align: center;
}
#selectButton {width:var(--set-width-two);margin:15px;}


.button.active {background-color: rgba(255, 255, 255, 0.5);}
.scanner .camera{background-color:#000; width: 300px; margin: 0px auto;  border-radius: 15px; padding: 0; box-sizing: border-box; position: relative;}
.scanner .camera-inner{ background-color: transparent; position: absolute; top: 15px; left: 15px; bottom: 15px; right: 15px;}
.scanner .camera-inner:before{content:""; position:absolute; background-image: url("../images/camera-corners.png"); background-size: contain; width: 100%;  height: 100%;  left: 0;  opacity: 1;  z-index: 2; background-repeat: no-repeat;}
#camera, #qr-shaded-region, video{border-radius: 15px;}
video{transform: scaleX(-1);}
#cameras > div{margin-bottom:20px;}
#court_buttons .button {padding:16px 60px;}
#step_5_email {text-transform: lowercase;}
.manual-checkin .content{
    align-items: initial;
    padding-bottom:40px;
    box-sizing: border-box;
}




    .manual-checkin h2{text-align: center;font-weight:600}
.manual-checkin .location{text-align: left; font-size: 32px; margin-top: 0; background-image: url("../images/location.svg"); background-repeat: no-repeat; background-position: center left; padding-left: 30px;  background-size: 20px; margin-bottom: 0px;}
.manual-checkin .courtno{text-align: left; margin-bottom: 40px; font-size: 22px; margin-top: 0; padding-left: 30px; text-transform: uppercase;}
.manual-checkin form{width:var(--set-width-one); margin: 0px auto; text-align: left}
.manual-checkin form label{text-transform:uppercase; font-size:16px; margin-bottom: 5px;  display: block;}
.manual-checkin form input::-webkit-outer-spin-button, .manual-checkin form input::-webkit-inner-spin-button {-webkit-appearance: none;  margin: 0}
.manual-checkin form input[type=number] {-moz-appearance: textfield}

.manual-checkin form input[type=number], .manual-checkin form input[type=email] {
    background-color: #fff;
    border: 3px solid transparent;
    padding: 15px;
    width: 100%;
    box-sizing: border-box;
    transition: 0.3s all ease-out;
    border-radius: var(--radius-lg);
    opacity: 0.7;    
}

.manual-checkin form input:focus{outline: none; border:3px solid #3aa5de; opacity: 1}
.manual-checkin form .form-element{margin-bottom:15px}
.manual-checkin form p{text-align:center; font-size:22px; margin: 10px 0;}
.manual-checkin form input[type="submit"]{opacity:1; width:100%;min-width:var(--set-width-one); text-align:center;}


#language select{ -webkit-appearance: none; background-color: transparent;  border: none;  color: #fff; font-weight: var(--font-weight-medium); font-size:22px;  padding-right: 30px; background-position: center right; background-size:25px; background-repeat: no-repeat;}
#language option{color:#000; font-size:22px}

#language select:has(option[value="EN"]:checked) {background-image: url("../images/flag-gb.svg")}
#language select:has(option[value="FR"]:checked) {background-image: url("../images/flag-fr.svg")}
#language select:has(option[value="DE"]:checked) {background-image: url("../images/flag-de.svg")}
#language select:has(option[value="ES"]:checked) {background-image: url("../images/flag-es.svg")}
#language select:has(option[value="IT"]:checked) {background-image: url("../images/flag-it.svg")}

#admin .button{background-color:transparent; padding:0; color: #fff;  text-decoration: none; text-transform: none;font-weight:var(--font-weight-medium);}
#privacy .button{background-color:transparent; padding:0; background-image: url("../images/doublearrow.svg");  background-repeat: no-repeat;  background-size: 15px 15px;  padding-left: 25px;  background-position: center left;  color: #fff;  text-decoration: none; text-transform: none}


#privacyDialog{max-width: 80%; max-height: 80%; font-size: 14px;  font-weight: var(--font-weight-medium); position: relative; outline: none; padding: 40px;  box-sizing: border-box;
border-radius: var(--radius-lg)}

#privacyDialog::backdrop,
#adminDialog::backdrop
{background-color: rgba(4, 28, 33, 0.6);}

#adminDialog {
    padding:50px 30px 50px 30px;
    box-sizing: border-box;
    position: relative;
    width: 500px;
    border-radius: var(--radius-lg);
    background-color: rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    border:3px solid #fff;
    box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5);
}

#adminDialog[open] {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

#adminPassword,#adminPassword:focus {
    outline:none;width: 100%;
    height:58px;
    margin: 15px 0px 0 0px;
    padding:10px;
    box-sizing: border-box;
    border:1px solid #707070;
    border-radius: var(--radius-lg);
}

#adminPassword::placeholder {color:#bbb}
#adminDialog h2 {
    text-align: center;
    font-size: 42px;
    font-weight: 700;
    color:#fff;
    margin:0;
}

#adminDialog .admin-ok,
#adminDialog .admin-cancel {
    display:block;
    width: 100%;
    box-sizing: border-box;
}
#adminDialog .admin-ok {
    margin-top: 10px;
    background-color: var(--color-button-background);
}
#adminDialog .admin-cancel {
    background-color:#aaa;
}

.dialog-close{position: absolute;top:10px;right:10px;padding: 0;  height: 40px;  width: 40px; display: flex;  align-items: center;  justify-content: center;}
#adminDialog .dialog-close {
    position: absolute;
    top:12px;
    right:12px}


h2.name{text-align: center; font-size: 50px; }
h2.fail{text-align: center; font-size: 36px; margin-bottom: 20px}
h3.confirmed{margin-top: 30px;  margin-bottom: 40px; font-size: 36px;}
h3.confirmed span{display:block; font-size: 22px;}
a.next-player, a.reenter{margin: 0px auto; width: var(--set-width-one);}
.tickbox label{display: grid !important;  grid-template-columns: 30px auto;  margin-top: 15px;  grid-gap: 10px;  text-transform: none !important;  align-items: start;}
input[type="checkbox"]{appearance: none; -webkit-appearance: none;  display: flex;  align-content: center;  justify-content: center;}
input[type="checkbox"] {display: grid;  place-content: center;}
input[type="checkbox"]::before { content: "";  width: 20px; height:20px; background-color: var(--color-button-background); border:2px solid #FFF; border-radius: 5px}
input[type="checkbox"]:checked::before {background-image:url("../images/tick.svg"); background-size: 16px;  background-repeat: no-repeat;  background-position: center;}
input[type="checkbox"]:focus{border:none !important}
input[type="submit"]:disabled{opacity: 0.8 !important;}

.courts.flex{display:flex; flex-wrap: wrap; gap: 15px; margin-top: 20px; /*overflow-y: auto; height: 300px;*/}
.courts.flex .court{background-color: #FFF;  border-radius: 26px; padding: 10px; color: #707070; line-height: 0; min-width: 220px;  flex-grow: 1; box-sizing: border-box; }
.courts .court-no{color: #041C2C;}
.courts .court-time{margin-bottom:15px; margin-top:15px; color: #041C2C;}


.courts.table{
    background-color: #ffffff;
    padding:10px;
    margin-top: 10px;
    border-radius: var(--radius-md);
}
.courts.table table{border-collapse: collapse;}
.courts.table table th{color:#00405D; text-align: left}
.courts.table table td{ border-right: 1px dotted #00405d;  padding: 5px; height:50px; }
.courts.table table tr td:last-of-type{border-right: none;}
.courts.table table td .button{font-size:13px; display: block;}
.courts.table .times th{text-align:right; font-size: 14px; padding-right: 5px; position: relative; height:20px}
.courts.table .times th span{position: absolute;  right: -30px;  top: 0;  width: 60px;  text-align: center;}
.courts.table .times th:last-of-type span{right:0; text-align: right}
.courts.table .button{padding:12px;}
.courts.table .button span{display: block;}
.courts.table .button.start{border-top-left-radius: 0; border-bottom-left-radius: 0}
.courts.table .button.end{border-top-right-radius: 0; border-bottom-right-radius: 0}

/* .courts.table .button:hover{transform: scale(1.03)} */
.home{width: 25px;  height: 28px;  position: absolute;}

.courts.table .button {
    border:none;
    background-color:var(--color-button-background);
    color:var(--color-button-text);
    text-transform: uppercase;
    padding: 15px 10px;
    font-weight:700;
    font-size: 22px;
    cursor: pointer;
    transition: 0.3s all ease-out;
    text-decoration: none;
    display: inline-block;
}

#checking_step_0 select {
    color:#00405D;
    font-size:24px;
    font-weight:700;
    padding:18px 40px;
    margin:15px;
    text-transform:uppercase;
    appearance: none;
    background-image: url('data:image/svg+xml;utf8,%3Csvg%20color%3D%22%2300405D%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M6%209L12%2015L18%209%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke%3D%22currentColor%22%2F%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-position: right 20px center;
    background-size: 28px;
    box-sizing: border-box;
    width: var(--set-width-two);
    border-radius: var(--radius-lg);
}
#home_location {
    background-image: url("../images/location.svg");
    font-size: 22px;
    font-weight: 500;
    background-repeat: no-repeat;
    background-position: left center;
    padding-left: 28px;
}
#home_back {
    margin-right:30px;
    vertical-align: top;
}