/* Переменные CSS для цветов, размеров и т.д. */
:root {
  /* Цвета */
  --color-primary: #4CAF50;
  --color-primary-dark: #45a049;
  --color-secondary: #2196F3;
  --color-danger: #F44336;
  --color-warning: #FF9800;
  --color-light: #f5f5f5;
  --color-dark: #333333;
  --color-grey: #777777;
  --color-grey-light: #e0e0e0;
  --color-white: #ffffff;
  --color-black: #000000;
  --color-telegram: #0088cc;
  --color-error: #e74c3c;
  
  /* Цвета сообщений */
  --color-user-message: #EFFAFF;
  --color-ai-message: #F8F8F8;
  --color-system-message: #FFF3E0;
  --color-system-text: #FF5722;
  
  /* Тени */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.1);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
  
  /* Отступы */
  --spacing-xs: 5px;
  --spacing-sm: 10px;
  --spacing-md: 15px;
  --spacing-lg: 20px;
  --spacing-xl: 30px;
  
  /* Размеры шрифтов */
  --font-size-xs: 12px;
  --font-size-sm: 13px;
  --font-size-md: 14px;
  --font-size-lg: 16px;
  --font-size-xl: 18px;
  --font-size-xxl: 24px;
  
  /* Радиусы скругления */
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  
  /* Переходы */
  --transition-fast: 0.2s ease;
  --transition-normal: 0.3s ease;
  
  /* Размеры компонентов */
  --sidebar-expanded-width: 325px;
  --nav-btn-size: 40px;
  --chat-input-min-height: 100px;
  --chat-input-max-height: 200px;
  --chat-input-focus-min-height: 170px;
  --chat-input-focus-max-height: 300px;
  
  /* Унифицированные размеры для кнопок и форм */
  --button-height: 48px;
  --button-height-mobile: 42px;
  --button-padding: 0 var(--spacing-lg);
  --button-gap: var(--spacing-md);
  --form-gap: var(--spacing-md);
  --block-padding: 24px;
  --block-padding-mobile: 16px;
  --block-margin: 24px;
  --block-margin-mobile: 16px;
  --input-height: 48px;
  --input-height-mobile: 42px;
  --input-padding: 0 var(--spacing-lg);
  
  /* Общие стили */
  --button-radius: var(--radius-lg);
  --input-radius: var(--radius-lg);
  --block-radius: var(--radius-lg);
}

/* Общие стили для всех элементов */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  background-color: var(--color-white);
}

/* Стили для монопространственных шрифтов (код, верификация) */
code, .verification-code code, .address {
  font-family: 'Courier New', Courier, monospace;
}

/* Унификация размеров шрифтов */
h1, h2, h3, h4, h5, h6 {
  font-weight: 500;
}

h3 {
  font-size: var(--font-size-xl);
  margin-bottom: var(--spacing-md);
}

p {
  font-size: var(--font-size-md);
  line-height: 1.5;
}

input, textarea {
  font-size: var(--font-size-md);
}

/* Контейнеры */
.app-container {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background-color: var(--color-white);
}

.main-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  max-width: 1200px;
  margin: 0;
  padding: 0 20px;
  width: 100%;
  background-color: var(--color-white);
}

/* Адаптация контента при боковой панели */
.main-content.no-right-sidebar {
  margin-right: 190px;
}

.main-content:not(.no-right-sidebar) {
  margin-right: 190px;
}

/* Стили для контейнера чата */
.chat-container {
  flex: 1;
  display: flex;
  flex-direction: column;
  margin: var(--spacing-lg) auto;
  min-height: 500px;
  max-width: 1150px;
  width: 100%;
  position: relative;
}

.chat-messages {
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: var(--spacing-lg);
  background: var(--color-white);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-grey-light);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: calc(var(--chat-input-height, 80px) + 15px); /* Добавляем 15px отступа между сообщениями и полем ввода */
  transition: bottom var(--transition-normal);
}

/* Стили для сообщений */
.message {
  margin-bottom: var(--spacing-md);
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: var(--radius-lg);
  max-width: 75%;
  word-wrap: break-word;
  position: relative;
  box-shadow: var(--shadow-sm);
}

.user-message {
  background-color: var(--color-user-message);
  align-self: flex-end;
  margin-left: auto;
  margin-right: var(--spacing-sm);
  border-bottom-right-radius: 2px;
}

.ai-message {
  background-color: var(--color-ai-message);
  align-self: flex-start;
  margin-right: auto;
  margin-left: var(--spacing-sm);
  word-break: break-word;
  max-width: 70%;
  border-bottom-left-radius: 2px;
}

.system-message {
  background-color: var(--color-system-message);
  align-self: center;
  margin-left: auto;
  margin-right: auto;
  font-style: italic;
  color: var(--color-system-text);
  text-align: center;
  max-width: 90%;
}

.message-content {
  margin-bottom: var(--spacing-xs);
  white-space: pre-wrap;
  word-break: break-word;
  font-size: var(--font-size-md);
  line-height: 1.5;
}

.message-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.message-time {
  font-size: var(--font-size-xs);
  color: var(--color-grey);
  text-align: right;
}

.message-status {
  font-size: var(--font-size-xs);
  color: var(--color-grey);
}

.sending-indicator {
  color: var(--color-secondary);
  font-style: italic;
}

.error-indicator {
  color: var(--color-danger);
  font-weight: bold;
}

.is-local {
  opacity: 0.7;
}

.has-error {
  border: 1px solid var(--color-danger);
}

/* Стили для ввода сообщений */
.chat-input {
  display: flex;
  flex-direction: column;
  padding: var(--spacing-sm) var(--spacing-md);
  background: var(--color-white);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-grey-light);
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  transition: all var(--transition-normal);
  z-index: 10;
  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.05);
}

.input-area {
  display: flex;
  align-items: flex-end;
  gap: var(--spacing-sm);
}

.chat-input textarea {
  flex: 1;
  border: none;
  resize: none;
  font-size: var(--font-size-md);
  line-height: 1.5;
  min-height: 24px;
  max-height: 120px; /* Ограничение высоты textarea */
  padding: 8px 0; /* Уменьшаем вертикальные отступы */
  outline: none;
  overflow-y: hidden; /* Убираем скролл, так как высота меняется динамически */
  height: auto; /* Позволяем высоте изменяться */
}

.chat-input textarea:focus {
  outline: none;
}

/* Контейнер для иконок */
.chat-icons {
  display: flex;
  gap: 6px;
  flex-wrap: nowrap;
  align-items: center;
}

/* Стили для кнопок-иконок */
.chat-icon-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: transparent;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--transition-fast);
  color: var(--color-grey);
  padding: 0;
  position: relative;
}

.chat-icon-btn:hover {
  color: var(--color-primary);
  background-color: rgba(0, 0, 0, 0.05);
}

.chat-icon-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Стили для кнопки отправки */
.chat-icon-btn.send-button {
  background-color: var(--color-primary);
  color: white;
  width: 36px;
  height: 36px;
}

.chat-icon-btn.send-button:hover:not(:disabled) {
  background-color: var(--color-primary-dark);
  color: white;
  transform: scale(1.05);
}

.chat-icon-btn.send-button:disabled {
  background-color: #ccc;
  opacity: 0.7;
}

/* Стили для состояния записи */
.chat-icon-btn.recording {
  color: var(--color-danger);
  animation: pulse 1.5s infinite;
}

.chat-icon-btn.recording::after {
  content: '';
  position: absolute;
  width: 8px;
  height: 8px;
  background-color: var(--color-danger);
  border-radius: 50%;
  top: 2px;
  right: 2px;
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}

/* Стили для области предпросмотра */
.attachment-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--color-grey-light);
  max-height: 100px; /* Ограничение высоты области превью */
  overflow-y: auto; /* Скролл для превью */
}

.preview-item {
  position: relative;
  display: flex;
  align-items: center;
  background-color: var(--color-light);
  border-radius: var(--radius-md);
  padding: 4px 8px;
  font-size: var(--font-size-sm);
}

.image-preview {
  width: 40px;
  height: 40px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  margin-right: 8px;
}

.audio-preview,
.video-preview,
.file-preview {
  display: flex;
  align-items: center;
  gap: 5px;
}

.remove-attachment-btn {
  position: absolute;
  top: -5px;
  right: -5px;
  width: 18px;
  height: 18px;
  background-color: rgba(0, 0, 0, 0.6);
  color: white;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1;
  padding: 0;
}

/* Новый контейнер для действий чата */
.chat-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

/* Стили для кнопок в чате */
.chat-buttons {
  display: flex;
  gap: var(--spacing-sm);
  margin-top: var(--spacing-xs);
  padding-bottom: 0;
  justify-content: flex-end;
  flex-wrap: nowrap;
  box-sizing: border-box;
  align-items: center;
}

.chat-buttons button {
  padding: 8px 16px;
  border-radius: var(--radius-sm);
  border: none;
  cursor: pointer;
  font-size: var(--font-size-md);
  transition: background-color var(--transition-normal);
  white-space: nowrap;
  flex-shrink: 0;
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  }
  
.chat-buttons .clear-btn {
  background-color: var(--color-danger);
  color: var(--color-white);
}

.chat-buttons .clear-btn:hover:not(:disabled) {
  background-color: #da190b;
  }
  
.chat-buttons button:disabled {
  background-color: #cccccc;
  cursor: not-allowed;
}

/* Стили для правой панели */
.wallet-sidebar {
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-white);
  z-index: 1000;
  overflow-y: auto;
  padding: var(--spacing-lg);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  transition: transform var(--transition-normal), opacity var(--transition-normal);
  box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1);
}

.wallet-sidebar-content {
  max-width: 600px;
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--spacing-md);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-lg);
}

/* Стили для заголовка */
.header {
  background: var(--color-white);
  padding: 15px 20px;
  position: sticky;
  top: 0;
  z-index: 100;
}

.header-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--spacing-lg);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header-text {
  flex: 1;
}

.title {
  font-size: var(--font-size-xxl);
  font-weight: 500;
  color: var(--color-dark);
  margin-bottom: var(--spacing-xs);
}

.subtitle {
  font-size: var(--font-size-lg);
  color: #666;
}

/* Анимация появления и исчезновения правой панели */
.sidebar-slide-enter-active,
.sidebar-slide-leave-active {
  transition: all var(--transition-normal);
}

.sidebar-slide-enter-from,
.sidebar-slide-leave-to {
  transform: translateX(100%);
  opacity: 0;
  }

.sidebar-slide-enter-to,
.sidebar-slide-leave-from {
  transform: translateX(0);
  opacity: 1;
}

/* Стили для блока кнопок авторизации */
.auth-buttons-container {
  width: 100%;
  max-width: 450px;
  margin-bottom: var(--spacing-lg);
  background-color: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
  padding: var(--spacing-lg);
  box-sizing: border-box;
  position: relative;
}

.auth-btn {
  width: 100%;
  height: var(--nav-btn-size);
  border-radius: var(--radius-lg);
  background-color: var(--color-light);
  border: 1px solid rgba(0, 0, 0, 0.1);
  color: var(--color-dark);
  font-size: var(--font-size-md);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0 var(--spacing-md);
  box-sizing: border-box;
  transition: all var(--transition-normal);
  margin: 0;
}

.auth-btn:hover {
  background-color: var(--color-grey-light);
}

/* Медиа-запросы для адаптивности */
@media screen and (min-width: 1200px) {
  .wallet-sidebar {
    width: 30%;
    max-width: 550px;
  }
}

@media screen and (min-width: 769px) and (max-width: 1199px) {
  .wallet-sidebar {
    width: 40%;
    max-width: 500px;
  }
}

@media screen and (max-width: 768px) {
  .wallet-sidebar {
    padding: var(--spacing-md);
  }

  .wallet-sidebar-content {
    padding: 0;
    gap: var(--spacing-md);
  }

  .disconnect-block {
    margin-bottom: var(--spacing-md);
  }

  .disconnect-btn,
  .close-wallet-sidebar {
    height: 42px;
  }

  .close-wallet-sidebar {
    width: 42px;
    min-width: 42px;
    font-size: 18px;
  }

  .identifiers-block {
    padding: var(--spacing-md);
  }

  .identifier-item {
    font-size: var(--font-size-sm);
    margin-bottom: var(--spacing-xs);
  }

  .identifier-label {
    min-width: 80px;
  }
}

@media screen and (max-width: 480px) {
  .wallet-sidebar {
    padding: var(--spacing-sm);
  }

  .wallet-sidebar-content {
    gap: var(--spacing-sm);
  }

  .disconnect-block {
    margin-bottom: var(--spacing-sm);
  }

  .disconnect-btn,
  .close-wallet-sidebar {
    height: 36px;
    font-size: var(--font-size-sm);
  }

  .close-wallet-sidebar {
    width: 36px;
    min-width: 36px;
  }

  .identifiers-block {
    padding: var(--spacing-sm);
  }
}

/* Анимации */
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes slideInRight {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}

@keyframes slideOutRight {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(100%);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slideIn {
  from {
    transform: translateY(-50px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* Стили для форм email и telegram */
.auth-buttons-container .email-form,
.auth-buttons-container .telegram-form,
.auth-buttons-container .telegram-verification {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
  margin: var(--spacing-md) 0;
}

/* Стили для инпутов */
.auth-buttons-container input[type="email"],
.auth-buttons-container input[type="text"] {
  width: 100%;
  height: 48px;
  padding: var(--spacing-sm) var(--spacing-md);
  border: 1px solid var(--color-grey-light);
  border-radius: var(--radius-lg);
  font-size: var(--font-size-md);
  margin: 0 0 var(--spacing-sm) 0;
  box-sizing: border-box;
  background-color: var(--color-white);
}

/* Стили для кнопок в формах */
.auth-buttons-container .email-form button,
.auth-buttons-container .telegram-form button,
.auth-buttons-container .telegram-verification button,
.auth-buttons-container .telegram-verification a {
  width: 100%;
  height: 48px;
  margin: 0;
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: var(--radius-lg);
  font-size: var(--font-size-lg);
  font-weight: 500;
  cursor: pointer;
  transition: all var(--transition-normal);
  border: 1px solid rgba(0, 0, 0, 0.1);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  text-decoration: none;
}

/* Стили для основных кнопок */
.auth-buttons-container button[type="submit"],
.auth-buttons-container a[href*="telegram"] {
  background-color: var(--color-primary);
  color: var(--color-white);
}

.auth-buttons-container button[type="submit"]:hover,
.auth-buttons-container a[href*="telegram"]:hover {
  background-color: var(--color-primary-dark);
}

/* Стили для кнопок отмены */
.auth-buttons-container button:not([type="submit"]) {
  background-color: var(--color-grey-light);
  color: var(--color-dark);
}

.auth-buttons-container button:not([type="submit"]):hover {
  background-color: #d9d9d9;
}

/* Стили для телеграм-ссылки */
.auth-buttons-container a[href*="telegram"] {
  background-color: var(--color-telegram);
}

.auth-buttons-container a[href*="telegram"]:hover {
  background-color: #0077b3;
}

@media screen and (max-width: 480px) {
  .auth-buttons-container .email-form button,
  .auth-buttons-container .telegram-form button,
  .auth-buttons-container .telegram-verification button,
  .auth-buttons-container .telegram-verification a,
  .auth-buttons-container input[type="email"],
  .auth-buttons-container input[type="text"] {
    height: 42px;
    font-size: var(--font-size-sm);
  }
}

/* Общие стили для форм */
.auth-buttons-container .email-form,
.auth-buttons-container .verification-block {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  margin: var(--spacing-sm) 0;
}

.auth-buttons-container .email-form-container {
  display: flex;
    flex-direction: column;
  gap: var(--spacing-sm);
  width: 100%;
}

/* Стили для инпутов */
.auth-buttons-container input[type="email"],
.auth-buttons-container input[type="text"] {
  width: 100%;
  height: 48px;
  padding: var(--spacing-sm) var(--spacing-md);
  border: 1px solid var(--color-grey-light);
  border-radius: var(--radius-lg);
  font-size: var(--font-size-md);
  margin: 0 0 var(--spacing-sm) 0;
  box-sizing: border-box;
  background-color: var(--color-white);
}

/* Общие стили для всех кнопок в формах */
.auth-buttons-container .email-form button,
.auth-buttons-container .verification-block button,
.auth-buttons-container .verification-block a.bot-link {
  width: 100%;
  height: 48px;
  margin: 0;
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: var(--radius-lg);
  font-size: var(--font-size-lg);
  font-weight: 500;
  cursor: pointer;
  transition: all var(--transition-normal);
  border: none;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  text-decoration: none;
}

/* Стили для кнопок отправки/подтверждения */
.auth-buttons-container button[type="submit"],
.auth-buttons-container .send-email-btn {
  background-color: var(--color-primary);
  color: var(--color-white);
}

/* Стили для кнопок отмены */
.auth-buttons-container button:not([type="submit"]):not(.send-email-btn):not(.bot-link) {
  background-color: #E8E8E8;
  color: var(--color-dark);
}

/* Стили для ссылки Telegram */
.auth-buttons-container .verification-block a.bot-link {
  background-color: #0088cc;
  color: var(--color-white);
}

/* Стили для блока с кодом верификации */
.auth-buttons-container .verification-code {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  margin-bottom: var(--spacing-sm);
  font-size: var(--font-size-md);
  width: 100%;
  height: 48px;
  border-radius: var(--radius-lg);
  background-color: var(--color-white);
  border: 1px solid var(--color-grey-light);
  padding: 0 var(--spacing-md);
  box-sizing: border-box;
}

/* Стили для текста в формах */
.auth-buttons-container p {
  margin: 0 0 var(--spacing-sm) 0;
  font-size: var(--font-size-md);
  color: var(--color-dark);
}

/* Эффекты при наведении */
.auth-buttons-container button[type="submit"]:hover,
.auth-buttons-container .send-email-btn:hover {
  background-color: var(--color-primary-dark);
}

.auth-buttons-container button:not([type="submit"]):not(.send-email-btn):hover {
  background-color: #DADADA;
}

.auth-buttons-container .verification-block a.bot-link:hover {
  background-color: #0077b3;
}

@media screen and (max-width: 480px) {
  .auth-buttons-container .email-form button,
  .auth-buttons-container .verification-block button,
  .auth-buttons-container .verification-block a.bot-link,
  .auth-buttons-container input[type="email"],
  .auth-buttons-container input[type="text"] {
    height: 42px;
    font-size: var(--font-size-sm);
  }
}

/* Общие стили для контейнера */
.auth-buttons-container,
.wallet-info-container {
  width: 100%;
  max-width: 450px;
  margin-bottom: var(--spacing-lg);
  background-color: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
  padding: var(--spacing-lg);
  box-sizing: border-box;
  position: relative;
}

/* Стили для заголовка */
.header-with-close {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: var(--nav-btn-size);
  margin-bottom: var(--spacing-lg);
  position: relative;
}

/* Стили для кнопок в заголовке */
.header-button {
  height: var(--nav-btn-size);
  border-radius: var(--radius-lg);
  font-size: var(--font-size-md);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-sizing: border-box;
  transition: all var(--transition-normal);
}

/* Кнопка отключения */
.disconnect-btn {
  background-color: var(--color-white);
  border: 1px solid var(--color-error);
  color: var(--color-error);
  padding: 0 var(--spacing-md);
  flex: 1;
  margin-right: var(--spacing-sm);
}

.disconnect-btn:hover {
  background-color: #ffebee;
}

/* Кнопка закрытия */
.close-wallet-sidebar {
  width: var(--nav-btn-size);
  height: var(--nav-btn-size);
  min-width: var(--nav-btn-size);
  background-color: var(--color-white);
  color: var(--color-dark);
  border: 1px solid var(--color-grey);
  font-size: 20px;
  padding: 0;
  line-height: 1;
}

.close-wallet-sidebar:hover {
  background-color: var(--color-grey-light);
  border-color: var(--color-dark);
}

/* Стили для кнопок авторизации */
.auth-buttons-wrapper {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  width: 100%;
}

.auth-btn {
  width: 100%;
  height: var(--nav-btn-size);
  border-radius: var(--radius-lg);
  background-color: var(--color-light);
  border: 1px solid rgba(0, 0, 0, 0.1);
  color: var(--color-dark);
  font-size: var(--font-size-md);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0 var(--spacing-md);
  box-sizing: border-box;
  transition: all var(--transition-normal);
  margin: 0;
}

.auth-btn:hover {
  background-color: var(--color-grey-light);
}

/* Стили для блока идентификаторов */
.identifiers-block {
  margin-top: var(--spacing-lg);
  border-top: 1px solid var(--color-grey-light);
  padding-top: var(--spacing-lg);
}

.identifiers-block h3 {
  margin: 0 0 var(--spacing-md) 0;
  font-size: var(--font-size-xl);
  color: var(--color-dark);
}

.identifier-item {
    display: flex;
  align-items: center;
  margin-bottom: var(--spacing-sm);
  font-size: var(--font-size-md);
}

.identifier-item:last-child {
  margin-bottom: 0;
}

.identifier-label {
  min-width: 100px;
  color: var(--color-grey);
  font-weight: 500;
}

.identifier-value {
  flex: 1;
  font-family: monospace;
  color: var(--color-dark);
  word-break: break-all;
}

@media screen and (max-width: 480px) {
  .auth-buttons-container,
  .wallet-info-container {
    padding: var(--spacing-md);
  }

  .header-with-close {
    height: 32px;
    margin-bottom: var(--spacing-md);
  }

  .header-button {
    height: 32px;
    font-size: var(--font-size-sm);
  }

  .disconnect-btn {
    padding: 0 12px;
  }

  .close-wallet-sidebar {
    width: 32px;
    height: 32px;
    min-width: 32px;
    font-size: 18px;
  }

  .auth-btn {
    height: 32px;
    font-size: var(--font-size-sm);
  }

  .identifiers-block {
    margin-top: var(--spacing-md);
    padding-top: var(--spacing-md);
  }

  .identifier-item {
    font-size: var(--font-size-sm);
    margin-bottom: var(--spacing-xs);
  }

  .identifier-label {
    min-width: 80px;
  }
}

@media screen and (max-width: 360px) {
  .auth-buttons-container,
  .wallet-info-container {
    padding: var(--spacing-sm);
  }

  .header-button {
    font-size: var(--font-size-xs);
  }

  .disconnect-btn {
    padding: 0 8px;
  }

  .close-wallet-sidebar {
  font-size: 16px;
  }

  .identifiers-block {
    margin-top: var(--spacing-sm);
    padding-top: var(--spacing-sm);
  }
}

/* Общие стили для кнопок */
.auth-btn,
.disconnect-btn,
.close-wallet-sidebar,
.send-email-btn,
.chat-buttons button,
.header-button,
.connect-btn,
.cancel-btn,
.bot-link {
  height: var(--button-height);
  padding: 0 var(--spacing-lg);
  border-radius: var(--radius-lg);
  font-size: var(--font-size-md);
  font-weight: 500;
  border: none;
  cursor: pointer;
  transition: var(--transition-fast);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  background: var(--color-primary);
  color: var(--color-white);
  width: 100%;
  margin: 0;
  text-decoration: none;
}

/* Стили для квадратных кнопок (close) */
.close-wallet-sidebar {
  width: var(--button-height);
  padding: 0;
  position: absolute;
  top: var(--block-padding);
  right: var(--block-padding);
  background: var(--color-grey-light);
  color: var(--color-dark);
  font-size: var(--font-size-xl);
}

/* Общие стили для форм */
.email-form,
.verification-block,
.auth-buttons-wrapper,
.email-verification-form {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
  width: 100%;
  margin-bottom: var(--block-margin);
}

/* Контейнер формы email */
.email-form-container {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  width: 100%;
}

/* Общие стили для инпутов */
input[type="email"],
input[type="text"],
.email-input {
  height: var(--input-height);
  padding: 0 var(--spacing-lg);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-grey-light);
  font-size: var(--font-size-md);
  width: 100%;
  background: var(--color-white);
}

/* Общие стили для контейнеров */
.auth-container,
.wallet-info-container,
.identifiers-block,
.token-balances,
.user-info {
  width: 100%;
  max-width: 450px;
  padding: var(--block-padding);
  margin-bottom: var(--block-margin);
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

/* Заголовки в блоках */
.identifiers-block h3,
.token-balances h3,
.user-info h3 {
  margin: 0 0 var(--spacing-md) 0;
  font-size: var(--font-size-xl);
  color: var(--color-dark);
  border-bottom: 1px solid var(--color-grey-light);
  padding-bottom: var(--spacing-sm);
}

/* Элементы списков */
.identifier-item,
.token-balance,
.user-info-item {
  display: flex;
  align-items: center;
  margin-bottom: var(--spacing-sm);
  font-size: var(--font-size-md);
}

.identifier-label,
.token-name,
.user-info-label {
  min-width: 100px;
  color: var(--color-grey);
  font-weight: 500;
}

.identifier-value,
.token-amount,
.user-info-value {
  flex: 1;
  font-family: monospace;
  color: var(--color-dark);
  word-break: break-all;
}

/* Код верификации */
.verification-code {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-md);
  background: var(--color-light);
  border-radius: var(--radius-lg);
  font-size: var(--font-size-md);
  cursor: pointer;
}

.verification-code code {
  font-family: monospace;
  color: var(--color-dark);
  font-weight: bold;
}

.copied-message {
  color: var(--color-primary);
  font-size: var(--font-size-sm);
}

/* Сообщения об ошибках */
.error-message {
  color: var(--color-error);
  padding: var(--spacing-sm);
  margin-top: var(--spacing-sm);
  background: #ffebee;
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.close-error {
  background: none;
  border: none;
  color: var(--color-error);
  cursor: pointer;
  font-size: var(--font-size-xl);
  padding: 0 var(--spacing-xs);
}

/* Медиа-запросы */
@media screen and (max-width: 480px) {
  :root {
    --button-height: var(--button-height-mobile);
    --input-height: var(--input-height-mobile);
    --block-padding: var(--block-padding-mobile);
    --block-margin: var(--block-margin-mobile);
  }

  /* Общие стили для кнопок на мобильных */
  .auth-btn,
  .disconnect-btn,
  .close-wallet-sidebar,
  .send-email-btn,
  .chat-buttons button,
  .header-button,
  .connect-btn,
  .cancel-btn,
  .bot-link {
    font-size: var(--font-size-sm);
  }

  .close-wallet-sidebar {
    width: var(--button-height);
    font-size: 18px;
  }

  /* Адаптация размеров текста */
  .verification-code,
  .identifier-item,
  .token-balance,
  .user-info-item {
    font-size: var(--font-size-sm);
  }

  .identifier-label,
  .token-name,
  .user-info-label {
    min-width: 80px;
  }
}

@media screen and (max-width: 360px) {
  :root {
    --block-padding: var(--spacing-sm);
    --block-margin: var(--spacing-sm);
  }

  .close-wallet-sidebar {
    font-size: 16px;
  }

  .auth-btn,
  .disconnect-btn,
  .send-email-btn,
  .chat-buttons button,
  .header-button,
  .connect-btn,
  .cancel-btn,
  .bot-link {
    font-size: var(--font-size-xs);
    padding: 0 var(--spacing-sm);
  }

  .verification-code {
    font-size: var(--font-size-xs);
  }
}

/* Анимации */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideIn {
  from {
    transform: translateY(-50px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* Анимации для боковой панели */
.sidebar-slide-enter-active,
.sidebar-slide-leave-active {
  transition: all var(--transition-normal);
}

.sidebar-slide-enter-from,
.sidebar-slide-leave-to {
  transform: translateX(100%);
  opacity: 0;
}

.sidebar-slide-enter-to,
.sidebar-slide-leave-from {
  transform: translateX(0);
  opacity: 1;
}
