/* -------------------------------------------------------------------
   Projects page
   ------------------------------------------------------------------- */
.projects-main {
  width: 100%;
  height: 100%;
  background-color: var(--theme-color-bg-1);
  position: absolute;
  top: 0px;
  left: 0px;
}

.projects-header-icon-img {
  filter: grayscale(100%) brightness(150%);
  opacity: 0.7;
}

.projects-header-tab-selected .projects-header-icon-img {
  opacity: 1;
}

/*.projects-header-icon-img:hover {
    opacity: 1;
  }*/

.projects-lab-title {
  color: var(--theme-color-fg-highlight);
  font: 20px var(--font-family-bold);
}

.projects-lab-desc {
  color: var(--theme-color-fg-muted);
  font: 12px var(--font-family-regular);
}

.projects-header-tab {
  color: var(--theme-color-fg-muted);
  font-size: 15px;
}

.projects-header-tab:hover {
  color: var(--theme-color-fg-highlight);
}

.projects-header-tab-selected {
  color: var(--theme-color-fg-highlight);
  opacity: 1;
}

.projects-header-tab-small {
  color: var(--theme-color-fg-muted);
  font-size: 16px;
}

.projects-header-tab-small:hover {
  color: var(--theme-color-fg-highlight);
}

.projects-sign-out-icon {
  filter: invert(1);
  width: 15px;
  height: 15px;
  position: absolute;
}

.projects-header-button {
  background-color: var(--theme-color-bg-5);
  border: none;
  color: var(--theme-color-fg-default);
  padding: 10px;
  font-weight: bold;
  font-size: 12px;
}

.projects-header-button:hover {
  background-color: var(--theme-color-border-strong);
  color: var(--theme-color-fg-highlight);
}

.projects-create-new-project-button {
  background-color: var(--theme-color-notice);
  border: none;
  color: var(--theme-color-bg-0);
  padding: 10px;
  font-weight: bold;
  font-size: 12px;
  cursor: pointer;
}

.projects-create-new-project-button:hover {
  background-color: var(--theme-color-notice-hover);
  color: var(--theme-color-bg-0);
}

.projects-create-new-project-button:disabled {
  opacity: 0.5;
  background-color: var(--theme-color-notice);
}

.projects-discord-button {
  background-image: url(../assets/images/discord-logo-black.svg);
  border: none;
  background-repeat: no-repeat;
  background-position: center 9px;
  background-size: 80px;
  cursor: pointer;
}

.projects-button-grey {
  background-color: var(--theme-color-bg-5);
  border: none;
  color: var(--theme-color-fg-default);
  padding: 10px;
  font-weight: bold;
  font-size: 12px;
}

.projects-button-grey:hover {
  background-color: var(--theme-color-border-strong);
  color: var(--theme-color-fg-highlight);
}

.projects-checkbox {
  width: 20px;
  height: 20px;
  border: 1px solid var(--theme-color-fg-default-shy);
}

.projects-checkmark {
  width: 20px;
  height: 20px;
  opacity: 0.7;
  content: url('../icons/checkmark.svg');
}

.projects-search-bg {
  background-color: var(--theme-color-bg-2);
}

.projects-search-input {
  background-color: var(--theme-color-bg-2);
  color: var(--theme-color-fg-default-shy);
  border: none;
  display: block;
  padding: 0 0 0 10px;
  box-sizing: border-box;
  font: 12px var(--font-family-regular);
}

.projects-project-name-input {
  background-color: var(--theme-color-bg-2);
  color: var(--theme-color-fg-default-shy);
  border: none;
  display: block;
  padding: 0 0 0 10px;
  box-sizing: border-box;
  font: 15px var(--font-family-bold);
}

.projects-header-user {
  padding-left: 20px;
  padding-right: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.projects-header-user-label {
  color: var(--theme-color-fg-highlight);
  font-size: 15px;
}

.projects-header-user-sublabel {
  display: inline;
  color: var(--theme-color-fg-default-shy);
  font-size: 11px;
}

.projects-header-user-expand-menu {
  color: var(--theme-color-fg-default);
  margin-left: 5px;
  margin-top: 1px;
}

.projects-header-workspace-label {
  color: var(--theme-color-fg-highlight);
  font-size: 11px;
  margin: 0px;
  padding: 5px 10px;
}

.projects-header-workspace-label:hover {
  background-color: var(--theme-color-border-strong);
}

.projects-header-workspace-label-btn {
  color: var(--theme-color-fg-highlight);
  font-size: 11px;
  padding-left: 10px;
  margin: 0px;
  height: 32px;
  line-height: 32px;
}

.projects-header-workspace-label-btn:hover {
  background-color: var(--theme-color-border-strong);
}

.projects-header-workspace-divider {
  height: 0px;
  border-top: 2px var(--theme-color-bg-5) solid;
}

.projects-header-workspace-title {
  color: var(--theme-color-fg-default-shy);
  font-size: 10px;
  text-transform: uppercase;
  margin-top: 5px;
  margin-bottom: 2px;
  margin-left: 10px;
}

.projects-header-workspaces {
  background-color: var(--theme-color-bg-5);
}

.projects-header-settings-icon {
  width: 20px;
  height: 20px;
  opacity: 0.7;
  vertical-align: middle;
  position: relative;
  top: 10px;
  left: 10px;
  content: url('../assets/icons/settings.svg');
}

.projects-header-settings:hover {
  background-color: var(--theme-color-bg-5);
}

.projects-header-settings-icon:hover {
  opacity: 1;
}

.projects-header-account-icon {
  width: 20px;
  height: 20px;
  filter: invert(0.7);
  vertical-align: middle;
  position: relative;
  top: 10px;
  left: 10px;
  content: url('../assets/outline-account_circle-24px.svg');
}

.projects-panel-header {
  background-color: var(--theme-color-bg-5);
  color: var(--theme-color-fg-highlight);
  padding: 15px;
  font-size: 16px;
  margin: 5px;
}

#admin-settings {
  box-sizing: border-box;
  padding: 20px;
  background-color: var(--theme-color-bg-1);
}

.projects-feed-title {
  color: var(--theme-color-fg-default-shy);
  font-size: 16px;
}

.projects-feed-body {
  color: var(--theme-color-fg-muted);
  font-size: 12px;
  line-height: 15px;
  padding-top: 5px;
}

.projects-feed-image {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  height: 190px;
}

.projects-feed-image-big {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.projects-feed-item:hover .projects-feed-image {
  filter: none;
}

.projects-lesson-big-item {
  display: inline-block;
  width: 50%;
  position: relative;
  height: 150px;
}

.projects-lesson-big-item-plate {
  background-color: var(--theme-color-bg-2);
}

.projects-lesson-big-item-plate:hover {
  background-color: var(--theme-color-bg-4);
}

.projects-lesson-big-item-label {
  color: var(--theme-color-fg-highlight);
  font: 16px var(--font-family-bold);
}

.projects-lesson-big-item-desc {
  color: var(--theme-color-fg-muted);
  font: 12px var(--font-family-regular);
}

.projects-lesson-big-item-progress {
  color: var(--theme-color-bg-2);
  background-color: var(--theme-color-bg-5);
  overflow: hidden;
}

.projects-lesson-big-item-progress-label-dark {
  font-size: 15px;
  font-weight: bold;
}

.projects-lesson-big-item-progress-label {
  font-size: 15px;
  font-weight: bold;
  color: var(--theme-color-fg-muted);
}

.projects-lesson-item-progress-label {
  font-size: 12px;
  font-weight: bold;
  color: var(--theme-color-fg-default-shy);
}

.projects-lesson-image {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.projects-lesson-item {
  display: inline-block;
  width: 465px;
  position: relative;
  height: 140px;
}

.projects-lesson-has-completed {
  opacity: 0.4;
}

.projects-lesson-completed-icon {
  font-size: 20px;
  color: rgb(168, 141, 66);
}

.projects-lesson-item-progress {
  color: var(--theme-color-fg-muted);
  font-size: 15px;
}

.projects-lesson-item-progress-completed {
  color: var(--theme-color-notice);
}

.projects-lesson-item-progress-not-started {
  color: var(--theme-color-fg-muted);
}

.projects-lesson-item-progress-has-started {
  color: var(--theme-color-notice);
}

.projects-lesson-item-progress-has-completed {
  color: var(--theme-color-success);
}

.projects-panel-icon {
  font-size: 20px;
  color: var(--theme-color-fg-muted);
}

.projects-panel-dark {
  font-size: 20px;
  color: var(--theme-color-bg-5);
}

.projects-panel-icon:hover {
  color: var(--theme-color-fg-default);
}

.projects-panel-circle-ellipse-icon {
  border-radius: 50%;
  background-color: var(--theme-color-fg-muted);
  width: 18px;
  height: 18px;
  text-align: center;
  color: var(--theme-color-bg-5);
}

.projects-panel-circle-ellipse-icon:hover {
  background-color: var(--theme-color-fg-default);
}

.projects-panel-icon-show-on-hover {
  display: none;
}

.projects-item:hover .projects-panel-icon-show-on-hover {
  display: inline-block;
}

.projects-panel-header-icon-show-on-hover {
  display: none;
}

.projects-panel-header:hover .projects-panel-header-icon-show-on-hover {
  display: block;
}

.projects-section-header {
  background-color: var(--theme-color-bg-2);
  color: var(--theme-color-fg-highlight);
  line-height: 30px;
  padding-left: 5px;
}

.projects-restore-item {
  display: inline-block;
  width: 256px;
  position: relative;
  height: 256px;
}

.projects-item {
  display: inline-block;
  width: 256px;
  position: relative;
  height: 256px;
}

.projects-item-plate {
  background-color: var(--theme-color-bg-5);
}

.projects-item-plate:hover {
  background-color: var(--theme-color-border-strong);
}

.projects-item-label-bg {
  background-color: var(--theme-color-bg-5);
  text-align: center;
  opacity: 0.6;
}

.projects-item-thumb {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.projects-item-cloud-synced {
  font: 10px var(--font-family-bold);
  color: var(--theme-color-fg-muted);
}

.projects-item-cloud-synced-icon {
  width: 15px;
  height: 15px;
  display: inline-block;
  filter: invert(0.7);
  margin-right: 4px;
  margin-bottom: -1px;
}

.projects-item-cloud-download {
  text-align: center;
  font-size: 40px;
  color: var(--theme-color-fg-muted);
  display: none;
  background-color: var(--theme-color-bg-2);
}

.projects-add-new-item-border {
  border-width: 2px;
  border-style: dashed;
  border-color: var(--theme-color-fg-muted);
}

.projects-item-remove-icon {
  opacity: 0;
  background-color: var(--theme-color-bg-5);
  border-color: var(--theme-color-bg-5);
  border-width: 3px;
  border-radius: 3px;
  padding: 5px;
  color: var(--theme-color-fg-default-shy);
}

.projects-item-remove-icon:hover {
  background-color: var(--theme-color-border-strong);
  border-color: var(--theme-color-border-strong);
}

.projects-item:hover .projects-item-remove-icon {
  opacity: 1;
}

.projects-item-remove-icon-sticky {
  opacity: 1;
}

.projects-update-banner {
  background-color: var(--theme-color-success);
  color: var(--theme-color-fg-default);
  border-radius: 2px;
  padding: 10px;
  padding-top: 3px;
  font-size: 14px;
}

.projects-update-banner:hover {
  background-color: var(--theme-color-success);
  opacity: 0.8;
}

.projects-remote-url-label {
  color: var(--theme-color-fg-muted);
}

.projects-remote-url-clone-button {
  background-color: var(--theme-color-notice);
  border: none;
  color: var(--theme-color-fg-default);
  height: 100%;
  margin-top: 5px;
  float: right;
}

.projects-remote-url-clone-button:hover {
  background-color: var(--theme-color-notice-hover);
}

.projects-feed-top-item {
  width: 100%;
  display: flex;
}

.projects-feed-top-item-text {
  background-color: white;
  color: black;
  padding: 10px;
}

.projects-feed-top-item-title {
  font-size: 25px;
  font-weight: bold;
  line-height: 40px;
}

.projects-feed-top-item-body {
  font-size: 16px;
  line-height: 30px;
}

.projects-feed-top-item-image {
  background-size: cover;
  background-position: center;
}

.projects-feed-item {
  background-color: var(--theme-color-bg-2);
}

.projects-feed-item:hover {
  background-color: var(--theme-color-bg-3);
}

.projects-feed-item-title {
  color: var(--theme-color-fg-highlight);
  font: 14px var(--font-family-regular);
}

.projects-feed-item-body {
  color: var(--theme-color-fg-muted);
  font: 12px var(--font-family-regular);
}

.projects-create-from-template-title {
  color: var(--theme-color-fg-highlight);
  font-size: 20px;
  margin-bottom: 10px;
  margin-top: 20px;
}

.projects-title {
  color: var(--theme-color-fg-highlight);
  font: 24px var(--font-family-semibold);
  text-transform: capitalize;
}

.projects-popup-title {
  color: var(--theme-color-fg-highlight);
  font: 20px var(--font-family-semibold);
  text-transform: capitalize;
}

.projects-divider-label {
  color: var(--theme-color-fg-highlight);
  font: 24px var(--font-family-semibold);
  text-transform: capitalize;
}

.projects-sub-divider-label {
  color: var(--theme-color-fg-muted);
  font-weight: 600;
  font-size: 16px;
  padding-top: 48px;
  padding-bottom: 24px;
}

.projects-label {
  color: var(--theme-color-fg-default-contrast);
  font: 14px var(--font-family-bold);
  opacity: 0.5;
}

.projects-label.highlighted {
  color: var(--theme-color-fg-highlight);
}

.projects-label-small {
  color: var(--theme-color-fg-default-shy);
  font: 12px var(--font-family-regular);
  text-transform: uppercase;
}

.projects-sublabel {
  color: var(--theme-color-fg-default-contrast);
  font: 12px var(--font-family-regular);
}

.projects-sublabel.highlighted {
  color: var(--theme-color-fg-default-shy);
}

.projects-create-new-project-cs {
  color: var(--theme-color-fg-default-contrast);
  font: 14px var(--font-family-bold);
}

.projects-create-new-project-cs-icon {
  width: 20px;
  height: 20px;
  filter: invert(0.7);
  vertical-align: middle;
  position: relative;
  top: -2px;
  content: url('../assets/images/outline-radio_button_unchecked-24px.svg');
}

.projects-create-new-project-cs-icon.checked {
  filter: invert(1);
  content: url('../assets/images/outline-radio_button_checked-24px.svg');
}

.projects-create-new-project-cs-icon:hover {
  filter: invert(1);
}

.projects-exit-big-feed-item-icon {
  width: 20px;
  height: 20px;
  filter: invert(0.7);
  vertical-align: middle;
  position: relative;
  top: -2px;
  content: url('../assets/images/sharp-clear-24px.svg');
}

.projects-exit-big-feed-item-icon:hover {
  filter: invert(1);
}

.projects-template-item {
  width: 256px;
  position: relative;
}

.projects-template-item-title {
  color: var(--theme-color-fg-highlight);
  font: 14px var(--font-family-semibold);
  padding-bottom: 4px;
}

.projects-template-item-body {
  font: 12px;
  font-weight: var(--font-weight-regular);
  color: var(--theme-color-fg-default);
}

.projects-template-item-details {
  padding: 12px;
}

.projects-template-category {
  display: flex;
  margin-bottom: 10px;
}

.templates {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.projects-back-icon {
  width: 20px;
  height: 20px;
  filter: invert(0.7);
}

.projects-back-icon:hover {
  filter: invert(1);
}

.projects-item-label {
  color: var(--theme-color-fg-highlight);
  font-weight: var(--font-weight-semibold);
}

.projects-item-sublabel {
  font: 10px var(--font-family-bold);
  color: var(--theme-color-fg-muted);
}

.projects-edit-icon {
  width: 12px;
  height: 12px;
  filter: invert(1);
}

.projects-remove-icon {
  filter: invert(0.7);
}

.projects-remove-icon:hover {
  filter: invert(1);
}

.projects-start-pane-label {
  color: var(--theme-color-fg-default-shy);
  font: 16px var(--font-family-regular);
  text-transform: initial;
}

.projects-start-pane-feed-big {
  background-color: var(--base-color-black-transparent-85);
}

.projects-start-pane-thumb {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  /*border-radius: 10px;*/
}

.projects-start-pane-item {
  background-color: var(--theme-color-bg-2);
}

.projects-start-pane-item:hover {
  background-color: var(--theme-color-bg-2);
}

.projects-rename-input {
  background-color: var(--theme-color-bg-2);
  color: var(--theme-color-fg-highlight);
  border: none;
  display: block;
  padding: 0px;
  margin: 0px;
  box-sizing: border-box;
  font: 12px var(--font-family-bold);
  width: 100%;
  height: 100%;
}

.projects-icon {
  color: var(--theme-color-fg-default-shy);
  margin-left: 5px;
}

.projects-icon.highlighted {
  color: var(--theme-color-fg-highlight);
  margin-left: 5px;
}

.projects-cloudservices-bg {
  background-color: var(--theme-color-bg-2);
}

.projects-getting-started-item {
  width: 300px;
  height: 300px;
  position: relative;
  margin-right: 20px;
}

.projects-getting-started-item:hover {
  background-color: var(--theme-color-bg-5);
}

.tutorial-items {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}

.tutorial-items.with-lessons {
  overflow-x: auto;
  flex-wrap: nowrap;
}

.tutorial-items::-webkit-scrollbar {
  display: none;
}

.lesson-items-scroll-controls {
  margin-top: 16px;
  display: flex;
  justify-content: space-between;
}

.lesson-items-scroll-controls > svg.disabled {
  pointer-events: none;
  opacity: 0.7;
}

.lesson-items-scroll-controls > svg {
  cursor: pointer;
}

.lesson-items-scroll-controls > svg:hover path {
  stroke: white;
}

.projects-tutorial-item {
  position: relative;
  flex-shrink: 0;
  /*
     this fixes an issue where the <div> of a tutorial card becomes slighly taller
     than the <img> inside of it. Not sure why.
   */
  line-height: 0;
}

.projects-tutorial-item-label {
  color: var(--theme-color-bg-0);
  font: 20px var(--font-family-semibold);
  line-height: 27px;
  white-space: normal;
}

.projects-tutorial-item-sublabel {
  color: var(--theme-color-fg-highlight);
  font: 12px var(--font-family-regular);
}

.projects-tutorial-item-thumb {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.projects-tutorial-hover-overlay {
  position: absolute;
  background-color: white;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
}

.projects-tutorial-item:hover .projects-tutorial-hover-overlay {
  opacity: 0.15;
}

.tutorial-categories {
  margin-bottom: 15px;
}

.tutorial-category-item {
  color: var(--theme-color-fg-highlight);
  font: 24px var(--font-family-semibold);
  font-weight: 600;
  margin-right: 40px;
  opacity: 0.4;
}

.tutorial-category-item:hover {
  opacity: 0.7;
}

.tutorial-category-item.selected {
  opacity: 1;
}

.projects-tutorial-item-icon.play {
  content: url('../assets/icons/play-black.svg');
}

.projects-tutorial-item-icon.book {
  content: url('../assets/icons/book-black.svg');
}

.projects-new-version-available-link {
  color: var(--theme-color-notice);
}

.projects-new-version-available-link:hover {
  color: var(--theme-color-notice-hover);
  -webkit-app-region: no-drag;
}

.projects-new-update-available {
  color: var(--theme-color-notice);
  -webkit-app-region: no-drag;
}

.projects-new-update-available:hover {
  color: var(--theme-color-notice-hover);
}

.account-menu-workspaces {
  overflow: hidden overlay;
  max-height: calc(100vh - 180px);
}

/* -------------------------------------------------------------------
   Legacy Project Styles (React 17 Migration)
   ------------------------------------------------------------------- */

/* Legacy project card modifier */
.projects-item--legacy {
  border: 2px solid var(--theme-color-notice);
  box-sizing: border-box;
}

.projects-item--legacy:hover {
  border-color: var(--theme-color-notice-hover);
}

/* Legacy badge in top-right corner */
.projects-item-legacy-badge {
  position: absolute;
  top: 8px;
  right: 8px;
  display: flex;
  align-items: center;
  gap: 4px;
  background-color: rgba(212, 149, 23, 0.9);
  color: var(--theme-color-bg-0);
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  z-index: 10;
}

.projects-item-legacy-badge svg {
  flex-shrink: 0;
}

/* Hidden class for conditional display */
.hidden {
  display: none !important;
}

/* Legacy project hover actions overlay */
.projects-item-legacy-actions {
  position: absolute;
  bottom: 70px;
  left: 0;
  right: 0;
  top: 0;
  background: rgba(19, 19, 19, 0.95);
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 20px;
  box-sizing: border-box;
}

.projects-item--legacy:hover .projects-item-legacy-actions {
  display: flex;
}

/* Migrate Project button */
.projects-item-migrate-btn {
  background-color: var(--theme-color-notice);
  border: none;
  color: var(--theme-color-bg-0);
  padding: 10px 20px;
  font-weight: 600;
  font-size: 12px;
  cursor: pointer;
  width: 100%;
  max-width: 180px;
  border-radius: 4px;
  text-align: center;
}

.projects-item-migrate-btn:hover {
  background-color: var(--theme-color-notice-hover);
}

/* Open Read-Only button */
.projects-item-readonly-btn {
  background-color: transparent;
  border: 1px solid var(--theme-color-border-default);
  color: var(--theme-color-fg-default-shy);
  padding: 8px 16px;
  font-weight: 500;
  font-size: 11px;
  cursor: pointer;
  width: 100%;
  max-width: 180px;
  border-radius: 4px;
  text-align: center;
}

.projects-item-readonly-btn:hover {
  background-color: var(--theme-color-bg-5);
  border-color: var(--theme-color-fg-muted);
  color: var(--theme-color-fg-highlight);
}

/* Runtime detection pending indicator */
.projects-item-detecting {
  opacity: 0.7;
}

.projects-item-detecting::after {
  content: '';
  position: absolute;
  top: 8px;
  right: 8px;
  width: 12px;
  height: 12px;
  border: 2px solid var(--theme-color-border-default);
  border-top-color: var(--theme-color-notice);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
