html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

body {
  min-height: 100vh;
  min-width: 100vw;
  overflow: hidden;
  background: lightgray;
  font-family: "Tajawal", sans-serif;
  width: 100%;
}

#index {
  color: #003366;
}

#top_bar {
  color: #003366;
  border-bottom: 1px solid #003366;
  padding-top: 10px;
  background: #fff;
  z-index: 10;
}

.top-bar-shell {
  position: absolute;
  top: 0;
  left: 0;
  width: 97vw;
  height: 60px;
  display: flex;
  align-items: center;
  padding: 0 2vw;
  background: #fff;
}

.top-bar-title-wrap {
  flex: 1 1 60%;
  min-width: 200px;
}

.top-bar-title {
  margin: 0;
}

.top-bar-controls {
  flex: 1 1 40%;
  min-width: 180px;
  text-align: right;
}

.form-group {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.form-group label {
  margin: 0;
  white-space: nowrap;
  font-weight: 500;
}

.form-group select {
  min-width: 100px;
}

/* Visually hide legend for screen readers while maintaining accessibility */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

#map-container {
  position: fixed;
  top: 60px;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  min-width: 100vw;
  max-width: 100vw;
  margin: 0;
  padding: 0;
  height: calc(100vh - 60px);
  z-index: 1;
  background: #e6f2ff;
  box-sizing: border-box;
}

/* D3 visualization styles */
path {
  fill: none;
  stroke: #000;
  stroke-linejoin: round;
  stroke-linecap: round;
}

.land {
  fill: #F7f7f7;
  stroke: #ccc;
}

.border {
  fill: none;
  stroke: #bbb;
  stroke-linejoin: round;
  stroke-linecap: round;
}

circle.loss {
  fill: #67a9cf;
  stroke: #fff;
}

circle {
  fill: steelblue;
  stroke: blue;
  stroke-width: .5;
}

circle:hover {
  stroke: red;
  stroke-width: 1;
}

.arc {
  fill: red;
  opacity: 0.4;
  stroke-width: 0.5;
}

.bubble {
  fill: red;
  fill-opacity: .45;
  stroke: blue;
  stroke-width: .5px;
}

fieldset {
  border: none;
  padding: 0;
  margin: 0;
}

.legend circle {
  fill: white;
  stroke: #ccc;
}

.legend text {
  fill: #777;
  font: 10px sans-serif;
  text-anchor: middle;
}

#axis path {
  fill: none;
}

#axis .tick line {
  stroke: #999;
}

#axis .tick text {
  font-size: 12px;
}

#scout {
  color: darkblue;
  position: absolute;
  background-color: white;
  border: 1px solid #ccc;
  padding: 10px;
  border-radius: 5px;
  display: none;
  font-size: 12px;
  box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);
}

#scout strong {
  font-size: 16px;
}

#scout span {
  color: #999;
}

#date, #play, #slider-container {
  display: inline-block;
  vertical-align: middle;
  margin-top: 20px;
}

#date {
  border-left: 5px solid #ccc;
  padding: 3px 0 3px 10px;
  margin-left: 60px;
  color: #333;
}

#date p {
  margin: 0;
}

#date p:first-child {
  color: #999;
  font-size: 11px;
  line-height: 13px;
}

#date p#month {
  font-size: 30px;
  line-height: 30px;
}

#date p#month span {
  float: left;
  width: 2.55em;
}

.map-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  background: linear-gradient(135deg, #e6f2ff 0%, #f0f8ff 100%);
  font-size: 16px;
  color: #003366;
}

.map-loading p {
  margin: 0;
}

@media (max-width: 600px) {
  #top_bar {
    font-size: 1em;
  }

  #map-container {
    top: 100px;
    height: calc(100vh - 100px);
  }
}
