:root {
    --app-primary: #174f78;
    --app-primary-dark: #103a59;
    --app-bg: #f4f7fa;
}

body {
    background: var(--app-bg);
    color: #17212b;
}

.bg-primary,
.btn-primary {
    background-color: var(--app-primary) !important;
    border-color: var(--app-primary) !important;
}

.btn-primary:hover {
    background-color: var(--app-primary-dark) !important;
    border-color: var(--app-primary-dark) !important;
}

.card {
    border-radius: 1rem;
}

.login-page {
    background: linear-gradient(145deg, #e8f1f7, #f8fafc 55%, #dfeaf1);
}

.login-card {
    width: min(100%, 460px);
}

.brand-mark {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: #fff;
    background: var(--app-primary);
    font-size: 1.35rem;
    font-weight: 800;
}

.status-card {
    border-left: 5px solid transparent !important;
}

.status-green { border-left-color: #198754 !important; }
.status-red { border-left-color: #dc3545 !important; }
.legend-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; }

#calendar {
    min-height: 650px;
}

.fc .fc-toolbar-title {
    font-size: 1.25rem;
    text-transform: capitalize;
}

.fc .fc-button-primary {
    background: var(--app-primary);
    border-color: var(--app-primary);
}

.fc-event {
    cursor: pointer;
}

@media (max-width: 767.98px) {
    main.container { padding-left: .75rem; padding-right: .75rem; }
    #calendar { min-height: 520px; }
    .fc .fc-toolbar { align-items: stretch; gap: .75rem; flex-direction: column; }
    .fc .fc-toolbar-chunk { display: flex; justify-content: center; }
    .fc .fc-toolbar-title { font-size: 1.1rem; }
    .on-call-actions .btn { width: 100%; }
    .table { font-size: .9rem; }
}

