/* stylesheet for RASP NETHERLANDS */

textarea {background-color: #ffffff;
		font-family: verdana,arial,helvetica;
		font-size: 8pt
}

.optionBoldBlue {
	font-weight: bold;
	color: blue;
	font-size: 90%;
}

.optionBoldRed {
	font-weight: bold;
	color: red;
	font-size: 90%;
}

html { height: 100% }

body { 
  height: 100%; 
  margin: 0px; 
  padding: 0px;
  font-size: -moz-calc(0.4+1vmin);
  font-size: -webkit-calc(0.4+1vmin);
  font-size: calc(0.4+1vmin);
}

tr {
    height:14px;
    line-height: 15px;
}

b {
	font-size: 90%;
}

.selectorsTable {
	border: none;
	border-spacing: 0;
	padding: 1px;
}

.raspmain {
	border: none;
	border-spacing: 0;
	padding: 0;
}

.maincolleft {
   width: 10%;
}

.maincolright {
	width: 90%;
}

.paramoptions {
	font-size: 70%;
}

.spinBox{
  position      : relative;
  display       : inline-block;
  padding-right : 0.875em;
  border-radius : 0.25em;
  box-shadow    : 0 0.0625em 0 rgba(255,255,255,0.5);
}

.spinBox input{
  display                   : block;
  width                     : 50px;
  height                    : 1.5625em;
  padding                   : 0 0.25em;
  border                    : 0.0625em solid rgb(224,224,224);
  border-right              : none;
  border-top-left-radius    : 0.25em;
  border-bottom-left-radius : 0.25em;
  color                     : rgb(64,64,64);
  font-family               : inherit;
  font-size                 : 1em;
  text-align                : right;
  box-shadow                : 0 0.125em 0.125em rgba(0,0,0,0.03125) inset;
}

.spinBox input[disabled]{
  background : rgb(240,240,240);
}

.spinBoxUp,
.spinBoxDown{
  position         : absolute;
  right            : 0;
  display          : block;
  width            : 0.75em;
  height           : 0.75em;
  border           : 0.0625em solid rgb(224,224,224);
  background       : rgb(248,248,248);
  background-image : -webkit-linear-gradient(rgb(248,248,248),rgb(240,240,240));
  background-image :         linear-gradient(rgb(248,248,248),rgb(240,240,240));
  cursor           : pointer;
}

.spinBox input[disabled] + span,
.spinBox input[disabled] + span + span{
  background : rgb(240,240,240);
  cursor     : auto;
}

.spinBoxUp span,
.spinBoxDown span{
  display : block;
  width   : 0.75em;
  height  : 0.75em;
}

.spinBoxUp{
  top                     : 0;
  border-top-right-radius : 0.25em;
}

.spinBoxUp span{
  background : url('../img/arrow-up.png') no-repeat center center;
}

.spinBoxDown{
  bottom                     : 0;
  border-bottom-right-radius : 0.25em;
}

.spinBoxDown span{
  background : url('../img/arrow-down.png') no-repeat center center;
}

/* Tooltip container */
.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
}

/* Tooltip text */
.tooltip .tooltiptext {
  visibility: hidden;
  width: 135px;
  background-color: #ffffe6;
  color: #000;
  text-align: center;
  padding: 5px 0;
  border-radius: 6px;
  box-shadow: 3px 3px;
  /* Position the tooltip text */
  position: absolute;
  z-index: 1;
  bottom: 125%;
  left: 50%;
  margin-left: -60px;

  /* Fade in tooltip */
  opacity: 0;
  transition: opacity 0.3s;
}

/* Tooltip arrow */
.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #ffffe6 transparent transparent transparent;
}

/* Show the tooltip text when you mouse over the tooltip container */
.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}

div#paramTooltip:hover:before {
    content: attr(data-tooltip);
    position: absolute;
  	width: 55%;
    padding: 5px 10px;
    /*margin: 25px 10px 20px 290px;*/
    margin: 10px 10px 20px 10px;
    background: #ffffe6;
    color: black;
    border-radius: 6px;
    box-shadow: 3px 3px;
    overflow-wrap: break-word;
  	z-index: 1200;
	font-family:Arial;
  	font-size:14px;	
}

div:#paramTooltip:hover:after {
    content: '';
    position: absolute;
    margin: 6px 0 0 3px;
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-right: 10px solid orange;
    border-bottom: 5px solid transparent;
}

#loading-indicator {
 position:absolute;  
 top:50%;  
 left:50%;  
 margin:-100px 0 0 -100px;  
 width:100px;  
 height:100px;  
}

div#osmcredits {
   position: fixed;
   left: 0;
   right: 0;
   bottom: 0;
   width: 100%;
   height: 48px;
   margin: 0;
   padding: 6px;
   z-index: 1000;
   background: transparent;
   max-width:380px;
   cursor: pointer;
   font-family: Product Sans, Relish, Helvetica, Arial, sans-serif; 
}

.myButton {
	-moz-box-shadow:inset 0px 1px 0px 0px #bbdaf7;
	-webkit-box-shadow:inset 0px 1px 0px 0px #bbdaf7;
	box-shadow:inset 0px 1px 0px 0px #bbdaf7;
	background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #79bbff), color-stop(1, #378de5));
	background:-moz-linear-gradient(top, #79bbff 5%, #378de5 100%);
	background:-webkit-linear-gradient(top, #79bbff 5%, #378de5 100%);
	background:-o-linear-gradient(top, #79bbff 5%, #378de5 100%);
	background:-ms-linear-gradient(top, #79bbff 5%, #378de5 100%);
	background:linear-gradient(to bottom, #79bbff 5%, #378de5 100%);
	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#79bbff', endColorstr='#378de5',GradientType=0);
	background-color:#79bbff;
	-moz-border-radius:6px;
	-webkit-border-radius:6px;
	border-radius:6px;
	border:1px solid #84bbf3;
	display:inline-block;
	cursor:pointer;
	margin: 1px;
	color:#ffffff;
	font-family:Arial;
	font-size:14px;
	font-weight:bold;
	padding:3px 24px;
	text-decoration:none;
	text-shadow:0px 1px 0px #528ecc;
	white-space: nowrap;
}
.myButton:hover {
	background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #378de5), color-stop(1, #79bbff));
	background:-moz-linear-gradient(top, #378de5 5%, #79bbff 100%);
	background:-webkit-linear-gradient(top, #378de5 5%, #79bbff 100%);
	background:-o-linear-gradient(top, #378de5 5%, #79bbff 100%);
	background:-ms-linear-gradient(top, #378de5 5%, #79bbff 100%);
	background:linear-gradient(to bottom, #378de5 5%, #79bbff 100%);
	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#378de5', endColorstr='#79bbff',GradientType=0);
	background-color:#378de5;
}
.myButton:active {
	position:relative;
	top:1px;
}
.myButton.disabled {
	background: linear-gradient(to bottom, #b8b8b8 5%, #888888 100%);
	background-color: #b8b8b8;
	cursor: not-allowed;
	opacity: 0.6;
	pointer-events: none;
}

.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 22px;
}

.switch input { 
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 16px;
  width: 16px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slider {
  background-color: #2196F3;
}

input:focus + .slider {
  box-shadow: 0 0 1px #2196F3;
}

input:checked + .slider:before {
  -webkit-transform: translateX(32px);
  -ms-transform: translateX(32px);
  transform: translateX(32px);
}

/* Rounded sliders */
.slider.round {
  border-radius: 16px;
}

.slider.round:before {
  border-radius: 50%;
}

.disclaimer {
  font-size: small;
  width: 290px;
}

.sidebarhelp {
  width: 290px;
}

.prev-wrapper img {
	position:absolute;
	top: 0;
	bottom:0;
	left: 10px;
	right:0;
	width: 30px;
	height: 30px;
	z-index: 100;
}

.next-wrapper img {
	position:absolute;
	top: 0;
	bottom:0;
	left: 0;
	right:0;
	width: 30px;
	height: 30px;
	z-index: 100;
}

/* Prev/next time-slot step buttons in the title bar */
.time-nav-btn {
    position: absolute;
    top: 0;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100;
    cursor: pointer;
    color: #fff;
    font-size: 13px;
    text-decoration: none;
    background: rgba(0, 0, 0, 0.45);
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,0.55);
    box-sizing: border-box;
}
.time-nav-btn:hover { background: rgba(43, 124, 187, 0.80); }
#prev-time-btn { left: 44px; }
/* #next-time-btn left is set dynamically in JS */

.area-left {
  width: 20%;
  float: left;
  margin-right: 1em;
}

.area-right {
  width: calc(80% - 1em);
  float: right;
}

li {
  white-space:nowrap;
}

ul{
 width:250px;
 overflow:auto;
}

.custom-popup {
    border-radius: 2px;
    color: #504e4e;
    font-family: 'Molengo', sans-serif;
    font-size: 12px;
    line-height: 10px;
    height: 10 px ;
    max-height: 300px;
    }

/* Ensure Leaflet controls appear above sidebar */
.leaflet-control-container .leaflet-left,
.leaflet-control-container .leaflet-right {
    z-index: 800;
}

/* KNVvL sponsor logo — responsive size */.knvvl-control {
    position: absolute;
    top: 10px;
    right: 50px;
    z-index: 700;  /* below Leaflet controls (800) so layer panel opens over it */
    pointer-events: auto;
}.knvvl-logo-img {
    display: block;
    height: auto;
    width: 75px;
}
@media (max-width: 600px) {
    .knvvl-logo-img { width: 48px; }
}

/****************** Forecast Time Slider ***************************/
.time-slider-control {
    position: absolute;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 600;
    background: rgba(255, 255, 255, 0.94);
    border: 2px solid rgba(0,0,0,0.25);
    border-radius: 6px;
    padding: 7px 14px 5px;
    width: calc(100% - 60px);
    max-width: 900px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 2px;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0,0,0,0.35);
    pointer-events: auto;
    cursor: default;
}

.time-slider-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.time-slider-label {
    font-size: 13px;
    font-weight: bold;
    color: #444;
}

.time-slider-value {
    font-size: 14px;
    font-weight: bold;
    color: #2b7cbb;
    font-family: monospace;
}

#mapTimeSlider {
    width: 100%;
    display: block;
    cursor: pointer;
    accent-color: #2b7cbb;
    margin: 2px 0 0;
    box-sizing: border-box;
}

/* SVG-based axis — no padding needed, JS handles thumb inset */
.time-slider-axis {
    display: block;
    width: 100%;
    line-height: 0;
    overflow: visible;
}

@media (max-width: 600px) {
    .time-slider-label { display: none; }
}

/* Toggle (collapse/expand) button */
.time-slider-toggle {
    margin-right: 8px;
    padding: 0 5px;
    background: none;
    border: 1px solid rgba(0,0,0,0.2);
    border-radius: 3px;
    cursor: pointer;
    color: #666;
    font-size: 10px;
    line-height: 16px;
    flex-shrink: 0;
}
.time-slider-toggle:hover { color: #2b7cbb; border-color: #2b7cbb; }

/* Collapsed state: hide the slider track and axis, keep header visible */
.time-slider-control.collapsed #mapTimeSlider,
.time-slider-control.collapsed .time-slider-axis {
    display: none;
}
/* When collapsed, shrink to content width so the time value stays clear of the KNVvL logo */
.time-slider-control.collapsed {
    width: auto;
}

/****************** IGC Flight Time Slider *************************/
.igc-slider-bar {
    position: absolute;
    bottom: 28px;
    left: 50%;
    margin-left: -210px; /* Half of approximate width for centering */
    z-index: 1100;
    background: rgba(255, 255, 255, 0.94);
    border: 2px solid rgba(0,0,0,0.25);
    border-radius: 6px;
    padding: 7px 16px;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0,0,0,0.35);
    font-size: small;
    text-align: center;
    pointer-events: auto;
}

.igc-slider-bar label {
    display: block;
    font-weight: bold;
    margin-bottom: 4px;
    cursor: move;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.igc-slider-bar.dragging {
    opacity: 0.8;
    cursor: move;
}

.igc-slider-bar input[type=range] {
    width: 320px;
    cursor: pointer;
    accent-color: #2b7cbb;
    vertical-align: middle;
}

.igc-slider-bar button {
    cursor: pointer;
    padding: 2px 8px;
    vertical-align: middle;
}

#timePositionDisplay {
    margin: 4px 0 0;
    font-size: 12px;
    color: #333;
    font-weight: normal;
    width: 320px;       /* match slider width so the label never widens the box */
    white-space: normal;
    word-break: break-word;
}

/******************************************************************/


.custom-popup, .leaflet-popup-tip {
    background: #e7e7e7;
    border: none;
    box-shadow: none;
    }

.leaflet-popup-content-wrapper {
   background: #e7e7e7;
   border-radius: 2px;
   }

.leaflet-popup {
    position: absolute;
    text-align: center;
    }

.leaflet-popup-content {
    margin-top: 20px;
    margin-right: 2px;
    padding-right: 12px;
    min-width: 100 px !important;
    max-height: 300px;
    overflow: auto;
    }

/* GFS/ICON Model Toggle */
.model-toggle-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 6px 0;
}

.model-label {
  font-size: 14px;
  font-weight: bold;
  color: #aaa;
  transition: color .3s;
  user-select: none;
}

.model-label.active {
  color: #333;
}

.map-model-toggle {
  background: rgba(255, 255, 255, 0.92);
  border-radius: 8px;
  padding: 5px 14px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  display: flex;
  align-items: center;
  gap: 10px;
}

@media (max-width: 600px) {
  .map-model-toggle {
    padding: 4px 8px;
    gap: 6px;
  }
  .map-model-toggle .model-label {
    font-size: 11px;
  }
  .map-model-toggle .switch {
    width: 44px;
    height: 18px;
  }
  .map-model-toggle .slider:before {
    height: 12px;
    width: 12px;
    left: 3px;
    bottom: 3px;
  }
  .map-model-toggle input:checked + .slider:before {
    -webkit-transform: translateX(23px);
    -ms-transform: translateX(23px);
    transform: translateX(23px);
  }
}