* { margin: 0; padding: 0; box-sizing: border-box; }
  body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
  #map { height: 100vh; width: 100vw; }
  .info-box {
    position: absolute; top: 16px; right: 16px; z-index: 1000; width: 320px;
    max-height: calc(100vh - 32px); overflow-y: auto;
    background: rgba(15, 23, 42, 0.92); backdrop-filter: blur(12px);
    color: #e2e8f0; padding: 20px; border-radius: 14px;
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 8px 32px rgba(0,0,0,0.4);
    display: none;
  }
  @media (max-width: 600px) {
    .info-box {
      top: auto; bottom: 0; right: 0; left: 0; width: 100%;
      max-height: 40vh; border-radius: 14px 14px 0 0;
      padding: 12px 16px;
    }
    .info-box h2 { font-size: 13px; }
    .info-box .val { font-size: 14px; }
    .score-badge { font-size: 22px; }
    .meta { font-size: 11px; }
  }
  .info-box h2 { font-size: 15px; font-weight: 600; color: #94a3b8; margin-bottom: 4px; }
  .info-box .val { font-size: 16px; color: #f1f5f9; margin-bottom: 12px; }
  .score-badge {
    display: inline-block; font-size: 28px; font-weight: 700;
    color: #00e5ff; margin-top: 4px;
  }
  .price { color: #4ade80; font-weight: 600; }
  .meta { font-size: 13px; color: #64748b; margin-top: 8px; }
  .meta span { color: #94a3b8; }
  .error-box {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
    z-index: 1000; background: rgba(239,68,68,0.9); color: white;
    padding: 16px 24px; border-radius: 10px; font-size: 15px;
    display: none;
  }
  a { color: #00e5ff; }
