html body,
html body button,
html body input,
html body textarea,
html body select,
html body a,
html body p,
html body span,
html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6,
html body li,
html body label,
html body td,
html body th,
html body small,
html body strong,
html body em,
html body blockquote {
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif !important;
}

html body :is(a, p, span, h1, h2, h3, h4, h5, h6, li, label, td, th, small, strong, em, blockquote)[class][class] {
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif !important;
}

/* Homepage-only forum navigation. Article layout remains owned by layout-v067.css. */
.happy-home-forum-rail {
  display: none;
}

@media (min-width: 1400px) {
  html.happy-topnav-layout.happy-sidebar-expanded body:is(.route-index, .happy-page-forum) main.container {
    width: 100% !important;
    max-width: 1440px !important;
  }

  html.happy-topnav-layout.happy-sidebar-expanded body:is(.route-index, .happy-page-forum) main.container > .row:has(> .happy-home-forum-rail + .main + .aside) {
    display: grid !important;
    grid-template-columns: 280px minmax(0, 1fr) 280px !important;
    gap: 20px !important;
    align-items: start !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  html.happy-topnav-layout.happy-sidebar-expanded body.route-index main.container > .card.mb-4:first-child {
    width: calc(100% - 300px) !important;
    max-width: none !important;
    margin-left: 300px !important;
  }

  html.happy-topnav-layout.happy-sidebar-expanded body:is(.route-index, .happy-page-forum) main.container > .row > .happy-home-forum-rail {
    position: static !important;
    display: block !important;
    grid-column: 1 !important;
    width: 280px !important;
    min-width: 0 !important;
    min-height: 0;
    max-height: none !important;
    align-self: start;
    overflow: visible !important;
    overscroll-behavior: auto;
    touch-action: auto;
    transform: none !important;
    padding: 0 !important;
  }

  html.happy-topnav-layout.happy-sidebar-expanded body:is(.route-index, .happy-page-forum) main.container > .row > .main {
    grid-column: 2 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
  }

  html.happy-topnav-layout.happy-sidebar-expanded body:is(.route-index, .happy-page-forum) main.container > .row > .aside {
    grid-column: 3 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
  }
}

.happy-forum-nav-card {
  overflow: hidden;
  border: 1px solid #e8eaf0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(30, 35, 45, .06);
}

.happy-forum-nav-card > header {
  display: flex;
  min-height: 58px;
  align-items: center;
  gap: 8px;
  padding: 0 18px;
  border-bottom: 1px solid #f0f1f4;
}

.happy-forum-nav-card > header i {
  color: #e94f87;
  font-size: 22px;
}

.happy-forum-nav-card > header h2 {
  margin: 0;
  color: #242631;
  font-size: 16px;
  font-weight: 700;
}

.happy-forum-nav-card nav {
  display: grid;
  gap: 2px;
  padding: 10px;
}

.happy-forum-nav-card nav a {
  display: grid;
  min-width: 0;
  min-height: 54px;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 0 12px;
  border-radius: 6px;
  color: #666b78 !important;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none !important;
}

.happy-forum-nav-card nav a .happy-forum-nav-icon,
.happy-forum-nav-card nav a .happy-forum-nav-icon-fallback {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
}

.happy-forum-nav-card nav a .happy-forum-nav-icon {
  display: block;
  border-radius: 6px;
  object-fit: cover;
}

.happy-forum-nav-card nav a .happy-forum-nav-icon-fallback {
  color: #9399a6;
  font-size: 26px;
  line-height: 28px;
  text-align: center;
}

.happy-forum-nav-card nav a span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.happy-forum-nav-card nav a:hover {
  background: #f7f8fa;
  color: #242631 !important;
}

.happy-forum-nav-card nav a.active {
  background: #fdecf2;
  color: #c83268 !important;
}

.happy-forum-nav-card nav a.active .happy-forum-nav-icon-fallback {
  color: #e94f87;
}

@media (max-width: 1399.98px) {
  .happy-home-forum-rail {
    display: none !important;
  }
}
