#calendar-panel {
    display: grid;
    grid-template-columns: 217px auto;
    grid-template-rows: 251px;
    margin: 0 0 20px 0;
}

#calendar-events-panel {
    display: grid;
    grid-template-rows: 30px auto;
}

#calendar-active-date {
    line-height: 27px;
    text-align: center;
    font-size: 1.7rem;
}

#calendar-events {
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    padding-right: 3px;
}

#calendar-events::-webkit-scrollbar {
    width: 10px;
    border-radius: 5px;
    box-sizing: content-box;
    background-color: #8f764c;
    margin-left: 10px;
    border: 1px solid #e9cc9a;
    border-left: 1px solid #6a491c;
    border-top: 1px solid #6a491c;
}

#calendar-events::-webkit-scrollbar-thumb {
    background: #1b1917;
    border-radius: 5px;
    border-right: 1px solid #e9cc9a;
    border-left: 1px solid #6a491c;
}

.calendar-event-view {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid #000;
    margin: 0 0 3px 0;
    padding: 1px 4px;
    color: #c1a282;
}

.calendar-event-view::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background: url(images/bg.png);
    opacity: 0.95;
}

.calendar-event-description {
    position: relative;
}

.calendar-event-time {
    position: relative;
    display: flex;
    justify-content: space-between;
    color: #837360;
}

.calendar-event-time .calendar-event-marker {
    width: 10px;
}

.calendar-event-time .calendar-event-marker::after {
    box-shadow: 0 0 0 1px #6666667F;
    width: 8px;
    height: 8px;
    top: 6px;
}

#calendar-events.empty {
    justify-content: center;
    align-items: center;
    text-align: center;
}

#calendar-container {
    position: relative;
    color: #c1a282;
    width: 200px;
    border: 1px solid #000;
    padding: 0 6px;
}

#calendar-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background: url(images/bg.png);
    opacity: 0.95;
}

.calendar-month-select {
    margin-left: .5rem;
    min-width: 200px;
}

.calendar-month-row {
    text-align: center;
}

.calendar-week-row {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    line-height: 32px;
}

.calendar-week-row > div {
    position: relative;
    color: #837360;
}

.calendar-week-row > div::before {
    content: '';
    position: absolute;
    border-bottom: 1px solid #544b3f;
    top: 0;
    bottom: 3px;
    left: 3px;
    right: 3px;
}

.calendar-week-row > div:nth-child(n + 6)::before {
    border-color: #680202;
}

.calendar-view {
    display: flex;
    flex-direction: column;
}

.calendar-days-wrapper {
    position: relative;
}

.calendar-days-wrapper.loading::after {
    content: '📅';
    font-size: 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    box-shadow: 0 0 25px #000, 0 0 25px #000;
    background: #000000b0;
    border-radius: 10px;
    left: 25px;
    top: 25px;
    bottom: 25px;
    right: 25px;
    animation: loading 1000ms infinite;
}

@keyframes loading {
    0% {color: #CCCCCCFF}
    50% {color: #CCCCCC00}
    100% {color: #CCCCCCFF}
}


.calendar-days-tray {
    position: absolute;
    top: 0;
    left: 0;
}

.calendar-days-container {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
}

.calendar-day {
    position: relative;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid transparent;
    box-shadow: inset 0 0 0 1px #544b3f;
}

.calendar-day-muted:not(.active) {
    color: #544b3f;
    box-shadow: none;
}

.calendar-day-muted:not(.active) .calendar-event-marker {
    opacity: 0.25;
}

.calendar-day-active {
    color: #24b2bf;
    box-shadow: inset 0 0 0 1px #125a61;
    font-weight: bold;
}

.calendar-day:hover, .calendar-day.active {
    background: #FFFFFF37;
    cursor: pointer;
    color: #dbb793;
    box-shadow: inset 0 0 0 1px #c1a282;
    transition: background-color 300ms;
}

.calendar-day:hover::after, .calendar-day.active::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 50%;
    background: linear-gradient(15deg, #FFFFFF00 0%, #FFFFFF00 10%, #FFFFFF30 11%, #FFFFFF30 100%);
    animation: shine 300ms;
}

@keyframes shine {
    0% {bottom: 100%;}
    100% {bottom: 50%;}
}

#calendar-selector-container {
    position: relative;
    display: flex;
    justify-content: center;
}

.calendar-month {
    line-height: 40px;
    text-align: center;
    flex: 0 0 100px;
}

.calendar-prev-button, .calendar-next-button {
    text-align: center;
    width: 40px;
    line-height: 40px;
    cursor: pointer;
    font-size: 1.5rem;
}

.calendar-prev-button:hover, .calendar-next-button:hover {
    color: #FFF;
}

.calendar-prev-button:active, .calendar-next-button:active {
    color: #AAA;
}

.calendar-prev-button::before {
    content: '‹';
}

.calendar-next-button::before {
    content: '›';
}

.calendar-event-marker {
    width: 100%;
    position: relative;
}

.calendar-event-marker::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 0;
    width: 4px;
    height: 4px;
    border-radius: 5px;
}

.calendar-event-container {
    display: flex;
    position: absolute;
    bottom: 2px;
    height: 4px;
    left: 4px;
    right: 4px;
    justify-content: flex-end;
}


.calendar-event-marker-EVENT_TYPE_EXP::after {
    background-color: #dbb793;
}

.calendar-event-marker-EVENT_TYPE_GOLD::after {
    background-color: #616161;
}

.calendar-event-marker-EVENT_TYPE_DROP::after {
    background-color: #dcdcdc;
}

.calendar-event-marker-EVENT_TYPE_PET::after {
    background-color: #904d00;
}

.calendar-event-marker-EVENT_TYPE_BUFF::after {
    background-color: #d5ce12;
}

.calendar-event-marker-EVENT_TYPE_BOSS::after {
    background-color: #a2c03b;
}

.calendar-event-marker-EVENT_TYPE_LIMITED_OFFER::after {
    background-color: #00ceac;
}

.calendar-event-marker-EVENT_TYPE_FLOWER::after {
    background-color: #0dbfde;
}

.calendar-event-marker-EVENT_TYPE_FREE_DUNGEON::after {
    background-color: #07416c;
}

.calendar-event-marker-EVENT_TYPE_SUMMON_STONE::after {
    background-color: #4f46a3;
}

.calendar-event-marker-EVENT_TYPE_SUMMON_BOSS::after {
    background-color: #008e24;
}

.calendar-event-marker-EVENT_TYPE_SUMMON_DUNGEON_BOSS::after {
    background-color: #d50a61;
}

.calendar-event-marker-EVENT_TYPE_TWOBOSS::after {
    background-color: #d50f11;
}

.calendar-event-marker-EVENT_TYPE_TWOSTONE::after {
    background-color: #cb6e14;
}

.calendar-event-marker-EVENT_TYPE_CARD::after {
    background-color: #242424;
    box-shadow: inset 0 0 0 1px #2d2d2d;
}

.calendar-event-marker-EVENT_TYPE_TANAKA::after {
    background-color: #3a125b;
}

.calendar-event-marker-EVENT_TYPE_FISH::after {
    background-color: #0c1344;
}

.calendar-event-marker-EVENT_TYPE_ZUO::after {
    background-color: #126245;
}

.calendar-event-marker-EVENT_TYPE_TWOBOSS_DUNGEON::after {
    background-color: #a85346;
}




