/* ===== Общие стили ===== */

body {
    background-color: #f5f7fa;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* ===== Таблица контрактов ===== */

.table th {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.table td {
    vertical-align: middle;
}

/* ===== Календарь ===== */

.calendar-table {
    table-layout: fixed;
}

.calendar-cell {
    height: 100px;
    vertical-align: top;
    padding: 4px !important;
    font-size: 0.85rem;
    transition: background-color 0.2s;
}

.calendar-cell:hover {
    background-color: #e8f4fd !important;
}

.calendar-day-number {
    font-weight: bold;
    font-size: 1rem;
    margin-bottom: 2px;
}

.calendar-today {
    background-color: #e3f2fd !important;
    border: 2px solid #2196F3 !important;
}

.calendar-event {
    font-size: 0.7rem;
    padding: 2px 4px;
    margin-bottom: 2px;
    border-radius: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ===== Уведомления (toast-стиль) ===== */

.notification-toast {
    min-width: 320px;
    max-width: 420px;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    animation: slideIn 0.4s ease-out;
    margin-bottom: 10px;
}

@keyframes slideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes fadeOut {
    from {
        opacity: 1;
        transform: translateX(0);
    }
    to {
        opacity: 0;
        transform: translateX(100%);
    }
}

.notification-toast.removing {
    animation: fadeOut 0.3s ease-in forwards;
}

/* ===== Пульсирующий индикатор ===== */

.pulse-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    animation: pulse 1.5s infinite;
}

.pulse-dot.red {
    background-color: #dc3545;
}

.pulse-dot.yellow {
    background-color: #ffc107;
}

@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.7);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(220, 53, 69, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(220, 53, 69, 0);
    }
}

/* ===== Карточки сводки ===== */

.card {
    transition: transform 0.2s;
}

.card:hover {
    transform: translateY(-2px);
}

/* ===== Адаптивность ===== */

@media (max-width: 768px) {
    .calendar-cell {
        height: 60px;
        font-size: 0.7rem;
    }

    .calendar-event {
        font-size: 0.6rem;
    }

    .notification-toast {
        min-width: 280px;
    }
}
