/* Nhãn và chú thích nổi trên cảnh 3D (dùng chung trang chủ và trang Làng 3D) */
.labels3d { position: absolute; top: 0; left: 0; pointer-events: none; z-index: 1; }
.farm-tag { background: rgba(255, 253, 247, 0.94); border-left: 5px solid; border-radius: 8px; padding: 4px 9px; font-size: 13px; line-height: 1.3; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); white-space: nowrap; }
.farm-tag b { display: block; }
.farm-tag span { color: var(--ink-2); font-size: 12px; }
.plot-tag { font-size: 11px; font-weight: 700; color: #3b3326; background: rgba(255, 253, 247, 0.82); padding: 1px 6px; border-radius: 6px; white-space: nowrap; }
.plot-tag.me { background: #f0a33a; color: #fff; }
.tip3d { z-index: 3; position: absolute; pointer-events: none; background: #2d2a24; color: #fff; font-size: 13px; padding: 7px 10px; border-radius: 8px; display: none; white-space: nowrap; transform: translate(12px, 12px); }
@media (max-width: 640px) { .labels3d.far .plot-tag { display: none; } } /* điện thoại: lại gần một nông trại mới hiện tên từng người */

/* Xem cả làng (máy quay ở xa): ẩn tên từng người, chỉ còn bảng tên nông trại. Lại gần thì hiện. */
.labels3d .plot-tag { transition: opacity 0.3s; }
.labels3d.far .plot-tag { opacity: 0; }
@media (max-width: 560px) { .farm-tag { font-size: 0.72rem; padding: 4px 8px; } .farm-tag span { font-size: 0.66rem; } }
