
        .main-container {
            display: flex;
            flex-direction: row;
            width: 100%;
            height: 100%;
        }

        .sidebar {
            width: 700px;
            min-width: 700px;
            max-width: 700px;
            height: 100%;
            overflow-y: auto;
            background-color: #f8f9fa;
            border-right: 1px solid #dee2e6;
            display: flex;
            flex-direction: column;
        }

        .sidebar-content {
            padding: 1rem;
            flex: 1;
            display: flex;
            flex-direction: column;
            min-height: 0;
        }

        .sidebar-header {
            padding-bottom: 1rem;
            border-bottom: 1px solid #dee2e6;
            margin-bottom: 1rem;
        }

        .sidebar-controls {
            margin-bottom: 1rem;
            padding-bottom: 1rem;
            border-bottom: 1px solid #dee2e6;
        }

        .cesium-container {
            flex: 1;
            height: 100%;
            position: relative;
            min-width: 0;
        }

        #cesiumContainer {
            width: 100%;
            height: 100%;
            position: absolute;
            top: 0;
            left: 0;
        }

        /* Стили для тепловой карты */
        .heatmap-toggle {
            display: flex;
            align-items: center;
            justify-content: space-between;
            width: 100%;
            margin-bottom: 1rem;
        }

        .heatmap-toggle .btn {
            flex: 1;
        }

        .switch {
            position: relative;
            display: inline-block;
            width: 60px;
            height: 34px;
            margin-left: 10px;
        }

        .switch input {
            opacity: 0;
            width: 0;
            height: 0;
        }

        .slider {
            position: absolute;
            cursor: pointer;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: #ccc;
            transition: .4s;
        }

        .slider:before {
            position: absolute;
            content: "";
            height: 26px;
            width: 26px;
            left: 4px;
            bottom: 4px;
            background-color: white;
            transition: .4s;
        }

        input:checked + .slider {
            background-color: #2196F3;
        }

        input:checked + .slider:before {
            transform: translateX(26px);
        }

        .slider.round {
            border-radius: 34px;
        }

        .slider.round:before {
            border-radius: 50%;
        }

        /* Стили таблицы */
        .table-container {
            display: flex;
            flex-direction: column;
            flex: 1;
            min-height: 0;
        }

        .table-responsive {
            display: flex;
            flex-direction: column;
            flex: 1;
            min-height: 0;
            border: 1px solid #dee2e6;
            border-radius: 4px;
            background-color: white;
            overflow: hidden;
            /* Прокрутка теперь здесь */
            overflow-y: auto;
        }

        .table {
            display: flex;
            flex-direction: column;
            flex: 1;
            min-height: 0;
            margin-bottom: 0;
            width: 100%;
        }

        .table thead {
            flex: 0 0 auto;
            display: table;
            width: 100%;
            table-layout: fixed;
            position: sticky;
            top: 0;
            z-index: 2;
            background-color: #f8f9fa;
        }

        .table tbody {
            flex: 1 1 auto;
            display: block;
            /* Убираем overflow-y: auto отсюда */
        }

        .table tbody tr {
            display: table;
            width: 100%;
            table-layout: fixed;
            cursor: pointer;
            transition: background-color 0.2s;
        }

        .table tbody tr:hover {
            background-color: #f8f9fa;
        }

        .table th, .table td {
            padding: 0.5rem 0.75rem;
            vertical-align: middle;
            font-size: 0.85rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .table thead th {
            font-weight: 600;
            background-color: #f8f9fa;
            border-bottom: 2px solid #dee2e6;
            /* Убираем position: sticky отсюда */
        }

        /* Фиксированные ширины столбцов */
        #table-stations th:nth-child(1),
        #table-stations td:nth-child(1) {
            width: 40px;
            min-width: 40px;
            max-width: 40px;
            text-align: center;
        }

        #table-stations th:nth-child(2),
        #table-stations td:nth-child(2) {
            width: 60%;
            min-width: 60%;
            max-width: 60%;
        }

        #table-stations th:nth-child(3),
        #table-stations td:nth-child(3) {
            width: 40%;
            min-width: 40%;
            max-width: 40%;
        }




        /* Фиксированные ширины столбцов */
        #table-request th:nth-child(1),
        #table-request td:nth-child(1) {
            width: 40px;
            min-width: 40px;
            max-width: 40px;
            text-align: center;
        }

        #table-request th:nth-child(2),
        #table-request td:nth-child(2) {
            width: 45%;
            min-width: 45%;
            max-width: 45%;
        }

        #table-request th:nth-child(3),
        #table-request td:nth-child(3) {
            width: 10%;
            min-width: 10%;
            max-width: 10%;
        }


        #table-request th:nth-child(4),
        #table-request td:nth-child(4) {
            width: 25%;
            min-width: 25%;
            max-width: 25%;
        }

        #table-request th:nth-child(5),
        #table-request td:nth-child(5) {
            width: 10%;
            min-width: 10%;
            max-width: 10%;
        }
        #table-request th:nth-child(6),
        #table-request td:nth-child(6) {
            width: 10%;
            min-width: 10%;
            max-width: 10%;
        }
        #table-request th:nth-child(7),
        #table-request td:nth-child(7) {
            width: 10%;
            min-width: 10%;
            max-width: 10%;
        }



        #slotsTable th:nth-child(1),
        #slotsTable td:nth-child(1) {
            width: 14%;
            min-width: 14%;
            max-width: 14%;
        }

        #slotsTable th:nth-child(2),
        #slotsTable td:nth-child(2) {
            width: 14%;
            min-width:14%;
            max-width: 14%;
        }

        #slotsTable th:nth-child(3),
        #slotsTable td:nth-child(3) {
            width: 28%;
            min-width: 28%;
            max-width: 28%;
        }
        #slotsTable th:nth-child(4),
        #slotsTable td:nth-child(4) {
            width: 14%;
            min-width: 14%;
            max-width: 14%;
        }

        #slotsTable th:nth-child(5),
        #slotsTable td:nth-child(5) {
            width: 14%;
            min-width: 14%;
            max-width: 14%;
        }
        #slotsTable th:nth-child(6),
        #slotsTable td:nth-child(6) {
            width: 8%;
            min-width: 8%;
            max-width: 8%;
        }
        #slotsTable th:nth-child(7),
        #slotsTable td:nth-child(7) {
            width: 8%;
            min-width: 8%;
            max-width: 8%;
        }



        #table-satellites th:nth-child(1),
        #table-satellites td:nth-child(1) {
            width: 20%;
            min-width: 20%;
            max-width: 20%;
        }

        #table-satellites th:nth-child(2),
        #table-satellites td:nth-child(2) {
            width: 60%;
            min-width: 60%;
            max-width: 60%;
        }

        #table-satellites th:nth-child(3),
        #table-satellites td:nth-child(3) {
            width: 10%;
            min-width: 10%;
            max-width: 20%;
        }

        #table-satellites th:nth-child(4),
        #table-satellites td:nth-child(4) {
            width: 10%;
            min-width: 10%;
            max-width: 20%;
        }


        /* Стили для сортировки */
        .table th.sortable {
            cursor: pointer;
            position: relative;
            user-select: none;
            transition: background-color 0.2s;
            padding-right: 25px;
        }

        .table th.sortable:hover {
            background-color: #e9ecef;
        }

        .sort-icon {
            position: absolute;
            right: 8px;
            top: 50%;
            transform: translateY(-50%);
            font-size: 0.8em;
            opacity: 0.5;
            transition: opacity 0.2s, color 0.2s;
        }

        .table th.sortable:hover .sort-icon {
            opacity: 0.8;
        }

        .table th.sortable.asc .sort-icon,
        .table th.sortable.desc .sort-icon {
            opacity: 1;
            color: #0d6efd;
        }

        .table th.sortable.desc .sort-icon i {
            transform: rotate(180deg);
        }

        /* Чекбоксы */
        .request-checkbox {
            cursor: pointer;
            margin: 0;
            width: 16px;
            height: 16px;
        }

        #selectAllCheckbox {
            cursor: pointer;
            width: 16px;
            height: 16px;
            margin: 0;
        }

        /* Бейджи */
        .badge {
            font-size: 0.75rem;
            padding: 0.25rem 0.5rem;
            min-width: 40px;
            text-align: center;
            display: inline-block;
        }

        /* Счетчик */
        .selected-counter {
            font-size: 0.8rem;
            color: #6c757d;
            margin-top: 0.5rem;
            padding-top: 0.5rem;
            border-top: 1px solid #dee2e6;
        }

        /* Сообщение "Нет заявок" */
        .no-requests {
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100%;
            color: #6c757d;
            font-style: italic;
        }

        /* Полоса прокрутки теперь у .table-responsive */
        .table-responsive::-webkit-scrollbar {
            width: 8px;
        }

        .table-responsive::-webkit-scrollbar-track {
            background: #f1f1f1;
            border-radius: 4px;
        }

        .table-responsive::-webkit-scrollbar-thumb {
            background: #888;
            border-radius: 4px;
        }

        .table-responsive::-webkit-scrollbar-thumb:hover {
            background: #555;
        }



/* Стили для таблицы слотов */
.slots-container {
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.slots-header {
    padding: 10px 0;
    border-bottom: 2px solid #0d6efd;
}

.slots-actions .btn {
    padding: 5px 10px;
    font-size: 0.85rem;
}

.slots-actions .btn i {
    font-size: 0.9rem;
}

#slotsTable {
    font-size: 0.85rem;
}

#slotsTable th {
    padding: 8px 10px;
    font-weight: 600;
    position: sticky;
    top: 0;
    background-color: #f8f9fa;
    z-index: 10;
}

#slotsTable td {
    padding: 6px 10px;
    vertical-align: middle;
}

#slotsTable .sortable-slot {
    cursor: pointer;
    user-select: none;
}

#slotsTable .sortable-slot:hover {
    background-color: #e9ecef;
}

#slotsTable .sortable-slot .sort-icon {
    margin-left: 5px;
    font-size: 0.8rem;
    color: #6c757d;
}

#slotsTable .sortable-slot:hover .sort-icon {
    color: #0d6efd;
}

#slotsTable .badge {
    font-size: 0.75rem;
    padding: 4px 8px;
}

#slotsTable .text-nowrap {
    white-space: nowrap;
}

.coverage-satellites-list {
    max-height: 150px;
    overflow-y: auto;
    background-color: #fff;
}

.slots-summary {
    font-size: 0.85rem;
}

.slots-summary .row {
    row-gap: 5px;
}

.slots-summary small {
    display: block;
}

/* Адаптивность */
@media (max-width: 768px) {
    .slots-summary .row > div {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

@media (max-width: 576px) {
    .slots-summary .row > div {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .slots-actions .btn {
        margin-bottom: 5px;
    }

    .slots-actions .btn:not(:last-child) {
        margin-right: 0;
    }
}





/* Панель инструментов карты */
.cesium-toolbar {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.toolbar-group {
    background: rgba(255, 255, 255, 0.9);
    border-radius: 6px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    padding: 5px;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(0, 0, 0, 0.1);
}

/* Кнопки панели инструментов */
.cesium-toolbar-btn {
    background: white;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    padding: 8px 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.9rem;
    color: #495057;
    transition: all 0.2s ease;
    min-width: 120px;
    text-align: left;
}

.cesium-toolbar-btn:hover {
    background: #e9ecef;
    border-color: #adb5bd;
    color: #0d6efd;
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.cesium-toolbar-btn:active {
    transform: translateY(0);
}

.cesium-toolbar-btn.active {
    background: #0d6efd;
    border-color: #0d6efd;
    color: white;
    box-shadow: 0 2px 8px rgba(13, 110, 253, 0.4);
}

.cesium-toolbar-btn.active:hover {
    background: #0b5ed7;
    border-color: #0b5ed7;
}

.cesium-toolbar-btn i {
    font-size: 1.1rem;
}

.btn-label {
    font-weight: 500;
}

/* Информация о линейке */
.ruler-info {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border-radius: 6px;
    padding: 10px 15px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    animation: slideDown 0.3s ease;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.ruler-info-content {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ruler-info i {
    font-size: 1.2rem;
}

.ruler-info .btn-close {
    opacity: 0.7;
    transition: opacity 0.2s;
}

.ruler-info .btn-close:hover {
    opacity: 1;
}

/* Стили для линий линейки */
.ruler-line {
    position: absolute;
    pointer-events: none;
    z-index: 1000;
    background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0.2) 100%);
    height: 2px;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% {
        opacity: 0.6;
    }
    50% {
        opacity: 1;
    }
}

/* Стили для маркеров точек */
.ruler-marker {
    position: absolute;
    width: 12px;
    height: 12px;
    background: #ff4444;
    border: 2px solid white;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 10px rgba(255, 68, 68, 0.8);
    pointer-events: none;
    z-index: 1001;
}

/* Стили для меток расстояния */
.ruler-label {
    position: absolute;
    background: rgba(0, 0, 0, 0.8);
    color: white;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    pointer-events: none;
    z-index: 1002;
    white-space: nowrap;
    transform: translate(-50%, -100%);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

/* Стили для временной линии при наведении */
.ruler-temp-line {
    position: absolute;
    pointer-events: none;
    z-index: 999;
    height: 2px;
    background: rgba(255, 255, 255, 0.5);
    width: 0;
}
