    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    html, body, #app {
      width: 100%;
      height: 100%;
      overflow: hidden;
    }
    .map-container {
      position: relative;
      width: 100%;
      height: calc(100vh - 100px);
      overflow: hidden;
      touch-action: none;
      cursor: grab;
    }
    .map-container:active {
      cursor: grabbing;
    }
    .map-image {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-size: contain;
      background-repeat: no-repeat;
      background-position: 0 0;
      transform-origin: 0 0;
      will-change: transform;
    }
    .user-marker {
      position: absolute;
      width: 16px;
      height: 16px;
      background: #3b82f6;
      border: 2px solid white;
      border-radius: 50%;
      box-shadow: 0 2px 4px rgba(0,0,0,0.3);
      z-index: 20;
    }
    .accuracy-circle {
      position: absolute;
      border: 2px solid rgba(59, 130, 246, 0.3);
      background: rgba(59, 130, 246, 0.1);
      border-radius: 50%;
      z-index: 10;
      pointer-events: none;
    }
    .track-svg {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 15;
      transform-origin: 0 0;
    }
    .warning-banner {
      position: absolute;
      top: 60px;
      left: 50%;
      transform: translateX(-50%);
      z-index: 30;
    }
    .out-of-bounds-arrow {
      position: absolute;
      z-index: 25;
      pointer-events: none;
      transform-origin: 20px 20px;
    }
    .out-of-bounds-arrow .arrow-svg {
      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
    }

    /* Button styling */
    .btn {
      padding: 0.3rem 0.6rem;
      border-radius: 0.5rem;
      border: none;
      cursor: pointer;
      transition: background-color 0.2s;
      font-size: 1rem;
      color: white;
    }

    .btn-primary {
      background-color: #3b82f6;
    }

    .btn-primary:hover {
      background-color: #2563eb;
    }

    .btn-neutral {
      background-color: #6b7280;
    }

    .btn-neutral:hover {
      background-color: #4b5563;
    }

    .btn-warning {
      background-color: #ef4444;
    }

    .btn-warning:hover {
      background-color: #dc2626;
    }


    .out-of-bounds-arrow .distance-label {
      position: absolute;
      top: 42px;
      left: 50%;
      transform: translateX(-50%) rotate(calc(-1 * var(--arrow-rotation, 0deg)));
      background: rgba(0, 0, 0, 0.75);
      color: white;
      padding: 4px 8px;
      border-radius: 4px;
      font-size: 11px;
      font-weight: bold;
      white-space: nowrap;
      pointer-events: none;
      box-shadow: 0 2px 4px rgba(0,0,0,0.3);
    }