* {
  box-sizing: border-box;
}
@font-face {
  font-family: 'Montserrat';
  src: url('/new-design/fonts/Montserrat/static/Montserrat-Regular.ttf') format('truetype');
}
@font-face {
  font-family: 'Montserrat';
  src: url('/new-design/fonts/Montserrat/static/Montserrat-Bold.ttf') format('truetype');
  font-weight: 700;
}
@font-face {
  font-family: 'Montserrat';
  src: url('/new-design/fonts/Montserrat/static/Montserrat-SemiBold.ttf') format('truetype');
  font-weight: 600;
}

.button,
body {
  font-family: 'Inter', sans-serif;
}

.input {
  transition: all 0.3s ease-out;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 10px;
}

a {
  text-decoration: none;
}

ul {
  list-style: none;
}

.success {
  color: #00cb2d;
}

.tabs {
  padding: 10px 0;
}
.tabs__wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}
.tabs__wrapper-menu {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@media (max-width: 1336px) {
  .tabs__wrapper {
    padding: 8px;
  }
}

.tabs__menu {
  padding: 10px 0 15px;
}

.tab {
  cursor: pointer;
  display: flex;
  align-items: center;
  position: relative;
  height: 40px;
  padding: 7px 10px;
  border-radius: 10px;
  border: 1px solid #b5bdcd;
  color: #3d475c;
  text-align: center;
}
.tab > img {
  margin-right: 5px;
}
.tab__standard {
  width: 248px;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4rem;
}
@media (max-width: 1336px) {
  .tab__standard {
    width: 100%;
    font-size: 1.4rem;
    font-style: normal;
    font-weight: 700;
    line-height: 1.4rem;
  }
}
@media (max-width: 991px) {
  .tab__standard {
    display: none;
  }
}
.tab__profile {
  text-align: center;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 600;
  line-height: 1.6rem;
  padding: 4px 10px;
}
.tab_active {
  background: var(--blue);
  border-color: var(--blue);
  color: #fafafa;
}
.tab_active > span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.tab__menu {
  width: 100%;
  padding: 5px 10px;
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.3rem;
}
.tab__small {
  width: 108px;
  height: 30px;
  justify-content: center;
}
.tab__menu:first-of-type {
  align-items: center;
}

.logo-svg {
  width: 124px;
  height: 40px;
  -o-object-fit: contain;
  object-fit: contain;
}

.loader {
  position: absolute;
  top: 5px;
  right: 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}
.loader .spinner {
  width: 26px;
  height: 26px;
  border: 2px solid #1b9dfb;
  border-top: 2px solid #e7eaee;
  border-radius: 50%;
}
.loader .spinner__active {
  border: 2px solid #fafafa;
  border-top: 2px solid #717f9b;
}
@media (max-width: 1336px) {
  .loader .spinner {
    width: 20px;
    height: 20px;
  }
}
@media (max-width: 1336px) {
  .loader {
    top: 9px;
  }
}
@media (max-width: 1336px) {
  .loader {
    display: none;
  }
}

input[type="text"], .input, textarea {
  width: 100%;
  border: 1px solid #b5bdcd;
  border-radius: 4px;
  outline: none;
  padding: 7px 10px;
  box-sizing: border-box;
  color: #3d475c;
  border: 1px solid #b5bdcd;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.9rem;
  height: 40px;
}
textarea {
  height: unset;
}
.input:focus {
  border: 1px solid #1b9dfb;
}
.input:active {
  border: 1px solid #3d475c;
}
.input__disabled {
  background-color: #e7eaee;
  color: #717f9b;
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.5;
}
.input__error {
  border: 1px solid #af2d2d;
}
.input__error label {
  color: #af2d2d;
}

.wrapper {
  max-width: 1336px;
  margin: 0 auto;
}

.header-background {
  background: #fafafa;
}
.header__wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 20px;
}

.header__logo-container {
  max-width: 124px;
  width: 100%;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  flex-shrink: 0;
}
.header__logo-container img {
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden;
  width: 100%;
}
@media (max-width: 991px) {
  .header__logo-container {
    width: 86px;
  }
}
@media (max-width: 414px) {
  .header__logo-container {
    width: 83px;
  }
}

.achievements {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: max-content;
  gap: 24px;
}
.achievements__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.achievements__text {
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.2rem;
  color: #717f9b;
}
@media (max-width: 767.68px) {
  .achievements {
    align-self: center;
  }
}

.user {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-left: 45px;
  margin-right: 30px;
}
.user > img {
  border-radius: 50%;
}
.user__name {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.user__name > span {
  color: #3d475c;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 600;
  line-height: 2rem;
}

.user__dropdown {
  z-index: 100;
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: 10px;
  left: 30px;
  top: 110%;
  border-radius: 20px;
  width: 200px;
  background: white;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
  padding: 10px 20px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
}

.user__dropdown a {
  font-size: 18px;
  color: #3d475c;
  font-weight: 600;
}

.user__dropdown-separate {
  background: #BCC2D1;
  height: 1px;
  width: 100%;
}

.user:hover .user__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.user__rank {
  display: flex;
  align-items: center;
  gap: 2px;
  color: #717f9b;
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 600;
  line-height: 1.7rem;
}
@media (max-width: 991px) {
  .user {
    margin: 0;
    justify-content: flex-start;
  }
}

.header__block {
  display: flex;
  align-items: center;
}
@media (max-width: 991px) {
  .header__block {
    display: none;
  }
}

.header__logo-line {
  display: flex;
}
@media (max-width: 414px) {
  .header__logo-line {
    flex-grow: 1;
    position: relative;
    justify-content: space-between;
    align-items: center;
    padding-top: 5px;
  }
}

.main {
  flex-grow: 1;
}

.lessons__title {
  background-color: #1b9dfb;
  height: 30px;
  padding: 10px 10px;
  margin: 0;
  border-radius: 10px 10px 0 0;
  font-size: 1.8rem;
  font-style: normal;
  font-weight: 600;
  line-height: 1.8rem;
  color: #ffffff;
}
.lessons__wrapper {
  display: flex;
  flex-direction: column;
  padding: 20px 20px;
}

.menu {
  display: none;
}
@media (max-width: 991px) {
  .menu {
    display: block;
  }
}

.menu-list {
  top: 0;
  left: 0;
  position: absolute;
  display: grid;
  padding: 50px 10px 20px;
  background: white;
  margin: 0;
  list-style-type: none;
  transform: translateY(-100%);
  transition: 0.3s;
  min-width: 320px;
  width: 100%;
  z-index: 10000;
}
.menu-list__wrapper {
  display: flex;
  flex-direction: column;
  border: 1px solid #b5bdcd;
  border-radius: 10px;
  padding: 7px;
  gap: 10px;
}

.menu-item {
  display: block;
  padding: 8px;
  color: white;
  font-size: 18px;
  text-align: center;
  text-decoration: none;
}

.menu-item:hover {
  background: rgba(255, 255, 255, 0.2);
}

.profile_mobile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  padding: 5px 10px;
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.3rem;
}

.profile_mobile > *:not(:last-child) {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  position: relative;
  width: 100%;
}
.profile_mobile > *:not(:last-child)::after {
  position: relative;
  width: 100%;
  display: flex;
  justify-content: center;
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -16px;
  height: 1px;
  background-color: #b5bdcd;
  width: 100%;
}

.profile__wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
}
.profile__info {
  display: flex;
  justify-content: flex-start;
  gap: 73px;
}

.profile__form-column {
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.profile__input {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
#menu-chess-heroes {
  
}
#menu-chess-heroes:after {
  content: '';
  width: 100%;
  height: 40px;
  display: block;
  background-size: contain;
  background-image: url('/images/menu_chess_heroes.png');
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 0;
  opacity: 0.80;
}
#menu-chess-heroes:hover:after {
  opacity: 1;
}
#start-tactics-trainer-rated {
    display: inline-block !important;
    width: 150px;
    padding: 10px 0;
    font-size: inherit;
    font-weight: 600;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    cursor: pointer;
    transition: all .2s ease-in-out;
  
      color: #fafafa;
      background-color: #fd9b1b;
      border: 2px solid #fd9b1b;
  
}
#start-tactics-trainer-rated:not(.active) {
  background-color: #fafafa;
  color: #fd9b1b;
}
span.result {
  width: 20px;
  height: 20px;
  padding: 1px;
}
span.result.result-incorrect .fa-times {
  background: url('/new-design/img/result-red.svg');
  width: 20px;
  height: 20px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
span.result.result-incorrect .fa-times::before {
  content: '';
}
span.result.result-correct .fa-check {
  background: url('/new-design/img/result-green.svg');
  width: 20px;
  height: 20px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
span.result.result-correct .fa-check::before {
  content: '';
}

dd#buttons-element {
  display: flex;
  gap: 10px;
}
dd#buttons-element:has(:only-child) {
  justify-content: center;
}

.button.auto {
  width: max-content !important;
  padding: 0 1rem 0 1rem !important;
}

/* message / error */
.move_result_message {
/* Auto layout */
display: flex;
flex-direction: row;
align-items: center;
padding: 20px;
gap: 18px;

}
.move_result_message.error {
/* error_gradient */
background: linear-gradient(285.49deg, #FF4545 13.22%, #D20000 126.78%);
border-radius: 10px;
}

.move_result_message.success {
/* message/success */
/* success_gradient */
background: linear-gradient(285.49deg, #24B374 13.22%, #104D32 126.78%);
border-radius: 10px;

}
.move_result_message.success .message-icon {
  background-image: url('/new-design/img/success-message-check.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 40px;
  height: 40px;
}
.move_result_message.error .message-icon {
  background-image: url('/new-design/img/error-message-check.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 40px;
  height: 40px;
}
.move_result_message .message-content {
  color: white;
  flex-grow: 2;
  justify-items: start;
}
.move_result_message .message-title {
  font-family: Inter;
  font-weight: 600;
  font-size: 28px;
  line-height: 100%;
  letter-spacing: -3.5%;
}
.move_result_message .message-subtitle {
  font-family: Inter;
  font-weight: 400;
  font-size: 14px;
  line-height: 130%;
  letter-spacing: 2%;
}
.move_result_message .message-actions {
  display: flex;
  flex-direction: column  ;
  gap: 10px;
}
.move_result_message .action-icon {
  color: #fafafa;
  display: flex;
  align-items: center;
  gap: 4px;
}


table.grid-table {
  width: 100%;
}

.tournament-registration-container {
  display: flex;
  gap: 10px;
}
.tournament-registration-container__item {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 25%;
}
.select::after {
  background: white;
}

dd#gender-element select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  box-shadow: none;
  border: none;
  background: rgba(0,0,0,0);
  background-image: none;
  flex: 1;
  padding: 7px 10px;
  cursor: pointer;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.9rem;
}
dd#gender-element {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 40px;
  line-height: 3;
  background: #fff;
  overflow: hidden;
  border-radius: 2px;
  border: 1px solid #b5bdcd;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.9rem;
  color: #717f9b;
}

td.filter-cell div.range-filter {
  display: flex;
  flex-direction: column;
  gap: 5px;
  max-width: 160px;
}
td.filter-cell div.range-filter div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 5px;
}
td.filter-cell div.range-filter div input {
  width: 120px;
}
td.filter-cell select {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 220px;
  height: 40px;
  line-height: 3;
  background: #fff;
  overflow: hidden;
  border-radius: 2px;
  border: 1px solid #b5bdcd;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.9rem;
  color: #717f9b;
  padding-top: 0.8rem;
}
.grid-filter-buttons {
  display: flex;
  gap: 10px;
}
.grid-filter-buttons input[type="submit"] {
  width: auto;
  height: 40px;
  font-size: inherit;
  font-weight: 600;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 20px;
  cursor: pointer;
  transition: all .2s ease-in-out;
  color: #fafafa;
  background-color: #1b9dfb;
  background: #1b9dfb;
  border: 2px solid #1b9dfb;
  padding: 0 1rem 0 1rem;
}

/* Reset & Base Styles - Keep original box-sizing */
.website,
.website * {
  box-sizing: border-box;
}

.website {
  overflow-x: hidden;
}

/* Header & Navigation */
.main-header {
  background: #ffffff;
  height: 64px;
  width: 100%;
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.navbar {
  height: 100%;
}

.navbar-brand {
  padding: 0;
}

.logo {
  height: 36px;
  width: auto;
}

.nav-link {
  color: #3d3e40;
  font-family: "Montserrat-Bold", sans-serif;
  font-size: 16px;
  font-weight: 700;
}

.btn-sign-in {
  background: #ff7900;
  border-radius: 5px;
  padding: 2px 15px;
  color: #ffffff;
  font-family: "Montserrat-Bold", sans-serif;
  font-size: 16px;
  font-weight: 700;
}

.navbar-toggler {
  border: none;
}

/* Mobile menu fixes */
@media (max-width: 991.98px) {
  .navbar-collapse {
    position: fixed;
    top: 64px;
    left: 0;
    padding: 20px;
    width: 100%;
    height: auto;
    background-color: rgba(255, 255, 255, 0.95);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    transition: none !important;
}
  
  .navbar-nav {
    padding: 20px 0;
  }
  
  .nav-item {
    margin-bottom: 15px;
  }
  
  /* Custom toggler icon that transforms to X */
  .navbar-toggler {
    padding: 0.25rem 0.75rem;
    border: 1px solid transparent;
    border-radius: 0.25rem;
    position: relative;
    height: 38px;
    width: 45px;
}
  
  .navbar-toggler:focus {
    box-shadow: none;
  }
  
  .navbar-toggler-icon {
    background-image: none !important;
    position: relative;
    height: 2px;
    width: 25px;
    background-color: #3d3e40;
    display: inline-block;
    transition: none;
}
  
  .navbar-toggler-icon::before,
  .navbar-toggler-icon::after {
    content: '';
    position: absolute;
    left: 0;
    height: 2px;
    width: 25px;
    background-color: #3d3e40;
    transition: none;
  }
  
  .navbar-toggler-icon::before {
    top: -8px;
}
  
  .navbar-toggler-icon::after {
    top: 8px;
  }
  
  .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
    background-color: transparent;
  }
  
  .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before {
    transform: rotate(45deg);
    top: 0;
}
  
  .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after {
    transform: rotate(-45deg);
    top: 0;
  }
}
.main-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
