﻿@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');

:root {
    --ketech-blue: #1F497D;
    --ketech-yellow: #FFFF00;
    --ketech-black: #000000;
    --ketech-white: #FFFFFF;
    --ketech-grey: #575757;
}

html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    min-height: 100%;
    max-height: 100%;
    height: 100%;
}


h2 {
    white-space: pre-line;
}

hr {
    margin: 0px;
    width: 100%;
    border-color: var(--ketech-white);
}

.my-reconnect-modal > div {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1000;
    overflow: hidden;
    background-color: var(--ketech-blue);
    opacity: 1;
    text-align: center;
    font-weight: bold;
    color: var(--ketech-white);
}

.components-reconnect-hide > div {
    display: none;
}

.components-reconnect-show > div {
    display: none;
}

.components-reconnect-show > .show {
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.components-reconnect-failed > div {
    display: none;
}

.components-reconnect-failed > .failed {
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.components-reconnect-rejected > div {
    display: none;
}

.components-reconnect-rejected > .rejected {
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.timeBox {
    color: var(--ketech-white);
    width: 20vw;
    height: 20vh;
    border: 2px solid var(--ketech-white);
    position: absolute;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: calc(1vh + 1vw + 3vmin);
}

.table {
    width: 80%;
    margin: 10%;
    color: var(--ketech-white);
    border: 2px solid var(--ketech-white);
}

.buttonsBlock {
    width:10vw;
    right: 0;
    text-align:right;
    position: absolute;
    height: 48vh;
    display: flex;
    flex-direction: column;
}

.buttonsBlockLiveViewer {
    width: 10vw;
    right: 0;
    text-align: right;
    position: absolute;
    height: 35vh;
    display: flex;
    flex-direction: column;
}

.adviceInputButton {
    width: 100%;
    flex: 1;
    font-size: 2.5vmin;
}

.serviceSelectionAdviceColumnButton {
    width: 100%;
    height: 17vh;
    flex: 1;
    font-size: 2.5vmin;
}

.serviceSelectionButtonLeft {
    float: left !important;
}

.serviceSelectionButtonRight {
    float: right !important;
}

.simpleButtonsLink {
    height: 100%;
    width: 100%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.simplePaddingBox {
    position: absolute;
    width: 20%;
    height: 40%;
    border: 2px solid var(--ketech-white);
    padding-top: 1rem;
    display: block;
    text-align: center;
}

.simpleTopText {
    height: 50%;
    position: absolute;
    width: 100%;
    display: flex;
    padding: 1rem;
    text-align: left;
}

.advicebox {
    color: var(--ketech-white);
    width: 60%;
    height: 40%;
    border-right: 2px solid var(--ketech-white);
    border-top: 2px solid var(--ketech-white);
    border-bottom: 2px solid var(--ketech-white);
    position: absolute;
    left: 20%;
    text-align: center;
    align-items: center;
    justify-content: center;
}

.adviceBoxService {
    top: 40%;
    border-top: none;
    padding: 1rem;
}

.simpleBottomAdvice {
    position: absolute;
    border-right: 2px solid var(--ketech-white);
    border-left: 2px solid var(--ketech-white);
    border-bottom: 2px solid var(--ketech-white);
    width: 100%;
    height: 10%;
    text-align: left;
    padding: 0.5rem;
}

.simpleBottomAdviceHome {
    top: 0px;
    border-top: 2px solid var(--ketech-white);
}

.simpleBottomAdviceOne {
    top: 80%;
}

.simpleBottomAdviceTwo {
    top: 90%;
}

.simpleBottomAdviceImage {
    height: 50%;
}

.simpleButtons {
    color: var(--ketech-white);
    width: 20%;
    height: 20%;
    border-right: 2px solid var(--ketech-white);
    border-bottom: 2px solid var(--ketech-white);
    position: absolute;
    left: 80%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}


.simpleButtonsTwo {
   top:20%
}

.simpleButtonsThree {
    top: 40%
}

.simpleButtonsFour {
    top: 60%
}

.simpleButtonAdviceImage {
    height: 80%;
}

.simpleAdviceLabel {
    font-size:2vw;
    padding-left:1vw;
}

.toucharea {
    color: var(--ketech-white);
    border: none;
    text-align: center;
    text-align: center;
    position: absolute;
    border-style: none;
    width: 100vw;
    height: 100vh;
    top: 0;
    left: 0;
}

.touchareaDay {
    background-color: var(--ketech-blue);
}

.touchareaNight {
    background-color: var(--ketech-black);
}

.splashscreen {
    max-width:100%;
    max-height:100%;
}

.bottomRow #text {
    text-align: center;
    border: 2px solid var(--ketech-white);
    display: inline-block;
    width: 80%;
    height: 100%;
}

.bottomRow {
    height: 30vh;
    padding: 2%;
    text-align: center;
    position: absolute;
    top: 70vh;
    width: 100vw;
}

    .bottomRow .btn-primary {
        float: right;
        width: 15%;
        height: 100%;
        font-size: calc(1vw + 1vh + 2vmin);
        margin-left: 1%;
        margin-right: 1%;
    }

.middleRow {
    height: 50vh;
    top: 20vh;
    width: 100vw;
    position:absolute
}

.middleRowSuppress {
    margin-top: 10vh;
}

.middleRowSettings {
    margin-top: 10vh;
}

.middleRowDelayAttribution {
    margin-top: 5vh;
}

.middleRowSettings {
    margin-top: 10vh;
}

    .middleRow .btn-primary {
        font-size: calc(1vw + 1vh + 2vmin);
        padding: 0.5vh;
        text-align: center;
    }

        .middleRow .btn-primary:hover, .middleRow .btn-primary:focus {
            outline: none;
            border-color: var(--ketech-yellow);
        }

.topRow {
    height: 20vh;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    position:absolute;
    width: 60vw;
    left: 20vw;
}

app {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}

.btn-primary {
    color: var(--ketech-white);
    background-color: transparent;
    border-color: var(--ketech-white);
    border-width: 2px;
    border-radius: 0px;
    display: inline-flex;
    align-items: center;
    justify-content: space-around;
}

    .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary::selection {
        color: var(--ketech-white);
        background-color: transparent !important;
        border-color: var(--ketech-yellow) !important;
        border-width: 2px;
        border-radius: 0px;
        outline: none;
    }

.buttons button {
    width: 100%;
}

.main {
    flex: 1;
}

.stealth-content {
   width: 60vw;
   height: 30vh;
   padding-top: 2vh;
   top: 0;
   position: absolute;
}

.inputAreaTextbox {
    background-color: var(--ketech-white);
    color: var(--ketech-black);
    font-size: calc(1vw + 1vh + 3vmin);
    text-align: center;
    position: relative;
    height: 80%;
}

.passwordTextbox {
    padding-top: 1.5vh;
}

.headerImage {
    width: 8%;
    text-align: right;
    position: absolute;
    right: 0;
    margin: 1%;
}

.imageWide {
    width: 100%;
}

.dayError {
    color: var(--ketech-blue);
    background-color: var(--ketech-white);
    padding: 1vmin;
    font-size: 3vmin;
}

.nightError {
    color: var(--ketech-black);
    background-color: var(--ketech-white);
    padding: 1vmin;
    font-size: 3vmin;
}

.stealthBox {
    width: 60vw;
    height: 30vh;
    left: 20vw;
    top: 10vh;
    border: 2px white solid;
    position: absolute;
    font-size: calc(1vw + 1vh + 1vmin);
}

.disclaimerarea {
    color: var(--ketech-white);
    text-align: center;
    height:30vh;
    top:20vh;
    width: 80vw;
    left: 10vw;
    position:absolute;
    padding-top: 2vh;
}

.disclaimerHeader{
   font-size: 3vmin;
   font-weight:bold;
   text-decoration:underline;
   padding-top: 1vh;
}

.disclaimerText {
    font-size: 2.5vmin;
}

.keyboardArea {
    height: 50vh;
    width: 100vw;
    bottom: 0;
    position: absolute;
}

.keyboardRow {
    height: 12.5vh;
    width: 100vw;
    margin: 0px;
    border: none
}

.keyboardKey {
    float: left;
    font-size: calc(1vw + 1vh + 3vw);
    font-family: inherit;
    text-align: center;
    text-decoration: none;
    border-style: solid;
    border-width: 1px;
    border-color: var(--ketech-white);
    margin: 0px;
    color: var(--ketech-white);
    background-color: transparent;
    height: inherit;
    width:10vw;
}

.keyboardKey:hover, .keyboardKey:focus {
        outline: none;
        color: var(--ketech-white);
        border-color: var(--ketech-yellow);
    }

.keyboardSpecialKey {
    font-size: 3vw;
}

.keyboardEnterKey {
    width: 20vw;
}
.keyboardEnterKey:hover {
    color: var(--ketech-white);
}

.validation-message {
    color: red;
}

.A {
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: space-around;
    background-color: red;
}

.C {
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: space-around;
    background-color: blue;
}

.E {
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: space-around;
    background-color: green;
}

.F {
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: space-around;
    background-color: yellow;
}

.G {
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: space-around;
    background-color: purple;
}

.Y {
    text-align: center;
    font-size: 0.66em;
    color: white;
    border-color: black;
    background-color: black;
}

.Z {
    text-align: center;
    font-size: 0.66em;
    color: white;
    border-color: black;
    background-color: black;
}

.stopTypesStealth {
    width: 15vw;
    height: 30vh;
    position: absolute;
    z-index: 2;
}

.stopTypes {
    top: 40%;
    border-top: none;
}

.stopTypeImageArea {
    align-items: center;
    text-align: center;
    display: flex;
    margin: 10%;
    padding: 10%;
    align-content: center;
    justify-content: center;
}

.stopTypeImageStealth {
    width:30%;
    position:absolute;
}

.stopTypeImageSimple {
    width: 60%;
    position: relative;
}

.stopTypeImageLow {
    height: 15%;
}


.consistNumber {
    position: absolute;
    border-radius: 50%;
    border-style: solid;
    border-width: 5px;
    border-color: var(--ketech-white);
    height: 3.5rem;
    width: 3.5rem;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: space-around;
}

.serviceBoxAdvice {
    width: 5%;
    position: fixed;
    border: white solid 1px;
    padding: 1%;
}

#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.checkbox-group {
    display: inline-block;
    position: relative;
    width: auto;
    margin: auto;
    text-align: left;
    font-size: calc(1vw + 1vh + 2vmin);
}

.checkbox-group-checkbox {
    height: calc(1vw + 1vh + 2vmin);
    width: calc(1vw + 1vh + 2vmin);
    vertical-align: middle;
}

.checkbox-group-text {
    vertical-align: middle;
    margin-left: 1vw;
}

.inputHeaderArea {
    height: 20vh;
    width: 70vw;
    left: 20vw;
    position:absolute;
}

.inputHeaderImageArea {
    width: 12vw;
    height: inherit;
    position:inherit;
    left: 0;
}

.inputHeaderImage {
    position:relative;
    top:10%;
    height: 80%;
    max-height: 80%;
    max-width: 98%;
    float:right
}

.inputHeaderTextArea {
    height: 17vh;
    width: 36vw;
    top: 2vh;
    left: 12vw;
    position: absolute;
    background-color: var(--ketech-white);
    color: var(--ketech-black);
    font-size: calc(1vw + 1vh + 5vmin);
    line-height: 17vh;
}

.delayAttributionOK {
    float:left !important;
}

.delayAttributionExternal {
    padding-top: 0.5vh;
}

.delayAttributionExternalHeader{
    font-size: calc(1vw + 1vh + 1vmin);
    text-align: left;
    margin: 0.5vw;
}

.delayAttributionExternalText {
    font-size: calc(1vw + 1vh + 1vmin);
    font-weight: bold;
}

.thirdPartyStealthArea {
    background-color: #575757;
}

.thirdPartyStealthTopRow {
    position: absolute;
    width: 100vw;
    left: 0vw;
}

.thirdPartyStealthIndicator {
    width: 15%;
    position: absolute;
    left: 0;
    top: 50%;
    height: 50%;
    border-right-color: var(--ketech-white);
    border-right-width: 3px;
    border-right-style: solid;
    border-top-color: var(--ketech-white);
    border-top-width: 3px;
    border-top-style: solid;
    font-size: calc(1vw + 1vh + 4vmin);
}

.nofloat {
    float:none;
}

.currentAdviceArea {
    top: 0px;
    border-bottom: 2px solid var(--ketech-white);
}

.nextActionArea {
    top: 50%;
}

.nextAdviceLabel {
    width: 20%;
    margin: auto;
}

.currentAdviceText {
    width: 100%;
    margin:auto;
    text-align:center;
}

.nextAdviceText {
    width: 100%;
    margin: auto;
    margin-left: -20%;
    text-align: center;
    z-index: 9;

}

.errorPageMessageArea {
    color: var(--ketech-white);
    text-align: center;
    position: relative;
    top: 30%;
    height: 70%;
}
.errorPageButton {
    width: 50%;
    height: 10rem;
}

.grid-container {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 1.7fr 0.3fr;
    grid-template-rows: 0.9fr 1fr 2.3fr 0.4fr 0.4fr;
    gap: 0px 0px;
    grid-template-areas:
            "current-advice home"
            "next-advice time"
            "service-info sta"
            "das-message ."
            "darwin-message connected-status";
}

.current-advice {
    grid-area: current-advice;
    display: flex;
    align-items: center;
}

.next-advice { grid-area: next-advice;
    display: flex;
    align-items: center; }

.home {
    grid-area: home;
    align-items: center;
    display: inline-flex;
}

.time {
    grid-area: time;
    display: inline-flex;
    justify-content: space-around;
    align-items: center;
    font-size: 3vw;
}

.sta { grid-area: sta; }

.service-info { grid-area: service-info; position: relative; }

.das-message {
    grid-area: das-message;
    font-size: calc(1vh + 1vw);
    display: flex;
    justify-content: center;
    align-content: center;
    flex-direction: column;
}

.darwin-message {
    grid-area: darwin-message;
    font-size: calc(1vh + 1vw);
    display: flex;
    justify-content: center;
    align-content: center;
    flex-direction: column;
}

.connected-status { grid-area: connected-status;
    display: inline-flex;
    justify-content: space-around;
    align-items: center;
    font-size: 3vw; }
.advice-border{
    border-bottom: var(--ketech-white) solid 0.7vh;
    border-right: var(--ketech-white) solid 0.7vh;
}
.lesser-b-border{
    border-bottom: var(--ketech-white) solid 0.3vh;
}
.lesser-r-border{
    border-right: var(--ketech-white) solid 0.3vh;
}

.headcode{
    position: absolute;
    left: 2vh;
    top: 2vh;

    display: inline;
}

.consist{
    position: absolute;
    right: 2vh;
    top: 2vh;

    display: block;
}



.consist > .count{
    position: absolute;
    top:10%;
    left:30%;
    width: 7vh;
    justify-content: center;
    align-items: center;
    border-radius: 100%;
    text-align: center;
    display: flex;
    height: 80%;
    border-radius: 50%;
    font-size: 6vh;
    color: #fff;
    text-align: center;
}

.consistDay{
    background-color: var(--ketech-blue) !important;
}

.consistNight{
    background-color: var(--ketech-black) !important;
}

.consist > span{
    color:white;
    font-size:8vh;
}

.btn-advice {
    justify-content: space-around;
    border-style: solid;
    margin: auto;
    width: 80%;
    height: 80%;
    font-size: 11vh;
}

.current-advice>.advice{
    width: 80%;
    font-size: calc(2vw + 1vh + 4vmin);
    text-align: center;
}
.next-advice > .advice {
    margin: auto;
    width: 80%;
    font-size: calc(2vw + 1vh + 2vmin);
    text-align: center;
}

.next-advice > .advice > .subAdvice {
    display:inline-block;
}


.outer-route-info{
    width: 100%;
    height: 100%;
    align-items: center;
    display: flex;
    justify-content: center;
    flex-direction: column;

}
.inner-route-info > p{
    text-align: center;

}
.stopTypeImages{
    width: 100%;
    height: 100%;
    align-items: center;
    display: flex;
    justify-content: center;
    flex-direction: column;
    font-size: 2vw;
}

.NoPage {
    font-size: calc(2vh + 2vw + 3vmin);
}

.singleLineAdviceTopRow {
    font-size: calc(1vh + 1vw + 2vmin);
    font-weight: bold;
    text-decoration: underline;
}

.singleLineAdviceMiddleRow {
    font-size: calc(1vh + 1vw + 5vmin);
    padding-top: 10vh;
}

.settingsTopRow {
    font-size: calc(1vh + 1vw + 2vmin);
    font-weight: bold;
    text-decoration: underline;
}

.delayHeaderText {
    font-size: calc(1vh + 1vw + 1vmin);
}

.delayAttributionButton{
    height: 16vh;
    width: 18vw;
    padding: 0 !important;
    margin: 0.5vmin;
    font-size: calc(1vw + 1vh + 1vmin) !important;
}

.stealthTextNextStop {
    font-size: calc(1vw + 1vh + 2vmin);
    font-weight: bold;
}

.delayImageArea {
    position: absolute;
    top: 0;
    right: 0;
    height: 20vh;
    width: 15vw;
    float: right
}

.delayImage {
    width: 70%;
    right: 0;
    max-height: 100%;
}

.staArea {
    text-align: center;
    border: solid var(--text-main) 1px;
    margin-top: 4vh;
}

.staText {
    padding: 2vh;
}

.staTimeArea {
    border: solid var(--text-main) 1px;
    width: 100%;
}

.staTimeText {
    padding: 2vh;
}

.serviceDisambiguationButton {
    height: 6vh;
    width: 95vw;
    margin-top: 1vh;
    font-size: calc(1vw + 1vh + 2vmin) !important;
    justify-content: left;
    background-color: var(--ketech-white);
    color: var(--ketech-blue);
    overflow: hidden;
}

.serviceDisambiguationOKButton {
    float: left
}

.middleRowNarrow {
    height: 50vh;
    top: 20vh;
    width: 90vw;
    position: absolute
}

.serviceDisambiguationMiddleRow {
    padding-top: 4vh;
}

.serviceSelectionButton, .serviceReplaySelectionButton {
    height: 6vh;
    width: 85vw;
    margin-top: 1vh;
    font-size: calc(1vw + 1vh + 2vmin) !important;
    justify-content: left;
    background-color: var(--ketech-white);
    color: var(--ketech-blue);
    overflow: hidden;
}

.buttonHidden{
    visibility: hidden;
}

.infoImage {
    height: calc(2vh + 1vw);
    float: left;
    padding-left: 1vw;
    display: flex;
    align-items: center;
}

.serviceReplaySelectionButton {
    flex: 1;
    font-size: 2.5vmin;
}

.serviceSelectionButton {
    width: 100%;
    flex: 1;
    font-size: 2.5vmin;
}

.serviceSelectionError {
    margin-left: 5vw;
    width: 90vw;
}

.logTime {
    height: 1vh;
    top: 97vh;
    left: 0vw;
    width: 15vw;
    position: absolute;
    font-size: calc(1vh + 1vmin);
    text-align: left;
}

@media screen and (max-width: 526px) {
    .lesser-b-border{
        border-bottom-width: 1px;
    }
    .lesser-r-border{
        border-right-width: 1px;
    }
}