    html, body {
      height: 100%;
      margin: 0;
      padding: 0;
      font-family: Arial, sans-serif;
      overflow: hidden;
      background: #cfe7f5;
    }

    #mapid {
      height: 100%;
      width: 100%;
      position: relative;
      z-index: 0;
      background: #cfe7f5;
      touch-action: none;
    }

    #trueSizeSvg {
      display: block;
      width: 100%;
      height: 100%;
      cursor: grab;
      background: #cfe7f5;
      user-select: none;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
    }

    #trueSizeSvg:active {
      cursor: grabbing;
    }

    .sphere {
      fill: #cfe7f5;
    }

    .country {
      fill: #f7f3df;
      stroke: #8a8a8a;
      stroke-width: 0.45;
      vector-effect: non-scaling-stroke;
      cursor: crosshair;
    }

    .marker-pin {
      cursor: pointer;
      touch-action: none;
      user-select: none;
      -webkit-user-select: none;
    }

    .marker-pin.dragging {
      cursor: grabbing;
    }

    .marker-pin .pin-body {
      fill: #2f80ed;
      stroke: #1b4f9c;
      stroke-width: 1;
      vector-effect: non-scaling-stroke;
    }

    .marker-pin.red .pin-body {
      fill: #e74c3c;
      stroke: #b03a2e;
    }

    .marker-pin.user .pin-body {
      fill: #27ae60;
      stroke: #176c3b;
    }

    .marker-pin .pin-dot {
      fill: white;
    }

    .country-name-label {
      pointer-events: all;
      cursor: grab;
      touch-action: none;
      user-select: none;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      font-family: Arial, Helvetica, sans-serif;
      font-size: 15px;
      font-weight: 800;
      text-anchor: middle;
      dominant-baseline: middle;
      paint-order: stroke;
      stroke: rgba(255, 255, 255, 0.96);
      stroke-width: 5px;
      stroke-linejoin: round;
      fill: #111827;
      letter-spacing: 0.2px;
    }

    .country-label-hitbox {
      display: none;
      pointer-events: all;
      cursor: grab;
      touch-action: none;
      fill: rgba(255, 255, 255, 0.001);
      stroke: none;
    }

    .country-name-label.dark-style {
      stroke: rgba(0, 0, 0, 0.82);
      fill: #ffffff;
    }

    .country-name-label.paper-style {
      stroke: rgba(239, 225, 198, 0.96);
      fill: #3f2d17;
    }

    .marker-remove-hitbox,
    .marker-remove-button {
      display: none !important;
      pointer-events: none !important;
    }

    @media (pointer: coarse), (max-width: 768px) {
      .marker-pin,
      .country-name-label,
      .country-label-hitbox {
        touch-action: none;
        user-select: none;
        -webkit-user-select: none;
      }
    }

    .marker-pin,
    .country-name-label,
    .country-label-hitbox {
      touch-action: none;
      user-select: none;
      -webkit-user-select: none;
    }

    #overlay {
      position: absolute;
      top: 10px;
      left: 10px;
      z-index: 999;
      background-color: rgba(255, 255, 255, 0.88);
      padding: 14px;
      border-radius: 15px;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
      width: 230px;
    }

    #note {
      font-style: italic;
      font-size: 12px;
      color: #444;
      margin-top: -6px;
    }

    #addressForm label {
      display: block;
      margin-bottom: 5px;
      font-weight: bold;
      font-size: 12px;
    }

    #addressForm input[type="text"] {
      width: calc(100% - 10px);
      padding: 8px;
      margin-bottom: 8px;
      border: 1px solid #ccc;
      border-radius: 5px;
      box-sizing: border-box;
      font-size: 12px;
    }

    #suggestions {
      position: absolute;
      background-color: white;
      width: calc(100% - 32px);
      max-height: 170px;
      overflow-y: auto;
      z-index: 1001;
      box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
      margin-top: -15px;
      border-radius: 5px;
      scrollbar-width: auto;
      scrollbar-color: #aaa #eee;
    }

    #suggestions::-webkit-scrollbar {
      width: 12px;
    }

    #suggestions::-webkit-scrollbar-track {
      background: #eee;
      border-radius: 10px;
    }

    #suggestions::-webkit-scrollbar-thumb {
      background-color: #aaa;
      border-radius: 10px;
      border: 3px solid #eee;
    }

    #suggestions div {
      padding: 10px;
      cursor: pointer;
      font-size: 13px;
      line-height: 1.3;
    }

    #suggestions div:hover {
      background-color: #f0f0f0;
    }

    #mapsButton {
      position: fixed;
      top: 10px;
      right: 10px;
      width: 112px;
      z-index: 1002;
      background-color: rgba(255, 255, 255, 0.92);
      color: #111;
      padding: 7px 10px;
      border: none;
      border-radius: 6px;
      text-decoration: none;
      font-size: 13px;
      font-weight: bold;
      line-height: 1.1;
      text-align: center;
      box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
      cursor: pointer;
    }

    #mapsButton:hover {
      background-color: #ffffff;
    }

    #mapsMenu {
      display: none;
      position: fixed;
      top: 48px;
      right: 10px;
      z-index: 1003;
      background-color: rgba(255, 255, 255, 0.94);
      padding: 6px;
      border-radius: 8px;
      box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
      width: 112px;
      box-sizing: border-box;
    }

    #mapsMenu a {
      display: block;
      padding: 7px 6px;
      border-radius: 6px;
      color: #111;
      text-decoration: none;
      font-size: 12px;
      font-weight: bold;
      line-height: 1.12;
      text-align: center;
    }

    #mapsMenu a:hover {
      background-color: #f0f0f0;
    }

    #optionsButton {
      position: absolute;
      bottom: 20px;
      left: 10px;
      z-index: 1000;
      background-color: #2C3E50;
      color: #fff;
      border: none;
      padding: 10px 20px;
      border-radius: 5px;
      cursor: pointer;
      font-size: 16px;
    }

    #optionsMenu {
      display: none;
      position: absolute;
      bottom: 70px;
      left: 10px;
      z-index: 1001;
      background-color: rgba(255, 255, 255, 0.88);
      padding: 15px;
      border-radius: 8px;
      box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
      min-width: 205px;
      box-sizing: border-box;
    }

    #optionsMenu label {
      display: block;
      margin-bottom: 2px;
      font-weight: bold;
      color: #333;
    }

    #optionsMenu select {
      width: 100%;
      padding: 8px;
      border: 1px solid #ccc;
      border-radius: 5px;
      box-sizing: border-box;
      background-color: #f9f9f9;
      margin-bottom: 8px;
    }

    #optionsMenu .optionCheckboxRow {
      display: flex;
      align-items: center;
      gap: 6px;
      margin: 2px 0 8px 0;
      font-size: 12px;
      color: #333;
      font-weight: bold;
    }

    #optionsMenu .optionCheckboxRow input {
      margin: 0;
    }

    #optionsMenu .optionCheckboxRow label {
      margin: 0;
    }

    #hideAllButton,
    #infoButton,
    #my-revoke-btn,
    #location-info-btn {
      position: fixed;
      z-index: 1001;
      background-color: rgba(255, 255, 255, 0.88);
      padding: 6px;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
      color: #000;
      border: none;
      border-radius: 5px;
      cursor: pointer;
      font-size: 12px;
      font-weight: bold;
      line-height: normal;
      height: auto;
      min-height: auto;
      margin: 0;
    }

    #hideAllButton {
      bottom: 20px;
      right: 10px;
    }

    #infoButton {
      bottom: 20px;
      right: 59px;
    }

    #my-revoke-btn {
      bottom: 20px;
      right: 146px;
    }

    #location-info-btn {
      bottom: 20px;
      right: 215px;
    }

    #downloadMapButton,
    #resetViewButton {
      position: fixed;
      right: 10px;
      z-index: 1001;
      width: 42px;
      height: 42px;
      padding: 0;
      font-size: 24px;
      line-height: 42px;
      background-color: #3498db;
      color: white;
      border: none;
      border-radius: 8px;
      cursor: pointer;
      text-align: center;
      box-shadow: 0 2px 6px rgba(0,0,0,0.3);
    }

    #downloadMapButton {
      bottom: 60px;
      z-index: 1002;
    }

    #resetViewButton {
      bottom: 105px;
    }

    #downloadMapButton:hover,
    #resetViewButton:hover {
      background-color: #2980b9;
    }

    #infoOverlay,
    #location-info-popup {
      display: none;
      position: fixed;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 80%;
      max-width: 540px;
      max-height: calc(100vh - 40px);
      overflow-y: auto;
      background-color: rgba(255, 255, 255, 0.95);
      padding: 20px;
      border-radius: 10px;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
      z-index: 1000;
      box-sizing: border-box;
      font-size: 12px;
      line-height: 1.4;
      color: #111;
    }

    #infoOverlay h1 {
      font-size: 16px;
      line-height: 1.25;
      margin: 0 0 10px 0;
    }

    #infoOverlay p {
      margin: 10px 0;
    }

    #closeInfoButton {
      margin-top: 10px;
      padding: 8px 12px;
      border: none;
      border-radius: 6px;
      cursor: pointer;
      background: #2C3E50;
      color: white;
      font-weight: bold;
      font-size: 12px;
    }

    .hide {
      display: none !important;
    }

    @media (max-width: 768px) {
      #mapsButton {
        top: 10px;
        width: 104px;
        font-size: 12px;
        padding: 6px 8px;
      }

      #mapsMenu {
        top: 44px;
        width: 104px;
        padding: 5px;
      }

      #mapsMenu a {
        padding: 6px 4px;
        font-size: 11px;
      }
    }

    @media (max-height: 500px) and (orientation: landscape) {
      #infoOverlay,
      #location-info-popup {
        width: 86%;
        max-width: 520px;
        max-height: calc(100vh - 18px);
        padding: 10px 12px;
        font-size: 11px;
        line-height: 1.22;
      }

      #infoOverlay h1 {
        font-size: 13px;
        line-height: 1.2;
        margin: 0 0 5px 0;
      }

      #infoOverlay p {
        margin: 5px 0;
      }

      #closeInfoButton {
        margin-top: 6px;
        padding: 5px 9px;
        font-size: 11px;
      }

      #location-info-popup {
        font-size: 11px;
      }
    }

    @media print {
      html, body {
        margin: 0;
        padding: 0;
        height: 100%;
        width: 100%;
        overflow: hidden;
      }

      #mapid {
        height: 100vh !important;
        width: 100vw !important;
        position: absolute;
        top: 0;
        left: 0;
        z-index: 0;
      }

      #optionsButton,
      #overlay,
      #optionsMenu,
      #mapsButton,
      #mapsMenu,
      #hideAllButton,
      #resetViewButton,
      #downloadMapButton,
      #infoButton,
      #my-revoke-btn,
      #location-info-btn,
      #suggestions,
      #addressForm,
      .non-printable {
        display: none !important;
      }

      * {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
      }
    }
