div.ais-icon {
   width:10px;height:20px; 
   margin-top:-10px;margin-left:-5px;
}

div.ais-icon path {
    fill-opacity:0.8;
    stroke-opacity:1;
    stroke-width:4px;
}


div.ais-icon.cargo path {
    fill: #90ee90;
    stroke: #108010;
}

div.ais-icon.tanker path {
    fill: #ff3e3e;;
    stroke: #8f0013;
}

div.ais-icon.passenger path {
    fill: #3e3eff;
    stroke: #13008f;
}

div.ais-icon.hsc path {
    fill: #ffff3e;
    stroke:  #d0d032;
}

div.ais-icon.tug path {
    fill:#00ffff;
    stroke:#3e8f8f;
}

div.ais-icon.fishing path {
    fill:#ffa07a;
    stroke:#8f503a;
}

div.ais-icon.pleasure path {
    fill:#ff3eff;
    stroke: #8f008f;
}


div.ais-icon.other path {
    fill: #e3e3e3;
    stroke: black;
}

div.ais-icon.noship path {
    fill: #d3d3d3;
    stroke: black;
}

div.ais-icon.own path {
    fill: #ffffff;
    stroke: #707070;
    fill-opacity:1;
    stroke-opacity:1;
}


div.ais-icon.navaid path {
    fill: #f3b617;
    stroke: #f17a06;
    fill-opacity:1;
    stroke-opacity:1;
}


div.ais-icon.angle0 svg {
	transform:rotate(0deg);
}

div.ais-icon.angle1  svg {
	transform:rotate(10deg);
}

div.ais-icon.angle2  svg {
	transform:rotate(20deg);
}

div.ais-icon.angle3  svg {
	transform:rotate(30deg);
}

div.ais-icon.angle4  svg {
	transform:rotate(40deg);
}

div.ais-icon.angle5  svg {
	transform:rotate(50deg);
}

div.ais-icon.angle6  svg {
	transform:rotate(60deg);
}

div.ais-icon.angle7  svg {
	transform:rotate(70deg);
}

div.ais-icon.angle8  svg {
	transform:rotate(80deg);
}

div.ais-icon.angle9  svg {
	transform:rotate(90deg);
}

div.ais-icon.angle10  svg {
	transform:rotate(100deg);
}

div.ais-icon.angle11  svg {
	transform:rotate(110deg);
}

div.ais-icon.angle12  svg {
	transform:rotate(120deg);
}

div.ais-icon.angle13  svg {
	transform:rotate(130deg);
}

div.ais-icon.angle14  svg {
	transform:rotate(140deg);
}

div.ais-icon.angle15  svg {
	transform:rotate(150deg);
}

div.ais-icon.angle16  svg {
	transform:rotate(160deg);
}

div.ais-icon.angle17  svg {
	transform:rotate(170deg);
}

div.ais-icon.angle18  svg {
	transform:rotate(180deg);
}

div.ais-icon.angle19  svg {
	transform:rotate(190deg);
}

div.ais-icon.angle20  svg {
	transform:rotate(200deg);
}

div.ais-icon.angle21  svg {
	transform:rotate(210deg);
}

div.ais-icon.angle22  svg {
	transform:rotate(220deg);
}

div.ais-icon.angle23  svg {
	transform:rotate(230deg);
}

div.ais-icon.angle24  svg {
	transform:rotate(240deg);
}

div.ais-icon.angle25  svg {
	transform:rotate(250deg);
}

div.ais-icon.angle26  svg {
	transform:rotate(260deg);
}

div.ais-icon.angle27  svg {
	transform:rotate(270deg);
}

div.ais-icon.angle28  svg {
	transform:rotate(280deg);
}

div.ais-icon.angle29  svg {
	transform:rotate(290deg);
}

div.ais-icon.angle30  svg {
	transform:rotate(300deg);
}

div.ais-icon.angle31  svg {
	transform:rotate(310deg);
}

div.ais-icon.angle32  svg {
	transform:rotate(320deg);
}

div.ais-icon.angle33  svg {
	transform:rotate(330deg);
}

div.ais-icon.angle34  svg {
	transform:rotate(340deg);
}

div.ais-icon.angle35  svg {
	transform:rotate(350deg);
}

div.ais-icon.angle36  svg {
	transform:rotate(0deg);
}

div.ais-icon.hide path {
    fill-opacity:0.3;stroke-opacity:0.5;
}

div.ais-icon.nodata::after {
    width: 3px;
    height: 3px;
    content:"";
    background-color: red;
    display: inline-block;
    position:relative;
    top:-100%;
}




@media only screen and (max-height:800px) {
div.ais-icon {
    width: 8px;height: 16px;
   margin-top:-8px;margin-left:-4px;
}
}

div.optimize-dialog input:invalid {
    border: 1px solid #ff0000;
    backgroud-color:#fff0f0;
}

div.optimize-dialog {
    margin:0.5em;
}
textarea, input:not([type]), input[type=password], input[type=text], input[type=date], input[type=email], input[type=number] {
    background-color: #fff;
    border: 1px solid #aaa;
    border-radius: 3px;
    -webkit-transition: border-color .05s;
    -moz-transition: border-color .05s;
    -ms-transition: border-color .05s;
    transition: border-color .05s;
}

textarea, input:not([type]), input[type=password], input[type=text], input[type=date], input[type=email], input[type=number] {
    display: inline-block;
    margin: 0.1em;
    margin-right: 0.5em;
    color: rgba(0,0,0,.5);
    padding: 0.2em;
    -webkit-appearance: none;
}

label {
    margin: 0.1em;
    margin-right: 0.5em;
}

label.ml {
    margin-left: 0.5em;
    margin-right: 0.1em;
}

input.ml,textarea.ml {
    margin-left: 0.5em;
    margin-right: 0.1em;
}


/* Buttons */
button {
    margin-left: 2px;
    margin-top: 3px;
    margin-bottom: 3px;
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    font-stretch: normal;
    display: block;
}

button.h2i-icon::before {
    font-family: FontAwesome;
    font-size: 14px;
}

button.h2i-green {
    color: #089637;
}

button.h2i-green:hover {
    color: #07BD43;
}

button.h2i-red {
    color: #B50E0E;
}

button.h2i-red:hover {
    color: #B31603;
}


button.h2i-grey {
    color: #C0C0C0;
}

button.h2i-grey:hover {
    color: #B0B0B0;
}

button.h2i-icon.h2i-ok::before {
    content: "\f00c";
}

button.h2i-icon.h2i-reload::before {
    content: "\f021";
   
}

button.h2i-icon.h2i-cancel::before {
    content: "\f05e";
}

button.h2i-icon.h2i-save::before {
    content: "\f0c7";
}

button.h2i-icon.h2i-prev::before {
    content: "\f04a";
}

button.h2i-icon.h2i-next::before {
    content: "\f04e";
}

button.h2i-icon.h2i-undo::before {
    content: "\f0e2";
}

button.h2i-icon.h2i-cut::before {
    content: "\f0c4";
}

button.h2i-icon.h2i-clone::before {
    content: "\f24d";
}

button.h2i-icon.h2i-plus::before {
    content: "\f067";
}

button.h2i-icon.h2i-edit::before {
    content: "\f044";
}

button.h2i-icon.h2i-new::before {
    content: "\f016";
}


button.h2i-icon.h2i-close::before {
    content: "\f004";
}

button.h2i-icon.h2i-trash::before {
    content: "\f1f8";
}


span.spacer, div.spacer {
    display:inline-block;
}


img.indicator {
    -webkit-transition: transform 2s;
    transition: transform 2s;
}

/*div.h2i-control-loader-progressdata {
    position:relative;
}
*/

div.h2i-control-loader-progressdata:before {
    content: attr(data-label);
    font-size: 0.8em;
    vertical-align: 0;
    position: absolute;
    left: 0;
    right: 0;
    text-align: center;
    font-weight: bolder;
}

@media only screen  and (max-height:800px) {

button.h2i-icon::before {
    font-size: 11px;
}

}
div.h2i-control-wmslist a.h2i-control-wmslist-a {
    width: 95%;
    height: 1em;
    line-height:1;
}

div.h2i-control-datetime {
    background: white;
}

div.h2i-control-datetime a {
    height: 20px;
    line-height:20px;
}

div.h2i-control-datetimeperiod-button a {
    width: 24px !important;
    height: 24px !important;
    line-height: 24px !important;
}

div.easy-button-container button.easy-button-button  {
    width: 24px;
    height: 22px;
    line-height: 21px;
}
/* Rules for modal dialogs */

.modal-content {
    background: rgba(0,0,0,0.50) !important;
    position: fixed;
    overflow: auto;
    top: 0;
    left: 0;
    right: 0;
    opacity: 0;
    bottom: 0;
    z-index: 99999;
    pointer-events: none;
}

.modal-content.active {
    height: auto;
    bottom: 0;
    opacity: 1;
    pointer-events: all;
}

.modal-content.animate {
    -webkit-transition: all .125s;
    -moz-transition: all .125s;
    -ms-transition: all .125s;
    transition: all .125s;
}


.modal-content .modal-body {
    border-radius: 3px;
    overflow: hidden;
    float: none;
    background-color: white;
    font-size: 14px;
}

.modal-content .modal-container {
    margin: 3px;
    border: 1px solid #aaa;
    border-radius: 3px;
    min-width: 60px;
    min-height: 80px;
    margin-top: 25px;
}

.modal-content .center {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.modal-content .upper {
    position: absolute;
    left: 50%;
    top: 25%;
    transform: translate(-50%, -50%);
}

.modal-content .lower {
    position: absolute;
    left: 50%;
    top: 75%;
    transform: translate(-50%, -50%);
}


@media only screen and (max-height:800px) {

.modal-content .modal-body {
    font-size: 12px;
}

}
div.passplan {
    width: 23em;
    margin-left: 0.5em;
    margin-right: 0.3em;
    height: 25em;
}

div.passplan span.data {
    font-style: oblique;
    font-weight: bold;
    font-size:110%;
    text-align:right;
    display: inline-block;
}

div.passplan span.latlon,div.coords span.latlon {
    font-style: oblique;
    font-weight: bold;
    width: 5.7em;
    text-align: right;
    display: inline-block;
    border: thin solid #aaa;
    border-radius: 3px;
    padding-left: 0.1em;
    padding-right: 0.2em;
    margin-left: 0.5em;
    font-size: 100%;
}

div.passplan span.type {
    font-style: oblique;
    font-weight: normal;
    font-size:100%;
    text-align:left;
    display: inline-block;
}


div.passplan .navData .data {
/*    width: 3.3em; */
    text-align: right;
    display: inline-block;
/*    border: thin solid #aaa;
    border-radius: 3px;
    padding-left: 0.1em;
    padding-right: 0.2em;
    margin-left: 0.5em;
*/    
}

div.passplan div.nextWP, div.passplan div.prevWP, div.passplan div.navData, div.passplan div.fixData,div.passplan div.prevData {
    margin-top: 0.3em;
    margin-bottom: 0.3em;
    border: thin solid #aaa;
    border-radius: 5px;
    padding-left: 0.3em;
}

div.passplan div.fixData,div.passplan div.prevData {
    position:relative;
    margin-top:1em;   
}

div.fixData .title, div.prevData .title, div.navData .title {
    position:absolute;
    top:-0.8em;
    right:0.4em;
    background:#f3f3f3;
    border:1px solid #cca;
    border-radius: 3px;
    padding-left:0.4em;
    padding-right:0.3em;
    font-size:85%;
    font-weight:bold;
}



div.passplan div.navData {
    margin-top: 0.3em;
    margin-bottom: 0.3em;
}

div.passplan div.destination {
    margin-bottom: 0.3em;
    border: thin solid #aaa;
    border-radius: 5px;
    padding-left: 0.3em;
}

div.passplan-edit-marker {
    background-color: #fff;
    border-width:2px;
    border-style: solid;
    border-radius: 4px;
}

div.passplan span.distance {
    width: 3.1em;
}

div.passplan span.ETA.data.h {
    width: 1.8em;
}

div.passplan span.ETA.data.m {
    width: 1.3em;
}

div.passplan span.ETA.data.m {
    width: 1.3em;
}

div.passplan span.nextWP.wpnum,div.passplan span.prevWP.wpnum {
    width: 1.8em;
}

div.passplan span.title {
    width: 13.6em;
    background-color: #f8f8f8;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-style: oblique;
    font-weight: normal;
    margin-bottom: 0em;
    text-align: left;
    vertical-align:bottom;
}


div.passplan div.passplan-toolbar {
    width: 100%;
    height: 29px;
    margin: 5px;   
    background-color: #fafafa;
}

div.passplan div.passplan-tablezone {
    width: 100%;
    height: calc( 100% - 39px );
    background-color: #f5f5fe;
}


div.modal-body div.waypoint-editor {
    line-height: 1.5;
    padding: 0.4em;
}

div.waypoint-editor div.h2i-gear-buttons {
    height:29px;
    margin-top:5px;
}

div.coords span.latlon.time {
    width: 3.3em;
    padding-right: 0.4em;
}

div.coords span.latlon.date {
    margin-right: 1.3em;
}

div.coords span.loc {
    display:block;
}

form.waypoint input.latlng {
    width: 5.7em;
}

form.waypoint input.title {
    width: 17.1em;
}


form.waypoint span.wpNum {
    width: 1.7em;
    font-style: oblique;
    font-weight: bold;
    font-size:110%;
    text-align:right;
    display: inline-block;
    border:1px solid #aaa;
    border-radius: 3px;
    padding-right: 0.2em;
    color: rgba(0,0,0,.5);    
}

form.waypoint input {
    font-weight: bold;
    color: black;
}

form.waypoint input:invalid { 
    background-color: rgba(255,0,0,0.25); 
}
form.waypoint .submitted input:valid { 
    background-color: rgba(0,255,0,0.25); 
}
form.waypoint .submitted input:invalid:after { 
    content: ' ⨉';
    color: rgba(255,0,0,0.5);
    font-weight:bold;
    font-size:85%;
 }
form.waypoint .submitted input:valid:after { 
    content: ' ✓'; 
    color: rgba(0,255,0,0.5);
    font-weight:bold;
    font-size:85%;
}

div.modal-container div.h2i-buttons {
    margin-top: 0.3em;
    padding-top: 0.2em;
    border-top: 1px #aaa solid;
    height: 2.2em;
}

div.modal-container div.warn {
    margin:0.2em;
}

div.warn h1 {
    color:red;
}


@media only screen and (max-height:800px) {

.h2i-tabbedpane {
    font-size: 10px;
}

.h2i-tabbedpane label {
    line-height: 12px;
}

.leaflet-bar button, .leaflet-bar button:hover {
    width: 24px;
    height: 24px;
    line-height: 24px;
    font-size: 11px;
}

.leaflet-bar, .leaflet-control-layers {
    font-size: 11px;
    line-height: 15px;
}

.h2i-control-wmslist {
    min-width: 100px;
    font-size: 10px;
}

.h2i-control-wmslist a {
    font-size: 11px;
}

div.h2i-data-popup {
    font-size: 11px;
}


button {
    padding: 1px 3px;
}



}
canvas.h2i-canvas {
    opacity:0.5;
    position:absolute;
    top:0;left:0;
}

div.h2i-canvas-container {
    position:absolute;
    top:0;left:0;
    z-index:2;
}


div.h2i-control-legend.leaflet-bar {
    width: 169px;
    padding: 5px 3px 2px 3px;
    overflow: hidden;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    background:white;
}

div.leaflet-control:not(.leaflet-bar) {
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}

div.h2i-data-popup {
    line-height: 124%;
    padding: 2px;
    border-radius: 3px;
    border: 1px #ccc solid;
}

div.h2i-data-popup div.data {
    border-top: 1px #ccc solid;
    margin-top: 3px;
    padding: 2px;
    padding-left: 7px;
}

div.h2i-data-popup div.header {
    padding-left: 4px;
    font-style: italic;
}

div.h2i-data-popup div.header span {
    font-style: normal;
    font-weight: bolder;
}

div.h2i-data-popup div.data {
    line-height: 1.5;
}

div.h2i-data-popup div.data span {
    font-weight: bold;
}

div.h2i-data-popup div.data span:first-child {
    margin-left: 1.2em;
}
/* styles for underway widgets */

div.h2i-control-infopane.vessel div.h2i-tabbedpane {
    background-color: #5a5757;
}

div.h2i-control-infopane.vessel .h2i-tabbedpane input:checked + div {
    background: #7d7a7a;
    border-bottom-color: #7d7a7a;
    color: white;
    font-weight: bold;
}

div.h2i-control-infopane.vessel .h2i-tabbedpane .h2i-content {
    background-color: #5a5757;
}

div.h2i-control-infopane.vessel .h2i-tabbedpane span.loc {
    color: #1ef708;
}

div.compass, div.speedometer {
    float: right;
    width: 102px;
    height:118px;
    background-image: url('/images/compass-back-1.svg');
    background-size: 100%;
    padding-top: 0.3em;
    padding-left: 0.3em;
}

div.compass div.bearing {
    position:relative;
    top:calc( -47% - 1em);
    left: calc( 48% - 1.3em);
    background-color: #716a6a;
    width: 2.7em;
    padding: 0 0.1em 0 0.1em;
    border-radius: 4px;
    text-align: center;
    color: #1ef708;
    font-weight: bold;
    font-size: 12px;
    cursor: default;
}

div.speedometer div.speed {
    position:relative;
    top: calc( -22% - 1em);
    left: calc( 48% - 1.3em);
    width: 2.7em;
    padding: 0 0.1em 0 0.1em;
    text-align: center;
    font-weight: bold;
    font-size: 12px;
    color: #1ef708;
    cursor: default;
}

div.speedometer div.needle {
    position:relative;
    top:calc( -107%);
    left:0;
}

div.speedometer img,div.compass img {
    width:95px;
    height:95px;
}

div.buttons {
    float: left;
    padding: 12px 16px 17px 16px;
    background-size: 100%;
    background-repeat: no-repeat;
    background-image: url('/images/compass-back-1.svg');
}

button.panel {
    display: block;
    margin: 0.3em 0.2em 0.1em 0.2em;
    background: #7d7a7a;
    color: #0b5604;
}

div.buttons button.panel {
    width: 5.4em;
}

button.panel:hover {
    color: #1ef708;
    background: #7d7a7a;
}

button.panel::before {
    font-family: FontAwesome;
    font-size: 11px;
}

button.panel.speed::before {
    content: '\f0e4  ';
}

button.panel.bearing::before {
    content: '\f14e  ';
}

button.panel.all::before {
    content: '\f14e /\f0e4  ';
}

button.panel.position::before {
    content: '\f05b';
}

button.panel.fix::before {
    content: '\f192';
}

button.panel.fix,button.panel.position {
    display:inline-block;
}


form.waypoint input.speed {
    width: 3.3em;
}

form.waypoint input.bearing {
    width: 3.3em;
}

form.waypoint input.time {
    width: 3.1em;
}

form.waypoint span.date {
    width: 5.7em;
    display:inline-block;
    font-size:110%;
    font-weight: bold;
    text-align:right;
    border:1px solid #aaa;
    border-radius: 3px;
    padding-right: 0.2em;
    margin-left: 0.4em;
    margin-right: 0.2em;
    cursor: text;
}


@media only screen and (max-height: 800px) {

div.buttons button.btn {
    height: 22px;
    padding: 1px 2px;
    min-width: 22px;
    font-size: 10px;
}

div.compass, div.speedometer {
    width: 75px;
    height: 85px;
    padding-left: 0.0em;
}

div.speedometer img,div.compass img {
    width:75px;
    height:75px;
}


div.speedometer div.needle {
    top:calc( -125%);
}

div.compass div.bearing {
    top:calc( -50% - 1em);
    left: calc( 50% - 1.3em);
}

div.speedometer div.speed {
    left: calc( 50% - 1.3em);
}

div.h2i-control-infopane.vessel .h2i-tabbedpane span.loc {
    min-width:24em;
}


}
