/* ---------- Deadlines calendar grid ---------- */
.calendar-grid {
    background: #fff;
    border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius, 12px);
    overflow: hidden;
}
.calendar-weekday-row,
.calendar-week-row {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}
.calendar-weekday {
    padding: 8px;
    text-align: center;
    font-size: .75rem;
    font-weight: 600;
    color: var(--pp-text-muted);
    text-transform: uppercase;
    border-bottom: 1px solid var(--pp-border);
    background: var(--pp-surface);
}
.calendar-day-cell {
    min-height: 100px;
    padding: 6px;
    border-right: 1px solid var(--pp-border);
    border-bottom: 1px solid var(--pp-border);
    overflow: hidden;
}
.calendar-week-row .calendar-day-cell:last-child {
    border-right: none;
}
.calendar-day-blank {
    background: var(--pp-bg);
}
.calendar-day-today {
    background: color-mix(in srgb, var(--pp-primary) 6%, transparent);
}
.calendar-day-number {
    font-size: .8rem;
    font-weight: 600;
    margin-bottom: 4px;
    color: var(--pp-text);
}
.calendar-day-today .calendar-day-number {
    color: var(--pp-primary);
}
.calendar-day-item {
    display: block;
    font-size: .68rem;
    padding: 2px 5px;
    margin-bottom: 2px;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: left;
}
.calendar-day-more {
    font-size: .68rem;
    color: var(--pp-text-muted);
}
@media (max-width: 768px) {
    .calendar-day-cell { min-height: 70px; }
    .calendar-day-item { font-size: .6rem; }
}