@font-face {
  font-family: "Helvetica Neue-Medium";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/HelveticaNeueMed.ttf") format("truetype");
}

@font-face {
  font-family: "Helvetica Neue-LightItalic";
  font-style: italic;
  font-weight: 300;
  src: url("../fonts/AdobeHeitiStd-Regular.otf") format("opentype");
}

@font-face {
  font-family: "Helvetica Neue-Regular";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/HelveticaNeue.ttf") format("truetype");
}

@font-face {
  font-family: "Helvetica Neue-Bold";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/HelveticaNeue Bold.ttf") format("truetype");
}

/* TODO gradually replace the fonts above */

@font-face {
  font-family: "Helvetica-Neue";
  font-style: italic;
  font-weight: 300;
  src: local("HelveticaNeueLightItalic"), url("../fonts/HelveticaNeueLightItalic.otf") format("opentype");
}

@font-face {
  font-family: "Helvetica-Neue";
  font-style: normal;
  font-weight: 400;
  src: local("HelveticaNeueRoman"), url("../fonts/HelveticaNeueRoman.otf") format("opentype");
}

@font-face {
  font-family: "Helvetica-Neue";
  font-style: normal;
  font-weight: 500;
  src: local("HelveticaNeueMedium"), url("../fonts/HelveticaNeueMedium.otf") format("opentype");
}

@font-face {
  font-family: "Helvetica-Neue";
  font-style: normal;
  font-weight: 700;
  src: local("HelveticaNeueBold"), url("../fonts/HelveticaNeueBold.otf") format("opentype");
}

html, body, html *, body * {
  font-family: var(--font-family);
}

.fyf-body {
  margin: 0;
  background: #fbfbfb;
  overflow-x: hidden;
}

.loader {
  position: fixed;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  z-index: 9999;
  background: url('../img/loader.gif') 50% 50% no-repeat rgba(0, 0, 0, 0.5);
}

.local-loader {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  background: url('../img/loader.gif') 50% 50% no-repeat rgba(0, 0, 0, 0.5);
}

.div-loader {
  position: relative;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  z-index: 9999;
  background: url('../img/loader.gif') 50% 50% no-repeat rgba(0, 0, 0, 0.1);
}

.screen a:not(.button-primary-fill) {
  display: contents;
  text-decoration: none;
}

.container-center-horizontal {
  display: flex;
  flex-direction: row;
  justify-content: center;
  pointer-events: none;
  width: 100%;
}

.container-center-horizontal > * {
  flex-shrink: 0;
  pointer-events: auto;
}

* {
  box-sizing: border-box;
}

.icoutline {
  height: 24px;
  min-width: 24px;
  position: relative;
}

.icoutline-padded {
  height: 48px;
  min-width: 48px;
  padding: 12px;
  position: relative;
}

.icfilledinfo {
  display: flex;
  height: 16px;
  min-width: 16px;
  position: relative;
}

.icfilledinfo-inline {
  padding-left: 8px;
  margin-top: -3px;
  height: 16px;
  min-width: 16px;
  position: relative;
}

.basic-menu-icon {
  height: 24px;
  min-width: 24px;
  position: relative;
}

.basic-menu-icon-selected {
  height: 24px;
  min-width: 24px;
  position: relative;
}

.table-header-info {
    display: flex !important;
    height: 16px;
    min-width: 16px;
    position: absolute;
    margin-left: -24px;
}

.majors-info-icon {
    display: flex;
    position: relative;
    align-self: center;
    height: 16px;
    min-width: 16px;
    padding-left: 8px;
    margin-top: -1px;
    cursor: default;
}

.icinfo-small {
  height: 12px;
  position: relative;
  width: 12px;
}

.clickable {
  cursor: pointer;
}

.div-hidden {
	visibility: hidden;
}

.div-visible {
	visibility: visible;
}

.overflow-hidden {
  overflow: hidden;
}

.not-allowed {
  cursor: not-allowed;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.full-width {
	width: 100%;
}

.pl-6 {
  padding-left: 6px;
}

.pl-24 {
  padding-left: 24px;
}

.plr-16 {
  padding-left: 32px !important;
  padding-right: 32px !important;
}

.plr-56 {
  padding-left: 56px !important;
  padding-right: 56px !important;
}

.margin-0 {
	margin: 0px;
}

.mt-24 {
  margin-top: 24px !important;
}

.gap-12 {
	gap: 12px !important;
}

.italic {
	font-style: italic;
}

.divider {
  align-self: stretch;
  background-color: #6368741f;
  height: 1px;
  position: relative;
  width: 100%;
}

.divider-vertical {
	align-self: stretch;
	background-color: #6368741f;
	height: 100%;
	position: relative;
	width: 1.5px;
}
	
.button-container-centered {
  display: flex;
  flex-direction: row;
  justify-content: center;
  padding: 8px 12px 12px 12px;
  gap: 24px;
  width: 100%;
}

.button-container-space-between {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0px;
  width: 100%;
}

.button-primary-fill {
  align-items: center;
  background-color: var(--mariner);
  border-radius: 100px;
  display: flex;
  gap: 10px;
  height: 40px;
  justify-content: center;
  overflow: hidden;
  padding: 8px 32px;
  position: relative;
  width: fit-content;
  cursor: pointer;
  outline: none;
  border: none;
  text-decoration: none;

  &:disabled {
    pointer-events: none;
    background-color: var(--button-disabled);

    .button-primary-text {
      color: #fff;
    }
  }
}

.button-primary-text {
  color: var(--white);
  font-family: var(--font-family);
  font-size: var(--font-size-l);
  font-weight: 500;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
  text-align: center;
  width: fit-content;
}

.button-primary-nofill {
  align-items: center;
  background-color: var(--white);
  border: 1px solid;
  border-color: var(--mariner);
  border-radius: 100px;
  display: flex;
  gap: 4px;
  height: 40px;
  justify-content: center;
  overflow: hidden;
  padding: 8px 32px;
  position: relative;
  width: fit-content;
  cursor: pointer;

  &:disabled {
    pointer-events: none;
    border-color: #D8D9DC;

    .button-primary-nofill-text {
      color: #D8D9DC;
    }
  }
}

.button-primary-nofill-text {
  color: var(--mariner);
  font-family: var(--font-family);
  font-size: var(--font-size-l);
  font-weight: 500;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
  text-align: center;
  width: fit-content;
}

.button-danger {
  align-items: center;
  background-color: var(--dark-red);
  border-radius: 100px;
  display: flex;
  gap: 10px;
  height: 40px;
  justify-content: center;
  overflow: hidden;
  padding: 8px 32px;
  position: relative;
  width: fit-content;
  cursor: pointer;
}

.button-secondary {
  align-items: center;
  background-color: var(--white);
  border: 1px solid;
  border-color: var(--colorgreylight);
  border-radius: 100px;
  display: flex;
  gap: 4px;
  height: 40px;
  justify-content: center;
  overflow: hidden;
  padding: 8px 32px;
  position: relative;
  width: fit-content;
  cursor: pointer;
}

.button-secondary-text {
  color: var(--black);
  font-family: var(--font-family);
  font-size: var(--font-size-l);
  font-weight: 500;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
  text-align: center;
  width: fit-content;
  border: none;
  background: transparent;
  padding: 0;
  margin: 0;
}

.button-disabled {
  align-items: center;
  background-color: var(--colorgreylight);
  border-radius: 100px;
  display: flex;
  gap: 10px;
  height: 40px;
  justify-content: center;
  overflow: hidden;
  padding: 8px 32px;
  position: relative;
  width: fit-content;
}

.button-icon {
  height: 24px;
  margin-left: -7.50px;
  min-width: 24px;
  position: relative;
}

.button-narrow {
  padding: 8px 16px;
}

.button-square {
  border-radius: 6px !important;
}

/*
.fyf-modal-button {
    color: var(--white);
    background-color: var(--colorprimarymain);
    border-color: var(--colorprimarymain);
    min-width: 200px;
    height: 40px;
    border-radius: 100px !important;
    cursor: pointer;
}

.fyf-modal-button-secondary {
	color: var(--black);
	background-color: var(--white);
	border-color: var(--colorgreylight) !important;
    min-width: 200px;
    height: 40px;
    border-radius: 100px !important;
    cursor: pointer;
}
*/
.button-rounded-nofill {
  align-items: center;
  background-color: var(--white);
  border: 1px solid;
  border-radius: 100px;
  display: flex;
  gap: 4px;
  justify-content: center;
  overflow: hidden;
  padding: 8px;
  position: relative;
  width: 100%;
  cursor: pointer;
}

.button-rounded-fill {
  align-items: center;
  border: 1px solid;
  border-radius: 100px;
  display: flex;
  gap: 4px;
  justify-content: center;
  overflow: hidden;
  padding: 8px;
  position: relative;
  width: 100%;
  cursor: pointer;
}

.button-rectangle-nofill {
  align-items: center;
  background-color: var(--white);
  border: 1px solid;
  border-radius: 6px;
  display: flex;
  gap: 4px;
  justify-content: center;
  overflow: hidden;
  padding: 8px;
  position: relative;
  width: 100%;
  cursor: pointer;
}

.button-rectangle-fill {
  align-items: center;
  border: 1px solid;
  border-radius: 6px;
  display: flex;
  gap: 4px;
  justify-content: center;
  overflow: hidden;
  padding: 8px;
  position: relative;
  width: 100%;
  cursor: pointer;
}

.button-xl {
  height: 48px;
}

.button-lg {
  height: 40px;
}

.button-sm {
  height: 32px;
}

.button-width-md {
  width: 240px;
}

.button-width-sm {
  width: 150px !important;
}

.button-width-xs {
  width: 120px !important;
}

.button-xl .button-text {
  font-family: var(--font-family);
  font-size: var(--font-size-xl);
  font-weight: 500;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
  text-align: center;
  width: fit-content;
}

.button-lg .button-text {
  font-family: var(--font-family);
  font-size: var(--font-size-l);
  font-weight: 500;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
  text-align: center;
  width: fit-content;
}

.button-sm .button-text {
  font-family: var(--font-family);
  font-size: var(--font-size-m);
  font-weight: 500;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
  text-align: center;
  width: fit-content;
}

.button-color-blue {
  background-color: var(--mariner);
  color: var(--white);
}

.button-color-blue:hover {
  background-color: var(--mariner-hover);
  color: var(--white);
}

.button-color-blue:disabled {
  background-color: var(--button-disabled);
  color: var(--white);
  cursor: default;
}

.button-nofill-color-blue {
  border-color: var(--mariner);
  color: var(--mariner);
}

.button-nofill-color-blue:hover {
  border-color: var(--mariner-hover);
  color: var(--mariner-hover);
}

.button-color-darkblue {
  background-color: var(--colorprimarydark);
  color: var(--white);
}

.button-color-darkblue:hover {
  background-color: var(--colorprimarydark-hover);
  color: var(--white);
}

.button-color-pink {
  background-color: var(--colorsecondarypink);
  color: var(--white);
}

.button-color-pink:hover {
  background-color: var(--colorsecondarypink-hover);
  color: var(--white);
}

.button-nofill-color-darkblue {
  border-color: var(--colorprimarydark);
  color: var(--colorprimarydark);
}

.button-nofill-color-darkblue:hover {
  border-color: var(--colorprimarydark-hover);
  color: var(--colorprimarydark-hover);
}

.button-nofill-color-grey {
  border-color: var(--colorgreylight);
  color: var(--black);
}

.button-nofill-color-grey:hover {
  background-color: var(--colorgreylight-hover);
}

.button-nofill-color-pink {
  border-color: var(--colorsecondarypink);
  color: var(--colorsecondarypink);
}

.button-nofill-color-pink:hover {
  background-color: var(--colorsecondarypink-hover);
}

.button-nofill-color-green {
  border-color: var(--colorsecondarygreen);
  color: var(--colorsecondarygreen);
}

.button-nofill-color-green:hover {
  background-color: var(--colorsecondarygreen-hover);
}

.avatar {
  border: 1px solid;
  border-color: var(--alto);
  border-radius: 100px;
  height: 40px;
  min-width: 40px;
  position: relative;
}

.avatar-large {
  border: 1.4px solid;
  border-color: var(--colorgreylighter);
  border-radius: 140px;
  height: 56px;
  min-width: 56px;
  position: relative;
}

.avatar-xl {
  border: 2px solid;
  border-color: var(--colorgreylighter);
  border-radius: 200px;
  height: 80px;
  min-width: 80px;
  position: relative;
}

.avatar-xxl {
  border: 2.6px solid;
  border-color: var(--colorgreylighter);
  border-radius: 260px;
  height: 104px;
  min-width: 104px;
  position: relative;
}

.rounded-15 {
  border-radius: 15px !important;
}

.no-border-bottom {
  border-bottom: 0 !important;
}

.info-details-container {
  align-items: flex-start;
  background-color: var(--white);
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 15px 10px 5px 10px;
  max-height: 250px;
  position: relative;
}

.error-text {
  padding: 10px 20px;
  color: var(--error);
  font-family: var(--font-family-helvetica_neue-medium);
  font-size: var(--font-size-xl);
  font-weight: 500;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
  text-align: center;
  width: 100%;
}

.error-border {
  border-color: var(--error);
  border: solid 1px;
  border-radius: 12px;
  margin: 8px 0px;
}

.modal-w650 {
  max-width: 650px !important;
}

.modal-w753 {
  max-width: 753px !important;
}

.modal-w830 {
  max-width: 830px !important;
}

.modal-w1050 {
  max-width: 1050px !important;
}

.fyf-modal-md {
  max-width: 571px !important;
}

.fyf-modal-fit-exclusions {
	max-width: 532px !important;
}

.fyf-modal-content {
  border: 0px !important;
  border-radius: 16px !important;

  .fyf-modal-header {
	align-items: center !important;
	padding: 32px 32px 16px;
  }

  .fyf-modal-header-narrow {
	align-items: center !important;
	padding: 40px 56px 16px;
  }

  .fyf-modal-body {
	  display: flex;
	  flex-direction: column;
	  padding: 8px 32px 16px;
	  margin-top: 8px;
	  margin-bottom: 16px;
	  margin-right: 4px;
	  gap: 24px;
	  max-height: 350px;
	  overflow-x: hidden;
	  overflow-y: auto;
  
      &::-webkit-scrollbar {
        width: 4px;
        transform: translateX(-10px);
      }

      &::-webkit-scrollbar-track {
        background: transparent;
        height: 100%;
      }

      &::-webkit-scrollbar-thumb {
        background: var(--scrollbar);
        border-radius: 2px;
      }
  
  }

  .fyf-modal-container {
    align-items: flex-start;
    display: flex;
    gap: 24px;
    min-width: 535px;
  }

  .fyf-modal-items {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: relative;
    width: 100%;
  }
}

.fyf-modal-title {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}

.fyf-modal-title-text {
  color: var(--colorcommonblack);
  font-family: var(--font-family);
  font-size: var(--font-size-20);
  font-weight: 500;
  left: 0;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
}

.fyf-modal-subtitle-block {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

.fyf-modal-subtitle-header {
	display: flex;
    align-items: center;
  color: var(--colorcommonblack);
  font-family: var(--font-family);
  font-size: var(--font-size-xxl);
  font-weight: 500;
}

.fyf-modal-subtitle {
  color: var(--colorcommonblack);
  font-family: var(--font-family);
  font-size: var(--font-size-xl);
  font-weight: 700;
}

.fyf-modal-subtitle-text {
  color: var(--colorgreydark);
  font-family: var(--font-family);
  font-size: var(--font-size-l);
  font-weight: 400;
  line-height: 20px;
}

.fyf-modal-text {
  color: var(--black-2);
  font-family: var(--font-family);
  font-size: var(--font-size-l);
  font-weight: 400;
}

.fyf-modal-footer {
  justify-content: space-evenly !important;
  padding: 12px 32px !important;
  border-top: 0px !important;
  gap: 16px;
  width: 100%;
  margin-bottom: 16px;

  @media screen and (max-width: 679px) {
    width: 100%;
    flex-direction: column;
    padding: 12px 16px !important;
  }
}

.fyf-modal-header {
  @media screen and (max-width: 679px) {
    padding: 16px !important;
  }
}

.fyf-modal-body {
  @media screen and (max-width: 679px) {
    padding: 16px !important;
  }
}

.fyf-modal-body .community-college-list {
    gap: 12px;
    display: flex;
    flex-direction: column;
}

.fyf-modal-body .modal-checkbox-form {
    display: flex;
    justify-content: center;
}

.fyf-tooltip {
  position: relative;
  display: inline-block;
  align-self: center;
}

.fyf-tooltip .fyf-tooltip-text {
  visibility: hidden;
  width: fit-content;
  background-color: var(--white);
  border-radius: 8px;
  box-shadow: 0px 4px 18px #9b9b9b80;
  color: var(--black);
  font-family: var(--font-family);
  font-size: var(--font-size-m);
  font-weight: 500;
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 16px;
  justify-content: center;
  text-align: center;
  padding: 10px 20px;
  white-space: normal;
  position: absolute;
  z-index: 101;
  bottom: 125%;
  left: 50%;
}

.fyf-tooltip .tooltip-text-center {
  align-items: center !important;
  text-align: center !important;
}

.fyf-tooltip:hover .fyf-tooltip-text {
  visibility: visible;
  opacity: 1;
}

.fyf-delay-tooltip {
  position: relative;
  display: inline-block;
}

.fyf-delay-tooltip .fyf-delay-tooltip-text {
  visibility: hidden;
  width: fit-content;
  background-color: var(--white);
  border-radius: 8px;
  box-shadow: 0px 4px 18px #9b9b9b80;
  color: var(--black);
  font-family: var(--font-family);
  font-size: var(--font-size-m);
  font-weight: 500;
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 16px;
  justify-content: center;
  text-align: center;
  padding: 10px 20px;
  white-space: normal;
  position: absolute;
  z-index: 101;
  bottom: 125%;
  left: 50%;
}

.fyf-delay-tooltip:hover .fyf-delay-tooltip-text {
  visibility: visible;
  opacity: 1;
  transition-delay: 1s;
}

.fyf-modal-tooltip {
  visibility: hidden;
  background-color: var(--white);
  border-radius: 8px;
  box-shadow: 0px 4px 18px #9b9b9b80;
  color: var(--black);
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 16px;
  justify-content: center;
  text-align: center;
  padding: 10px 20px;
  white-space: normal;
  position: absolute;
  z-index: 2000;
  width: 350px;
}

.fyf-modal-tooltip-show {
  visibility: visible;
  opacity: 1;
}

.fyf-modal-tooltip-header {
  font-family: var(--font-family);
  font-size: var(--font-size-l);
  font-weight: 700;
  width: 100%;
}

.fyf-modal-tooltip-text {
  font-family: var(--font-family);
  font-size: var(--font-size-m);
  font-weight: 500;
  width: 100%;
}


/* Apply Popup */
.apply-popup-icon {
    width: 24px;
    height: 24px;
    margin-right: 6px;
}

.apply-subtext {
	margin-left: 30px;
}


/* Common styling for Category and Apply displays in College rows */

.fyf-category-content {
  align-items: center;
  display: flex;
  gap: 12px;
  height: 32px;
  position: relative;
  min-width: 101px;
}

.fyf-category-display {
  display: flex;
  position: relative;
  border-radius: 40px;
  height: 32px;
  min-width: 32px;
}

.fyf-category-bg-grey {
	background-color: var(--shuttle-gray);
}

.fyf-category-clickable {
	cursor: pointer;
	
	&:hover {
		.fyf-category-bg-grey {
			background-color: var(--shuttle-gray-3);
			opacity: 0.8;
		}
	}
}

.fyf-category-debt-free {
    background-color: var(--white);
    border: 1px solid;
    border-color: var(--shuttle-gray-2);
}

.fyf-category-debt-free-clickable {
	cursor: pointer;
	
	&:hover {
		.fyf-category-debt-free {
			background-color: var(--shuttle-gray-3);
			opacity: 0.8;
		}
	}
}

.fyf-category-bg-Reach {
  background-color: #fc5d7014;
}

.fyf-category-bg-Match {
  background-color: #faca1614;
}

.fyf-category-bg-Safety {
  background-color: #49c67214;
}

.fyf-category-icon {
  align-items: flex-end;
  display: flex;
  padding: 20%;
  height: 100%;
  width: 100%;
}

.fyf-common-text {
  color: var(--black-2);
  font-size: var(--font-size-m);
  font-family: var(--font-family);
  letter-spacing: 0;
  line-height: normal;
  position: relative;
  width: fit-content;
}

.fyf-apply-content {
  align-items: center;
  display: flex;
  gap: 8px;
  height: 24px;
  position: relative;
  width: 96px;
}

.fyf-apply-icon {
  display: flex;
  height: 24px;
  min-width: 24px;
  position: relative;
}

.fyf-no-data-block {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
}

.fyf-no-data-table {
	height: 200px !important;
}

.fyf-no-data-image {
  width: 32px;
  height: 32px;
}

.fyf-no-data-title {
  color: var(--colorgreymain);
  font-size: var(--font-size-m);
  font-weight: 500;
  font-family: var(--font-family);
}

.fyf-no-data-subtitle {
  color: var(--colorgreylight);
  font-size: var(--font-size-m);
  font-weight: 400;
  font-family: var(--font-family);
  text-align: center;
}

/* Coming soon styling */

.coming-soon-content {
    display: flex;
    flex-direction: column;
	align-items: center;
	justify-content: center;
    gap: 24px;
    position: relative;
    margin: 100px 0px;
    width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    
    .cs-header {
		color: var(--colorprimarymain);
		font-size: var(--font-size-xxxxl);
		font-weight: 500;
		font-family: var(--font-family);
    }
    
    .cs-text {
        text-align: center;
        line-height: 1.2;
    	color: var(--colorcommonblack);
		font-size: var(--font-size-20);
		font-weight: 400;
		font-family: var(--font-family);
    }
    
    .cs-footer {
    	color: var(--colorgreydark);
		font-size: var(--font-size-xl);
		font-weight: 400;
		font-family: var(--font-family);
    }
}


/* College search popup */

.college-search-popup {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  min-height: 1784px;
  width: 100vw;
  top: 65px;
  position: fixed;
  justify-content: left;
  z-index: 121;
}

.college-search-popup .search-results {
  background-color: var(--white);
  border-radius: 10px;
  box-shadow: 0px 4px 18px #9b9b9b80;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 12px;
  position: fixed;
  width: 285px;
  z-index: 1;
}

.college-search-popup .search-count {
  align-self: stretch;
  color: var(--colorgreylight);
  font-family: var(--font-family-helvetica_neue-medium);
  font-size: var(--font-size-m);
  font-weight: 500;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
}

.college-search-popup .search-items {
  gap: 8px;
  margin-top: 12px;
  overflow: hidden;
  width: 273px;
  padding-right: 12px;
  max-height: 382px;
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
}

.college-search-popup .search-item {
  align-items: flex-start;
  background-color: var(--white);
  border: 1px solid;
  border-color: var(--border-color);
  border-radius: 8px;
  display: inline-flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
  position: relative;
  width: 100%;
  cursor: pointer;
}

.college-search-popup .search-item:hover {
  background-color: #63687414;
}

.college-search-popup .search-item-college {
  color: var(--colorcommonblack);
  font-family: var(--font-family-helvetica_neue-medium);
  font-size: var(--font-size-xl);
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
}

.college-search-popup .search-item-address {
  color: var(--colorgreymain);
  font-family: var(--font-family-helvetica_neue-regular);
  font-size: var(--font-size-m);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
}

.college-search-popup .no-colleges-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 261px;
  height: 121px;
  position: relative;
}

.college-search-popup .no-colleges-result {
  color: var(--colorgreymain);
  font-family: var(--font-family);
  font-size: var(--font-size-m);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
}

.college-search-popup .no-colleges-try-again {
  color: var(--colorgreylight);
  font-family: var(--font-family);
  font-size: var(--font-size-m);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: normal;
  position: relative;
}


/* Profile menu popup */

.profile-menu-popup {
  min-height: 400px;
  width: 100vw;
  top: 65px;
  position: fixed;
  z-index: 121;
  
  .profile-menu-items {
    background-color: var(--white);
    border-radius: 10px;
    box-shadow: 0px 4px 18px #9b9b9b80;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 16px;
    position: fixed;
    width: 240px;
  }
  
  .profile-menu-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    width: 208px;
    height: 32px;
    position: relative;
    
    .profile-menu-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: var(--colorsecondarybackground-2);
      width: 32px;
      height: 32px;
      border-radius: 6px;
      
      .inner-icon {
        width: 20px;
        height: 20px;
      }
    }
    
    .profile-menu-title {
      color: var(--black-2);
      font-family: var(--font-family);
      font-size: var(--font-size-m);
      font-weight: 400;
    }
    
    &:hover {
      background-color: var(--colorsecondarybackground-2);
      border-radius: 6px;
      cursor: pointer;
    
      .profile-menu-icon {
        background-color: var(--colorprimarylighter);
      }
      
      .profile-menu-title {
        font-weight: 500;
      }
    }
  }
  
}


.notification-menu-popup {
  width: 100vw;
  top: 65px;
  position: fixed;
  z-index: 121;
  
  .notification-menu-content {
    background-color: var(--white);
    border-radius: 10px;
    box-shadow: 0px 4px 18px #9b9b9b80;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 12px;
    position: fixed;
    width: 341px;
    
    .notification-menu-title {
      color: var(--colorgreylight);
      font-family: var(--font-family);
      font-size: var(--font-size-m);
      font-weight: 500;
      line-height: 15px;
    }
    
    .notification-items {
      display: flex;
      flex-direction: column;
      width: 100%;
      
      .notification-item {
      
      }
    }
  }
  
}





.filter-dropdown {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background-color: var(--white);
  border-radius: 10px;
  border: 1px solid var(--colorgreylight);
  box-shadow: 0 4px 18px #9b9b9b80;
  gap: 4px;
  min-width: 160px;
  padding: 8px 0;
  position: absolute;
  z-index: 1;
  white-space: nowrap;
}
.filter-dropdown .radio_root_label,
.filter-dropdown .checkbox_root_label {
  align-items: center;
  align-self: stretch;
  display: flex;
  gap: 8px;
  height: 32px;
  padding: 8px 12px;
  position: relative;
  cursor: pointer;

  .text {
    font-size: var(--font-size-xl);
  }
}

.filter-checkbox img,
.filter-radio img {
  height: 20px;
  margin-bottom: -2.00px;
  margin-top: -2.00px;
  min-width: 20px;
  position: relative;
}

.filter-checkbox div,
.filter-radio div {
  flex: 1;
  letter-spacing: 0;
  line-height: 18px;
  position: relative;
  white-space: nowrap;
  color: var(--black-2);
  font-family: var(--font-family);
  font-size: var(--font-size-xl);
  font-style: normal;
  font-weight: 400;
}

.radio_root_label {
  --out-border-color: var(--shuttle-gray-4);
  --inner-border-color: var(--shuttle-gray-5);
  --bg-color: var(--shuttle-gray);
  --font-weight: 400;
  --border-width: 1.667px;

  display: flex;
  gap: 12px;
  position: relative;
  margin: 0;
  cursor: pointer;
  align-items: center;
  user-select: none;

  &.button-sm {
    padding: 6px 12px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid var(--out-border-color);
    font-size: var(--font-size-l);
  }

  &.button-md {
    padding: 10px 12px;
    height: 40px;
    border-radius: 8px;
    border: 1px solid var(--out-border-color);
    font-size: var(--font-size-l);
  }

  &.button-lg {
    padding: 12px 12px;
    height: 48px;
    border-radius: 10px;
    border: 1px solid var(--out-border-color);
    font-size: var(--font-size-xl);
  }

  &:has(input:disabled) {
    pointer-events: none;
    opacity: 0.5;
  }

  &:has(input:checked) {
    --font-weight: 500;
    --border-width: 5px;
    --inner-border-color: var(--colorprimarydark);
    --bg-color: transparent;
    --out-border-color: var(--colorprimarydark)
  }

  input {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    overflow: hidden;
  }

  .indicator {
    display: block;
    width: 20px;
    height: 20px;
    box-sizing: border-box;
    border-radius: 50%;
    border-style: solid;
    border-width: var(--border-width);
    border-color: var(--inner-border-color);
    background-color: var(--bg-color);
    transition: all 300ms linear;
  }

  .text {
    font-weight: var(--font-weight);
    font-family: var(--font-family);
    color: var(--black-2);
  }

  .radio-tooltip {
    display: flex;
    flex-grow: 1;
    justify-content: end;
    height: 20px;
    margin-top: -2px;
  }
}

.checkbox_root_label {
  --out-border-color: var(--shuttle-gray-4);
  --inner-border-color: var(--shuttle-gray-5);
  --bg-color: var(--shuttle-gray);
  --font-weight: 400;
  --mark-color: #fff0;

  display: flex;
  gap: 12px;
  position: relative;
  margin: 0;
  cursor: pointer;
  user-select: none;
  align-items: center;

  &.button-md {
    padding: 7px 12px;
    height: 40px;
    border-radius: 8px;
    border: 1px solid var(--out-border-color);
    font-size: var(--font-size-l);
  }

  &.button-md-no-border {
    padding: 8px 4px;
    height: 40px;
    font-size: var(--font-size-l);
  }

  &.button-lg {
    padding: 10px 12px;
    height: 48px;
    border-radius: 10px;
    border: 1px solid var(--out-border-color);
    font-size: var(--font-size-xl);
  }
  
  &:has(input:disabled) {
    pointer-events: none;
    opacity: 0.5;
  }

  &:has(input:checked) {
    --font-weight: 500;
    --inner-border-color: var(--colorprimarydark);
    --bg-color: var(--colorprimarydark);
    --out-border-color: var(--colorprimarydark);
    --mark-color: #fff
  }

  input {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    overflow: hidden;
  }

  .indicator {
    display: flex;
    width: 24px;
    height: 24px;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    border-radius: 4px;
    border-style: solid;
    border-width: 2px;
    border-color: var(--inner-border-color);
    background-color: var(--bg-color);
    color: var(--mark-color);
    transition: all 300ms linear;
  }

  .text {
    font-weight: var(--font-weight);
    font-family: var(--font-family);
    color: var(--black-2)
  }
}

.custom-dropdown-menu-wrapper {
  --border-color: var(--bombay);
  --angle: -180deg;
  width: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 7px;

  select.hidden-select.input-field.input {
    width: 0;
    height: 0;
    top: 0;
    left: 0;
    overflow: hidden;
    position: absolute;
    z-index: calc(-1/0);
  }

  .custom-dropdown-menu-label {
    display: block;
    padding-left: 6px;
    font-family: var(--font-family);
    font-size: var(--font-size-m);
    line-height: var(--font-size-l);
    color: var(--black-2);
  }

  .custom-dropdown-menu-toggle {
    outline: none;
    background-color: transparent;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 15px;
    justify-content: space-between;
    padding: 5px 12px;
    min-height: 32px;
    border: 1px solid var(--border-color);

    .text {
      font-family: var(--font-family);
      font-size: var(--font-size-l);
      line-height: var(--font-size-l);
      color: var(--black-2);

      &.with-placeholder {
        color: var(--bombay);
      }

      &.is-disabled {
        color: var(--bombay);
      }
    }

    svg {
      transform: rotate(var(--angle));
      transition: all 300ms linear;
    }
  }

  .menu-wrapper {
    margin: 0;
    border-radius: 10px;
    background-color: #fff;
    box-shadow: var(--main-shadow);
    outline: none;
    border: none;

    /*inset-block-start: calc(anchor(bottom) + 10px);*/
    /*inset-inline-start: anchor(start);*/
    /*width: anchor-size(width);*/

    .scrollable {
      padding: 4px;
      max-height: 160px;
      overflow: auto;
      flex-direction: column;
      align-items: stretch;
      gap: 4px;

      &::-webkit-scrollbar {
        width: 4px;
        transform: translateX(-10px);
      }

      &::-webkit-scrollbar-track {
        background: transparent;
        height: 100%;
      }

      &::-webkit-scrollbar-thumb {
        background: var(--scrollbar);
        border-radius: 2px;
      }

      .custom-dropdown-option-item {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 8px 12px;
        color: #2566eb00;
        transition: color 300ms linear;
        cursor: pointer;

        &.selected {
          color: var(--colorprimarymain);
        }

        .text {
          display: flex;
          flex-direction: row;
          font-family: var(--font-family);
          font-size: var(--font-size-l);
          line-height: var(--font-size-l);
          color: var(--black-2);
        }
      }
    }

    & > span {
      font-family: var(--font-family);
      font-size: var(--font-size-l);
      line-height: var(--font-size-l);
      display: inline-block;
      color: var(--bombay);
      text-align: center;
      padding-bottom: 8px;
      width: 100%;
      cursor: not-allowed;
      user-select: none;
    }
  }

  &:has(.menu-wrapper:popover-open) {
    --angle: 0deg;
    --border-color: #242730;
  }
}

.sort-icons {
  display: flex;
  flex-direction: column;
  row-gap: 4px;
  cursor: pointer;
}

.upgrade-features-block {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 48px auto;
	
	.features-title {
		color: var(--black-2);
    	font-family: var(--font-family);
    	font-size: var(--font-size-xxxxl);
    	font-weight: 500;
	}
	
	.features-sub-title {
		margin-top: 8px;
		color: var(--black-2);
    	font-family: var(--font-family);
    	font-size: var(--font-size-20);
    	font-weight: 400;
	}
	
	.features-divider {
		margin: 20px auto;
		background-color: var(--colorgreylighter);
		width: 600px;
		height: 1px;
	}
	
	.unlock-features {
		margin-bottom: 24px;
		color: var(--black-2);
    	font-family: var(--font-family);
    	font-size: var(--font-size-20);
    	font-weight: 500;
	}
	
	.features-image {
		margin-top: 48px;
	}
}

label.form-control-wrapper {
  --control-border-color: var(--colorgreylighter);
  --control-label-color: var(--black-2);
  --control-error-top: calc(100% + 4px);
  --control-error-max-width: 100%;

  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  position: relative;
  min-height: clamp(40px, 3.333dvw, 48px);

  &:has(.form-control-field:focus) {
    --control-border-color: var(--colorgreydarker2);
  }

  &:has(.error-message:not(:empty)) {
    --control-border-color: var(--colorsecondarypink2);
    --control-label-color: var(--colorsecondarypink2);
  }

  &:has(.counter) {
    --control-error-top: calc(100% - 16px);
    --control-error-max-width: calc(100% - 51px);
  }

  .form-control-field {
    border-radius: 10px;
    padding: 16px 12px;
    outline: none;
    border: 1px solid var(--control-border-color);
    font-family: var(--font-family);
    line-height: 18px;
    font-size: clamp(14px, 1.111dvw, 16px);
    color: var(--black-2);

    &::placeholder {
      color: var(--colorgreylighter);
    }
  }

  .form-control-label  {
    display: inline-block;
    padding: clamp(0px, 0.231dvw, 2px) 6px;
    font-family: var(--font-family);
    font-size: clamp(12px, 0.972dvw, 14px);
    line-height: clamp(14px, 1.111dvw, 16px);
    color: var(--control-label-color);
  }

  .error-message  {
    position: absolute;
    top: var(--control-error-top);
    left: 0;
    display: inline-block;
    padding: 0 6px;
    font-family: var(--font-family);
    font-size: clamp(10px, 0.833dvw, 12px);
    line-height: clamp(12px, 1.111dvw, 16px);
    color: var(--control-label-color);
    width: 100%;
    max-width: var(--control-error-max-width);
  }

  .counter {
    align-self: flex-end;

    &, & span {
      display: inline-block;
      font-family: var(--font-family);
      font-size: 12px;
      line-height: 16px;
      color: var(--bombay);
    }
  }
}

.snackbar {
  --type-color: var(--colorprimarymain);

  position: fixed;
  top: 100px;
  left: 50vw;
  padding: 12px 16px;
  border-radius: 10px;
  max-width: 350px;
  display: grid;
  grid-template-columns: 24px 1fr;
  grid-auto-rows: max-content;
  gap: 4px 12px;
  border: 1px solid var(--type-color);
  background-color: color-mix(in oklab, var(--type-color) 12%, transparent);
  transform: translate(-50%, 0);
  transition: all 300ms linear;

  svg {
    grid-row: span 2;
    align-self: center;
  }

  p, h4 {
    margin: 0;
    padding: 0;
    font-size: 14px;
    line-height: 16px;
    font-family: var(--font-family);
    color: var(--black-2);
  }

  h4 {
    font-weight: 500;
  }

  &.warning {
   --type-color: var(--colorsecondaryorange-2);
  }

  &.success {
    --type-color: var(--emerald-2);
  }

  &.error {
    --type-color: var(--colorsecondarypink2);
  }
}

@starting-style {
  .snackbar {
    top: 0;
    transform: translate(-50%, -100%);
  }
}

/* TODO Solution 2 */

.circular-progress {
  --half-size: calc(var(--size) / 2);
  --radius: calc((var(--size) - var(--stroke-width)) / 2);
  --circumference: calc(var(--radius) * pi * 2);
  --dash: calc((var(--progress) * var(--circumference)) / 100);
  animation: progress-animation 2s linear 0s 1 forwards;

  circle {
    cx: var(--half-size);
    cy: var(--half-size);
    r: var(--radius);
    stroke-width: var(--stroke-width);
    fill: none;
    stroke-linecap: round;

    &.bg {
      stroke: var(--shuttle-gray);
    }

    &.fg {
      transform: rotate(-90deg);
      transform-origin: var(--half-size) var(--half-size);
      stroke-dasharray: var(--dash) calc(var(--circumference) - var(--dash));
      transition: stroke-dasharray 0.3s linear 0s;
    }
  }
}

@property --progress {
  syntax: "<number>";
  inherits: false;
  initial-value: 0;
}

@keyframes progress-animation {
  from {
    --progress: 0;
  }
  to {
    --progress: var(--progress-v);
  }
}