/* Shared light-mode seatmap visuals used by admin + frontend */
.jd-canvas-wrap {
  position: relative;
  overflow: auto;
  padding: 20px;
  background: linear-gradient(180deg, #fafbfd, #f4f6fa);
  border-radius: 10px;
}
.jd-stage {
  max-width: 860px;
  margin: 0 auto 18px;
  background: linear-gradient(180deg, #eef2ff, #e0e7ff);
  border: 1px solid #c7d2fe;
  border-radius: 999px;
  height: 40px;
  display: flex; align-items: center; justify-content: center;
  color: #4338ca;
  letter-spacing: 6px; font-size: 12px; text-transform: uppercase;
}
.jdance-editor svg,
.jdance-frontend svg {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
  user-select: none;
  touch-action: none;
}
.jd-seat {
  cursor: pointer;
  transition: transform .08s ease, filter .15s;
}
.jd-seat:hover:not(.jd-taken) {
  transform: translateY(-2px);
  filter: brightness(1.08);
}
.jd-taken {
  cursor: not-allowed;
  fill: #d0d5dd !important;
}
.jd-sel {
  stroke: #111827;
  stroke-width: 2;
  fill: #e11d48 !important;
}
.jd-cell-empty {
  fill: transparent;
  stroke: #d5d9e2;
  stroke-width: 1;
  stroke-dasharray: 2 2;
  cursor: crosshair;
}
.jd-cell-empty:hover { fill: #eef0f5; }
.jd-row-tag { fill: #e5e7eb; cursor: text; }
.jd-row-tag-text { fill: #374151; font-size: 10px; font-weight: 600; pointer-events: none; }
.jd-row-num {
  fill: #6b7280;
  font-size: 10px;
  font-weight: 700;
  pointer-events: none;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.jd-seat-mark {
  font-size: 9px;
  pointer-events: none;
  font-family: 'Apple Color Emoji', 'Segoe UI Emoji', sans-serif;
}
.jd-seat.jd-hidden {
  opacity: 0.35;
  stroke: #6b7280;
  stroke-width: 1;
  stroke-dasharray: 3 2;
}
.jd-seat-text {
  fill: #111827;
  font-size: 8px;
  font-weight: 700;
  pointer-events: none;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.jd-seat-text-taken { fill: #6b7280; }
.jd-seat.jd-sel + .jd-seat-text { fill: #fff; }

@keyframes jdOrphanPulse {
  0%,100% { stroke: #f59e0b; stroke-width: 3; filter: drop-shadow(0 0 6px #f59e0b); }
  50%     { stroke: #f59e0b; stroke-width: 3; filter: none; }
}
.jd-orphan-flash { animation: jdOrphanPulse .4s ease-in-out 3; }

.jd-toast-wrap {
  position: fixed;
  bottom: 28px; left: 50%;
  transform: translateX(-50%);
  z-index: 99;
  pointer-events: none;
  display: flex; flex-direction: column; gap: 8px; align-items: center;
}
.jd-toast {
  background: #fef3c7; color: #92400e; border: 1px solid #f59e0b;
  padding: 10px 16px; border-radius: 10px; font-size: 13px;
  box-shadow: 0 8px 30px rgba(0,0,0,.12);
  max-width: 420px; text-align: center;
  opacity: 0; transform: translateY(10px);
  transition: opacity .18s ease, transform .18s ease;
}
.jd-toast.show { opacity: 1; transform: translateY(0); }
