
    .compass {
      width: 220px;
      height: 220px;
      max-width: 100%;
      aspect-ratio: 1;
      margin: 0 auto;
      position: relative;
      border: 3px solid #dce3ed;
      border-radius: 50%;
      background: radial-gradient(circle, #fff 58%, #edf3fa);
    }

    .label {
      position: absolute;
      font-size: 13px;
      font-weight: bold;
      color: #526176;
      transform: translate(-50%, -50%);
      z-index: 4;
    }

    .north { top: 8%; left: 50%; color: #dc3545; }
    .east  { top: 50%; left: 92%; }
    .south { top: 92%; left: 50%; }
    .west  { top: 50%; left: 8%; }

    .ne { top: 21%; left: 79%; }
    .se { top: 79%; left: 79%; }
    .sw { top: 79%; left: 21%; }
    .nw { top: 21%; left: 21%; }

    .needle {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -100%) rotate(0deg);
      transform-origin: 50% 100%;
      border-radius: 4px;
      transition: transform 0.3s ease;
    }

    /* Red wind arrow */
    .needle.wind {
      width: 4px;
      height: 70px;
      background: #dc3545;
      z-index: 2;
    }

    .needle.wind::before {
      content: "";
      position: absolute;
      top: -8px;
      left: -7px;
      border-left: 9px solid transparent;
      border-right: 9px solid transparent;
      border-bottom: 18px solid #dc3545;
    }

    /* Blue reference arrow */
    .needle.reference {
      width: 2px;
      height: 60px;
      background: #3182ce;
      z-index: 1;
    }

    .needle.reference::before {
      content: "";
      position: absolute;
      top: -7px;
      left: -6px;
      border-left: 8px solid transparent;
      border-right: 8px solid transparent;
      border-bottom: 15px solid #3182ce;
    }

    .center {
      position: absolute;
      width: 14px;
      height: 14px;
      background: #26364a;
      border: 2px solid white;
      border-radius: 50%;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      z-index: 5;
    }

    #chart {
      margin-top: 8px;
    }

    .direction {
      font-size: 25px;
      font-weight: bold;
      color: #26364a;
      margin-top: 4px;
    }

    .subtitle {
      font-size: 13px;
      color: #6b7788;
      margin-top: 5px;
    }

    .legend {
      display: flex;
      justify-content: center;
      gap: 20px;
      margin-top: 18px;
      font-size: 13px;
    }

    .legend-item {
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .dot {
      width: 10px;
      height: 10px;
      border-radius: 50%;
    }

    .wind-dot { background: #dc3545; }
    .reference-dot { background: #3182ce; }

    .controls {
      margin-top: 22px;
      text-align: left;
    }

    .controls label {
      display: block;
      margin: 12px 0 6px;
      font-size: 12px;
      color: #526176;
    }

    .controls input {
      width: 100%;
    }

    .value {
      float: right;
      font-weight: bold;
      color: #26364a;
    }

    .red-indicator {
  background: #dc3545;
}

.blue-indicator {
  background: #3182ce;
}

.info-title {
  font-size: 13px;
  font-weight: 700;
  color: #26364a;
  margin-bottom: 4px;
}

.info-description {
  font-size: 12px;
  line-height: 1.5;
  color: #6b7788;
}