/* MAIN CALENDAR WRAPPER */
.calendar {
    display: flex;
    flex-flow: column;
}

/* MONTH + YEAR HEADER TEXT */
.calendar .header .month-year {
    font-size: 20px;
    font-weight: bold;
    color: #636e73;
    padding: 20px 0;
}

/* GRID (day names + cells) */
.calendar .days {
    display: flex;
    flex-flow: wrap;
}

/* DAY NAME HEADERS */
.calendar .days .day_name {
    width: calc(100% / 7);
    border-right: 1px solid #f1f2f3;
    padding: 20px;
    text-transform: uppercase;
    font-size: 12px;
    font-weight: bold;
    color: #2b2929;
    background-color: #B7D3E2;
}

/* Remove border on Saturday */
.calendar .days .day_name:nth-child(7) {
    border: none;
}

/* DAY CELLS (1–31) */
.calendar .days .day_num {
    display: flex;
    flex-flow: column;
    width: calc(100% / 7);
    border-right: 1px solid #e6e9ea;
    border-bottom: 1px solid #e6e9ea;
    padding: 15px;
    font-weight: bold;
    color: #7c878d;
    min-height: 100px;
}

/* NUMBER bubble inside each day */
.calendar .days .day_num span {
    display: inline-flex;
    width: 30px;
    font-size: 14px;
}

/* DEFAULT EVENT STYLE */
.calendar .days .day_num .event {
    margin-top: 10px;
    font-weight: 500;
    font-size: 14px;
    padding: 3px 6px;
    border-radius: 4px;
    background-color: #22698f; /* Default + Training */
    color: #fff;
    word-wrap: break-word;
}

/* PTO */
.calendar .days .day_num .event.pto {
    background-color: #d9d3d3;
    color: #161616;
}

/* ON-CALL COVERAGE */
.calendar .days .day_num .event.on-callCoverage {
    background-color: #00ABE9;
    color: #000; /* readable text */
}

/* MAINTENANCE */
.calendar .days .day_num .event.maintenance {
    background-color: #76aacd;
    color: #000;
}

/* TRAINING */
.calendar .days .day_num .event.training {
    background-color: #889296;
    color: #fff;
}

/* MEETING */
.calendar .days .day_num .event.meeting {
    background-color: #c3deec;
    color: #061018;
}

/* OTHER */
.calendar .days .day_num .event.other {
    background-color: #76aacd;
    color: #000000;
}

/* First day of each row left border */
.calendar .days .day_num:nth-child(7n+1) {
    border-left: 1px solid #e6e9ea;
}

/* Hover effect */
.calendar .days .day_num:hover {
    background-color: #f1f1f1;
}

/* Previous/next month "ignored" days */
.calendar .days .day_num.ignore {
    background-color: #fdfdfd;
    color: #ced2d4;
    cursor: default;
}

/* Highlight a selected day */
.calendar .days .day_num.selected {
    background-color: #f1f2f3;
}

/* TODAY highlight */
.today-highlight {
    background-color: #f1f1f1;
    border: 2px solid #f1f1f1;
    border-radius: 6px;
}

/* For Birthday highlights */
.birthday {
    background: #fff3cd;
    border-left: 4px solid #c3deec;
    color: #664d03;
}


/* On-call person colors */
.calendar .days .day_num .event.peter   { background-color: #f1f1f1; color: #111; border: 1px solid #E6E6E6; }
.calendar .days .day_num .event.allison { background-color: #00ABE9; color: #061018; }
.calendar .days .day_num .event.ryan    { background-color: #76AACD; color: #FFF; }
.calendar .days .day_num .event.gabriel { background-color: #889296; color: #FFF; }
.calendar .days .day_num .event.kathy   { background-color: #c3deec; color: #061018; }

/* Fallback */
.calendar .days .day_num .event.oncall  { background-color: #00ABE9; color: #061018; }
