body {
  margin: 0;
  overflow: hidden;
}

canvas {
  display: block;
}

html, body {
  margin: 0;
  padding: 0;
  overflow: hidden;
  height: 100%;
}

#canvasWrapper {
  width: 100vw;
  height: 100vh;
  background-color: #f0f0f0;
  display: flex;
  justify-content: center;
  align-items: center;
}

#loading {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(255, 255, 255, 0.85);
  padding: 20px 30px;
  border-radius: 10px;
  font-size: 18px;
  font-family: sans-serif;
  z-index: 1000;
  display: none;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.switch {
  position: relative;
  display: inline-block;
  width: 34px;
  height: 20px;
}
.switch input { 
  opacity: 0;
  width: 0;
  height: 0;
}
.slider {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #bbb;
  -webkit-transition: .4s;
  transition: .4s;
  border: 1px solid gray;
}
.slider:before {
  position: absolute;
  content: "";
  height: 16px;
  width: 16px;
  left: 1px;
  bottom: 1px;
  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(14px);
  -ms-transform: translateX(14px);
  transform: translateX(14px);
}
.slider.round {
  border-radius: 20px;
}
.slider.round:before {
  border-radius: 50%;
}
.panelBoxGold {
  background: rgba(255, 215, 0, 0.8);
  padding: 10px;
  border-radius: 8px;
  font-family: sans-serif;
  font-size: 14px;
  font-weight: bold;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: 1px solid black;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.panelBox {
  background: rgba(255, 255, 255, 0.8);
  padding: 10px;
  border-radius: 8px;
  font-family: sans-serif;
  font-size: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: 1px solid black;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
#rightColumn {
  position: fixed;
  top: 20px;
  right: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px; /* gap between panel and reset button */
}
#mapSelector {
  border: none;
  margin: 0;
  padding: 5px 0 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
#mapSelectorTitle {
  font-weight: bold;
  padding-top: 0px;
}

#resetButton {
  padding: 8px 12px;
  font-family: sans-serif;
  font-size: 14px;
  font-weight: bold;
  border-radius: 6px;
  border: none;
  background-color: #c9302c;
  color: white;
  border: 1px solid black;
  transition: background-color 0.2s, transform 0.1s;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
#resetButton:hover {
  background-color: #a82825;
}
#resetButton:active {
  transform: scale(0.97);
}


#leftColumn {
  position: fixed;
  top: 20px;
  left: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px; /* gap between scoreBox and timer */
}
.infoBox {
  background: rgba(255, 255, 255, 0.8);
  padding: 10px;
  border-radius: 8px;
  border: none;
  margin: 0;
  display: flex;
  flex-direction: column;
}
#scoreBox {
  gap: 4px;
  font-family: "Courier New", sans-serif;
}
#scoreTitle {
  text-align: center;
  font-size: 18px;
  font-weight: bold;
  margin: 0;
  padding-bottom: 5px;
}
#score {
  font-size: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
  padding: 0;
}
#timer {
  font-family: "Courier New", monospace;
  font-weight: bold;
  font-size: 28px;
  text-align: center;
  padding: 2px;
}

#zoneToGuess {
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(200, 200, 200, 0.85);
  padding: 20px 30px;
  border-radius: 20px;
  font-size: 20px;
  font-family: Verdana, Arial, sans-serif;
  font-weight: bold;
  color: gold;
  text-shadow:
    -1px -1px 0 #000,
    -1px  0px 0 #000,
    -1px  1px 0 #000,
     0px -1px 0 #000,
     0px  1px 0 #000,
     1px -1px 0 #000,
     1px  0px 0 #000,
     1px  1px 0 #000;
  box-shadow: 0 0 5px black;
  z-index: 100;
  display: none;
}

#confirmOverlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.5);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 999;
}
#confirmBox {
  background: white;
  padding: 20px 30px;
  border-radius: 10px;
  text-align: center;
  font-family: sans-serif;
  font-size: 16px;
}
.confirmButtons {
  margin-top: 15px;
  display: flex;
  justify-content: center;
  gap: 10px;
}
.confirmButtons button {
  padding: 6px 14px;
  font-size: 14px;
  border: none;
  border-radius: 6px;
}
#confirmReady {
  background-color: #4caf50;
  color: white;
}
#confirmCancel {
  background-color: #f44336;
  color: white;
}

@font-face{
  font-family: "unispace-bold";
  src: url('fonts/unispace.bold.otf');
}

.middle-finger {
  cursor: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAYCAYAAAD3Va0xAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw1AUhU9TpUUqDnYQ6ZChOlkQleIoVSyChdJWaNXB5KV/0KQhSXFxFFwLDv4sVh1cnHV1cBUEwR8QNzcnRRcp8b6k0CLGC4/3cd49h/fuA4RWjalm3ySgapaRSSbEfGFVDLxCQBA+xBGRmKmnsos5eNbXPXVS3cV4lnffnzWoFE0G+ETiOaYbFvEGcXzT0jnvE4dZRVKIz4knDLog8SPXZZffOJcdFnhm2Mhl5onDxGK5h+UeZhVDJZ4hjiqqRvlC3mWF8xZntdZgnXvyF4aK2kqW67QiSGIJKaQhQkYDVdRgIUa7RoqJDJ0nPPyjjj9NLplcVTByLKAOFZLjB/+D37M1S9NTblIoAfS/2PbHGBDYBdpN2/4+tu32CeB/Bq60rr/eAmY/SW92tegRMLQNXFx3NXkPuNwBRp50yZAcyU9LKJWA9zP6pgIwfAsMrLlz65zj9AHI0ayWb4CDQ2C8TNnrHu8O9s7t357O/H4AdNByqGQyNIkAAAAGYktHRAAAAAAAAPlDu38AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQflAggBOBA+w522AAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAAAd9JREFUOMu1k8FL21Acx39J01qbvsTGzGoNiCKFTSbDsaMx6BBFMPQieNH/QTev3mTX3ccOKzvMjYFDPI2NMLFjJ2Gi4o6FoCiCotbE4tfLGlO1ttHte/rxHu/zfu/7+z6iGsQkDXGWAt1HcZaCZeWwtPT1frBkqguO48JxXChquiJIqAY6c88oEglXvZCnf6T/CwoJ0axumDAGMtc8MQYy0A0TPB+eqUpX1DQKhQLyeRuKmkZJ/nU50Q7dMKEbJkJCNFsR5D9cUlvH07L1o6Nj2PY2GhLtEO7qCZMYiWKMRDFGfChc3eywb/RNTWqw2/zPse1trz44OPTqb9+Xy575t81WJFNdiNTJ+augWqSoafBMasXCwgfa2sjR1PRLTU0+vNt/YrKGH8u/PLpl5dDz7HngjoiI6NHjXuzs7Hob/joQKCREs8Mj43AcF0HlOC4SjZ2XdkTrlePpF7OBQaWUl/kViyfxLjsfCDT/8QvEePP1AbVo3djc/FMzaHBo7OYpcxzfpxtmWfgq6c3b96iPPTivGIlInZx/0tOP1dW1GwHFYhFzr17Dnznutoy1aN2YnBgjc3SIJInR3u4+/V5bp0+fF+nninVyWtgXaw4sx/F9TNYgNbSBSZr3ja7qAqVrhTJVohAtAAAAAElFTkSuQmCC') 10 2, pointer;
