/* ===== Path Map ===== */
.path-map {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px 0 40px;
  position: relative;
}

.unit-section {
  width: 100%;
  margin-bottom: 32px;
}

.unit-header {
  text-align: center;
  margin-bottom: 24px;
  padding: 16px;
  background: var(--bg-card);
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
}

.unit-header h2 {
  font-size: 1.25rem;
  margin-bottom: 4px;
}

.unit-header .unit-desc {
  color: var(--text-muted);
  font-size: 0.8125rem;
}

.unit-locked .unit-header {
  opacity: 0.5;
}

.unit-locked .unit-header::after {
  content: "Locked";
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  background: var(--bg-elevated);
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  color: var(--text-muted);
}

/* Zigzag lesson nodes */
.path-nodes {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  position: relative;
}

.path-node {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1.25rem;
  cursor: pointer;
  transition: all var(--transition);
  position: relative;
  border: 4px solid transparent;
  z-index: 2;
}

/* Zigzag positioning */
.path-node:nth-child(odd) { transform: translateX(-40px); }
.path-node:nth-child(even) { transform: translateX(40px); }

/* Connector lines between nodes */
.path-node:not(:first-child)::before {
  content: '';
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  width: 3px;
  height: 20px;
  z-index: 1;
}

/* Node states */
.path-node-completed {
  background: var(--green);
  color: #131f24;
  border-color: var(--green-dark);
}
.path-node-completed::before { background: var(--green); }

.path-node-available {
  background: var(--bg-elevated);
  color: var(--text-primary);
  border-color: var(--green);
  box-shadow: 0 0 0 4px rgba(88, 204, 2, 0.2);
  animation: nodePulse 2s ease-in-out infinite;
}
.path-node-available::before { background: var(--green); }

.path-node-locked {
  background: var(--bg-card);
  color: var(--text-muted);
  border-color: var(--border);
  cursor: default;
  opacity: 0.5;
}
.path-node-locked::before { background: var(--border); }

.path-node-in-progress {
  background: var(--bg-elevated);
  color: var(--yellow);
  border-color: var(--yellow);
  box-shadow: 0 0 0 4px rgba(255, 200, 0, 0.2);
}
.path-node-in-progress::before { background: var(--yellow); }

.path-node:hover:not(.path-node-locked) {
  transform: translateX(var(--offset, 0)) scale(1.1);
}
.path-node:nth-child(odd):hover:not(.path-node-locked) { --offset: -40px; }
.path-node:nth-child(even):hover:not(.path-node-locked) { --offset: 40px; }

.path-node-label {
  position: absolute;
  bottom: -24px;
  white-space: nowrap;
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--text-muted);
}

.path-node-completed .path-node-label { color: var(--green); }
.path-node-available .path-node-label { color: var(--text-primary); }

/* Checkmark for completed */
.path-node-completed::after {
  content: '';
  width: 20px;
  height: 12px;
  border-left: 3px solid #131f24;
  border-bottom: 3px solid #131f24;
  transform: rotate(-45deg);
  margin-bottom: 4px;
}

@keyframes nodePulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(88, 204, 2, 0.2); }
  50% { box-shadow: 0 0 0 8px rgba(88, 204, 2, 0.1); }
}

/* Floating panda guide */
.path-panda-guide {
  position: fixed;
  bottom: 80px;
  right: 16px;
  z-index: 10;
  animation: pandaFloat 3s ease-in-out infinite;
}

@keyframes pandaFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
