.pusher {
  margin: 0;
  display: flex; /* This makes the body a flex container */
  flex-direction: column; /* Sets the flex container to have a vertical column layout. */
  min-height: 100vh; /* Ensures that the body takes up at least the full height of the viewport. */
}
.hidden.menu {
  display: none;
}
.m-primary {
  color: #17d46b;
}
.m-text {
  font-size: large;
  line-height: 1.8;
}
.m-medium-text {
  display: block;
}
.m-medium-text p {
  font-family: Roboto, sans-serif;
  font-size: medium;
  /* Ensure paragraphs don't accidentally get overflow */
  overflow: visible;
}
.ui.comments .comment .content .m-medium-text {
  font-family: Roboto, sans-serif;
  font-size: medium;
  /* Ensure comment text doesn't accidentally get overflow */
  overflow: visible;
}
.m-medium-text::-webkit-scrollbar {
  display: none;
}
.m-medium-text::-webkit-scrollbar-track {
  display: none;
}
.m-medium-text::-webkit-scrollbar-thumb {
  display: none;
}
.m-medium-text::-webkit-scrollbar-thumb:hover {
  display: none;
}
.m-pd-tb0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.m-pd-tb-tiny {
  padding-top: 0.5em !important;
  padding-bottom: 0.5em !important;
}
.m-pd-tb-small {
  padding-top: 2em !important;
  padding-bottom: 2em !important;
}
.m-pd-tb-medium {
  padding-top: 3em !important;
  padding-bottom: 3em !important;
}
.m-pd-lr {
  padding-left: 5em !important;
  padding-right: 5em !important;
}
.m-mtb-problems {
  margin-top: 2em !important;
  margin-bottom: 6em !important;
}
.m-mtb-medium {
  margin-top: 3em !important;
  margin-bottom: 3em !important;
}
.m-mtb-big {
  margin-top: 5em !important;
  margin-bottom: 5em !important;
}
.m-end {
  align-self: end;
}
.m-avatar {
  object-fit: cover;
}
header .menu {
  border-radius: 0;
}
header .profile-link img {
  transition: transform 0.1s ease;
}
header .profile-link img:hover {
  transform: scale(1.1);
}
nav #logo {
  height: 30px;
  width: auto;
}
.masthead.segment {
  min-height: 700px;
  padding: 1em 0em;
}
.masthead .ui.menu .ui.button {
  margin-left: 0.5em;
}
.masthead h1.ui.header {
  margin-top: 3em;
  font-size: 4em;
  font-weight: normal;
}
.masthead h3 {
  margin: 2em 0;
}
.masthead a {
  margin-bottom: 2.5em;
}
.ui.m-bprimary.label,
.ui.red.labels .label {
  background-color: #17d46b !important;
  border-color: #17d46b !important;
  color: #fff !important;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
.ui.sidebar #logo {
  height: 30px;
  width: auto;
}
.ui.sidebar .item {
  line-height: 2;
  font-size: 1.2rem;
}
.ui.sidebar.vertical.menu {
  display: flex;
  flex-direction: column;
}
.ui.sidebar.vertical.menu a.item {
  display: flex;
  align-items: center;
  justify-content: space-between; /* Push the text to the start and the icon to the end */
}
.ui.sidebar.vertical.menu .item p.ui.small.header {
  margin-top: 5px;
  color: #888;
}
.ui.sidebar.vertical.menu .m-backend-account.item {
  padding-bottom: 0;
}
.m-backend-account.item .ui.grid {
  margin: -1.5rem -1rem;
}
.m-backend-account.item .ui.grid .twelve.wide.column {
  padding-left: 0;
  line-height: 1;
}
.m-backend-account.item b {
  color: #fff;
}
.m-block {
  display: block !important;
}
.ui.vertical.stripe {
  padding: 3em 0em;
}
.ui.vertical.stripe h3 {
  font-size: 2em;
}
.ui.vertical.stripe p {
  font-size: 1.33em;
}
footer.footer.segment {
  margin-top: auto !important;
  padding: 3em 0em;
}
header.ui.inverted.menu {
  border-radius: 0;
}
header .ui.container .toc.item {
  padding: 1em;
}
header .ui.container .toc.item i.icon {
  margin: 0;
}
.ui.m-primary.button {
  color: #fff;
  background-color: #17d46b;
}
.ui.m-primary.button:hover {
  color: #fff;
  background-color: #13b45c;
}
button i.m-primary.icon {
  color: #fff;
  background-color: #17d46b !important;
}
button i.m-primary.icon:hover {
  color: #fff;
  background-color: #13b45c !important;
}
button .m-primary {
  color: #fff !important;
  background-color: #17d46b !important;
}
.ui.basic.m-primary.label {
  background: none !important;
  color: #17d46b !important;
  border-color: #17d46b;
}
strong {
  color: #17d46b;
}
.ui.container img {
  max-width: 100%;
  height: auto;
}
.m-cover-image {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}
.m-truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.m-mobile-title {
  white-space: normal;
  overflow-wrap: anywhere;
}
#problem-img-segment {
  max-height: 70vh;
}
#problem-img-segment img {
  max-width: 100%;
  max-height: calc(70vh - 2em);
}
/* Make images in comments appear clickable */
.comment .content img,
#problem-content-segment img {
  cursor: pointer;
  transition: opacity 0.2s;
}
.comment .content img:hover,
#problem-content-segment img:hover {
  opacity: 0.8;
}
.lightbox {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.85);
  /* Use Flexbox to center the content (display: flex)*/
  justify-content: center;
  align-items: center;
}
.lightbox-content {
  max-width: 90%;
  max-height: 90%;
  object-fit: contain;
}
.katex-display {
  overflow: auto hidden;
  width: 100%;
  -webkit-overflow-scrolling: touch;
  /* This creates a mask that makes the right edge fade to transparent, hinting that there is more content to be seen. */
  -webkit-mask-image: linear-gradient(to right, black 95%, transparent);
  mask-image: linear-gradient(to right, black 95%, transparent);
}
.m-backend-content {
  padding: 1.5em;
}
.m-problem-cell .image.m-cover-image {
  width: 200px !important;
}
.m-preview-text-clamp {
  display: -webkit-box !important;
  -webkit-line-clamp: 4; /* The number of lines to show */
  line-clamp: 4; /* Standard property for future compatibility */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word; /* break very long words */
}
#image-upload-segment .ui.button {
  display: inline-block;
  margin-top: 1em;
}
#image-upload-segment .ui.button#clear-image-button {
  display: none;
}
/* --- DESKTOP STYLES (> 767.98px) --- */
@media only screen and (min-width: 767.98px) {
  .m-backend-sidebar {
    transform: none !important;
    visibility: visible !important;
  }
  .m-backend-body .pusher {
    margin-left: 260px !important;
  }
  .m-mobile-only {
    display: none !important;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1200px) {
  .m-problem-cell .image.m-cover-image {
    display: none !important;
  }
}
/* --- MOBILE STYLES (< 767.98px) --- */
@media only screen and (max-width: 767.98px) {
  /* Prevent overflow in ui containers */
  .ui.ui.ui.container:not(.fluid) {
    width: calc(100% - 2em);
    margin-left: 1em;
    margin-right: 1em;
  }
  mjx-container {
    padding: 0 0.5em 10px 0;
  }
  mjx-container::-webkit-scrollbar-track {
    margin: 0 0.5em 10px 0;
  }
  .m-pd-lr {
    padding-left: 1em !important;
    padding-right: 1em !important;
  }
  .m-desktop-only {
    display: none !important;
  }
  header.m-mobile-only {
    display: block !important;
  }
  /* Masthead on home page*/
  .masthead.segment {
    min-height: 500px;
  }
  .masthead h1.ui.header {
    font-size: 3em;
    margin-top: 2em;
  }
}
@media only screen and (min-width: 992px) {
  .ui.container.m-container {
    width: 70% !important;
  }
}
