body {
    background: #f4f6f9;
    font-size: 0.95rem;
}

.bg-patrol {
    background: #1f4e79;
}

.navbar-brand img {
    margin-right: 6px;
}

.card {
    margin-bottom: 1rem;
}

.card-header {
    font-weight: 600;
}

.partner {
    display: inline-block;
    margin-right: 1rem;
}

.text-pre {
    white-space: pre-wrap;
}

.table td, .table th {
    vertical-align: middle;
}

.badge-flag {
    margin-right: 4px;
}

/* Admin calendar: colour = shift state (admin/page.py admin_shift_events). */
.fc .fc-event {
    cursor: pointer;
    white-space: normal;
}

.fc .shift-planned {
    background: #1f4e79;
    border-color: #1f4e79;
}

.fc .shift-reported {
    background: #28a745;
    border-color: #28a745;
}

.fc .shift-missing {
    background: #fd7e14;
    border-color: #fd7e14;
}

.fc .fc-daygrid-day {
    cursor: pointer;
}

.fc .fc-event-title, .fc .fc-event-time {
    color: #fff;
}

.legend span {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 2px;
    margin: 0 4px 0 12px;
    vertical-align: middle;
}

@media (max-width: 576px) {
    .fc .fc-toolbar {
        flex-direction: column;
        gap: 6px;
    }
}

@media print {
    body {
        background: #fff;
    }
    .card {
        border: none;
    }
}

.pointer {
    cursor: pointer;
}
