
    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;
      shape-rendering: optimizeSpeed;
    }

    #mapLayer {
      will-change: transform;
    }

    .country.selected-country,
    #trueSizeSvg .country.selected-country,
    #trueSizeSvg.dark-selected .country.selected-country {
      fill: #facc15 !important;
      fill-opacity: 1 !important;
      stroke: rgba(255, 255, 255, 0.95) !important;
      stroke-width: 1.15 !important;
      stroke-opacity: 1 !important;
      filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.95));
    }

    #trueSizeSvg.dark-selected .country.selected-country {
      stroke: rgba(255, 255, 255, 0.95) !important;
      filter: drop-shadow(0 0 6px rgba(250, 204, 21, 0.85));
    }

    .selected-country-overlay {
      pointer-events: none;
      fill: #facc15 !important;
      fill-opacity: 1 !important;
      stroke: rgba(255, 255, 255, 0.95) !important;
      stroke-width: 1.25 !important;
      stroke-opacity: 1 !important;
      vector-effect: non-scaling-stroke;
      filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.95));
    }

    #trueSizeSvg.dark-selected .selected-country-overlay {
      stroke: rgba(255, 255, 255, 0.95) !important;
      filter: drop-shadow(0 0 6px rgba(250, 204, 21, 0.85));
    }

    .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;
    }

    .country-info-control {
      cursor: pointer;
      pointer-events: all;
      touch-action: none;
      user-select: none;
      -webkit-user-select: none;
    }

    .country-info-control circle {
      fill: rgba(255, 255, 255, 0.96);
      stroke: #111827;
      stroke-width: 1.4;
      vector-effect: non-scaling-stroke;
      filter: drop-shadow(0 1px 2px rgba(0,0,0,0.25));
    }

    .country-info-control text {
      font-family: Arial, Helvetica, sans-serif;
      font-size: 13px;
      font-weight: 900;
      text-anchor: middle;
      dominant-baseline: middle;
      fill: #111827;
      stroke: none;
      pointer-events: none;
    }

    .country-info-control.dark-style circle {
      fill: rgba(15, 23, 42, 0.96);
      stroke: #ffffff;
    }

    .country-info-control.dark-style text {
      fill: #ffffff;
    }


    .popup-download-clone {
      pointer-events: none !important;
      scrollbar-width: none !important;
    }

    .popup-download-clone::-webkit-scrollbar {
      width: 0 !important;
      height: 0 !important;
    }

    #countryInfoPopupDownloadClone {
      display: block;
      background: rgba(255, 255, 255, 0.94);
      border-radius: 12px;
      border-top-right-radius: 14px;
      border-bottom-right-radius: 14px;
      box-shadow: 0 4px 18px rgba(0, 0, 0, 0.24);
      clip-path: inset(0 round 12px);
      box-sizing: border-box;
      color: #111827;
      font-size: 12px;
      line-height: 1.28;
    }

    #countryInfoPopup {
      display: none;
      position: fixed;
      top: 10px;
      left: 10px;
      transform: none;
      width: 258px;
      max-height: min(202px, calc(100vh - 70px));
      overflow-y: auto;
      background: rgba(255, 255, 255, 0.94);
      border-radius: 12px;
      border-top-right-radius: 14px;
      border-bottom-right-radius: 14px;
      clip-path: inset(0 round 12px);
      scrollbar-width: none;
      box-shadow: 0 4px 18px rgba(0, 0, 0, 0.24);
      z-index: 998;
      box-sizing: border-box;
      padding: 8px 10px 4px 10px;
      color: #111827;
      font-size: 12px;
      line-height: 1.28;
      -webkit-overflow-scrolling: touch;
      touch-action: pan-y;
      overscroll-behavior: contain;
    }

    #countryInfoPopup:hover,
    #countryInfoPopup:focus,
    #countryInfoPopup:focus-within {
      scrollbar-width: thin;
    }

    #countryInfoPopup::-webkit-scrollbar {
      width: 0;
      height: 0;
    }

    #countryInfoPopup:hover::-webkit-scrollbar,
    #countryInfoPopup:focus::-webkit-scrollbar,
    #countryInfoPopup:focus-within::-webkit-scrollbar {
      width: 8px;
      height: 8px;
    }

    #countryInfoPopup::-webkit-scrollbar-track {
      background: transparent;
      margin: 10px 0;
      border-radius: 999px;
    }

    #countryInfoPopup::-webkit-scrollbar-thumb {
      background: rgba(100, 116, 139, 0.45);
      border-radius: 999px;
      border: 2px solid rgba(255, 255, 255, 0.82);
    }

    #countryInfoPopup::-webkit-scrollbar-thumb:hover {
      background: rgba(71, 85, 105, 0.65);
    }

    #countryInfoHeader {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 2px;
      padding-right: 22px;
    }

    #countryInfoFlag {
      width: 42px;
      height: 29px;
      object-fit: cover;
      border-radius: 4px;
      border: 1px solid rgba(0,0,0,0.18);
      box-shadow: 0 1px 3px rgba(0,0,0,0.14);
      background: #f8fafc;
      flex: 0 0 auto;
    }
#countryInfoBody {
      touch-action: pan-y;
      overscroll-behavior: contain;
    }

    .country-search-marker {
      pointer-events: none;
    }

    .country-search-marker circle {
      fill: #16a34a;
      stroke: #ffffff;
      stroke-width: 4;
      vector-effect: non-scaling-stroke;
      filter: drop-shadow(0 2px 5px rgba(0,0,0,0.35));
    }


    #countryInfoPopup h2 {
      margin: 0 0 1px 0;
      font-size: 15px;
      line-height: 1.12;
    }

    #countryInfoSubtitle {
      color: #475569;
      font-size: 10.5px;
      line-height: 1.18;
      display: -webkit-box;
      -webkit-line-clamp: 1;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .country-facts-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1px;
      margin-top: 2px;
    }

    .country-fact-card {
      display: grid;
      grid-template-columns: 88px 1fr;
      align-items: baseline;
      gap: 6px;
      background: rgba(248, 250, 252, 0.92);
      border: 1px solid #e5e7eb;
      border-radius: 7px;
      padding: 3px 6px;
      box-sizing: border-box;
    }

    .country-fact-label {
      color: #64748b;
      font-size: 10.5px;
      font-weight: bold;
      margin-bottom: 0;
    }

    .country-fact-value {
      color: #111827;
      font-size: 11.5px;
      font-weight: 800;
      line-height: 1.15;
      word-break: break-word;
      text-align: right;
    }

    .country-fact-value.loading {
      color: #64748b;
      font-weight: 700;
    }

    .country-info-note {
      color: #64748b;
      font-size: 9.5px;
      margin: 5px 0 0 0;
      line-height: 1.15;
    }

    @media (max-width: 768px) {
      #countryInfoPopup {
        top: 10px;
        left: 10px;
        width: min(238px, calc(100vw - 20px));
        max-height: min(206px, calc(100vh - 70px));
        padding: 9px;
      }

      .country-fact-card {
        grid-template-columns: 82px 1fr;
      }
    }

    #worldCupGroupPopup {
      display: none;
      position: fixed;
      top: 216px;
      left: 10px;
      width: 258px;
      max-height: min(260px, calc(100vh - 230px));
      overflow-y: auto;
      background: rgba(255, 255, 255, 0.95);
      border-radius: 12px;
      box-shadow: 0 4px 18px rgba(0, 0, 0, 0.22);
      z-index: 997;
      box-sizing: border-box;
      padding: 8px 9px;
      color: #111827;
      font-size: 11px;
      line-height: 1.2;
      -webkit-overflow-scrolling: touch;
      touch-action: pan-y;
      overscroll-behavior: contain;
    }

    #worldCupGroupPopup h3 {
      margin: 0 0 5px 0;
      font-size: 13px;
      line-height: 1.15;
    }

    .wc-group-note {
      margin: 0 0 6px 0;
      color: #475569;
      font-size: 10px;
      line-height: 1.2;
    }

    .wc-table-wrap {
      margin-top: 5px;
      border: 1px solid #e5e7eb;
      border-radius: 8px;
      overflow: hidden;
      background: #f8fafc;
    }

    .wc-group-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 10px;
      line-height: 1.15;
    }

    .wc-group-table th,
    .wc-group-table td {
      padding: 3px 3px;
      text-align: right;
      border-bottom: 1px solid rgba(226, 232, 240, 0.95);
      white-space: nowrap;
    }

    .wc-group-table th:first-child,
    .wc-group-table td:first-child {
      text-align: left;
      width: 100%;
    }

    .wc-group-table tr:last-child td {
      border-bottom: none;
    }

    .wc-group-table .highlight-team {
      background: #fef3c7;
      font-weight: 800;
    }

    .wc-team-name {
      display: inline-block;
      max-width: 88px;
      overflow: hidden;
      text-overflow: ellipsis;
      vertical-align: bottom;
    }

    @media (max-width: 768px) {
      #worldCupGroupPopup {
        top: 220px;
        left: 10px;
        width: min(238px, calc(100vw - 20px));
        max-height: min(250px, calc(100vh - 230px));
      }

      .wc-team-name {
        max-width: 72px;
      }
    }

    .country.not-world-cup {
      fill: #cbd5e1 !important;
      stroke: #94a3b8 !important;
    }

    .country.world-cup-country {
      stroke-opacity: 0.98;
    }

    #countryInfoPopup .country-info-actions {
      display: none;
      gap: 6px;
      flex-wrap: wrap;
      margin-top: 4px;
      padding-top: 4px;
      border-top: 1px solid rgba(226, 232, 240, 0.95);
      transition: opacity 0.12s ease;
    }

    #countryInfoPopup.show-actions .country-info-actions {
      display: flex;
      pointer-events: auto;
    }

    #countryInfoPopup button,
    #countryInfoPopup a.country-info-link {
      display: inline-block;
      border: none;
      border-radius: 6px;
      padding: 5px 8px;
      font-size: 11px;
      font-weight: bold;
      cursor: pointer;
      text-decoration: none;
      background: #2C3E50;
      color: white;
    }

    #countryInfoPopup a.country-info-link {
      background: #2C3E50;
    }

    .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;
      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 h2 {
      font-size: 16px;
      line-height: 1.25;
      margin: 0 0 10px 0;
    }

    #infoOverlay p {
      margin: 10px 0;
    }

    #infoOverlay a {
      color: #1d4ed8;
      font-weight: bold;
    }

    #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;
        font-size: 12px;
        padding: 6px 8px;
      }

      #mapsMenu {
        top: 46px;
        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 h2 {
        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;
      }
    }
