:root {
    --primary-color: #7fabab;
    --primary-dark: #266e70;
    --primary-light: #4792e9;
    --primary-slider: rgba(80, 94, 94, 0.5);
    --text-light: #ffffff;
    --shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    --transition: all 0.3s ease;
}

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;500;600&display=swap');

body {
    font-family: 'Open Sans', sans-serif;
    margin: 0; 
    padding: 0;
    overflow: auto;
    min-width: 800px !important;
    min-height: 800px !important;
    width: 100vw;
    height: 100vh;
    line-height: 1.35;
}
* {
    box-sizing: border-box;
}
h1 {
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}
/*svg {
    position:absolute;
}*/
/*for hidden disabled element*/
li.ui-state-disabled { /*optgroup:has(option:disabled) {*/
    display:none;
}
.main-container {    
    position: relative;					   
    height: 100%;
    width: 100%;
    padding: 0px; 
}
.map-container {
    z-index: 1;
}
#map{
    z-index: 0;
    position: absolute;
    vertical-align: top;
    height: 100%;
    width: 100%;
}
.info { 
    padding: 6px 8px; 
    font: 14px/16px Arial, Helvetica, sans-serif;
    background: rgba(255,255,255,0.8);
    box-shadow: 0 0 15px rgba(0,0,0,0.2); 
    border-radius: 5px;
}
.info h4 { 
    text-align: left;
    margin: 0 0 5px;
    color: #777; }
.top-pane {
    z-index: 1;
    position: absolute;
    text-align: left;
    vertical-align: top;
    top: 0%;
    height: 120px;
    width: calc(100% - 70px);
    margin: 15px 60px 0px 10px;
    padding: 10px;
    background-color: var(--primary-color);
    opacity: 0.9;
    border-radius: 12px;
    left: 45px;
    box-shadow: var(--shadow);
    grid-template-columns: 250px 420px 1fr;
    gap: 15px;
}
.top-pane .top-pane-1 {
    position: absolute;
    margin-top: 5px;
    /*margin: 5px 0 0 10px;*/
    justify-content: left;
    width: 295px;/*380px;*/
    height: 100px;
}
.top-pane-1 p {
    vertical-align: top;
    text-align: left;
    color: white;
    font-size: 1.25rem;
    font-weight: bold;
    margin: 0px 0px 0px 50px;
}
.top-pane-1 img {
    height: 50px;
    width: auto;
    float: left;
}
.layer-selector-menu {
    position: relative;
    display: flex;
    align-items: center;
    width: 300px;
    padding-top: 5px;
    margin-left: 5px;
    /*gap: 10px;*/
}
.layer-selector-menu #layer-selector {
    /*left: 0%;*/
    font-size: 1rem;
    background-color: var(--primary-dark);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    color: var(--text-light);
    cursor: pointer;
    opacity: 0.9;
    padding: 8px 12px;
    transition: var(--transition);
    box-shadow: var(--shadow);
}
.layer-selector-menu #layer-selector:hover {
    opacity: 1;
    transform: translateY(-1px);
}/*
.layer-selector-menu #layer-selector-button{
    padding: 6px 10px;
    width: 220px;
}
.overflow { 
    height: 500px;
}
.layer-sel-label{
    vertical-align: middle;
    text-align: left;
    margin: 0;
    font-size: 1em;
    color: white;
}*/
.top-pane .top-pane-2 {
    position: absolute;
    justify-content: left;
    vertical-align: top;
    left: 320px; /*400px;*/
    width: 410px;
    padding-top: 5px;
    display: flex; 
    flex-direction: column;
}
.top-pane-2 .time-group {
    position: relative;
    width: 100%;
}
.time-group #time-str { 
    position: relative;
    width: 125px;
    font-size: 1em;
    border-radius: 5px;
    /*left: 40%;*/
    /*margin: 20px, 100px, 0px, 0px;*/
    /*padding: 2px ;*/
    vertical-align: middle;
    z-index: 6;
}
.time-group #time-str:hover:enabled {
    border: 2px solid rgb(38, 110, 112)
}

#time-str:active{
    border-color: rgb(38, 110, 112) !important;
    box-shadow: 0 0 0 2px rgba(23, 67, 66, 0.5) !important;
}

#time-str:focus{
    border-color: rgb(38, 110, 112) !important;
    outline: none;
    box-shadow: 0 0 0 2px rgba(23, 67, 66, 0.5) !important;
}
    

.time-group .ui_tpicker_time_input:focus {
    border-bottom:solid 1px rgb(38, 110, 112) !important;
    /*border-color: rgb(38, 110, 112) !important;
    width:95*/
}
.time-group .ui-datepicker-trigger {
    position: relative; 
    background-color: var(--primary-dark);
    color: var(--text-light);
    cursor: pointer;
    border: none;
    border-radius: 5px;
    padding: 5px;
    white-space: nowrap;
    font-size: 1.25em;
    width: 30px;
    height: 34px;
    margin-left: 5px;
    vertical-align: middle;
    content: '\f073';
    font: var(--fa-font-regular);
    transition: var(--transition);
    box-shadow: var(--shadow);
}
.time-group .ui-datepicker-trigger:hover:enabled {
    /*border: 2px solid rgb(38, 110, 112); */
    background-color: rgb(23, 67, 66)!important;
    box-shadow: 0 0 0 2px rgba(23, 67, 66, 0.5) !important;
    transform: translateY(-2px);
}
.time-group .ui-datepicker-trigger:active:focus {
    transform: translateY(0);
}
/*
.time-group .ui-datepicker-trigger:disabled {
    background-color: rgb(38, 112, 110) 
}*/
.time-group #p {
    font-size: 1.25rem;
    vertical-align: middle;
    top: 30%;
    color: white;
   /*padding: 5px 10px 0 0; /*top, right, bottom, left*/
}
.time-group button {
    position: relative;
    background-color: var(--primary-dark);
    color: var(--text-light);
    cursor: pointer;
    border: none;
    border-radius: 5px;
    padding: 5px;
    white-space: nowrap;
    font-size: 1em;
    width: 30px;
    height: 34px;
    transition: var(--transition);
    box-shadow: var(--shadow);
}
.time-group button:hover:enabled {
    background-color: rgb(23, 67, 66);
    transform: translateY(-2px);
}
.time-group button:active {
    transform: translateY(0);
}
.top-pane-2 .play-image-container {
    position: relative;
    top: 0px;
    padding-top: 5px;
    /*vertical-align: middle;
    bottom: 10px;
    width: 90%;
    height: 0%;
    padding: 5px 10px 5px 0px; /*top, right, bottom, left*/
}
.play-image-container button {
    position: relative;
    background-color: var(--primary-dark);
    color: var(--text-light);
    cursor: pointer;
    border: none;
    border-radius: 5px;
    padding: 5px;
    white-space: nowrap;
    font-size: 1em;
    width: 30px;
    height: 34px;
    transition: var(--transition);
    box-shadow: var(--shadow);
    z-index: 4;
}
.play-image-container button:hover:enabled {
    background-color: rgb(23, 67, 66);
    transform: translateY(-2px);
}
.play-image-container button:active {
    transform: translateY(0);
}
.top-pane .top-pane-3 {
    position: absolute;
    justify-content: left;
    z-index: 1;
    padding-top: 5px;
    left: 675px;
    width: calc(100% - 675px);
    height: calc(100% - 20px);
}
.top-pane .top-pane-4 {
    position: absolute;
    justify-content: left;
    z-index: 1;
}
.labelgroup { 
    position: relative;
    vertical-align: middle;
    color: white;
    width: calc(100% - 25px);
    text-align: left;
    /*display: flex;
    justify-content: flex-end;
    align-items: left;
    left: 15px;*/
}
.labelgroup span {
    display: inline-block;
}
.checkbox{ 
    height: 18px;
    width: 18px;
    padding-bottom: 5px;
    display: inline;

}
.checkbox:checked {
    background-color: var(--primary-slider);
    border-color: var(--primary-dark);
}
.checkbox:hover {
    border-color: var(--primary-light);
}
.labelText {
    vertical-align: middle;
    text-align: left;
    padding-right: 5px;
    margin: 0px;
    font-size: 1em;
    color: white;
}
#user-guide:link,:visited{ /*},:hover,:active { */
    text-decoration: none; 
    color: white;
    position:relative;
    font-size: 1.25em;
    float: right;
    padding-right: 20px;
    z-index: 9;
}
/*a:hover { text-decoration: underline; }
a:active { text-decoration: underline; }
*/
.top-pane-4 .slider-container {
    position: relative;
    vertical-align: middle;
    top: 25%;
    left: 10px;
    padding: 0 10px; 
    width: calc(100% - 25px);
    display: flex;
    flex-direction: column
}
.slider-container #slider-1 {
    position: relative;
    background: var(--primary-slider); /*rgba(80, 94, 94, 0.5);*/
    border: none;
    height: 10px;
    border-radius: 3px;
}
.slider-container #slider-1 .ui-slider-handle {
    width: 25px; /* Set a specific slider handle width */
    height: 25px; /* Slider handle height */
    background: var(--primary-light);
    cursor: pointer; /* Cursor on hover */
    border: 4px solid white;
    border-radius: 50%;
    /*transition: var(--transition);*/
    top: -9px;
    outline: none;
}
.slider-container #slider-1 .ui-slider-handle:hover {
    transform: scale(1.1);
}
#tickmarks {
    display: flex;
    bottom: 0;
    padding-top: 5px;
    position: relative;
}
#tickmarks div::before {
    border: 0px solid #ffffff; /*2*/
    background-color: #ffffff;
    content: '';
    position: absolute;
    height: 20px;
    width: 8px;
    border-radius: 3px;
    top: 2px;
    border: 0 solid transparent;
    box-shadow: inset 0 -1px 0 rgb(0 0 0 / 15%);
    box-sizing: border-box;
    font-size: .8rem;
    transform: translateY(-23px);
    pointer-events: none;
    -webkit-box-shadow: inset 0 -1px 0 rgb(0 0 0 / 15%);
    -webkit-box-sizing: border-box;
}
#tickmarks div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

@media only screen and (min-width: 1350px) {
    body {
        width: 100%;
        overflow: hidden;
    }
    .top-pane {
        height: 120px;
    }
    .top-pane .top-pane-3 {
        padding-top: 5px;
        left: 730px;
        width: calc(100% - 730px);
        height: 50px;
    }
    .top-pane .top-pane-4 {
        left: 730px;
        top: 50px;
        width: calc(100% - 730px);
        height: calc(100% - 70px);
    }
    .labelgroup { 
        left: 15px;
    }
    .legend {
        top: 135px;
        height: calc(100% - 180px);
    }
    .close-y {
        top: 120px;
    }
}
@media only screen and (min-width: 1000px) and (max-width: 1349px) {
    body {
        width: 100%;
        overflow: hidden;
    }
    .top-pane {
        height: 190px;
    }
    .top-pane .top-pane-3 {
        padding-top: 5px;
        left: 720px;
        width: calc(100% - 720px);
    }
    .top-pane .top-pane-4 {
        top: 120px;
        width: calc(100% - 20px);
        height: 50px;
    }
    .labelgroup { 
        left: 15px;
    }
    .legend {
        top: 205px;
        height: calc(100% - 260px);
    }
    .close-y {
        top: 190px;
    }
}
@media only screen and (min-width: 800px) and (max-width: 999px) {
    body {
        width: 100%;
        overflow: hidden;
    }
    .top-pane {
        height: 190px;
    }
    /*.top-pane .top-pane-2 {
        padding-bottom: 0px;     
    }*/
    .top-pane .top-pane-3 {
        top: 80px; /*!important;*/
        left: 320px;
        height: 30px;
        width: calc(100% - 320px);
        /*left: 20px;
        width: calc(100% - 20px);
        position: relative;
        */
    }
    /*.labelgroup { 
        left: 230px;
        width: calc(100% - 255px);
    }*/
    #user-guide{
        right:10px;
    }
    .top-pane .top-pane-4 {
        top: 125px;
        left: 15px;
        width: calc(100% - 20px);
        height: 50px;
    }
    .legend {
        top: 210px;
        height: calc(100% - 260px);
    }
    .close-y {
        top: 190px;
    }
}
@media only screen and (max-width: 799px){
    body {
        width: 100%; /* 800px;*/
        overflow:auto;
    }
    html{
        width: 800px;
    }
    .top-pane {
        height: 190px;
    }
    .top-pane .top-pane-3 {
        top: 80px;/* !important;*/
        left: 320px;
        height: 30px;
        width: calc(100% - 320px);
        /*left: 20px;
        width: calc(100% - 20px);*/
    }
    /*.labelgroup { 
        left: 230px;
        width: calc(100% - 255px);
        overflow: hidden;
    }*/
    #user-guide{
        right:10px;
    }
    .top-pane .top-pane-4 {
        top: 125px;
        left: 15px;
        width: calc(100% - 20px);
        height: 50px;
    }
    .legend {
        top: 210px;
        height: calc(100% - 260px);
    }
    .close-y {
        top: 190px;
    }
}
@media only screen and (max-height: 800px) {
    body {
        height: 100%;
        overflow:auto;
    }
    html{
        height: 800px;
    }
}
.legend {
    z-index: 2;
    flex-direction: column;
    align-items: center;
    position: absolute;
    right: 12px;
    width: 29px;
    background-color: grey;
    border-radius: 50px;
    text-align: center;
    /*display: flex;
    top: 160px;
    height: calc(100% - 200px); */
}
.legend span {
    color: white;
    font-size: 13px;
    padding-top: 1px;
}
.stir_legend{
    line-height: 21px; /*24*/
    background: rgba(255,255,255,0.8);
    padding: 5px 5px;
    color: black;
    opacity: 0.75;
    font-size: 1rem;
    right: 50px; 
    border-radius: 5px;
}
.stir_legend i {
    width: 24px;
    height: 3px;
    float: left;
    margin-top: 10px;
    margin-left: 10px;
    position: relative;
    opacity: 1.0;
    vertical-align: middle;
}

.sigConv_legend {
    line-height: 18px;
    /*background : #dddddd;*/
    background: rgba(216,239,253,0.8);
    padding: 5px 5px;
    /*color: #555;*/
    color: black;
    font-size: 0.8rem;
    border-radius: 5px;
}
.sigConv_legend i {
    width: 18px;
    height: 18px;
    float: left;
    margin-right: 8px;
    opacity: 0.75;
}

.colorbar {
    display: block;
    width: 100%;
    height: 95%;
    border-radius: 50px;
}
.colorbar span {
    width: 50%;
    display: flex;
    margin: auto;
    justify-content: center;
    align-items: center;
    color: white;
}

.controlBtn>div {
	float: left;
	margin: 0 10px 0 0;
	cursor: pointer;
	/*width: 18px;
	height: 18px;
	background-position-y: -18px;*/
}
.controlBtn {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 0.2rem;
    background-color: rgb(38, 112, 110);
    color: white;
    border: 1px solid #caced1;
    width: 30px;
}
.controlBtn:hover:enabled {
    background-color: rgb(23, 67, 66);
}
    /*border: 1px solid #000000;
    background-color: #666666;
	background-position-y: 0px;*/
.paneSwitch{
    position: absolute;
    width: 1.75em;
    height: 1.5em;
    color: white;
    background-color: rgb(38, 110, 112);
    border: none;
    font-size: 15px;
    border-radius: 30px;
    text-align: center;
    vertical-align: center;
    cursor: pointer;
    z-index: 5;
    left: 50%;
}
.open-y{
    top: 5px;
}
.colourBlack {
    color:black
}
.colourRed {
    color:red
}
.colourBlue {
    color:blue
}
.colourGreen {
    color:green
}
.colourOrange {
    color:orange
}

.leaflet-hurricane-icon {
    font-size: 1.5em;
}
/* Hurricane icon styles */
.leaflet-hurricane-icon-hour- {
    font-size: 1.5em;
    color: #ff9999;
}
.leaflet-hurricane-icon-hour-0 {
    color: #cc0000;
    font-size: 2em;
}
.leaflet-hurricane-icon-hour-1 {
    color: #ff6666;
    font-size: 1.5em;
}
.leaflet-hurricane-icon-hour-3 {
    color: #ff8080;
    font-size: 1.5em;
}
.leaflet-hurricane-icon-hour-6 {
    color: #ff9999;
    font-size: 1.5em;
}
.leaflet-hurricane-icon-hour-12 {
    color: #ffb3b3;
    font-size: 1.5em;
}
.leaflet-hurricane-icon-hour-24 {
    color: #ffb3b3;
    font-size: 1.5em;
}

.leaflet-hurricane-icon-type- {
    color: #000000;
    font-size: 1.5em;
}
.leaflet-hurricane-icon-type-TD {
    color: #000000;
    font-size: 1.5em;
}
.leaflet-hurricane-icon-type-TS {
    color: #009900;
    font-size: 1.5em;
}
.leaflet-hurricane-icon-type-STS {
    color: #0000FF;
    font-size: 1.5em;
}
.leaflet-hurricane-icon-type-TY {
    color: #FF0000;
    font-size: 1.5em;
}
.leaflet-hurricane-icon-type-STY {
    color: #FF66CC;
    font-size: 1.5em;
}
.leaflet-hurricane-icon-type-SUTY {
    color: #993366;
    font-size: 1.5em;
}

/* SigConv Legend Styles */
.sigConv-legend-item {
    display: flex;
    align-items: center;
}

.sigConv-legend-color {
    width: 18px;
    height: 18px;
    margin-right: 8px;
    display: inline-block;
}

.sigConv-legend-color-250 { background-color: #FED976; }
.sigConv-legend-color-300 { background-color: #FEB24C; }
.sigConv-legend-color-350 { background-color: #FD8D3C; }
.sigConv-legend-color-400 { background-color: #FC4E2A; }
.sigConv-legend-color-450 { background-color: #E31A1C; }
.sigConv-legend-color-500 { background-color: #BD0026; }
.sigConv-legend-color-550 { background-color: #800026; }

.sigConv-legend-text {
    font-size: 0.8rem;
    color: black;
}

/* Position Info Control Styles */
.position-info-container {
    padding: 6px 8px;
    font: 14px/16px Arial, Helvetica, sans-serif;
    background: rgba(255,255,255,0.8);
    box-shadow: 0 0 15px rgba(0,0,0,0.2);
    border-radius: 5px;
}

.position-info-title {
    text-align: left;
    font-weight: bold;
    margin: 0 0 5px;
    color: #777;
}

.position-info-coordinate {
    font-weight: bold;
    margin-bottom: 5px;
}

.position-info-distance {
    font-weight: bold;
}
.hidden { 
    display: none; 
}
