/* CSS Reset */

/* 1. Use a more-intuitive box-sizing model */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* 2. Remove default margin */
* {
    margin: 0;
}

/* 3. Enable keyword animations */
@media (prefers-reduced-motion: no-preference) {
    html {
        interpolate-size: allow-keywords;
    }
}

body {
    /* 4. Add accessible line-height */
    line-height: 1.5;
    /* 5. Improve text rendering */
    -webkit-font-smoothing: antialiased;
}

/* 6. Improve media defaults */
img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

/* 7. Inherit fonts for form controls */
input,
button,
textarea,
select {
    font: inherit;
}

/* 8. Avoid text overflows */
p,
h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: break-word;
}

/* 9. Improve line wrapping */
p {
    text-wrap: pretty;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-wrap: balance;
}

/*
  10. Create a root stacking context
*/
#root,
#__next {
    isolation: isolate;
}

/* CSS content */

*:root {
    /* Font */
    --bold: 700;

    /* Colors */
    --white: white;
    --blue: rgb(0, 155, 217);
    --dark-blue: rgb(3, 117, 162);
    --grey: rgb(233, 230, 230);
    --dark-grey: grey;
    --gold: rgb(245, 208, 1);

    /* Border */
    --rounded: 24px;
    --main-rounded: 6px;

    /* Box-shadow */
    --section-box-shadow: 0px 5px 5px 0px rgba(0, 0, 0, 0.2);
}

* {
    font-family: sans-serif;
}

body {
    max-height: 100vh;
    display: grid;
    grid-template-columns: 1fr 4fr;
}

ul,
ul li {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Sidebar */

.sidebar {
    background-color: var(--blue);
    color: var(--white);

    /* display: flex;
    flex-direction: column;
    justify-content: flex-start; */

    display: grid;
    grid-auto-rows: min-content;
    gap: 48px;
    padding: 16px 0;

    z-index: 2;
}

.sidebar .logo {
    padding: 0 14px;
    display: grid;
    grid-template-columns: min-content 1fr;
    gap: 12px;
    align-items: center;
}

.sidebar .logo h1 {
    font-size: 1.8rem;
}

.sidebar .logo img {
    min-width: 3rem;
}

.sidebar a {
    text-decoration: none;
    color: inherit;
}

.sidebar .main-nav ul,
.other-nav ul {
    display: grid;
}

.sidebar .main-nav a,
.sidebar .other-nav a {
    padding: 12px 24px;
}

.sidebar li.nav-item {
    font-weight: var(--bold);
    font-size: 1.25rem;

    display: grid;
    grid-template-columns: min-content 1fr;
    align-items: center;
    gap: 16px;
}

.sidebar .nav-item img {
    min-width: 1.5rem;
}

.sidebar .main-nav a:hover,
.sidebar .other-nav a:hover {
    background-color: var(--dark-blue);
}

/* Middle (Header and Main) */

.middle {
    display: grid;
    grid-template-rows: 1fr 5fr;
}

/* Header */

.header a {
    text-decoration: none;
    color: inherit;
}

.header {
    background-color: rgb(255, 254, 254);
    padding: 16px 64px;
    padding-bottom: 12px;
    -webkit-box-shadow: 0px 10px 5px 5px rgba(0, 0, 0, 0.2);
    box-shadow: 0px 1px 5px 5px rgba(0, 0, 0, 0.2);

    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-auto-rows: 1fr;
    gap: 8px;
    z-index: 1;
}

.header .search-bar {
    display: grid;
    grid-template-columns: min-content 1fr;
    gap: 16px;
    align-items: center;
}

.header .search-bar label {
    border-radius: 50%;
    padding: 8px;
}

.header .search-bar label:hover {
    background-color: var(--grey);
}

.header .search-bar label img {
    min-width: 2rem;
}

.header .profile-info {
    display: grid;
    grid-template-columns: repeat(3, max-content);
    gap: 24px;
    justify-content: end;
    align-items: center;
}

.header .profile-info a img {
    min-width: 2rem;
}

.header .profile-info .profile-pic img {
    width: 3rem;
}

.header .profile-info a {
    padding: 8px;
    border-radius: 50%;
}

.header .profile-info a:hover {
    background-color: var(--grey);
}

.header .profile-info .user-name {
    font-weight: var(--bold);
}

.header .search-bar input {
    appearance: none;
    background-color: var(--grey);
    border: none;
    border-radius: var(--rounded);
    padding: 4px 16px;
}

.header .large-user-info {
    display: grid;
    grid-template-columns: max-content 1fr;
    align-items: center;
    gap: 16px;

    font-weight: var(--bold);
}

.header .large-user-info img {
    width: 3.8rem;
}

.header .large-user-info .greetings {
    font-size: 0.75rem;
}

.header .large-user-info .user-name {
    font-size: 1.2rem;
}

.header .buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    align-items: center;
}

.header .buttons button {
    appearance: none;
    background-color: var(--blue);

    border: none;
    border-radius: var(--rounded);

    color: var(--white);
    cursor: pointer;
    font-weight: var(--bold);

    min-width: 100px;
    height: min-content;
    padding: 8px;
}

.header .buttons button:hover {
    background-color: var(--dark-blue);
}

/* Main */

.main {
    background-color: var(--grey);
    padding: 16px 14px;

    display: grid;
    grid-template-columns: 3fr 1fr;
    gap: 14px;
}

.main h2 {
    font-size: 1.1rem;
    font-weight: var(--bold);
    margin-bottom: 8px;
}

/* Main - Projects */
.main .section-projects {
    grid-row: span 2;

    display: grid;
    grid-template-rows: min-content 1fr;
}

.main .projects {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    grid-auto-rows: min-content;
    gap: 24px;
}

.main .projects .project {
    background-color: var(--white);
    height: 240px;

    padding: 16px;
    border-radius: var(--main-rounded);
    border-left: 8px solid var(--gold);
    -webkit-box-shadow: var(--section-box-shadow);
    box-shadow: var(--section-box-shadow);

    display: grid;
    grid-template-rows: 1fr min-content;
}

.main .projects .project .action-buttons {
    display: grid;
    grid-template-columns: repeat(3, min-content);
    justify-content: end;
    gap: 12px;
}

.main .projects .project button {
    cursor: pointer;
    appearance: none;
    border: none;
    border-radius: 50%;
    padding: 8px;
    background-color: transparent;
}

.main .projects .project button:hover {
    background-color: var(--grey);
}

.main .projects .project button img {
    min-width: 1.5rem;
}

.main .projects .project .content h3 {
    font-size: 1.2rem;
    font-weight: var(--bold);
    margin-bottom: 8px;
}

.main .projects .project .content p {
    font-size: 0.8rem;
    color: var(--dark-grey);
}

/* Main - Announcements */
.main .section-announcements {
    display: grid;
    grid-template-rows: min-content 1fr;
}

.main .announcements {
    background-color: var(--white);
    border-radius: var(--main-rounded);

    display: grid;
    align-items: center;
    padding: 16px;

    -webkit-box-shadow: var(--section-box-shadow);
    box-shadow: var(--section-box-shadow);
}

.main .announcements .announcement {
    border-bottom: 1px solid var(--grey);
    padding-bottom: 16px;
}

.main .announcements .announcement:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.main .announcements h3 {
    font-size: 0.9rem;
}

.main .announcements p {
    font-size: 0.7rem;
    color: var(--dark-grey);
}

/* Main - Trending */
.main .section-trending {
    display: grid;
    grid-template-rows: min-content 1fr;
}

.main .trending {
    background-color: var(--white);
    border-radius: var(--main-rounded);

    display: grid;
    align-items: center;
    padding: 16px;

    -webkit-box-shadow: var(--section-box-shadow);
    box-shadow: var(--section-box-shadow);
}

.main .trending .user {
    display: grid;
    grid-template-columns: max-content 1fr;
    align-items: center;
    gap: 12px;
}

.main .trending .prof-pic {
    width: 100%;
    max-width: 3rem;
}

.main .trending .user-info {
    font-size: 0.9rem;
}

.main .trending .user .user-name {
    color: var(--dark-grey);
}