/* Government Maps Viewer Pro: controls, panels, and general layout. */
.gmv-map-container{
  position:relative;
  width:100%;
  height:100%;
  border:1px solid #ccc;
  border-radius:4px;
  overflow:hidden;
}

.gmv-control-panel,
.gmv-filter-toolbar{
  box-sizing:border-box;
  width:min(100%, 960px);
  margin:8px auto 0 auto;
  padding:6px;
  display:flex;
  flex-direction:column;
  gap:5px;
  border:1px solid #d6d9e6;
  border-radius:8px;
  background:#f7f8fc;
  box-shadow:0 1px 8px rgba(20,24,38,.10);
}

.gmv-control-section{
  box-sizing:border-box;
  width:100%;
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:6px;
  border:1px solid #e1e4ef;
  border-radius:6px;
  background:#fff;
}

.gmv-control-section-main{
  background:#fbfcff;
}

.gmv-control-grid{
  display:grid;
  grid-template-columns:1.35fr 1fr 1fr;
  gap:6px;
}

.gmv-location-section,
.gmv-filter-section{
  grid-column:1 / -1;
}

.gmv-filter-section{
  order:-2;
  border-color:#b9bfd4;
  background:#fbfcff;
}

.gmv-location-section{
  order:-1;
}

.gmv-render-section{
  grid-column:auto;
}

.gmv-section-title{
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#252b40;
}

.gmv-control-line,
.gmv-toolbar-row,
.gmv-topbar{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}

.gmv-toolbar-row,
.gmv-topbar{
  justify-content:center;
}

.gmv-filter-line{
  display:grid;
  grid-template-columns:minmax(240px, 1fr) auto auto;
  gap:6px;
  align-items:center;
}

.gmv-location-line{
  display:grid;
  grid-template-columns:minmax(190px, 1fr) auto auto auto;
  gap:6px;
  align-items:center;
}

.btn-filter,
.gmv-select,
.gmv-coord{
  box-sizing:border-box;
  height:32px;
  min-height:32px;
  border:1px solid #4b5270;
  border-radius:5px;
  font-size:12px;
  line-height:30px;
  box-shadow:none;
  outline:none;
}

.btn-filter{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 10px;
  background:#474f6c;
  color:#fff;
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
  text-decoration:none;
  font-weight:700;
  letter-spacing:.01em;
}

.btn-filter:hover,
.btn-filter.active{
  background:#252b40;
}

.btn-filter.gmv-walk-active{
  background:#126b35;
  border-color:#126b35;
}

.btn-filter.gmv-walk-active:hover{
  background:#0b4d25;
  border-color:#0b4d25;
}

.btn-filter-clear{
  background:#777;
  border-color:#777;
}

.btn-filter-scan{
  background:#8b0000;
  border-color:#8b0000;
  min-width:134px;
}

.btn-filter-scan:hover,
.btn-filter-scan.active{
  background:#5f0000;
  border-color:#5f0000;
}

.btn-filter-scan.running{
  background:#126b35;
  border-color:#126b35;
}

.btn-filter-scan.running:hover,
.btn-filter-scan.running.active{
  background:#0b4d25;
  border-color:#0b4d25;
}

.gmv-select{
  min-width:104px;
  width:100%;
  padding:0 30px 0 10px;
  background-color:#fff;
  color:#252b40;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-image:
    linear-gradient(45deg, transparent 50%, #474f6c 50%),
    linear-gradient(135deg, #474f6c 50%, transparent 50%);
  background-position:
    calc(100% - 14px) 14px,
    calc(100% - 9px) 14px;
  background-size:5px 5px, 5px 5px;
  background-repeat:no-repeat;
}

.gmv-filter-select{
  min-width:0;
  font-size:14px;
}

.gmv-coord{
  width:100%;
  padding:0 10px;
  text-align:center;
  background:#fff;
  color:#333;
}

.gmv-range{
  width:140px;
  vertical-align:middle;
  appearance:none;
  -webkit-appearance:none;
  background:transparent;
  height:32px;
  margin:0;
}

.gmv-range::-webkit-slider-runnable-track{
  height:6px;
  background:#8c7a3b;
  border-radius:999px;
  border:none;
}

.gmv-range::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#474f6c;
  border:1px solid #252b40;
  margin-top:-5px;
  box-shadow:none;
}

.gmv-range::-moz-range-track{
  height:6px;
  background:#8c7a3b;
  border-radius:999px;
  border:none;
}

.gmv-range::-moz-range-thumb{
  width:16px;
  height:16px;
  border-radius:50%;
  background:#474f6c;
  border:1px solid #252b40;
  box-shadow:none;
}

.gmv-range-readout{
  font-size:12px;
  color:#252b40;
  min-width:82px;
  text-align:left;
}

.gmv-filter-row{
  gap:8px;
}

.gmv-filter-label{
  display:none;
}

.gmv-repair-control{
  box-sizing:border-box;
  height:32px;
  min-height:32px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0 10px;
  border:1px solid #c9cede;
  border-radius:5px;
  background:#fbfcff;
  color:#252b40;
  font-size:12px;
  line-height:30px;
  white-space:nowrap;
  user-select:none;
}

.gmv-repair-control input{
  width:16px;
  height:16px;
  margin:0;
  accent-color:#474f6c;
}

.gmv-range-repair{
  width:110px;
}

.gmv-render-section .gmv-control-line{
  justify-content:center;
}

.gmv-topbar{
  width:min(100%, 760px);
  margin:8px auto 0 auto;
}

.gmv-location-section .btn-filter{
  min-width:64px;
}

.gmv-map-filter-overlay{
  position:absolute;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  z-index:1200;
  box-sizing:border-box;
  width:min(760px, calc(100% - 28px));
  padding:7px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:7px;
  background:rgba(20,24,38,.86);
  color:#fff;
  box-shadow:0 1px 8px rgba(0,0,0,.24);
  pointer-events:auto;
}

.gmv-map-filter-overlay .gmv-section-title{
  display:none;
}

.gmv-map-filter-overlay .gmv-filter-line{
  grid-template-columns:minmax(180px, 1fr) auto auto;
}

.gmv-map-filter-overlay .gmv-select{
  border-color:rgba(255,255,255,.70);
}

.gmv-map-filter-overlay .btn-filter{
  border-color:rgba(255,255,255,.30);
}


.gmv-antipode-line{
  display:grid;
  grid-template-columns:auto minmax(190px, 1fr) auto auto;
  gap:6px;
  align-items:center;
}

.gmv-antipode-toggle{
  justify-content:center;
}

.gmv-antipode-coordinate{
  font-family:Consolas, Menlo, Monaco, monospace;
}

.btn-filter:disabled,
.gmv-coord:disabled{
  cursor:not-allowed;
  opacity:.52;
}

.btn-filter:disabled:hover{
  background:#474f6c;
}

@media (max-width:860px){
  .gmv-control-panel,
  .gmv-filter-toolbar,
  .gmv-topbar{
    width:100%;
  }

  .gmv-control-grid{
    grid-template-columns:1fr;
  }

  .gmv-render-section{
    grid-column:1 / -1;
  }

  .gmv-filter-line,
  .gmv-location-line,
  .gmv-antipode-line{
    grid-template-columns:1fr;
  }

  .gmv-filter-line .btn-filter,
  .gmv-location-line .btn-filter{
    width:100%;
  }

  .gmv-control-line{
    justify-content:center;
  }
}

@media (max-width:520px){
  .gmv-control-panel,
  .gmv-filter-toolbar{
    padding:6px;
    gap:5px;
  }

  .gmv-control-section{
    padding:5px;
  }

  .btn-filter,
  .gmv-select,
  .gmv-coord,
  .gmv-repair-control{
    height:30px;
    min-height:30px;
    line-height:28px;
    font-size:11px;
  }

  .btn-filter{
    padding:0 8px;
  }

  .gmv-map-filter-overlay{
    left:8px;
    right:8px;
    bottom:8px;
    transform:none;
    width:auto;
    padding:6px;
  }

  .gmv-map-filter-overlay .gmv-filter-line{
    grid-template-columns:1fr;
  }
}
