/* Spotify-style CSS - Colors as CSS Variables */
:root {
    --green: rgb(30, 215, 96);
    --light-black: rgb(40, 40, 40);
    --black: rgb(24, 24, 24);
    --grey: rgb(170, 170, 170);
    --sand: rgb(200, 200, 200);
    --white: rgb(255, 255, 255);
    --blue: #4688d7;
    --padding-xs: 5px;
    --padding-sm: 10px;
    --padding: 15px;
    --padding-lg: 30px;
    --padding-xl: 60px;
    --margin-xs: 5px;
    --margin-sm: 10px;
    --margin: 15px;
    --margin-lg: 30px;
    --margin-xl: 60px;
    --border-radius: 15px;
    --x-small: 11px;
    --small: 14px;
    --medium: 16px;
    --large: 20px;
    --x-large: 24px;
    --xx-large: 36px;
    --xxx-large: 52px;
}

body {
    background: var(--black);
    font-family: 'Roboto', sans-serif;
    margin: 0;
    padding: 0;
    color: var(--grey);
}

a {
    color: var(--grey);
    text-decoration: none;
}

a:hover {
    color: var(--sand);
}

/* Header */
.header {
    background: var(--light-black);
    padding: var(--padding-sm);
    border-bottom: 1px solid var(--black);
    display: flex;
    flex-flow: row wrap;
    align-items: center;
}

.page-flows {
    display: flex;
    gap: var(--margin-sm);
}

.page-flows .flow {
    font-size: var(--large);
    color: var(--grey);
}

.page-flows .flow:hover {
    color: var(--white);
}

.search {
    margin-left: 1%;
    flex: 1;
    max-width: 300px;
}

.search input {
    width: 100%;
    border-radius: var(--border-radius);
    border: none;
    background: var(--white);
    color: var(--black);
    padding: var(--padding) var(--padding-lg) var(--padding) var(--padding-lg);
    outline: none;
    background-image: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/7022/ios-search.svg);
    background-repeat: no-repeat;
    background-size: 10%;
    background-position: 5% center;
    box-sizing: border-box;
}

.user {
    width: 300px;
    margin-left: auto;
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    align-items: center;
}

.user i {
    font-size: var(--large);
    cursor: pointer;
}

.user i:hover {
    color: var(--white);
}

/* Content Layout */
.content {
    display: flex;
    flex-flow: row wrap;
    min-height: calc(100vh - 120px);
}

.content__left {
    width: 15%;
    background: var(--light-black);
}

.content__middle {
    width: 70%;
    padding: var(--padding-lg);
}

.content__right {
    width: 15%;
    background: var(--light-black);
}

/* Navigation */
.navigation {
    padding: var(--padding);
    background: var(--light-black);
    color: var(--grey);
    overflow-y: auto;
    height: calc(100vh - 120px);
}

.navigation__list {
    display: flex;
    flex-flow: column wrap;
}

.navigation__list__header {
    font-size: var(--x-small);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: var(--margin-xs);
}

.navigation__list__header:after {
    font-family: "Font Awesome 6 Free";
    content: "\f0d7";
    margin-left: 5px;
}

.navigation__list__item {
    color: var(--grey);
    padding: var(--padding-xs) 0;
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
}

.navigation__list__item:hover {
    color: var(--white);
    border-right: 3px solid var(--green);
}

.navigation__list__item i {
    width: 25px;
}

.navigation__list__item.active {
    color: var(--white);
    border-right: 3px solid var(--green);
}

/* Media Cards */
.section-title {
    text-transform: uppercase;
    color: var(--grey);
    letter-spacing: 1.25px;
    font-size: calc(var(--x-small) * 1.2);
    margin-bottom: var(--margin-sm);
}

.media-cards {
    display: flex;
    flex-flow: row wrap;
    gap: var(--margin);
}

.media-card {
    width: calc((100% / 4) - 2 * var(--margin));
    background: var(--light-black);
    border-radius: var(--border-radius);
    overflow: hidden;
    transition: all 0.3s ease;
}

.media-card:hover {
    transform: translateY(-5px);
}

.media-card__image {
    height: 200px;
    background: linear-gradient(45deg, var(--grey), var(--sand));
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.media-card__image i {
    color: var(--white);
    font-size: 72px;
    opacity: 0;
    transition: all 0.5s ease;
    text-shadow: 1px 5px 15px var(--black);
}

.media-card__image:hover i {
    opacity: 1;
}

.media-card__footer {
    padding: var(--padding);
    text-align: center;
}

.media-card__footer:hover {
    background: rgba(255,255,255,0.1);
}

/* Current Track Player */
.current-track {
    background: var(--light-black);
    padding: var(--padding-xs) var(--padding);
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    border-top: 1px solid var(--black);
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
}

.current-track__actions {
    width: 10%;
    display: flex;
    justify-content: space-around;
}

.current-track__actions a {
    font-size: var(--x-large);
    color: var(--sand);
}

.current-track__actions a:hover {
    color: var(--white);
}

/* Responsive */
@media (max-width: 1400px) {
    .content__left { width: 20%; }
    .content__middle { width: 80%; }
    .content__right { display: none; }
}

@media (max-width: 768px) {
    .content__left, .content__middle { width: 100%; }
    .media-card { width: calc(50% - 2 * var(--margin)); }
    .navigation {
        display: flex;
        flex-flow: row wrap;
        justify-content: space-around;
        height: auto;
        padding: var(--padding-sm);
    }
    .navigation__list {
        flex: 1;
        text-align: center;
    }
    .navigation__list__item i { display: none; }
}

@media (max-width: 480px) {
    .media-card { width: 100%; margin: var(--margin) 0; }
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-thumb { 
    border-radius: 4px;
    background: rgba(60,60,60,0.6);
}
