table.calendar {
    width: 100%;
}

table.calendar caption {
    caption-side: top;
    text-align: left;
}

table.calendar,
table.calendar tr,
table.calendar th,
table.calendar td {
    border-collapse: collapse;
    border: 1px solid #333;
}

table.calendar th,
table.calendar td {
    width: 14%;
    min-width: 14%;
    max-width: 15%;
}

table.calendar th {
    text-align: center;
    background-color: #666;
    color: #fff;
}

table.calendar td {
    vertical-align: top;
    padding: 3px 5px;
    height: 80px;
    min-height: 80px;
}

table.calendar td.notthismonth {
    background-color: #ccc;
}

table.calendar td.today {
    background-color: #ffffe0;
}

table.calendar td.holiday {
    color: #ff0000;
}

table.calendar td.sunday {
    color: #ff0000;
}

table.calendar td.saturday {
    color: #1d39c0;
}

.holiday-name {
    font-size: 0.8em;
}