:root {

  --black: #191919;
  --white: #fff;
  --bg-gray: #F8FCFD;
  --gray-typo: #747474;
  --gray-line: #D9D9D9;
  --yellow: #EBC61B;
  --yellow-hover: #E0BD1B;
  --yellow-active: #D6B51A;
  --yellow-typo: #B69D28;
  --blue: #007ED2;
  --red: #CD6868;
  --green: #4FA03B;

  --total-width: 1152px;
  --time-column-width: 64px;
  --day-column-width: 143px;
  --block-width: 143px;
  --hour-height: 56px;
  
  --gap: 8px;
  
  --bg-page: #FFFFFF;
  --text-primary: #1F2937;
  --text-secondary: #6B7280;
  --hour-bar-border: #E5E7EB;
  
  --color-online: #A5DEEC;
  --color-online-light: #E7F6FA;
  --color-inperson-dark: #A5ECDB;
  --color-inperson-light: #E5F8F5;
  --color-available: rgba(235, 198, 27, 0.40);
  --color-available-text: #7C6600;
  
  --color-active-day: #0284C7;
  --color-active-day-bg: #0284C7;
  
  --font-family: 'RobotoCondensed', Verdana, sans-serif;
}

html {
  box-sizing: border-box;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  background-color: var(--bg-gray);
}

a {
  color: inherit;
  text-decoration: none;
}

@font-face {
  font-family: 'Roboto Condensed';
  src: url('../fonts/RobotoCondensed-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Condensed';
  src: url('../fonts/RobotoCondensed-LightItalic.woff2') format('woff2');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Condensed';
  src: url('../fonts/RobotoCondensed-BoldItalic.woff2') format('woff2');
  font-weight: bold;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Condensed';
  src: url('../fonts/RobotoCondensed-Bold.woff2') format('woff2');
  font-weight: bold;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Condensed';
  src: url('../fonts/RobotoCondensed-Regular.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Condensed';
  src: url('../fonts/RobotoCondensed-Italic.woff2') format('woff2');
  font-weight: normal;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-SemiBoldItalic.woff2') format('woff2');
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-ExtraLightItalic.woff2') format('woff2');
  font-weight: 200;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-MediumItalic.woff2') format('woff2');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-ExtraBoldItalic.woff2') format('woff2');
  font-weight: 800;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-Regular.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-ExtraBold.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-BlackItalic.woff2') format('woff2');
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-Black.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-ExtraLight.woff2') format('woff2');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-Italic.woff2') format('woff2');
  font-weight: normal;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-Thin.woff2') format('woff2');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-LightItalic.woff2') format('woff2');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-Bold.woff2') format('woff2');
  font-weight: bold;
  font-style: normal;
  font-display: swap;
}

body {
  font-family: 'RobotoCondensed', Verdana, sans-serif;
}

.headers {
  font-family: 'Raleway', Verdana, sans-serif;
}

/* global */

.list-reset {
  margin: 0;
  padding: 0;
  list-style: none;
}

.button-reset {
  padding: 0;
  border: none;
  background-color: transparent;
  cursor: pointer;
}


body {
  font-family: Roboto Condensed, Arial;
  margin: 0;
}

/* <p> elements have a default margin on the top
   and bottom. This removes the default margins. */
p {
  margin: 0;
}

.container {
  max-width: 1152px;
  margin: 0 auto;
}

.stats, .container {
  scroll-margin-top: 80px;
}


/* Шапка сайта */

.header {
  position: sticky;
  top: 0;
  overflow: hidden;
  background-color: var(--yellow);
  z-index: 10000;
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}

.nav__links {
  display: flex;
  flex-direction: row;
  gap: 2rem;
  list-style-type: none;
}

.nav__link {
  font-size: 1.125rem;
  line-height: 1.5;
  font-weight: 500;
  color: var(--black);
}

.nav__button {
  padding: 0.5rem 1rem;
  background-color: var(--yellow);
  font-size: 1.125rem;
  line-height: 1.5;
  border-radius: 8px;
  border: 1px solid #161616;

  display: flex;
  align-content: center;
  flex-direction: row;
  gap: 0.25rem;
}

.nav__button:hover {
  background-color: var(--yellow-hover);
}

.nav__button:active {
  background-color: var(--yellow-active);
}

.hamburger {
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: all 0.3s ease;
  display: none;
}

.hamburger-line {
  width: 20px;
  height: 2px;
  background: var(--black);
  transition: all 0.3s ease;
}

.mobile-menu-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* Мобильное меню сайта */
.mobile-menu {
  position: fixed;
  inset: 0;
  background: var(--yellow);
  z-index: 999999;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.mobile-menu.active {
  transform: translateX(0);
}

body.menu-open {
  overflow: hidden;
}

/* Шапка меню */
.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
}

.logout-button .nav__button {
  display: flex;
  justify-content: center;
}

.logout-button-content {
  display: flex;
  align-items: center;
}

.mobile-menu-footer .nav__button {
  width: 100%;
  padding: 0.5rem 0.75rem;
}

.mobile-menu-title {
  font-size: 18px;
  font-weight: 600;
  color: #333;
}

.mobile-menu-close {
  width: 32px;
  height: 32px;
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #333;
  border-radius: 6px;
  transition: background 0.2s ease;
}

.mobile-menu-close:hover {
  background: rgba(0, 0, 0, 0.1);
}

/* Содержимое мобильного меню */
.mobile-menu-content {
  flex: 1;
  padding: 64px 16px 32px 16px;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 8px;
}

.mobile-menu-link {
  font-family: 'Raleway';
  padding: 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  color: var(--black);
  text-decoration: none;
  font-weight: 500;
  width: fit-content;
}

/* Menu Footer */
.mobile-menu-footer {
  padding: 20px 16px;
}

/* Карточки преподавателя и ученика */

.bar {
  padding-top: 3rem;
  padding-bottom: 2.5rem;
  background-color: var(--white);
  border-bottom: 1px solid var(--gray-line);
  background-color: var(--white);
  margin-bottom: 4.5rem;
}

.class__members {
  display: flex;
  justify-content: space-between;
}

.card {
  display: flex;
  flex-direction: row;
  gap: 1rem;
}

.role {
  display: flex;
  align-content: center;
  gap: 0.5rem;
}

.role__text {
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.5;
  text-transform: uppercase;
  color: var(--yellow-typo);
}

.role__text-student {
  color: var(--blue);
}

.name-text {
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  color: var(--black);
}

.teacher {
  /* width: 100%; */
  max-width: 564px;
}

.teacher__contacts {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.phone {
  font-size: 1.125rem;
  line-height: 1.5rem;
  font-weight: 400;
  white-space: nowrap;
}

.card__desc {
  font-size: 1.125rem;
  line-height: 1.5rem;
  font-weight: 300;
  color: var(--gray-typo);
}

.student__next-class-content {
  font-size: 1.125rem;
  line-height: 1.5rem;
  font-weight: 500;
  color: var(--black);
}

.teacher__info-wrapper {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.teacher__avatar-image {
  height: 160px;
  width: 160px;
}

.teacher__info {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.student__info {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Ведомость */

.stats__container {
  border-radius: 0.625rem;
  border: 1px solid #C4C4C4;
  background: var(--bg-gray);
  box-shadow: 4px 9px 78.9px -48px rgba(0, 0, 0, 0.30);
}

.block-header {
  margin: 0;
  margin-bottom: 3rem;
  text-align: center;
  text-transform: uppercase;
  font-size: 2rem;
  line-height: 1.5;
}

.tab {
  display: flex;
  height: 5rem;
  justify-content: space-between;
  align-items: center;
  align-self: stretch;
}

.tablinks {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 1 0 0;
  align-self: stretch;

  font-size: 1.5rem;
  font-weight: 500;
  line-height: 2rem;
}

.tab-container {
  height: 36.5rem;
  overflow-y: auto;
}

.tablinks__stats {
  color: var(--blue);
  border-bottom: 3px solid var(--blue);
}

.tablinks__homework {
  color: var(--gray-typo);
  border-bottom: 1px solid #C4C4C4;
}

.transaction {
  padding: 0 2rem;
  width: 100%;
}

.transaction__info-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 1rem 0;
  border-bottom: 1px solid var(--gray-line);
}

.transaction__title {
  color: var(--black);
  font-size: 1.375rem;
  font-weight: 500;
  line-height: 1.5rem;
}

.transaction__description {
  color: var(--gray-typo);
  font-size: 1.125rem;
  font-weight: 300;
  line-height: 1.5rem;
}

.transaction__amount {
  font-size: 1.375rem;
  font-weight: 500;
  line-height: 1.5rem;
}

.transaction__amount-negative {
  color: var(--red);
}

.transaction__amount-positive {
  color: green;
}

.transaction__info {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  width: 100%;
  max-width: 460px;
}

.transaction__group-date {
  padding-inline: 2rem;
  color: var(--gray-typo);
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.6;
  margin-bottom: 0.5rem;
}

.transaction__group {
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--gray-line);
}

.last-row {
  border-bottom: none;
}

.transaction__none {
  display: none;
}

.description-none {
  display: none;
}

.stats__footer {
  display: flex;
  height: fit-content;
  padding: 1.75rem 2rem 1.5rem 2rem;
  justify-content: space-between;
  align-items: flex-start;
  align-self: stretch;
  flex-wrap: wrap;
  border-top: 1px solid var(--gray-line);
  box-shadow: 0 -4px 80.3px -47px rgba(0, 0, 0, 0.25);
}

.classes__taken {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 0.5rem;
  margin-right: 1rem;
}

.attendance__stats {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.attendance__stat {
  display: flex;
  gap: 0.25rem;
}

.stat__name {
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 2rem;
}

.stat__quantity {
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 2rem;
}

.stat__main-name {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 2rem;
}

.stat__main-quantity {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 2rem;
}


.stat__main-name,
.stat__main-quantity {
  color: var(--green);
}

.balance__title {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 2rem;
  color: var(--black);
}

.balance {
  color: #161616;
  font-size: 2.5rem;
  font-weight: 500;
  line-height: 1.2;
}

.pay-button {
  padding: 0.75rem 2rem;
  background-color: var(--yellow);
  font-size: 1.125rem;
  line-height: 1.5;
  border: none;
  border-radius: 8px;
}

.pay-button .button-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.pay-button:hover {
  background-color: var(--yellow-hover);
}

.pay-button:active {
  background-color: var(--yellow-active);
}

.button__text {
  color: var(--black);
  text-align: center;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.5rem;
}

.balance__block {
  display: flex;
  align-items: flex-end;
  gap: 2rem;
}

.balance {
  padding-bottom: 2px;
}

.stats {
  margin-bottom: 7.5rem;
}

/* Расписание */

.schedule-wrapper {
  width: var(--total-width);
  margin: 0 auto;
}

.schedule-container {
  background: var(--bg-page);
  border-radius: 12px;
  overflow: hidden;
  width: 100%;
  padding: 0.5rem 1rem;
}

/* Зона скролла */
.schedule-scroll-area {
  display: flex;
  /* overflow-x: auto; */
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #D1D5DB #F3F4F6;
}

.schedule-scroll-area::-webkit-scrollbar { height: 6px; }
.schedule-scroll-area::-webkit-scrollbar-track { background: #F3F4F6; border-radius: 3px; }
.schedule-scroll-area::-webkit-scrollbar-thumb { background: #D1D5DB; border-radius: 3px; }

/* Часовой пояс и часы */
.schedule-sidebar {
  position: sticky;
  left: 0;
  z-index: 10;
  background-color: var(--white);
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  padding-right: 12px;
  gap: 1.125rem;
}

.header-timezone {
  width: var(--time-column-width);
  height: 48px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--black);
  padding: 0 12px;
}

.time-column {
  width: var(--time-column-width);
  flex-shrink: 0;
}

.time-slot {
  height: var(--hour-height);
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 0 12px;
  font-size: 1rem;
  color: var(--gray-typo);
  font-weight: 300;
  background-color: #FFFFFF;
}

/* Скролл уроков */
.schedule-main {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: max-content;
}

.schedule-header {
  display: flex;
  width: 100%;
  border-bottom: 1px solid var(--hour-bar-border);
  padding-bottom: 1.75rem;
}

.days-header {
  display: flex;
  gap: var(--gap);
  flex: 1;
  height: 48px;
}

.day-header {
  width: var(--day-column-width);
  flex-shrink: 0;
  text-align: center;
  padding: 12px 8px;
  font-family: 'Raleway';
  font-weight: 500;
  font-size: 1.125rem;
  color: var(--blue);
  border-bottom: 2px solid var(--blue);
}

.day-header.active {
  color: var(--white);
  background: var(--blue);
  border-radius: 8px 8px 0 0;
}

.schedule-grid {
  display: flex;
  width: 100%;
}

.days-container {
  display: flex;
  gap: var(--gap);
  flex: 1;
  position: relative;
}

.days-container::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: calc(13 * var(--hour-height));
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent calc(var(--hour-height) - 1px),
    var(--hour-bar-border) calc(var(--hour-height) - 1px),
    var(--hour-bar-border) var(--hour-height)
  );
  background-size: 100% var(--hour-height);
  pointer-events: none;
  z-index: 0;
}

.day-column {
  width: var(--day-column-width);
  flex-shrink: 0;
  position: relative;
  min-height: calc(14 * var(--hour-height));
}

.lesson-block {
  position: absolute;
  width: var(--block-width);
  left: 50%;
  transform: translateX(-50%);

  top: calc(((var(--start-h) - 10) + (var(--start-m) / 60)) * var(--hour-height));
  height: calc((var(--dur-h) + (var(--dur-m) / 60)) * var(--hour-height));
  
  border-radius: 8px;
  padding: 4px 16px;
  display: flex;
  flex-direction: column;
  justify-content: start;
  align-items: center;
  gap: 4px;
  z-index: 1;
  font-size: 1rem;
  line-height: 1;
  font-weight: 300;
}

.lesson-title {
  font-weight: 400;
  font-size: 0.9375rem;
  line-height: 1.5;
}

.lesson-time {
  font-size: 1rem;
  line-height: 1;
  font-weight: 300;
}

.lesson-block .available .lesson-time {
  color: var(--color-available-text);
}

.lesson-block.online { 
  background: var(--color-online);
}

.lesson-block.online-light {
  background: var(--color-online-light);
}

.lesson-block.inperson-dark {
  background: var(--color-inperson-dark);
}

.lesson-block.inperson-light {
  background: var(--color-inperson-light);
}

.lesson-block.available { 
  background: var(--color-available); 
  color: var(--color-available-text);
  border: 1px solid #EBC61B; 
}

.lesson-block.available.lesson-time {
  color: var(--color-available-text)
}

.legend-group {
  display: flex;
  gap: 20px;
}

.schedule-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.125rem;
  line-height: 1.5rem;
  color: var(--black);
}

.legend-item span {
  width: fit-content;
  white-space: nowrap;
}

.legend-group:last-child {
  flex-wrap: wrap;
}

.legend-color {
  width: 24px;
  height: 24px;
  border-radius: 6px;
}

.legend-color.online {
  background: var(--color-online);
}

.legend-color.online-light {
  background: var(--color-online-light);
}
.legend-color.inperson-dark {
  background: var(--color-inperson-dark);
}

.legend-color.inperson-light {
  background: var(--color-inperson-light);
}

.legend-color.available {
  background: var(--color-available); border: 2px solid #EBC61B;
}

.schedule-footer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 1.5rem 0;
  background: white;
  font-size: 1.25rem;
  color: var(--text-primary);
}

.contact-info {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.schedule-phone {
  font-size: 1.25rem;
  line-height: 1.5rem;
}

.contact-icon {
  height: 1.25rem;
}

.schedule-telegram {
  height: 1.25rem;
}

.schedule-whatsapp {
  height: 1.5rem;
}

.schedule {
  margin-bottom: 72px;
}

/* Модальное окно оплаты */

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  padding: 20px;
}

.modal-overlay.active {
  opacity: 1;
  visibility: visible;
}

.modal {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 32px;
  max-width: 524px;
  width: 100%;
  position: relative;
  transform: scale(0.95);
  transition: transform 0.3s ease;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.modal-overlay.active .modal {
  transform: scale(1);
}

.modal-close {
  position: absolute;
  top: 2rem;
  right: 2rem;
  width: 32px;
  height: 32px;
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--black);
  padding: 0;
  transition: opacity 0.2s ease;
}

.modal-close:hover {
  opacity: 0.6;
}

.modal-title {
  font-family: 'Raleway', Verdana, sans-serif;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  color: var(--black);
  margin: 0 0 1rem 0;
  padding-right: 40px;
}

.modal-description {
  font-size: 1.125rem;
  line-height: 1.5;
  color: var(--black);
  margin: 0 0 2rem 0;
}

.modal-phone {
  font-weight: 700;
  color: var(--black);
  text-decoration: none;
  white-space: nowrap;
}

.modal-phone:hover {
  text-decoration: underline;
}

.modal-banks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.modal-bank-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.125rem;
  line-height: 1.5rem;
  font-weight: 400;
  color: var(--black);
  padding: 8px 0;
}

.bank-icon {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.bank-icon-tbank svg {
  width: 24px;
  height: 24px;
}

.bank-icon-alfa svg {
  width: 24px;
  height: 24px;
}

.bank-icon-sber svg {
  width: 24px;
  height: 24px;
}

/* Подвал сайта */

.footer {
  background-color: var(--yellow);
  padding: 2rem 0;
  margin-top: auto; /* Приклеивание подвала к низу страницы */
}

.footer__content {
  display: flex;
  justify-content: center;
  align-items: center;
}

.footer .logo img {
  height: 24px;
  width: auto;
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.main {
  flex: 1;
}




/* Страница входа в систему */

.login-form {
  max-width: 420px;
  width: 100%;
}

.login-form__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}

.login-form__label {
  font-size: 1rem;
  font-weight: 400;
  color: var(--black);
}

.login-form__role {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--blue);
  font-weight: 600;
  font-size: 0.875rem;
  text-transform: uppercase;
}

.login-form__role img {
  width: 20px;
  height: 20px;
}

.login-form__fields {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.form-label {
  display: flex;
  justify-content: space-between;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 500;
  color: var(--black);
}

.form-input {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  border: 1px solid var(--gray-line);
  border-radius: 8px;
  background: var(--white);
  color: var(--black);
  transition: border-color 0.2s ease;
  outline: none;
}

.form-input:focus {
  border-color: var(--blue);
}

.form-input--error {
  border-color: var(--red);
}

.form-input--error:focus {
  border-color: var(--red);
}

.password-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.form-input--password {
  padding-right: 3rem;
}

.password-toggle {
  position: absolute;
  right: 0.75rem;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
}

.password-toggle img {
  width: 20px;
  height: 20px;
  opacity: 0.6;
  transition: opacity 0.2s ease;
}

.password-toggle:hover img {
  opacity: 1;
}

.form-error {
  display: none; /* Скрыто для демонстрации */
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.75rem;
  background: rgba(205, 104, 104, 0.08);
  border-radius: 8px;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--red);
}

.form-error.active {
  display: flex;
}

.form-error img {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: 2px;
}

.login-button {
  width: fit-content;
  padding: 0.5rem 2rem;
  background-color: var(--yellow);
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.5;
  border-radius: 8px;
  color: var(--black);
  transition: background-color 0.2s ease;
  margin-top: 0.5rem;
}

.login-button:hover {
  background-color: var(--yellow-hover);
}

.login-button:active {
  background-color: var(--yellow-active);
}

/* Блок учителя при логине */
.bar .class__members {
  align-items: flex-start;
}