:root {
  --brand-primary: #2451B0;
  --brand-primary-dark: #1a3c8c;
  --brand-bg: #f0f2f5;
  --brand-card: #ffffff;
  --brand-border: #dfe3ea;
  --brand-text-muted: #65676b;
}

* {
  box-sizing: border-box;
}

body {
  background-color: var(--brand-bg);
  font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  color: #1c1e21;
}

/* ---------- Navbar ---------- */
.app-navbar {
  background: linear-gradient(90deg, var(--brand-primary), var(--brand-primary-dark));
}

.nav-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #fff;
}

/* ---------- Cards / general containers ---------- */
.card {
  border: 1px solid var(--brand-border);
  border-radius: 10px;
}

.app-main {
  min-height: calc(100vh - 140px);
}

/* ---------- Auth pages (login/register) ---------- */
.auth-wrapper {
  min-height: calc(100vh - 140px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 0;
}

.auth-card {
  width: 100%;
  max-width: 480px;
  background: var(--brand-card);
  border-radius: 14px;
  box-shadow: 0 4px 18px rgba(0,0,0,0.08);
  padding: 32px 28px;
}

.auth-card h2 {
  font-weight: 700;
  color: var(--brand-primary-dark);
}

/* ---------- Home / landing hero ---------- */
.hero {
  background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-dark));
  color: #fff;
  border-radius: 16px;
  padding: 48px 24px;
}

.hero h1 {
  font-weight: 800;
}

/* ---------- Profile photos ---------- */
.avatar-sm {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  object-fit: cover;
}

.avatar-lg {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  object-fit: cover;
  border: 4px solid #fff;
  margin-top: -60px;
  background: #fff;
}

.cover-photo {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 10px 10px 0 0;
}

.search-result-item:hover {
  background-color: var(--brand-bg);
}

/* ---------- Footer ---------- */
.app-footer {
  background: #fff;
  border-top: 1px solid var(--brand-border);
  color: var(--brand-text-muted);
}

/* ---------- Responsive tweaks ---------- */
@media (max-width: 576px) {
  .auth-card {
    padding: 24px 18px;
    border-radius: 10px;
  }
  .hero {
    padding: 32px 16px;
    text-align: center;
  }
  .cover-photo {
    height: 140px;
  }
  .avatar-lg {
    width: 90px;
    height: 90px;
    margin-top: -45px;
  }
}
