body {
  background-color: #f8f9fa;
  font-family: 'Segoe UI', sans-serif;
}

.navbar {
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

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

.table-action-buttons .btn {
  min-width: 70px;
}

.card {
  border-radius: 10px;
}

h2 {
  color: #004aad;
  margin-bottom: 20px;
}

.card {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.timeline {
    border-left: 3px solid #0d6efd;
    padding-left: 20px;
}
.timeline li:before {
    content: "●";
    color: #0d6efd;
    margin-right: 10px;
}

.report-card {
    border-radius: 12px;
    transition: 0.2s;
}
.report-card:hover {
    transform: scale(1.05);
    cursor: pointer;
    background-color: #f8f9fa;
}

.container-fluid {
    max-width: 98% !important; /* Wider screens */
}


/* ------------------------ */
/* WEEKLY CALENDAR – NEW UI */
/* ------------------------ */

/* Outer container */
.weekly-container {
    width: 100%;
    padding: 20px;
}

/* Sticky weekday header */
.weekly-header-row {
    position: sticky;
    top: 70px;               /* below navbar */
    background: #fff;
    z-index: 9;
    border-bottom: 2px solid #ddd;
}

/* Hour column */
.weekly-hour-col {
    width: 70px;
    min-width: 70px;
    background: #fafafa;
    font-size: 12px;
    color: #444;
    border-right: 1px solid #e0e0e0 !important;
}

/* Grid wrapper (scrollable vertically) */
.weekly-grid-wrapper {
    height: calc(100vh - 200px);
    overflow-y: scroll;
    border-left: 1px solid #e0e0e0;
    border-bottom: 1px solid #e0e0e0;
}

/* Each row (1 hour) */
.weekly-row {
    min-height: 60px;      /* bigger, nicer cells */
    border-bottom: 1px solid #eee;
}

/* Each cell (day column) */
.weekly-cell {
    flex: 1;
    min-height: 60px;
    border-right: 1px solid #e0e0e0;
    position: relative;
    padding: 2px;
    background: #ffffff;
}

/* TODAY highlight */
.weekly-day-col.today-col {
    background: #ecf6ff !important;
    border-bottom: 2px solid #007bff !important;
}

/* Event badge styling */
.weekly-event {
    display: block;
    padding: 4px 8px;
    border-radius: 6px;
    font-size: 11px;
    line-height: 1.2;
    margin-bottom: 4px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}

.weekly-event:hover {
    opacity: 0.9;
    transform: scale(1.01);
}

/* Consultant name */
.weekly-event .fw-semibold {
    font-size: 12px;
}

/* Day header columns */
.weekly-day-col {
    flex: 1;
    border-right: 1px solid #e0e0e0;
    background: #f9f9f9;
}

/* Sticky hour labels */
.weekly-hour-col {
    position: sticky;
    left: 0;
    z-index: 10;
}
