/* Plan de masse interactif (/lotissements/<id>) */
.o_re_site_plan_back {
  color: var(--ztc-text-text-2, #555);
  text-decoration: none;
}
.o_re_site_plan_canvas {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  background: #fff;
}
.o_re_site_plan_canvas img {
  display: block;
  width: 100%;
  height: auto;
}
.o_re_site_plan_canvas svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.o_re_site_plan_lot {
  fill-opacity: 0.5;
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
  cursor: pointer;
  outline: none;
  transition: fill-opacity 0.15s ease;
}
.o_re_site_plan_lot:hover,
.o_re_site_plan_lot:focus {
  fill-opacity: 0.75;
}
.o_re_site_plan_lot.o_re_site_plan_active {
  fill-opacity: 0.85;
  stroke: #111;
  stroke-width: 3;
}
.o_re_site_plan_disponible { fill: #1e9e5a; stroke: #146c3e; background: #1e9e5a; }
.o_re_site_plan_reserve { fill: #f0a020; stroke: #a86c0c; background: #f0a020; }
.o_re_site_plan_vendu { fill: #8a8f98; stroke: #5a5e66; background: #8a8f98; }

.o_re_site_plan_dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-right: 6px;
  border-radius: 50%;
  vertical-align: middle;
}
.o_re_site_plan_legend li {
  margin-right: 1.25rem;
}
.o_re_site_plan_badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
}
.o_re_site_plan_panel {
  padding: 1.5rem;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}
.o_re_site_plan_row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 0;
  border-top: 1px solid #eee;
}
.o_re_site_plan_row:first-child {
  border-top: 0;
}
