body, html {
  margin: 0;
  padding: 0;
  height: 100%;
}

/* Top section (title, info, arrows) */
.top-section {
  padding: 10px 20px;
  background: #f0f0f0;
  border-bottom: 1px solid #ccc;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  color: #222;
}

.top-left {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.top-left h2 {
  margin: 0;
  font-size: 25px;
}

.top-left span {
  font-size: 20px;
  font-weight: 500;
}

.top-right {
  display: flex;
  flex-direction: column;
  gap: 10px;
}


/* Navigation buttons (next/prev) */
.nav-buttons {
  display: inline-block;
  margin-left: 10px;
}

.nav-btn {
  font-size: 14px;
  padding: 4px 8px;
  margin: 0 2px;
  cursor: pointer;
  border: 1px solid #ccc;
  background: #007acc;
  border-radius: 4px;
  color: white; 
}

/* Bottom section: contains only the map */
.bottom-section {
  position: relative;
  height: calc(100% - 100px);
  width: 100%;
  overflow: auto;
  display: flex;
  justify-content: center;
}

/* ============================================================== */
/* KEY CHANGE: map-container is now a positioned "box" for dots   */
/* The dots will be absolutely positioned inside this container.  */
/* ============================================================== */
.map-container {
  position: relative;
  display: inline-block;
}

/* Map image inside the box */
#factory-map {
  width: 100%;
  max-width: 1600px;
  height: auto;
  border: 1px solid #ccc;
}

/* Points are positioned inside .map-container, not the whole page */
.point {
  position: absolute;
  width: 10px;
  height: 10px;
  background: #00F128;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  cursor: pointer;
  border: 1px solid #008000;
}

/* Selected dot (e.g., when its data is shown in the panel) */
.point.selected {
  background: #cc0000;     /* blue selected dot */
  border-color: #aa0000;
  box-shadow: 0 0 4px rgba(0, 122, 204, 0.6);
}


/* Thin title bar */
.thin-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 52px;              /* a bit taller to fit two lines */
  background: #f0f0f0;
  border-bottom: 1px solid #ccc;
  display: flex;
  align-items: center;
  padding: 0 16px;
  z-index: 10;
  font-family: Inter, sans-serif;
  color: #222;
}

.title-block {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.thin-header h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
}

.thin-header .subtitle {
  font-size: 0.9em;
  color: #555;
  margin: 2px 0 0 0;
}

/* Map area (pushed down by the thin header) */
.map-row {
  position: relative;
  top: 40px;              /* same as .thin-header height */
  width: 100%;
  height: calc(100vh - 40px);   /* remaining screen height */
  overflow: auto;
}



/* Floating top‑right info panel (overlaps map) */
.top-right-panel {
  position: fixed;
  top: 6px;                 /* just below title bar */
  right: 16px;
  z-index: 11;              /* above map */
  width: 360px;             /* wider than title bar */
  max-height: 400px;        /* optional: keep it scrollable */
  background: #f9f9f9;
  border: 1px solid #ccc;
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  padding: 8px;
  font-size: 12px;
  color: #0055aa;
}

.info-panel {
  margin-bottom: 8px;
  padding: 6px 8px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 11px;
  white-space: nowrap;
  overflow: auto;
}


