diff --git a/services/pcp-tgu-ui-service/src/features/tgu-slots/TguSlotsTab.tsx b/services/pcp-tgu-ui-service/src/features/tgu-slots/TguSlotsTab.tsx
index 62d4479..e53b584 100644
--- a/services/pcp-tgu-ui-service/src/features/tgu-slots/TguSlotsTab.tsx
+++ b/services/pcp-tgu-ui-service/src/features/tgu-slots/TguSlotsTab.tsx
@@ -877,7 +877,15 @@ export function TguSlotsTab({ range }: TguSlotsTabProps) {
{booked ? (
бронь
) : (
- {slotStateLabel(slot.state)}
+
+ {slotStateLabel(slot.state)}
+
)}
diff --git a/services/pcp-tgu-ui-service/src/styles/tgu-planning.css b/services/pcp-tgu-ui-service/src/styles/tgu-planning.css
index 35d0b46..4206058 100644
--- a/services/pcp-tgu-ui-service/src/styles/tgu-planning.css
+++ b/services/pcp-tgu-ui-service/src/styles/tgu-planning.css
@@ -1167,6 +1167,14 @@
color: var(--accent-strong);
}
+/* Занятый слот — приглушённо-красный: оператор сразу видит, что бронировать его нельзя.
+ Свободные остаются нейтральными (их большинство), цветом выделяем именно исключения. */
+.tgu-slots-badge--occupied {
+ border-color: rgba(214, 69, 69, 0.5);
+ background: rgba(214, 69, 69, 0.14);
+ color: #e98a8a;
+}
+
.tgu-map-stage {
position: relative;
min-width: 0;