
:root {
    --layout-container-left-width: 260px;
    --logo-red-colour: #da1c3f;
    --logo-grey-colour: #676d6f;
    --logo-grey-colour-darker: #4d5254;
    --logo-grey-colour-darker-darker: #43494b;


    --control-panel-background-colour: #EDEDED;

    --banner-background-colour: #676d6f;
    --banner-highlighted-background-colour: #da1c3f;
    --banner-text-colour: white;

    --control-subpanel-width: 240px;
    --control-subpanel-background-colour: #FFFFFF;


    --text-colour-default: var(--logo-grey-colour-darker-darker);




}


html,
body {
    font-family: 'Open Sans Condensed', sans-serif;
    height: 100%;
    margin: 0;
    padding: 0;
}


h1 {
    font-size: 18px;
    color: var(--banner-background-colour);
}

h2 {
    font-size: 14px;
    color: var(--banner-background-colour);
}

h3 {
    font-size: 13px;
    font-weight: 700;
}

p,ul,li {
    font-size: 13px;
    line-height: 20px;
}

a {
    color: inherit;
    text-decoration: none;
}

td {
    vertical-align: top;
}

input {
    font-size: 16px;
    padding-left: 24px;
    border-width: 2px;
    border-radius: 8px;
    height: 24px;
    background-size: 18px 18px;
    background-repeat: no-repeat;
    background-position: left center;
}


select {
    background-color: white;
    font-size: 16px;
    padding-left: 28px;
    border-width: 2px;
    border-radius: 8px;
    height: 24px;
    background-size: 20px 20px;
    background-repeat: no-repeat;
    background-position: left center;
}

option {
    font-size: 16px;
    padding-left: 28px;
    border-width: 2px;
    border-radius: 8px;
    height: 24px;
    background-size: 20px 20px;
    background-repeat: no-repeat;
    background-position: left center;
}


#map {
  height: 100%;
}


.layout-container {
    display: flex;
     height: 100%;
     width: 100%;
}

.layout-container-left {
    width: var(--layout-container-left-width);
    height: 100%;
    bottom:0;
    top:0;
    left:0;
    right:0;
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 12px;
    font-weight: 400;
    overflow-y: auto;
    background-color: var(--control-panel-background-colour);
    a {
         color: inherit;
        text-decoration: none;
    }
}


.layout-resizer {
    background-color: #676d6f;
    cursor: ew-resize;
    height: 100%;
    width: 2px;
}

.layout-container-right {
    flex: 1;
    display: flex;
}



.control-panel {
    width: 100%;
    height: auto;
    padding-left: 10px;
    padding-right: 10px;
    bottom:0;
    top:0;
    left:0;
    right:0;
    padding: 10px;
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 12px;
    font-weight: 400;
    overflow-y: auto;
    border-radius: 3px 3px 3px 3px;
    background-color: var(--control-panel-background-colour);
    a {
        color: inherit;
        text-decoration: none;
  }
}



.control-subpanel-container {
    padding-bottom: 20px;
    margin-bottom: 4px;
    width: 100%;
    display: none;

}

.control-subpanel-banner {
    height: 20px;
    border-radius: 4px;
    padding: 5px;
    margin-bottom: 4px;
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 16px;
    font-weight: 400;
    background-color: var(--banner-background-colour);
    color: var(--banner-text-colour);
}

.control-panel-text-input {
    width: 100%;
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    border-width: 2px;
    font-size: 16px;
    padding-left: 28px;
    border-radius: 8px;
    height: 26px;
    background-size: 20px 20px;
    background-repeat: no-repeat;
    background-position: left center;
}


.control-subpanel-content {
    font-size: 16px;
    color: var(--text-colour-default);
}


.control-subpanel-list-title {
    margin-top: 6px;
    margin-bottom: 6px;
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 14px;
    line-height: 14px;
    font-weight: 700;
    color: var(--banner-background-colour);
    padding: 5px;
    background-color: white;
    overflow-x: visible;
    border-radius: 4px;
    cursor: pointer;
}

.control-subpanel-list-title-highlighted {
    margin-top: 6px;
    margin-bottom: 6px;
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 14px;
    line-height: 14px;
    font-weight: 700;
    color: white;
    padding: 5px;
    background-color: var(--banner-highlighted-background-colour);
    overflow-x: visible;
    border-radius: 4px;
}


.control-subpanel-list-item {
    margin-bottom: 4px;
    font-size: 14px;
    color: var(--text-colour-default);
}

.control-subpanel-list-item:hover {
    border: 1px solid var(--logo-red-colour);
    cursor: pointer;
}




.site-banner-and-menu {
    width: 240px;
    height: 80px;
    margin-bottom: 24px;
}

.user-panel-banner {
    display: inline-block;
    vertical-align: top;
    float: left;
    cursor: pointer;
}

.user-panel-widgets {
  display: inline-block;
  vertical-align: top;
  float: right;

}

.widgets-panel-hamburger-icon {
    width: 32px;
    height: 32px;
    float: right;
    text-decoration: none;
    cursor: pointer;
    a,img {
        float: right;
    }
}

.widgets-panel-settings-icon {
    width: 32px;
    height: 32px;
    float: right;
    text-decoration: none;
    cursor: pointer;
    a,img {
        float: right;
    }
}

.line-item-hamburger-menu-real {
    position: relative;
    background: pink;
    list-style: none;
    padding: 0px;
    top: 0px;
    left: 100px;
    width: 100px;
    height: auto;
    border-style: solid;
    border-color: var(--logo-red-colour);
    border-width: 1px;
    border-radius: 8px;
}

.line-item-hamburger-menu {
    display: none;
    position: absolute;
    z-index: 1000;
    background: white;
    border-style: solid;
    border-color: var(--logo-red-colour);
    border-width: 1px;
    border-radius: 8px;
    padding: 4px;
    left: 160px;
    width: 132px;
    height: auto;
    flex-direction: column;
    justify-content: center;
    align-items: top;
    list-style: none;
}


.line-item-hamburger-menu-visible {
   display: block;
}

.line-item-hamburger-menu ul {
  list-style: none;
  padding-inline-start: 4px;
  padding: 4px;
}


.line-item-hamburger-menu-item {
    margin: 8px 0;
    line-height: 16px;
    cursor: pointer;
    text-decoration: none;
}




.user-panel-diags-panel {
    display: none;
    p {
        line-height: 30%;
    }
}



.control-subpanel-container-day {
    display: block;
    margin-bottom: 12px;
    }

.flatpickr {
    }

.flatpickr-calendar {
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 12px;
    }

.date-picker {
    background-image: url('../images/noun-calendar-434848.svg');
    background-position: 4px;
    }




.control-subpanel-container-search {
  position: relative;
  display: inline-block;
}

.clear-input-container {
  width: 100%;
  position: relative;
  display: inline-block;
}

.search-input-container {
    position: relative;
    display: inline-block;
}

#search-input {
    width: calc(100% - 24px);
}

.search-input--touched:focus + .search-clear-input-button,
.search-input--touched:hover + .search-clear-input-button,
.search-input--touched + .search-clear-input-button:hover {
}

.search-clear-input-button {
  position: absolute;
  left: 4px;
  top: 4px;
  bottom: 0;
  justify-content: center;
  align-items: center;
  width: 18px;
  height: 18px;
  appearance: none;
  border: none;
  border-radius: 50%;
  background: gray;
  margin: 0;
  padding: 2px;
  color: white;
  font-size: 13px;
  cursor: pointer;
}

.search-clear-input-button:hover {
  background: darkgray;
}

#search-button {
  cursor: pointer;
  margin-left: 2px;

}
.search-button:hover {
  background: lightgray;
}


.search-results-list {
    max-height: 240px;
    overflow-y:auto;
}


.control-subpanel-search-result-description {
    margin-top: 4px;
    margin-bottom: 4px;
    font-size: 13px;
    font-style: italic;
}

.control-subpanel-search-result-linename {
    font-weight: 700;
}

.control-subpanel-search-result-operatorname {
    font-style: italic;

}




.control-subpanel-container-lines {
    display: block;
    margin-bottom: 12px;
    }

.lines-pool-entry {
    position: relative;
    border: 1px solid var(--control-panel-background-colour);
    padding-bottom: 20px;
    margin-bottom: 4px;
    width: 100%;

}

.lines-pool-entry:hover,
.lines-pool-entry:focus {
border: 1px solid var(--logo-red-colour);
}

.line_info_container {
    cursor: pointer;
}

.lines-pool-journeys-today-some {
    font-size: 14px;
    color: var(--text-colour-default);
}

.lines-pool-journeys-today-none {
    font-size: 14px;
    color: var(--logo-red-colour);

}

.line-info-tab-stop-point-container {
    display: none;
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 48px;
    font-weight: 400;
}

.line-info-tab-stoppoint {
    font-size: 14px;
    margin-right: 1px;
    max-height: 100px;
    padding: 5px 5px 5px 15px;
    overflow-x: visible;
}


.info-panel-outer {
  display: none;
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgb(0,0,0);
  background-color: rgba(0,0,0,0.4);
  border-radius: 3px 3px 3px 3px;
}

.info-panel-inner {
    background-color: var(--control-panel-background-colour);
    margin: 5% auto;
    padding: 20px;
    border: 1px solid #888;
    width: 400px;
    height: auto;
    -webkit-animation-name: fadeIn;
    -webkit-animation-duration: 0.4s;
    animation-name: fadeIn;
    animation-duration: 1.0s
}

.info-panel-versions {
    font-family: monospace;
    font-size: 10px;
}


.timetable-panel-outer {
    display: none;
    position: fixed;
    z-index: 1;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: rgb(0,0,0);
    background-color: rgba(0,0,0,0.4);
    border-radius: 3px 3px 3px 3px;
}

.timetable-panel-inner {
    background-color: var(--control-panel-background-colour);
    width: 90%;
    height: 90%;
    margin-left: 5%;
    position: absolute;
    top: 50%;
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    padding: 10px;
    border: 1px solid #888;
    border-radius: 8px 8px 8px 8px;
  -webkit-animation-name: fadeIn;
  -webkit-animation-duration: 1.0s;
   animation-name: fadeIn;
   animation-duration: 1.0s
}


.timetable-panel-titlebar {
    height: 20px;
	font-family: 'Open Sans Condensed', sans-serif;
	font-size: 20px;
	font-weight: 400;
    padding: 4px;
    padding-bottom: 8px;
	background-color: var(--banner-highlighted-background-colour);
	color: white;
	margin-bottom: 8px;
 	border-radius: 4px 4px 4px 4px;
    width: calc(100% - 20px);
}

.timetable-panel-titlebar-title {
}

.timetable-panel-titlebar-close-btn {
    line-height: 22px;
    vertical-align: middle;
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}


.timetable-panel-titlebar-close-btn:hover,
.timetable-panel-titlebar-close-btn:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}

.timetable-panel-content-container {
    position: absolute;
    top: 56px;
    bottom: 0;
    width: 100%;
}

.timetable-panel-content {
    width: 100%;
    height: 100%;
   	overflow-x: auto;
   	overflow-y: auto;
}


.timetable-panel-linedirection-subhead {
    height: 18px;
	top: 15px !important;
 	margin-bottom: 5px;
    padding: 4px;
    background-color: var(--banner-highlighted-background-colour);
    color: white;
 	border-radius: 4px 4px 4px 4px;
}

.timetable-direction-table {
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 12px;
    border-width: 1px 1px 1px 1px;
 	border-radius: 4px 4px 4px 4px;
}

.timetable-tr {
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 12px;
}

.timetable-tr-tp {
    font-weight: bold;
}

.timetable-td {
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 13px;
    color: var(--text-colour-default);
    padding: 2px;
    border-color: var(--logo-red-colour);
    border-style: solid;
     border-width: 0 0 1px 0;
     white-space: nowrap;
}

.timetable-panel-content-notes {
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 13px;
    padding: 6px;
}




.settings-panel-outer {
    display: none;
    position: fixed;
    z-index: 1;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgb(0,0,0);
    background-color: rgba(0,0,0,0.4);
    border-radius: 3px 3px 3px 3px;
}

.settings-panel-inner {
    background-color: var(--control-panel-background-colour);
    margin: 5% auto;
    padding: 20px;
    border: 1px solid #888;
    width: 80%;
    height: auto;
  	overflow-y: scroll;
  -webkit-animation-name: fadeIn;
  -webkit-animation-duration: 1.0s;
   animation-name: fadeIn;
   animation-duration: 1.0s
}

.settings-panel-container {
	top: 15px !important;
 	margin-bottom: 5px;
}

.settings-panel-close-btn {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}

.settings-panel-close-btn:hover,
.settings-panel-close-btn:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}

.settings-panel-title {
    margin: 1rem 1rem;
    height: 28px;
	font-family: 'Open Sans Condensed', sans-serif;
	font-size: 24px;
	font-weight: 400;
    padding: 2px;
	background-color: var(--banner-background-colour);
	color: white;
	margin: 0;
 	border-radius: 2px 2px 0 0;
}

.td-settings-panel-setting-setter {
    text-align: right;
    vertical-align: top;
    }

#setting-layers {
    background-image: url('../images/noun-layers-7121507.svg');
    background-position: 4px;
}

#setting-location-permission {
    background-image: url('../images/noun-map-6742506.svg');
    background-position: 4px;
}


@-webkit-keyframes fadeIn {
  from {opacity: 0}
  to {opacity: 1}
}

@keyframes fadeIn {
  from {opacity: 0}
  to {opacity: 1}
}




.gm-style-iw {
   background-color: var(--control-panel-background-colour);
   a {color: inherit; text-decoration: none;}
   top: 0 !important;
   left: 0 !important;
   border-radius: 2px 2px 0 0;
}

.iw-container {
    height: auto;
    margin-bottom: 5px;
}

.iw-container-spiderbox {width: 120px;}
.iw-container-stop-pic {width: auto;}

.iw-title {
	font-family: 'Open Sans Condensed', sans-serif;
	font-size: 14px;
	font-weight: 400;
    padding: 2px;
	background-color: var(--banner-background-colour);
	color: white;
	margin: 0;
	border-radius: 2px 2px 0 0;
    margin-bottom: 5px;
}

.iw-close-btn {
  text-decoration: none;
  cursor: pointer;
}

.iw-diagnostics {
    font-family: monospace;
    font-size: 12px;
    font-weight: 400;
    padding: 5px 0;
}

.iw-spiderbox-content-section{
  border: 1px solid var(--control-panel-background-colour);

}
.iw-spiderbox-content-section:hover,
.iw-spiderbox-content-section:focus {
  border: 1px solid var(--logo-red-colour);
  text-decoration: none;
  cursor: pointer;
}

.iw-spiderbox-content-section-title {
    font-size: 14px;
	font-weight: 700;
	padding: 5px 0;
}

.iw-container-vehicle-info {
   text-decoration: none;
   cursor: pointer;
}

.iw-vehicle-info-body {
   line-height: 14px;
}



.vehicle-marker-icon-text {
    font-weight: 700;
    font-size: 14px;
    bottom: 5px;
    left: 0px;
    position: relative;
}

.ways-line-names-marker-icon-text {
	padding: 5px;
    font-weight: 400;
    bottom: 20px;
    left: 0px;
   	background-color: var(--logo-red-colour);
    position: relative;

}

.static-site-close-btn {
  float: right;
  color: #f2f2f2;
  text-decoration: none;
}

.static-site-container {
    width: 100%;
    height: 100%;
    padding: 0px;
}


.static-site-top-menu-oaitw {
    overflow: hidden;
    background-color:  var(--text-colour-default);
    position: fixed;
    top: 0;
    width: 780px;
    height: 48px;
    margin-bottom: 10px;
}






