    ul.hex-grid {
      width: 850px;
      font-size: 0;
      padding: 0;
      margin: 20px auto;
      list-style: none;
      line-height: 0;
      text-align: left;
      position: relative;
      user-select: none;
    }

    ul.hex-grid li {
      display: inline-block;
      position: relative;
      width: 105px;
      height: 90px;
      margin: 0 -5px -27px;
      font-size: 14px;
      line-height: normal;
      vertical-align: top;
      background: #222;
      color: white;
      clip-path: polygon(26% 0%, 74% 0%, 100% 50%, 74% 100%, 26% 100%, 0% 50%);
      text-align: center;
      padding-top: 30px;
      box-sizing: border-box;
      cursor: pointer;
      transition: background-color 0.3s ease;
    }

    ul.hex-grid li:nth-child(even) {
      margin-top: 45px;
    }

    ul.hex-grid li.occupied {
      background: #444;
    }

    ul.hex-grid li.occupied:hover {
      background-color: rgba(255,255,255,0.15);
    }

    ul.hex-grid li.blank {
      background: transparent;
      pointer-events: none;
      cursor: default;
    }

    /* Custom color classes */
    .red-hex { background: #b22222 !important; }
    .blue-hex { background: #1e90ff !important; }
    .green-hex { background: #228b22 !important; }

    .hex-link {
      display: block;
      color: inherit;
      text-decoration: none;
      height: 100%;
      width: 100%;
      position: absolute;
      top: 0;
      left: 0;
      padding-top: 30px;
      box-sizing: border-box;
    }

    /* Tooltip styling */
    #tooltip {
      position: absolute;
      pointer-events: none;
      background: #111;
      color: white;
      padding: 6px 10px;
      font-size: 12px;
      border-radius: 4px;
      white-space: nowrap;
      display: none;
      transform: translateX(-50%);
      z-index: 9999;
    }

    /* Tooltip arrow */
    #tooltip::after {
      content: "";
      position: absolute;
      bottom: -6px;
      left: 50%;
      transform: translateX(-50%);
      border-width: 6px 6px 0 6px;
      border-style: solid;
      border-color: #111 transparent transparent transparent;
      filter: drop-shadow(0 -1px 1px rgba(0,0,0,0.3));
    }

    /* Bottom sliding info panel */
    #info-panel {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 100%;
      max-width: 900px;
      margin: 0 auto;
      right: 0;
      background: #222;
      box-shadow: 0 -4px 15px rgba(0,0,0,0.7);
      color: white;
      font-size: 16px;
      padding: 20px;
      box-sizing: border-box;
      transform: translateY(100%);
      transition: transform 0.4s ease;
      z-index: 10000;
      border-top-left-radius: 10px;
      border-top-right-radius: 10px;
      overflow: auto;
      max-height: 150px;
    }

    #info-panel.open {
      transform: translateY(0);
    }

    #info-panel h2 {
      margin: 0 0 10px;
    }

    #info-panel p {
      margin: 0;
    }

    #info-close {
      position: absolute;
      top: 8px;
      right: 12px;
      background: transparent;
      border: none;
      color: #ccc;
      font-size: 24px;
      cursor: pointer;
      transition: color 0.3s ease;
    }

    #info-close:hover {
      color: white;
    }