:root {
  --primary-bg-color: #5f9ea0;
  --primary-text-color: #3a3a3a;
  --secondary-text-color: #fff;
  --card-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
}

*, 
*::before,
*::after {
  margin: 0px;
  box-sizing: border-box;
}

html {
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}

body {
  min-height: 100vh;
  overflow: hidden;
}

.container {
  display: grid;
  grid-template-columns: minmax(250px, 2fr) 11fr;
  grid-template-rows: auto 1fr;
  grid-template-areas: 
    "sidebar header"
    "sidebar main";
  height: 100vh;
}

/* Header */

header {
  grid-area: header;
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: 0.5fr 1fr;
  column-gap: 1.5rem;
  padding: 1.5rem 5rem 0;
}

header > div:first-child {
  display: flex;
  align-items: center;
  gap: 1rem;
}

header > div:first-child > img {
  max-width: 1.5rem;
}

header > div:first-child > input[type="search"] {
  flex: 1;
  border-radius: 2rem;
  border: 0px;
  background-color: gainsboro;
  height: 3.5vh;
  padding: 12px;
}

header > div:nth-child(2) {
  display: grid;
  grid-template-columns: 1fr 0.2fr 1fr;
  justify-content: end;
  align-items: center;
  gap: 1.7rem;
}

#notif-icon {
  cursor: pointer;
  max-width: 1.5rem;
  justify-self: end;
}

.character-img {
  border-radius: 50%;
  max-width: 3rem;
  height: 5vh;
  cursor: pointer;
}

header > div:nth-child(2) > p {
  flex: 1;
  font-size: 1.1rem;
  font-weight: bold;
}

header > div:nth-child(3) {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
}

header > div:nth-child(3) p:first-child {
  font-size: 0.8rem;
  font-weight: 600;
}

header > div:nth-child(3) p:last-child {
  font-size: 1.2rem;
  font-weight: bold;
}

header > div:nth-child(3) #doakes-img {
  max-width: 5rem;
  height: 7vh;
}

header > div:last-child {
  align-self: center;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  min-height: 40px;
}

header > div:last-child > button {
  flex: 1;
  border-radius: 2rem;
  border: 0px;
  cursor: pointer;
  background-color: var(--primary-bg-color);
  color: var(--secondary-text-color);
}

header > div:last-child > button:hover {
  background-color: rgb(80, 134, 135);
}

/* Aside */

aside {
  grid-area: sidebar;
  color: var(--secondary-text-color);
  background-color: var(--primary-bg-color);
  font-weight: 700;
}

aside > .logo {
  display: flex;
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  margin-left: 14px;
  margin-bottom: 2rem;
  cursor: pointer;
}
 
aside .logo > img {
  max-width: 20%;
}

aside li {
  display: flex;
  align-items: center;
  gap: 1rem;
}

aside li:hover {
  cursor: pointer;
  color: gainsboro;
}

aside img {
  max-width: 10%;
}

nav {
  display: grid;
  grid-template-rows: 1fr 2fr;
  height: 100%;
}

.top-nav,
.bottom-nav {
  display: grid;
  align-items: center;
  gap: 1rem;
}

nav li {
  list-style-type: none;
}

/* Main */

main {
  grid-area: main;
  display: grid;
  grid-template-columns: 3fr 1fr;
  background-color: rgb(240, 240, 240);
  padding: 1rem;
  overflow-y: auto;
  gap: 2rem;
}

main > div:first-child > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1rem;
  margin: 1rem 0;
}

.card {
  display: grid;
  grid-template-rows: 1fr 20px;
  padding: 1rem;
  background-color: #fff;
  border-left: inset 4px #ffffff;
  border-radius: 8px;
  gap: 8px;
  box-shadow: var(--card-shadow);
}

.card p,
.announcement-content p {
  color: var(--primary-text-color);
}

.card > div:last-child {
  display: flex;
  justify-content: end;
  gap: 1rem;
}

main img {
  max-width: 1.2vw;
  cursor: pointer;
}

main > div:last-child {
  display: grid;
  gap: 1rem;
  grid-template-rows: repeat(2, 1fr);
}

.announcement-content {
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  padding: 1rem;
  margin-top: 1rem;
  border-radius: 8px;
  background-color: #fff;
  box-shadow: var(--card-shadow);
}

.announcement-content > div {
  padding: 1rem;
}

.announcement-content > div:nth-child(2) {
  border-top: 1px solid gainsboro;
  border-bottom: 1px solid gainsboro;
}

.trending-container {
  background-color: #fff;
  display: grid;
  grid-template-rows: repeat(4, 1fr);
  gap: 1rem;
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 8px;
  box-shadow: var(--card-shadow);
}

.trending-container > div {
  display: flex;
  gap: 1rem;
  align-items: center;
  padding: 8px;
}

.trending-container > div:hover {
  border-radius: 6px;
  background-color: #e6e6e6;
  cursor: pointer;
}

.trending-container > div > div > p:first-child {
  font-weight: 500;
}

.trending-container > div > div > p:last-child {
  color: var(--primary-text-color);
}
