@import url(https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&subset=latin,greek,greek-ext,cyrillic,cyrillic-ext,latin-ext,vietnamese);

html {
	height: 100%;
}

body {
	height: 100%;
	margin: 0px;
	padding: 0px;
	font-size: 11px;
	font-family: "open sans";
	color: #444444;
	overflow: hidden;
}

a,
a:hover { text-decoration: none; color: #2b82d4; }
b, strong{ font-weight: 600; }

*:focus { outline: 0; }

/*#################################################*/
/* FIX
/*#################################################*/

.clearfix { display: table; width: 100%; height: 100%; }

/*#################################################*/
/* INPUTBOXES, SELECT
/*#################################################*/

button { font-size: 11px; }
input.checkbox { vertical-align: middle;}
input[type="checkbox"] { 
	height: 14px;
	margin: 5px 0 5px 0;
}
.inputbox { width: 100%; padding: 0 5px;}
textarea.inputbox { padding: 5px; }
input, textarea {
	-webkit-box-sizing: border-box;‌​
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
input.color,
input.color:focus,
input.color:hover { border: none; }
input,
select,
.inputbox,
.textarea {
	margin: 0;
	height: 24px;
	border: 1px solid #f5f5f5;
	font-size: 11px;
	font-family: "open sans";
	color: #444444;
	background: #f5f5f5;
}
optgroup,
option {
	font-family: "open sans";
	color: #444444;
}
optgroup {
	font-style: normal;
	font-weight: 600;
}
input:focus,
textarea:focus,
select:focus { background-color: #ffffff; }
input:hover,
textarea:hover,
select:hover { background-color: #ffffff; }
input:disabled,
textarea:disabled,
select:disabled { border: 1px solid #eeeeee; background-color: #eeeeee; }
.inputbox-calendar,
.inputbox-calendar-mmdd{
	color: #444444;
	border: 1px solid #f5f5f5;
	-webkit-inline-box: none;
	background: #f5f5f5 url("images/calendar.svg") right no-repeat;
	background-size: 14px 14px;
}
.inputbox-calendar:disabled,
.inputbox-calendar-mmdd:disabled{ -webkit-inline-box: none; background: #eeeeee url("images/calendar.svg") right no-repeat; background-size: 14px 14px;}
.inputbox-search {
	width: 100%;
	height: 28px;
	text-indent: 30px;
	background: #f5f5f5 url("images/search.svg") 10px center no-repeat;
	background-size: 14px 14px;
	float: left;
}
::-webkit-input-placeholder { /* Chrome/Opera/Safari */
	color: #999999;
}
::-moz-placeholder { /* Firefox 19+ */
	color: #999999;
}
:-ms-input-placeholder { /* IE 10+ */
	color: #999999;
}
:-moz-placeholder { /* Firefox 18- */
	color: #999999;
}

/*#################################################*/
/* BUTTONS
/*#################################################*/

.panel-button img {
	display: block;
	padding: 6px;
	background: #f5f5f5;
}

.panel-button img:hover {
	background: #ffffff;
}

input.button {
	border: 1px solid #f5f5f5;
	background-color: #f5f5f5;
	height: 24px;
	min-width: 80px;
	color: #444444;
	cursor: pointer;
	text-align: center;
	margin-bottom: 0px;
	padding: 0 5px;
}
input.button.icon {
	text-align: center;
	padding-left: 26px;
	padding-right: 10px;
	margin-bottom: 0;
	background-repeat: no-repeat;
	background-position: 10px center;
	background-size: 10px 10px;
}
input.button-32 {
	border: 1px solid #f5f5f5;
	background-color: #f5f5f5;
	height: 32px;
	min-width: 80px;
	color: #444444;
	cursor: pointer;
	text-align: center;
	margin-bottom: 0px;
	padding: 0 5px;
}
input.button-32.icon-16 {
	text-align: center;
	padding-left: 32px;
	padding-right: 10px;
	margin-bottom: 0;
	background-repeat: no-repeat;
	background-position: 10px center;
	background-size: 16px 16px;
}
input.button.no-text.icon {
	background-position: center center;
	padding: 0px;
}
input.button:hover { background-color: #ffffff; }
input.button:active { background-color: #ffffff; }
input.button:disabled { border: 1px solid #eeeeee; background-color: #eeeeee; }

input.button-32:hover { background-color: #ffffff; }
input.button-32:active { background-color: #ffffff; }
input.button-32:disabled { border: 1px solid #eeeeee; background-color: #eeeeee; }

input.button.panel {
	border: 1px solid #ffffff;
	background-color: #ffffff;
}
input.button.panel:hover { border: 1px solid #e5e5e5; background-color: #e5e5e5; }
input.button.panel:active { border: 1px solid #e5e5e5; background-color: #e5e5e5; }

/*#################################################*/
/* ICONS
/*#################################################*/

.icon-new { background-image: url(images/plus.svg); }
.icon-save { background-image: url(images/save.svg); }
.icon-follow { background-image: url(images/follow.svg); }
.icon-street { background-image: url(images/street-view.svg); }
.icon-create { background-image: url(images/create.svg); }
.icon-share { background-image: url(images/share.svg); }
.icon-show { background-image: url(images/eye.svg); }
.icon-hide { background-image: url(images/eye-crossed.svg); }
.icon-close { background-image: url(images/remove.svg); }
.icon-edit { background-image: url(images/edit.svg); }
.icon-search { background-image: url(images/search2.svg); }
.icon-time { background-image: url(images/history.svg); }
.icon-refresh { background-image: url(images/refresh.svg); }
.icon-check { background-image: url(images/tick.svg); }
.icon-play { background-image: url(images/play.svg); }
.icon-import { background-image: url(images/import.svg); }
.icon-export { background-image: url(images/export.svg); }
.icon-arrow-right { background-image: url(images/arrow-right.svg); }
.icon-import-arrow { background-image: url(images/import-arrow.svg); }
.icon-export-arrow { background-image: url(images/export-arrow.svg); }
.icon-import-export { background-image: url(images/import-export.svg); }
.icon-upload { background-image: url(images/upload.svg); }
.icon-erase { background-image: url(images/erase.svg); }
.icon-tick { background-image: url(images/tick.svg); }
.icon-remove3 { background-image: url(images/remove3.svg); }
.icon-action2 { background-image: url(images/action2.svg); }
.icon-key { background-image: url(images/key.svg); }
.icon-marker { background-image: url(images/marker.svg); }
.icon-markers { background-image: url(images/markers.svg); }
.icon-routes { background-image: url(images/routes.svg); }
.icon-zones { background-image: url(images/zones.svg); }
.icon-kml { background-image: url(images/kml.svg); }
.icon-tasks { background-image: url(images/tasks.svg); }
.icon-maintenance { background-image: url(images/maintenance.svg); }
.icon-gallery { background-image: url(images/gallery.svg); }

.icon-time { background-image: url(images/time.svg); }
.icon-warning { background-image: url(images/warning.svg); }
.icon-nearest-marker { background-image: url(images/nearest-marker.svg); }
.icon-nearest-zone { background-image: url(images/nearest-zone.svg); }
.icon-address { background-image: url(images/address.svg); }
.icon-altitude { background-image: url(images/altitude.svg); }
.icon-angle { background-image: url(images/angle.svg); }
.icon-speed { background-image: url(images/speed.svg); }
.icon-engine-hours { background-image: url(images/engine-hours.svg); }
.icon-odometer { background-image: url(images/odometer.svg); }
.icon-model { background-image: url(images/model.svg); }
.icon-plate-number { background-image: url(images/plate-number.svg); }
.icon-sim { background-image: url(images/sim.svg); }
.icon-vin { background-image: url(images/vin.svg); }
.icon-user { background-image: url(images/user.svg); }
.icon-trailer { background-image: url(images/trailer.svg); }
.icon-default-custom-fields { background-image: url(images/default-custom-fields.svg); }
.icon-default-sensor { background-image: url(images/default-sensor.svg); }
.icon-status { background-image: url(images/status.svg); }
.icon-battery-lev-0 { background-image: url(images/battery-lev-0.svg); }
.icon-battery-lev-1 { background-image: url(images/battery-lev-1.svg); }
.icon-battery-lev-2 { background-image: url(images/battery-lev-2.svg); }
.icon-battery-lev-3 { background-image: url(images/battery-lev-3.svg); }
.icon-di { background-image: url(images/di.svg); }
.icon-do { background-image: url(images/do.svg); }
.icon-fuel { background-image: url(images/fuel.svg); }
.icon-engine { background-image: url(images/engine.svg); }
.icon-gsm { background-image: url(images/gsm.svg); }
.icon-gps { background-image: url(images/gps.svg); }
.icon-temperature { background-image: url(images/temperature.svg); }
.icon-billing { background-image: url(images/billing.svg); }

.leaflet-control-zoom-in,
.leaflet-control-zoom-out,
.leaflet-control a span,
.history-view-control span {
	display: table;
	width: 100%;
	height: 100%;
	background-size: 12px 12px;
	background-repeat: no-repeat;
	background-position: center center;
}

.history-view-control span.icon-close {
	background-size: 10px 10px;
}

.leaflet-control a span.disabled,
.history-view-control a span.disabled {
	opacity: 0.5;
}

.icon-route-route { background-image: url(images/route-route.svg); }
.icon-route-snap { background-image: url(images/route-snap.svg); }
.icon-route-arrow { background-image: url(images/route-arrow.svg); }
.icon-route-data-point { background-image: url(images/route-data-point.svg); }
.icon-route-event { background-image: url(images/route-event.svg); }
.icon-route-stop { background-image: url(images/route-stop.svg); }

.leaflet-control-zoom-in { background-image: url(images/plus.svg); }
.leaflet-control-zoom-out { background-image: url(images/minus.svg); }
.icon-objects { background-image: url(images/object-arrow.svg); }
.icon-text { background-image: url(images/text.svg); }
.icon-clusters { background-image: url(images/clusters.svg); }
.icon-traffic { background-image: url(images/traffic.svg); }
.icon-fit-objects { background-image: url(images/fit.svg); }
.icon-ruler { background-image: url(images/ruler.svg); }
.icon-measure { background-image: url(images/measure.svg); }

.icon-places-marker,
.icon-object-edit {
	position: relative;
	width: 44px;
}

.icon-custom-delete {
	position: absolute;
	bottom: 0px;
	right: 0px;
}

/*#################################################*/
/* DIMENSIONS
/*#################################################*/

.width1 { width: 1%; }
.width2 { width: 2%; }
.width4 { width: 4%; }
.width5 { width: 5%; }
.width8 { width: 8%; }
.width9 { width: 9%; }
.width10 { width: 10%; }
.width11 { width: 11%; }
.width12 { width: 12%; }
.width13 { width: 13%; }
.width14 { width: 14%; }
.width15-left { width: 15%; float: left; }
.width15 { width: 15%; }
.width16 { width: 16%; }
.width17 { width: 17%; }
.width18 { width: 18%; }
.width19 { width: 19%; }
.width195 { width: 19.5%; }
.width20 { width: 20%; }
.width21 { width: 21%; }
.width235 { width: 23.5%; }
.width24 { width: 24%; }
.width245 { width: 24.5%; }
.width25 { width: 25%; }
.width27 { width: 27%; }
.width28 { width: 28%; }
.width29 { width: 29%; }
.width30 { width: 30%; }
.width31 { width: 31%; }
.width33 { width: 33.33333%; }
.width34 { width: 34%; }
.width35 { width: 35%; }
.width38 { width: 38%; }
.width39 { width: 39%; }
.width40 { width: 40%; }
.width41 { width: 41%; }
.width44 { width: 44%; }
.width45 { width: 45%; }
.width50 { width: 50%; }
.width55 { width: 55%; }
.width60 { width: 60%; }
.width65 { width: 65%; }
.width66 { width: 66%; }
.width70 { width: 70%; }
.width71 { width: 71%; }
.width75 { width: 75%; }
.width755 { width: 75.5%; }
.width76 { width: 76%; }
.width765 { width: 76.5%; }
.width80 { width: 80%; }
.width805 { width: 80.5%; }
.width83 { width: 83%; }
.width85 { width: 85%; }
.width90 { width: 90%; }
.width95 { width: 95%; }
.width100 { width: 100%; }
.width-1000 { max-width: 1000px; }

/*#################################################*/
/* FLOATING AND SPACING
/*#################################################*/

.float-left,
.block { float: left; }
.float-right { float: right; }
.container { margin-right: 10px; }
.container.last,
.last .title-block,
.container.last fieldset { margin-right: 0; }
.container.prev { margin-left: 10px; }
.absolute-right { position: absolute; right: 10px; top: 36px; margin: 0; }

/*#################################################*/
/* TABLELESS STYLING
/*#################################################*/

.row { margin-bottom: 10px; display: table; width: 100%; } /* FIX if something goes wrong with css. This row doesn't have vertical alignment, suitable just to split lines and add spacing at the bottom */
.row2 { margin-bottom: 3px; display: table; width: 100%; text-align: left; line-height: 12px; font-size: 0; }
.row2 div { display: inline-block; vertical-align: middle; font-size: 11px;} /* display: table-cell; */
.row2.empty,
.row2.text { height: 24px; }
.row2.right { text-align: right; }
.row3 { margin-bottom: 10px; display: table; width: 100%; line-height: 12px; font-size: 0; }
.row3 div { display: inline-block; vertical-align: middle; font-size: 11px; } /* display: table-cell; */
.row4 { margin-bottom: 0px; display: table; width: 100%; text-align: left; line-height: 12px; font-size: 0; }
.row4 div { display: inline-block; vertical-align: middle; font-size: 11px;} /* display: table-cell; */

.scroll-y { height: 100%; padding-right: 5px; overflow-y: scroll }

.title-block {
	margin-bottom: 10px;
	padding-bottom: 5px;
	border-bottom: 1px solid #f5f5f5;
	font-weight: 600;
	font-size: 12px;
	color: #2b82d4;
}

.table {
	display: table;
	height: 100%;
	width: 100%;
	margin: 0;
	padding: 0;
}

.table-cell {
	display: table-cell;
	margin: 0;
	padding: 0;
}

.center-middle {
	vertical-align: middle;
	text-align: center;
}

.margin-right-3 {
	margin-right: 3px;
}

.margin-left-3 {
	margin-left: 3px;
}

/*#################################################*/
/* LOADING AND BLOCKING PANELS
/*#################################################*/

#loading_panel {
	background-color: #ffffff;
	position: absolute;
	top: 0px;
	bottom: 0px;
	left: 0px;
	right: 0px;
	width: 100%;
	height: 100%;
	z-index: 99999;
}

#loading_data_panel {
	background-color: #FFFFFF;
	opacity: 0.6;
	filter: Alpha(Opacity=30);
	position: absolute;
	top: 0px;
	bottom: 0px;
	left: 0px;
	right: 0px;
	width: 100%;
	height: 100%;
	z-index: 99999;
}

#blocking_panel {
	background-color: rgba(170, 170, 170, 0.3);
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	display: none;
	z-index: 99999;
}

#blocking_panel_text { background-color: #ffffff; padding: 20px; }

/*#################################################*/
/* LOADER
/*#################################################*/

.loader {
	width: 70px;
	display: block;
	margin: 25px auto;
}

.loader span {
        float: left;
        vertical-align: middle;
        width: 8px;
        height: 8px;
        margin-right: 2px;
        background: #676767;
        opacity: 0.1;
        animation: loader 0.7s infinite alternate;
}

.loader span:nth-of-type(2) {
        animation-delay: 0.2s;
}
.loader span:nth-of-type(3) {
        animation-delay: 0.3s;
}
.loader span:nth-of-type(4) {
        animation-delay: 0.4s;
}
.loader span:nth-of-type(5) {
        animation-delay: 0.5s;
}
.loader span:nth-of-type(6) {
        animation-delay: 0.6s;
}
.loader span:nth-of-type(7) {
        animation-delay: 0.7s;
}

@keyframes loader {
        0% {
                opacity: 1;
        }
        100% {
                opacity: 0.1;
        }
}

/*#################################################*/
/* SPINNER
/*#################################################*/

.spinner {
  font-size: 2px;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  -webkit-animation: load5 1.1s infinite ease;
  animation: load5 1.1s infinite ease;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
}
@-webkit-keyframes load5 {
  0%,
  100% { box-shadow: 0em -2.6em 0em 0em #a7a7a7, 1.8em -1.8em 0 0em rgba(167,167,167, 0.2), 2.5em 0em 0 0em rgba(167,167,167, 0.2), 1.75em 1.75em 0 0em rgba(167,167,167, 0.2), 0em 2.5em 0 0em rgba(167,167,167, 0.2), -1.8em 1.8em 0 0em rgba(167,167,167, 0.2), -2.6em 0em 0 0em rgba(167,167,167, 0.5), -1.8em -1.8em 0 0em rgba(167,167,167, 0.7); }
  12.5% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.7), 1.8em -1.8em 0 0em #a7a7a7, 2.5em 0em 0 0em rgba(167,167,167, 0.2), 1.75em 1.75em 0 0em rgba(167,167,167, 0.2), 0em 2.5em 0 0em rgba(167,167,167, 0.2), -1.8em 1.8em 0 0em rgba(167,167,167, 0.2), -2.6em 0em 0 0em rgba(167,167,167, 0.2), -1.8em -1.8em 0 0em rgba(167,167,167, 0.5); }
  25% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.5), 1.8em -1.8em 0 0em rgba(167,167,167, 0.7), 2.5em 0em 0 0em #a7a7a7, 1.75em 1.75em 0 0em rgba(167,167,167, 0.2), 0em 2.5em 0 0em rgba(167,167,167, 0.2), -1.8em 1.8em 0 0em rgba(167,167,167, 0.2), -2.6em 0em 0 0em rgba(167,167,167, 0.2), -1.8em -1.8em 0 0em rgba(167,167,167, 0.2); }
  37.5% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.2), 1.8em -1.8em 0 0em rgba(167,167,167, 0.5), 2.5em 0em 0 0em rgba(167,167,167, 0.7), 1.75em 1.75em 0 0em #a7a7a7, 0em 2.5em 0 0em rgba(167,167,167, 0.2), -1.8em 1.8em 0 0em rgba(167,167,167, 0.2), -2.6em 0em 0 0em rgba(167,167,167, 0.2), -1.8em -1.8em 0 0em rgba(167,167,167, 0.2); }
  50% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.2), 1.8em -1.8em 0 0em rgba(167,167,167, 0.2), 2.5em 0em 0 0em rgba(167,167,167, 0.5), 1.75em 1.75em 0 0em rgba(167,167,167, 0.7), 0em 2.5em 0 0em #a7a7a7, -1.8em 1.8em 0 0em rgba(167,167,167, 0.2), -2.6em 0em 0 0em rgba(167,167,167, 0.2), -1.8em -1.8em 0 0em rgba(167,167,167, 0.2); }
  62.5% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.2), 1.8em -1.8em 0 0em rgba(167,167,167, 0.2), 2.5em 0em 0 0em rgba(167,167,167, 0.2), 1.75em 1.75em 0 0em rgba(167,167,167, 0.5), 0em 2.5em 0 0em rgba(167,167,167, 0.7), -1.8em 1.8em 0 0em #a7a7a7, -2.6em 0em 0 0em rgba(167,167,167, 0.2), -1.8em -1.8em 0 0em rgba(167,167,167, 0.2); }
  75% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.2), 1.8em -1.8em 0 0em rgba(167,167,167, 0.2), 2.5em 0em 0 0em rgba(167,167,167, 0.2), 1.75em 1.75em 0 0em rgba(167,167,167, 0.2), 0em 2.5em 0 0em rgba(167,167,167, 0.5), -1.8em 1.8em 0 0em rgba(167,167,167, 0.7), -2.6em 0em 0 0em #a7a7a7, -1.8em -1.8em 0 0em rgba(167,167,167, 0.2); }
  87.5% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.2), 1.8em -1.8em 0 0em rgba(167,167,167, 0.2), 2.5em 0em 0 0em rgba(167,167,167, 0.2), 1.75em 1.75em 0 0em rgba(167,167,167, 0.2), 0em 2.5em 0 0em rgba(167,167,167, 0.2), -1.8em 1.8em 0 0em rgba(167,167,167, 0.5), -2.6em 0em 0 0em rgba(167,167,167, 0.7), -1.8em -1.8em 0 0em #a7a7a7; }
}
@keyframes load5 {
  0%,
  100% { box-shadow: 0em -2.6em 0em 0em #a7a7a7, 1.8em -1.8em 0 0em rgba(167,167,167, 0.2), 2.5em 0em 0 0em rgba(167,167,167, 0.2), 1.75em 1.75em 0 0em rgba(167,167,167, 0.2), 0em 2.5em 0 0em rgba(167,167,167, 0.2), -1.8em 1.8em 0 0em rgba(167,167,167, 0.2), -2.6em 0em 0 0em rgba(167,167,167, 0.5), -1.8em -1.8em 0 0em rgba(167,167,167, 0.7); }
  12.5% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.7), 1.8em -1.8em 0 0em #a7a7a7, 2.5em 0em 0 0em rgba(167,167,167, 0.2), 1.75em 1.75em 0 0em rgba(167,167,167, 0.2), 0em 2.5em 0 0em rgba(167,167,167, 0.2), -1.8em 1.8em 0 0em rgba(167,167,167, 0.2), -2.6em 0em 0 0em rgba(167,167,167, 0.2), -1.8em -1.8em 0 0em rgba(167,167,167, 0.5); }
  25% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.5), 1.8em -1.8em 0 0em rgba(167,167,167, 0.7), 2.5em 0em 0 0em #a7a7a7, 1.75em 1.75em 0 0em rgba(167,167,167, 0.2), 0em 2.5em 0 0em rgba(167,167,167, 0.2), -1.8em 1.8em 0 0em rgba(167,167,167, 0.2), -2.6em 0em 0 0em rgba(167,167,167, 0.2), -1.8em -1.8em 0 0em rgba(167,167,167, 0.2); }
  37.5% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.2), 1.8em -1.8em 0 0em rgba(167,167,167, 0.5), 2.5em 0em 0 0em rgba(167,167,167, 0.7), 1.75em 1.75em 0 0em #a7a7a7, 0em 2.5em 0 0em rgba(167,167,167, 0.2), -1.8em 1.8em 0 0em rgba(167,167,167, 0.2), -2.6em 0em 0 0em rgba(167,167,167, 0.2), -1.8em -1.8em 0 0em rgba(167,167,167, 0.2); }
  50% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.2), 1.8em -1.8em 0 0em rgba(167,167,167, 0.2), 2.5em 0em 0 0em rgba(167,167,167, 0.5), 1.75em 1.75em 0 0em rgba(167,167,167, 0.7), 0em 2.5em 0 0em #a7a7a7, -1.8em 1.8em 0 0em rgba(167,167,167, 0.2), -2.6em 0em 0 0em rgba(167,167,167, 0.2), -1.8em -1.8em 0 0em rgba(167,167,167, 0.2); }
  62.5% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.2), 1.8em -1.8em 0 0em rgba(167,167,167, 0.2), 2.5em 0em 0 0em rgba(167,167,167, 0.2), 1.75em 1.75em 0 0em rgba(167,167,167, 0.5), 0em 2.5em 0 0em rgba(167,167,167, 0.7), -1.8em 1.8em 0 0em #a7a7a7, -2.6em 0em 0 0em rgba(167,167,167, 0.2), -1.8em -1.8em 0 0em rgba(167,167,167, 0.2); }
  75% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.2), 1.8em -1.8em 0 0em rgba(167,167,167, 0.2), 2.5em 0em 0 0em rgba(167,167,167, 0.2), 1.75em 1.75em 0 0em rgba(167,167,167, 0.2), 0em 2.5em 0 0em rgba(167,167,167, 0.5), -1.8em 1.8em 0 0em rgba(167,167,167, 0.7), -2.6em 0em 0 0em #a7a7a7, -1.8em -1.8em 0 0em rgba(167,167,167, 0.2); }
  87.5% { box-shadow: 0em -2.6em 0em 0em rgba(167,167,167, 0.2), 1.8em -1.8em 0 0em rgba(167,167,167, 0.2), 2.5em 0em 0 0em rgba(167,167,167, 0.2), 1.75em 1.75em 0 0em rgba(167,167,167, 0.2), 0em 2.5em 0 0em rgba(167,167,167, 0.2), -1.8em 1.8em 0 0em rgba(167,167,167, 0.5), -2.6em 0em 0 0em rgba(167,167,167, 0.7), -1.8em -1.8em 0 0em #a7a7a7; }
}

/*#################################################*/
/* JQGRID.CSS OVERRIDE
/*#################################################*/

.ui-jqgrid .loading {background: #ffffff; font-weight: normal;}
.ui-jqgrid .ui-jqgrid-bdiv {position: relative; margin: 0em; padding:0; overflow: auto; text-align:left; overflow-y: scroll; overflow-x: hidden;}
.ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 0px; border-right-color: inherit; border-right-style: solid; border-color: #f5f5f5}
.ui-jqgrid .ui-jqgrid-pager { border-left: 0px none !important; border-right: 0px none !important; border-bottom: 0px none !important; position: relative; white-space: nowrap; overflow: hidden; }
.ui-jqgrid .ui-jqgrid-pager { background: #f5f5f5; border-top: 0px solid #e5e5e5; margin: 3px -15px -15px -15px !important; padding: 3px 15px 0px 15px !important; height: 25px; }
.ui-jqgrid .ui-jqgrid-pager { font-size: 11px; }
.ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:0px;}
.ui-jqgrid .ui-pg-button  {border-left: 1px hidden; border-right: 1px hidden; border-top: 0px; border-bottom: 0px; height:19px !important;}
.ui-jqgrid .ui-state-disabled:hover {padding:0px;}
.ui-jqgrid .ui-jqgrid-view { font-size: 11px;}
.ui-jqgrid .ui-jqgrid-titlebar { margin: 0 0 10px 0; padding: 0; }
.ui-jqgrid .ui-jqgrid-htable th div { height: auto; }
.ui-jqgrid .ui-jqgrid-hdiv { margin: 0 0 3px 0; background: #f5f5f5; clear: both; }
.ui-jqgrid .ui-jqgrid-hdiv thead { font-size: 12px; height: 24px; }
.ui-jqgrid .ui-jqgrid-htable th {height:13px;}
.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column { height: 24px; }
.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr { border-left: 1px solid #e5e5e5; padding-top: 0px; }
.ui-th-ltr:first-child, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr:first-child { border-left: none; }
.ui-jqgrid .ui-icon-asc,
.ui-jqgrid .ui-icon-desc { margin-left: 7px; margin-top:7px; height:5px; width: 10px; }
.ui-jqgrid .ui-pg-input { font-size: 11px; height: 18px; margin: 2px 0; text-align: center; }
.ui-jqgrid .ui-pg-selbox { display: block; font-size: 11px; height: 18px; line-height: 18px; margin: 0; }
.ui-jqgrid .ui-separator { height: 0; border: none; }
.ui-jqgrid .ui-pg-table { padding: 0; }
.ui-jqgrid tr.jqgrow td { padding: 1px 2px; height: 19px;}
.ui-jqgrid tr.ui-row-ltr td span { display: inline-block; height: 17px; }
.ui-jqgrid tr.ui-row-ltr td span.status { color: #808080; font-size: 11px; }
.ui-jqgrid .ui-jqgrid-btable {table-layout:fixed; margin:3px 0 0 0; outline-style: none;}
.ui-jqgrid .ui-state-hover { background: #f5f5f5; opacity: 0.9; }
.ui-jqgrid th.ui-state-hover { background: none; }
.ui-jqgrid .ui-state-highlight, .ui-widget-content .ui-state-highlight, 
.ui-widget-header .ui-state-highlight { background: #f5f5f5; opacity: 0.9; }

/*#################################################*/
/* JQGRID PAGER
/*#################################################*/

.ui-pg-div .ui-icon-plus { background: #2b82d4 url(images/plus-white.svg ) center center no-repeat; padding: 6px; background-size: 10px 10px; }
.ui-pg-div .ui-icon-import { background: url(images/import.svg ) center center no-repeat; background-size: auto 14px; width: 24px; }
.ui-pg-div .ui-icon-export { background: url(images/export.svg ) center center no-repeat; background-size: auto 14px; width: 24px; }
.ui-pg-div .ui-icon-action { background: url(images/action2.svg ) center center no-repeat; background-size: auto 14px; width: 24px; }
.ui-pg-div .ui-icon-delete-all { background: url(images/remove.svg ) center center no-repeat; background-size: 10px 10px; width: 24px; }
.ui-jqgrid .ui-jqgrid-pager .ms-choice { margin-top: -6px; }

#cpanel #cpanel_user_list .ui-pg-div .ui-icon-plus,
#cpanel #cpanel_object_list .ui-pg-div .ui-icon-plus,
#cpanel #cpanel_unused_object_list .ui-pg-div .ui-icon-plus,
#cpanel #cpanel_billing_plan_list .ui-pg-div .ui-icon-plus,
#cpanel #dialog_user_edit .ui-pg-div .ui-icon-plus,
#dialog_settings .ui-pg-div .ui-icon-plus,
#dialog_settings_object_edit .ui-pg-div .ui-icon-plus,
#dialog_share_position .ui-pg-div .ui-icon-plus,
#dialog_reports .ui-pg-div .ui-icon-plus,
#dialog_tasks .ui-pg-div .ui-icon-plus,
#dialog_cmd .ui-pg-div .ui-icon-plus,
#dialog_maintenance .ui-pg-div .ui-icon-plus,
#dialog_expenses .ui-pg-div .ui-icon-plus,
#dialog_places_groups .ui-pg-div .ui-icon-plus,
#dialog_billing .ui-pg-div .ui-icon-plus {
	margin: -4px 0px -5px -15px;
}

#dialog_billing .ui-pg-div .ui-icon-plus {
	background-color: #9cc602;
}

#side_panel .ui-jqgrid .ui-jqgrid-pager,
#bottom_panel .ui-jqgrid .ui-jqgrid-pager
{
	border-top: none;
	padding-left: 10px !important;
	padding-right: 10px !important;
	margin-left: -10px !important;
	margin-bottom: 0px !important;
}
	
#dialog_image_gallery .ui-jqgrid .ui-jqgrid-pager
{
	margin-top: 10px !important;
	padding-right: 12px !important;
}

/*#################################################*/
/* JQGRID CUSTOM
/*#################################################*/

.ui-jqgrid-btable a img
{
	padding: 0 2px;
}

.ui-jqgrid-btable img
{
	width: 14px;
}

.ui-jqgrid .tree-wrap-ltr
{
	float: right;
	margin-top: 0px;
	margin-right: 1px;
	margin-left: 8px;
}


#cpanel .ui-jqgrid tr.ui-row-ltr td { padding: 3px; }
/*#cpanel .ui-jqgrid .ui-jqgrid-title { float: right; margin: auto; }
#cpanel .ui-jqgrid .ui-jqgrid-titlebar { margin-bottom: 12px; }*/

#cpanel_user_list .ui-jqgrid .ui-jqgrid-title,
#cpanel_object_list .ui-jqgrid .ui-jqgrid-title,
#cpanel_unused_object_list .ui-jqgrid .ui-jqgrid-title,
#cpanel_billing_plan_list .ui-jqgrid .ui-jqgrid-title {
	float: right; margin: auto; 
}

#cpanel_user_list .ui-jqgrid .ui-jqgrid-titlebar,
#cpanel_object_list .ui-jqgrid .ui-jqgrid-titlebar,
#cpanel_unused_object_list .ui-jqgrid .ui-jqgrid-titlebar,
#cpanel_billing_plan_list .ui-jqgrid .ui-jqgrid-titlebar {
	margin-bottom: 12px;
}

#gview_image_gallery_list_grid,
#gview_chat_object_list_grid,
#gview_settings_object_sensor_calibration_list_grid,
#gview_settings_object_sensor_dictionary_list_grid,
#gview_settings_event_param_sensor_condition_list_grid,
#gview_cpanel_manage_server_theme_list_grid,
#gview_cpanel_manage_server_custom_map_list_grid,
#gview_cpanel_manage_server_log_list_grid,
#gview_cpanel_manage_server_billing_plan_list_grid,
#gview_cpanel_manage_server_language_list_grid,
#gview_cpanel_manage_server_template_list_grid
{ border-bottom: 1px solid #f5f5f5; padding-bottom: 3px; }

.ui-jqgrid .ui-jqgrid-htable th#side_panel_objects_object_list_grid_show,
.ui-jqgrid .ui-jqgrid-htable th#side_panel_places_marker_list_grid_show,
.ui-jqgrid .ui-jqgrid-htable th#side_panel_places_route_list_grid_show,
.ui-jqgrid .ui-jqgrid-htable th#side_panel_places_zone_list_grid_show,
.ui-jqgrid .ui-jqgrid-htable th#side_panel_history_route_detail_list_grid_icon,
.ui-jqgrid .ui-jqgrid-htable th#chat_object_list_grid_icon
{ border-left: none; }

#gview_dialog_user_edit_subaccount_list_grid .ui-jqgrid-bdiv input[type=text]
{height: 17px; width: 100%; border: 0px; text-align: center;}

#gview_dialog_subaccounts_subaccount_list_grid .ui-jqgrid-bdiv input[type=text]
{height: 17px; width: 100%; border: 0px; text-align: center;}

#cpanel #cpanel_user_list .ui-jqgrid .ui-jqgrid-hdiv,
#cpanel #cpanel_object_list .ui-jqgrid .ui-jqgrid-hdiv,
#cpanel #cpanel_unused_object_list .ui-jqgrid .ui-jqgrid-hdiv,
#cpanel #cpanel_billing_plan_list .ui-jqgrid .ui-jqgrid-hdiv,
#cpanel #cpanel_manage_server .ui-jqgrid .ui-jqgrid-hdiv,
#cpanel #dialog_user_edit .ui-jqgrid .ui-jqgrid-hdiv,
#cpanel #dialog_subaccounts .ui-jqgrid .ui-jqgrid-hdiv
{ padding: 4px 0; }

/*#################################################*/
/* LOGIN PAGE
/*#################################################*/

body#login {
	background-image: url(../img/login-background.jpg);
	background-position: center center;
	background-size: cover;
	background-color: #ffffff;
	display: table;
	overflow: auto;
	width: 100%;
}
#login .wrapper {
	display: table-cell;
	vertical-align: middle;
}
#login .wrapper .inner-wrapper {
	width: 450px;
	padding: 20px;
	margin: 50px auto;
	background: #ffffff;
	opacity: 0.9;
}
#login .wrapper .inner-wrapper .content {
	height: 250px;
	width: 100%;
	overflow: hidden;
}
#login .wrapper .inner-wrapper .content .content-block {
	height: 250px;
}
#login .logo-block {
	float: left;
}
#login .logo {
	margin-bottom: 20px;
}
#login .registration-closed {
	padding: 15px;
	background: #fab444;
	color: #ffffff;
	font-weight: bold;
	margin-bottom: 10px;
}
#login .server-select .ms-choice {
	background-image: url(images/server.svg);
	background-position: 15px center;
	background-repeat: no-repeat;
	background-size: 16px 16px;
	height: 48px;
}
#login .server-select .ms-choice span {
	top: 12px;
	padding-left: 51px;
}
#login .server-select .ms-choice div {
	top: 14px;
}
#login .server-select .ms-drop {
	margin-top: 24px;
}
#login input.inputbox {
	height: 48px;
	background-color: #f5f5f5;
	border: 1px solid #f5f5f5;
	width: 100%;
	padding-left: 50px;
}
#login input.inputbox:hover {
	background-color: #ffffff; }
#login .icon {
	float: left;
	width: 48px;
	height: 48px;
	background-position: 15px center;
	background-repeat: no-repeat;
	background-size: 16px 16px;
}
.icon.icon-user { background-image: url(images/user.svg); }
.icon.icon-email { background-image: url(images/email.svg); }
.icon.icon-password { background-image: url(images/password.svg); }
.icon.icon-code { background-image: url(images/shield.svg); }

#login .wrapper .content-block input.button {
	background: #2b82d4;
	color: #ffffff;
	border: none;
	padding: 5px;
	height: 50px;
	width: 100%;
	font-weight: bold;
}
#login input.button:hover { opacity: 0.9; }
#login .content-block .reveal {
	position: absolute;
	right: 15px;
	top: 14px;
	width: 20px;
	height: 20px;
	background: url(images/eye-crossed.svg) center center no-repeat;
	background-size: 16px 16px;
	cursor: pointer;
}
#login .content-block .reveal.hide {
	background: url(images/eye.svg) center center no-repeat;
	background-size: 16px 16px;
}
#login .content-block .security-code {
	position: absolute;
	top: 15px;
	right: 10px;
}
#login .wrapper .content-block .submit-btn {
	position: relative;
}
#login .wrapper .content-block .submit-btn .remember-block {
	position: absolute;
	z-index: 1;
	top: 15px;
	right: 15px;
}
#login .submit-btn .remember-block input { display: none; }
#login .submit-btn .remember-block .custom-checkbox {
	cursor: pointer;
	width: 16px;
	height: 16px;
	background: url(images/lock-open.svg) center center no-repeat;
	background-size: 16px 16px;
	display: block;
}
#login .submit-btn .remember-block .custom-checkbox.checked {
	background: url(images/lock-closed.svg) center center no-repeat;
	background-size: 16px 16px;
}
#login .recover-register-block {
	text-align: center;
	padding: 0;
	margin: 35px 0;
}
#login .recover-register-block li {
	display: inline-block;
	list-style: none;
}
#login .recover-register-block li a {
	font-weight: bold;
	color: #676767;
}
/*
 * Login footer.
 *
 * Three items now: the mobile-web link, the app button, the language picker.
 * Flex rather than the old pair of floats, because a centred third item between
 * two floats has no clean answer. The .float-left / .float-right classes stay on
 * the markup and simply stop applying -- a float has no effect on a flex item --
 * so the order in the HTML gives the same result it gave before, and anything
 * else that targets those classes is left alone.
 *
 * min-height, not height: the row has to hold a 28px button, and on a narrow
 * phone it has to be allowed to wrap rather than crush its contents.
 */
#login .footer {
	min-height: 25px;
	padding-top: 10px;
	border-top: 1px solid #e4e4e4;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
}
#login .footer .app-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 28px;
	padding: 0 11px;
	border: 1px solid #d9e2ec;
	border-radius: 999px;
	background: #f6f9fc;
	color: #4a6075;
	font-size: 11.5px;
	font-weight: bold;
	white-space: nowrap;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}
#login .footer .app-pill svg { width: 13px; height: 13px; display: block; }
#login .footer .app-pill:hover { border-color: #2b82d4; color: #2b82d4; background: #eff6fd; }
#login .footer .app-pill:focus-visible { outline: 2px solid #2b82d4; outline-offset: 1px; }
@media (prefers-reduced-motion: reduce) {
	#login .footer .app-pill { transition: none; }
}
#login .footer .mobile-v {
	padding-left: 20px;
	color: #676767;
	background-image: url(images/mobile.svg);
	background-position: left center;
	background-size: 16px 16px;
	background-repeat: no-repeat;
}
#login .footer input.button.mobile-v { border: none; padding: none; }
#login .footer input.button.mobile-v:hover { color: #2b82d4; background: none; }
#login .text { border-top: none; }

/*#################################################*/
/* TOP PANEL
/*#################################################*/

#top_panel {
	height: 36px;
	background: #ffffff;
	position: relative;
	z-index: 20;
}
#top_panel img { display: block; width: 16px; height: 16px; padding: 3px 0; }
#top_panel .left-menu { float: left; }
#top_panel .right-menu { float: right; }
#top_panel .tp-menu div { float: left; }
#top_panel .tp-menu div a { 
	display: table;
	padding-top: 7px;
	padding-bottom: 7px;
	padding-left: 14px;
	padding-right: 14px; 
	text-decoration: none; 
	color: #808080;
	font-size: 13px;
}
#top_panel a:hover { background: #f5f5f5; }
#top_panel a.active {background: #f5f5f5;}
#top_panel .cpanel-btn a { background: #fab444; border: none; }
#top_panel .cpanel-btn a:hover { background: #fab444; opacity: 0.9; }
#top_panel .billing-btn a { background: #9cc602; border: none; }
#top_panel .billing-btn a:hover { background: #9cc602; opacity: 0.9; }
#top_panel .billing-btn-red a { background: #ff4e49; border: none; }
#top_panel .billing-btn-red a:hover { background: #ff4e49; opacity: 0.9; }
#top_panel .logout-btn a { background: #6c6c6c; border: none; }
#top_panel .logout-btn a:hover { background: #6c6c6c; opacity: 0.9; }
#top_panel .user-btn img { float:left; margin-right: 5px;}
#top_panel .chat-btn span,
#top_panel .billing-btn span,
#top_panel .billing-btn-red span {
	font-size: 11px;
	line-height: 12px;
	height: 12px;
	background: #f5f5f5;
	color: #808080;
	padding: 3px;
	margin: 1px 0 0 10px;
	display: block;
	border-radius: 2px;
	float: right;
}
#top_panel .user-btn span {
	display: block;
	float: right;
	margin-top: 1px;
	white-space: nowrap;
	max-width: 80px;
	overflow: hidden;
	text-overflow: ellipsis;
}
#top_panel .select-language { margin: 1px 0; padding: 5px 10px; }
#top_panel .select-language.cp { border: none; }

/*#################################################*/
/* LEFT PANEL
/*#################################################*/

#side_panel {
	position: absolute;
	top: 36px;
	bottom: 0px;
	width: 360px;
	background: #ffffff;
	z-index: 20;
}

#side_panel_objects,
#side_panel_events,
#side_panel_places,
#side_panel_history,
#side_panel_places_markers,
#side_panel_places_routes,
#side_panel_places_zones{
	padding: 10px;
}

#side_panel_places { padding-left: 0px; padding-right: 0px;}

#side_panel_places .ui-tabs-nav
{
	border: 0px;
	margin-left: 10px;
	margin-right: 10px;
	padding: 2px;
}

#side_panel_places .ui-tabs-nav li
{
	border: 0px;
}

#side_panel_places .ui-tabs-nav li a
{
	padding-top: 2px;
	padding-bottom: 1px;
}

#side_panel_places .ui-tabs-nav li.ui-tabs-active a
{
	padding-top: 2px;
	padding-bottom: 1px;
}

#places_marker_icon_tabs {
	margin-left: -15px;
	margin-right: -15px;
	width: 324px;
}

#places_marker_icon_default_tab, #places_marker_icon_custom_tab {
	padding-bottom: 0px;
}

#places_marker_icon_default_list {
	position: relative;
	height: 245px;
	overflow-y: scroll;
	border: 1px solid #f5f5f5;
	padding: 5px;
	-webkit-box-sizing: border-box;‌​
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
#places_marker_icon_custom_list {
	position: relative;
	height: 211px;
	overflow-y: scroll;
	border: 1px solid #f5f5f5;
	padding: 5px;
	-webkit-box-sizing: border-box;‌​
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

/*#################################################*/
/* BOTTOM PANEL
/*#################################################*/

#bottom_panel {
	display: none;
	position: absolute;
	bottom: 0px;
	left: 365px;
	right: 0px;
	background-color: #ffffff;
}

#bottom_panel .controls {
	position: absolute;
	right: 15px;
	top: 5px;
	z-index: 1;
}

#bottom_panel .controls a {
	float: left;
	height: 16px;
	width: 16px;
	display: inline-block;
}

#bottom_panel .controls span.icon-close {
	display: table;
	width: 100%;
	height: 100%;
	background-size: 10px 10px;
	background-repeat: no-repeat;
	background-position: center center;
}

#bottom_panel_datalist,
#bottom_panel_graph,
#bottom_panel_msg {
	padding: 10px;
}
#bottom_panel_datalist,
#bottom_panel_graph,
#bottom_panel_msg  { background: #ffffff; }
#bottom_panel_graph_plot
{
	height: 100%;
	width: 100%;
}

.graph-controls
{
	margin-bottom: 10px;
	display: table;
	width: 100%;
}
.graph-controls div
{
	display: inline-block;
	vertical-align: middle;
	font-size: 11px;
}
.graph-controls-left
{
	float: left;
}
.graph-controls-right
{
	float: right;
}
.graph-label
{
	line-height: 24px;
	margin-right: 5px;
}

/*#################################################*/
/* OBJECT LIST
/*#################################################*/

.object-list-item{
	height: 30px;
}
.object-list-item .left {
	float: left;
	width: 110px;
}
.object-list-item .right {
	display: table;
	height: 100%;
	float: right;
}
.object-list-item .name {
	overflow: hidden;
	text-overflow: ellipsis;
}
.object-list-item .status {
	overflow: hidden;
	text-overflow: ellipsis;
	color: #808080;
	font-size: 10px;
}
.object-list-item .speed,
.object-list-item .engine,
.object-list-item .connection,
.object-list-item .messages {
	display: table-cell;
	vertical-align: middle;
	height: 100%;
	text-align: center;
	padding: 3px;
}
.object-list-item .speed {
	max-width: 50px;
	text-overflow: ellipsis;
	overflow: hidden;
}
.object-list-item .messages {
	font-size: 11px;
	line-height: 12px;
	height: 12px;
	background: #f5f5f5;
	color: #808080;
	display: block;
	border-radius: 2px;
	margin-top: 4px;
}
.object-action-menu {
	border-radius: 2px;
	padding: 3px;
}
.object-action-menu:hover {
	background-color: #ffffff
}

/*#################################################*/
/* NOTIFY/CONFIRM
/*#################################################*/

#dialog_notify,
#dialog_confirm{
	min-width: 250px;
}

#dialog_notify_text,
#dialog_confirm_text{
	line-height: 18px;
}

/* Names the exact objects a confirm dialog is about. Scrolls instead of
   growing the dialog past the screen when a lot of rows are selected. */
.confirm-object-list {
	margin: 10px 0 0;
	padding: 8px 10px 8px 26px;
	max-height: 180px;
	overflow-y: auto;
	text-align: left;
	background: #f5f5f5;
	list-style: disc;
}
.confirm-object-list li {
	line-height: 18px;
	word-break: break-word;
}

.ui-pnotify .ui-pnotify-text .row {
	margin-bottom: 0px;
}
.ui-pnotify .ui-pnotify-text .row2 {
	line-height: 18px;
}
.ui-pnotify .ui-pnotify-text .row2 div:last-child {
	overflow-wrap: break-word;
	word-wrap: break-word;
	-ms-word-break: break-all;
	word-break: break-all;
	word-break: break-word;
	-ms-hyphens: auto;
	-moz-hyphens: auto;
	-webkit-hyphens: auto;
	hyphens: auto;
}

/*#################################################*/
/* MENU
/*#################################################*/

.ui-menu { position: absolute; min-width: 150px; white-space: nowrap; z-index: 99999999; }
.ui-menu .ui-menu-icon {
    top: 8px;
}
.menu {
	background: #ffffff;
	-webkit-box-shadow: 0 0 5px 0 #9b9b9b;
	box-shadow: 0 0 5px 0 #9b9b9b;
}
.menu ul {
	background: #ffffff;
	-webkit-box-shadow: 3px 0 5px 0 #9b9b9b;
	box-shadow: 3px 0 5px 0 #9b9b9b;
}
.menu li { border-top: 1px solid #f5f5f5; }
.menu li:first-child { border: none; }
.menu li a:hover { background-color: #f5f5f5; }
.menu.ui-menu .first-item { border-top: 3px solid #2b82d4; }
.menu ul li a,
.menu .ui-menu-icon { background: url(images/arrow-right.svg) left center no-repeat; background-size: 10px 10px; overflow: visible; }
.menu.ui-menu .ui-menu-item a {
	background-repeat: no-repeat;
	background-position: 10px center;
	background-size: 10px 10px;
	padding: 5px 15px 5px 28px;
	color: #444444;
}

/*#################################################*/
/* DRAGBARS
/*#################################################*/

#side_panel_objects_dragbar,
#side_panel_events_dragbar,
#side_panel_history_dragbar {
	margin: 3px -10px;
	height: 5px;
	background: #f5f5f5;
	cursor: row-resize;
}
#side_panel_objects_dragbar:hover,
#side_panel_events_dragbar:hover,
#side_panel_history_dragbar:hover { background-color: #eeeeee; }

#side_panel_dragbar {
	position: absolute;
	top: 36px;
	bottom: 0px;
	left: 360px;
	width: 5px;
	background: #f5f5f5;
	z-index: 20;
	
}
#side_panel_dragbar:hover { background-color: #eeeeee;}

#bottom_panel_dragbar {
	position: absolute;
	bottom: 0px;
	left: 365px;
	right: 0px;
	height: 5px;
	background: #f5f5f5;
	border-left: 0px;
}
#bottom_panel_dragbar:hover { background-color: #eeeeee; }

/*#################################################*/
/* SETTINGS
/*#################################################*/

#dialog_settings,
#dialog_settings_object_edit_select_icon { padding: 0px; }
#dialog_settings_object_edit,
#dialog_settings_event_properties { padding-top: 0px; padding-left: 0px; padding-right: 0px; }
#settings_main { height: 551px; margin-top: 0px; border-top: 0px; }
#settings_object { min-height: 471px; border-top: 0px; }
#settings_event { min-height: 417px; border-top: 0px; }
#settings_main_objects,
#settings_main_subaccounts { /*padding: 0 10px 10px 10px;*/ }
#settings_object_edit_select_icon_default_list {
	position: relative;
	height: 265px;
	overflow-y: scroll;
	border: 1px solid #f5f5f5;
	padding: 5px;
	-webkit-box-sizing: border-box;‌​
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
#settings_object_edit_select_icon_custom_list {
	position: relative;
	height: 231px;
	overflow-y: scroll;
	border: 1px solid #f5f5f5;
	padding: 5px;
	-webkit-box-sizing: border-box;‌​
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

/*#################################################*/
/* MAP
/*#################################################*/

#map {
	position: absolute;
	top: 36px;
	left: 365px;
	right: 0px;
	bottom: 5px;
}

.map-layer-control
{
	position: absolute;
	top: 46px;
	right: 10px;
	background-color: #ffffff;
	padding: 2px;
	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
	z-index: 20;
}

.history-view-control
{
	display: none;
	position: absolute;
	width: 196px;
	top: 46px;
	left: 413px;
	background-color: #ffffff;
	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
	z-index: 20;
	float: left;
	clear: both;
}

.history-view-control a,
.history-view-control a:hover{
	float: left;
	height: 28px;
	width: 28px;
	display: inline-block;
}

.history-view-control a:hover {
	background-color: #f5f5f5;
}

.camera-control
{
	display: none;
	position: absolute;
	bottom: 16px;
	right: 10px;
	min-width: 236px;
	max-width: 316px;
	height: 177px;
	background-color: #ffffff;
	padding: 2px;
	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
	z-index: 15;
	opacity: 0.75;
	line-height: 177px;
	font-size: 20px;
	text-align: center;
	vertical-align: middle;
	color: #aaaaaa;
}

.camera-control img
{
	width: 316px;
	height: 177px;
}

.street-view-control
{
	display: none;
	position: absolute;
	bottom: 16px;
	right: 10px;
	width: 316px;
	height: 177px;
	background-color: #ffffff;
	padding: 2px;
	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
	z-index: 15;
	opacity: 0.75;
	line-height: 177px;
	font-size: 20px;
	text-align: center;
	vertical-align: middle;
	color: #aaaaaa;
}

.street-view-control img
{
	width: 316px;
	height: 177px;
}

.object-cluster-popup
{
	overflow-y: scroll;
	overflow-x: hidden;
	max-height: 200px;
	margin-top: 25px;
}

/*#################################################*/
/* FOLLOW
/*#################################################*/

#map_follow {
	position: absolute;
	top: 0px;
	bottom: 0px;
	left: 0px;
	right: 0px;
}

#side_panel_follow {
	display: none;
	position: absolute;
	top: 75px;
	bottom: 0px;
	left: 0px;
	width: 280px;
	background-color: #ffffff;
	opacity: 0.8;
	z-index: 8;
}

.object-follow-control
{
	position: absolute;
	top: 10px;
	right: 10px;
	background-color: #ffffff;
	padding: 2px 2px 2px 5px;
	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
	z-index: 20;
}

/*#################################################*/
/* DATALIST
/*#################################################*/

.datalist {
/*	width: 100%;
	height: 100%;*/
}

.datalist-item-list {
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	align-content: flex-start;
	overflow-x: auto;
}

.data-item-text {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	font-size: 20px;
	text-align: center;
	vertical-align: middle;
	color: #aaaaaa;
}

.datalist-item {
	display: table;
	float: left;
	width: 280px;
	min-width: 280px;
	margin-right: 15px;
	padding-left: 5px;
	padding-right: 5px;
	line-height: 24px;
}

.datalist-item.even {
	background-color: #f5f5f5;
}

.datalist-item.odd {
	background-color: #ffffff;
}

.datalist-item-icon {
	float: left;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 14px 14px;
	width: 24px;
	height: 24px;
}

.datalist-item-name {
	display: inline-block;
	width: 90px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.datalist-item-value {
	display: inline-block;
	width: 166px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-align: right;
}

/*#################################################*/
/* DASHBOARD
/*#################################################*/

#dialog_dashboard {
	background-color: #f5f5f5;
}

.dashboard-container {
	display: inline-block;
	width: 100%;
	background-color: #ffffff;
}

.dashboard-container-header {
	width: 100%;
	height: 30px;
	line-height: 30px;
	background: #e5e5e5;
	margin-bottom: 10px;
}

.dashboard-container-header-icon {
	float: left;
	width: 30px;
	height: 30px;
}

.dashboard-container-header-icon span {
	display: inline-block;
	width: 100%;
	height: 100%;
	background-size: 15px 15px;
	background-repeat: no-repeat;
	background-position: center center;
}

.dashboard-container-header-title {
	float: left;
}

.dashboard-container-header-menu {
	float: right;
	width: 30px;
	height: 30px;
}

.dashboard-container-header-menu span {
	display: inline-block;
	width: 100%;
	height: 100%;
	background-size: 15px 15px;
	background-repeat: no-repeat;
	background-position: center center;
}

.dashboard-container-text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	font-size: 20px;
	text-align: center;
	vertical-align: middle;
	color: #aaaaaa;
	margin-left: 10px;
	margin-right: 10px;
}

.dashboard-container-graph-plot {
	margin-left: 10px;
	margin-right: 10px;
}

/*#################################################*/
/* HISTORY
/*#################################################*/

.history-controls { margin: 5px 0; }

/*#################################################*/
/* REPORTS
/*#################################################*/

#dialog_reports { padding: 0px; }

/*#################################################*/
/* OBJECT CONTROL
/*#################################################*/

#dialog_cmd { padding: 0px; }

/*#################################################*/
/* IMAGE GALLERY
/*#################################################*/

#dialog_image_gallery { padding-bottom: 0; overflow: hidden; }
#image_gallery_img {
	width: 640px;
	height: 480px;
	border: 1px solid #f5f5f5;
	text-align: center;
}
#image_gallery_img_data {
	background: #f5f5f5;
	height: 28px;
	width: 657px;
	margin-top: 5px;
	margin-right: -15px;
}
#image_gallery_img_data_address {
	white-space: nowrap;
}
#dialog_image_gallery .img-controls { width: 320px; }

/*#################################################*/
/* CHAT
/*#################################################*/

#dialog_chat { padding-bottom: 0; overflow: hidden; }

.chat-msgs-block {
	position: absolute;
	left: 252px;
	top: 15px;
	bottom: 49px;
	right: 15px;
}

.chat-msg-block {
	position: absolute;
	left: 252px;
	bottom: 15px;
	right: 15px;
	height: 24px;
}

#chat_msgs {
	position: absolute;
	left: 0px;
	top: 0px;
	bottom: 0px;
	right: 0px;
	overflow-x: hidden;
	overflow-y: scroll;
	border: 1px solid #f5f5f5;
	z-index: 9;
}

#chat_msgs_dt {
	font-size: 11px;
	display: none;
	position: relative;
	text-align: center;
        margin: 1px 1px 1px 1px;
        padding: 1px;
	z-index: 10;
	background: #eeeeee;
	opacity: 0.7;
}

.chat-msg-container
{
	width: 100%;
}

.chat-msg-status
{
	font-size: 11px;
	float: right;
	clear: both;
	margin: 3px;
	max-width: 60%;
	color: #bbbbbb;
}

.chat-msg-server
{
	text-align: left;
	float: right;
	clear: both;
	background: #DFE8F7;
	margin: 3px;
	padding: 3px 10px;
	max-width: 60%;
	border-radius: 2px;
	word-wrap: break-word;
}

.chat-msg-client
{
	text-align: left;
	float: left;
	clear: both;
	background: #F5F5F5;
	margin: 3px;
	padding: 3px 10px;
	max-width: 60%;
	border-radius: 2px;
	word-wrap: break-word;
}

.chat-msg-dt-server
{
	text-align: right;
	font-size: 10px;
	color: #888888;
}

.chat-msg-dt-client
{
	text-align: left;
	font-size: 10px;
	color: #888888;
}

/*#################################################*/
/* BILLING
/*#################################################*/

.dialog-billing-titlebar .ui-dialog-titlebar {
         background-color: #9cc602;
}

#billing_plan_purchase_list {
	width: 100%;
	height: 388px;
	font-size: 12px;
	overflow-y: scroll;
}
#billing_plan_purchase_list .row .row2 {
	margin-bottom: 0;
}
#billing_plan_purchase_list .row {
	border-bottom: 1px solid #f5f5f5;
	margin-bottom: 0;
	padding: 10px 0;
}
#billing_plan_purchase_list .row.header {
	font-weight: 600;
	color: #707070;
	background: #f5f5f5;
}
#billing_plan_purchase_list .row.even {
	background: #f5f5f5;
}
#billing_plan_purchase_list  div {
	text-align: center;
}
#billing_plan_purchase_list div.name {
	text-align: left;
}
#billing_plan_purchase_list i.arrow {
	width: 10px;
	height: 10px;
	display: block;
	float: left;
	margin-left: 8px;
	background: url(images/arrow-right.svg) center center no-repeat; background-size: 10px 10px;
}
#billing_plan_purchase_list i.purchase {
	width: 16px;
	height: 16px;
	margin: 0 auto;
	display: block;
	float: none;
	background: url(images/cart.svg) center center no-repeat; background-size: 16px 16px;
}

/*#################################################*/
/* LOGO, INFORMATION, MESSAGES
/*#################################################*/

.logo { border:0px; width:250px; height:56px; }
.logo_small { border:0px; width:32px; height:32px; }
.favicon { border:0px; width:32px; height:32px; }
.info { padding-bottom: 15px; height: 35px; display: table-cell; vertical-align: middle; }
.info2 { height: 22px; display: table-cell; vertical-align: middle; }
.subinfo {color: #949494; line-height: 12px;}

/*#################################################*/
/* DIALOG CONTROLS AND TABS
/*#################################################*/

.controls-block
{
	margin: -15px -15px 10px -15px;
	padding: 4px 15px 7px;
	background: #f5f5f5;
	height: 20px;
}

#settings_main_sms .controls,
#settings_main_user_interface .controls,
#settings_main_my_account .controls
{
	position: absolute;
	right: 15px;
	top: 4px;
}
#settings_main_user_interface,
#settings_main_my_account
{
	height: 490px;
}

#settings_main_object_list,
#settings_main_object_group_list,
#settings_main_object_driver_list,
#settings_main_object_passenger_list,
#settings_main_object_trailer_list,
#settings_main_objects_groups_drivers .ui-tabs-nav { margin: 0 -15px; }

#settings_object_accuracy
{
	height: 410px;
}

.ui-tabs-anchor
{
	white-space: nowrap;
	max-width: 110px;
	overflow: hidden;
	text-overflow: ellipsis;
}

/*#################################################*/
/* CPANEL
/*#################################################*/

body#cpanel { background: #e5e5e5; }
#cpanel h1.title {
	margin: 0;
	color: #2b82d4;
	display: table;
	float: left;
}
.version { font-size: 10px; color: #808080; }
#cpanel_manage_server .cpanel-title { margin-bottom: 12px; }
#cpanel h1.title span { color: #808080; font-weight: normal; font-size: 22px;}
#cpanel_user_list,
#cpanel_object_list,
#cpanel_unused_object_list,
#cpanel_billing_plan_list,
#cpanel_manage_server {
	margin: 15px;
	padding: 15px;
	background: #ffffff;
	border-top: 3px solid #2b82d4;
}
#dialog_user_edit_tabs { height: 555px; }
#dialog_user_edit { padding: 0px; }
#cpanel_user_list .inputbox-search,
#cpanel_object_list .inputbox-search,
#cpanel_unused_object_list .inputbox-search,
#cpanel_billing_plan_list .inputbox-search {
	width: 300px;
	margin-left: 3px;
}
#cpanel .ms-save {
	position: absolute;
	right: 0px;
	top: 2px;
}
.ui-tabs .ui-tabs-nav li.save-btn { float: right; }
#cpanel #dialog_user_edit_account .controls,
#cpanel #dialog_user_edit_contact_info .controls {
	position: absolute;
	right: 15px;
	top: 4px;
}
#cpanel #cpanel_manage_server .ui-tabs-nav {
	background: #f5f5f5;
	padding: 10px 15px;
	border-bottom: none;
	margin: 0 -15px;
}
#cpanel #cpanel_manage_server .ui-tabs .ui-tabs-nav li { border: none; }
#cpanel #cpanel_manage_server .ui-tabs .ui-tabs-nav li.ui-tabs-active a {
	background-color: #808080;
	color: #ffffff;
	padding: 5px 15px;
}
#cpanel #cpanel_manage_server .ui-tabs .ui-tabs-nav li a {
	padding: 5px 15px;
	margin-right: 5px;
	font-size: 12px;
	background-color: #ffffff;
}
#cpanel_manage_server {
	position: absolute;
	top: 36px;
	bottom: 0px;
	right: 0px;
	left: 0px;
	overflow: hidden;
}
.cpanel-tabs-content {
	position: absolute;
	top: 50px;
	bottom: 45px;
	right: 0px;
	left: 0px;
	overflow-y: auto;
	margin-left: -15px;
}
#cpanel_manage_server .ui-img-container {
	display: flex;
	height: 160px;
	background-color: #f5f5f5; 
	border: 1px solid #f5f5f5;
	justify-content: center;
	align-items: center;
}
#cpanel_manage_server .logo {
	border: 0px;
	width: auto;
	height: auto;
	max-width: 215px;
	padding: 5px;
}
#cpanel_manage_server .login-background {
	border: 0px;
	width: auto;
	height: auto;
	max-width: 215px;
	max-height: 150px;
	padding: 5px;
}
#dialog_language_properties .row2 {
	overflow-wrap: break-word;
	word-wrap: break-word;
	-ms-word-break: break-all;
	word-break: break-all;
	word-break: break-word;
	-ms-hyphens: auto;
	-moz-hyphens: auto;
	-webkit-hyphens: auto;
	hyphens: auto;
}

/*#################################################*/
/* CPANEL TOP PANEL
/*#################################################*/

#top_panel .select-view,
#top_panel .select-language { margin: 1px 0; padding: 5px 10px; }
#top_panel .map-btn a { background: #2b82d4; }
#top_panel .map-btn a:hover { background: #2b82d4; opacity: 0.9; }
#top_panel .select-view { width: 180px; }
#top_panel .user-btn img,
#top_panel .user-list-btn img,
#top_panel .object-list-btn img,
#top_panel .billing-plan-list-btn img,
#top_panel .unused-object-list-btn img { float: left; margin-right: 5px; }
#top_panel .user-btn span,
#top_panel .user-list-btn span,
#top_panel .object-list-btn span,
#top_panel .billing-plan-list-btn span,
#top_panel .unused-object-list-btn span { display: block; float: right; margin-top: 1px; }

/*#################################################*/
/* @media
/*#################################################*/

@media (max-width: 1200px) {
	#top_panel .tp-menu div a {
		padding-left: 13px;
		padding-right: 13px; 
	}
}

@media (max-width: 1150px) {
	#top_panel .user-btn span {
		display: none;
	}
	#top_panel .user-btn img { margin-right: 0px;}
}

@media (max-width: 1100px) {
	#top_panel .user-btn {
		display: none;
	}
	#top_panel .user-btn img { margin-right: 0px;}
}

@media (max-width: 1050px) {
	#top_panel .select-language {
		display: none;
	}
}

@media (max-width: 1000px) {
	#bottom_panel_graph_label {
		display: none;
	}
}

@media (max-width: 950px) {
	#top_panel .billing-btn {
		display: none;
	}
	#top_panel .billing-btn-red {
		display: none;
	}
}

@media (max-width: 850px) {
	#top_panel .cpanel-btn {
		display: none;
	}
	#top_panel .mobile-btn {
		display: none;
	}
	#top_panel .logout-btn {
		display: none;
	}
}

@media (max-width: 800px) {
	.map-layer-control {
		display: none;
	}
}

@media (min-width: 640px)
{
	#side_panel_follow {
		display: none;
		position: absolute;
		top: 0px;
		bottom: 0px;
		left: 0px;
		width: 280px;
		background-color: #ffffff;
		opacity: 1;
	}
}
/*#################################################*/
/* LOGIN V2 - the new sign-in shell
/*
/* Every selector below is scoped under #gsl, which exists only when
/* $gsValues['LOGIN_V2'] is set for the domain. With the flag off, index.php
/* renders the original markup and not one rule here can reach it.
/*
/* No JavaScript is involved. The three panels switch on :target exactly as
/* they did before; the :has() rule hides the login panel while another is
/* targeted, and a browser too old for :has() shows two panels rather than
/* none, which is the safe direction to fail in.
/*#################################################*/

/* The original page lays the body out as a table and paints the map behind it.
   The new shell wants neither, so when it renders the body is reset to a plain
   block - gsl-on is only on the body when LOGIN_V2 is set, so a brand still on
   the old page is untouched by this. */
body#login.gsl-on { display: block; margin: 0; padding: 0; background-image: none; background: #0b1420; overflow: hidden; }

#gsl { position: fixed; top: 0; right: 0; bottom: 0; left: 0; display: flex; background: #0b1420; container-type: inline-size; overflow: auto; }
#gsl *, #gsl *:before, #gsl *:after { box-sizing: border-box; }

#gsl .gsl-shell {
	flex: 1;
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: auto 1fr;
	min-height: 100%;
	font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* ---- visual half ---- */
#gsl .gsl-vis { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; color: #e8eff6; }
#gsl .gsl-map {
	position: absolute; top: -4%; right: -4%; bottom: -4%; left: -4%;
	background: url(../img/login-background.jpg) center center no-repeat;
	background-size: cover;
	filter: invert(.93) hue-rotate(188deg) saturate(.5) brightness(.72) contrast(1.06);
}
#gsl .gsl-veil { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: radial-gradient(120% 95% at 24% 12%, rgba(43,130,212,.26), transparent 62%), linear-gradient(135deg, rgba(5,12,20,.55), rgba(5,12,20,.82)); }
#gsl .gsl-top, #gsl .gsl-bot { position: relative; }

/* beacons: six absolutely placed dots, each with one expanding ring.
   transform and opacity only, so the compositor carries them. */
#gsl .gsl-beacons { position: absolute; top: 0; right: 0; bottom: 0; left: 0; pointer-events: none; }
#gsl .gsl-bk { position: absolute; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; }
#gsl .gsl-bk i { position: absolute; top: 0; right: 0; bottom: 0; left: 0; border-radius: 50%; background: var(--bk); box-shadow: 0 0 10px 2px var(--bk); }
#gsl .gsl-bk:before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; border-radius: 50%; border: 1.5px solid var(--bk); animation: gslPing 3.4s cubic-bezier(.2,.65,.3,1) infinite; animation-delay: inherit; }
@keyframes gslPing { 0% { transform: scale(1); opacity: .85; } 70%, 100% { transform: scale(4.2); opacity: 0; } }

#gsl .gsl-top h2 { margin: 0 0 9px; font-size: 22px; font-weight: 800; line-height: 1.15; letter-spacing: -.025em; color: #ffffff; }
#gsl .gsl-top p { margin: 0; font-size: 13.5px; line-height: 1.6; color: #a9c2d8; max-width: 38ch; }

/* No cards: a card here is a slab laid over the map. The figures sit straight
   on the dark half, parted by one hairline, with the icons inline in the
   labels at text size. The icons are SVG in the markup, so this whole block
   costs no request and no file. */
#gsl .gsl-stats { display: flex; flex-wrap: wrap; gap: 12px 26px; }
#gsl .gsl-stat { min-width: 168px; }
#gsl .gsl-stat + .gsl-stat { padding-left: 26px; border-left: 1px solid rgba(140,180,220,.18); }
#gsl .gsl-lbl { display: flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: #7e9ab4; }
#gsl .gsl-lbl b { font: inherit; letter-spacing: inherit; }
#gsl .gsl-lbl .lbl-short { display: none; }
#gsl .gsl-lbl svg { width: 12px; height: 12px; flex: none; color: #5aa9e8; }
#gsl .gsl-stat + .gsl-stat .gsl-lbl svg { color: #3cd07c; }
#gsl .gsl-fig { display: block; margin-top: 4px; font-size: clamp(19px, 1.7cqw, 23px); font-weight: 800; letter-spacing: -.03em; line-height: 1.1; color: #ffffff; font-variant-numeric: tabular-nums; }

#gsl .gsl-day { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 7px; margin-top: 9px; max-width: 232px; }
#gsl .gsl-track { order: -1; flex: 1 1 100%; height: 3px; border-radius: 999px; background: rgba(140,180,220,.22); overflow: hidden; }
#gsl .gsl-track i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #2fd37e, #8ce8b6); transform-origin: left center; animation: gslFill .9s cubic-bezier(.2,.7,.3,1) both; }
@keyframes gslFill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
#gsl .gsl-pct { font-size: 9.5px; font-weight: 600; letter-spacing: .03em; color: #6d87a0; white-space: nowrap; }
#gsl .gsl-live { flex: none; width: 6px; height: 6px; border-radius: 50%; background: #3cd07c; animation: gslBlip 2.4s ease-in-out infinite; }

#gsl .gsl-trust { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
#gsl .gsl-trust span { border: 1px solid rgba(140,180,220,.26); border-radius: 999px; padding: 5px 11px; font-size: 11px; font-weight: 700; color: #b8d0e6; background: rgba(255,255,255,.04); }
#gsl .gsl-trust .gsl-bd { display: inline-flex; align-items: center; gap: 7px; border-color: rgba(60,208,124,.42); color: #9ff0c4; background: rgba(60,208,124,.1); }
#gsl .gsl-ping { position: relative; flex: none; width: 7px; height: 7px; border-radius: 50%; background: #3cd07c; }
#gsl .gsl-ping:before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; border-radius: 50%; border: 1.5px solid #3cd07c; animation: gslPing 2.6s cubic-bezier(.2,.65,.3,1) infinite; }

/* ---- form half ---- */
#gsl .gsl-pane { background: #ffffff; display: flex; align-items: center; justify-content: center; padding: 26px 18px 30px; overflow-y: auto; }
#gsl .gsl-form { width: 100%; max-width: 392px; color: #16202c; }

#gsl .gsl-logo { display: block; margin: 0 auto 24px; width: auto; height: clamp(44px, 5.2cqw, 62px); max-width: 100%; object-fit: contain; }

#gsl .gsl-form h1 { text-align: center; margin: 0 0 4px; font-size: 24px; font-weight: 800; letter-spacing: -.025em; color: #101b27; }
#gsl .gsl-sub { text-align: center; margin: 0 0 22px; font-size: 13.5px; color: #64748b; }
#gsl .gsl-note { margin: 0 0 12px; font-size: 12.5px; color: #8a6300; background: #fdf3de; border-radius: 9px; padding: 9px 11px; }
#gsl .gsl-server { width: 100%; height: 44px; margin-bottom: 12px; border: 1.5px solid #e2e8f0; border-radius: 12px; padding: 0 12px; font-size: 14px; font-weight: 600; color: #101b27; background: #f6f8fa; }

#gsl .gsl-field { position: relative; margin-bottom: 12px; }
#gsl .gsl-field input {
	width: 100%; height: 54px; padding: 20px 44px 7px 14px;
	font-family: inherit; font-size: 14.5px; font-weight: 600; color: #101b27;
	background: #f6f8fa; border: 1.5px solid #e2e8f0; border-radius: 12px; outline: none;
	transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
#gsl .gsl-field label {
	position: absolute; left: 15px; top: 18px; pointer-events: none; transform-origin: left top;
	font-size: 14px; font-weight: 600; color: #8c9aab;
	transition: transform .16s cubic-bezier(.2,.7,.3,1), color .16s ease;
}
#gsl .gsl-field input:focus + label,
#gsl .gsl-field input:not(:placeholder-shown) + label { transform: translateY(-10px) scale(.76); color: #2b82d4; }
#gsl .gsl-field input:focus { border-color: #2b82d4; background: #ffffff; box-shadow: 0 0 0 4px rgba(43,130,212,.15); }
/* The source SVGs are 512px square, so background-size is not optional here:
   without it a small box shows the top-left corner of the artwork, which reads
   as a grey block. The original rule set it too. */
#gsl .gsl-field .reveal {
	position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
	width: 30px; height: 30px; cursor: pointer; border-radius: 8px;
	background: url(images/eye-crossed.svg) center center no-repeat;
	background-size: 17px 17px;
	opacity: .5; transition: opacity .15s ease, background-color .15s ease;
}
#gsl .gsl-field .reveal:hover { opacity: 1; background-color: #eef4fa; }
#gsl .gsl-field .reveal.hide { background-image: url(images/eye.svg); background-size: 17px 17px; }

#gsl .gsl-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 16px; flex-wrap: wrap; }
#gsl .gsl-check { display: inline-flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 600; color: #475569; cursor: pointer; }
#gsl .gsl-check input { position: absolute; opacity: 0; width: 0; height: 0; }
#gsl .gsl-box { width: 38px; height: 22px; border-radius: 999px; background: #d7dfe8; position: relative; transition: background-color .16s ease; flex: none; }
#gsl .gsl-box:after { content: ""; position: absolute; top: 2.5px; left: 2.5px; width: 17px; height: 17px; border-radius: 50%; background: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,.26); transition: transform .16s cubic-bezier(.2,.7,.3,1); }
#gsl .gsl-check input:checked + .gsl-box { background: #2b82d4; }
#gsl .gsl-check input:checked + .gsl-box:after { transform: translateX(16px); }
#gsl .gsl-check input:focus-visible + .gsl-box { outline: 2px solid #2b82d4; outline-offset: 2px; }
#gsl .gsl-row > a { font-size: 13px; font-weight: 700; color: #2b82d4; text-decoration: none; }
#gsl .gsl-row > a:hover { text-decoration: underline; }

#gsl .gsl-go {
	width: 100%; min-height: 52px; border: 0; border-radius: 12px; cursor: pointer;
	background: linear-gradient(135deg, #3390e4, #1f6fbd); color: #ffffff;
	font-family: inherit; font-size: 15px; font-weight: 800;
	box-shadow: 0 6px 18px rgba(31,111,189,.32);
	transition: filter .14s ease, box-shadow .14s ease, transform .14s ease;
}
#gsl .gsl-go:hover { filter: brightness(1.07); box-shadow: 0 10px 26px rgba(31,111,189,.4); }
#gsl .gsl-go:active { transform: translateY(1px); }
#gsl .gsl-go:focus-visible { outline: 3px solid rgba(43,130,212,.45); outline-offset: 2px; }

#gsl .gsl-alt { text-align: center; margin: 16px 0 0; font-size: 13px; color: #64748b; }
#gsl .gsl-alt a { color: #2b82d4; font-weight: 700; text-decoration: none; }
#gsl .gsl-alt a:hover { text-decoration: underline; }
#gsl .gsl-alt span { margin: 0 6px; }

#gsl .gsl-foot { margin: 22px 0 0; padding-top: 16px; border-top: 1px solid #e8edf2; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 12.5px; }
#gsl .gsl-foot > a { color: #64748b; text-decoration: none; font-weight: 600; }
#gsl .gsl-foot > a:hover { color: #2b82d4; }
#gsl .gsl-foot .app-pill { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border: 1px solid #dde5ee; border-radius: 999px; background: #f7fafd; color: #44607a; font-size: 11.5px; font-weight: 700; white-space: nowrap; text-decoration: none; }
#gsl .gsl-foot .app-pill:hover { border-color: #2b82d4; color: #2b82d4; }
#gsl .gsl-foot .app-pill svg { width: 12px; height: 12px; }
/* order, not markup: last in the row this select sits hard against the right
   edge of the window, and the browser opens its option list rightwards into
   nothing, so the language names are sliced in half. First in the row it opens
   across the form instead. The source order is untouched, so the tab order and
   the form itself are the same as they were. */
/* a raw select next to a rounded pill reads as something the page forgot to
   style, so it is given the app pill's own height, shape and colours. The
   chevron is a data URI: appearance:none removes the native one, and nothing
   extra is fetched. */
#gsl .gsl-lang {
	order: -1;
	/* flex: none, or the footer row shrinks this below its widest option - and
	   the browser draws the option list at the width of the select, so every
	   language name past "English" gets sliced. Left alone it sizes to the
	   longest name, which is exactly how wide the list needs to be. */
	flex: none;
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
	height: 30px; padding: 0 30px 0 12px;
	font-family: inherit; font-size: 11.5px; font-weight: 700;
	color: #44607a; cursor: pointer;
	background-color: #f7fafd;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%2344607a' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.6 6 6.4 11 1.6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 11px center; background-size: 10px 7px;
	border: 1px solid #dde5ee; border-radius: 999px;
	transition: border-color .15s ease, color .15s ease;
}
#gsl .gsl-lang:hover { border-color: #2b82d4; color: #2b82d4; }
#gsl .gsl-lang:focus-visible { outline: 2px solid #2b82d4; outline-offset: 2px; }
/* the options themselves are drawn by the OS, so they only take colour */
#gsl .gsl-lang option { color: #16202c; background: #ffffff; font-weight: 600; }

/* jquery.multiple.js hides the real select and builds a widget in its place,
   copying the select's classes onto its own wrapper - so the pill above is
   drawn on .ms-parent, and these rules dress what sits inside it. The plugin
   also writes an inline width measured off the control, narrower than the
   longest language name, which is what was slicing the list; the override is
   aimed at that inline style, the one thing a stylesheet cannot outrank. */
#gsl .ms-parent.gsl-lang { width: auto !important; padding: 0; position: relative; }
#gsl .ms-parent.gsl-lang .ms-choice {
	display: block; width: auto; height: 28px; margin: 0; padding: 0 30px 0 12px;
	border: 0; background: none; box-shadow: none; border-radius: inherit;
	font-family: inherit; font-size: 11.5px; font-weight: 700; line-height: 28px;
	color: inherit; text-align: left; white-space: nowrap; cursor: pointer;
}
#gsl .ms-parent.gsl-lang .ms-choice > span { position: static; display: block; padding: 0; border: 0; line-height: 28px; color: inherit; background: none; }
/* the plugin draws its own caret, and the pill already has one */
#gsl .ms-parent.gsl-lang .ms-choice > div { display: none; }

#gsl .ms-parent.gsl-lang .ms-drop {
	min-width: 160px; width: auto; margin-top: 6px;
	border: 1px solid #dde5ee; border-radius: 12px; overflow: hidden;
	background: #ffffff; box-shadow: 0 12px 30px rgba(16,32,48,.16);
}
#gsl .ms-parent.gsl-lang .ms-drop ul { max-height: 240px; padding: 5px; }
#gsl .ms-parent.gsl-lang .ms-drop ul > li { border-radius: 8px; }
#gsl .ms-parent.gsl-lang .ms-drop ul > li label { display: block; padding: 7px 10px; font-size: 12.5px; font-weight: 600; color: #16202c; white-space: nowrap; cursor: pointer; }
#gsl .ms-parent.gsl-lang .ms-drop ul > li:hover { background: #eef4fa; }
#gsl .ms-parent.gsl-lang .ms-drop ul > li.selected { background: #2b82d4; }
#gsl .ms-parent.gsl-lang .ms-drop ul > li.selected label { color: #ffffff; }
/* one language at a time, so the tick box and the "all" row mean nothing */
#gsl .ms-parent.gsl-lang .ms-drop input[type="checkbox"],
#gsl .ms-parent.gsl-lang .ms-drop input[type="radio"] { display: none; }
#gsl .ms-parent.gsl-lang .ms-drop .ms-select-all { display: none; }
#gsl .gsl-lang:focus-visible { outline: 2px solid #2b82d4; outline-offset: 1px; }
#gsl .gsl-bottom-text { margin-top: 14px; font-size: 11.5px; color: #94a3b4; text-align: center; }

/* ---- the three panels, on :target, no script ---- */
#gsl .gsl-block { display: none; }
#gsl #connect { display: block; }
#gsl .gsl-block:target { display: block; }
#gsl .gsl-form:has(.gsl-block:target) #connect:not(:target) { display: none; }

/* ---- responsive: the shell asks its own width, never the window ---- */
@container (min-width: 560px) {
	#gsl .gsl-vis { padding: 26px; min-height: 210px; }
	#gsl .gsl-top h2 { font-size: 25px; }
	#gsl .gsl-pane { padding: 32px 26px; }
}
@container (min-width: 880px) {
	#gsl .gsl-shell { grid-template-columns: 1.08fr 1fr; grid-template-rows: 1fr; }
	#gsl .gsl-vis { padding: 36px; }
	#gsl .gsl-pane { padding: 40px 36px; }
}
@container (min-width: 1080px) {
	#gsl .gsl-shell { grid-template-columns: 1.18fr 1fr; }
	#gsl .gsl-vis { padding: 44px 46px 38px; }
	#gsl .gsl-pane { padding: 48px 44px; }
	#gsl .gsl-form { max-width: 404px; }
	#gsl .gsl-top h2 { font-size: 31px; }
}

/* on a narrow shell the dark half is a header band, so the words step aside */
@container (max-width: 559px) {
	#gsl .gsl-top p { display: none; }
	#gsl .gsl-top h2 { font-size: 18px; margin-bottom: 0; }
	#gsl .gsl-vis { gap: 14px; }
	/* the tiles stay - they are the point of the band - but the icon and the
	   meter go, so the band costs the form no more height than it has to */
	/* the desktop min-width is wider than half a phone, so the second figure was
	   wrapping under the first and keeping the divider's indent with it. Here the
	   two share the band equally and stay on one line. */
	#gsl .gsl-stats { gap: 14px; flex-wrap: nowrap; }
	#gsl .gsl-stat { flex: 1 1 0; min-width: 0; }
	#gsl .gsl-stat + .gsl-stat { padding-left: 14px; }
	#gsl .gsl-day { display: none; }
	/* figure above label here: at this width the longer label runs to two lines,
	   and with the label on top that pushed its figure out of line with the other
	   one. Above it, the two figures line up whatever the labels do. */
	#gsl .gsl-stat { display: flex; flex-direction: column; }
	#gsl .gsl-fig { order: -1; font-size: 17px; margin-top: 0; }
	#gsl .gsl-lbl { margin-top: 3px; font-size: 9px; letter-spacing: .04em; gap: 5px; align-items: flex-start; }
	#gsl .gsl-lbl svg { width: 11px; height: 11px; margin-top: 1px; }
	#gsl .gsl-trust { margin-top: 0; gap: 6px; }
	#gsl .gsl-trust span { padding: 4px 9px; font-size: 10px; }
	/* a short form in a tall pane was leaving a lap of empty white above it */
	#gsl .gsl-pane { align-items: flex-start; }
	/* pinned to the right edge of a phone, this select opened its menu off the
	   screen and the language names were cut in half. On its own full-width row
	   the menu has the width of the page to open into, and it is a bigger tap. */
	#gsl .gsl-foot { gap: 12px; }
	#gsl .gsl-lang { flex: 1 1 100%; width: 100%; min-height: 40px; }

	/* A phone was being handed the whole desktop argument: a headline, two long
	   labels, a welcome line that repeats the heading above it, and five pills
	   that wrapped onto three rows. What is cut here is only ever repetition or
	   decoration - every figure and every pill is still on the page. */

	/* "km driven today" becomes "km today" at this width */
	#gsl .gsl-lbl .lbl-long { display: none; }
	#gsl .gsl-lbl .lbl-short { display: inline; }

	/* the heading already says Login, so the sentence under it says nothing */
	#gsl .gsl-sub { display: none; }
	#gsl .gsl-form h1 { margin-bottom: 18px; }

	/* one tidy line that slides, rather than three rows of wrapped pills. The
	   fade on the right is what says there is more to the side; it is painted
	   on the strip itself, so it needs no element of its own. */
	#gsl .gsl-trust {
		flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden;
		-webkit-overflow-scrolling: touch; scrollbar-width: none;
		padding-right: 22px;
		-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 26px), transparent);
		mask-image: linear-gradient(to right, #000 calc(100% - 26px), transparent);
	}
	#gsl .gsl-trust::-webkit-scrollbar { display: none; }
	#gsl .gsl-trust span { flex: none; }

	/* the band is a header here, not half the page */
	#gsl .gsl-vis { padding: 16px 16px 14px; gap: 12px; }
	#gsl .gsl-pane { padding-top: 22px; }
}

@media (prefers-reduced-motion: reduce) {
	#gsl .gsl-live, #gsl .gsl-bk:before, #gsl .gsl-ping:before, #gsl .gsl-track i { animation: none; }
	#gsl .gsl-field input, #gsl .gsl-field label, #gsl .gsl-go, #gsl .gsl-box:after { transition: none; }
}

/* cPanel > Manage Server > Branding and UI: the per-domain login screen grid */
table.cpanel-domains { width: 100%; border-collapse: collapse; margin: 4px 0 10px; }
table.cpanel-domains th { text-align: left; padding: 6px 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #7a8899; border-bottom: 1px solid #e2e8f0; }
table.cpanel-domains td { padding: 5px 8px; font-size: 13px; color: #16202c; border-bottom: 1px solid #eef2f6; vertical-align: middle; }
table.cpanel-domains td:last-child, table.cpanel-domains th:last-child { width: 70px; text-align: right; }
table.cpanel-domains .input-app-url { width: 100%; min-width: 150px; font-family: inherit; font-size: 12px; padding: 4px 7px; border: 1px solid #dde5ee; border-radius: 6px; }
table.cpanel-domains .input-app-url:focus { border-color: #2b82d4; outline: none; }
table.cpanel-domains select { font-family: inherit; font-size: 12.5px; padding: 3px 6px; border: 1px solid #dde5ee; border-radius: 6px; background: #ffffff; }
table.cpanel-domains a { color: #c0392b; font-size: 12px; text-decoration: none; }
table.cpanel-domains a:hover { text-decoration: underline; }
