:root {
    --primary: rgb(1, 4, 9);
    --secondary: rgb(13, 17, 23);
    --tertiary: rgb(48, 54, 61);
    --aside: rgb(22,27,34);
    
    --inactive: dimgray;
    --cf-activity: mediumBlue;
    --gh-activity: green;
    --bc-activity: purple;
    --cses-activity: brown;
}

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: var(--primary);
    color: white;
}

main {
    width: 70%;
    margin: auto;
    margin-top: 20px;
    margin-bottom: 20px;
    padding: 20px;
    background-color: var(--secondary);

    border-style: solid;
    border-color: var(--tertiary);
    border-width: 1px;
    border-radius: 5px;
}

#explanation {
    border-radius: 3px;
    background-color: var(--aside);
    padding: 10px;
    margin: 0px 0px 20px 0px;
}

.year-aside-calendar {
    align-content: center;
    margin: 0px 10px;
}
        

/* CALENDAR */

#year-aside-calendar1 {
    margin-right: 40px;
    margin-left: 0px;
}

.calendar-wrapper {
    overflow: hidden;
    position: relative;
}

.calendar-container.slide-right {
    transform: translateX(50%);
    opacity: 0;
}

.calendar-container.slide-left {
    transform: translateX(-50%);
    opacity: 0;
}

.calendar-container {
    justify-content: center;
    display: flex;
    width: 100%;
    margin: 15px auto 25px auto;

    transition: transform 200ms ease, opacity 200ms ease;
}

.calendar {
    border-collapse: collapse;
    margin-top: 15px;
    padding-bottom: 25px;
    user-select: none;

    display: flex;
    white-space: nowrap;
    width: 80%;
}
    .day {
        background-color: var(--inactive);
        width: 11px;
        height: 11px;
        padding: 0;
        margin: 0px 4px;
        border-radius: 2px;
    }
    .day:hover {
        cursor: pointer;
    }
    td {
        font-size: 12px;
    }

#day-details {
    background-color: rgb(31,111,235);
    padding: 10px;
    border-radius: 3px;
    display: inline-block;
    margin-top: 10px;
}


/* INPUT FILTERS */

input[type="checkbox"] {
    display: none;
}

label[for="cf-checkbox"], label[for="gh-checkbox"], label[for="bc-checkbox"], label[for="cses-checkbox"]  {
    border-radius: 5px;
}

label[for^="year"] {
    border-radius: 5px;
}

.filter {
    display: inline-block;
    margin: 0 0 1rem 10px;
    padding: 0;
    
}
    input[type=checkbox]:checked + label {
        border-color: green;
    }
    .filter label {
        padding: 5px;
        border-color: var(--tertiary);
        border-style: solid;
        border-width: 1px;
        user-select: none;
        cursor: pointer;
    }
    .filters-container {
        justify-content: space-around;
    }
    .filters-container p {
        align-content: center;
        margin: 0;
        display: inline-block;
    }
    .filter .day {
        display: inline-block;
    }
    .filter .cf-activity {
        background-color: var(--cf-activity);
    }
    .filter .gh-activity {
        background-color: var(--gh-activity);
    }
    .filter .bc-activity {
        background-color: var(--bc-activity);
    }
    .filter .cses-activity {
        background-color: var(--cses-activity);
    }

hr {
    border: none;
    background-color: var(--tertiary);
    height: 1px;
}


/* TOOLTIPS */

.tooltip {
    position: relative;
    display: inline-block;
}
    .tooltip .tooltiptext {
        font-size: 15px;
        visibility: hidden;
        background-color: #555;
        color: #fff;
        text-align: center;
        border-radius: 6px;
        padding: 5px 10px;
        position: absolute;
        transform: translate(-50%);
        left: 50%;
        z-index: 1;
        bottom: 125%;
        opacity: 0;
        transition: opacity 0.2s;
        pointer-events: none;
    }
    .tooltip:hover .tooltiptext {
        visibility: visible;
        opacity: 1;
    }


/* SOCIAL */

.social-container {
    margin: auto;
    margin-left: 10px;
    width: 35px;
    height: 35px;
    overflow: hidden;
    align-content: center;
}
    .social-container i {
        font-size: 30px;
        color: white;
    }

    
/* HEADING */

header {
    padding: 5px 50px;
    display: flex;
    background-color: var(--secondary);
    justify-content: space-between;
    border-bottom: solid var(--tertiary);
    border-width: 1px;
}
    header p {
        margin: auto;
        margin-right: 10px;
    }


/* RESPONSIVITY */

@media screen and (max-width: 576px) {
    p {
        margin-bottom: 10px !important;
    }
    .sm-display-block {
        display: block !important;
    }
}


/* bootstrap X large */
@media screen and (max-width: 1800px) {
    .calendar {
        overflow-x: auto;
        width: fit-content;
    }
}

/* bootstrap medium */
@media screen and (max-width: 768px) {
    main {
        padding: 10px;
        margin: auto;
        background-color: var(--secondary);
        width: auto;
        border-width: 0;
    }
    #explanation {
        padding: 0 !important;
        background-color: var(--secondary);
    }
}

/* bootstrap small */
@media screen and (max-width: 576px) {
    p {
        margin-bottom: 10px !important;
    }
    .sm-display-block {
        display: block !important;
    }
}

/* L-movel */
@media screen and (max-width: 425px) {
    .filters-container {
        justify-content: space-between;
    }
}


/* ANIMATION */

div:target {
    border-radius: 5px;
    animation: target 500ms ease-out;
    animation-iteration-count: 2;
    padding-right: 10px;
}
.highlight {
    animation: highlight 300ms ease-out;
}
    @keyframes target {
        0% {
            background-color: var(--secondary);
        }
        50% {
            background-color: yellow;
        }
        100% {
            background-color: var(--secondary);
        }
    }
    @keyframes highlight {
        0% {
            background-color: var(--secondary);
        }
    }

.hide {
    visibility: hidden;
}

.d-flex {
    display: flex;
}

.justify-between {
    justify-content: space-between;
}

.ml-1 {
    margin-left: 10px;
}