:root {
  --rl-brand: #2d6a4f;
  --rl-accent: #d4a373;
  --rl-ink: #1b1b1f;
}

.rl-logo {
  font-weight: 700;
  letter-spacing: 0.04em;
}

.rl-hero {
  background: radial-gradient(circle at 20% 20%, rgba(45, 106, 79, 0.35), transparent 45%),
              radial-gradient(circle at 80% 0%, rgba(212, 163, 115, 0.25), transparent 40%),
              linear-gradient(135deg, #081c15 0%, #1b4332 55%, #2d6a4f 100%);
  color: #fff;
}

.rl-hero .btn-primary {
  background: var(--rl-accent);
  border-color: var(--rl-accent);
  color: #1b1b1f;
}

.rl-guest-card {
  border: 0;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08);
  border-radius: 16px;
}

.rl-widget-shell {
  background: #f8faf8;
  min-height: 100vh;
}

.rl-map-canvas {
  position: relative;
  min-height: 520px;
  background: linear-gradient(180deg, #e8f5e9 0%, #c8e6c9 100%);
  border: 1px dashed rgba(27, 67, 46, 0.25);
  border-radius: 12px;
  overflow: hidden;
}

.rl-map-site {
  position: absolute;
  border-radius: 8px;
  border: 2px solid rgba(255, 255, 255, 0.9);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
  user-select: none;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}

.rl-map-site.available { background: #2d6a4f; }
.rl-map-site.occupied { background: #bc4749; }
.rl-map-site.blocked,
.rl-map-site.maintenance { background: #6c757d; }
.rl-map-site.owner_hold { background: #e09f3e; }
.rl-map-site.seasonal { background: #3a86ff; }

.rl-map-site.dragging { cursor: grabbing; opacity: 0.85; z-index: 20; }

.rl-badge-stub {
  background: #fff3cd;
  color: #664d03;
}

.page-title {
  color: var(--rl-ink);
}
