.container {
    max-width: 800px;
    margin: auto;
    background: #fff;
    padding: 20px;
}

.month {
    border: 1px solid #bbbcc0;
}

h1 {
    text-align: center;
}

.controls {
    display: flex;
    justify-content: space-between;
    margin: 20px 0;
}

.monthX {
    border: 1px solid #eeeeee;
}

button {
    padding: 8px 14px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    background: #2563eb;
    color: white;
}

button.secondary {
    background: #6b7280;
}

button.secondary:hover {
    background: #4b5563;
}

.months {
    display: grid;
    grid-template-columns: auto auto;
    gap: 15px;
}

.month-header {
    text-align: center;
    font-weight: bold;
    background: #f1f5f9;
    padding: 10px;
}

table {
    width: 100%;
    border-collapse: collapse;
}

th, td {
    border: 1px solid #e5e7eb;
    padding: 10px;
    text-align: center;
}

th.weekend,
td.weekend {
    background: #fef3c7;
}

th.price, td.price {
    padding: -2px;
}

.selectable {
    font-weight: bold;
    cursor: pointer;
}
td.selectable:hover {
    color: white;
    background-color: #555555; /* light blue */
    transition: background 0.1s;
}

.available { background: #dcfce7; }
.booked { background: #fee2e2; }
.switchTobooked {
    position: relative;
    height:20px;
    width:20px;
    background: linear-gradient(-45deg, #dcfce7 50%, #fee2e2 50%);
}
.switchFrombooked { 
    position: relative;
    height:20px;
    width:20px;
    background: linear-gradient(-45deg,#fee2e2 50%, #dcfce7 50%);
 }

.reserved { background: #f5e18a; }
.switchToreserved { 
    position: relative;
    height:20px;
    width:20px;
    background: linear-gradient(-45deg, #dcfce7 50%, #f5e18a 50%);
}
.switchFromreserved { 
    position: relative;
    height:20px;
    width:20px;
    background: linear-gradient(-45deg,#f5e18a 50%, #fee2e2 50%);
 }

.switchFromOrig:after { 
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 0; 
    height: 0; 
    display: block;
    border-left: 25px solid transparent;
    border-bottom: 25px solid transparent;
    border-top: 25px solid #fee2e2;;
}

.switchTo { 
    position: relative;
    height:20px;
    width:20px;
    background: linear-gradient(-45deg, #dcfce7 50%, #fee2e2 50%);
}

.other-month { opacity: 0.4; }

.selected {
    color: white;
    background: #2563eb;
}

.price-box {
    margin-top: 20px;
    padding: 15px;
    background: #f1f5f9;
    border-radius: 6px;
    font-size: 18px;
    text-align: center;
}

.reset-container {
    margin-top: 10px;
    text-align: center;
}

.hidden {
    display: none;
}

.fa {
    display: inline-block;
    font: normal normal normal 14px/1 FontAwesome;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.fa-navicon:before, .fa-reorder:before, .fa-bars:before {
    content: "\f0c9";
}